var Builder = (function (e) {
  var t = {};

  function n(i) {
    if (t[i]) return t[i].exports;
    var r = (t[i] = {
      i: i,
      l: !1,
      exports: {},
    });
    return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports;
  }
  return (
    (n.m = e),
    (n.c = t),
    (n.d = function (e, t, i) {
      n.o(e, t) ||
        Object.defineProperty(e, t, {
          enumerable: !0,
          get: i,
        });
    }),
    (n.r = function (e) {
      "undefined" != typeof Symbol &&
        Symbol.toStringTag &&
        Object.defineProperty(e, Symbol.toStringTag, {
          value: "Module",
        }),
        Object.defineProperty(e, "__esModule", {
          value: !0,
        });
    }),
    (n.t = function (e, t) {
      if ((1 & t && (e = n(e)), 8 & t)) return e;
      if (4 & t && "object" == typeof e && e && e.__esModule) return e;
      var i = Object.create(null);
      if (
        (n.r(i),
        Object.defineProperty(i, "default", {
          enumerable: !0,
          value: e,
        }),
        2 & t && "string" != typeof e)
      )
        for (var r in e)
          n.d(
            i,
            r,
            function (t) {
              return e[t];
            }.bind(null, r)
          );
      return i;
    }),
    (n.n = function (e) {
      var t =
        e && e.__esModule
          ? function () {
              return e.default;
            }
          : function () {
              return e;
            };
      return n.d(t, "a", t), t;
    }),
    (n.o = function (e, t) {
      return Object.prototype.hasOwnProperty.call(e, t);
    }),
    (n.p = ""),
    n((n.s = 26))
  );
})([
  function (e, t) {
    e.exports =
      "data:image/png;base64, ";
  },
  function (module, __webpack_exports__, __webpack_require__) {
    "use strict";

    function createElementFromHTML(e) {
      var t = document.createElement("div");
      return (t.innerHTML = e.trim()), t.childNodes;
    }

    function simulateClick(e, t) {
      var n = document.createEvent("MouseEvent"),
        i = document.elementFromPoint(e, t);
      n.initMouseEvent(
        "click",
        !0,
        !0,
        window,
        null,
        e,
        t,
        0,
        0,
        !1,
        !1,
        !1,
        !1,
        0,
        null
      ),
        i.dispatchEvent(n);
    }

    function makeid() {
      for (
        var e = "",
          t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
          n = 0;
        n < 5;
        n++
      )
        e += t.charAt(Math.floor(Math.random() * t.length));
      return e;
    }
    __webpack_require__.d(__webpack_exports__, "b", function () {
      return createElementFromHTML;
    }),
      __webpack_require__.d(__webpack_exports__, "c", function () {
        return makeid;
      }),
      __webpack_require__.d(__webpack_exports__, "a", function () {
        return Editor;
      }),
      __webpack_require__.d(__webpack_exports__, "d", function () {
        return simulateClick;
      });
    var Editor = function (e) {
      (window.currentEditor = this),
        (this.getIframeContent = function () {
          return $("#builder_iframe").contents();
        }),
        (this.strict = !0),
        (this.showHelp = !0),
        (this.beforeSaveEvents = []);
      for (var t = Object.keys(e), n = 0; n < t.length; n += 1) {
        var i = t[n],
          r = e[i];
        this[i] = r;
      }
      (this.root = this.root.trim()),
        "/" !== this.root.slice(-1) && (this.root = this.root + "/"),
        void 0 === window.CSRF_TOKEN && (window.CSRF_TOKEN = ""),
        void 0 === this.language && (this.language = "en"),
        void 0 === this.header && (this.header = {}),
        (this.saveAchor = 0),
        this.setDefaultTemplateUrlIfNotExist(),
        (this.widgetsStack = []);
    };
    Editor.prototype = {
      setDefaultTemplateUrlIfNotExist: function () {
        void 0 === this.url &&
          void 0 === this.html &&
          (this.url = this.root + "templates/default/");
      },
      addBeforeSaveEvent: function (e) {
        this.beforeSaveEvents.push(e);
      },
      runBeforeSaveEvents: function (e) {
        this.beforeSaveEvents.forEach(function (e) {
          e();
        });
      },
      loadingSetMessage: function (e) {
        $(".loading-page-overlay label").html(this.transformHtml(e));
      },
      done: function () {
        var e = this;
        $(".loading-page-overlay").remove(),
          e.loaded && e.loaded(),
          e.widgetsStack.forEach(function (t) {
            e.addContentWidget(t.widget, t.index, t.group);
          }),
          e.loadWidgetsFromWidgetManager(),
          e.moreLessWidgetsSetup(),
          (e.isInitialized = !0);
      },
      loadWidgetsFromWidgetManager: function () {
        var e = this;
        "undefined" != typeof WidgetManager &&
          WidgetManager.init().forEach(function (t) {
            e.addContentWidget(t, 0, "Template Content");
          });
      },
      historyGoto: function (e) {
        this.currentRecordAchor = e;
        var t = this.history()[this.currentRecordAchor].contents;
        $("#builder_iframe").contents().find("body").html(t),
          this.historyToggleButton(),
          this.listHistory(),
          this.checkEmpty(),
          this.cleanUpContent();
      },
      undo: function () {
        this.currentRecordAchor <= 0 ||
          this.historyGoto(this.currentRecordAchor - 1);
      },
      redo: function () {
        this.currentRecordAchor >= this.history().length - 1 ||
          this.historyGoto(this.currentRecordAchor + 1);
      },
      history: function () {
        var e = this;
        return (
          void 0 === e.historyRecords &&
            ((e.historyRecords = []),
            e.historyToggleButton(),
            $(document).on(
              "click",
              "li.history_add, .history-item",
              function () {
                var t = $(this).attr("data-achor");
                e.historyGoto(t);
              }
            )),
          e.historyRecords
        );
      },
      historyToggleButton: function () {
        var e = this.currentRecordAchor > 0,
          t = this.currentRecordAchor < this.history().length - 1;
        1 == t
          ? ($(".undo-redo-action-redo").removeClass("disable-redo"),
            $(".action.redo").removeClass("disabled"))
          : ($(".undo-redo-action-redo").addClass("disable-redo"),
            $(".action.redo").addClass("disabled")),
          1 == e
            ? ($(".undo-redo-action-undo").removeClass("disable-undo"),
              $(".action.undo").removeClass("disabled"))
            : ($(".undo-redo-action-undo").addClass("disable-undo"),
              $(".action.undo").addClass("disabled")),
          0 == t && 0 == e ? $(".undo-redo").hide() : $(".undo-redo").show();
      },
      formatDate: function (e) {
        var t = e.getHours(),
          n = e.getMinutes(),
          i = e.getSeconds(),
          r = t >= 12 ? "PM" : "AM",
          o =
            (t = (t %= 12) || 12) +
            ":" +
            (n = n < 10 ? "0" + n : n) +
            ":" +
            (i = i < 10 ? "0" + i : i) +
            " " +
            r;
        return (
          e.getMonth() +
          1 +
          "/" +
          e.getDate() +
          "/" +
          e.getFullYear() +
          " - " +
          o
        );
      },
      recordState: function (e = getI18n("mess_open"), t = "fa fa-list-alt") {
        var n = this.getContent(),
          i = new Date(),
          r = this.formatDate(i);
        10 == this.history().length && this.history().shift(),
          (void 0 !== this.currentRecordAchor &&
            n == this.history()[this.currentRecordAchor]) ||
            ((this.historyRecords = this.historyRecords.slice(
              0,
              this.currentRecordAchor + 1
            )),
            this.history().push({
              contents: n,
              title: e,
              icon: t,
              time: r,
            }),
            (this.currentRecordAchor = this.history().length - 1),
            this.historyToggleButton(),
            this.listHistory());
      },
      mask: function () {
        $("div.loadding-indicator").show();
      },
      unmask: function () {
        $("div.loadding-indicator").hide();
      },
      closePreview: function () {
        $("div.showPreview").hide(),
          $("#modal-preview-desktop").show(),
          $(".click-active-preview").removeClass("active-preview");
      },
      cleanUpContent: function () {
        this.unselect(),
          $("#builder_iframe")
            .contents()
            .find("*")
            .removeClass(function (e, t) {
              return (t.match(/builder-class[a-zA-Z0-9\_\-]+/g) || []).join(
                " "
              );
            }),
          $("#builder_iframe").contents().find(".builder-tool").remove(),
          $("#builder_iframe")
            .contents()
            .find("[id^=jquery-notebook-content-]")
            .remove(),
          this.removeInlineEdit();
      },
      cleanupHtml: function (e) {
        return (e = (e = e
          .replace(/element-selected/g, "")
          .replace(/builder-outline-move-hook/g, "")
          .replace(/builder-outline-selected-controls/g, ""))
          .replace(/(<link([^>]+)builder\-helper([^>]+)>)/gi, "")
          .replace(/(<script([^>]+)builder\-helper([^>]+)>\<\/script>)/gi, ""));
      },
      getContent: function () {
        var e = $("#builder_iframe").contents().find("html")[0].outerHTML;
        return (
          (e = this.cleanupHtml(e))
            .toLowerCase()
            .includes("DOCTYPE html".toLowerCase()) ||
            (e = "<!DOCTYPE html>" + e),
          (e = e.replace(/<link[^>]+tinymce\/skins[^>]+>/g, ""))
        );
      },
      save: function (e) {
        var t = this,
          n = t.saveUrl;

        t.runBeforeSaveEvents(),
          t.cleanUpContent(),
          (t.saveAchor = t.currentRecordAchor);
        var i = t.getContent(),
          r = t.uploadAssetMethod;
        (void 0 === r ||
          [
            "PUT",
            "PATCH",
            "TRACE",
            "OPTIONS",
            "DELETE",
            "HEAD",
            "CONNECT",
          ].includes(r.toUpperCase())) &&
          (r = "POST"),
          $("button.btn-save").attr("disabled", "disabled"),
          $("button.btn-save").html('<div class="loader-save"></div>'),
          t.mask(),
          setTimeout(function () {
            t.unmask(),
              $("button.btn-save").removeAttr("disabled", "disabled"),
              $("button.btn-save").html(getI18n("save"));
            var o = {
              _token: CSRF_TOKEN,
              content: i,
              _method: r,
            };
            null !== t.data && (o = $.extend({}, o, t.data)),
              $.ajax({
                url: n,
                type: r,
                dataType: "json",
                headers: t.header,
                data: o,
              })
                .done(function (n, i, r) {
                  if (200 == r.status) {
                    var o = getI18n("update_content");
                    t.notificationArea(o),
                      $("button.btn-save").removeAttr("disabled", "disabled"),
                      $("button.btn-save").html(getI18n("save")),
                      void 0 !== e && e(),
                      void 0 !== t.callbacks &&
                        void 0 !== t.callbacks.afterSave &&
                        t.callbacks.afterSave();
                  } else alert("Failed to save"), $("button.btn-save").removeAttr("disabled", "disabled"), $("button.btn-save").html(getI18n("save"));
                  t.initContent = t.getContent();
                })
                .fail(function (e, t, n) {
                  try {
                    $.parseJSON(e.responseText);
                  } catch (t) {
                    //alert(e.responseText);
                    return void Swal.fire({
                      title: getI18n("error_job"),
                      text: e.responseText,
                      type: "error",
                    });
                  }
                  Swal.fire({
                    title: getI18n("error_job"),
                    text: $.parseJSON(e.responseText).message,
                    type: "error",
                  });
                });
          }, 500);
      },
      uploadTemplate: function (e) {
        var t = this,
          n = (t.url, t.uploadAssetMethod);
        [
          "PUT",
          "PATCH",
          "TRACE",
          "OPTIONS",
          "DELETE",
          "HEAD",
          "CONNECT",
        ].includes(n.toUpperCase()) && (n = "POST");
        var i = $(".file-upload-template").prop("files")[0],
          r = new FormData();
        if (
          (r.append("file", i), r.append("action", "upload"), null !== t.data)
        )
          for (var o in t.data) r.append(o, t.data[o]);
        $.ajax({
          url: e,
          type: n,
          dataType: "json",
          contentType: !1,
          processData: !1,
          headers: t.header,
          data: r,
        })
          .done(function (e, n, i) {
            200 == i.status
              ? (new PopUp().hide(),
                Swal.fire({
                  title: getI18n("good_job"),
                  text: getI18n("upload_success"),
                  type: "success",
                }).then((n) => {
                  t.uploadTemplateCallback && t.uploadTemplateCallback(e);
                }))
              : alert(i.responseText);
          })
          .fail(function (e, t, n) {
            alert("Error while upload file:" + e.responseText.error);
          });
      },
      changeTemplate: function (e) {
        var t = this;
        if (void 0 === t.changeTemplateCallback) {
          var n = {
            _token: CSRF_TOKEN,
          };
          null !== t.data && (n = $.extend({}, n, t.data)),
            $.ajax({
              url: e,
              type: "GET",
              headers: t.header,
              data: {
                _token: CSRF_TOKEN,
              },
            })
              .done(function (e, t, n) {
                200 == n.status
                  ? Swal.fire({
                      title: getI18n("good_job"),
                      text: getI18n("success_aplly"),
                      type: "success",
                    }).then((e) => {
                      location.reload();
                    })
                  : alert("Failed choose");
              })
              .fail(function (e, t, n) {
                alert(getI18n("error_save") + n);
              });
        } else
          Swal.fire({
            title: getI18n("are_you_sure"),
            text: getI18n("text_are_you"),
            type: "warning",
            showCancelButton: !0,
            confirmButtonColor: "#3085d6",
            cancelButtonColor: "#d33",
            confirmButtonText: getI18n("confirm_apply"),
          }).then((n) => {
            n.value &&
              Swal.fire({
                title: getI18n("good_job"),
                text: getI18n("success_aplly"),
                type: "success",
              }).then((n) => {
                t.changeTemplateCallback(e);
              });
          });
      },
      back: function () {
        var e = this;
        e.saveAchor != e.currentRecordAchor
          ? Swal.fire({
              title: getI18n("are_you_sure"),
              text: getI18n("text_back"),
              type: "warning",
              showCancelButton: !0,
              confirmButtonColor: "#3085d6",
              cancelButtonColor: "#d33",
              confirmButtonText: getI18n("ok"),
            }).then((t) => {
              t.value &&
                (void 0 !== e.backCallback
                  ? e.backCallback()
                  : (window.location.href = this.urlBack));
            })
          : void 0 !== e.backCallback
          ? e.backCallback()
          : (window.location.href = this.urlBack);
      },
      synchronization: function (e) {
        var t = $(e).attr("data-sync");
        $("button.btn-sync").find("i").removeClass("fab fa-google"),
          $("button.btn-sync").find("i").removeClass("fab fa-dropbox"),
          $("button.btn-sync").find("i").removeClass("fab fa-google-drive"),
          "google-driver" == t
            ? $("button.btn-sync").find("i").addClass("fab fa-google")
            : "dropbox" == t
            ? $("button.btn-sync").find("i").addClass("fab fa-dropbox")
            : "one-driver" == t &&
              $("button.btn-sync").find("i").addClass("fab fa-google-drive"),
          $("ul.action-sync").removeClass("show-action");
      },
      settingSync: function () {
        $("ul.action-sync").removeClass("show-action"),
          Swal.fire({
            title: getI18n("setting_title"),
            text: getI18n("setting_text"),
            type: "warning",
            showCancelButton: !0,
            confirmButtonColor: "#3085d6",
            cancelButtonColor: "#d33",
            confirmButtonText: getI18n("ok"),
          }).then((e) => {
            e.value;
          });
      },
      addDragShadow(e) {
        var t = this;
        if (((t.dragShadow = $(".drag-shadow")), !t.dragShadow.length)) {
          $("body").append('<div class="drag-shadow"></div>'),
            (t.dragShadow = $(".drag-shadow"));
        }
        t.dragShadow.css("position", "fixed"),
          t.dragShadow.css("z-index", "10000"),
          t.dragShadow.css("top", "0"),
          t.dragShadow.css("left", "0"),
          t.dragShadow.css("pointer-events", "none"),
          t.dragShadow.hide(),
          t.dragShadow.html(e),
          $(document).on("mousemove", "*", function (e) {
            t.isDragging &&
              (t.dragShadow.show(),
              t.dragShadow.css("left", e.pageX + 5),
              t.dragShadow.css("top", e.pageY + 5));
          }),
          $("#builder_iframe")
            .contents()
            .on("mousemove", "*", function (e) {
              t.isDragging &&
                (t.dragShadow.show(),
                t.dragShadow.css(
                  "left",
                  e.pageX + $("#builder_iframe").offset().left + 5
                ),
                t.dragShadow.css(
                  "top",
                  e.pageY + $("#builder_iframe").offset().top + 5
                ));
            });
      },
      drag: function (e, t) {
        (this.draggableItem = e),
          this.unselect(),
          (this.isDragging = !0),
          (this.dragOptions = void 0 !== t ? t : {}),
          (this.dropHtml = this.transformHtml(e.dropHtml())),
          this.addDragShadow(this.transformHtml(e.dragHtml()));
      },
      canDropInside: function (e) {
        var t = this.dropHtml.includes("CellElement"),
          n = "CellElement" == e.obj.attr("builder-element");
        return e.isContainer() && !(t && n);
      },
      canDropBeside: function (e) {
        var t = this.dropHtml.includes("CellElement"),
          n = e.obj.closest('[builder-element="CellElement"]').length > 0;
        return !this.strict || (e.isDraggable() && !(t && n));
      },
      findClosestDraggableOrDroppableElement: function (e) {
        if (!this.strict) return this.elementFactory(e);
        e = e.closest("[builder-element]");
        var t = this.elementFactory(e);
        if (null == t) return t;
        for (
          ;
          t.obj.parents("[builder-element]").length &&
          !this.canDropBeside(t) &&
          !this.canDropInside(t);

        )
          t = this.elementFactory(t.obj.parents("[builder-element]").first());
        return t;
      },
      dragging: function (e) {
        $("#builder_iframe")[0].contentWindow.getSelection().removeAllRanges();
        var t = this.findClosestDraggableOrDroppableElement($(e.target));
        if (null != t)
          if (this.canDropInside(t))
            t.obj.children().length || t.dropInsideHighlight();
          else {
            if (!this.canDropBeside(t)) return !1;
            var n = t.checkTargetPosition(e);
            "before" == n
              ? t.beforeHighlight()
              : "after" == n && t.afterHighlight();
          }
      },
      checkEmpty() {
        $("#builder_iframe")
          .contents()
          .find("[builder-element='PageElement']")
          .each(function () {
            "" == $(this).html().trim()
              ? ($(this).addClass("container-_blank"), $(this).html(""))
              : $(this).removeClass("container-_blank");
          }),
          $("#builder_iframe")
            .contents()
            .find("[builder-element='CellElement']")
            .each(function () {
              "" == $(this).html().trim() && $(this).html("");
            }),
          this.adjustIframeSize();
      },
      drop: function (e) {
        var t = this;
        if (
          t.isDragging &&
          (t.dragShadow.remove(), (t.isDragging = !1), void 0 !== e)
        ) {
          var n = t.findClosestDraggableOrDroppableElement($(e.target));
          if (null != n) {
            var i = $("<div>").html(t.dropHtml).children();
            if (!t.draggableItem.hasBlockContainer()) {
              if (t.emailMode)
                var r = $(
                  '\n                    <table width="100%" builder-element="BlockElement">\n                    <tr><td style="padding-top:15px;padding-bottom:15px">\n                        <div class="container">\n                        </div>\n                    </td></tr></table>\n                '
                );
              else
                r = $(
                  '\n                    <div builder-element="BlockElement" style="padding-top:15px;padding-bottom:15px">\n                        <div class="container">\n                        </div>\n                    </div>\n                '
                );
              r.find(".container").eq(0).append(i), (i = r);
            }
            if ((i.css("opacity", 0), t.canDropInside(n))) {
              "before" == (o = n.checkTargetPosition(e))
                ? n.obj.prepend(i)
                : "after" == o && n.obj.append(i);
            } else {
              if (!t.canDropBeside(n)) return !1;
              var o;
              "before" == (o = n.checkTargetPosition(e))
                ? n.obj.before(i)
                : "after" == o && n.obj.after(i);
            }
            i.fadeTo(500, 1, function () {
              t.unselect(),
                t.hideControls(),
                t.recordState(getI18n("dropped")),
                t.checkEmpty(),
                void 0 !== t.dragOptions.drop && t.dragOptions.drop(),
                t.draggableItem.afterDrop &&
                  (t.draggableItem.afterDrop(i), (t.draggableItem = null));
            });
          }
        }
      },
      findMouseOverElement: function (e) {
        return $(
          $("#builder_iframe")[0].contentWindow.document.elementFromPoint(
            e.pageX +
              $("#builder_iframe").offset().left -
              $("#builder_iframe").contents().find("body").scrollLeft(),
            e.pageY +
              $("#builder_iframe").offset().top -
              $("#builder_iframe").contents().find("html").scrollTop()
          )
        ).closest('[class*="col-"]');
      },
      initDrag: function () {
        var e = this;
        (e.isDragging = !1),
          $(document).on("mousedown", ".widget-item", function (t) {
            if (!$(t.target).closest(".remove-widget-button").length) {
              var n,
                i = $(this).attr("id");
              (n = e.widgets[i]),
                e.drag(n, {
                  drop: function () {
                    void 0 !== n.drop && n.drop();
                  },
                });
            }
          }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mousemove", "*", function (t) {
              e.isDragging && e.dragging(t);
            }),
          $("#builder_iframe")
            .contents()
            .find("html")
            .on("mouseup", "*", function (t) {
              e.isDragging &&
                (e.drop(t), null != e.selected && e.selected.select());
            }),
          $(document).on("mouseup", "*", function () {
            e.drop(), null != e.selected && e.selected.select();
          }),
          $("#builder_iframe")
            .contents()
            //  .find("body")
            .on("mouseout", "*", function () {
              $("#builder_iframe")
                .contents()
                .find(".drop-element-after-highlight")
                .removeClass("drop-element-after-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-element-after-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-after-element")
                  .removeClass("builder-drop-after-element"),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-element-before-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-before-element")
                  .removeClass("builder-drop-before-element"),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-class-drop-element-highlight")
                  .removeClass("builder-class-drop-element-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-outline")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-inside-label-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-inside-outline")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-row-after-highlight")
                  .removeClass("drop-row-after-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".col-hightlight")
                  .removeClass("col-hightlight");
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mouseup", "*", function () {
              $("#builder_iframe")
                .contents()
                .find(".drop-element-after-highlight")
                .removeClass("drop-element-after-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-element-after-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-after-element")
                  .removeClass("builder-drop-after-element"),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-element-before-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-before-element")
                  .removeClass("builder-drop-before-element"),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-class-drop-element-highlight")
                  .removeClass("builder-class-drop-element-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-outline")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-inside-label-hover")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".builder-drop-inside-outline")
                  .remove(),
                $("#builder_iframe")
                  .contents()
                  .find(".drop-row-after-highlight")
                  .removeClass("drop-row-after-highlight"),
                $("#builder_iframe")
                  .contents()
                  .find(".col-hightlight")
                  .removeClass("col-hightlight");
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mousedown", ".builder-outline-move-hook", function (t) {
              var n = e.selected;
              e.removeInlineEdit(e.selected.obj),
                e.selected.unselect(),
                e.drag(e.selected, {
                  drop: function () {
                    n.obj.remove();
                  },
                });
            });
      },
      inlineEdit: function (e) {
        var t = this;
        if (t.customInlineEdit) t.customInlineEdit(e);
        else {
          if ("default" == t.inlineEditor)
            e[0].hasAttribute("builder-no-inline-edit") ||
              e.notebook({
                modifiers: ["bold", "italic", "underline", "anchor"],
              });
          else if ("tinymce" == t.inlineEditor) {
            var n = [
              "undo redo | bold italic underline fontsizeselect | link | menuDateButton",
            ];
            void 0 !== t.showInlineToolbar &&
              0 == t.showInlineToolbar &&
              (n = []);
            var i = {
              skin: "oxide-dark",
              valid_elements: "*[*]",
              valid_children:
                "+p[ol],+p[ul],+h1[div],+h2[div],+h3[div],+h4[div],+h5[div],+h6[div],+a[div],*[*]",
              allow_html_in_named_anchor: !0,
              inline: !0,
              menubar: !1,
              force_br_newlines: !1,
              force_p_newlines: !1,
              forced_root_block: "",
              relative_urls: !1,
              convert_urls: !1,
              remove_script_host: !1,
              inline_boundaries: !1,
              plugins: "link lists autolink",
              font_formats:
                "Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Oswald=oswald; Symbol=symbol; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva; Webdings=webdings; Wingdings=wingdings,zapf dingbats",
              toolbar: n,
              setup: function (e) {
                /* e.ui.registry.addMenuButton("menuDateButton", {
                  text: getI18n("editor.insert_tag"),
                  fetch: function (n) {
                    var i = [];
                    t.tags.forEach(function (t) {
                      "label" == t.type &&
                        i.push({
                          type: "menuitem",
                          text: t.tag.replace("{", "").replace("}", ""),
                          onAction: function (n) {
                            t.text
                              ? e.insertContent(t.text)
                              : e.insertContent(t.tag);
                          },
                        });
                    }),
                      n(i);
                  },
                }), */
                e.on("change keyup", function (n) {
                  void 0 !== t.inlineEditCallback &&
                    t.inlineEditCallback(e.getContent());
                });
              },
            };
            e.is("td, table, img, body") ||
              (!e.is("[builder-inline-edit]") && t.strict) ||
              (e.addClass("builder-class-tinymce"),
              (i.selector = ".builder-class-tinymce"),
              (t.tinymce =
                $("#builder_iframe")[0].contentWindow.tinymce.init(i)),
              e.removeClass("builder-class-tinymce"));
          }
        }
      },
      removeInlineEdit: function (e) {
        $("#builder_iframe")[0].contentWindow.tinymce.remove();
      },
      loadIframeJs: function (e, t) {
        var n = this;
        if (e.length > 0) {
          var i = document.createElement("script"),
            r = e.shift();
          console.log("loading: " + r),
            (i.type = "text/javascript"),
            (i.src = r),
            i.setAttribute("builder-helper", "true"),
            (i.onload = function () {
              n.loadIframeJs(e, t);
            }),
            $("#builder_iframe")[0].contentWindow.document.head.appendChild(i);
        } else void 0 !== t && t();
      },
      includeIframeJs: function (e, t) {
        var n = this;
        if (e.length > 0) {
          var i = document.createElement("script"),
            r = e.shift();
          console.log("loading: " + r),
            (i.type = "text/javascript"),
            (i.src = r),
            (i.onload = function () {
              void 0 !== t && t(), n.loadIframeJs(e, t);
            }),
            $("#builder_iframe")[0].contentWindow.document.head.appendChild(i);
        }
      },
      loadPageJs: function (e, t) {
        var n = this;
        if (e.length > 0) {
          var i = document.createElement("script"),
            r = e.shift();
          console.log("loading: " + r),
            (i.type = "text/javascript"),
            (i.src = r),
            i.setAttribute("builder-helper", "true"),
            (i.onload = function () {
              n.loadIframeJs(e, t);
            }),
            window.document.head.appendChild(i);
        } else void 0 !== t && t();
      },
      setupIframe: function (e) {
        var t = this;
        $("#builder_iframe")
          .contents()
          .find("head")
          .append(
            '<link builder-helper="true" rel="stylesheet" href="' +
              t.root +
              'iframe/builder-frame.css">'
          ),
          "default" == t.iconStyle
            ? ($("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome-free/css/fontawesome.min.css">'
                ),
              $("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome-free/css/brands.min.css">'
                ),
              $("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome-free/css/solid.min.css">'
                ))
            : "fontawesome" == t.iconStyle &&
              ($("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome/css/fontawesome.min.css">'
                ),
              $("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome/css/light.min.css">'
                ),
              $("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link builder-helper="true" rel="stylesheet" href="' +
                    t.root +
                    'iframe/fontawesome/css/brands.min.css">'
                )),
          $("#builder_iframe")
            .contents()
            .find("head")
            .append(
              '<link builder-helper="true" rel="stylesheet" href="' +
                t.root +
                'iframe/autocomplete.css">'
            );
        var n = [t.root + "iframe/events.js", t.root + "iframe/jquery.min.js"];
        "default" == t.inlineEditor
          ? ($("#builder_iframe")
              .contents()
              .find("head")
              .append(
                '<link builder-helper="true" rel="stylesheet" href="' +
                  t.root +
                  'iframe/editor-notebook/src/js/jquery.notebook.css">'
              ),
            n.push(t.root + "iframe/editor-notebook/src/js/jquery.notebook.js"))
          : "tinymce" == t.inlineEditor &&
            n.push(t.root + "iframe/tinymce/tinymce.min.js"),
          t.loadIframeJs(n, function () {
            t.loadingSetMessage("{language.scripts_loaded}"),
              void 0 !== e && e();
          });
      },
      initIframe: function () {
        var e = this;

        if (
          (e.iframe.on("load", function () {
            e.setupIframe(function () {
              e.loadingSetMessage("{language.finalizing}"),
                e.afterIframeLoaded(),
                void 0 !== e.iframeLoadedCallback && e.iframeLoadedCallback(),
                e.adjustIframeSize(),
                e.done();
            });
          }),
          e.url)
        )
          e.loadingSetMessage("{language.loading_template}"), e.loadUrl(e.url);
        else {
          e.iframe.attr(
            "srcdoc",
            '<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta name="description" content=""><meta name="generator" content="Builderjs"><title>Blank</title></head><body class="" style="width:auto"><div builder-element="PageElement" style="padding-top:50px;padding-bottom:50px;"></div></body></html>'
          );
        }
      },
      loadHtml: function (e) {
        this.unselect(),
          this.hideControls(),
          this.iframe.contents().find("body").html(e),
          this.adjustIframeSize();
      },
      addParameterToURL: function (e, t) {
        return (e += (e.split("?")[1] ? "&" : "?") + t);
      },
      loadUrl: function (e, t) {
        (e = this.addParameterToURL(
          e,
          "builderjscache=" + (Math.random() + 1).toString(36).substring(7)
        )),
          (this.url = e),
          this.iframe.attr("src", this.url),
          void 0 !== t &&
            (this.iframeLoadedCallback = function () {
              t();
            });
      },
      load: function (e) {
        var t = this;
        t.iframeLoadedCallback = function () {
          t.loadHtml(e);
        };
      },
      handleAutocomplete: function () {
        var e = [];
        if (!this.tags) return !1;
        this.tags.forEach(function (t) {
          "label" == t.type && e.push(t.tag);
        }),
          acpAutocomplete(this, e);
      },
      isNotElement: function (e) {
        return !!e[0].hasAttribute("builder-no-select");
      },
      isHelperTarget: function (e) {
        return (
          e.closest(".tox").length > 0 ||
          e.closest(".tox-tinymce").length > 0 ||
          e.closest(".builder-outline-move-hook").length > 0 ||
          e.closest(".builder-outline-selected-controls").length > 0 ||
          e.closest("[f-role=placeholder]").length > 0 ||
          e.closest(".tox-editor-container").length > 0 ||
          e.closest(".bubble").length > 0
        );
      },
      showEditCode: function () {
        this.editHtmlPopup = new PopUp(getI18n("edit_html_code"), "auto");
        var e = $("#EditHtmlModal").html();
        (e = window.beautify.html(e, {
          indent_size: "2",
          indent_char: " ",
          max_preserve_newlines: "5",
          preserve_newlines: !0,
          keep_array_indentation: !1,
          break_chained_methods: !1,
          indent_scripts: "normal",
          brace_style: "expand",
          space_before_conditional: !0,
          unescape_strings: !1,
          jslint_happy: !1,
          end_with_newline: !1,
          wrap_line_length: "80",
          indent_inner_html: !0,
          comma_first: !1,
          e4x: !1,
        })),
          this.editHtmlPopup.loadHtml(e),
          (this.edit_html = ace.edit("EditHtml")),
          this.edit_html.session.setTabSize(4),
          this.edit_html.setValue(this.selected.obj[0].outerHTML),
          this.edit_html.session.setUseWrapMode(!0),
          this.edit_html.setOptions({
            maxLines: (window.innerHeight - 260) / 15,
            minLines: (window.innerHeight - 260) / 15,
          });
      },
      afterIframeLoaded: function () {
        var e = this;

        e.initDrag(),
          void 0 === $("#builder_iframe")[0].contentWindow.beeFormLoaded &&
            ($("#builder_iframe")
              .contents()
              .find("head")
              .html()
              .includes("family=Material+Icons") ||
              ($("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">'
                ),
              $("#builder_iframe")
                .contents()
                .find("head")
                .append(
                  '<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel="stylesheet">'
                )),
            $("#builder_iframe")
              .contents()
              .find("head")
              .append(
                e.transformHtml(
                  '\n                <style builder-helper="true" class="builder-tool">\n                    [builder-element=CellElement]:empty::after {\n                        content: "{language.drag_items_here}";\n                    }\n                </style>\n            '
                )
              ),
            (e.loading += 1)),
          $("#builder_iframe")
            .contents()
            .click(function (t) {
              if (
                !$(t.target).hasClass("builder-outline-move-hook") &&
                !$(t.target).parents(".builder-outline-move-hook").length
              ) {
                (e.clickX = t.offsetX), (e.clickY = t.offsetY);
                for (
                  var n = $(t.target), i = e.elementFactory(n);
                  null != i &&
                  !i.canSelect() &&
                  n.parents("[builder-element]").length;

                )
                  (n = n.parents("[builder-element]").first()),
                    (i = e.elementFactory(n));
                if (null != i && !i.canSelect())
                  return this.elementFactory(
                    i.obj.parents("[builder-element]").first()
                  );
                if (null != i) {
                  t.preventDefault(),
                    $("a.nav-item").removeClass("active show"),
                    $(".tab-pane").removeClass("active show"),
                    $("#nav-home-tab").addClass("active show"),
                    $("#nav-home").addClass("active show");
                  var r = e.selected;
                  e.select(i),
                    (null != r && r.equals(e.selected)) || e.handleSelect();
                }
                clickIframe();
              }
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mouseup", ".builder-duplicate-selected-button", function () {
              e.duplicate();
            }),
          $("#builder_iframe")
            .contents()
            //.find("body")
            .on("mouseup", ".builder-code-selected-button", function () {
              e.showEditCode();
            }),
          $("#builder_iframe")
            .contents()
            //.find("body")
            .on("mouseup", ".builder-remove-selected-button", function () {
              e.remove();
            }),
          $("#builder_iframe")
            .contents()
            //   .find("body")
            .on("mouseup", ".builder-add-widget-button", function () {
              e.addCustomWidget(e.selected, e.selected.obj);
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mouseup", ".builder-select-parent-button", function () {
              e.selectParent(e.selected);
            }),
          $("#builder_iframe")
            .contents()
            //.find("body")
            .keydown(function (t) {
              90 === t.which && t.ctrlKey
                ? e.undo()
                : 89 === t.which && t.ctrlKey && e.redo();
            }),
          $("#builder_iframe")
            .contents()
            //.find("body")
            .on("mouseover", "*", function (t) {
              if (!e.isDragging) {
                for (
                  var n = $(t.target), i = e.elementFactory(n);
                  null != i &&
                  !i.canHover() &&
                  n.parents("[builder-element]").length;

                )
                  (n = n.parents("[builder-element]").first()),
                    (i = e.elementFactory(n));
                if (null != i) {
                  if (i.equals(e.selected)) return !0;
                  i.highlight();
                }
              }
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("mouseout", "*", function (t) {
              var n = e.elementFactory($(t.target));
              if (null != n) {
                if (n.equals(e.selected)) return !0;
                n.unhighlight();
              }
            }),
          $("#builder_iframe")
            .contents()
            //  .find("body")
            .on("keyup", "*", function () {
              null != e.selected &&
                (e.selected.adjustSelectOutlinePosition(),
                e.selected.adjustSelectControlsPosition(),
                e.selected.adjustSelectMoveButtonPosition());
            }),
          $("#builder_iframe")
            .contents()
            //.find("body")
            .on("click", "*", function () {
              $(".template-thumbnail").hide(),
                $("ul.action-sync").removeClass("show-action"),
                $("ul.action-lang").removeClass("show-action"),
                $(".action-preview").removeClass("add-background-color"),
                $("ul.display").removeClass("hienlen"),
                $(".view-mode").removeClass("add-background-color"),
                $("ul.display-view-mode").removeClass("hienlen"),
                $(".design-menu").removeClass("add-background-design"),
                $("ul.design").removeClass("display-menu"),
                $(".action-choose-template").removeClass(
                  "add-background-choose"
                ),
                $("ul.display-template").removeClass("display-choose-template");
            }),
          e.adjustIframeSize(),
          e.handleAutocomplete(),
          e.recordState(),
          e.loadWidgets(),
          (e.initContent = e.getContent()),
          e.checkEmpty(),
          e.preventFormElementEvents(),
          document
            .getElementById("builder_iframe")
            .contentWindow.addEventListener("resize", function () {
              null != e.selected && e.selected.select();
            }),
          $("#builder_iframe")
            .contents()
            // .find("body")
            .on("click", "a", function (e) {
              e.preventDefault();
            }),
          e.goToHomeTab(),
          $(
            document.getElementById("builder_iframe").contentWindow.document
          ).ready(function () {
            e.adjustIframeSize(),
              setTimeout(function () {
                e.adjustIframeSize();
              }, 3000);
          });
      },
      goToHomeTab: function () {
        this.defaultTab && "FieldsList" == this.defaultTab
          ? goToListFieldsPage()
          : goToHtmlWidgetsPage();
      },
      preventFormElementEvents: function () {
        $("#builder_iframe")
          .contents()
          .find("body")
          .html($("#" + currentEditor.id).val());

        $("#builder_iframe")
          .contents()
          .find("select,input,textarea")
          .on("mousedown", function (e) {
            e.preventDefault(), this.blur(), window.focus();
          });
      },
      adjustIframeSize: function () {
        var e = document.getElementById("builder_iframe"),
          t = e.contentWindow.document.body.scrollHeight;
        t < 200 && (t = 200);
        var n =
          t +
          (parseInt(
            $(
              document.getElementById("builder_iframe").contentWindow.document
                .documentElement
            ).css("padding-top")
          ) +
            parseInt(
              $(
                document.getElementById("builder_iframe").contentWindow.document
                  .documentElement
              ).css("padding-bottom")
            )) +
          "px";
        (e.style.height = n),
          null != this.selected && this.selected.select(),
          $(".content-background").css("height", n);
      },
      adjustPreviewIframeSize: function () {
        var e = document.getElementById("previewIframeDesktop"),
          t =
            e.contentWindow.document.body.scrollHeight +
            (parseInt(
              $(e.contentWindow.document.documentElement).css("padding-top")
            ) +
              parseInt(
                $(e.contentWindow.document.documentElement).css(
                  "padding-bottom"
                )
              ));
        e.style.height = t + "px";
      },
      getDefaultWidgetClassNames: function () {
        return this.strict
          ? [
              "OneColumnWidget",
              "TwoColumnsWidget",
              "ThreeColumnsWidget",
              "CenterLogoWidget",
              "TextWidget",
              //"ImageWidget",
              "MyImageWidget",
              "IntroBlockWidget",
              "OneColumnBlockWidget",
              "TwoColumnsBlockWidget",
              "ThreeColumnsBlockWidget",
              "YoutubeWidget",
              "SocialLinksBlockWidget",
              //  "PricingTableWidget",
              "DividerWidget",
              "BoxedTextWidget",
              "HeaderBlockWidget",
              "HeroImageWidget",
              "TwoArticlesBlockWidget",
              "TwoArticlesRTLBlockWidget",
              "FooterBlockWidget",
              "ButtonWidget",
              "Button2Widget",
              //  "VideoWidget",
              "TableWidget",
              "Table4Widget",
              "Table5Widget",
            ]
          : [
              "TextWidget",
              "DividerWidget",
              "ButtonWidget",
              "ImageWidget",
              // "VideoWidget",
              "HtmlWidget",
              "ImageCaptionWidget",
              "FooterWidget",
              "HeaderWidget",
              "ListImageWidget",
              "ProgressBarWidget",
              "ListGroupWidget",
              "PanelWidget",
              "JumbotronWidget",
              "MeterialWidget",
              "NavbarWidget",
              "PricingTableWidget",
              "ServicesListWidget",
              "ImageGridWidget",
              "ParagraphWidget",
              "MarkedTextWidget",
              "DefinitionListWidget",
              "BlockqouteWidget",
              "UnorderedListWidget",
              "LinkWidget",
              "ButtonGroupWidget",
              "ButtonToolbarWidget",
              "InputFieldWidget",
              "TextAreaWidget",
              "CheckboxWidget",
              "InputGroupWidget",
              "FormGroupWidget",
              "SelectWidget",
              "FormWidget",
            ];
      },
      loadWidgets: function () {
        var thisEditor = this;
        (thisEditor.widgets = {}),
          (thisEditor.content_widgets_bar = $("#builder_sidebar").find(
            ".content_widget_container"
          )),
          thisEditor.content_widgets_bar.html(""),
          (thisEditor.row_widgets_bar = $("#builder_sidebar").find(
            ".row_widget_container"
          )),
          thisEditor.row_widgets_bar.html(""),
          (thisEditor.form_widgets_bar = $(".fields-container")),
          thisEditor.form_widgets_bar.html(""),
          void 0 === thisEditor.disableWidgets &&
            (thisEditor.disableWidgets = []),
          void 0 === thisEditor.extendedWidgets &&
            (thisEditor.extendedWidgets = []),
          thisEditor.formFields &&
            thisEditor.formFields.length &&
            (thisEditor.formFields.forEach(function (field) {
              var className =
                  field.type.charAt(0).toUpperCase() +
                  field.type.slice(1) +
                  "FieldWidget",
                widget = eval("new " + className + "(field)");
              thisEditor.addWidget(widget, {
                index: 0,
                group: "form",
              });
            }),
            thisEditor.addWidget(new SubmitButtonWidget(), {
              index: 0,
              group: "form",
            }),
            $(".content-left").addClass("content-form-mode")),
          this.getDefaultWidgetClassNames().forEach(function (widgetName) {
            if (!thisEditor.disableWidgets.includes(widgetName)) {
              var widget = eval("new " + widgetName + "()");
              thisEditor.addWidget(widget);
            }
          }),
          this.extendedWidgets.forEach(function (widgetName) {
            var widget = eval("new " + widgetName + "()");
            thisEditor.addWidget(widget, {
              index: 5,
            });
          });
      },
      moreLessWidgetsSetup: function () {
        $(".widgets-section").each(function () {
          var e = $(this),
            t = e.find(".widget-item");
          t.removeClass("hide"),
            t.slice(18).addClass("hide"),
            e.find("a.link-show_more").on("click", function () {
              e.find(".widget-item").slice(18).removeClass("hide"),
                e.find("a.link-show_more").hide(),
                e.find("a.link-hide_less").show();
            }),
            e.find("a.link-hide_less").on("click", function () {
              e.find(".widget-item").slice(18).addClass("hide"),
                e.find("a.link-hide_less").hide(),
                e.find("a.link-show_more").show();
            }),
            t.length < 18 &&
              (e.find("a.link-hide_less").hide(),
              e.find("a.link-show_more").hide());
        });
      },
      selectParent: function (e) {
        var t = e.obj.parent();
        for (
          e = this.elementFactory(t);
          null != e && !e.canSelect() && t.parents("[builder-element]").length;

        )
          (t = t.parents("[builder-element]").first()),
            (e = this.elementFactory(t));
        null != e
          ? (this.select(e), this.handleSelect())
          : (this.unselect(), this.hideControls());
      },
      transformHtml: function (e) {
        return this.setIcons(this.updateLanguage(this.prepairUrls(e)));
      },
      addWidget: function (e, t) {
        t || (t = {}),
          void 0 === t.group && (t.group = "general"),
          void 0 === t.index && (t.index = this.widgetsStack.length),
          this.isInitialized
            ? this.addContentWidget(e, t.index, t.group)
            : (this.widgetsStack.push({
                widget: e,
                group: t.group,
                index: t.index,
              }),
              this.widgetsStack.sort((e, t) => e.index > t.index));
      },
      addContentWidget: function (e, t, n) {
        this.widgets[e.id] = e;
        var i =
            '<div class="widget-item content-widget" id="' +
            e.id +
            '" class-name="' +
            e.getHtmlId() +
            '" f-library="true">' +
            this.transformHtml(e.getButtonHtml()) +
            "</div>",
          r = this.content_widgets_bar;
        null !== n &&
          ($('[widgets-group="' + n + '"]').length ||
            $(".widgets-sections").append(
              this.transformHtml(
                '\n                    <div class="widgets-section widgets-other mb-4" widgets-group="' +
                  n +
                  '">\n                        <label class="block-title">' +
                  n +
                  '</label>\n                        <div class="widget-list">                  \n                        </div>\n                        <div class="load-show_more" style="display:flex;justify-content:center">\n                            <a class="link-widget link-show_more" title="{language.navbar.contents.show_more.loading}" style="cursor: pointer; padding: 5px 20px; background: rgb(229, 229, 229); border-radius: 2px;">{language.navbar.contents.show_more.loading}</a>\n                            <a class="link-widget link-hide_less" title="{language.navbar.contents.show_less.loading}" style="cursor: pointer; padding: 5px 20px; background: rgb(229, 229, 229); border-radius: 2px; display: none;">{language.navbar.contents.show_less.loading}</a>\n                        </div>\n                    </div>\n                '
              )
            ),
          (r = $('[widgets-group="' + n + '"] .widget-list')));
        var o = $(this.transformHtml(i));
        return (
          null !== t && r.children().eq(t).length
            ? r.children().eq(t).before(o)
            : r.append(o),
          o
        );
      },
      addCustomCss: function (e) {
        $("#builder_iframe")
          .contents()
          .find("head")
          .append(
            '<link builder-helper="true" rel="stylesheet" href="' + e + '">'
          );
      },
      addCustomWidget: function (e, t) {
        var n = this,
          i = new CustomWidget();
        (i.contentHtml = e.obj[0].outerHTML), (n.addingWidget = i);
        var r = new PopUp(getI18n("add_widget"), "auto");
        r.loadHtml($("#WidgetNameToolbox").html().replace("[ID]", i.id)),
          $(document).on(
            "click",
            ".btn-add-custom-widget-" + i.id,
            function () {
              var e = "";
              (e =
                "" != $("#CustomWidgetName").val().trim()
                  ? $("#CustomWidgetName").val().trim()
                  : getI18n("my_widget")),
                (n.addingWidget.buttonHtml = n.addingWidget.buttonHtml.replace(
                  /\[NAME\]/g,
                  e
                )),
                (n.addingWidget.draggingHtml =
                  n.addingWidget.buttonHtml.replace(/\[NAME\]/g, e));
              var i = n.addWidget(n.addingWidget);
              r.hide();
              var o = $(
                '<div class="widget-moving-box">' +
                  $("#CustomWidget")
                    .html()
                    .replace(/\[NAME\]/g, e) +
                  "</div>"
              );
              $(".detail-content").removeClass("dilen"),
                $(".tab-content").removeClass("hide-scroll-bar"),
                i.css({
                  opacity: 0,
                }),
                $("#nav-tabContent").animate(
                  {
                    scrollTop: $("#nav-tabContent")[0].scrollHeight,
                  },
                  300,
                  function () {
                    var e = i.offset().top,
                      r = i.offset().left;
                    o
                      .appendTo("body")
                      .css({
                        position: "fixed",
                        top:
                          t.offset().top +
                          $("#builder_iframe").offset().top -
                          $("#builder_iframe")
                            .contents()
                            .find("body")
                            .scrollTop() +
                          n.selected.obj.outerHeight() / 2 -
                          o.outerHeight() / 2,
                        left:
                          t.offset().left +
                          n.selected.obj.outerWidth() / 2 -
                          o.outerWidth() / 2,
                      })
                      .animate(
                        {
                          top: e,
                          left: r,
                          opacity: 0.2,
                        },
                        1e3,
                        function () {
                          i.animate(
                            {
                              opacity: 1,
                            },
                            300
                          );
                        }
                      )
                      .fadeOut(300),
                      n.notificationArea(getI18n("widget_success"));
                  }
                );
            }
          );
      },
      doExport: function () {
        var e = this;
        e.runBeforeSaveEvents(), e.cleanUpContent();
        var t = e.getContent(),
          n = "";
        if (null != e.data)
          for (var i in e.data) {
            if (e.data.hasOwnProperty(i))
              n =
                n +
                '<input type="hiden" name="' +
                i +
                '" value="' +
                e.data[i] +
                '" />';
          }
        $("#exportForm").remove(),
          $(
            '\n            <form id="exportForm" style="display:none" action="' +
              e.export.url +
              '" method="POST" target="_blank">\n                ' +
              n +
              '\n                <textarea name="content"></textarea>\n            </form>'
          )
            .appendTo("body")
            .find("textarea[name=content]")
            .val(t),
          setTimeout(function () {
            $.ajax({
              url: e.export.url,
              type: "POST",
              headers: e.header,
              xhrFields: {
                responseType: "blob",
              },
              data: $("#exportForm").serialize(),
              success: function (e, t, n) {
                var i = "",
                  r = n.getResponseHeader("Content-Disposition");
                if (r && -1 !== r.indexOf("attachment")) {
                  var o = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(r);
                  null != o && o[1] && (i = o[1].replace(/['"]/g, ""));
                }
                if (void 0 !== window.navigator.msSaveBlob)
                  window.navigator.msSaveBlob(e, i);
                else {
                  var s = window.URL || window.webkitURL,
                    a = s.createObjectURL(e);
                  if (i) {
                    var l = document.createElement("a");
                    void 0 === l.download
                      ? (window.location.href = a)
                      : ((l.href = a),
                        (l.download = i),
                        document.body.appendChild(l),
                        l.click());
                  } else window.location.href = a;
                  setTimeout(function () {
                    s.revokeObjectURL(a);
                  }, 100);
                }
              },
            }).fail(function (e, t, n) {
              try {
                $.parseJSON(e.responseText);
              } catch (t) {
                return void Swal.fire({
                  title: getI18n("error_job"),
                  text: e.responseText,
                  type: "error",
                });
              }
              Swal.fire({
                title: getI18n("error_job"),
                text: $.parseJSON(e.responseText).message,
                type: "error",
              });
            });
          }, 100);
      },
      loadEvents: function () {
        var e = this;
        $(document).on("click", ".pr-desktop", function () {
          e.showPreview("desktop");
        }),
          $(document).on("click", ".pr-mobile", function () {
            e.showPreview("mobile");
          }),
          $(document).on("click", ".close-preview", function () {
            e.closePreview();
          }),
          $(document).on("click", ".click-active-preview", function () {
            $(".click-active-preview").removeClass("active-preview"),
              $(this).addClass("active-preview");
          }),
          $("#btnClone").click(function () {
            e.duplicate();
          }),
          $(document).on("click", "a.save-design, .bp-save", function (t) {
            t.preventDefault(), e.save();
          }),
          $(document).on(
            "click",
            ".menu-bar-action.btn-save-and-close",
            function (t) {
              t.preventDefault(),
                e.save(function () {
                  void 0 !== e.backCallback
                    ? e.backCallback()
                    : (window.location.href = e.urlBack);
                });
            }
          ),
          $(document).on("click", ".menu-bar-action.btn-export", function (t) {
            t.preventDefault(),
              Swal.fire({
                title: getI18n("are_you_sure"),
                text: getI18n("export_template_confirm"),
                type: "warning",
                showCancelButton: !0,
                confirmButtonColor: "#3085d6",
                cancelButtonColor: "#d33",
                confirmButtonText: getI18n("ok"),
              }).then((t) => {
                t.value && null != e.export && e.doExport();
              });
          }),
          $(document).on("click", ".preview-design-desktop", function () {
            e.showPreview("desktop");
          }),
          $(document).on("click", ".preview-design-mobile", function () {
            e.showPreview("mobile");
          }),
          $(document).on("click", ".view-mode-design", function () {
            return e.viewDesign(), !1;
          }),
          $(document).on(
            "click",
            ".view-mode-source, .bp-view-source",
            function () {
              return e.viewSource(), !1;
            }
          ),
          $(document).on("click", ".hover-name-template", function (t) {
            t.preventDefault();
            var n = $(this).attr("template-url");
            e.changeTemplate(n);
          }),
          $(document).on("click", ".new-from-template-select", function (t) {
            t.preventDefault();
            var n = $(this).attr("href");
            e.changeTemplate(n);
          }),
          $(document).on("click", "img.img-template", function (t) {
            t.preventDefault();
            var n = $(this).attr("template-url");
            e.changeTemplate(n);
          }),
          $(document).on("click", "a.back", function (t) {
            t.preventDefault(), e.back();
          }),
          $(document).on(
            "click",
            ".menu-bar-action.btn-close, .bp-exit",
            function (t) {
              t.preventDefault(), e.back();
            }
          ),
          $(document).on(
            "click",
            ".builder-duplicate-selected-button, .bp-duplicate",
            function () {
              e.duplicate();
            }
          ),
          $(document).on(
            "click",
            ".builder-remove-selected-button, .bp-delete",
            function () {
              e.remove();
            }
          ),
          $("#builder_sidebar").on("click", ".desktop", function () {
            e.hideOnDesktop();
          }),
          $("#builder_sidebar").on("click", ".mobile", function () {
            e.hideOnMobile();
          }),
          $("#builder_sidebar").on(
            "click",
            ".icon-remove-two-screen",
            function () {
              e.removeHideOnTowScreen();
            }
          ),
          $(".chonfont").click(function () {
            $("div.language").toggleClass("bangchon"),
              $(".arrows-button").toggleClass("doimau");
          }),
          $(".click-chon").click(function () {
            e.showControls();
          }),
          $("a.move").click(function () {
            return e.unselect(), e.hideControls(), !1;
          }),
          $("*:not(.choose-sync)").click(function () {
            $("ul.action-sync").removeClass("show-action");
          }),
          $("*:not(.choose-lang)").click(function () {
            $("ul.action-lang").removeClass("show-action");
          }),
          $("*:not(.menu-bar)").click(function (e) {
            $(e.target).closest(
              ".action-preview, ul.display, .view-mode, ul.display-view-mode, .design-menu, ul.design, .action-choose-template, ul.display-template"
            ).length
              ? $("div.template-thumbnail").hide()
              : ($("div.template-thumbnail").hide(),
                $(".action-choose-template").removeClass(
                  "add-background-choose"
                ),
                $("ul.display-template").removeClass("display-choose-template"),
                $(".view-mode").removeClass("add-background-color"),
                $("ul.display-view-mode").removeClass("hienlen"),
                $(".design-menu").removeClass("add-background-design"),
                $("ul.design").removeClass("display-menu"),
                $(".preview-page").removeClass("add-background-color"),
                $(".preview-page").find("ul.display").removeClass("hienlen"));
          }),
          $(".design-menu").click(function () {
            $(this).toggleClass("add-background-design"),
              $(this).find("ul.design").toggleClass("display-menu"),
              $(".action-choose-template").removeClass("add-background-choose"),
              $("ul.display-template").removeClass("display-choose-template"),
              $(".view-mode").removeClass("add-background-color"),
              $("ul.display-view-mode").removeClass("hienlen"),
              $(".action-preview").removeClass("add-background-color"),
              $("ul.display").removeClass("hienlen");
          }),
          $(".preview-page").click(function () {
            $(this).toggleClass("add-background-color"),
              $(this).find("ul.display").toggleClass("hienlen"),
              $(".action-choose-template").removeClass("add-background-choose"),
              $("ul.display-template").removeClass("display-choose-template"),
              $(".view-mode").removeClass("add-background-color"),
              $("ul.display-view-mode").removeClass("hienlen"),
              $(".design-menu").removeClass("add-background-design"),
              $("ul.design").removeClass("display-menu");
          }),
          $(".view-mode").click(function () {
            $(this).toggleClass("add-background-color"),
              $(this).find("ul.display-view-mode").toggleClass("hienlen"),
              $(".action-choose-template").removeClass("add-background-choose"),
              $("ul.display-template").removeClass("display-choose-template"),
              $(".action-preview").removeClass("add-background-color"),
              $("ul.display").removeClass("hienlen"),
              $(".design-menu").removeClass("add-background-design"),
              $("ul.design").removeClass("display-menu");
          }),
          $(".action-choose-template").click(function () {
            $(this).toggleClass("add-background-choose"),
              $(this)
                .find("ul.display-template")
                .toggleClass("display-choose-template"),
              $(".action-preview").removeClass("add-background-color"),
              $("ul.display").removeClass("hienlen"),
              $(".view-mode").removeClass("add-background-color"),
              $("ul.display-view-mode").removeClass("hienlen"),
              $(".design-menu").removeClass("add-background-design"),
              $("ul.design").removeClass("display-menu"),
              $("div.template-thumbnail").hide();
          }),
          $(document).on("mouseover", "li.hover-name-template", function () {
            var e = $(this).attr("data-thumbnail"),
              t = $(this).attr("template-url");
            $(".template-thumbnail img.img-template").attr("template-url", t),
              $(".template-thumbnail img.img-template").attr("src", e),
              $(".template-thumbnail").show();
          }),
          $(document).on("click", "li.device", function () {
            $(".icon-mode").css("color", "rgb(150, 150, 150)"),
              $(this).find(".icon-mode").css("color", "white"),
              $(".content-background").removeClass("mode-mobile"),
              $(".content-background").removeClass("mode-tablet"),
              $(".content-background").removeClass("mode-desktop");
            var e = $(this).attr("data-mode");
            $("img.bg-image").attr("data-mode", e),
              $("li.change-background").attr("data-mode", e);
          }),
          $(document).on("click", "li.mode-mobile", function () {
            e.backgroundModeMobile();
          }),
          $(document).on("click", "li.box-mode-mobile", function () {
            e.backgroundModeMobile();
          }),
          $(document).on("click", "li.mode-tablet", function () {
            e.backgroundModeTablet();
          }),
          $(document).on("click", "li.box-mode-tablet", function () {
            e.backgroundModeTablet();
          }),
          $(document).on("click", "li.mode-desktop", function () {
            e.backgroundModeDesktop();
          }),
          $(document).on("click", "li.box-mode-desktop", function () {
            e.backgroundModeDesktop();
          }),
          $(document).on(
            "click",
            ".group-device li.device-screen",
            function () {
              $(".content-background").removeClass(
                "mode-mobile-320 mode-mobile-360 mode-mobile-375 mode-mobile-414 mode-tablet-768 mode-tablet-1024 mode-desktop-1280 mode-desktop-1360 mode-desktop-1920 mode-mobile mode-tablet mode-desktop"
              ),
                $(this).hasClass("_320")
                  ? $(".content-background").addClass("mode-mobile-320")
                  : $(this).hasClass("_360")
                  ? $(".content-background").addClass("mode-mobile-360")
                  : $(this).hasClass("_375")
                  ? $(".content-background").addClass("mode-mobile-375")
                  : $(this).hasClass("_414")
                  ? $(".content-background").addClass("mode-mobile-414")
                  : $(this).hasClass("_768")
                  ? $(".content-background").addClass("mode-tablet-768")
                  : $(this).hasClass("_1024")
                  ? $(".content-background").addClass("mode-tablet-1024")
                  : $(this).hasClass("_1280")
                  ? $(".content-background").addClass("mode-desktop-1280")
                  : $(this).hasClass("_1360")
                  ? $(".content-background").addClass("mode-desktop-1360")
                  : $(this).hasClass("_1920") &&
                    $(".content-background").addClass("mode-desktop-1920");
            }
          ),
          $("span.padding-img").click(function () {
            $(".padding-img").toggleClass("hienlen"),
              $("._1_minus-plus.img").toggleClass("andi");
          }),
          $(document).on("click", "span.slider.disable", function () {
            $("input.myRanges").prop("disabled", !0),
              $("label.check-disable").addClass("andi"),
              $("label.check-enable").addClass("hienthi"),
              $("input.color-default").addClass("color-blue");
          }),
          $(document).on("click", "span.slider.enable", function () {
            $("input.myRanges").prop("disabled", !1),
              $("label.check-disable").removeClass("andi"),
              $("label.check-enable").removeClass("hienthi"),
              $("input.color-default").removeClass("color-blue");
          }),
          $(document).on("click", "span.slider.all-padding", function () {
            $("label.check-all-padding").addClass("andi"),
              $("label.check-4-padding").addClass("hienthi"),
              $(".all-padding-section").addClass("andi"),
              $(".four-padding-section").addClass("hienlen");
          }),
          $(document).on("click", "span.slider._4-padding", function () {
            $("label.check-all-padding").removeClass("andi"),
              $("label.check-4-padding").removeClass("hienthi"),
              $(".all-padding-section").removeClass("andi"),
              $(".four-padding-section").removeClass("hienlen");
          }),
          $("button.owp").click(function () {
            $("ul.down-menu").toggleClass("hienlen"),
              $(".owp").toggleClass("change-background");
          }),
          $(".spacing").click(function () {
            $("ul.select-down").toggleClass("hienlen"),
              $("input.spacing").toggleClass("change-background");
          }),
          $("._4icon").click(function () {
            $(".display-icon").toggleClass("box-icon-display");
          }),
          $(".thongso ul li span.icon-align").click(function () {
            $("span.icon-align").removeClass("active"),
              $(this).addClass("active");
          }),
          $("li img.icon-line-height").click(function () {
            $(".icon-line-height").removeClass("active"),
              $(this).addClass("active");
          }),
          $(document).on("click", "span.dijitDialogCloseIcon", function () {
            $(".dijitDialogShow.dijitDialog").remove(),
              $(".dijitDialogUnderlayWrapper").remove();
          }),
          $(document).on("click", "#nav-home-tab", function () {
            $(".detail-content").removeClass("dilen"),
              $(".tab-content").removeClass("hide-scroll-bar"),
              e.unselect(),
              e.hideControls();
          }),
          $(document).on("click", "#nav-profile-tab, .bp-setting", function () {
            $("#builder_iframe")
              .contents()
              .find("[builder-element='PageElement']")
              .click();
          }),
          $(document).on("click", "#nav-contact-tab", function () {
            $(".tab-content").addClass("hide-scroll-bar");
          }),
          $(document).on("change", "#myRange", function () {
            var e = $(this).val(),
              t = $("#builder_iframe").contents().find("body");
            t.css("width", e), t.css("margin", "auto");
          }),
          $(document).on("change", "#background-color", function () {
            var e = $(this).val();
            $("#text-bg-color").val(e),
              $("#builder_iframe")
                .contents()
                .find("body")
                .css("background-color", e);
          }),
          $(document).on("change", "#content-background-color", function () {
            var e = $(this).val();
            $("#text-content-bg-color").val(e),
              $("#builder_iframe")
                .contents()
                .find("body")
                .find("*")
                .css("background-color", e);
          }),
          $(document).on("click", "a.font-family", function () {
            var e = $(this).attr("data-font");
            $("button.chonfont").html(e),
              $("#builder_iframe")
                .contents()
                .find("body")
                .css("font-family", e),
              $(".language").removeClass("bangchon");
          }),
          $(document).on("change", "#link-color", function () {
            var e = $(this).val();
            $("#text-link-color").val(e),
              $("#builder_iframe").contents().find("a").css("color", e);
          }),
          $(document).on("click", ".action-tab", function () {
            $(".action-tab").removeClass("tab-active"),
              $(this).addClass("tab-active"),
              $(".tab-bg-active").removeClass("tab-bg-active");
          }),
          $(document).on(
            "click",
            ".video-container-modal li.tab-url",
            function () {
              $(".content-tab-url").show(), $(".content-tab-upload").hide();
            }
          ),
          $(document).on(
            "click",
            ".video-container-modal li.tab-upload",
            function () {
              $(".content-tab-url").hide(), $(".content-tab-upload").show();
            }
          ),
          $(document).on("change", "input.file-upload-url", function (e) {
            var t = e.target.files[0].name;
            $("span.des-upload-video").text(t);
          }),
          $(document).on("click", ".btn-tag-copy", function () {
            $(this).closest("li.tags").find("input")[0].select(),
              document.execCommand("copy");
            var t = getI18n("copy_tag");
            e.notificationArea(t);
          }),
          $(document).on("click", ".tag-item", function () {
            $(this).find("input")[0].select(), document.execCommand("copy");
            var t = getI18n("copy_tag");
            e.notificationArea(t);
          }),
          $(document).on("click", ".design-new", function () {
            e.newDesign();
          }),
          $(document).on("click", ".design-clear", function () {
            e.clearDesign();
          }),
          $(document).on("click", ".design-from-template", function () {
            e.showTemplatePopup();
          }),
          $(document).on("click", "a.copy-url", function (t) {
            t.preventDefault(),
              $(this)
                .closest(".link-image")
                .find("input.url-image")[0]
                .select(),
              document.execCommand("copy");
            var n = getI18n("copy_url_success");
            e.notificationArea(n);
          }),
          $(document).on("click", ".undo-redo-action-history", function () {
            $(".undo-redo__history--wrapper").toggleClass("show-history");
          }),
          $(document).on(
            "click",
            ".undo-redo-action-undo, .action.undo",
            function () {
              e.undo();
            }
          ),
          $(document).on(
            "click",
            ".undo-redo-action-redo, .action.redo",
            function () {
              e.redo();
            }
          ),
          $(document).on("click", ".remove-widget-button", function () {
            $(this)
              .closest(".widget-item")
              .fadeOut(300, function () {
                $(this).remove();
              });
          }),
          $(document).on("click", ".ask-help", function (t) {
            t.preventDefault();
            var n = new helpPopUp(),
              i = e.root + "../manual?v=4";
            n.load(i);
          }),
          $(document).on("click", ".choose-lang", function (e) {
            e.preventDefault(), $("ul.action-lang").toggleClass("show-action");
          }),
          $(document).on("click", ".choose-sync", function (e) {
            e.preventDefault(), $("ul.action-sync").toggleClass("show-action");
          }),
          $(document).on("click", ".btn-sync", function (t) {
            t.preventDefault(), e.save();
          }),
          $(document).on("click", "li.synchronization", function (t) {
            t.preventDefault();
            var n = $(this).attr("data-title");
            e.synchronization($(this));
            var i = getI18n("syn_with") + n;
            e.notificationArea(i);
          }),
          $(document).on("click", "li.setting", function (t) {
            t.preventDefault(), e.settingSync();
          }),
          $(document).on("mouseover", ".box-popup-right", function () {
            $(this).addClass("box-over"), $(this).removeClass("box-out");
          }),
          $(document).on("mouseout", ".box-popup-right", function () {
            $(this).addClass("box-out"), $(this).removeClass("box-over");
          }),
          $(document).on("click", ".box-popup-right", function () {
            $(".right-box").toggleClass("show"),
              $("i.icon-box").toggleClass("change-icon"),
              $(this).toggleClass("distance-right"),
              $("#builderModal").toggleClass("show-popup-right"),
              $(this).hasClass("distance-right")
                ? ($(".box-popup-right.distance-right").attr(
                    "title",
                    "Hide apps"
                  ),
                  $(".box-popup-right .icon").html("chevron_right"))
                : ($(".box-popup-right").attr("title", "Show apps"),
                  $(".box-popup-right .icon").html("chevron_left")),
              new PopUp("", "xright", "right").loadHtmlXright();
          }),
          $("li#box-mode-mobile").hover(
            function () {
              $("ul.group-mobile").addClass("show");
            },
            function () {
              $("ul.group-mobile").removeClass("show");
            }
          ),
          $("li#box-mode-tablet").hover(
            function () {
              $("ul.group-tablet").addClass("show");
            },
            function () {
              $("ul.group-tablet").removeClass("show");
            }
          ),
          $("li#box-mode-desktop").hover(
            function () {
              $("ul.group-desktop").addClass("show");
            },
            function () {
              $("ul.group-desktop").removeClass("show");
            }
          ),
          $("li#background-option").hover(
            function () {
              $("ul.group-background").addClass("show");
            },
            function () {
              $("ul.group-background").removeClass("show");
            }
          ),
          $("li.box-device").hover(function () {
            $("li.box-device").removeClass("background-active"),
              $(this).addClass("background-active");
          }),
          $(document).on("click", "li.box-device", function () {
            $(".box-device.active").removeClass("active"),
              $(this).addClass("active");
          }),
          $(document).on("click", "li.device-bg img.bg-image", function (e) {
            e.preventDefault();

            var t = $(this).attr("data-mode"),
              n = $(this).attr("src");
            $("#editable").css("background-image", "url(" + n + ")"),
              $("#editable").css("background-size", "contain"),
              $("#editable").css("background-position", "inherit"),
              $(".content-background").addClass(t);
          }),
          $(document).on("click", "li.change-background", function () {
            var e = $(this).attr("data-mode");
            $(".content-background").addClass(e);
          }),
          $(document).on("click", "a.design-upload-template", function (e) {
            e.preventDefault();
            var t = $("#uploadTemplate").html();
            new PopUp("Upload Template", "auto").loadHtml(t);
          }),
          $(document).on("change", "input.file-upload-template", function () {
            var e = this.files[0].name;
            $("span.des-upload").text(e);
          }),
          $(document).on("click", "#buttonUploadTemplate", function (t) {
            t.preventDefault();
            var n = e.uploadTemplateUrl;
            e.uploadTemplate(n);
          }),
          $(document).on("click", ".edit-html-save-button", function (t) {
            t.preventDefault();
            e.selected;
            var n = e.edit_html.getValue(),
              i = $(n);
            e.selected.obj.replaceWith(i);
            var r = e.elementFactory(i);
            null !== r && (e.select(r), e.handleSelect()),
              e.editHtmlPopup.hide();
          }),
          $(".content-left, .themewp-content, .content-background")
            .click(function () {
              e.unselect(), e.hideControls();
            })
            .children()
            .click(function (e) {
              return !1;
            });
      },
      changeActiveDevice: function () {
        $(".box-mode-mobile").removeClass("active"),
          $(".box-mode-tablet").removeClass("active"),
          $(".box-mode-desktop").removeClass("active"),
          $(".box-mode-mobile").removeClass("background-active"),
          $(".box-mode-tablet").removeClass("background-active"),
          $(".box-mode-desktop").removeClass("background-active");
      },
      backgroundModeMobile: function () {
        var e = this;
        $(".content-background").addClass("mode-mobile"),
          $(".content-background").removeClass(
            "mode-tablet mode-tablet-768 mode-tablet-1024"
          ),
          $(".content-background").removeClass(
            "mode-desktop mode-desktop-1280 mode-desktop-1360 mode-desktop-1920"
          ),
          $("li.mode-mobile").find("i.icon-mode").css("color", "white"),
          $("li.mode-tablet")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          $("li.mode-desktop")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          e.changeActiveDevice(),
          $("ul.box-mode li#box-mode-mobile").addClass("active"),
          $("ul.box-mode li#box-mode-mobile").addClass("background-active");
        var t = document.getElementById("builder_iframe"),
          n = $(".content-background.mode-mobile").width();
        (t.style.width = n + "px"),
          $("#builder_iframe")
            .contents()
            .find("body")
            .removeClass(function (e, t) {
              return (t.match(/(^|\s)builder-class-mode-\S+/g) || []).join(" ");
            }),
          $("#builder_iframe")
            .contents()
            .find("body")
            .addClass("builder-class-mode-mobile"),
          setTimeout(function () {
            e.adjustIframeSize();
          }, 500);
      },
      backgroundModeTablet: function () {
        var e = this;
        $(".content-background").addClass("mode-tablet"),
          $(".content-background").removeClass("mode-mobile"),
          $(".content-background").removeClass(
            "mode-desktop mode-desktop-1280 mode-desktop-1360 mode-desktop-1920"
          ),
          $("li.mode-tablet").find("i.icon-mode").css("color", "white"),
          $("li.mode-mobile")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          $("li.mode-desktop")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          e.changeActiveDevice(),
          $("ul.box-mode li#box-mode-tablet").addClass("active"),
          $("ul.box-mode li#box-mode-tablet").addClass("background-active");
        var t = document.getElementById("builder_iframe"),
          n = $(".content-background.mode-tablet").width();
        (t.style.width = n + "px"),
          $("#builder_iframe")
            .contents()
            .find("body")
            .removeClass(function (e, t) {
              return (t.match(/(^|\s)builder-class-mode-\S+/g) || []).join(" ");
            }),
          $("#builder_iframe")
            .contents()
            .find("body")
            .addClass("builder-class-mode-tablet"),
          setTimeout(function () {
            e.adjustIframeSize();
          }, 500);
      },
      backgroundModeDesktop: function () {
        var e = this;
        $(".content-background").addClass("mode-desktop"),
          $(".content-background").removeClass("mode-mobile"),
          $(".content-background").removeClass("mode-tablet"),
          $("li.mode-desktop").find("i.icon-mode").css("color", "white"),
          $("li.mode-mobile")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          $("li.mode-tablet")
            .find("i.icon-mode")
            .css("color", "rgb(150, 150, 150)"),
          e.changeActiveDevice(),
          $("ul.box-mode li#box-mode-desktop").addClass("active"),
          $("ul.box-mode li#box-mode-desktop").addClass("background-active");
        var t = document.getElementById("builder_iframe"),
          n = $(".content-background.mode-desktop").width();
        (t.style.width = n + "px"),
          $("#builder_iframe")
            .contents()
            .find("body")
            .removeClass(function (e, t) {
              return (t.match(/(^|\s)builder-class-mode-\S+/g) || []).join(" ");
            }),
          $("#builder_iframe")
            .contents()
            .find("body")
            .addClass("builder-class-mode-desktop"),
          setTimeout(function () {
            e.adjustIframeSize();
          }, 500);
      },
      notificationArea: function (e) {
        bootstrapGrowl(e, {
          type: "success",
          delay: 3e3,
        });
      },
      newDesign: function () {
        this.strict &&
          ($("#builder_iframe")
            .contents()
            .find("[builder-element='PageElement']")
            .html(""),
          this.checkEmpty());
      },
      clearDesign: function () {
        var e = this;
        Swal.fire({
          title: getI18n("are_you_sure"),
          text: getI18n("clear_while"),
          type: "warning",
          showCancelButton: !0,
          confirmButtonColor: "#3085d6",
          cancelButtonColor: "#d33",
          confirmButtonText: getI18n("ok"),
        }).then((t) => {
          t.value &&
            (e.unselect(),
            e.hideControls(),
            Swal.fire({
              title: getI18n("good_job"),
              text: getI18n("clear_success"),
              type: "success",
            }).then((t) => {
              e.clear
                ? e.clear()
                : e.strict &&
                  ($("#builder_iframe")
                    .contents()
                    .find("[builder-element='PageElement']")
                    .html(""),
                  e.checkEmpty());
            }));
        });
      },
      showTemplatePopup: function () {
        var e = new PopUp(getI18n("choose_template")),
          t = "<div>" + $("#templateToolbox").html() + "</div>";
        e.loadHtml(t),
          $(".nav-content").removeClass("active"),
          $(".nav-tab").removeClass("active"),
          $("#home").addClass("active show");
      },
      viewSource: function () {
        var e = this;
        (e.editing = !1),
          $("body").addClass("bp-source-mode"),
          hideMainMenuDropdown(),
          $(".content-left").removeClass("col-md-8"),
          $(".content-left").addClass("col-md-6"),
          $("#show-mode").html(getI18n("mode_source")),
          $(".content-right").hide(),
          $(".view-source").show();
        var t = $("#builder_iframe").contents().find("body").html(),
          n = ace.edit("editor");
        n.session.setTabSize(4),
          n.setValue(t),
          0 == e.editing &&
            ((e.editing = !0),
            n.session.on("change", function () {
              (e.editing = !1),
                setTimeout(function () {
                  e.updateFromSource("source");
                }, 5e3);
            })),
          e.cleanUpContent(),
          e.adjustIframeSize();
      },
      updateFromSource: function (e = "design") {
        if ("source" == e) {
          var t = ace.edit("editor").getValue();
          $("iframe#builder_iframe").contents().find("body").html(t);
        } else
          $(".tab-content").removeClass("hide-scroll-bar"),
            $(".content-left").addClass("animation"),
            setTimeout(function () {
              $(".content-left").removeClass("animation");
            }, 100);
      },
      viewDesign: function () {
        $("body").removeClass("bp-source-mode"),
          this.updateFromSource("design"),
          $(".detail-content.dilen").removeClass("dilen"),
          $(".content-left").removeClass("col-md-6"),
          $(".content-left").addClass("col-md-8"),
          $("#show-mode").html(getI18n("mode_design")),
          $(".content-right").show(),
          $(".view-source").hide(),
          this.adjustIframeSize();
      },
      showControls: function () {
        $(".detail-content").addClass("dilen"),
          $("#nav-home-tab").removeClass("active");
      },
      toogleChooseTemplateMenu: function () {
        (void 0 !== this.templates &&
          "" != this.templates &&
          0 != this.templates.length) ||
          $(".choose-template-menu").remove();
      },
      showPreview: function (e = "desktop") {
        var t = this;
        t.cleanUpContent();
        var n = $("#builder_iframe").contents().find("html").html();
        $("div.showPreview").show("fast", function () {
          $("#modal-preview-desktop .modal-body-preview").hide(),
            $("#modal-preview-desktop .modal-body-preview-mobile").hide(),
            t.hideControls(),
            $("#previewIframeMobile").attr("src", t.url),
            $("#previewIframeDesktop").attr("src", t.url),
            "mobile" == e
              ? $("#modal-preview-desktop .modal-body-preview-mobile").show(
                  "fast",
                  function () {
                    $(".pr-mobile").addClass("active-preview"),
                      $("#previewIframeMobile").contents().find("body").html(n),
                      $("#previewIframeMobile")
                        .contents()
                        .find("body")
                        .find(".Hide-on-mobile")
                        .css("display", "none"),
                      t.setAdjustFrame("mobile");
                  }
                )
              : $("#modal-preview-desktop .modal-body-preview").show(
                  "fast",
                  function () {
                    $(".pr-desktop").addClass("active-preview"),
                      $("#previewIframeDesktop")
                        .contents()
                        .find("body")
                        .html(n),
                      $("#previewIframeDesktop")
                        .contents()
                        .find("body")
                        .find(".Hide-on-desktop")
                        .css("display", "none"),
                      t.setAdjustFrame("desktop");
                  }
                );
        });
      },
      setAdjustFrame: function (e = "desktop") {
        if ("mobile" == e) {
          var t = document.getElementById("previewIframeMobile"),
            n = t.contentWindow.document.body.scrollHeight;
          t.style.height = n + "px";
        } else this.adjustPreviewIframeSize();
      },
      loadTags: function () {
        void 0 !== this.tags &&
          this.tags.forEach(function (e) {
            "label" == e.type &&
              ($("ul.tags-value").append(
                '<li class="tags" title="' +
                  e.tag +
                  '"><div class="float-left"><div class="tag"><input class="copy-tags builder-tag-text" value="' +
                  e.tag +
                  '" data-value="" style="outline: none;border: none;background-color: #f5f5f5;"/></div></div><div class="float-right insert"><button class="btn btn-tag-copy" data-clipboard-target=".copy-tags" style="cursor: pointer;padding: 5px 20px;color: #241c15;background-color: #fff;">Copy</button></div></li>'
              ),
              $(".tags-container").append(
                '\n                        <div class="tag-item ml-2 mb-2" title="' +
                  e.tag +
                  '">\n                            <span class="tag-icon">\n                                <i style="height: 23px;">\n                                    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill="#626262"><path fill-rule="evenodd" d="M5 2a.5.5 0 0 1 .5-.5c.862 0 1.573.287 2.06.566c.174.099.321.198.44.286c.119-.088.266-.187.44-.286A4.165 4.165 0 0 1 10.5 1.5a.5.5 0 0 1 0 1c-.638 0-1.177.213-1.564.434a3.49 3.49 0 0 0-.436.294V7.5H9a.5.5 0 0 1 0 1h-.5v4.272c.1.08.248.187.436.294c.387.221.926.434 1.564.434a.5.5 0 0 1 0 1a4.165 4.165 0 0 1-2.06-.566A4.561 4.561 0 0 1 8 13.65a4.561 4.561 0 0 1-.44.285a4.165 4.165 0 0 1-2.06.566a.5.5 0 0 1 0-1c.638 0 1.177-.213 1.564-.434c.188-.107.335-.214.436-.294V8.5H7a.5.5 0 0 1 0-1h.5V3.228a3.49 3.49 0 0 0-.436-.294A3.166 3.166 0 0 0 5.5 2.5A.5.5 0 0 1 5 2zm3.352 1.355zm-.704 9.29z"/><path d="M10 5h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-4v1h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4v1zM6 5V4H2a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4v-1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h4z"/></g></svg>\n                                </i>\n                            </span>\n                            <span class="tag-title">\n                                <input value="' +
                  e.tag +
                  '" type="text" style=""/>\n                            </span>\n                        </div>\n                    '
              ));
          });
      },
      listTemplate: function () {
        void 0 !== this.templates &&
          this.templates.forEach(function (e) {
            $(".show-list-template ul.display-template").append(
              '<li class="hover-name-template" data-thumbnail="' +
                e.thumbnail +
                '" template-url="' +
                e.url +
                '"><a class="template-change" href="#"> ' +
                e.name +
                " </a></li>"
            ),
              $("ul.list-new-template").append(
                '<li class="c-templateSelection_item c-choiceCard c-choiceCard--thick pb-4"><div class="c-choiceCard_innerContainer"><a aria-label="button" title="' +
                  getI18n("selected_template") +
                  '" style="background-position: center;background-size: 151px;background-repeat: no-repeat;background-image: url(' +
                  e.thumbnail +
                  ');" href="' +
                  e.url +
                  '" class="newTemplate new-from-template-select c-choiceCard_label overflow--visible background-size--cover background-position--center-top border-gray border-radius--lv1 v-aspectRatio--square margin-bottom--lv1"></a><p title="' +
                  e.name +
                  '" class="text-align--center margin-bottom--lv0 font-weight--bold ">' +
                  e.name +
                  "</p></div></li>"
              ),
              $(".templates-container").append(
                '<li class="c-templateSelection_item c-choiceCard c-choiceCard--thick pb-4"><div class="c-choiceCard_innerContainer"><a aria-label="button" title="' +
                  getI18n("selected_template") +
                  '" style="background-position: center;background-size: 151px;background-repeat: no-repeat;background-image: url(' +
                  e.thumbnail +
                  ');" href="' +
                  e.url +
                  '" class="newTemplate new-from-template-select c-choiceCard_label overflow--visible background-size--cover background-position--center-top border-gray border-radius--lv1 v-aspectRatio--square margin-bottom--lv1"></a><p title="' +
                  e.name +
                  '" class="text-align--center margin-bottom--lv0 font-weight--bold ">' +
                  e.name +
                  "</p></div></li>"
              );
          });
      },
      listHistory: function () {
        if (
          ($("ul#undo-redo__history").html(""), void 0 !== this.historyRecords)
        )
          for (var e = 0; e < this.historyRecords.length; e++) {
            var t = this.historyRecords[e],
              n = "history_item_current";
            e != this.currentRecordAchor && (n = ""),
              $("ul#undo-redo__history").prepend(
                '<li data-achor="' +
                  e +
                  '" class="history_add ' +
                  n +
                  ' history__step ng-scope history__step--active"><div class="step__icon ng-binding" ng-bind-html="::icon(event.icon)"><i id="text" class="' +
                  t.icon +
                  '" style="font-size:28px;display:inline-block"></i></div><div class="step__body"><div class="step__title ng-binding">' +
                  t.title +
                  '</div><div class="step__time ng-binding">' +
                  t.time +
                  "</div></div></li>"
              ),
              $(".history-container").html(""),
              $(".history-container").prepend(
                '<div data-achor="' +
                  e +
                  '" class="history_add history-item ' +
                  n +
                  ' history__step ng-scope history__step--active"><div class="history-icon ng-binding" ng-bind-html="::icon(event.icon)"><i id="text" class="' +
                  t.icon +
                  '" style="font-size:28px;display:inline-block"></i></div><div class="history-body"><div class="step__title ng-binding">' +
                  t.title +
                  '</div><div class="step__time time ng-binding">' +
                  t.time +
                  "</div></div></div>"
              );
          }
      },
      setLogo: function () {
        void 0 !== this.logo && $(".logo .logo-img").attr("src", this.logo);
      },
      init: function () {
        var e = this;
        e.loadPageJs([e.root + "language/all.js"], function () {
          e.setLanguage(), e.run();
        });
      },
      setLanguage: function () {
        var e = this;
        (e.I18n = LANGUAGE[this.language]),
          e.lang && (e.I18n = $.extend(e.I18n, e.lang)),
          (window.getI18n = function (t) {
            return void 0 !== e.I18n[t] ? e.I18n[t] : t;
          });
      },
      run: function () {
        this.prepairHtml(this.theme),
          this.build(),
          (this.iframe = $("#builder_iframe")),
          (this.content = this.iframe.contents().find("body")),
          (this.window = this.iframe.contents().find("html")),
          (this.selected = null),
          this.initIframe(),
          this.loadTags(),
          this.loadEvents(),
          this.toogleChooseTemplateMenu(),
          this.listTemplate(),
          this.setLogo(),
          this.setBackgrounds(),
          this.loadPageJs([this.root + "iframe/tinymce/tinymce.min.js"]),
          this.checkStrict(),
          null == this.export && $(".export-button").remove(),
          this.frameBoxStyle &&
            "none" == this.frameBoxStyle &&
            this.iframe.addClass("no_style"),
          this.showHelp || $("li.ask-help").remove(),
          this.checkDisableFeatures(),
          this.filemanager || $(".filemanager-item").remove();
      },
      checkDisableFeatures: function () {
        null != this.disableFeatures &&
          (this.disableFeatures.includes("change_template") &&
            $(".choose-template-menu").hide(),
          this.disableFeatures.includes("export") && $(".export-button").hide(),
          this.disableFeatures.includes("save_close") &&
            $(".btn-save-and-close").remove(),
          this.disableFeatures.includes("footer_exit") &&
            $(".footer-exit-without-save").remove(),
          this.disableFeatures.includes("help") && $(".ask-help").remove());
      },
      checkStrict: function () {
        this.strict ||
          ($("#nav-profile-tab").remove(),
          $(".design .design-new").parent().hide(),
          $(".design .design-clear").parent().hide(),
          this.strict
            ? $(".content-right nav #nav-tab a").css("width", "50%")
            : $("#nav-layouts-tab").show()),
          $(".build-mode-warning-close").on("click", function () {
            $("body").removeClass("build-mode-disabled"),
              $(".build-mode-warning").remove();
          });
      },
      setBackgrounds: function () {
        void 0 !== this.backgrounds &&
          this.backgrounds.forEach(function (e) {
            $(".builder-backgrounds").append(
              '\n                    <li class="device-bg bg-default">\n                        <img alt="image" class="bg-image" src="' +
                e +
                '" />\n                    </li>\n                '
            );
          });
      },
      select: function (e) {
        e.equals(this.selected) ||
          (this.unselect(),
          (this.selected = e),
          this.selected.select(),
          this.inlineEdit($("#builder_iframe")[0].contentWindow.$(e.obj[0]))),
          this.adjustIframeSize(),
          e.isWrapper() && $("#nav-profile-tab").addClass("active");
      },
      unselect: function () {
        null != this.selected &&
          (this.selected.unhighlight(),
          this.selected.unselect(),
          this.removeInlineEdit(this.selected.obj)),
          (this.selected = null),
          this.adjustIframeSize(),
          $("#nav-profile-tab").removeClass("active");
      },
      duplicate: function () {
        var e = this;
        if (e.selected) {
          var t = this.selected.obj;
          this.unselect();
          var n = t.clone(),
            i = $(n);
          t.after(i),
            i.css("display", "none"),
            i.fadeIn(200, function () {
              var t = e.elementFactory(i);
              null !== t && (e.select(t), e.handleSelect()),
                e.recordState(
                  t.name() + getI18n("duplicated_element"),
                  t.icon()
                ),
                e.adjustIframeSize(),
                e.notificationArea(getI18n("duplicate"));
            });
        } else
          beeAlert(
            "Duplicate",
            "Please choose a field from your form design first!"
          );
      },
      remove: function () {
        var e = this;
        if (e.selected) {
          var t = this.selected.obj,
            n = this.selected;
          this.unselect(),
            t.fadeOut(200, function () {
              var i = t.parents("[builder-element]");
              t.remove(),
                !i.length ||
                  i.first().find("[builder-element]").length ||
                  i.first().is("[builder-element='PageElement']") ||
                  i.first().is("[builder-element='CellElement']") ||
                  i.first().remove(),
                e.recordState(n.name() + getI18n("deleted_element"), n.icon()),
                e.adjustIframeSize(),
                e.checkEmpty(),
                e.notificationArea(getI18n("remove"));
            }),
            this.hideControls();
        } else
          beeAlert(
            "Remove",
            "Please choose a field from your form design first!"
          );
      },
      hideOnDesktop: function () {
        var e = this.selected.obj;
        e.addClass("Hide-on-desktop"),
          e.removeClass("Hide-on-mobile"),
          $(".icon-remove-two-screen").removeClass("hide");
      },
      hideOnMobile: function () {
        var e = this.selected.obj;
        e.addClass("Hide-on-mobile"),
          e.removeClass("Hide-on-desktop"),
          $(".icon-remove-two-screen").removeClass("hide");
      },
      removeHideOnTowScreen: function () {
        var e = this.selected.obj;
        e.removeClass("Hide-on-mobile"),
          e.removeClass("Hide-on-desktop"),
          $(".icon-remove-two-screen").addClass("hide"),
          $(".hide-all.desktop").removeClass("change-bgcolor"),
          $(".hide-all.mobile").removeClass("change-bgcolor");
      },
      getElementByTagName: function (e) {
        var t = e.prop("tagName").toLowerCase(),
          n = null;
        switch ((e.hasClass("btn") && (n = new ButtonElement(e)), t)) {
          case "p":
            n = new PElement(e);
            break;
          case "a":
            n = new AElement(e);
            break;
          case "img":
            n = new ImgElement(e);
            break;
          case "video":
            n = new VideoElement(e);
            break;
          case "h1":
          case "h2":
          case "h3":
          case "h4":
          case "h5":
          case "h6":
            n = new HeadingElement(e);
            break;
          case "span":
            n = new SpanElement(e);
            break;
          case "button":
            n = new ButtonElement(e);
            break;
          case "select":
            n = new DropdownElement(e);
            break;
          case "td":
          case "label":
            n = new TextElement(e);
            break;
          case "input":
            n =
              "checkbox" == e.attr("type")
                ? new CheckboxElement(e)
                : "text" == e.attr("type")
                ? new TextFieldElement(e)
                : "email" == e.attr("type")
                ? new EmailFieldElement(e)
                : new TextElement(e);
            break;
          default:
            n = new OtherElement(e);
        }
        return n;
      },
      elementFactory: function (obj) {
        var element = null;
        return void 0 === obj
          ? null
          : this.strict
          ? obj.closest("[builder-element]").length
            ? ((obj = obj.closest("[builder-element]")),
              (element =
                void 0 !== obj.attr("builder-element") &&
                "" != obj.attr("builder-element")
                  ? eval("new " + obj.attr("builder-element") + "(obj)")
                  : this.getElementByTagName(obj)),
              element)
            : null
          : this.isHelperTarget(obj) || this.isNotElement(obj)
          ? null
          : this.getElementByTagName(obj);
      },
      handleSelect: function (e) {
        var t = this;
        setTimeout(function () {
          t.loadControls(), void 0 !== e && e();
        }, 100);
      },
      setControlsBarTitle: function (e) {
        $(".properties-pannel-title h4").html(e);
      },
      loadControls: function () {
        null != this.selected &&
          (this.setControlsBarTitle(this.selected.name()),
          this.selected.canDelete()
            ? $(".builder-remove-selected-button").show()
            : $(".builder-remove-selected-button").hide(),
          this.selected.canDuplicate()
            ? $(".builder-duplicate-selected-button").show()
            : $(".builder-duplicate-selected-button").hide(),
          0 != this.selected.getControls().length &&
            ($("#builder_sidebar")
              .find(".tab-content")
              .addClass("hide-scroll-bar"),
            this.showControls(),
            $(".attributes-container").html(""),
            "CellElement" == this.selected.obj.attr("builder-element") &&
              this.loadCellControls(),
            this.loadSelectedControls(),
            "CellElement" != this.selected.obj.attr("builder-element") &&
              this.loadCellControls(),
            this.loadContainerControls(),
            $(".attributes[group-id]").each(function () {
              $(this).children().length
                ? $(this).closest(".attributes-group").show()
                : $(this).closest(".attributes-group").hide();
            }),
            $(".element-attributes .element-name").html(this.selected.name()),
            goToThirdPage()));
      },
      loadSelectedControls() {
        var e = this;
        this.selected.getControls().forEach(function (t) {
          var n = $('.attributes[group-id="' + t.groupId() + '"]');
          n.length ||
            ($(".attributes-container").append(
              e.transformHtml(
                '<div class="attributes-group mb-1">\n                    <div class="attribute-header">\n                        <label>{language.' +
                  t.groupId() +
                  '}</label>\n                        <span class="toggle-caret-icon ag-toogle-button open">\n                            <i>\n                                <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="0.3em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill="#626262"/></svg>\n                            </i>\n                        </span>\n                    </div>\n                    <div class="attributes" group-id="' +
                  t.groupId() +
                  '">\n                    </div>\n                </div>'
              )
            ),
            (n = $('.attributes[group-id="' + t.groupId() + '"]'))),
            n.append("<div>" + e.transformHtml(t.renderHtml()) + "</div>"),
            void 0 !== t.afterRender && t.afterRender();
        });
      },
      loadCellControls: function () {
        var e = this,
          t = [];
        null != this.selected.getCellContainer() &&
          (t = this.selected.getCellContainer().getControls()),
          t.length &&
            ($(".attributes-container").append(
              e.transformHtml(
                '<div class="cell-container-controls"><h3 class="title-bar">{language.cell_options}</h3></div>'
              )
            ),
            t.forEach(function (t) {
              var n = $(
                '.attributes[group-id="cell-container-' + t.groupId() + '"]'
              );
              n.length ||
                ($(".attributes-container .cell-container-controls").append(
                  e.transformHtml(
                    '<div class="attributes-group mb-1">\n                        <div class="attribute-header">\n                            <label>{language.' +
                      t.groupId() +
                      '}</label>\n                            <span class="toggle-caret-icon ag-toogle-button open">\n                                <i>\n                                    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="0.3em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill="#626262"/></svg>\n                                </i>\n                            </span>\n                        </div>\n                        <div class="attributes" group-id="cell-container-' +
                      t.groupId() +
                      '">\n                        </div>\n                    </div>'
                  )
                ),
                (n = $(
                  '.attributes[group-id="cell-container-' + t.groupId() + '"]'
                ))),
                n.append("<div>" + e.transformHtml(t.renderHtml()) + "</div>"),
                void 0 !== t.afterRender && t.afterRender();
            }));
      },
      loadContainerControls: function () {
        var e = this,
          t = [];
        null != this.selected.getContainer() &&
          (t = this.selected.getContainer().getControls()),
          t.length &&
            ($(".attributes-container").append(
              e.transformHtml(
                '<div class="container-controls"><h3 class="title-bar">{language.container_options}</h3></div>'
              )
            ),
            t.forEach(function (t) {
              var n = $(
                '.attributes[group-id="container-' + t.groupId() + '"]'
              );
              n.length ||
                ($(".attributes-container .container-controls").append(
                  e.transformHtml(
                    '<div class="attributes-group mb-1">\n                        <div class="attribute-header">\n                            <label>{language.' +
                      t.groupId() +
                      '}</label>\n                            <span class="toggle-caret-icon ag-toogle-button open">\n                                <i>\n                                    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="0.3em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill="#626262"/></svg>\n                                </i>\n                            </span>\n                        </div>\n                        <div class="attributes" group-id="container-' +
                      t.groupId() +
                      '">\n                        </div>\n                    </div>'
                  )
                ),
                (n = $(
                  '.attributes[group-id="container-' + t.groupId() + '"]'
                ))),
                n.append("<div>" + e.transformHtml(t.renderHtml()) + "</div>"),
                void 0 !== t.afterRender && t.afterRender();
            }));
      },
      hideControls: function () {
        $("#builder_sidebar").find(".detail-content").removeClass("dilen"),
          $("#builder_sidebar")
            .find(".tab-content")
            .removeClass("hide-scroll-bar"),
          $("#nav-home-tab").addClass("active"),
          goToMainPage();
      },
    };
  },
  function (e, t) {
    e.exports =
      "data:image/jpeg;base64, ";
  },
  function (e, t) {
    e.exports =
      '<div class=showPreview>\r\n    <div id=modal-preview-desktop class="modal preview-modal ng-scope ng-isolate-scope in" style="">\r\n        <div class=modal-dialog style=width:100%;max-width:100%;margin:0;height:100%;position:fixed>\r\n            <div class=modal-content uib-modal-transclude="" style=width:100%;border-radius:0;height:100%>\r\n                <div class="modal-header row ng-scope" style="border-bottom:1px solid #e5e5e5;background:#fff;padding:10px 24px!important">\r\n                    <div class="col-lg-6 col-md-6">\r\n                        <h3 class=ng-binding style=font-size:16px;margin:0;padding:0;line-height:38px;color:#505659;font-weight:700;float:left;font-style:normal>{language.wpanel.others.preview_mode.title}</h3>\r\n                        <div ng-model=conditions class="ng-pristine ng-untouched ng-valid ng-isolate-scope ng-not-empty">\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-lg-6 col-md-6 text-right">\r\n                        <div class="btn-group switch-preview ng-pristine ng-untouched ng-valid ng-not-empty active-desktop" data-toggle=buttons ng-model=previewStyle ng-class="{\'active-desktop\': previewStyle===\'desktop\', \'active-mobile\': previewStyle===\'mobile\'}">\r\n                            <div class="pr-desktop click-active-preview">\r\n                                <label class="preview-desktop ng-pristine ng-untouched ng-valid ng-binding ng-not-empty active" ng-model=previewStyle uib-btn-radio="\'desktop\'">\r\n                                    <i class={builder-icon-laptop}></i>\r\n                                    {language.wpanel.others.desktop.title}\r\n                                </label>\r\n                            </div>\r\n                            <div class="pr-mobile click-active-preview">\r\n                                <label class="preview-mobile ng-pristine ng-untouched ng-valid ng-binding ng-not-empty" ng-model=previewStyle uib-btn-radio="\'mobile\'">\r\n                                    <i class={builder-icon-mobile}></i>\r\n                                    {language.wpanel.others.mobile.title}\r\n                                </label>\r\n                            </div>\r\n                            <div class=switch-preview__active></div>\r\n                        </div>\r\n                        <button type=button class="btn btn-primary close-preview" ng-click=cancel()><i class={builder-icon-times-circle}></i></button>\r\n                    </div>\r\n                </div>\r\n                \x3c!--modal load content desktop--\x3e\r\n                <div class="modal-body-preview ng-scope" style="">\r\n                    <div class="desktop ng-not-empty" style="">\r\n                        <div ng-transclude="" mailup-common-scrollbar="" class=ng-isolate-scope style=height:100%;width:100%;position:relative>\r\n                            <div class="containter-preview ng-scope mailup-common-scrollable-container ps-container ps-theme-default ps-active-y" style=width:100%;overflow-y:auto>\r\n                                <iframe id=previewIframeDesktop src="" scrolling=no onload=\'this.style.height=this.contentDocument.body.scrollHeight+"px"\' style="width:100%;margin:0 auto;border:none">\r\n\r\n                                </iframe>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \x3c!--modal load content mobile--\x3e\r\n                <div class="modal-body-preview-mobile ng-scope bananaphone" style="">\r\n                    <div class="mobile ng-not-empty-mobile" style="">\r\n                        <div ng-transclude="" mailup-common-scrollbar="" class=ng-isolate-scope style=height:100%;width:100%;position:relative>\r\n                            <div class="containter-preview ng-scope mailup-common-scrollable-container ps-container ps-theme-default ps-active-y" style=width:100%;overflow-y:auto>\r\n                                <iframe id=previewIframeMobile src="" scrolling=no onload=\'this.style.height=this.contentDocument.body.scrollHeight+"px"\' style="width:100%;margin:0 auto;border:none;height:2000px">\r\n\r\n                                </iframe>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=modal-bg-preview-desktop class="modal-backdrop ng-scope in" style=z-index:1040;background-color:#000085></div>\r\n</div>\r\n\r\n<div class=modal id=builderModal>\r\n    <div class=default-popup>\r\n        <div class="modal-dialog modal-lg">\r\n            <div class=modal-content>\r\n                \x3c!-- Modal Header --\x3e\r\n                <div class="modal-header text-center">\r\n                    <h4 class="modal-title w-100" id=popupTitle>{language.wpanel.others.change_image.title}</h4>\r\n                    <button type=button class="close PopUpCloseButton" data-dismiss=modal>&times;</button>\r\n                </div>\r\n    \r\n                \x3c!-- Modal body --\x3e\r\n                <div class="modal-body PopUpContent">\r\n                    {language.wpanel.others.loading.title}\r\n                </div>\r\n            </div>\r\n        </div>    \r\n    </div>\r\n    <div class=right-popup>\r\n        <div class=right-box>\r\n            <div class=show-box-popup>\r\n                <ul class=box-mode>\r\n                    <li id=box-mode-mobile class="box-mode-mobile box-device" title=Mobile data-mode=mode-mobile>\r\n                        <div class=group>\r\n                            <span class="material-icons-outlined icon">smartphone</span>\r\n                            <span>{language.wpanel.others.mobile.title}</span>\r\n                        </div>\r\n                        <ul class="group-device group-mobile">\r\n                            <li class="device-screen _320">{language.wpanel.others.mobile.320.title}</li>\r\n                            <li class="device-screen _360">{language.wpanel.others.mobile.360.title}</li>\r\n                            <li class="device-screen _375">{language.wpanel.others.mobile.375.title}</li>\r\n                            <li class="device-screen _414">{language.wpanel.others.mobile.414.title}</li>\r\n                        </ul>\r\n                    </li>\r\n                    <li id=box-mode-tablet class="box-mode-tablet box-device" title=Tablet data-mode=mode-tablet>\r\n                        <div class=group>\r\n                            <span class="material-icons-outlined icon">tablet_android</span>\r\n                            <span>{language.wpanel.others.tablet.title}</span>\r\n                        </div>\r\n                        <ul class="group-device group-tablet">\r\n                            <li class="device-screen _768">{language.wpanel.others.tablet.768.title}</li>\r\n                            <li class="device-screen _1024">{language.wpanel.others.tablet.1024.title}</li>\r\n                        </ul>\r\n                    </li>\r\n                    <li id=box-mode-desktop class="box-mode-desktop box-device background-active active" title=Desktop data-mode=mode-desktop> \r\n                        <div class=group>\r\n                            <span class="material-icons-outlined icon">computer</span>\r\n                            <span>{language.wpanel.others.desktop.title}</span>\r\n                        </div>\r\n                        <ul class="group-device group-desktop">\r\n                            <li class="device-screen _1280">{language.wpanel.others.desktop.1280.title}</li>\r\n                            <li class="device-screen _1360">{language.wpanel.others.desktop.1360.title}</li>\r\n                            <li class="device-screen _1920">{language.wpanel.others.desktop.1920.title}</li>\r\n                        </ul>\r\n                    </li>\r\n                    <li id=background-option class="change-background device" title="Change background">\r\n                        <div class=group>\r\n                            <span class="material-icons-outlined icon">wallpaper</span>\r\n                            <span>{language.wpanel.others.background.title}</span>\r\n                        </div>\r\n                        <ul class="group-background builder-backgrounds">\r\n                            \r\n                        </ul>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n\x3c!-- The Image Toolbox --\x3e\r\n<div class=modal id=ImageToolbox>\r\n    <div class=container>\r\n        \x3c!-- Nav tabs --\x3e\r\n        <ul class="nav nav-tabs">\r\n            <li class=nav-item>\r\n                <a class="home nav-link active nav-tab" data-toggle=tab href=#home>{language.wpanel.others.upload.title}</a>\r\n            </li>\r\n            <li class=nav-item>\r\n                <a class="menu1 nav-link nav-tab" data-toggle=tab href=#menu1>{language.wpanel.others.url.title}</a>\r\n            </li>\r\n            <li class=nav-item>\r\n                <a class="menu2 nav-link nav-tab" data-toggle=tab href=#menu2>{language.wpanel.others.base64.title}</a>\r\n            </li>\r\n            <li class="nav-item filemanager-item">\r\n                <a class="menu3 nav-link nav-tab" data-toggle=tab href=#menu3>{language.wpanel.others.filemanager.title}</a>\r\n            </li>\r\n        </ul>\r\n\r\n        \x3c!-- Tab panes --\x3e\r\n        <div class=tab-content>\r\n            <div id=home class="container tab-pane active nav-content active">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_upload_image.title}</p>\r\n                <label class=mb-2>{language.wpanel.others.file.title}</label>\r\n                <input type=file name=file_upload_image class=file-upload-image multiple="" accept=image/*>\r\n                <p class=file-upload-input-title><i class={builder-icon-arrow-to-bottom} style=display:block;position:absolute;top:33px;left:50%;z-index:2;font-size:30px;color:#267e88;transform:translateX(-50%)></i><span class=des-upload>{language.wpanel.others.des_drag_image.title}</span></p>\r\n                <div class="text-center mt-3"><button tabindex=0 type="" class="buttonSaveUpload btn btn-default">{language.wpanel.others.upload.title}</button></div>\r\n            </div>\r\n            <div id=menu1 class="container tab-pane fade nav-content">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_url_image.title}</p>\r\n                <label class=mb-2>{language.wpanel.others.url.title}</label>\r\n                <input placeholder=https://sample.com/images/example.png type=text name=url_image class=url-image>\r\n                <div class=text-center>\r\n                    <button tabindex=0 type="" class="buttonSaveUrl btn btn-default">{language.wpanel.others.save.title}</button>\r\n                </div>\r\n            </div>\r\n            <div id=menu2 class="container tab-pane fade nav-content">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_base64_image.title}</p>\r\n                <label class=mb-2>{language.wpanel.others.base64.title}</label>\r\n                <textarea rows=5 placeholder=data:image/png;base64,iVBORw0KGgoAAAANSUh.... name=base64_image class=base64-image></textarea>\r\n                <div class="text-center mt-3">\r\n                    <button tabindex=0 type="" class="buttonSaveBase64 btn btn-default">{language.wpanel.others.save.title}</button>\r\n                </div>\r\n            </div>\r\n            <div id=menu3 class="container tab-pane fade nav-content filemanager-item" style=margin-bottom:-42px>\r\n                <iframe style="height:calc(100vh - 255px);width:100%;border:solid 1px #ddd" class=filemanager-iframe></iframe>\r\n                <div class="mt-3 text-center">\r\n                    <a href=javascript:; class="btn btn-primary mr-1 filemanager-ok">{language.wpanel.others.filemanager.ok}</a>\r\n                    <a href=javascript:; class="btn btn-secondary filemanager-cancel">{language.wpanel.others.filemanager.cancel}</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n<div class=modal id=VideoToolbox>\r\n    <div class=container>\r\n        \x3c!-- Nav tabs --\x3e\r\n        <ul class="nav nav-tabs">\r\n            <li class=nav-item>\r\n                <a class="home nav-link active nav-tab" data-toggle=tab href=#home>{language.wpanel.others.upload.title}</a>\r\n            </li>\r\n            <li class=nav-item>\r\n                <a class="menu1 nav-link nav-tab" data-toggle=tab href=#menu1>{language.wpanel.others.url.title}</a>\r\n            </li>\r\n        </ul>\r\n\r\n        \x3c!-- Tab panes --\x3e\r\n        <div class=tab-content>\r\n            <div id=home class="container tab-pane active nav-content">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_upload_video.title}</p>\r\n                <label>{language.wpanel.others.file.title}</label>\r\n                <input type=file name=file_upload_video class=file-upload-video multiple="" accept=video/*>\r\n                <p class=file-upload-input-title><i class={builder-icon-arrow-to-bottom} style=display:block;position:absolute;top:25px;left:50%;z-index:2;font-size:30px;color:#267e88;transform:translateX(-50%)></i><span class=des-upload>Drag your files here or click in this area.</span></p>\r\n                <button tabindex=0 type="" class="buttonSaveUpload btn btn-default">{language.wpanel.others.upload.title}</button>\r\n            </div>\r\n            <div id=menu1 class="container tab-pane fade nav-content">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_url_video.title}</p>\r\n                <label>{language.wpanel.others.url.title}</label>\r\n                <input type=text name=url_video class=url-video>\r\n                <button tabindex=0 type="" class="buttonSaveUrl btn btn-default">{language.wpanel.others.save.title}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n\x3c!-- The Image Toolbox --\x3e\r\n<div class=modal id=WidgetNameToolbox>\r\n    <div class=container style="padding:0 60px 30px">\r\n        <div class=form-group>\r\n            \x3c!--<p class="title-widget">Name your custom widget</p>--\x3e\r\n            <p class=margin-bottom--lv4>{language.wpanel.others.des_widget_name.title}</p>\r\n            <input type=text class=form-control value="My Custom Widget" id=CustomWidgetName aria-describedby="" placeholder="Enter widget name">\r\n        </div>\r\n        <button type=submit id=buttonCustomWidget class="btn btn-primary btn-add-custom-widget-[ID]">{language.wpanel.others.add.title}</button>\r\n    </div>\r\n</div>\r\n\r\n\x3c!-- The Template Toolbox --\x3e\r\n<div class=modal id=templateToolbox>\r\n    <div class=container style=margin-top:-8px>\r\n        \x3c!-- Tab panes --\x3e\r\n        <div class=tab-content>\r\n            <div id=home class="container tab-pane active nav-content">\r\n                <p class="margin-bottom--lv4 py-2">{language.wpanel.others.des_template_toolbox.title}</p>\r\n            </div>\r\n        </div>\r\n        <div class="new-templates unit size1of1 tab-container" style=margin-top:30px>\r\n            \x3c!--noi hien thi danh sach template--\x3e\r\n            <ul class="c-templateSelection list-new-template" style=justify-content:left;padding-left:0>\r\n\r\n            </ul>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n\x3c!--The modal help builder--\x3e\r\n<div class="helpPopUp front-door c-interstitial position--relative topsliderpane-base" style=display:none;z-index:999>\r\n    <div class="flex justify-content--center position--fixed top-bottom--0 left-right--0 align-items--flex-start">\r\n        <div class="bg-white border-radius--lv1 bg-popup" style="">\r\n            <div id=header-modal class="full-width textcolor zin-lv2 position--static selfclear" data-dojo-attach-point=topBarActions>\r\n                <div class="flex flex-between">\r\n                    <ul class="close-overlay close-right absolute cursor-pointer">\r\n                        <li class=noborder>\r\n                            <a href=javascript: data-dojo-attach-point=closeLink class="helpPopUpCloseButton closeLink c-interstitial_button nolink" tabindex=0>\r\n                                <i class={builder-icon-times}></i>\r\n                            </a>\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n            <div data-dojo-attach-point=content class="helpPopUpContent position--static flex justify-content--center overflow--auto margin--lv0" style="">\r\n                \x3c!--load content list acticle--\x3e\r\n                <iframe id=iframeLoad class="" src=""></iframe>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n\r\n\x3c!--The modal upload template by builder--\x3e\r\n<div class=modal id=uploadTemplate>\r\n    <div class=container style="padding:0 60px 30px">\r\n        <form class=form-upload action=upload.php enctype=multipart/form-data>\r\n            <div class=form-group>\r\n                <p class=margin-bottom--lv4>{language.wpanel.others.des_upload_template.title}</p>\r\n                <div data-dojo-attach-point=formInputs>\r\n                    <fieldset class=field-wrapper id=dijit__TemplatedMixin_43 widgetid=dijit__TemplatedMixin_43>\r\n                        <label>File</label>\r\n                        <div class="input-group file-upload" id=drag-file-upload style=width:100%;height:auto>\r\n                            <input type=file name=file class=file-upload-template multiple="" style=width:100%;height:150px;position:relative;opacity:0;z-index:4>\r\n                            <p class=file-upload-input-title style="position:absolute;top:0;left:50%;z-index:3;transform:translateX(-50%);width:100%;height:100%;border:1px dashed #007c89;background:#e5f7ff;display:flex;justify-content:center;align-items:center">\r\n                                <span class="material-icons-outlined icon" style=font-size:40px;margin-top:-30px;color:rgba(0,0,0,.4)>upload</span>\r\n                                <span class=des-upload style=position:absolute;top:80px;left:50%;transform:translateX(-50%);white-space:nowrap>Drag your files here or click in this area.</span>\r\n                            </p>\r\n                        </div>              \r\n                    </fieldset>\r\n                </div>\r\n            </div>\r\n            <button type=submit id=buttonUploadTemplate class="btn btn-primary btn-upload-template-[ID]" style=position:relative;top:0;left:50%;z-index:2;transform:translateX(-50%);background:gray;outline:0;border:none>Upload</button>\r\n        </form>\r\n    </div>\r\n</div>\r\n\r\n<div style=display:none>\r\n    <div class="builder-tool builder-outline-selected-controls">\r\n        <ul>\r\n            <li class="builder-action-selected-button builder-select-parent-button" data-toggle=tooltip title={language.wpanel.others.select_parent.title}>\r\n                <span class=material-icons-outlined style=font-size:22px>arrow_upward</span>\r\n            </li>\r\n            \x3c!-- <li class="builder-action-selected-button builder-add-widget-button" data-toggle="tooltip" title="{language.wpanel.others.add_widget.title}"><i class="{builder-icon-layer-plus}"></i></li> --\x3e\r\n            <li class="builder-action-selected-button builder-remove-selected-button" data-toggle=tooltip title={language.wpanel.others.delete.title}>\r\n                <span class=material-icons-outlined style=font-size:22px>delete</span>\r\n            </li>\r\n            <li class="builder-action-selected-button builder-duplicate-selected-button" data-toggle=tooltip title={language.wpanel.others.duplicate.title}>\r\n                <span class=material-icons-outlined style=font-size:17px>filter_none</span>\r\n            </li>\r\n            <li class="builder-action-selected-button builder-code-selected-button" data-toggle=tooltip title={language.wpanel.others.code.title}>\r\n                <span class=material-icons-outlined style=font-size:22px>code</span>\r\n            </li>\r\n        </ul>\r\n    </div>\r\n\r\n    <div class="builder-tool builder-outline-move-hook" title={language.wpanel.others.move.title}>\r\n        <span class=material-icons-outlined style="font-size:18px;margin:7px 6px;transform:rotate(45deg)">zoom_out_map</span>\r\n    </div>\r\n</div>\r\n\r\n\x3c!--loading--\x3e\r\n<div class=loadding-indicator style=display:none;z-index:999>\r\n    <div id=spinningSquaresG>\r\n        <div id=spinningSquaresG_1 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_2 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_3 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_4 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_5 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_6 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_7 class=spinningSquaresG></div>\r\n        <div id=spinningSquaresG_8 class=spinningSquaresG></div>\r\n    </div>\r\n</div>\r\n\r\n\x3c!-- The Image Toolbox --\x3e\r\n<div class=modal id=EditHtmlModal>\r\n    <div class=mb-4>\r\n        <h2 class=mb-2>{language.edit_html_code}</h2>\r\n        \r\n        <textarea id=EditHtml></textarea>\r\n        \r\n        <button tabindex=0 type="" class="btn btn-secondary edit-html-save-button">Save</button>\r\n    </div>\r\n</div>';
  },
  function (e, t, n) {
    e.exports =
      '<div style=display:none>\r\n     \x3c!--ButtonControl--\x3e\r\n     <div id=ButtonControl>\r\n        <div class="widget-section font-family pr-3 control-[ID]" style=position:relative>\r\n            <div class=label>[TITLE]</div>\r\n            <div class=button-styles-select>\r\n                <button class=button-preview>Abc</button>\r\n                <div class=button_styles style=display:none>\r\n                    <div style=display:flex;justify-content:space-between>\r\n                        <button class="" data-style=style_1>Abc</button>\r\n                        <button class="" data-style=style_2>Abc</button>\r\n                        <button class="" data-style=style_3>Abc</button>\r\n                        <button class="" data-style=style_4>Abc</button>\r\n                        <button class="" data-style=style_5>Abc</button>\r\n                        <button class="" data-style=style_6>Abc</button>\r\n                        <button class="" data-style=style_7>Abc</button>\r\n                    </div>\r\n                    <div style=display:flex;justify-content:space-between>\r\n                        <button class="" data-style=style_8>Abc</button>\r\n                        <button class="" data-style=style_9>Abc</button>\r\n                        <button class="" data-style=style_10>Abc</button>\r\n                        <button class="" data-style=style_11>Abc</button>\r\n                        <button class="" data-style=style_12>Abc</button>\r\n                        <button class="" data-style=style_13>Abc</button>\r\n                        <button class="" data-style=style_14>Abc</button>\r\n                    </div>\r\n                    <div style=display:flex;justify-content:left>\r\n                        <button class="" data-style=style_15>Abc</button>\r\n                        <button class="" data-style=style_16>Abc</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--YoutubeControl--\x3e\r\n    <div id=YoutubeControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-row px-3 py-2">\r\n                <h4>{language.youtube}</h4>\r\n                <p class=mb-2>{language.youtube.enter_youtube_url}</p>\r\n                <div class=place-value>\r\n                    <span class="">\r\n                        <input type=text class=youtube_url value=[CODE] style=width:100% />\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                <div class="label mr-auto">{language.youtube.width}</div>\r\n                <div class=place-value>\r\n                    <span class="">\r\n                        <input type=text class=youtube_width value=[WIDTH] />\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                <div class="label mr-auto">{language.youtube.height}</div>\r\n                <div class=place-value>\r\n                    <span class="">\r\n                        <input type=text class=youtube_height value=[HEIGHT] />\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                <div class="label mr-auto">{language.youtube.alignment}</div>\r\n                <div class=place-value>\r\n                    <span class="">\r\n                        <select class="form-control alignment">\r\n                            <option value="">{language.youtube.default}</option>\r\n                            <option value=left>{language.youtube.left}</option>\r\n                            <option value=right>{language.youtube.right}</option>\r\n                            <option value=center>{language.youtube.center}</option>\r\n                        </select>\r\n                    </span>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--TableBlockControl--\x3e\r\n    <div id=TableBlockControl>\r\n        <div class="widget-section font-family pr-3 control-[ID]">\r\n            <div class=label>[TITLE]</div>\r\n            <select class="form-control theme">\r\n                <option value="">Default</option>\r\n                <option value=table-striped>Striped</option>\r\n                <option value=table-dark>Dark</option>\r\n                <option value="table-dark table-striped">Dark - Striped</option>\r\n                <option value=table-bordered>Bordered</option>\r\n                <option value="table-dark table-bordered">Dark - Bordered</option>\r\n            </select>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--PricingTableControl--\x3e\r\n    <div id=PricingTableControl>\r\n        <div class="widget-section font-family pr-3 control-[ID]" style=position:relative>\r\n            <div class=label>[TITLE]</div>\r\n            <div class=pricing-styles-select>\r\n                <button class=pricing-preview>Abc</button>\r\n                <div class=pricing_styles style=display:none>\r\n                    <div style=display:flex;justify-content:space-between>\r\n                        <button class="" data-style="">Abc</button>\r\n                        <button class="" data-style=dark>Abc</button>\r\n                        <button class="" data-style=light>Abc</button>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    \r\n    \x3c!--Background Image Control--\x3e\r\n    <div id=BackgroundImageControl>\r\n        <div class="control-[ID] background-image-control">\r\n            <div class=atts-groupx>\r\n                <div class=atts-group-containerx>\r\n                    <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                        <div class="label mr-auto">{language.background_image.color}</div>\r\n                        <div class=place-value>\r\n                            <span class=color-picker>\r\n                                <input style=cursor:pointer type=color class=background-color value=#ffffff />\r\n                                <input class=background-color type=text value=""/>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class="widget-row px-3 py-2">\r\n                        <div class="d-flex align-items-center">\r\n                            <div class="label mr-auto">\r\n                                {language.background_image.image}\r\n                            </div>\r\n                            <div class="btn-group mr-2 edit-group" role=group aria-label="Basic example">\r\n                                <button class="btn btn-default btn-icon change-image"><span class=material-icons-outlined>create</span></button>\r\n                                <button class="btn btn-danger btn-icon clear-image"><span class=material-icons-outlined>clear</span></button>\r\n                            </div>\r\n                            <div class="btn-group add-group" role=group aria-label="Basic example">\r\n                                <style>.background-image-control .change-image-phd{margin-left:auto;width:177px;text-align:center;background:#777;border-radius:3px;color:#fff;padding:5px;font-size:11px;transition:all .2s ease-in-out}.background-image-control .change-image-phd:hover{border-color:#fff;background-color:#666;cursor:pointer}</style>\r\n                               <div class="change-image change-image-phd" style="">\r\n                                    <strong>{language.no_background_image}</strong>\r\n                                    <p style=margin-bottom:0>{language.no_background_image.click_to_choose}</p>\r\n                                </div>\r\n                            </div>\r\n                            <div class=edit-group>\r\n                                <div class=background-image-preview>\r\n                                    <img class=background-image src=' +
      n(44) +
      ' />\r\n                                </div>\r\n                            </div>                    \r\n                        </div>\r\n                    </div>                    \r\n                    <div class=edit-group>\r\n                        <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                            <div class="label mr-auto">{language.background_image.repeat}</div>\r\n                            <div class=place-value>\r\n                                <select class="background-repeat form-control enctype">\r\n                                    <option value=inherit>inherit</option>\r\n                                    <option value=initial>initial</option>\r\n                                    <option value=no-repeat>no-repeat</option>\r\n                                    <option value=repeat>repeat</option>\r\n                                    <option value=repeat-x>repeat-x</option>\r\n                                    <option value=repeat-y>repeat-y</option>\r\n                                    <option value=revert>revert</option>\r\n                                    <option value=round>round</option>\r\n                                    <option value=space>space</option>\r\n                                </select>\r\n                            </div>\r\n                        </div>\r\n                        <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                            <div class="label mr-auto">{language.background_image.size}</div>\r\n                            <div class=place-value>\r\n                                <input type=text value=100 class="form-control background-size"/>\r\n                            </div>\r\n                        </div>\r\n                        <div class="widget-row px-3 py-2 d-flex align-items-center">\r\n                            <div class="label mr-auto">{language.background_image.position}</div>\r\n                            <div class=place-value>\r\n                                <input type=text value=100 class="form-control background-position"/>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Image link Control--\x3e\r\n    <div id=FieldListHeaderControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section link-image">\r\n                <div class=p-3>\r\n                    <p class="d-block mb-2">\r\n                        This is an <strong>[TITLE]</strong> field is associated with the following mail list\r\n                    </p>\r\n                    <div class=form-disabled>\r\n                        <select class="form-control disabled" disabled=disabled>\r\n                            <option>[LIST_NAME]</option>\r\n                        </select>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Image link Control--\x3e\r\n    <div id=ImageLinkControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section link-image">\r\n                <div class="wg-info w-url-container d-flex align-items-center">\r\n                    <div class=tren>\r\n                         <div class=trai>\r\n                            <span>{language.image_link}</span>\r\n                         </div>\r\n                    </div>\r\n                    <div class=pr-3>\r\n                        <input type=text class="image-link link" value="">\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Image size Control--\x3e\r\n    <div id=ImageSizeControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">[TITLE]</div>\r\n                <select class="image-sizes form-control">\r\n                    <option value=100%xauto>Default - 100% width</option>\r\n                    <option value=150x150>Thumbnail - 150 x 150</option>\r\n                    <option value=300x300>Medium - 300 x 300</option>\r\n                    <option value=768xauto>Medium Large - 768 x 0</option>\r\n                    <option value=300x300>Woocommerce Thumbnail - 300 x 300</option>\r\n                    <option value=600xauto>Woocommerce Single - 600 x 0</option>\r\n                    <option value=100x100>Woocommerce Gallery Thumbnail - 100 x 100</option>\r\n                    <option value=300x300>Shop Catalog - 300 x 300</option>\r\n                    <option value=600xauto>Shop Single - 600 x 0</option>\r\n                    <option value=100x100>Shop Thumbnail - 100 x 100</option>                    \r\n                    <option value=custom>Custom</option>\r\n                </select>\r\n            </div>\r\n            <div class="image-size custom-size" style=display:none>\r\n                <div class="widget-section d-flex align-items-center px-3">\r\n                    <div class="mr-auto control-label">{language.image_size.width}</div>\r\n                    <div>\r\n                        <input type=text value=100 class="custom-width form-control"/>\r\n                    </div>\r\n                </div>\r\n                <div class="widget-section d-flex align-items-center px-3">\r\n                    <span class="mr-auto control-label">{language.image_size.height}</span>\r\n                    <div>\r\n                        <input type=text value=100 class="custom-height form-control"/>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Field Options Control--\x3e\r\n    <div id=FieldOptionsControl>\r\n        <div class=control-[ID]>\r\n            <div class="field-options-container px-3">\r\n                [OPTIONS]\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Form Control--\x3e\r\n    <div id=FormControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center">\r\n                <div class="label mr-auto">{language.field.control.form.method}</div>\r\n                <div class=pr-3>\r\n                    \x3c!-- <input class="method" type="text" value="[METHOD]"/> --\x3e\r\n                    <select name=method class="form-control method">\r\n                        <option value=GET>GET</option>\r\n                        <option value=POST>POST</option>\r\n                    </select>\r\n                </div>\r\n            </div>    \r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">{language.field.control.autocomplete}</div>\r\n                <div class="">\r\n                    <span class="mswitch autocomplete-switch" data-checked=true>\r\n                        <span class="material-icons text-primary">toggle_on</span>\r\n                    </span>\r\n                </div>\r\n            </div>     \r\n            <div class="widget-section d-flex align-items-center">\r\n                <div class="label mr-auto">{language.field.control.form.enctype}</div>\r\n                <div class=place-value>\r\n                    <select name=enctype class="form-control enctype">\r\n                        <option value=application/x-www-form-urlencoded>application/x-www-form-urlencoded</option>\r\n                        <option value=multipart/form-data>multipart/form-data</option>\r\n                        <option value=text/plain>text/plain</option>\r\n                    </select>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center">\r\n                <div class="label mr-auto">{language.field.control.form.accept_charset}</div>\r\n                <div class=place-value>\r\n                    <select name=accept_charset class="form-control accept_charset">\r\n                        <option value=UTF-8>UTF-8</option>\r\n                        <option value=ISO-8859-1>ISO-8859-1</option>\r\n                    </select>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Captcha toggle Control--\x3e\r\n    <div id=CaptchaToggleControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">{language.field.control.captcha}</div>\r\n                <div class="">\r\n                    <span class="mswitch captcha-switch" data-checked=true>\r\n                        <span class="material-icons text-primary">toggle_on</span>\r\n                    </span>\r\n                </div>\r\n            </div>      \r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Common Field Control--\x3e\r\n    <div id=SectionTitleControl>\r\n        <div class="jumbotron jumbotron-fluid jumb-title">\r\n            <h3 class=title>[TITLE]</h3>\r\n        </div>\r\n    </div>\r\n    \r\n    \x3c!--Common Field Control--\x3e\r\n    <div id=CommonFieldControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center">\r\n                <div class="label mr-auto">{language.field.control.field_name}</div>\r\n                <div class="place-value pr-3">\r\n                    <input class="field-name disabled" type=text value=[FIELD_NAME] disabled=disabled />\r\n                </div>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center">\r\n                <div class="label mr-auto">{language.field.control.field_id}</div>\r\n                <div class="place-value pr-3">\r\n                    <div class="form-element-widget m-0">\r\n                        <input type=hidden class=field-id name=[FIELD_ID] />\r\n                        <span class=icon>\r\n                            <i class=material-icons-outlined style=font-size:25px;display:inline-block>[ICON]</i>\r\n                        </span>\r\n                        <span class="field-label-box mb-0"><span class=label>[FIELD_NAME]</span><span class="small text-muted hide">[FIELD_NAME]</span></span>\r\n                    </div>\r\n                    \x3c!-- <input class="field-id" type="text" value="[FIELD_NAME]"/> --\x3e\r\n                </div>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">{language.field.control.show_label}</div>\r\n                <div class="">\r\n                    <span class="mswitch label-switch" data-checked=true>\r\n                        <span class="material-icons text-primary">toggle_on</span>\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center field-label-line">\r\n                <div class="label mr-auto">{language.field.control.label}</div>\r\n                <div class="place-value pr-3">\r\n                    <input class=field-label type=text value=[LABEL] />\r\n                </div>\r\n            </div>            \r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Validation on/off Control--\x3e\r\n    <div id=ValidationControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto font-weight-normal">{language.field.control.validation.required}</div>\r\n                <div class="">\r\n                    <span class="mswitch required-switch" data-checked=true>\r\n                        <span class="material-icons text-primary">toggle_on</span>\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class=validation-rules>\r\n                <div class="widget-section d-flex align-items-center">\r\n                    <div class="label mr-auto">{language.field.control.validation.min_length}</div>\r\n                    <div class="place-value pr-3">\r\n                        <input class=min-length type=text value=[MIN_LENGTH] />\r\n                    </div>\r\n                </div>\r\n                <div class="widget-section d-flex align-items-center">\r\n                    <div class="label mr-auto">{language.field.control.validation.max_length}</div>\r\n                    <div class="place-value pr-3">\r\n                        <input class=max-length type=text value=[MAX_LENGTH] />\r\n                    </div>\r\n                </div>\r\n                <div class="widget-section d-flex align-items-center">\r\n                    <div class="label mr-auto">{language.field.control.validation.regexp}</div>\r\n                    <div class="place-value pr-3">\r\n                        <input class=regexp type=text value=[REGEXP] />\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Icon Select Control--\x3e\r\n    <div id=HeadingControl>\r\n        <div class="widget-section control-[ID] d-flex align-items-center pr-3">\r\n            <div class="label mr-auto">[TITLE]</div>\r\n            <select class=form-control style=width:180px>\r\n                <option value=h1>H1</option>     \r\n                <option value=h2>H2</option>     \r\n                <option value=h3>H3</option>     \r\n                <option value=h4>H4</option>     \r\n                <option value=h5>H5</option>     \r\n                <option value=h6>H6</option>     \r\n            </select>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Text style--\x3e\r\n    <div id=TextControl>\r\n        <div class="control-[ID] px-3 py-2">\r\n            <textarea class="text-content text-editor-[ID]">[TEXT]</textarea>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Background color--\x3e\r\n    <div id=BackgroundControl>\r\n        <div class="widget-section link-color-element">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=thongso>\r\n                <span class=click-color>\r\n                    <input type=color class=link-color value=#0056b3 id=[AINPUT_ID] />\r\n                </span>\r\n                <span class=value>\r\n                    <input class=link-color-input type=text value="" id=A-bg-color-[AINPUT_ID] />\r\n                </span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Icon Select Control--\x3e\r\n    <div id=IconSelectControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">[TITLE]</div>\r\n                <div class="icon mr-2" style=height:32px;text-align:right;width:35px></div>\r\n                <select class=form-control style=width:180px>\r\n                    <option value=none>\r\n                        --</option>\r\n                    <option value=facebook>\r\n                        Facebook</option>\r\n                    <option value=twitter>\r\n                        Twitter</option>\r\n                    <option value=instagram>\r\n                        Instagram</option>\r\n                    <option value=linkedin>\r\n                        Linkedin</option>\r\n                    <option value=tumblr>\r\n                        Tumblr</option>\r\n                    <option value=google_plus>\r\n                        Google Plus</option> \r\n                    <option value=youtube>\r\n                        YouTube\r\n                    </option>       \r\n                    <option value=line>\r\n                        LINE\r\n                    </option> \r\n                    <option value=wechat>\r\n                        WeChat\r\n                    </option>  \r\n                    <option value=weibo>\r\n                        Weibo\r\n                    </option>\r\n                    <option value=tiktok>\r\n                        TikTok\r\n                    </option>\r\n                    <option value=pinterest>\r\n                        Pinterest\r\n                    </option>\r\n                </select>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center pr-3">\r\n                <div class="label mr-auto">{language.link}</div>\r\n                <div class="">\r\n                    <input style=width:220px type=text name=url class="form-control url"/>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section d-flex align-items-center px-2">\r\n                <button class="btn btn-secondary mr-2 but-dup">{language.widget.duplicate}</button>\r\n                <button class="btn btn-warning but-remove">{language.widget.remove}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Font family--\x3e\r\n    <div id=FontFamilyControl>\r\n        <div class="widget-section font-family pr-3 control-[ID]">\r\n            <div class=label>[TITLE]</div>\r\n            <select class=form-control>\r\n                <option value=arial>Arial</option>\r\n                <option value=roboto>Roboto</option>\r\n                <option value="segoe ui">Segoe UI</option>   \r\n                <option value=serif>Serif</option>\r\n                <option value=tahoma>Tahoma</option>\r\n                <option value=times>Times</option>\r\n            </select>\r\n        </div>\r\n    </div>\r\n    \r\n    \x3c!--Text size--\x3e\r\n    <div id=TextSizeControl>\r\n        <div class="widget-section text-size control-[ID]">\r\n            <div class=label>[TITLE]</div>\r\n            <select class=form-control>\r\n                <option value=8px>8px</option>\r\n                <option value=9px>9px</option>\r\n                <option value=10px>10px</option>\r\n                <option value=11px selected=selected>11px</option>\r\n                <option value=12px>12px</option>\r\n                <option value=14px>14px</option>\r\n                <option value=16px>16px</option>\r\n                <option value=18px>18px</option>\r\n                <option value=20px>20px</option>\r\n                <option value=22px>22px</option>\r\n                <option value=24px>24px</option>\r\n                <option value=30px>30px</option>\r\n                <option value=38px>38px</option>\r\n                <option value=46px>46px</option>\r\n                <option value=60px>60px</option>\r\n                <option value=72px>72px</option>\r\n            </select>\r\n        </div>\r\n    </div>\r\n    \r\n    \x3c!--Text style--\x3e\r\n    <div id=TextStyleControl>\r\n        <div class="widget-section text-style control-[ID]">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=icons-group>\r\n                <ul>\r\n                    <li>\r\n                        <button class=text-style-bold>\r\n                            <i class={builder-icon-bold}></i>\r\n                        </button>\r\n                    </li>\r\n                    <li>\r\n                        <button class=text-style-italic>\r\n                            <i class={builder-icon-italic}></i>\r\n                        </button>\r\n                    </li>\r\n                    <li>\r\n                        <button class=text-style-underline>\r\n                            <i class={builder-icon-underline}></i>\r\n                        </button>\r\n                    </li>\r\n                    <li>\r\n                        <button class=text-style-strikethrough>\r\n                            <i class={builder-icon-strikethrough}></i>\r\n                        </button>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    \r\n    \x3c!--Text color--\x3e\r\n    <div id=ColorPickerControl>\r\n        <div class="widget-section text-color-element">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=thongso>\r\n                <span class=click-color>\r\n                    <input type=color id=[PINPUT_ID] class=color value=#555555 />\r\n                </span>\r\n                <span class=value>\r\n                    <input class=text-color-input type=text value="" id=P-text-color />\r\n                </span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n\r\n    \x3c!--link color--\x3e\r\n    <div id=LinkColorControl>\r\n        <div class="widget-section link-color-element">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=thongso>\r\n                <span class=click-color>\r\n                    <input type=color class=link-color value=#0056b3 id=[AINPUT_ID] />\r\n                </span>\r\n                <span class=value>\r\n                    <input class=link-color-input type=text value="" id=A-link-color-[AINPUT_ID] />\r\n                </span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Associate with tag--\x3e\r\n    <div id=DropdownAssociateControl>\r\n        <div class="widget-section widget-associate">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=right-value>\r\n                <select class=associate-dropdown id=[dropdown_ID] name={GENDER}>\r\n                    <option class=placeholder-option style=display:none>-- Select option --</option>\r\n                </select>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Associate with text--\x3e\r\n    <div id=TextAssociateControl>\r\n        <div class="widget-section widget-associate">\r\n            <div class=label>[TITLE]</div>\r\n            <div class="right-value right-value-text">\r\n                <select class=associate-text name="" id="">\r\n                \x3c!--tag--\x3e\r\n                </select>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Associate with checkbox--\x3e\r\n    <div id=CheckboxAssociateControl>\r\n        <div class="widget-section widget-associate">\r\n            <div class=label>[TITLE]</div>\r\n            <div class="right-value right-value-checbox">\r\n                <select class=associate-checkbox name="" id="">\r\n                    \x3c!--option--\x3e\r\n                </select>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Placeholder--\x3e\r\n    <div id=PlaceholderControl>\r\n        <div class="widget-section placeholder placeholder-input-control">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=place-value>\r\n                <input class="placeholder placeholder-input" type=text value="" name=""/>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--line height--\x3e\r\n    <div id=LineHeightControl>\r\n        <div class="widget-section control-[ID]">\r\n            <div class=label>[TITLE]</div>\r\n            <div class=thongso>\r\n                <ul>\r\n                    <li><img class="icon-left icon-line-height active" src=' +
      n(15) +
      ' line-height=1 /></li>\r\n                    <li><img class="icon-center icon-line-height" src=' +
      n(16) +
      ' line-height=1.5 /></li>\r\n                    <li><img class="icon-justify icon-line-height" src=' +
      n(17) +
      ' line-height=2 /></li>\r\n                    <li><img class="icon-right icon-line-height" src=' +
      n(18) +
      ' line-height=2.5 /></li>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Action--\x3e\r\n    <div id=ActionControl>\r\n        <div class=widget-action>\r\n            <div class=wg-info>\r\n                <div class=tren>\r\n                    <div class=trai>\r\n                       <span>{language.wpanel.controls.image_link.title}</span>\r\n                    </div>\r\n                </div>\r\n                <div class=giua>\r\n                    <div class=url-link>\r\n                        <div class=thongso>\r\n                            <span class=url>{language.wpanel.controls.url.title}</span>\r\n                            <span class=value>\r\n                                <input type=text value=[HREF]>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=duoi>\r\n                    <a class="" href="">{language.wpanel.controls.special_link.title}</a>\r\n                    <a class="" href="">{language.wpanel.controls.link_file.title}</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Block option--\x3e\r\n    <div id=BlockOptionControl>\r\n        <div class="widget-section2 block-option-control control-[ID]">\r\n            <div class=section-option>\r\n                <div class=widget>\r\n                    <div class=row>\r\n                        <div class="col-md-7 left">\r\n                            <div class=widget-label>[TITLE]</div>\r\n                        </div>\r\n                        <div class="col-md-5 right">\r\n                            <div class="widget-value right">\r\n                                <div class=toggle>\r\n                                    <div class="toggle__status toggle__status--off">{language.wpanel.controls.more_option.title}</div>\r\n                                    <label class="switch check-all-padding">\r\n                                        <input type=checkbox>\r\n                                        <span class="slider all-padding" id=""></span>\r\n                                    </label>\r\n                                    <label class="switch check-4-padding" style=display:none>\r\n                                        <input type=checkbox>\r\n                                        <span class="slider _4-padding" id=""></span>\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <hr class=hr--cs />\r\n                <div class="widget detail-padding">\r\n                    <div class=container>\r\n                        <div class="">\r\n                            <div class="d-flex align-items-center" style=width:100%>\r\n                                <div class=all-padding-section>\r\n                                    <div class="_1_minus-plus _1_minus-plus-block">\r\n                                        <span class=label>{language.wpanel.controls.all_side.title}</span>\r\n                                        <div class=minus-plus>\r\n                                            <span class=minus>\r\n                                                <button class=minus-all id="">-</button>\r\n                                            </span>\r\n                                            <input type=text value=[PADDING] id=giatri class=value-padding />\r\n                                            <span class=plus>\r\n                                                <button class=plus-all id="">+</button>\r\n                                            </span>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                                <div class=four-padding-section>\r\n                                    <div class="left padding" id=padding>\r\n                                        <div class="tren mr-3">\r\n                                            <span class=label>{language.wpanel.controls.top.title}</span>\r\n                                            <div class=minus-plus>\r\n                                                <span class=minus>\r\n                                                    <button class=minus-top id="">-</button>\r\n                                                </span>\r\n                                                <input type=text value=[TOP] id=value-top class=value-top />\r\n                                                <span class=plus>\r\n                                                    <button class=plus-top id="">+</button>\r\n                                                </span>\r\n                                            </div>\r\n                                        </div>\r\n                                        <div class=tren>\r\n                                            <span class=label>{language.wpanel.controls.bottom.title}</span>\r\n                                            <div class="minus-plus minus-bottom-right">\r\n                                                <span class=minus style="">\r\n                                                    <button class=minus-bottom id="">-</button>\r\n                                                </span>\r\n                                                <input type=text value=[BOTTOM] id=value-bottom class=value-bottom />\r\n                                                <span class=plus style="">\r\n                                                    <button class=plus-bottom id="">+</button>\r\n                                                </span>\r\n                                            </div>\r\n                                        </div>\r\n                                    </div>\r\n                                    <div class="left padding" style="" id=padding>\r\n                                        <div class="tren mr-3">\r\n                                            <span class=label>{language.wpanel.controls.left.title}</span>\r\n                                            <div class=minus-plus>\r\n                                                <span class=minus>\r\n                                                    <button class=minus-left id="">-</button>\r\n                                                </span>\r\n                                                <input type=text value=[LEFT] id=value-left class=value-left />\r\n                                                <span class=plus>\r\n                                                    <button class=plus-left id="">+</button>\r\n                                                </span>\r\n                                            </div>\r\n                                        </div>\r\n                                        <div class=tren>\r\n                                            <span class=label>{language.wpanel.controls.right.title}</span>\r\n                                            <div class="minus-plus minus-bottom-right" style="">\r\n                                                <span class=minus style="">\r\n                                                    <button class=minus-right id="">-</button>\r\n                                                </span>\r\n                                                <input type=text value=[RIGHT] id=value-right class=value-right />\r\n                                                <span class=plus style="">\r\n                                                    <button class=plus-right id="">+</button>\r\n                                                </span>\r\n                                            </div>\r\n                                        </div>                                        \r\n                                    </div>                                \r\n                                </div>\r\n                                <div class="right ml-auto">\r\n                                    <div class=square id=square-block>\r\n                                        <img title="Padding preview" src=' +
      n(19) +
      '>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=imageControl>\r\n        <div class=control-[ID]>\r\n            <div class="widget image-name">\r\n                <div class=image-selected>\r\n                    <img id=[image_selected_ID] class=image-select src=https://tinyjpg.com/images/social/website.jpg />\r\n                </div>\r\n                <div class=tren>\r\n                    <div class="d-flex align-items-canter justify-content-center">\r\n                        \x3c!-- <div class="label">{language.wpanel.controls.image_name.title}</div> --\x3e\r\n                        <span id=name-image>{language.wpanel.controls.logo_name.title}</span>\r\n                    </div>\r\n                    <div class=button>\r\n                        <button class="btn btn-info change" id=[uploadImage-ID] type=submit>{language.wpanel.controls.change_image.title}</button>\r\n                        \x3c!-- <button class="btn btn-secondary" style="pointer-events: none;">{language.wpanel.controls.effect.title}</button> --\x3e\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            \r\n            <div class="widget alternate-text">\r\n                <div class=row>\r\n                    <div class="col-md-3 left">\r\n                        <div class=widget-label>{language.wpanel.controls.alternate.title}</div>\r\n                    </div>\r\n                    <div class="col-md-9 right">\r\n                        <input type=text value="" id=[img_alt_ID] class=name-img />\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class=widget>\r\n                <div class="d-flex align-items-center" style=margin-bottom:-35px;padding-top:20px>\r\n                    <div class=mr-auto></div>\r\n                    <div class=mr-3><span class=widget-label>{language.control.image.fix_width}</span></div>\r\n                    <div>\r\n                        <label class="d-flex align-items-center checker" style=font-size:14px;font-weight:400;color:#333>\r\n                            <input type=checkbox class=item-show-check name=width_fix value=true />\r\n                            <span class=checker-symbol></span>\r\n                        </label> \r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class=width_fix_row>\r\n                <div class="widget range" id=image-control-ID>\r\n                    <div class=row>\r\n                        <div class="col-md-8 left">\r\n                            <div class=widget-label>{language.image.width}</div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=tren>\r\n                        <div style=position:relative;width:100%>\r\n                            <input style=width:100% type=range min=0 max=6000 step=1 value=0 class=image-width-fix>\r\n                            <span class=label-begin>0</span>\r\n                            <span class=label-end>6000px</span>\r\n                        </div>\r\n                        <div class="thongso image-width-fix-text" style=align-items:end;padding-bottom:7px>{language.wpanel.controls.value.title}</div>\r\n                    </div>\r\n                </div>\r\n                <hr class=hr--cs />\r\n            </div>\r\n            <div class=width_row>\r\n                <div class="widget range" id=image-control-ID>\r\n                    <div class=row>\r\n                        <div class="col-md-8 left">\r\n                            <div class=widget-label>{language.image.width}</div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=tren>\r\n                        <div style=position:relative;width:100%>\r\n                            <input style=width:100% type=range min=0 max=100 step=1 value=0 class=image-width>\r\n                            <span class=label-begin>0%</span>\r\n                            <span class=label-end>100%</span>\r\n                        </div>\r\n                        <div class="thongso image-width-text" style=align-items:end;padding-bottom:7px>{language.wpanel.controls.value.title}</div>\r\n                    </div>\r\n                </div>\r\n                <hr class=hr--cs />\r\n            </div>\r\n            <div class="widget range" id=image-control-ID>\r\n                <div class=row>\r\n                    <div class="col-md-8 left">\r\n                        <div class=widget-label>\r\n                            <div class="d-flex align-items-center">\r\n                                <div>{language.image.height}</div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-4 right">\r\n                        <div class="d-flex align-items-center">\r\n                            <div class="mr-2 small">{language.image.auto_height}</div>\r\n                            <div class="d-flex align-items-center">\r\n                                <label style=position:relative>\r\n                                    <input type=checkbox class="styled3 image-height-auto"/>\r\n                                    <span class=check-symbol></span>\r\n                                </label>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=tren>\r\n                    <input type=range min=0 max=2000 step=1 value=0 class=image-height>\r\n                    <div class="thongso image-height-text">{language.wpanel.controls.value.title}</div>\r\n                </div>\r\n            </div>\r\n            <hr class=hr--cs />\r\n            <div class="widget align">\r\n                <div class=label>[TITLE]</div>\r\n                <div class=thongso>\r\n                    <ul>\r\n                        <li><i class="{builder-icon-align-left} icon-left-img icon-align" align=left id=[icon-left-ID]></i></li>\r\n                        <li><i class="{builder-icon-align-justify} icon-center-img icon-align" align=center id=[icon-center-ID]></i></li>\r\n                        <li><i class="{builder-icon-align-right} icon-right-img icon-align" align=right id=[icon-right-ID]></i></li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n            \r\n            <div class="widget-section link-image">\r\n                <div class=wg-info>\r\n                    <div class=tren>\r\n                        <div class=trai>\r\n                            <span>{language.image_url}</span>\r\n                        </div>\r\n                    </div>\r\n                    <div class=giua>\r\n                        <div class=url-link>\r\n                            <div class=thongso>\r\n                                <span class=url>{language.wpanel.controls.url.title}</span>\r\n                                <span class=value>\r\n                                    <input type=text class=url-image id=[img_url_ID] value="">\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=duoi>\r\n                        <a class=copy-url href="">{language.wpanel.controls.copy_url.title}</a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Button option--\x3e\r\n    <div id=ButtonOptionControl>\r\n        <div class="widget-section2 button-option-control control-[ID]">\r\n            <div class="widget range" style="border-bottom:1px solid #e1e4e7;height:auto!important;padding-bottom:15px!important">\r\n                <div class=row>\r\n                    <div class="col-md-8 left">\r\n                        <div class=widget-label>{language.wpanel.controls.auto_width.title}</div>\r\n                    </div>\r\n                    <div class="col-md-4 right" style=padding-right:6px!important>\r\n                        <div class="widget-value right">\r\n                            <div class=toggle>\r\n                                <label class=switch>\r\n                                    <input type=checkbox checked=checked>\r\n                                    <span class="slider auto-width-plus"></span>\r\n                                </label>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <hr class="hr--cs hr--cs-button hide" style="border-top:1px solid rgba(0,0,0,.04)!important">\r\n                <div class="tren auto-width-button hide">\r\n                    <input type=range min=50 max=500 step=5 value="" style="" id="" class="color-default color-default-button">\r\n                    <div class="thongso width-button" id=thongsos>[WIDTH_BUTTON]</div>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section bg-color" style=height:60px!important>\r\n                <div class=label>{language.wpanel.controls.background_color.title}</div>\r\n                <div class="thongso background">\r\n                    <span class=click-color>\r\n                        <input type=color class="color background-color" value=#cccccc id=[BACKINPUT_ID] />\r\n                    </span>\r\n                    <span class=value>\r\n                        <input class=background-color-input type=text value=[BACKGROUNDVALUE] id=background-color-input-text />\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section text-color" style=height:60px!important>\r\n                <div class=label>{language.wpanel.controls.text_color.title}</div>\r\n                <div class="thongso background">\r\n                    <span class=click-color>\r\n                        <input type=color class=text-color-picker value=#555555 id=""/>\r\n                    </span>\r\n                    <span class=value>\r\n                        <input class=input-text-color type=text value="" id=text_color_input />\r\n                    </span>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section align" style=height:60px!important>\r\n                <div class=label>{language.wpanel.controls.align.title}</div>\r\n                <div class="thongso background">\r\n                    <div class="item_1-2 right">\r\n                        <div mailup-common-alignment-selector="" ng-model="style[\'text-align\']" class="ng-pristine ng-untouched ng-valid ng-isolate-scope ng-not-empty">\r\n                            <div class=alignment-container>\r\n                                <button type=button class="align btn btn-default align-left ng-pristine ng-valid ng-not-empty ng-touched" float=left ng-model=value uib-btn-radio="\'left\'" style="">\r\n                                </button>\r\n                                <button type=button class="align btn btn-default align-center ng-pristine ng-untouched ng-valid ng-not-empty active" float=center ng-model=value uib-btn-radio="\'center\'">\r\n                                </button>\r\n                                <button type=button class="align btn btn-default align-right ng-pristine ng-untouched ng-valid ng-not-empty" float=right ng-model=value uib-btn-radio="\'right\'">\r\n                                </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section line-height" style=height:60px!important>\r\n                <div class=label>{language.wpanel.controls.line_height.title}</div>\r\n                <div class=thongso>\r\n                    <ul>\r\n                        <li><img class="icon-left icon-line-height active" src=' +
      n(15) +
      ' line-height=1 style=width:70%;height:100%;cursor:pointer /></li>\r\n                        <li><img class="icon-center icon-line-height" src=' +
      n(16) +
      ' line-height=1.5 style=width:70%;height:100%;cursor:pointer /></li>\r\n                        <li><img class="icon-justify icon-line-height" src=' +
      n(17) +
      ' line-height=2 style=width:68%;height:100%;cursor:pointer /></li>\r\n                        <li><img class="icon-right icon-line-height" src=' +
      n(18) +
      ' line-height=2.5 style=width:68%;height:100%;cursor:pointer /></li>\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n            <div class="widget-section border-radius" style=height:60px!important>\r\n                <div class=label>{language.wpanel.controls.border_radius.title}</div>\r\n                <div class=thongso>\r\n                    <div class="minus-plus border-radius">\r\n                        <span class=minus>\r\n                            <button class=minus id=minus-border>-</button>\r\n                        </span>\r\n                        <input class=border-button type=text value="" id=border-radius />\r\n                        <span class=plus>\r\n                            <button class=plus id=plus-border>+</button>\r\n                        </span>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class="section-option borders" style=margin-bottom:40px>\r\n                <div class="widget more-options">\r\n                    <div class=row>\r\n                        <div class="col-md-7 left">\r\n                            <div class=widget-label>{language.wpanel.controls.border.title}</div>\r\n                        </div>\r\n                        <div class="col-md-5 right">\r\n                            <div class="widget-value right">\r\n                                <div class=toggle>\r\n                                    <div class="toggle__status toggle__status--off">{language.wpanel.controls.more_option.title}</div>\r\n                                    <label class="switch check-all-border">\r\n                                        <input type=checkbox>\r\n                                        <span class="slider padding_border all-border" id=""></span>\r\n                                    </label>\r\n                                    <label class="switch check-four-border" style=display:none>\r\n                                        <input type=checkbox>\r\n                                        <span class="slider padding_border four-border" id=""></span>\r\n                                    </label>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class="widget all-sides">\r\n                    <div class=container>\r\n                        <div class=row>\r\n                            <div class="_1_minus-plus _1_minus-plus-border" style="">\r\n                                <span class=label style="">{language.wpanel.controls.all_side.title}</span>\r\n                                <div class="btn-group dropdown-custom dropdown-custom--cs dropdown" uib-dropdown="" ng-click=toggleDropdown($event) ng-show=styleEnabled style="">\r\n                                    <button uib-dropdown-toggle="" is-open=isOpen type=button class="btn btn-default dropdown-toggle dropdown-toggle-style" aria-haspopup=true aria-expanded=false>\r\n                                        <span class="ng-binding border-style"></span>\r\n                                        <div class=arrows>\r\n                                            <span class="caret up"></span>\r\n                                            <span class="caret down"></span>\r\n                                            <div class=clear-fix></div>\r\n                                        </div>\r\n                                    </button>\r\n                                    <ul class="dropdown-menu dropdown-menu-style" role=menu>\r\n                                        \x3c!-- ngRepeat: style in styles --\x3e\r\n                                        <li ng-repeat="style in styles" class=ng-scope>\r\n                                            <a href=javascript:; ng-click=changeStyle(style) id="" data-value=solid class="ng-binding ng-binding-solid">{language.wpanel.controls.solid.title}</a>\r\n                                        </li>\r\n                                        \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        <li ng-repeat="style in styles" class=ng-scope>\r\n                                            <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dotted class="ng-binding ng-binding-dotted">{language.wpanel.controls.dotted.title}</a>\r\n                                        </li>\r\n                                        \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        <li ng-repeat="style in styles" class=ng-scope>\r\n                                            <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dashed class="ng-binding ng-binding-dashed">{language.wpanel.controls.dashed.title}</a>\r\n                                        </li>\r\n                                        \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                    </ul>\r\n                                </div>\r\n                                <div class="minus-plus minus-plus-border">\r\n                                    <span class="minus minus-border">\r\n                                        <button class=minus id=minus-border-width>-</button>\r\n                                    </span>\r\n                                    <input class=border-width-input type=text value="" id=giatriborder />\r\n                                    <span class="plus plus-border">\r\n                                        <button class=plus id=plus-border-width>+</button>\r\n                                    </span>\r\n                                </div>\r\n\r\n                                <div class=widget-section-border>\r\n                                    <div class=thongso>\r\n                                        <span class=click-color>\r\n                                            <input type=color id="" class=border-color value=#000000 style=padding:3px;border:none;width:28px;position:absolute;cursor:pointer />\r\n                                        </span>\r\n                                        <span class=value>\r\n                                            <input class=border_color_input type=text value="" id=border-color />\r\n                                        </span>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n\r\n                            <div class="left padding-border" id=padding-border>\r\n                                <div class="_1_minus-plus-top _1_minus-plus-border-top" style="">\r\n                                    <span class=label style=width:100%!important>{language.wpanel.controls.top.title}</span>\r\n                                    <div class="btn-group dropdown-custom dropdown-custom--cs dropdown" uib-dropdown="" ng-click=toggleDropdown($event) ng-show=styleEnabled style="">\r\n                                        <button uib-dropdown-toggle="" is-open=isOpen type=button class="btn btn-default dropdown-toggle dropdown-toggle-style-top" aria-haspopup=true aria-expanded=false>\r\n                                            <span class="ng-binding border-style-top">{language.wpanel.controls.solid.title}</span>\r\n                                            <div class=arrows>\r\n                                                <span class="caret up"></span>\r\n                                                <span class="caret down"></span>\r\n                                                <div class=clear-fix></div>\r\n                                            </div>\r\n                                        </button>\r\n                                        <ul class="dropdown-menu dropdown-menu-style-top" role=menu>\r\n                                            \x3c!-- ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=solid class="ng-binding ng-binding-solid-top">{language.wpanel.controls.solid.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dotted class="ng-binding ng-binding-dotted-top">{language.wpanel.controls.dotted.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-cborder-colorlick=changeStyle(style) id="" data-value=dashed class="ng-binding ng-binding-dashed-top">{language.wpanel.controls.dashed.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        </ul>\r\n                                    </div>\r\n                                    <div class="minus-plus minus-plus-border">\r\n                                        <span class="minus minus-border">\r\n                                            <button class=minus id=minus-border-top>-</button>\r\n                                        </span>\r\n                                        <input class="border-input border-top-width-input" type=text value=0 id=giatribordertop />\r\n                                        <span class="plus plus-border">\r\n                                            <button class=plus id=plus-border-top>+</button>\r\n                                        </span>\r\n                                    </div>\r\n\r\n                                    <div class=widget-section-border>\r\n                                        <div class=thongso>\r\n                                            <span class=click-color>\r\n                                                <input type=color id="" class=border-color-top value=#000000 style=padding:3px;border:none;width:28px;position:absolute;top:2px;cursor:pointer;left:-57px />\r\n                                            </span>\r\n                                            <span class=value>\r\n                                                <input class=border_top_color_input type=text value="" id=border-top-color />\r\n                                            </span>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                                <div class="_1_minus-plus-right _1_minus-plus-border-right" style="">\r\n                                    <span class=label style=width:100%!important>{language.wpanel.controls.right.title}</span>\r\n                                    <div class="btn-group dropdown-custom dropdown-custom--cs dropdown" uib-dropdown="" ng-click=toggleDropdown($event) ng-show=styleEnabled style="">\r\n                                        <button uib-dropdown-toggle="" is-open=isOpen type=button class="btn btn-default dropdown-toggle dropdown-toggle-style-right" aria-haspopup=true aria-expanded=false>\r\n                                            <span class="ng-binding border-style-right">{language.wpanel.controls.solid.title}</span>\r\n                                            <div class=arrows>\r\n                                                <span class="caret up"></span>\r\n                                                <span class="caret down"></span>\r\n                                                <div class=clear-fix></div>\r\n                                            </div>\r\n                                        </button>\r\n                                        <ul class="dropdown-menu dropdown-menu-style-right" role=menu>\r\n                                            \x3c!-- ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=solid class="ng-binding ng-binding-solid-right">{language.wpanel.controls.solid.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dotted class="ng-binding ng-binding-dotted-right">{language.wpanel.controls.dotted.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dashed class="ng-binding ng-binding-dashed-right">{language.wpanel.controls.dashed.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        </ul>\r\n                                    </div>\r\n                                    <div class="minus-plus minus-plus-border">\r\n                                        <span class="minus minus-border">\r\n                                            <button class=minus id=minus-border-right>-</button>\r\n                                        </span>\r\n                                        <input class="border-input border-right-width-input" type=text value=0 id=giatriborderright />\r\n                                        <span class="plus plus-border">\r\n                                            <button class=plus id=plus-border-right>+</button>\r\n                                        </span>\r\n                                    </div>\r\n\r\n                                    <div class=widget-section-border>\r\n                                        <div class=thongso>\r\n                                            <span class=click-color>\r\n                                                <input type=color id="" class=border-color-right value=#000000 style=padding:3px;border:none;width:28px;position:absolute;top:2px;cursor:pointer;left:-57px />\r\n                                            </span>\r\n                                            <span class=value>\r\n                                                <input class=border_right_color_input type=text value="" id=border-right-color />\r\n                                            </span>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                                <div class="_1_minus-plus-bottom _1_minus-plus-border-bottom" style="">\r\n                                    <span class=label style=width:100%!important>{language.wpanel.controls.bottom.title}</span>\r\n                                    <div class="btn-group dropdown-custom dropdown-custom--cs dropdown" uib-dropdown="" ng-click=toggleDropdown($event) ng-show=styleEnabled style="">\r\n                                        <button uib-dropdown-toggle="" is-open=isOpen type=button class="btn btn-default dropdown-toggle dropdown-toggle-style-bottom" aria-haspopup=true aria-expanded=false>\r\n                                            <span class="ng-binding border-style-bottom">{language.wpanel.controls.solid.title}</span>\r\n                                            <div class=arrows>\r\n                                                <span class="caret up"></span>\r\n                                                <span class="caret down"></span>\r\n                                                <div class=clear-fix></div>\r\n                                            </div>\r\n                                        </button>\r\n                                        <ul class="dropdown-menu dropdown-menu-style-bottom" role=menu>\r\n                                            \x3c!-- ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=solid class="ng-binding ng-binding-solid-bottom">{language.wpanel.controls.solid.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dotted class="ng-binding ng-binding-dotted-bottom">{language.wpanel.controls.dotted.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dashed class="ng-binding ng-binding-dashed-bottom">{language.wpanel.controls.dashed.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        </ul>\r\n                                    </div>\r\n                                    <div class="minus-plus minus-plus-border">\r\n                                        <span class="minus minus-border">\r\n                                            <button class=minus id=minus-border-bottom>-</button>\r\n                                        </span>\r\n                                        <input class="border-input border-bottom-width-input" type=text value=0 id=giatriborderbottom />\r\n                                        <span class="plus plus-border">\r\n                                            <button class=plus id=plus-border-bottom>+</button>\r\n                                        </span>\r\n                                    </div>\r\n\r\n                                    <div class=widget-section-border>\r\n                                        <div class=thongso>\r\n                                            <span class=click-color>\r\n                                                <input type=color id="" class=border-color-bottom value=#000000 style=padding:3px;border:none;width:28px;position:absolute;top:2px;cursor:pointer;left:-62px />\r\n                                            </span>\r\n                                            <span class=value>\r\n                                                <input class=border_bottom_color_input type=text value="" id=border-bottom-color />\r\n                                            </span>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                                <div class="_1_minus-plus-left _1_minus-plus-border-left" style="">\r\n                                    <span class=label style=width:100%!important>{language.wpanel.controls.left.title}</span>\r\n                                    <div class="btn-group dropdown-custom dropdown-custom--cs dropdown" uib-dropdown="" ng-click=toggleDropdown($event) ng-show=styleEnabled style="">\r\n                                        <button uib-dropdown-toggle="" is-open=isOpen type=button class="btn btn-default dropdown-toggle dropdown-toggle-style-left" aria-haspopup=true aria-expanded=false>\r\n                                            <span class="ng-binding border-style-left">{language.wpanel.controls.solid.title}</span>\r\n                                            <div class=arrows>\r\n                                                <span class="caret up"></span>\r\n                                                <span class="caret down"></span>\r\n                                                <div class=clear-fix></div>\r\n                                            </div>\r\n                                        </button>\r\n                                        <ul class="dropdown-menu dropdown-menu-style-left" role=menu>\r\n                                            \x3c!-- ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=solid class="ng-binding ng-binding-solid-left">{language.wpanel.controls.solid.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dotted class="ng-binding ng-binding-dotted-left">{language.wpanel.controls.dotted.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                            <li ng-repeat="style in styles" class=ng-scope>\r\n                                                <a href=javascript:; ng-click=changeStyle(style) id="" data-value=dashed class="ng-binding ng-binding-dashed-left">{language.wpanel.controls.dashed.title}</a>\r\n                                            </li>\r\n                                            \x3c!-- end ngRepeat: style in styles --\x3e\r\n                                        </ul>\r\n                                    </div>\r\n                                    <div class="minus-plus minus-plus-border">\r\n                                        <span class="minus minus-border">\r\n                                            <button class=minus id=minus-border-left>-</button>\r\n                                        </span>\r\n                                        <input class="border-input border-left-width-input" type=text value=0 id=giatriborderleft />\r\n                                        <span class="plus plus-border">\r\n                                            <button class=plus id=plus-border-left>+</button>\r\n                                        </span>\r\n                                    </div>\r\n\r\n                                    <div class=widget-section-border>\r\n                                        <div class=thongso>\r\n                                            <span class=click-color>\r\n                                                <input type=color id="" class=border-color-left value=#000000 style=padding:3px;border:none;width:28px;position:absolute;top:2px;cursor:pointer;left:-57px />\r\n                                            </span>\r\n                                            <span class=value>\r\n                                                <input class=border_left_color_input type=text value="" id=border-left-color />\r\n                                            </span>\r\n                                        </div>\r\n                                    </div>\r\n                                </div>\r\n                            </div>\r\n                            \r\n                            <div class="col-md-4 right" style=top:12px!important>\r\n                                <div class=square-border id=square-border>\r\n                                    <img title="Padding preview" src=' +
      n(19) +
      '>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <script>$(document).on("click","span.slider.content_padding",function(){$(".content-padding").toggleClass("hienlen"),$("._1_minus-plus-content").toggleClass("andi")}),$(document).on("click","span.all-border",function(){$("label.check-all-border").addClass("andi"),$("label.check-four-border").addClass("hienthi"),$("._1_minus-plus-border").addClass("andi"),$(".left.padding-border").addClass("hienlen")}),$(document).on("click","span.four-border",function(){$("label.check-all-border").removeClass("andi"),$("label.check-four-border").removeClass("hienthi"),$("._1_minus-plus-border").removeClass("andi"),$(".left.padding-border").removeClass("hienlen")}),$(document).on("click","span.auto-width-plus",function(){$(".auto-width-button").toggleClass("hide"),$(".hr--cs-button").toggleClass("hide")}),$(document).on("click",".dropdown-toggle",function(){var e=$(this).closest(".dropdown-custom").find(".dropdown-menu");e.is(":visible")?e.hide():($(".dropdown-menu:visible").hide(),e.show()),$(this).closest(".dropdown-custom").addClass("visible"),$(".dropdown-toggle").removeClass("change-bg"),$(this).addClass("change-bg")}),$(document).click(function(e){0==$(e.target).closest(".dropdown-menu").length&&0==$(e.target).closest(".dropdown-toggle").length&&($(".dropdown-menu:visible").hide(),$(".dropdown-custom").removeClass("visible"),$(".dropdown-toggle").removeClass("change-bg"))})</script>\r\n\r\n    \x3c!--Action button--\x3e\r\n    <div id=ActionButtonControl>\r\n        <div class="widget-action action-button">\r\n            <div class=wg-info>\r\n                <div class=tren id=link-redirect-page style="">\r\n                    <div class=trai>\r\n                        <input type=radio class=check-link-page name=redirect-page style=margin-right:5px />\r\n                        <span>{language.wpanel.controls.link_to.title}</span>\r\n                    </div>\r\n                    <div class=phai>\r\n                        <button type="" value="" class=owp-button id=""></button>\r\n                        <div class="arrows arrows-button">\r\n                            <span class="caret up"></span>\r\n                            <span class="caret down"></span>\r\n                            <div class=clear-fix></div>\r\n                        </div>\r\n                        <ul class="down-menu down-menu-button" id="">\r\n                            \x3c!--li--\x3e\r\n                        </ul>\r\n                    </div>\r\n                </div>\r\n                <div class="input-url input-url-hide">\r\n                    <div class=giua>\r\n                        <div class=url-link>\r\n                            <div class=thongso>\r\n                                <span class=url>{language.wpanel.controls.url.title}</span>\r\n                                <span class=value>\r\n                                    <input type=text value="" class=input-external>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \x3c!-- <div class="tren" id="action-redirect-page" style="border-top: 1px solid #eee;">\r\n                    <div class="trai">\r\n                        <input type="radio" class="check-action-page" name="redirect-page" style="margin-right: 5px;"/>\r\n                        <span>{language.wpanel.controls.actions.title}</span>\r\n                    </div>\r\n                    <div class="phai">\r\n                        <button type="" value="" class="action-button-link" id=""></button>\r\n                        <div class="arrows arrows-button">\r\n                            <span class="caret up"></span>\r\n                            <span class="caret down"></span>\r\n                            <div class="clear-fix"></div>\r\n                        </div>\r\n                        <ul class="down-menu-action-button" id="">\r\n                        </ul>\r\n                    </div>\r\n                </div> --\x3e\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <script>$(document).on("click",".owp-button",function(){$("ul.down-menu-button").toggleClass("hienlen")}),$(document).on("click",".arrows-button",function(){$("ul.down-menu-button").toggleClass("hienlen")}),$(document).on("click",".external-url",function(){$(".input-url").removeClass("input-url-hide")}),$(document).on("click",".link-page",function(){$(".input-url").addClass("input-url-hide")}),$(document).on("click",".action-button-link",function(){$("ul.down-menu-action-button").toggleClass("hienlen")})</script>\r\n\r\n    \x3c!--Video action--\x3e\r\n    <div id=VideoOptionControl>\r\n        <div class="widget-action action-video">\r\n            <div class=video-content-container>\r\n                <div class=wg-info>\r\n                    <div class=widget-label>\r\n                        [TITLE]\r\n                    </div>\r\n                    <div class="item_1 basic-spacer">\r\n                        <input type=text value="" class=input-url-link-video>\r\n                    </div>\r\n                    <div class=item_1>\r\n                        <p class="widget__label widget__label--cs">{language.wpanel.controls.widget_label.title}</p>\r\n                    </div>\r\n                </div>\r\n                <hr class=hr--cs>\r\n                <div class="widget-info bottom">\r\n                    <div class=item_2-4>\r\n                        <div class=widget__box>\r\n                            <span class=box__label>{language.wpanel.controls.play_icon.title}</span>\r\n                            <div class=box__action>\r\n                                <div class=dropdown--custom>\r\n                                    <button class="type dropdown--toggle">\r\n                                        <span>{language.wpanel.controls.round_solid.title}</span>\r\n                                        <div class=arrows>\r\n                                            <span class="caret up"></span>\r\n                                            <span class="caret down"></span>\r\n                                            <div class=clear-fix></div>\r\n                                        </div>\r\n                                    </button>\r\n                                    <ul class="dropdown-menu dropdown-menu-type">\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.round_solid.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.round_outline.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.rectangle_solid.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.rectangle_outline.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.square_solid.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.square_outline.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.arrow_only.title}</a>\r\n                                        </li>\r\n                                    </ul>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=widget__box>\r\n                            <span class=box__label>{language.wpanel.controls.play_icon_color.title}</span>\r\n                            <div class=box__action>\r\n                                <div class=dropdown--custom>\r\n                                    <button class="color dropdown--toggle">\r\n                                        <span>{language.wpanel.controls.light.title}</span>\r\n                                        <div class=arrows>\r\n                                            <span class="caret up"></span>\r\n                                            <span class="caret down"></span>\r\n                                            <div class=clear-fix></div>\r\n                                        </div>\r\n                                    </button>\r\n                                    <ul class="dropdown-menu dropdown-menu-color">\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.light.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.dark.title}</a>\r\n                                        </li>\r\n                                    </ul>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class=widget__box style=margin-bottom:40px>\r\n                            <span class=box__label>{language.wpanel.controls.play_icon_size.title}</span>\r\n                            <div class=box__action>\r\n                                <div class=dropdown--custom>\r\n                                    <button class="size dropdown--toggle">\r\n                                        <span>{language.wpanel.controls.value.title}</span>\r\n                                        <div class=arrows>\r\n                                            <span class="caret up"></span>\r\n                                            <span class="caret down"></span>\r\n                                            <div class=clear-fix></div>\r\n                                        </div>\r\n                                    </button>\r\n                                    <ul class="dropdown-menu dropdown-menu-size">\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.value.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.value_55.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.value_60.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.value_65.title}</a>\r\n                                        </li>\r\n                                        <li class=item-drop>\r\n                                            <a>{language.wpanel.controls.value_70.title}</a>\r\n                                        </li>\r\n                                    </ul>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class=item_2-4>\r\n                        <div class=video-square>\r\n                            <img title="Play icon preview" src=' +
      n(45) +
      '>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <script>$(document).on("click",".dropdown--toggle",function(){var o=$(this).closest(".dropdown--custom").find(".dropdown-menu");o.is(":visible")?o.show():($(".dropdown-menu:visible").hide(),o.hide()),$(this).closest(".dropdown--custom").addClass("visible"),$(".dropdown--toggle").removeClass("change-bg"),$(this).addClass("change-bg")}),$(document).click(function(o){0==$(o.target).closest(".dropdown-menu").length&&0==$(o.target).closest(".dropdown--toggle").length&&($(".dropdown-menu:visible").show(),$(".dropdown--custom").removeClass("visible"),$(".dropdown--toggle").removeClass("change-bg"))})</script>\r\n\r\n    \x3c!--html--\x3e\r\n    <div id=HtmlOptionControl>\r\n        <div class="widget-section action-html align-items-top control-[ID]">\r\n            <div>\r\n                <div class="widget-section-1 _1khoi">\r\n                    <textarea class="p-2 html-input" style="margin:12px;width:calc(100% - 24px);height:calc(100% - 24px);height:150px">[HTML]</textarea>\r\n                </div>\r\n                \x3c!-- end _1khoi--\x3e\r\n                <div class="widget-section-2 _1khoi">\r\n                    <div class=widget-desc>\r\n                        <h3 class=widget-label>{language.wpanel.controls.des_label.title}</h3>\r\n                        <p class=widget-label-des>{language.wpanel.controls.des_widget_label.title}</p>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>';
  },
  function (e, t, n) {
    e.exports =
      '<div style=display:none>\r\n    \x3c!--Center Logo--\x3e\r\n    <div id=CenterLogoWidget>\r\n        <div class="_1content widget-video">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n              <div class=image-drag>\r\n                  <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                    <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 90.2 72"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=0.6 y=61.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.6 y=25 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.6 y=32.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.6 y=69.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect x=25 width=40.7 height=13.31 rx=5.2 style=fill:#999 /><rect y=41.4 width=40.7 height=13.31 style=fill:#b7b7b7 /><rect x=49.5 y=41.4 width=40.7 height=13.31 style=fill:#b7b7b7 /></g></g></svg>\r\n                  </div>\r\n              </div>\r\n               <div class="body__title body__title--cs ng-binding">{language.center_logo}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=CenterLogoWidgetContent>\r\n        <div style=text-align:center;margin:0>\r\n            <img builder-element="" src=' +
      n(46) +
      ' width=200px class="">\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Textarea Field--\x3e\r\n    <div id=YoutubeWidget>\r\n        <div class="_1content widget-video">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n              <div class=image-drag>\r\n                  <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                      <svg xmlns=http://www.w3.org/2000/svg id=Layer_2 viewBox="0 0 237.01 234.99"><g id=svg2><g id=layer1><path id=rect1942 d=m199.52,0H35.49C15.89,0,0,15.89,0,35.49v164.02c0,19.6,15.89,35.49,35.49,35.49h164.03c19.6,0,35.49-15.89,37.49-34.82V36.15C235.01,15.89,219.12,0,199.52,0Z style=fill:#e2e2e2;stroke-width:0 /><g style=isolation:isolate><path d=m49.14,24.91h15.3l1.97,7.88,1.67,5.82,1.36,5.7,1.36,5.94,1.06,4.97h.61l1.06-4.97,1.21-5.94,1.52-5.7,1.52-5.82,2.12-7.88h14.85l-15.76,47.27v33.58h-14.09v-33.58l-15.76-47.27Z style=fill:#fff;stroke-width:0 /><path d=m113.69,44.79c11.97,0,18.03,5.7,18.03,16.97v27.88c0,11.27-6.06,16.97-18.03,16.97s-18.03-5.7-18.03-16.97v-27.88c0-11.27,6.06-16.97,18.03-16.97Zm0,9.7c-3.18,0-4.85,1.94-4.85,5.58v31.27c0,3.52,1.82,5.58,4.85,5.58s4.85-2.06,4.85-5.58v-31.27c0-3.64-1.82-5.58-4.85-5.58Z style=fill:#fff;stroke-width:0 /><path d=m169.29,105.77l-1.06-5.21c-5.46,4.48-8.64,6.06-12.43,6.06-3.18,0-6.52-1.45-8.03-3.39-1.67-2.06-2.12-4.24-2.12-10.42v-47.27h13.18v46.91c0,3.03,1.06,4.48,3.48,4.48,1.67,0,3.18-.61,5.91-2.42v-48.97h13.18v60.24h-12.12Z style=fill:#fff;stroke-width:0 /></g><path id=rect3708 d=m50.24,116.74h133.08c19.6,0,35.49,15.9,35.49,35.5v30.94c0,19.6-15.89,35.49-35.49,35.49H50.24c-19.6,0-35.49-15.89-35.49-35.49v-30.94c0-19.6,15.89-35.5,35.49-35.5Z style=fill:#fff;stroke-width:0 /></g><g style=isolation:isolate><path d=m45.84,139.98h-11.98v-9.59h37.33v9.59h-12.53v63.91h-12.81v-63.91Z style=fill:#b7b7b7;stroke-width:0 /><path d=m94.88,203.89l-.96-4.74c-4.96,4.08-7.85,5.51-11.29,5.51-2.89,0-5.92-1.32-7.3-3.09-1.51-1.87-1.93-3.86-1.93-9.48v-42.98h11.98v42.65c0,2.76.96,4.08,3.17,4.08,1.51,0,2.89-.55,5.37-2.2v-44.52h11.98v54.77h-11.02Z style=fill:#b7b7b7;stroke-width:0 /><path d=m118.84,130.39h11.98v23.91c4.68-4.19,7.85-5.84,11.43-5.84,2.76,0,5.79,1.32,7.16,3.09,1.52,1.98,1.93,3.97,1.93,9.81v30.41c0,5.73-.41,7.71-1.93,9.7-1.38,1.88-4.41,3.2-7.3,3.2-3.58,0-6.61-1.65-11.29-5.95v5.18h-11.98v-73.5Zm17.36,65.46c2.2,0,3.17-1.32,3.17-4.08v-30.42c0-2.86-.96-4.08-3.17-4.08-1.52,0-2.89.55-5.37,2.2v34.16c2.48,1.65,3.86,2.21,5.37,2.21Z style=fill:#b7b7b7;stroke-width:0 /><path d=m196.67,184.72v1.98c.14,1.43.14,2.43.14,2.98,0,9.7-5.92,14.99-16.8,14.99s-16.12-5.51-16.12-15.43v-25.46c0-10.36,5.51-15.32,16.67-15.32,9.92,0,16.12,5.18,16.12,13.66v16.09h-20.8v12.01c0,3.97,1.24,5.62,4.41,5.62,1.52,0,2.89-.66,3.58-1.65.69-.99.83-2.2.83-6.17v-3.31h11.98Zm-11.98-14.22v-9.26c0-2.53-1.65-3.97-4.41-3.97s-4.41,1.43-4.41,3.97v9.26h8.81Z style=fill:#b7b7b7;stroke-width:0 /></g></g></svg>\r\n                  </div>\r\n              </div>\r\n               <div class="body__title body__title--cs ng-binding">{language.youtube}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=YoutubeWidgetContent>\r\n        <div class=video-container>\r\n            <div class="video-wrap video-placeholder">\r\n                <a class="remove remove-content-widget"><i class={builder-icon-times-circle}></i></a>\r\n                <img style=width:100px;opacity:.6 src="data:image/png;base64, "/>\r\n                <div class=description>{language.youtube_video}</div>\r\n                <button class="btn btn-dafault button-add-youtube">{language.youtube_video.add_button}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Textarea Field--\x3e\r\n    <div id=TextareaFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>article</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.textarea}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=TextareaFieldWidgetContent>\r\n        <div builder-element=TextareaFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <textarea [field_required] name=[FIELD_NAME] class=form-control placeholder=[FIELD_PLACEHOLDER]></textarea>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Checkbox Field--\x3e\r\n    <div id=CheckboxFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>check_box</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.checkbox}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=CheckboxFieldWidgetContent>\r\n        <div builder-element=CheckboxFieldElement class=form-group>\r\n            <label for=exampleFormControlSelect1 class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <div class=inputs-group>\r\n                [FIELD_OPTIONS]\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Multiselect Field--\x3e\r\n    <div id=MultiselectFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:25px;display:inline-block>done_all</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.multiselect}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=MultiselectFieldWidgetContent>\r\n        <div builder-element=MultiselectFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <select [field_required] name=[FIELD_NAME] class=form-select multiple=multiple>\r\n                [FIELD_OPTIONS]\r\n            </select>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Submit Button--\x3e\r\n    <div id=SubmitButtonWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons style=font-size:30px;display:inline-block>smart_button</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>{language.wpanel.widgets.submit_button}</span><span class="small text-muted hide">{language.wpanel.widgets.button}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=SubmitButtonWidgetContent>\r\n        <div builder-element class=form-group>\r\n            <button builder-element type=submit data-style=style_1 class="btn btn-primary mr-2">{language.wpanel.widgets.button.submit}</button>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Number Field--\x3e\r\n    <div id=NumberFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>looks_5</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.number}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=NumberFieldWidgetContent>\r\n        <div builder-element=NumberFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <input [field_required] name=[FIELD_NAME] type=number class=form-control placeholder=[FIELD_PLACEHOLDER]>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Ip Field--\x3e\r\n    <div id=IpFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>router</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.ip_address}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=IpFieldWidgetContent>\r\n        <div builder-element=IpFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <input [field_required] name=[FIELD_NAME] type=text class=form-control placeholder=[FIELD_PLACEHOLDER]>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Rating Field--\x3e\r\n    <div id=RatingFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>star_half</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.rating}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=RatingFieldWidgetContent>\r\n        <div builder-element=RatingFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <span class="small d-block mt-0">\r\n                <span class="rating rating-[FIELD_ID] hoverable">\r\n                    <input type=hidden value=3 name=[FIELD_NAME] class=rating-input>\r\n                    <span class="material-icons pr-1 remove-rate" data-star=0 style=color:#d84315>\r\n                    remove_circle\r\n                    </span>\r\n\r\n                            <span class=material-icons data-star=1 data-rate=star style=color:#fbbc05>star</span>\r\n\r\n                            <span class=material-icons data-star=2 data-rate=star style=color:#fbbc05>star</span>\r\n\r\n                            <span class=material-icons data-star=3 data-rate=star style=color:#fbbc05>star</span>\r\n\r\n                            <span class=material-icons data-star=4 data-rate=star_outline style=color:#fbbc05>star_outline</span>\r\n\r\n                            <span class=material-icons data-star=5 data-rate=star_outline style=color:#fbbc05>star_outline</span>\r\n                </span>                  \r\n            </span>\r\n            [SCRIPT]\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Radio Field--\x3e\r\n    <div id=RadioFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>radio_button_checked</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.radio}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=RadioFieldWidgetContent>\r\n        <div builder-element=RadioFieldElement class=form-group>\r\n            <label for=exampleFormControlSelect1 class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <div class=inputs-group>\r\n                [FIELD_OPTIONS]\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Date Field--\x3e\r\n    <div id=DateFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>today</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.date}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=DateFieldWidgetContent>\r\n        <div builder-element=DateFieldElement class=form-group>\r\n            <label for=exampleFormControlInput1 class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <div class="input-group date">\r\n                <input [field_required] type=text class="form-control date-control" name=[FIELD_NAME] placeholder=[FIELD_PLACEHOLDER]>\r\n                <span class=input-group-addon style=position:absolute;right:7px;top:4px;pointer-events:none>\r\n                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1.26em height=1.26em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=currentColor><path d="M6.445 11.688V6.354h-.633A12.6 12.6 0 0 0 4.5 7.16v.695c.375-.257.969-.62 1.258-.777h.012v4.61h.675zm1.188-1.305c.047.64.594 1.406 1.703 1.406c1.258 0 2-1.066 2-2.871c0-1.934-.781-2.668-1.953-2.668c-.926 0-1.797.672-1.797 1.809c0 1.16.824 1.77 1.676 1.77c.746 0 1.23-.376 1.383-.79h.027c-.004 1.316-.461 2.164-1.305 2.164c-.664 0-1.008-.45-1.05-.82h-.684zm2.953-2.317c0 .696-.559 1.18-1.184 1.18c-.601 0-1.144-.383-1.144-1.2c0-.823.582-1.21 1.168-1.21c.633 0 1.16.398 1.16 1.23z"/><path fill-rule=evenodd d="M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1zm1-3a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H2z"/><path fill-rule=evenodd d="M3.5 0a.5.5 0 0 1 .5.5V1a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 .5-.5zm9 0a.5.5 0 0 1 .5.5V1a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 .5-.5z"/></g></svg>\r\n                </span>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Datetime Field--\x3e\r\n    <div id=DatetimeFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>today</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.date}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=DatetimeFieldWidgetContent>\r\n        <div builder-element=DateFieldElement class=form-group>\r\n            <label for=exampleFormControlInput1 class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <div class="input-group date">\r\n                <label for=exampleFormControlInput1 class=font-weight-bold>[FIELD_LABEL]</label>\r\n                <div class="input-group date">\r\n                    <input [field_required] type=text class="form-control datetime-control" name=[FIELD_NAME] placeholder=[FIELD_PLACEHOLDER]>\r\n                    <span class=input-group-addon style=position:absolute;right:7px;top:4px;pointer-events:none>\r\n                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1.26em height=1.26em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=currentColor><path d="M6.445 11.688V6.354h-.633A12.6 12.6 0 0 0 4.5 7.16v.695c.375-.257.969-.62 1.258-.777h.012v4.61h.675zm1.188-1.305c.047.64.594 1.406 1.703 1.406c1.258 0 2-1.066 2-2.871c0-1.934-.781-2.668-1.953-2.668c-.926 0-1.797.672-1.797 1.809c0 1.16.824 1.77 1.676 1.77c.746 0 1.23-.376 1.383-.79h.027c-.004 1.316-.461 2.164-1.305 2.164c-.664 0-1.008-.45-1.05-.82h-.684zm2.953-2.317c0 .696-.559 1.18-1.184 1.18c-.601 0-1.144-.383-1.144-1.2c0-.823.582-1.21 1.168-1.21c.633 0 1.16.398 1.16 1.23z"/><path fill-rule=evenodd d="M1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1zm1-3a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H2z"/><path fill-rule=evenodd d="M3.5 0a.5.5 0 0 1 .5.5V1a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 .5-.5zm9 0a.5.5 0 0 1 .5.5V1a.5.5 0 0 1-1 0V.5a.5.5 0 0 1 .5-.5z"/></g></svg>\r\n                    </span>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Text Field--\x3e\r\n    <div id=TextFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:30px;display:inline-block>text_format</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.text}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=TextFieldWidgetContent>\r\n        <div builder-element=TextFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <input [field_required] name=[FIELD_NAME] type=text class=form-control placeholder=[FIELD_PLACEHOLDER]>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Email Field--\x3e\r\n    <div id=EmailFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:25px;display:inline-block>mail</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">Email</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=EmailFieldWidgetContent>\r\n        <div builder-element=EmailFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <input [field_required] name=[FIELD_NAME] type=email class=form-control placeholder=[FIELD_PLACEHOLDER]>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Dropdown Field--\x3e\r\n    <div id=DropdownFieldWidget>\r\n        <div class=form-element-widget>\r\n            <span class=icon>\r\n                <i class=material-icons-outlined style=font-size:25px;display:inline-block>kitchen</i>\r\n            </span>\r\n            <span class="field-label mb-0"><span class=label>[FIELD_LABEL]</span><span class="small text-muted hide">{language.wpanel.widgets.dropdown}</span></span>\r\n        </div>\r\n    </div>\r\n    <div id=DropdownFieldWidgetContent>\r\n        <div builder-element=DropdownFieldElement class=form-group>\r\n            <label builder-element builder-inline-edit for="" class=font-weight-bold>[FIELD_LABEL]</label>\r\n            <select [field_required] name=[FIELD_NAME] class=form-select>\r\n                [FIELD_OPTIONS]\r\n            </select>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--table--\x3e\r\n    <div id=Table5Widget>\r\n        <div class="_1content widget-table">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.9 81.8"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect x=0.8 y=26.5 width=88.4 height=54.64 rx=2.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=39.6 x2=89.2 y2=39.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=59.6 x2=89.2 y2=59.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><path d=M3.9,26.5H86a3.1,3.1,0,0,1,3.1,3.1v10a0,0,0,0,1,0,0H.8a0,0,0,0,1,0,0v-10A3.1,3.1,0,0,1,3.9,26.5Z style=fill:#e6e6e6;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=14.9 y1=39.7 x2=14.9 y2=81.2 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=75.9 y1=38.9 x2=75.9 y2=80.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=55.5 y1=39.6 x2=55.5 y2=81.1 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=35.2 y1=40.5 x2=35.2 y2=80.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.table5.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=Table5WidgetContent>\r\n        <div builder-element=TableBlockElement>\r\n            <div class=table-responsive>\r\n                <table class=table>\r\n                    <thead>\r\n                        <tr builder-element>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.hashtag.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.first_name.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.last_name.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.username.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.other.title}</span></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.one.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.mark.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.otto.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.modo.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.other.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.two.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.jacob.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.thornton.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.fat.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.other.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.three.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.larry.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.bird.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.twitter.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.other.title}</span></td>\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--table--\x3e\r\n    <div id=Table4Widget>\r\n        <div class="_1content widget-table">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.9 81.8"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect x=0.8 y=26.5 width=88.4 height=54.64 rx=2.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=39.6 x2=89.2 y2=39.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=59.6 x2=89.2 y2=59.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><path d=M3.9,26.5H86a3.1,3.1,0,0,1,3.1,3.1v10a0,0,0,0,1,0,0H.8a0,0,0,0,1,0,0v-10A3.1,3.1,0,0,1,3.9,26.5Z style=fill:#e6e6e6;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=18.1 y1=38.9 x2=18.1 y2=80.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=72.9 y1=38.9 x2=72.9 y2=80.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=45.5 y1=39.6 x2=45.5 y2=81.1 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.table4.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=Table4WidgetContent>\r\n        <div builder-element=TableBlockElement>\r\n            <div class=table-responsive>\r\n                <table class=table>\r\n                    <thead>\r\n                        <tr builder-element>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.hashtag.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.first_name.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.last_name.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.username.title}</span></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.one.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.mark.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.otto.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.modo.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.two.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.jacob.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.thornton.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.fat.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.three.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.larry.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.bird.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.twitter.title}</span></td>\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--table--\x3e\r\n    <div id=TableWidget>\r\n        <div class="_1content widget-table">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.9 81.8"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect x=0.8 y=26.5 width=88.4 height=54.64 rx=2.4 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=39.6 x2=89.2 y2=39.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=0.8 y1=59.6 x2=89.2 y2=59.6 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><path d=M3.9,26.5H86a3.1,3.1,0,0,1,3.1,3.1v10a0,0,0,0,1,0,0H.8a0,0,0,0,1,0,0v-10A3.1,3.1,0,0,1,3.9,26.5Z style=fill:#e6e6e6;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=25 y1=39.6 x2=25 y2=81.1 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /><line x1=64.1 y1=39.6 x2=64.1 y2=81.1 style=fill:none;stroke:#b7b7b7;stroke-miterlimit:10;stroke-width:1.5px /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.table.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TableWidgetContent>\r\n        <div builder-element=TableBlockElement>\r\n            <div class=table-responsive>\r\n                <table class=table>\r\n                    <thead>\r\n                        <tr builder-element>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.hashtag.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.first_name.title}</span></th>\r\n                            <th><span builder-element builder-inline-edit>{language.wpanel.widgets.table.last_name.title}</span></th>\r\n                        </tr>\r\n                    </thead>\r\n                    <tbody>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.one.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.mark.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.otto.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.two.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.jacob.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.thornton.title}</span></td>\r\n                        </tr>\r\n                        <tr builder-element>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.three.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.larry.title}</span></td>\r\n                            <td><span builder-element builder-inline-edit>{language.wpanel.widgets.table.bird.title}</span></td>\r\n                        </tr>\r\n                    </tbody>\r\n                </table>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--button--\x3e\r\n    <div id=ButtonWidget>\r\n        <div class="_1content widget-button">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% xmlns=http://www.w3.org/2000/svg viewBox="0 0 224 180"><defs><style>.a{fill:#e0e0e0}.b{fill:#939394}</style></defs><title>button</title><path class=a d=M44,66.5H180a8,8,0,0,1,8,8v38a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8v-38A8,8,0,0,1,44,66.5Z /><path class=b d=M123.9,125.7l10.1.8-22-26v34.4l6.7-7.5,5.1,13.4a2.71,2.71,0,0,0,2.6,1.7c.3,0,.6-.1.9-.1a2.46,2.46,0,0,0,1.8-2.4,2.92,2.92,0,0,0-.2-.9Z /></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.button.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ButtonWidgetContent>\r\n        <div class=text-center>\r\n            <a builder-element=ButtonElement data-style=style_1 builder-inline-edit class="btn btn-primary btn-lg mr-2" style="display:inline-block;font-weight:400;color:#fff;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;background-color:#2196f3;border-color:#2196f3">{language.wpanel.widgets.button.title}</a>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--button--\x3e\r\n    <div id=Button2Widget>\r\n        <div class="_1content widget-button">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink version=1.1 id=Layer_1 x=0px y=0px viewBox="0 0 87.9 59.5" style="enable-background:new 0 0 87.9 59.5" xml:space=preserve>\r\n                            <style type=text/css>.st0{fill:#cfcfcf}.st1{fill:#f2f2f2}.st2{fill:#bababa}</style>\r\n                            <g id=Layer_2_1_>\r\n                                <g id=Layer_1-2>\r\n                                    <path class=st0 d=M6.6,0h74.7c3.6,0,6.6,3,6.6,6.6v17.9c0,3.6-3,6.6-6.6,6.6H6.6c-3.6,0-6.6-3-6.6-6.6V6.6C0,3,3,0,6.6,0z />\r\n                                    <rect x=23.5 y=7.8 class=st1 width=44.3 height=7.7 />\r\n                                    <rect x=23.5 y=19.4 class=st1 width=44.3 height=3.2 />\r\n                                    <path class=st2 d=M53.9,19.4l0.9,40.1l10.7-13.2h16.3L53.9,19.4z />\r\n                                </g>\r\n                            </g>\r\n                        </svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.button_2.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=Button2WidgetContent>\r\n        <div class=text-center>\r\n            <a builder-element=ButtonElement data-style=style_1 builder-inline-edit class="btn btn-primary btn-lg mr-2" style="display:inline-block;font-weight:400;color:#fff;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem 1.5rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;background-color:#2196f3;border-color:#2196f3">\r\n                <div>{language.wpanel.widgets.button.title}</div>\r\n                <div class=small>{language.wpanel.widgets.button.second_line}</div>\r\n            </a>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--divider--\x3e\r\n    <div id=DividerWidget>\r\n        <div class="_1content widget-divider">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% xmlns=http://www.w3.org/2000/svg viewBox="0 0 224 180"><defs><style>.a{fill:#e0e0e0}.b{fill:#b7b7b7}</style></defs><title>divider</title><rect class=a x=48.2 y=37.5 width=128 height=44 /><rect class=b x=38.2 y=92.5 width=148 height=4 /><rect class=a x=48.2 y=107.5 width=128 height=44 /></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.divider.title}</div>\r\n             </div>\r\n        </div>\r\n    </div>\r\n    <div id=DividerWidgetContent>\r\n        <hr>\r\n    </div>\r\n\r\n    \x3c!--image--\x3e\r\n    <div id=ImageWidget>\r\n        <div class="_1content widget-image">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% viewBox="0 0 224 180" xmlns=http://www.w3.org/2000/svg><defs><style>.a{fill:#e0e0e0}.b{fill:#b7b7b7}</style></defs><path class=a d="M48 48h128v94H48z"/><path class=b d="M182 42v106H42V42h140m4-4H38v114h148V38z"/><path class=b d="M48 112.1V142h128v-30l-20-20-22 20-44-41-42 41.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M148.93 69.854c.428.71.428 1.628 0 2.338-2.733 4.615-10.053 5.237-15.208 5.118-5.383-.118-10.026-1.36-11.678-1.952-2.42-.888-4.984-2.338-6.864-4.172-.17-.148-.17-.385 0-.533 1.88-1.834 4.415-3.106 6.864-3.964 1.652-.593 6.295-1.836 11.678-1.954 5.155-.118 12.475.503 15.21 5.118z" id=Shape stroke-width=.86 /><path d="M132.09 76.397c-1.014-.04-1.99-.083-2.93-.165v3.6h7.2v-3.518c-1.485.124-2.932.124-4.27.083z" id=Shape stroke-width=.86 /><path d="M118.79 73.8l.32 3.6 2.096-.062c1.282-.042 2.44-.708 2.983-1.686M118.79 68.4l.32-3.6 2.096.062c1.282.042 2.44.708 2.983 1.686" id=Shape stroke-width=.688 /></g></g></g></g></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.image.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ImageWidgetContent>\r\n        <div class=image-container f-role=placeholder>\r\n            <div class="image-wrap image-placeholder">\r\n                <a class="remove remove-content-widget"><i class={builder-icon-times-circle}></i></a>\r\n                <i class={builder-icon-images} style=font-size:40px></i>\r\n                <div class=description>{language.wpanel.widgets.des_image.title}</div>\r\n                <button class="btn btn-dafault browse-btn">{language.wpanel.widgets.browse.title}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Text--\x3e\r\n    <div id=TextWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#cacaca /><rect y=8.9 width=89.6 height=2.55 style=fill:#cacaca /><rect y=17.7 width=89.6 height=2.55 style=fill:#cacaca /><rect y=26.6 width=89.6 height=2.55 style=fill:#cacaca /><rect y=70.9 width=72.9 height=2.55 style=fill:#cacaca /><rect y=35.4 width=89.6 height=2.55 style=fill:#cacaca /><rect y=44.3 width=89.6 height=2.55 style=fill:#cacaca /><rect y=53.1 width=89.6 height=2.55 style=fill:#cacaca /><rect y=62 width=89.6 height=2.55 style=fill:#cacaca /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.text.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TextWidgetContent>\r\n        <div builder-element=TextElement builder-inline-edit>{language.wpanel.widgets.des_text.title}</div>\r\n    </div>\r\n\r\n    \x3c!--BoxedText--\x3e\r\n    <div id=BoxedTextWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 88.7 79.2"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=88.7 height=79.19 style=fill:#b7b7b7 /><rect x=8.7 y=11.7 width=71.2 height=2.55 style=fill:#fff /><rect x=8.7 y=20.6 width=71.2 height=2.55 style=fill:#fff /><rect x=8.7 y=64.9 width=57.9 height=2.55 style=fill:#fff /><rect x=8.8 y=29.5 width=71.2 height=2.55 style=fill:#fff /><rect x=8.8 y=38.3 width=71.2 height=2.55 style=fill:#fff /><rect x=8.8 y=47.2 width=71.2 height=2.55 style=fill:#fff /><rect x=8.8 y=56 width=71.2 height=2.55 style=fill:#fff /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.boxed_text.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=BoxedTextWidgetContent>\r\n        <p builder-element builder-inline-edit class=p-3 style=background-color:#eee>{language.wpanel.widgets.des_text.title}</p>\r\n    </div>\r\n\r\n    \x3c!--pricing table--\x3e\r\n    <div id=PricingTableWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.header.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 90.6 80.7"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=0.5 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.5 y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.5 y=29.7 width=32.2 height=48.51 rx=2.1 style=fill:#e6e6e6;stroke:#ccc;stroke-miterlimit:10 /><rect x=57.9 y=29.7 width=32.2 height=48.51 rx=2.2 style=fill:#e6e6e6;stroke:#ccc;stroke-miterlimit:10 /><rect x=24.3 y=20.9 width=43.2 height=59.32 rx=1.9 style=fill:#fff;stroke:#ccc;stroke-miterlimit:10 /><path d=M45.1,41.8v-2a7.3,7.3,0,0,1-3.6-.9l.7-2.4a8.1,8.1,0,0,0,3.5.9c1.1,0,2-.5,2-1.3s-.7-1.3-2.3-1.8-3.7-1.8-3.7-3.9a3.8,3.8,0,0,1,3.5-3.7v-2h2.1v1.8a8.8,8.8,0,0,1,3,.7l-.6,2.4a7.2,7.2,0,0,0-3-.7c-1.4,0-1.8.6-1.8,1.2s.7,1.1,2.5,1.8,3.5,2,3.5,3.9-1.3,3.5-3.7,3.9v2.1Z style=fill:#b7b7b7 /><rect x=34.5 y=48 width=22.7 height=2.71 style=fill:#b7b7b7 /><rect x=27.2 y=58 width=37.2 height=2.55 style=fill:#e2e2e2 /><rect x=27.2 y=65.3 width=37.2 height=2.55 style=fill:#e2e2e2 /><rect x=27.2 y=72.7 width=37.2 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.pricing_table.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=PricingTableWidgetContent>\r\n        <div builder-element=PricingTableElement data-style=default style=margin:-7px;padding:7px>\r\n            <div class="row mx-0" style="border-left:solid 1px #ccc">\r\n                <div builder-element=PricingItemElement class="p-3 pb-0 col-12" style="border:solid 1px #ccc;border-left:none">\r\n                <h3 builder-element="" builder-inline-edit="" class=font-weight-normal>Free</h3>\r\n                <p builder-element="" builder-inline-edit="" class=my-3>All the basics for businesses or individual to get started with email marketing campaign</p>\r\n                <div builder-element=TextElement builder-inline-edit="" class="text-center mt-5">Starting at</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class="display-4 text-center my-2" style=font-size:40px;font-weight:400>$0</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class=text-center>1 month</div>\r\n                <div class="text-center my-3 mt-5">\r\n                    <a builder-element=ButtonElement builder-inline-edit="" href="" data-style=style_1 class="btn btn-primary" style=width:80%;background-color:#007c89>Select</a>\r\n                </div>\r\n                </div>\r\n                <div builder-element=PricingItemElement class="p-3 pb-0 col-12" style="border:solid 1px #ccc;border-left:none">\r\n                <h3 builder-element="" builder-inline-edit="" class=font-weight-normal>Essentials</h3>\r\n                <p builder-element="" builder-inline-edit="" class=my-3>Must-have features for marketing agency &amp; individual to engage in email marketing</p>\r\n                <div builder-element=TextElement builder-inline-edit="" class="text-center mt-5">Starting at</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class="display-4 text-center my-2" style=font-size:40px;font-weight:400>$28</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class=text-center>1 month</div>\r\n                <div class="text-center my-3 mt-5">\r\n                    <a builder-element=ButtonElement builder-inline-edit="" href="" data-style=style_1 class="btn btn-primary" style=width:80%;background-color:#007c89>Select</a>\r\n                </div>\r\n                </div>\r\n                <div builder-element=PricingItemElement class="p-3 pb-0 col-12" style="border:solid 1px #ccc;border-left:none">\r\n                <h3 builder-element="" builder-inline-edit="" class=font-weight-normal>Premium</h3>\r\n                <p builder-element="" builder-inline-edit="" class=my-3>Advanced features for professionals who need unlimited marketing capability</p>\r\n                <div builder-element=TextElement builder-inline-edit="" class="text-center mt-5">Starting at</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class="display-4 text-center my-2" style=font-size:40px;font-weight:400>$50</div>\r\n                <div builder-element=TextElement builder-inline-edit="" class=text-center>1 month</div>\r\n                <div class="text-center my-3 mt-5">\r\n                    <a builder-element=ButtonElement builder-inline-edit="" href="" data-style=style_1 class="btn btn-primary" style=width:80%;background-color:#007c89>Select</a>\r\n                </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=SocialLinksBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.header.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                    <svg style=width:100% width=224 height=180 viewBox="0 0 224 180" fill=none xmlns=http://www.w3.org/2000/svg>\r\n                        <rect width=224 height=180 fill=white />\r\n                        <circle cx=165.756 cy=78.9806 r=24.2443 fill=#EBEBEB />\r\n                        <path fill-rule=evenodd clip-rule=evenodd d="M180.304 70.2949C179.436 70.683 178.488 70.8607 177.537 70.8138C178.13 70.4733 178.634 69.9987 179.009 69.428C179.385 68.8573 179.621 68.2065 179.699 67.5278C178.501 68.2863 177.187 68.8414 175.808 69.1708C175.289 68.0467 174.165 66.5767 170.793 66.9226C165.172 67.4414 165.172 72.9755 165.777 74.6185C163.295 74.4586 160.872 73.7932 158.656 72.6631C156.441 71.533 154.48 69.9621 152.893 68.0467C151.164 71.8514 152.893 75.2238 154.536 76.2615C153.749 76.3509 152.956 76.1678 152.288 75.7426C152.288 75.7426 151.682 80.6715 157.303 81.1903C156.778 81.4464 156.201 81.5794 155.617 81.5794C155.033 81.5794 154.456 81.4464 153.931 81.1903C154.449 83.4386 156.698 86.1192 160.07 85.6004C157.303 87.8486 154.536 88.3674 151.164 88.3674C154.006 90.1776 157.306 91.1377 160.675 91.1345C171.917 91.1345 177.451 82.055 177.451 74.0997C177.451 73.97 177.472 73.7754 177.494 73.5808C177.516 73.3863 177.537 73.1917 177.537 73.062C178.756 72.4927 179.735 71.5133 180.304 70.2949Z" fill=#ADADAD />\r\n                        <circle cx=111.448 cy=44.069 r=24.2443 fill=#EBEBEB />\r\n                        <path fill-rule=evenodd clip-rule=evenodd d="M115.739 34.372H118.648V29.7174C117.291 29.6204 115.836 29.5234 114.478 29.5234C110.503 29.5234 107.981 31.8508 107.981 36.3114V40.1903H103.133V45.0389H107.981V58.6149H112.83V45.0389H117.679L118.648 40.1903H112.83V36.8933C112.83 35.4387 113.606 34.372 115.739 34.372Z" fill=#ADADAD />\r\n                        <circle cx=57.6696 cy=78.9806 r=24.2443 fill=#EBEBEB />\r\n                        <g clip-path=url(#clip0)>\r\n                        <mask id=mask0 mask-type=alpha maskUnits=userSpaceOnUse x=43 y=64 width=30 height=30>\r\n                        <path d="M43.1211 64.4424H72.2051V93.5229H43.1211V64.4424Z" fill=#ADADAD />\r\n                        </mask>\r\n                        <g mask=url(#mask0)>\r\n                        <path fill-rule=evenodd clip-rule=evenodd d="M57.6631 64.4424C53.7137 64.4424 53.2185 64.4591 51.6674 64.5299C50.1196 64.6005 49.0625 64.8463 48.1375 65.2058C47.1813 65.5774 46.3703 66.0747 45.5618 66.8831C44.7534 67.6916 44.2561 68.5026 43.8846 69.4588C43.525 70.3838 43.2792 71.4409 43.2086 72.9887C43.1378 74.5398 43.1211 75.035 43.1211 78.9844C43.1211 82.9337 43.1378 83.429 43.2086 84.98C43.2792 86.5278 43.525 87.585 43.8846 88.5099C44.2561 89.4662 44.7534 90.2772 45.5618 91.0857C46.3703 91.8941 47.1813 92.3913 48.1375 92.763C49.0625 93.1224 50.1196 93.3683 51.6674 93.4389C53.2185 93.5096 53.7137 93.5264 57.6631 93.5264C61.6125 93.5264 62.1077 93.5096 63.6587 93.4389C65.2066 93.3683 66.2637 93.1224 67.1886 92.763C68.1449 92.3913 68.9559 91.8941 69.7644 91.0857C70.5728 90.2772 71.07 89.4662 71.4417 88.5099C71.8011 87.585 72.047 86.5278 72.1176 84.98C72.1883 83.429 72.2051 82.9337 72.2051 78.9844C72.2051 75.035 72.1883 74.5398 72.1176 72.9887C72.047 71.4409 71.8011 70.3838 71.4417 69.4588C71.07 68.5026 70.5728 67.6916 69.7644 66.8831C68.9559 66.0747 68.1449 65.5774 67.1886 65.2058C66.2637 64.8463 65.2066 64.6005 63.6587 64.5299C62.1077 64.4591 61.6125 64.4424 57.6631 64.4424ZM57.6631 67.0626C61.546 67.0626 62.0059 67.0774 63.5393 67.1474C64.9571 67.212 65.7271 67.4489 66.2395 67.6481C66.9183 67.9119 67.4027 68.227 67.9116 68.7359C68.4205 69.2447 68.7356 69.7291 68.9994 70.4079C69.1986 70.9203 69.4355 71.6903 69.5001 73.1082C69.5701 74.6416 69.5849 75.1015 69.5849 78.9844C69.5849 82.8672 69.5701 83.3272 69.5001 84.8606C69.4355 86.2784 69.1986 87.0484 68.9994 87.5608C68.7356 88.2396 68.4205 88.724 67.9116 89.2329C67.4027 89.7418 66.9183 90.0569 66.2395 90.3207C65.7271 90.5198 64.9571 90.7567 63.5393 90.8214C62.0061 90.8914 61.5462 90.9062 57.6631 90.9062C53.7799 90.9062 53.3201 90.8914 51.7869 90.8214C50.369 90.7567 49.5991 90.5198 49.0866 90.3207C48.4079 90.0569 47.9234 89.7418 47.4146 89.2329C46.9057 88.724 46.5906 88.2396 46.3268 87.5608C46.1276 87.0484 45.8907 86.2784 45.8261 84.8606C45.7561 83.3272 45.7413 82.8672 45.7413 78.9844C45.7413 75.1015 45.7561 74.6416 45.8261 73.1082C45.8907 71.6903 46.1276 70.9203 46.3268 70.4079C46.5906 69.7291 46.9057 69.2447 47.4146 68.7359C47.9234 68.227 48.4079 67.9119 49.0866 67.6481C49.5991 67.4489 50.369 67.212 51.7869 67.1474C53.3203 67.0774 53.7802 67.0626 57.6631 67.0626Z" fill=#ADADAD />\r\n                        </g>\r\n                        <path fill-rule=evenodd clip-rule=evenodd d="M57.6633 83.8329C54.9862 83.8329 52.816 81.6627 52.816 78.9856C52.816 76.3085 54.9862 74.1382 57.6633 74.1382C60.3404 74.1382 62.5106 76.3085 62.5106 78.9856C62.5106 81.6627 60.3404 83.8329 57.6633 83.8329ZM57.6633 71.5181C53.5391 71.5181 50.1958 74.8614 50.1958 78.9856C50.1958 83.1098 53.5391 86.4531 57.6633 86.4531C61.7875 86.4531 65.1308 83.1098 65.1308 78.9856C65.1308 74.8614 61.7875 71.5181 57.6633 71.5181Z" fill=#ADADAD />\r\n                        <path fill-rule=evenodd clip-rule=evenodd d="M67.1707 71.2231C67.1707 72.1869 66.3894 72.9681 65.4257 72.9681C64.462 72.9681 63.6807 72.1869 63.6807 71.2231C63.6807 70.2593 64.462 69.478 65.4257 69.478C66.3894 69.478 67.1707 70.2593 67.1707 71.2231Z" fill=#ADADAD />\r\n                        </g>\r\n                        <path d="M110.479 89.4727C100.705 89.4727 91.3319 93.3554 84.4209 100.266C77.51 107.177 73.6274 116.55 73.6274 126.324C73.6274 136.098 77.51 145.471 84.4209 152.382C91.3319 159.293 100.705 163.175 110.479 163.175C120.252 163.175 129.626 159.293 136.537 152.382C143.448 145.471 147.33 136.098 147.33 126.324C147.33 116.55 143.448 107.177 136.537 100.266C129.626 93.3554 120.252 89.4727 110.479 89.4727V89.4727ZM105.214 105.266H115.743V121.06H131.537V131.588H115.743V147.382H105.214V131.588H89.4209V121.06H105.214V105.266Z" fill=#B9B9B9 />\r\n                        <defs>\r\n                        <clipPath id=clip0>\r\n                        <rect width=29.0932 height=29.0932 fill=white transform="translate(43.1211 64.4341)"/>\r\n                        </clipPath>\r\n                        </defs>\r\n                        </svg>\r\n    \r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.social_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=SocialLinksBlockWidgetContent>\r\n        <div builder-element=IconsContainerElement class="" style=text-align:center>\r\n            <table border=0 cellpadding=0 cellspacing=0 style=display:inline>\r\n                <tr>\r\n                    <td style=padding-right:15px>\r\n                        <a builder-element=IconLinkElement data-value=facebook href="" class=d-inline-block>\r\n                            <span class=social-icon>\r\n                                <img src={{root}}image/icons/facebook.png height=35 width=auto />\r\n                            </span>\r\n                        </a>\r\n                    </td>\r\n                    <td style=padding-right:15px>\r\n                        <a builder-element=IconLinkElement data-value=linkedin href="" class=d-inline-block>\r\n                            <span class=social-icon>\r\n                                <img src={{root}}image/icons/linkedin.png height=35 width=auto />\r\n                            </span>\r\n                        </a>\r\n                    </td>\r\n                    <td style=padding-right:15px>\r\n                        <a builder-element=IconLinkElement data-value=youtube href="" class=d-inline-block>\r\n                            <span class=social-icon>\r\n                                <img src={{root}}image/icons/youtube.png height=35 width=auto />\r\n                            </span>\r\n                        </a>\r\n                    </td>\r\n                    <td style=padding-right:15px>\r\n                        <a builder-element=IconLinkElement data-value=twitter href="" class=d-inline-block>\r\n                            <span class=social-icon>\r\n                                <img src={{root}}image/icons/twitter.png height=35 width=auto />\r\n                            </span>\r\n                        </a>\r\n                    </td>\r\n                </tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=HeaderBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.header.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 71"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=38 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=45.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=53.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=60.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=68.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=28.43 rx=0.3 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.header.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=HeaderBlockWidgetContent>\r\n        <table width=100%>\r\n            <tr>\r\n                <td class=text-left>\r\n                <img alt="Header Logo" builder-element src=' +
      n(47) +
      ' width=200px />\r\n                </td>\r\n                <td class="text-right pr-2">\r\n                <a builder-element builder-inline-edit href="" style=color:#333>Open in your browser</a>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n    <div id=HeroImageWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.hero_image.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 79"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=46 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=40.2 y=2 width=48.5 height=2.55 style=fill:#e2e2e2 /><rect x=62.9 y=6.9 width=25.9 height=2.55 style=fill:#e2e2e2 /><rect y=53.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=61.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=68.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=76.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=29 height=10.43 rx=0.3 style=fill:#e2e2e2 /><rect y=15.4 width=89.6 height=24.81 style=fill:#dedede /><path d=M89.6,40.2H0V35.4l10.8-12L24.7,36.1l10.9-7.5,10.6,8.7,30.5.2Z style=fill:#b7b7b7 /><path d=M49.7,30.4c-.7.8-1.6.6-1.8,1.2a1.2,1.2,0,0,0,.7,1.3c.7.3,1.4-.7,2-.4s.3.7.6.9,1.6-.6,2.9-.7,2,1.5,3.7,1.5A3.4,3.4,0,0,0,61,31.5a3.7,3.7,0,0,0-2.6-3.6c-2-.5-3.2,1.5-5.4.9s-2-1.4-2.6-1.1S50.5,29.4,49.7,30.4Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.hero_image.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=HeroImageWidgetContent>\r\n        <img builder-element src={{root}}image/hero_banner.png alt="Hero Image" width=100% />\r\n    </div>\r\n    <div id=IntroBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.intro_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 81"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=55 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=29.9 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=37.3 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=62.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=70.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=78.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=10.43 rx=0.3 style=fill:#e2e2e2 /><rect x=23.7 y=18.5 width=45.4 height=7.06 style=fill:#b7b7b7 /><path d=M21.6,50.1c1.2-.6,10.6-5.5,13.7-3.2a2.4,2.4,0,0,1,.7,3.3c-1.1,1.3-4.3,1.4-5,.4s1.1-4.5,4.2-5.6,4.1,0,11.5,2.2c4.9,1.4,10.5,3,16.8,3,2.1,0,4.2-.1,4.9-1.2a2,2,0,0,0-.4-2.5,3.9,3.9,0,0,0-4.5.2 style=fill:none;stroke:#e2e2e2;stroke-miterlimit:10 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.intro_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=IntroBlockWidgetContent>\r\n        <div>\r\n            <h1 builder-element builder-inline-edit class=display-4 style=text-align:center>Lorem ipsum dolor</h1>\r\n            <h5 builder-element builder-inline-edit class="font-weight-normal mt-1 mb-3 text-muted" style=text-align:center>Nunc pulvinar turpis sed pellentesque aliquet</h5>\r\n            <div builder-element=TextElement builder-inline-edit>\r\n                    <p class="" style=margin-bottom:0>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque. Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt, quam justo pellentesque est, et gravida justo eros vitae turpis. Mauris molestie id nisi in ultrices. Curabitur tellus ex, pretium nec dui ut, feugiat semper ipsum. Donec porttitor congue blandit. Pellentesque in purus nulla. Integer ut turpis purus. Nunc nec efficitur nunc.</p>\r\n                </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=OneColumnBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.intro_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.7 79.9"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=54.5 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=62.1 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=69.7 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=77.3 width=72.9 height=2.55 style=fill:#d5d5d5 /><rect width=89.6 height=49.49 style=fill:#dedede /><path d=M89.6,49.5H0V40.3L29.9,12.2,56.3,41.3,75.4,23,89.7,37.7Z style=fill:#b7b7b7 /><path d=M53.2,11.5c-.9,1-2.3.8-2.5,1.7a1.6,1.6,0,0,0,1,1.8c1,.4,2-1,2.8-.5s.4.8.9,1.2,2.2-.9,4-1,2.9,2.1,5.2,2.2A5,5,0,0,0,69.2,13c.3-2.3-1.7-4.5-3.7-5s-4.4,2.1-7.6,1.2-2.8-2-3.6-1.5S54.4,10.1,53.2,11.5Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.one_col_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=OneColumnBlockWidgetContent>\r\n        <div>\r\n            <div class=text-center>\r\n                <img alt="Banner Image" builder-element class="" src=' +
      n(20) +
      ' width=100% />\r\n            </div>\r\n            <h2 builder-element builder-inline-edit class=mt-3>Lorem ipsum dolor</h2>\r\n            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                quam justo pellentesque est, et gravida justo eros vitae turpis. Mauris molestie id nisi in ultrices.\r\n                Curabitur tellus ex, pretium nec dui ut, feugiat semper ipsum. Donec porttitor congue blandit.\r\n                Pellentesque in purus nulla. Integer ut turpis purus. Nunc nec efficitur nunc.\r\n            </p>\r\n        </div>\r\n    </div>\r\n\r\n  <div id=MyImageWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.intro_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% viewBox="0 0 224 180" xmlns=http://www.w3.org/2000/svg><defs><style>.a{fill:#e0e0e0}.b{fill:#b7b7b7}</style></defs><path class=a d="M48 48h128v94H48z"/><path class=b d="M182 42v106H42V42h140m4-4H38v114h148V38z"/><path class=b d="M48 112.1V142h128v-30l-20-20-22 20-44-41-42 41.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M148.93 69.854c.428.71.428 1.628 0 2.338-2.733 4.615-10.053 5.237-15.208 5.118-5.383-.118-10.026-1.36-11.678-1.952-2.42-.888-4.984-2.338-6.864-4.172-.17-.148-.17-.385 0-.533 1.88-1.834 4.415-3.106 6.864-3.964 1.652-.593 6.295-1.836 11.678-1.954 5.155-.118 12.475.503 15.21 5.118z" id=Shape stroke-width=.86 /><path d="M132.09 76.397c-1.014-.04-1.99-.083-2.93-.165v3.6h7.2v-3.518c-1.485.124-2.932.124-4.27.083z" id=Shape stroke-width=.86 /><path d="M118.79 73.8l.32 3.6 2.096-.062c1.282-.042 2.44-.708 2.983-1.686M118.79 68.4l.32-3.6 2.096.062c1.282.042 2.44.708 2.983 1.686" id=Shape stroke-width=.688 /></g></g></g></g></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.image.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=MyImageWidgetContent>\r\n        <div>\r\n            <div class=text-center>\r\n                <img builder-element src=data:image/png;base64,  alt="My Image Widget" width=100% />\r\n            </div>\r\n                  </div>\r\n    </div>\r\n\r\n    <div id=TwoColumnsBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.two_col_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 78.5"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=64.1 width=41.6 height=2.27 style=fill:#d5d5d5 /><rect y=69.8 width=41.6 height=2.27 style=fill:#d5d5d5 /><rect y=76.3 width=33.8 height=2.27 style=fill:#d5d5d5 /><rect y=26 width=41.6 height=34.51 style=fill:#dedede /><path d=M41.6,60.5H0V54.1L17,34.9,34,54.1c2.5-3,5-6.1,7.6-9.1V60.5Z style=fill:#b7b7b7 /><path d=M29.3,34.4c-.6.8-1.5.6-1.7,1.2a1.2,1.2,0,0,0,.7,1.3c.7.3,1.3-.7,1.9-.4s.2.6.6.9,1.4-.7,2.7-.7,1.9,1.5,3.5,1.5a3.3,3.3,0,0,0,3-2.7A3.5,3.5,0,0,0,37.5,32c-1.8-.6-2.9,1.5-5.1.8s-1.9-1.3-2.4-1S30.1,33.5,29.3,34.4Z style=fill:#b7b7b7 /><rect x=48 y=64.1 width=41.6 height=2.27 style=fill:#d5d5d5 /><rect x=48 y=69.8 width=41.6 height=2.27 style=fill:#d5d5d5 /><rect x=48 y=76.3 width=33.8 height=2.27 style=fill:#d5d5d5 /><rect x=48 y=26 width=41.6 height=34.51 style=fill:#dedede /><path d=M89.6,60.5H48V54.1L65,34.9,82,54.1,89.6,45V60.5Z style=fill:#b7b7b7 /><path d=M77.3,34.4c-.6.8-1.5.6-1.7,1.2a1.2,1.2,0,0,0,.7,1.3c.7.3,1.3-.7,1.9-.4s.2.6.6.9,1.5-.7,2.7-.7,1.9,1.5,3.5,1.5a3.3,3.3,0,0,0,3-2.7A3.5,3.5,0,0,0,85.6,32c-1.9-.6-3,1.5-5.1.8s-1.9-1.3-2.5-1S78.1,33.5,77.3,34.4Z style=fill:#b7b7b7 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.two_col_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TwoColumnsBlockWidgetContent>\r\n        <div>\r\n            <div builder-element=CellContainerElement style=display:flex;flex-wrap:wrap data-layout=5-5>\r\n                <div style=width:50% builder-element=CellElement>\r\n\r\n                    <div builder-element=BlockElement style=padding-top:15px;padding-bottom:15px;padding-right:15px>\r\n                        <div class=container>\r\n                            <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                            quam justo p\r\n                        </p></div>\r\n                    </div>\r\n\r\n                </div>\r\n                <div style=width:50% builder-element=CellElement>\r\n                \r\n                    <div builder-element=BlockElement style=padding-top:15px;padding-bottom:15px;padding-left:15px>\r\n                        <div class=container>\r\n                            <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                            quam justo p\r\n                        </p></div>\r\n                    </div>\r\n\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TwoColumnsBlockWidgetEmailContent>\r\n        <div>\r\n            <table width=100% builder-element=BlockElement>\r\n                <tr><td style=padding-top:15px;padding-bottom:15px>\r\n                    <div class=container>\r\n                        <table builder-element=CellContainerElement data-layout=5-5 border=0 cellpadding=0 cellspacing=0 width=100%>\r\n                            <tr>\r\n                                <td builder-element=CellElement valign=top width=50% class=responsive-column>\r\n                                    <table width=100% builder-element=BlockElement>\r\n                                        <tr><td style=padding-top:15px;padding-bottom:15px;padding-right:15px>\r\n                                            <div class=container>\r\n                                                <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                                                <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                                                <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                                                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                                                quam justo p\r\n                                            </p></div>\r\n                                        </td></tr>\r\n                                    </table>\r\n                                </td>\r\n                                <td builder-element=CellElement valign=top width=50% class=responsive-column>\r\n                                    <table width=100% builder-element=BlockElement>\r\n                                        <tr><td style=padding-top:15px;padding-bottom:15px;padding-left:15px>\r\n                                            <div class=container>\r\n                                                <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                                                <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                                                <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                                                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                                                quam justo p\r\n                                            </p></div>\r\n                                        </td></tr>\r\n                                    </table>\r\n                                </td>\r\n                            </tr>\r\n                        </table>\r\n                    </div>\r\n                </td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=ThreeColumnsBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.two_col_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.8 82"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=0.2 y=65 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.2 y=72.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.2 y=79.5 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M25.9,36.5H0v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M18.3,20.2c-.4.5-1,.4-1.1.8s.2.7.4.8.9-.5,1.2-.3.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.2,2.2,0,0,0,25,20.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.5s-1.1-.8-1.5-.6S18.8,19.6,18.3,20.2Z style=fill:#b7b7b7 /><rect x=32 y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M57.9,36.5H32v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M50.3,20.2c-.4.5-1,.4-1.1.8s.2.7.4.8.9-.5,1.2-.3.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.2,2.2,0,0,0,57,20.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.5s-1.1-.8-1.5-.6S50.8,19.6,50.3,20.2Z style=fill:#b7b7b7 /><rect x=63.7 y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M89.6,36.5H63.7v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M81.4,30.7c-.4.5-.9.3-1,.7a.7.7,0,0,0,.4.8c.4.2.8-.4,1.2-.2s.1.4.3.5,1-.4,1.7-.4,1.2.9,2.2.9a2,2,0,0,0,1.9-1.6,2.2,2.2,0,0,0-1.5-2.2c-1.2-.4-1.9.9-3.2.5s-1.2-.9-1.5-.7S81.9,30.1,81.4,30.7Z style=fill:#b7b7b7 /><rect x=0.3 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=0.2 width=89.3 height=8.68 style=fill:#e8e8e8 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.three_col_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ThreeColumnsBlockWidgetContent>\r\n        <div>\r\n            <div builder-element=CellContainerElement style=display:flex;flex-wrap:wrap data-layout=4-4-4>\r\n                <div style=width:33.333333% builder-element=CellElement>\r\n\r\n                    <div builder-element=BlockElement style=padding-top:15px;padding-bottom:15px;padding-right:10px>\r\n                        <div class=container>\r\n                            <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                            quam justo p\r\n                        </p></div>\r\n                    </div>\r\n\r\n                </div>\r\n                <div style=width:33.333333% builder-element=CellElement>\r\n                \r\n                    <div builder-element=BlockElement style=padding-top:15px;padding-bottom:15px;padding-left:5px;padding-right:5px>\r\n                        <div class=container>\r\n                            <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                            quam justo p\r\n                        </p></div>\r\n                    </div>\r\n\r\n                </div>\r\n                <div style=width:33.333333% builder-element=CellElement>\r\n                \r\n                    <div builder-element=BlockElement style=padding-top:15px;padding-bottom:15px;padding-left:10px>\r\n                        <div class=container>\r\n                            <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                            quam justo p\r\n                        </p></div>\r\n                    </div>\r\n\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ThreeColumnsBlockWidgetEmailContent>\r\n        <div>\r\n            <table width=100% builder-element=BlockElement>\r\n                <tr><td style=padding-top:15px;padding-bottom:15px>\r\n                    <div class=container>\r\n                        <table builder-element=CellContainerElement data-layout=4-4-4 border=0 cellpadding=0 cellspacing=0 width=100%>\r\n                            <tr>\r\n                                <td builder-element=CellElement valign=top width=33.33% class=responsive-column>\r\n                                    <table width=100% builder-element=BlockElement>\r\n                                        <tr><td style=padding-top:15px;padding-bottom:15px;padding-right:10px>\r\n                                            <div class=container>\r\n                                                <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                                                <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                                                <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                                                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                                                quam justo p\r\n                                            </p></div>\r\n                                        </td></tr>\r\n                                    </table>\r\n                                </td>\r\n                                <td builder-element=CellElement valign=top width=33.33% class=responsive-column>\r\n                                    <table width=100% builder-element=BlockElement>\r\n                                        <tr><td style=padding-top:15px;padding-bottom:15px;padding-left:5px;padding-right:5px>\r\n                                            <div class=container>\r\n                                                <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                                                <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                                                <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                                                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                                                quam justo p\r\n                                            </p></div>\r\n                                        </td></tr>\r\n                                    </table>\r\n                                </td>\r\n                                <td builder-element=CellElement valign=top width=33.33% class=responsive-column>\r\n                                    <table width=100% builder-element=BlockElement>\r\n                                        <tr><td style=padding-top:15px;padding-bottom:15px;padding-left:10px>\r\n                                            <div class=container>\r\n                                                <img alt="Banner Image" builder-element class=my-2 src=' +
      n(0) +
      ' width=100% />\r\n                                                <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n                                                <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n                                                Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n                                                quam justo p\r\n                                            </p></div>\r\n                                        </td></tr>\r\n                                    </table>\r\n                                </td>\r\n                            </tr>\r\n                        </table>\r\n                    </div>\r\n                </td></tr>\r\n            </table>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=TwoArticlesBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.two_article_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 90.1 82.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=46.5 y=25.7 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=32.8 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=39.9 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=46.9 width=35.5 height=2.38 style=fill:#d5d5d5 /><rect y=24.9 width=40.4 height=25.17 style=fill:#dedede /><path d=M40.4,50.1H0V45.4L13.5,31.1c3.9,5,7.9,9.9,11.9,14.8L34,36.6l6.4,7.5Z style=fill:#b7b7b7 /><path d=M24,30.8c-.4.5-1,.4-1.1.8a.8.8,0,0,0,.4.9c.5.2.9-.5,1.3-.2s.1.4.4.6,1-.5,1.8-.5,1.3,1.1,2.3,1.1a2.3,2.3,0,0,0,2.1-2A2.5,2.5,0,0,0,29.5,29c-1.2-.4-2,1-3.4.6s-1.3-1-1.6-.8S24.5,30,24,30.8Z style=fill:#b7b7b7 /><rect x=46.5 y=58 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=65.1 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=72.2 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect x=46.5 y=79.3 width=35.5 height=2.38 style=fill:#d5d5d5 /><rect y=57.3 width=40.4 height=25.17 style=fill:#dedede /><path d=M40.4,82.4H0V77.8L13.5,63.5,25.4,78.3,34,69l6.5,7.5Z style=fill:#b7b7b7 /><path d=M24,63.1c-.4.5-1,.4-1.1.9a.8.8,0,0,0,.5.9c.4.2.8-.5,1.2-.3s.2.5.4.6,1-.4,1.8-.5,1.3,1.1,2.4,1.1a2.2,2.2,0,0,0,2-1.9,2.5,2.5,0,0,0-1.6-2.6c-1.3-.4-2,1.1-3.5.6s-1.2-1-1.6-.7S24.6,62.4,24,63.1Z style=fill:#b7b7b7 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=15.2 width=89.6 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.two_article_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TwoArticlesBlockWidgetContent>\r\n        <div builder-element=CellContainerElement style=display:flex;flex-wrap:wrap data-layout=3-7>\r\n            <div style=width:33.333333% builder-element=CellElement>\r\n                <div builder-element=BlockElement>\r\n                    <div class=container>\r\n                        <a builder-element href="" class=mr-4><img builder-element src=' +
      n(0) +
      ' width=100% /></a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div style=width:66.666667% builder-element=CellElement>\r\n                <div builder-element=BlockElement style=padding-left:25px;padding-bottom:25px>\r\n                    <div class=container>\r\n                        <h3 builder-element builder-inline-edit class=font-weight-normal>Lorem ipsum dolor</h3>\r\n                        <p builder-element builder-inline-edit class="">Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque. Nunc pulvinar turpis sed pellentesque aliquet.</p>\r\n                        <a builder-element builder-inline-edit data-style=style_1 class="btn btn-primary text-white">View more</a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=TwoArticlesRTLBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.two_article_block.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 81.9"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=24.9 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=32 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=39.1 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=46.2 width=35.5 height=2.38 style=fill:#d5d5d5 /><rect y=57.3 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=64.3 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=71.4 width=43.6 height=2.38 style=fill:#d5d5d5 /><rect y=78.5 width=35.5 height=2.38 style=fill:#d5d5d5 /><rect x=49.2 y=24.4 width=40.4 height=25.17 style=fill:#dedede /><path d=M89.6,49.6H49.2V44.9L62.6,30.6l12,14.8,8.5-9.3,6.5,7.5Z style=fill:#b7b7b7 /><path d=M73.2,30.2c-.5.6-1.1.4-1.2.9a.9.9,0,0,0,.5.9c.4.2.9-.5,1.3-.2s.1.4.3.6,1-.5,1.9-.5S77.3,33,78.3,33a2.2,2.2,0,0,0,2-2,2.3,2.3,0,0,0-1.6-2.5c-1.3-.4-2,1-3.4.6s-1.3-1-1.7-.8S73.7,29.5,73.2,30.2Z style=fill:#b7b7b7 /><rect x=49.2 y=56.8 width=40.4 height=25.17 style=fill:#dedede /><path d=M89.6,81.9H49.2V77.3L62.7,63,74.6,77.8l8.6-9.3,6.4,7.4Z style=fill:#b7b7b7 /><path d=M73.2,62.6c-.4.5-1,.4-1.1.8a.9.9,0,0,0,.4,1c.5.2.9-.5,1.3-.3s.2.5.4.6,1-.4,1.8-.5,1.3,1.1,2.3,1.1a2.2,2.2,0,0,0,2.1-1.9,2.7,2.7,0,0,0-1.7-2.6c-1.2-.4-2,1.1-3.4.6s-1.3-1-1.6-.8S73.8,61.9,73.2,62.6Z style=fill:#b7b7b7 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=15.2 width=89.6 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.two_article_rtl_block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TwoArticlesRTLBlockWidgetContent>\r\n        <div builder-element=CellContainerElement style=display:flex;flex-wrap:wrap data-layout=7-3>            \r\n            <div style=width:66.666667% builder-element=CellElement>\r\n                <div builder-element=BlockElement style=padding-right:25px;padding-bottom:25px>\r\n                    <div class=container>\r\n                        <h3 builder-element builder-inline-edit class=font-weight-normal>Lorem ipsum dolor</h3>\r\n                        <p builder-element builder-inline-edit class="">Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque. Nunc pulvinar turpis sed pellentesque aliquet.</p>\r\n                        <a builder-element builder-inline-edit data-style=style_1 class="btn btn-primary text-white">View more</a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div style=width:33.333333% builder-element=CellElement>\r\n                <div builder-element=BlockElement>\r\n                    <div class=container>\r\n                        <a builder-element href="" class=mr-4><img builder-element src=' +
      n(0) +
      ' width=100% /></a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=FooterBlockWidget>\r\n        <div class="_1content widget-text">\r\n            <div class=panel__body title={language.wpanel.widgets.footer.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.2"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=15.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=22.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=30.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect y=44.8 width=89.6 height=28.43 rx=0.3 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.footer.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=FooterBlockWidgetContent>\r\n        <div>\r\n            <div style=padding-bottom:16px>\r\n                <div>\r\n                    <div class=d-flex style=justify-content:center>\r\n                        <a builder-element=IconLinkElement href="" class="mr-3 me-3 d-inline-block">\r\n                        <img src={{root}}image/facebook.png style=width:40px;height:40px;display:block;border-radius:100%;background-color:#fff />\r\n                        </a>\r\n                        <a builder-element=IconLinkElement builder-element href="" class="mr-3 me-3 d-inline-block">\r\n                        <img src={{root}}image/twitter.png style=width:40px;height:40px;display:block;border-radius:100%;background-color:#fff />\r\n                        </a>\r\n                        <a builder-element=IconLinkElement builder-element href="" class="mr-3 me-3 d-inline-block">\r\n                        <img src={{root}}image/instagram.png style=width:40px;height:40px;display:block;border-radius:100%;background-color:#fff />\r\n                        </a>\r\n                        <a builder-element=IconLinkElement builder-element href="" class="mr-3 me-3 d-inline-block">\r\n                            <img src={{root}}image/google-plus.png style=width:40px;height:40px;display:block;border-radius:100%;background-color:#fff />\r\n                        </a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n\r\n            <footer style=padding-top:16px>\r\n                <div class="" style=padding-top:10px;padding-bottom:10px>\r\n                    <div class=text-muted>\r\n\r\n                        <div builder-element=TextElement>\r\n                            <p class=m-0 style=text-align:center;padding-bottom:5px>Copyright &copy; 2021. All rights reserved.</p>\r\n                            <p class=m-0 style=text-align:center;padding-bottom:5px>You can <a builder-element href={UPDATE_PROFILE_URL}>update your preferences</a> or <a builder-element href={UNSUBSCRIBE_URL}>unsubscribe from this list</a>.</p>\r\n                        </div>\r\n                        \r\n                        <p builder-element builder-inline-edit style=text-align:center;padding-top:15px;font-size:13px>\r\n                            <a builder-element href=# style=color:#555>Back to top</a>\r\n                        </p>\r\n                    </div>\r\n                </div>\r\n            </footer>\r\n        </div>\r\n    </div>\r\n\r\n    <div id=OneRowWidget>\r\n        <div class=row style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-12 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=OneRowWidgetContent>\r\n        <div class="row builder-class-row-empty">\r\n            <div class="col-md-12 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n\r\n    <div id=TwoRow48Widget>\r\n        <div class="row builder-class-row-empty" style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-4 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-8 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=TwoRow48WidgetContent>\r\n        <table builder-element width=100% border=1 cellspacing=10 cellpadding=10>\r\n            <tr>\r\n                <td style="width:30%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n                <td style="width:70%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div id=TwoRow66Widget>\r\n        <div class="row builder-class-row-empty" style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-6 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-6 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=TwoRow66WidgetContent>\r\n        <table builder-element width=100% border=1 cellspacing=10 cellpadding=10>\r\n            <tr>\r\n                <td style="width:50%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n                <td style="width:50%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div id=TwoRow84Widget>\r\n        <div class="row builder-class-row-empty" style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-8 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-4 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=TwoRow84WidgetContent>\r\n        <table builder-element width=100% border=1 cellspacing=10 cellpadding=10>\r\n            <tr>\r\n                <td style="width:70%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n                <td style="width:30%;padding:0 30px 50px 30px;font-size:initial" class=p0-15-30 bgcolor=#ffffff>\r\n                </td>\r\n            </tr>\r\n        </table>\r\n    </div>\r\n\r\n    <div id=ThreeRow444Widget>\r\n        <div class="row builder-class-row-empty" style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-4 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-4 row-center">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-4 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=ThreeRow444WidgetContent>\r\n        <div class="row builder-class-row-empty">\r\n            <div class="col-md-4 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n            <div class="col-md-4 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n            <div class="col-md-4 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n\r\n    <div id=FourRow3333Widget>\r\n        <div class="row builder-class-row-empty" style="">\r\n            <div class="col-md-12 _1row">\r\n                <div class="row list-row">\r\n                    <div class="col-md-3 row-left">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-3 row-center">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-3 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="col-md-3 row-right">\r\n                        <div class=panel__body>\r\n                            <div class=image-drag></div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n    <div id=FourRow3333WidgetContent>\r\n        <div class="row builder-class-row-empty">\r\n            <div class="col-md-3 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n            <div class="col-md-3 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n            <div class="col-md-3 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n            <div class="col-md-3 builder-class-col-empty">\r\n                <span class=pointer-events-none>{language.wpanel.widgets.content_drag.title}</span>\r\n            </div>\x3c!-- end _1row--\x3e\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--button--\x3e\r\n    <div id=ButtonWidget>\r\n        <div class="_1content widget-button">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% xmlns=http://www.w3.org/2000/svg viewBox="0 0 224 180"><defs><style>.a{fill:#e0e0e0}.b{fill:#939394}</style></defs><title>button</title><path class=a d=M44,66.5H180a8,8,0,0,1,8,8v38a8,8,0,0,1-8,8H44a8,8,0,0,1-8-8v-38A8,8,0,0,1,44,66.5Z /><path class=b d=M123.9,125.7l10.1.8-22-26v34.4l6.7-7.5,5.1,13.4a2.71,2.71,0,0,0,2.6,1.7c.3,0,.6-.1.9-.1a2.46,2.46,0,0,0,1.8-2.4,2.92,2.92,0,0,0-.2-.9Z /></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.button.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ButtonWidgetContent>\r\n       <div class=button-container>\r\n            <div class="button-wrap button-placeholder">\r\n                <button class=button>{language.wpanel.widgets.button.title}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--social--\x3e\r\n    <div id=SocialWidget>\r\n        <div class="_1content widget-social">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-share-alt} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.social.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=SocialWidgetContent>\r\n       <div builder-no-inline-edit=true ng-class="{\'text-container\': module.type == \'mailup-bee-newsletter-modules-text\', \'button-container\': module.type == \'mailup-bee-newsletter-modules-button\'}" mailup-bee-common-builder="" component=module.type ng-model=module.descriptor configuration="{\'row\': rowIndex, \'column\': columnIndex, \'module\': moduleIndex}" class="ng-pristine ng-untouched ng-valid ng-isolate-scope ng-not-empty">\r\n          <div mailup-bee-newsletter-modules-social="" ng-model=content configuration=configuration() class="ng-pristine ng-untouched ng-valid ng-scope ng-isolate-scope ng-not-empty">\r\n              <table width=100% border=0 cellspacing=0 cellpadding=0>\r\n                  <tbody>\r\n                      <tr>\r\n                          <td align=center style=max-width:285px>\r\n                              <table class=bee-social align=center border=0 cellspacing=0 cellpadding=0 style=width:auto>\r\n                                  <tbody>\r\n                                      <tr>\r\n                                          <td align=left ng-style=module.style style=text-align:center;padding:10px>\r\n                                              \x3c!-- ngRepeat: icon in module.iconsList.icons --\x3e\r\n                                              <table align=left border=0 cellspacing=0 cellpadding=0 height=32 ng-repeat="icon in module.iconsList.icons" ng-attr-style="display: inline-block; margin: {{ module.computedStyle[\'padding\'] }}" class=ng-scope style="display:inline-block;margin:0 5px 5px 0">\r\n                                                  <tbody>\r\n                                                      <tr>\r\n                                                          <td>\r\n                                                                <a href=javascript:; title={language.wpanel.widgets.facebook.title}>\r\n                                                                    <span class=icon-social><i class="fab fa-facebook-f"></i></span>\r\n                                                              <span class=ng-binding></span>\r\n                                                              </a>\r\n                                                          </td>\r\n                                                      </tr>\r\n                                                  </tbody>\r\n                                              </table>\r\n                                              \x3c!-- end ngRepeat: icon in module.iconsList.icons --\x3e\r\n                                              <table align=left border=0 cellspacing=0 cellpadding=0 height=32 ng-repeat="icon in module.iconsList.icons" ng-attr-style="display: inline-block; margin: {{ module.computedStyle[\'padding\'] }}" class=ng-scope style="display:inline-block;margin:0 5px 5px 0">\r\n                                                  <tbody>\r\n                                                      <tr>\r\n                                                          <td>\r\n                                                              <a href=javascript:; title={language.wpanel.widgets.twitter.title}>\r\n                                                              <span class=icon-social><i class="fab fa-twitter"></i></span>\r\n                                                              <span class=ng-binding></span>\r\n                                                              </a>\r\n                                                          </td>\r\n                                                      </tr>\r\n                                                  </tbody>\r\n                                              </table>\r\n                                              \x3c!-- end ngRepeat: icon in module.iconsList.icons --\x3e\r\n                                              <table align=left border=0 cellspacing=0 cellpadding=0 height=32 ng-repeat="icon in module.iconsList.icons" ng-attr-style="display: inline-block; margin: {{ module.computedStyle[\'padding\'] }}" class=ng-scope style="display:inline-block;margin:0 5px 5px 0">\r\n                                                  <tbody>\r\n                                                      <tr>\r\n                                                          <td>\r\n                                                              <a href=javascript:; title={language.wpanel.widgets.instagram.title}>\r\n                                                                <span class=icon-social><i class="fab fa-instagram"></i></span>\r\n                                                              <span class=ng-binding></span>\r\n                                                              </a>\r\n                                                          </td>\r\n                                                      </tr>\r\n                                                  </tbody>\r\n                                              </table>\r\n                                              \x3c!-- end ngRepeat: icon in module.iconsList.icons --\x3e\r\n                                              <table align=left border=0 cellspacing=0 cellpadding=0 height=32 ng-repeat="icon in module.iconsList.icons" ng-attr-style="display: inline-block; margin: {{ module.computedStyle[\'padding\'] }}" class=ng-scope style="display:inline-block;margin:0 5px 5px 0">\r\n                                                  <tbody>\r\n                                                      <tr>\r\n                                                          <td>\r\n                                                              <a href=javascript:; title={language.wpanel.widgets.linkedIn.title}>\r\n                                                              <span class=icon-social><i class="fab fa-linkedin-in"></i></span>\r\n                                                              <span class=ng-binding></span>\r\n                                                              </a>\r\n                                                          </td>\r\n                                                      </tr>\r\n                                                  </tbody>\r\n                                              </table>\r\n                                              \x3c!-- end ngRepeat: icon in module.iconsList.icons --\x3e\r\n                                          </td>\r\n                                      </tr>\r\n                                  </tbody>\r\n                              </table>\r\n                          </td>\r\n                      </tr>\r\n                  </tbody>\r\n              </table>\r\n          </div>\r\n      </div>\r\n    </div>\r\n\r\n    \x3c!--html--\x3e\r\n    <div id=HtmlWidget>\r\n       <div class="_1content widget-html">\r\n          <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n             <div class=image-drag>\r\n                <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                    <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.6"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=7.1 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.7 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=21.5 width=72.9 height=2.55 style=fill:#e2e2e2 /><path d=M4.8,53.6,30.2,39.3v3.4L8.2,54.8l22,12.7v3.3L4.8,56.2Z transform=translate(-2.2) style=fill:#b7b7b7 /><path d=M37.9,73.6,54,30.3h2.9L40.8,73.6Z transform=translate(-2.2) style=fill:#b7b7b7 /><path d=M89.9,56.5,64.6,70.8V67.4l22-12.1-22-12.7V39.3L89.9,53.9Z transform=translate(-2.2) style=fill:#b7b7b7 /></g></g></svg>\r\n                </div>\r\n            </div>\r\n            <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.html.title}</div>\r\n         </div>\r\n       </div>\r\n    </div>\r\n    <div id=HtmlWidgetContent>\r\n        <div builder-element=HtmlElement class=description id=clickable-layer data-bind-html=trustedHtml> {language.wpanel.widgets.des_html.title} </div>\r\n    </div>\r\n\r\n    \x3c!--video--\x3e\r\n    <div id=VideoWidget>\r\n        <div class="_1content widget-video">\r\n          <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n            <div class=image-drag>\r\n                <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                    <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.8"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path d=M71.7,73.8h-57a6,6,0,0,1-6-6V25.9a6,6,0,0,1,6-6h57a6,6,0,0,1,6,6V67.8A6,6,0,0,1,71.7,73.8ZM25.2,22.9H14.7a3,3,0,0,0-3,3v3H25.2Zm16.5,0H28.2v6H41.7Zm16.5,0H44.7v6H58.2Zm16.5,3a3,3,0,0,0-3-3H61.2v6H74.7Zm0,6h-63V61.8h63Zm0,32.9H61.2v6h-3v-6H44.7v6h-3v-6H28.2v6h-3v-6H11.7v3a3,3,0,0,0,3,3h57a3,3,0,0,0,3-3Zm-35-9.3a1.7,1.7,0,0,1-1,.3,1.5,1.5,0,0,1-1.5-1.5v-15a1.5,1.5,0,0,1,1.5-1.5,3.2,3.2,0,0,1,.9.3l11.6,7.3a1.5,1.5,0,0,1,1,1.4,1.4,1.4,0,0,1-.6,1.2Z style=fill:#b7b7b7;fill-rule:evenodd /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                </div>\r\n            </div>\r\n             <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.video.title}</div>\r\n          </div>\r\n        </div>\r\n    </div>\r\n    <div id=VideoWidgetContent>\r\n        <div class=video-container f-role=placeholder>\r\n            <div class="video-wrap video-placeholder">\r\n                <a class="remove remove-content-widget"><i class={builder-icon-times-circle}></i></a>\r\n                <i class={builder-icon-film} style=font-size:40px></i>\r\n                <div class=description>{language.wpanel.widgets.video.title}</div>\r\n                <button class="btn btn-dafault button-add-video">{language.wpanel.widgets.des_video.title}</button>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--image + caption--\x3e\r\n    <div id=ImageCaptionWidget>\r\n        <div class="_1content widget-image-caption">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.7 79.9"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=54.5 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=62.1 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=69.7 width=89.6 height=2.55 style=fill:#d5d5d5 /><rect y=77.3 width=72.9 height=2.55 style=fill:#d5d5d5 /><rect width=89.6 height=49.49 style=fill:#dedede /><path d=M89.6,49.5H0V40.3L29.9,12.2,56.3,41.3,75.4,23,89.7,37.7Z style=fill:#b7b7b7 /><path d=M53.2,11.5c-.9,1-2.3.8-2.5,1.7a1.6,1.6,0,0,0,1,1.8c1,.4,2-1,2.8-.5s.4.8.9,1.2,2.2-.9,4-1,2.9,2.1,5.2,2.2A5,5,0,0,0,69.2,13c.3-2.3-1.7-4.5-3.7-5s-4.4,2.1-7.6,1.2-2.8-2-3.6-1.5S54.4,10.1,53.2,11.5Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.block.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ImageCaptionWidgetContent>\r\n        <div class=row>\r\n            <div class="col-12 col-md-12">\r\n            <img builder-element builder-inline-edit class=my-2 src=' +
      n(20) +
      ' width=100% />\r\n            <h3 builder-element builder-inline-edit class="mt-2 mb-2">Lorem ipsum dolor</h3>\r\n            <p builder-element builder-inline-edit>Vestibulum id convallis ligula. Maecenas tellus erat, porta in augue eget, pretium aliquet neque.\r\n            Nunc pulvinar turpis sed pellentesque aliquet. Sed ullamcorper, tellus eu viverra tincidunt,\r\n            quam justo pellentesque est, et gravida justo eros vitae turpis.</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--footer--\x3e\r\n    <div id=FooterWidget>\r\n        <div class="_1content widget-image-caption">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.2"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=15.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=22.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=30.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect y=44.8 width=89.6 height=28.43 rx=0.3 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.footer.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=FooterWidgetContent>\r\n        <div class=footer-container f-role=placeholder>\r\n            <div class="footer-wrap footer-placeholder">\r\n                <a class="remove remove-content-widget"><i class={builder-icon-times-circle}></i></a>\r\n                <td valign=top class=mcnTextContent style=padding-top:0;padding-right:18px;padding-bottom:9px;padding-left:18px>\r\n                    {language.wpanel.widgets.des_footer.title}\r\n                </td>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--header--\x3e\r\n    <div id=HeaderWidget>\r\n        <div class="_1content widget-header">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 71"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=38 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=45.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=53.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=60.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=68.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=28.43 rx=0.3 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.header.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=HeaderWidgetContent>\r\n        <div class=header-container f-role="">\r\n            <div class="footer-wrap header-placeholder">\r\n                <h1>{language.wpanel.widgets.page_header.title}</h1>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--List image--\x3e\r\n    <div id=ListImageWidget>\r\n        <div class="_1content widget-list-image">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.8 82"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=0.2 y=65 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.2 y=72.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=0.2 y=79.5 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M25.9,36.5H0v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M18.3,20.2c-.4.5-1,.4-1.1.8s.2.7.4.8.9-.5,1.2-.3.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.2,2.2,0,0,0,25,20.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.5s-1.1-.8-1.5-.6S18.8,19.6,18.3,20.2Z style=fill:#b7b7b7 /><rect x=32 y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M57.9,36.5H32v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M50.3,20.2c-.4.5-1,.4-1.1.8s.2.7.4.8.9-.5,1.2-.3.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.2,2.2,0,0,0,57,20.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.5s-1.1-.8-1.5-.6S50.8,19.6,50.3,20.2Z style=fill:#b7b7b7 /><rect x=63.7 y=15 width=25.9 height=21.53 style=fill:#dedede /><path d=M89.6,36.5H63.7v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M81.4,30.7c-.4.5-.9.3-1,.7a.7.7,0,0,0,.4.8c.4.2.8-.4,1.2-.2s.1.4.3.5,1-.4,1.7-.4,1.2.9,2.2.9a2,2,0,0,0,1.9-1.6,2.2,2.2,0,0,0-1.5-2.2c-1.2-.4-1.9.9-3.2.5s-1.2-.9-1.5-.7S81.9,30.1,81.4,30.7Z style=fill:#b7b7b7 /><rect x=0.3 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=41.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=47 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=53.5 width=20.8 height=2.27 style=fill:#d5d5d5 /><rect x=0.2 width=89.3 height=8.68 style=fill:#e8e8e8 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>{language.wpanel.widgets.list_image.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ListImageWidgetContent>\r\n        <div class=list-images-container f-role="">\r\n            <div class="row list-images" style="">\r\n                <div class="col-12 col-md-4 item-col">\r\n                    <div class=col-content>\r\n                        <img src=' +
      n(48) +
      ' alt="Image Builder" class="img-circle img-thumbnail">\r\n                        <h2 class=title>{language.wpanel.widgets.list_image.designer.title}</h2>\r\n                        <p>{language.wpanel.widgets.list_image.design.des.title}\r\n                        </p>\r\n                        <a href=# data-style=style_1 class="btn btn-primary btn-link" title="See more">{language.wpanel.widgets.list_image.see.title}</a>\r\n                    </div>\r\n                </div>\r\n                <div class="col-12 col-md-4 item-col">\r\n                    <div class=col-content>\r\n                        <img src=' +
      n(49) +
      ' alt="Image Builder" class="img-circle img-thumbnail">\r\n                        <h2 class=title>{language.wpanel.widgets.list_image.photo.title}</h2>\r\n                        <p>{language.wpanel.widgets.list_image.photo.des.title}\r\n                        </p>\r\n                        <a href=# data-style=style_1 class="btn btn-primary btn-link" title="See more">{language.wpanel.widgets.list_image.see.title}</a>\r\n                    </div>\r\n                </div>\r\n                <div class="col-12 col-md-4 item-col">\r\n                    <div class=col-content>\r\n                        <img src=' +
      n(50) +
      ' alt="Image Builder" class="img-circle img-thumbnail">\r\n                        <h2 class=title>{language.wpanel.widgets.list_image.copy.title}</h2>\r\n                        <p>{language.wpanel.widgets.list_image.copy.des.title}\r\n                        </p>\r\n                        <a href=# data-style=style_1 class="btn btn-primary btn-link" title="See more">{language.wpanel.widgets.list_image.see.title}</a>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--progress bar--\x3e\r\n    <div id=ProgressBarWidget>\r\n        <div class="_1content widget-progress-bar">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 76"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=37.8 width=89.6 height=38.18 rx=6.6 style=fill:#e2e2e2 /><path d=M6.7,37.8H31.5a0,0,0,0,1,0,0V76a0,0,0,0,1,0,0H6.7A6.6,6.6,0,0,1,0,69.4V44.5a6.6,6.6,0,0,1,6.6-6.6Z style=fill:#b7b7b7 /><rect y=7.1 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.7 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=21.5 width=72.9 height=2.55 style=fill:#e2e2e2 /><path d=M17.2,52.7v2.6c0,2-.9,3-2.6,3s-2.5-.8-2.5-2.8V52.7c0-2.1,1.1-2.9,2.6-2.9S17.2,50.8,17.2,52.7ZM13.6,65.6,21,50h1.2L14.8,65.6Zm.2-13v2.9c0,.8.2,1.2.8,1.2s.9-.5.9-1.3V52.5c0-.7-.3-1.1-.8-1.1S13.8,51.8,13.8,52.6Zm10,7.6v2.6c0,2-1,3-2.6,3S18.6,65,18.6,63V60.2c0-2,1.1-2.9,2.6-2.9S23.8,58.3,23.8,60.2Zm-3.5-.1V63q0,1.2.9,1.2c.7,0,.8-.5.8-1.3V60c0-.7-.2-1.1-.8-1.1S20.3,59.3,20.3,60.1Z style=fill:#fff /><path d=M41.5,59.1h0c0,1.5-.4,2.8-2.3,2.8s-2.3-1.3-2.3-3V56.1c0-1.3.5-2.7,2.4-2.7s2.2,1.5,2.2,2.5v.3H39.9v-.3c0-.7-.1-1.1-.7-1.1s-.6.4-.6,1.1v3.6c0,.6.1,1.1.6,1.1s.7-.4.7-1.1v-.4Z style=fill:#b7b7b7 /><path d=M47.2,56.1v3.2q0,2.7-2.4,2.7c-1.6,0-2.4-1-2.4-2.7V56c0-1.8,1-2.6,2.4-2.6S47.2,54.4,47.2,56.1ZM44,56v3.4c0,.6.2,1.1.8,1.1s.8-.4.8-1.2V56c0-.6-.2-1.1-.8-1.1S44,55.3,44,56Z style=fill:#b7b7b7 /><path d=M48.4,56V53.6h1.5a1.5,1.5,0,0,1,.1.7,1.6,1.6,0,0,1,1.5-.9,1.3,1.3,0,0,1,1.3.9,1.8,1.8,0,0,1,1.6-.9c.9,0,1.6.5,1.6,2.1v6.3H54.4v-6c0-.6-.2-.9-.7-.9s-.7.5-.7,1.3v5.6H51.4v-6c0-.7-.3-.9-.7-.9s-.7.5-.7,1.3v5.6H48.4Z style=fill:#b7b7b7 /><path d=M59,61.3v3.3H57.4v-11h1.5a1.7,1.7,0,0,1,.1.8,1.5,1.5,0,0,1,1.5-1c1.2,0,1.7.8,1.7,2.5v3.4c0,1.9-.6,2.7-1.8,2.7A1.7,1.7,0,0,1,59,61.3Zm1.6-2V56c0-.7-.2-1.1-.7-1.1s-.9.3-.9,1.3v2.9c0,.8.2,1.4.8,1.4S60.6,60,60.6,59.3Z style=fill:#b7b7b7 /><path d=M63.4,61.8V50.7h1.7V61.8Z style=fill:#b7b7b7 /><path d=M67.8,58.1v1.3c0,.6.2,1.2.8,1.2s.7-.6.7-1.2h1.6c0,.9-.2,2.6-2.3,2.6s-2.4-1.3-2.4-3V56.3c0-1.2.4-2.9,2.4-2.9S71,54.6,71,56.3v1.8Zm1.6-1.3V56c0-.8-.2-1.2-.8-1.2s-.8.4-.8,1.2v.8Z style=fill:#b7b7b7 /><path d=M71.5,53.6h.9v-2H74v2h1.1V55H74v4.9c0,.4.1.7.6.7H75v1.2L74,62c-1,0-1.6-.4-1.6-1.8V55h-.9Z style=fill:#b7b7b7 /><path d=M77.3,58.1v1.3c0,.6.1,1.2.7,1.2s.8-.6.8-1.2h1.6c0,.9-.2,2.6-2.3,2.6s-2.5-1.3-2.5-3V56.3c0-1.2.4-2.9,2.5-2.9s2.3,1.2,2.3,2.9v1.8Zm1.5-1.3V56c0-.8-.2-1.2-.7-1.2s-.8.4-.8,1.2v.8Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.progress_bar.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ProgressBarWidgetContent>\r\n        <div class=progress-bar-container f-role=""> \x3c!--placeholder--\x3e\r\n            <div class=progress style="">\r\n                <div class=progress-bar role=progressbar aria-valuenow=60 aria-valuemin=0 aria-valuemax=100 style=width:60%>60%</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--list group--\x3e\r\n    <div id=ListGroupWidget>\r\n        <div class="_1content widget-list-group">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 77.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=6.8 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect y=15.8 width=89.6 height=14.09 style=fill:#e6e6e6 /><rect y=31.5 width=89.6 height=14.09 style=fill:#e6e6e6 /><rect y=47.3 width=89.6 height=14.09 style=fill:#e6e6e6 /><rect y=63.4 width=89.6 height=14.09 style=fill:#e6e6e6 /><rect x=9.6 y=21.5 width=71.1 height=2.55 style=fill:#b7b7b7 /><rect x=9.6 y=37.3 width=71.1 height=2.55 style=fill:#b7b7b7 /><rect x=9.6 y=53.2 width=71.1 height=2.55 style=fill:#b7b7b7 /><rect x=9.6 y=69.1 width=71.1 height=2.55 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.list_group.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ListGroupWidgetContent>\r\n        <div class=list-group-container f-role="">\r\n            <div class=list-group style="">\r\n                <a href=# class="list-group-item disabled">{language.wpanel.widgets.list_group.cras.title}</a>\r\n                <a href=# class=list-group-item>{language.wpanel.widgets.list_group.dapibus.title}</a>\r\n                <a href=# class=list-group-item>{language.wpanel.widgets.list_group.morbi.title}</a>\r\n                <a href=# class=list-group-item>{language.wpanel.widgets.list_group.porta.title}</a>\r\n                <a href=# class=list-group-item>{language.wpanel.widgets.list_group.vesti.title}</a>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Panel--\x3e\r\n    <div id=PanelWidget>\r\n        <div class="_1content widget-panel">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 81"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=18.49 style=fill:#b7b7b7 /><rect y=20.7 width=89.6 height=18.49 style=fill:#e6e6e6 /><rect y=41.4 width=89.6 height=18.49 style=fill:#e6e6e6 /><rect y=62.5 width=89.6 height=18.49 style=fill:#e6e6e6 /><rect x=9.3 y=8.9 width=71.1 height=2.55 style=fill:#dedede /><rect x=9.3 y=28.7 width=71.1 height=2.55 style=fill:#b7b7b7 /><rect x=9.3 y=49.4 width=71.1 height=2.55 style=fill:#b7b7b7 /><rect x=9.3 y=71.4 width=71.1 height=2.55 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.panel.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=PanelWidgetContent>\r\n        <div class=panel-container f-role="">\r\n            <div class="panel panel-primary" style="">\r\n                <div class=panel-heading>{language.wpanel.widgets.panel.heading.title}</div>\r\n                <div class=panel-body>{language.wpanel.widgets.panel.body.title}</div>\r\n                <div class=panel-footer>{language.wpanel.widgets.panel.footer.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Image header--\x3e\r\n    <div id=ImageHeaderWidget>\r\n        <div class="_1content widget-image-header">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-image_header} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.image_header.title}</div>\r\n             </div>\r\n        </div>\r\n    </div>\r\n    <div id=ImageHeaderWidgetContent>\r\n        <div class=image-header-container>\r\n            <div class=image-header style="">\r\n                <h3>{language.wpanel.widgets.image_header.h3.title}</h3>\r\n                <h1>{language.wpanel.widgets.image_header.h1.title}</h1>\r\n                <p><a data-style=style_1 class="btn btn-primary btn-lg" role=button>{language.wpanel.widgets.image_header.tell.title}</a></p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--jumbotron widget--\x3e\r\n    <div id=JumbotronWidget>\r\n        <div class="_1content widget-jumbotron">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 81"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=55 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=29.9 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=37.3 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=62.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=70.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=78.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=10.43 rx=0.3 style=fill:#e2e2e2 /><rect x=23.7 y=18.5 width=45.4 height=7.06 style=fill:#b7b7b7 /><path d=M21.6,50.1c1.2-.6,10.6-5.5,13.7-3.2a2.4,2.4,0,0,1,.7,3.3c-1.1,1.3-4.3,1.4-5,.4s1.1-4.5,4.2-5.6,4.1,0,11.5,2.2c4.9,1.4,10.5,3,16.8,3,2.1,0,4.2-.1,4.9-1.2a2,2,0,0,0-.4-2.5,3.9,3.9,0,0,0-4.5.2 style=fill:none;stroke:#e2e2e2;stroke-miterlimit:10 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.jumbotron.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=JumbotronWidgetContent>\r\n        <div class=jumbotron-container f-role="">\r\n            <div class=jumbotron style="">\r\n                <div class="">\r\n                    <h1>{language.wpanel.widgets.jumbotron.welcome.title}</h1>\r\n                    <p class=des-jumbotron>{language.wpanel.widgets.jumbotron.des.title}</p>\r\n                    <p class=btn-jumbotron>\r\n                        <a data-style=style_1 class="btn btn-primary btn-lg" role=button>{language.wpanel.widgets.jumbotron.learn_more.title}</a>\r\n                    </p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Meterial box--\x3e\r\n    <div id=MeterialWidget>\r\n        <div class="_1content widget-meterial">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 81"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=55 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=29.9 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=37.3 width=89.6 height=3.38 style=fill:#b7b7b7 /><rect y=62.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=70.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=78.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=89.6 height=10.43 rx=0.3 style=fill:#e2e2e2 /><rect x=37.8 y=13.4 width=14 height=13.99 rx=7 style=fill:#b7b7b7 /><rect x=30.7 y=44 width=28.3 height=4.43 rx=2.2 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.meterial.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=MeterialWidgetContent>\r\n        <div class=meterial-container f-role="">\r\n            <div class=box>\r\n                <div class=box-icon>\r\n                    <i class="fab fa-html5"></i>\r\n                </div>\r\n                <div class=info>\r\n                    <h4 class=text-center>{language.wpanel.widgets.meterial.title.title}</h4>\r\n                    <p>{language.wpanel.widgets.meterial.des.title}</p>\r\n                    <a href="" class=btn>{language.wpanel.widgets.meterial.link.title}</a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Navbar--\x3e\r\n    <div id=NavbarWidget>\r\n        <div class="_1content widget-navbar">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 76.6"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=43.7 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=51.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=58.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=66.4 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=22 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=29.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=37.2 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=74 width=72.9 height=2.55 style=fill:#e2e2e2 /><rect width=88.8 height=14.41 style=fill:#e2e2e2 /><rect x=28.7 y=4.8 width=14.8 height=4.84 rx=1.9 style=fill:#b7b7b7 /><rect x=10.3 y=4.8 width=14.8 height=4.84 rx=1.9 style=fill:#b7b7b7 /><rect x=46.6 y=4.8 width=14.8 height=4.84 rx=1.9 style=fill:#b7b7b7 /><rect x=64.4 y=4.8 width=14.8 height=4.84 rx=1.9 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.navbar.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=NavbarWidgetContent>\r\n        <div class=navbar-container f-role="">\r\n            <div class="navbar nav-default">\r\n                <div class="">\r\n                    <div class="navbar-header responsive-logo">\r\n                        <a href=/ class=navbar-brand><i class="fab fa-blackberry"></i> {language.wpanel.widgets.navbar.architect.title}</a>\r\n                    </div>\r\n                    <nav class="navbar-collapse bs-navbar-collapse collapse" role=navigation style=height:1px>\r\n                        <ul class="nav navbar-nav navbar-right responsive-nav main-nav-list">\r\n                            <li class=""><a href=#focus>{language.wpanel.widgets.navbar.portfolio.title}</a></li>\r\n                            <li class=""><a href=#aboutus>{language.wpanel.widgets.navbar.about.title}</a></li>\r\n                            <li class=""><a href=#pricingtable>{language.wpanel.widgets.navbar.pricing.title}</a></li>\r\n                            <li class=""><a href=#features>{language.wpanel.widgets.navbar.team.title}</a></li>\r\n                            <li><a href=#contact>{language.wpanel.widgets.navbar.contact.title}</a></li>\r\n                        </ul>\r\n                    </nav>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--services list widget--\x3e\r\n    <div id=ServicesListWidget>\r\n        <div class="_1content widget-services-list">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.9 80"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=25.9 height=21.53 style=fill:#dedede /><path d=M25.9,21.5H0v-4L10.6,5.6,21.2,17.5l4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M18.3,5.2c-.4.5-1,.4-1.1.8a.8.8,0,0,0,.4.8c.5.1.9-.4,1.2-.3s.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.1,2.1,0,0,0,25,5.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.6s-1.1-.9-1.5-.7S18.8,4.6,18.3,5.2Z style=fill:#b7b7b7 /><rect x=32 width=25.9 height=21.53 style=fill:#dedede /><path d=M57.9,21.5H32v-4L42.6,5.6,53.2,17.5l4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M50.3,5.2c-.4.5-1,.4-1.1.8a.8.8,0,0,0,.4.8c.5.1.9-.4,1.2-.3s.2.4.4.6.9-.4,1.7-.5,1.2,1,2.2,1A2.1,2.1,0,0,0,57,5.9a2.2,2.2,0,0,0-1.6-2.2c-1.2-.3-1.8.9-3.2.6s-1.1-.9-1.5-.7S50.8,4.6,50.3,5.2Z style=fill:#b7b7b7 /><rect x=63.7 width=25.9 height=21.53 style=fill:#dedede /><path d=M89.6,21.5H63.7v-4L74.3,5.6c3.5,4,7,8,10.6,11.9l4.7-5.7v9.7Z style=fill:#b7b7b7 /><path d=M81.4,15.7c-.4.5-.9.4-1,.7a.9.9,0,0,0,.4.9c.4.1.8-.5,1.2-.3s.1.4.3.5,1-.3,1.7-.4,1.2,1,2.2,1a2.1,2.1,0,0,0,1.9-1.7,2.2,2.2,0,0,0-1.5-2.2c-1.2-.4-1.9.9-3.2.5s-1.2-.8-1.5-.6S81.9,15.1,81.4,15.7Z style=fill:#b7b7b7 /><rect x=0.3 y=26.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=32.1 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=26.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.2 y=32.1 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=26.3 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=63.8 y=32.1 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.3 y=45.6 width=25.9 height=21.53 style=fill:#dedede /><path d=M26.2,67.2H.3v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><rect x=32.3 y=45.6 width=25.9 height=21.53 style=fill:#dedede /><path d=M58.2,67.2H32.3v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><rect x=64 y=45.6 width=25.9 height=21.53 style=fill:#dedede /><path d=M89.9,67.2H64v-4l10.6-12,10.6,12,4.7-5.7v9.7Z style=fill:#b7b7b7 /><rect x=0.6 y=71.9 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=0.6 y=77.7 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.5 y=71.9 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=32.5 y=77.7 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=64.1 y=71.9 width=25.6 height=2.27 style=fill:#d5d5d5 /><rect x=64.1 y=77.7 width=25.6 height=2.27 style=fill:#d5d5d5 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.services_list.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ServicesListWidgetContent>\r\n        <div class=services-list-container f-role="">\r\n            <div class=services-list style="">\r\n                <div class=row>\r\n                    <div class="col-lg-3 col-md-6">\r\n                        <div class=service-box>\r\n                            <div class=service-icon><i class="fal fa-lightbulb"></i></div>\r\n                            <h4>{language.wpanel.widgets.services_list.generating.title}</h4>\r\n                            <p class=text-center>{language.wpanel.widgets.services_list.des1.title}</p>\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div class="col-lg-3 col-md-6">\r\n                       <div class=service-box>\r\n                            <div class=service-icon><i class="fal fa-keyboard"></i></div>\r\n                            <h4>{language.wpanel.widgets.services_list.prototype.title}</h4>\r\n                            <p class=text-center>{language.wpanel.widgets.services_list.des2.title}</p>\r\n                       </div>\r\n                    </div>\r\n\r\n                    <div class="col-lg-3 col-md-6">\r\n                       <div class=service-box>\r\n                            <div class=service-icon><i class="fal fa-code"></i></div>\r\n                            <h4>{language.wpanel.widgets.services_list.design.title}</h4>\r\n                            <p class=text-center>{language.wpanel.widgets.services_list.des3.title}</p>\r\n                       </div>\r\n                    </div>\r\n\r\n                    <div class="col-lg-3 col-md-6">\r\n                        <div class=service-box>\r\n                            <div class=service-icon><i class="fal fa-rocket"></i></div>\r\n                            <h4>{language.wpanel.widgets.services_list.launching.title}</h4>\r\n                            <p class=text-center>{language.wpanel.widgets.services_list.des4.title}</p>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--image grid--\x3e\r\n    <div id=ImageGridWidget>\r\n        <div class="_1content widget-image-grid">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg style=width:100% xmlns=http://www.w3.org/2000/svg viewBox="0 0 224 180"><defs><style>.a{fill:#e2e2e2}.b{fill:#b7b7b7}</style></defs><title>imageGroup</title><path class=a d="M45 46h56v38H45z"/><path class=b d="M45 73.1V84h56V73l-9-9-9 9-19-18-19 18.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M89.966 52.427c.213.355.213.814 0 1.17-1.368 2.307-5.027 2.617-7.605 2.558-2.69-.06-5.012-.68-5.838-.976-1.21-.445-2.492-1.17-3.432-2.087-.086-.074-.086-.192 0-.266.94-.918 2.207-1.554 3.432-1.983.826-.296 3.147-.917 5.84-.976 2.577-.06 6.236.25 7.604 2.56z" id=Shape stroke-width=.86 /><path d="M81.545 55.7c-.507-.022-.995-.043-1.466-.084v1.8h3.6v-1.76c-.742.063-1.466.063-2.135.043z" id=Shape stroke-width=.86 /><path d="M74.895 54.4l.16 1.8 1.048-.03c.64-.022 1.22-.355 1.492-.844M74.895 51.7l.16-1.8 1.048.03c.64.022 1.22.355 1.492.844" id=Shape stroke-width=.688 /></g></g></g></g></g></g><path class=b d="M105 42v46H41V42h64m4-4H37v54h72V38z"/><path class=a d="M123 46h56v38h-56z"/><path class=b d="M123 73.1V84h56V73l-9-9-9 9-19-18-19 18.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M167.966 52.427c.213.355.213.814 0 1.17-1.368 2.307-5.027 2.617-7.605 2.558-2.69-.06-5.012-.68-5.838-.976-1.21-.445-2.492-1.17-3.432-2.087-.086-.074-.086-.192 0-.266.94-.918 2.207-1.554 3.432-1.983.826-.296 3.147-.917 5.84-.976 2.577-.06 6.236.25 7.604 2.56z" id=Shape stroke-width=.86 /><path d="M159.545 55.7c-.507-.022-.995-.043-1.466-.084v1.8h3.6v-1.76c-.742.063-1.466.063-2.135.043z" id=Shape stroke-width=.86 /><path d="M152.895 54.4l.16 1.8 1.048-.03c.64-.022 1.22-.355 1.492-.844M152.895 51.7l.16-1.8 1.048.03c.64.022 1.22.355 1.492.844" id=Shape stroke-width=.688 /></g></g></g></g></g></g><path class=b d="M183 42v46h-64V42h64m4-4h-72v54h72V38z"/><path class=a d="M45 106h56v38H45z"/><path class=b d="M45 133.1V144h56v-11l-9-9-9 9-19-18-19 18.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M89.966 112.427c.213.355.213.814 0 1.17-1.368 2.307-5.027 2.617-7.605 2.558-2.69-.06-5.012-.68-5.838-.976-1.21-.445-2.492-1.17-3.432-2.087-.086-.074-.086-.192 0-.266.94-.918 2.207-1.554 3.432-1.983.826-.296 3.147-.917 5.84-.976 2.577-.06 6.236.25 7.604 2.56z" id=Shape stroke-width=.86 /><path d="M81.545 115.7c-.507-.022-.995-.043-1.466-.084v1.8h3.6v-1.76c-.742.063-1.466.063-2.135.043z" id=Shape stroke-width=.86 /><path d="M74.895 114.4l.16 1.8 1.048-.03c.64-.022 1.22-.355 1.492-.844M74.895 111.7l.16-1.8 1.048.03c.64.022 1.22.355 1.492.844" id=Shape stroke-width=.688 /></g></g></g></g></g></g><path class=b d="M105 102v46H41v-46h64m4-4H37v54h72V98z"/><path class=a d="M123 106h56v38h-56z"/><path class=b d="M123 133.1V144h56v-11l-9-9-9 9-19-18-19 18.1"/><g id=blimpIcon><g id=Layer_1><g id=Group><g id=blimpIcon><g id=Layer_1><g id=Group stroke=#B5B5B5 fill=#B5B5B5><path d="M167.966 112.427c.213.355.213.814 0 1.17-1.368 2.307-5.027 2.617-7.605 2.558-2.69-.06-5.012-.68-5.838-.976-1.21-.445-2.492-1.17-3.432-2.087-.086-.074-.086-.192 0-.266.94-.918 2.207-1.554 3.432-1.983.826-.296 3.147-.917 5.84-.976 2.577-.06 6.236.25 7.604 2.56z" id=Shape stroke-width=.86 /><path d="M159.545 115.7c-.507-.022-.995-.043-1.466-.084v1.8h3.6v-1.76c-.742.063-1.466.063-2.135.043z" id=Shape stroke-width=.86 /><path d="M152.895 114.4l.16 1.8 1.048-.03c.64-.022 1.22-.355 1.492-.844M152.895 111.7l.16-1.8 1.048.03c.64.022 1.22.355 1.492.844" id=Shape stroke-width=.688 /></g></g></g></g></g></g><path class=b d="M183 102v46h-64v-46h64m4-4h-72v54h72V98z"/></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.image_grid.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ImageGridWidgetContent>\r\n        <div class=image-grid-container f-role="">\r\n            <div class="row image-grid" style="">\r\n                <div class=col-xs-3>\r\n                    <a href=# class=thumbnail>\r\n                        <img src=' +
      n(2) +
      ">\r\n                    </a>\r\n                </div>\r\n                <div class=col-xs-3>\r\n                    <a href=# class=thumbnail>\r\n                        <img src=" +
      n(2) +
      ">\r\n                    </a>\r\n                </div>\r\n                <div class=col-xs-3>\r\n                    <a href=# class=thumbnail>\r\n                        <img src=" +
      n(2) +
      ">\r\n                    </a>\r\n                </div>\r\n                <div class=col-xs-3>\r\n                    <a href=# class=thumbnail>\r\n                        <img src=" +
      n(2) +
      '>\r\n                    </a>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--user profile--\x3e\r\n    <div id=UserProfileWidget>\r\n        <div class="_1content widget-user-profile">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-user} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.user_profile.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=UserProfileWidgetContent>\r\n        <div class=user-profile-container f-role="">\r\n            <div class=user-profile style="">\r\n                <div class="col-md-8 col-lg-6 content">\r\n                    <div class="well profile">\r\n                        <div class="col-sm-12 content-top">\r\n                            <div class="col-xs-12 col-sm-8">\r\n                                <h2>{language.wpanel.widgets.user_profile.name.title}</h2>\r\n                                <p><strong>{language.wpanel.widgets.user_profile.about.title} </strong> {language.wpanel.widgets.user_profile.webdesign.title} </p>\r\n                                <p><strong>{language.wpanel.widgets.user_profile.hobbies.title} </strong> {language.wpanel.widgets.user_profile.read.title} </p>\r\n                                <p><strong>{language.wpanel.widgets.user_profile.skills.title} </strong>\r\n                                    <span class="label label-success">{language.wpanel.widgets.user_profile.html5.title}</span>\r\n                                    <span class="label label-success">{language.wpanel.widgets.user_profile.css3.title}</span>\r\n                                    <span class="label label-success">{language.wpanel.widgets.user_profile.jquery.title}</span>\r\n                                    <span class="label label-success">{language.wpanel.widgets.user_profile.bootstrap3.title}</span>\r\n                                </p>\r\n                            </div>\r\n                            <div class="col-xs-12 col-sm-4 text-center">\r\n                                <p>{language.wpanel.widgets.user_profile.ratings.title}\r\n                                    <a href=#>\r\n                                        <i class="fal fa-star"></i>\r\n                                    </a>\r\n                                    <a href=#>\r\n                                        <i class="fal fa-star"></i>\r\n                                    </a>\r\n                                    <a href=#>\r\n                                        <i class="fal fa-star"></i>\r\n                                    </a>\r\n                                    <a href=#>\r\n                                        <i class="fal fa-star"></i>\r\n                                    </a>\r\n                                    <a href=#>\r\n                                        <i class="fal fa-star"></i>\r\n                                    </a>\r\n                                </p>\r\n                            </div>\r\n                        </div>\r\n                        <div class="col-xs-12 divider text-center">\r\n                            <div class="col-xs-12 col-sm-4 emphasis">\r\n                                <h2><strong> {language.wpanel.widgets.user_profile.interge1.title} </strong></h2>\r\n                                <p><small>{language.wpanel.widgets.user_profile.followers.title}</small></p>\r\n                                <button class="btn btn-success btn-block"><i class="fal fa-plus-circle"></i> {language.wpanel.widgets.user_profile.follow.title} </button>\r\n                            </div>\r\n                            <div class="col-xs-12 col-sm-4 emphasis">\r\n                                <h2><strong>{language.wpanel.widgets.user_profile.interge2.title}</strong></h2>\r\n                                <p><small>{language.wpanel.widgets.user_profile.following.title}</small></p>\r\n                                <button class="btn btn-info btn-block"><i class="fal fa-user"></i> {language.wpanel.widgets.user_profile.viewprofile.title} </button>\r\n                            </div>\r\n                            <div class="col-xs-12 col-sm-4 emphasis">\r\n                                <h2><strong>{language.wpanel.widgets.user_profile.interge3.title}</strong></h2>\r\n                                <p><small>{language.wpanel.widgets.user_profile.snippets.title}</small></p>\r\n                                <button data-style=style_1 class="btn btn-primary btn-block"><i class="fal fa-cogs"></i> {language.wpanel.widgets.user_profile.options.title} </button>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Div container widget--\x3e\r\n    <div id=DivContainerWidget>\r\n        <div class="_1content widget-div-container">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class=material-icons-outlined style=font-size:36px;display:inline-block>move_to_inbox</i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.div_container.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=DivContainerWidgetContent>\r\n        <div class=div_container-container f-role="">\r\n            <div class=div></div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Container widget--\x3e\r\n    <div id=ContainerWidget>\r\n        <div class="_1content widget-container">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class=material-icons-outlined style=font-size:36px;display:inline-block>aspect_ratio</i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.container.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ContainerWidgetContent>\r\n        <div class=container-container f-role="">\r\n            <div class=""></div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--well widget--\x3e\r\n    <div id=WellWidget>\r\n        <div class="_1content widget-well">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class=material-icons-outlined style=font-size:36px;display:inline-block>check_box_outline_blank</i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.well.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=WellWidgetContent>\r\n        <div class=well-container f-role="">\r\n            <div class=well style="">{language.wpanel.widgets.well.look.title}</div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--media object widget--\x3e\r\n    <div id=MediaObjectWidget>\r\n        <div class="_1content widget-media-object">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-media_object} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.media_object.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=MediaObjectWidgetContent>\r\n        <div class=media-object-container f-role="">\r\n            <div class=media style="">\r\n                <a class=media-left href=#>\r\n                    <img src=' +
      n(51) +
      '>\r\n                </a>\r\n                <div class=media-body>\r\n                    <h2 class=media-heading>{language.wpanel.widgets.media_object.heading.title}</h2>\r\n                    <p>{language.wpanel.widgets.media_object.des1.title}</p>\r\n                    <p>{language.wpanel.widgets.media_object.des2.title}</p>\r\n                    <p>{language.wpanel.widgets.media_object.des3.title}</p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Paragraph--\x3e\r\n    <div id=ParagraphWidget>\r\n        <div class="_1content widget-paragraph-profile">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 73.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=89.6 height=2.55 style=fill:#cacaca /><rect y=8.9 width=89.6 height=2.55 style=fill:#cacaca /><rect y=17.7 width=89.6 height=2.55 style=fill:#cacaca /><rect y=26.6 width=89.6 height=2.55 style=fill:#cacaca /><rect y=70.9 width=72.9 height=2.55 style=fill:#cacaca /><rect y=35.4 width=89.6 height=2.55 style=fill:#cacaca /><rect y=44.3 width=89.6 height=2.55 style=fill:#cacaca /><rect y=53.1 width=89.6 height=2.55 style=fill:#cacaca /><rect y=62 width=89.6 height=2.55 style=fill:#cacaca /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.paragraph.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ParagraphWidgetContent>\r\n        <div class=paragraph-container f-role="">\r\n            <div class=paragraph-profile style="">\r\n                <p class=paragraph style="">{language.wpanel.widgets.paragraph.description}</p>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Marked Text--\x3e\r\n    <div id=MarkedTextWidget>\r\n        <div class="_1content widget-marked-text">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 88.7 73.2"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><polygon points="88.7 0 88.7 60.5 72.5 60.5 72.5 73.2 0 73.2 0 0 88.7 0" style=fill:#b7b7b7 /><rect x=7.1 y=6 width=71.2 height=2.55 style=fill:#fff /><rect x=7.1 y=14.9 width=71.2 height=2.55 style=fill:#fff /><rect x=7.1 y=59.2 width=57.9 height=2.55 style=fill:#fff /><rect x=7.1 y=23.7 width=71.2 height=2.55 style=fill:#fff /><rect x=7.1 y=32.6 width=71.2 height=2.55 style=fill:#fff /><rect x=7.1 y=41.5 width=71.2 height=2.55 style=fill:#fff /><rect x=7.1 y=50.3 width=71.2 height=2.55 style=fill:#fff /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.marked_text.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=MarkedTextWidgetContent>\r\n        <div class=marked-text style="">\r\n            <mark style="">{language.wpanel.widgets.marked_text.description}</mark>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Definition List--\x3e\r\n    <div id=DefinitionListWidget>\r\n        <div class="_1content widget-definition-list">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 88.7 79.3"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=23.6 width=64.6 height=3.89 style=fill:#e2e2e2 /><rect x=23.6 y=10.4 width=52.5 height=3.89 style=fill:#e2e2e2 /><rect x=23.6 y=47.8 width=64.6 height=3.89 style=fill:#e2e2e2 /><rect x=23.6 y=58.2 width=52.5 height=3.89 style=fill:#e2e2e2 /><rect x=23.6 y=28.8 width=64.6 height=3.89 style=fill:#e2e2e2 /><rect width=19.4 height=8.38 style=fill:#b7b7b7 /><rect y=26.5 width=19.4 height=8.38 style=fill:#b7b7b7 /><rect y=47.8 width=19.4 height=8.38 style=fill:#b7b7b7 /><rect x=24.1 y=73.2 width=64.6 height=3.89 style=fill:#e2e2e2 /><rect x=0.7 y=70.9 width=19.4 height=8.38 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.definition_list.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=DefinitionListWidgetContent>\r\n        <div class=definition-list-container f-role="">\r\n            <div class=definition-list style="">\r\n                <dl class=dl-horizontal style="">\r\n                    <dt>{language.wpanel.widgets.definition_list.description1}</dt>\r\n                    <dd>{language.wpanel.widgets.definition_list.description2}</dd>\r\n                    <dt>{language.wpanel.widgets.definition_list.description3}</dt>\r\n                    <dd>{language.wpanel.widgets.definition_list.description4}</dd>\r\n                    <dd>{language.wpanel.widgets.definition_list.description5}</dd>\r\n                    <dt>{language.wpanel.widgets.definition_list.description6}</dt>\r\n                    <dd>{language.wpanel.widgets.definition_list.description7}</dd>\r\n                    <dt>{language.wpanel.widgets.definition_list.description8}</dt>\r\n                    <dd>{language.wpanel.widgets.definition_list.description9}</dd>\r\n                </dl>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Blockqoute--\x3e\r\n    <div id=BlockqouteWidget>\r\n        <div class="_1content widget-blockqoute">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 73.8 57.3"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><path d=M10,0V7.4C10,13.1,6.3,17,1,18L0,15.8A6.6,6.6,0,0,0,4,10H0V0ZM24,0V7.4c0,5.7-3.7,9.6-9,10.6l-1-2.2A6.6,6.6,0,0,0,18,10H14V0Z style=fill:#b7b7b7 /><rect x=34.7 y=1.6 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect x=34.7 y=10.5 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect x=2.5 y=54.8 width=57.9 height=2.55 style=fill:#e2e2e2 /><rect x=34.7 y=19.4 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect x=2.6 y=28.2 width=71.2 height=2.55 style=fill:#e2e2e2 /><rect x=2.6 y=37.1 width=71.2 height=2.55 style=fill:#e2e2e2 /><rect x=2.6 y=45.9 width=71.2 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.blockqoute.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=BlockqouteWidgetContent>\r\n        <div class=blockqoute-container f-role="">\r\n            <div class=blockqoute style="">\r\n                <blockquote style="">\r\n                    <p>{language.wpanel.widgets.blockqoute.description1}</p>\r\n                    <footer>{language.wpanel.widgets.blockqoute.description2} <cite title="Source Title">{language.wpanel.widgets.blockqoute.description3}</cite></footer>\r\n                </blockquote>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Unordered List--\x3e\r\n    <div id=UnorderedListWidget>\r\n        <div class="_1content widget-unordered-list">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-unordered-list} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.unordered_list.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=UnorderedListWidgetContent>\r\n        <div class=unordered-list-container f-role="">\r\n            <div class=unordered-list style="">\r\n                <ul style="">\r\n                    <li>{language.wpanel.widgets.unordered_list.description1}</li>\r\n                    <li>{language.wpanel.widgets.unordered_list.description2}</li>\r\n                    <li>{language.wpanel.widgets.unordered_list.description3}</li>\r\n                    <ul></ul>\r\n                </ul>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Heading--\x3e\r\n    <div id=HeadingWidget>\r\n        <div class="_1content widget-heading">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class=material-icons-outlined style=transform:rotate(180deg);font-size:36px;display:inline-block>view_carousel</i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.heading.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=HeadingWidgetContent>\r\n        <div class=heading-container f-role="">\r\n            <div class=heading style="">\r\n                <h2 style="">{language.wpanel.widgets.heading.description1}</h2>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Link--\x3e\r\n    <div id=LinkWidget>\r\n        <div class="_1content widget-link">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 71.2 57.5"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=32.1 y=1.8 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect x=32.1 y=10.7 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect y=55 width=57.9 height=2.55 style=fill:#e2e2e2 /><rect x=32.1 y=19.6 width=39.1 height=2.55 style=fill:#e2e2e2 /><rect y=28.4 width=71.2 height=2.55 style=fill:#e2e2e2 /><rect y=37.3 width=71.2 height=2.55 style=fill:#e2e2e2 /><rect y=46.1 width=71.2 height=2.55 style=fill:#e2e2e2 /><path d=M10.7,18.2,7.8,21.1a3.1,3.1,0,0,1-4.2,0,3,3,0,0,1,0-4.3l5.6-5.6a3,3,0,0,1,4.3,0,1,1,0,0,0,1.4-1.4,5,5,0,0,0-7.1,0L2.2,15.4a5,5,0,0,0,0,7.1,5,5,0,0,0,7,0l2.9-2.8a1.1,1.1,0,0,0,0-1.5A1.2,1.2,0,0,0,10.7,18.2Z style=fill:#b7b7b7 /><path d=M23.2,1.5a4.8,4.8,0,0,0-7,0L12.8,4.8a1.1,1.1,0,0,0,0,1.5,1.2,1.2,0,0,0,1.4,0l3.4-3.4a2.9,2.9,0,0,1,4.2,0,2.9,2.9,0,0,1,0,4.2l-6.2,6.2a2.9,2.9,0,0,1-4.2,0A1,1,0,1,0,10,14.7a4.8,4.8,0,0,0,7,0l6.2-6.2A4.8,4.8,0,0,0,23.2,1.5Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.link.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=LinkWidgetContent>\r\n        <div class=link-container f-role="">\r\n            <div class=link style="">\r\n                <a href=# style="">{language.wpanel.widgets.link.description}</a>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Button Group--\x3e\r\n    <div id=ButtonGroupWidget>\r\n        <div class="_1content widget-button-group">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>                        \r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 86.7 55.2"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=1.3 width=85.3 height=2.55 style=fill:#e2e2e2 /><rect x=1.3 y=7.6 width=85.3 height=2.55 style=fill:#e2e2e2 /><rect x=1.3 y=14.4 width=69.4 height=2.55 style=fill:#e2e2e2 /><path d=M5.5,25.8H27.6a0,0,0,0,1,0,0V55.2a0,0,0,0,1,0,0H5.5A5.5,5.5,0,0,1,0,49.6V31.3A5.5,5.5,0,0,1,5.5,25.8Z style=fill:#b7b7b7 /><rect x=28.9 y=25.8 width=27.6 height=29.38 style=fill:#b7b7b7 /><path d=M57.7,25.8H79.6a5.7,5.7,0,0,1,5.7,5.7V49.4a5.7,5.7,0,0,1-5.7,5.7H57.7a0,0,0,0,1,0,0V25.8A0,0,0,0,1,57.7,25.8Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.button_group.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ButtonGroupWidgetContent>\r\n        <div class="button-group btn-group" style="">\r\n            <button type=button class="btn btn-default">{language.wpanel.widgets.button_group.left}</button>\r\n            <button type=button class="btn btn-default">{language.wpanel.widgets.button_group.middle}</button>\r\n            <button type=button class="btn btn-default" style=border-top-left-radius:0;border-bottom-left-radius:0>{language.wpanel.widgets.button_group.right}</button>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Button Toolbar--\x3e\r\n    <div id=ButtonToolbarWidget>\r\n        <div class="_1content widget-button-toolbar">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 85.4 54.3"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=37.3 width=85.3 height=2.55 style=fill:#e2e2e2 /><rect y=44.9 width=85.3 height=2.55 style=fill:#e2e2e2 /><rect y=51.7 width=69.4 height=2.55 style=fill:#e2e2e2 /><path d=M5.5,0H27.6a0,0,0,0,1,0,0V29.4a0,0,0,0,1,0,0H5.5A5.5,5.5,0,0,1,0,23.8V5.5A5.5,5.5,0,0,1,5.5,0Z style=fill:#b7b7b7 /><rect x=28.9 width=27.6 height=29.38 style=fill:#b7b7b7 /><path d=M57.7,0H79.6a5.7,5.7,0,0,1,5.7,5.7V23.6a5.7,5.7,0,0,1-5.7,5.7H57.7a0,0,0,0,1,0,0V0A0,0,0,0,1,57.7,0Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.button_toolbar.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=ButtonToolbarWidgetContent>\r\n        <div class=button-toolbar style="">\r\n            <div class=btn-toolbar role=toolbar aria-label="Toolbar with button groups" style="">\r\n                <div class=btn-group role=group aria-label="First group"><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description1}</button><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description2}</button><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description3}</button><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description4}</button></div>\r\n                <div class=btn-group role=group aria-label="Second group"><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description5}</button><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description6}</button><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description7}</button></div>\r\n                <div class=btn-group role=group aria-label="Third group"><button type=button class="btn btn-default">{language.wpanel.widgets.button_toolbar.description8}</button></div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Input Field--\x3e\r\n    <div id=InputFieldWidget>\r\n        <div class="_1content widget-input-field">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 72.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=41.3 width=87.9 height=31.08 rx=9.1 style=fill:#dedede /><rect x=16.4 y=28.1 width=2.8 height=26.45 style=fill:#b7b7b7 /><rect x=7.9 y=24.5 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /><rect x=7.9 y=54.6 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.input_field.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=InputFieldWidgetContent>\r\n        <div class=input-field-container f-role="">\r\n            <div class=input-field style="">\r\n                <input type=text class=form-control placeholder="Text input" style="">\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Text Area--\x3e\r\n    <div id=TextAreaWidget>\r\n        <div class="_1content widget-text-area">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 83 83"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=83 height=83.02 rx=7.3 style=fill:#e2e2e2 /><rect x=21.3 y=17.8 width=2.8 height=26.45 style=fill:#b7b7b7 /><rect x=12.8 y=14.2 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /><rect x=12.8 y=44.3 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /><rect x=42.6 y=18.2 width=35.6 height=2.55 style=fill:#fff /><rect x=42.6 y=27.1 width=35.6 height=2.55 style=fill:#fff /><rect x=7 y=71.4 width=57.9 height=2.55 style=fill:#fff /><rect x=42.6 y=36 width=35.6 height=2.55 style=fill:#fff /><rect x=42.6 y=44.8 width=35.6 height=2.55 style=fill:#fff /><rect x=7 y=53.7 width=71.2 height=2.55 style=fill:#fff /><rect x=7 y=62.5 width=71.2 height=2.55 style=fill:#fff /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.text_area.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=TextAreaWidgetContent>\r\n        <div class=text-area-container f-role="">\r\n            <div class=text-area style="">\r\n                <textarea class=form-control rows=3 cols=50></textarea>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Checkbox--\x3e\r\n    <div id=CheckboxWidget>\r\n        <div class="_1content widget-checkbox">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-checkbox} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.checkbox.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=CheckboxWidgetContent>\r\n        <div class=checkbox-container f-role="">\r\n            <div class=checkbox>\r\n                <label><input type=checkbox>{language.wpanel.widgets.checkbox.description}</label>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Input Group--\x3e\r\n    <div id=InputGroupWidget>\r\n        <div class="_1content widget-input-group">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 72.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=41.3 width=87.9 height=31.08 rx=9.1 style=fill:#f2f2f2 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.6 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=14.4 width=72.9 height=2.55 style=fill:#e2e2e2 /><path d=M9.1,41.3H39a0,0,0,0,1,0,0V72.4a0,0,0,0,1,0,0H9.1A9.1,9.1,0,0,1,0,63.3V50.5A9.1,9.1,0,0,1,9.1,41.3Z style=fill:#dedede /><rect x=16.4 y=28.1 width=2.8 height=26.45 style=fill:#b7b7b7 /><rect x=7.9 y=24.5 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /><rect x=7.9 y=54.6 width=19.8 height=3.61 rx=1.2 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.input_group.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=InputGroupWidgetContent>\r\n        <div class=input-group-container f-role="">\r\n            <div class=form-group style="">\r\n                <div class=input-group>\r\n                    <div class=input-group-addon>{language.wpanel.widgets.input_group.description}</div>\r\n                    <input class=form-control type=email placeholder="Enter email">\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Form Group--\x3e\r\n    <div id=FormGroupWidget>\r\n        <div class="_1content widget-form-group">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 92.7 71.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect x=1.2 y=5.5 width=48.9 height=7.28 style=fill:#b7b7b7 /><rect y=20.8 width=87.9 height=31.08 rx=9.1 style=fill:#f2f2f2 /><path d=M58,20.8H87.9a0,0,0,0,1,0,0V51.9a0,0,0,0,1,0,0H58a9.1,9.1,0,0,1-9.1-9.1V29.9A9.1,9.1,0,0,1,58,20.8Z transform="translate(136.8 72.6) rotate(-180)" style=fill:#dedede /><path d=M69.3,41.7l4.4-7.6a1,1,0,0,0-.9-1.5H63.9a1,1,0,0,0-.8,1.5l4.4,7.6A1,1,0,0,0,69.3,41.7Z style=fill:#b7b7b7 /><rect x=3 y=59.9 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect x=3 y=68.9 width=72.9 height=2.55 style=fill:#e2e2e2 /><polygon points="63.2 0 64.9 3.3 68.6 3.9 65.9 6.5 66.5 10.2 63.2 8.4 59.9 10.2 60.5 6.5 57.9 3.9 61.6 3.3 63.2 0" style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.form_group.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=FormGroupWidgetContent>\r\n        <div class=form-group-container f-role="">\r\n            <div class=form-group>\r\n                <label for=email class=control-label>Email address</label>\r\n                <input type=email class=form-control id=email placeholder="Enter email">\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Select--\x3e\r\n    <div id=SelectWidget>\r\n        <div class="_1content widget-select">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 89.6 72.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect y=41.3 width=87.9 height=31.08 rx=9.1 style=fill:#f2f2f2 /><rect width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=7.8 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=15.7 width=89.6 height=2.55 style=fill:#e2e2e2 /><rect y=23.5 width=72.9 height=2.55 style=fill:#e2e2e2 /><path d=M58,41.3H87.9a0,0,0,0,1,0,0V72.4a0,0,0,0,1,0,0H58a9.1,9.1,0,0,1-9.1-9.1V50.5A9.1,9.1,0,0,1,58,41.3Z transform="translate(136.8 113.8) rotate(-180)" style=fill:#dedede /><path d=M69.3,62.3l4.4-7.7a1,1,0,0,0-.9-1.5H63.9a1,1,0,0,0-.8,1.5l4.4,7.7A1,1,0,0,0,69.3,62.3Z style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.select.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=SelectWidgetContent>\r\n        <div class=select-container f-role="">\r\n            <select class=form-control>\r\n                <option>{language.wpanel.widgets.select.description1}</option>\r\n                <option>{language.wpanel.widgets.select.description2}</option>\r\n                <option>{language.wpanel.widgets.select.description3}</option>\r\n                <option>{language.wpanel.widgets.select.description4}</option>\r\n                <option>{language.wpanel.widgets.select.description5}</option>\r\n            </select>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Form--\x3e\r\n    <div id=FormWidget>\r\n        <div class="_1content widget-form">\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 82.8 75.4"><g id=Layer_2 data-name="Layer 2"><g id=Layer_1-2 data-name="Layer 1"><rect width=82.8 height=75.44 rx=4.8 style=fill:#f2f2f2 /><rect x=12.7 y=13.2 width=55 height=17.51 rx=8.8 style=fill:#fff /><path d=M52.1,13.2H67.7a0,0,0,0,1,0,0V30.7a0,0,0,0,1,0,0H52.1a8.8,8.8,0,0,1-8.8-8.8v0a8.8,8.8,0,0,1,8.8-8.8Z transform="translate(111.1 43.9) rotate(-180)" style=fill:#dedede /><path d=M56.4,24.5l2-3.1a1,1,0,0,0-.8-1.6H53.5a1,1,0,0,0-.8,1.6l2,3.1A1,1,0,0,0,56.4,24.5Z style=fill:#b7b7b7 /><rect x=12.4 y=45.2 width=55.6 height=17.57 rx=8.8 style=fill:#fff /><rect x=22.8 y=37.8 width=1.8 height=14.95 style=fill:#b7b7b7 /><rect x=17.5 y=35.7 width=12.5 height=2.04 rx=1 style=fill:#b7b7b7 /><rect x=17.5 y=52.7 width=12.5 height=2.04 rx=1 style=fill:#b7b7b7 /></g></g></svg>\r\n                    </div>\r\n                </div>\r\n                <div class="body__title body__title--cs ng-binding">{language.wpanel.widgets.form.title}</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div id=FormWidgetContent>\r\n        <div class=form-container f-role="">\r\n            <form accept-charset=UTF-8 action=https://example.com method=POST class=clearfix style="">\r\n                <div class="col-xs-12 form-group">\r\n                    <label class=control-label>{language.wpanel.widgets.form.description1}</label>\r\n                    <input class=form-control size=4 type=text>\r\n                </div>\r\n                <div class="col-xs-12 form-group card required">\r\n                    <label class=control-label>{language.wpanel.widgets.form.description2}</label>\r\n                    <input autocomplete=off class="form-control card-number" size=20 type=text>\r\n                </div>\r\n                <div class="col-xs-12 form-group card required">\r\n                    <label class=control-label>{language.wpanel.widgets.form.description3}</label>\r\n                    <input autocomplete=off class=form-control size=20 type=text>\r\n                </div>\r\n                <div class="col-xs-4 form-group cvc required">\r\n                    <label class=control-label>{language.wpanel.widgets.form.description4}</label>\r\n                    <input autocomplete=off class="form-control card-cvc" placeholder="ex. 311" size=4 type=text>\r\n                </div>\r\n                <div class="col-xs-4 form-group expiration required">\r\n                    <label class=control-label>{language.wpanel.widgets.form.description5}</label>\r\n                    <input class="form-control card-expiry-month" placeholder=MM size=2 type=text>\r\n                </div>\r\n                <div class="col-xs-4 form-group expiration required">\r\n                    <label class=control-label>&nbsp;</label>\r\n                    <input class="form-control card-expiry-year" placeholder=YYYY size=4 type=text>\r\n                </div>\r\n                <div class="col-md-12 form-group">\r\n                    <hr>\r\n                    <button data-style=style_1 class="form-control btn btn-primary submit-button" type=submit> {language.wpanel.widgets.form.description6}</button>\r\n                </div>\r\n            </form>\r\n        </div>\r\n    </div>\r\n\r\n    \x3c!--Custom--\x3e\r\n    <div id=CustomWidget>\r\n        <div class="_1content widget-text" title=[NAME]>\r\n            <div class=panel__body title={language.wpanel.widgets.title.title}>\r\n                <span class=widget-custom-tag><i class={builder-icon-user}></i></span>\r\n                <span class=remove-widget-button><i class={builder-icon-trash-alt}></i></span>\r\n                <div class=image-drag>\r\n                    <div ng-bind-html=::getModuleIcon(module) class=ng-binding>\r\n                        <i class={builder-icon-code} style=font-size:36px;display:inline-block></i>\r\n                    </div>\r\n                </div>\r\n                <div class=body__title>[NAME]</div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n';
  },
  function (e, t, n) {
    var i;
    !(function () {
      var n;
      !(function () {
        "use strict";
        var e = [
            function (e, t, n) {
              var i = n(1).Beautifier,
                r = n(5).Options;
              (e.exports = function (e, t) {
                return new i(e, t).beautify();
              }),
                (e.exports.defaultOptions = function () {
                  return new r();
                });
            },
            function (e, t, n) {
              var i = n(2).Output,
                r = n(3).Token,
                o = n(4),
                s = n(5).Options,
                a = n(7).Tokenizer,
                l = n(7).line_starters,
                c = n(7).positionable_operators,
                d = n(7).TOKEN;

              function u(e, t) {
                return -1 !== t.indexOf(e);
              }

              function h(e, t) {
                return e && e.type === d.RESERVED && e.text === t;
              }

              function g(e, t) {
                return e && e.type === d.RESERVED && u(e.text, t);
              }
              var p = [
                  "case",
                  "return",
                  "do",
                  "if",
                  "throw",
                  "else",
                  "await",
                  "break",
                  "continue",
                  "async",
                ],
                A = (function (e) {
                  for (var t = {}, n = 0; n < e.length; n++)
                    t[e[n].replace(/-/g, "_")] = e[n];
                  return t;
                })(["before-newline", "after-newline", "preserve-newline"]),
                f = [A.before_newline, A.preserve_newline],
                m = "BlockStatement",
                v = "Statement",
                b = "ObjectLiteral",
                w = "ArrayLiteral",
                y = "ForInitializer",
                x = "Conditional",
                C = "Expression";

              function k(e, t) {
                t.multiline_frame ||
                  t.mode === y ||
                  t.mode === x ||
                  e.remove_indent(t.start_line_index);
              }

              function _(e) {
                return e === w;
              }

              function I(e) {
                return u(e, [C, y, x]);
              }

              function E(e, t) {
                (t = t || {}),
                  (this._source_text = e || ""),
                  (this._output = null),
                  (this._tokens = null),
                  (this._last_last_text = null),
                  (this._flags = null),
                  (this._previous_flags = null),
                  (this._flag_store = null),
                  (this._options = new s(t));
              }
              (E.prototype.create_flags = function (e, t) {
                var n = 0;
                return (
                  e &&
                    ((n = e.indentation_level),
                    !this._output.just_added_newline() &&
                      e.line_indent_level > n &&
                      (n = e.line_indent_level)),
                  {
                    mode: t,
                    parent: e,
                    last_token: e ? e.last_token : new r(d.START_BLOCK, ""),
                    last_word: e ? e.last_word : "",
                    declaration_statement: !1,
                    declaration_assignment: !1,
                    multiline_frame: !1,
                    inline_frame: !1,
                    if_block: !1,
                    else_block: !1,
                    do_block: !1,
                    do_while: !1,
                    import_block: !1,
                    in_case_statement: !1,
                    in_case: !1,
                    case_body: !1,
                    indentation_level: n,
                    alignment: 0,
                    line_indent_level: e ? e.line_indent_level : n,
                    start_line_index: this._output.get_line_number(),
                    ternary_depth: 0,
                  }
                );
              }),
                (E.prototype._reset = function (e) {
                  var t = e.match(/^[\t ]*/)[0];
                  (this._last_last_text = ""),
                    (this._output = new i(this._options, t)),
                    (this._output.raw = this._options.test_output_raw),
                    (this._flag_store = []),
                    this.set_mode(m);
                  var n = new a(e, this._options);
                  return (this._tokens = n.tokenize()), e;
                }),
                (E.prototype.beautify = function () {
                  if (this._options.disabled) return this._source_text;
                  var e = this._reset(this._source_text),
                    t = this._options.eol;
                  "auto" === this._options.eol &&
                    ((t = "\n"),
                    e &&
                      o.lineBreak.test(e || "") &&
                      (t = e.match(o.lineBreak)[0]));
                  for (var n = this._tokens.next(); n; )
                    this.handle_token(n),
                      (this._last_last_text = this._flags.last_token.text),
                      (this._flags.last_token = n),
                      (n = this._tokens.next());
                  return this._output.get_code(t);
                }),
                (E.prototype.handle_token = function (e, t) {
                  e.type === d.START_EXPR
                    ? this.handle_start_expr(e)
                    : e.type === d.END_EXPR
                    ? this.handle_end_expr(e)
                    : e.type === d.START_BLOCK
                    ? this.handle_start_block(e)
                    : e.type === d.END_BLOCK
                    ? this.handle_end_block(e)
                    : e.type === d.WORD || e.type === d.RESERVED
                    ? this.handle_word(e)
                    : e.type === d.SEMICOLON
                    ? this.handle_semicolon(e)
                    : e.type === d.STRING
                    ? this.handle_string(e)
                    : e.type === d.EQUALS
                    ? this.handle_equals(e)
                    : e.type === d.OPERATOR
                    ? this.handle_operator(e)
                    : e.type === d.COMMA
                    ? this.handle_comma(e)
                    : e.type === d.BLOCK_COMMENT
                    ? this.handle_block_comment(e, t)
                    : e.type === d.COMMENT
                    ? this.handle_comment(e, t)
                    : e.type === d.DOT
                    ? this.handle_dot(e)
                    : e.type === d.EOF
                    ? this.handle_eof(e)
                    : (e.type, d.UNKNOWN, this.handle_unknown(e, t));
                }),
                (E.prototype.handle_whitespace_and_comments = function (e, t) {
                  var n = e.newlines,
                    i =
                      this._options.keep_array_indentation &&
                      _(this._flags.mode);
                  if (e.comments_before)
                    for (var r = e.comments_before.next(); r; )
                      this.handle_whitespace_and_comments(r, t),
                        this.handle_token(r, t),
                        (r = e.comments_before.next());
                  if (i)
                    for (var o = 0; o < n; o += 1) this.print_newline(o > 0, t);
                  else if (
                    (this._options.max_preserve_newlines &&
                      n > this._options.max_preserve_newlines &&
                      (n = this._options.max_preserve_newlines),
                    this._options.preserve_newlines && n > 1)
                  ) {
                    this.print_newline(!1, t);
                    for (var s = 1; s < n; s += 1) this.print_newline(!0, t);
                  }
                });
              var T = [
                "async",
                "break",
                "continue",
                "return",
                "throw",
                "yield",
              ];
              (E.prototype.allow_wrap_or_preserved_newline = function (e, t) {
                if (
                  ((t = void 0 !== t && t), !this._output.just_added_newline())
                ) {
                  var n = (this._options.preserve_newlines && e.newlines) || t;
                  if (u(this._flags.last_token.text, c) || u(e.text, c)) {
                    var i =
                      (u(this._flags.last_token.text, c) &&
                        u(this._options.operator_position, f)) ||
                      u(e.text, c);
                    n = n && i;
                  }
                  if (n) this.print_newline(!1, !0);
                  else if (this._options.wrap_line_length) {
                    if (g(this._flags.last_token, T)) return;
                    this._output.set_wrap_point();
                  }
                }
              }),
                (E.prototype.print_newline = function (e, t) {
                  if (
                    !t &&
                    ";" !== this._flags.last_token.text &&
                    "," !== this._flags.last_token.text &&
                    "=" !== this._flags.last_token.text &&
                    (this._flags.last_token.type !== d.OPERATOR ||
                      "--" === this._flags.last_token.text ||
                      "++" === this._flags.last_token.text)
                  )
                    for (
                      var n = this._tokens.peek();
                      !(
                        this._flags.mode !== v ||
                        (this._flags.if_block && h(n, "else")) ||
                        this._flags.do_block
                      );

                    )
                      this.restore_mode();
                  this._output.add_new_line(e) &&
                    (this._flags.multiline_frame = !0);
                }),
                (E.prototype.print_token_line_indentation = function (e) {
                  this._output.just_added_newline() &&
                    (this._options.keep_array_indentation &&
                    e.newlines &&
                    ("[" === e.text || _(this._flags.mode))
                      ? (this._output.current_line.set_indent(-1),
                        this._output.current_line.push(e.whitespace_before),
                        (this._output.space_before_token = !1))
                      : this._output.set_indent(
                          this._flags.indentation_level,
                          this._flags.alignment
                        ) &&
                        (this._flags.line_indent_level =
                          this._flags.indentation_level));
                }),
                (E.prototype.print_token = function (e) {
                  if (this._output.raw) this._output.add_raw_token(e);
                  else {
                    if (
                      this._options.comma_first &&
                      e.previous &&
                      e.previous.type === d.COMMA &&
                      this._output.just_added_newline() &&
                      "," === this._output.previous_line.last()
                    ) {
                      var t = this._output.previous_line.pop();
                      this._output.previous_line.is_empty() &&
                        (this._output.previous_line.push(t),
                        this._output.trim(!0),
                        this._output.current_line.pop(),
                        this._output.trim()),
                        this.print_token_line_indentation(e),
                        this._output.add_token(","),
                        (this._output.space_before_token = !0);
                    }
                    this.print_token_line_indentation(e),
                      (this._output.non_breaking_space = !0),
                      this._output.add_token(e.text),
                      this._output.previous_token_wrapped &&
                        (this._flags.multiline_frame = !0);
                  }
                }),
                (E.prototype.indent = function () {
                  (this._flags.indentation_level += 1),
                    this._output.set_indent(
                      this._flags.indentation_level,
                      this._flags.alignment
                    );
                }),
                (E.prototype.deindent = function () {
                  this._flags.indentation_level > 0 &&
                    (!this._flags.parent ||
                      this._flags.indentation_level >
                        this._flags.parent.indentation_level) &&
                    ((this._flags.indentation_level -= 1),
                    this._output.set_indent(
                      this._flags.indentation_level,
                      this._flags.alignment
                    ));
                }),
                (E.prototype.set_mode = function (e) {
                  this._flags
                    ? (this._flag_store.push(this._flags),
                      (this._previous_flags = this._flags))
                    : (this._previous_flags = this.create_flags(null, e)),
                    (this._flags = this.create_flags(this._previous_flags, e)),
                    this._output.set_indent(
                      this._flags.indentation_level,
                      this._flags.alignment
                    );
                }),
                (E.prototype.restore_mode = function () {
                  this._flag_store.length > 0 &&
                    ((this._previous_flags = this._flags),
                    (this._flags = this._flag_store.pop()),
                    this._previous_flags.mode === v &&
                      k(this._output, this._previous_flags),
                    this._output.set_indent(
                      this._flags.indentation_level,
                      this._flags.alignment
                    ));
                }),
                (E.prototype.start_of_object_property = function () {
                  return (
                    this._flags.parent.mode === b &&
                    this._flags.mode === v &&
                    ((":" === this._flags.last_token.text &&
                      0 === this._flags.ternary_depth) ||
                      g(this._flags.last_token, ["get", "set"]))
                  );
                }),
                (E.prototype.start_of_statement = function (e) {
                  var t = !1;
                  return (
                    !!(t =
                      (t =
                        (t =
                          (t =
                            (t =
                              (t =
                                (t =
                                  t ||
                                  (g(this._flags.last_token, [
                                    "var",
                                    "let",
                                    "const",
                                  ]) &&
                                    e.type === d.WORD)) ||
                                h(this._flags.last_token, "do")) ||
                              (!(
                                this._flags.parent.mode === b &&
                                this._flags.mode === v
                              ) &&
                                g(this._flags.last_token, T) &&
                                !e.newlines)) ||
                            (h(this._flags.last_token, "else") &&
                              !(h(e, "if") && !e.comments_before))) ||
                          (this._flags.last_token.type === d.END_EXPR &&
                            (this._previous_flags.mode === y ||
                              this._previous_flags.mode === x))) ||
                        (this._flags.last_token.type === d.WORD &&
                          this._flags.mode === m &&
                          !this._flags.in_case &&
                          !("--" === e.text || "++" === e.text) &&
                          "function" !== this._last_last_text &&
                          e.type !== d.WORD &&
                          e.type !== d.RESERVED)) ||
                      (this._flags.mode === b &&
                        ((":" === this._flags.last_token.text &&
                          0 === this._flags.ternary_depth) ||
                          g(this._flags.last_token, ["get", "set"])))) &&
                    (this.set_mode(v),
                    this.indent(),
                    this.handle_whitespace_and_comments(e, !0),
                    this.start_of_object_property() ||
                      this.allow_wrap_or_preserved_newline(
                        e,
                        g(e, ["do", "for", "if", "while"])
                      ),
                    !0)
                  );
                }),
                (E.prototype.handle_start_expr = function (e) {
                  this.start_of_statement(e) ||
                    this.handle_whitespace_and_comments(e);
                  var t = C;
                  if ("[" === e.text) {
                    if (
                      this._flags.last_token.type === d.WORD ||
                      ")" === this._flags.last_token.text
                    )
                      return (
                        g(this._flags.last_token, l) &&
                          (this._output.space_before_token = !0),
                        this.print_token(e),
                        this.set_mode(t),
                        this.indent(),
                        void (
                          this._options.space_in_paren &&
                          (this._output.space_before_token = !0)
                        )
                      );
                    (t = w),
                      _(this._flags.mode) &&
                        (("[" !== this._flags.last_token.text &&
                          ("," !== this._flags.last_token.text ||
                            ("]" !== this._last_last_text &&
                              "}" !== this._last_last_text))) ||
                          this._options.keep_array_indentation ||
                          this.print_newline()),
                      u(this._flags.last_token.type, [
                        d.START_EXPR,
                        d.END_EXPR,
                        d.WORD,
                        d.OPERATOR,
                        d.DOT,
                      ]) || (this._output.space_before_token = !0);
                  } else {
                    if (this._flags.last_token.type === d.RESERVED)
                      "for" === this._flags.last_token.text
                        ? ((this._output.space_before_token =
                            this._options.space_before_conditional),
                          (t = y))
                        : u(this._flags.last_token.text, [
                            "if",
                            "while",
                            "switch",
                          ])
                        ? ((this._output.space_before_token =
                            this._options.space_before_conditional),
                          (t = x))
                        : u(this._flags.last_word, ["await", "async"])
                        ? (this._output.space_before_token = !0)
                        : "import" === this._flags.last_token.text &&
                          "" === e.whitespace_before
                        ? (this._output.space_before_token = !1)
                        : (u(this._flags.last_token.text, l) ||
                            "catch" === this._flags.last_token.text) &&
                          (this._output.space_before_token = !0);
                    else if (
                      this._flags.last_token.type === d.EQUALS ||
                      this._flags.last_token.type === d.OPERATOR
                    )
                      this.start_of_object_property() ||
                        this.allow_wrap_or_preserved_newline(e);
                    else if (this._flags.last_token.type === d.WORD) {
                      this._output.space_before_token = !1;
                      var n = this._tokens.peek(-3);
                      if (this._options.space_after_named_function && n) {
                        var i = this._tokens.peek(-4);
                        g(n, ["async", "function"]) ||
                        ("*" === n.text && g(i, ["async", "function"]))
                          ? (this._output.space_before_token = !0)
                          : this._flags.mode === b &&
                            (("{" !== n.text &&
                              "," !== n.text &&
                              ("*" !== n.text ||
                                ("{" !== i.text && "," !== i.text))) ||
                              (this._output.space_before_token = !0));
                      }
                    } else this.allow_wrap_or_preserved_newline(e);
                    ((this._flags.last_token.type === d.RESERVED &&
                      ("function" === this._flags.last_word ||
                        "typeof" === this._flags.last_word)) ||
                      ("*" === this._flags.last_token.text &&
                        (u(this._last_last_text, ["function", "yield"]) ||
                          (this._flags.mode === b &&
                            u(this._last_last_text, ["{", ","]))))) &&
                      (this._output.space_before_token =
                        this._options.space_after_anon_function);
                  }
                  ";" === this._flags.last_token.text ||
                  this._flags.last_token.type === d.START_BLOCK
                    ? this.print_newline()
                    : (this._flags.last_token.type !== d.END_EXPR &&
                        this._flags.last_token.type !== d.START_EXPR &&
                        this._flags.last_token.type !== d.END_BLOCK &&
                        "." !== this._flags.last_token.text &&
                        this._flags.last_token.type !== d.COMMA) ||
                      this.allow_wrap_or_preserved_newline(e, e.newlines),
                    this.print_token(e),
                    this.set_mode(t),
                    this._options.space_in_paren &&
                      (this._output.space_before_token = !0),
                    this.indent();
                }),
                (E.prototype.handle_end_expr = function (e) {
                  for (; this._flags.mode === v; ) this.restore_mode();
                  this.handle_whitespace_and_comments(e),
                    this._flags.multiline_frame &&
                      this.allow_wrap_or_preserved_newline(
                        e,
                        "]" === e.text &&
                          _(this._flags.mode) &&
                          !this._options.keep_array_indentation
                      ),
                    this._options.space_in_paren &&
                      (this._flags.last_token.type !== d.START_EXPR ||
                      this._options.space_in_empty_paren
                        ? (this._output.space_before_token = !0)
                        : (this._output.trim(),
                          (this._output.space_before_token = !1))),
                    this.deindent(),
                    this.print_token(e),
                    this.restore_mode(),
                    k(this._output, this._previous_flags),
                    this._flags.do_while &&
                      this._previous_flags.mode === x &&
                      ((this._previous_flags.mode = C),
                      (this._flags.do_block = !1),
                      (this._flags.do_while = !1));
                }),
                (E.prototype.handle_start_block = function (e) {
                  this.handle_whitespace_and_comments(e);
                  var t = this._tokens.peek(),
                    n = this._tokens.peek(1);
                  "switch" === this._flags.last_word &&
                  this._flags.last_token.type === d.END_EXPR
                    ? (this.set_mode(m), (this._flags.in_case_statement = !0))
                    : this._flags.case_body
                    ? this.set_mode(m)
                    : n &&
                      ((u(n.text, [":", ","]) &&
                        u(t.type, [d.STRING, d.WORD, d.RESERVED])) ||
                        (u(t.text, ["get", "set", "..."]) &&
                          u(n.type, [d.WORD, d.RESERVED])))
                    ? u(this._last_last_text, ["class", "interface"])
                      ? this.set_mode(m)
                      : this.set_mode(b)
                    : this._flags.last_token.type === d.OPERATOR &&
                      "=>" === this._flags.last_token.text
                    ? this.set_mode(m)
                    : u(this._flags.last_token.type, [
                        d.EQUALS,
                        d.START_EXPR,
                        d.COMMA,
                        d.OPERATOR,
                      ]) ||
                      g(this._flags.last_token, [
                        "return",
                        "throw",
                        "import",
                        "default",
                      ])
                    ? this.set_mode(b)
                    : this.set_mode(m);
                  var i = !t.comments_before && "}" === t.text,
                    r =
                      i &&
                      "function" === this._flags.last_word &&
                      this._flags.last_token.type === d.END_EXPR;
                  if (this._options.brace_preserve_inline) {
                    var o = 0,
                      s = null;
                    this._flags.inline_frame = !0;
                    do {
                      if (((o += 1), (s = this._tokens.peek(o - 1)).newlines)) {
                        this._flags.inline_frame = !1;
                        break;
                      }
                    } while (
                      s.type !== d.EOF &&
                      (s.type !== d.END_BLOCK || s.opened !== e)
                    );
                  }
                  ("expand" === this._options.brace_style ||
                    ("none" === this._options.brace_style && e.newlines)) &&
                  !this._flags.inline_frame
                    ? this._flags.last_token.type !== d.OPERATOR &&
                      (r ||
                        this._flags.last_token.type === d.EQUALS ||
                        (g(this._flags.last_token, p) &&
                          "else" !== this._flags.last_token.text))
                      ? (this._output.space_before_token = !0)
                      : this.print_newline(!1, !0)
                    : (!_(this._previous_flags.mode) ||
                        (this._flags.last_token.type !== d.START_EXPR &&
                          this._flags.last_token.type !== d.COMMA) ||
                        ((this._flags.last_token.type === d.COMMA ||
                          this._options.space_in_paren) &&
                          (this._output.space_before_token = !0),
                        (this._flags.last_token.type === d.COMMA ||
                          (this._flags.last_token.type === d.START_EXPR &&
                            this._flags.inline_frame)) &&
                          (this.allow_wrap_or_preserved_newline(e),
                          (this._previous_flags.multiline_frame =
                            this._previous_flags.multiline_frame ||
                            this._flags.multiline_frame),
                          (this._flags.multiline_frame = !1))),
                      this._flags.last_token.type !== d.OPERATOR &&
                        this._flags.last_token.type !== d.START_EXPR &&
                        (this._flags.last_token.type !== d.START_BLOCK ||
                        this._flags.inline_frame
                          ? (this._output.space_before_token = !0)
                          : this.print_newline())),
                    this.print_token(e),
                    this.indent(),
                    i ||
                      (this._options.brace_preserve_inline &&
                        this._flags.inline_frame) ||
                      this.print_newline();
                }),
                (E.prototype.handle_end_block = function (e) {
                  for (
                    this.handle_whitespace_and_comments(e);
                    this._flags.mode === v;

                  )
                    this.restore_mode();
                  var t = this._flags.last_token.type === d.START_BLOCK;
                  this._flags.inline_frame && !t
                    ? (this._output.space_before_token = !0)
                    : "expand" === this._options.brace_style
                    ? t || this.print_newline()
                    : t ||
                      (_(this._flags.mode) &&
                      this._options.keep_array_indentation
                        ? ((this._options.keep_array_indentation = !1),
                          this.print_newline(),
                          (this._options.keep_array_indentation = !0))
                        : this.print_newline()),
                    this.restore_mode(),
                    this.print_token(e);
                }),
                (E.prototype.handle_word = function (e) {
                  if (e.type === d.RESERVED)
                    if (u(e.text, ["set", "get"]) && this._flags.mode !== b)
                      e.type = d.WORD;
                    else if (
                      "import" === e.text &&
                      "(" === this._tokens.peek().text
                    )
                      e.type = d.WORD;
                    else if (
                      u(e.text, ["as", "from"]) &&
                      !this._flags.import_block
                    )
                      e.type = d.WORD;
                    else if (this._flags.mode === b) {
                      ":" === this._tokens.peek().text && (e.type = d.WORD);
                    }
                  if (
                    (this.start_of_statement(e)
                      ? g(this._flags.last_token, ["var", "let", "const"]) &&
                        e.type === d.WORD &&
                        (this._flags.declaration_statement = !0)
                      : !e.newlines ||
                        I(this._flags.mode) ||
                        (this._flags.last_token.type === d.OPERATOR &&
                          "--" !== this._flags.last_token.text &&
                          "++" !== this._flags.last_token.text) ||
                        this._flags.last_token.type === d.EQUALS ||
                        (!this._options.preserve_newlines &&
                          g(this._flags.last_token, [
                            "var",
                            "let",
                            "const",
                            "set",
                            "get",
                          ]))
                      ? this.handle_whitespace_and_comments(e)
                      : (this.handle_whitespace_and_comments(e),
                        this.print_newline()),
                    this._flags.do_block && !this._flags.do_while)
                  ) {
                    if (h(e, "while"))
                      return (
                        (this._output.space_before_token = !0),
                        this.print_token(e),
                        (this._output.space_before_token = !0),
                        void (this._flags.do_while = !0)
                      );
                    this.print_newline(), (this._flags.do_block = !1);
                  }
                  if (this._flags.if_block)
                    if (!this._flags.else_block && h(e, "else"))
                      this._flags.else_block = !0;
                    else {
                      for (; this._flags.mode === v; ) this.restore_mode();
                      (this._flags.if_block = !1),
                        (this._flags.else_block = !1);
                    }
                  if (
                    this._flags.in_case_statement &&
                    g(e, ["case", "default"])
                  )
                    return (
                      this.print_newline(),
                      this._flags.last_token.type !== d.END_BLOCK &&
                        (this._flags.case_body || this._options.jslint_happy) &&
                        this.deindent(),
                      (this._flags.case_body = !1),
                      this.print_token(e),
                      void (this._flags.in_case = !0)
                    );
                  if (
                    ((this._flags.last_token.type !== d.COMMA &&
                      this._flags.last_token.type !== d.START_EXPR &&
                      this._flags.last_token.type !== d.EQUALS &&
                      this._flags.last_token.type !== d.OPERATOR) ||
                      this.start_of_object_property() ||
                      this.allow_wrap_or_preserved_newline(e),
                    h(e, "function"))
                  )
                    return (
                      (u(this._flags.last_token.text, ["}", ";"]) ||
                        (this._output.just_added_newline() &&
                          !u(this._flags.last_token.text, [
                            "(",
                            "[",
                            "{",
                            ":",
                            "=",
                            ",",
                          ]) &&
                          this._flags.last_token.type !== d.OPERATOR)) &&
                        (this._output.just_added_blankline() ||
                          e.comments_before ||
                          (this.print_newline(), this.print_newline(!0))),
                      this._flags.last_token.type === d.RESERVED ||
                      this._flags.last_token.type === d.WORD
                        ? g(this._flags.last_token, [
                            "get",
                            "set",
                            "new",
                            "export",
                          ]) ||
                          g(this._flags.last_token, T) ||
                          (h(this._flags.last_token, "default") &&
                            "export" === this._last_last_text) ||
                          "declare" === this._flags.last_token.text
                          ? (this._output.space_before_token = !0)
                          : this.print_newline()
                        : this._flags.last_token.type === d.OPERATOR ||
                          "=" === this._flags.last_token.text
                        ? (this._output.space_before_token = !0)
                        : (this._flags.multiline_frame ||
                            (!I(this._flags.mode) && !_(this._flags.mode))) &&
                          this.print_newline(),
                      this.print_token(e),
                      void (this._flags.last_word = e.text)
                    );
                  var t = "NONE";
                  (this._flags.last_token.type === d.END_BLOCK
                    ? this._previous_flags.inline_frame
                      ? (t = "SPACE")
                      : g(e, ["else", "catch", "finally", "from"])
                      ? "expand" === this._options.brace_style ||
                        "end-expand" === this._options.brace_style ||
                        ("none" === this._options.brace_style && e.newlines)
                        ? (t = "NEWLINE")
                        : ((t = "SPACE"),
                          (this._output.space_before_token = !0))
                      : (t = "NEWLINE")
                    : this._flags.last_token.type === d.SEMICOLON &&
                      this._flags.mode === m
                    ? (t = "NEWLINE")
                    : this._flags.last_token.type === d.SEMICOLON &&
                      I(this._flags.mode)
                    ? (t = "SPACE")
                    : this._flags.last_token.type === d.STRING
                    ? (t = "NEWLINE")
                    : this._flags.last_token.type === d.RESERVED ||
                      this._flags.last_token.type === d.WORD ||
                      ("*" === this._flags.last_token.text &&
                        (u(this._last_last_text, ["function", "yield"]) ||
                          (this._flags.mode === b &&
                            u(this._last_last_text, ["{", ","]))))
                    ? (t = "SPACE")
                    : this._flags.last_token.type === d.START_BLOCK
                    ? (t = this._flags.inline_frame ? "SPACE" : "NEWLINE")
                    : this._flags.last_token.type === d.END_EXPR &&
                      ((this._output.space_before_token = !0), (t = "NEWLINE")),
                  g(e, l) &&
                    ")" !== this._flags.last_token.text &&
                    (t =
                      this._flags.inline_frame ||
                      "else" === this._flags.last_token.text ||
                      "export" === this._flags.last_token.text
                        ? "SPACE"
                        : "NEWLINE"),
                  g(e, ["else", "catch", "finally"]))
                    ? (this._flags.last_token.type !== d.END_BLOCK ||
                        this._previous_flags.mode !== m ||
                        "expand" === this._options.brace_style ||
                        "end-expand" === this._options.brace_style ||
                        ("none" === this._options.brace_style && e.newlines)) &&
                      !this._flags.inline_frame
                      ? this.print_newline()
                      : (this._output.trim(!0),
                        "}" !== this._output.current_line.last() &&
                          this.print_newline(),
                        (this._output.space_before_token = !0))
                    : "NEWLINE" === t
                    ? g(this._flags.last_token, p) ||
                      ("declare" === this._flags.last_token.text &&
                        g(e, ["var", "let", "const"]))
                      ? (this._output.space_before_token = !0)
                      : this._flags.last_token.type !== d.END_EXPR
                      ? (this._flags.last_token.type === d.START_EXPR &&
                          g(e, ["var", "let", "const"])) ||
                        ":" === this._flags.last_token.text ||
                        (h(e, "if") && h(e.previous, "else")
                          ? (this._output.space_before_token = !0)
                          : this.print_newline())
                      : g(e, l) &&
                        ")" !== this._flags.last_token.text &&
                        this.print_newline()
                    : this._flags.multiline_frame &&
                      _(this._flags.mode) &&
                      "," === this._flags.last_token.text &&
                      "}" === this._last_last_text
                    ? this.print_newline()
                    : "SPACE" === t && (this._output.space_before_token = !0);
                  !e.previous ||
                    (e.previous.type !== d.WORD &&
                      e.previous.type !== d.RESERVED) ||
                    (this._output.space_before_token = !0),
                    this.print_token(e),
                    (this._flags.last_word = e.text),
                    e.type === d.RESERVED &&
                      ("do" === e.text
                        ? (this._flags.do_block = !0)
                        : "if" === e.text
                        ? (this._flags.if_block = !0)
                        : "import" === e.text
                        ? (this._flags.import_block = !0)
                        : this._flags.import_block &&
                          h(e, "from") &&
                          (this._flags.import_block = !1));
                }),
                (E.prototype.handle_semicolon = function (e) {
                  this.start_of_statement(e)
                    ? (this._output.space_before_token = !1)
                    : this.handle_whitespace_and_comments(e);
                  for (
                    var t = this._tokens.peek();
                    !(
                      this._flags.mode !== v ||
                      (this._flags.if_block && h(t, "else")) ||
                      this._flags.do_block
                    );

                  )
                    this.restore_mode();
                  this._flags.import_block && (this._flags.import_block = !1),
                    this.print_token(e);
                }),
                (E.prototype.handle_string = function (e) {
                  (!e.text.startsWith("`") ||
                    0 !== e.newlines ||
                    "" !== e.whitespace_before ||
                    (")" !== e.previous.text &&
                      this._flags.last_token.type !== d.WORD)) &&
                    (this.start_of_statement(e)
                      ? (this._output.space_before_token = !0)
                      : (this.handle_whitespace_and_comments(e),
                        this._flags.last_token.type === d.RESERVED ||
                        this._flags.last_token.type === d.WORD ||
                        this._flags.inline_frame
                          ? (this._output.space_before_token = !0)
                          : this._flags.last_token.type === d.COMMA ||
                            this._flags.last_token.type === d.START_EXPR ||
                            this._flags.last_token.type === d.EQUALS ||
                            this._flags.last_token.type === d.OPERATOR
                          ? this.start_of_object_property() ||
                            this.allow_wrap_or_preserved_newline(e)
                          : !e.text.startsWith("`") ||
                            this._flags.last_token.type !== d.END_EXPR ||
                            ("]" !== e.previous.text &&
                              ")" !== e.previous.text) ||
                            0 !== e.newlines
                          ? this.print_newline()
                          : (this._output.space_before_token = !0))),
                    this.print_token(e);
                }),
                (E.prototype.handle_equals = function (e) {
                  this.start_of_statement(e) ||
                    this.handle_whitespace_and_comments(e),
                    this._flags.declaration_statement &&
                      (this._flags.declaration_assignment = !0),
                    (this._output.space_before_token = !0),
                    this.print_token(e),
                    (this._output.space_before_token = !0);
                }),
                (E.prototype.handle_comma = function (e) {
                  this.handle_whitespace_and_comments(e, !0),
                    this.print_token(e),
                    (this._output.space_before_token = !0),
                    this._flags.declaration_statement
                      ? (I(this._flags.parent.mode) &&
                          (this._flags.declaration_assignment = !1),
                        this._flags.declaration_assignment
                          ? ((this._flags.declaration_assignment = !1),
                            this.print_newline(!1, !0))
                          : this._options.comma_first &&
                            this.allow_wrap_or_preserved_newline(e))
                      : this._flags.mode === b ||
                        (this._flags.mode === v &&
                          this._flags.parent.mode === b)
                      ? (this._flags.mode === v && this.restore_mode(),
                        this._flags.inline_frame || this.print_newline())
                      : this._options.comma_first &&
                        this.allow_wrap_or_preserved_newline(e);
                }),
                (E.prototype.handle_operator = function (e) {
                  var t =
                      "*" === e.text &&
                      (g(this._flags.last_token, ["function", "yield"]) ||
                        u(this._flags.last_token.type, [
                          d.START_BLOCK,
                          d.COMMA,
                          d.END_BLOCK,
                          d.SEMICOLON,
                        ])),
                    n =
                      u(e.text, ["-", "+"]) &&
                      (u(this._flags.last_token.type, [
                        d.START_BLOCK,
                        d.START_EXPR,
                        d.EQUALS,
                        d.OPERATOR,
                      ]) ||
                        u(this._flags.last_token.text, l) ||
                        "," === this._flags.last_token.text);
                  if (this.start_of_statement(e));
                  else {
                    var i = !t;
                    this.handle_whitespace_and_comments(e, i);
                  }
                  if (g(this._flags.last_token, p))
                    return (
                      (this._output.space_before_token = !0),
                      void this.print_token(e)
                    );
                  if ("*" !== e.text || this._flags.last_token.type !== d.DOT)
                    if ("::" !== e.text) {
                      if (
                        (this._flags.last_token.type === d.OPERATOR &&
                          u(this._options.operator_position, f) &&
                          this.allow_wrap_or_preserved_newline(e),
                        ":" === e.text && this._flags.in_case)
                      )
                        return (
                          this.print_token(e),
                          (this._flags.in_case = !1),
                          (this._flags.case_body = !0),
                          void (this._tokens.peek().type !== d.START_BLOCK
                            ? (this.indent(), this.print_newline())
                            : (this._output.space_before_token = !0))
                        );
                      var r = !0,
                        o = !0,
                        s = !1;
                      if (
                        (":" === e.text
                          ? 0 === this._flags.ternary_depth
                            ? (r = !1)
                            : ((this._flags.ternary_depth -= 1), (s = !0))
                          : "?" === e.text && (this._flags.ternary_depth += 1),
                        !n &&
                          !t &&
                          this._options.preserve_newlines &&
                          u(e.text, c))
                      ) {
                        var a = ":" === e.text,
                          h = a && s,
                          b = a && !s;
                        switch (this._options.operator_position) {
                          case A.before_newline:
                            return (
                              (this._output.space_before_token = !b),
                              this.print_token(e),
                              (a && !h) ||
                                this.allow_wrap_or_preserved_newline(e),
                              void (this._output.space_before_token = !0)
                            );
                          case A.after_newline:
                            return (
                              (this._output.space_before_token = !0),
                              !a || h
                                ? this._tokens.peek().newlines
                                  ? this.print_newline(!1, !0)
                                  : this.allow_wrap_or_preserved_newline(e)
                                : (this._output.space_before_token = !1),
                              this.print_token(e),
                              void (this._output.space_before_token = !0)
                            );
                          case A.preserve_newline:
                            return (
                              b || this.allow_wrap_or_preserved_newline(e),
                              (r = !(this._output.just_added_newline() || b)),
                              (this._output.space_before_token = r),
                              this.print_token(e),
                              void (this._output.space_before_token = !0)
                            );
                        }
                      }
                      if (t) {
                        this.allow_wrap_or_preserved_newline(e), (r = !1);
                        var w = this._tokens.peek();
                        o = w && u(w.type, [d.WORD, d.RESERVED]);
                      } else
                        "..." === e.text
                          ? (this.allow_wrap_or_preserved_newline(e),
                            (r = this._flags.last_token.type === d.START_BLOCK),
                            (o = !1))
                          : (u(e.text, ["--", "++", "!", "~"]) || n) &&
                            ((this._flags.last_token.type !== d.COMMA &&
                              this._flags.last_token.type !== d.START_EXPR) ||
                              this.allow_wrap_or_preserved_newline(e),
                            (r = !1),
                            (o = !1),
                            !e.newlines ||
                              ("--" !== e.text && "++" !== e.text) ||
                              this.print_newline(!1, !0),
                            ";" === this._flags.last_token.text &&
                              I(this._flags.mode) &&
                              (r = !0),
                            this._flags.last_token.type === d.RESERVED
                              ? (r = !0)
                              : this._flags.last_token.type === d.END_EXPR
                              ? (r = !(
                                  "]" === this._flags.last_token.text &&
                                  ("--" === e.text || "++" === e.text)
                                ))
                              : this._flags.last_token.type === d.OPERATOR &&
                                ((r =
                                  u(e.text, ["--", "-", "++", "+"]) &&
                                  u(this._flags.last_token.text, [
                                    "--",
                                    "-",
                                    "++",
                                    "+",
                                  ])),
                                u(e.text, ["+", "-"]) &&
                                  u(this._flags.last_token.text, [
                                    "--",
                                    "++",
                                  ]) &&
                                  (o = !0)),
                            ((this._flags.mode !== m ||
                              this._flags.inline_frame) &&
                              this._flags.mode !== v) ||
                              ("{" !== this._flags.last_token.text &&
                                ";" !== this._flags.last_token.text) ||
                              this.print_newline());
                      (this._output.space_before_token =
                        this._output.space_before_token || r),
                        this.print_token(e),
                        (this._output.space_before_token = o);
                    } else this.print_token(e);
                  else this.print_token(e);
                }),
                (E.prototype.handle_block_comment = function (e, t) {
                  return this._output.raw
                    ? (this._output.add_raw_token(e),
                      void (
                        e.directives &&
                        "end" === e.directives.preserve &&
                        (this._output.raw = this._options.test_output_raw)
                      ))
                    : e.directives
                    ? (this.print_newline(!1, t),
                      this.print_token(e),
                      "start" === e.directives.preserve &&
                        (this._output.raw = !0),
                      void this.print_newline(!1, !0))
                    : o.newline.test(e.text) || e.newlines
                    ? void this.print_block_commment(e, t)
                    : ((this._output.space_before_token = !0),
                      this.print_token(e),
                      void (this._output.space_before_token = !0));
                }),
                (E.prototype.print_block_commment = function (e, t) {
                  var n,
                    i = (function (e) {
                      for (
                        var t = [],
                          n = (e = e.replace(o.allLineBreaks, "\n")).indexOf(
                            "\n"
                          );
                        -1 !== n;

                      )
                        t.push(e.substring(0, n)),
                          (n = (e = e.substring(n + 1)).indexOf("\n"));
                      return e.length && t.push(e), t;
                    })(e.text),
                    r = !1,
                    s = !1,
                    a = e.whitespace_before,
                    l = a.length;
                  if (
                    (this.print_newline(!1, t),
                    this.print_token_line_indentation(e),
                    this._output.add_token(i[0]),
                    this.print_newline(!1, t),
                    i.length > 1)
                  ) {
                    for (
                      r = (function (e, t) {
                        for (var n = 0; n < e.length; n++) {
                          if (e[n].trim().charAt(0) !== t) return !1;
                        }
                        return !0;
                      })((i = i.slice(1)), "*"),
                        s = (function (e, t) {
                          for (var n, i = 0, r = e.length; i < r; i++)
                            if ((n = e[i]) && 0 !== n.indexOf(t)) return !1;
                          return !0;
                        })(i, a),
                        r && (this._flags.alignment = 1),
                        n = 0;
                      n < i.length;
                      n++
                    )
                      r
                        ? (this.print_token_line_indentation(e),
                          this._output.add_token(i[n].replace(/^\s+/g, "")))
                        : s && i[n]
                        ? (this.print_token_line_indentation(e),
                          this._output.add_token(i[n].substring(l)))
                        : (this._output.current_line.set_indent(-1),
                          this._output.add_token(i[n])),
                        this.print_newline(!1, t);
                    this._flags.alignment = 0;
                  }
                }),
                (E.prototype.handle_comment = function (e, t) {
                  e.newlines
                    ? this.print_newline(!1, t)
                    : this._output.trim(!0),
                    (this._output.space_before_token = !0),
                    this.print_token(e),
                    this.print_newline(!1, t);
                }),
                (E.prototype.handle_dot = function (e) {
                  this.start_of_statement(e) ||
                    this.handle_whitespace_and_comments(e, !0),
                    g(this._flags.last_token, p)
                      ? (this._output.space_before_token = !1)
                      : this.allow_wrap_or_preserved_newline(
                          e,
                          ")" === this._flags.last_token.text &&
                            this._options.break_chained_methods
                        ),
                    this._options.unindent_chained_methods &&
                      this._output.just_added_newline() &&
                      this.deindent(),
                    this.print_token(e);
                }),
                (E.prototype.handle_unknown = function (e, t) {
                  this.print_token(e),
                    "\n" === e.text[e.text.length - 1] &&
                      this.print_newline(!1, t);
                }),
                (E.prototype.handle_eof = function (e) {
                  for (; this._flags.mode === v; ) this.restore_mode();
                  this.handle_whitespace_and_comments(e);
                }),
                (e.exports.Beautifier = E);
            },
            function (e) {
              function t(e) {
                (this.__parent = e),
                  (this.__character_count = 0),
                  (this.__indent_count = -1),
                  (this.__alignment_count = 0),
                  (this.__wrap_point_index = 0),
                  (this.__wrap_point_character_count = 0),
                  (this.__wrap_point_indent_count = -1),
                  (this.__wrap_point_alignment_count = 0),
                  (this.__items = []);
              }

              function n(e, t) {
                (this.__cache = [""]),
                  (this.__indent_size = e.indent_size),
                  (this.__indent_string = e.indent_char),
                  e.indent_with_tabs ||
                    (this.__indent_string = new Array(e.indent_size + 1).join(
                      e.indent_char
                    )),
                  (t = t || ""),
                  e.indent_level > 0 &&
                    (t = new Array(e.indent_level + 1).join(
                      this.__indent_string
                    )),
                  (this.__base_string = t),
                  (this.__base_string_length = t.length);
              }

              function i(e, i) {
                (this.__indent_cache = new n(e, i)),
                  (this.raw = !1),
                  (this._end_with_newline = e.end_with_newline),
                  (this.indent_size = e.indent_size),
                  (this.wrap_line_length = e.wrap_line_length),
                  (this.indent_empty_lines = e.indent_empty_lines),
                  (this.__lines = []),
                  (this.previous_line = null),
                  (this.current_line = null),
                  (this.next_line = new t(this)),
                  (this.space_before_token = !1),
                  (this.non_breaking_space = !1),
                  (this.previous_token_wrapped = !1),
                  this.__add_outputline();
              }
              (t.prototype.clone_empty = function () {
                var e = new t(this.__parent);
                return (
                  e.set_indent(this.__indent_count, this.__alignment_count), e
                );
              }),
                (t.prototype.item = function (e) {
                  return e < 0
                    ? this.__items[this.__items.length + e]
                    : this.__items[e];
                }),
                (t.prototype.has_match = function (e) {
                  for (var t = this.__items.length - 1; t >= 0; t--)
                    if (this.__items[t].match(e)) return !0;
                  return !1;
                }),
                (t.prototype.set_indent = function (e, t) {
                  this.is_empty() &&
                    ((this.__indent_count = e || 0),
                    (this.__alignment_count = t || 0),
                    (this.__character_count = this.__parent.get_indent_size(
                      this.__indent_count,
                      this.__alignment_count
                    )));
                }),
                (t.prototype._set_wrap_point = function () {
                  this.__parent.wrap_line_length &&
                    ((this.__wrap_point_index = this.__items.length),
                    (this.__wrap_point_character_count =
                      this.__character_count),
                    (this.__wrap_point_indent_count =
                      this.__parent.next_line.__indent_count),
                    (this.__wrap_point_alignment_count =
                      this.__parent.next_line.__alignment_count));
                }),
                (t.prototype._should_wrap = function () {
                  return (
                    this.__wrap_point_index &&
                    this.__character_count > this.__parent.wrap_line_length &&
                    this.__wrap_point_character_count >
                      this.__parent.next_line.__character_count
                  );
                }),
                (t.prototype._allow_wrap = function () {
                  if (this._should_wrap()) {
                    this.__parent.add_new_line();
                    var e = this.__parent.current_line;
                    return (
                      e.set_indent(
                        this.__wrap_point_indent_count,
                        this.__wrap_point_alignment_count
                      ),
                      (e.__items = this.__items.slice(this.__wrap_point_index)),
                      (this.__items = this.__items.slice(
                        0,
                        this.__wrap_point_index
                      )),
                      (e.__character_count +=
                        this.__character_count -
                        this.__wrap_point_character_count),
                      (this.__character_count =
                        this.__wrap_point_character_count),
                      " " === e.__items[0] &&
                        (e.__items.splice(0, 1), (e.__character_count -= 1)),
                      !0
                    );
                  }
                  return !1;
                }),
                (t.prototype.is_empty = function () {
                  return 0 === this.__items.length;
                }),
                (t.prototype.last = function () {
                  return this.is_empty()
                    ? null
                    : this.__items[this.__items.length - 1];
                }),
                (t.prototype.push = function (e) {
                  this.__items.push(e);
                  var t = e.lastIndexOf("\n");
                  -1 !== t
                    ? (this.__character_count = e.length - t)
                    : (this.__character_count += e.length);
                }),
                (t.prototype.pop = function () {
                  var e = null;
                  return (
                    this.is_empty() ||
                      ((e = this.__items.pop()),
                      (this.__character_count -= e.length)),
                    e
                  );
                }),
                (t.prototype._remove_indent = function () {
                  this.__indent_count > 0 &&
                    ((this.__indent_count -= 1),
                    (this.__character_count -= this.__parent.indent_size));
                }),
                (t.prototype._remove_wrap_indent = function () {
                  this.__wrap_point_indent_count > 0 &&
                    (this.__wrap_point_indent_count -= 1);
                }),
                (t.prototype.trim = function () {
                  for (; " " === this.last(); )
                    this.__items.pop(), (this.__character_count -= 1);
                }),
                (t.prototype.toString = function () {
                  var e = "";
                  return (
                    this.is_empty()
                      ? this.__parent.indent_empty_lines &&
                        (e = this.__parent.get_indent_string(
                          this.__indent_count
                        ))
                      : ((e = this.__parent.get_indent_string(
                          this.__indent_count,
                          this.__alignment_count
                        )),
                        (e += this.__items.join(""))),
                    e
                  );
                }),
                (n.prototype.get_indent_size = function (e, t) {
                  var n = this.__base_string_length;
                  return (
                    (t = t || 0),
                    e < 0 && (n = 0),
                    (n += e * this.__indent_size),
                    (n += t)
                  );
                }),
                (n.prototype.get_indent_string = function (e, t) {
                  var n = this.__base_string;
                  return (
                    (t = t || 0),
                    e < 0 && ((e = 0), (n = "")),
                    (t += e * this.__indent_size),
                    this.__ensure_cache(t),
                    (n += this.__cache[t])
                  );
                }),
                (n.prototype.__ensure_cache = function (e) {
                  for (; e >= this.__cache.length; ) this.__add_column();
                }),
                (n.prototype.__add_column = function () {
                  var e = this.__cache.length,
                    t = 0,
                    n = "";
                  this.__indent_size &&
                    e >= this.__indent_size &&
                    ((e -=
                      (t = Math.floor(e / this.__indent_size)) *
                      this.__indent_size),
                    (n = new Array(t + 1).join(this.__indent_string))),
                    e && (n += new Array(e + 1).join(" ")),
                    this.__cache.push(n);
                }),
                (i.prototype.__add_outputline = function () {
                  (this.previous_line = this.current_line),
                    (this.current_line = this.next_line.clone_empty()),
                    this.__lines.push(this.current_line);
                }),
                (i.prototype.get_line_number = function () {
                  return this.__lines.length;
                }),
                (i.prototype.get_indent_string = function (e, t) {
                  return this.__indent_cache.get_indent_string(e, t);
                }),
                (i.prototype.get_indent_size = function (e, t) {
                  return this.__indent_cache.get_indent_size(e, t);
                }),
                (i.prototype.is_empty = function () {
                  return !this.previous_line && this.current_line.is_empty();
                }),
                (i.prototype.add_new_line = function (e) {
                  return (
                    !(this.is_empty() || (!e && this.just_added_newline())) &&
                    (this.raw || this.__add_outputline(), !0)
                  );
                }),
                (i.prototype.get_code = function (e) {
                  this.trim(!0);
                  var t = this.current_line.pop();
                  t &&
                    ("\n" === t[t.length - 1] && (t = t.replace(/\n+$/g, "")),
                    this.current_line.push(t)),
                    this._end_with_newline && this.__add_outputline();
                  var n = this.__lines.join("\n");
                  return "\n" !== e && (n = n.replace(/[\n]/g, e)), n;
                }),
                (i.prototype.set_wrap_point = function () {
                  this.current_line._set_wrap_point();
                }),
                (i.prototype.set_indent = function (e, t) {
                  return (
                    (e = e || 0),
                    (t = t || 0),
                    this.next_line.set_indent(e, t),
                    this.__lines.length > 1
                      ? (this.current_line.set_indent(e, t), !0)
                      : (this.current_line.set_indent(), !1)
                  );
                }),
                (i.prototype.add_raw_token = function (e) {
                  for (var t = 0; t < e.newlines; t++) this.__add_outputline();
                  this.current_line.set_indent(-1),
                    this.current_line.push(e.whitespace_before),
                    this.current_line.push(e.text),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped = !1);
                }),
                (i.prototype.add_token = function (e) {
                  this.__add_space_before_token(),
                    this.current_line.push(e),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped =
                      this.current_line._allow_wrap());
                }),
                (i.prototype.__add_space_before_token = function () {
                  this.space_before_token &&
                    !this.just_added_newline() &&
                    (this.non_breaking_space || this.set_wrap_point(),
                    this.current_line.push(" "));
                }),
                (i.prototype.remove_indent = function (e) {
                  for (var t = this.__lines.length; e < t; )
                    this.__lines[e]._remove_indent(), e++;
                  this.current_line._remove_wrap_indent();
                }),
                (i.prototype.trim = function (e) {
                  for (
                    e = void 0 !== e && e, this.current_line.trim();
                    e &&
                    this.__lines.length > 1 &&
                    this.current_line.is_empty();

                  )
                    this.__lines.pop(),
                      (this.current_line =
                        this.__lines[this.__lines.length - 1]),
                      this.current_line.trim();
                  this.previous_line =
                    this.__lines.length > 1
                      ? this.__lines[this.__lines.length - 2]
                      : null;
                }),
                (i.prototype.just_added_newline = function () {
                  return this.current_line.is_empty();
                }),
                (i.prototype.just_added_blankline = function () {
                  return (
                    this.is_empty() ||
                    (this.current_line.is_empty() &&
                      this.previous_line.is_empty())
                  );
                }),
                (i.prototype.ensure_empty_line_above = function (e, n) {
                  for (var i = this.__lines.length - 2; i >= 0; ) {
                    var r = this.__lines[i];
                    if (r.is_empty()) break;
                    if (0 !== r.item(0).indexOf(e) && r.item(-1) !== n) {
                      this.__lines.splice(i + 1, 0, new t(this)),
                        (this.previous_line =
                          this.__lines[this.__lines.length - 2]);
                      break;
                    }
                    i--;
                  }
                }),
                (e.exports.Output = i);
            },
            function (e) {
              e.exports.Token = function (e, t, n, i) {
                (this.type = e),
                  (this.text = t),
                  (this.comments_before = null),
                  (this.newlines = n || 0),
                  (this.whitespace_before = i || ""),
                  (this.parent = null),
                  (this.next = null),
                  (this.previous = null),
                  (this.opened = null),
                  (this.closed = null),
                  (this.directives = null);
              };
            },
            function (e, t) {
              var n =
                  "\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc",
                i =
                  "\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f",
                r =
                  "(?:\\\\u[0-9a-fA-F]{4}|[\\x23\\x24\\x40\\x41-\\x5a\\x5f\\x61-\\x7a" +
                  n +
                  "])";
              (t.identifier = new RegExp(
                r +
                  "(?:\\\\u[0-9a-fA-F]{4}|[\\x24\\x30-\\x39\\x41-\\x5a\\x5f\\x61-\\x7a\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05d0-\\u05ea\\u05f0-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u08a0\\u08a2-\\u08ac\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097f\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c33\\u0c35-\\u0c39\\u0c3d\\u0c58\\u0c59\\u0c60\\u0c61\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d60\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e87\\u0e88\\u0e8a\\u0e8d\\u0e94-\\u0e97\\u0e99-\\u0e9f\\u0ea1-\\u0ea3\\u0ea5\\u0ea7\\u0eaa\\u0eab\\u0ead-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f4\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f0\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1877\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191c\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19c1-\\u19c7\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1ce9-\\u1cec\\u1cee-\\u1cf1\\u1cf5\\u1cf6\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2119-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u212d\\u212f-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2e2f\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309d-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312d\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua697\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua78e\\ua790-\\ua793\\ua7a0-\\ua7aa\\ua7f8-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa80-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uabc0-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\\u0300-\\u036f\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u0620-\\u0649\\u0672-\\u06d3\\u06e7-\\u06e8\\u06fb-\\u06fc\\u0730-\\u074a\\u0800-\\u0814\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0840-\\u0857\\u08e4-\\u08fe\\u0900-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962-\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09d7\\u09df-\\u09e0\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2-\\u0ae3\\u0ae6-\\u0aef\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b56\\u0b57\\u0b5f-\\u0b60\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c01-\\u0c03\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62-\\u0c63\\u0c66-\\u0c6f\\u0c82\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2-\\u0ce3\\u0ce6-\\u0cef\\u0d02\\u0d03\\u0d46-\\u0d48\\u0d57\\u0d62-\\u0d63\\u0d66-\\u0d6f\\u0d82\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0df2\\u0df3\\u0e34-\\u0e3a\\u0e40-\\u0e45\\u0e50-\\u0e59\\u0eb4-\\u0eb9\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f41-\\u0f47\\u0f71-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1029\\u1040-\\u1049\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u170e-\\u1710\\u1720-\\u1730\\u1740-\\u1750\\u1772\\u1773\\u1780-\\u17b2\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1920-\\u192b\\u1930-\\u193b\\u1951-\\u196d\\u19b0-\\u19c0\\u19c8-\\u19c9\\u19d0-\\u19d9\\u1a00-\\u1a15\\u1a20-\\u1a53\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1b46-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c00-\\u1c22\\u1c40-\\u1c49\\u1c5b-\\u1c7d\\u1cd0-\\u1cd2\\u1d00-\\u1dbe\\u1e01-\\u1f15\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2d81-\\u2d96\\u2de0-\\u2dff\\u3021-\\u3028\\u3099\\u309a\\ua640-\\ua66d\\ua674-\\ua67d\\ua69f\\ua6f0-\\ua6f1\\ua7f8-\\ua800\\ua806\\ua80b\\ua823-\\ua827\\ua880-\\ua881\\ua8b4-\\ua8c4\\ua8d0-\\ua8d9\\ua8f3-\\ua8f7\\ua900-\\ua909\\ua926-\\ua92d\\ua930-\\ua945\\ua980-\\ua983\\ua9b3-\\ua9c0\\uaa00-\\uaa27\\uaa40-\\uaa41\\uaa4c-\\uaa4d\\uaa50-\\uaa59\\uaa7b\\uaae0-\\uaae9\\uaaf2-\\uaaf3\\uabc0-\\uabe1\\uabec\\uabed\\uabf0-\\uabf9\\ufb20-\\ufb28\\ufe00-\\ufe0f\\ufe20-\\ufe26\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f])*",
                "g"
              )),
                (t.identifierStart = new RegExp(r)),
                (t.identifierMatch = new RegExp(
                  "(?:\\\\u[0-9a-fA-F]{4}|[\\x24\\x30-\\x39\\x41-\\x5a\\x5f\\x61-\\x7a" +
                    n +
                    i +
                    "])+"
                ));
              (t.newline = /[\n\r\u2028\u2029]/),
                (t.lineBreak = new RegExp("\r\n|" + t.newline.source)),
                (t.allLineBreaks = new RegExp(t.lineBreak.source, "g"));
            },
            function (e, t, n) {
              var i = n(6).Options,
                r = ["before-newline", "after-newline", "preserve-newline"];

              function o(e) {
                i.call(this, e, "js");
                var t = this.raw_options.brace_style || null;
                "expand-strict" === t
                  ? (this.raw_options.brace_style = "expand")
                  : "collapse-preserve-inline" === t
                  ? (this.raw_options.brace_style = "collapse,preserve-inline")
                  : void 0 !== this.raw_options.braces_on_own_line &&
                    (this.raw_options.brace_style = this.raw_options
                      .braces_on_own_line
                      ? "expand"
                      : "collapse");
                var n = this._get_selection_list("brace_style", [
                  "collapse",
                  "expand",
                  "end-expand",
                  "none",
                  "preserve-inline",
                ]);
                (this.brace_preserve_inline = !1),
                  (this.brace_style = "collapse");
                for (var o = 0; o < n.length; o++)
                  "preserve-inline" === n[o]
                    ? (this.brace_preserve_inline = !0)
                    : (this.brace_style = n[o]);
                (this.unindent_chained_methods = this._get_boolean(
                  "unindent_chained_methods"
                )),
                  (this.break_chained_methods = this._get_boolean(
                    "break_chained_methods"
                  )),
                  (this.space_in_paren = this._get_boolean("space_in_paren")),
                  (this.space_in_empty_paren = this._get_boolean(
                    "space_in_empty_paren"
                  )),
                  (this.jslint_happy = this._get_boolean("jslint_happy")),
                  (this.space_after_anon_function = this._get_boolean(
                    "space_after_anon_function"
                  )),
                  (this.space_after_named_function = this._get_boolean(
                    "space_after_named_function"
                  )),
                  (this.keep_array_indentation = this._get_boolean(
                    "keep_array_indentation"
                  )),
                  (this.space_before_conditional = this._get_boolean(
                    "space_before_conditional",
                    !0
                  )),
                  (this.unescape_strings =
                    this._get_boolean("unescape_strings")),
                  (this.e4x = this._get_boolean("e4x")),
                  (this.comma_first = this._get_boolean("comma_first")),
                  (this.operator_position = this._get_selection(
                    "operator_position",
                    r
                  )),
                  (this.test_output_raw = this._get_boolean("test_output_raw")),
                  this.jslint_happy && (this.space_after_anon_function = !0);
              }
              (o.prototype = new i()), (e.exports.Options = o);
            },
            function (e) {
              function t(e, t) {
                (this.raw_options = n(e, t)),
                  (this.disabled = this._get_boolean("disabled")),
                  (this.eol = this._get_characters("eol", "auto")),
                  (this.end_with_newline =
                    this._get_boolean("end_with_newline")),
                  (this.indent_size = this._get_number("indent_size", 4)),
                  (this.indent_char = this._get_characters("indent_char", " ")),
                  (this.indent_level = this._get_number("indent_level")),
                  (this.preserve_newlines = this._get_boolean(
                    "preserve_newlines",
                    !0
                  )),
                  (this.max_preserve_newlines = this._get_number(
                    "max_preserve_newlines",
                    32786
                  )),
                  this.preserve_newlines || (this.max_preserve_newlines = 0),
                  (this.indent_with_tabs = this._get_boolean(
                    "indent_with_tabs",
                    "\t" === this.indent_char
                  )),
                  this.indent_with_tabs &&
                    ((this.indent_char = "\t"),
                    1 === this.indent_size && (this.indent_size = 4)),
                  (this.wrap_line_length = this._get_number(
                    "wrap_line_length",
                    this._get_number("max_char")
                  )),
                  (this.indent_empty_lines =
                    this._get_boolean("indent_empty_lines")),
                  (this.templating = this._get_selection_list(
                    "templating",
                    [
                      "auto",
                      "none",
                      "django",
                      "erb",
                      "handlebars",
                      "php",
                      "smarty",
                    ],
                    ["auto"]
                  ));
              }

              function n(e, t) {
                var n,
                  r = {};
                for (n in (e = i(e))) n !== t && (r[n] = e[n]);
                if (t && e[t]) for (n in e[t]) r[n] = e[t][n];
                return r;
              }

              function i(e) {
                var t,
                  n = {};
                for (t in e) {
                  n[t.replace(/-/g, "_")] = e[t];
                }
                return n;
              }
              (t.prototype._get_array = function (e, t) {
                var n = this.raw_options[e],
                  i = t || [];
                return (
                  "object" == typeof n
                    ? null !== n &&
                      "function" == typeof n.concat &&
                      (i = n.concat())
                    : "string" == typeof n &&
                      (i = n.split(/[^a-zA-Z0-9_\/\-]+/)),
                  i
                );
              }),
                (t.prototype._get_boolean = function (e, t) {
                  var n = this.raw_options[e];
                  return void 0 === n ? !!t : !!n;
                }),
                (t.prototype._get_characters = function (e, t) {
                  var n = this.raw_options[e],
                    i = t || "";
                  return (
                    "string" == typeof n &&
                      (i = n
                        .replace(/\\r/, "\r")
                        .replace(/\\n/, "\n")
                        .replace(/\\t/, "\t")),
                    i
                  );
                }),
                (t.prototype._get_number = function (e, t) {
                  var n = this.raw_options[e];
                  (t = parseInt(t, 10)), isNaN(t) && (t = 0);
                  var i = parseInt(n, 10);
                  return isNaN(i) && (i = t), i;
                }),
                (t.prototype._get_selection = function (e, t, n) {
                  var i = this._get_selection_list(e, t, n);
                  if (1 !== i.length)
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can only be one of the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i[0];
                }),
                (t.prototype._get_selection_list = function (e, t, n) {
                  if (!t || 0 === t.length)
                    throw new Error("Selection list cannot be empty.");
                  if (((n = n || [t[0]]), !this._is_valid_selection(n, t)))
                    throw new Error("Invalid Default Value!");
                  var i = this._get_array(e, n);
                  if (!this._is_valid_selection(i, t))
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can contain only the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i;
                }),
                (t.prototype._is_valid_selection = function (e, t) {
                  return (
                    e.length &&
                    t.length &&
                    !e.some(function (e) {
                      return -1 === t.indexOf(e);
                    })
                  );
                }),
                (e.exports.Options = t),
                (e.exports.normalizeOpts = i),
                (e.exports.mergeOpts = n);
            },
            function (e, t, n) {
              var i = n(8).InputScanner,
                r = n(9).Tokenizer,
                o = n(9).TOKEN,
                s = n(13).Directives,
                a = n(4),
                l = n(12).Pattern,
                c = n(14).TemplatablePattern;

              function d(e, t) {
                return -1 !== t.indexOf(e);
              }
              var u = {
                  START_EXPR: "TK_START_EXPR",
                  END_EXPR: "TK_END_EXPR",
                  START_BLOCK: "TK_START_BLOCK",
                  END_BLOCK: "TK_END_BLOCK",
                  WORD: "TK_WORD",
                  RESERVED: "TK_RESERVED",
                  SEMICOLON: "TK_SEMICOLON",
                  STRING: "TK_STRING",
                  EQUALS: "TK_EQUALS",
                  OPERATOR: "TK_OPERATOR",
                  COMMA: "TK_COMMA",
                  BLOCK_COMMENT: "TK_BLOCK_COMMENT",
                  COMMENT: "TK_COMMENT",
                  DOT: "TK_DOT",
                  UNKNOWN: "TK_UNKNOWN",
                  START: o.START,
                  RAW: o.RAW,
                  EOF: o.EOF,
                },
                h = new s(/\/\*/, /\*\//),
                g =
                  /0[xX][0123456789abcdefABCDEF]*|0[oO][01234567]*|0[bB][01]*|\d+n|(?:\.\d+|\d+\.?\d*)(?:[eE][+-]?\d+)?/,
                p = /[0-9]/,
                A = /[^\d\.]/,
                f =
                  ">>> === !== << && >= ** != == <= >> || ?? |> < / - + > : & % ? ^ | *".split(
                    " "
                  ),
                m =
                  ">>>= ... >>= <<= === >>> !== **= => ^= :: /= << <= == && -= >= >> != -- += ** || ?? ++ %= &= *= |= |> = ! ? > < : / ^ - + * & % ~ |";
              m = (m =
                "\\?\\.(?!\\d) " +
                (m = m.replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"))).replace(
                / /g,
                "|"
              );
              var v,
                b = new RegExp(m),
                w =
                  "continue,try,throw,return,var,let,const,if,switch,case,default,for,while,break,function,import,export".split(
                    ","
                  ),
                y = w.concat([
                  "do",
                  "in",
                  "of",
                  "else",
                  "get",
                  "set",
                  "new",
                  "catch",
                  "finally",
                  "typeof",
                  "yield",
                  "async",
                  "await",
                  "from",
                  "as",
                ]),
                x = new RegExp("^(?:" + y.join("|") + ")$"),
                C = function (e, t) {
                  r.call(this, e, t),
                    (this._patterns.whitespace =
                      this._patterns.whitespace.matching(
                        /\u00A0\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff/
                          .source,
                        /\u2028\u2029/.source
                      ));
                  var n = new l(this._input),
                    i = new c(this._input).read_options(this._options);
                  this.__patterns = {
                    template: i,
                    identifier: i
                      .starting_with(a.identifier)
                      .matching(a.identifierMatch),
                    number: n.matching(g),
                    punct: n.matching(b),
                    comment: n
                      .starting_with(/\/\//)
                      .until(/[\n\r\u2028\u2029]/),
                    block_comment: n.starting_with(/\/\*/).until_after(/\*\//),
                    html_comment_start: n.matching(/<!--/),
                    html_comment_end: n.matching(/-->/),
                    include: n
                      .starting_with(/#include/)
                      .until_after(a.lineBreak),
                    shebang: n.starting_with(/#!/).until_after(a.lineBreak),
                    xml: n.matching(
                      /[\s\S]*?<(\/?)([-a-zA-Z:0-9_.]+|{[\s\S]+?}|!\[CDATA\[[\s\S]*?\]\]|)(\s+{[\s\S]+?}|\s+[-a-zA-Z:0-9_.]+|\s+[-a-zA-Z:0-9_.]+\s*=\s*('[^']*'|"[^"]*"|{[\s\S]+?}))*\s*(\/?)\s*>/
                    ),
                    single_quote: i.until(/['\\\n\r\u2028\u2029]/),
                    double_quote: i.until(/["\\\n\r\u2028\u2029]/),
                    template_text: i.until(/[`\\$]/),
                    template_expression: i.until(/[`}\\]/),
                  };
                };
              ((C.prototype = new r())._is_comment = function (e) {
                return (
                  e.type === u.COMMENT ||
                  e.type === u.BLOCK_COMMENT ||
                  e.type === u.UNKNOWN
                );
              }),
                (C.prototype._is_opening = function (e) {
                  return e.type === u.START_BLOCK || e.type === u.START_EXPR;
                }),
                (C.prototype._is_closing = function (e, t) {
                  return (
                    (e.type === u.END_BLOCK || e.type === u.END_EXPR) &&
                    t &&
                    (("]" === e.text && "[" === t.text) ||
                      (")" === e.text && "(" === t.text) ||
                      ("}" === e.text && "{" === t.text))
                  );
                }),
                (C.prototype._reset = function () {
                  v = !1;
                }),
                (C.prototype._get_next_token = function (e, t) {
                  var n = null;
                  this._readWhitespace();
                  var i = this._input.peek();
                  return null === i
                    ? this._create_token(u.EOF, "")
                    : (n =
                        (n =
                          (n =
                            (n =
                              (n =
                                (n =
                                  (n =
                                    (n =
                                      (n = n || this._read_non_javascript(i)) ||
                                      this._read_string(i)) ||
                                    this._read_word(e)) ||
                                  this._read_singles(i)) ||
                                this._read_comment(i)) ||
                              this._read_regexp(i, e)) ||
                            this._read_xml(i, e)) ||
                          this._read_punctuation()) ||
                        this._create_token(u.UNKNOWN, this._input.next()));
                }),
                (C.prototype._read_word = function (e) {
                  var t;
                  return "" !== (t = this.__patterns.identifier.read())
                    ? ((t = t.replace(a.allLineBreaks, "\n")),
                      e.type !== u.DOT &&
                      (e.type !== u.RESERVED ||
                        ("set" !== e.text && "get" !== e.text)) &&
                      x.test(t)
                        ? "in" === t || "of" === t
                          ? this._create_token(u.OPERATOR, t)
                          : this._create_token(u.RESERVED, t)
                        : this._create_token(u.WORD, t))
                    : "" !== (t = this.__patterns.number.read())
                    ? this._create_token(u.WORD, t)
                    : void 0;
                }),
                (C.prototype._read_singles = function (e) {
                  var t = null;
                  return (
                    "(" === e || "[" === e
                      ? (t = this._create_token(u.START_EXPR, e))
                      : ")" === e || "]" === e
                      ? (t = this._create_token(u.END_EXPR, e))
                      : "{" === e
                      ? (t = this._create_token(u.START_BLOCK, e))
                      : "}" === e
                      ? (t = this._create_token(u.END_BLOCK, e))
                      : ";" === e
                      ? (t = this._create_token(u.SEMICOLON, e))
                      : "." === e && A.test(this._input.peek(1))
                      ? (t = this._create_token(u.DOT, e))
                      : "," === e && (t = this._create_token(u.COMMA, e)),
                    t && this._input.next(),
                    t
                  );
                }),
                (C.prototype._read_punctuation = function () {
                  var e = this.__patterns.punct.read();
                  if ("" !== e)
                    return "=" === e
                      ? this._create_token(u.EQUALS, e)
                      : "?." === e
                      ? this._create_token(u.DOT, e)
                      : this._create_token(u.OPERATOR, e);
                }),
                (C.prototype._read_non_javascript = function (e) {
                  var t = "";
                  if ("#" === e) {
                    if (
                      this._is_first_token() &&
                      (t = this.__patterns.shebang.read())
                    )
                      return this._create_token(u.UNKNOWN, t.trim() + "\n");
                    if ((t = this.__patterns.include.read()))
                      return this._create_token(u.UNKNOWN, t.trim() + "\n");
                    e = this._input.next();
                    var n = "#";
                    if (this._input.hasNext() && this._input.testChar(p)) {
                      do {
                        n += e = this._input.next();
                      } while (this._input.hasNext() && "#" !== e && "=" !== e);
                      return (
                        "#" === e ||
                          ("[" === this._input.peek() &&
                          "]" === this._input.peek(1)
                            ? ((n += "[]"),
                              this._input.next(),
                              this._input.next())
                            : "{" === this._input.peek() &&
                              "}" === this._input.peek(1) &&
                              ((n += "{}"),
                              this._input.next(),
                              this._input.next())),
                        this._create_token(u.WORD, n)
                      );
                    }
                    this._input.back();
                  } else if ("<" === e && this._is_first_token()) {
                    if ((t = this.__patterns.html_comment_start.read())) {
                      for (
                        ;
                        this._input.hasNext() &&
                        !this._input.testChar(a.newline);

                      )
                        t += this._input.next();
                      return (v = !0), this._create_token(u.COMMENT, t);
                    }
                  } else if (
                    v &&
                    "-" === e &&
                    (t = this.__patterns.html_comment_end.read())
                  )
                    return (v = !1), this._create_token(u.COMMENT, t);
                  return null;
                }),
                (C.prototype._read_comment = function (e) {
                  var t = null;
                  if ("/" === e) {
                    var n = "";
                    if ("*" === this._input.peek(1)) {
                      n = this.__patterns.block_comment.read();
                      var i = h.get_directives(n);
                      i &&
                        "start" === i.ignore &&
                        (n += h.readIgnored(this._input)),
                        (n = n.replace(a.allLineBreaks, "\n")),
                        ((t = this._create_token(
                          u.BLOCK_COMMENT,
                          n
                        )).directives = i);
                    } else
                      "/" === this._input.peek(1) &&
                        ((n = this.__patterns.comment.read()),
                        (t = this._create_token(u.COMMENT, n)));
                  }
                  return t;
                }),
                (C.prototype._read_string = function (e) {
                  if ("`" === e || "'" === e || '"' === e) {
                    var t = this._input.next();
                    return (
                      (this.has_char_escapes = !1),
                      (t +=
                        "`" === e
                          ? this._read_string_recursive("`", !0, "${")
                          : this._read_string_recursive(e)),
                      this.has_char_escapes &&
                        this._options.unescape_strings &&
                        (t = (function (e) {
                          var t = "",
                            n = 0,
                            r = new i(e),
                            o = null;
                          for (; r.hasNext(); )
                            if (
                              ((o = r.match(/([\s]|[^\\]|\\\\)+/g)) &&
                                (t += o[0]),
                              "\\" === r.peek())
                            ) {
                              if ((r.next(), "x" === r.peek()))
                                o = r.match(/x([0-9A-Fa-f]{2})/g);
                              else {
                                if ("u" !== r.peek()) {
                                  (t += "\\"), r.hasNext() && (t += r.next());
                                  continue;
                                }
                                o = r.match(/u([0-9A-Fa-f]{4})/g);
                              }
                              if (!o) return e;
                              if (
                                (n = parseInt(o[1], 16)) > 126 &&
                                n <= 255 &&
                                0 === o[0].indexOf("x")
                              )
                                return e;
                              if (n >= 0 && n < 32) {
                                t += "\\" + o[0];
                                continue;
                              }
                              t +=
                                34 === n || 39 === n || 92 === n
                                  ? "\\" + String.fromCharCode(n)
                                  : String.fromCharCode(n);
                            }
                          return t;
                        })(t)),
                      this._input.peek() === e && (t += this._input.next()),
                      (t = t.replace(a.allLineBreaks, "\n")),
                      this._create_token(u.STRING, t)
                    );
                  }
                  return null;
                }),
                (C.prototype._allow_regexp_or_xml = function (e) {
                  return (
                    (e.type === u.RESERVED &&
                      d(e.text, [
                        "return",
                        "case",
                        "throw",
                        "else",
                        "do",
                        "typeof",
                        "yield",
                      ])) ||
                    (e.type === u.END_EXPR &&
                      ")" === e.text &&
                      e.opened.previous.type === u.RESERVED &&
                      d(e.opened.previous.text, ["if", "while", "for"])) ||
                    d(e.type, [
                      u.COMMENT,
                      u.START_EXPR,
                      u.START_BLOCK,
                      u.START,
                      u.END_BLOCK,
                      u.OPERATOR,
                      u.EQUALS,
                      u.EOF,
                      u.SEMICOLON,
                      u.COMMA,
                    ])
                  );
                }),
                (C.prototype._read_regexp = function (e, t) {
                  if ("/" === e && this._allow_regexp_or_xml(t)) {
                    for (
                      var n = this._input.next(), i = !1, r = !1;
                      this._input.hasNext() &&
                      (i || r || this._input.peek() !== e) &&
                      !this._input.testChar(a.newline);

                    )
                      (n += this._input.peek()),
                        i
                          ? (i = !1)
                          : ((i = "\\" === this._input.peek()),
                            "[" === this._input.peek()
                              ? (r = !0)
                              : "]" === this._input.peek() && (r = !1)),
                        this._input.next();
                    return (
                      this._input.peek() === e &&
                        ((n += this._input.next()),
                        (n += this._input.read(a.identifier))),
                      this._create_token(u.STRING, n)
                    );
                  }
                  return null;
                }),
                (C.prototype._read_xml = function (e, t) {
                  if (
                    this._options.e4x &&
                    "<" === e &&
                    this._allow_regexp_or_xml(t)
                  ) {
                    var n = "",
                      i = this.__patterns.xml.read_match();
                    if (i) {
                      for (
                        var r = i[2]
                            .replace(/^{\s+/, "{")
                            .replace(/\s+}$/, "}"),
                          o = 0 === r.indexOf("{"),
                          s = 0;
                        i;

                      ) {
                        var l = !!i[1],
                          c = i[2];
                        if (
                          (!(
                            !!i[i.length - 1] || "![CDATA[" === c.slice(0, 8)
                          ) &&
                            (c === r ||
                              (o &&
                                c
                                  .replace(/^{\s+/, "{")
                                  .replace(/\s+}$/, "}"))) &&
                            (l ? --s : ++s),
                          (n += i[0]),
                          s <= 0)
                        )
                          break;
                        i = this.__patterns.xml.read_match();
                      }
                      return (
                        i || (n += this._input.match(/[\s\S]*/g)[0]),
                        (n = n.replace(a.allLineBreaks, "\n")),
                        this._create_token(u.STRING, n)
                      );
                    }
                  }
                  return null;
                }),
                (C.prototype._read_string_recursive = function (e, t, n) {
                  var i, r;
                  "'" === e
                    ? (r = this.__patterns.single_quote)
                    : '"' === e
                    ? (r = this.__patterns.double_quote)
                    : "`" === e
                    ? (r = this.__patterns.template_text)
                    : "}" === e && (r = this.__patterns.template_expression);
                  for (var o = r.read(), s = ""; this._input.hasNext(); ) {
                    if (
                      (s = this._input.next()) === e ||
                      (!t && a.newline.test(s))
                    ) {
                      this._input.back();
                      break;
                    }
                    "\\" === s && this._input.hasNext()
                      ? ("x" === (i = this._input.peek()) || "u" === i
                          ? (this.has_char_escapes = !0)
                          : "\r" === i &&
                            "\n" === this._input.peek(1) &&
                            this._input.next(),
                        (s += this._input.next()))
                      : n &&
                        ("${" === n &&
                          "$" === s &&
                          "{" === this._input.peek() &&
                          (s += this._input.next()),
                        n === s &&
                          ((s +=
                            "`" === e
                              ? this._read_string_recursive("}", t, "`")
                              : this._read_string_recursive("`", t, "${")),
                          this._input.hasNext() && (s += this._input.next()))),
                      (o += s += r.read());
                  }
                  return o;
                }),
                (e.exports.Tokenizer = C),
                (e.exports.TOKEN = u),
                (e.exports.positionable_operators = f.slice()),
                (e.exports.line_starters = w.slice());
            },
            function (e) {
              var t = RegExp.prototype.hasOwnProperty("sticky");

              function n(e) {
                (this.__input = e || ""),
                  (this.__input_length = this.__input.length),
                  (this.__position = 0);
              }
              (n.prototype.restart = function () {
                this.__position = 0;
              }),
                (n.prototype.back = function () {
                  this.__position > 0 && (this.__position -= 1);
                }),
                (n.prototype.hasNext = function () {
                  return this.__position < this.__input_length;
                }),
                (n.prototype.next = function () {
                  var e = null;
                  return (
                    this.hasNext() &&
                      ((e = this.__input.charAt(this.__position)),
                      (this.__position += 1)),
                    e
                  );
                }),
                (n.prototype.peek = function (e) {
                  var t = null;
                  return (
                    (e = e || 0),
                    (e += this.__position) >= 0 &&
                      e < this.__input_length &&
                      (t = this.__input.charAt(e)),
                    t
                  );
                }),
                (n.prototype.__match = function (e, n) {
                  e.lastIndex = n;
                  var i = e.exec(this.__input);
                  return (
                    !i || (t && e.sticky) || (i.index !== n && (i = null)), i
                  );
                }),
                (n.prototype.test = function (e, t) {
                  return (
                    (t = t || 0),
                    (t += this.__position) >= 0 &&
                      t < this.__input_length &&
                      !!this.__match(e, t)
                  );
                }),
                (n.prototype.testChar = function (e, t) {
                  var n = this.peek(t);
                  return (e.lastIndex = 0), null !== n && e.test(n);
                }),
                (n.prototype.match = function (e) {
                  var t = this.__match(e, this.__position);
                  return t ? (this.__position += t[0].length) : (t = null), t;
                }),
                (n.prototype.read = function (e, t, n) {
                  var i,
                    r = "";
                  return (
                    e && (i = this.match(e)) && (r += i[0]),
                    !t || (!i && e) || (r += this.readUntil(t, n)),
                    r
                  );
                }),
                (n.prototype.readUntil = function (e, t) {
                  var n,
                    i = this.__position;
                  e.lastIndex = this.__position;
                  var r = e.exec(this.__input);
                  return (
                    r
                      ? ((i = r.index), t && (i += r[0].length))
                      : (i = this.__input_length),
                    (n = this.__input.substring(this.__position, i)),
                    (this.__position = i),
                    n
                  );
                }),
                (n.prototype.readUntilAfter = function (e) {
                  return this.readUntil(e, !0);
                }),
                (n.prototype.get_regexp = function (e, n) {
                  var i = null,
                    r = "g";
                  return (
                    n && t && (r = "y"),
                    "string" == typeof e && "" !== e
                      ? (i = new RegExp(e, r))
                      : e && (i = new RegExp(e.source, r)),
                    i
                  );
                }),
                (n.prototype.get_literal_regexp = function (e) {
                  return RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
                }),
                (n.prototype.peekUntilAfter = function (e) {
                  var t = this.__position,
                    n = this.readUntilAfter(e);
                  return (this.__position = t), n;
                }),
                (n.prototype.lookBack = function (e) {
                  var t = this.__position - 1;
                  return (
                    t >= e.length &&
                    this.__input.substring(t - e.length, t).toLowerCase() === e
                  );
                }),
                (e.exports.InputScanner = n);
            },
            function (e, t, n) {
              var i = n(8).InputScanner,
                r = n(3).Token,
                o = n(10).TokenStream,
                s = n(11).WhitespacePattern,
                a = {
                  START: "TK_START",
                  RAW: "TK_RAW",
                  EOF: "TK_EOF",
                },
                l = function (e, t) {
                  (this._input = new i(e)),
                    (this._options = t || {}),
                    (this.__tokens = null),
                    (this._patterns = {}),
                    (this._patterns.whitespace = new s(this._input));
                };
              (l.prototype.tokenize = function () {
                var e;
                this._input.restart(), (this.__tokens = new o()), this._reset();
                for (
                  var t = new r(a.START, ""), n = null, i = [], s = new o();
                  t.type !== a.EOF;

                ) {
                  for (e = this._get_next_token(t, n); this._is_comment(e); )
                    s.add(e), (e = this._get_next_token(t, n));
                  s.isEmpty() || ((e.comments_before = s), (s = new o())),
                    (e.parent = n),
                    this._is_opening(e)
                      ? (i.push(n), (n = e))
                      : n &&
                        this._is_closing(e, n) &&
                        ((e.opened = n),
                        (n.closed = e),
                        (n = i.pop()),
                        (e.parent = n)),
                    (e.previous = t),
                    (t.next = e),
                    this.__tokens.add(e),
                    (t = e);
                }
                return this.__tokens;
              }),
                (l.prototype._is_first_token = function () {
                  return this.__tokens.isEmpty();
                }),
                (l.prototype._reset = function () {}),
                (l.prototype._get_next_token = function (e, t) {
                  this._readWhitespace();
                  var n = this._input.read(/.+/g);
                  return n
                    ? this._create_token(a.RAW, n)
                    : this._create_token(a.EOF, "");
                }),
                (l.prototype._is_comment = function (e) {
                  return !1;
                }),
                (l.prototype._is_opening = function (e) {
                  return !1;
                }),
                (l.prototype._is_closing = function (e, t) {
                  return !1;
                }),
                (l.prototype._create_token = function (e, t) {
                  return new r(
                    e,
                    t,
                    this._patterns.whitespace.newline_count,
                    this._patterns.whitespace.whitespace_before_token
                  );
                }),
                (l.prototype._readWhitespace = function () {
                  return this._patterns.whitespace.read();
                }),
                (e.exports.Tokenizer = l),
                (e.exports.TOKEN = a);
            },
            function (e) {
              function t(e) {
                (this.__tokens = []),
                  (this.__tokens_length = this.__tokens.length),
                  (this.__position = 0),
                  (this.__parent_token = e);
              }
              (t.prototype.restart = function () {
                this.__position = 0;
              }),
                (t.prototype.isEmpty = function () {
                  return 0 === this.__tokens_length;
                }),
                (t.prototype.hasNext = function () {
                  return this.__position < this.__tokens_length;
                }),
                (t.prototype.next = function () {
                  var e = null;
                  return (
                    this.hasNext() &&
                      ((e = this.__tokens[this.__position]),
                      (this.__position += 1)),
                    e
                  );
                }),
                (t.prototype.peek = function (e) {
                  var t = null;
                  return (
                    (e = e || 0),
                    (e += this.__position) >= 0 &&
                      e < this.__tokens_length &&
                      (t = this.__tokens[e]),
                    t
                  );
                }),
                (t.prototype.add = function (e) {
                  this.__parent_token && (e.parent = this.__parent_token),
                    this.__tokens.push(e),
                    (this.__tokens_length += 1);
                }),
                (e.exports.TokenStream = t);
            },
            function (e, t, n) {
              var i = n(12).Pattern;

              function r(e, t) {
                i.call(this, e, t),
                  t
                    ? (this._line_regexp = this._input.get_regexp(
                        t._line_regexp
                      ))
                    : this.__set_whitespace_patterns("", ""),
                  (this.newline_count = 0),
                  (this.whitespace_before_token = "");
              }
              (r.prototype = new i()),
                (r.prototype.__set_whitespace_patterns = function (e, t) {
                  (e += "\\t "),
                    (t += "\\n\\r"),
                    (this._match_pattern = this._input.get_regexp(
                      "[" + e + t + "]+",
                      !0
                    )),
                    (this._newline_regexp = this._input.get_regexp(
                      "\\r\\n|[" + t + "]"
                    ));
                }),
                (r.prototype.read = function () {
                  (this.newline_count = 0), (this.whitespace_before_token = "");
                  var e = this._input.read(this._match_pattern);
                  if (" " === e) this.whitespace_before_token = " ";
                  else if (e) {
                    var t = this.__split(this._newline_regexp, e);
                    (this.newline_count = t.length - 1),
                      (this.whitespace_before_token = t[this.newline_count]);
                  }
                  return e;
                }),
                (r.prototype.matching = function (e, t) {
                  var n = this._create();
                  return n.__set_whitespace_patterns(e, t), n._update(), n;
                }),
                (r.prototype._create = function () {
                  return new r(this._input, this);
                }),
                (r.prototype.__split = function (e, t) {
                  e.lastIndex = 0;
                  for (var n = 0, i = [], r = e.exec(t); r; )
                    i.push(t.substring(n, r.index)),
                      (n = r.index + r[0].length),
                      (r = e.exec(t));
                  return (
                    n < t.length
                      ? i.push(t.substring(n, t.length))
                      : i.push(""),
                    i
                  );
                }),
                (e.exports.WhitespacePattern = r);
            },
            function (e) {
              function t(e, t) {
                (this._input = e),
                  (this._starting_pattern = null),
                  (this._match_pattern = null),
                  (this._until_pattern = null),
                  (this._until_after = !1),
                  t &&
                    ((this._starting_pattern = this._input.get_regexp(
                      t._starting_pattern,
                      !0
                    )),
                    (this._match_pattern = this._input.get_regexp(
                      t._match_pattern,
                      !0
                    )),
                    (this._until_pattern = this._input.get_regexp(
                      t._until_pattern
                    )),
                    (this._until_after = t._until_after));
              }
              (t.prototype.read = function () {
                var e = this._input.read(this._starting_pattern);
                return (
                  (this._starting_pattern && !e) ||
                    (e += this._input.read(
                      this._match_pattern,
                      this._until_pattern,
                      this._until_after
                    )),
                  e
                );
              }),
                (t.prototype.read_match = function () {
                  return this._input.match(this._match_pattern);
                }),
                (t.prototype.until_after = function (e) {
                  var t = this._create();
                  return (
                    (t._until_after = !0),
                    (t._until_pattern = this._input.get_regexp(e)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.until = function (e) {
                  var t = this._create();
                  return (
                    (t._until_after = !1),
                    (t._until_pattern = this._input.get_regexp(e)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.starting_with = function (e) {
                  var t = this._create();
                  return (
                    (t._starting_pattern = this._input.get_regexp(e, !0)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.matching = function (e) {
                  var t = this._create();
                  return (
                    (t._match_pattern = this._input.get_regexp(e, !0)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype._create = function () {
                  return new t(this._input, this);
                }),
                (t.prototype._update = function () {}),
                (e.exports.Pattern = t);
            },
            function (e) {
              function t(e, t) {
                (e = "string" == typeof e ? e : e.source),
                  (t = "string" == typeof t ? t : t.source),
                  (this.__directives_block_pattern = new RegExp(
                    e + / beautify( \w+[:]\w+)+ /.source + t,
                    "g"
                  )),
                  (this.__directive_pattern = / (\w+)[:](\w+)/g),
                  (this.__directives_end_ignore_pattern = new RegExp(
                    e + /\sbeautify\signore:end\s/.source + t,
                    "g"
                  ));
              }
              (t.prototype.get_directives = function (e) {
                if (!e.match(this.__directives_block_pattern)) return null;
                var t = {};
                this.__directive_pattern.lastIndex = 0;
                for (var n = this.__directive_pattern.exec(e); n; )
                  (t[n[1]] = n[2]), (n = this.__directive_pattern.exec(e));
                return t;
              }),
                (t.prototype.readIgnored = function (e) {
                  return e.readUntilAfter(this.__directives_end_ignore_pattern);
                }),
                (e.exports.Directives = t);
            },
            function (e, t, n) {
              var i = n(12).Pattern,
                r = {
                  django: !1,
                  erb: !1,
                  handlebars: !1,
                  php: !1,
                  smarty: !1,
                };

              function o(e, t) {
                i.call(this, e, t),
                  (this.__template_pattern = null),
                  (this._disabled = Object.assign({}, r)),
                  (this._excluded = Object.assign({}, r)),
                  t &&
                    ((this.__template_pattern = this._input.get_regexp(
                      t.__template_pattern
                    )),
                    (this._excluded = Object.assign(
                      this._excluded,
                      t._excluded
                    )),
                    (this._disabled = Object.assign(
                      this._disabled,
                      t._disabled
                    )));
                var n = new i(e);
                this.__patterns = {
                  handlebars_comment: n
                    .starting_with(/{{!--/)
                    .until_after(/--}}/),
                  handlebars_unescaped: n
                    .starting_with(/{{{/)
                    .until_after(/}}}/),
                  handlebars: n.starting_with(/{{/).until_after(/}}/),
                  php: n.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/),
                  erb: n.starting_with(/<%[^%]/).until_after(/[^%]%>/),
                  django: n.starting_with(/{%/).until_after(/%}/),
                  django_value: n.starting_with(/{{/).until_after(/}}/),
                  django_comment: n.starting_with(/{#/).until_after(/#}/),
                  smarty: n
                    .starting_with(/{(?=[^}{\s\n])/)
                    .until_after(/[^\s\n]}/),
                  smarty_comment: n.starting_with(/{\*/).until_after(/\*}/),
                  smarty_literal: n
                    .starting_with(/{literal}/)
                    .until_after(/{\/literal}/),
                };
              }
              (o.prototype = new i()),
                (o.prototype._create = function () {
                  return new o(this._input, this);
                }),
                (o.prototype._update = function () {
                  this.__set_templated_pattern();
                }),
                (o.prototype.disable = function (e) {
                  var t = this._create();
                  return (t._disabled[e] = !0), t._update(), t;
                }),
                (o.prototype.read_options = function (e) {
                  var t = this._create();
                  for (var n in r)
                    t._disabled[n] = -1 === e.templating.indexOf(n);
                  return t._update(), t;
                }),
                (o.prototype.exclude = function (e) {
                  var t = this._create();
                  return (t._excluded[e] = !0), t._update(), t;
                }),
                (o.prototype.read = function () {
                  var e = "";
                  e = this._match_pattern
                    ? this._input.read(this._starting_pattern)
                    : this._input.read(
                        this._starting_pattern,
                        this.__template_pattern
                      );
                  for (var t = this._read_template(); t; )
                    this._match_pattern
                      ? (t += this._input.read(this._match_pattern))
                      : (t += this._input.readUntil(this.__template_pattern)),
                      (e += t),
                      (t = this._read_template());
                  return (
                    this._until_after &&
                      (e += this._input.readUntilAfter(this._until_pattern)),
                    e
                  );
                }),
                (o.prototype.__set_templated_pattern = function () {
                  var e = [];
                  this._disabled.php ||
                    e.push(this.__patterns.php._starting_pattern.source),
                    this._disabled.handlebars ||
                      e.push(
                        this.__patterns.handlebars._starting_pattern.source
                      ),
                    this._disabled.erb ||
                      e.push(this.__patterns.erb._starting_pattern.source),
                    this._disabled.django ||
                      (e.push(this.__patterns.django._starting_pattern.source),
                      e.push(
                        this.__patterns.django_value._starting_pattern.source
                      ),
                      e.push(
                        this.__patterns.django_comment._starting_pattern.source
                      )),
                    this._disabled.smarty ||
                      e.push(this.__patterns.smarty._starting_pattern.source),
                    this._until_pattern && e.push(this._until_pattern.source),
                    (this.__template_pattern = this._input.get_regexp(
                      "(?:" + e.join("|") + ")"
                    ));
                }),
                (o.prototype._read_template = function () {
                  var e = "",
                    t = this._input.peek();
                  if ("<" === t) {
                    var n = this._input.peek(1);
                    this._disabled.php ||
                      this._excluded.php ||
                      "?" !== n ||
                      (e = e || this.__patterns.php.read()),
                      this._disabled.erb ||
                        this._excluded.erb ||
                        "%" !== n ||
                        (e = e || this.__patterns.erb.read());
                  } else
                    "{" === t &&
                      (this._disabled.handlebars ||
                        this._excluded.handlebars ||
                        (e =
                          (e =
                            (e =
                              e || this.__patterns.handlebars_comment.read()) ||
                            this.__patterns.handlebars_unescaped.read()) ||
                          this.__patterns.handlebars.read()),
                      this._disabled.django ||
                        (this._excluded.django ||
                          this._excluded.handlebars ||
                          (e = e || this.__patterns.django_value.read()),
                        this._excluded.django ||
                          (e =
                            (e = e || this.__patterns.django_comment.read()) ||
                            this.__patterns.django.read())),
                      this._disabled.smarty ||
                        (this._disabled.django &&
                          this._disabled.handlebars &&
                          (e =
                            (e =
                              (e =
                                e || this.__patterns.smarty_comment.read()) ||
                              this.__patterns.smarty_literal.read()) ||
                            this.__patterns.smarty.read())));
                  return e;
                }),
                (e.exports.TemplatablePattern = o);
            },
          ],
          t = {};
        var i = (function n(i) {
          var r = t[i];
          if (void 0 !== r) return r.exports;
          var o = (t[i] = {
            exports: {},
          });
          return e[i](o, o.exports, n), o.exports;
        })(0);
        n = i;
      })();
      var r = n;
      void 0 ===
        (i = function () {
          return {
            js_beautify: r,
          };
        }.apply(t, [])) || (e.exports = i);
    })();
  },
  function (e, t, n) {
    var i;
    !(function () {
      var n;
      !(function () {
        "use strict";
        var e = [
            ,
            ,
            function (e) {
              function t(e) {
                (this.__parent = e),
                  (this.__character_count = 0),
                  (this.__indent_count = -1),
                  (this.__alignment_count = 0),
                  (this.__wrap_point_index = 0),
                  (this.__wrap_point_character_count = 0),
                  (this.__wrap_point_indent_count = -1),
                  (this.__wrap_point_alignment_count = 0),
                  (this.__items = []);
              }

              function n(e, t) {
                (this.__cache = [""]),
                  (this.__indent_size = e.indent_size),
                  (this.__indent_string = e.indent_char),
                  e.indent_with_tabs ||
                    (this.__indent_string = new Array(e.indent_size + 1).join(
                      e.indent_char
                    )),
                  (t = t || ""),
                  e.indent_level > 0 &&
                    (t = new Array(e.indent_level + 1).join(
                      this.__indent_string
                    )),
                  (this.__base_string = t),
                  (this.__base_string_length = t.length);
              }

              function i(e, i) {
                (this.__indent_cache = new n(e, i)),
                  (this.raw = !1),
                  (this._end_with_newline = e.end_with_newline),
                  (this.indent_size = e.indent_size),
                  (this.wrap_line_length = e.wrap_line_length),
                  (this.indent_empty_lines = e.indent_empty_lines),
                  (this.__lines = []),
                  (this.previous_line = null),
                  (this.current_line = null),
                  (this.next_line = new t(this)),
                  (this.space_before_token = !1),
                  (this.non_breaking_space = !1),
                  (this.previous_token_wrapped = !1),
                  this.__add_outputline();
              }
              (t.prototype.clone_empty = function () {
                var e = new t(this.__parent);
                return (
                  e.set_indent(this.__indent_count, this.__alignment_count), e
                );
              }),
                (t.prototype.item = function (e) {
                  return e < 0
                    ? this.__items[this.__items.length + e]
                    : this.__items[e];
                }),
                (t.prototype.has_match = function (e) {
                  for (var t = this.__items.length - 1; t >= 0; t--)
                    if (this.__items[t].match(e)) return !0;
                  return !1;
                }),
                (t.prototype.set_indent = function (e, t) {
                  this.is_empty() &&
                    ((this.__indent_count = e || 0),
                    (this.__alignment_count = t || 0),
                    (this.__character_count = this.__parent.get_indent_size(
                      this.__indent_count,
                      this.__alignment_count
                    )));
                }),
                (t.prototype._set_wrap_point = function () {
                  this.__parent.wrap_line_length &&
                    ((this.__wrap_point_index = this.__items.length),
                    (this.__wrap_point_character_count =
                      this.__character_count),
                    (this.__wrap_point_indent_count =
                      this.__parent.next_line.__indent_count),
                    (this.__wrap_point_alignment_count =
                      this.__parent.next_line.__alignment_count));
                }),
                (t.prototype._should_wrap = function () {
                  return (
                    this.__wrap_point_index &&
                    this.__character_count > this.__parent.wrap_line_length &&
                    this.__wrap_point_character_count >
                      this.__parent.next_line.__character_count
                  );
                }),
                (t.prototype._allow_wrap = function () {
                  if (this._should_wrap()) {
                    this.__parent.add_new_line();
                    var e = this.__parent.current_line;
                    return (
                      e.set_indent(
                        this.__wrap_point_indent_count,
                        this.__wrap_point_alignment_count
                      ),
                      (e.__items = this.__items.slice(this.__wrap_point_index)),
                      (this.__items = this.__items.slice(
                        0,
                        this.__wrap_point_index
                      )),
                      (e.__character_count +=
                        this.__character_count -
                        this.__wrap_point_character_count),
                      (this.__character_count =
                        this.__wrap_point_character_count),
                      " " === e.__items[0] &&
                        (e.__items.splice(0, 1), (e.__character_count -= 1)),
                      !0
                    );
                  }
                  return !1;
                }),
                (t.prototype.is_empty = function () {
                  return 0 === this.__items.length;
                }),
                (t.prototype.last = function () {
                  return this.is_empty()
                    ? null
                    : this.__items[this.__items.length - 1];
                }),
                (t.prototype.push = function (e) {
                  this.__items.push(e);
                  var t = e.lastIndexOf("\n");
                  -1 !== t
                    ? (this.__character_count = e.length - t)
                    : (this.__character_count += e.length);
                }),
                (t.prototype.pop = function () {
                  var e = null;
                  return (
                    this.is_empty() ||
                      ((e = this.__items.pop()),
                      (this.__character_count -= e.length)),
                    e
                  );
                }),
                (t.prototype._remove_indent = function () {
                  this.__indent_count > 0 &&
                    ((this.__indent_count -= 1),
                    (this.__character_count -= this.__parent.indent_size));
                }),
                (t.prototype._remove_wrap_indent = function () {
                  this.__wrap_point_indent_count > 0 &&
                    (this.__wrap_point_indent_count -= 1);
                }),
                (t.prototype.trim = function () {
                  for (; " " === this.last(); )
                    this.__items.pop(), (this.__character_count -= 1);
                }),
                (t.prototype.toString = function () {
                  var e = "";
                  return (
                    this.is_empty()
                      ? this.__parent.indent_empty_lines &&
                        (e = this.__parent.get_indent_string(
                          this.__indent_count
                        ))
                      : ((e = this.__parent.get_indent_string(
                          this.__indent_count,
                          this.__alignment_count
                        )),
                        (e += this.__items.join(""))),
                    e
                  );
                }),
                (n.prototype.get_indent_size = function (e, t) {
                  var n = this.__base_string_length;
                  return (
                    (t = t || 0),
                    e < 0 && (n = 0),
                    (n += e * this.__indent_size),
                    (n += t)
                  );
                }),
                (n.prototype.get_indent_string = function (e, t) {
                  var n = this.__base_string;
                  return (
                    (t = t || 0),
                    e < 0 && ((e = 0), (n = "")),
                    (t += e * this.__indent_size),
                    this.__ensure_cache(t),
                    (n += this.__cache[t])
                  );
                }),
                (n.prototype.__ensure_cache = function (e) {
                  for (; e >= this.__cache.length; ) this.__add_column();
                }),
                (n.prototype.__add_column = function () {
                  var e = this.__cache.length,
                    t = 0,
                    n = "";
                  this.__indent_size &&
                    e >= this.__indent_size &&
                    ((e -=
                      (t = Math.floor(e / this.__indent_size)) *
                      this.__indent_size),
                    (n = new Array(t + 1).join(this.__indent_string))),
                    e && (n += new Array(e + 1).join(" ")),
                    this.__cache.push(n);
                }),
                (i.prototype.__add_outputline = function () {
                  (this.previous_line = this.current_line),
                    (this.current_line = this.next_line.clone_empty()),
                    this.__lines.push(this.current_line);
                }),
                (i.prototype.get_line_number = function () {
                  return this.__lines.length;
                }),
                (i.prototype.get_indent_string = function (e, t) {
                  return this.__indent_cache.get_indent_string(e, t);
                }),
                (i.prototype.get_indent_size = function (e, t) {
                  return this.__indent_cache.get_indent_size(e, t);
                }),
                (i.prototype.is_empty = function () {
                  return !this.previous_line && this.current_line.is_empty();
                }),
                (i.prototype.add_new_line = function (e) {
                  return (
                    !(this.is_empty() || (!e && this.just_added_newline())) &&
                    (this.raw || this.__add_outputline(), !0)
                  );
                }),
                (i.prototype.get_code = function (e) {
                  this.trim(!0);
                  var t = this.current_line.pop();
                  t &&
                    ("\n" === t[t.length - 1] && (t = t.replace(/\n+$/g, "")),
                    this.current_line.push(t)),
                    this._end_with_newline && this.__add_outputline();
                  var n = this.__lines.join("\n");
                  return "\n" !== e && (n = n.replace(/[\n]/g, e)), n;
                }),
                (i.prototype.set_wrap_point = function () {
                  this.current_line._set_wrap_point();
                }),
                (i.prototype.set_indent = function (e, t) {
                  return (
                    (e = e || 0),
                    (t = t || 0),
                    this.next_line.set_indent(e, t),
                    this.__lines.length > 1
                      ? (this.current_line.set_indent(e, t), !0)
                      : (this.current_line.set_indent(), !1)
                  );
                }),
                (i.prototype.add_raw_token = function (e) {
                  for (var t = 0; t < e.newlines; t++) this.__add_outputline();
                  this.current_line.set_indent(-1),
                    this.current_line.push(e.whitespace_before),
                    this.current_line.push(e.text),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped = !1);
                }),
                (i.prototype.add_token = function (e) {
                  this.__add_space_before_token(),
                    this.current_line.push(e),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped =
                      this.current_line._allow_wrap());
                }),
                (i.prototype.__add_space_before_token = function () {
                  this.space_before_token &&
                    !this.just_added_newline() &&
                    (this.non_breaking_space || this.set_wrap_point(),
                    this.current_line.push(" "));
                }),
                (i.prototype.remove_indent = function (e) {
                  for (var t = this.__lines.length; e < t; )
                    this.__lines[e]._remove_indent(), e++;
                  this.current_line._remove_wrap_indent();
                }),
                (i.prototype.trim = function (e) {
                  for (
                    e = void 0 !== e && e, this.current_line.trim();
                    e &&
                    this.__lines.length > 1 &&
                    this.current_line.is_empty();

                  )
                    this.__lines.pop(),
                      (this.current_line =
                        this.__lines[this.__lines.length - 1]),
                      this.current_line.trim();
                  this.previous_line =
                    this.__lines.length > 1
                      ? this.__lines[this.__lines.length - 2]
                      : null;
                }),
                (i.prototype.just_added_newline = function () {
                  return this.current_line.is_empty();
                }),
                (i.prototype.just_added_blankline = function () {
                  return (
                    this.is_empty() ||
                    (this.current_line.is_empty() &&
                      this.previous_line.is_empty())
                  );
                }),
                (i.prototype.ensure_empty_line_above = function (e, n) {
                  for (var i = this.__lines.length - 2; i >= 0; ) {
                    var r = this.__lines[i];
                    if (r.is_empty()) break;
                    if (0 !== r.item(0).indexOf(e) && r.item(-1) !== n) {
                      this.__lines.splice(i + 1, 0, new t(this)),
                        (this.previous_line =
                          this.__lines[this.__lines.length - 2]);
                      break;
                    }
                    i--;
                  }
                }),
                (e.exports.Output = i);
            },
            ,
            ,
            ,
            function (e) {
              function t(e, t) {
                (this.raw_options = n(e, t)),
                  (this.disabled = this._get_boolean("disabled")),
                  (this.eol = this._get_characters("eol", "auto")),
                  (this.end_with_newline =
                    this._get_boolean("end_with_newline")),
                  (this.indent_size = this._get_number("indent_size", 4)),
                  (this.indent_char = this._get_characters("indent_char", " ")),
                  (this.indent_level = this._get_number("indent_level")),
                  (this.preserve_newlines = this._get_boolean(
                    "preserve_newlines",
                    !0
                  )),
                  (this.max_preserve_newlines = this._get_number(
                    "max_preserve_newlines",
                    32786
                  )),
                  this.preserve_newlines || (this.max_preserve_newlines = 0),
                  (this.indent_with_tabs = this._get_boolean(
                    "indent_with_tabs",
                    "\t" === this.indent_char
                  )),
                  this.indent_with_tabs &&
                    ((this.indent_char = "\t"),
                    1 === this.indent_size && (this.indent_size = 4)),
                  (this.wrap_line_length = this._get_number(
                    "wrap_line_length",
                    this._get_number("max_char")
                  )),
                  (this.indent_empty_lines =
                    this._get_boolean("indent_empty_lines")),
                  (this.templating = this._get_selection_list(
                    "templating",
                    [
                      "auto",
                      "none",
                      "django",
                      "erb",
                      "handlebars",
                      "php",
                      "smarty",
                    ],
                    ["auto"]
                  ));
              }

              function n(e, t) {
                var n,
                  r = {};
                for (n in (e = i(e))) n !== t && (r[n] = e[n]);
                if (t && e[t]) for (n in e[t]) r[n] = e[t][n];
                return r;
              }

              function i(e) {
                var t,
                  n = {};
                for (t in e) {
                  n[t.replace(/-/g, "_")] = e[t];
                }
                return n;
              }
              (t.prototype._get_array = function (e, t) {
                var n = this.raw_options[e],
                  i = t || [];
                return (
                  "object" == typeof n
                    ? null !== n &&
                      "function" == typeof n.concat &&
                      (i = n.concat())
                    : "string" == typeof n &&
                      (i = n.split(/[^a-zA-Z0-9_\/\-]+/)),
                  i
                );
              }),
                (t.prototype._get_boolean = function (e, t) {
                  var n = this.raw_options[e];
                  return void 0 === n ? !!t : !!n;
                }),
                (t.prototype._get_characters = function (e, t) {
                  var n = this.raw_options[e],
                    i = t || "";
                  return (
                    "string" == typeof n &&
                      (i = n
                        .replace(/\\r/, "\r")
                        .replace(/\\n/, "\n")
                        .replace(/\\t/, "\t")),
                    i
                  );
                }),
                (t.prototype._get_number = function (e, t) {
                  var n = this.raw_options[e];
                  (t = parseInt(t, 10)), isNaN(t) && (t = 0);
                  var i = parseInt(n, 10);
                  return isNaN(i) && (i = t), i;
                }),
                (t.prototype._get_selection = function (e, t, n) {
                  var i = this._get_selection_list(e, t, n);
                  if (1 !== i.length)
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can only be one of the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i[0];
                }),
                (t.prototype._get_selection_list = function (e, t, n) {
                  if (!t || 0 === t.length)
                    throw new Error("Selection list cannot be empty.");
                  if (((n = n || [t[0]]), !this._is_valid_selection(n, t)))
                    throw new Error("Invalid Default Value!");
                  var i = this._get_array(e, n);
                  if (!this._is_valid_selection(i, t))
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can contain only the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i;
                }),
                (t.prototype._is_valid_selection = function (e, t) {
                  return (
                    e.length &&
                    t.length &&
                    !e.some(function (e) {
                      return -1 === t.indexOf(e);
                    })
                  );
                }),
                (e.exports.Options = t),
                (e.exports.normalizeOpts = i),
                (e.exports.mergeOpts = n);
            },
            ,
            function (e) {
              var t = RegExp.prototype.hasOwnProperty("sticky");

              function n(e) {
                (this.__input = e || ""),
                  (this.__input_length = this.__input.length),
                  (this.__position = 0);
              }
              (n.prototype.restart = function () {
                this.__position = 0;
              }),
                (n.prototype.back = function () {
                  this.__position > 0 && (this.__position -= 1);
                }),
                (n.prototype.hasNext = function () {
                  return this.__position < this.__input_length;
                }),
                (n.prototype.next = function () {
                  var e = null;
                  return (
                    this.hasNext() &&
                      ((e = this.__input.charAt(this.__position)),
                      (this.__position += 1)),
                    e
                  );
                }),
                (n.prototype.peek = function (e) {
                  var t = null;
                  return (
                    (e = e || 0),
                    (e += this.__position) >= 0 &&
                      e < this.__input_length &&
                      (t = this.__input.charAt(e)),
                    t
                  );
                }),
                (n.prototype.__match = function (e, n) {
                  e.lastIndex = n;
                  var i = e.exec(this.__input);
                  return (
                    !i || (t && e.sticky) || (i.index !== n && (i = null)), i
                  );
                }),
                (n.prototype.test = function (e, t) {
                  return (
                    (t = t || 0),
                    (t += this.__position) >= 0 &&
                      t < this.__input_length &&
                      !!this.__match(e, t)
                  );
                }),
                (n.prototype.testChar = function (e, t) {
                  var n = this.peek(t);
                  return (e.lastIndex = 0), null !== n && e.test(n);
                }),
                (n.prototype.match = function (e) {
                  var t = this.__match(e, this.__position);
                  return t ? (this.__position += t[0].length) : (t = null), t;
                }),
                (n.prototype.read = function (e, t, n) {
                  var i,
                    r = "";
                  return (
                    e && (i = this.match(e)) && (r += i[0]),
                    !t || (!i && e) || (r += this.readUntil(t, n)),
                    r
                  );
                }),
                (n.prototype.readUntil = function (e, t) {
                  var n,
                    i = this.__position;
                  e.lastIndex = this.__position;
                  var r = e.exec(this.__input);
                  return (
                    r
                      ? ((i = r.index), t && (i += r[0].length))
                      : (i = this.__input_length),
                    (n = this.__input.substring(this.__position, i)),
                    (this.__position = i),
                    n
                  );
                }),
                (n.prototype.readUntilAfter = function (e) {
                  return this.readUntil(e, !0);
                }),
                (n.prototype.get_regexp = function (e, n) {
                  var i = null,
                    r = "g";
                  return (
                    n && t && (r = "y"),
                    "string" == typeof e && "" !== e
                      ? (i = new RegExp(e, r))
                      : e && (i = new RegExp(e.source, r)),
                    i
                  );
                }),
                (n.prototype.get_literal_regexp = function (e) {
                  return RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
                }),
                (n.prototype.peekUntilAfter = function (e) {
                  var t = this.__position,
                    n = this.readUntilAfter(e);
                  return (this.__position = t), n;
                }),
                (n.prototype.lookBack = function (e) {
                  var t = this.__position - 1;
                  return (
                    t >= e.length &&
                    this.__input.substring(t - e.length, t).toLowerCase() === e
                  );
                }),
                (e.exports.InputScanner = n);
            },
            ,
            ,
            ,
            ,
            function (e) {
              function t(e, t) {
                (e = "string" == typeof e ? e : e.source),
                  (t = "string" == typeof t ? t : t.source),
                  (this.__directives_block_pattern = new RegExp(
                    e + / beautify( \w+[:]\w+)+ /.source + t,
                    "g"
                  )),
                  (this.__directive_pattern = / (\w+)[:](\w+)/g),
                  (this.__directives_end_ignore_pattern = new RegExp(
                    e + /\sbeautify\signore:end\s/.source + t,
                    "g"
                  ));
              }
              (t.prototype.get_directives = function (e) {
                if (!e.match(this.__directives_block_pattern)) return null;
                var t = {};
                this.__directive_pattern.lastIndex = 0;
                for (var n = this.__directive_pattern.exec(e); n; )
                  (t[n[1]] = n[2]), (n = this.__directive_pattern.exec(e));
                return t;
              }),
                (t.prototype.readIgnored = function (e) {
                  return e.readUntilAfter(this.__directives_end_ignore_pattern);
                }),
                (e.exports.Directives = t);
            },
            ,
            function (e, t, n) {
              var i = n(16).Beautifier,
                r = n(17).Options;
              (e.exports = function (e, t) {
                return new i(e, t).beautify();
              }),
                (e.exports.defaultOptions = function () {
                  return new r();
                });
            },
            function (e, t, n) {
              var i = n(17).Options,
                r = n(2).Output,
                o = n(8).InputScanner,
                s = new (0, n(13).Directives)(/\/\*/, /\*\//),
                a = /\r\n|[\r\n]/,
                l = /\r\n|[\r\n]/g,
                c = /\s/,
                d = /(?:\s|\n)+/g,
                u = /\/\*(?:[\s\S]*?)((?:\*\/)|$)/g,
                h = /\/\/(?:[^\n\r\u2028\u2029]*)/g;

              function g(e, t) {
                (this._source_text = e || ""),
                  (this._options = new i(t)),
                  (this._ch = null),
                  (this._input = null),
                  (this.NESTED_AT_RULE = {
                    "@page": !0,
                    "@font-face": !0,
                    "@keyframes": !0,
                    "@media": !0,
                    "@supports": !0,
                    "@document": !0,
                  }),
                  (this.CONDITIONAL_GROUP_RULE = {
                    "@media": !0,
                    "@supports": !0,
                    "@document": !0,
                  });
              }
              (g.prototype.eatString = function (e) {
                var t = "";
                for (this._ch = this._input.next(); this._ch; ) {
                  if (((t += this._ch), "\\" === this._ch))
                    t += this._input.next();
                  else if (-1 !== e.indexOf(this._ch) || "\n" === this._ch)
                    break;
                  this._ch = this._input.next();
                }
                return t;
              }),
                (g.prototype.eatWhitespace = function (e) {
                  for (
                    var t = c.test(this._input.peek()), n = 0;
                    c.test(this._input.peek());

                  )
                    (this._ch = this._input.next()),
                      e &&
                        "\n" === this._ch &&
                        (0 === n || n < this._options.max_preserve_newlines) &&
                        (n++, this._output.add_new_line(!0));
                  return t;
                }),
                (g.prototype.foundNestedPseudoClass = function () {
                  for (var e = 0, t = 1, n = this._input.peek(t); n; ) {
                    if ("{" === n) return !0;
                    if ("(" === n) e += 1;
                    else if (")" === n) {
                      if (0 === e) return !1;
                      e -= 1;
                    } else if (";" === n || "}" === n) return !1;
                    t++, (n = this._input.peek(t));
                  }
                  return !1;
                }),
                (g.prototype.print_string = function (e) {
                  this._output.set_indent(this._indentLevel),
                    (this._output.non_breaking_space = !0),
                    this._output.add_token(e);
                }),
                (g.prototype.preserveSingleSpace = function (e) {
                  e && (this._output.space_before_token = !0);
                }),
                (g.prototype.indent = function () {
                  this._indentLevel++;
                }),
                (g.prototype.outdent = function () {
                  this._indentLevel > 0 && this._indentLevel--;
                }),
                (g.prototype.beautify = function () {
                  if (this._options.disabled) return this._source_text;
                  var e = this._source_text,
                    t = this._options.eol;
                  "auto" === t &&
                    ((t = "\n"), e && a.test(e || "") && (t = e.match(a)[0]));
                  var n = (e = e.replace(l, "\n")).match(/^[\t ]*/)[0];
                  (this._output = new r(this._options, n)),
                    (this._input = new o(e)),
                    (this._indentLevel = 0),
                    (this._nestedLevel = 0),
                    (this._ch = null);
                  for (
                    var i,
                      g,
                      p = 0,
                      A = !1,
                      f = !1,
                      m = !1,
                      v = !1,
                      b = !1,
                      w = this._ch;
                    (i = "" !== this._input.read(d)),
                      (g = w),
                      (this._ch = this._input.next()),
                      "\\" === this._ch &&
                        this._input.hasNext() &&
                        (this._ch += this._input.next()),
                      (w = this._ch),
                      this._ch;

                  )
                    if ("/" === this._ch && "*" === this._input.peek()) {
                      this._output.add_new_line(), this._input.back();
                      var y = this._input.read(u),
                        x = s.get_directives(y);
                      x &&
                        "start" === x.ignore &&
                        (y += s.readIgnored(this._input)),
                        this.print_string(y),
                        this.eatWhitespace(!0),
                        this._output.add_new_line();
                    } else if ("/" === this._ch && "/" === this._input.peek())
                      (this._output.space_before_token = !0),
                        this._input.back(),
                        this.print_string(this._input.read(h)),
                        this.eatWhitespace(!0);
                    else if ("@" === this._ch)
                      if (
                        (this.preserveSingleSpace(i),
                        "{" === this._input.peek())
                      )
                        this.print_string(this._ch + this.eatString("}"));
                      else {
                        this.print_string(this._ch);
                        var C =
                          this._input.peekUntilAfter(/[: ,;{}()[\]\/='"]/g);
                        C.match(/[ :]$/) &&
                          ((C = this.eatString(": ").replace(/\s$/, "")),
                          this.print_string(C),
                          (this._output.space_before_token = !0)),
                          "extend" === (C = C.replace(/\s$/, ""))
                            ? (v = !0)
                            : "import" === C && (b = !0),
                          C in this.NESTED_AT_RULE
                            ? ((this._nestedLevel += 1),
                              C in this.CONDITIONAL_GROUP_RULE && (m = !0))
                            : A ||
                              0 !== p ||
                              -1 === C.indexOf(":") ||
                              ((f = !0), this.indent());
                      }
                    else
                      "#" === this._ch && "{" === this._input.peek()
                        ? (this.preserveSingleSpace(i),
                          this.print_string(this._ch + this.eatString("}")))
                        : "{" === this._ch
                        ? (f && ((f = !1), this.outdent()),
                          m
                            ? ((m = !1),
                              (A = this._indentLevel >= this._nestedLevel))
                            : (A = this._indentLevel >= this._nestedLevel - 1),
                          this._options.newline_between_rules &&
                            A &&
                            this._output.previous_line &&
                            "{" !== this._output.previous_line.item(-1) &&
                            this._output.ensure_empty_line_above("/", ","),
                          (this._output.space_before_token = !0),
                          "expand" === this._options.brace_style
                            ? (this._output.add_new_line(),
                              this.print_string(this._ch),
                              this.indent(),
                              this._output.set_indent(this._indentLevel))
                            : (this.indent(), this.print_string(this._ch)),
                          this.eatWhitespace(!0),
                          this._output.add_new_line())
                        : "}" === this._ch
                        ? (this.outdent(),
                          this._output.add_new_line(),
                          "{" === g && this._output.trim(!0),
                          (b = !1),
                          (v = !1),
                          f && (this.outdent(), (f = !1)),
                          this.print_string(this._ch),
                          (A = !1),
                          this._nestedLevel && this._nestedLevel--,
                          this.eatWhitespace(!0),
                          this._output.add_new_line(),
                          this._options.newline_between_rules &&
                            !this._output.just_added_blankline() &&
                            "}" !== this._input.peek() &&
                            this._output.add_new_line(!0))
                        : ":" === this._ch
                        ? (!A && !m) ||
                          this._input.lookBack("&") ||
                          this.foundNestedPseudoClass() ||
                          this._input.lookBack("(") ||
                          v ||
                          0 !== p
                          ? (this._input.lookBack(" ") &&
                              (this._output.space_before_token = !0),
                            ":" === this._input.peek()
                              ? ((this._ch = this._input.next()),
                                this.print_string("::"))
                              : this.print_string(":"))
                          : (this.print_string(":"),
                            f ||
                              ((f = !0),
                              (this._output.space_before_token = !0),
                              this.eatWhitespace(!0),
                              this.indent()))
                        : '"' === this._ch || "'" === this._ch
                        ? (this.preserveSingleSpace(i),
                          this.print_string(
                            this._ch + this.eatString(this._ch)
                          ),
                          this.eatWhitespace(!0))
                        : ";" === this._ch
                        ? 0 === p
                          ? (f && (this.outdent(), (f = !1)),
                            (v = !1),
                            (b = !1),
                            this.print_string(this._ch),
                            this.eatWhitespace(!0),
                            "/" !== this._input.peek() &&
                              this._output.add_new_line())
                          : (this.print_string(this._ch),
                            this.eatWhitespace(!0),
                            (this._output.space_before_token = !0))
                        : "(" === this._ch
                        ? this._input.lookBack("url")
                          ? (this.print_string(this._ch),
                            this.eatWhitespace(),
                            p++,
                            this.indent(),
                            (this._ch = this._input.next()),
                            ")" === this._ch ||
                            '"' === this._ch ||
                            "'" === this._ch
                              ? this._input.back()
                              : this._ch &&
                                (this.print_string(
                                  this._ch + this.eatString(")")
                                ),
                                p && (p--, this.outdent())))
                          : (this.preserveSingleSpace(i),
                            this.print_string(this._ch),
                            this.eatWhitespace(),
                            p++,
                            this.indent())
                        : ")" === this._ch
                        ? (p && (p--, this.outdent()),
                          this.print_string(this._ch))
                        : "," === this._ch
                        ? (this.print_string(this._ch),
                          this.eatWhitespace(!0),
                          !this._options.selector_separator_newline ||
                          f ||
                          0 !== p ||
                          b
                            ? (this._output.space_before_token = !0)
                            : this._output.add_new_line())
                        : (">" !== this._ch &&
                            "+" !== this._ch &&
                            "~" !== this._ch) ||
                          f ||
                          0 !== p
                        ? "]" === this._ch
                          ? this.print_string(this._ch)
                          : "[" === this._ch
                          ? (this.preserveSingleSpace(i),
                            this.print_string(this._ch))
                          : "=" === this._ch
                          ? (this.eatWhitespace(),
                            this.print_string("="),
                            c.test(this._ch) && (this._ch = ""))
                          : "!" !== this._ch || this._input.lookBack("\\")
                          ? (this.preserveSingleSpace(i),
                            this.print_string(this._ch))
                          : (this.print_string(" "),
                            this.print_string(this._ch))
                        : this._options.space_around_combinator
                        ? ((this._output.space_before_token = !0),
                          this.print_string(this._ch),
                          (this._output.space_before_token = !0))
                        : (this.print_string(this._ch),
                          this.eatWhitespace(),
                          this._ch && c.test(this._ch) && (this._ch = ""));
                  return this._output.get_code(t);
                }),
                (e.exports.Beautifier = g);
            },
            function (e, t, n) {
              var i = n(6).Options;

              function r(e) {
                i.call(this, e, "css"),
                  (this.selector_separator_newline = this._get_boolean(
                    "selector_separator_newline",
                    !0
                  )),
                  (this.newline_between_rules = this._get_boolean(
                    "newline_between_rules",
                    !0
                  ));
                var t = this._get_boolean("space_around_selector_separator");
                this.space_around_combinator =
                  this._get_boolean("space_around_combinator") || t;
                var n = this._get_selection_list("brace_style", [
                  "collapse",
                  "expand",
                  "end-expand",
                  "none",
                  "preserve-inline",
                ]);
                this.brace_style = "collapse";
                for (var r = 0; r < n.length; r++)
                  "expand" !== n[r]
                    ? (this.brace_style = "collapse")
                    : (this.brace_style = n[r]);
              }
              (r.prototype = new i()), (e.exports.Options = r);
            },
          ],
          t = {};
        var i = (function n(i) {
          var r = t[i];
          if (void 0 !== r) return r.exports;
          var o = (t[i] = {
            exports: {},
          });
          return e[i](o, o.exports, n), o.exports;
        })(15);
        n = i;
      })();
      var r = n;
      void 0 ===
        (i = function () {
          return {
            css_beautify: r,
          };
        }.apply(t, [])) || (e.exports = i);
    })();
  },
  function (e, t, n) {
    var i; /*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */
    !(function (t, n) {
      "use strict";
      "object" == typeof e.exports
        ? (e.exports = t.document
            ? n(t, !0)
            : function (e) {
                if (!e.document)
                  throw new Error("jQuery requires a window with a document");
                return n(e);
              })
        : n(t);
    })("undefined" != typeof window ? window : this, function (n, r) {
      "use strict";
      var o = [],
        s = n.document,
        a = Object.getPrototypeOf,
        l = o.slice,
        c = o.concat,
        d = o.push,
        u = o.indexOf,
        h = {},
        g = h.toString,
        p = h.hasOwnProperty,
        A = p.toString,
        f = A.call(Object),
        m = {},
        v = function (e) {
          return "function" == typeof e && "number" != typeof e.nodeType;
        },
        b = function (e) {
          return null != e && e === e.window;
        },
        w = {
          type: !0,
          src: !0,
          nonce: !0,
          noModule: !0,
        };

      function y(e, t, n) {
        var i,
          r,
          o = (n = n || s).createElement("script");
        if (((o.text = e), t))
          for (i in w)
            (r = t[i] || (t.getAttribute && t.getAttribute(i))) &&
              o.setAttribute(i, r);
        n.head.appendChild(o).parentNode.removeChild(o);
      }

      function x(e) {
        return null == e
          ? e + ""
          : "object" == typeof e || "function" == typeof e
          ? h[g.call(e)] || "object"
          : typeof e;
      }
      var C = "3.4.1",
        k = function (e, t) {
          return new k.fn.init(e, t);
        },
        _ = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

      function I(e) {
        var t = !!e && "length" in e && e.length,
          n = x(e);
        return (
          !v(e) &&
          !b(e) &&
          ("array" === n ||
            0 === t ||
            ("number" == typeof t && 0 < t && t - 1 in e))
        );
      }
      (k.fn = k.prototype =
        {
          jquery: C,
          constructor: k,
          length: 0,
          toArray: function () {
            return l.call(this);
          },
          get: function (e) {
            return null == e
              ? l.call(this)
              : e < 0
              ? this[e + this.length]
              : this[e];
          },
          pushStack: function (e) {
            var t = k.merge(this.constructor(), e);
            return (t.prevObject = this), t;
          },
          each: function (e) {
            return k.each(this, e);
          },
          map: function (e) {
            return this.pushStack(
              k.map(this, function (t, n) {
                return e.call(t, n, t);
              })
            );
          },
          slice: function () {
            return this.pushStack(l.apply(this, arguments));
          },
          first: function () {
            return this.eq(0);
          },
          last: function () {
            return this.eq(-1);
          },
          eq: function (e) {
            var t = this.length,
              n = +e + (e < 0 ? t : 0);
            return this.pushStack(0 <= n && n < t ? [this[n]] : []);
          },
          end: function () {
            return this.prevObject || this.constructor();
          },
          push: d,
          sort: o.sort,
          splice: o.splice,
        }),
        (k.extend = k.fn.extend =
          function () {
            var e,
              t,
              n,
              i,
              r,
              o,
              s = arguments[0] || {},
              a = 1,
              l = arguments.length,
              c = !1;
            for (
              "boolean" == typeof s && ((c = s), (s = arguments[a] || {}), a++),
                "object" == typeof s || v(s) || (s = {}),
                a === l && ((s = this), a--);
              a < l;
              a++
            )
              if (null != (e = arguments[a]))
                for (t in e)
                  (i = e[t]),
                    "__proto__" !== t &&
                      s !== i &&
                      (c && i && (k.isPlainObject(i) || (r = Array.isArray(i)))
                        ? ((n = s[t]),
                          (o =
                            r && !Array.isArray(n)
                              ? []
                              : r || k.isPlainObject(n)
                              ? n
                              : {}),
                          (r = !1),
                          (s[t] = k.extend(c, o, i)))
                        : void 0 !== i && (s[t] = i));
            return s;
          }),
        k.extend({
          expando: "jQuery" + (C + Math.random()).replace(/\D/g, ""),
          isReady: !0,
          error: function (e) {
            throw new Error(e);
          },
          noop: function () {},
          isPlainObject: function (e) {
            var t, n;
            return !(
              !e ||
              "[object Object]" !== g.call(e) ||
              ((t = a(e)) &&
                ("function" !=
                  typeof (n = p.call(t, "constructor") && t.constructor) ||
                  A.call(n) !== f))
            );
          },
          isEmptyObject: function (e) {
            var t;
            for (t in e) return !1;
            return !0;
          },
          globalEval: function (e, t) {
            y(e, {
              nonce: t && t.nonce,
            });
          },
          each: function (e, t) {
            var n,
              i = 0;
            if (I(e))
              for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++);
            else for (i in e) if (!1 === t.call(e[i], i, e[i])) break;
            return e;
          },
          trim: function (e) {
            return null == e ? "" : (e + "").replace(_, "");
          },
          makeArray: function (e, t) {
            var n = t || [];
            return (
              null != e &&
                (I(Object(e))
                  ? k.merge(n, "string" == typeof e ? [e] : e)
                  : d.call(n, e)),
              n
            );
          },
          inArray: function (e, t, n) {
            return null == t ? -1 : u.call(t, e, n);
          },
          merge: function (e, t) {
            for (var n = +t.length, i = 0, r = e.length; i < n; i++)
              e[r++] = t[i];
            return (e.length = r), e;
          },
          grep: function (e, t, n) {
            for (var i = [], r = 0, o = e.length, s = !n; r < o; r++)
              !t(e[r], r) !== s && i.push(e[r]);
            return i;
          },
          map: function (e, t, n) {
            var i,
              r,
              o = 0,
              s = [];
            if (I(e))
              for (i = e.length; o < i; o++)
                null != (r = t(e[o], o, n)) && s.push(r);
            else for (o in e) null != (r = t(e[o], o, n)) && s.push(r);
            return c.apply([], s);
          },
          guid: 1,
          support: m,
        }),
        "function" == typeof Symbol &&
          (k.fn[Symbol.iterator] = o[Symbol.iterator]),
        k.each(
          "Boolean Number String Function Array Date RegExp Object Error Symbol".split(
            " "
          ),
          function (e, t) {
            h["[object " + t + "]"] = t.toLowerCase();
          }
        );
      var E = (function (e) {
        var t,
          n,
          i,
          r,
          o,
          s,
          a,
          l,
          c,
          d,
          u,
          h,
          g,
          p,
          A,
          f,
          m,
          v,
          b,
          w = "sizzle" + 1 * new Date(),
          y = e.document,
          x = 0,
          C = 0,
          k = le(),
          _ = le(),
          I = le(),
          E = le(),
          T = function (e, t) {
            return e === t && (u = !0), 0;
          },
          S = {}.hasOwnProperty,
          L = [],
          j = L.pop,
          R = L.push,
          B = L.push,
          M = L.slice,
          D = function (e, t) {
            for (var n = 0, i = e.length; n < i; n++) if (e[n] === t) return n;
            return -1;
          },
          O =
            "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
          H = "[\\x20\\t\\r\\n\\f]",
          W = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
          P =
            "\\[" +
            H +
            "*(" +
            W +
            ")(?:" +
            H +
            "*([*^$|!~]?=)" +
            H +
            "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" +
            W +
            "))|)" +
            H +
            "*\\]",
          N =
            ":(" +
            W +
            ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" +
            P +
            ")*)|.*)\\)|)",
          q = new RegExp(H + "+", "g"),
          z = new RegExp(
            "^" + H + "+|((?:^|[^\\\\])(?:\\\\.)*)" + H + "+$",
            "g"
          ),
          V = new RegExp("^" + H + "*," + H + "*"),
          F = new RegExp("^" + H + "*([>+~]|" + H + ")" + H + "*"),
          Q = new RegExp(H + "|>"),
          U = new RegExp(N),
          K = new RegExp("^" + W + "$"),
          X = {
            ID: new RegExp("^#(" + W + ")"),
            CLASS: new RegExp("^\\.(" + W + ")"),
            TAG: new RegExp("^(" + W + "|[*])"),
            ATTR: new RegExp("^" + P),
            PSEUDO: new RegExp("^" + N),
            CHILD: new RegExp(
              "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
                H +
                "*(even|odd|(([+-]|)(\\d*)n|)" +
                H +
                "*(?:([+-]|)" +
                H +
                "*(\\d+)|))" +
                H +
                "*\\)|)",
              "i"
            ),
            bool: new RegExp("^(?:" + O + ")$", "i"),
            needsContext: new RegExp(
              "^" +
                H +
                "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
                H +
                "*((?:-\\d)?\\d*)" +
                H +
                "*\\)|)(?=[^-]|$)",
              "i"
            ),
          },
          G = /HTML$/i,
          J = /^(?:input|select|textarea|button)$/i,
          Y = /^h\d$/i,
          Z = /^[^{]+\{\s*\[native \w/,
          $ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
          ee = /[+~]/,
          te = new RegExp("\\\\([\\da-f]{1,6}" + H + "?|(" + H + ")|.)", "ig"),
          ne = function (e, t, n) {
            var i = "0x" + t - 65536;
            return i != i || n
              ? t
              : i < 0
              ? String.fromCharCode(i + 65536)
              : String.fromCharCode((i >> 10) | 55296, (1023 & i) | 56320);
          },
          ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
          re = function (e, t) {
            return t
              ? "\0" === e
                ? "�"
                : e.slice(0, -1) +
                  "\\" +
                  e.charCodeAt(e.length - 1).toString(16) +
                  " "
              : "\\" + e;
          },
          oe = function () {
            h();
          },
          se = we(
            function (e) {
              return (
                !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
              );
            },
            {
              dir: "parentNode",
              next: "legend",
            }
          );
        try {
          B.apply((L = M.call(y.childNodes)), y.childNodes),
            L[y.childNodes.length].nodeType;
        } catch (t) {
          B = {
            apply: L.length
              ? function (e, t) {
                  R.apply(e, M.call(t));
                }
              : function (e, t) {
                  for (var n = e.length, i = 0; (e[n++] = t[i++]); );
                  e.length = n - 1;
                },
          };
        }

        function ae(e, t, i, r) {
          var o,
            a,
            c,
            d,
            u,
            p,
            m,
            v = t && t.ownerDocument,
            x = t ? t.nodeType : 9;
          if (
            ((i = i || []),
            "string" != typeof e || !e || (1 !== x && 9 !== x && 11 !== x))
          )
            return i;
          if (
            !r &&
            ((t ? t.ownerDocument || t : y) !== g && h(t), (t = t || g), A)
          ) {
            if (11 !== x && (u = $.exec(e)))
              if ((o = u[1])) {
                if (9 === x) {
                  if (!(c = t.getElementById(o))) return i;
                  if (c.id === o) return i.push(c), i;
                } else if (
                  v &&
                  (c = v.getElementById(o)) &&
                  b(t, c) &&
                  c.id === o
                )
                  return i.push(c), i;
              } else {
                if (u[2]) return B.apply(i, t.getElementsByTagName(e)), i;
                if (
                  (o = u[3]) &&
                  n.getElementsByClassName &&
                  t.getElementsByClassName
                )
                  return B.apply(i, t.getElementsByClassName(o)), i;
              }
            if (
              n.qsa &&
              !E[e + " "] &&
              (!f || !f.test(e)) &&
              (1 !== x || "object" !== t.nodeName.toLowerCase())
            ) {
              if (((m = e), (v = t), 1 === x && Q.test(e))) {
                for (
                  (d = t.getAttribute("id"))
                    ? (d = d.replace(ie, re))
                    : t.setAttribute("id", (d = w)),
                    a = (p = s(e)).length;
                  a--;

                )
                  p[a] = "#" + d + " " + be(p[a]);
                (m = p.join(",")), (v = (ee.test(e) && me(t.parentNode)) || t);
              }
              try {
                return B.apply(i, v.querySelectorAll(m)), i;
              } catch (t) {
                E(e, !0);
              } finally {
                d === w && t.removeAttribute("id");
              }
            }
          }
          return l(e.replace(z, "$1"), t, i, r);
        }

        function le() {
          var e = [];
          return function t(n, r) {
            return (
              e.push(n + " ") > i.cacheLength && delete t[e.shift()],
              (t[n + " "] = r)
            );
          };
        }

        function ce(e) {
          return (e[w] = !0), e;
        }

        function de(e) {
          var t = g.createElement("fieldset");
          try {
            return !!e(t);
          } catch (e) {
            return !1;
          } finally {
            t.parentNode && t.parentNode.removeChild(t), (t = null);
          }
        }

        function ue(e, t) {
          for (var n = e.split("|"), r = n.length; r--; )
            i.attrHandle[n[r]] = t;
        }

        function he(e, t) {
          var n = t && e,
            i =
              n &&
              1 === e.nodeType &&
              1 === t.nodeType &&
              e.sourceIndex - t.sourceIndex;
          if (i) return i;
          if (n) for (; (n = n.nextSibling); ) if (n === t) return -1;
          return e ? 1 : -1;
        }

        function ge(e) {
          return function (t) {
            return "input" === t.nodeName.toLowerCase() && t.type === e;
          };
        }

        function pe(e) {
          return function (t) {
            var n = t.nodeName.toLowerCase();
            return ("input" === n || "button" === n) && t.type === e;
          };
        }

        function Ae(e) {
          return function (t) {
            return "form" in t
              ? t.parentNode && !1 === t.disabled
                ? "label" in t
                  ? "label" in t.parentNode
                    ? t.parentNode.disabled === e
                    : t.disabled === e
                  : t.isDisabled === e || (t.isDisabled !== !e && se(t) === e)
                : t.disabled === e
              : "label" in t && t.disabled === e;
          };
        }

        function fe(e) {
          return ce(function (t) {
            return (
              (t = +t),
              ce(function (n, i) {
                for (var r, o = e([], n.length, t), s = o.length; s--; )
                  n[(r = o[s])] && (n[r] = !(i[r] = n[r]));
              })
            );
          });
        }

        function me(e) {
          return e && void 0 !== e.getElementsByTagName && e;
        }
        for (t in ((n = ae.support = {}),
        (o = ae.isXML =
          function (e) {
            var t = e.namespaceURI,
              n = (e.ownerDocument || e).documentElement;
            return !G.test(t || (n && n.nodeName) || "HTML");
          }),
        (h = ae.setDocument =
          function (e) {
            var t,
              r,
              s = e ? e.ownerDocument || e : y;
            return (
              s !== g &&
                9 === s.nodeType &&
                s.documentElement &&
                ((p = (g = s).documentElement),
                (A = !o(g)),
                y !== g &&
                  (r = g.defaultView) &&
                  r.top !== r &&
                  (r.addEventListener
                    ? r.addEventListener("unload", oe, !1)
                    : r.attachEvent && r.attachEvent("onunload", oe)),
                (n.attributes = de(function (e) {
                  return (e.className = "i"), !e.getAttribute("className");
                })),
                (n.getElementsByTagName = de(function (e) {
                  return (
                    e.appendChild(g.createComment("")),
                    !e.getElementsByTagName("*").length
                  );
                })),
                (n.getElementsByClassName = Z.test(g.getElementsByClassName)),
                (n.getById = de(function (e) {
                  return (
                    (p.appendChild(e).id = w),
                    !g.getElementsByName || !g.getElementsByName(w).length
                  );
                })),
                n.getById
                  ? ((i.filter.ID = function (e) {
                      var t = e.replace(te, ne);
                      return function (e) {
                        return e.getAttribute("id") === t;
                      };
                    }),
                    (i.find.ID = function (e, t) {
                      if (void 0 !== t.getElementById && A) {
                        var n = t.getElementById(e);
                        return n ? [n] : [];
                      }
                    }))
                  : ((i.filter.ID = function (e) {
                      var t = e.replace(te, ne);
                      return function (e) {
                        var n =
                          void 0 !== e.getAttributeNode &&
                          e.getAttributeNode("id");
                        return n && n.value === t;
                      };
                    }),
                    (i.find.ID = function (e, t) {
                      if (void 0 !== t.getElementById && A) {
                        var n,
                          i,
                          r,
                          o = t.getElementById(e);
                        if (o) {
                          if ((n = o.getAttributeNode("id")) && n.value === e)
                            return [o];
                          for (
                            r = t.getElementsByName(e), i = 0;
                            (o = r[i++]);

                          )
                            if ((n = o.getAttributeNode("id")) && n.value === e)
                              return [o];
                        }
                        return [];
                      }
                    })),
                (i.find.TAG = n.getElementsByTagName
                  ? function (e, t) {
                      return void 0 !== t.getElementsByTagName
                        ? t.getElementsByTagName(e)
                        : n.qsa
                        ? t.querySelectorAll(e)
                        : void 0;
                    }
                  : function (e, t) {
                      var n,
                        i = [],
                        r = 0,
                        o = t.getElementsByTagName(e);
                      if ("*" === e) {
                        for (; (n = o[r++]); ) 1 === n.nodeType && i.push(n);
                        return i;
                      }
                      return o;
                    }),
                (i.find.CLASS =
                  n.getElementsByClassName &&
                  function (e, t) {
                    if (void 0 !== t.getElementsByClassName && A)
                      return t.getElementsByClassName(e);
                  }),
                (m = []),
                (f = []),
                (n.qsa = Z.test(g.querySelectorAll)) &&
                  (de(function (e) {
                    (p.appendChild(e).innerHTML =
                      "<a id='" +
                      w +
                      "'></a><select id='" +
                      w +
                      "-\r\\' msallowcapture=''><option selected=''></option></select>"),
                      e.querySelectorAll("[msallowcapture^='']").length &&
                        f.push("[*^$]=" + H + "*(?:''|\"\")"),
                      e.querySelectorAll("[selected]").length ||
                        f.push("\\[" + H + "*(?:value|" + O + ")"),
                      e.querySelectorAll("[id~=" + w + "-]").length ||
                        f.push("~="),
                      e.querySelectorAll(":checked").length ||
                        f.push(":checked"),
                      e.querySelectorAll("a#" + w + "+*").length ||
                        f.push(".#.+[+~]");
                  }),
                  de(function (e) {
                    e.innerHTML =
                      "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                    var t = g.createElement("input");
                    t.setAttribute("type", "hidden"),
                      e.appendChild(t).setAttribute("name", "D"),
                      e.querySelectorAll("[name=d]").length &&
                        f.push("name" + H + "*[*^$|!~]?="),
                      2 !== e.querySelectorAll(":enabled").length &&
                        f.push(":enabled", ":disabled"),
                      (p.appendChild(e).disabled = !0),
                      2 !== e.querySelectorAll(":disabled").length &&
                        f.push(":enabled", ":disabled"),
                      e.querySelectorAll("*,:x"),
                      f.push(",.*:");
                  })),
                (n.matchesSelector = Z.test(
                  (v =
                    p.matches ||
                    p.webkitMatchesSelector ||
                    p.mozMatchesSelector ||
                    p.oMatchesSelector ||
                    p.msMatchesSelector)
                )) &&
                  de(function (e) {
                    (n.disconnectedMatch = v.call(e, "*")),
                      v.call(e, "[s!='']:x"),
                      m.push("!=", N);
                  }),
                (f = f.length && new RegExp(f.join("|"))),
                (m = m.length && new RegExp(m.join("|"))),
                (t = Z.test(p.compareDocumentPosition)),
                (b =
                  t || Z.test(p.contains)
                    ? function (e, t) {
                        var n = 9 === e.nodeType ? e.documentElement : e,
                          i = t && t.parentNode;
                        return (
                          e === i ||
                          !(
                            !i ||
                            1 !== i.nodeType ||
                            !(n.contains
                              ? n.contains(i)
                              : e.compareDocumentPosition &&
                                16 & e.compareDocumentPosition(i))
                          )
                        );
                      }
                    : function (e, t) {
                        if (t)
                          for (; (t = t.parentNode); ) if (t === e) return !0;
                        return !1;
                      }),
                (T = t
                  ? function (e, t) {
                      if (e === t) return (u = !0), 0;
                      var i =
                        !e.compareDocumentPosition - !t.compareDocumentPosition;
                      return (
                        i ||
                        (1 &
                          (i =
                            (e.ownerDocument || e) === (t.ownerDocument || t)
                              ? e.compareDocumentPosition(t)
                              : 1) ||
                        (!n.sortDetached && t.compareDocumentPosition(e) === i)
                          ? e === g || (e.ownerDocument === y && b(y, e))
                            ? -1
                            : t === g || (t.ownerDocument === y && b(y, t))
                            ? 1
                            : d
                            ? D(d, e) - D(d, t)
                            : 0
                          : 4 & i
                          ? -1
                          : 1)
                      );
                    }
                  : function (e, t) {
                      if (e === t) return (u = !0), 0;
                      var n,
                        i = 0,
                        r = e.parentNode,
                        o = t.parentNode,
                        s = [e],
                        a = [t];
                      if (!r || !o)
                        return e === g
                          ? -1
                          : t === g
                          ? 1
                          : r
                          ? -1
                          : o
                          ? 1
                          : d
                          ? D(d, e) - D(d, t)
                          : 0;
                      if (r === o) return he(e, t);
                      for (n = e; (n = n.parentNode); ) s.unshift(n);
                      for (n = t; (n = n.parentNode); ) a.unshift(n);
                      for (; s[i] === a[i]; ) i++;
                      return i
                        ? he(s[i], a[i])
                        : s[i] === y
                        ? -1
                        : a[i] === y
                        ? 1
                        : 0;
                    })),
              g
            );
          }),
        (ae.matches = function (e, t) {
          return ae(e, null, null, t);
        }),
        (ae.matchesSelector = function (e, t) {
          if (
            ((e.ownerDocument || e) !== g && h(e),
            n.matchesSelector &&
              A &&
              !E[t + " "] &&
              (!m || !m.test(t)) &&
              (!f || !f.test(t)))
          )
            try {
              var i = v.call(e, t);
              if (
                i ||
                n.disconnectedMatch ||
                (e.document && 11 !== e.document.nodeType)
              )
                return i;
            } catch (e) {
              E(t, !0);
            }
          return 0 < ae(t, g, null, [e]).length;
        }),
        (ae.contains = function (e, t) {
          return (e.ownerDocument || e) !== g && h(e), b(e, t);
        }),
        (ae.attr = function (e, t) {
          (e.ownerDocument || e) !== g && h(e);
          var r = i.attrHandle[t.toLowerCase()],
            o =
              r && S.call(i.attrHandle, t.toLowerCase()) ? r(e, t, !A) : void 0;
          return void 0 !== o
            ? o
            : n.attributes || !A
            ? e.getAttribute(t)
            : (o = e.getAttributeNode(t)) && o.specified
            ? o.value
            : null;
        }),
        (ae.escape = function (e) {
          return (e + "").replace(ie, re);
        }),
        (ae.error = function (e) {
          throw new Error("Syntax error, unrecognized expression: " + e);
        }),
        (ae.uniqueSort = function (e) {
          var t,
            i = [],
            r = 0,
            o = 0;
          if (
            ((u = !n.detectDuplicates),
            (d = !n.sortStable && e.slice(0)),
            e.sort(T),
            u)
          ) {
            for (; (t = e[o++]); ) t === e[o] && (r = i.push(o));
            for (; r--; ) e.splice(i[r], 1);
          }
          return (d = null), e;
        }),
        (r = ae.getText =
          function (e) {
            var t,
              n = "",
              i = 0,
              o = e.nodeType;
            if (o) {
              if (1 === o || 9 === o || 11 === o) {
                if ("string" == typeof e.textContent) return e.textContent;
                for (e = e.firstChild; e; e = e.nextSibling) n += r(e);
              } else if (3 === o || 4 === o) return e.nodeValue;
            } else for (; (t = e[i++]); ) n += r(t);
            return n;
          }),
        ((i = ae.selectors =
          {
            cacheLength: 50,
            createPseudo: ce,
            match: X,
            attrHandle: {},
            find: {},
            relative: {
              ">": {
                dir: "parentNode",
                first: !0,
              },
              " ": {
                dir: "parentNode",
              },
              "+": {
                dir: "previousSibling",
                first: !0,
              },
              "~": {
                dir: "previousSibling",
              },
            },
            preFilter: {
              ATTR: function (e) {
                return (
                  (e[1] = e[1].replace(te, ne)),
                  (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)),
                  "~=" === e[2] && (e[3] = " " + e[3] + " "),
                  e.slice(0, 4)
                );
              },
              CHILD: function (e) {
                return (
                  (e[1] = e[1].toLowerCase()),
                  "nth" === e[1].slice(0, 3)
                    ? (e[3] || ae.error(e[0]),
                      (e[4] = +(e[4]
                        ? e[5] + (e[6] || 1)
                        : 2 * ("even" === e[3] || "odd" === e[3]))),
                      (e[5] = +(e[7] + e[8] || "odd" === e[3])))
                    : e[3] && ae.error(e[0]),
                  e
                );
              },
              PSEUDO: function (e) {
                var t,
                  n = !e[6] && e[2];
                return X.CHILD.test(e[0])
                  ? null
                  : (e[3]
                      ? (e[2] = e[4] || e[5] || "")
                      : n &&
                        U.test(n) &&
                        (t = s(n, !0)) &&
                        (t = n.indexOf(")", n.length - t) - n.length) &&
                        ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))),
                    e.slice(0, 3));
              },
            },
            filter: {
              TAG: function (e) {
                var t = e.replace(te, ne).toLowerCase();
                return "*" === e
                  ? function () {
                      return !0;
                    }
                  : function (e) {
                      return e.nodeName && e.nodeName.toLowerCase() === t;
                    };
              },
              CLASS: function (e) {
                var t = k[e + " "];
                return (
                  t ||
                  ((t = new RegExp("(^|" + H + ")" + e + "(" + H + "|$)")) &&
                    k(e, function (e) {
                      return t.test(
                        ("string" == typeof e.className && e.className) ||
                          (void 0 !== e.getAttribute &&
                            e.getAttribute("class")) ||
                          ""
                      );
                    }))
                );
              },
              ATTR: function (e, t, n) {
                return function (i) {
                  var r = ae.attr(i, e);
                  return null == r
                    ? "!=" === t
                    : !t ||
                        ((r += ""),
                        "=" === t
                          ? r === n
                          : "!=" === t
                          ? r !== n
                          : "^=" === t
                          ? n && 0 === r.indexOf(n)
                          : "*=" === t
                          ? n && -1 < r.indexOf(n)
                          : "$=" === t
                          ? n && r.slice(-n.length) === n
                          : "~=" === t
                          ? -1 < (" " + r.replace(q, " ") + " ").indexOf(n)
                          : "|=" === t &&
                            (r === n || r.slice(0, n.length + 1) === n + "-"));
                };
              },
              CHILD: function (e, t, n, i, r) {
                var o = "nth" !== e.slice(0, 3),
                  s = "last" !== e.slice(-4),
                  a = "of-type" === t;
                return 1 === i && 0 === r
                  ? function (e) {
                      return !!e.parentNode;
                    }
                  : function (t, n, l) {
                      var c,
                        d,
                        u,
                        h,
                        g,
                        p,
                        A = o !== s ? "nextSibling" : "previousSibling",
                        f = t.parentNode,
                        m = a && t.nodeName.toLowerCase(),
                        v = !l && !a,
                        b = !1;
                      if (f) {
                        if (o) {
                          for (; A; ) {
                            for (h = t; (h = h[A]); )
                              if (
                                a
                                  ? h.nodeName.toLowerCase() === m
                                  : 1 === h.nodeType
                              )
                                return !1;
                            p = A = "only" === e && !p && "nextSibling";
                          }
                          return !0;
                        }
                        if (((p = [s ? f.firstChild : f.lastChild]), s && v)) {
                          for (
                            b =
                              (g =
                                (c =
                                  (d =
                                    (u = (h = f)[w] || (h[w] = {}))[
                                      h.uniqueID
                                    ] || (u[h.uniqueID] = {}))[e] || [])[0] ===
                                  x && c[1]) && c[2],
                              h = g && f.childNodes[g];
                            (h = (++g && h && h[A]) || (b = g = 0) || p.pop());

                          )
                            if (1 === h.nodeType && ++b && h === t) {
                              d[e] = [x, g, b];
                              break;
                            }
                        } else if (
                          (v &&
                            (b = g =
                              (c =
                                (d =
                                  (u = (h = t)[w] || (h[w] = {}))[h.uniqueID] ||
                                  (u[h.uniqueID] = {}))[e] || [])[0] === x &&
                              c[1]),
                          !1 === b)
                        )
                          for (
                            ;
                            (h =
                              (++g && h && h[A]) || (b = g = 0) || p.pop()) &&
                            ((a
                              ? h.nodeName.toLowerCase() !== m
                              : 1 !== h.nodeType) ||
                              !++b ||
                              (v &&
                                ((d =
                                  (u = h[w] || (h[w] = {}))[h.uniqueID] ||
                                  (u[h.uniqueID] = {}))[e] = [x, b]),
                              h !== t));

                          );
                        return (b -= r) === i || (b % i == 0 && 0 <= b / i);
                      }
                    };
              },
              PSEUDO: function (e, t) {
                var n,
                  r =
                    i.pseudos[e] ||
                    i.setFilters[e.toLowerCase()] ||
                    ae.error("unsupported pseudo: " + e);
                return r[w]
                  ? r(t)
                  : 1 < r.length
                  ? ((n = [e, e, "", t]),
                    i.setFilters.hasOwnProperty(e.toLowerCase())
                      ? ce(function (e, n) {
                          for (var i, o = r(e, t), s = o.length; s--; )
                            e[(i = D(e, o[s]))] = !(n[i] = o[s]);
                        })
                      : function (e) {
                          return r(e, 0, n);
                        })
                  : r;
              },
            },
            pseudos: {
              not: ce(function (e) {
                var t = [],
                  n = [],
                  i = a(e.replace(z, "$1"));
                return i[w]
                  ? ce(function (e, t, n, r) {
                      for (var o, s = i(e, null, r, []), a = e.length; a--; )
                        (o = s[a]) && (e[a] = !(t[a] = o));
                    })
                  : function (e, r, o) {
                      return (
                        (t[0] = e), i(t, null, o, n), (t[0] = null), !n.pop()
                      );
                    };
              }),
              has: ce(function (e) {
                return function (t) {
                  return 0 < ae(e, t).length;
                };
              }),
              contains: ce(function (e) {
                return (
                  (e = e.replace(te, ne)),
                  function (t) {
                    return -1 < (t.textContent || r(t)).indexOf(e);
                  }
                );
              }),
              lang: ce(function (e) {
                return (
                  K.test(e || "") || ae.error("unsupported lang: " + e),
                  (e = e.replace(te, ne).toLowerCase()),
                  function (t) {
                    var n;
                    do {
                      if (
                        (n = A
                          ? t.lang
                          : t.getAttribute("xml:lang") ||
                            t.getAttribute("lang"))
                      )
                        return (
                          (n = n.toLowerCase()) === e ||
                          0 === n.indexOf(e + "-")
                        );
                    } while ((t = t.parentNode) && 1 === t.nodeType);
                    return !1;
                  }
                );
              }),
              target: function (t) {
                var n = e.location && e.location.hash;
                return n && n.slice(1) === t.id;
              },
              root: function (e) {
                return e === p;
              },
              focus: function (e) {
                return (
                  e === g.activeElement &&
                  (!g.hasFocus || g.hasFocus()) &&
                  !!(e.type || e.href || ~e.tabIndex)
                );
              },
              enabled: Ae(!1),
              disabled: Ae(!0),
              checked: function (e) {
                var t = e.nodeName.toLowerCase();
                return (
                  ("input" === t && !!e.checked) ||
                  ("option" === t && !!e.selected)
                );
              },
              selected: function (e) {
                return (
                  e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
                );
              },
              empty: function (e) {
                for (e = e.firstChild; e; e = e.nextSibling)
                  if (e.nodeType < 6) return !1;
                return !0;
              },
              parent: function (e) {
                return !i.pseudos.empty(e);
              },
              header: function (e) {
                return Y.test(e.nodeName);
              },
              input: function (e) {
                return J.test(e.nodeName);
              },
              button: function (e) {
                var t = e.nodeName.toLowerCase();
                return ("input" === t && "button" === e.type) || "button" === t;
              },
              text: function (e) {
                var t;
                return (
                  "input" === e.nodeName.toLowerCase() &&
                  "text" === e.type &&
                  (null == (t = e.getAttribute("type")) ||
                    "text" === t.toLowerCase())
                );
              },
              first: fe(function () {
                return [0];
              }),
              last: fe(function (e, t) {
                return [t - 1];
              }),
              eq: fe(function (e, t, n) {
                return [n < 0 ? n + t : n];
              }),
              even: fe(function (e, t) {
                for (var n = 0; n < t; n += 2) e.push(n);
                return e;
              }),
              odd: fe(function (e, t) {
                for (var n = 1; n < t; n += 2) e.push(n);
                return e;
              }),
              lt: fe(function (e, t, n) {
                for (var i = n < 0 ? n + t : t < n ? t : n; 0 <= --i; )
                  e.push(i);
                return e;
              }),
              gt: fe(function (e, t, n) {
                for (var i = n < 0 ? n + t : n; ++i < t; ) e.push(i);
                return e;
              }),
            },
          }).pseudos.nth = i.pseudos.eq),
        {
          radio: !0,
          checkbox: !0,
          file: !0,
          password: !0,
          image: !0,
        }))
          i.pseudos[t] = ge(t);
        for (t in {
          submit: !0,
          reset: !0,
        })
          i.pseudos[t] = pe(t);

        function ve() {}

        function be(e) {
          for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value;
          return i;
        }

        function we(e, t, n) {
          var i = t.dir,
            r = t.next,
            o = r || i,
            s = n && "parentNode" === o,
            a = C++;
          return t.first
            ? function (t, n, r) {
                for (; (t = t[i]); )
                  if (1 === t.nodeType || s) return e(t, n, r);
                return !1;
              }
            : function (t, n, l) {
                var c,
                  d,
                  u,
                  h = [x, a];
                if (l) {
                  for (; (t = t[i]); )
                    if ((1 === t.nodeType || s) && e(t, n, l)) return !0;
                } else
                  for (; (t = t[i]); )
                    if (1 === t.nodeType || s)
                      if (
                        ((d =
                          (u = t[w] || (t[w] = {}))[t.uniqueID] ||
                          (u[t.uniqueID] = {})),
                        r && r === t.nodeName.toLowerCase())
                      )
                        t = t[i] || t;
                      else {
                        if ((c = d[o]) && c[0] === x && c[1] === a)
                          return (h[2] = c[2]);
                        if (((d[o] = h)[2] = e(t, n, l))) return !0;
                      }
                return !1;
              };
        }

        function ye(e) {
          return 1 < e.length
            ? function (t, n, i) {
                for (var r = e.length; r--; ) if (!e[r](t, n, i)) return !1;
                return !0;
              }
            : e[0];
        }

        function xe(e, t, n, i, r) {
          for (var o, s = [], a = 0, l = e.length, c = null != t; a < l; a++)
            (o = e[a]) && ((n && !n(o, i, r)) || (s.push(o), c && t.push(a)));
          return s;
        }

        function Ce(e, t, n, i, r, o) {
          return (
            i && !i[w] && (i = Ce(i)),
            r && !r[w] && (r = Ce(r, o)),
            ce(function (o, s, a, l) {
              var c,
                d,
                u,
                h = [],
                g = [],
                p = s.length,
                A =
                  o ||
                  (function (e, t, n) {
                    for (var i = 0, r = t.length; i < r; i++) ae(e, t[i], n);
                    return n;
                  })(t || "*", a.nodeType ? [a] : a, []),
                f = !e || (!o && t) ? A : xe(A, h, e, a, l),
                m = n ? (r || (o ? e : p || i) ? [] : s) : f;
              if ((n && n(f, m, a, l), i))
                for (c = xe(m, g), i(c, [], a, l), d = c.length; d--; )
                  (u = c[d]) && (m[g[d]] = !(f[g[d]] = u));
              if (o) {
                if (r || e) {
                  if (r) {
                    for (c = [], d = m.length; d--; )
                      (u = m[d]) && c.push((f[d] = u));
                    r(null, (m = []), c, l);
                  }
                  for (d = m.length; d--; )
                    (u = m[d]) &&
                      -1 < (c = r ? D(o, u) : h[d]) &&
                      (o[c] = !(s[c] = u));
                }
              } else (m = xe(m === s ? m.splice(p, m.length) : m)), r ? r(null, s, m, l) : B.apply(s, m);
            })
          );
        }

        function ke(e) {
          for (
            var t,
              n,
              r,
              o = e.length,
              s = i.relative[e[0].type],
              a = s || i.relative[" "],
              l = s ? 1 : 0,
              d = we(
                function (e) {
                  return e === t;
                },
                a,
                !0
              ),
              u = we(
                function (e) {
                  return -1 < D(t, e);
                },
                a,
                !0
              ),
              h = [
                function (e, n, i) {
                  var r =
                    (!s && (i || n !== c)) ||
                    ((t = n).nodeType ? d(e, n, i) : u(e, n, i));
                  return (t = null), r;
                },
              ];
            l < o;
            l++
          )
            if ((n = i.relative[e[l].type])) h = [we(ye(h), n)];
            else {
              if ((n = i.filter[e[l].type].apply(null, e[l].matches))[w]) {
                for (r = ++l; r < o && !i.relative[e[r].type]; r++);
                return Ce(
                  1 < l && ye(h),
                  1 < l &&
                    be(
                      e.slice(0, l - 1).concat({
                        value: " " === e[l - 2].type ? "*" : "",
                      })
                    ).replace(z, "$1"),
                  n,
                  l < r && ke(e.slice(l, r)),
                  r < o && ke((e = e.slice(r))),
                  r < o && be(e)
                );
              }
              h.push(n);
            }
          return ye(h);
        }
        return (
          (ve.prototype = i.filters = i.pseudos),
          (i.setFilters = new ve()),
          (s = ae.tokenize =
            function (e, t) {
              var n,
                r,
                o,
                s,
                a,
                l,
                c,
                d = _[e + " "];
              if (d) return t ? 0 : d.slice(0);
              for (a = e, l = [], c = i.preFilter; a; ) {
                for (s in ((n && !(r = V.exec(a))) ||
                  (r && (a = a.slice(r[0].length) || a), l.push((o = []))),
                (n = !1),
                (r = F.exec(a)) &&
                  ((n = r.shift()),
                  o.push({
                    value: n,
                    type: r[0].replace(z, " "),
                  }),
                  (a = a.slice(n.length))),
                i.filter))
                  !(r = X[s].exec(a)) ||
                    (c[s] && !(r = c[s](r))) ||
                    ((n = r.shift()),
                    o.push({
                      value: n,
                      type: s,
                      matches: r,
                    }),
                    (a = a.slice(n.length)));
                if (!n) break;
              }
              return t ? a.length : a ? ae.error(e) : _(e, l).slice(0);
            }),
          (a = ae.compile =
            function (e, t) {
              var n,
                r,
                o,
                a,
                l,
                d,
                u = [],
                p = [],
                f = I[e + " "];
              if (!f) {
                for (t || (t = s(e)), n = t.length; n--; )
                  (f = ke(t[n]))[w] ? u.push(f) : p.push(f);
                (f = I(
                  e,
                  ((r = p),
                  (a = 0 < (o = u).length),
                  (l = 0 < r.length),
                  (d = function (e, t, n, s, d) {
                    var u,
                      p,
                      f,
                      m = 0,
                      v = "0",
                      b = e && [],
                      w = [],
                      y = c,
                      C = e || (l && i.find.TAG("*", d)),
                      k = (x += null == y ? 1 : Math.random() || 0.1),
                      _ = C.length;
                    for (
                      d && (c = t === g || t || d);
                      v !== _ && null != (u = C[v]);
                      v++
                    ) {
                      if (l && u) {
                        for (
                          p = 0, t || u.ownerDocument === g || (h(u), (n = !A));
                          (f = r[p++]);

                        )
                          if (f(u, t || g, n)) {
                            s.push(u);
                            break;
                          }
                        d && (x = k);
                      }
                      a && ((u = !f && u) && m--, e && b.push(u));
                    }
                    if (((m += v), a && v !== m)) {
                      for (p = 0; (f = o[p++]); ) f(b, w, t, n);
                      if (e) {
                        if (0 < m)
                          for (; v--; ) b[v] || w[v] || (w[v] = j.call(s));
                        w = xe(w);
                      }
                      B.apply(s, w),
                        d &&
                          !e &&
                          0 < w.length &&
                          1 < m + o.length &&
                          ae.uniqueSort(s);
                    }
                    return d && ((x = k), (c = y)), b;
                  }),
                  a ? ce(d) : d)
                )).selector = e;
              }
              return f;
            }),
          (l = ae.select =
            function (e, t, n, r) {
              var o,
                l,
                c,
                d,
                u,
                h = "function" == typeof e && e,
                g = !r && s((e = h.selector || e));
              if (((n = n || []), 1 === g.length)) {
                if (
                  2 < (l = g[0] = g[0].slice(0)).length &&
                  "ID" === (c = l[0]).type &&
                  9 === t.nodeType &&
                  A &&
                  i.relative[l[1].type]
                ) {
                  if (
                    !(t = (i.find.ID(c.matches[0].replace(te, ne), t) || [])[0])
                  )
                    return n;
                  h && (t = t.parentNode),
                    (e = e.slice(l.shift().value.length));
                }
                for (
                  o = X.needsContext.test(e) ? 0 : l.length;
                  o-- && ((c = l[o]), !i.relative[(d = c.type)]);

                )
                  if (
                    (u = i.find[d]) &&
                    (r = u(
                      c.matches[0].replace(te, ne),
                      (ee.test(l[0].type) && me(t.parentNode)) || t
                    ))
                  ) {
                    if ((l.splice(o, 1), !(e = r.length && be(l))))
                      return B.apply(n, r), n;
                    break;
                  }
              }
              return (
                (h || a(e, g))(
                  r,
                  t,
                  !A,
                  n,
                  !t || (ee.test(e) && me(t.parentNode)) || t
                ),
                n
              );
            }),
          (n.sortStable = w.split("").sort(T).join("") === w),
          (n.detectDuplicates = !!u),
          h(),
          (n.sortDetached = de(function (e) {
            return 1 & e.compareDocumentPosition(g.createElement("fieldset"));
          })),
          de(function (e) {
            return (
              (e.innerHTML = "<a href='#'></a>"),
              "#" === e.firstChild.getAttribute("href")
            );
          }) ||
            ue("type|href|height|width", function (e, t, n) {
              if (!n)
                return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
            }),
          (n.attributes &&
            de(function (e) {
              return (
                (e.innerHTML = "<input/>"),
                e.firstChild.setAttribute("value", ""),
                "" === e.firstChild.getAttribute("value")
              );
            })) ||
            ue("value", function (e, t, n) {
              if (!n && "input" === e.nodeName.toLowerCase())
                return e.defaultValue;
            }),
          de(function (e) {
            return null == e.getAttribute("disabled");
          }) ||
            ue(O, function (e, t, n) {
              var i;
              if (!n)
                return !0 === e[t]
                  ? t.toLowerCase()
                  : (i = e.getAttributeNode(t)) && i.specified
                  ? i.value
                  : null;
            }),
          ae
        );
      })(n);
      (k.find = E),
        (k.expr = E.selectors),
        (k.expr[":"] = k.expr.pseudos),
        (k.uniqueSort = k.unique = E.uniqueSort),
        (k.text = E.getText),
        (k.isXMLDoc = E.isXML),
        (k.contains = E.contains),
        (k.escapeSelector = E.escape);
      var T = function (e, t, n) {
          for (var i = [], r = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
            if (1 === e.nodeType) {
              if (r && k(e).is(n)) break;
              i.push(e);
            }
          return i;
        },
        S = function (e, t) {
          for (var n = []; e; e = e.nextSibling)
            1 === e.nodeType && e !== t && n.push(e);
          return n;
        },
        L = k.expr.match.needsContext;

      function j(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
      }
      var R = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

      function B(e, t, n) {
        return v(t)
          ? k.grep(e, function (e, i) {
              return !!t.call(e, i, e) !== n;
            })
          : t.nodeType
          ? k.grep(e, function (e) {
              return (e === t) !== n;
            })
          : "string" != typeof t
          ? k.grep(e, function (e) {
              return -1 < u.call(t, e) !== n;
            })
          : k.filter(t, e, n);
      }
      (k.filter = function (e, t, n) {
        var i = t[0];
        return (
          n && (e = ":not(" + e + ")"),
          1 === t.length && 1 === i.nodeType
            ? k.find.matchesSelector(i, e)
              ? [i]
              : []
            : k.find.matches(
                e,
                k.grep(t, function (e) {
                  return 1 === e.nodeType;
                })
              )
        );
      }),
        k.fn.extend({
          find: function (e) {
            var t,
              n,
              i = this.length,
              r = this;
            if ("string" != typeof e)
              return this.pushStack(
                k(e).filter(function () {
                  for (t = 0; t < i; t++) if (k.contains(r[t], this)) return !0;
                })
              );
            for (n = this.pushStack([]), t = 0; t < i; t++) k.find(e, r[t], n);
            return 1 < i ? k.uniqueSort(n) : n;
          },
          filter: function (e) {
            return this.pushStack(B(this, e || [], !1));
          },
          not: function (e) {
            return this.pushStack(B(this, e || [], !0));
          },
          is: function (e) {
            return !!B(
              this,
              "string" == typeof e && L.test(e) ? k(e) : e || [],
              !1
            ).length;
          },
        });
      var M,
        D = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
      ((k.fn.init = function (e, t, n) {
        var i, r;
        if (!e) return this;
        if (((n = n || M), "string" == typeof e)) {
          if (
            !(i =
              "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length
                ? [null, e, null]
                : D.exec(e)) ||
            (!i[1] && t)
          )
            return !t || t.jquery
              ? (t || n).find(e)
              : this.constructor(t).find(e);
          if (i[1]) {
            if (
              ((t = t instanceof k ? t[0] : t),
              k.merge(
                this,
                k.parseHTML(
                  i[1],
                  t && t.nodeType ? t.ownerDocument || t : s,
                  !0
                )
              ),
              R.test(i[1]) && k.isPlainObject(t))
            )
              for (i in t) v(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
            return this;
          }
          return (
            (r = s.getElementById(i[2])) && ((this[0] = r), (this.length = 1)),
            this
          );
        }
        return e.nodeType
          ? ((this[0] = e), (this.length = 1), this)
          : v(e)
          ? void 0 !== n.ready
            ? n.ready(e)
            : e(k)
          : k.makeArray(e, this);
      }).prototype = k.fn),
        (M = k(s));
      var O = /^(?:parents|prev(?:Until|All))/,
        H = {
          children: !0,
          contents: !0,
          next: !0,
          prev: !0,
        };

      function W(e, t) {
        for (; (e = e[t]) && 1 !== e.nodeType; );
        return e;
      }
      k.fn.extend({
        has: function (e) {
          var t = k(e, this),
            n = t.length;
          return this.filter(function () {
            for (var e = 0; e < n; e++) if (k.contains(this, t[e])) return !0;
          });
        },
        closest: function (e, t) {
          var n,
            i = 0,
            r = this.length,
            o = [],
            s = "string" != typeof e && k(e);
          if (!L.test(e))
            for (; i < r; i++)
              for (n = this[i]; n && n !== t; n = n.parentNode)
                if (
                  n.nodeType < 11 &&
                  (s
                    ? -1 < s.index(n)
                    : 1 === n.nodeType && k.find.matchesSelector(n, e))
                ) {
                  o.push(n);
                  break;
                }
          return this.pushStack(1 < o.length ? k.uniqueSort(o) : o);
        },
        index: function (e) {
          return e
            ? "string" == typeof e
              ? u.call(k(e), this[0])
              : u.call(this, e.jquery ? e[0] : e)
            : this[0] && this[0].parentNode
            ? this.first().prevAll().length
            : -1;
        },
        add: function (e, t) {
          return this.pushStack(k.uniqueSort(k.merge(this.get(), k(e, t))));
        },
        addBack: function (e) {
          return this.add(
            null == e ? this.prevObject : this.prevObject.filter(e)
          );
        },
      }),
        k.each(
          {
            parent: function (e) {
              var t = e.parentNode;
              return t && 11 !== t.nodeType ? t : null;
            },
            parents: function (e) {
              return T(e, "parentNode");
            },
            parentsUntil: function (e, t, n) {
              return T(e, "parentNode", n);
            },
            next: function (e) {
              return W(e, "nextSibling");
            },
            prev: function (e) {
              return W(e, "previousSibling");
            },
            nextAll: function (e) {
              return T(e, "nextSibling");
            },
            prevAll: function (e) {
              return T(e, "previousSibling");
            },
            nextUntil: function (e, t, n) {
              return T(e, "nextSibling", n);
            },
            prevUntil: function (e, t, n) {
              return T(e, "previousSibling", n);
            },
            siblings: function (e) {
              return S((e.parentNode || {}).firstChild, e);
            },
            children: function (e) {
              return S(e.firstChild);
            },
            contents: function (e) {
              return void 0 !== e.contentDocument
                ? e.contentDocument
                : (j(e, "template") && (e = e.content || e),
                  k.merge([], e.childNodes));
            },
          },
          function (e, t) {
            k.fn[e] = function (n, i) {
              var r = k.map(this, t, n);
              return (
                "Until" !== e.slice(-5) && (i = n),
                i && "string" == typeof i && (r = k.filter(i, r)),
                1 < this.length &&
                  (H[e] || k.uniqueSort(r), O.test(e) && r.reverse()),
                this.pushStack(r)
              );
            };
          }
        );
      var P = /[^\x20\t\r\n\f]+/g;

      function N(e) {
        return e;
      }

      function q(e) {
        throw e;
      }

      function z(e, t, n, i) {
        var r;
        try {
          e && v((r = e.promise))
            ? r.call(e).done(t).fail(n)
            : e && v((r = e.then))
            ? r.call(e, t, n)
            : t.apply(void 0, [e].slice(i));
        } catch (e) {
          n.apply(void 0, [e]);
        }
      }
      (k.Callbacks = function (e) {
        var t, n;
        e =
          "string" == typeof e
            ? ((t = e),
              (n = {}),
              k.each(t.match(P) || [], function (e, t) {
                n[t] = !0;
              }),
              n)
            : k.extend({}, e);
        var i,
          r,
          o,
          s,
          a = [],
          l = [],
          c = -1,
          d = function () {
            for (s = s || e.once, o = i = !0; l.length; c = -1)
              for (r = l.shift(); ++c < a.length; )
                !1 === a[c].apply(r[0], r[1]) &&
                  e.stopOnFalse &&
                  ((c = a.length), (r = !1));
            e.memory || (r = !1), (i = !1), s && (a = r ? [] : "");
          },
          u = {
            add: function () {
              return (
                a &&
                  (r && !i && ((c = a.length - 1), l.push(r)),
                  (function t(n) {
                    k.each(n, function (n, i) {
                      v(i)
                        ? (e.unique && u.has(i)) || a.push(i)
                        : i && i.length && "string" !== x(i) && t(i);
                    });
                  })(arguments),
                  r && !i && d()),
                this
              );
            },
            remove: function () {
              return (
                k.each(arguments, function (e, t) {
                  for (var n; -1 < (n = k.inArray(t, a, n)); )
                    a.splice(n, 1), n <= c && c--;
                }),
                this
              );
            },
            has: function (e) {
              return e ? -1 < k.inArray(e, a) : 0 < a.length;
            },
            empty: function () {
              return a && (a = []), this;
            },
            disable: function () {
              return (s = l = []), (a = r = ""), this;
            },
            disabled: function () {
              return !a;
            },
            lock: function () {
              return (s = l = []), r || i || (a = r = ""), this;
            },
            locked: function () {
              return !!s;
            },
            fireWith: function (e, t) {
              return (
                s ||
                  ((t = [e, (t = t || []).slice ? t.slice() : t]),
                  l.push(t),
                  i || d()),
                this
              );
            },
            fire: function () {
              return u.fireWith(this, arguments), this;
            },
            fired: function () {
              return !!o;
            },
          };
        return u;
      }),
        k.extend({
          Deferred: function (e) {
            var t = [
                [
                  "notify",
                  "progress",
                  k.Callbacks("memory"),
                  k.Callbacks("memory"),
                  2,
                ],
                [
                  "resolve",
                  "done",
                  k.Callbacks("once memory"),
                  k.Callbacks("once memory"),
                  0,
                  "resolved",
                ],
                [
                  "reject",
                  "fail",
                  k.Callbacks("once memory"),
                  k.Callbacks("once memory"),
                  1,
                  "rejected",
                ],
              ],
              i = "pending",
              r = {
                state: function () {
                  return i;
                },
                always: function () {
                  return o.done(arguments).fail(arguments), this;
                },
                catch: function (e) {
                  return r.then(null, e);
                },
                pipe: function () {
                  var e = arguments;
                  return k
                    .Deferred(function (n) {
                      k.each(t, function (t, i) {
                        var r = v(e[i[4]]) && e[i[4]];
                        o[i[1]](function () {
                          var e = r && r.apply(this, arguments);
                          e && v(e.promise)
                            ? e
                                .promise()
                                .progress(n.notify)
                                .done(n.resolve)
                                .fail(n.reject)
                            : n[i[0] + "With"](this, r ? [e] : arguments);
                        });
                      }),
                        (e = null);
                    })
                    .promise();
                },
                then: function (e, i, r) {
                  var o = 0;

                  function s(e, t, i, r) {
                    return function () {
                      var a = this,
                        l = arguments,
                        c = function () {
                          var n, c;
                          if (!(e < o)) {
                            if ((n = i.apply(a, l)) === t.promise())
                              throw new TypeError("Thenable self-resolution");
                            (c =
                              n &&
                              ("object" == typeof n ||
                                "function" == typeof n) &&
                              n.then),
                              v(c)
                                ? r
                                  ? c.call(n, s(o, t, N, r), s(o, t, q, r))
                                  : (o++,
                                    c.call(
                                      n,
                                      s(o, t, N, r),
                                      s(o, t, q, r),
                                      s(o, t, N, t.notifyWith)
                                    ))
                                : (i !== N && ((a = void 0), (l = [n])),
                                  (r || t.resolveWith)(a, l));
                          }
                        },
                        d = r
                          ? c
                          : function () {
                              try {
                                c();
                              } catch (n) {
                                k.Deferred.exceptionHook &&
                                  k.Deferred.exceptionHook(n, d.stackTrace),
                                  o <= e + 1 &&
                                    (i !== q && ((a = void 0), (l = [n])),
                                    t.rejectWith(a, l));
                              }
                            };
                      e
                        ? d()
                        : (k.Deferred.getStackHook &&
                            (d.stackTrace = k.Deferred.getStackHook()),
                          n.setTimeout(d));
                    };
                  }
                  return k
                    .Deferred(function (n) {
                      t[0][3].add(s(0, n, v(r) ? r : N, n.notifyWith)),
                        t[1][3].add(s(0, n, v(e) ? e : N)),
                        t[2][3].add(s(0, n, v(i) ? i : q));
                    })
                    .promise();
                },
                promise: function (e) {
                  return null != e ? k.extend(e, r) : r;
                },
              },
              o = {};
            return (
              k.each(t, function (e, n) {
                var s = n[2],
                  a = n[5];
                (r[n[1]] = s.add),
                  a &&
                    s.add(
                      function () {
                        i = a;
                      },
                      t[3 - e][2].disable,
                      t[3 - e][3].disable,
                      t[0][2].lock,
                      t[0][3].lock
                    ),
                  s.add(n[3].fire),
                  (o[n[0]] = function () {
                    return (
                      o[n[0] + "With"](this === o ? void 0 : this, arguments),
                      this
                    );
                  }),
                  (o[n[0] + "With"] = s.fireWith);
              }),
              r.promise(o),
              e && e.call(o, o),
              o
            );
          },
          when: function (e) {
            var t = arguments.length,
              n = t,
              i = Array(n),
              r = l.call(arguments),
              o = k.Deferred(),
              s = function (e) {
                return function (n) {
                  (i[e] = this),
                    (r[e] = 1 < arguments.length ? l.call(arguments) : n),
                    --t || o.resolveWith(i, r);
                };
              };
            if (
              t <= 1 &&
              (z(e, o.done(s(n)).resolve, o.reject, !t),
              "pending" === o.state() || v(r[n] && r[n].then))
            )
              return o.then();
            for (; n--; ) z(r[n], s(n), o.reject);
            return o.promise();
          },
        });
      var V = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
      (k.Deferred.exceptionHook = function (e, t) {
        n.console &&
          n.console.warn &&
          e &&
          V.test(e.name) &&
          n.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t);
      }),
        (k.readyException = function (e) {
          n.setTimeout(function () {
            throw e;
          });
        });
      var F = k.Deferred();

      function Q() {
        s.removeEventListener("DOMContentLoaded", Q),
          n.removeEventListener("load", Q),
          k.ready();
      }
      (k.fn.ready = function (e) {
        return (
          F.then(e).catch(function (e) {
            k.readyException(e);
          }),
          this
        );
      }),
        k.extend({
          isReady: !1,
          readyWait: 1,
          ready: function (e) {
            (!0 === e ? --k.readyWait : k.isReady) ||
              ((k.isReady = !0) !== e && 0 < --k.readyWait) ||
              F.resolveWith(s, [k]);
          },
        }),
        (k.ready.then = F.then),
        "complete" === s.readyState ||
        ("loading" !== s.readyState && !s.documentElement.doScroll)
          ? n.setTimeout(k.ready)
          : (s.addEventListener("DOMContentLoaded", Q),
            n.addEventListener("load", Q));
      var U = function (e, t, n, i, r, o, s) {
          var a = 0,
            l = e.length,
            c = null == n;
          if ("object" === x(n))
            for (a in ((r = !0), n)) U(e, t, a, n[a], !0, o, s);
          else if (
            void 0 !== i &&
            ((r = !0),
            v(i) || (s = !0),
            c &&
              (s
                ? (t.call(e, i), (t = null))
                : ((c = t),
                  (t = function (e, t, n) {
                    return c.call(k(e), n);
                  }))),
            t)
          )
            for (; a < l; a++) t(e[a], n, s ? i : i.call(e[a], a, t(e[a], n)));
          return r ? e : c ? t.call(e) : l ? t(e[0], n) : o;
        },
        K = /^-ms-/,
        X = /-([a-z])/g;

      function G(e, t) {
        return t.toUpperCase();
      }

      function J(e) {
        return e.replace(K, "ms-").replace(X, G);
      }
      var Y = function (e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
      };

      function Z() {
        this.expando = k.expando + Z.uid++;
      }
      (Z.uid = 1),
        (Z.prototype = {
          cache: function (e) {
            var t = e[this.expando];
            return (
              t ||
                ((t = {}),
                Y(e) &&
                  (e.nodeType
                    ? (e[this.expando] = t)
                    : Object.defineProperty(e, this.expando, {
                        value: t,
                        configurable: !0,
                      }))),
              t
            );
          },
          set: function (e, t, n) {
            var i,
              r = this.cache(e);
            if ("string" == typeof t) r[J(t)] = n;
            else for (i in t) r[J(i)] = t[i];
            return r;
          },
          get: function (e, t) {
            return void 0 === t
              ? this.cache(e)
              : e[this.expando] && e[this.expando][J(t)];
          },
          access: function (e, t, n) {
            return void 0 === t || (t && "string" == typeof t && void 0 === n)
              ? this.get(e, t)
              : (this.set(e, t, n), void 0 !== n ? n : t);
          },
          remove: function (e, t) {
            var n,
              i = e[this.expando];
            if (void 0 !== i) {
              if (void 0 !== t) {
                n = (t = Array.isArray(t)
                  ? t.map(J)
                  : (t = J(t)) in i
                  ? [t]
                  : t.match(P) || []).length;
                for (; n--; ) delete i[t[n]];
              }
              (void 0 === t || k.isEmptyObject(i)) &&
                (e.nodeType
                  ? (e[this.expando] = void 0)
                  : delete e[this.expando]);
            }
          },
          hasData: function (e) {
            var t = e[this.expando];
            return void 0 !== t && !k.isEmptyObject(t);
          },
        });
      var $ = new Z(),
        ee = new Z(),
        te = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        ne = /[A-Z]/g;

      function ie(e, t, n) {
        var i, r;
        if (void 0 === n && 1 === e.nodeType)
          if (
            ((i = "data-" + t.replace(ne, "-$&").toLowerCase()),
            "string" == typeof (n = e.getAttribute(i)))
          ) {
            try {
              n =
                "true" === (r = n) ||
                ("false" !== r &&
                  ("null" === r
                    ? null
                    : r === +r + ""
                    ? +r
                    : te.test(r)
                    ? JSON.parse(r)
                    : r));
            } catch (e) {}
            ee.set(e, t, n);
          } else n = void 0;
        return n;
      }
      k.extend({
        hasData: function (e) {
          return ee.hasData(e) || $.hasData(e);
        },
        data: function (e, t, n) {
          return ee.access(e, t, n);
        },
        removeData: function (e, t) {
          ee.remove(e, t);
        },
        _data: function (e, t, n) {
          return $.access(e, t, n);
        },
        _removeData: function (e, t) {
          $.remove(e, t);
        },
      }),
        k.fn.extend({
          data: function (e, t) {
            var n,
              i,
              r,
              o = this[0],
              s = o && o.attributes;
            if (void 0 === e) {
              if (
                this.length &&
                ((r = ee.get(o)), 1 === o.nodeType && !$.get(o, "hasDataAttrs"))
              ) {
                for (n = s.length; n--; )
                  s[n] &&
                    0 === (i = s[n].name).indexOf("data-") &&
                    ((i = J(i.slice(5))), ie(o, i, r[i]));
                $.set(o, "hasDataAttrs", !0);
              }
              return r;
            }
            return "object" == typeof e
              ? this.each(function () {
                  ee.set(this, e);
                })
              : U(
                  this,
                  function (t) {
                    var n;
                    if (o && void 0 === t)
                      return void 0 !== (n = ee.get(o, e)) ||
                        void 0 !== (n = ie(o, e))
                        ? n
                        : void 0;
                    this.each(function () {
                      ee.set(this, e, t);
                    });
                  },
                  null,
                  t,
                  1 < arguments.length,
                  null,
                  !0
                );
          },
          removeData: function (e) {
            return this.each(function () {
              ee.remove(this, e);
            });
          },
        }),
        k.extend({
          queue: function (e, t, n) {
            var i;
            if (e)
              return (
                (t = (t || "fx") + "queue"),
                (i = $.get(e, t)),
                n &&
                  (!i || Array.isArray(n)
                    ? (i = $.access(e, t, k.makeArray(n)))
                    : i.push(n)),
                i || []
              );
          },
          dequeue: function (e, t) {
            t = t || "fx";
            var n = k.queue(e, t),
              i = n.length,
              r = n.shift(),
              o = k._queueHooks(e, t);
            "inprogress" === r && ((r = n.shift()), i--),
              r &&
                ("fx" === t && n.unshift("inprogress"),
                delete o.stop,
                r.call(
                  e,
                  function () {
                    k.dequeue(e, t);
                  },
                  o
                )),
              !i && o && o.empty.fire();
          },
          _queueHooks: function (e, t) {
            var n = t + "queueHooks";
            return (
              $.get(e, n) ||
              $.access(e, n, {
                empty: k.Callbacks("once memory").add(function () {
                  $.remove(e, [t + "queue", n]);
                }),
              })
            );
          },
        }),
        k.fn.extend({
          queue: function (e, t) {
            var n = 2;
            return (
              "string" != typeof e && ((t = e), (e = "fx"), n--),
              arguments.length < n
                ? k.queue(this[0], e)
                : void 0 === t
                ? this
                : this.each(function () {
                    var n = k.queue(this, e, t);
                    k._queueHooks(this, e),
                      "fx" === e && "inprogress" !== n[0] && k.dequeue(this, e);
                  })
            );
          },
          dequeue: function (e) {
            return this.each(function () {
              k.dequeue(this, e);
            });
          },
          clearQueue: function (e) {
            return this.queue(e || "fx", []);
          },
          promise: function (e, t) {
            var n,
              i = 1,
              r = k.Deferred(),
              o = this,
              s = this.length,
              a = function () {
                --i || r.resolveWith(o, [o]);
              };
            for (
              "string" != typeof e && ((t = e), (e = void 0)), e = e || "fx";
              s--;

            )
              (n = $.get(o[s], e + "queueHooks")) &&
                n.empty &&
                (i++, n.empty.add(a));
            return a(), r.promise(t);
          },
        });
      var re = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        oe = new RegExp("^(?:([+-])=|)(" + re + ")([a-z%]*)$", "i"),
        se = ["Top", "Right", "Bottom", "Left"],
        ae = s.documentElement,
        le = function (e) {
          return k.contains(e.ownerDocument, e);
        },
        ce = {
          composed: !0,
        };
      ae.getRootNode &&
        (le = function (e) {
          return (
            k.contains(e.ownerDocument, e) ||
            e.getRootNode(ce) === e.ownerDocument
          );
        });
      var de = function (e, t) {
          return (
            "none" === (e = t || e).style.display ||
            ("" === e.style.display && le(e) && "none" === k.css(e, "display"))
          );
        },
        ue = function (e, t, n, i) {
          var r,
            o,
            s = {};
          for (o in t) (s[o] = e.style[o]), (e.style[o] = t[o]);
          for (o in ((r = n.apply(e, i || [])), t)) e.style[o] = s[o];
          return r;
        };

      function he(e, t, n, i) {
        var r,
          o,
          s = 20,
          a = i
            ? function () {
                return i.cur();
              }
            : function () {
                return k.css(e, t, "");
              },
          l = a(),
          c = (n && n[3]) || (k.cssNumber[t] ? "" : "px"),
          d =
            e.nodeType &&
            (k.cssNumber[t] || ("px" !== c && +l)) &&
            oe.exec(k.css(e, t));
        if (d && d[3] !== c) {
          for (l /= 2, c = c || d[3], d = +l || 1; s--; )
            k.style(e, t, d + c),
              (1 - o) * (1 - (o = a() / l || 0.5)) <= 0 && (s = 0),
              (d /= o);
          (d *= 2), k.style(e, t, d + c), (n = n || []);
        }
        return (
          n &&
            ((d = +d || +l || 0),
            (r = n[1] ? d + (n[1] + 1) * n[2] : +n[2]),
            i && ((i.unit = c), (i.start = d), (i.end = r))),
          r
        );
      }
      var ge = {};

      function pe(e, t) {
        for (var n, i, r, o, s, a, l, c = [], d = 0, u = e.length; d < u; d++)
          (i = e[d]).style &&
            ((n = i.style.display),
            t
              ? ("none" === n &&
                  ((c[d] = $.get(i, "display") || null),
                  c[d] || (i.style.display = "")),
                "" === i.style.display &&
                  de(i) &&
                  (c[d] =
                    ((l = s = o = void 0),
                    (s = (r = i).ownerDocument),
                    (a = r.nodeName),
                    (l = ge[a]) ||
                      ((o = s.body.appendChild(s.createElement(a))),
                      (l = k.css(o, "display")),
                      o.parentNode.removeChild(o),
                      "none" === l && (l = "block"),
                      (ge[a] = l)))))
              : "none" !== n && ((c[d] = "none"), $.set(i, "display", n)));
        for (d = 0; d < u; d++) null != c[d] && (e[d].style.display = c[d]);
        return e;
      }
      k.fn.extend({
        show: function () {
          return pe(this, !0);
        },
        hide: function () {
          return pe(this);
        },
        toggle: function (e) {
          return "boolean" == typeof e
            ? e
              ? this.show()
              : this.hide()
            : this.each(function () {
                de(this) ? k(this).show() : k(this).hide();
              });
        },
      });
      var Ae = /^(?:checkbox|radio)$/i,
        fe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        me = /^$|^module$|\/(?:java|ecma)script/i,
        ve = {
          option: [1, "<select multiple='multiple'>", "</select>"],
          thead: [1, "<table>", "</table>"],
          col: [2, "<table><colgroup>", "</colgroup></table>"],
          tr: [2, "<table><tbody>", "</tbody></table>"],
          td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
          _default: [0, "", ""],
        };

      function be(e, t) {
        var n;
        return (
          (n =
            void 0 !== e.getElementsByTagName
              ? e.getElementsByTagName(t || "*")
              : void 0 !== e.querySelectorAll
              ? e.querySelectorAll(t || "*")
              : []),
          void 0 === t || (t && j(e, t)) ? k.merge([e], n) : n
        );
      }

      function we(e, t) {
        for (var n = 0, i = e.length; n < i; n++)
          $.set(e[n], "globalEval", !t || $.get(t[n], "globalEval"));
      }
      (ve.optgroup = ve.option),
        (ve.tbody = ve.tfoot = ve.colgroup = ve.caption = ve.thead),
        (ve.th = ve.td);
      var ye,
        xe,
        Ce = /<|&#?\w+;/;

      function ke(e, t, n, i, r) {
        for (
          var o,
            s,
            a,
            l,
            c,
            d,
            u = t.createDocumentFragment(),
            h = [],
            g = 0,
            p = e.length;
          g < p;
          g++
        )
          if ((o = e[g]) || 0 === o)
            if ("object" === x(o)) k.merge(h, o.nodeType ? [o] : o);
            else if (Ce.test(o)) {
              for (
                s = s || u.appendChild(t.createElement("div")),
                  a = (fe.exec(o) || ["", ""])[1].toLowerCase(),
                  l = ve[a] || ve._default,
                  s.innerHTML = l[1] + k.htmlPrefilter(o) + l[2],
                  d = l[0];
                d--;

              )
                s = s.lastChild;
              k.merge(h, s.childNodes), ((s = u.firstChild).textContent = "");
            } else h.push(t.createTextNode(o));
        for (u.textContent = "", g = 0; (o = h[g++]); )
          if (i && -1 < k.inArray(o, i)) r && r.push(o);
          else if (
            ((c = le(o)), (s = be(u.appendChild(o), "script")), c && we(s), n)
          )
            for (d = 0; (o = s[d++]); ) me.test(o.type || "") && n.push(o);
        return u;
      }
      (ye = s.createDocumentFragment().appendChild(s.createElement("div"))),
        (xe = s.createElement("input")).setAttribute("type", "radio"),
        xe.setAttribute("checked", "checked"),
        xe.setAttribute("name", "t"),
        ye.appendChild(xe),
        (m.checkClone = ye.cloneNode(!0).cloneNode(!0).lastChild.checked),
        (ye.innerHTML = "<textarea>x</textarea>"),
        (m.noCloneChecked = !!ye.cloneNode(!0).lastChild.defaultValue);
      var _e = /^key/,
        Ie = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,
        Ee = /^([^.]*)(?:\.(.+)|)/;

      function Te() {
        return !0;
      }

      function Se() {
        return !1;
      }

      function Le(e, t) {
        return (
          (e ===
            (function () {
              try {
                return s.activeElement;
              } catch (e) {}
            })()) ==
          ("focus" === t)
        );
      }

      function je(e, t, n, i, r, o) {
        var s, a;
        if ("object" == typeof t) {
          for (a in ("string" != typeof n && ((i = i || n), (n = void 0)), t))
            je(e, a, n, i, t[a], o);
          return e;
        }
        if (
          (null == i && null == r
            ? ((r = n), (i = n = void 0))
            : null == r &&
              ("string" == typeof n
                ? ((r = i), (i = void 0))
                : ((r = i), (i = n), (n = void 0))),
          !1 === r)
        )
          r = Se;
        else if (!r) return e;
        return (
          1 === o &&
            ((s = r),
            ((r = function (e) {
              return k().off(e), s.apply(this, arguments);
            }).guid = s.guid || (s.guid = k.guid++))),
          e.each(function () {
            k.event.add(this, t, r, i, n);
          })
        );
      }

      function Re(e, t, n) {
        n
          ? ($.set(e, t, !1),
            k.event.add(e, t, {
              namespace: !1,
              handler: function (e) {
                var i,
                  r,
                  o = $.get(this, t);
                if (1 & e.isTrigger && this[t]) {
                  if (o.length)
                    (k.event.special[t] || {}).delegateType &&
                      e.stopPropagation();
                  else if (
                    ((o = l.call(arguments)),
                    $.set(this, t, o),
                    (i = n(this, t)),
                    this[t](),
                    o !== (r = $.get(this, t)) || i
                      ? $.set(this, t, !1)
                      : (r = {}),
                    o !== r)
                  )
                    return (
                      e.stopImmediatePropagation(), e.preventDefault(), r.value
                    );
                } else
                  o.length &&
                    ($.set(this, t, {
                      value: k.event.trigger(
                        k.extend(o[0], k.Event.prototype),
                        o.slice(1),
                        this
                      ),
                    }),
                    e.stopImmediatePropagation());
              },
            }))
          : void 0 === $.get(e, t) && k.event.add(e, t, Te);
      }
      (k.event = {
        global: {},
        add: function (e, t, n, i, r) {
          var o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            p,
            A,
            f = $.get(e);
          if (f)
            for (
              n.handler && ((n = (o = n).handler), (r = o.selector)),
                r && k.find.matchesSelector(ae, r),
                n.guid || (n.guid = k.guid++),
                (l = f.events) || (l = f.events = {}),
                (s = f.handle) ||
                  (s = f.handle =
                    function (t) {
                      return void 0 !== k && k.event.triggered !== t.type
                        ? k.event.dispatch.apply(e, arguments)
                        : void 0;
                    }),
                c = (t = (t || "").match(P) || [""]).length;
              c--;

            )
              (g = A = (a = Ee.exec(t[c]) || [])[1]),
                (p = (a[2] || "").split(".").sort()),
                g &&
                  ((u = k.event.special[g] || {}),
                  (g = (r ? u.delegateType : u.bindType) || g),
                  (u = k.event.special[g] || {}),
                  (d = k.extend(
                    {
                      type: g,
                      origType: A,
                      data: i,
                      handler: n,
                      guid: n.guid,
                      selector: r,
                      needsContext: r && k.expr.match.needsContext.test(r),
                      namespace: p.join("."),
                    },
                    o
                  )),
                  (h = l[g]) ||
                    (((h = l[g] = []).delegateCount = 0),
                    (u.setup && !1 !== u.setup.call(e, i, p, s)) ||
                      (e.addEventListener && e.addEventListener(g, s))),
                  u.add &&
                    (u.add.call(e, d),
                    d.handler.guid || (d.handler.guid = n.guid)),
                  r ? h.splice(h.delegateCount++, 0, d) : h.push(d),
                  (k.event.global[g] = !0));
        },
        remove: function (e, t, n, i, r) {
          var o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            p,
            A,
            f = $.hasData(e) && $.get(e);
          if (f && (l = f.events)) {
            for (c = (t = (t || "").match(P) || [""]).length; c--; )
              if (
                ((g = A = (a = Ee.exec(t[c]) || [])[1]),
                (p = (a[2] || "").split(".").sort()),
                g)
              ) {
                for (
                  u = k.event.special[g] || {},
                    h = l[(g = (i ? u.delegateType : u.bindType) || g)] || [],
                    a =
                      a[2] &&
                      new RegExp(
                        "(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"
                      ),
                    s = o = h.length;
                  o--;

                )
                  (d = h[o]),
                    (!r && A !== d.origType) ||
                      (n && n.guid !== d.guid) ||
                      (a && !a.test(d.namespace)) ||
                      (i && i !== d.selector && ("**" !== i || !d.selector)) ||
                      (h.splice(o, 1),
                      d.selector && h.delegateCount--,
                      u.remove && u.remove.call(e, d));
                s &&
                  !h.length &&
                  ((u.teardown && !1 !== u.teardown.call(e, p, f.handle)) ||
                    k.removeEvent(e, g, f.handle),
                  delete l[g]);
              } else for (g in l) k.event.remove(e, g + t[c], n, i, !0);
            k.isEmptyObject(l) && $.remove(e, "handle events");
          }
        },
        dispatch: function (e) {
          var t,
            n,
            i,
            r,
            o,
            s,
            a = k.event.fix(e),
            l = new Array(arguments.length),
            c = ($.get(this, "events") || {})[a.type] || [],
            d = k.event.special[a.type] || {};
          for (l[0] = a, t = 1; t < arguments.length; t++) l[t] = arguments[t];
          if (
            ((a.delegateTarget = this),
            !d.preDispatch || !1 !== d.preDispatch.call(this, a))
          ) {
            for (
              s = k.event.handlers.call(this, a, c), t = 0;
              (r = s[t++]) && !a.isPropagationStopped();

            )
              for (
                a.currentTarget = r.elem, n = 0;
                (o = r.handlers[n++]) && !a.isImmediatePropagationStopped();

              )
                (a.rnamespace &&
                  !1 !== o.namespace &&
                  !a.rnamespace.test(o.namespace)) ||
                  ((a.handleObj = o),
                  (a.data = o.data),
                  void 0 !==
                    (i = (
                      (k.event.special[o.origType] || {}).handle || o.handler
                    ).apply(r.elem, l)) &&
                    !1 === (a.result = i) &&
                    (a.preventDefault(), a.stopPropagation()));
            return d.postDispatch && d.postDispatch.call(this, a), a.result;
          }
        },
        handlers: function (e, t) {
          var n,
            i,
            r,
            o,
            s,
            a = [],
            l = t.delegateCount,
            c = e.target;
          if (l && c.nodeType && !("click" === e.type && 1 <= e.button))
            for (; c !== this; c = c.parentNode || this)
              if (
                1 === c.nodeType &&
                ("click" !== e.type || !0 !== c.disabled)
              ) {
                for (o = [], s = {}, n = 0; n < l; n++)
                  void 0 === s[(r = (i = t[n]).selector + " ")] &&
                    (s[r] = i.needsContext
                      ? -1 < k(r, this).index(c)
                      : k.find(r, this, null, [c]).length),
                    s[r] && o.push(i);
                o.length &&
                  a.push({
                    elem: c,
                    handlers: o,
                  });
              }
          return (
            (c = this),
            l < t.length &&
              a.push({
                elem: c,
                handlers: t.slice(l),
              }),
            a
          );
        },
        addProp: function (e, t) {
          Object.defineProperty(k.Event.prototype, e, {
            enumerable: !0,
            configurable: !0,
            get: v(t)
              ? function () {
                  if (this.originalEvent) return t(this.originalEvent);
                }
              : function () {
                  if (this.originalEvent) return this.originalEvent[e];
                },
            set: function (t) {
              Object.defineProperty(this, e, {
                enumerable: !0,
                configurable: !0,
                writable: !0,
                value: t,
              });
            },
          });
        },
        fix: function (e) {
          return e[k.expando] ? e : new k.Event(e);
        },
        special: {
          load: {
            noBubble: !0,
          },
          click: {
            setup: function (e) {
              var t = this || e;
              return (
                Ae.test(t.type) &&
                  t.click &&
                  j(t, "input") &&
                  Re(t, "click", Te),
                !1
              );
            },
            trigger: function (e) {
              var t = this || e;
              return (
                Ae.test(t.type) && t.click && j(t, "input") && Re(t, "click"),
                !0
              );
            },
            _default: function (e) {
              var t = e.target;
              return (
                (Ae.test(t.type) &&
                  t.click &&
                  j(t, "input") &&
                  $.get(t, "click")) ||
                j(t, "a")
              );
            },
          },
          beforeunload: {
            postDispatch: function (e) {
              void 0 !== e.result &&
                e.originalEvent &&
                (e.originalEvent.returnValue = e.result);
            },
          },
        },
      }),
        (k.removeEvent = function (e, t, n) {
          e.removeEventListener && e.removeEventListener(t, n);
        }),
        (k.Event = function (e, t) {
          if (!(this instanceof k.Event)) return new k.Event(e, t);
          e && e.type
            ? ((this.originalEvent = e),
              (this.type = e.type),
              (this.isDefaultPrevented =
                e.defaultPrevented ||
                (void 0 === e.defaultPrevented && !1 === e.returnValue)
                  ? Te
                  : Se),
              (this.target =
                e.target && 3 === e.target.nodeType
                  ? e.target.parentNode
                  : e.target),
              (this.currentTarget = e.currentTarget),
              (this.relatedTarget = e.relatedTarget))
            : (this.type = e),
            t && k.extend(this, t),
            (this.timeStamp = (e && e.timeStamp) || Date.now()),
            (this[k.expando] = !0);
        }),
        (k.Event.prototype = {
          constructor: k.Event,
          isDefaultPrevented: Se,
          isPropagationStopped: Se,
          isImmediatePropagationStopped: Se,
          isSimulated: !1,
          preventDefault: function () {
            var e = this.originalEvent;
            (this.isDefaultPrevented = Te),
              e && !this.isSimulated && e.preventDefault();
          },
          stopPropagation: function () {
            var e = this.originalEvent;
            (this.isPropagationStopped = Te),
              e && !this.isSimulated && e.stopPropagation();
          },
          stopImmediatePropagation: function () {
            var e = this.originalEvent;
            (this.isImmediatePropagationStopped = Te),
              e && !this.isSimulated && e.stopImmediatePropagation(),
              this.stopPropagation();
          },
        }),
        k.each(
          {
            altKey: !0,
            bubbles: !0,
            cancelable: !0,
            changedTouches: !0,
            ctrlKey: !0,
            detail: !0,
            eventPhase: !0,
            metaKey: !0,
            pageX: !0,
            pageY: !0,
            shiftKey: !0,
            view: !0,
            char: !0,
            code: !0,
            charCode: !0,
            key: !0,
            keyCode: !0,
            button: !0,
            buttons: !0,
            clientX: !0,
            clientY: !0,
            offsetX: !0,
            offsetY: !0,
            pointerId: !0,
            pointerType: !0,
            screenX: !0,
            screenY: !0,
            targetTouches: !0,
            toElement: !0,
            touches: !0,
            which: function (e) {
              var t = e.button;
              return null == e.which && _e.test(e.type)
                ? null != e.charCode
                  ? e.charCode
                  : e.keyCode
                : !e.which && void 0 !== t && Ie.test(e.type)
                ? 1 & t
                  ? 1
                  : 2 & t
                  ? 3
                  : 4 & t
                  ? 2
                  : 0
                : e.which;
            },
          },
          k.event.addProp
        ),
        k.each(
          {
            focus: "focusin",
            blur: "focusout",
          },
          function (e, t) {
            k.event.special[e] = {
              setup: function () {
                return Re(this, e, Le), !1;
              },
              trigger: function () {
                return Re(this, e), !0;
              },
              delegateType: t,
            };
          }
        ),
        k.each(
          {
            mouseenter: "mouseover",
            mouseleave: "mouseout",
            pointerenter: "pointerover",
            pointerleave: "pointerout",
          },
          function (e, t) {
            k.event.special[e] = {
              delegateType: t,
              bindType: t,
              handle: function (e) {
                var n,
                  i = e.relatedTarget,
                  r = e.handleObj;
                return (
                  (i && (i === this || k.contains(this, i))) ||
                    ((e.type = r.origType),
                    (n = r.handler.apply(this, arguments)),
                    (e.type = t)),
                  n
                );
              },
            };
          }
        ),
        k.fn.extend({
          on: function (e, t, n, i) {
            return je(this, e, t, n, i);
          },
          one: function (e, t, n, i) {
            return je(this, e, t, n, i, 1);
          },
          off: function (e, t, n) {
            var i, r;
            if (e && e.preventDefault && e.handleObj)
              return (
                (i = e.handleObj),
                k(e.delegateTarget).off(
                  i.namespace ? i.origType + "." + i.namespace : i.origType,
                  i.selector,
                  i.handler
                ),
                this
              );
            if ("object" == typeof e) {
              for (r in e) this.off(r, t, e[r]);
              return this;
            }
            return (
              (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)),
              !1 === n && (n = Se),
              this.each(function () {
                k.event.remove(this, e, n, t);
              })
            );
          },
        });
      var Be =
          /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,
        Me = /<script|<style|<link/i,
        De = /checked\s*(?:[^=]|=\s*.checked.)/i,
        Oe = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

      function He(e, t) {
        return (
          (j(e, "table") &&
            j(11 !== t.nodeType ? t : t.firstChild, "tr") &&
            k(e).children("tbody")[0]) ||
          e
        );
      }

      function We(e) {
        return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e;
      }

      function Pe(e) {
        return (
          "true/" === (e.type || "").slice(0, 5)
            ? (e.type = e.type.slice(5))
            : e.removeAttribute("type"),
          e
        );
      }

      function Ne(e, t) {
        var n, i, r, o, s, a, l, c;
        if (1 === t.nodeType) {
          if (
            $.hasData(e) &&
            ((o = $.access(e)), (s = $.set(t, o)), (c = o.events))
          )
            for (r in (delete s.handle, (s.events = {}), c))
              for (n = 0, i = c[r].length; n < i; n++)
                k.event.add(t, r, c[r][n]);
          ee.hasData(e) &&
            ((a = ee.access(e)), (l = k.extend({}, a)), ee.set(t, l));
        }
      }

      function qe(e, t, n, i) {
        t = c.apply([], t);
        var r,
          o,
          s,
          a,
          l,
          d,
          u = 0,
          h = e.length,
          g = h - 1,
          p = t[0],
          A = v(p);
        if (A || (1 < h && "string" == typeof p && !m.checkClone && De.test(p)))
          return e.each(function (r) {
            var o = e.eq(r);
            A && (t[0] = p.call(this, r, o.html())), qe(o, t, n, i);
          });
        if (
          h &&
          ((o = (r = ke(t, e[0].ownerDocument, !1, e, i)).firstChild),
          1 === r.childNodes.length && (r = o),
          o || i)
        ) {
          for (a = (s = k.map(be(r, "script"), We)).length; u < h; u++)
            (l = r),
              u !== g &&
                ((l = k.clone(l, !0, !0)), a && k.merge(s, be(l, "script"))),
              n.call(e[u], l, u);
          if (a)
            for (
              d = s[s.length - 1].ownerDocument, k.map(s, Pe), u = 0;
              u < a;
              u++
            )
              (l = s[u]),
                me.test(l.type || "") &&
                  !$.access(l, "globalEval") &&
                  k.contains(d, l) &&
                  (l.src && "module" !== (l.type || "").toLowerCase()
                    ? k._evalUrl &&
                      !l.noModule &&
                      k._evalUrl(l.src, {
                        nonce: l.nonce || l.getAttribute("nonce"),
                      })
                    : y(l.textContent.replace(Oe, ""), l, d));
        }
        return e;
      }

      function ze(e, t, n) {
        for (var i, r = t ? k.filter(t, e) : e, o = 0; null != (i = r[o]); o++)
          n || 1 !== i.nodeType || k.cleanData(be(i)),
            i.parentNode &&
              (n && le(i) && we(be(i, "script")), i.parentNode.removeChild(i));
        return e;
      }
      k.extend({
        htmlPrefilter: function (e) {
          return e.replace(Be, "<$1></$2>");
        },
        clone: function (e, t, n) {
          var i,
            r,
            o,
            s,
            a,
            l,
            c,
            d = e.cloneNode(!0),
            u = le(e);
          if (
            !(
              m.noCloneChecked ||
              (1 !== e.nodeType && 11 !== e.nodeType) ||
              k.isXMLDoc(e)
            )
          )
            for (s = be(d), i = 0, r = (o = be(e)).length; i < r; i++)
              (a = o[i]),
                "input" === (c = (l = s[i]).nodeName.toLowerCase()) &&
                Ae.test(a.type)
                  ? (l.checked = a.checked)
                  : ("input" !== c && "textarea" !== c) ||
                    (l.defaultValue = a.defaultValue);
          if (t)
            if (n)
              for (
                o = o || be(e), s = s || be(d), i = 0, r = o.length;
                i < r;
                i++
              )
                Ne(o[i], s[i]);
            else Ne(e, d);
          return (
            0 < (s = be(d, "script")).length && we(s, !u && be(e, "script")), d
          );
        },
        cleanData: function (e) {
          for (
            var t, n, i, r = k.event.special, o = 0;
            void 0 !== (n = e[o]);
            o++
          )
            if (Y(n)) {
              if ((t = n[$.expando])) {
                if (t.events)
                  for (i in t.events)
                    r[i] ? k.event.remove(n, i) : k.removeEvent(n, i, t.handle);
                n[$.expando] = void 0;
              }
              n[ee.expando] && (n[ee.expando] = void 0);
            }
        },
      }),
        k.fn.extend({
          detach: function (e) {
            return ze(this, e, !0);
          },
          remove: function (e) {
            return ze(this, e);
          },
          text: function (e) {
            return U(
              this,
              function (e) {
                return void 0 === e
                  ? k.text(this)
                  : this.empty().each(function () {
                      (1 !== this.nodeType &&
                        11 !== this.nodeType &&
                        9 !== this.nodeType) ||
                        (this.textContent = e);
                    });
              },
              null,
              e,
              arguments.length
            );
          },
          append: function () {
            return qe(this, arguments, function (e) {
              (1 !== this.nodeType &&
                11 !== this.nodeType &&
                9 !== this.nodeType) ||
                He(this, e).appendChild(e);
            });
          },
          prepend: function () {
            return qe(this, arguments, function (e) {
              if (
                1 === this.nodeType ||
                11 === this.nodeType ||
                9 === this.nodeType
              ) {
                var t = He(this, e);
                t.insertBefore(e, t.firstChild);
              }
            });
          },
          before: function () {
            return qe(this, arguments, function (e) {
              this.parentNode && this.parentNode.insertBefore(e, this);
            });
          },
          after: function () {
            return qe(this, arguments, function (e) {
              this.parentNode &&
                this.parentNode.insertBefore(e, this.nextSibling);
            });
          },
          empty: function () {
            for (var e, t = 0; null != (e = this[t]); t++)
              1 === e.nodeType &&
                (k.cleanData(be(e, !1)), (e.textContent = ""));
            return this;
          },
          clone: function (e, t) {
            return (
              (e = null != e && e),
              (t = null == t ? e : t),
              this.map(function () {
                return k.clone(this, e, t);
              })
            );
          },
          html: function (e) {
            return U(
              this,
              function (e) {
                var t = this[0] || {},
                  n = 0,
                  i = this.length;
                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                if (
                  "string" == typeof e &&
                  !Me.test(e) &&
                  !ve[(fe.exec(e) || ["", ""])[1].toLowerCase()]
                ) {
                  e = k.htmlPrefilter(e);
                  try {
                    for (; n < i; n++)
                      1 === (t = this[n] || {}).nodeType &&
                        (k.cleanData(be(t, !1)), (t.innerHTML = e));
                    t = 0;
                  } catch (e) {}
                }
                t && this.empty().append(e);
              },
              null,
              e,
              arguments.length
            );
          },
          replaceWith: function () {
            var e = [];
            return qe(
              this,
              arguments,
              function (t) {
                var n = this.parentNode;
                k.inArray(this, e) < 0 &&
                  (k.cleanData(be(this)), n && n.replaceChild(t, this));
              },
              e
            );
          },
        }),
        k.each(
          {
            appendTo: "append",
            prependTo: "prepend",
            insertBefore: "before",
            insertAfter: "after",
            replaceAll: "replaceWith",
          },
          function (e, t) {
            k.fn[e] = function (e) {
              for (
                var n, i = [], r = k(e), o = r.length - 1, s = 0;
                s <= o;
                s++
              )
                (n = s === o ? this : this.clone(!0)),
                  k(r[s])[t](n),
                  d.apply(i, n.get());
              return this.pushStack(i);
            };
          }
        );
      var Ve = new RegExp("^(" + re + ")(?!px)[a-z%]+$", "i"),
        Fe = function (e) {
          var t = e.ownerDocument.defaultView;
          return (t && t.opener) || (t = n), t.getComputedStyle(e);
        },
        Qe = new RegExp(se.join("|"), "i");

      function Ue(e, t, n) {
        var i,
          r,
          o,
          s,
          a = e.style;
        return (
          (n = n || Fe(e)) &&
            ("" !== (s = n.getPropertyValue(t) || n[t]) ||
              le(e) ||
              (s = k.style(e, t)),
            !m.pixelBoxStyles() &&
              Ve.test(s) &&
              Qe.test(t) &&
              ((i = a.width),
              (r = a.minWidth),
              (o = a.maxWidth),
              (a.minWidth = a.maxWidth = a.width = s),
              (s = n.width),
              (a.width = i),
              (a.minWidth = r),
              (a.maxWidth = o))),
          void 0 !== s ? s + "" : s
        );
      }

      function Ke(e, t) {
        return {
          get: function () {
            if (!e()) return (this.get = t).apply(this, arguments);
            delete this.get;
          },
        };
      }
      !(function () {
        function e() {
          if (d) {
            (c.style.cssText =
              "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"),
              (d.style.cssText =
                "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"),
              ae.appendChild(c).appendChild(d);
            var e = n.getComputedStyle(d);
            (i = "1%" !== e.top),
              (l = 12 === t(e.marginLeft)),
              (d.style.right = "60%"),
              (a = 36 === t(e.right)),
              (r = 36 === t(e.width)),
              (d.style.position = "absolute"),
              (o = 12 === t(d.offsetWidth / 3)),
              ae.removeChild(c),
              (d = null);
          }
        }

        function t(e) {
          return Math.round(parseFloat(e));
        }
        var i,
          r,
          o,
          a,
          l,
          c = s.createElement("div"),
          d = s.createElement("div");
        d.style &&
          ((d.style.backgroundClip = "content-box"),
          (d.cloneNode(!0).style.backgroundClip = ""),
          (m.clearCloneStyle = "content-box" === d.style.backgroundClip),
          k.extend(m, {
            boxSizingReliable: function () {
              return e(), r;
            },
            pixelBoxStyles: function () {
              return e(), a;
            },
            pixelPosition: function () {
              return e(), i;
            },
            reliableMarginLeft: function () {
              return e(), l;
            },
            scrollboxSize: function () {
              return e(), o;
            },
          }));
      })();
      var Xe = ["Webkit", "Moz", "ms"],
        Ge = s.createElement("div").style,
        Je = {};

      function Ye(e) {
        return (
          k.cssProps[e] ||
          Je[e] ||
          (e in Ge
            ? e
            : (Je[e] =
                (function (e) {
                  for (
                    var t = e[0].toUpperCase() + e.slice(1), n = Xe.length;
                    n--;

                  )
                    if ((e = Xe[n] + t) in Ge) return e;
                })(e) || e))
        );
      }
      var Ze = /^(none|table(?!-c[ea]).+)/,
        $e = /^--/,
        et = {
          position: "absolute",
          visibility: "hidden",
          display: "block",
        },
        tt = {
          letterSpacing: "0",
          fontWeight: "400",
        };

      function nt(e, t, n) {
        var i = oe.exec(t);
        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t;
      }

      function it(e, t, n, i, r, o) {
        var s = "width" === t ? 1 : 0,
          a = 0,
          l = 0;
        if (n === (i ? "border" : "content")) return 0;
        for (; s < 4; s += 2)
          "margin" === n && (l += k.css(e, n + se[s], !0, r)),
            i
              ? ("content" === n && (l -= k.css(e, "padding" + se[s], !0, r)),
                "margin" !== n &&
                  (l -= k.css(e, "border" + se[s] + "Width", !0, r)))
              : ((l += k.css(e, "padding" + se[s], !0, r)),
                "padding" !== n
                  ? (l += k.css(e, "border" + se[s] + "Width", !0, r))
                  : (a += k.css(e, "border" + se[s] + "Width", !0, r)));
        return (
          !i &&
            0 <= o &&
            (l +=
              Math.max(
                0,
                Math.ceil(
                  e["offset" + t[0].toUpperCase() + t.slice(1)] -
                    o -
                    l -
                    a -
                    0.5
                )
              ) || 0),
          l
        );
      }

      function rt(e, t, n) {
        var i = Fe(e),
          r =
            (!m.boxSizingReliable() || n) &&
            "border-box" === k.css(e, "boxSizing", !1, i),
          o = r,
          s = Ue(e, t, i),
          a = "offset" + t[0].toUpperCase() + t.slice(1);
        if (Ve.test(s)) {
          if (!n) return s;
          s = "auto";
        }
        return (
          ((!m.boxSizingReliable() && r) ||
            "auto" === s ||
            (!parseFloat(s) && "inline" === k.css(e, "display", !1, i))) &&
            e.getClientRects().length &&
            ((r = "border-box" === k.css(e, "boxSizing", !1, i)),
            (o = a in e) && (s = e[a])),
          (s = parseFloat(s) || 0) +
            it(e, t, n || (r ? "border" : "content"), o, i, s) +
            "px"
        );
      }

      function ot(e, t, n, i, r) {
        return new ot.prototype.init(e, t, n, i, r);
      }
      k.extend({
        cssHooks: {
          opacity: {
            get: function (e, t) {
              if (t) {
                var n = Ue(e, "opacity");
                return "" === n ? "1" : n;
              }
            },
          },
        },
        cssNumber: {
          animationIterationCount: !0,
          columnCount: !0,
          fillOpacity: !0,
          flexGrow: !0,
          flexShrink: !0,
          fontWeight: !0,
          gridArea: !0,
          gridColumn: !0,
          gridColumnEnd: !0,
          gridColumnStart: !0,
          gridRow: !0,
          gridRowEnd: !0,
          gridRowStart: !0,
          lineHeight: !0,
          opacity: !0,
          order: !0,
          orphans: !0,
          widows: !0,
          zIndex: !0,
          zoom: !0,
        },
        cssProps: {},
        style: function (e, t, n, i) {
          if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
            var r,
              o,
              s,
              a = J(t),
              l = $e.test(t),
              c = e.style;
            if (
              (l || (t = Ye(a)),
              (s = k.cssHooks[t] || k.cssHooks[a]),
              void 0 === n)
            )
              return s && "get" in s && void 0 !== (r = s.get(e, !1, i))
                ? r
                : c[t];
            "string" == (o = typeof n) &&
              (r = oe.exec(n)) &&
              r[1] &&
              ((n = he(e, t, r)), (o = "number")),
              null != n &&
                n == n &&
                ("number" !== o ||
                  l ||
                  (n += (r && r[3]) || (k.cssNumber[a] ? "" : "px")),
                m.clearCloneStyle ||
                  "" !== n ||
                  0 !== t.indexOf("background") ||
                  (c[t] = "inherit"),
                (s && "set" in s && void 0 === (n = s.set(e, n, i))) ||
                  (l ? c.setProperty(t, n) : (c[t] = n)));
          }
        },
        css: function (e, t, n, i) {
          var r,
            o,
            s,
            a = J(t);
          return (
            $e.test(t) || (t = Ye(a)),
            (s = k.cssHooks[t] || k.cssHooks[a]) &&
              "get" in s &&
              (r = s.get(e, !0, n)),
            void 0 === r && (r = Ue(e, t, i)),
            "normal" === r && t in tt && (r = tt[t]),
            "" === n || n
              ? ((o = parseFloat(r)), !0 === n || isFinite(o) ? o || 0 : r)
              : r
          );
        },
      }),
        k.each(["height", "width"], function (e, t) {
          k.cssHooks[t] = {
            get: function (e, n, i) {
              if (n)
                return !Ze.test(k.css(e, "display")) ||
                  (e.getClientRects().length && e.getBoundingClientRect().width)
                  ? rt(e, t, i)
                  : ue(e, et, function () {
                      return rt(e, t, i);
                    });
            },
            set: function (e, n, i) {
              var r,
                o = Fe(e),
                s = !m.scrollboxSize() && "absolute" === o.position,
                a = (s || i) && "border-box" === k.css(e, "boxSizing", !1, o),
                l = i ? it(e, t, i, a, o) : 0;
              return (
                a &&
                  s &&
                  (l -= Math.ceil(
                    e["offset" + t[0].toUpperCase() + t.slice(1)] -
                      parseFloat(o[t]) -
                      it(e, t, "border", !1, o) -
                      0.5
                  )),
                l &&
                  (r = oe.exec(n)) &&
                  "px" !== (r[3] || "px") &&
                  ((e.style[t] = n), (n = k.css(e, t))),
                nt(0, n, l)
              );
            },
          };
        }),
        (k.cssHooks.marginLeft = Ke(m.reliableMarginLeft, function (e, t) {
          if (t)
            return (
              (parseFloat(Ue(e, "marginLeft")) ||
                e.getBoundingClientRect().left -
                  ue(
                    e,
                    {
                      marginLeft: 0,
                    },
                    function () {
                      return e.getBoundingClientRect().left;
                    }
                  )) + "px"
            );
        })),
        k.each(
          {
            margin: "",
            padding: "",
            border: "Width",
          },
          function (e, t) {
            (k.cssHooks[e + t] = {
              expand: function (n) {
                for (
                  var i = 0,
                    r = {},
                    o = "string" == typeof n ? n.split(" ") : [n];
                  i < 4;
                  i++
                )
                  r[e + se[i] + t] = o[i] || o[i - 2] || o[0];
                return r;
              },
            }),
              "margin" !== e && (k.cssHooks[e + t].set = nt);
          }
        ),
        k.fn.extend({
          css: function (e, t) {
            return U(
              this,
              function (e, t, n) {
                var i,
                  r,
                  o = {},
                  s = 0;
                if (Array.isArray(t)) {
                  for (i = Fe(e), r = t.length; s < r; s++)
                    o[t[s]] = k.css(e, t[s], !1, i);
                  return o;
                }
                return void 0 !== n ? k.style(e, t, n) : k.css(e, t);
              },
              e,
              t,
              1 < arguments.length
            );
          },
        }),
        (((k.Tween = ot).prototype = {
          constructor: ot,
          init: function (e, t, n, i, r, o) {
            (this.elem = e),
              (this.prop = n),
              (this.easing = r || k.easing._default),
              (this.options = t),
              (this.start = this.now = this.cur()),
              (this.end = i),
              (this.unit = o || (k.cssNumber[n] ? "" : "px"));
          },
          cur: function () {
            var e = ot.propHooks[this.prop];
            return e && e.get ? e.get(this) : ot.propHooks._default.get(this);
          },
          run: function (e) {
            var t,
              n = ot.propHooks[this.prop];
            return (
              this.options.duration
                ? (this.pos = t =
                    k.easing[this.easing](
                      e,
                      this.options.duration * e,
                      0,
                      1,
                      this.options.duration
                    ))
                : (this.pos = t = e),
              (this.now = (this.end - this.start) * t + this.start),
              this.options.step &&
                this.options.step.call(this.elem, this.now, this),
              n && n.set ? n.set(this) : ot.propHooks._default.set(this),
              this
            );
          },
        }).init.prototype = ot.prototype),
        ((ot.propHooks = {
          _default: {
            get: function (e) {
              var t;
              return 1 !== e.elem.nodeType ||
                (null != e.elem[e.prop] && null == e.elem.style[e.prop])
                ? e.elem[e.prop]
                : (t = k.css(e.elem, e.prop, "")) && "auto" !== t
                ? t
                : 0;
            },
            set: function (e) {
              k.fx.step[e.prop]
                ? k.fx.step[e.prop](e)
                : 1 !== e.elem.nodeType ||
                  (!k.cssHooks[e.prop] && null == e.elem.style[Ye(e.prop)])
                ? (e.elem[e.prop] = e.now)
                : k.style(e.elem, e.prop, e.now + e.unit);
            },
          },
        }).scrollTop = ot.propHooks.scrollLeft =
          {
            set: function (e) {
              e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
            },
          }),
        (k.easing = {
          linear: function (e) {
            return e;
          },
          swing: function (e) {
            return 0.5 - Math.cos(e * Math.PI) / 2;
          },
          _default: "swing",
        }),
        (k.fx = ot.prototype.init),
        (k.fx.step = {});
      var st,
        at,
        lt,
        ct,
        dt = /^(?:toggle|show|hide)$/,
        ut = /queueHooks$/;

      function ht() {
        at &&
          (!1 === s.hidden && n.requestAnimationFrame
            ? n.requestAnimationFrame(ht)
            : n.setTimeout(ht, k.fx.interval),
          k.fx.tick());
      }

      function gt() {
        return (
          n.setTimeout(function () {
            st = void 0;
          }),
          (st = Date.now())
        );
      }

      function pt(e, t) {
        var n,
          i = 0,
          r = {
            height: e,
          };
        for (t = t ? 1 : 0; i < 4; i += 2 - t)
          r["margin" + (n = se[i])] = r["padding" + n] = e;
        return t && (r.opacity = r.width = e), r;
      }

      function At(e, t, n) {
        for (
          var i,
            r = (ft.tweeners[t] || []).concat(ft.tweeners["*"]),
            o = 0,
            s = r.length;
          o < s;
          o++
        )
          if ((i = r[o].call(n, t, e))) return i;
      }

      function ft(e, t, n) {
        var i,
          r,
          o = 0,
          s = ft.prefilters.length,
          a = k.Deferred().always(function () {
            delete l.elem;
          }),
          l = function () {
            if (r) return !1;
            for (
              var t = st || gt(),
                n = Math.max(0, c.startTime + c.duration - t),
                i = 1 - (n / c.duration || 0),
                o = 0,
                s = c.tweens.length;
              o < s;
              o++
            )
              c.tweens[o].run(i);
            return (
              a.notifyWith(e, [c, i, n]),
              i < 1 && s
                ? n
                : (s || a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c]), !1)
            );
          },
          c = a.promise({
            elem: e,
            props: k.extend({}, t),
            opts: k.extend(
              !0,
              {
                specialEasing: {},
                easing: k.easing._default,
              },
              n
            ),
            originalProperties: t,
            originalOptions: n,
            startTime: st || gt(),
            duration: n.duration,
            tweens: [],
            createTween: function (t, n) {
              var i = k.Tween(
                e,
                c.opts,
                t,
                n,
                c.opts.specialEasing[t] || c.opts.easing
              );
              return c.tweens.push(i), i;
            },
            stop: function (t) {
              var n = 0,
                i = t ? c.tweens.length : 0;
              if (r) return this;
              for (r = !0; n < i; n++) c.tweens[n].run(1);
              return (
                t
                  ? (a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c, t]))
                  : a.rejectWith(e, [c, t]),
                this
              );
            },
          }),
          d = c.props;
        for (
          (function (e, t) {
            var n, i, r, o, s;
            for (n in e)
              if (
                ((r = t[(i = J(n))]),
                (o = e[n]),
                Array.isArray(o) && ((r = o[1]), (o = e[n] = o[0])),
                n !== i && ((e[i] = o), delete e[n]),
                (s = k.cssHooks[i]) && ("expand" in s))
              )
                for (n in ((o = s.expand(o)), delete e[i], o))
                  (n in e) || ((e[n] = o[n]), (t[n] = r));
              else t[i] = r;
          })(d, c.opts.specialEasing);
          o < s;
          o++
        )
          if ((i = ft.prefilters[o].call(c, e, d, c.opts)))
            return (
              v(i.stop) &&
                (k._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)),
              i
            );
        return (
          k.map(d, At, c),
          v(c.opts.start) && c.opts.start.call(e, c),
          c
            .progress(c.opts.progress)
            .done(c.opts.done, c.opts.complete)
            .fail(c.opts.fail)
            .always(c.opts.always),
          k.fx.timer(
            k.extend(l, {
              elem: e,
              anim: c,
              queue: c.opts.queue,
            })
          ),
          c
        );
      }
      (k.Animation = k.extend(ft, {
        tweeners: {
          "*": [
            function (e, t) {
              var n = this.createTween(e, t);
              return he(n.elem, e, oe.exec(t), n), n;
            },
          ],
        },
        tweener: function (e, t) {
          v(e) ? ((t = e), (e = ["*"])) : (e = e.match(P));
          for (var n, i = 0, r = e.length; i < r; i++)
            (n = e[i]),
              (ft.tweeners[n] = ft.tweeners[n] || []),
              ft.tweeners[n].unshift(t);
        },
        prefilters: [
          function (e, t, n) {
            var i,
              r,
              o,
              s,
              a,
              l,
              c,
              d,
              u = "width" in t || "height" in t,
              h = this,
              g = {},
              p = e.style,
              A = e.nodeType && de(e),
              f = $.get(e, "fxshow");
            for (i in (n.queue ||
              (null == (s = k._queueHooks(e, "fx")).unqueued &&
                ((s.unqueued = 0),
                (a = s.empty.fire),
                (s.empty.fire = function () {
                  s.unqueued || a();
                })),
              s.unqueued++,
              h.always(function () {
                h.always(function () {
                  s.unqueued--, k.queue(e, "fx").length || s.empty.fire();
                });
              })),
            t))
              if (((r = t[i]), dt.test(r))) {
                if (
                  (delete t[i],
                  (o = o || "toggle" === r),
                  r === (A ? "hide" : "show"))
                ) {
                  if ("show" !== r || !f || void 0 === f[i]) continue;
                  A = !0;
                }
                g[i] = (f && f[i]) || k.style(e, i);
              }
            if ((l = !k.isEmptyObject(t)) || !k.isEmptyObject(g))
              for (i in (u &&
                1 === e.nodeType &&
                ((n.overflow = [p.overflow, p.overflowX, p.overflowY]),
                null == (c = f && f.display) && (c = $.get(e, "display")),
                "none" === (d = k.css(e, "display")) &&
                  (c
                    ? (d = c)
                    : (pe([e], !0),
                      (c = e.style.display || c),
                      (d = k.css(e, "display")),
                      pe([e]))),
                ("inline" === d || ("inline-block" === d && null != c)) &&
                  "none" === k.css(e, "float") &&
                  (l ||
                    (h.done(function () {
                      p.display = c;
                    }),
                    null == c &&
                      ((d = p.display), (c = "none" === d ? "" : d))),
                  (p.display = "inline-block"))),
              n.overflow &&
                ((p.overflow = "hidden"),
                h.always(function () {
                  (p.overflow = n.overflow[0]),
                    (p.overflowX = n.overflow[1]),
                    (p.overflowY = n.overflow[2]);
                })),
              (l = !1),
              g))
                l ||
                  (f
                    ? "hidden" in f && (A = f.hidden)
                    : (f = $.access(e, "fxshow", {
                        display: c,
                      })),
                  o && (f.hidden = !A),
                  A && pe([e], !0),
                  h.done(function () {
                    for (i in (A || pe([e]), $.remove(e, "fxshow"), g))
                      k.style(e, i, g[i]);
                  })),
                  (l = At(A ? f[i] : 0, i, h)),
                  i in f ||
                    ((f[i] = l.start), A && ((l.end = l.start), (l.start = 0)));
          },
        ],
        prefilter: function (e, t) {
          t ? ft.prefilters.unshift(e) : ft.prefilters.push(e);
        },
      })),
        (k.speed = function (e, t, n) {
          var i =
            e && "object" == typeof e
              ? k.extend({}, e)
              : {
                  complete: n || (!n && t) || (v(e) && e),
                  duration: e,
                  easing: (n && t) || (t && !v(t) && t),
                };
          return (
            k.fx.off
              ? (i.duration = 0)
              : "number" != typeof i.duration &&
                (i.duration in k.fx.speeds
                  ? (i.duration = k.fx.speeds[i.duration])
                  : (i.duration = k.fx.speeds._default)),
            (null != i.queue && !0 !== i.queue) || (i.queue = "fx"),
            (i.old = i.complete),
            (i.complete = function () {
              v(i.old) && i.old.call(this), i.queue && k.dequeue(this, i.queue);
            }),
            i
          );
        }),
        k.fn.extend({
          fadeTo: function (e, t, n, i) {
            return this.filter(de).css("opacity", 0).show().end().animate(
              {
                opacity: t,
              },
              e,
              n,
              i
            );
          },
          animate: function (e, t, n, i) {
            var r = k.isEmptyObject(e),
              o = k.speed(t, n, i),
              s = function () {
                var t = ft(this, k.extend({}, e), o);
                (r || $.get(this, "finish")) && t.stop(!0);
              };
            return (
              (s.finish = s),
              r || !1 === o.queue ? this.each(s) : this.queue(o.queue, s)
            );
          },
          stop: function (e, t, n) {
            var i = function (e) {
              var t = e.stop;
              delete e.stop, t(n);
            };
            return (
              "string" != typeof e && ((n = t), (t = e), (e = void 0)),
              t && !1 !== e && this.queue(e || "fx", []),
              this.each(function () {
                var t = !0,
                  r = null != e && e + "queueHooks",
                  o = k.timers,
                  s = $.get(this);
                if (r) s[r] && s[r].stop && i(s[r]);
                else for (r in s) s[r] && s[r].stop && ut.test(r) && i(s[r]);
                for (r = o.length; r--; )
                  o[r].elem !== this ||
                    (null != e && o[r].queue !== e) ||
                    (o[r].anim.stop(n), (t = !1), o.splice(r, 1));
                (!t && n) || k.dequeue(this, e);
              })
            );
          },
          finish: function (e) {
            return (
              !1 !== e && (e = e || "fx"),
              this.each(function () {
                var t,
                  n = $.get(this),
                  i = n[e + "queue"],
                  r = n[e + "queueHooks"],
                  o = k.timers,
                  s = i ? i.length : 0;
                for (
                  n.finish = !0,
                    k.queue(this, e, []),
                    r && r.stop && r.stop.call(this, !0),
                    t = o.length;
                  t--;

                )
                  o[t].elem === this &&
                    o[t].queue === e &&
                    (o[t].anim.stop(!0), o.splice(t, 1));
                for (t = 0; t < s; t++)
                  i[t] && i[t].finish && i[t].finish.call(this);
                delete n.finish;
              })
            );
          },
        }),
        k.each(["toggle", "show", "hide"], function (e, t) {
          var n = k.fn[t];
          k.fn[t] = function (e, i, r) {
            return null == e || "boolean" == typeof e
              ? n.apply(this, arguments)
              : this.animate(pt(t, !0), e, i, r);
          };
        }),
        k.each(
          {
            slideDown: pt("show"),
            slideUp: pt("hide"),
            slideToggle: pt("toggle"),
            fadeIn: {
              opacity: "show",
            },
            fadeOut: {
              opacity: "hide",
            },
            fadeToggle: {
              opacity: "toggle",
            },
          },
          function (e, t) {
            k.fn[e] = function (e, n, i) {
              return this.animate(t, e, n, i);
            };
          }
        ),
        (k.timers = []),
        (k.fx.tick = function () {
          var e,
            t = 0,
            n = k.timers;
          for (st = Date.now(); t < n.length; t++)
            (e = n[t])() || n[t] !== e || n.splice(t--, 1);
          n.length || k.fx.stop(), (st = void 0);
        }),
        (k.fx.timer = function (e) {
          k.timers.push(e), k.fx.start();
        }),
        (k.fx.interval = 13),
        (k.fx.start = function () {
          at || ((at = !0), ht());
        }),
        (k.fx.stop = function () {
          at = null;
        }),
        (k.fx.speeds = {
          slow: 600,
          fast: 200,
          _default: 400,
        }),
        (k.fn.delay = function (e, t) {
          return (
            (e = (k.fx && k.fx.speeds[e]) || e),
            (t = t || "fx"),
            this.queue(t, function (t, i) {
              var r = n.setTimeout(t, e);
              i.stop = function () {
                n.clearTimeout(r);
              };
            })
          );
        }),
        (lt = s.createElement("input")),
        (ct = s.createElement("select").appendChild(s.createElement("option"))),
        (lt.type = "checkbox"),
        (m.checkOn = "" !== lt.value),
        (m.optSelected = ct.selected),
        ((lt = s.createElement("input")).value = "t"),
        (lt.type = "radio"),
        (m.radioValue = "t" === lt.value);
      var mt,
        vt = k.expr.attrHandle;
      k.fn.extend({
        attr: function (e, t) {
          return U(this, k.attr, e, t, 1 < arguments.length);
        },
        removeAttr: function (e) {
          return this.each(function () {
            k.removeAttr(this, e);
          });
        },
      }),
        k.extend({
          attr: function (e, t, n) {
            var i,
              r,
              o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
              return void 0 === e.getAttribute
                ? k.prop(e, t, n)
                : ((1 === o && k.isXMLDoc(e)) ||
                    (r =
                      k.attrHooks[t.toLowerCase()] ||
                      (k.expr.match.bool.test(t) ? mt : void 0)),
                  void 0 !== n
                    ? null === n
                      ? void k.removeAttr(e, t)
                      : r && "set" in r && void 0 !== (i = r.set(e, n, t))
                      ? i
                      : (e.setAttribute(t, n + ""), n)
                    : r && "get" in r && null !== (i = r.get(e, t))
                    ? i
                    : null == (i = k.find.attr(e, t))
                    ? void 0
                    : i);
          },
          attrHooks: {
            type: {
              set: function (e, t) {
                if (!m.radioValue && "radio" === t && j(e, "input")) {
                  var n = e.value;
                  return e.setAttribute("type", t), n && (e.value = n), t;
                }
              },
            },
          },
          removeAttr: function (e, t) {
            var n,
              i = 0,
              r = t && t.match(P);
            if (r && 1 === e.nodeType)
              for (; (n = r[i++]); ) e.removeAttribute(n);
          },
        }),
        (mt = {
          set: function (e, t, n) {
            return !1 === t ? k.removeAttr(e, n) : e.setAttribute(n, n), n;
          },
        }),
        k.each(k.expr.match.bool.source.match(/\w+/g), function (e, t) {
          var n = vt[t] || k.find.attr;
          vt[t] = function (e, t, i) {
            var r,
              o,
              s = t.toLowerCase();
            return (
              i ||
                ((o = vt[s]),
                (vt[s] = r),
                (r = null != n(e, t, i) ? s : null),
                (vt[s] = o)),
              r
            );
          };
        });
      var bt = /^(?:input|select|textarea|button)$/i,
        wt = /^(?:a|area)$/i;

      function yt(e) {
        return (e.match(P) || []).join(" ");
      }

      function xt(e) {
        return (e.getAttribute && e.getAttribute("class")) || "";
      }

      function Ct(e) {
        return Array.isArray(e)
          ? e
          : ("string" == typeof e && e.match(P)) || [];
      }
      k.fn.extend({
        prop: function (e, t) {
          return U(this, k.prop, e, t, 1 < arguments.length);
        },
        removeProp: function (e) {
          return this.each(function () {
            delete this[k.propFix[e] || e];
          });
        },
      }),
        k.extend({
          prop: function (e, t, n) {
            var i,
              r,
              o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
              return (
                (1 === o && k.isXMLDoc(e)) ||
                  ((t = k.propFix[t] || t), (r = k.propHooks[t])),
                void 0 !== n
                  ? r && "set" in r && void 0 !== (i = r.set(e, n, t))
                    ? i
                    : (e[t] = n)
                  : r && "get" in r && null !== (i = r.get(e, t))
                  ? i
                  : e[t]
              );
          },
          propHooks: {
            tabIndex: {
              get: function (e) {
                var t = k.find.attr(e, "tabindex");
                return t
                  ? parseInt(t, 10)
                  : bt.test(e.nodeName) || (wt.test(e.nodeName) && e.href)
                  ? 0
                  : -1;
              },
            },
          },
          propFix: {
            for: "htmlFor",
            class: "className",
          },
        }),
        m.optSelected ||
          (k.propHooks.selected = {
            get: function (e) {
              var t = e.parentNode;
              return t && t.parentNode && t.parentNode.selectedIndex, null;
            },
            set: function (e) {
              var t = e.parentNode;
              t &&
                (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
            },
          }),
        k.each(
          [
            "tabIndex",
            "readOnly",
            "maxLength",
            "cellSpacing",
            "cellPadding",
            "rowSpan",
            "colSpan",
            "useMap",
            "frameBorder",
            "contentEditable",
          ],
          function () {
            k.propFix[this.toLowerCase()] = this;
          }
        ),
        k.fn.extend({
          addClass: function (e) {
            var t,
              n,
              i,
              r,
              o,
              s,
              a,
              l = 0;
            if (v(e))
              return this.each(function (t) {
                k(this).addClass(e.call(this, t, xt(this)));
              });
            if ((t = Ct(e)).length)
              for (; (n = this[l++]); )
                if (
                  ((r = xt(n)), (i = 1 === n.nodeType && " " + yt(r) + " "))
                ) {
                  for (s = 0; (o = t[s++]); )
                    i.indexOf(" " + o + " ") < 0 && (i += o + " ");
                  r !== (a = yt(i)) && n.setAttribute("class", a);
                }
            return this;
          },
          removeClass: function (e) {
            var t,
              n,
              i,
              r,
              o,
              s,
              a,
              l = 0;
            if (v(e))
              return this.each(function (t) {
                k(this).removeClass(e.call(this, t, xt(this)));
              });
            if (!arguments.length) return this.attr("class", "");
            if ((t = Ct(e)).length)
              for (; (n = this[l++]); )
                if (
                  ((r = xt(n)), (i = 1 === n.nodeType && " " + yt(r) + " "))
                ) {
                  for (s = 0; (o = t[s++]); )
                    for (; -1 < i.indexOf(" " + o + " "); )
                      i = i.replace(" " + o + " ", " ");
                  r !== (a = yt(i)) && n.setAttribute("class", a);
                }
            return this;
          },
          toggleClass: function (e, t) {
            var n = typeof e,
              i = "string" === n || Array.isArray(e);
            return "boolean" == typeof t && i
              ? t
                ? this.addClass(e)
                : this.removeClass(e)
              : v(e)
              ? this.each(function (n) {
                  k(this).toggleClass(e.call(this, n, xt(this), t), t);
                })
              : this.each(function () {
                  var t, r, o, s;
                  if (i)
                    for (r = 0, o = k(this), s = Ct(e); (t = s[r++]); )
                      o.hasClass(t) ? o.removeClass(t) : o.addClass(t);
                  else
                    (void 0 !== e && "boolean" !== n) ||
                      ((t = xt(this)) && $.set(this, "__className__", t),
                      this.setAttribute &&
                        this.setAttribute(
                          "class",
                          t || !1 === e
                            ? ""
                            : $.get(this, "__className__") || ""
                        ));
                });
          },
          hasClass: function (e) {
            var t,
              n,
              i = 0;
            for (t = " " + e + " "; (n = this[i++]); )
              if (1 === n.nodeType && -1 < (" " + yt(xt(n)) + " ").indexOf(t))
                return !0;
            return !1;
          },
        });
      var kt = /\r/g;
      k.fn.extend({
        val: function (e) {
          var t,
            n,
            i,
            r = this[0];
          return arguments.length
            ? ((i = v(e)),
              this.each(function (n) {
                var r;
                1 === this.nodeType &&
                  (null == (r = i ? e.call(this, n, k(this).val()) : e)
                    ? (r = "")
                    : "number" == typeof r
                    ? (r += "")
                    : Array.isArray(r) &&
                      (r = k.map(r, function (e) {
                        return null == e ? "" : e + "";
                      })),
                  ((t =
                    k.valHooks[this.type] ||
                    k.valHooks[this.nodeName.toLowerCase()]) &&
                    "set" in t &&
                    void 0 !== t.set(this, r, "value")) ||
                    (this.value = r));
              }))
            : r
            ? (t =
                k.valHooks[r.type] || k.valHooks[r.nodeName.toLowerCase()]) &&
              "get" in t &&
              void 0 !== (n = t.get(r, "value"))
              ? n
              : "string" == typeof (n = r.value)
              ? n.replace(kt, "")
              : null == n
              ? ""
              : n
            : void 0;
        },
      }),
        k.extend({
          valHooks: {
            option: {
              get: function (e) {
                var t = k.find.attr(e, "value");
                return null != t ? t : yt(k.text(e));
              },
            },
            select: {
              get: function (e) {
                var t,
                  n,
                  i,
                  r = e.options,
                  o = e.selectedIndex,
                  s = "select-one" === e.type,
                  a = s ? null : [],
                  l = s ? o + 1 : r.length;
                for (i = o < 0 ? l : s ? o : 0; i < l; i++)
                  if (
                    ((n = r[i]).selected || i === o) &&
                    !n.disabled &&
                    (!n.parentNode.disabled || !j(n.parentNode, "optgroup"))
                  ) {
                    if (((t = k(n).val()), s)) return t;
                    a.push(t);
                  }
                return a;
              },
              set: function (e, t) {
                for (
                  var n, i, r = e.options, o = k.makeArray(t), s = r.length;
                  s--;

                )
                  ((i = r[s]).selected =
                    -1 < k.inArray(k.valHooks.option.get(i), o)) && (n = !0);
                return n || (e.selectedIndex = -1), o;
              },
            },
          },
        }),
        k.each(["radio", "checkbox"], function () {
          (k.valHooks[this] = {
            set: function (e, t) {
              if (Array.isArray(t))
                return (e.checked = -1 < k.inArray(k(e).val(), t));
            },
          }),
            m.checkOn ||
              (k.valHooks[this].get = function (e) {
                return null === e.getAttribute("value") ? "on" : e.value;
              });
        }),
        (m.focusin = "onfocusin" in n);
      var _t = /^(?:focusinfocus|focusoutblur)$/,
        It = function (e) {
          e.stopPropagation();
        };
      k.extend(k.event, {
        trigger: function (e, t, i, r) {
          var o,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            A = [i || s],
            f = p.call(e, "type") ? e.type : e,
            m = p.call(e, "namespace") ? e.namespace.split(".") : [];
          if (
            ((a = g = l = i = i || s),
            3 !== i.nodeType &&
              8 !== i.nodeType &&
              !_t.test(f + k.event.triggered) &&
              (-1 < f.indexOf(".") &&
                ((f = (m = f.split(".")).shift()), m.sort()),
              (d = f.indexOf(":") < 0 && "on" + f),
              ((e = e[k.expando]
                ? e
                : new k.Event(f, "object" == typeof e && e)).isTrigger = r
                ? 2
                : 3),
              (e.namespace = m.join(".")),
              (e.rnamespace = e.namespace
                ? new RegExp("(^|\\.)" + m.join("\\.(?:.*\\.|)") + "(\\.|$)")
                : null),
              (e.result = void 0),
              e.target || (e.target = i),
              (t = null == t ? [e] : k.makeArray(t, [e])),
              (h = k.event.special[f] || {}),
              r || !h.trigger || !1 !== h.trigger.apply(i, t)))
          ) {
            if (!r && !h.noBubble && !b(i)) {
              for (
                c = h.delegateType || f, _t.test(c + f) || (a = a.parentNode);
                a;
                a = a.parentNode
              )
                A.push(a), (l = a);
              l === (i.ownerDocument || s) &&
                A.push(l.defaultView || l.parentWindow || n);
            }
            for (o = 0; (a = A[o++]) && !e.isPropagationStopped(); )
              (g = a),
                (e.type = 1 < o ? c : h.bindType || f),
                (u =
                  ($.get(a, "events") || {})[e.type] && $.get(a, "handle")) &&
                  u.apply(a, t),
                (u = d && a[d]) &&
                  u.apply &&
                  Y(a) &&
                  ((e.result = u.apply(a, t)),
                  !1 === e.result && e.preventDefault());
            return (
              (e.type = f),
              r ||
                e.isDefaultPrevented() ||
                (h._default && !1 !== h._default.apply(A.pop(), t)) ||
                !Y(i) ||
                (d &&
                  v(i[f]) &&
                  !b(i) &&
                  ((l = i[d]) && (i[d] = null),
                  (k.event.triggered = f),
                  e.isPropagationStopped() && g.addEventListener(f, It),
                  i[f](),
                  e.isPropagationStopped() && g.removeEventListener(f, It),
                  (k.event.triggered = void 0),
                  l && (i[d] = l))),
              e.result
            );
          }
        },
        simulate: function (e, t, n) {
          var i = k.extend(new k.Event(), n, {
            type: e,
            isSimulated: !0,
          });
          k.event.trigger(i, null, t);
        },
      }),
        k.fn.extend({
          trigger: function (e, t) {
            return this.each(function () {
              k.event.trigger(e, t, this);
            });
          },
          triggerHandler: function (e, t) {
            var n = this[0];
            if (n) return k.event.trigger(e, t, n, !0);
          },
        }),
        m.focusin ||
          k.each(
            {
              focus: "focusin",
              blur: "focusout",
            },
            function (e, t) {
              var n = function (e) {
                k.event.simulate(t, e.target, k.event.fix(e));
              };
              k.event.special[t] = {
                setup: function () {
                  var i = this.ownerDocument || this,
                    r = $.access(i, t);
                  r || i.addEventListener(e, n, !0),
                    $.access(i, t, (r || 0) + 1);
                },
                teardown: function () {
                  var i = this.ownerDocument || this,
                    r = $.access(i, t) - 1;
                  r
                    ? $.access(i, t, r)
                    : (i.removeEventListener(e, n, !0), $.remove(i, t));
                },
              };
            }
          );
      var Et = n.location,
        Tt = Date.now(),
        St = /\?/;
      k.parseXML = function (e) {
        var t;
        if (!e || "string" != typeof e) return null;
        try {
          t = new n.DOMParser().parseFromString(e, "text/xml");
        } catch (e) {
          t = void 0;
        }
        return (
          (t && !t.getElementsByTagName("parsererror").length) ||
            k.error("Invalid XML: " + e),
          t
        );
      };
      var Lt = /\[\]$/,
        jt = /\r?\n/g,
        Rt = /^(?:submit|button|image|reset|file)$/i,
        Bt = /^(?:input|select|textarea|keygen)/i;

      function Mt(e, t, n, i) {
        var r;
        if (Array.isArray(t))
          k.each(t, function (t, r) {
            n || Lt.test(e)
              ? i(e, r)
              : Mt(
                  e + "[" + ("object" == typeof r && null != r ? t : "") + "]",
                  r,
                  n,
                  i
                );
          });
        else if (n || "object" !== x(t)) i(e, t);
        else for (r in t) Mt(e + "[" + r + "]", t[r], n, i);
      }
      (k.param = function (e, t) {
        var n,
          i = [],
          r = function (e, t) {
            var n = v(t) ? t() : t;
            i[i.length] =
              encodeURIComponent(e) +
              "=" +
              encodeURIComponent(null == n ? "" : n);
          };
        if (null == e) return "";
        if (Array.isArray(e) || (e.jquery && !k.isPlainObject(e)))
          k.each(e, function () {
            r(this.name, this.value);
          });
        else for (n in e) Mt(n, e[n], t, r);
        return i.join("&");
      }),
        k.fn.extend({
          serialize: function () {
            return k.param(this.serializeArray());
          },
          serializeArray: function () {
            return this.map(function () {
              var e = k.prop(this, "elements");
              return e ? k.makeArray(e) : this;
            })
              .filter(function () {
                var e = this.type;
                return (
                  this.name &&
                  !k(this).is(":disabled") &&
                  Bt.test(this.nodeName) &&
                  !Rt.test(e) &&
                  (this.checked || !Ae.test(e))
                );
              })
              .map(function (e, t) {
                var n = k(this).val();
                return null == n
                  ? null
                  : Array.isArray(n)
                  ? k.map(n, function (e) {
                      return {
                        name: t.name,
                        value: e.replace(jt, "\r\n"),
                      };
                    })
                  : {
                      name: t.name,
                      value: n.replace(jt, "\r\n"),
                    };
              })
              .get();
          },
        });
      var Dt = /%20/g,
        Ot = /#.*$/,
        Ht = /([?&])_=[^&]*/,
        Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Pt = /^(?:GET|HEAD)$/,
        Nt = /^\/\//,
        qt = {},
        zt = {},
        Vt = "*/".concat("*"),
        Ft = s.createElement("a");

      function Qt(e) {
        return function (t, n) {
          "string" != typeof t && ((n = t), (t = "*"));
          var i,
            r = 0,
            o = t.toLowerCase().match(P) || [];
          if (v(n))
            for (; (i = o[r++]); )
              "+" === i[0]
                ? ((i = i.slice(1) || "*"), (e[i] = e[i] || []).unshift(n))
                : (e[i] = e[i] || []).push(n);
        };
      }

      function Ut(e, t, n, i) {
        var r = {},
          o = e === zt;

        function s(a) {
          var l;
          return (
            (r[a] = !0),
            k.each(e[a] || [], function (e, a) {
              var c = a(t, n, i);
              return "string" != typeof c || o || r[c]
                ? o
                  ? !(l = c)
                  : void 0
                : (t.dataTypes.unshift(c), s(c), !1);
            }),
            l
          );
        }
        return s(t.dataTypes[0]) || (!r["*"] && s("*"));
      }

      function Kt(e, t) {
        var n,
          i,
          r = k.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
        return i && k.extend(!0, e, i), e;
      }
      (Ft.href = Et.href),
        k.extend({
          active: 0,
          lastModified: {},
          etag: {},
          ajaxSettings: {
            url: Et.href,
            type: "GET",
            isLocal:
              /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
                Et.protocol
              ),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
              "*": Vt,
              text: "text/plain",
              html: "text/html",
              xml: "application/xml, text/xml",
              json: "application/json, text/javascript",
            },
            contents: {
              xml: /\bxml\b/,
              html: /\bhtml/,
              json: /\bjson\b/,
            },
            responseFields: {
              xml: "responseXML",
              text: "responseText",
              json: "responseJSON",
            },
            converters: {
              "* text": String,
              "text html": !0,
              "text json": JSON.parse,
              "text xml": k.parseXML,
            },
            flatOptions: {
              url: !0,
              context: !0,
            },
          },
          ajaxSetup: function (e, t) {
            return t ? Kt(Kt(e, k.ajaxSettings), t) : Kt(k.ajaxSettings, e);
          },
          ajaxPrefilter: Qt(qt),
          ajaxTransport: Qt(zt),
          ajax: function (e, t) {
            "object" == typeof e && ((t = e), (e = void 0)), (t = t || {});
            var i,
              r,
              o,
              a,
              l,
              c,
              d,
              u,
              h,
              g,
              p = k.ajaxSetup({}, t),
              A = p.context || p,
              f = p.context && (A.nodeType || A.jquery) ? k(A) : k.event,
              m = k.Deferred(),
              v = k.Callbacks("once memory"),
              b = p.statusCode || {},
              w = {},
              y = {},
              x = "canceled",
              C = {
                readyState: 0,
                getResponseHeader: function (e) {
                  var t;
                  if (d) {
                    if (!a)
                      for (a = {}; (t = Wt.exec(o)); )
                        a[t[1].toLowerCase() + " "] = (
                          a[t[1].toLowerCase() + " "] || []
                        ).concat(t[2]);
                    t = a[e.toLowerCase() + " "];
                  }
                  return null == t ? null : t.join(", ");
                },
                getAllResponseHeaders: function () {
                  return d ? o : null;
                },
                setRequestHeader: function (e, t) {
                  return (
                    null == d &&
                      ((e = y[e.toLowerCase()] = y[e.toLowerCase()] || e),
                      (w[e] = t)),
                    this
                  );
                },
                overrideMimeType: function (e) {
                  return null == d && (p.mimeType = e), this;
                },
                statusCode: function (e) {
                  var t;
                  if (e)
                    if (d) C.always(e[C.status]);
                    else for (t in e) b[t] = [b[t], e[t]];
                  return this;
                },
                abort: function (e) {
                  var t = e || x;
                  return i && i.abort(t), _(0, t), this;
                },
              };
            if (
              (m.promise(C),
              (p.url = ((e || p.url || Et.href) + "").replace(
                Nt,
                Et.protocol + "//"
              )),
              (p.type = t.method || t.type || p.method || p.type),
              (p.dataTypes = (p.dataType || "*").toLowerCase().match(P) || [
                "",
              ]),
              null == p.crossDomain)
            ) {
              c = s.createElement("a");
              try {
                (c.href = p.url),
                  (c.href = c.href),
                  (p.crossDomain =
                    Ft.protocol + "//" + Ft.host != c.protocol + "//" + c.host);
              } catch (e) {
                p.crossDomain = !0;
              }
            }
            if (
              (p.data &&
                p.processData &&
                "string" != typeof p.data &&
                (p.data = k.param(p.data, p.traditional)),
              Ut(qt, p, t, C),
              d)
            )
              return C;
            for (h in ((u = k.event && p.global) &&
              0 == k.active++ &&
              k.event.trigger("ajaxStart"),
            (p.type = p.type.toUpperCase()),
            (p.hasContent = !Pt.test(p.type)),
            (r = p.url.replace(Ot, "")),
            p.hasContent
              ? p.data &&
                p.processData &&
                0 ===
                  (p.contentType || "").indexOf(
                    "application/x-www-form-urlencoded"
                  ) &&
                (p.data = p.data.replace(Dt, "+"))
              : ((g = p.url.slice(r.length)),
                p.data &&
                  (p.processData || "string" == typeof p.data) &&
                  ((r += (St.test(r) ? "&" : "?") + p.data), delete p.data),
                !1 === p.cache &&
                  ((r = r.replace(Ht, "$1")),
                  (g = (St.test(r) ? "&" : "?") + "_=" + Tt++ + g)),
                (p.url = r + g)),
            p.ifModified &&
              (k.lastModified[r] &&
                C.setRequestHeader("If-Modified-Since", k.lastModified[r]),
              k.etag[r] && C.setRequestHeader("If-None-Match", k.etag[r])),
            ((p.data && p.hasContent && !1 !== p.contentType) ||
              t.contentType) &&
              C.setRequestHeader("Content-Type", p.contentType),
            C.setRequestHeader(
              "Accept",
              p.dataTypes[0] && p.accepts[p.dataTypes[0]]
                ? p.accepts[p.dataTypes[0]] +
                    ("*" !== p.dataTypes[0] ? ", " + Vt + "; q=0.01" : "")
                : p.accepts["*"]
            ),
            p.headers))
              C.setRequestHeader(h, p.headers[h]);
            if (p.beforeSend && (!1 === p.beforeSend.call(A, C, p) || d))
              return C.abort();
            if (
              ((x = "abort"),
              v.add(p.complete),
              C.done(p.success),
              C.fail(p.error),
              (i = Ut(zt, p, t, C)))
            ) {
              if (((C.readyState = 1), u && f.trigger("ajaxSend", [C, p]), d))
                return C;
              p.async &&
                0 < p.timeout &&
                (l = n.setTimeout(function () {
                  C.abort("timeout");
                }, p.timeout));
              try {
                (d = !1), i.send(w, _);
              } catch (e) {
                if (d) throw e;
                _(-1, e);
              }
            } else _(-1, "No Transport");

            function _(e, t, s, a) {
              var c,
                h,
                g,
                w,
                y,
                x = t;
              d ||
                ((d = !0),
                l && n.clearTimeout(l),
                (i = void 0),
                (o = a || ""),
                (C.readyState = 0 < e ? 4 : 0),
                (c = (200 <= e && e < 300) || 304 === e),
                s &&
                  (w = (function (e, t, n) {
                    for (
                      var i, r, o, s, a = e.contents, l = e.dataTypes;
                      "*" === l[0];

                    )
                      l.shift(),
                        void 0 === i &&
                          (i =
                            e.mimeType || t.getResponseHeader("Content-Type"));
                    if (i)
                      for (r in a)
                        if (a[r] && a[r].test(i)) {
                          l.unshift(r);
                          break;
                        }
                    if (l[0] in n) o = l[0];
                    else {
                      for (r in n) {
                        if (!l[0] || e.converters[r + " " + l[0]]) {
                          o = r;
                          break;
                        }
                        s || (s = r);
                      }
                      o = o || s;
                    }
                    if (o) return o !== l[0] && l.unshift(o), n[o];
                  })(p, C, s)),
                (w = (function (e, t, n, i) {
                  var r,
                    o,
                    s,
                    a,
                    l,
                    c = {},
                    d = e.dataTypes.slice();
                  if (d[1])
                    for (s in e.converters)
                      c[s.toLowerCase()] = e.converters[s];
                  for (o = d.shift(); o; )
                    if (
                      (e.responseFields[o] && (n[e.responseFields[o]] = t),
                      !l &&
                        i &&
                        e.dataFilter &&
                        (t = e.dataFilter(t, e.dataType)),
                      (l = o),
                      (o = d.shift()))
                    )
                      if ("*" === o) o = l;
                      else if ("*" !== l && l !== o) {
                        if (!(s = c[l + " " + o] || c["* " + o]))
                          for (r in c)
                            if (
                              (a = r.split(" "))[1] === o &&
                              (s = c[l + " " + a[0]] || c["* " + a[0]])
                            ) {
                              !0 === s
                                ? (s = c[r])
                                : !0 !== c[r] && ((o = a[0]), d.unshift(a[1]));
                              break;
                            }
                        if (!0 !== s)
                          if (s && e.throws) t = s(t);
                          else
                            try {
                              t = s(t);
                            } catch (e) {
                              return {
                                state: "parsererror",
                                error: s
                                  ? e
                                  : "No conversion from " + l + " to " + o,
                              };
                            }
                      }
                  return {
                    state: "success",
                    data: t,
                  };
                })(p, w, C, c)),
                c
                  ? (p.ifModified &&
                      ((y = C.getResponseHeader("Last-Modified")) &&
                        (k.lastModified[r] = y),
                      (y = C.getResponseHeader("etag")) && (k.etag[r] = y)),
                    204 === e || "HEAD" === p.type
                      ? (x = "nocontent")
                      : 304 === e
                      ? (x = "notmodified")
                      : ((x = w.state), (h = w.data), (c = !(g = w.error))))
                  : ((g = x), (!e && x) || ((x = "error"), e < 0 && (e = 0))),
                (C.status = e),
                (C.statusText = (t || x) + ""),
                c ? m.resolveWith(A, [h, x, C]) : m.rejectWith(A, [C, x, g]),
                C.statusCode(b),
                (b = void 0),
                u &&
                  f.trigger(c ? "ajaxSuccess" : "ajaxError", [C, p, c ? h : g]),
                v.fireWith(A, [C, x]),
                u &&
                  (f.trigger("ajaxComplete", [C, p]),
                  --k.active || k.event.trigger("ajaxStop")));
            }
            return C;
          },
          getJSON: function (e, t, n) {
            return k.get(e, t, n, "json");
          },
          getScript: function (e, t) {
            return k.get(e, void 0, t, "script");
          },
        }),
        k.each(["get", "post"], function (e, t) {
          k[t] = function (e, n, i, r) {
            return (
              v(n) && ((r = r || i), (i = n), (n = void 0)),
              k.ajax(
                k.extend(
                  {
                    url: e,
                    type: t,
                    dataType: r,
                    data: n,
                    success: i,
                  },
                  k.isPlainObject(e) && e
                )
              )
            );
          };
        }),
        (k._evalUrl = function (e, t) {
          return k.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
              "text script": function () {},
            },
            dataFilter: function (e) {
              k.globalEval(e, t);
            },
          });
        }),
        k.fn.extend({
          wrapAll: function (e) {
            var t;
            return (
              this[0] &&
                (v(e) && (e = e.call(this[0])),
                (t = k(e, this[0].ownerDocument).eq(0).clone(!0)),
                this[0].parentNode && t.insertBefore(this[0]),
                t
                  .map(function () {
                    for (var e = this; e.firstElementChild; )
                      e = e.firstElementChild;
                    return e;
                  })
                  .append(this)),
              this
            );
          },
          wrapInner: function (e) {
            return v(e)
              ? this.each(function (t) {
                  k(this).wrapInner(e.call(this, t));
                })
              : this.each(function () {
                  var t = k(this),
                    n = t.contents();
                  n.length ? n.wrapAll(e) : t.append(e);
                });
          },
          wrap: function (e) {
            var t = v(e);
            return this.each(function (n) {
              k(this).wrapAll(t ? e.call(this, n) : e);
            });
          },
          unwrap: function (e) {
            return (
              this.parent(e)
                .not("body")
                .each(function () {
                  k(this).replaceWith(this.childNodes);
                }),
              this
            );
          },
        }),
        (k.expr.pseudos.hidden = function (e) {
          return !k.expr.pseudos.visible(e);
        }),
        (k.expr.pseudos.visible = function (e) {
          return !!(
            e.offsetWidth ||
            e.offsetHeight ||
            e.getClientRects().length
          );
        }),
        (k.ajaxSettings.xhr = function () {
          try {
            return new n.XMLHttpRequest();
          } catch (e) {}
        });
      var Xt = {
          0: 200,
          1223: 204,
        },
        Gt = k.ajaxSettings.xhr();
      (m.cors = !!Gt && "withCredentials" in Gt),
        (m.ajax = Gt = !!Gt),
        k.ajaxTransport(function (e) {
          var t, i;
          if (m.cors || (Gt && !e.crossDomain))
            return {
              send: function (r, o) {
                var s,
                  a = e.xhr();
                if (
                  (a.open(e.type, e.url, e.async, e.username, e.password),
                  e.xhrFields)
                )
                  for (s in e.xhrFields) a[s] = e.xhrFields[s];
                for (s in (e.mimeType &&
                  a.overrideMimeType &&
                  a.overrideMimeType(e.mimeType),
                e.crossDomain ||
                  r["X-Requested-With"] ||
                  (r["X-Requested-With"] = "XMLHttpRequest"),
                r))
                  a.setRequestHeader(s, r[s]);
                (t = function (e) {
                  return function () {
                    t &&
                      ((t =
                        i =
                        a.onload =
                        a.onerror =
                        a.onabort =
                        a.ontimeout =
                        a.onreadystatechange =
                          null),
                      "abort" === e
                        ? a.abort()
                        : "error" === e
                        ? "number" != typeof a.status
                          ? o(0, "error")
                          : o(a.status, a.statusText)
                        : o(
                            Xt[a.status] || a.status,
                            a.statusText,
                            "text" !== (a.responseType || "text") ||
                              "string" != typeof a.responseText
                              ? {
                                  binary: a.response,
                                }
                              : {
                                  text: a.responseText,
                                },
                            a.getAllResponseHeaders()
                          ));
                  };
                }),
                  (a.onload = t()),
                  (i = a.onerror = a.ontimeout = t("error")),
                  void 0 !== a.onabort
                    ? (a.onabort = i)
                    : (a.onreadystatechange = function () {
                        4 === a.readyState &&
                          n.setTimeout(function () {
                            t && i();
                          });
                      }),
                  (t = t("abort"));
                try {
                  a.send((e.hasContent && e.data) || null);
                } catch (r) {
                  if (t) throw r;
                }
              },
              abort: function () {
                t && t();
              },
            };
        }),
        k.ajaxPrefilter(function (e) {
          e.crossDomain && (e.contents.script = !1);
        }),
        k.ajaxSetup({
          accepts: {
            script:
              "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
          },
          contents: {
            script: /\b(?:java|ecma)script\b/,
          },
          converters: {
            "text script": function (e) {
              return k.globalEval(e), e;
            },
          },
        }),
        k.ajaxPrefilter("script", function (e) {
          void 0 === e.cache && (e.cache = !1),
            e.crossDomain && (e.type = "GET");
        }),
        k.ajaxTransport("script", function (e) {
          var t, n;
          if (e.crossDomain || e.scriptAttrs)
            return {
              send: function (i, r) {
                (t = k("<script>")
                  .attr(e.scriptAttrs || {})
                  .prop({
                    charset: e.scriptCharset,
                    src: e.url,
                  })
                  .on(
                    "load error",
                    (n = function (e) {
                      t.remove(),
                        (n = null),
                        e && r("error" === e.type ? 404 : 200, e.type);
                    })
                  )),
                  s.head.appendChild(t[0]);
              },
              abort: function () {
                n && n();
              },
            };
        });
      var Jt,
        Yt = [],
        Zt = /(=)\?(?=&|$)|\?\?/;
      k.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function () {
          var e = Yt.pop() || k.expando + "_" + Tt++;
          return (this[e] = !0), e;
        },
      }),
        k.ajaxPrefilter("json jsonp", function (e, t, i) {
          var r,
            o,
            s,
            a =
              !1 !== e.jsonp &&
              (Zt.test(e.url)
                ? "url"
                : "string" == typeof e.data &&
                  0 ===
                    (e.contentType || "").indexOf(
                      "application/x-www-form-urlencoded"
                    ) &&
                  Zt.test(e.data) &&
                  "data");
          if (a || "jsonp" === e.dataTypes[0])
            return (
              (r = e.jsonpCallback =
                v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback),
              a
                ? (e[a] = e[a].replace(Zt, "$1" + r))
                : !1 !== e.jsonp &&
                  (e.url += (St.test(e.url) ? "&" : "?") + e.jsonp + "=" + r),
              (e.converters["script json"] = function () {
                return s || k.error(r + " was not called"), s[0];
              }),
              (e.dataTypes[0] = "json"),
              (o = n[r]),
              (n[r] = function () {
                s = arguments;
              }),
              i.always(function () {
                void 0 === o ? k(n).removeProp(r) : (n[r] = o),
                  e[r] && ((e.jsonpCallback = t.jsonpCallback), Yt.push(r)),
                  s && v(o) && o(s[0]),
                  (s = o = void 0);
              }),
              "script"
            );
        }),
        (m.createHTMLDocument =
          (((Jt = s.implementation.createHTMLDocument("").body).innerHTML =
            "<form></form><form></form>"),
          2 === Jt.childNodes.length)),
        (k.parseHTML = function (e, t, n) {
          return "string" != typeof e
            ? []
            : ("boolean" == typeof t && ((n = t), (t = !1)),
              t ||
                (m.createHTMLDocument
                  ? (((i = (t =
                      s.implementation.createHTMLDocument("")).createElement(
                      "base"
                    )).href = s.location.href),
                    t.head.appendChild(i))
                  : (t = s)),
              (o = !n && []),
              (r = R.exec(e))
                ? [t.createElement(r[1])]
                : ((r = ke([e], t, o)),
                  o && o.length && k(o).remove(),
                  k.merge([], r.childNodes)));
          var i, r, o;
        }),
        (k.fn.load = function (e, t, n) {
          var i,
            r,
            o,
            s = this,
            a = e.indexOf(" ");
          return (
            -1 < a && ((i = yt(e.slice(a))), (e = e.slice(0, a))),
            v(t)
              ? ((n = t), (t = void 0))
              : t && "object" == typeof t && (r = "POST"),
            0 < s.length &&
              k
                .ajax({
                  url: e,
                  type: r || "GET",
                  dataType: "html",
                  data: t,
                })
                .done(function (e) {
                  (o = arguments),
                    s.html(i ? k("<div>").append(k.parseHTML(e)).find(i) : e);
                })
                .always(
                  n &&
                    function (e, t) {
                      s.each(function () {
                        n.apply(this, o || [e.responseText, t, e]);
                      });
                    }
                ),
            this
          );
        }),
        k.each(
          [
            "ajaxStart",
            "ajaxStop",
            "ajaxComplete",
            "ajaxError",
            "ajaxSuccess",
            "ajaxSend",
          ],
          function (e, t) {
            k.fn[t] = function (e) {
              return this.on(t, e);
            };
          }
        ),
        (k.expr.pseudos.animated = function (e) {
          return k.grep(k.timers, function (t) {
            return e === t.elem;
          }).length;
        }),
        (k.offset = {
          setOffset: function (e, t, n) {
            var i,
              r,
              o,
              s,
              a,
              l,
              c = k.css(e, "position"),
              d = k(e),
              u = {};
            "static" === c && (e.style.position = "relative"),
              (a = d.offset()),
              (o = k.css(e, "top")),
              (l = k.css(e, "left")),
              ("absolute" === c || "fixed" === c) &&
              -1 < (o + l).indexOf("auto")
                ? ((s = (i = d.position()).top), (r = i.left))
                : ((s = parseFloat(o) || 0), (r = parseFloat(l) || 0)),
              v(t) && (t = t.call(e, n, k.extend({}, a))),
              null != t.top && (u.top = t.top - a.top + s),
              null != t.left && (u.left = t.left - a.left + r),
              "using" in t ? t.using.call(e, u) : d.css(u);
          },
        }),
        k.fn.extend({
          offset: function (e) {
            if (arguments.length)
              return void 0 === e
                ? this
                : this.each(function (t) {
                    k.offset.setOffset(this, e, t);
                  });
            var t,
              n,
              i = this[0];
            return i
              ? i.getClientRects().length
                ? ((t = i.getBoundingClientRect()),
                  (n = i.ownerDocument.defaultView),
                  {
                    top: t.top + n.pageYOffset,
                    left: t.left + n.pageXOffset,
                  })
                : {
                    top: 0,
                    left: 0,
                  }
              : void 0;
          },
          position: function () {
            if (this[0]) {
              var e,
                t,
                n,
                i = this[0],
                r = {
                  top: 0,
                  left: 0,
                };
              if ("fixed" === k.css(i, "position"))
                t = i.getBoundingClientRect();
              else {
                for (
                  t = this.offset(),
                    n = i.ownerDocument,
                    e = i.offsetParent || n.documentElement;
                  e &&
                  (e === n.body || e === n.documentElement) &&
                  "static" === k.css(e, "position");

                )
                  e = e.parentNode;
                e &&
                  e !== i &&
                  1 === e.nodeType &&
                  (((r = k(e).offset()).top += k.css(e, "borderTopWidth", !0)),
                  (r.left += k.css(e, "borderLeftWidth", !0)));
              }
              return {
                top: t.top - r.top - k.css(i, "marginTop", !0),
                left: t.left - r.left - k.css(i, "marginLeft", !0),
              };
            }
          },
          offsetParent: function () {
            return this.map(function () {
              for (
                var e = this.offsetParent;
                e && "static" === k.css(e, "position");

              )
                e = e.offsetParent;
              return e || ae;
            });
          },
        }),
        k.each(
          {
            scrollLeft: "pageXOffset",
            scrollTop: "pageYOffset",
          },
          function (e, t) {
            var n = "pageYOffset" === t;
            k.fn[e] = function (i) {
              return U(
                this,
                function (e, i, r) {
                  var o;
                  if (
                    (b(e) ? (o = e) : 9 === e.nodeType && (o = e.defaultView),
                    void 0 === r)
                  )
                    return o ? o[t] : e[i];
                  o
                    ? o.scrollTo(n ? o.pageXOffset : r, n ? r : o.pageYOffset)
                    : (e[i] = r);
                },
                e,
                i,
                arguments.length
              );
            };
          }
        ),
        k.each(["top", "left"], function (e, t) {
          k.cssHooks[t] = Ke(m.pixelPosition, function (e, n) {
            if (n)
              return (n = Ue(e, t)), Ve.test(n) ? k(e).position()[t] + "px" : n;
          });
        }),
        k.each(
          {
            Height: "height",
            Width: "width",
          },
          function (e, t) {
            k.each(
              {
                padding: "inner" + e,
                content: t,
                "": "outer" + e,
              },
              function (n, i) {
                k.fn[i] = function (r, o) {
                  var s = arguments.length && (n || "boolean" != typeof r),
                    a = n || (!0 === r || !0 === o ? "margin" : "border");
                  return U(
                    this,
                    function (t, n, r) {
                      var o;
                      return b(t)
                        ? 0 === i.indexOf("outer")
                          ? t["inner" + e]
                          : t.document.documentElement["client" + e]
                        : 9 === t.nodeType
                        ? ((o = t.documentElement),
                          Math.max(
                            t.body["scroll" + e],
                            o["scroll" + e],
                            t.body["offset" + e],
                            o["offset" + e],
                            o["client" + e]
                          ))
                        : void 0 === r
                        ? k.css(t, n, a)
                        : k.style(t, n, r, a);
                    },
                    t,
                    s ? r : void 0,
                    s
                  );
                };
              }
            );
          }
        ),
        k.each(
          "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(
            " "
          ),
          function (e, t) {
            k.fn[t] = function (e, n) {
              return 0 < arguments.length
                ? this.on(t, null, e, n)
                : this.trigger(t);
            };
          }
        ),
        k.fn.extend({
          hover: function (e, t) {
            return this.mouseenter(e).mouseleave(t || e);
          },
        }),
        k.fn.extend({
          bind: function (e, t, n) {
            return this.on(e, null, t, n);
          },
          unbind: function (e, t) {
            return this.off(e, null, t);
          },
          delegate: function (e, t, n, i) {
            return this.on(t, e, n, i);
          },
          undelegate: function (e, t, n) {
            return 1 === arguments.length
              ? this.off(e, "**")
              : this.off(t, e || "**", n);
          },
        }),
        (k.proxy = function (e, t) {
          var n, i, r;
          if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), v(e)))
            return (
              (i = l.call(arguments, 2)),
              ((r = function () {
                return e.apply(t || this, i.concat(l.call(arguments)));
              }).guid = e.guid =
                e.guid || k.guid++),
              r
            );
        }),
        (k.holdReady = function (e) {
          e ? k.readyWait++ : k.ready(!0);
        }),
        (k.isArray = Array.isArray),
        (k.parseJSON = JSON.parse),
        (k.nodeName = j),
        (k.isFunction = v),
        (k.isWindow = b),
        (k.camelCase = J),
        (k.type = x),
        (k.now = Date.now),
        (k.isNumeric = function (e) {
          var t = k.type(e);
          return (
            ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
          );
        }),
        void 0 ===
          (i = function () {
            return k;
          }.apply(t, [])) || (e.exports = i);
      var $t = n.jQuery,
        en = n.$;
      return (
        (k.noConflict = function (e) {
          return (
            n.$ === k && (n.$ = en), e && n.jQuery === k && (n.jQuery = $t), k
          );
        }),
        r || (n.jQuery = n.$ = k),
        k
      );
    });
  },
  function (e, t, n) {
    e.exports =
      '<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel=stylesheet>\r\n<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel=stylesheet>\r\n\r\n<div class=loading-page-overlay style=position:fixed;display:flex;justify-content:center;align-items:center;text-align:center;width:100%;height:100%;top:0;left:0;background:#eee;z-index:1000>\r\n    <div>\r\n        <div><img width=60px src=' +
      n(14) +
      ' /></div>\r\n        <label style=margin-bottom:0;margin-top:-5px;font-size:95%>{language.starting}</label>\r\n    </div>\r\n</div>\r\n\r\n<div class=wrapper>\r\n    <div class="top container-fluid">\r\n        <div class=row>\r\n            <div class="col-md-6 top-left float-left">\r\n                <ul class=menu-bar>\r\n                    <!--li>\r\n                        <div class=logo>\r\n                            <img class=logo-img src=' +
      n(43) +
      '>\r\n                        </div>\r\n                    </li-->\r\n                    <li>\r\n                        <div class="action-menu design-menu">\r\n                            <span class=action-design>{language.menubar.items.design}</span>\r\n                            <span class=material-icons>expand_more</span>\r\n                            <ul class="design display">\r\n                                <!--li><a class=design-new href=#> {language.menubar.items.designs.new} </a></li-->\r\n                                <li><a class=design-clear href=#> {language.menubar.items.designs.clear} </a></li>\r\n                                <!--li><a class=design-from-template href=#> {language.menubar.items.designs.new_template} </a></li>\r\n                                <li><a class=design-upload-template href=#> {language.menubar.items.designs.upload_template} </a></li>\r\n                                <li><a class=save-design href=#> {language.menubar.items.designs.save} </a></li>\r\n                                <li><a class="design-exit back" href=# data-method=POST> {language.menubar.items.designs.exit} </a></li-->\r\n                            </ul>\r\n                        </div>\r\n                    </li>\r\n                    <li class=choose-template-menu>\r\n                        <div class="action-menu action-choose-template">\r\n                            <span class=choose>{language.menubar.items.change_template}</span>\r\n                            <span class=material-icons>expand_more</span>\r\n                            <div class=show-list-template>\r\n                                <ul class="display-template display">\r\n\r\n                                </ul>\r\n                            </div>\r\n                            \x3c!--show thumbnail image template--\x3e\r\n                            <div class=template-thumbnail>\r\n                                <img class=img-template src=/ />\r\n                            </div>\r\n                        </div>\r\n                    </li>\r\n                    <li>\r\n                        <div class="action-menu action action-preview preview-page">\r\n                            <span class=ac>{language.menubar.items.preview}</span>\r\n                            <span class=material-icons>expand_more</span>\r\n                            <ul class=display>\r\n                                <li><a class=preview-design-desktop href=#> {language.menubar.items.previews.desktop} </a></li>\r\n                                <li><a class=preview-design-mobile href=#> {language.menubar.items.previews.mobile} </a></li>\r\n                            </ul>\r\n                        </div>\r\n                    </li>\r\n                    <li>\r\n                        <div class="action-menu view-mode">\r\n                            <span class=ac id=show-mode>{language.menubar.items.mode_design}</span>\r\n                            <span class=material-icons>expand_more</span>\r\n                            <ul class=display-view-mode>\r\n                                <li><a class=view-mode-design href=#> {language.menubar.items.mode_designs.design} </a></li>\r\n                                <li><a class=view-mode-source href=#> {language.menubar.items.mode_designs.source} </a></li>\r\n                            </ul>\r\n                        </div>\r\n                    </li>\r\n                </ul>\r\n            </div>\r\n            <div class="col-md-6 top-right float-right">\r\n                <div class="mode-device ml-auto" style="">\r\n                    <li class="device mode-mobile" data-mode=mode-mobile title={language.menubar.items.devices.mobile}>\r\n                        <span class="material-icons-outlined icon-mode" style=color:#969696>smartphone</span>\r\n                    </li>\r\n                    <li class="device mode-tablet" data-mode=mode-tablet title={language.menubar.items.devices.tablet}>\r\n                        <span class="material-icons-outlined icon-mode" style=color:#969696>tablet_android</span>\r\n                    </li>\r\n                    <li class="device mode-desktop" data-mode=mode-desktop title={language.menubar.items.devices.desktop}>\r\n                        <span class="material-icons-outlined icon-mode">computer</span>\r\n                    </li>\r\n                </div>\r\n                <ul class=icons>\r\n                    <li class=ask-help>\r\n                        <span class="material-icons-outlined icon mr-1">help_outline</span>\r\n                        <span class=help>{language.menubar.items.help}</span>\r\n                    </li>\r\n                </ul>\r\n                \x3c!--<div class="sync">\r\n                    <button class="btn btn-primary btn-sync"><i class="fab fa-google"></i> {language.menubar.items.sync} </button>\r\n                    <span class="choose-sync"><i class="{builder-icon-angle-down}"></span>\r\n                    <ul class="action-sync">\r\n                        <li class="synchronization google-driver" data-sync="google-driver" data-title="{language.menubar.items.syncs.google_driver.title}" disable="disable">\r\n                            {language.menubar.items.syncs.google_driver}\r\n                        </li>\r\n                        <li class="synchronization dropbox" data-sync="dropbox" data-title="{language.menubar.items.syncs.dropbox}">\r\n                            {language.menubar.items.syncs.dropbox}\r\n                        </li>\r\n                        <li class="synchronization one-driver" data-sync="one-driver" data-title="{language.menubar.items.syncs.one_driver}">\r\n                            {language.menubar.items.syncs.one_driver}\r\n                        </li>\r\n                        <li class="setting">\r\n                            {language.menubar.items.syncs.setting}\r\n                        </li>\r\n                    </ul>\r\n                </div>\r\n                \r\n                <div class="lang">\r\n                    <button class="btn btn-primary btn-sync"><i class="fab fa-google"></i> {language.menubar.items.lang} </button>\r\n                    <span class="choose-lang"><i class="{builder-icon-angle-down}"></span>\r\n                    <ul class="action-lang">\r\n                        <li class="change-language lang-en" data-lang="english" data-title="{language.menubar.items.lang.eng}" disable="disable">\r\n                            {language.menubar.items.lang.eng}\r\n                        </li>\r\n                        <li class="change-language lang-vi" data-lang="vietname" data-title="{language.menubar.items.lang.vie}">\r\n                            {language.menubar.items.lang.vie}\r\n                        </li>\r\n                        <li class="change-language lang-jp" data-lang="japan" data-title="{language.menubar.items.lang.jpa}">\r\n                            {language.menubar.items.lang.jpa}\r\n                        </li>\r\n                        <li class="setting">\r\n                            {language.menubar.items.lang.setting}\r\n                        </li>\r\n                    </ul>\r\n                </div>--\x3e\r\n                <div class="d-flex align-items-center">\r\n                    <a  href=#>\r\n                        <button class="btn btn-primary btn-save menu-bar-action" onclick="popup_to_opener_content();">{language.menubar.items.save}</button>\r\n    <a class= href=#> <button class="btn btn-primary btn-save menu-bar-action" type="button" onclick="popup_to_opener_content(\'exit\');"> SAVE & Exit </button> </a>                     \r\n                    <a class=save-and-close href=#>\r\n                        <button class="btn btn-primary btn-save-and-close menu-bar-action">{language.menubar.items.save_and_close}</button>\r\n                    </a>\r\n                    <a class=export-button href=#>\r\n                        <button class="btn btn-primary btn-export menu-bar-action">{language.export}</button>\r\n                    </a>\r\n                \r\n                </div>                \r\n            </div>\r\n        </div>\r\n    </div>\x3c!-- end top--\x3e\r\n    <div class="content container-fluid">\r\n        <div class="">\r\n            <div class=content-container>\r\n                <div class=content-left name=editable id=editable contenteditable=true>\r\n                    <div class=content-background>\r\n                        <iframe class="col-lg-12 col-md-12 col-sm-12" id=builder_iframe width=100% height=100% onload=\'this.style.height=this.contentDocument.body.scrollHeight+"px"\' scrolling=no style=""></iframe>\r\n                    </div>\r\n                </div>\x3c!-- end content-left --\x3e\r\n            </div>\r\n            \r\n            <div class=side-panel-container style="height:calc(100vh - 30px)">\r\n                <div id=builder_sidebar class=content-right>\r\n                    <nav class="" style="">\r\n                        <div class="nav nav-tabs" id=nav-tab role=tablist>\r\n                            <a class="nav-item nav-link active" id=nav-home-tab data-toggle=tab href=#nav-home role=tab aria-controls=nav-content aria-selected=true>\r\n                                <span class="flex align-items-center">\r\n                                    <span class="material-icons-outlined mr-2">developer_board</span>\r\n                                    <span>{language.navbar.contents.widgets}</span>\r\n                                </span>\r\n                            </a>\r\n                            <a style=display:none class="nav-item nav-link" id=nav-layouts-tab data-toggle=tab href=#nav-layouts role=tab aria-controls=nav-row aria-selected=false>\r\n                                <span class="flex align-items-center">\r\n                                    <span class="material-icons-outlined mr-2">local_offer</span>\r\n                                    <span>{language.navbar.contents.layouts}</span>\r\n                                </span>\r\n                            </a>\r\n                            <!--a class="nav-item nav-link" id=nav-contact-tab data-toggle=tab href=#nav-contact role=tab aria-controls=nav-setting aria-selected=false>\r\n                                <span class="flex align-items-center">\r\n                                    <span class="material-icons-outlined mr-2">local_offer</span>\r\n                                    <span>{language.navbar.contents.tags}</span>\r\n                                </span>\r\n                            </a-->\r\n                            <a href=javascript:; class="nav-item nav-link" id=nav-profile-tab>\r\n                                <span class="flex align-items-center">\r\n                                    <span class="material-icons-outlined mr-2">settings</span>\r\n                                    <span>{language.navbar.contents.setting}</span>\r\n                                </span>\r\n                            </a>\r\n                        </div>\r\n                    </nav>\r\n                    <div class=tab-content id=nav-tabContent>\r\n                        <div class="tab-pane fade show active" id=nav-home role=tabpanel aria-labelledby=nav-home-tab>\r\n                            <div class="container modules widgets-sections">\r\n                            </div>\r\n                            <div class="container detail-content">\r\n                                <div class=properties-pannel-title>\r\n                                    <h4>{language.navbar.contents.content_property}</h4>\r\n                                    <div class=action>\r\n                                        <a class="delete builder-remove-selected-button" href=javascript:; data-toggle=tooltip title={language.navbar.items.actions.delete}>\r\n                                            <span class=material-icons-outlined>delete</span>\r\n                                        </a>\r\n                                        <a class="duplicate builder-duplicate-selected-button" href=javascript:; title={language.navbar.items.actions.duplicate}>\r\n                                            <span class=material-icons-outlined style=font-size:20px>filter_none</span>\r\n                                        </a>\r\n                                        <a class=move href=javascript:; title={language.navbar.items.actions.down}>\r\n                                            <span class=material-icons-outlined>keyboard_arrow_down</span>\r\n                                        </a>\r\n                                    </div>\r\n                                </div>\r\n                                <div class="properties-pannel-content attributes-container">\r\n                                    \r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class="tab-pane fade" id=nav-profile role=tabpanel aria-labelledby=nav-profile-tab>\r\n                            \x3c!-- <div class="container rows-module" style="">\r\n                                <div class="row row_widget_container">\r\n                                    {language.navbar.contents.loading}\r\n                                </div>\r\n                            </div> --\x3e\r\n                        </div>\r\n                        <div class="tab-pane fade" id=nav-layouts role=tabpanel aria-labelledby=nav-layouts-tab>\r\n                            <div class="container rows-module" style="">\r\n                                <div class="row row_widget_container">\r\n                                    {language.navbar.contents.loading}\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class="tab-pane fade" id=nav-contact role=tabpanel aria-labelledby=nav-contact-tab>\r\n                            <div class="container setting-module">\r\n                                <ul class=tags-value>\r\n\r\n                                </ul>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n            <div class="col-md-6 view-source">\r\n                <div id=editor>\r\n                    \x3c!--content template--\x3e\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\x3c!-- end container-fluid--\x3e\r\n\r\n    <div class=undo-redo>\r\n        <div class=undo-redo-actions>\r\n            <button class=undo-redo-action-history data-toggle=tooltip title={language.bottombar.items.history} style=border-radius:2px>\r\n                <i class="{builder-icon-history} history"></i>\r\n            </button>\r\n            <button class=undo-redo-action-undo data-toggle=tooltip title={language.bottombar.items.undo}>\r\n                <i class="{builder-icon-reply} history"></i>\r\n            </button>\r\n            <button class="undo-redo-action-redo disable-redo" data-toggle=tooltip title={language.bottombar.items.redo}>\r\n                <i class="{builder-icon-reply} history" style=transform:rotateY(165deg)></i>\r\n            </button>\r\n        </div>\r\n\r\n        \x3c!--history--\x3e\r\n        <div ng-if=historyOpen class="undo-redo__history--wrapper ng-scope" style=display:none>\r\n            <div ng-transclude="" mailup-common-scrollbar="" class=ng-isolate-scope style=height:100%;position:relative>\r\n                <div class="undo-redo__history undo-redo__history--open ng-scope mailup-common-scrollable-container ps-container ps-theme-default ps-active-y" data-ps-id=3934d02e-7a69-b8f0-1c88-d7d2783b123d>\r\n                    <ul id=undo-redo__history class="">\r\n                    </ul>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    \r\n    <div class="ui-pnotify bg-warning bg-as notification-area" style=background-color:#d8eacc!important;width:auto;right:10px;top:auto;bottom:39px;opacity:1;display:none;overflow:visible;cursor:auto>\r\n        <div class="alert ui-pnotify-container ui-pnotify-shadow" style=min-height:16px;overflow:hidden;position:relative;padding-left:20px;padding-right:41px;padding-top:20px;padding-bottom:20px>\r\n            <div class=ui-pnotify-text style=font-size:14px>\r\n\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <footer class=footer>\r\n        <div class=container-fluid>\r\n            <div class="col-md-6 footer-left">\r\n                <a href=# class="back footer-exit-without-save">\r\n                    <i class={builder-icon-angle-left}></i><p>{language.bottombar.items.exit}</p>\r\n                </a>\r\n            </div>\r\n            <div class="col-md-6 footer-right">\r\n                <span style=font-size:13px;height:100%;display:flex;align-items:center;justify-content:flex-end>{language.bottombar.items.last_save}</span>\r\n                \r\n            </div>\r\n        </div>\r\n    </footer>\x3c!-- end footer--\x3e\r\n    <div class=box-popup-right title="Show apps">\r\n        <span class="material-icons-outlined icon">chevron_left</span>\r\n    </div>\r\n</div>\x3c!-- end wrapper--\x3e\r\n';
  },
  function (e, t) {
    var n;
    n = (function () {
      return this;
    })();
    try {
      n = n || new Function("return this")();
    } catch (e) {
      "object" == typeof window && (n = window);
    }
    e.exports = n;
  },
  function (e, t, n) {
    var i;
    /*!
     * jQuery JavaScript Library v3.6.0
     * https://jquery.com/
     *
     * Includes Sizzle.js
     * https://sizzlejs.com/
     *
     * Copyright OpenJS Foundation and other contributors
     * Released under the MIT license
     * https://jquery.org/license
     *
     * Date: 2021-03-02T17:08Z
     */
    !(function (t, n) {
      "use strict";
      "object" == typeof e.exports
        ? (e.exports = t.document
            ? n(t, !0)
            : function (e) {
                if (!e.document)
                  throw new Error("jQuery requires a window with a document");
                return n(e);
              })
        : n(t);
    })("undefined" != typeof window ? window : this, function (n, r) {
      "use strict";
      var o = [],
        s = Object.getPrototypeOf,
        a = o.slice,
        l = o.flat
          ? function (e) {
              return o.flat.call(e);
            }
          : function (e) {
              return o.concat.apply([], e);
            },
        c = o.push,
        d = o.indexOf,
        u = {},
        h = u.toString,
        g = u.hasOwnProperty,
        p = g.toString,
        A = p.call(Object),
        f = {},
        m = function (e) {
          return (
            "function" == typeof e &&
            "number" != typeof e.nodeType &&
            "function" != typeof e.item
          );
        },
        v = function (e) {
          return null != e && e === e.window;
        },
        b = n.document,
        w = {
          type: !0,
          src: !0,
          nonce: !0,
          noModule: !0,
        };

      function y(e, t, n) {
        var i,
          r,
          o = (n = n || b).createElement("script");
        if (((o.text = e), t))
          for (i in w)
            (r = t[i] || (t.getAttribute && t.getAttribute(i))) &&
              o.setAttribute(i, r);
        n.head.appendChild(o).parentNode.removeChild(o);
      }

      function x(e) {
        return null == e
          ? e + ""
          : "object" == typeof e || "function" == typeof e
          ? u[h.call(e)] || "object"
          : typeof e;
      }
      var C = function (e, t) {
        return new C.fn.init(e, t);
      };

      function k(e) {
        var t = !!e && "length" in e && e.length,
          n = x(e);
        return (
          !m(e) &&
          !v(e) &&
          ("array" === n ||
            0 === t ||
            ("number" == typeof t && t > 0 && t - 1 in e))
        );
      }
      (C.fn = C.prototype =
        {
          jquery: "3.6.0",
          constructor: C,
          length: 0,
          toArray: function () {
            return a.call(this);
          },
          get: function (e) {
            return null == e
              ? a.call(this)
              : e < 0
              ? this[e + this.length]
              : this[e];
          },
          pushStack: function (e) {
            var t = C.merge(this.constructor(), e);
            return (t.prevObject = this), t;
          },
          each: function (e) {
            return C.each(this, e);
          },
          map: function (e) {
            return this.pushStack(
              C.map(this, function (t, n) {
                return e.call(t, n, t);
              })
            );
          },
          slice: function () {
            return this.pushStack(a.apply(this, arguments));
          },
          first: function () {
            return this.eq(0);
          },
          last: function () {
            return this.eq(-1);
          },
          even: function () {
            return this.pushStack(
              C.grep(this, function (e, t) {
                return (t + 1) % 2;
              })
            );
          },
          odd: function () {
            return this.pushStack(
              C.grep(this, function (e, t) {
                return t % 2;
              })
            );
          },
          eq: function (e) {
            var t = this.length,
              n = +e + (e < 0 ? t : 0);
            return this.pushStack(n >= 0 && n < t ? [this[n]] : []);
          },
          end: function () {
            return this.prevObject || this.constructor();
          },
          push: c,
          sort: o.sort,
          splice: o.splice,
        }),
        (C.extend = C.fn.extend =
          function () {
            var e,
              t,
              n,
              i,
              r,
              o,
              s = arguments[0] || {},
              a = 1,
              l = arguments.length,
              c = !1;
            for (
              "boolean" == typeof s && ((c = s), (s = arguments[a] || {}), a++),
                "object" == typeof s || m(s) || (s = {}),
                a === l && ((s = this), a--);
              a < l;
              a++
            )
              if (null != (e = arguments[a]))
                for (t in e)
                  (i = e[t]),
                    "__proto__" !== t &&
                      s !== i &&
                      (c && i && (C.isPlainObject(i) || (r = Array.isArray(i)))
                        ? ((n = s[t]),
                          (o =
                            r && !Array.isArray(n)
                              ? []
                              : r || C.isPlainObject(n)
                              ? n
                              : {}),
                          (r = !1),
                          (s[t] = C.extend(c, o, i)))
                        : void 0 !== i && (s[t] = i));
            return s;
          }),
        C.extend({
          expando: "jQuery" + ("3.6.0" + Math.random()).replace(/\D/g, ""),
          isReady: !0,
          error: function (e) {
            throw new Error(e);
          },
          noop: function () {},
          isPlainObject: function (e) {
            var t, n;
            return (
              !(!e || "[object Object]" !== h.call(e)) &&
              (!(t = s(e)) ||
                ("function" ==
                  typeof (n = g.call(t, "constructor") && t.constructor) &&
                  p.call(n) === A))
            );
          },
          isEmptyObject: function (e) {
            var t;
            for (t in e) return !1;
            return !0;
          },
          globalEval: function (e, t, n) {
            y(
              e,
              {
                nonce: t && t.nonce,
              },
              n
            );
          },
          each: function (e, t) {
            var n,
              i = 0;
            if (k(e))
              for (n = e.length; i < n && !1 !== t.call(e[i], i, e[i]); i++);
            else for (i in e) if (!1 === t.call(e[i], i, e[i])) break;
            return e;
          },
          makeArray: function (e, t) {
            var n = t || [];
            return (
              null != e &&
                (k(Object(e))
                  ? C.merge(n, "string" == typeof e ? [e] : e)
                  : c.call(n, e)),
              n
            );
          },
          inArray: function (e, t, n) {
            return null == t ? -1 : d.call(t, e, n);
          },
          merge: function (e, t) {
            for (var n = +t.length, i = 0, r = e.length; i < n; i++)
              e[r++] = t[i];
            return (e.length = r), e;
          },
          grep: function (e, t, n) {
            for (var i = [], r = 0, o = e.length, s = !n; r < o; r++)
              !t(e[r], r) !== s && i.push(e[r]);
            return i;
          },
          map: function (e, t, n) {
            var i,
              r,
              o = 0,
              s = [];
            if (k(e))
              for (i = e.length; o < i; o++)
                null != (r = t(e[o], o, n)) && s.push(r);
            else for (o in e) null != (r = t(e[o], o, n)) && s.push(r);
            return l(s);
          },
          guid: 1,
          support: f,
        }),
        "function" == typeof Symbol &&
          (C.fn[Symbol.iterator] = o[Symbol.iterator]),
        C.each(
          "Boolean Number String Function Array Date RegExp Object Error Symbol".split(
            " "
          ),
          function (e, t) {
            u["[object " + t + "]"] = t.toLowerCase();
          }
        );
      var _ =
        /*!
         * Sizzle CSS Selector Engine v2.3.6
         * https://sizzlejs.com/
         *
         * Copyright JS Foundation and other contributors
         * Released under the MIT license
         * https://js.foundation/
         *
         * Date: 2021-02-16
         */
        (function (e) {
          var t,
            n,
            i,
            r,
            o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            p,
            A,
            f,
            m,
            v,
            b,
            w = "sizzle" + 1 * new Date(),
            y = e.document,
            x = 0,
            C = 0,
            k = le(),
            _ = le(),
            I = le(),
            E = le(),
            T = function (e, t) {
              return e === t && (u = !0), 0;
            },
            S = {}.hasOwnProperty,
            L = [],
            j = L.pop,
            R = L.push,
            B = L.push,
            M = L.slice,
            D = function (e, t) {
              for (var n = 0, i = e.length; n < i; n++)
                if (e[n] === t) return n;
              return -1;
            },
            O =
              "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            H = "[\\x20\\t\\r\\n\\f]",
            W =
              "(?:\\\\[\\da-fA-F]{1,6}" +
              H +
              "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
            P =
              "\\[" +
              H +
              "*(" +
              W +
              ")(?:" +
              H +
              "*([*^$|!~]?=)" +
              H +
              "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" +
              W +
              "))|)" +
              H +
              "*\\]",
            N =
              ":(" +
              W +
              ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" +
              P +
              ")*)|.*)\\)|)",
            q = new RegExp(H + "+", "g"),
            z = new RegExp(
              "^" + H + "+|((?:^|[^\\\\])(?:\\\\.)*)" + H + "+$",
              "g"
            ),
            V = new RegExp("^" + H + "*," + H + "*"),
            F = new RegExp("^" + H + "*([>+~]|" + H + ")" + H + "*"),
            Q = new RegExp(H + "|>"),
            U = new RegExp(N),
            K = new RegExp("^" + W + "$"),
            X = {
              ID: new RegExp("^#(" + W + ")"),
              CLASS: new RegExp("^\\.(" + W + ")"),
              TAG: new RegExp("^(" + W + "|[*])"),
              ATTR: new RegExp("^" + P),
              PSEUDO: new RegExp("^" + N),
              CHILD: new RegExp(
                "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
                  H +
                  "*(even|odd|(([+-]|)(\\d*)n|)" +
                  H +
                  "*(?:([+-]|)" +
                  H +
                  "*(\\d+)|))" +
                  H +
                  "*\\)|)",
                "i"
              ),
              bool: new RegExp("^(?:" + O + ")$", "i"),
              needsContext: new RegExp(
                "^" +
                  H +
                  "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
                  H +
                  "*((?:-\\d)?\\d*)" +
                  H +
                  "*\\)|)(?=[^-]|$)",
                "i"
              ),
            },
            G = /HTML$/i,
            J = /^(?:input|select|textarea|button)$/i,
            Y = /^h\d$/i,
            Z = /^[^{]+\{\s*\[native \w/,
            $ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
            ee = /[+~]/,
            te = new RegExp(
              "\\\\[\\da-fA-F]{1,6}" + H + "?|\\\\([^\\r\\n\\f])",
              "g"
            ),
            ne = function (e, t) {
              var n = "0x" + e.slice(1) - 65536;
              return (
                t ||
                (n < 0
                  ? String.fromCharCode(n + 65536)
                  : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320))
              );
            },
            ie = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
            re = function (e, t) {
              return t
                ? "\0" === e
                  ? "�"
                  : e.slice(0, -1) +
                    "\\" +
                    e.charCodeAt(e.length - 1).toString(16) +
                    " "
                : "\\" + e;
            },
            oe = function () {
              h();
            },
            se = we(
              function (e) {
                return (
                  !0 === e.disabled && "fieldset" === e.nodeName.toLowerCase()
                );
              },
              {
                dir: "parentNode",
                next: "legend",
              }
            );
          try {
            B.apply((L = M.call(y.childNodes)), y.childNodes),
              L[y.childNodes.length].nodeType;
          } catch (e) {
            B = {
              apply: L.length
                ? function (e, t) {
                    R.apply(e, M.call(t));
                  }
                : function (e, t) {
                    for (var n = e.length, i = 0; (e[n++] = t[i++]); );
                    e.length = n - 1;
                  },
            };
          }

          function ae(e, t, i, r) {
            var o,
              a,
              c,
              d,
              u,
              p,
              m,
              v = t && t.ownerDocument,
              y = t ? t.nodeType : 9;
            if (
              ((i = i || []),
              "string" != typeof e || !e || (1 !== y && 9 !== y && 11 !== y))
            )
              return i;
            if (!r && (h(t), (t = t || g), A)) {
              if (11 !== y && (u = $.exec(e)))
                if ((o = u[1])) {
                  if (9 === y) {
                    if (!(c = t.getElementById(o))) return i;
                    if (c.id === o) return i.push(c), i;
                  } else if (
                    v &&
                    (c = v.getElementById(o)) &&
                    b(t, c) &&
                    c.id === o
                  )
                    return i.push(c), i;
                } else {
                  if (u[2]) return B.apply(i, t.getElementsByTagName(e)), i;
                  if (
                    (o = u[3]) &&
                    n.getElementsByClassName &&
                    t.getElementsByClassName
                  )
                    return B.apply(i, t.getElementsByClassName(o)), i;
                }
              if (
                n.qsa &&
                !E[e + " "] &&
                (!f || !f.test(e)) &&
                (1 !== y || "object" !== t.nodeName.toLowerCase())
              ) {
                if (((m = e), (v = t), 1 === y && (Q.test(e) || F.test(e)))) {
                  for (
                    ((v = (ee.test(e) && me(t.parentNode)) || t) === t &&
                      n.scope) ||
                      ((d = t.getAttribute("id"))
                        ? (d = d.replace(ie, re))
                        : t.setAttribute("id", (d = w))),
                      a = (p = s(e)).length;
                    a--;

                  )
                    p[a] = (d ? "#" + d : ":scope") + " " + be(p[a]);
                  m = p.join(",");
                }
                try {
                  return B.apply(i, v.querySelectorAll(m)), i;
                } catch (t) {
                  E(e, !0);
                } finally {
                  d === w && t.removeAttribute("id");
                }
              }
            }
            return l(e.replace(z, "$1"), t, i, r);
          }

          function le() {
            var e = [];
            return function t(n, r) {
              return (
                e.push(n + " ") > i.cacheLength && delete t[e.shift()],
                (t[n + " "] = r)
              );
            };
          }

          function ce(e) {
            return (e[w] = !0), e;
          }

          function de(e) {
            var t = g.createElement("fieldset");
            try {
              return !!e(t);
            } catch (e) {
              return !1;
            } finally {
              t.parentNode && t.parentNode.removeChild(t), (t = null);
            }
          }

          function ue(e, t) {
            for (var n = e.split("|"), r = n.length; r--; )
              i.attrHandle[n[r]] = t;
          }

          function he(e, t) {
            var n = t && e,
              i =
                n &&
                1 === e.nodeType &&
                1 === t.nodeType &&
                e.sourceIndex - t.sourceIndex;
            if (i) return i;
            if (n) for (; (n = n.nextSibling); ) if (n === t) return -1;
            return e ? 1 : -1;
          }

          function ge(e) {
            return function (t) {
              return "input" === t.nodeName.toLowerCase() && t.type === e;
            };
          }

          function pe(e) {
            return function (t) {
              var n = t.nodeName.toLowerCase();
              return ("input" === n || "button" === n) && t.type === e;
            };
          }

          function Ae(e) {
            return function (t) {
              return "form" in t
                ? t.parentNode && !1 === t.disabled
                  ? "label" in t
                    ? "label" in t.parentNode
                      ? t.parentNode.disabled === e
                      : t.disabled === e
                    : t.isDisabled === e || (t.isDisabled !== !e && se(t) === e)
                  : t.disabled === e
                : "label" in t && t.disabled === e;
            };
          }

          function fe(e) {
            return ce(function (t) {
              return (
                (t = +t),
                ce(function (n, i) {
                  for (var r, o = e([], n.length, t), s = o.length; s--; )
                    n[(r = o[s])] && (n[r] = !(i[r] = n[r]));
                })
              );
            });
          }

          function me(e) {
            return e && void 0 !== e.getElementsByTagName && e;
          }
          for (t in ((n = ae.support = {}),
          (o = ae.isXML =
            function (e) {
              var t = e && e.namespaceURI,
                n = e && (e.ownerDocument || e).documentElement;
              return !G.test(t || (n && n.nodeName) || "HTML");
            }),
          (h = ae.setDocument =
            function (e) {
              var t,
                r,
                s = e ? e.ownerDocument || e : y;
              return s != g && 9 === s.nodeType && s.documentElement
                ? ((p = (g = s).documentElement),
                  (A = !o(g)),
                  y != g &&
                    (r = g.defaultView) &&
                    r.top !== r &&
                    (r.addEventListener
                      ? r.addEventListener("unload", oe, !1)
                      : r.attachEvent && r.attachEvent("onunload", oe)),
                  (n.scope = de(function (e) {
                    return (
                      p.appendChild(e).appendChild(g.createElement("div")),
                      void 0 !== e.querySelectorAll &&
                        !e.querySelectorAll(":scope fieldset div").length
                    );
                  })),
                  (n.attributes = de(function (e) {
                    return (e.className = "i"), !e.getAttribute("className");
                  })),
                  (n.getElementsByTagName = de(function (e) {
                    return (
                      e.appendChild(g.createComment("")),
                      !e.getElementsByTagName("*").length
                    );
                  })),
                  (n.getElementsByClassName = Z.test(g.getElementsByClassName)),
                  (n.getById = de(function (e) {
                    return (
                      (p.appendChild(e).id = w),
                      !g.getElementsByName || !g.getElementsByName(w).length
                    );
                  })),
                  n.getById
                    ? ((i.filter.ID = function (e) {
                        var t = e.replace(te, ne);
                        return function (e) {
                          return e.getAttribute("id") === t;
                        };
                      }),
                      (i.find.ID = function (e, t) {
                        if (void 0 !== t.getElementById && A) {
                          var n = t.getElementById(e);
                          return n ? [n] : [];
                        }
                      }))
                    : ((i.filter.ID = function (e) {
                        var t = e.replace(te, ne);
                        return function (e) {
                          var n =
                            void 0 !== e.getAttributeNode &&
                            e.getAttributeNode("id");
                          return n && n.value === t;
                        };
                      }),
                      (i.find.ID = function (e, t) {
                        if (void 0 !== t.getElementById && A) {
                          var n,
                            i,
                            r,
                            o = t.getElementById(e);
                          if (o) {
                            if ((n = o.getAttributeNode("id")) && n.value === e)
                              return [o];
                            for (
                              r = t.getElementsByName(e), i = 0;
                              (o = r[i++]);

                            )
                              if (
                                (n = o.getAttributeNode("id")) &&
                                n.value === e
                              )
                                return [o];
                          }
                          return [];
                        }
                      })),
                  (i.find.TAG = n.getElementsByTagName
                    ? function (e, t) {
                        return void 0 !== t.getElementsByTagName
                          ? t.getElementsByTagName(e)
                          : n.qsa
                          ? t.querySelectorAll(e)
                          : void 0;
                      }
                    : function (e, t) {
                        var n,
                          i = [],
                          r = 0,
                          o = t.getElementsByTagName(e);
                        if ("*" === e) {
                          for (; (n = o[r++]); ) 1 === n.nodeType && i.push(n);
                          return i;
                        }
                        return o;
                      }),
                  (i.find.CLASS =
                    n.getElementsByClassName &&
                    function (e, t) {
                      if (void 0 !== t.getElementsByClassName && A)
                        return t.getElementsByClassName(e);
                    }),
                  (m = []),
                  (f = []),
                  (n.qsa = Z.test(g.querySelectorAll)) &&
                    (de(function (e) {
                      var t;
                      (p.appendChild(e).innerHTML =
                        "<a id='" +
                        w +
                        "'></a><select id='" +
                        w +
                        "-\r\\' msallowcapture=''><option selected=''></option></select>"),
                        e.querySelectorAll("[msallowcapture^='']").length &&
                          f.push("[*^$]=" + H + "*(?:''|\"\")"),
                        e.querySelectorAll("[selected]").length ||
                          f.push("\\[" + H + "*(?:value|" + O + ")"),
                        e.querySelectorAll("[id~=" + w + "-]").length ||
                          f.push("~="),
                        (t = g.createElement("input")).setAttribute("name", ""),
                        e.appendChild(t),
                        e.querySelectorAll("[name='']").length ||
                          f.push(
                            "\\[" + H + "*name" + H + "*=" + H + "*(?:''|\"\")"
                          ),
                        e.querySelectorAll(":checked").length ||
                          f.push(":checked"),
                        e.querySelectorAll("a#" + w + "+*").length ||
                          f.push(".#.+[+~]"),
                        e.querySelectorAll("\\\f"),
                        f.push("[\\r\\n\\f]");
                    }),
                    de(function (e) {
                      e.innerHTML =
                        "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";
                      var t = g.createElement("input");
                      t.setAttribute("type", "hidden"),
                        e.appendChild(t).setAttribute("name", "D"),
                        e.querySelectorAll("[name=d]").length &&
                          f.push("name" + H + "*[*^$|!~]?="),
                        2 !== e.querySelectorAll(":enabled").length &&
                          f.push(":enabled", ":disabled"),
                        (p.appendChild(e).disabled = !0),
                        2 !== e.querySelectorAll(":disabled").length &&
                          f.push(":enabled", ":disabled"),
                        e.querySelectorAll("*,:x"),
                        f.push(",.*:");
                    })),
                  (n.matchesSelector = Z.test(
                    (v =
                      p.matches ||
                      p.webkitMatchesSelector ||
                      p.mozMatchesSelector ||
                      p.oMatchesSelector ||
                      p.msMatchesSelector)
                  )) &&
                    de(function (e) {
                      (n.disconnectedMatch = v.call(e, "*")),
                        v.call(e, "[s!='']:x"),
                        m.push("!=", N);
                    }),
                  (f = f.length && new RegExp(f.join("|"))),
                  (m = m.length && new RegExp(m.join("|"))),
                  (t = Z.test(p.compareDocumentPosition)),
                  (b =
                    t || Z.test(p.contains)
                      ? function (e, t) {
                          var n = 9 === e.nodeType ? e.documentElement : e,
                            i = t && t.parentNode;
                          return (
                            e === i ||
                            !(
                              !i ||
                              1 !== i.nodeType ||
                              !(n.contains
                                ? n.contains(i)
                                : e.compareDocumentPosition &&
                                  16 & e.compareDocumentPosition(i))
                            )
                          );
                        }
                      : function (e, t) {
                          if (t)
                            for (; (t = t.parentNode); ) if (t === e) return !0;
                          return !1;
                        }),
                  (T = t
                    ? function (e, t) {
                        if (e === t) return (u = !0), 0;
                        var i =
                          !e.compareDocumentPosition -
                          !t.compareDocumentPosition;
                        return (
                          i ||
                          (1 &
                            (i =
                              (e.ownerDocument || e) == (t.ownerDocument || t)
                                ? e.compareDocumentPosition(t)
                                : 1) ||
                          (!n.sortDetached &&
                            t.compareDocumentPosition(e) === i)
                            ? e == g || (e.ownerDocument == y && b(y, e))
                              ? -1
                              : t == g || (t.ownerDocument == y && b(y, t))
                              ? 1
                              : d
                              ? D(d, e) - D(d, t)
                              : 0
                            : 4 & i
                            ? -1
                            : 1)
                        );
                      }
                    : function (e, t) {
                        if (e === t) return (u = !0), 0;
                        var n,
                          i = 0,
                          r = e.parentNode,
                          o = t.parentNode,
                          s = [e],
                          a = [t];
                        if (!r || !o)
                          return e == g
                            ? -1
                            : t == g
                            ? 1
                            : r
                            ? -1
                            : o
                            ? 1
                            : d
                            ? D(d, e) - D(d, t)
                            : 0;
                        if (r === o) return he(e, t);
                        for (n = e; (n = n.parentNode); ) s.unshift(n);
                        for (n = t; (n = n.parentNode); ) a.unshift(n);
                        for (; s[i] === a[i]; ) i++;
                        return i
                          ? he(s[i], a[i])
                          : s[i] == y
                          ? -1
                          : a[i] == y
                          ? 1
                          : 0;
                      }),
                  g)
                : g;
            }),
          (ae.matches = function (e, t) {
            return ae(e, null, null, t);
          }),
          (ae.matchesSelector = function (e, t) {
            if (
              (h(e),
              n.matchesSelector &&
                A &&
                !E[t + " "] &&
                (!m || !m.test(t)) &&
                (!f || !f.test(t)))
            )
              try {
                var i = v.call(e, t);
                if (
                  i ||
                  n.disconnectedMatch ||
                  (e.document && 11 !== e.document.nodeType)
                )
                  return i;
              } catch (e) {
                E(t, !0);
              }
            return ae(t, g, null, [e]).length > 0;
          }),
          (ae.contains = function (e, t) {
            return (e.ownerDocument || e) != g && h(e), b(e, t);
          }),
          (ae.attr = function (e, t) {
            (e.ownerDocument || e) != g && h(e);
            var r = i.attrHandle[t.toLowerCase()],
              o =
                r && S.call(i.attrHandle, t.toLowerCase())
                  ? r(e, t, !A)
                  : void 0;
            return void 0 !== o
              ? o
              : n.attributes || !A
              ? e.getAttribute(t)
              : (o = e.getAttributeNode(t)) && o.specified
              ? o.value
              : null;
          }),
          (ae.escape = function (e) {
            return (e + "").replace(ie, re);
          }),
          (ae.error = function (e) {
            throw new Error("Syntax error, unrecognized expression: " + e);
          }),
          (ae.uniqueSort = function (e) {
            var t,
              i = [],
              r = 0,
              o = 0;
            if (
              ((u = !n.detectDuplicates),
              (d = !n.sortStable && e.slice(0)),
              e.sort(T),
              u)
            ) {
              for (; (t = e[o++]); ) t === e[o] && (r = i.push(o));
              for (; r--; ) e.splice(i[r], 1);
            }
            return (d = null), e;
          }),
          (r = ae.getText =
            function (e) {
              var t,
                n = "",
                i = 0,
                o = e.nodeType;
              if (o) {
                if (1 === o || 9 === o || 11 === o) {
                  if ("string" == typeof e.textContent) return e.textContent;
                  for (e = e.firstChild; e; e = e.nextSibling) n += r(e);
                } else if (3 === o || 4 === o) return e.nodeValue;
              } else for (; (t = e[i++]); ) n += r(t);
              return n;
            }),
          ((i = ae.selectors =
            {
              cacheLength: 50,
              createPseudo: ce,
              match: X,
              attrHandle: {},
              find: {},
              relative: {
                ">": {
                  dir: "parentNode",
                  first: !0,
                },
                " ": {
                  dir: "parentNode",
                },
                "+": {
                  dir: "previousSibling",
                  first: !0,
                },
                "~": {
                  dir: "previousSibling",
                },
              },
              preFilter: {
                ATTR: function (e) {
                  return (
                    (e[1] = e[1].replace(te, ne)),
                    (e[3] = (e[3] || e[4] || e[5] || "").replace(te, ne)),
                    "~=" === e[2] && (e[3] = " " + e[3] + " "),
                    e.slice(0, 4)
                  );
                },
                CHILD: function (e) {
                  return (
                    (e[1] = e[1].toLowerCase()),
                    "nth" === e[1].slice(0, 3)
                      ? (e[3] || ae.error(e[0]),
                        (e[4] = +(e[4]
                          ? e[5] + (e[6] || 1)
                          : 2 * ("even" === e[3] || "odd" === e[3]))),
                        (e[5] = +(e[7] + e[8] || "odd" === e[3])))
                      : e[3] && ae.error(e[0]),
                    e
                  );
                },
                PSEUDO: function (e) {
                  var t,
                    n = !e[6] && e[2];
                  return X.CHILD.test(e[0])
                    ? null
                    : (e[3]
                        ? (e[2] = e[4] || e[5] || "")
                        : n &&
                          U.test(n) &&
                          (t = s(n, !0)) &&
                          (t = n.indexOf(")", n.length - t) - n.length) &&
                          ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))),
                      e.slice(0, 3));
                },
              },
              filter: {
                TAG: function (e) {
                  var t = e.replace(te, ne).toLowerCase();
                  return "*" === e
                    ? function () {
                        return !0;
                      }
                    : function (e) {
                        return e.nodeName && e.nodeName.toLowerCase() === t;
                      };
                },
                CLASS: function (e) {
                  var t = k[e + " "];
                  return (
                    t ||
                    ((t = new RegExp("(^|" + H + ")" + e + "(" + H + "|$)")) &&
                      k(e, function (e) {
                        return t.test(
                          ("string" == typeof e.className && e.className) ||
                            (void 0 !== e.getAttribute &&
                              e.getAttribute("class")) ||
                            ""
                        );
                      }))
                  );
                },
                ATTR: function (e, t, n) {
                  return function (i) {
                    var r = ae.attr(i, e);
                    return null == r
                      ? "!=" === t
                      : !t ||
                          ((r += ""),
                          "=" === t
                            ? r === n
                            : "!=" === t
                            ? r !== n
                            : "^=" === t
                            ? n && 0 === r.indexOf(n)
                            : "*=" === t
                            ? n && r.indexOf(n) > -1
                            : "$=" === t
                            ? n && r.slice(-n.length) === n
                            : "~=" === t
                            ? (" " + r.replace(q, " ") + " ").indexOf(n) > -1
                            : "|=" === t &&
                              (r === n ||
                                r.slice(0, n.length + 1) === n + "-"));
                  };
                },
                CHILD: function (e, t, n, i, r) {
                  var o = "nth" !== e.slice(0, 3),
                    s = "last" !== e.slice(-4),
                    a = "of-type" === t;
                  return 1 === i && 0 === r
                    ? function (e) {
                        return !!e.parentNode;
                      }
                    : function (t, n, l) {
                        var c,
                          d,
                          u,
                          h,
                          g,
                          p,
                          A = o !== s ? "nextSibling" : "previousSibling",
                          f = t.parentNode,
                          m = a && t.nodeName.toLowerCase(),
                          v = !l && !a,
                          b = !1;
                        if (f) {
                          if (o) {
                            for (; A; ) {
                              for (h = t; (h = h[A]); )
                                if (
                                  a
                                    ? h.nodeName.toLowerCase() === m
                                    : 1 === h.nodeType
                                )
                                  return !1;
                              p = A = "only" === e && !p && "nextSibling";
                            }
                            return !0;
                          }
                          if (
                            ((p = [s ? f.firstChild : f.lastChild]), s && v)
                          ) {
                            for (
                              b =
                                (g =
                                  (c =
                                    (d =
                                      (u = (h = f)[w] || (h[w] = {}))[
                                        h.uniqueID
                                      ] || (u[h.uniqueID] = {}))[e] ||
                                    [])[0] === x && c[1]) && c[2],
                                h = g && f.childNodes[g];
                              (h =
                                (++g && h && h[A]) || (b = g = 0) || p.pop());

                            )
                              if (1 === h.nodeType && ++b && h === t) {
                                d[e] = [x, g, b];
                                break;
                              }
                          } else if (
                            (v &&
                              (b = g =
                                (c =
                                  (d =
                                    (u = (h = t)[w] || (h[w] = {}))[
                                      h.uniqueID
                                    ] || (u[h.uniqueID] = {}))[e] || [])[0] ===
                                  x && c[1]),
                            !1 === b)
                          )
                            for (
                              ;
                              (h =
                                (++g && h && h[A]) || (b = g = 0) || p.pop()) &&
                              ((a
                                ? h.nodeName.toLowerCase() !== m
                                : 1 !== h.nodeType) ||
                                !++b ||
                                (v &&
                                  ((d =
                                    (u = h[w] || (h[w] = {}))[h.uniqueID] ||
                                    (u[h.uniqueID] = {}))[e] = [x, b]),
                                h !== t));

                            );
                          return (b -= r) === i || (b % i == 0 && b / i >= 0);
                        }
                      };
                },
                PSEUDO: function (e, t) {
                  var n,
                    r =
                      i.pseudos[e] ||
                      i.setFilters[e.toLowerCase()] ||
                      ae.error("unsupported pseudo: " + e);
                  return r[w]
                    ? r(t)
                    : r.length > 1
                    ? ((n = [e, e, "", t]),
                      i.setFilters.hasOwnProperty(e.toLowerCase())
                        ? ce(function (e, n) {
                            for (var i, o = r(e, t), s = o.length; s--; )
                              e[(i = D(e, o[s]))] = !(n[i] = o[s]);
                          })
                        : function (e) {
                            return r(e, 0, n);
                          })
                    : r;
                },
              },
              pseudos: {
                not: ce(function (e) {
                  var t = [],
                    n = [],
                    i = a(e.replace(z, "$1"));
                  return i[w]
                    ? ce(function (e, t, n, r) {
                        for (var o, s = i(e, null, r, []), a = e.length; a--; )
                          (o = s[a]) && (e[a] = !(t[a] = o));
                      })
                    : function (e, r, o) {
                        return (
                          (t[0] = e), i(t, null, o, n), (t[0] = null), !n.pop()
                        );
                      };
                }),
                has: ce(function (e) {
                  return function (t) {
                    return ae(e, t).length > 0;
                  };
                }),
                contains: ce(function (e) {
                  return (
                    (e = e.replace(te, ne)),
                    function (t) {
                      return (t.textContent || r(t)).indexOf(e) > -1;
                    }
                  );
                }),
                lang: ce(function (e) {
                  return (
                    K.test(e || "") || ae.error("unsupported lang: " + e),
                    (e = e.replace(te, ne).toLowerCase()),
                    function (t) {
                      var n;
                      do {
                        if (
                          (n = A
                            ? t.lang
                            : t.getAttribute("xml:lang") ||
                              t.getAttribute("lang"))
                        )
                          return (
                            (n = n.toLowerCase()) === e ||
                            0 === n.indexOf(e + "-")
                          );
                      } while ((t = t.parentNode) && 1 === t.nodeType);
                      return !1;
                    }
                  );
                }),
                target: function (t) {
                  var n = e.location && e.location.hash;
                  return n && n.slice(1) === t.id;
                },
                root: function (e) {
                  return e === p;
                },
                focus: function (e) {
                  return (
                    e === g.activeElement &&
                    (!g.hasFocus || g.hasFocus()) &&
                    !!(e.type || e.href || ~e.tabIndex)
                  );
                },
                enabled: Ae(!1),
                disabled: Ae(!0),
                checked: function (e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    ("input" === t && !!e.checked) ||
                    ("option" === t && !!e.selected)
                  );
                },
                selected: function (e) {
                  return (
                    e.parentNode && e.parentNode.selectedIndex,
                    !0 === e.selected
                  );
                },
                empty: function (e) {
                  for (e = e.firstChild; e; e = e.nextSibling)
                    if (e.nodeType < 6) return !1;
                  return !0;
                },
                parent: function (e) {
                  return !i.pseudos.empty(e);
                },
                header: function (e) {
                  return Y.test(e.nodeName);
                },
                input: function (e) {
                  return J.test(e.nodeName);
                },
                button: function (e) {
                  var t = e.nodeName.toLowerCase();
                  return (
                    ("input" === t && "button" === e.type) || "button" === t
                  );
                },
                text: function (e) {
                  var t;
                  return (
                    "input" === e.nodeName.toLowerCase() &&
                    "text" === e.type &&
                    (null == (t = e.getAttribute("type")) ||
                      "text" === t.toLowerCase())
                  );
                },
                first: fe(function () {
                  return [0];
                }),
                last: fe(function (e, t) {
                  return [t - 1];
                }),
                eq: fe(function (e, t, n) {
                  return [n < 0 ? n + t : n];
                }),
                even: fe(function (e, t) {
                  for (var n = 0; n < t; n += 2) e.push(n);
                  return e;
                }),
                odd: fe(function (e, t) {
                  for (var n = 1; n < t; n += 2) e.push(n);
                  return e;
                }),
                lt: fe(function (e, t, n) {
                  for (var i = n < 0 ? n + t : n > t ? t : n; --i >= 0; )
                    e.push(i);
                  return e;
                }),
                gt: fe(function (e, t, n) {
                  for (var i = n < 0 ? n + t : n; ++i < t; ) e.push(i);
                  return e;
                }),
              },
            }).pseudos.nth = i.pseudos.eq),
          {
            radio: !0,
            checkbox: !0,
            file: !0,
            password: !0,
            image: !0,
          }))
            i.pseudos[t] = ge(t);
          for (t in {
            submit: !0,
            reset: !0,
          })
            i.pseudos[t] = pe(t);

          function ve() {}

          function be(e) {
            for (var t = 0, n = e.length, i = ""; t < n; t++) i += e[t].value;
            return i;
          }

          function we(e, t, n) {
            var i = t.dir,
              r = t.next,
              o = r || i,
              s = n && "parentNode" === o,
              a = C++;
            return t.first
              ? function (t, n, r) {
                  for (; (t = t[i]); )
                    if (1 === t.nodeType || s) return e(t, n, r);
                  return !1;
                }
              : function (t, n, l) {
                  var c,
                    d,
                    u,
                    h = [x, a];
                  if (l) {
                    for (; (t = t[i]); )
                      if ((1 === t.nodeType || s) && e(t, n, l)) return !0;
                  } else
                    for (; (t = t[i]); )
                      if (1 === t.nodeType || s)
                        if (
                          ((d =
                            (u = t[w] || (t[w] = {}))[t.uniqueID] ||
                            (u[t.uniqueID] = {})),
                          r && r === t.nodeName.toLowerCase())
                        )
                          t = t[i] || t;
                        else {
                          if ((c = d[o]) && c[0] === x && c[1] === a)
                            return (h[2] = c[2]);
                          if (((d[o] = h), (h[2] = e(t, n, l)))) return !0;
                        }
                  return !1;
                };
          }

          function ye(e) {
            return e.length > 1
              ? function (t, n, i) {
                  for (var r = e.length; r--; ) if (!e[r](t, n, i)) return !1;
                  return !0;
                }
              : e[0];
          }

          function xe(e, t, n, i, r) {
            for (var o, s = [], a = 0, l = e.length, c = null != t; a < l; a++)
              (o = e[a]) && ((n && !n(o, i, r)) || (s.push(o), c && t.push(a)));
            return s;
          }

          function Ce(e, t, n, i, r, o) {
            return (
              i && !i[w] && (i = Ce(i)),
              r && !r[w] && (r = Ce(r, o)),
              ce(function (o, s, a, l) {
                var c,
                  d,
                  u,
                  h = [],
                  g = [],
                  p = s.length,
                  A =
                    o ||
                    (function (e, t, n) {
                      for (var i = 0, r = t.length; i < r; i++) ae(e, t[i], n);
                      return n;
                    })(t || "*", a.nodeType ? [a] : a, []),
                  f = !e || (!o && t) ? A : xe(A, h, e, a, l),
                  m = n ? (r || (o ? e : p || i) ? [] : s) : f;
                if ((n && n(f, m, a, l), i))
                  for (c = xe(m, g), i(c, [], a, l), d = c.length; d--; )
                    (u = c[d]) && (m[g[d]] = !(f[g[d]] = u));
                if (o) {
                  if (r || e) {
                    if (r) {
                      for (c = [], d = m.length; d--; )
                        (u = m[d]) && c.push((f[d] = u));
                      r(null, (m = []), c, l);
                    }
                    for (d = m.length; d--; )
                      (u = m[d]) &&
                        (c = r ? D(o, u) : h[d]) > -1 &&
                        (o[c] = !(s[c] = u));
                  }
                } else (m = xe(m === s ? m.splice(p, m.length) : m)), r ? r(null, s, m, l) : B.apply(s, m);
              })
            );
          }

          function ke(e) {
            for (
              var t,
                n,
                r,
                o = e.length,
                s = i.relative[e[0].type],
                a = s || i.relative[" "],
                l = s ? 1 : 0,
                d = we(
                  function (e) {
                    return e === t;
                  },
                  a,
                  !0
                ),
                u = we(
                  function (e) {
                    return D(t, e) > -1;
                  },
                  a,
                  !0
                ),
                h = [
                  function (e, n, i) {
                    var r =
                      (!s && (i || n !== c)) ||
                      ((t = n).nodeType ? d(e, n, i) : u(e, n, i));
                    return (t = null), r;
                  },
                ];
              l < o;
              l++
            )
              if ((n = i.relative[e[l].type])) h = [we(ye(h), n)];
              else {
                if ((n = i.filter[e[l].type].apply(null, e[l].matches))[w]) {
                  for (r = ++l; r < o && !i.relative[e[r].type]; r++);
                  return Ce(
                    l > 1 && ye(h),
                    l > 1 &&
                      be(
                        e.slice(0, l - 1).concat({
                          value: " " === e[l - 2].type ? "*" : "",
                        })
                      ).replace(z, "$1"),
                    n,
                    l < r && ke(e.slice(l, r)),
                    r < o && ke((e = e.slice(r))),
                    r < o && be(e)
                  );
                }
                h.push(n);
              }
            return ye(h);
          }
          return (
            (ve.prototype = i.filters = i.pseudos),
            (i.setFilters = new ve()),
            (s = ae.tokenize =
              function (e, t) {
                var n,
                  r,
                  o,
                  s,
                  a,
                  l,
                  c,
                  d = _[e + " "];
                if (d) return t ? 0 : d.slice(0);
                for (a = e, l = [], c = i.preFilter; a; ) {
                  for (s in ((n && !(r = V.exec(a))) ||
                    (r && (a = a.slice(r[0].length) || a), l.push((o = []))),
                  (n = !1),
                  (r = F.exec(a)) &&
                    ((n = r.shift()),
                    o.push({
                      value: n,
                      type: r[0].replace(z, " "),
                    }),
                    (a = a.slice(n.length))),
                  i.filter))
                    !(r = X[s].exec(a)) ||
                      (c[s] && !(r = c[s](r))) ||
                      ((n = r.shift()),
                      o.push({
                        value: n,
                        type: s,
                        matches: r,
                      }),
                      (a = a.slice(n.length)));
                  if (!n) break;
                }
                return t ? a.length : a ? ae.error(e) : _(e, l).slice(0);
              }),
            (a = ae.compile =
              function (e, t) {
                var n,
                  r = [],
                  o = [],
                  a = I[e + " "];
                if (!a) {
                  for (t || (t = s(e)), n = t.length; n--; )
                    (a = ke(t[n]))[w] ? r.push(a) : o.push(a);
                  (a = I(
                    e,
                    (function (e, t) {
                      var n = t.length > 0,
                        r = e.length > 0,
                        o = function (o, s, a, l, d) {
                          var u,
                            p,
                            f,
                            m = 0,
                            v = "0",
                            b = o && [],
                            w = [],
                            y = c,
                            C = o || (r && i.find.TAG("*", d)),
                            k = (x += null == y ? 1 : Math.random() || 0.1),
                            _ = C.length;
                          for (
                            d && (c = s == g || s || d);
                            v !== _ && null != (u = C[v]);
                            v++
                          ) {
                            if (r && u) {
                              for (
                                p = 0,
                                  s || u.ownerDocument == g || (h(u), (a = !A));
                                (f = e[p++]);

                              )
                                if (f(u, s || g, a)) {
                                  l.push(u);
                                  break;
                                }
                              d && (x = k);
                            }
                            n && ((u = !f && u) && m--, o && b.push(u));
                          }
                          if (((m += v), n && v !== m)) {
                            for (p = 0; (f = t[p++]); ) f(b, w, s, a);
                            if (o) {
                              if (m > 0)
                                for (; v--; )
                                  b[v] || w[v] || (w[v] = j.call(l));
                              w = xe(w);
                            }
                            B.apply(l, w),
                              d &&
                                !o &&
                                w.length > 0 &&
                                m + t.length > 1 &&
                                ae.uniqueSort(l);
                          }
                          return d && ((x = k), (c = y)), b;
                        };
                      return n ? ce(o) : o;
                    })(o, r)
                  )).selector = e;
                }
                return a;
              }),
            (l = ae.select =
              function (e, t, n, r) {
                var o,
                  l,
                  c,
                  d,
                  u,
                  h = "function" == typeof e && e,
                  g = !r && s((e = h.selector || e));
                if (((n = n || []), 1 === g.length)) {
                  if (
                    (l = g[0] = g[0].slice(0)).length > 2 &&
                    "ID" === (c = l[0]).type &&
                    9 === t.nodeType &&
                    A &&
                    i.relative[l[1].type]
                  ) {
                    if (
                      !(t = (i.find.ID(c.matches[0].replace(te, ne), t) ||
                        [])[0])
                    )
                      return n;
                    h && (t = t.parentNode),
                      (e = e.slice(l.shift().value.length));
                  }
                  for (
                    o = X.needsContext.test(e) ? 0 : l.length;
                    o-- && ((c = l[o]), !i.relative[(d = c.type)]);

                  )
                    if (
                      (u = i.find[d]) &&
                      (r = u(
                        c.matches[0].replace(te, ne),
                        (ee.test(l[0].type) && me(t.parentNode)) || t
                      ))
                    ) {
                      if ((l.splice(o, 1), !(e = r.length && be(l))))
                        return B.apply(n, r), n;
                      break;
                    }
                }
                return (
                  (h || a(e, g))(
                    r,
                    t,
                    !A,
                    n,
                    !t || (ee.test(e) && me(t.parentNode)) || t
                  ),
                  n
                );
              }),
            (n.sortStable = w.split("").sort(T).join("") === w),
            (n.detectDuplicates = !!u),
            h(),
            (n.sortDetached = de(function (e) {
              return 1 & e.compareDocumentPosition(g.createElement("fieldset"));
            })),
            de(function (e) {
              return (
                (e.innerHTML = "<a href='#'></a>"),
                "#" === e.firstChild.getAttribute("href")
              );
            }) ||
              ue("type|href|height|width", function (e, t, n) {
                if (!n)
                  return e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2);
              }),
            (n.attributes &&
              de(function (e) {
                return (
                  (e.innerHTML = "<input/>"),
                  e.firstChild.setAttribute("value", ""),
                  "" === e.firstChild.getAttribute("value")
                );
              })) ||
              ue("value", function (e, t, n) {
                if (!n && "input" === e.nodeName.toLowerCase())
                  return e.defaultValue;
              }),
            de(function (e) {
              return null == e.getAttribute("disabled");
            }) ||
              ue(O, function (e, t, n) {
                var i;
                if (!n)
                  return !0 === e[t]
                    ? t.toLowerCase()
                    : (i = e.getAttributeNode(t)) && i.specified
                    ? i.value
                    : null;
              }),
            ae
          );
        })(n);
      (C.find = _),
        (C.expr = _.selectors),
        (C.expr[":"] = C.expr.pseudos),
        (C.uniqueSort = C.unique = _.uniqueSort),
        (C.text = _.getText),
        (C.isXMLDoc = _.isXML),
        (C.contains = _.contains),
        (C.escapeSelector = _.escape);
      var I = function (e, t, n) {
          for (var i = [], r = void 0 !== n; (e = e[t]) && 9 !== e.nodeType; )
            if (1 === e.nodeType) {
              if (r && C(e).is(n)) break;
              i.push(e);
            }
          return i;
        },
        E = function (e, t) {
          for (var n = []; e; e = e.nextSibling)
            1 === e.nodeType && e !== t && n.push(e);
          return n;
        },
        T = C.expr.match.needsContext;

      function S(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase();
      }
      var L = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

      function j(e, t, n) {
        return m(t)
          ? C.grep(e, function (e, i) {
              return !!t.call(e, i, e) !== n;
            })
          : t.nodeType
          ? C.grep(e, function (e) {
              return (e === t) !== n;
            })
          : "string" != typeof t
          ? C.grep(e, function (e) {
              return d.call(t, e) > -1 !== n;
            })
          : C.filter(t, e, n);
      }
      (C.filter = function (e, t, n) {
        var i = t[0];
        return (
          n && (e = ":not(" + e + ")"),
          1 === t.length && 1 === i.nodeType
            ? C.find.matchesSelector(i, e)
              ? [i]
              : []
            : C.find.matches(
                e,
                C.grep(t, function (e) {
                  return 1 === e.nodeType;
                })
              )
        );
      }),
        C.fn.extend({
          find: function (e) {
            var t,
              n,
              i = this.length,
              r = this;
            if ("string" != typeof e)
              return this.pushStack(
                C(e).filter(function () {
                  for (t = 0; t < i; t++) if (C.contains(r[t], this)) return !0;
                })
              );
            for (n = this.pushStack([]), t = 0; t < i; t++) C.find(e, r[t], n);
            return i > 1 ? C.uniqueSort(n) : n;
          },
          filter: function (e) {
            return this.pushStack(j(this, e || [], !1));
          },
          not: function (e) {
            return this.pushStack(j(this, e || [], !0));
          },
          is: function (e) {
            return !!j(
              this,
              "string" == typeof e && T.test(e) ? C(e) : e || [],
              !1
            ).length;
          },
        });
      var R,
        B = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
      ((C.fn.init = function (e, t, n) {
        var i, r;
        if (!e) return this;
        if (((n = n || R), "string" == typeof e)) {
          if (
            !(i =
              "<" === e[0] && ">" === e[e.length - 1] && e.length >= 3
                ? [null, e, null]
                : B.exec(e)) ||
            (!i[1] && t)
          )
            return !t || t.jquery
              ? (t || n).find(e)
              : this.constructor(t).find(e);
          if (i[1]) {
            if (
              ((t = t instanceof C ? t[0] : t),
              C.merge(
                this,
                C.parseHTML(
                  i[1],
                  t && t.nodeType ? t.ownerDocument || t : b,
                  !0
                )
              ),
              L.test(i[1]) && C.isPlainObject(t))
            )
              for (i in t) m(this[i]) ? this[i](t[i]) : this.attr(i, t[i]);
            return this;
          }
          return (
            (r = b.getElementById(i[2])) && ((this[0] = r), (this.length = 1)),
            this
          );
        }
        return e.nodeType
          ? ((this[0] = e), (this.length = 1), this)
          : m(e)
          ? void 0 !== n.ready
            ? n.ready(e)
            : e(C)
          : C.makeArray(e, this);
      }).prototype = C.fn),
        (R = C(b));
      var M = /^(?:parents|prev(?:Until|All))/,
        D = {
          children: !0,
          contents: !0,
          next: !0,
          prev: !0,
        };

      function O(e, t) {
        for (; (e = e[t]) && 1 !== e.nodeType; );
        return e;
      }
      C.fn.extend({
        has: function (e) {
          var t = C(e, this),
            n = t.length;
          return this.filter(function () {
            for (var e = 0; e < n; e++) if (C.contains(this, t[e])) return !0;
          });
        },
        closest: function (e, t) {
          var n,
            i = 0,
            r = this.length,
            o = [],
            s = "string" != typeof e && C(e);
          if (!T.test(e))
            for (; i < r; i++)
              for (n = this[i]; n && n !== t; n = n.parentNode)
                if (
                  n.nodeType < 11 &&
                  (s
                    ? s.index(n) > -1
                    : 1 === n.nodeType && C.find.matchesSelector(n, e))
                ) {
                  o.push(n);
                  break;
                }
          return this.pushStack(o.length > 1 ? C.uniqueSort(o) : o);
        },
        index: function (e) {
          return e
            ? "string" == typeof e
              ? d.call(C(e), this[0])
              : d.call(this, e.jquery ? e[0] : e)
            : this[0] && this[0].parentNode
            ? this.first().prevAll().length
            : -1;
        },
        add: function (e, t) {
          return this.pushStack(C.uniqueSort(C.merge(this.get(), C(e, t))));
        },
        addBack: function (e) {
          return this.add(
            null == e ? this.prevObject : this.prevObject.filter(e)
          );
        },
      }),
        C.each(
          {
            parent: function (e) {
              var t = e.parentNode;
              return t && 11 !== t.nodeType ? t : null;
            },
            parents: function (e) {
              return I(e, "parentNode");
            },
            parentsUntil: function (e, t, n) {
              return I(e, "parentNode", n);
            },
            next: function (e) {
              return O(e, "nextSibling");
            },
            prev: function (e) {
              return O(e, "previousSibling");
            },
            nextAll: function (e) {
              return I(e, "nextSibling");
            },
            prevAll: function (e) {
              return I(e, "previousSibling");
            },
            nextUntil: function (e, t, n) {
              return I(e, "nextSibling", n);
            },
            prevUntil: function (e, t, n) {
              return I(e, "previousSibling", n);
            },
            siblings: function (e) {
              return E((e.parentNode || {}).firstChild, e);
            },
            children: function (e) {
              return E(e.firstChild);
            },
            contents: function (e) {
              return null != e.contentDocument && s(e.contentDocument)
                ? e.contentDocument
                : (S(e, "template") && (e = e.content || e),
                  C.merge([], e.childNodes));
            },
          },
          function (e, t) {
            C.fn[e] = function (n, i) {
              var r = C.map(this, t, n);
              return (
                "Until" !== e.slice(-5) && (i = n),
                i && "string" == typeof i && (r = C.filter(i, r)),
                this.length > 1 &&
                  (D[e] || C.uniqueSort(r), M.test(e) && r.reverse()),
                this.pushStack(r)
              );
            };
          }
        );
      var H = /[^\x20\t\r\n\f]+/g;

      function W(e) {
        return e;
      }

      function P(e) {
        throw e;
      }

      function N(e, t, n, i) {
        var r;
        try {
          e && m((r = e.promise))
            ? r.call(e).done(t).fail(n)
            : e && m((r = e.then))
            ? r.call(e, t, n)
            : t.apply(void 0, [e].slice(i));
        } catch (e) {
          n.apply(void 0, [e]);
        }
      }
      (C.Callbacks = function (e) {
        e =
          "string" == typeof e
            ? (function (e) {
                var t = {};
                return (
                  C.each(e.match(H) || [], function (e, n) {
                    t[n] = !0;
                  }),
                  t
                );
              })(e)
            : C.extend({}, e);
        var t,
          n,
          i,
          r,
          o = [],
          s = [],
          a = -1,
          l = function () {
            for (r = r || e.once, i = t = !0; s.length; a = -1)
              for (n = s.shift(); ++a < o.length; )
                !1 === o[a].apply(n[0], n[1]) &&
                  e.stopOnFalse &&
                  ((a = o.length), (n = !1));
            e.memory || (n = !1), (t = !1), r && (o = n ? [] : "");
          },
          c = {
            add: function () {
              return (
                o &&
                  (n && !t && ((a = o.length - 1), s.push(n)),
                  (function t(n) {
                    C.each(n, function (n, i) {
                      m(i)
                        ? (e.unique && c.has(i)) || o.push(i)
                        : i && i.length && "string" !== x(i) && t(i);
                    });
                  })(arguments),
                  n && !t && l()),
                this
              );
            },
            remove: function () {
              return (
                C.each(arguments, function (e, t) {
                  for (var n; (n = C.inArray(t, o, n)) > -1; )
                    o.splice(n, 1), n <= a && a--;
                }),
                this
              );
            },
            has: function (e) {
              return e ? C.inArray(e, o) > -1 : o.length > 0;
            },
            empty: function () {
              return o && (o = []), this;
            },
            disable: function () {
              return (r = s = []), (o = n = ""), this;
            },
            disabled: function () {
              return !o;
            },
            lock: function () {
              return (r = s = []), n || t || (o = n = ""), this;
            },
            locked: function () {
              return !!r;
            },
            fireWith: function (e, n) {
              return (
                r ||
                  ((n = [e, (n = n || []).slice ? n.slice() : n]),
                  s.push(n),
                  t || l()),
                this
              );
            },
            fire: function () {
              return c.fireWith(this, arguments), this;
            },
            fired: function () {
              return !!i;
            },
          };
        return c;
      }),
        C.extend({
          Deferred: function (e) {
            var t = [
                [
                  "notify",
                  "progress",
                  C.Callbacks("memory"),
                  C.Callbacks("memory"),
                  2,
                ],
                [
                  "resolve",
                  "done",
                  C.Callbacks("once memory"),
                  C.Callbacks("once memory"),
                  0,
                  "resolved",
                ],
                [
                  "reject",
                  "fail",
                  C.Callbacks("once memory"),
                  C.Callbacks("once memory"),
                  1,
                  "rejected",
                ],
              ],
              i = "pending",
              r = {
                state: function () {
                  return i;
                },
                always: function () {
                  return o.done(arguments).fail(arguments), this;
                },
                catch: function (e) {
                  return r.then(null, e);
                },
                pipe: function () {
                  var e = arguments;
                  return C.Deferred(function (n) {
                    C.each(t, function (t, i) {
                      var r = m(e[i[4]]) && e[i[4]];
                      o[i[1]](function () {
                        var e = r && r.apply(this, arguments);
                        e && m(e.promise)
                          ? e
                              .promise()
                              .progress(n.notify)
                              .done(n.resolve)
                              .fail(n.reject)
                          : n[i[0] + "With"](this, r ? [e] : arguments);
                      });
                    }),
                      (e = null);
                  }).promise();
                },
                then: function (e, i, r) {
                  var o = 0;

                  function s(e, t, i, r) {
                    return function () {
                      var a = this,
                        l = arguments,
                        c = function () {
                          var n, c;
                          if (!(e < o)) {
                            if ((n = i.apply(a, l)) === t.promise())
                              throw new TypeError("Thenable self-resolution");
                            (c =
                              n &&
                              ("object" == typeof n ||
                                "function" == typeof n) &&
                              n.then),
                              m(c)
                                ? r
                                  ? c.call(n, s(o, t, W, r), s(o, t, P, r))
                                  : (o++,
                                    c.call(
                                      n,
                                      s(o, t, W, r),
                                      s(o, t, P, r),
                                      s(o, t, W, t.notifyWith)
                                    ))
                                : (i !== W && ((a = void 0), (l = [n])),
                                  (r || t.resolveWith)(a, l));
                          }
                        },
                        d = r
                          ? c
                          : function () {
                              try {
                                c();
                              } catch (n) {
                                C.Deferred.exceptionHook &&
                                  C.Deferred.exceptionHook(n, d.stackTrace),
                                  e + 1 >= o &&
                                    (i !== P && ((a = void 0), (l = [n])),
                                    t.rejectWith(a, l));
                              }
                            };
                      e
                        ? d()
                        : (C.Deferred.getStackHook &&
                            (d.stackTrace = C.Deferred.getStackHook()),
                          n.setTimeout(d));
                    };
                  }
                  return C.Deferred(function (n) {
                    t[0][3].add(s(0, n, m(r) ? r : W, n.notifyWith)),
                      t[1][3].add(s(0, n, m(e) ? e : W)),
                      t[2][3].add(s(0, n, m(i) ? i : P));
                  }).promise();
                },
                promise: function (e) {
                  return null != e ? C.extend(e, r) : r;
                },
              },
              o = {};
            return (
              C.each(t, function (e, n) {
                var s = n[2],
                  a = n[5];
                (r[n[1]] = s.add),
                  a &&
                    s.add(
                      function () {
                        i = a;
                      },
                      t[3 - e][2].disable,
                      t[3 - e][3].disable,
                      t[0][2].lock,
                      t[0][3].lock
                    ),
                  s.add(n[3].fire),
                  (o[n[0]] = function () {
                    return (
                      o[n[0] + "With"](this === o ? void 0 : this, arguments),
                      this
                    );
                  }),
                  (o[n[0] + "With"] = s.fireWith);
              }),
              r.promise(o),
              e && e.call(o, o),
              o
            );
          },
          when: function (e) {
            var t = arguments.length,
              n = t,
              i = Array(n),
              r = a.call(arguments),
              o = C.Deferred(),
              s = function (e) {
                return function (n) {
                  (i[e] = this),
                    (r[e] = arguments.length > 1 ? a.call(arguments) : n),
                    --t || o.resolveWith(i, r);
                };
              };
            if (
              t <= 1 &&
              (N(e, o.done(s(n)).resolve, o.reject, !t),
              "pending" === o.state() || m(r[n] && r[n].then))
            )
              return o.then();
            for (; n--; ) N(r[n], s(n), o.reject);
            return o.promise();
          },
        });
      var q = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
      (C.Deferred.exceptionHook = function (e, t) {
        n.console &&
          n.console.warn &&
          e &&
          q.test(e.name) &&
          n.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t);
      }),
        (C.readyException = function (e) {
          n.setTimeout(function () {
            throw e;
          });
        });
      var z = C.Deferred();

      function V() {
        b.removeEventListener("DOMContentLoaded", V),
          n.removeEventListener("load", V),
          C.ready();
      }
      (C.fn.ready = function (e) {
        return (
          z.then(e).catch(function (e) {
            C.readyException(e);
          }),
          this
        );
      }),
        C.extend({
          isReady: !1,
          readyWait: 1,
          ready: function (e) {
            (!0 === e ? --C.readyWait : C.isReady) ||
              ((C.isReady = !0),
              (!0 !== e && --C.readyWait > 0) || z.resolveWith(b, [C]));
          },
        }),
        (C.ready.then = z.then),
        "complete" === b.readyState ||
        ("loading" !== b.readyState && !b.documentElement.doScroll)
          ? n.setTimeout(C.ready)
          : (b.addEventListener("DOMContentLoaded", V),
            n.addEventListener("load", V));
      var F = function (e, t, n, i, r, o, s) {
          var a = 0,
            l = e.length,
            c = null == n;
          if ("object" === x(n))
            for (a in ((r = !0), n)) F(e, t, a, n[a], !0, o, s);
          else if (
            void 0 !== i &&
            ((r = !0),
            m(i) || (s = !0),
            c &&
              (s
                ? (t.call(e, i), (t = null))
                : ((c = t),
                  (t = function (e, t, n) {
                    return c.call(C(e), n);
                  }))),
            t)
          )
            for (; a < l; a++) t(e[a], n, s ? i : i.call(e[a], a, t(e[a], n)));
          return r ? e : c ? t.call(e) : l ? t(e[0], n) : o;
        },
        Q = /^-ms-/,
        U = /-([a-z])/g;

      function K(e, t) {
        return t.toUpperCase();
      }

      function X(e) {
        return e.replace(Q, "ms-").replace(U, K);
      }
      var G = function (e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType;
      };

      function J() {
        this.expando = C.expando + J.uid++;
      }
      (J.uid = 1),
        (J.prototype = {
          cache: function (e) {
            var t = e[this.expando];
            return (
              t ||
                ((t = {}),
                G(e) &&
                  (e.nodeType
                    ? (e[this.expando] = t)
                    : Object.defineProperty(e, this.expando, {
                        value: t,
                        configurable: !0,
                      }))),
              t
            );
          },
          set: function (e, t, n) {
            var i,
              r = this.cache(e);
            if ("string" == typeof t) r[X(t)] = n;
            else for (i in t) r[X(i)] = t[i];
            return r;
          },
          get: function (e, t) {
            return void 0 === t
              ? this.cache(e)
              : e[this.expando] && e[this.expando][X(t)];
          },
          access: function (e, t, n) {
            return void 0 === t || (t && "string" == typeof t && void 0 === n)
              ? this.get(e, t)
              : (this.set(e, t, n), void 0 !== n ? n : t);
          },
          remove: function (e, t) {
            var n,
              i = e[this.expando];
            if (void 0 !== i) {
              if (void 0 !== t) {
                n = (t = Array.isArray(t)
                  ? t.map(X)
                  : (t = X(t)) in i
                  ? [t]
                  : t.match(H) || []).length;
                for (; n--; ) delete i[t[n]];
              }
              (void 0 === t || C.isEmptyObject(i)) &&
                (e.nodeType
                  ? (e[this.expando] = void 0)
                  : delete e[this.expando]);
            }
          },
          hasData: function (e) {
            var t = e[this.expando];
            return void 0 !== t && !C.isEmptyObject(t);
          },
        });
      var Y = new J(),
        Z = new J(),
        $ = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        ee = /[A-Z]/g;

      function te(e, t, n) {
        var i;
        if (void 0 === n && 1 === e.nodeType)
          if (
            ((i = "data-" + t.replace(ee, "-$&").toLowerCase()),
            "string" == typeof (n = e.getAttribute(i)))
          ) {
            try {
              n = (function (e) {
                return (
                  "true" === e ||
                  ("false" !== e &&
                    ("null" === e
                      ? null
                      : e === +e + ""
                      ? +e
                      : $.test(e)
                      ? JSON.parse(e)
                      : e))
                );
              })(n);
            } catch (e) {}
            Z.set(e, t, n);
          } else n = void 0;
        return n;
      }
      C.extend({
        hasData: function (e) {
          return Z.hasData(e) || Y.hasData(e);
        },
        data: function (e, t, n) {
          return Z.access(e, t, n);
        },
        removeData: function (e, t) {
          Z.remove(e, t);
        },
        _data: function (e, t, n) {
          return Y.access(e, t, n);
        },
        _removeData: function (e, t) {
          Y.remove(e, t);
        },
      }),
        C.fn.extend({
          data: function (e, t) {
            var n,
              i,
              r,
              o = this[0],
              s = o && o.attributes;
            if (void 0 === e) {
              if (
                this.length &&
                ((r = Z.get(o)), 1 === o.nodeType && !Y.get(o, "hasDataAttrs"))
              ) {
                for (n = s.length; n--; )
                  s[n] &&
                    0 === (i = s[n].name).indexOf("data-") &&
                    ((i = X(i.slice(5))), te(o, i, r[i]));
                Y.set(o, "hasDataAttrs", !0);
              }
              return r;
            }
            return "object" == typeof e
              ? this.each(function () {
                  Z.set(this, e);
                })
              : F(
                  this,
                  function (t) {
                    var n;
                    if (o && void 0 === t)
                      return void 0 !== (n = Z.get(o, e)) ||
                        void 0 !== (n = te(o, e))
                        ? n
                        : void 0;
                    this.each(function () {
                      Z.set(this, e, t);
                    });
                  },
                  null,
                  t,
                  arguments.length > 1,
                  null,
                  !0
                );
          },
          removeData: function (e) {
            return this.each(function () {
              Z.remove(this, e);
            });
          },
        }),
        C.extend({
          queue: function (e, t, n) {
            var i;
            if (e)
              return (
                (t = (t || "fx") + "queue"),
                (i = Y.get(e, t)),
                n &&
                  (!i || Array.isArray(n)
                    ? (i = Y.access(e, t, C.makeArray(n)))
                    : i.push(n)),
                i || []
              );
          },
          dequeue: function (e, t) {
            t = t || "fx";
            var n = C.queue(e, t),
              i = n.length,
              r = n.shift(),
              o = C._queueHooks(e, t);
            "inprogress" === r && ((r = n.shift()), i--),
              r &&
                ("fx" === t && n.unshift("inprogress"),
                delete o.stop,
                r.call(
                  e,
                  function () {
                    C.dequeue(e, t);
                  },
                  o
                )),
              !i && o && o.empty.fire();
          },
          _queueHooks: function (e, t) {
            var n = t + "queueHooks";
            return (
              Y.get(e, n) ||
              Y.access(e, n, {
                empty: C.Callbacks("once memory").add(function () {
                  Y.remove(e, [t + "queue", n]);
                }),
              })
            );
          },
        }),
        C.fn.extend({
          queue: function (e, t) {
            var n = 2;
            return (
              "string" != typeof e && ((t = e), (e = "fx"), n--),
              arguments.length < n
                ? C.queue(this[0], e)
                : void 0 === t
                ? this
                : this.each(function () {
                    var n = C.queue(this, e, t);
                    C._queueHooks(this, e),
                      "fx" === e && "inprogress" !== n[0] && C.dequeue(this, e);
                  })
            );
          },
          dequeue: function (e) {
            return this.each(function () {
              C.dequeue(this, e);
            });
          },
          clearQueue: function (e) {
            return this.queue(e || "fx", []);
          },
          promise: function (e, t) {
            var n,
              i = 1,
              r = C.Deferred(),
              o = this,
              s = this.length,
              a = function () {
                --i || r.resolveWith(o, [o]);
              };
            for (
              "string" != typeof e && ((t = e), (e = void 0)), e = e || "fx";
              s--;

            )
              (n = Y.get(o[s], e + "queueHooks")) &&
                n.empty &&
                (i++, n.empty.add(a));
            return a(), r.promise(t);
          },
        });
      var ne = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        ie = new RegExp("^(?:([+-])=|)(" + ne + ")([a-z%]*)$", "i"),
        re = ["Top", "Right", "Bottom", "Left"],
        oe = b.documentElement,
        se = function (e) {
          return C.contains(e.ownerDocument, e);
        },
        ae = {
          composed: !0,
        };
      oe.getRootNode &&
        (se = function (e) {
          return (
            C.contains(e.ownerDocument, e) ||
            e.getRootNode(ae) === e.ownerDocument
          );
        });
      var le = function (e, t) {
        return (
          "none" === (e = t || e).style.display ||
          ("" === e.style.display && se(e) && "none" === C.css(e, "display"))
        );
      };

      function ce(e, t, n, i) {
        var r,
          o,
          s = 20,
          a = i
            ? function () {
                return i.cur();
              }
            : function () {
                return C.css(e, t, "");
              },
          l = a(),
          c = (n && n[3]) || (C.cssNumber[t] ? "" : "px"),
          d =
            e.nodeType &&
            (C.cssNumber[t] || ("px" !== c && +l)) &&
            ie.exec(C.css(e, t));
        if (d && d[3] !== c) {
          for (l /= 2, c = c || d[3], d = +l || 1; s--; )
            C.style(e, t, d + c),
              (1 - o) * (1 - (o = a() / l || 0.5)) <= 0 && (s = 0),
              (d /= o);
          (d *= 2), C.style(e, t, d + c), (n = n || []);
        }
        return (
          n &&
            ((d = +d || +l || 0),
            (r = n[1] ? d + (n[1] + 1) * n[2] : +n[2]),
            i && ((i.unit = c), (i.start = d), (i.end = r))),
          r
        );
      }
      var de = {};

      function ue(e) {
        var t,
          n = e.ownerDocument,
          i = e.nodeName,
          r = de[i];
        return (
          r ||
          ((t = n.body.appendChild(n.createElement(i))),
          (r = C.css(t, "display")),
          t.parentNode.removeChild(t),
          "none" === r && (r = "block"),
          (de[i] = r),
          r)
        );
      }

      function he(e, t) {
        for (var n, i, r = [], o = 0, s = e.length; o < s; o++)
          (i = e[o]).style &&
            ((n = i.style.display),
            t
              ? ("none" === n &&
                  ((r[o] = Y.get(i, "display") || null),
                  r[o] || (i.style.display = "")),
                "" === i.style.display && le(i) && (r[o] = ue(i)))
              : "none" !== n && ((r[o] = "none"), Y.set(i, "display", n)));
        for (o = 0; o < s; o++) null != r[o] && (e[o].style.display = r[o]);
        return e;
      }
      C.fn.extend({
        show: function () {
          return he(this, !0);
        },
        hide: function () {
          return he(this);
        },
        toggle: function (e) {
          return "boolean" == typeof e
            ? e
              ? this.show()
              : this.hide()
            : this.each(function () {
                le(this) ? C(this).show() : C(this).hide();
              });
        },
      });
      var ge,
        pe,
        Ae = /^(?:checkbox|radio)$/i,
        fe = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        me = /^$|^module$|\/(?:java|ecma)script/i;
      (ge = b.createDocumentFragment().appendChild(b.createElement("div"))),
        (pe = b.createElement("input")).setAttribute("type", "radio"),
        pe.setAttribute("checked", "checked"),
        pe.setAttribute("name", "t"),
        ge.appendChild(pe),
        (f.checkClone = ge.cloneNode(!0).cloneNode(!0).lastChild.checked),
        (ge.innerHTML = "<textarea>x</textarea>"),
        (f.noCloneChecked = !!ge.cloneNode(!0).lastChild.defaultValue),
        (ge.innerHTML = "<option></option>"),
        (f.option = !!ge.lastChild);
      var ve = {
        thead: [1, "<table>", "</table>"],
        col: [2, "<table><colgroup>", "</colgroup></table>"],
        tr: [2, "<table><tbody>", "</tbody></table>"],
        td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
        _default: [0, "", ""],
      };

      function be(e, t) {
        var n;
        return (
          (n =
            void 0 !== e.getElementsByTagName
              ? e.getElementsByTagName(t || "*")
              : void 0 !== e.querySelectorAll
              ? e.querySelectorAll(t || "*")
              : []),
          void 0 === t || (t && S(e, t)) ? C.merge([e], n) : n
        );
      }

      function we(e, t) {
        for (var n = 0, i = e.length; n < i; n++)
          Y.set(e[n], "globalEval", !t || Y.get(t[n], "globalEval"));
      }
      (ve.tbody = ve.tfoot = ve.colgroup = ve.caption = ve.thead),
        (ve.th = ve.td),
        f.option ||
          (ve.optgroup = ve.option =
            [1, "<select multiple='multiple'>", "</select>"]);
      var ye = /<|&#?\w+;/;

      function xe(e, t, n, i, r) {
        for (
          var o,
            s,
            a,
            l,
            c,
            d,
            u = t.createDocumentFragment(),
            h = [],
            g = 0,
            p = e.length;
          g < p;
          g++
        )
          if ((o = e[g]) || 0 === o)
            if ("object" === x(o)) C.merge(h, o.nodeType ? [o] : o);
            else if (ye.test(o)) {
              for (
                s = s || u.appendChild(t.createElement("div")),
                  a = (fe.exec(o) || ["", ""])[1].toLowerCase(),
                  l = ve[a] || ve._default,
                  s.innerHTML = l[1] + C.htmlPrefilter(o) + l[2],
                  d = l[0];
                d--;

              )
                s = s.lastChild;
              C.merge(h, s.childNodes), ((s = u.firstChild).textContent = "");
            } else h.push(t.createTextNode(o));
        for (u.textContent = "", g = 0; (o = h[g++]); )
          if (i && C.inArray(o, i) > -1) r && r.push(o);
          else if (
            ((c = se(o)), (s = be(u.appendChild(o), "script")), c && we(s), n)
          )
            for (d = 0; (o = s[d++]); ) me.test(o.type || "") && n.push(o);
        return u;
      }
      var Ce = /^([^.]*)(?:\.(.+)|)/;

      function ke() {
        return !0;
      }

      function _e() {
        return !1;
      }

      function Ie(e, t) {
        return (
          (e ===
            (function () {
              try {
                return b.activeElement;
              } catch (e) {}
            })()) ==
          ("focus" === t)
        );
      }

      function Ee(e, t, n, i, r, o) {
        var s, a;
        if ("object" == typeof t) {
          for (a in ("string" != typeof n && ((i = i || n), (n = void 0)), t))
            Ee(e, a, n, i, t[a], o);
          return e;
        }
        if (
          (null == i && null == r
            ? ((r = n), (i = n = void 0))
            : null == r &&
              ("string" == typeof n
                ? ((r = i), (i = void 0))
                : ((r = i), (i = n), (n = void 0))),
          !1 === r)
        )
          r = _e;
        else if (!r) return e;
        return (
          1 === o &&
            ((s = r),
            ((r = function (e) {
              return C().off(e), s.apply(this, arguments);
            }).guid = s.guid || (s.guid = C.guid++))),
          e.each(function () {
            C.event.add(this, t, r, i, n);
          })
        );
      }

      function Te(e, t, n) {
        n
          ? (Y.set(e, t, !1),
            C.event.add(e, t, {
              namespace: !1,
              handler: function (e) {
                var i,
                  r,
                  o = Y.get(this, t);
                if (1 & e.isTrigger && this[t]) {
                  if (o.length)
                    (C.event.special[t] || {}).delegateType &&
                      e.stopPropagation();
                  else if (
                    ((o = a.call(arguments)),
                    Y.set(this, t, o),
                    (i = n(this, t)),
                    this[t](),
                    o !== (r = Y.get(this, t)) || i
                      ? Y.set(this, t, !1)
                      : (r = {}),
                    o !== r)
                  )
                    return (
                      e.stopImmediatePropagation(),
                      e.preventDefault(),
                      r && r.value
                    );
                } else
                  o.length &&
                    (Y.set(this, t, {
                      value: C.event.trigger(
                        C.extend(o[0], C.Event.prototype),
                        o.slice(1),
                        this
                      ),
                    }),
                    e.stopImmediatePropagation());
              },
            }))
          : void 0 === Y.get(e, t) && C.event.add(e, t, ke);
      }
      (C.event = {
        global: {},
        add: function (e, t, n, i, r) {
          var o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            p,
            A,
            f = Y.get(e);
          if (G(e))
            for (
              n.handler && ((n = (o = n).handler), (r = o.selector)),
                r && C.find.matchesSelector(oe, r),
                n.guid || (n.guid = C.guid++),
                (l = f.events) || (l = f.events = Object.create(null)),
                (s = f.handle) ||
                  (s = f.handle =
                    function (t) {
                      return void 0 !== C && C.event.triggered !== t.type
                        ? C.event.dispatch.apply(e, arguments)
                        : void 0;
                    }),
                c = (t = (t || "").match(H) || [""]).length;
              c--;

            )
              (g = A = (a = Ce.exec(t[c]) || [])[1]),
                (p = (a[2] || "").split(".").sort()),
                g &&
                  ((u = C.event.special[g] || {}),
                  (g = (r ? u.delegateType : u.bindType) || g),
                  (u = C.event.special[g] || {}),
                  (d = C.extend(
                    {
                      type: g,
                      origType: A,
                      data: i,
                      handler: n,
                      guid: n.guid,
                      selector: r,
                      needsContext: r && C.expr.match.needsContext.test(r),
                      namespace: p.join("."),
                    },
                    o
                  )),
                  (h = l[g]) ||
                    (((h = l[g] = []).delegateCount = 0),
                    (u.setup && !1 !== u.setup.call(e, i, p, s)) ||
                      (e.addEventListener && e.addEventListener(g, s))),
                  u.add &&
                    (u.add.call(e, d),
                    d.handler.guid || (d.handler.guid = n.guid)),
                  r ? h.splice(h.delegateCount++, 0, d) : h.push(d),
                  (C.event.global[g] = !0));
        },
        remove: function (e, t, n, i, r) {
          var o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            g,
            p,
            A,
            f = Y.hasData(e) && Y.get(e);
          if (f && (l = f.events)) {
            for (c = (t = (t || "").match(H) || [""]).length; c--; )
              if (
                ((g = A = (a = Ce.exec(t[c]) || [])[1]),
                (p = (a[2] || "").split(".").sort()),
                g)
              ) {
                for (
                  u = C.event.special[g] || {},
                    h = l[(g = (i ? u.delegateType : u.bindType) || g)] || [],
                    a =
                      a[2] &&
                      new RegExp(
                        "(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)"
                      ),
                    s = o = h.length;
                  o--;

                )
                  (d = h[o]),
                    (!r && A !== d.origType) ||
                      (n && n.guid !== d.guid) ||
                      (a && !a.test(d.namespace)) ||
                      (i && i !== d.selector && ("**" !== i || !d.selector)) ||
                      (h.splice(o, 1),
                      d.selector && h.delegateCount--,
                      u.remove && u.remove.call(e, d));
                s &&
                  !h.length &&
                  ((u.teardown && !1 !== u.teardown.call(e, p, f.handle)) ||
                    C.removeEvent(e, g, f.handle),
                  delete l[g]);
              } else for (g in l) C.event.remove(e, g + t[c], n, i, !0);
            C.isEmptyObject(l) && Y.remove(e, "handle events");
          }
        },
        dispatch: function (e) {
          var t,
            n,
            i,
            r,
            o,
            s,
            a = new Array(arguments.length),
            l = C.event.fix(e),
            c = (Y.get(this, "events") || Object.create(null))[l.type] || [],
            d = C.event.special[l.type] || {};
          for (a[0] = l, t = 1; t < arguments.length; t++) a[t] = arguments[t];
          if (
            ((l.delegateTarget = this),
            !d.preDispatch || !1 !== d.preDispatch.call(this, l))
          ) {
            for (
              s = C.event.handlers.call(this, l, c), t = 0;
              (r = s[t++]) && !l.isPropagationStopped();

            )
              for (
                l.currentTarget = r.elem, n = 0;
                (o = r.handlers[n++]) && !l.isImmediatePropagationStopped();

              )
                (l.rnamespace &&
                  !1 !== o.namespace &&
                  !l.rnamespace.test(o.namespace)) ||
                  ((l.handleObj = o),
                  (l.data = o.data),
                  void 0 !==
                    (i = (
                      (C.event.special[o.origType] || {}).handle || o.handler
                    ).apply(r.elem, a)) &&
                    !1 === (l.result = i) &&
                    (l.preventDefault(), l.stopPropagation()));
            return d.postDispatch && d.postDispatch.call(this, l), l.result;
          }
        },
        handlers: function (e, t) {
          var n,
            i,
            r,
            o,
            s,
            a = [],
            l = t.delegateCount,
            c = e.target;
          if (l && c.nodeType && !("click" === e.type && e.button >= 1))
            for (; c !== this; c = c.parentNode || this)
              if (
                1 === c.nodeType &&
                ("click" !== e.type || !0 !== c.disabled)
              ) {
                for (o = [], s = {}, n = 0; n < l; n++)
                  void 0 === s[(r = (i = t[n]).selector + " ")] &&
                    (s[r] = i.needsContext
                      ? C(r, this).index(c) > -1
                      : C.find(r, this, null, [c]).length),
                    s[r] && o.push(i);
                o.length &&
                  a.push({
                    elem: c,
                    handlers: o,
                  });
              }
          return (
            (c = this),
            l < t.length &&
              a.push({
                elem: c,
                handlers: t.slice(l),
              }),
            a
          );
        },
        addProp: function (e, t) {
          Object.defineProperty(C.Event.prototype, e, {
            enumerable: !0,
            configurable: !0,
            get: m(t)
              ? function () {
                  if (this.originalEvent) return t(this.originalEvent);
                }
              : function () {
                  if (this.originalEvent) return this.originalEvent[e];
                },
            set: function (t) {
              Object.defineProperty(this, e, {
                enumerable: !0,
                configurable: !0,
                writable: !0,
                value: t,
              });
            },
          });
        },
        fix: function (e) {
          return e[C.expando] ? e : new C.Event(e);
        },
        special: {
          load: {
            noBubble: !0,
          },
          click: {
            setup: function (e) {
              var t = this || e;
              return (
                Ae.test(t.type) &&
                  t.click &&
                  S(t, "input") &&
                  Te(t, "click", ke),
                !1
              );
            },
            trigger: function (e) {
              var t = this || e;
              return (
                Ae.test(t.type) && t.click && S(t, "input") && Te(t, "click"),
                !0
              );
            },
            _default: function (e) {
              var t = e.target;
              return (
                (Ae.test(t.type) &&
                  t.click &&
                  S(t, "input") &&
                  Y.get(t, "click")) ||
                S(t, "a")
              );
            },
          },
          beforeunload: {
            postDispatch: function (e) {
              void 0 !== e.result &&
                e.originalEvent &&
                (e.originalEvent.returnValue = e.result);
            },
          },
        },
      }),
        (C.removeEvent = function (e, t, n) {
          e.removeEventListener && e.removeEventListener(t, n);
        }),
        (C.Event = function (e, t) {
          if (!(this instanceof C.Event)) return new C.Event(e, t);
          e && e.type
            ? ((this.originalEvent = e),
              (this.type = e.type),
              (this.isDefaultPrevented =
                e.defaultPrevented ||
                (void 0 === e.defaultPrevented && !1 === e.returnValue)
                  ? ke
                  : _e),
              (this.target =
                e.target && 3 === e.target.nodeType
                  ? e.target.parentNode
                  : e.target),
              (this.currentTarget = e.currentTarget),
              (this.relatedTarget = e.relatedTarget))
            : (this.type = e),
            t && C.extend(this, t),
            (this.timeStamp = (e && e.timeStamp) || Date.now()),
            (this[C.expando] = !0);
        }),
        (C.Event.prototype = {
          constructor: C.Event,
          isDefaultPrevented: _e,
          isPropagationStopped: _e,
          isImmediatePropagationStopped: _e,
          isSimulated: !1,
          preventDefault: function () {
            var e = this.originalEvent;
            (this.isDefaultPrevented = ke),
              e && !this.isSimulated && e.preventDefault();
          },
          stopPropagation: function () {
            var e = this.originalEvent;
            (this.isPropagationStopped = ke),
              e && !this.isSimulated && e.stopPropagation();
          },
          stopImmediatePropagation: function () {
            var e = this.originalEvent;
            (this.isImmediatePropagationStopped = ke),
              e && !this.isSimulated && e.stopImmediatePropagation(),
              this.stopPropagation();
          },
        }),
        C.each(
          {
            altKey: !0,
            bubbles: !0,
            cancelable: !0,
            changedTouches: !0,
            ctrlKey: !0,
            detail: !0,
            eventPhase: !0,
            metaKey: !0,
            pageX: !0,
            pageY: !0,
            shiftKey: !0,
            view: !0,
            char: !0,
            code: !0,
            charCode: !0,
            key: !0,
            keyCode: !0,
            button: !0,
            buttons: !0,
            clientX: !0,
            clientY: !0,
            offsetX: !0,
            offsetY: !0,
            pointerId: !0,
            pointerType: !0,
            screenX: !0,
            screenY: !0,
            targetTouches: !0,
            toElement: !0,
            touches: !0,
            which: !0,
          },
          C.event.addProp
        ),
        C.each(
          {
            focus: "focusin",
            blur: "focusout",
          },
          function (e, t) {
            C.event.special[e] = {
              setup: function () {
                return Te(this, e, Ie), !1;
              },
              trigger: function () {
                return Te(this, e), !0;
              },
              _default: function () {
                return !0;
              },
              delegateType: t,
            };
          }
        ),
        C.each(
          {
            mouseenter: "mouseover",
            mouseleave: "mouseout",
            pointerenter: "pointerover",
            pointerleave: "pointerout",
          },
          function (e, t) {
            C.event.special[e] = {
              delegateType: t,
              bindType: t,
              handle: function (e) {
                var n,
                  i = this,
                  r = e.relatedTarget,
                  o = e.handleObj;
                return (
                  (r && (r === i || C.contains(i, r))) ||
                    ((e.type = o.origType),
                    (n = o.handler.apply(this, arguments)),
                    (e.type = t)),
                  n
                );
              },
            };
          }
        ),
        C.fn.extend({
          on: function (e, t, n, i) {
            return Ee(this, e, t, n, i);
          },
          one: function (e, t, n, i) {
            return Ee(this, e, t, n, i, 1);
          },
          off: function (e, t, n) {
            var i, r;
            if (e && e.preventDefault && e.handleObj)
              return (
                (i = e.handleObj),
                C(e.delegateTarget).off(
                  i.namespace ? i.origType + "." + i.namespace : i.origType,
                  i.selector,
                  i.handler
                ),
                this
              );
            if ("object" == typeof e) {
              for (r in e) this.off(r, t, e[r]);
              return this;
            }
            return (
              (!1 !== t && "function" != typeof t) || ((n = t), (t = void 0)),
              !1 === n && (n = _e),
              this.each(function () {
                C.event.remove(this, e, n, t);
              })
            );
          },
        });
      var Se = /<script|<style|<link/i,
        Le = /checked\s*(?:[^=]|=\s*.checked.)/i,
        je = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;

      function Re(e, t) {
        return (
          (S(e, "table") &&
            S(11 !== t.nodeType ? t : t.firstChild, "tr") &&
            C(e).children("tbody")[0]) ||
          e
        );
      }

      function Be(e) {
        return (e.type = (null !== e.getAttribute("type")) + "/" + e.type), e;
      }

      function Me(e) {
        return (
          "true/" === (e.type || "").slice(0, 5)
            ? (e.type = e.type.slice(5))
            : e.removeAttribute("type"),
          e
        );
      }

      function De(e, t) {
        var n, i, r, o, s, a;
        if (1 === t.nodeType) {
          if (Y.hasData(e) && (a = Y.get(e).events))
            for (r in (Y.remove(t, "handle events"), a))
              for (n = 0, i = a[r].length; n < i; n++)
                C.event.add(t, r, a[r][n]);
          Z.hasData(e) &&
            ((o = Z.access(e)), (s = C.extend({}, o)), Z.set(t, s));
        }
      }

      function Oe(e, t) {
        var n = t.nodeName.toLowerCase();
        "input" === n && Ae.test(e.type)
          ? (t.checked = e.checked)
          : ("input" !== n && "textarea" !== n) ||
            (t.defaultValue = e.defaultValue);
      }

      function He(e, t, n, i) {
        t = l(t);
        var r,
          o,
          s,
          a,
          c,
          d,
          u = 0,
          h = e.length,
          g = h - 1,
          p = t[0],
          A = m(p);
        if (A || (h > 1 && "string" == typeof p && !f.checkClone && Le.test(p)))
          return e.each(function (r) {
            var o = e.eq(r);
            A && (t[0] = p.call(this, r, o.html())), He(o, t, n, i);
          });
        if (
          h &&
          ((o = (r = xe(t, e[0].ownerDocument, !1, e, i)).firstChild),
          1 === r.childNodes.length && (r = o),
          o || i)
        ) {
          for (a = (s = C.map(be(r, "script"), Be)).length; u < h; u++)
            (c = r),
              u !== g &&
                ((c = C.clone(c, !0, !0)), a && C.merge(s, be(c, "script"))),
              n.call(e[u], c, u);
          if (a)
            for (
              d = s[s.length - 1].ownerDocument, C.map(s, Me), u = 0;
              u < a;
              u++
            )
              (c = s[u]),
                me.test(c.type || "") &&
                  !Y.access(c, "globalEval") &&
                  C.contains(d, c) &&
                  (c.src && "module" !== (c.type || "").toLowerCase()
                    ? C._evalUrl &&
                      !c.noModule &&
                      C._evalUrl(
                        c.src,
                        {
                          nonce: c.nonce || c.getAttribute("nonce"),
                        },
                        d
                      )
                    : y(c.textContent.replace(je, ""), c, d));
        }
        return e;
      }

      function We(e, t, n) {
        for (var i, r = t ? C.filter(t, e) : e, o = 0; null != (i = r[o]); o++)
          n || 1 !== i.nodeType || C.cleanData(be(i)),
            i.parentNode &&
              (n && se(i) && we(be(i, "script")), i.parentNode.removeChild(i));
        return e;
      }
      C.extend({
        htmlPrefilter: function (e) {
          return e;
        },
        clone: function (e, t, n) {
          var i,
            r,
            o,
            s,
            a = e.cloneNode(!0),
            l = se(e);
          if (
            !(
              f.noCloneChecked ||
              (1 !== e.nodeType && 11 !== e.nodeType) ||
              C.isXMLDoc(e)
            )
          )
            for (s = be(a), i = 0, r = (o = be(e)).length; i < r; i++)
              Oe(o[i], s[i]);
          if (t)
            if (n)
              for (
                o = o || be(e), s = s || be(a), i = 0, r = o.length;
                i < r;
                i++
              )
                De(o[i], s[i]);
            else De(e, a);
          return (
            (s = be(a, "script")).length > 0 && we(s, !l && be(e, "script")), a
          );
        },
        cleanData: function (e) {
          for (
            var t, n, i, r = C.event.special, o = 0;
            void 0 !== (n = e[o]);
            o++
          )
            if (G(n)) {
              if ((t = n[Y.expando])) {
                if (t.events)
                  for (i in t.events)
                    r[i] ? C.event.remove(n, i) : C.removeEvent(n, i, t.handle);
                n[Y.expando] = void 0;
              }
              n[Z.expando] && (n[Z.expando] = void 0);
            }
        },
      }),
        C.fn.extend({
          detach: function (e) {
            return We(this, e, !0);
          },
          remove: function (e) {
            return We(this, e);
          },
          text: function (e) {
            return F(
              this,
              function (e) {
                return void 0 === e
                  ? C.text(this)
                  : this.empty().each(function () {
                      (1 !== this.nodeType &&
                        11 !== this.nodeType &&
                        9 !== this.nodeType) ||
                        (this.textContent = e);
                    });
              },
              null,
              e,
              arguments.length
            );
          },
          append: function () {
            return He(this, arguments, function (e) {
              (1 !== this.nodeType &&
                11 !== this.nodeType &&
                9 !== this.nodeType) ||
                Re(this, e).appendChild(e);
            });
          },
          prepend: function () {
            return He(this, arguments, function (e) {
              if (
                1 === this.nodeType ||
                11 === this.nodeType ||
                9 === this.nodeType
              ) {
                var t = Re(this, e);
                t.insertBefore(e, t.firstChild);
              }
            });
          },
          before: function () {
            return He(this, arguments, function (e) {
              this.parentNode && this.parentNode.insertBefore(e, this);
            });
          },
          after: function () {
            return He(this, arguments, function (e) {
              this.parentNode &&
                this.parentNode.insertBefore(e, this.nextSibling);
            });
          },
          empty: function () {
            for (var e, t = 0; null != (e = this[t]); t++)
              1 === e.nodeType &&
                (C.cleanData(be(e, !1)), (e.textContent = ""));
            return this;
          },
          clone: function (e, t) {
            return (
              (e = null != e && e),
              (t = null == t ? e : t),
              this.map(function () {
                return C.clone(this, e, t);
              })
            );
          },
          html: function (e) {
            return F(
              this,
              function (e) {
                var t = this[0] || {},
                  n = 0,
                  i = this.length;
                if (void 0 === e && 1 === t.nodeType) return t.innerHTML;
                if (
                  "string" == typeof e &&
                  !Se.test(e) &&
                  !ve[(fe.exec(e) || ["", ""])[1].toLowerCase()]
                ) {
                  e = C.htmlPrefilter(e);
                  try {
                    for (; n < i; n++)
                      1 === (t = this[n] || {}).nodeType &&
                        (C.cleanData(be(t, !1)), (t.innerHTML = e));
                    t = 0;
                  } catch (e) {}
                }
                t && this.empty().append(e);
              },
              null,
              e,
              arguments.length
            );
          },
          replaceWith: function () {
            var e = [];
            return He(
              this,
              arguments,
              function (t) {
                var n = this.parentNode;
                C.inArray(this, e) < 0 &&
                  (C.cleanData(be(this)), n && n.replaceChild(t, this));
              },
              e
            );
          },
        }),
        C.each(
          {
            appendTo: "append",
            prependTo: "prepend",
            insertBefore: "before",
            insertAfter: "after",
            replaceAll: "replaceWith",
          },
          function (e, t) {
            C.fn[e] = function (e) {
              for (
                var n, i = [], r = C(e), o = r.length - 1, s = 0;
                s <= o;
                s++
              )
                (n = s === o ? this : this.clone(!0)),
                  C(r[s])[t](n),
                  c.apply(i, n.get());
              return this.pushStack(i);
            };
          }
        );
      var Pe = new RegExp("^(" + ne + ")(?!px)[a-z%]+$", "i"),
        Ne = function (e) {
          var t = e.ownerDocument.defaultView;
          return (t && t.opener) || (t = n), t.getComputedStyle(e);
        },
        qe = function (e, t, n) {
          var i,
            r,
            o = {};
          for (r in t) (o[r] = e.style[r]), (e.style[r] = t[r]);
          for (r in ((i = n.call(e)), t)) e.style[r] = o[r];
          return i;
        },
        ze = new RegExp(re.join("|"), "i");

      function Ve(e, t, n) {
        var i,
          r,
          o,
          s,
          a = e.style;
        return (
          (n = n || Ne(e)) &&
            ("" !== (s = n.getPropertyValue(t) || n[t]) ||
              se(e) ||
              (s = C.style(e, t)),
            !f.pixelBoxStyles() &&
              Pe.test(s) &&
              ze.test(t) &&
              ((i = a.width),
              (r = a.minWidth),
              (o = a.maxWidth),
              (a.minWidth = a.maxWidth = a.width = s),
              (s = n.width),
              (a.width = i),
              (a.minWidth = r),
              (a.maxWidth = o))),
          void 0 !== s ? s + "" : s
        );
      }

      function Fe(e, t) {
        return {
          get: function () {
            if (!e()) return (this.get = t).apply(this, arguments);
            delete this.get;
          },
        };
      }
      !(function () {
        function e() {
          if (d) {
            (c.style.cssText =
              "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0"),
              (d.style.cssText =
                "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%"),
              oe.appendChild(c).appendChild(d);
            var e = n.getComputedStyle(d);
            (i = "1%" !== e.top),
              (l = 12 === t(e.marginLeft)),
              (d.style.right = "60%"),
              (s = 36 === t(e.right)),
              (r = 36 === t(e.width)),
              (d.style.position = "absolute"),
              (o = 12 === t(d.offsetWidth / 3)),
              oe.removeChild(c),
              (d = null);
          }
        }

        function t(e) {
          return Math.round(parseFloat(e));
        }
        var i,
          r,
          o,
          s,
          a,
          l,
          c = b.createElement("div"),
          d = b.createElement("div");
        d.style &&
          ((d.style.backgroundClip = "content-box"),
          (d.cloneNode(!0).style.backgroundClip = ""),
          (f.clearCloneStyle = "content-box" === d.style.backgroundClip),
          C.extend(f, {
            boxSizingReliable: function () {
              return e(), r;
            },
            pixelBoxStyles: function () {
              return e(), s;
            },
            pixelPosition: function () {
              return e(), i;
            },
            reliableMarginLeft: function () {
              return e(), l;
            },
            scrollboxSize: function () {
              return e(), o;
            },
            reliableTrDimensions: function () {
              var e, t, i, r;
              return (
                null == a &&
                  ((e = b.createElement("table")),
                  (t = b.createElement("tr")),
                  (i = b.createElement("div")),
                  (e.style.cssText =
                    "position:absolute;left:-11111px;border-collapse:separate"),
                  (t.style.cssText = "border:1px solid"),
                  (t.style.height = "1px"),
                  (i.style.height = "9px"),
                  (i.style.display = "block"),
                  oe.appendChild(e).appendChild(t).appendChild(i),
                  (r = n.getComputedStyle(t)),
                  (a =
                    parseInt(r.height, 10) +
                      parseInt(r.borderTopWidth, 10) +
                      parseInt(r.borderBottomWidth, 10) ===
                    t.offsetHeight),
                  oe.removeChild(e)),
                a
              );
            },
          }));
      })();
      var Qe = ["Webkit", "Moz", "ms"],
        Ue = b.createElement("div").style,
        Ke = {};

      function Xe(e) {
        var t = C.cssProps[e] || Ke[e];
        return (
          t ||
          (e in Ue
            ? e
            : (Ke[e] =
                (function (e) {
                  for (
                    var t = e[0].toUpperCase() + e.slice(1), n = Qe.length;
                    n--;

                  )
                    if ((e = Qe[n] + t) in Ue) return e;
                })(e) || e))
        );
      }
      var Ge = /^(none|table(?!-c[ea]).+)/,
        Je = /^--/,
        Ye = {
          position: "absolute",
          visibility: "hidden",
          display: "block",
        },
        Ze = {
          letterSpacing: "0",
          fontWeight: "400",
        };

      function $e(e, t, n) {
        var i = ie.exec(t);
        return i ? Math.max(0, i[2] - (n || 0)) + (i[3] || "px") : t;
      }

      function et(e, t, n, i, r, o) {
        var s = "width" === t ? 1 : 0,
          a = 0,
          l = 0;
        if (n === (i ? "border" : "content")) return 0;
        for (; s < 4; s += 2)
          "margin" === n && (l += C.css(e, n + re[s], !0, r)),
            i
              ? ("content" === n && (l -= C.css(e, "padding" + re[s], !0, r)),
                "margin" !== n &&
                  (l -= C.css(e, "border" + re[s] + "Width", !0, r)))
              : ((l += C.css(e, "padding" + re[s], !0, r)),
                "padding" !== n
                  ? (l += C.css(e, "border" + re[s] + "Width", !0, r))
                  : (a += C.css(e, "border" + re[s] + "Width", !0, r)));
        return (
          !i &&
            o >= 0 &&
            (l +=
              Math.max(
                0,
                Math.ceil(
                  e["offset" + t[0].toUpperCase() + t.slice(1)] -
                    o -
                    l -
                    a -
                    0.5
                )
              ) || 0),
          l
        );
      }

      function tt(e, t, n) {
        var i = Ne(e),
          r =
            (!f.boxSizingReliable() || n) &&
            "border-box" === C.css(e, "boxSizing", !1, i),
          o = r,
          s = Ve(e, t, i),
          a = "offset" + t[0].toUpperCase() + t.slice(1);
        if (Pe.test(s)) {
          if (!n) return s;
          s = "auto";
        }
        return (
          ((!f.boxSizingReliable() && r) ||
            (!f.reliableTrDimensions() && S(e, "tr")) ||
            "auto" === s ||
            (!parseFloat(s) && "inline" === C.css(e, "display", !1, i))) &&
            e.getClientRects().length &&
            ((r = "border-box" === C.css(e, "boxSizing", !1, i)),
            (o = a in e) && (s = e[a])),
          (s = parseFloat(s) || 0) +
            et(e, t, n || (r ? "border" : "content"), o, i, s) +
            "px"
        );
      }

      function nt(e, t, n, i, r) {
        return new nt.prototype.init(e, t, n, i, r);
      }
      C.extend({
        cssHooks: {
          opacity: {
            get: function (e, t) {
              if (t) {
                var n = Ve(e, "opacity");
                return "" === n ? "1" : n;
              }
            },
          },
        },
        cssNumber: {
          animationIterationCount: !0,
          columnCount: !0,
          fillOpacity: !0,
          flexGrow: !0,
          flexShrink: !0,
          fontWeight: !0,
          gridArea: !0,
          gridColumn: !0,
          gridColumnEnd: !0,
          gridColumnStart: !0,
          gridRow: !0,
          gridRowEnd: !0,
          gridRowStart: !0,
          lineHeight: !0,
          opacity: !0,
          order: !0,
          orphans: !0,
          widows: !0,
          zIndex: !0,
          zoom: !0,
        },
        cssProps: {},
        style: function (e, t, n, i) {
          if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
            var r,
              o,
              s,
              a = X(t),
              l = Je.test(t),
              c = e.style;
            if (
              (l || (t = Xe(a)),
              (s = C.cssHooks[t] || C.cssHooks[a]),
              void 0 === n)
            )
              return s && "get" in s && void 0 !== (r = s.get(e, !1, i))
                ? r
                : c[t];
            "string" === (o = typeof n) &&
              (r = ie.exec(n)) &&
              r[1] &&
              ((n = ce(e, t, r)), (o = "number")),
              null != n &&
                n == n &&
                ("number" !== o ||
                  l ||
                  (n += (r && r[3]) || (C.cssNumber[a] ? "" : "px")),
                f.clearCloneStyle ||
                  "" !== n ||
                  0 !== t.indexOf("background") ||
                  (c[t] = "inherit"),
                (s && "set" in s && void 0 === (n = s.set(e, n, i))) ||
                  (l ? c.setProperty(t, n) : (c[t] = n)));
          }
        },
        css: function (e, t, n, i) {
          var r,
            o,
            s,
            a = X(t);
          return (
            Je.test(t) || (t = Xe(a)),
            (s = C.cssHooks[t] || C.cssHooks[a]) &&
              "get" in s &&
              (r = s.get(e, !0, n)),
            void 0 === r && (r = Ve(e, t, i)),
            "normal" === r && t in Ze && (r = Ze[t]),
            "" === n || n
              ? ((o = parseFloat(r)), !0 === n || isFinite(o) ? o || 0 : r)
              : r
          );
        },
      }),
        C.each(["height", "width"], function (e, t) {
          C.cssHooks[t] = {
            get: function (e, n, i) {
              if (n)
                return !Ge.test(C.css(e, "display")) ||
                  (e.getClientRects().length && e.getBoundingClientRect().width)
                  ? tt(e, t, i)
                  : qe(e, Ye, function () {
                      return tt(e, t, i);
                    });
            },
            set: function (e, n, i) {
              var r,
                o = Ne(e),
                s = !f.scrollboxSize() && "absolute" === o.position,
                a = (s || i) && "border-box" === C.css(e, "boxSizing", !1, o),
                l = i ? et(e, t, i, a, o) : 0;
              return (
                a &&
                  s &&
                  (l -= Math.ceil(
                    e["offset" + t[0].toUpperCase() + t.slice(1)] -
                      parseFloat(o[t]) -
                      et(e, t, "border", !1, o) -
                      0.5
                  )),
                l &&
                  (r = ie.exec(n)) &&
                  "px" !== (r[3] || "px") &&
                  ((e.style[t] = n), (n = C.css(e, t))),
                $e(0, n, l)
              );
            },
          };
        }),
        (C.cssHooks.marginLeft = Fe(f.reliableMarginLeft, function (e, t) {
          if (t)
            return (
              (parseFloat(Ve(e, "marginLeft")) ||
                e.getBoundingClientRect().left -
                  qe(
                    e,
                    {
                      marginLeft: 0,
                    },
                    function () {
                      return e.getBoundingClientRect().left;
                    }
                  )) + "px"
            );
        })),
        C.each(
          {
            margin: "",
            padding: "",
            border: "Width",
          },
          function (e, t) {
            (C.cssHooks[e + t] = {
              expand: function (n) {
                for (
                  var i = 0,
                    r = {},
                    o = "string" == typeof n ? n.split(" ") : [n];
                  i < 4;
                  i++
                )
                  r[e + re[i] + t] = o[i] || o[i - 2] || o[0];
                return r;
              },
            }),
              "margin" !== e && (C.cssHooks[e + t].set = $e);
          }
        ),
        C.fn.extend({
          css: function (e, t) {
            return F(
              this,
              function (e, t, n) {
                var i,
                  r,
                  o = {},
                  s = 0;
                if (Array.isArray(t)) {
                  for (i = Ne(e), r = t.length; s < r; s++)
                    o[t[s]] = C.css(e, t[s], !1, i);
                  return o;
                }
                return void 0 !== n ? C.style(e, t, n) : C.css(e, t);
              },
              e,
              t,
              arguments.length > 1
            );
          },
        }),
        (C.Tween = nt),
        (nt.prototype = {
          constructor: nt,
          init: function (e, t, n, i, r, o) {
            (this.elem = e),
              (this.prop = n),
              (this.easing = r || C.easing._default),
              (this.options = t),
              (this.start = this.now = this.cur()),
              (this.end = i),
              (this.unit = o || (C.cssNumber[n] ? "" : "px"));
          },
          cur: function () {
            var e = nt.propHooks[this.prop];
            return e && e.get ? e.get(this) : nt.propHooks._default.get(this);
          },
          run: function (e) {
            var t,
              n = nt.propHooks[this.prop];
            return (
              this.options.duration
                ? (this.pos = t =
                    C.easing[this.easing](
                      e,
                      this.options.duration * e,
                      0,
                      1,
                      this.options.duration
                    ))
                : (this.pos = t = e),
              (this.now = (this.end - this.start) * t + this.start),
              this.options.step &&
                this.options.step.call(this.elem, this.now, this),
              n && n.set ? n.set(this) : nt.propHooks._default.set(this),
              this
            );
          },
        }),
        (nt.prototype.init.prototype = nt.prototype),
        (nt.propHooks = {
          _default: {
            get: function (e) {
              var t;
              return 1 !== e.elem.nodeType ||
                (null != e.elem[e.prop] && null == e.elem.style[e.prop])
                ? e.elem[e.prop]
                : (t = C.css(e.elem, e.prop, "")) && "auto" !== t
                ? t
                : 0;
            },
            set: function (e) {
              C.fx.step[e.prop]
                ? C.fx.step[e.prop](e)
                : 1 !== e.elem.nodeType ||
                  (!C.cssHooks[e.prop] && null == e.elem.style[Xe(e.prop)])
                ? (e.elem[e.prop] = e.now)
                : C.style(e.elem, e.prop, e.now + e.unit);
            },
          },
        }),
        (nt.propHooks.scrollTop = nt.propHooks.scrollLeft =
          {
            set: function (e) {
              e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now);
            },
          }),
        (C.easing = {
          linear: function (e) {
            return e;
          },
          swing: function (e) {
            return 0.5 - Math.cos(e * Math.PI) / 2;
          },
          _default: "swing",
        }),
        (C.fx = nt.prototype.init),
        (C.fx.step = {});
      var it,
        rt,
        ot = /^(?:toggle|show|hide)$/,
        st = /queueHooks$/;

      function at() {
        rt &&
          (!1 === b.hidden && n.requestAnimationFrame
            ? n.requestAnimationFrame(at)
            : n.setTimeout(at, C.fx.interval),
          C.fx.tick());
      }

      function lt() {
        return (
          n.setTimeout(function () {
            it = void 0;
          }),
          (it = Date.now())
        );
      }

      function ct(e, t) {
        var n,
          i = 0,
          r = {
            height: e,
          };
        for (t = t ? 1 : 0; i < 4; i += 2 - t)
          r["margin" + (n = re[i])] = r["padding" + n] = e;
        return t && (r.opacity = r.width = e), r;
      }

      function dt(e, t, n) {
        for (
          var i,
            r = (ut.tweeners[t] || []).concat(ut.tweeners["*"]),
            o = 0,
            s = r.length;
          o < s;
          o++
        )
          if ((i = r[o].call(n, t, e))) return i;
      }

      function ut(e, t, n) {
        var i,
          r,
          o = 0,
          s = ut.prefilters.length,
          a = C.Deferred().always(function () {
            delete l.elem;
          }),
          l = function () {
            if (r) return !1;
            for (
              var t = it || lt(),
                n = Math.max(0, c.startTime + c.duration - t),
                i = 1 - (n / c.duration || 0),
                o = 0,
                s = c.tweens.length;
              o < s;
              o++
            )
              c.tweens[o].run(i);
            return (
              a.notifyWith(e, [c, i, n]),
              i < 1 && s
                ? n
                : (s || a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c]), !1)
            );
          },
          c = a.promise({
            elem: e,
            props: C.extend({}, t),
            opts: C.extend(
              !0,
              {
                specialEasing: {},
                easing: C.easing._default,
              },
              n
            ),
            originalProperties: t,
            originalOptions: n,
            startTime: it || lt(),
            duration: n.duration,
            tweens: [],
            createTween: function (t, n) {
              var i = C.Tween(
                e,
                c.opts,
                t,
                n,
                c.opts.specialEasing[t] || c.opts.easing
              );
              return c.tweens.push(i), i;
            },
            stop: function (t) {
              var n = 0,
                i = t ? c.tweens.length : 0;
              if (r) return this;
              for (r = !0; n < i; n++) c.tweens[n].run(1);
              return (
                t
                  ? (a.notifyWith(e, [c, 1, 0]), a.resolveWith(e, [c, t]))
                  : a.rejectWith(e, [c, t]),
                this
              );
            },
          }),
          d = c.props;
        for (
          !(function (e, t) {
            var n, i, r, o, s;
            for (n in e)
              if (
                ((r = t[(i = X(n))]),
                (o = e[n]),
                Array.isArray(o) && ((r = o[1]), (o = e[n] = o[0])),
                n !== i && ((e[i] = o), delete e[n]),
                (s = C.cssHooks[i]) && ("expand" in s))
              )
                for (n in ((o = s.expand(o)), delete e[i], o))
                  (n in e) || ((e[n] = o[n]), (t[n] = r));
              else t[i] = r;
          })(d, c.opts.specialEasing);
          o < s;
          o++
        )
          if ((i = ut.prefilters[o].call(c, e, d, c.opts)))
            return (
              m(i.stop) &&
                (C._queueHooks(c.elem, c.opts.queue).stop = i.stop.bind(i)),
              i
            );
        return (
          C.map(d, dt, c),
          m(c.opts.start) && c.opts.start.call(e, c),
          c
            .progress(c.opts.progress)
            .done(c.opts.done, c.opts.complete)
            .fail(c.opts.fail)
            .always(c.opts.always),
          C.fx.timer(
            C.extend(l, {
              elem: e,
              anim: c,
              queue: c.opts.queue,
            })
          ),
          c
        );
      }
      (C.Animation = C.extend(ut, {
        tweeners: {
          "*": [
            function (e, t) {
              var n = this.createTween(e, t);
              return ce(n.elem, e, ie.exec(t), n), n;
            },
          ],
        },
        tweener: function (e, t) {
          m(e) ? ((t = e), (e = ["*"])) : (e = e.match(H));
          for (var n, i = 0, r = e.length; i < r; i++)
            (n = e[i]),
              (ut.tweeners[n] = ut.tweeners[n] || []),
              ut.tweeners[n].unshift(t);
        },
        prefilters: [
          function (e, t, n) {
            var i,
              r,
              o,
              s,
              a,
              l,
              c,
              d,
              u = "width" in t || "height" in t,
              h = this,
              g = {},
              p = e.style,
              A = e.nodeType && le(e),
              f = Y.get(e, "fxshow");
            for (i in (n.queue ||
              (null == (s = C._queueHooks(e, "fx")).unqueued &&
                ((s.unqueued = 0),
                (a = s.empty.fire),
                (s.empty.fire = function () {
                  s.unqueued || a();
                })),
              s.unqueued++,
              h.always(function () {
                h.always(function () {
                  s.unqueued--, C.queue(e, "fx").length || s.empty.fire();
                });
              })),
            t))
              if (((r = t[i]), ot.test(r))) {
                if (
                  (delete t[i],
                  (o = o || "toggle" === r),
                  r === (A ? "hide" : "show"))
                ) {
                  if ("show" !== r || !f || void 0 === f[i]) continue;
                  A = !0;
                }
                g[i] = (f && f[i]) || C.style(e, i);
              }
            if ((l = !C.isEmptyObject(t)) || !C.isEmptyObject(g))
              for (i in (u &&
                1 === e.nodeType &&
                ((n.overflow = [p.overflow, p.overflowX, p.overflowY]),
                null == (c = f && f.display) && (c = Y.get(e, "display")),
                "none" === (d = C.css(e, "display")) &&
                  (c
                    ? (d = c)
                    : (he([e], !0),
                      (c = e.style.display || c),
                      (d = C.css(e, "display")),
                      he([e]))),
                ("inline" === d || ("inline-block" === d && null != c)) &&
                  "none" === C.css(e, "float") &&
                  (l ||
                    (h.done(function () {
                      p.display = c;
                    }),
                    null == c &&
                      ((d = p.display), (c = "none" === d ? "" : d))),
                  (p.display = "inline-block"))),
              n.overflow &&
                ((p.overflow = "hidden"),
                h.always(function () {
                  (p.overflow = n.overflow[0]),
                    (p.overflowX = n.overflow[1]),
                    (p.overflowY = n.overflow[2]);
                })),
              (l = !1),
              g))
                l ||
                  (f
                    ? "hidden" in f && (A = f.hidden)
                    : (f = Y.access(e, "fxshow", {
                        display: c,
                      })),
                  o && (f.hidden = !A),
                  A && he([e], !0),
                  h.done(function () {
                    for (i in (A || he([e]), Y.remove(e, "fxshow"), g))
                      C.style(e, i, g[i]);
                  })),
                  (l = dt(A ? f[i] : 0, i, h)),
                  i in f ||
                    ((f[i] = l.start), A && ((l.end = l.start), (l.start = 0)));
          },
        ],
        prefilter: function (e, t) {
          t ? ut.prefilters.unshift(e) : ut.prefilters.push(e);
        },
      })),
        (C.speed = function (e, t, n) {
          var i =
            e && "object" == typeof e
              ? C.extend({}, e)
              : {
                  complete: n || (!n && t) || (m(e) && e),
                  duration: e,
                  easing: (n && t) || (t && !m(t) && t),
                };
          return (
            C.fx.off
              ? (i.duration = 0)
              : "number" != typeof i.duration &&
                (i.duration in C.fx.speeds
                  ? (i.duration = C.fx.speeds[i.duration])
                  : (i.duration = C.fx.speeds._default)),
            (null != i.queue && !0 !== i.queue) || (i.queue = "fx"),
            (i.old = i.complete),
            (i.complete = function () {
              m(i.old) && i.old.call(this), i.queue && C.dequeue(this, i.queue);
            }),
            i
          );
        }),
        C.fn.extend({
          fadeTo: function (e, t, n, i) {
            return this.filter(le).css("opacity", 0).show().end().animate(
              {
                opacity: t,
              },
              e,
              n,
              i
            );
          },
          animate: function (e, t, n, i) {
            var r = C.isEmptyObject(e),
              o = C.speed(t, n, i),
              s = function () {
                var t = ut(this, C.extend({}, e), o);
                (r || Y.get(this, "finish")) && t.stop(!0);
              };
            return (
              (s.finish = s),
              r || !1 === o.queue ? this.each(s) : this.queue(o.queue, s)
            );
          },
          stop: function (e, t, n) {
            var i = function (e) {
              var t = e.stop;
              delete e.stop, t(n);
            };
            return (
              "string" != typeof e && ((n = t), (t = e), (e = void 0)),
              t && this.queue(e || "fx", []),
              this.each(function () {
                var t = !0,
                  r = null != e && e + "queueHooks",
                  o = C.timers,
                  s = Y.get(this);
                if (r) s[r] && s[r].stop && i(s[r]);
                else for (r in s) s[r] && s[r].stop && st.test(r) && i(s[r]);
                for (r = o.length; r--; )
                  o[r].elem !== this ||
                    (null != e && o[r].queue !== e) ||
                    (o[r].anim.stop(n), (t = !1), o.splice(r, 1));
                (!t && n) || C.dequeue(this, e);
              })
            );
          },
          finish: function (e) {
            return (
              !1 !== e && (e = e || "fx"),
              this.each(function () {
                var t,
                  n = Y.get(this),
                  i = n[e + "queue"],
                  r = n[e + "queueHooks"],
                  o = C.timers,
                  s = i ? i.length : 0;
                for (
                  n.finish = !0,
                    C.queue(this, e, []),
                    r && r.stop && r.stop.call(this, !0),
                    t = o.length;
                  t--;

                )
                  o[t].elem === this &&
                    o[t].queue === e &&
                    (o[t].anim.stop(!0), o.splice(t, 1));
                for (t = 0; t < s; t++)
                  i[t] && i[t].finish && i[t].finish.call(this);
                delete n.finish;
              })
            );
          },
        }),
        C.each(["toggle", "show", "hide"], function (e, t) {
          var n = C.fn[t];
          C.fn[t] = function (e, i, r) {
            return null == e || "boolean" == typeof e
              ? n.apply(this, arguments)
              : this.animate(ct(t, !0), e, i, r);
          };
        }),
        C.each(
          {
            slideDown: ct("show"),
            slideUp: ct("hide"),
            slideToggle: ct("toggle"),
            fadeIn: {
              opacity: "show",
            },
            fadeOut: {
              opacity: "hide",
            },
            fadeToggle: {
              opacity: "toggle",
            },
          },
          function (e, t) {
            C.fn[e] = function (e, n, i) {
              return this.animate(t, e, n, i);
            };
          }
        ),
        (C.timers = []),
        (C.fx.tick = function () {
          var e,
            t = 0,
            n = C.timers;
          for (it = Date.now(); t < n.length; t++)
            (e = n[t])() || n[t] !== e || n.splice(t--, 1);
          n.length || C.fx.stop(), (it = void 0);
        }),
        (C.fx.timer = function (e) {
          C.timers.push(e), C.fx.start();
        }),
        (C.fx.interval = 13),
        (C.fx.start = function () {
          rt || ((rt = !0), at());
        }),
        (C.fx.stop = function () {
          rt = null;
        }),
        (C.fx.speeds = {
          slow: 600,
          fast: 200,
          _default: 400,
        }),
        (C.fn.delay = function (e, t) {
          return (
            (e = (C.fx && C.fx.speeds[e]) || e),
            (t = t || "fx"),
            this.queue(t, function (t, i) {
              var r = n.setTimeout(t, e);
              i.stop = function () {
                n.clearTimeout(r);
              };
            })
          );
        }),
        (function () {
          var e = b.createElement("input"),
            t = b
              .createElement("select")
              .appendChild(b.createElement("option"));
          (e.type = "checkbox"),
            (f.checkOn = "" !== e.value),
            (f.optSelected = t.selected),
            ((e = b.createElement("input")).value = "t"),
            (e.type = "radio"),
            (f.radioValue = "t" === e.value);
        })();
      var ht,
        gt = C.expr.attrHandle;
      C.fn.extend({
        attr: function (e, t) {
          return F(this, C.attr, e, t, arguments.length > 1);
        },
        removeAttr: function (e) {
          return this.each(function () {
            C.removeAttr(this, e);
          });
        },
      }),
        C.extend({
          attr: function (e, t, n) {
            var i,
              r,
              o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
              return void 0 === e.getAttribute
                ? C.prop(e, t, n)
                : ((1 === o && C.isXMLDoc(e)) ||
                    (r =
                      C.attrHooks[t.toLowerCase()] ||
                      (C.expr.match.bool.test(t) ? ht : void 0)),
                  void 0 !== n
                    ? null === n
                      ? void C.removeAttr(e, t)
                      : r && "set" in r && void 0 !== (i = r.set(e, n, t))
                      ? i
                      : (e.setAttribute(t, n + ""), n)
                    : r && "get" in r && null !== (i = r.get(e, t))
                    ? i
                    : null == (i = C.find.attr(e, t))
                    ? void 0
                    : i);
          },
          attrHooks: {
            type: {
              set: function (e, t) {
                if (!f.radioValue && "radio" === t && S(e, "input")) {
                  var n = e.value;
                  return e.setAttribute("type", t), n && (e.value = n), t;
                }
              },
            },
          },
          removeAttr: function (e, t) {
            var n,
              i = 0,
              r = t && t.match(H);
            if (r && 1 === e.nodeType)
              for (; (n = r[i++]); ) e.removeAttribute(n);
          },
        }),
        (ht = {
          set: function (e, t, n) {
            return !1 === t ? C.removeAttr(e, n) : e.setAttribute(n, n), n;
          },
        }),
        C.each(C.expr.match.bool.source.match(/\w+/g), function (e, t) {
          var n = gt[t] || C.find.attr;
          gt[t] = function (e, t, i) {
            var r,
              o,
              s = t.toLowerCase();
            return (
              i ||
                ((o = gt[s]),
                (gt[s] = r),
                (r = null != n(e, t, i) ? s : null),
                (gt[s] = o)),
              r
            );
          };
        });
      var pt = /^(?:input|select|textarea|button)$/i,
        At = /^(?:a|area)$/i;

      function ft(e) {
        return (e.match(H) || []).join(" ");
      }

      function mt(e) {
        return (e.getAttribute && e.getAttribute("class")) || "";
      }

      function vt(e) {
        return Array.isArray(e)
          ? e
          : ("string" == typeof e && e.match(H)) || [];
      }
      C.fn.extend({
        prop: function (e, t) {
          return F(this, C.prop, e, t, arguments.length > 1);
        },
        removeProp: function (e) {
          return this.each(function () {
            delete this[C.propFix[e] || e];
          });
        },
      }),
        C.extend({
          prop: function (e, t, n) {
            var i,
              r,
              o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o)
              return (
                (1 === o && C.isXMLDoc(e)) ||
                  ((t = C.propFix[t] || t), (r = C.propHooks[t])),
                void 0 !== n
                  ? r && "set" in r && void 0 !== (i = r.set(e, n, t))
                    ? i
                    : (e[t] = n)
                  : r && "get" in r && null !== (i = r.get(e, t))
                  ? i
                  : e[t]
              );
          },
          propHooks: {
            tabIndex: {
              get: function (e) {
                var t = C.find.attr(e, "tabindex");
                return t
                  ? parseInt(t, 10)
                  : pt.test(e.nodeName) || (At.test(e.nodeName) && e.href)
                  ? 0
                  : -1;
              },
            },
          },
          propFix: {
            for: "htmlFor",
            class: "className",
          },
        }),
        f.optSelected ||
          (C.propHooks.selected = {
            get: function (e) {
              var t = e.parentNode;
              return t && t.parentNode && t.parentNode.selectedIndex, null;
            },
            set: function (e) {
              var t = e.parentNode;
              t &&
                (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex);
            },
          }),
        C.each(
          [
            "tabIndex",
            "readOnly",
            "maxLength",
            "cellSpacing",
            "cellPadding",
            "rowSpan",
            "colSpan",
            "useMap",
            "frameBorder",
            "contentEditable",
          ],
          function () {
            C.propFix[this.toLowerCase()] = this;
          }
        ),
        C.fn.extend({
          addClass: function (e) {
            var t,
              n,
              i,
              r,
              o,
              s,
              a,
              l = 0;
            if (m(e))
              return this.each(function (t) {
                C(this).addClass(e.call(this, t, mt(this)));
              });
            if ((t = vt(e)).length)
              for (; (n = this[l++]); )
                if (
                  ((r = mt(n)), (i = 1 === n.nodeType && " " + ft(r) + " "))
                ) {
                  for (s = 0; (o = t[s++]); )
                    i.indexOf(" " + o + " ") < 0 && (i += o + " ");
                  r !== (a = ft(i)) && n.setAttribute("class", a);
                }
            return this;
          },
          removeClass: function (e) {
            var t,
              n,
              i,
              r,
              o,
              s,
              a,
              l = 0;
            if (m(e))
              return this.each(function (t) {
                C(this).removeClass(e.call(this, t, mt(this)));
              });
            if (!arguments.length) return this.attr("class", "");
            if ((t = vt(e)).length)
              for (; (n = this[l++]); )
                if (
                  ((r = mt(n)), (i = 1 === n.nodeType && " " + ft(r) + " "))
                ) {
                  for (s = 0; (o = t[s++]); )
                    for (; i.indexOf(" " + o + " ") > -1; )
                      i = i.replace(" " + o + " ", " ");
                  r !== (a = ft(i)) && n.setAttribute("class", a);
                }
            return this;
          },
          toggleClass: function (e, t) {
            var n = typeof e,
              i = "string" === n || Array.isArray(e);
            return "boolean" == typeof t && i
              ? t
                ? this.addClass(e)
                : this.removeClass(e)
              : m(e)
              ? this.each(function (n) {
                  C(this).toggleClass(e.call(this, n, mt(this), t), t);
                })
              : this.each(function () {
                  var t, r, o, s;
                  if (i)
                    for (r = 0, o = C(this), s = vt(e); (t = s[r++]); )
                      o.hasClass(t) ? o.removeClass(t) : o.addClass(t);
                  else
                    (void 0 !== e && "boolean" !== n) ||
                      ((t = mt(this)) && Y.set(this, "__className__", t),
                      this.setAttribute &&
                        this.setAttribute(
                          "class",
                          t || !1 === e
                            ? ""
                            : Y.get(this, "__className__") || ""
                        ));
                });
          },
          hasClass: function (e) {
            var t,
              n,
              i = 0;
            for (t = " " + e + " "; (n = this[i++]); )
              if (1 === n.nodeType && (" " + ft(mt(n)) + " ").indexOf(t) > -1)
                return !0;
            return !1;
          },
        });
      var bt = /\r/g;
      C.fn.extend({
        val: function (e) {
          var t,
            n,
            i,
            r = this[0];
          return arguments.length
            ? ((i = m(e)),
              this.each(function (n) {
                var r;
                1 === this.nodeType &&
                  (null == (r = i ? e.call(this, n, C(this).val()) : e)
                    ? (r = "")
                    : "number" == typeof r
                    ? (r += "")
                    : Array.isArray(r) &&
                      (r = C.map(r, function (e) {
                        return null == e ? "" : e + "";
                      })),
                  ((t =
                    C.valHooks[this.type] ||
                    C.valHooks[this.nodeName.toLowerCase()]) &&
                    "set" in t &&
                    void 0 !== t.set(this, r, "value")) ||
                    (this.value = r));
              }))
            : r
            ? (t =
                C.valHooks[r.type] || C.valHooks[r.nodeName.toLowerCase()]) &&
              "get" in t &&
              void 0 !== (n = t.get(r, "value"))
              ? n
              : "string" == typeof (n = r.value)
              ? n.replace(bt, "")
              : null == n
              ? ""
              : n
            : void 0;
        },
      }),
        C.extend({
          valHooks: {
            option: {
              get: function (e) {
                var t = C.find.attr(e, "value");
                return null != t ? t : ft(C.text(e));
              },
            },
            select: {
              get: function (e) {
                var t,
                  n,
                  i,
                  r = e.options,
                  o = e.selectedIndex,
                  s = "select-one" === e.type,
                  a = s ? null : [],
                  l = s ? o + 1 : r.length;
                for (i = o < 0 ? l : s ? o : 0; i < l; i++)
                  if (
                    ((n = r[i]).selected || i === o) &&
                    !n.disabled &&
                    (!n.parentNode.disabled || !S(n.parentNode, "optgroup"))
                  ) {
                    if (((t = C(n).val()), s)) return t;
                    a.push(t);
                  }
                return a;
              },
              set: function (e, t) {
                for (
                  var n, i, r = e.options, o = C.makeArray(t), s = r.length;
                  s--;

                )
                  ((i = r[s]).selected =
                    C.inArray(C.valHooks.option.get(i), o) > -1) && (n = !0);
                return n || (e.selectedIndex = -1), o;
              },
            },
          },
        }),
        C.each(["radio", "checkbox"], function () {
          (C.valHooks[this] = {
            set: function (e, t) {
              if (Array.isArray(t))
                return (e.checked = C.inArray(C(e).val(), t) > -1);
            },
          }),
            f.checkOn ||
              (C.valHooks[this].get = function (e) {
                return null === e.getAttribute("value") ? "on" : e.value;
              });
        }),
        (f.focusin = "onfocusin" in n);
      var wt = /^(?:focusinfocus|focusoutblur)$/,
        yt = function (e) {
          e.stopPropagation();
        };
      C.extend(C.event, {
        trigger: function (e, t, i, r) {
          var o,
            s,
            a,
            l,
            c,
            d,
            u,
            h,
            p = [i || b],
            A = g.call(e, "type") ? e.type : e,
            f = g.call(e, "namespace") ? e.namespace.split(".") : [];
          if (
            ((s = h = a = i = i || b),
            3 !== i.nodeType &&
              8 !== i.nodeType &&
              !wt.test(A + C.event.triggered) &&
              (A.indexOf(".") > -1 &&
                ((f = A.split(".")), (A = f.shift()), f.sort()),
              (c = A.indexOf(":") < 0 && "on" + A),
              ((e = e[C.expando]
                ? e
                : new C.Event(A, "object" == typeof e && e)).isTrigger = r
                ? 2
                : 3),
              (e.namespace = f.join(".")),
              (e.rnamespace = e.namespace
                ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)")
                : null),
              (e.result = void 0),
              e.target || (e.target = i),
              (t = null == t ? [e] : C.makeArray(t, [e])),
              (u = C.event.special[A] || {}),
              r || !u.trigger || !1 !== u.trigger.apply(i, t)))
          ) {
            if (!r && !u.noBubble && !v(i)) {
              for (
                l = u.delegateType || A, wt.test(l + A) || (s = s.parentNode);
                s;
                s = s.parentNode
              )
                p.push(s), (a = s);
              a === (i.ownerDocument || b) &&
                p.push(a.defaultView || a.parentWindow || n);
            }
            for (o = 0; (s = p[o++]) && !e.isPropagationStopped(); )
              (h = s),
                (e.type = o > 1 ? l : u.bindType || A),
                (d =
                  (Y.get(s, "events") || Object.create(null))[e.type] &&
                  Y.get(s, "handle")) && d.apply(s, t),
                (d = c && s[c]) &&
                  d.apply &&
                  G(s) &&
                  ((e.result = d.apply(s, t)),
                  !1 === e.result && e.preventDefault());
            return (
              (e.type = A),
              r ||
                e.isDefaultPrevented() ||
                (u._default && !1 !== u._default.apply(p.pop(), t)) ||
                !G(i) ||
                (c &&
                  m(i[A]) &&
                  !v(i) &&
                  ((a = i[c]) && (i[c] = null),
                  (C.event.triggered = A),
                  e.isPropagationStopped() && h.addEventListener(A, yt),
                  i[A](),
                  e.isPropagationStopped() && h.removeEventListener(A, yt),
                  (C.event.triggered = void 0),
                  a && (i[c] = a))),
              e.result
            );
          }
        },
        simulate: function (e, t, n) {
          var i = C.extend(new C.Event(), n, {
            type: e,
            isSimulated: !0,
          });
          C.event.trigger(i, null, t);
        },
      }),
        C.fn.extend({
          trigger: function (e, t) {
            return this.each(function () {
              C.event.trigger(e, t, this);
            });
          },
          triggerHandler: function (e, t) {
            var n = this[0];
            if (n) return C.event.trigger(e, t, n, !0);
          },
        }),
        f.focusin ||
          C.each(
            {
              focus: "focusin",
              blur: "focusout",
            },
            function (e, t) {
              var n = function (e) {
                C.event.simulate(t, e.target, C.event.fix(e));
              };
              C.event.special[t] = {
                setup: function () {
                  var i = this.ownerDocument || this.document || this,
                    r = Y.access(i, t);
                  r || i.addEventListener(e, n, !0),
                    Y.access(i, t, (r || 0) + 1);
                },
                teardown: function () {
                  var i = this.ownerDocument || this.document || this,
                    r = Y.access(i, t) - 1;
                  r
                    ? Y.access(i, t, r)
                    : (i.removeEventListener(e, n, !0), Y.remove(i, t));
                },
              };
            }
          );
      var xt = n.location,
        Ct = {
          guid: Date.now(),
        },
        kt = /\?/;
      C.parseXML = function (e) {
        var t, i;
        if (!e || "string" != typeof e) return null;
        try {
          t = new n.DOMParser().parseFromString(e, "text/xml");
        } catch (e) {}
        return (
          (i = t && t.getElementsByTagName("parsererror")[0]),
          (t && !i) ||
            C.error(
              "Invalid XML: " +
                (i
                  ? C.map(i.childNodes, function (e) {
                      return e.textContent;
                    }).join("\n")
                  : e)
            ),
          t
        );
      };
      var _t = /\[\]$/,
        It = /\r?\n/g,
        Et = /^(?:submit|button|image|reset|file)$/i,
        Tt = /^(?:input|select|textarea|keygen)/i;

      function St(e, t, n, i) {
        var r;
        if (Array.isArray(t))
          C.each(t, function (t, r) {
            n || _t.test(e)
              ? i(e, r)
              : St(
                  e + "[" + ("object" == typeof r && null != r ? t : "") + "]",
                  r,
                  n,
                  i
                );
          });
        else if (n || "object" !== x(t)) i(e, t);
        else for (r in t) St(e + "[" + r + "]", t[r], n, i);
      }
      (C.param = function (e, t) {
        var n,
          i = [],
          r = function (e, t) {
            var n = m(t) ? t() : t;
            i[i.length] =
              encodeURIComponent(e) +
              "=" +
              encodeURIComponent(null == n ? "" : n);
          };
        if (null == e) return "";
        if (Array.isArray(e) || (e.jquery && !C.isPlainObject(e)))
          C.each(e, function () {
            r(this.name, this.value);
          });
        else for (n in e) St(n, e[n], t, r);
        return i.join("&");
      }),
        C.fn.extend({
          serialize: function () {
            return C.param(this.serializeArray());
          },
          serializeArray: function () {
            return this.map(function () {
              var e = C.prop(this, "elements");
              return e ? C.makeArray(e) : this;
            })
              .filter(function () {
                var e = this.type;
                return (
                  this.name &&
                  !C(this).is(":disabled") &&
                  Tt.test(this.nodeName) &&
                  !Et.test(e) &&
                  (this.checked || !Ae.test(e))
                );
              })
              .map(function (e, t) {
                var n = C(this).val();
                return null == n
                  ? null
                  : Array.isArray(n)
                  ? C.map(n, function (e) {
                      return {
                        name: t.name,
                        value: e.replace(It, "\r\n"),
                      };
                    })
                  : {
                      name: t.name,
                      value: n.replace(It, "\r\n"),
                    };
              })
              .get();
          },
        });
      var Lt = /%20/g,
        jt = /#.*$/,
        Rt = /([?&])_=[^&]*/,
        Bt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Mt = /^(?:GET|HEAD)$/,
        Dt = /^\/\//,
        Ot = {},
        Ht = {},
        Wt = "*/".concat("*"),
        Pt = b.createElement("a");

      function Nt(e) {
        return function (t, n) {
          "string" != typeof t && ((n = t), (t = "*"));
          var i,
            r = 0,
            o = t.toLowerCase().match(H) || [];
          if (m(n))
            for (; (i = o[r++]); )
              "+" === i[0]
                ? ((i = i.slice(1) || "*"), (e[i] = e[i] || []).unshift(n))
                : (e[i] = e[i] || []).push(n);
        };
      }

      function qt(e, t, n, i) {
        var r = {},
          o = e === Ht;

        function s(a) {
          var l;
          return (
            (r[a] = !0),
            C.each(e[a] || [], function (e, a) {
              var c = a(t, n, i);
              return "string" != typeof c || o || r[c]
                ? o
                  ? !(l = c)
                  : void 0
                : (t.dataTypes.unshift(c), s(c), !1);
            }),
            l
          );
        }
        return s(t.dataTypes[0]) || (!r["*"] && s("*"));
      }

      function zt(e, t) {
        var n,
          i,
          r = C.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((r[n] ? e : i || (i = {}))[n] = t[n]);
        return i && C.extend(!0, e, i), e;
      }
      (Pt.href = xt.href),
        C.extend({
          active: 0,
          lastModified: {},
          etag: {},
          ajaxSettings: {
            url: xt.href,
            type: "GET",
            isLocal:
              /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(
                xt.protocol
              ),
            global: !0,
            processData: !0,
            async: !0,
            contentType: "application/x-www-form-urlencoded; charset=UTF-8",
            accepts: {
              "*": Wt,
              text: "text/plain",
              html: "text/html",
              xml: "application/xml, text/xml",
              json: "application/json, text/javascript",
            },
            contents: {
              xml: /\bxml\b/,
              html: /\bhtml/,
              json: /\bjson\b/,
            },
            responseFields: {
              xml: "responseXML",
              text: "responseText",
              json: "responseJSON",
            },
            converters: {
              "* text": String,
              "text html": !0,
              "text json": JSON.parse,
              "text xml": C.parseXML,
            },
            flatOptions: {
              url: !0,
              context: !0,
            },
          },
          ajaxSetup: function (e, t) {
            return t ? zt(zt(e, C.ajaxSettings), t) : zt(C.ajaxSettings, e);
          },
          ajaxPrefilter: Nt(Ot),
          ajaxTransport: Nt(Ht),
          ajax: function (e, t) {
            "object" == typeof e && ((t = e), (e = void 0)), (t = t || {});
            var i,
              r,
              o,
              s,
              a,
              l,
              c,
              d,
              u,
              h,
              g = C.ajaxSetup({}, t),
              p = g.context || g,
              A = g.context && (p.nodeType || p.jquery) ? C(p) : C.event,
              f = C.Deferred(),
              m = C.Callbacks("once memory"),
              v = g.statusCode || {},
              w = {},
              y = {},
              x = "canceled",
              k = {
                readyState: 0,
                getResponseHeader: function (e) {
                  var t;
                  if (c) {
                    if (!s)
                      for (s = {}; (t = Bt.exec(o)); )
                        s[t[1].toLowerCase() + " "] = (
                          s[t[1].toLowerCase() + " "] || []
                        ).concat(t[2]);
                    t = s[e.toLowerCase() + " "];
                  }
                  return null == t ? null : t.join(", ");
                },
                getAllResponseHeaders: function () {
                  return c ? o : null;
                },
                setRequestHeader: function (e, t) {
                  return (
                    null == c &&
                      ((e = y[e.toLowerCase()] = y[e.toLowerCase()] || e),
                      (w[e] = t)),
                    this
                  );
                },
                overrideMimeType: function (e) {
                  return null == c && (g.mimeType = e), this;
                },
                statusCode: function (e) {
                  var t;
                  if (e)
                    if (c) k.always(e[k.status]);
                    else for (t in e) v[t] = [v[t], e[t]];
                  return this;
                },
                abort: function (e) {
                  var t = e || x;
                  return i && i.abort(t), _(0, t), this;
                },
              };
            if (
              (f.promise(k),
              (g.url = ((e || g.url || xt.href) + "").replace(
                Dt,
                xt.protocol + "//"
              )),
              (g.type = t.method || t.type || g.method || g.type),
              (g.dataTypes = (g.dataType || "*").toLowerCase().match(H) || [
                "",
              ]),
              null == g.crossDomain)
            ) {
              l = b.createElement("a");
              try {
                (l.href = g.url),
                  (l.href = l.href),
                  (g.crossDomain =
                    Pt.protocol + "//" + Pt.host != l.protocol + "//" + l.host);
              } catch (e) {
                g.crossDomain = !0;
              }
            }
            if (
              (g.data &&
                g.processData &&
                "string" != typeof g.data &&
                (g.data = C.param(g.data, g.traditional)),
              qt(Ot, g, t, k),
              c)
            )
              return k;
            for (u in ((d = C.event && g.global) &&
              0 == C.active++ &&
              C.event.trigger("ajaxStart"),
            (g.type = g.type.toUpperCase()),
            (g.hasContent = !Mt.test(g.type)),
            (r = g.url.replace(jt, "")),
            g.hasContent
              ? g.data &&
                g.processData &&
                0 ===
                  (g.contentType || "").indexOf(
                    "application/x-www-form-urlencoded"
                  ) &&
                (g.data = g.data.replace(Lt, "+"))
              : ((h = g.url.slice(r.length)),
                g.data &&
                  (g.processData || "string" == typeof g.data) &&
                  ((r += (kt.test(r) ? "&" : "?") + g.data), delete g.data),
                !1 === g.cache &&
                  ((r = r.replace(Rt, "$1")),
                  (h = (kt.test(r) ? "&" : "?") + "_=" + Ct.guid++ + h)),
                (g.url = r + h)),
            g.ifModified &&
              (C.lastModified[r] &&
                k.setRequestHeader("If-Modified-Since", C.lastModified[r]),
              C.etag[r] && k.setRequestHeader("If-None-Match", C.etag[r])),
            ((g.data && g.hasContent && !1 !== g.contentType) ||
              t.contentType) &&
              k.setRequestHeader("Content-Type", g.contentType),
            k.setRequestHeader(
              "Accept",
              g.dataTypes[0] && g.accepts[g.dataTypes[0]]
                ? g.accepts[g.dataTypes[0]] +
                    ("*" !== g.dataTypes[0] ? ", " + Wt + "; q=0.01" : "")
                : g.accepts["*"]
            ),
            g.headers))
              k.setRequestHeader(u, g.headers[u]);
            if (g.beforeSend && (!1 === g.beforeSend.call(p, k, g) || c))
              return k.abort();
            if (
              ((x = "abort"),
              m.add(g.complete),
              k.done(g.success),
              k.fail(g.error),
              (i = qt(Ht, g, t, k)))
            ) {
              if (((k.readyState = 1), d && A.trigger("ajaxSend", [k, g]), c))
                return k;
              g.async &&
                g.timeout > 0 &&
                (a = n.setTimeout(function () {
                  k.abort("timeout");
                }, g.timeout));
              try {
                (c = !1), i.send(w, _);
              } catch (e) {
                if (c) throw e;
                _(-1, e);
              }
            } else _(-1, "No Transport");

            function _(e, t, s, l) {
              var u,
                h,
                b,
                w,
                y,
                x = t;
              c ||
                ((c = !0),
                a && n.clearTimeout(a),
                (i = void 0),
                (o = l || ""),
                (k.readyState = e > 0 ? 4 : 0),
                (u = (e >= 200 && e < 300) || 304 === e),
                s &&
                  (w = (function (e, t, n) {
                    for (
                      var i, r, o, s, a = e.contents, l = e.dataTypes;
                      "*" === l[0];

                    )
                      l.shift(),
                        void 0 === i &&
                          (i =
                            e.mimeType || t.getResponseHeader("Content-Type"));
                    if (i)
                      for (r in a)
                        if (a[r] && a[r].test(i)) {
                          l.unshift(r);
                          break;
                        }
                    if (l[0] in n) o = l[0];
                    else {
                      for (r in n) {
                        if (!l[0] || e.converters[r + " " + l[0]]) {
                          o = r;
                          break;
                        }
                        s || (s = r);
                      }
                      o = o || s;
                    }
                    if (o) return o !== l[0] && l.unshift(o), n[o];
                  })(g, k, s)),
                !u &&
                  C.inArray("script", g.dataTypes) > -1 &&
                  C.inArray("json", g.dataTypes) < 0 &&
                  (g.converters["text script"] = function () {}),
                (w = (function (e, t, n, i) {
                  var r,
                    o,
                    s,
                    a,
                    l,
                    c = {},
                    d = e.dataTypes.slice();
                  if (d[1])
                    for (s in e.converters)
                      c[s.toLowerCase()] = e.converters[s];
                  for (o = d.shift(); o; )
                    if (
                      (e.responseFields[o] && (n[e.responseFields[o]] = t),
                      !l &&
                        i &&
                        e.dataFilter &&
                        (t = e.dataFilter(t, e.dataType)),
                      (l = o),
                      (o = d.shift()))
                    )
                      if ("*" === o) o = l;
                      else if ("*" !== l && l !== o) {
                        if (!(s = c[l + " " + o] || c["* " + o]))
                          for (r in c)
                            if (
                              (a = r.split(" "))[1] === o &&
                              (s = c[l + " " + a[0]] || c["* " + a[0]])
                            ) {
                              !0 === s
                                ? (s = c[r])
                                : !0 !== c[r] && ((o = a[0]), d.unshift(a[1]));
                              break;
                            }
                        if (!0 !== s)
                          if (s && e.throws) t = s(t);
                          else
                            try {
                              t = s(t);
                            } catch (e) {
                              return {
                                state: "parsererror",
                                error: s
                                  ? e
                                  : "No conversion from " + l + " to " + o,
                              };
                            }
                      }
                  return {
                    state: "success",
                    data: t,
                  };
                })(g, w, k, u)),
                u
                  ? (g.ifModified &&
                      ((y = k.getResponseHeader("Last-Modified")) &&
                        (C.lastModified[r] = y),
                      (y = k.getResponseHeader("etag")) && (C.etag[r] = y)),
                    204 === e || "HEAD" === g.type
                      ? (x = "nocontent")
                      : 304 === e
                      ? (x = "notmodified")
                      : ((x = w.state), (h = w.data), (u = !(b = w.error))))
                  : ((b = x), (!e && x) || ((x = "error"), e < 0 && (e = 0))),
                (k.status = e),
                (k.statusText = (t || x) + ""),
                u ? f.resolveWith(p, [h, x, k]) : f.rejectWith(p, [k, x, b]),
                k.statusCode(v),
                (v = void 0),
                d &&
                  A.trigger(u ? "ajaxSuccess" : "ajaxError", [k, g, u ? h : b]),
                m.fireWith(p, [k, x]),
                d &&
                  (A.trigger("ajaxComplete", [k, g]),
                  --C.active || C.event.trigger("ajaxStop")));
            }
            return k;
          },
          getJSON: function (e, t, n) {
            return C.get(e, t, n, "json");
          },
          getScript: function (e, t) {
            return C.get(e, void 0, t, "script");
          },
        }),
        C.each(["get", "post"], function (e, t) {
          C[t] = function (e, n, i, r) {
            return (
              m(n) && ((r = r || i), (i = n), (n = void 0)),
              C.ajax(
                C.extend(
                  {
                    url: e,
                    type: t,
                    dataType: r,
                    data: n,
                    success: i,
                  },
                  C.isPlainObject(e) && e
                )
              )
            );
          };
        }),
        C.ajaxPrefilter(function (e) {
          var t;
          for (t in e.headers)
            "content-type" === t.toLowerCase() &&
              (e.contentType = e.headers[t] || "");
        }),
        (C._evalUrl = function (e, t, n) {
          return C.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
              "text script": function () {},
            },
            dataFilter: function (e) {
              C.globalEval(e, t, n);
            },
          });
        }),
        C.fn.extend({
          wrapAll: function (e) {
            var t;
            return (
              this[0] &&
                (m(e) && (e = e.call(this[0])),
                (t = C(e, this[0].ownerDocument).eq(0).clone(!0)),
                this[0].parentNode && t.insertBefore(this[0]),
                t
                  .map(function () {
                    for (var e = this; e.firstElementChild; )
                      e = e.firstElementChild;
                    return e;
                  })
                  .append(this)),
              this
            );
          },
          wrapInner: function (e) {
            return m(e)
              ? this.each(function (t) {
                  C(this).wrapInner(e.call(this, t));
                })
              : this.each(function () {
                  var t = C(this),
                    n = t.contents();
                  n.length ? n.wrapAll(e) : t.append(e);
                });
          },
          wrap: function (e) {
            var t = m(e);
            return this.each(function (n) {
              C(this).wrapAll(t ? e.call(this, n) : e);
            });
          },
          unwrap: function (e) {
            return (
              this.parent(e)
                .not("body")
                .each(function () {
                  C(this).replaceWith(this.childNodes);
                }),
              this
            );
          },
        }),
        (C.expr.pseudos.hidden = function (e) {
          return !C.expr.pseudos.visible(e);
        }),
        (C.expr.pseudos.visible = function (e) {
          return !!(
            e.offsetWidth ||
            e.offsetHeight ||
            e.getClientRects().length
          );
        }),
        (C.ajaxSettings.xhr = function () {
          try {
            return new n.XMLHttpRequest();
          } catch (e) {}
        });
      var Vt = {
          0: 200,
          1223: 204,
        },
        Ft = C.ajaxSettings.xhr();
      (f.cors = !!Ft && "withCredentials" in Ft),
        (f.ajax = Ft = !!Ft),
        C.ajaxTransport(function (e) {
          var t, i;
          if (f.cors || (Ft && !e.crossDomain))
            return {
              send: function (r, o) {
                var s,
                  a = e.xhr();
                if (
                  (a.open(e.type, e.url, e.async, e.username, e.password),
                  e.xhrFields)
                )
                  for (s in e.xhrFields) a[s] = e.xhrFields[s];
                for (s in (e.mimeType &&
                  a.overrideMimeType &&
                  a.overrideMimeType(e.mimeType),
                e.crossDomain ||
                  r["X-Requested-With"] ||
                  (r["X-Requested-With"] = "XMLHttpRequest"),
                r))
                  a.setRequestHeader(s, r[s]);
                (t = function (e) {
                  return function () {
                    t &&
                      ((t =
                        i =
                        a.onload =
                        a.onerror =
                        a.onabort =
                        a.ontimeout =
                        a.onreadystatechange =
                          null),
                      "abort" === e
                        ? a.abort()
                        : "error" === e
                        ? "number" != typeof a.status
                          ? o(0, "error")
                          : o(a.status, a.statusText)
                        : o(
                            Vt[a.status] || a.status,
                            a.statusText,
                            "text" !== (a.responseType || "text") ||
                              "string" != typeof a.responseText
                              ? {
                                  binary: a.response,
                                }
                              : {
                                  text: a.responseText,
                                },
                            a.getAllResponseHeaders()
                          ));
                  };
                }),
                  (a.onload = t()),
                  (i = a.onerror = a.ontimeout = t("error")),
                  void 0 !== a.onabort
                    ? (a.onabort = i)
                    : (a.onreadystatechange = function () {
                        4 === a.readyState &&
                          n.setTimeout(function () {
                            t && i();
                          });
                      }),
                  (t = t("abort"));
                try {
                  a.send((e.hasContent && e.data) || null);
                } catch (e) {
                  if (t) throw e;
                }
              },
              abort: function () {
                t && t();
              },
            };
        }),
        C.ajaxPrefilter(function (e) {
          e.crossDomain && (e.contents.script = !1);
        }),
        C.ajaxSetup({
          accepts: {
            script:
              "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript",
          },
          contents: {
            script: /\b(?:java|ecma)script\b/,
          },
          converters: {
            "text script": function (e) {
              return C.globalEval(e), e;
            },
          },
        }),
        C.ajaxPrefilter("script", function (e) {
          void 0 === e.cache && (e.cache = !1),
            e.crossDomain && (e.type = "GET");
        }),
        C.ajaxTransport("script", function (e) {
          var t, n;
          if (e.crossDomain || e.scriptAttrs)
            return {
              send: function (i, r) {
                (t = C("<script>")
                  .attr(e.scriptAttrs || {})
                  .prop({
                    charset: e.scriptCharset,
                    src: e.url,
                  })
                  .on(
                    "load error",
                    (n = function (e) {
                      t.remove(),
                        (n = null),
                        e && r("error" === e.type ? 404 : 200, e.type);
                    })
                  )),
                  b.head.appendChild(t[0]);
              },
              abort: function () {
                n && n();
              },
            };
        });
      var Qt,
        Ut = [],
        Kt = /(=)\?(?=&|$)|\?\?/;
      C.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function () {
          var e = Ut.pop() || C.expando + "_" + Ct.guid++;
          return (this[e] = !0), e;
        },
      }),
        C.ajaxPrefilter("json jsonp", function (e, t, i) {
          var r,
            o,
            s,
            a =
              !1 !== e.jsonp &&
              (Kt.test(e.url)
                ? "url"
                : "string" == typeof e.data &&
                  0 ===
                    (e.contentType || "").indexOf(
                      "application/x-www-form-urlencoded"
                    ) &&
                  Kt.test(e.data) &&
                  "data");
          if (a || "jsonp" === e.dataTypes[0])
            return (
              (r = e.jsonpCallback =
                m(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback),
              a
                ? (e[a] = e[a].replace(Kt, "$1" + r))
                : !1 !== e.jsonp &&
                  (e.url += (kt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r),
              (e.converters["script json"] = function () {
                return s || C.error(r + " was not called"), s[0];
              }),
              (e.dataTypes[0] = "json"),
              (o = n[r]),
              (n[r] = function () {
                s = arguments;
              }),
              i.always(function () {
                void 0 === o ? C(n).removeProp(r) : (n[r] = o),
                  e[r] && ((e.jsonpCallback = t.jsonpCallback), Ut.push(r)),
                  s && m(o) && o(s[0]),
                  (s = o = void 0);
              }),
              "script"
            );
        }),
        (f.createHTMLDocument =
          (((Qt = b.implementation.createHTMLDocument("").body).innerHTML =
            "<form></form><form></form>"),
          2 === Qt.childNodes.length)),
        (C.parseHTML = function (e, t, n) {
          return "string" != typeof e
            ? []
            : ("boolean" == typeof t && ((n = t), (t = !1)),
              t ||
                (f.createHTMLDocument
                  ? (((i = (t =
                      b.implementation.createHTMLDocument("")).createElement(
                      "base"
                    )).href = b.location.href),
                    t.head.appendChild(i))
                  : (t = b)),
              (o = !n && []),
              (r = L.exec(e))
                ? [t.createElement(r[1])]
                : ((r = xe([e], t, o)),
                  o && o.length && C(o).remove(),
                  C.merge([], r.childNodes)));
          var i, r, o;
        }),
        (C.fn.load = function (e, t, n) {
          var i,
            r,
            o,
            s = this,
            a = e.indexOf(" ");
          return (
            a > -1 && ((i = ft(e.slice(a))), (e = e.slice(0, a))),
            m(t)
              ? ((n = t), (t = void 0))
              : t && "object" == typeof t && (r = "POST"),
            s.length > 0 &&
              C.ajax({
                url: e,
                type: r || "GET",
                dataType: "html",
                data: t,
              })
                .done(function (e) {
                  (o = arguments),
                    s.html(i ? C("<div>").append(C.parseHTML(e)).find(i) : e);
                })
                .always(
                  n &&
                    function (e, t) {
                      s.each(function () {
                        n.apply(this, o || [e.responseText, t, e]);
                      });
                    }
                ),
            this
          );
        }),
        (C.expr.pseudos.animated = function (e) {
          return C.grep(C.timers, function (t) {
            return e === t.elem;
          }).length;
        }),
        (C.offset = {
          setOffset: function (e, t, n) {
            var i,
              r,
              o,
              s,
              a,
              l,
              c = C.css(e, "position"),
              d = C(e),
              u = {};
            "static" === c && (e.style.position = "relative"),
              (a = d.offset()),
              (o = C.css(e, "top")),
              (l = C.css(e, "left")),
              ("absolute" === c || "fixed" === c) &&
              (o + l).indexOf("auto") > -1
                ? ((s = (i = d.position()).top), (r = i.left))
                : ((s = parseFloat(o) || 0), (r = parseFloat(l) || 0)),
              m(t) && (t = t.call(e, n, C.extend({}, a))),
              null != t.top && (u.top = t.top - a.top + s),
              null != t.left && (u.left = t.left - a.left + r),
              "using" in t ? t.using.call(e, u) : d.css(u);
          },
        }),
        C.fn.extend({
          offset: function (e) {
            if (arguments.length)
              return void 0 === e
                ? this
                : this.each(function (t) {
                    C.offset.setOffset(this, e, t);
                  });
            var t,
              n,
              i = this[0];
            return i
              ? i.getClientRects().length
                ? ((t = i.getBoundingClientRect()),
                  (n = i.ownerDocument.defaultView),
                  {
                    top: t.top + n.pageYOffset,
                    left: t.left + n.pageXOffset,
                  })
                : {
                    top: 0,
                    left: 0,
                  }
              : void 0;
          },
          position: function () {
            if (this[0]) {
              var e,
                t,
                n,
                i = this[0],
                r = {
                  top: 0,
                  left: 0,
                };
              if ("fixed" === C.css(i, "position"))
                t = i.getBoundingClientRect();
              else {
                for (
                  t = this.offset(),
                    n = i.ownerDocument,
                    e = i.offsetParent || n.documentElement;
                  e &&
                  (e === n.body || e === n.documentElement) &&
                  "static" === C.css(e, "position");

                )
                  e = e.parentNode;
                e &&
                  e !== i &&
                  1 === e.nodeType &&
                  (((r = C(e).offset()).top += C.css(e, "borderTopWidth", !0)),
                  (r.left += C.css(e, "borderLeftWidth", !0)));
              }
              return {
                top: t.top - r.top - C.css(i, "marginTop", !0),
                left: t.left - r.left - C.css(i, "marginLeft", !0),
              };
            }
          },
          offsetParent: function () {
            return this.map(function () {
              for (
                var e = this.offsetParent;
                e && "static" === C.css(e, "position");

              )
                e = e.offsetParent;
              return e || oe;
            });
          },
        }),
        C.each(
          {
            scrollLeft: "pageXOffset",
            scrollTop: "pageYOffset",
          },
          function (e, t) {
            var n = "pageYOffset" === t;
            C.fn[e] = function (i) {
              return F(
                this,
                function (e, i, r) {
                  var o;
                  if (
                    (v(e) ? (o = e) : 9 === e.nodeType && (o = e.defaultView),
                    void 0 === r)
                  )
                    return o ? o[t] : e[i];
                  o
                    ? o.scrollTo(n ? o.pageXOffset : r, n ? r : o.pageYOffset)
                    : (e[i] = r);
                },
                e,
                i,
                arguments.length
              );
            };
          }
        ),
        C.each(["top", "left"], function (e, t) {
          C.cssHooks[t] = Fe(f.pixelPosition, function (e, n) {
            if (n)
              return (n = Ve(e, t)), Pe.test(n) ? C(e).position()[t] + "px" : n;
          });
        }),
        C.each(
          {
            Height: "height",
            Width: "width",
          },
          function (e, t) {
            C.each(
              {
                padding: "inner" + e,
                content: t,
                "": "outer" + e,
              },
              function (n, i) {
                C.fn[i] = function (r, o) {
                  var s = arguments.length && (n || "boolean" != typeof r),
                    a = n || (!0 === r || !0 === o ? "margin" : "border");
                  return F(
                    this,
                    function (t, n, r) {
                      var o;
                      return v(t)
                        ? 0 === i.indexOf("outer")
                          ? t["inner" + e]
                          : t.document.documentElement["client" + e]
                        : 9 === t.nodeType
                        ? ((o = t.documentElement),
                          Math.max(
                            t.body["scroll" + e],
                            o["scroll" + e],
                            t.body["offset" + e],
                            o["offset" + e],
                            o["client" + e]
                          ))
                        : void 0 === r
                        ? C.css(t, n, a)
                        : C.style(t, n, r, a);
                    },
                    t,
                    s ? r : void 0,
                    s
                  );
                };
              }
            );
          }
        ),
        C.each(
          [
            "ajaxStart",
            "ajaxStop",
            "ajaxComplete",
            "ajaxError",
            "ajaxSuccess",
            "ajaxSend",
          ],
          function (e, t) {
            C.fn[t] = function (e) {
              return this.on(t, e);
            };
          }
        ),
        C.fn.extend({
          bind: function (e, t, n) {
            return this.on(e, null, t, n);
          },
          unbind: function (e, t) {
            return this.off(e, null, t);
          },
          delegate: function (e, t, n, i) {
            return this.on(t, e, n, i);
          },
          undelegate: function (e, t, n) {
            return 1 === arguments.length
              ? this.off(e, "**")
              : this.off(t, e || "**", n);
          },
          hover: function (e, t) {
            return this.mouseenter(e).mouseleave(t || e);
          },
        }),
        C.each(
          "blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(
            " "
          ),
          function (e, t) {
            C.fn[t] = function (e, n) {
              return arguments.length > 0
                ? this.on(t, null, e, n)
                : this.trigger(t);
            };
          }
        );
      var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
      (C.proxy = function (e, t) {
        var n, i, r;
        if (("string" == typeof t && ((n = e[t]), (t = e), (e = n)), m(e)))
          return (
            (i = a.call(arguments, 2)),
            ((r = function () {
              return e.apply(t || this, i.concat(a.call(arguments)));
            }).guid = e.guid =
              e.guid || C.guid++),
            r
          );
      }),
        (C.holdReady = function (e) {
          e ? C.readyWait++ : C.ready(!0);
        }),
        (C.isArray = Array.isArray),
        (C.parseJSON = JSON.parse),
        (C.nodeName = S),
        (C.isFunction = m),
        (C.isWindow = v),
        (C.camelCase = X),
        (C.type = x),
        (C.now = Date.now),
        (C.isNumeric = function (e) {
          var t = C.type(e);
          return (
            ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
          );
        }),
        (C.trim = function (e) {
          return null == e ? "" : (e + "").replace(Xt, "");
        }),
        void 0 ===
          (i = function () {
            return C;
          }.apply(t, [])) || (e.exports = i);
      var Gt = n.jQuery,
        Jt = n.$;
      return (
        (C.noConflict = function (e) {
          return (
            n.$ === C && (n.$ = Jt), e && n.jQuery === C && (n.jQuery = Gt), C
          );
        }),
        void 0 === r && (n.jQuery = n.$ = C),
        C
      );
    });
  },
  function (e, t) {
    e.exports = function (e) {
      return (
        e.webpackPolyfill ||
          ((e.deprecate = function () {}),
          (e.paths = []),
          e.children || (e.children = []),
          Object.defineProperty(e, "loaded", {
            enumerable: !0,
            get: function () {
              return e.l;
            },
          }),
          Object.defineProperty(e, "id", {
            enumerable: !0,
            get: function () {
              return e.i;
            },
          }),
          (e.webpackPolyfill = 1)),
        e
      );
    };
  },
  function (e, t) {
    e.exports = function () {
      throw new Error("define cannot be used indirect");
    };
  },
  function (e, t) {
    e.exports =
      "data:image/gif;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAxNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMTQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxyZWN0IHg9Ijc4IiB5PSIxNzgiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSI3OCIgeT0iMTgwIiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iNzgiIHk9IjE4MiIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KCTxyZWN0IHg9IjEiIHk9IjQiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIxIiB5PSI2IiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iMSIgeT0iOCIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAxNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMTQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxyZWN0IHg9Ijc4IiB5PSIxNzgiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSI3OCIgeT0iMTgwIiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iNzgiIHk9IjE4MiIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KCTxyZWN0IHg9IjEiIHk9IjMiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIxIiB5PSI2IiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iMSIgeT0iOSIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAxNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMTQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxyZWN0IHg9Ijc4IiB5PSIxNzgiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSI3OCIgeT0iMTgwIiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iNzgiIHk9IjE4MiIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KCTxyZWN0IHg9IjEiIHk9IjIiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIxIiB5PSI2IiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iMSIgeT0iMTAiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE4LjEuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAyMCAxNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjAgMTQiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8Zz4KCTxyZWN0IHg9Ijc4IiB5PSIxNzgiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSI3OCIgeT0iMTgwIiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iNzgiIHk9IjE4MiIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KCTxyZWN0IHg9IjE1OSIgeT0iMTc1IiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iMTU5IiB5PSIxODAiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIxNTkiIHk9IjE4NSIgZmlsbD0iIzg5ODk4OSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEiLz4KPC9nPgo8Zz4KCTxyZWN0IHg9IjEiIHk9IjEiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+Cgk8cmVjdCB4PSIxIiB5PSI2IiBmaWxsPSIjODk4OTg5IiB3aWR0aD0iMTgiIGhlaWdodD0iMSIvPgo8L2c+CjxnPgoJPHJlY3QgeD0iMSIgeT0iMTEiIGZpbGw9IiM4OTg5ODkiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjQ2cHgiIGhlaWdodD0iNDFweCIgdmlld0JveD0iMCAwIDQ2IDQxIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zOnNrZXRjaD0iaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoL25zIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggMy4yLjIgKDk5ODMpIC0gaHR0cDovL3d3dy5ib2hlbWlhbmNvZGluZy5jb20vc2tldGNoIC0tPgogICAgPHRpdGxlPkdyb3VwPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ikljb25zLS0tTW9kdWxlLTAyIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4KICAgICAgICA8ZyBpZD0iTW9kdWxlcy1wcm9wZXJ0aWVzLSIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTkyMC4wMDAwMDAsIC04NTYuMDAwMDAwKSIgc3Ryb2tlPSIjQkZDN0M5Ij4KICAgICAgICAgICAgPGcgaWQ9IlJlY3RhbmdsZS0xMTMtKy1SZWN0YW5nbGUtMTE2LSstR3JvdXAiIHNrZXRjaDp0eXBlPSJNU0xheWVyR3JvdXAiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkwNS4wMDAwMDAsIDgzOC4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJHcm91cCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYuMDAwMDAwLCAxOC4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTUuODg4ODg4OSwwLjQxIEwwLjY3NzgwMDYzOCwxNS43MTc4ODYxIiBpZD0iTGluZSIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0wLjQwNzQwNzQwNywwLjQxIEwxNS42MTg0OTU3LDE1LjcxNzg4NjEiIGlkPSJMaW5lIiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IlJlY3RhbmdsZS02OSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE2LjI5NjI5NjMiIGhlaWdodD0iMTYuNCI+PC9yZWN0PgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS41OTI1OTI2LDEuMjMgTDQzLjU5MjU5MjYsMS4yMyIgaWQ9IkxpbmUtMyIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS41OTI1OTI2LDguNjEgTDQzLjU5MjU5MjYsOC42MSIgaWQ9IkxpbmUtNCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS41OTI1OTI2LDE1Ljk5IEw0My41OTI1OTI2LDE1Ljk5IiBpZD0iTGluZS01IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNDA3NDA3NDA3LDIzLjM3IEw0My41OTI1OTI2LDIzLjM3IiBpZD0iTGluZS02IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNDA3NDA3NDA3LDMwLjc1IEw0My41OTI1OTI2LDMwLjc1IiBpZD0iTGluZS03IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTAuNDA3NDA3NDA3LDM5Ljc3IEw0My41OTI1OTI2LDM5Ljc3IiBpZD0iTGluZS04IiBzdHJva2UtbGluZWNhcD0ic3F1YXJlIj48L3BhdGg+CiAgICAgICAgICAgICAgICA8L2c+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==";
  },
  function (e, t) {
    e.exports =
      "data:image/png;base64, ";
  },
  function (e, t, n) {
    "use strict";
    var i, r;
    (i = [n(6), n(7), n(27)]),
      void 0 ===
        (r = function (e, t, n) {
          return (function (e, t, n) {
            var i = function (t, n) {
              return e.js_beautify(t, n);
            };
            return (
              (i.js = e.js_beautify),
              (i.css = t.css_beautify),
              (i.html = n.html_beautify),
              (i.js_beautify = e.js_beautify),
              (i.css_beautify = t.css_beautify),
              (i.html_beautify = n.html_beautify),
              i
            );
          })(e, t, n);
        }.apply(t, i)) || (e.exports = r);
  },
  function (e, t, n) {
    /*!
     * clipboard.js v2.0.4
     * https://zenorocha.github.io/clipboard.js
     *
     * Licensed MIT © Zeno Rocha
     */
    e.exports = (function (e) {
      var t = {};

      function n(i) {
        if (t[i]) return t[i].exports;
        var r = (t[i] = {
          i: i,
          l: !1,
          exports: {},
        });
        return e[i].call(r.exports, r, r.exports, n), (r.l = !0), r.exports;
      }
      return (
        (n.m = e),
        (n.c = t),
        (n.d = function (e, t, i) {
          n.o(e, t) ||
            Object.defineProperty(e, t, {
              enumerable: !0,
              get: i,
            });
        }),
        (n.r = function (e) {
          "undefined" != typeof Symbol &&
            Symbol.toStringTag &&
            Object.defineProperty(e, Symbol.toStringTag, {
              value: "Module",
            }),
            Object.defineProperty(e, "__esModule", {
              value: !0,
            });
        }),
        (n.t = function (e, t) {
          if ((1 & t && (e = n(e)), 8 & t)) return e;
          if (4 & t && "object" == typeof e && e && e.__esModule) return e;
          var i = Object.create(null);
          if (
            (n.r(i),
            Object.defineProperty(i, "default", {
              enumerable: !0,
              value: e,
            }),
            2 & t && "string" != typeof e)
          )
            for (var r in e)
              n.d(
                i,
                r,
                function (t) {
                  return e[t];
                }.bind(null, r)
              );
          return i;
        }),
        (n.n = function (e) {
          var t =
            e && e.__esModule
              ? function () {
                  return e.default;
                }
              : function () {
                  return e;
                };
          return n.d(t, "a", t), t;
        }),
        (n.o = function (e, t) {
          return Object.prototype.hasOwnProperty.call(e, t);
        }),
        (n.p = ""),
        n((n.s = 0))
      );
    })([
      function (e, t, n) {
        "use strict";
        var i =
            "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
              ? function (e) {
                  return typeof e;
                }
              : function (e) {
                  return e &&
                    "function" == typeof Symbol &&
                    e.constructor === Symbol &&
                    e !== Symbol.prototype
                    ? "symbol"
                    : typeof e;
                },
          r = (function () {
            function e(e, t) {
              for (var n = 0; n < t.length; n++) {
                var i = t[n];
                (i.enumerable = i.enumerable || !1),
                  (i.configurable = !0),
                  "value" in i && (i.writable = !0),
                  Object.defineProperty(e, i.key, i);
              }
            }
            return function (t, n, i) {
              return n && e(t.prototype, n), i && e(t, i), t;
            };
          })(),
          o = l(n(1)),
          s = l(n(3)),
          a = l(n(4));

        function l(e) {
          return e && e.__esModule
            ? e
            : {
                default: e,
              };
        }
        var c = (function (e) {
          function t(e, n) {
            !(function (e, t) {
              if (!(e instanceof t))
                throw new TypeError("Cannot call a class as a function");
            })(this, t);
            var i = (function (e, t) {
              if (!e)
                throw new ReferenceError(
                  "this hasn't been initialised - super() hasn't been called"
                );
              return !t || ("object" != typeof t && "function" != typeof t)
                ? e
                : t;
            })(this, (t.__proto__ || Object.getPrototypeOf(t)).call(this));
            return i.resolveOptions(n), i.listenClick(e), i;
          }
          return (
            (function (e, t) {
              if ("function" != typeof t && null !== t)
                throw new TypeError(
                  "Super expression must either be null or a function, not " +
                    typeof t
                );
              (e.prototype = Object.create(t && t.prototype, {
                constructor: {
                  value: e,
                  enumerable: !1,
                  writable: !0,
                  configurable: !0,
                },
              })),
                t &&
                  (Object.setPrototypeOf
                    ? Object.setPrototypeOf(e, t)
                    : (e.__proto__ = t));
            })(t, s.default),
            r(
              t,
              [
                {
                  key: "resolveOptions",
                  value: function () {
                    var e =
                      0 < arguments.length && void 0 !== arguments[0]
                        ? arguments[0]
                        : {};
                    (this.action =
                      "function" == typeof e.action
                        ? e.action
                        : this.defaultAction),
                      (this.target =
                        "function" == typeof e.target
                          ? e.target
                          : this.defaultTarget),
                      (this.text =
                        "function" == typeof e.text
                          ? e.text
                          : this.defaultText),
                      (this.container =
                        "object" === i(e.container)
                          ? e.container
                          : document.body);
                  },
                },
                {
                  key: "listenClick",
                  value: function (e) {
                    var t = this;
                    this.listener = (0, a.default)(e, "click", function (e) {
                      return t.onClick(e);
                    });
                  },
                },
                {
                  key: "onClick",
                  value: function (e) {
                    var t = e.delegateTarget || e.currentTarget;
                    this.clipboardAction && (this.clipboardAction = null),
                      (this.clipboardAction = new o.default({
                        action: this.action(t),
                        target: this.target(t),
                        text: this.text(t),
                        container: this.container,
                        trigger: t,
                        emitter: this,
                      }));
                  },
                },
                {
                  key: "defaultAction",
                  value: function (e) {
                    return d("action", e);
                  },
                },
                {
                  key: "defaultTarget",
                  value: function (e) {
                    var t = d("target", e);
                    if (t) return document.querySelector(t);
                  },
                },
                {
                  key: "defaultText",
                  value: function (e) {
                    return d("text", e);
                  },
                },
                {
                  key: "destroy",
                  value: function () {
                    this.listener.destroy(),
                      this.clipboardAction &&
                        (this.clipboardAction.destroy(),
                        (this.clipboardAction = null));
                  },
                },
              ],
              [
                {
                  key: "isSupported",
                  value: function () {
                    var e =
                        0 < arguments.length && void 0 !== arguments[0]
                          ? arguments[0]
                          : ["copy", "cut"],
                      t = "string" == typeof e ? [e] : e,
                      n = !!document.queryCommandSupported;
                    return (
                      t.forEach(function (e) {
                        n = n && !!document.queryCommandSupported(e);
                      }),
                      n
                    );
                  },
                },
              ]
            ),
            t
          );
        })();

        function d(e, t) {
          var n = "data-clipboard-" + e;
          if (t.hasAttribute(n)) return t.getAttribute(n);
        }
        e.exports = c;
      },
      function (e, t, n) {
        "use strict";
        var i,
          r =
            "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
              ? function (e) {
                  return typeof e;
                }
              : function (e) {
                  return e &&
                    "function" == typeof Symbol &&
                    e.constructor === Symbol &&
                    e !== Symbol.prototype
                    ? "symbol"
                    : typeof e;
                },
          o = (function () {
            function e(e, t) {
              for (var n = 0; n < t.length; n++) {
                var i = t[n];
                (i.enumerable = i.enumerable || !1),
                  (i.configurable = !0),
                  "value" in i && (i.writable = !0),
                  Object.defineProperty(e, i.key, i);
              }
            }
            return function (t, n, i) {
              return n && e(t.prototype, n), i && e(t, i), t;
            };
          })(),
          s =
            (i = n(2)) && i.__esModule
              ? i
              : {
                  default: i,
                },
          a = (function () {
            function e(t) {
              !(function (e, t) {
                if (!(e instanceof t))
                  throw new TypeError("Cannot call a class as a function");
              })(this, e),
                this.resolveOptions(t),
                this.initSelection();
            }
            return (
              o(e, [
                {
                  key: "resolveOptions",
                  value: function () {
                    var e =
                      0 < arguments.length && void 0 !== arguments[0]
                        ? arguments[0]
                        : {};
                    (this.action = e.action),
                      (this.container = e.container),
                      (this.emitter = e.emitter),
                      (this.target = e.target),
                      (this.text = e.text),
                      (this.trigger = e.trigger),
                      (this.selectedText = "");
                  },
                },
                {
                  key: "initSelection",
                  value: function () {
                    this.text
                      ? this.selectFake()
                      : this.target && this.selectTarget();
                  },
                },
                {
                  key: "selectFake",
                  value: function () {
                    var e = this,
                      t = "rtl" == document.documentElement.getAttribute("dir");
                    this.removeFake(),
                      (this.fakeHandlerCallback = function () {
                        return e.removeFake();
                      }),
                      (this.fakeHandler =
                        this.container.addEventListener(
                          "click",
                          this.fakeHandlerCallback
                        ) || !0),
                      (this.fakeElem = document.createElement("textarea")),
                      (this.fakeElem.style.fontSize = "12pt"),
                      (this.fakeElem.style.border = "0"),
                      (this.fakeElem.style.padding = "0"),
                      (this.fakeElem.style.margin = "0"),
                      (this.fakeElem.style.position = "absolute"),
                      (this.fakeElem.style[t ? "right" : "left"] = "-9999px");
                    var n =
                      window.pageYOffset || document.documentElement.scrollTop;
                    (this.fakeElem.style.top = n + "px"),
                      this.fakeElem.setAttribute("readonly", ""),
                      (this.fakeElem.value = this.text),
                      this.container.appendChild(this.fakeElem),
                      (this.selectedText = (0, s.default)(this.fakeElem)),
                      this.copyText();
                  },
                },
                {
                  key: "removeFake",
                  value: function () {
                    this.fakeHandler &&
                      (this.container.removeEventListener(
                        "click",
                        this.fakeHandlerCallback
                      ),
                      (this.fakeHandler = null),
                      (this.fakeHandlerCallback = null)),
                      this.fakeElem &&
                        (this.container.removeChild(this.fakeElem),
                        (this.fakeElem = null));
                  },
                },
                {
                  key: "selectTarget",
                  value: function () {
                    (this.selectedText = (0, s.default)(this.target)),
                      this.copyText();
                  },
                },
                {
                  key: "copyText",
                  value: function () {
                    var e = void 0;
                    try {
                      e = document.execCommand(this.action);
                    } catch (t) {
                      e = !1;
                    }
                    this.handleResult(e);
                  },
                },
                {
                  key: "handleResult",
                  value: function (e) {
                    this.emitter.emit(e ? "success" : "error", {
                      action: this.action,
                      text: this.selectedText,
                      trigger: this.trigger,
                      clearSelection: this.clearSelection.bind(this),
                    });
                  },
                },
                {
                  key: "clearSelection",
                  value: function () {
                    this.trigger && this.trigger.focus(),
                      window.getSelection().removeAllRanges();
                  },
                },
                {
                  key: "destroy",
                  value: function () {
                    this.removeFake();
                  },
                },
                {
                  key: "action",
                  set: function () {
                    var e =
                      0 < arguments.length && void 0 !== arguments[0]
                        ? arguments[0]
                        : "copy";
                    if (
                      ((this._action = e),
                      "copy" !== this._action && "cut" !== this._action)
                    )
                      throw new Error(
                        'Invalid "action" value, use either "copy" or "cut"'
                      );
                  },
                  get: function () {
                    return this._action;
                  },
                },
                {
                  key: "target",
                  set: function (e) {
                    if (void 0 !== e) {
                      if (
                        !e ||
                        "object" !== (void 0 === e ? "undefined" : r(e)) ||
                        1 !== e.nodeType
                      )
                        throw new Error(
                          'Invalid "target" value, use a valid Element'
                        );
                      if ("copy" === this.action && e.hasAttribute("disabled"))
                        throw new Error(
                          'Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'
                        );
                      if (
                        "cut" === this.action &&
                        (e.hasAttribute("readonly") ||
                          e.hasAttribute("disabled"))
                      )
                        throw new Error(
                          'Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'
                        );
                      this._target = e;
                    }
                  },
                  get: function () {
                    return this._target;
                  },
                },
              ]),
              e
            );
          })();
        e.exports = a;
      },
      function (e, t) {
        e.exports = function (e) {
          var t;
          if ("SELECT" === e.nodeName) e.focus(), (t = e.value);
          else if ("INPUT" === e.nodeName || "TEXTAREA" === e.nodeName) {
            var n = e.hasAttribute("readonly");
            n || e.setAttribute("readonly", ""),
              e.select(),
              e.setSelectionRange(0, e.value.length),
              n || e.removeAttribute("readonly"),
              (t = e.value);
          } else {
            e.hasAttribute("contenteditable") && e.focus();
            var i = window.getSelection(),
              r = document.createRange();
            r.selectNodeContents(e),
              i.removeAllRanges(),
              i.addRange(r),
              (t = i.toString());
          }
          return t;
        };
      },
      function (e, t) {
        function n() {}
        (n.prototype = {
          on: function (e, t, n) {
            var i = this.e || (this.e = {});
            return (
              (i[e] || (i[e] = [])).push({
                fn: t,
                ctx: n,
              }),
              this
            );
          },
          once: function (e, t, n) {
            var i = this;

            function r() {
              i.off(e, r), t.apply(n, arguments);
            }
            return (r._ = t), this.on(e, r, n);
          },
          emit: function (e) {
            for (
              var t = [].slice.call(arguments, 1),
                n = ((this.e || (this.e = {}))[e] || []).slice(),
                i = 0,
                r = n.length;
              i < r;
              i++
            )
              n[i].fn.apply(n[i].ctx, t);
            return this;
          },
          off: function (e, t) {
            var n = this.e || (this.e = {}),
              i = n[e],
              r = [];
            if (i && t)
              for (var o = 0, s = i.length; o < s; o++)
                i[o].fn !== t && i[o].fn._ !== t && r.push(i[o]);
            return r.length ? (n[e] = r) : delete n[e], this;
          },
        }),
          (e.exports = n);
      },
      function (e, t, n) {
        var i = n(5),
          r = n(6);
        e.exports = function (e, t, n) {
          if (!e && !t && !n) throw new Error("Missing required arguments");
          if (!i.string(t))
            throw new TypeError("Second argument must be a String");
          if (!i.fn(n))
            throw new TypeError("Third argument must be a Function");
          if (i.node(e))
            return (
              (h = t),
              (g = n),
              (u = e).addEventListener(h, g),
              {
                destroy: function () {
                  u.removeEventListener(h, g);
                },
              }
            );
          if (i.nodeList(e))
            return (
              (l = e),
              (c = t),
              (d = n),
              Array.prototype.forEach.call(l, function (e) {
                e.addEventListener(c, d);
              }),
              {
                destroy: function () {
                  Array.prototype.forEach.call(l, function (e) {
                    e.removeEventListener(c, d);
                  });
                },
              }
            );
          if (i.string(e))
            return (o = e), (s = t), (a = n), r(document.body, o, s, a);
          throw new TypeError(
            "First argument must be a String, HTMLElement, HTMLCollection, or NodeList"
          );
          var o, s, a, l, c, d, u, h, g;
        };
      },
      function (e, t) {
        (t.node = function (e) {
          return void 0 !== e && e instanceof HTMLElement && 1 === e.nodeType;
        }),
          (t.nodeList = function (e) {
            var n = Object.prototype.toString.call(e);
            return (
              void 0 !== e &&
              ("[object NodeList]" === n || "[object HTMLCollection]" === n) &&
              "length" in e &&
              (0 === e.length || t.node(e[0]))
            );
          }),
          (t.string = function (e) {
            return "string" == typeof e || e instanceof String;
          }),
          (t.fn = function (e) {
            return "[object Function]" === Object.prototype.toString.call(e);
          });
      },
      function (e, t, n) {
        var i = n(7);

        function r(e, t, n, r, o) {
          var s = function (e, t, n, r) {
            return function (n) {
              (n.delegateTarget = i(n.target, t)),
                n.delegateTarget && r.call(e, n);
            };
          }.apply(this, arguments);
          return (
            e.addEventListener(n, s, o),
            {
              destroy: function () {
                e.removeEventListener(n, s, o);
              },
            }
          );
        }
        e.exports = function (e, t, n, i, o) {
          return "function" == typeof e.addEventListener
            ? r.apply(null, arguments)
            : "function" == typeof n
            ? r.bind(null, document).apply(null, arguments)
            : ("string" == typeof e && (e = document.querySelectorAll(e)),
              Array.prototype.map.call(e, function (e) {
                return r(e, t, n, i, o);
              }));
        };
      },
      function (e, t) {
        if ("undefined" != typeof Element && !Element.prototype.matches) {
          var n = Element.prototype;
          n.matches =
            n.matchesSelector ||
            n.mozMatchesSelector ||
            n.msMatchesSelector ||
            n.oMatchesSelector ||
            n.webkitMatchesSelector;
        }
        e.exports = function (e, t) {
          for (; e && 9 !== e.nodeType; ) {
            if ("function" == typeof e.matches && e.matches(t)) return e;
            e = e.parentNode;
          }
        };
      },
    ]);
  },
  function (e, t, n) {
    (function (e) {
      !(function () {
        var e = (function () {
          return this;
        })();
        e || "undefined" == typeof window || (e = window);
        var t = function (e, n, i) {
          "string" == typeof e
            ? (2 == arguments.length && (i = n),
              t.modules[e] || ((t.payloads[e] = i), (t.modules[e] = null)))
            : t.original
            ? t.original.apply(this, arguments)
            : (console.error("dropping module because define wasn't a string."),
              console.trace());
        };
        (t.modules = {}), (t.payloads = {});
        var n,
          i,
          r = function (e, t, n) {
            if ("string" == typeof t) {
              var i = a(e, t);
              if (null != i) return n && n(), i;
            } else if ("[object Array]" === Object.prototype.toString.call(t)) {
              for (var r = [], s = 0, l = t.length; s < l; ++s) {
                var c = a(e, t[s]);
                if (null == c && o.original) return;
                r.push(c);
              }
              return (n && n.apply(null, r)) || !0;
            }
          },
          o = function (e, t) {
            var n = r("", e, t);
            return null == n && o.original
              ? o.original.apply(this, arguments)
              : n;
          },
          s = function (e, t) {
            if (-1 !== t.indexOf("!")) {
              var n = t.split("!");
              return s(e, n[0]) + "!" + s(e, n[1]);
            }
            if ("." == t.charAt(0))
              for (
                t = e.split("/").slice(0, -1).join("/") + "/" + t;
                -1 !== t.indexOf(".") && i != t;

              ) {
                var i = t;
                t = t.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
              }
            return t;
          },
          a = function (e, n) {
            n = s(e, n);
            var i = t.modules[n];
            if (!i) {
              if ("function" == typeof (i = t.payloads[n])) {
                var o = {},
                  a = {
                    id: n,
                    uri: "",
                    exports: o,
                    packaged: !0,
                  };
                (o =
                  i(
                    function (e, t) {
                      return r(n, e, t);
                    },
                    o,
                    a
                  ) || a.exports),
                  (t.modules[n] = o),
                  delete t.payloads[n];
              }
              i = t.modules[n] = o || i;
            }
            return i;
          };
        (i = e),
          (n = "ace") && (e[n] || (e[n] = {}), (i = e[n])),
          (i.define && i.define.packaged) ||
            ((t.original = i.define), (i.define = t), (i.define.packaged = !0)),
          (i.require && i.require.packaged) ||
            ((o.original = i.require),
            (i.require = o),
            (i.require.packaged = !0));
      })(),
        ace.define(
          "ace/lib/fixoldbrowsers",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            "undefined" == typeof Element ||
              Element.prototype.remove ||
              Object.defineProperty(Element.prototype, "remove", {
                enumerable: !1,
                writable: !0,
                configurable: !0,
                value: function () {
                  this.parentNode && this.parentNode.removeChild(this);
                },
              });
          }
        ),
        ace.define(
          "ace/lib/useragent",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            (t.OS = {
              LINUX: "LINUX",
              MAC: "MAC",
              WINDOWS: "WINDOWS",
            }),
              (t.getOS = function () {
                return t.isMac
                  ? t.OS.MAC
                  : t.isLinux
                  ? t.OS.LINUX
                  : t.OS.WINDOWS;
              });
            var i = "object" == typeof navigator ? navigator : {},
              r = (/mac|win|linux/i.exec(i.platform) || [
                "other",
              ])[0].toLowerCase(),
              o = i.userAgent || "",
              s = i.appName || "";
            (t.isWin = "win" == r),
              (t.isMac = "mac" == r),
              (t.isLinux = "linux" == r),
              (t.isIE =
                "Microsoft Internet Explorer" == s ||
                s.indexOf("MSAppHost") >= 0
                  ? parseFloat(
                      (o.match(
                        /(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/
                      ) || [])[1]
                    )
                  : parseFloat(
                      (o.match(
                        /(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/
                      ) || [])[1]
                    )),
              (t.isOldIE = t.isIE && t.isIE < 9),
              (t.isGecko = t.isMozilla = o.match(/ Gecko\/\d+/)),
              (t.isOpera =
                "object" == typeof opera &&
                "[object Opera]" ==
                  Object.prototype.toString.call(window.opera)),
              (t.isWebKit = parseFloat(o.split("WebKit/")[1]) || void 0),
              (t.isChrome = parseFloat(o.split(" Chrome/")[1]) || void 0),
              (t.isEdge = parseFloat(o.split(" Edge/")[1]) || void 0),
              (t.isAIR = o.indexOf("AdobeAIR") >= 0),
              (t.isAndroid = o.indexOf("Android") >= 0),
              (t.isChromeOS = o.indexOf(" CrOS ") >= 0),
              (t.isIOS = /iPad|iPhone|iPod/.test(o) && !window.MSStream),
              t.isIOS && (t.isMac = !0),
              (t.isMobile = t.isIOS || t.isAndroid);
          }
        ),
        ace.define(
          "ace/lib/dom",
          ["require", "exports", "module", "ace/lib/useragent"],
          function (e, t, n) {
            "use strict";
            var i = e("./useragent");
            if (
              ((t.buildDom = function e(t, n, i) {
                if ("string" == typeof t && t) {
                  var r = document.createTextNode(t);
                  return n && n.appendChild(r), r;
                }
                if (!Array.isArray(t))
                  return t && t.appendChild && n && n.appendChild(t), t;
                if ("string" != typeof t[0] || !t[0]) {
                  for (var o = [], s = 0; s < t.length; s++) {
                    var a = e(t[s], n, i);
                    a && o.push(a);
                  }
                  return o;
                }
                var l = document.createElement(t[0]),
                  c = t[1],
                  d = 1;
                c && "object" == typeof c && !Array.isArray(c) && (d = 2);
                for (s = d; s < t.length; s++) e(t[s], l, i);
                return (
                  2 == d &&
                    Object.keys(c).forEach(function (e) {
                      var t = c[e];
                      "class" === e
                        ? (l.className = Array.isArray(t) ? t.join(" ") : t)
                        : "function" == typeof t || "value" == e || "$" == e[0]
                        ? (l[e] = t)
                        : "ref" === e
                        ? i && (i[t] = l)
                        : null != t && l.setAttribute(e, t);
                    }),
                  n && n.appendChild(l),
                  l
                );
              }),
              (t.getDocumentHead = function (e) {
                return (
                  e || (e = document),
                  e.head ||
                    e.getElementsByTagName("head")[0] ||
                    e.documentElement
                );
              }),
              (t.createElement = function (e, t) {
                return document.createElementNS
                  ? document.createElementNS(
                      t || "http://www.w3.org/1999/xhtml",
                      e
                    )
                  : document.createElement(e);
              }),
              (t.removeChildren = function (e) {
                e.innerHTML = "";
              }),
              (t.createTextNode = function (e, t) {
                return (t ? t.ownerDocument : document).createTextNode(e);
              }),
              (t.createFragment = function (e) {
                return (
                  e ? e.ownerDocument : document
                ).createDocumentFragment();
              }),
              (t.hasCssClass = function (e, t) {
                return -1 !== (e.className + "").split(/\s+/g).indexOf(t);
              }),
              (t.addCssClass = function (e, n) {
                t.hasCssClass(e, n) || (e.className += " " + n);
              }),
              (t.removeCssClass = function (e, t) {
                for (var n = e.className.split(/\s+/g); ; ) {
                  var i = n.indexOf(t);
                  if (-1 == i) break;
                  n.splice(i, 1);
                }
                e.className = n.join(" ");
              }),
              (t.toggleCssClass = function (e, t) {
                for (var n = e.className.split(/\s+/g), i = !0; ; ) {
                  var r = n.indexOf(t);
                  if (-1 == r) break;
                  (i = !1), n.splice(r, 1);
                }
                return i && n.push(t), (e.className = n.join(" ")), i;
              }),
              (t.setCssClass = function (e, n, i) {
                i ? t.addCssClass(e, n) : t.removeCssClass(e, n);
              }),
              (t.hasCssString = function (e, t) {
                var n,
                  i = 0;
                if ((n = (t = t || document).querySelectorAll("style")))
                  for (; i < n.length; ) if (n[i++].id === e) return !0;
              }),
              (t.importCssString = function (e, n, i) {
                var r = i;
                (i && i.getRootNode && (r = i.getRootNode()) && r != i) ||
                  (r = document);
                var o = r.ownerDocument || r;
                if (n && t.hasCssString(n, r)) return null;
                n && (e += "\n/*# sourceURL=ace/css/" + n + " */");
                var s = t.createElement("style");
                s.appendChild(o.createTextNode(e)),
                  n && (s.id = n),
                  r == o && (r = t.getDocumentHead(o)),
                  r.insertBefore(s, r.firstChild);
              }),
              (t.importCssStylsheet = function (e, n) {
                t.buildDom(
                  [
                    "link",
                    {
                      rel: "stylesheet",
                      href: e,
                    },
                  ],
                  t.getDocumentHead(n)
                );
              }),
              (t.scrollbarWidth = function (e) {
                var n = t.createElement("ace_inner");
                (n.style.width = "100%"),
                  (n.style.minWidth = "0px"),
                  (n.style.height = "200px"),
                  (n.style.display = "block");
                var i = t.createElement("ace_outer"),
                  r = i.style;
                (r.position = "absolute"),
                  (r.left = "-10000px"),
                  (r.overflow = "hidden"),
                  (r.width = "200px"),
                  (r.minWidth = "0px"),
                  (r.height = "150px"),
                  (r.display = "block"),
                  i.appendChild(n);
                var o = e.documentElement;
                o.appendChild(i);
                var s = n.offsetWidth;
                r.overflow = "scroll";
                var a = n.offsetWidth;
                return s == a && (a = i.clientWidth), o.removeChild(i), s - a;
              }),
              "undefined" == typeof document &&
                (t.importCssString = function () {}),
              (t.computedStyle = function (e, t) {
                return window.getComputedStyle(e, "") || {};
              }),
              (t.setStyle = function (e, t, n) {
                e[t] !== n && (e[t] = n);
              }),
              (t.HAS_CSS_ANIMATION = !1),
              (t.HAS_CSS_TRANSFORMS = !1),
              (t.HI_DPI =
                !i.isWin ||
                ("undefined" != typeof window &&
                  window.devicePixelRatio >= 1.5)),
              "undefined" != typeof document)
            ) {
              var r = document.createElement("div");
              t.HI_DPI &&
                void 0 !== r.style.transform &&
                (t.HAS_CSS_TRANSFORMS = !0),
                i.isEdge ||
                  void 0 === r.style.animationName ||
                  (t.HAS_CSS_ANIMATION = !0),
                (r = null);
            }
            t.HAS_CSS_TRANSFORMS
              ? (t.translate = function (e, t, n) {
                  e.style.transform =
                    "translate(" +
                    Math.round(t) +
                    "px, " +
                    Math.round(n) +
                    "px)";
                })
              : (t.translate = function (e, t, n) {
                  (e.style.top = Math.round(n) + "px"),
                    (e.style.left = Math.round(t) + "px");
                });
          }
        ),
        ace.define(
          "ace/lib/oop",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            (t.inherits = function (e, t) {
              (e.super_ = t),
                (e.prototype = Object.create(t.prototype, {
                  constructor: {
                    value: e,
                    enumerable: !1,
                    writable: !0,
                    configurable: !0,
                  },
                }));
            }),
              (t.mixin = function (e, t) {
                for (var n in t) e[n] = t[n];
                return e;
              }),
              (t.implement = function (e, n) {
                t.mixin(e, n);
              });
          }
        ),
        ace.define(
          "ace/lib/keys",
          ["require", "exports", "module", "ace/lib/oop"],
          function (e, t, n) {
            "use strict";
            var i = e("./oop"),
              r = (function () {
                var e,
                  t,
                  n = {
                    MODIFIER_KEYS: {
                      16: "Shift",
                      17: "Ctrl",
                      18: "Alt",
                      224: "Meta",
                      91: "MetaLeft",
                      92: "MetaRight",
                      93: "ContextMenu",
                    },
                    KEY_MODS: {
                      ctrl: 1,
                      alt: 2,
                      option: 2,
                      shift: 4,
                      super: 8,
                      meta: 8,
                      command: 8,
                      cmd: 8,
                      control: 1,
                    },
                    FUNCTION_KEYS: {
                      8: "Backspace",
                      9: "Tab",
                      13: "Return",
                      19: "Pause",
                      27: "Esc",
                      32: "Space",
                      33: "PageUp",
                      34: "PageDown",
                      35: "End",
                      36: "Home",
                      37: "Left",
                      38: "Up",
                      39: "Right",
                      40: "Down",
                      44: "Print",
                      45: "Insert",
                      46: "Delete",
                      96: "Numpad0",
                      97: "Numpad1",
                      98: "Numpad2",
                      99: "Numpad3",
                      100: "Numpad4",
                      101: "Numpad5",
                      102: "Numpad6",
                      103: "Numpad7",
                      104: "Numpad8",
                      105: "Numpad9",
                      "-13": "NumpadEnter",
                      112: "F1",
                      113: "F2",
                      114: "F3",
                      115: "F4",
                      116: "F5",
                      117: "F6",
                      118: "F7",
                      119: "F8",
                      120: "F9",
                      121: "F10",
                      122: "F11",
                      123: "F12",
                      144: "Numlock",
                      145: "Scrolllock",
                    },
                    PRINTABLE_KEYS: {
                      32: " ",
                      48: "0",
                      49: "1",
                      50: "2",
                      51: "3",
                      52: "4",
                      53: "5",
                      54: "6",
                      55: "7",
                      56: "8",
                      57: "9",
                      59: ";",
                      61: "=",
                      65: "a",
                      66: "b",
                      67: "c",
                      68: "d",
                      69: "e",
                      70: "f",
                      71: "g",
                      72: "h",
                      73: "i",
                      74: "j",
                      75: "k",
                      76: "l",
                      77: "m",
                      78: "n",
                      79: "o",
                      80: "p",
                      81: "q",
                      82: "r",
                      83: "s",
                      84: "t",
                      85: "u",
                      86: "v",
                      87: "w",
                      88: "x",
                      89: "y",
                      90: "z",
                      107: "+",
                      109: "-",
                      110: ".",
                      186: ";",
                      187: "=",
                      188: ",",
                      189: "-",
                      190: ".",
                      191: "/",
                      192: "`",
                      219: "[",
                      220: "\\",
                      221: "]",
                      222: "'",
                      111: "/",
                      106: "*",
                    },
                  };
                for (t in n.FUNCTION_KEYS)
                  (e = n.FUNCTION_KEYS[t].toLowerCase()),
                    (n[e] = parseInt(t, 10));
                for (t in n.PRINTABLE_KEYS)
                  (e = n.PRINTABLE_KEYS[t].toLowerCase()),
                    (n[e] = parseInt(t, 10));
                return (
                  i.mixin(n, n.MODIFIER_KEYS),
                  i.mixin(n, n.PRINTABLE_KEYS),
                  i.mixin(n, n.FUNCTION_KEYS),
                  (n.enter = n.return),
                  (n.escape = n.esc),
                  (n.del = n.delete),
                  (n[173] = "-"),
                  (function () {
                    for (
                      var e = ["cmd", "ctrl", "alt", "shift"],
                        t = Math.pow(2, e.length);
                      t--;

                    )
                      n.KEY_MODS[t] =
                        e
                          .filter(function (e) {
                            return t & n.KEY_MODS[e];
                          })
                          .join("-") + "-";
                  })(),
                  (n.KEY_MODS[0] = ""),
                  (n.KEY_MODS[-1] = "input-"),
                  n
                );
              })();
            i.mixin(t, r),
              (t.keyCodeToString = function (e) {
                var t = r[e];
                return (
                  "string" != typeof t && (t = String.fromCharCode(e)),
                  t.toLowerCase()
                );
              });
          }
        ),
        ace.define(
          "ace/lib/event",
          ["require", "exports", "module", "ace/lib/keys", "ace/lib/useragent"],
          function (e, t, n) {
            "use strict";
            var i,
              r = e("./keys"),
              o = e("./useragent"),
              s = null,
              a = 0;

            function l() {
              return (
                null == i &&
                  (function () {
                    i = !1;
                    try {
                      document
                        .createComment("")
                        .addEventListener("test", function () {}, {
                          get passive() {
                            i = {
                              passive: !1,
                            };
                          },
                        });
                    } catch (e) {}
                  })(),
                i
              );
            }

            function c(e, t, n) {
              (this.elem = e), (this.type = t), (this.callback = n);
            }
            c.prototype.destroy = function () {
              u(this.elem, this.type, this.callback),
                (this.elem = this.type = this.callback = void 0);
            };
            var d = (t.addListener = function (e, t, n, i) {
                e.addEventListener(t, n, l()),
                  i && i.$toDestroy.push(new c(e, t, n));
              }),
              u = (t.removeListener = function (e, t, n) {
                e.removeEventListener(t, n, l());
              });
            (t.stopEvent = function (e) {
              return t.stopPropagation(e), t.preventDefault(e), !1;
            }),
              (t.stopPropagation = function (e) {
                e.stopPropagation && e.stopPropagation();
              }),
              (t.preventDefault = function (e) {
                e.preventDefault && e.preventDefault();
              }),
              (t.getButton = function (e) {
                return "dblclick" == e.type
                  ? 0
                  : "contextmenu" == e.type ||
                    (o.isMac && e.ctrlKey && !e.altKey && !e.shiftKey)
                  ? 2
                  : e.button;
              }),
              (t.capture = function (e, t, n) {
                var i = (e && e.ownerDocument) || document;

                function r(e) {
                  t && t(e),
                    n && n(e),
                    u(i, "mousemove", t),
                    u(i, "mouseup", r),
                    u(i, "dragstart", r);
                }
                return (
                  d(i, "mousemove", t),
                  d(i, "mouseup", r),
                  d(i, "dragstart", r),
                  r
                );
              }),
              (t.addMouseWheelListener = function (e, t, n) {
                "onmousewheel" in e
                  ? d(
                      e,
                      "mousewheel",
                      function (e) {
                        void 0 !== e.wheelDeltaX
                          ? ((e.wheelX = -e.wheelDeltaX / 8),
                            (e.wheelY = -e.wheelDeltaY / 8))
                          : ((e.wheelX = 0), (e.wheelY = -e.wheelDelta / 8)),
                          t(e);
                      },
                      n
                    )
                  : "onwheel" in e
                  ? d(
                      e,
                      "wheel",
                      function (e) {
                        switch (e.deltaMode) {
                          case e.DOM_DELTA_PIXEL:
                            (e.wheelX = 0.35 * e.deltaX || 0),
                              (e.wheelY = 0.35 * e.deltaY || 0);
                            break;
                          case e.DOM_DELTA_LINE:
                          case e.DOM_DELTA_PAGE:
                            (e.wheelX = 5 * (e.deltaX || 0)),
                              (e.wheelY = 5 * (e.deltaY || 0));
                        }
                        t(e);
                      },
                      n
                    )
                  : d(
                      e,
                      "DOMMouseScroll",
                      function (e) {
                        e.axis && e.axis == e.HORIZONTAL_AXIS
                          ? ((e.wheelX = 5 * (e.detail || 0)), (e.wheelY = 0))
                          : ((e.wheelX = 0), (e.wheelY = 5 * (e.detail || 0))),
                          t(e);
                      },
                      n
                    );
              }),
              (t.addMultiMouseDownListener = function (e, n, i, r, s) {
                var a,
                  l,
                  c,
                  u = 0,
                  h = {
                    2: "dblclick",
                    3: "tripleclick",
                    4: "quadclick",
                  };

                function g(e) {
                  if (
                    (0 !== t.getButton(e)
                      ? (u = 0)
                      : e.detail > 1
                      ? ++u > 4 && (u = 1)
                      : (u = 1),
                    o.isIE)
                  ) {
                    var s =
                      Math.abs(e.clientX - a) > 5 ||
                      Math.abs(e.clientY - l) > 5;
                    (c && !s) || (u = 1),
                      c && clearTimeout(c),
                      (c = setTimeout(function () {
                        c = null;
                      }, n[u - 1] || 600)),
                      1 == u && ((a = e.clientX), (l = e.clientY));
                  }
                  if (((e._clicks = u), i[r]("mousedown", e), u > 4)) u = 0;
                  else if (u > 1) return i[r](h[u], e);
                }
                Array.isArray(e) || (e = [e]),
                  e.forEach(function (e) {
                    d(e, "mousedown", g, s);
                  });
              });
            var h = function (e) {
              return (
                0 |
                (e.ctrlKey ? 1 : 0) |
                (e.altKey ? 2 : 0) |
                (e.shiftKey ? 4 : 0) |
                (e.metaKey ? 8 : 0)
              );
            };

            function g(e, t, n) {
              var i = h(t);
              if (!o.isMac && s) {
                if (
                  (t.getModifierState &&
                    (t.getModifierState("OS") || t.getModifierState("Win")) &&
                    (i |= 8),
                  s.altGr)
                ) {
                  if (3 == (3 & i)) return;
                  s.altGr = 0;
                }
                if (18 === n || 17 === n) {
                  var l = "location" in t ? t.location : t.keyLocation;
                  if (17 === n && 1 === l) 1 == s[n] && (a = t.timeStamp);
                  else if (18 === n && 3 === i && 2 === l) {
                    t.timeStamp - a < 50 && (s.altGr = !0);
                  }
                }
              }
              if (
                (n in r.MODIFIER_KEYS && (n = -1), !i && 13 === n) &&
                3 === (l = "location" in t ? t.location : t.keyLocation) &&
                (e(t, i, -n), t.defaultPrevented)
              )
                return;
              if (o.isChromeOS && 8 & i) {
                if ((e(t, i, n), t.defaultPrevented)) return;
                i &= -9;
              }
              return (
                !!(i || n in r.FUNCTION_KEYS || n in r.PRINTABLE_KEYS) &&
                e(t, i, n)
              );
            }

            function p() {
              s = Object.create(null);
            }
            if (
              ((t.getModifierString = function (e) {
                return r.KEY_MODS[h(e)];
              }),
              (t.addCommandKeyListener = function (e, n, i) {
                if (
                  o.isOldGecko ||
                  (o.isOpera && !("KeyboardEvent" in window))
                ) {
                  var r = null;
                  d(
                    e,
                    "keydown",
                    function (e) {
                      r = e.keyCode;
                    },
                    i
                  ),
                    d(
                      e,
                      "keypress",
                      function (e) {
                        return g(n, e, r);
                      },
                      i
                    );
                } else {
                  var a = null;
                  d(
                    e,
                    "keydown",
                    function (e) {
                      s[e.keyCode] = (s[e.keyCode] || 0) + 1;
                      var t = g(n, e, e.keyCode);
                      return (a = e.defaultPrevented), t;
                    },
                    i
                  ),
                    d(
                      e,
                      "keypress",
                      function (e) {
                        a &&
                          (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) &&
                          (t.stopEvent(e), (a = null));
                      },
                      i
                    ),
                    d(
                      e,
                      "keyup",
                      function (e) {
                        s[e.keyCode] = null;
                      },
                      i
                    ),
                    s || (p(), d(window, "focus", p));
                }
              }),
              "object" == typeof window && window.postMessage && !o.isOldIE)
            ) {
              var A = 1;
              t.nextTick = function (e, n) {
                n = n || window;
                var i = "zero-timeout-message-" + A++,
                  r = function (o) {
                    o.data == i &&
                      (t.stopPropagation(o), u(n, "message", r), e());
                  };
                d(n, "message", r), n.postMessage(i, "*");
              };
            }
            (t.$idleBlocked = !1),
              (t.onIdle = function (e, n) {
                return setTimeout(function n() {
                  t.$idleBlocked ? setTimeout(n, 100) : e();
                }, n);
              }),
              (t.$idleBlockId = null),
              (t.blockIdle = function (e) {
                t.$idleBlockId && clearTimeout(t.$idleBlockId),
                  (t.$idleBlocked = !0),
                  (t.$idleBlockId = setTimeout(function () {
                    t.$idleBlocked = !1;
                  }, e || 100));
              }),
              (t.nextFrame =
                "object" == typeof window &&
                (window.requestAnimationFrame ||
                  window.mozRequestAnimationFrame ||
                  window.webkitRequestAnimationFrame ||
                  window.msRequestAnimationFrame ||
                  window.oRequestAnimationFrame)),
              t.nextFrame
                ? (t.nextFrame = t.nextFrame.bind(window))
                : (t.nextFrame = function (e) {
                    setTimeout(e, 17);
                  });
          }
        ),
        ace.define(
          "ace/range",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i = function (e, t, n, i) {
              (this.start = {
                row: e,
                column: t,
              }),
                (this.end = {
                  row: n,
                  column: i,
                });
            };
            (function () {
              (this.isEqual = function (e) {
                return (
                  this.start.row === e.start.row &&
                  this.end.row === e.end.row &&
                  this.start.column === e.start.column &&
                  this.end.column === e.end.column
                );
              }),
                (this.toString = function () {
                  return (
                    "Range: [" +
                    this.start.row +
                    "/" +
                    this.start.column +
                    "] -> [" +
                    this.end.row +
                    "/" +
                    this.end.column +
                    "]"
                  );
                }),
                (this.contains = function (e, t) {
                  return 0 == this.compare(e, t);
                }),
                (this.compareRange = function (e) {
                  var t,
                    n = e.end,
                    i = e.start;
                  return 1 == (t = this.compare(n.row, n.column))
                    ? 1 == (t = this.compare(i.row, i.column))
                      ? 2
                      : 0 == t
                      ? 1
                      : 0
                    : -1 == t
                    ? -2
                    : -1 == (t = this.compare(i.row, i.column))
                    ? -1
                    : 1 == t
                    ? 42
                    : 0;
                }),
                (this.comparePoint = function (e) {
                  return this.compare(e.row, e.column);
                }),
                (this.containsRange = function (e) {
                  return (
                    0 == this.comparePoint(e.start) &&
                    0 == this.comparePoint(e.end)
                  );
                }),
                (this.intersects = function (e) {
                  var t = this.compareRange(e);
                  return -1 == t || 0 == t || 1 == t;
                }),
                (this.isEnd = function (e, t) {
                  return this.end.row == e && this.end.column == t;
                }),
                (this.isStart = function (e, t) {
                  return this.start.row == e && this.start.column == t;
                }),
                (this.setStart = function (e, t) {
                  "object" == typeof e
                    ? ((this.start.column = e.column), (this.start.row = e.row))
                    : ((this.start.row = e), (this.start.column = t));
                }),
                (this.setEnd = function (e, t) {
                  "object" == typeof e
                    ? ((this.end.column = e.column), (this.end.row = e.row))
                    : ((this.end.row = e), (this.end.column = t));
                }),
                (this.inside = function (e, t) {
                  return (
                    0 == this.compare(e, t) &&
                    !this.isEnd(e, t) &&
                    !this.isStart(e, t)
                  );
                }),
                (this.insideStart = function (e, t) {
                  return 0 == this.compare(e, t) && !this.isEnd(e, t);
                }),
                (this.insideEnd = function (e, t) {
                  return 0 == this.compare(e, t) && !this.isStart(e, t);
                }),
                (this.compare = function (e, t) {
                  return this.isMultiLine() || e !== this.start.row
                    ? e < this.start.row
                      ? -1
                      : e > this.end.row
                      ? 1
                      : this.start.row === e
                      ? t >= this.start.column
                        ? 0
                        : -1
                      : this.end.row === e
                      ? t <= this.end.column
                        ? 0
                        : 1
                      : 0
                    : t < this.start.column
                    ? -1
                    : t > this.end.column
                    ? 1
                    : 0;
                }),
                (this.compareStart = function (e, t) {
                  return this.start.row == e && this.start.column == t
                    ? -1
                    : this.compare(e, t);
                }),
                (this.compareEnd = function (e, t) {
                  return this.end.row == e && this.end.column == t
                    ? 1
                    : this.compare(e, t);
                }),
                (this.compareInside = function (e, t) {
                  return this.end.row == e && this.end.column == t
                    ? 1
                    : this.start.row == e && this.start.column == t
                    ? -1
                    : this.compare(e, t);
                }),
                (this.clipRows = function (e, t) {
                  if (this.end.row > t)
                    var n = {
                      row: t + 1,
                      column: 0,
                    };
                  else if (this.end.row < e)
                    n = {
                      row: e,
                      column: 0,
                    };
                  if (this.start.row > t)
                    var r = {
                      row: t + 1,
                      column: 0,
                    };
                  else if (this.start.row < e)
                    r = {
                      row: e,
                      column: 0,
                    };
                  return i.fromPoints(r || this.start, n || this.end);
                }),
                (this.extend = function (e, t) {
                  var n = this.compare(e, t);
                  if (0 == n) return this;
                  if (-1 == n)
                    var r = {
                      row: e,
                      column: t,
                    };
                  else
                    var o = {
                      row: e,
                      column: t,
                    };
                  return i.fromPoints(r || this.start, o || this.end);
                }),
                (this.isEmpty = function () {
                  return (
                    this.start.row === this.end.row &&
                    this.start.column === this.end.column
                  );
                }),
                (this.isMultiLine = function () {
                  return this.start.row !== this.end.row;
                }),
                (this.clone = function () {
                  return i.fromPoints(this.start, this.end);
                }),
                (this.collapseRows = function () {
                  return 0 == this.end.column
                    ? new i(
                        this.start.row,
                        0,
                        Math.max(this.start.row, this.end.row - 1),
                        0
                      )
                    : new i(this.start.row, 0, this.end.row, 0);
                }),
                (this.toScreenRange = function (e) {
                  var t = e.documentToScreenPosition(this.start),
                    n = e.documentToScreenPosition(this.end);
                  return new i(t.row, t.column, n.row, n.column);
                }),
                (this.moveBy = function (e, t) {
                  (this.start.row += e),
                    (this.start.column += t),
                    (this.end.row += e),
                    (this.end.column += t);
                });
            }).call(i.prototype),
              (i.fromPoints = function (e, t) {
                return new i(e.row, e.column, t.row, t.column);
              }),
              (i.comparePoints = function (e, t) {
                return e.row - t.row || e.column - t.column;
              }),
              (i.comparePoints = function (e, t) {
                return e.row - t.row || e.column - t.column;
              }),
              (t.Range = i);
          }
        ),
        ace.define(
          "ace/lib/lang",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            (t.last = function (e) {
              return e[e.length - 1];
            }),
              (t.stringReverse = function (e) {
                return e.split("").reverse().join("");
              }),
              (t.stringRepeat = function (e, t) {
                for (var n = ""; t > 0; )
                  1 & t && (n += e), (t >>= 1) && (e += e);
                return n;
              });
            var i = /^\s\s*/,
              r = /\s\s*$/;
            (t.stringTrimLeft = function (e) {
              return e.replace(i, "");
            }),
              (t.stringTrimRight = function (e) {
                return e.replace(r, "");
              }),
              (t.copyObject = function (e) {
                var t = {};
                for (var n in e) t[n] = e[n];
                return t;
              }),
              (t.copyArray = function (e) {
                for (var t = [], n = 0, i = e.length; n < i; n++)
                  e[n] && "object" == typeof e[n]
                    ? (t[n] = this.copyObject(e[n]))
                    : (t[n] = e[n]);
                return t;
              }),
              (t.deepCopy = function e(t) {
                if ("object" != typeof t || !t) return t;
                var n;
                if (Array.isArray(t)) {
                  n = [];
                  for (var i = 0; i < t.length; i++) n[i] = e(t[i]);
                  return n;
                }
                if ("[object Object]" !== Object.prototype.toString.call(t))
                  return t;
                for (var i in ((n = {}), t)) n[i] = e(t[i]);
                return n;
              }),
              (t.arrayToMap = function (e) {
                for (var t = {}, n = 0; n < e.length; n++) t[e[n]] = 1;
                return t;
              }),
              (t.createMap = function (e) {
                var t = Object.create(null);
                for (var n in e) t[n] = e[n];
                return t;
              }),
              (t.arrayRemove = function (e, t) {
                for (var n = 0; n <= e.length; n++)
                  t === e[n] && e.splice(n, 1);
              }),
              (t.escapeRegExp = function (e) {
                return e.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
              }),
              (t.escapeHTML = function (e) {
                return ("" + e)
                  .replace(/&/g, "&#38;")
                  .replace(/"/g, "&#34;")
                  .replace(/'/g, "&#39;")
                  .replace(/</g, "&#60;");
              }),
              (t.getMatchOffsets = function (e, t) {
                var n = [];
                return (
                  e.replace(t, function (e) {
                    n.push({
                      offset: arguments[arguments.length - 2],
                      length: e.length,
                    });
                  }),
                  n
                );
              }),
              (t.deferredCall = function (e) {
                var t = null,
                  n = function () {
                    (t = null), e();
                  },
                  i = function (e) {
                    return i.cancel(), (t = setTimeout(n, e || 0)), i;
                  };
                return (
                  (i.schedule = i),
                  (i.call = function () {
                    return this.cancel(), e(), i;
                  }),
                  (i.cancel = function () {
                    return clearTimeout(t), (t = null), i;
                  }),
                  (i.isPending = function () {
                    return t;
                  }),
                  i
                );
              }),
              (t.delayedCall = function (e, t) {
                var n = null,
                  i = function () {
                    (n = null), e();
                  },
                  r = function (e) {
                    null == n && (n = setTimeout(i, e || t));
                  };
                return (
                  (r.delay = function (e) {
                    n && clearTimeout(n), (n = setTimeout(i, e || t));
                  }),
                  (r.schedule = r),
                  (r.call = function () {
                    this.cancel(), e();
                  }),
                  (r.cancel = function () {
                    n && clearTimeout(n), (n = null);
                  }),
                  (r.isPending = function () {
                    return n;
                  }),
                  r
                );
              });
          }
        ),
        ace.define(
          "ace/clipboard",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i;
            n.exports = {
              lineMode: !1,
              pasteCancelled: function () {
                return !!(i && i > Date.now() - 50) || (i = !1);
              },
              cancel: function () {
                i = Date.now();
              },
            };
          }
        ),
        ace.define(
          "ace/keyboard/textinput",
          [
            "require",
            "exports",
            "module",
            "ace/lib/event",
            "ace/lib/useragent",
            "ace/lib/dom",
            "ace/lib/lang",
            "ace/clipboard",
            "ace/lib/keys",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/event"),
              r = e("../lib/useragent"),
              o = e("../lib/dom"),
              s = e("../lib/lang"),
              a = e("../clipboard"),
              l = r.isChrome < 18,
              c = r.isIE,
              d = r.isChrome > 63,
              u = e("../lib/keys"),
              h = u.KEY_MODS,
              g = r.isIOS,
              p = g ? /\s/ : /\n/,
              A = r.isMobile;
            (t.TextInput = function (e, t) {
              var n = o.createElement("textarea");
              (n.className = "ace_text-input"),
                n.setAttribute("wrap", "off"),
                n.setAttribute("autocorrect", "off"),
                n.setAttribute("autocapitalize", "off"),
                n.setAttribute("spellcheck", !1),
                (n.style.opacity = "0"),
                e.insertBefore(n, e.firstChild);
              var f = !1,
                m = !1,
                v = !1,
                b = !1,
                w = "";
              A || (n.style.fontSize = "1px");
              var y = !1,
                x = !1,
                C = "",
                k = 0,
                _ = 0,
                I = 0;
              try {
                var E = document.activeElement === n;
              } catch (e) {}
              i.addListener(
                n,
                "blur",
                function (e) {
                  x || (t.onBlur(e), (E = !1));
                },
                t
              ),
                i.addListener(
                  n,
                  "focus",
                  function (e) {
                    if (!x) {
                      if (((E = !0), r.isEdge))
                        try {
                          if (!document.hasFocus()) return;
                        } catch (e) {}
                      t.onFocus(e), r.isEdge ? setTimeout(T) : T();
                    }
                  },
                  t
                ),
                (this.$focusScroll = !1),
                (this.focus = function () {
                  if (w || d || "browser" == this.$focusScroll)
                    return n.focus({
                      preventScroll: !0,
                    });
                  var e = n.style.top;
                  (n.style.position = "fixed"), (n.style.top = "0px");
                  try {
                    var t = 0 != n.getBoundingClientRect().top;
                  } catch (e) {
                    return;
                  }
                  var i = [];
                  if (t)
                    for (var r = n.parentElement; r && 1 == r.nodeType; )
                      i.push(r),
                        r.setAttribute("ace_nocontext", !0),
                        (r =
                          !r.parentElement && r.getRootNode
                            ? r.getRootNode().host
                            : r.parentElement);
                  n.focus({
                    preventScroll: !0,
                  }),
                    t &&
                      i.forEach(function (e) {
                        e.removeAttribute("ace_nocontext");
                      }),
                    setTimeout(function () {
                      (n.style.position = ""),
                        "0px" == n.style.top && (n.style.top = e);
                    }, 0);
                }),
                (this.blur = function () {
                  n.blur();
                }),
                (this.isFocused = function () {
                  return E;
                }),
                t.on("beforeEndOperation", function () {
                  var e = t.curOp,
                    i = e && e.command && e.command.name;
                  if ("insertstring" != i) {
                    var r = i && (e.docChanged || e.selectionChanged);
                    v && r && ((C = n.value = ""), P()), T();
                  }
                });
              var T = g
                ? function (e) {
                    if (E && (!f || e) && !b) {
                      e || (e = "");
                      var i = "\n ab" + e + "cde fg\n";
                      i != n.value && (n.value = C = i);
                      var r = 4 + (e.length || (t.selection.isEmpty() ? 0 : 1));
                      (4 == k && _ == r) || n.setSelectionRange(4, r),
                        (k = 4),
                        (_ = r);
                    }
                  }
                : function () {
                    if (!v && !b && (E || L)) {
                      v = !0;
                      var e = 0,
                        i = 0,
                        r = "";
                      if (t.session) {
                        var o = t.selection,
                          s = o.getRange(),
                          a = o.cursor.row;
                        if (
                          ((e = s.start.column),
                          (i = s.end.column),
                          (r = t.session.getLine(a)),
                          s.start.row != a)
                        ) {
                          var l = t.session.getLine(a - 1);
                          (e = s.start.row < a - 1 ? 0 : e),
                            (i += l.length + 1),
                            (r = l + "\n" + r);
                        } else if (s.end.row != a) {
                          var c = t.session.getLine(a + 1);
                          (i = s.end.row > a + 1 ? c.length : i),
                            (i += r.length + 1),
                            (r = r + "\n" + c);
                        } else
                          A && a > 0 && ((r = "\n" + r), (i += 1), (e += 1));
                        r.length > 400 &&
                          (e < 400 && i < 400
                            ? (r = r.slice(0, 400))
                            : ((r = "\n"),
                              e == i ? (e = i = 0) : ((e = 0), (i = 1))));
                      }
                      var d = r + "\n\n";
                      if (
                        (d != C && ((n.value = C = d), (k = _ = d.length)),
                        L && ((k = n.selectionStart), (_ = n.selectionEnd)),
                        _ != i || k != e || n.selectionEnd != _)
                      )
                        try {
                          n.setSelectionRange(e, i), (k = e), (_ = i);
                        } catch (e) {}
                      v = !1;
                    }
                  };
              (this.resetSelection = T), E && t.onFocus();
              var S = null;
              (this.setInputHandler = function (e) {
                S = e;
              }),
                (this.getInputHandler = function () {
                  return S;
                });
              var L = !1,
                j = function (e, i) {
                  if ((L && (L = !1), m))
                    return T(), e && t.onPaste(e), (m = !1), "";
                  for (
                    var o = n.selectionStart,
                      s = n.selectionEnd,
                      a = k,
                      l = C.length - _,
                      c = e,
                      d = e.length - o,
                      u = e.length - s,
                      h = 0;
                    a > 0 && C[h] == e[h];

                  )
                    h++, a--;
                  for (
                    c = c.slice(h), h = 1;
                    l > 0 &&
                    C.length - h > k - 1 &&
                    C[C.length - h] == e[e.length - h];

                  )
                    h++, l--;
                  (d -= h - 1), (u -= h - 1);
                  var g = c.length - h + 1;
                  if (
                    (g < 0 && ((a = -g), (g = 0)),
                    (c = c.slice(0, g)),
                    !(i || c || d || a || l || u))
                  )
                    return "";
                  b = !0;
                  var p = !1;
                  return (
                    r.isAndroid && ". " == c && ((c = "  "), (p = !0)),
                    (c && !a && !l && !d && !u) || y
                      ? t.onTextInput(c)
                      : t.onTextInput(c, {
                          extendLeft: a,
                          extendRight: l,
                          restoreStart: d,
                          restoreEnd: u,
                        }),
                    (b = !1),
                    (C = e),
                    (k = o),
                    (_ = s),
                    (I = u),
                    p ? "\n" : c
                  );
                },
                R = function (e) {
                  if (v) return W();
                  if (e && e.inputType) {
                    if ("historyUndo" == e.inputType)
                      return t.execCommand("undo");
                    if ("historyRedo" == e.inputType)
                      return t.execCommand("redo");
                  }
                  var i = n.value,
                    r = j(i, !0);
                  (i.length > 500 || p.test(r) || (A && k < 1 && k == _)) &&
                    T();
                },
                B = function (e, t, n) {
                  var i = e.clipboardData || window.clipboardData;
                  if (i && !l) {
                    var r = c || n ? "Text" : "text/plain";
                    try {
                      return t ? !1 !== i.setData(r, t) : i.getData(r);
                    } catch (e) {
                      if (!n) return B(e, t, !0);
                    }
                  }
                },
                M = function (e, r) {
                  var o = t.getCopyText();
                  if (!o) return i.preventDefault(e);
                  B(e, o)
                    ? (g &&
                        (T(o),
                        (f = o),
                        setTimeout(function () {
                          f = !1;
                        }, 10)),
                      r ? t.onCut() : t.onCopy(),
                      i.preventDefault(e))
                    : ((f = !0),
                      (n.value = o),
                      n.select(),
                      setTimeout(function () {
                        (f = !1), T(), r ? t.onCut() : t.onCopy();
                      }));
                },
                D = function (e) {
                  M(e, !0);
                },
                O = function (e) {
                  M(e, !1);
                },
                H = function (e) {
                  var o = B(e);
                  a.pasteCancelled() ||
                    ("string" == typeof o
                      ? (o && t.onPaste(o, e),
                        r.isIE && setTimeout(T),
                        i.preventDefault(e))
                      : ((n.value = ""), (m = !0)));
                };
              i.addCommandKeyListener(n, t.onCommandKey.bind(t), t),
                i.addListener(
                  n,
                  "select",
                  function (e) {
                    v ||
                      (f
                        ? (f = !1)
                        : !(function (e) {
                            return (
                              0 === e.selectionStart &&
                              e.selectionEnd >= C.length &&
                              e.value === C &&
                              C &&
                              e.selectionEnd !== _
                            );
                          })(n)
                        ? A && n.selectionStart != k && T()
                        : (t.selectAll(), T()));
                  },
                  t
                ),
                i.addListener(n, "input", R, t),
                i.addListener(n, "cut", D, t),
                i.addListener(n, "copy", O, t),
                i.addListener(n, "paste", H, t),
                ("oncut" in n && "oncopy" in n && "onpaste" in n) ||
                  i.addListener(
                    e,
                    "keydown",
                    function (e) {
                      if ((!r.isMac || e.metaKey) && e.ctrlKey)
                        switch (e.keyCode) {
                          case 67:
                            O(e);
                            break;
                          case 86:
                            H(e);
                            break;
                          case 88:
                            D(e);
                        }
                    },
                    t
                  );
              var W = function () {
                  if (v && t.onCompositionUpdate && !t.$readOnly) {
                    if (y) return N();
                    if (v.useTextareaForIME) t.onCompositionUpdate(n.value);
                    else {
                      var e = n.value;
                      j(e),
                        v.markerRange &&
                          (v.context &&
                            (v.markerRange.start.column = v.selectionStart =
                              v.context.compositionStartOffset),
                          (v.markerRange.end.column =
                            v.markerRange.start.column +
                            _ -
                            v.selectionStart +
                            I));
                    }
                  }
                },
                P = function (e) {
                  t.onCompositionEnd &&
                    !t.$readOnly &&
                    ((v = !1),
                    t.onCompositionEnd(),
                    t.off("mousedown", N),
                    e && R());
                };

              function N() {
                (x = !0), n.blur(), n.focus(), (x = !1);
              }
              var q,
                z = s.delayedCall(W, 50).schedule.bind(null, null);

              function V() {
                clearTimeout(q),
                  (q = setTimeout(function () {
                    w && ((n.style.cssText = w), (w = "")),
                      (t.renderer.$isMousePressed = !1),
                      t.renderer.$keepTextAreaAtCursor &&
                        t.renderer.$moveTextAreaToCursor();
                  }, 0));
              }
              i.addListener(
                n,
                "compositionstart",
                function (e) {
                  if (
                    !v &&
                    t.onCompositionStart &&
                    !t.$readOnly &&
                    ((v = {}), !y)
                  ) {
                    e.data && (v.useTextareaForIME = !1),
                      setTimeout(W, 0),
                      t._signal("compositionStart"),
                      t.on("mousedown", N);
                    var i = t.getSelectionRange();
                    (i.end.row = i.start.row),
                      (i.end.column = i.start.column),
                      (v.markerRange = i),
                      (v.selectionStart = k),
                      t.onCompositionStart(v),
                      v.useTextareaForIME
                        ? ((C = n.value = ""), (k = 0), (_ = 0))
                        : (n.msGetInputContext &&
                            (v.context = n.msGetInputContext()),
                          n.getInputContext &&
                            (v.context = n.getInputContext()));
                  }
                },
                t
              ),
                i.addListener(n, "compositionupdate", W, t),
                i.addListener(
                  n,
                  "keyup",
                  function (e) {
                    27 == e.keyCode &&
                      n.value.length < n.selectionStart &&
                      (v || (C = n.value), (k = _ = -1), T()),
                      z();
                  },
                  t
                ),
                i.addListener(n, "keydown", z, t),
                i.addListener(n, "compositionend", P, t),
                (this.getElement = function () {
                  return n;
                }),
                (this.setCommandMode = function (e) {
                  (y = e), (n.readOnly = !1);
                }),
                (this.setReadOnly = function (e) {
                  y || (n.readOnly = e);
                }),
                (this.setCopyWithEmptySelection = function (e) {}),
                (this.onContextMenu = function (e) {
                  (L = !0),
                    T(),
                    t._emit("nativecontextmenu", {
                      target: t,
                      domEvent: e,
                    }),
                    this.moveToMouse(e, !0);
                }),
                (this.moveToMouse = function (e, s) {
                  w || (w = n.style.cssText),
                    (n.style.cssText =
                      (s ? "z-index:100000;" : "") +
                      (r.isIE ? "opacity:0.1;" : "") +
                      "text-indent: -" +
                      (k + _) * t.renderer.characterWidth * 0.5 +
                      "px;");
                  var a = t.container.getBoundingClientRect(),
                    l = o.computedStyle(t.container),
                    c = a.top + (parseInt(l.borderTopWidth) || 0),
                    d = a.left + (parseInt(a.borderLeftWidth) || 0),
                    u = a.bottom - c - n.clientHeight - 2,
                    h = function (e) {
                      o.translate(
                        n,
                        e.clientX - d - 2,
                        Math.min(e.clientY - c - 2, u)
                      );
                    };
                  h(e),
                    "mousedown" == e.type &&
                      ((t.renderer.$isMousePressed = !0),
                      clearTimeout(q),
                      r.isWin && i.capture(t.container, h, V));
                }),
                (this.onContextMenuClose = V);
              var F = function (e) {
                t.textInput.onContextMenu(e), V();
              };
              i.addListener(n, "mouseup", F, t),
                i.addListener(
                  n,
                  "mousedown",
                  function (e) {
                    e.preventDefault(), V();
                  },
                  t
                ),
                i.addListener(t.renderer.scroller, "contextmenu", F, t),
                i.addListener(n, "contextmenu", F, t),
                g &&
                  (function (e, t, n) {
                    var i = null,
                      r = !1;
                    n.addEventListener(
                      "keydown",
                      function (e) {
                        i && clearTimeout(i), (r = !0);
                      },
                      !0
                    ),
                      n.addEventListener(
                        "keyup",
                        function (e) {
                          i = setTimeout(function () {
                            r = !1;
                          }, 100);
                        },
                        !0
                      );
                    var o = function (e) {
                      if (
                        document.activeElement === n &&
                        !(r || v || t.$mouseHandler.isMousePressed || f)
                      ) {
                        var i = n.selectionStart,
                          o = n.selectionEnd,
                          s = null,
                          a = 0;
                        if (
                          (0 == i
                            ? (s = u.up)
                            : 1 == i
                            ? (s = u.home)
                            : o > _ && "\n" == C[o]
                            ? (s = u.end)
                            : i < k && " " == C[i - 1]
                            ? ((s = u.left), (a = h.option))
                            : i < k || (i == k && _ != k && i == o)
                            ? (s = u.left)
                            : o > _ && C.slice(0, o).split("\n").length > 2
                            ? (s = u.down)
                            : o > _ && " " == C[o - 1]
                            ? ((s = u.right), (a = h.option))
                            : (o > _ || (o == _ && _ != k && i == o)) &&
                              (s = u.right),
                          i !== o && (a |= h.shift),
                          s)
                        ) {
                          if (!t.onCommandKey({}, a, s) && t.commands) {
                            s = u.keyCodeToString(s);
                            var l = t.commands.findKeyCommand(a, s);
                            l && t.execCommand(l);
                          }
                          (k = i), (_ = o), T("");
                        }
                      }
                    };
                    document.addEventListener("selectionchange", o),
                      t.on("destroy", function () {
                        document.removeEventListener("selectionchange", o);
                      });
                  })(0, t, n);
            }),
              (t.$setUserAgentForTests = function (e, t) {
                (A = e), (g = t);
              });
          }
        ),
        ace.define(
          "ace/mouse/default_handlers",
          ["require", "exports", "module", "ace/lib/useragent"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/useragent");

            function r(e) {
              e.$clickSelection = null;
              var t = e.editor;
              t.setDefaultHandler("mousedown", this.onMouseDown.bind(e)),
                t.setDefaultHandler("dblclick", this.onDoubleClick.bind(e)),
                t.setDefaultHandler("tripleclick", this.onTripleClick.bind(e)),
                t.setDefaultHandler("quadclick", this.onQuadClick.bind(e)),
                t.setDefaultHandler("mousewheel", this.onMouseWheel.bind(e));
              [
                "select",
                "startSelect",
                "selectEnd",
                "selectAllEnd",
                "selectByWordsEnd",
                "selectByLinesEnd",
                "dragWait",
                "dragWaitEnd",
                "focusWait",
              ].forEach(function (t) {
                e[t] = this[t];
              }, this),
                (e.selectByLines = this.extendSelectionBy.bind(
                  e,
                  "getLineRange"
                )),
                (e.selectByWords = this.extendSelectionBy.bind(
                  e,
                  "getWordRange"
                ));
            }

            function o(e, t) {
              if (e.start.row == e.end.row)
                var n = 2 * t.column - e.start.column - e.end.column;
              else if (
                e.start.row != e.end.row - 1 ||
                e.start.column ||
                e.end.column
              )
                n = 2 * t.row - e.start.row - e.end.row;
              else var n = t.column - 4;
              return n < 0
                ? {
                    cursor: e.start,
                    anchor: e.end,
                  }
                : {
                    cursor: e.end,
                    anchor: e.start,
                  };
            }
            (function () {
              (this.onMouseDown = function (e) {
                var t = e.inSelection(),
                  n = e.getDocumentPosition();
                this.mousedownEvent = e;
                var r = this.editor,
                  o = e.getButton();
                return 0 !== o
                  ? ((r.getSelectionRange().isEmpty() || 1 == o) &&
                      r.selection.moveToPosition(n),
                    void (
                      2 == o &&
                      (r.textInput.onContextMenu(e.domEvent),
                      i.isMozilla || e.preventDefault())
                    ))
                  : ((this.mousedownEvent.time = Date.now()),
                    !t ||
                    r.isFocused() ||
                    (r.focus(),
                    !this.$focusTimeout ||
                      this.$clickSelection ||
                      r.inMultiSelectMode)
                      ? (this.captureMouse(e),
                        this.startSelect(n, e.domEvent._clicks > 1),
                        e.preventDefault())
                      : (this.setState("focusWait"),
                        void this.captureMouse(e)));
              }),
                (this.startSelect = function (e, t) {
                  e =
                    e ||
                    this.editor.renderer.screenToTextCoordinates(
                      this.x,
                      this.y
                    );
                  var n = this.editor;
                  this.mousedownEvent &&
                    (this.mousedownEvent.getShiftKey()
                      ? n.selection.selectToPosition(e)
                      : t || n.selection.moveToPosition(e),
                    t || this.select(),
                    n.renderer.scroller.setCapture &&
                      n.renderer.scroller.setCapture(),
                    n.setStyle("ace_selecting"),
                    this.setState("select"));
                }),
                (this.select = function () {
                  var e,
                    t = this.editor,
                    n = t.renderer.screenToTextCoordinates(this.x, this.y);
                  if (this.$clickSelection) {
                    var i = this.$clickSelection.comparePoint(n);
                    if (-1 == i) e = this.$clickSelection.end;
                    else if (1 == i) e = this.$clickSelection.start;
                    else {
                      var r = o(this.$clickSelection, n);
                      (n = r.cursor), (e = r.anchor);
                    }
                    t.selection.setSelectionAnchor(e.row, e.column);
                  }
                  t.selection.selectToPosition(n),
                    t.renderer.scrollCursorIntoView();
                }),
                (this.extendSelectionBy = function (e) {
                  var t,
                    n = this.editor,
                    i = n.renderer.screenToTextCoordinates(this.x, this.y),
                    r = n.selection[e](i.row, i.column);
                  if (this.$clickSelection) {
                    var s = this.$clickSelection.comparePoint(r.start),
                      a = this.$clickSelection.comparePoint(r.end);
                    if (-1 == s && a <= 0)
                      (t = this.$clickSelection.end),
                        (r.end.row == i.row && r.end.column == i.column) ||
                          (i = r.start);
                    else if (1 == a && s >= 0)
                      (t = this.$clickSelection.start),
                        (r.start.row == i.row && r.start.column == i.column) ||
                          (i = r.end);
                    else if (-1 == s && 1 == a) (i = r.end), (t = r.start);
                    else {
                      var l = o(this.$clickSelection, i);
                      (i = l.cursor), (t = l.anchor);
                    }
                    n.selection.setSelectionAnchor(t.row, t.column);
                  }
                  n.selection.selectToPosition(i),
                    n.renderer.scrollCursorIntoView();
                }),
                (this.selectEnd =
                  this.selectAllEnd =
                  this.selectByWordsEnd =
                  this.selectByLinesEnd =
                    function () {
                      (this.$clickSelection = null),
                        this.editor.unsetStyle("ace_selecting"),
                        this.editor.renderer.scroller.releaseCapture &&
                          this.editor.renderer.scroller.releaseCapture();
                    }),
                (this.focusWait = function () {
                  var e,
                    t,
                    n,
                    i,
                    r =
                      ((e = this.mousedownEvent.x),
                      (t = this.mousedownEvent.y),
                      (n = this.x),
                      (i = this.y),
                      Math.sqrt(Math.pow(n - e, 2) + Math.pow(i - t, 2))),
                    o = Date.now();
                  (r > 0 ||
                    o - this.mousedownEvent.time > this.$focusTimeout) &&
                    this.startSelect(this.mousedownEvent.getDocumentPosition());
                }),
                (this.onDoubleClick = function (e) {
                  var t = e.getDocumentPosition(),
                    n = this.editor,
                    i = n.session.getBracketRange(t);
                  i
                    ? (i.isEmpty() && (i.start.column--, i.end.column++),
                      this.setState("select"))
                    : ((i = n.selection.getWordRange(t.row, t.column)),
                      this.setState("selectByWords")),
                    (this.$clickSelection = i),
                    this.select();
                }),
                (this.onTripleClick = function (e) {
                  var t = e.getDocumentPosition(),
                    n = this.editor;
                  this.setState("selectByLines");
                  var i = n.getSelectionRange();
                  i.isMultiLine() && i.contains(t.row, t.column)
                    ? ((this.$clickSelection = n.selection.getLineRange(
                        i.start.row
                      )),
                      (this.$clickSelection.end = n.selection.getLineRange(
                        i.end.row
                      ).end))
                    : (this.$clickSelection = n.selection.getLineRange(t.row)),
                    this.select();
                }),
                (this.onQuadClick = function (e) {
                  var t = this.editor;
                  t.selectAll(),
                    (this.$clickSelection = t.getSelectionRange()),
                    this.setState("selectAll");
                }),
                (this.onMouseWheel = function (e) {
                  if (!e.getAccelKey()) {
                    e.getShiftKey() &&
                      e.wheelY &&
                      !e.wheelX &&
                      ((e.wheelX = e.wheelY), (e.wheelY = 0));
                    var t = this.editor;
                    this.$lastScroll ||
                      (this.$lastScroll = {
                        t: 0,
                        vx: 0,
                        vy: 0,
                        allowed: 0,
                      });
                    var n = this.$lastScroll,
                      i = e.domEvent.timeStamp,
                      r = i - n.t,
                      o = r ? e.wheelX / r : n.vx,
                      s = r ? e.wheelY / r : n.vy;
                    r < 550 && ((o = (o + n.vx) / 2), (s = (s + n.vy) / 2));
                    var a = Math.abs(o / s),
                      l = !1;
                    if (
                      (a >= 1 &&
                        t.renderer.isScrollableBy(e.wheelX * e.speed, 0) &&
                        (l = !0),
                      a <= 1 &&
                        t.renderer.isScrollableBy(0, e.wheelY * e.speed) &&
                        (l = !0),
                      l)
                    )
                      n.allowed = i;
                    else if (i - n.allowed < 550) {
                      Math.abs(o) <= 1.5 * Math.abs(n.vx) &&
                      Math.abs(s) <= 1.5 * Math.abs(n.vy)
                        ? ((l = !0), (n.allowed = i))
                        : (n.allowed = 0);
                    }
                    return (
                      (n.t = i),
                      (n.vx = o),
                      (n.vy = s),
                      l
                        ? (t.renderer.scrollBy(
                            e.wheelX * e.speed,
                            e.wheelY * e.speed
                          ),
                          e.stop())
                        : void 0
                    );
                  }
                });
            }).call(r.prototype),
              (t.DefaultHandlers = r);
          }
        ),
        ace.define(
          "ace/tooltip",
          ["require", "exports", "module", "ace/lib/oop", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            e("./lib/oop");
            var i = e("./lib/dom");

            function r(e) {
              (this.isOpen = !1),
                (this.$element = null),
                (this.$parentNode = e);
            }
            (function () {
              (this.$init = function () {
                return (
                  (this.$element = i.createElement("div")),
                  (this.$element.className = "ace_tooltip"),
                  (this.$element.style.display = "none"),
                  this.$parentNode.appendChild(this.$element),
                  this.$element
                );
              }),
                (this.getElement = function () {
                  return this.$element || this.$init();
                }),
                (this.setText = function (e) {
                  this.getElement().textContent = e;
                }),
                (this.setHtml = function (e) {
                  this.getElement().innerHTML = e;
                }),
                (this.setPosition = function (e, t) {
                  (this.getElement().style.left = e + "px"),
                    (this.getElement().style.top = t + "px");
                }),
                (this.setClassName = function (e) {
                  i.addCssClass(this.getElement(), e);
                }),
                (this.show = function (e, t, n) {
                  null != e && this.setText(e),
                    null != t && null != n && this.setPosition(t, n),
                    this.isOpen ||
                      ((this.getElement().style.display = "block"),
                      (this.isOpen = !0));
                }),
                (this.hide = function () {
                  this.isOpen &&
                    ((this.getElement().style.display = "none"),
                    (this.isOpen = !1));
                }),
                (this.getHeight = function () {
                  return this.getElement().offsetHeight;
                }),
                (this.getWidth = function () {
                  return this.getElement().offsetWidth;
                }),
                (this.destroy = function () {
                  (this.isOpen = !1),
                    this.$element &&
                      this.$element.parentNode &&
                      this.$element.parentNode.removeChild(this.$element);
                });
            }).call(r.prototype),
              (t.Tooltip = r);
          }
        ),
        ace.define(
          "ace/mouse/default_gutter_handler",
          [
            "require",
            "exports",
            "module",
            "ace/lib/dom",
            "ace/lib/oop",
            "ace/lib/event",
            "ace/tooltip",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom"),
              r = e("../lib/oop"),
              o = e("../lib/event"),
              s = e("../tooltip").Tooltip;

            function a(e) {
              s.call(this, e);
            }
            r.inherits(a, s),
              function () {
                this.setPosition = function (e, t) {
                  var n =
                      window.innerWidth || document.documentElement.clientWidth,
                    i =
                      window.innerHeight ||
                      document.documentElement.clientHeight,
                    r = this.getWidth(),
                    o = this.getHeight();
                  (e += 15) + r > n && (e -= e + r - n),
                    (t += 15) + o > i && (t -= 20 + o),
                    s.prototype.setPosition.call(this, e, t);
                };
              }.call(a.prototype),
              (t.GutterHandler = function (e) {
                var t,
                  n,
                  r,
                  s = e.editor,
                  l = s.renderer.$gutterLayer,
                  c = new a(s.container);

                function d() {
                  t && (t = clearTimeout(t)),
                    r &&
                      (c.hide(),
                      (r = null),
                      s._signal("hideGutterTooltip", c),
                      s.off("mousewheel", d));
                }

                function u(e) {
                  c.setPosition(e.x, e.y);
                }
                e.editor.setDefaultHandler("guttermousedown", function (t) {
                  if (
                    s.isFocused() &&
                    0 == t.getButton() &&
                    "foldWidgets" != l.getRegion(t)
                  ) {
                    var n = t.getDocumentPosition().row,
                      i = s.session.selection;
                    if (t.getShiftKey()) i.selectTo(n, 0);
                    else {
                      if (2 == t.domEvent.detail)
                        return s.selectAll(), t.preventDefault();
                      e.$clickSelection = s.selection.getLineRange(n);
                    }
                    return (
                      e.setState("selectByLines"),
                      e.captureMouse(t),
                      t.preventDefault()
                    );
                  }
                }),
                  e.editor.setDefaultHandler("guttermousemove", function (o) {
                    var a = o.domEvent.target || o.domEvent.srcElement;
                    if (i.hasCssClass(a, "ace_fold-widget")) return d();
                    r && e.$tooltipFollowsMouse && u(o),
                      (n = o),
                      t ||
                        (t = setTimeout(function () {
                          (t = null),
                            n && !e.isMousePressed
                              ? (function () {
                                  var t = n.getDocumentPosition().row,
                                    i = l.$annotations[t];
                                  if (!i) return d();
                                  if (t == s.session.getLength()) {
                                    var o = s.renderer.pixelToScreenCoordinates(
                                        0,
                                        n.y
                                      ).row,
                                      a = n.$pos;
                                    if (
                                      o >
                                      s.session.documentToScreenRow(
                                        a.row,
                                        a.column
                                      )
                                    )
                                      return d();
                                  }
                                  if (r != i)
                                    if (
                                      ((r = i.text.join("<br/>")),
                                      c.setHtml(r),
                                      c.show(),
                                      s._signal("showGutterTooltip", c),
                                      s.on("mousewheel", d),
                                      e.$tooltipFollowsMouse)
                                    )
                                      u(n);
                                    else {
                                      var h =
                                          n.domEvent.target.getBoundingClientRect(),
                                        g = c.getElement().style;
                                      (g.left = h.right + "px"),
                                        (g.top = h.bottom + "px");
                                    }
                                })()
                              : d();
                        }, 50));
                  }),
                  o.addListener(
                    s.renderer.$gutter,
                    "mouseout",
                    function (e) {
                      (n = null),
                        r &&
                          !t &&
                          (t = setTimeout(function () {
                            (t = null), d();
                          }, 50));
                    },
                    s
                  ),
                  s.on("changeSession", d);
              });
          }
        ),
        ace.define(
          "ace/mouse/mouse_event",
          [
            "require",
            "exports",
            "module",
            "ace/lib/event",
            "ace/lib/useragent",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/event"),
              r = e("../lib/useragent"),
              o = (t.MouseEvent = function (e, t) {
                (this.domEvent = e),
                  (this.editor = t),
                  (this.x = this.clientX = e.clientX),
                  (this.y = this.clientY = e.clientY),
                  (this.$pos = null),
                  (this.$inSelection = null),
                  (this.propagationStopped = !1),
                  (this.defaultPrevented = !1);
              });
            (function () {
              (this.stopPropagation = function () {
                i.stopPropagation(this.domEvent),
                  (this.propagationStopped = !0);
              }),
                (this.preventDefault = function () {
                  i.preventDefault(this.domEvent), (this.defaultPrevented = !0);
                }),
                (this.stop = function () {
                  this.stopPropagation(), this.preventDefault();
                }),
                (this.getDocumentPosition = function () {
                  return (
                    this.$pos ||
                      (this.$pos = this.editor.renderer.screenToTextCoordinates(
                        this.clientX,
                        this.clientY
                      )),
                    this.$pos
                  );
                }),
                (this.inSelection = function () {
                  if (null !== this.$inSelection) return this.$inSelection;
                  var e = this.editor.getSelectionRange();
                  if (e.isEmpty()) this.$inSelection = !1;
                  else {
                    var t = this.getDocumentPosition();
                    this.$inSelection = e.contains(t.row, t.column);
                  }
                  return this.$inSelection;
                }),
                (this.getButton = function () {
                  return i.getButton(this.domEvent);
                }),
                (this.getShiftKey = function () {
                  return this.domEvent.shiftKey;
                }),
                (this.getAccelKey = r.isMac
                  ? function () {
                      return this.domEvent.metaKey;
                    }
                  : function () {
                      return this.domEvent.ctrlKey;
                    });
            }).call(o.prototype);
          }
        ),
        ace.define(
          "ace/mouse/dragdrop_handler",
          [
            "require",
            "exports",
            "module",
            "ace/lib/dom",
            "ace/lib/event",
            "ace/lib/useragent",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom"),
              r = e("../lib/event"),
              o = e("../lib/useragent");

            function s(e) {
              var t = e.editor,
                n = i.createElement("img");
              (n.src =
                "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),
                o.isOpera &&
                  (n.style.cssText =
                    "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");
              [
                "dragWait",
                "dragWaitEnd",
                "startDrag",
                "dragReadyEnd",
                "onMouseDrag",
              ].forEach(function (t) {
                e[t] = this[t];
              }, this),
                t.on("mousedown", this.onMouseDown.bind(e));
              var s,
                l,
                c,
                d,
                u,
                h,
                g,
                p,
                A,
                f,
                m,
                v = t.container,
                b = 0;

              function w() {
                var e = h;
                (function (e, n) {
                  var i = Date.now(),
                    r = !n || e.row != n.row,
                    o = !n || e.column != n.column;
                  !f || r || o
                    ? (t.moveCursorToPosition(e),
                      (f = i),
                      (m = {
                        x: l,
                        y: c,
                      }))
                    : a(m.x, m.y, l, c) > 5
                    ? (f = null)
                    : i - f >= 200 &&
                      (t.renderer.scrollCursorIntoView(), (f = null));
                })((h = t.renderer.screenToTextCoordinates(l, c)), e),
                  (function (e, n) {
                    var i = Date.now(),
                      r = t.renderer.layerConfig.lineHeight,
                      o = t.renderer.layerConfig.characterWidth,
                      s = t.renderer.scroller.getBoundingClientRect(),
                      a = {
                        x: {
                          left: l - s.left,
                          right: s.right - l,
                        },
                        y: {
                          top: c - s.top,
                          bottom: s.bottom - c,
                        },
                      },
                      d = Math.min(a.x.left, a.x.right),
                      u = Math.min(a.y.top, a.y.bottom),
                      h = {
                        row: e.row,
                        column: e.column,
                      };
                    d / o <= 2 && (h.column += a.x.left < a.x.right ? -3 : 2),
                      u / r <= 1 && (h.row += a.y.top < a.y.bottom ? -1 : 1);
                    var g = e.row != h.row,
                      p = e.column != h.column,
                      f = !n || e.row != n.row;
                    g || (p && !f)
                      ? A
                        ? i - A >= 200 && t.renderer.scrollCursorIntoView(h)
                        : (A = i)
                      : (A = null);
                  })(h, e);
              }

              function y() {
                (u = t.selection.toOrientedRange()),
                  (s = t.session.addMarker(
                    u,
                    "ace_selection",
                    t.getSelectionStyle()
                  )),
                  t.clearSelection(),
                  t.isFocused() && t.renderer.$cursorLayer.setBlinking(!1),
                  clearInterval(d),
                  w(),
                  (d = setInterval(w, 20)),
                  (b = 0),
                  r.addListener(document, "mousemove", k);
              }

              function x() {
                clearInterval(d),
                  t.session.removeMarker(s),
                  (s = null),
                  t.selection.fromOrientedRange(u),
                  t.isFocused() && !p && t.$resetCursorStyle(),
                  (u = null),
                  (h = null),
                  (b = 0),
                  (A = null),
                  (f = null),
                  r.removeListener(document, "mousemove", k);
              }
              (this.onDragStart = function (e) {
                if (this.cancelDrag || !v.draggable) {
                  var i = this;
                  return (
                    setTimeout(function () {
                      i.startSelect(), i.captureMouse(e);
                    }, 0),
                    e.preventDefault()
                  );
                }
                u = t.getSelectionRange();
                var r = e.dataTransfer;
                (r.effectAllowed = t.getReadOnly() ? "copy" : "copyMove"),
                  o.isOpera && (t.container.appendChild(n), (n.scrollTop = 0)),
                  r.setDragImage && r.setDragImage(n, 0, 0),
                  o.isOpera && t.container.removeChild(n),
                  r.clearData(),
                  r.setData("Text", t.session.getTextRange()),
                  (p = !0),
                  this.setState("drag");
              }),
                (this.onDragEnd = function (e) {
                  if (
                    ((v.draggable = !1),
                    (p = !1),
                    this.setState(null),
                    !t.getReadOnly())
                  ) {
                    var n = e.dataTransfer.dropEffect;
                    g || "move" != n || t.session.remove(t.getSelectionRange()),
                      t.$resetCursorStyle();
                  }
                  this.editor.unsetStyle("ace_dragging"),
                    this.editor.renderer.setCursorStyle("");
                }),
                (this.onDragEnter = function (e) {
                  if (!t.getReadOnly() && _(e.dataTransfer))
                    return (
                      (l = e.clientX),
                      (c = e.clientY),
                      s || y(),
                      b++,
                      (e.dataTransfer.dropEffect = g = I(e)),
                      r.preventDefault(e)
                    );
                }),
                (this.onDragOver = function (e) {
                  if (!t.getReadOnly() && _(e.dataTransfer))
                    return (
                      (l = e.clientX),
                      (c = e.clientY),
                      s || (y(), b++),
                      null !== C && (C = null),
                      (e.dataTransfer.dropEffect = g = I(e)),
                      r.preventDefault(e)
                    );
                }),
                (this.onDragLeave = function (e) {
                  if (--b <= 0 && s)
                    return x(), (g = null), r.preventDefault(e);
                }),
                (this.onDrop = function (e) {
                  if (h) {
                    var n = e.dataTransfer;
                    if (p)
                      switch (g) {
                        case "move":
                          u = u.contains(h.row, h.column)
                            ? {
                                start: h,
                                end: h,
                              }
                            : t.moveText(u, h);
                          break;
                        case "copy":
                          u = t.moveText(u, h, !0);
                      }
                    else {
                      var i = n.getData("Text");
                      (u = {
                        start: h,
                        end: t.session.insert(h, i),
                      }),
                        t.focus(),
                        (g = null);
                    }
                    return x(), r.preventDefault(e);
                  }
                }),
                r.addListener(v, "dragstart", this.onDragStart.bind(e), t),
                r.addListener(v, "dragend", this.onDragEnd.bind(e), t),
                r.addListener(v, "dragenter", this.onDragEnter.bind(e), t),
                r.addListener(v, "dragover", this.onDragOver.bind(e), t),
                r.addListener(v, "dragleave", this.onDragLeave.bind(e), t),
                r.addListener(v, "drop", this.onDrop.bind(e), t);
              var C = null;

              function k() {
                null == C &&
                  (C = setTimeout(function () {
                    null != C && s && x();
                  }, 20));
              }

              function _(e) {
                var t = e.types;
                return (
                  !t ||
                  Array.prototype.some.call(t, function (e) {
                    return "text/plain" == e || "Text" == e;
                  })
                );
              }

              function I(e) {
                var t = ["copy", "copymove", "all", "uninitialized"],
                  n = o.isMac ? e.altKey : e.ctrlKey,
                  i = "uninitialized";
                try {
                  i = e.dataTransfer.effectAllowed.toLowerCase();
                } catch (e) {}
                var r = "none";
                return (
                  n && t.indexOf(i) >= 0
                    ? (r = "copy")
                    : [
                        "move",
                        "copymove",
                        "linkmove",
                        "all",
                        "uninitialized",
                      ].indexOf(i) >= 0
                    ? (r = "move")
                    : t.indexOf(i) >= 0 && (r = "copy"),
                  r
                );
              }
            }

            function a(e, t, n, i) {
              return Math.sqrt(Math.pow(n - e, 2) + Math.pow(i - t, 2));
            }
            (function () {
              (this.dragWait = function () {
                Date.now() - this.mousedownEvent.time >
                  this.editor.getDragDelay() && this.startDrag();
              }),
                (this.dragWaitEnd = function () {
                  (this.editor.container.draggable = !1),
                    this.startSelect(this.mousedownEvent.getDocumentPosition()),
                    this.selectEnd();
                }),
                (this.dragReadyEnd = function (e) {
                  this.editor.$resetCursorStyle(),
                    this.editor.unsetStyle("ace_dragging"),
                    this.editor.renderer.setCursorStyle(""),
                    this.dragWaitEnd();
                }),
                (this.startDrag = function () {
                  this.cancelDrag = !1;
                  var e = this.editor;
                  (e.container.draggable = !0),
                    e.renderer.$cursorLayer.setBlinking(!1),
                    e.setStyle("ace_dragging");
                  var t = o.isWin ? "default" : "move";
                  e.renderer.setCursorStyle(t), this.setState("dragReady");
                }),
                (this.onMouseDrag = function (e) {
                  var t = this.editor.container;
                  o.isIE &&
                    "dragReady" == this.state &&
                    a(
                      this.mousedownEvent.x,
                      this.mousedownEvent.y,
                      this.x,
                      this.y
                    ) > 3 &&
                    t.dragDrop();
                  "dragWait" === this.state &&
                    a(
                      this.mousedownEvent.x,
                      this.mousedownEvent.y,
                      this.x,
                      this.y
                    ) > 0 &&
                    ((t.draggable = !1),
                    this.startSelect(
                      this.mousedownEvent.getDocumentPosition()
                    ));
                }),
                (this.onMouseDown = function (e) {
                  if (this.$dragEnabled) {
                    this.mousedownEvent = e;
                    var t = this.editor,
                      n = e.inSelection(),
                      i = e.getButton();
                    if (1 === (e.domEvent.detail || 1) && 0 === i && n) {
                      if (
                        e.editor.inMultiSelectMode &&
                        (e.getAccelKey() || e.getShiftKey())
                      )
                        return;
                      this.mousedownEvent.time = Date.now();
                      var r = e.domEvent.target || e.domEvent.srcElement;
                      if (
                        ("unselectable" in r && (r.unselectable = "on"),
                        t.getDragDelay())
                      ) {
                        if (o.isWebKit)
                          (this.cancelDrag = !0), (t.container.draggable = !0);
                        this.setState("dragWait");
                      } else this.startDrag();
                      this.captureMouse(e, this.onMouseDrag.bind(this)),
                        (e.defaultPrevented = !0);
                    }
                  }
                });
            }).call(s.prototype),
              (t.DragdropHandler = s);
          }
        ),
        ace.define(
          "ace/mouse/touch_handler",
          [
            "require",
            "exports",
            "module",
            "ace/mouse/mouse_event",
            "ace/lib/event",
            "ace/lib/dom",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./mouse_event").MouseEvent,
              r = e("../lib/event"),
              o = e("../lib/dom");
            t.addTouchListeners = function (e, t) {
              var n,
                s,
                a,
                l,
                c,
                d,
                u,
                h,
                g,
                p = "scroll",
                A = 0,
                f = 0,
                m = 0,
                v = 0;

              function b() {
                var e = window.navigator && window.navigator.clipboard,
                  n = !1,
                  i = function (i) {
                    var r,
                      s,
                      a = i.target.getAttribute("action");
                    if ("more" == a || !n)
                      return (
                        (n = !n),
                        (r = t.getCopyText()),
                        (s = t.session.getUndoManager().hasUndo()),
                        void g.replaceChild(
                          o.buildDom(
                            n
                              ? [
                                  "span",
                                  !r && [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "selectall",
                                    },
                                    "Select All",
                                  ],
                                  r && [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "copy",
                                    },
                                    "Copy",
                                  ],
                                  r && [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "cut",
                                    },
                                    "Cut",
                                  ],
                                  e && [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "paste",
                                    },
                                    "Paste",
                                  ],
                                  s && [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "undo",
                                    },
                                    "Undo",
                                  ],
                                  [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "find",
                                    },
                                    "Find",
                                  ],
                                  [
                                    "span",
                                    {
                                      class: "ace_mobile-button",
                                      action: "openCommandPallete",
                                    },
                                    "Pallete",
                                  ],
                                ]
                              : ["span"]
                          ),
                          g.firstChild
                        )
                      );
                    "paste" == a
                      ? e.readText().then(function (e) {
                          t.execCommand(a, e);
                        })
                      : a &&
                        (("cut" != a && "copy" != a) ||
                          (e
                            ? e.writeText(t.getCopyText())
                            : document.execCommand("copy")),
                        t.execCommand(a)),
                      (g.firstChild.style.display = "none"),
                      (n = !1),
                      "openCommandPallete" != a && t.focus();
                  };
                g = o.buildDom(
                  [
                    "div",
                    {
                      class: "ace_mobile-menu",
                      ontouchstart: function (e) {
                        (p = "menu"),
                          e.stopPropagation(),
                          e.preventDefault(),
                          t.textInput.focus();
                      },
                      ontouchend: function (e) {
                        e.stopPropagation(), e.preventDefault(), i(e);
                      },
                      onclick: i,
                    },
                    ["span"],
                    [
                      "span",
                      {
                        class: "ace_mobile-button",
                        action: "more",
                      },
                      "...",
                    ],
                  ],
                  t.container
                );
              }

              function w() {
                g || b();
                var e = t.selection.cursor,
                  n = t.renderer.textToScreenCoordinates(e.row, e.column),
                  i = t.renderer.textToScreenCoordinates(0, 0).pageX,
                  r = t.renderer.scrollLeft,
                  o = t.container.getBoundingClientRect();
                (g.style.top = n.pageY - o.top - 3 + "px"),
                  n.pageX - o.left < o.width - 70
                    ? ((g.style.left = ""), (g.style.right = "10px"))
                    : ((g.style.right = ""),
                      (g.style.left = i + r - o.left + "px")),
                  (g.style.display = ""),
                  (g.firstChild.style.display = "none"),
                  t.on("input", y);
              }

              function y(e) {
                g && (g.style.display = "none"), t.off("input", y);
              }

              function x() {
                (c = null), clearTimeout(c);
                var e = t.selection.getRange(),
                  n = e.contains(u.row, u.column);
                (!e.isEmpty() && n) ||
                  (t.selection.moveToPosition(u), t.selection.selectWord()),
                  (p = "wait"),
                  w();
              }
              r.addListener(
                e,
                "contextmenu",
                function (e) {
                  h && t.textInput.getElement().focus();
                },
                t
              ),
                r.addListener(
                  e,
                  "touchstart",
                  function (e) {
                    var r = e.touches;
                    if (c || r.length > 1)
                      return (
                        clearTimeout(c), (c = null), (a = -1), void (p = "zoom")
                      );
                    h = t.$mouseHandler.isMousePressed = !0;
                    var o = t.renderer.layerConfig.lineHeight,
                      d = t.renderer.layerConfig.lineHeight,
                      g = e.timeStamp;
                    l = g;
                    var b = r[0],
                      w = b.clientX,
                      y = b.clientY;
                    Math.abs(n - w) + Math.abs(s - y) > o && (a = -1),
                      (n = e.clientX = w),
                      (s = e.clientY = y),
                      (m = v = 0);
                    var C = new i(e, t);
                    if (
                      ((u = C.getDocumentPosition()),
                      g - a < 500 && 1 == r.length && !A)
                    )
                      f++,
                        e.preventDefault(),
                        (e.button = 0),
                        (function () {
                          (c = null),
                            clearTimeout(c),
                            t.selection.moveToPosition(u);
                          var e =
                            f >= 2
                              ? t.selection.getLineRange(u.row)
                              : t.session.getBracketRange(u);
                          e && !e.isEmpty()
                            ? t.selection.setRange(e)
                            : t.selection.selectWord(),
                            (p = "wait");
                        })();
                    else {
                      f = 0;
                      var k = t.selection.cursor,
                        _ = t.selection.isEmpty() ? k : t.selection.anchor,
                        I = t.renderer.$cursorLayer.getPixelPosition(k, !0),
                        E = t.renderer.$cursorLayer.getPixelPosition(_, !0),
                        T = t.renderer.scroller.getBoundingClientRect(),
                        S = t.renderer.layerConfig.offset,
                        L = t.renderer.scrollLeft,
                        j = function (e, t) {
                          return (e /= d) * e + (t = t / o - 0.75) * t;
                        };
                      if (e.clientX < T.left) return void (p = "zoom");
                      var R = j(
                          e.clientX - T.left - I.left + L,
                          e.clientY - T.top - I.top + S
                        ),
                        B = j(
                          e.clientX - T.left - E.left + L,
                          e.clientY - T.top - E.top + S
                        );
                      R < 3.5 && B < 3.5 && (p = R > B ? "cursor" : "anchor"),
                        (p =
                          B < 3.5 ? "anchor" : R < 3.5 ? "cursor" : "scroll"),
                        (c = setTimeout(x, 450));
                    }
                    a = g;
                  },
                  t
                ),
                r.addListener(
                  e,
                  "touchend",
                  function (e) {
                    (h = t.$mouseHandler.isMousePressed = !1),
                      d && clearInterval(d),
                      "zoom" == p
                        ? ((p = ""), (A = 0))
                        : c
                        ? (t.selection.moveToPosition(u), (A = 0), w())
                        : "scroll" == p
                        ? ((A += 60),
                          (d = setInterval(function () {
                            A-- <= 0 && (clearInterval(d), (d = null)),
                              Math.abs(m) < 0.01 && (m = 0),
                              Math.abs(v) < 0.01 && (v = 0),
                              A < 20 && (m *= 0.9),
                              A < 20 && (v *= 0.9);
                            var e = t.session.getScrollTop();
                            t.renderer.scrollBy(10 * m, 10 * v),
                              e == t.session.getScrollTop() && (A = 0);
                          }, 10)),
                          y())
                        : w(),
                      clearTimeout(c),
                      (c = null);
                  },
                  t
                ),
                r.addListener(
                  e,
                  "touchmove",
                  function (e) {
                    c && (clearTimeout(c), (c = null));
                    var r = e.touches;
                    if (!(r.length > 1 || "zoom" == p)) {
                      var o = r[0],
                        a = n - o.clientX,
                        d = s - o.clientY;
                      if ("wait" == p) {
                        if (!(a * a + d * d > 4)) return e.preventDefault();
                        p = "cursor";
                      }
                      (n = o.clientX),
                        (s = o.clientY),
                        (e.clientX = o.clientX),
                        (e.clientY = o.clientY);
                      var u = e.timeStamp,
                        h = u - l;
                      if (((l = u), "scroll" == p)) {
                        var g = new i(e, t);
                        (g.speed = 1),
                          (g.wheelX = a),
                          (g.wheelY = d),
                          10 * Math.abs(a) < Math.abs(d) && (a = 0),
                          10 * Math.abs(d) < Math.abs(a) && (d = 0),
                          0 != h && ((m = a / h), (v = d / h)),
                          t._emit("mousewheel", g),
                          g.propagationStopped || (m = v = 0);
                      } else {
                        var A = new i(e, t).getDocumentPosition();
                        "cursor" == p
                          ? t.selection.moveCursorToPosition(A)
                          : "anchor" == p &&
                            t.selection.setSelectionAnchor(A.row, A.column),
                          t.renderer.scrollCursorIntoView(A),
                          e.preventDefault();
                      }
                    }
                  },
                  t
                );
            };
          }
        ),
        ace.define(
          "ace/lib/net",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("./dom");
            (t.get = function (e, t) {
              var n = new XMLHttpRequest();
              n.open("GET", e, !0),
                (n.onreadystatechange = function () {
                  4 === n.readyState && t(n.responseText);
                }),
                n.send(null);
            }),
              (t.loadScript = function (e, t) {
                var n = i.getDocumentHead(),
                  r = document.createElement("script");
                (r.src = e),
                  n.appendChild(r),
                  (r.onload = r.onreadystatechange =
                    function (e, n) {
                      (!n &&
                        r.readyState &&
                        "loaded" != r.readyState &&
                        "complete" != r.readyState) ||
                        ((r = r.onload = r.onreadystatechange = null),
                        n || t());
                    });
              }),
              (t.qualifyURL = function (e) {
                var t = document.createElement("a");
                return (t.href = e), t.href;
              });
          }
        ),
        ace.define(
          "ace/lib/event_emitter",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i = {},
              r = function () {
                this.propagationStopped = !0;
              },
              o = function () {
                this.defaultPrevented = !0;
              };
            (i._emit = i._dispatchEvent =
              function (e, t) {
                this._eventRegistry || (this._eventRegistry = {}),
                  this._defaultHandlers || (this._defaultHandlers = {});
                var n = this._eventRegistry[e] || [],
                  i = this._defaultHandlers[e];
                if (n.length || i) {
                  ("object" == typeof t && t) || (t = {}),
                    t.type || (t.type = e),
                    t.stopPropagation || (t.stopPropagation = r),
                    t.preventDefault || (t.preventDefault = o),
                    (n = n.slice());
                  for (
                    var s = 0;
                    s < n.length && (n[s](t, this), !t.propagationStopped);
                    s++
                  );
                  return i && !t.defaultPrevented ? i(t, this) : void 0;
                }
              }),
              (i._signal = function (e, t) {
                var n = (this._eventRegistry || {})[e];
                if (n) {
                  n = n.slice();
                  for (var i = 0; i < n.length; i++) n[i](t, this);
                }
              }),
              (i.once = function (e, t) {
                var n = this;
                if (
                  (this.on(e, function i() {
                    n.off(e, i), t.apply(null, arguments);
                  }),
                  !t)
                )
                  return new Promise(function (e) {
                    t = e;
                  });
              }),
              (i.setDefaultHandler = function (e, t) {
                var n = this._defaultHandlers;
                if (
                  (n ||
                    (n = this._defaultHandlers =
                      {
                        _disabled_: {},
                      }),
                  n[e])
                ) {
                  var i = n[e],
                    r = n._disabled_[e];
                  r || (n._disabled_[e] = r = []), r.push(i);
                  var o = r.indexOf(t);
                  -1 != o && r.splice(o, 1);
                }
                n[e] = t;
              }),
              (i.removeDefaultHandler = function (e, t) {
                var n = this._defaultHandlers;
                if (n) {
                  var i = n._disabled_[e];
                  if (n[e] == t) i && this.setDefaultHandler(e, i.pop());
                  else if (i) {
                    var r = i.indexOf(t);
                    -1 != r && i.splice(r, 1);
                  }
                }
              }),
              (i.on = i.addEventListener =
                function (e, t, n) {
                  this._eventRegistry = this._eventRegistry || {};
                  var i = this._eventRegistry[e];
                  return (
                    i || (i = this._eventRegistry[e] = []),
                    -1 == i.indexOf(t) && i[n ? "unshift" : "push"](t),
                    t
                  );
                }),
              (i.off =
                i.removeListener =
                i.removeEventListener =
                  function (e, t) {
                    this._eventRegistry = this._eventRegistry || {};
                    var n = this._eventRegistry[e];
                    if (n) {
                      var i = n.indexOf(t);
                      -1 !== i && n.splice(i, 1);
                    }
                  }),
              (i.removeAllListeners = function (e) {
                e || (this._eventRegistry = this._defaultHandlers = void 0),
                  this._eventRegistry && (this._eventRegistry[e] = void 0),
                  this._defaultHandlers && (this._defaultHandlers[e] = void 0);
              }),
              (t.EventEmitter = i);
          }
        ),
        ace.define(
          "ace/lib/app_config",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            var i = e("./oop"),
              r = e("./event_emitter").EventEmitter,
              o = {
                setOptions: function (e) {
                  Object.keys(e).forEach(function (t) {
                    this.setOption(t, e[t]);
                  }, this);
                },
                getOptions: function (e) {
                  var t = {};
                  if (e) Array.isArray(e) || ((t = e), (e = Object.keys(t)));
                  else {
                    var n = this.$options;
                    e = Object.keys(n).filter(function (e) {
                      return !n[e].hidden;
                    });
                  }
                  return (
                    e.forEach(function (e) {
                      t[e] = this.getOption(e);
                    }, this),
                    t
                  );
                },
                setOption: function (e, t) {
                  if (this["$" + e] !== t) {
                    var n = this.$options[e];
                    if (!n) return s('misspelled option "' + e + '"');
                    if (n.forwardTo)
                      return (
                        this[n.forwardTo] && this[n.forwardTo].setOption(e, t)
                      );
                    n.handlesSet || (this["$" + e] = t),
                      n && n.set && n.set.call(this, t);
                  }
                },
                getOption: function (e) {
                  var t = this.$options[e];
                  return t
                    ? t.forwardTo
                      ? this[t.forwardTo] && this[t.forwardTo].getOption(e)
                      : t && t.get
                      ? t.get.call(this)
                      : this["$" + e]
                    : s('misspelled option "' + e + '"');
                },
              };

            function s(e) {
              "undefined" != typeof console &&
                console.warn &&
                console.warn.apply(console, arguments);
            }

            function a(e, t) {
              var n = new Error(e);
              (n.data = t),
                "object" == typeof console && console.error && console.error(n),
                setTimeout(function () {
                  throw n;
                });
            }
            var l = function () {
              this.$defaultOptions = {};
            };
            (function () {
              i.implement(this, r),
                (this.defineOptions = function (e, t, n) {
                  return (
                    e.$options || (this.$defaultOptions[t] = e.$options = {}),
                    Object.keys(n).forEach(function (t) {
                      var i = n[t];
                      "string" == typeof i &&
                        (i = {
                          forwardTo: i,
                        }),
                        i.name || (i.name = t),
                        (e.$options[i.name] = i),
                        "initialValue" in i &&
                          (e["$" + i.name] = i.initialValue);
                    }),
                    i.implement(e, o),
                    this
                  );
                }),
                (this.resetOptions = function (e) {
                  Object.keys(e.$options).forEach(function (t) {
                    var n = e.$options[t];
                    "value" in n && e.setOption(t, n.value);
                  });
                }),
                (this.setDefaultValue = function (e, t, n) {
                  if (!e) {
                    for (e in this.$defaultOptions)
                      if (this.$defaultOptions[e][t]) break;
                    if (!this.$defaultOptions[e][t]) return !1;
                  }
                  var i =
                    this.$defaultOptions[e] || (this.$defaultOptions[e] = {});
                  i[t] &&
                    (i.forwardTo
                      ? this.setDefaultValue(i.forwardTo, t, n)
                      : (i[t].value = n));
                }),
                (this.setDefaultValues = function (e, t) {
                  Object.keys(t).forEach(function (n) {
                    this.setDefaultValue(e, n, t[n]);
                  }, this);
                }),
                (this.warn = s),
                (this.reportError = a);
            }).call(l.prototype),
              (t.AppConfig = l);
          }
        ),
        ace.define(
          "ace/config",
          [
            "require",
            "exports",
            "module",
            "ace/lib/lang",
            "ace/lib/oop",
            "ace/lib/net",
            "ace/lib/app_config",
          ],
          function (e, t, i) {
            var r = e("./lib/lang"),
              o = (e("./lib/oop"), e("./lib/net")),
              s = e("./lib/app_config").AppConfig;
            i.exports = t = new s();
            var a = (function () {
                return this || ("undefined" != typeof window && window);
              })(),
              l = {
                packaged: !1,
                workerPath: null,
                modePath: null,
                themePath: null,
                basePath: "",
                suffix: ".js",
                $moduleUrls: {},
                loadWorkerFromBlob: !0,
                sharedPopups: !1,
              };
            (t.get = function (e) {
              if (!l.hasOwnProperty(e))
                throw new Error("Unknown config key: " + e);
              return l[e];
            }),
              (t.set = function (e, t) {
                if (l.hasOwnProperty(e)) l[e] = t;
                else if (0 == this.setDefaultValue("", e, t))
                  throw new Error("Unknown config key: " + e);
              }),
              (t.all = function () {
                return r.copyObject(l);
              }),
              (t.$modes = {}),
              (t.moduleUrl = function (e, t) {
                if (l.$moduleUrls[e]) return l.$moduleUrls[e];
                var n = e.split("/"),
                  i =
                    "snippets" == (t = t || n[n.length - 2] || "") ? "/" : "-",
                  r = n[n.length - 1];
                if ("worker" == t && "-" == i) {
                  var o = new RegExp("^" + t + "[\\-_]|[\\-_]" + t + "$", "g");
                  r = r.replace(o, "");
                }
                (!r || r == t) && n.length > 1 && (r = n[n.length - 2]);
                var s = l[t + "Path"];
                return (
                  null == s ? (s = l.basePath) : "/" == i && (t = i = ""),
                  s && "/" != s.slice(-1) && (s += "/"),
                  s + t + i + r + this.get("suffix")
                );
              }),
              (t.setModuleUrl = function (e, t) {
                return (l.$moduleUrls[e] = t);
              }),
              (t.$loading = {}),
              (t.loadModule = function (n, i) {
                var r, s;
                Array.isArray(n) && ((s = n[0]), (n = n[1]));
                try {
                  r = e(n);
                } catch (e) {}
                if (r && !t.$loading[n]) return i && i(r);
                if (
                  (t.$loading[n] || (t.$loading[n] = []),
                  t.$loading[n].push(i),
                  !(t.$loading[n].length > 1))
                ) {
                  var a = function () {
                    e([n], function (e) {
                      t._emit("load.module", {
                        name: n,
                        module: e,
                      });
                      var i = t.$loading[n];
                      (t.$loading[n] = null),
                        i.forEach(function (t) {
                          t && t(e);
                        });
                    });
                  };
                  if (!t.get("packaged")) return a();
                  o.loadScript(t.moduleUrl(n, s), a), c();
                }
              });
            var c = function () {
              l.basePath ||
                l.workerPath ||
                l.modePath ||
                l.themePath ||
                Object.keys(l.$moduleUrls).length ||
                (console.error(
                  "Unable to infer path to ace from script src,",
                  "use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes",
                  "or with webpack use ace/webpack-resolver"
                ),
                (c = function () {}));
            };

            function d(r) {
              if (a && a.document) {
                l.packaged =
                  r || e.packaged || i.packaged || (a.define && n(13).packaged);
                for (
                  var o,
                    s = {},
                    c = "",
                    d = document.currentScript || document._currentScript,
                    u = (
                      (d && d.ownerDocument) ||
                      document
                    ).getElementsByTagName("script"),
                    h = 0;
                  h < u.length;
                  h++
                ) {
                  var g = u[h],
                    p = g.src || g.getAttribute("src");
                  if (p) {
                    for (
                      var A = g.attributes, f = 0, m = A.length;
                      f < m;
                      f++
                    ) {
                      var v = A[f];
                      0 === v.name.indexOf("data-ace-") &&
                        (s[
                          ((o = v.name.replace(/^data-ace-/, "")),
                          o.replace(/-(.)/g, function (e, t) {
                            return t.toUpperCase();
                          }))
                        ] = v.value);
                    }
                    var b = p.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);
                    b && (c = b[1]);
                  }
                }
                for (var w in (c && ((s.base = s.base || c), (s.packaged = !0)),
                (s.basePath = s.base),
                (s.workerPath = s.workerPath || s.base),
                (s.modePath = s.modePath || s.base),
                (s.themePath = s.themePath || s.base),
                delete s.base,
                s))
                  void 0 !== s[w] && t.set(w, s[w]);
              }
            }
            d(!0), (t.init = d), (t.version = "1.4.12");
          }
        ),
        ace.define(
          "ace/mouse/mouse_handler",
          [
            "require",
            "exports",
            "module",
            "ace/lib/event",
            "ace/lib/useragent",
            "ace/mouse/default_handlers",
            "ace/mouse/default_gutter_handler",
            "ace/mouse/mouse_event",
            "ace/mouse/dragdrop_handler",
            "ace/mouse/touch_handler",
            "ace/config",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/event"),
              r = e("../lib/useragent"),
              o = e("./default_handlers").DefaultHandlers,
              s = e("./default_gutter_handler").GutterHandler,
              a = e("./mouse_event").MouseEvent,
              l = e("./dragdrop_handler").DragdropHandler,
              c = e("./touch_handler").addTouchListeners,
              d = e("../config"),
              u = function (e) {
                var t = this;
                (this.editor = e), new o(this), new s(this), new l(this);
                var n = function (t) {
                    (!document.hasFocus ||
                      !document.hasFocus() ||
                      (!e.isFocused() &&
                        document.activeElement ==
                          (e.textInput && e.textInput.getElement()))) &&
                      window.focus(),
                      e.focus();
                  },
                  a = e.renderer.getMouseEventTarget();
                i.addListener(
                  a,
                  "click",
                  this.onMouseEvent.bind(this, "click"),
                  e
                ),
                  i.addListener(
                    a,
                    "mousemove",
                    this.onMouseMove.bind(this, "mousemove"),
                    e
                  ),
                  i.addMultiMouseDownListener(
                    [
                      a,
                      e.renderer.scrollBarV && e.renderer.scrollBarV.inner,
                      e.renderer.scrollBarH && e.renderer.scrollBarH.inner,
                      e.textInput && e.textInput.getElement(),
                    ].filter(Boolean),
                    [400, 300, 250],
                    this,
                    "onMouseEvent",
                    e
                  ),
                  i.addMouseWheelListener(
                    e.container,
                    this.onMouseWheel.bind(this, "mousewheel"),
                    e
                  ),
                  c(e.container, e);
                var d = e.renderer.$gutter;
                i.addListener(
                  d,
                  "mousedown",
                  this.onMouseEvent.bind(this, "guttermousedown"),
                  e
                ),
                  i.addListener(
                    d,
                    "click",
                    this.onMouseEvent.bind(this, "gutterclick"),
                    e
                  ),
                  i.addListener(
                    d,
                    "dblclick",
                    this.onMouseEvent.bind(this, "gutterdblclick"),
                    e
                  ),
                  i.addListener(
                    d,
                    "mousemove",
                    this.onMouseEvent.bind(this, "guttermousemove"),
                    e
                  ),
                  i.addListener(a, "mousedown", n, e),
                  i.addListener(d, "mousedown", n, e),
                  r.isIE &&
                    e.renderer.scrollBarV &&
                    (i.addListener(
                      e.renderer.scrollBarV.element,
                      "mousedown",
                      n,
                      e
                    ),
                    i.addListener(
                      e.renderer.scrollBarH.element,
                      "mousedown",
                      n,
                      e
                    )),
                  e.on(
                    "mousemove",
                    function (n) {
                      if (!t.state && !t.$dragDelay && t.$dragEnabled) {
                        var i = e.renderer.screenToTextCoordinates(n.x, n.y),
                          r = e.session.selection.getRange(),
                          o = e.renderer;
                        !r.isEmpty() && r.insideStart(i.row, i.column)
                          ? o.setCursorStyle("default")
                          : o.setCursorStyle("");
                      }
                    },
                    e
                  );
              };
            (function () {
              (this.onMouseEvent = function (e, t) {
                this.editor._emit(e, new a(t, this.editor));
              }),
                (this.onMouseMove = function (e, t) {
                  var n =
                    this.editor._eventRegistry &&
                    this.editor._eventRegistry.mousemove;
                  n && n.length && this.editor._emit(e, new a(t, this.editor));
                }),
                (this.onMouseWheel = function (e, t) {
                  var n = new a(t, this.editor);
                  (n.speed = 2 * this.$scrollSpeed),
                    (n.wheelX = t.wheelX),
                    (n.wheelY = t.wheelY),
                    this.editor._emit(e, n);
                }),
                (this.setState = function (e) {
                  this.state = e;
                }),
                (this.captureMouse = function (e, t) {
                  (this.x = e.x), (this.y = e.y), (this.isMousePressed = !0);
                  var n = this.editor,
                    o = this.editor.renderer;
                  o.$isMousePressed = !0;
                  var s = this,
                    l = function (e) {
                      if (e) {
                        if (r.isWebKit && !e.which && s.releaseMouse)
                          return s.releaseMouse();
                        (s.x = e.clientX),
                          (s.y = e.clientY),
                          t && t(e),
                          (s.mouseEvent = new a(e, s.editor)),
                          (s.$mouseMoved = !0);
                      }
                    },
                    c = function (e) {
                      n.off("beforeEndOperation", u),
                        clearInterval(h),
                        d(),
                        s[s.state + "End"] && s[s.state + "End"](e),
                        (s.state = ""),
                        (s.isMousePressed = o.$isMousePressed = !1),
                        o.$keepTextAreaAtCursor && o.$moveTextAreaToCursor(),
                        (s.$onCaptureMouseMove = s.releaseMouse = null),
                        e && s.onMouseEvent("mouseup", e),
                        n.endOperation();
                    },
                    d = function () {
                      s[s.state] && s[s.state](), (s.$mouseMoved = !1);
                    };
                  if (r.isOldIE && "dblclick" == e.domEvent.type)
                    return setTimeout(function () {
                      c(e);
                    });
                  var u = function (e) {
                    s.releaseMouse &&
                      n.curOp.command.name &&
                      n.curOp.selectionChanged &&
                      (s[s.state + "End"] && s[s.state + "End"](),
                      (s.state = ""),
                      s.releaseMouse());
                  };
                  n.on("beforeEndOperation", u),
                    n.startOperation({
                      command: {
                        name: "mouse",
                      },
                    }),
                    (s.$onCaptureMouseMove = l),
                    (s.releaseMouse = i.capture(this.editor.container, l, c));
                  var h = setInterval(d, 20);
                }),
                (this.releaseMouse = null),
                (this.cancelContextMenu = function () {
                  var e = function (t) {
                    (t && t.domEvent && "contextmenu" != t.domEvent.type) ||
                      (this.editor.off("nativecontextmenu", e),
                      t && t.domEvent && i.stopEvent(t.domEvent));
                  }.bind(this);
                  setTimeout(e, 10), this.editor.on("nativecontextmenu", e);
                }),
                (this.destroy = function () {
                  this.releaseMouse && this.releaseMouse();
                });
            }).call(u.prototype),
              d.defineOptions(u.prototype, "mouseHandler", {
                scrollSpeed: {
                  initialValue: 2,
                },
                dragDelay: {
                  initialValue: r.isMac ? 150 : 0,
                },
                dragEnabled: {
                  initialValue: !0,
                },
                focusTimeout: {
                  initialValue: 0,
                },
                tooltipFollowsMouse: {
                  initialValue: !0,
                },
              }),
              (t.MouseHandler = u);
          }
        ),
        ace.define(
          "ace/mouse/fold_handler",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom");
            t.FoldHandler = function (e) {
              e.on("click", function (t) {
                var n = t.getDocumentPosition(),
                  r = e.session,
                  o = r.getFoldAt(n.row, n.column, 1);
                o &&
                  (t.getAccelKey() ? r.removeFold(o) : r.expandFold(o),
                  t.stop());
                var s = t.domEvent && t.domEvent.target;
                s &&
                  i.hasCssClass(s, "ace_inline_button") &&
                  i.hasCssClass(s, "ace_toggle_wrap") &&
                  (r.setOption("wrap", !r.getUseWrapMode()),
                  e.renderer.scrollCursorIntoView());
              }),
                e.on("gutterclick", function (t) {
                  if ("foldWidgets" == e.renderer.$gutterLayer.getRegion(t)) {
                    var n = t.getDocumentPosition().row,
                      i = e.session;
                    i.foldWidgets &&
                      i.foldWidgets[n] &&
                      e.session.onFoldWidgetClick(n, t),
                      e.isFocused() || e.focus(),
                      t.stop();
                  }
                }),
                e.on("gutterdblclick", function (t) {
                  if ("foldWidgets" == e.renderer.$gutterLayer.getRegion(t)) {
                    var n = t.getDocumentPosition().row,
                      i = e.session,
                      r = i.getParentFoldRangeData(n, !0),
                      o = r.range || r.firstRange;
                    if (o) {
                      n = o.start.row;
                      var s = i.getFoldAt(n, i.getLine(n).length, 1);
                      s
                        ? i.removeFold(s)
                        : (i.addFold("...", o),
                          e.renderer.scrollCursorIntoView({
                            row: o.start.row,
                            column: 0,
                          }));
                    }
                    t.stop();
                  }
                });
            };
          }
        ),
        ace.define(
          "ace/keyboard/keybinding",
          ["require", "exports", "module", "ace/lib/keys", "ace/lib/event"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/keys"),
              r = e("../lib/event"),
              o = function (e) {
                (this.$editor = e),
                  (this.$data = {
                    editor: e,
                  }),
                  (this.$handlers = []),
                  this.setDefaultHandler(e.commands);
              };
            (function () {
              (this.setDefaultHandler = function (e) {
                this.removeKeyboardHandler(this.$defaultHandler),
                  (this.$defaultHandler = e),
                  this.addKeyboardHandler(e, 0);
              }),
                (this.setKeyboardHandler = function (e) {
                  var t = this.$handlers;
                  if (t[t.length - 1] != e) {
                    for (
                      ;
                      t[t.length - 1] &&
                      t[t.length - 1] != this.$defaultHandler;

                    )
                      this.removeKeyboardHandler(t[t.length - 1]);
                    this.addKeyboardHandler(e, 1);
                  }
                }),
                (this.addKeyboardHandler = function (e, t) {
                  if (e) {
                    "function" != typeof e ||
                      e.handleKeyboard ||
                      (e.handleKeyboard = e);
                    var n = this.$handlers.indexOf(e);
                    -1 != n && this.$handlers.splice(n, 1),
                      null == t
                        ? this.$handlers.push(e)
                        : this.$handlers.splice(t, 0, e),
                      -1 == n && e.attach && e.attach(this.$editor);
                  }
                }),
                (this.removeKeyboardHandler = function (e) {
                  var t = this.$handlers.indexOf(e);
                  return (
                    -1 != t &&
                    (this.$handlers.splice(t, 1),
                    e.detach && e.detach(this.$editor),
                    !0)
                  );
                }),
                (this.getKeyboardHandler = function () {
                  return this.$handlers[this.$handlers.length - 1];
                }),
                (this.getStatusText = function () {
                  var e = this.$data,
                    t = e.editor;
                  return this.$handlers
                    .map(function (n) {
                      return (n.getStatusText && n.getStatusText(t, e)) || "";
                    })
                    .filter(Boolean)
                    .join(" ");
                }),
                (this.$callKeyboardHandlers = function (e, t, n, i) {
                  for (
                    var o,
                      s = !1,
                      a = this.$editor.commands,
                      l = this.$handlers.length;
                    l-- &&
                    !(
                      (o = this.$handlers[l].handleKeyboard(
                        this.$data,
                        e,
                        t,
                        n,
                        i
                      )) &&
                      o.command &&
                      ((s =
                        "null" == o.command ||
                        a.exec(o.command, this.$editor, o.args, i)) &&
                        i &&
                        -1 != e &&
                        1 != o.passEvent &&
                        1 != o.command.passEvent &&
                        r.stopEvent(i),
                      s)
                    );

                  );
                  return (
                    s ||
                      -1 != e ||
                      ((o = {
                        command: "insertstring",
                      }),
                      (s = a.exec("insertstring", this.$editor, t))),
                    s &&
                      this.$editor._signal &&
                      this.$editor._signal("keyboardActivity", o),
                    s
                  );
                }),
                (this.onCommandKey = function (e, t, n) {
                  var r = i.keyCodeToString(n);
                  return this.$callKeyboardHandlers(t, r, n, e);
                }),
                (this.onTextInput = function (e) {
                  return this.$callKeyboardHandlers(-1, e);
                });
            }).call(o.prototype),
              (t.KeyBinding = o);
          }
        ),
        ace.define(
          "ace/lib/bidiutil",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i = 0,
              r = 0,
              o = !1,
              s = !1,
              a = !1,
              l = [
                [0, 3, 0, 1, 0, 0, 0],
                [0, 3, 0, 1, 2, 2, 0],
                [0, 3, 0, 17, 2, 0, 1],
                [0, 3, 5, 5, 4, 1, 0],
                [0, 3, 21, 21, 4, 0, 1],
                [0, 3, 5, 5, 4, 2, 0],
              ],
              c = [
                [2, 0, 1, 1, 0, 1, 0],
                [2, 0, 1, 1, 0, 2, 0],
                [2, 0, 2, 1, 3, 2, 0],
                [2, 0, 2, 33, 3, 1, 1],
              ],
              d = [
                18, 18, 18, 18, 18, 18, 18, 18, 18, 6, 5, 6, 8, 5, 18, 18, 18,
                18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 5, 5, 5, 6, 8, 4, 4,
                11, 11, 11, 4, 4, 4, 4, 4, 10, 9, 10, 9, 9, 2, 2, 2, 2, 2, 2, 2,
                2, 2, 2, 9, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4,
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                0, 0, 0, 0, 0, 4, 4, 4, 4, 18, 18, 18, 18, 18, 18, 5, 18, 18,
                18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
                18, 18, 18, 18, 18, 18, 18, 18, 9, 4, 11, 11, 11, 11, 4, 4, 4,
                4, 0, 4, 4, 18, 4, 4, 11, 11, 2, 2, 4, 0, 4, 4, 4, 2, 0, 4, 4,
                4, 4, 4,
              ],
              u = [
                8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 18, 18, 18, 0, 1, 4, 4, 4, 4,
                4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
                5, 13, 14, 15, 16, 17, 9, 11, 11, 11, 11, 11, 4, 4, 4, 4, 4, 4,
                4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
                4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8,
              ];

            function h(e, t, n) {
              if (!(r < e))
                if (1 != e || 1 != i || s)
                  for (var o, a, l, c, d = n.length, u = 0; u < d; ) {
                    if (t[u] >= e) {
                      for (o = u + 1; o < d && t[o] >= e; ) o++;
                      for (a = u, l = o - 1; a < l; a++, l--)
                        (c = n[a]), (n[a] = n[l]), (n[l] = c);
                      u = o;
                    }
                    u++;
                  }
                else n.reverse();
            }

            function g(e, t, n, r) {
              var l,
                c,
                d,
                u,
                h = t[r];
              switch (h) {
                case 0:
                case 1:
                  o = !1;
                case 4:
                case 3:
                  return h;
                case 2:
                  return o ? 3 : 2;
                case 7:
                  return (o = !0), !0, 1;
                case 8:
                  return 4;
                case 9:
                  return r < 1 ||
                    r + 1 >= t.length ||
                    (2 != (l = n[r - 1]) && 3 != l) ||
                    (2 != (c = t[r + 1]) && 3 != c)
                    ? 4
                    : (o && (c = 3), c == l ? c : 4);
                case 10:
                  return 2 == (l = r > 0 ? n[r - 1] : 5) &&
                    r + 1 < t.length &&
                    2 == t[r + 1]
                    ? 2
                    : 4;
                case 11:
                  if (r > 0 && 2 == n[r - 1]) return 2;
                  if (o) return 4;
                  for (u = r + 1, d = t.length; u < d && 11 == t[u]; ) u++;
                  return u < d && 2 == t[u] ? 2 : 4;
                case 12:
                  for (d = t.length, u = r + 1; u < d && 12 == t[u]; ) u++;
                  if (u < d) {
                    var g = e[r],
                      p = (g >= 1425 && g <= 2303) || 64286 == g;
                    if (((l = t[u]), p && (1 == l || 7 == l))) return 1;
                  }
                  return r < 1 || 5 == (l = t[r - 1]) ? 4 : n[r - 1];
                case 5:
                  return (o = !1), (s = !0), i;
                case 6:
                  return (a = !0), 4;
                case 13:
                case 14:
                case 16:
                case 17:
                case 15:
                  o = !1;
                case 18:
                  return 4;
              }
            }

            function p(e) {
              var t = e.charCodeAt(0),
                n = t >> 8;
              return 0 == n
                ? t > 191
                  ? 0
                  : d[t]
                : 5 == n
                ? /[\u0591-\u05f4]/.test(e)
                  ? 1
                  : 0
                : 6 == n
                ? /[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(
                    e
                  )
                  ? 12
                  : /[\u0660-\u0669\u066b-\u066c]/.test(e)
                  ? 3
                  : 1642 == t
                  ? 11
                  : /[\u06f0-\u06f9]/.test(e)
                  ? 2
                  : 7
                : 32 == n && t <= 8287
                ? u[255 & t]
                : 254 == n && t >= 65136
                ? 7
                : 4;
            }
            (t.L = 0),
              (t.R = 1),
              (t.EN = 2),
              (t.ON_R = 3),
              (t.AN = 4),
              (t.R_H = 5),
              (t.B = 6),
              (t.RLE = 7),
              (t.DOT = "·"),
              (t.doBidiReorder = function (e, n, d) {
                if (e.length < 2) return {};
                var u = e.split(""),
                  A = new Array(u.length),
                  f = new Array(u.length),
                  m = [];
                (i = d ? 1 : 0),
                  (function (e, t, n, d) {
                    var u = i ? c : l,
                      h = null,
                      A = null,
                      f = null,
                      m = 0,
                      v = null,
                      b = -1,
                      w = null,
                      y = null,
                      x = [];
                    if (!d) for (w = 0, d = []; w < n; w++) d[w] = p(e[w]);
                    for (r = i, o = !1, !1, s = !1, a = !1, y = 0; y < n; y++) {
                      if (
                        ((h = m),
                        (x[y] = A = g(e, d, x, y)),
                        (v = 240 & (m = u[h][A])),
                        (m &= 15),
                        (t[y] = f = u[m][5]),
                        v > 0)
                      )
                        if (16 == v) {
                          for (w = b; w < y; w++) t[w] = 1;
                          b = -1;
                        } else b = -1;
                      if (u[m][6]) -1 == b && (b = y);
                      else if (b > -1) {
                        for (w = b; w < y; w++) t[w] = f;
                        b = -1;
                      }
                      5 == d[y] && (t[y] = 0), (r |= f);
                    }
                    if (a)
                      for (w = 0; w < n; w++)
                        if (6 == d[w]) {
                          t[w] = i;
                          for (var C = w - 1; C >= 0 && 8 == d[C]; C--)
                            t[C] = i;
                        }
                  })(u, m, u.length, n);
                for (var v = 0; v < A.length; A[v] = v, v++);
                h(2, m, A), h(1, m, A);
                for (v = 0; v < A.length - 1; v++)
                  3 === n[v]
                    ? (m[v] = t.AN)
                    : 1 === m[v] &&
                      ((n[v] > 7 && n[v] < 13) || 4 === n[v] || 18 === n[v])
                    ? (m[v] = t.ON_R)
                    : v > 0 &&
                      "ل" === u[v - 1] &&
                      /\u0622|\u0623|\u0625|\u0627/.test(u[v]) &&
                      ((m[v - 1] = m[v] = t.R_H), v++);
                u[u.length - 1] === t.DOT && (m[u.length - 1] = t.B),
                  "‫" === u[0] && (m[0] = t.RLE);
                for (v = 0; v < A.length; v++) f[v] = m[A[v]];
                return {
                  logicalFromVisual: A,
                  bidiLevels: f,
                };
              }),
              (t.hasBidiCharacters = function (e, t) {
                for (var n = !1, i = 0; i < e.length; i++)
                  (t[i] = p(e.charAt(i))),
                    n || (1 != t[i] && 7 != t[i] && 3 != t[i]) || (n = !0);
                return n;
              }),
              (t.getVisualFromLogicalIdx = function (e, t) {
                for (var n = 0; n < t.logicalFromVisual.length; n++)
                  if (t.logicalFromVisual[n] == e) return n;
                return 0;
              });
          }
        ),
        ace.define(
          "ace/bidihandler",
          ["require", "exports", "module", "ace/lib/bidiutil", "ace/lib/lang"],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/bidiutil"),
              r = e("./lib/lang"),
              o = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,
              s = function (e) {
                (this.session = e),
                  (this.bidiMap = {}),
                  (this.currentRow = null),
                  (this.bidiUtil = i),
                  (this.charWidths = []),
                  (this.EOL = "¬"),
                  (this.showInvisibles = !0),
                  (this.isRtlDir = !1),
                  (this.$isRtl = !1),
                  (this.line = ""),
                  (this.wrapIndent = 0),
                  (this.EOF = "¶"),
                  (this.RLE = "‫"),
                  (this.contentWidth = 0),
                  (this.fontMetrics = null),
                  (this.rtlLineOffset = 0),
                  (this.wrapOffset = 0),
                  (this.isMoveLeftOperation = !1),
                  (this.seenBidi = o.test(e.getValue()));
              };
            (function () {
              (this.isBidiRow = function (e, t, n) {
                return (
                  !!this.seenBidi &&
                  (e !== this.currentRow &&
                    ((this.currentRow = e),
                    this.updateRowLine(t, n),
                    this.updateBidiMap()),
                  this.bidiMap.bidiLevels)
                );
              }),
                (this.onChange = function (e) {
                  this.seenBidi
                    ? (this.currentRow = null)
                    : "insert" == e.action &&
                      o.test(e.lines.join("\n")) &&
                      ((this.seenBidi = !0), (this.currentRow = null));
                }),
                (this.getDocumentRow = function () {
                  var e = 0,
                    t = this.session.$screenRowCache;
                  if (t.length) {
                    var n = this.session.$getRowCacheIndex(t, this.currentRow);
                    n >= 0 && (e = this.session.$docRowCache[n]);
                  }
                  return e;
                }),
                (this.getSplitIndex = function () {
                  var e = 0,
                    t = this.session.$screenRowCache;
                  if (t.length)
                    for (
                      var n,
                        i = this.session.$getRowCacheIndex(t, this.currentRow);
                      this.currentRow - e > 0 &&
                      (n = this.session.$getRowCacheIndex(
                        t,
                        this.currentRow - e - 1
                      )) === i;

                    )
                      (i = n), e++;
                  else e = this.currentRow;
                  return e;
                }),
                (this.updateRowLine = function (e, t) {
                  void 0 === e && (e = this.getDocumentRow());
                  var n =
                    e === this.session.getLength() - 1 ? this.EOF : this.EOL;
                  if (
                    ((this.wrapIndent = 0),
                    (this.line = this.session.getLine(e)),
                    (this.isRtlDir =
                      this.$isRtl || this.line.charAt(0) === this.RLE),
                    this.session.$useWrapMode)
                  ) {
                    var o = this.session.$wrapData[e];
                    o &&
                      (void 0 === t && (t = this.getSplitIndex()),
                      t > 0 && o.length
                        ? ((this.wrapIndent = o.indent),
                          (this.wrapOffset =
                            this.wrapIndent * this.charWidths[i.L]),
                          (this.line =
                            t < o.length
                              ? this.line.substring(o[t - 1], o[t])
                              : this.line.substring(o[o.length - 1])))
                        : (this.line = this.line.substring(0, o[t]))),
                      t == o.length &&
                        (this.line += this.showInvisibles ? n : i.DOT);
                  } else this.line += this.showInvisibles ? n : i.DOT;
                  var s,
                    a = this.session,
                    l = 0;
                  (this.line = this.line.replace(
                    /\t|[\u1100-\u2029, \u202F-\uFFE6]/g,
                    function (e, t) {
                      return "\t" === e || a.isFullWidth(e.charCodeAt(0))
                        ? ((s = "\t" === e ? a.getScreenTabSize(t + l) : 2),
                          (l += s - 1),
                          r.stringRepeat(i.DOT, s))
                        : e;
                    }
                  )),
                    this.isRtlDir &&
                      ((this.fontMetrics.$main.textContent =
                        this.line.charAt(this.line.length - 1) == i.DOT
                          ? this.line.substr(0, this.line.length - 1)
                          : this.line),
                      (this.rtlLineOffset =
                        this.contentWidth -
                        this.fontMetrics.$main.getBoundingClientRect().width));
                }),
                (this.updateBidiMap = function () {
                  var e = [];
                  i.hasBidiCharacters(this.line, e) || this.isRtlDir
                    ? (this.bidiMap = i.doBidiReorder(
                        this.line,
                        e,
                        this.isRtlDir
                      ))
                    : (this.bidiMap = {});
                }),
                (this.markAsDirty = function () {
                  this.currentRow = null;
                }),
                (this.updateCharacterWidths = function (e) {
                  if (this.characterWidth !== e.$characterSize.width) {
                    this.fontMetrics = e;
                    var t = (this.characterWidth = e.$characterSize.width),
                      n = e.$measureCharWidth("ה");
                    (this.charWidths[i.L] =
                      this.charWidths[i.EN] =
                      this.charWidths[i.ON_R] =
                        t),
                      (this.charWidths[i.R] = this.charWidths[i.AN] = n),
                      (this.charWidths[i.R_H] = 0.45 * n),
                      (this.charWidths[i.B] = this.charWidths[i.RLE] = 0),
                      (this.currentRow = null);
                  }
                }),
                (this.setShowInvisibles = function (e) {
                  (this.showInvisibles = e), (this.currentRow = null);
                }),
                (this.setEolChar = function (e) {
                  this.EOL = e;
                }),
                (this.setContentWidth = function (e) {
                  this.contentWidth = e;
                }),
                (this.isRtlLine = function (e) {
                  return (
                    !!this.$isRtl ||
                    (null != e
                      ? this.session.getLine(e).charAt(0) == this.RLE
                      : this.isRtlDir)
                  );
                }),
                (this.setRtlDirection = function (e, t) {
                  for (
                    var n = e.getCursorPosition(),
                      i = e.selection.getSelectionAnchor().row;
                    i <= n.row;
                    i++
                  )
                    t ||
                    e.session.getLine(i).charAt(0) !==
                      e.session.$bidiHandler.RLE
                      ? t &&
                        e.session.getLine(i).charAt(0) !==
                          e.session.$bidiHandler.RLE &&
                        e.session.doc.insert(
                          {
                            column: 0,
                            row: i,
                          },
                          e.session.$bidiHandler.RLE
                        )
                      : e.session.doc.removeInLine(i, 0, 1);
                }),
                (this.getPosLeft = function (e) {
                  e -= this.wrapIndent;
                  var t = this.line.charAt(0) === this.RLE ? 1 : 0,
                    n = e > t ? (this.session.getOverwrite() ? e : e - 1) : t,
                    r = i.getVisualFromLogicalIdx(n, this.bidiMap),
                    o = this.bidiMap.bidiLevels,
                    s = 0;
                  !this.session.getOverwrite() &&
                    e <= t &&
                    o[r] % 2 != 0 &&
                    r++;
                  for (var a = 0; a < r; a++) s += this.charWidths[o[a]];
                  return (
                    !this.session.getOverwrite() &&
                      e > t &&
                      o[r] % 2 == 0 &&
                      (s += this.charWidths[o[r]]),
                    this.wrapIndent &&
                      (s += this.isRtlDir
                        ? -1 * this.wrapOffset
                        : this.wrapOffset),
                    this.isRtlDir && (s += this.rtlLineOffset),
                    s
                  );
                }),
                (this.getSelections = function (e, t) {
                  var n,
                    i = this.bidiMap,
                    r = i.bidiLevels,
                    o = [],
                    s = 0,
                    a = Math.min(e, t) - this.wrapIndent,
                    l = Math.max(e, t) - this.wrapIndent,
                    c = !1,
                    d = !1,
                    u = 0;
                  this.wrapIndent &&
                    (s += this.isRtlDir
                      ? -1 * this.wrapOffset
                      : this.wrapOffset);
                  for (var h, g = 0; g < r.length; g++)
                    (h = i.logicalFromVisual[g]),
                      (n = r[g]),
                      (c = h >= a && h < l) && !d
                        ? (u = s)
                        : !c &&
                          d &&
                          o.push({
                            left: u,
                            width: s - u,
                          }),
                      (s += this.charWidths[n]),
                      (d = c);
                  if (
                    (c &&
                      g === r.length &&
                      o.push({
                        left: u,
                        width: s - u,
                      }),
                    this.isRtlDir)
                  )
                    for (var p = 0; p < o.length; p++)
                      o[p].left += this.rtlLineOffset;
                  return o;
                }),
                (this.offsetToCol = function (e) {
                  this.isRtlDir && (e -= this.rtlLineOffset);
                  var t = 0,
                    n = ((e = Math.max(e, 0)), 0),
                    i = 0,
                    r = this.bidiMap.bidiLevels,
                    o = this.charWidths[r[i]];
                  for (
                    this.wrapIndent &&
                    (e -= this.isRtlDir
                      ? -1 * this.wrapOffset
                      : this.wrapOffset);
                    e > n + o / 2;

                  ) {
                    if (((n += o), i === r.length - 1)) {
                      o = 0;
                      break;
                    }
                    o = this.charWidths[r[++i]];
                  }
                  return (
                    i > 0 && r[i - 1] % 2 != 0 && r[i] % 2 == 0
                      ? (e < n && i--, (t = this.bidiMap.logicalFromVisual[i]))
                      : i > 0 && r[i - 1] % 2 == 0 && r[i] % 2 != 0
                      ? (t =
                          1 +
                          (e > n
                            ? this.bidiMap.logicalFromVisual[i]
                            : this.bidiMap.logicalFromVisual[i - 1]))
                      : (this.isRtlDir &&
                          i === r.length - 1 &&
                          0 === o &&
                          r[i - 1] % 2 == 0) ||
                        (!this.isRtlDir && 0 === i && r[i] % 2 != 0)
                      ? (t = 1 + this.bidiMap.logicalFromVisual[i])
                      : (i > 0 && r[i - 1] % 2 != 0 && 0 !== o && i--,
                        (t = this.bidiMap.logicalFromVisual[i])),
                    0 === t && this.isRtlDir && t++,
                    t + this.wrapIndent
                  );
                });
            }).call(s.prototype),
              (t.BidiHandler = s);
          }
        ),
        ace.define(
          "ace/selection",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/lib/event_emitter",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/lang"),
              o = e("./lib/event_emitter").EventEmitter,
              s = e("./range").Range,
              a = function (e) {
                (this.session = e),
                  (this.doc = e.getDocument()),
                  this.clearSelection(),
                  (this.cursor = this.lead = this.doc.createAnchor(0, 0)),
                  (this.anchor = this.doc.createAnchor(0, 0)),
                  (this.$silent = !1);
                var t = this;
                this.cursor.on("change", function (e) {
                  (t.$cursorChanged = !0),
                    t.$silent || t._emit("changeCursor"),
                    t.$isEmpty || t.$silent || t._emit("changeSelection"),
                    t.$keepDesiredColumnOnChange ||
                      e.old.column == e.value.column ||
                      (t.$desiredColumn = null);
                }),
                  this.anchor.on("change", function () {
                    (t.$anchorChanged = !0),
                      t.$isEmpty || t.$silent || t._emit("changeSelection");
                  });
              };
            (function () {
              i.implement(this, o),
                (this.isEmpty = function () {
                  return (
                    this.$isEmpty ||
                    (this.anchor.row == this.lead.row &&
                      this.anchor.column == this.lead.column)
                  );
                }),
                (this.isMultiLine = function () {
                  return !this.$isEmpty && this.anchor.row != this.cursor.row;
                }),
                (this.getCursor = function () {
                  return this.lead.getPosition();
                }),
                (this.setSelectionAnchor = function (e, t) {
                  (this.$isEmpty = !1), this.anchor.setPosition(e, t);
                }),
                (this.getAnchor = this.getSelectionAnchor =
                  function () {
                    return this.$isEmpty
                      ? this.getSelectionLead()
                      : this.anchor.getPosition();
                  }),
                (this.getSelectionLead = function () {
                  return this.lead.getPosition();
                }),
                (this.isBackwards = function () {
                  var e = this.anchor,
                    t = this.lead;
                  return (
                    e.row > t.row || (e.row == t.row && e.column > t.column)
                  );
                }),
                (this.getRange = function () {
                  var e = this.anchor,
                    t = this.lead;
                  return this.$isEmpty
                    ? s.fromPoints(t, t)
                    : this.isBackwards()
                    ? s.fromPoints(t, e)
                    : s.fromPoints(e, t);
                }),
                (this.clearSelection = function () {
                  this.$isEmpty ||
                    ((this.$isEmpty = !0), this._emit("changeSelection"));
                }),
                (this.selectAll = function () {
                  this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE);
                }),
                (this.setRange = this.setSelectionRange =
                  function (e, t) {
                    var n = t ? e.end : e.start,
                      i = t ? e.start : e.end;
                    this.$setSelection(n.row, n.column, i.row, i.column);
                  }),
                (this.$setSelection = function (e, t, n, i) {
                  if (!this.$silent) {
                    var r = this.$isEmpty,
                      o = this.inMultiSelectMode;
                    (this.$silent = !0),
                      (this.$cursorChanged = this.$anchorChanged = !1),
                      this.anchor.setPosition(e, t),
                      this.cursor.setPosition(n, i),
                      (this.$isEmpty = !s.comparePoints(
                        this.anchor,
                        this.cursor
                      )),
                      (this.$silent = !1),
                      this.$cursorChanged && this._emit("changeCursor"),
                      (this.$cursorChanged ||
                        this.$anchorChanged ||
                        r != this.$isEmpty ||
                        o) &&
                        this._emit("changeSelection");
                  }
                }),
                (this.$moveSelection = function (e) {
                  var t = this.lead;
                  this.$isEmpty && this.setSelectionAnchor(t.row, t.column),
                    e.call(this);
                }),
                (this.selectTo = function (e, t) {
                  this.$moveSelection(function () {
                    this.moveCursorTo(e, t);
                  });
                }),
                (this.selectToPosition = function (e) {
                  this.$moveSelection(function () {
                    this.moveCursorToPosition(e);
                  });
                }),
                (this.moveTo = function (e, t) {
                  this.clearSelection(), this.moveCursorTo(e, t);
                }),
                (this.moveToPosition = function (e) {
                  this.clearSelection(), this.moveCursorToPosition(e);
                }),
                (this.selectUp = function () {
                  this.$moveSelection(this.moveCursorUp);
                }),
                (this.selectDown = function () {
                  this.$moveSelection(this.moveCursorDown);
                }),
                (this.selectRight = function () {
                  this.$moveSelection(this.moveCursorRight);
                }),
                (this.selectLeft = function () {
                  this.$moveSelection(this.moveCursorLeft);
                }),
                (this.selectLineStart = function () {
                  this.$moveSelection(this.moveCursorLineStart);
                }),
                (this.selectLineEnd = function () {
                  this.$moveSelection(this.moveCursorLineEnd);
                }),
                (this.selectFileEnd = function () {
                  this.$moveSelection(this.moveCursorFileEnd);
                }),
                (this.selectFileStart = function () {
                  this.$moveSelection(this.moveCursorFileStart);
                }),
                (this.selectWordRight = function () {
                  this.$moveSelection(this.moveCursorWordRight);
                }),
                (this.selectWordLeft = function () {
                  this.$moveSelection(this.moveCursorWordLeft);
                }),
                (this.getWordRange = function (e, t) {
                  if (void 0 === t) {
                    var n = e || this.lead;
                    (e = n.row), (t = n.column);
                  }
                  return this.session.getWordRange(e, t);
                }),
                (this.selectWord = function () {
                  this.setSelectionRange(this.getWordRange());
                }),
                (this.selectAWord = function () {
                  var e = this.getCursor(),
                    t = this.session.getAWordRange(e.row, e.column);
                  this.setSelectionRange(t);
                }),
                (this.getLineRange = function (e, t) {
                  var n,
                    i = "number" == typeof e ? e : this.lead.row,
                    r = this.session.getFoldLine(i);
                  return (
                    r ? ((i = r.start.row), (n = r.end.row)) : (n = i),
                    !0 === t
                      ? new s(i, 0, n, this.session.getLine(n).length)
                      : new s(i, 0, n + 1, 0)
                  );
                }),
                (this.selectLine = function () {
                  this.setSelectionRange(this.getLineRange());
                }),
                (this.moveCursorUp = function () {
                  this.moveCursorBy(-1, 0);
                }),
                (this.moveCursorDown = function () {
                  this.moveCursorBy(1, 0);
                }),
                (this.wouldMoveIntoSoftTab = function (e, t, n) {
                  var i = e.column,
                    r = e.column + t;
                  return (
                    n < 0 && ((i = e.column - t), (r = e.column)),
                    this.session.isTabStop(e) &&
                      this.doc.getLine(e.row).slice(i, r).split(" ").length -
                        1 ==
                        t
                  );
                }),
                (this.moveCursorLeft = function () {
                  var e,
                    t = this.lead.getPosition();
                  if ((e = this.session.getFoldAt(t.row, t.column, -1)))
                    this.moveCursorTo(e.start.row, e.start.column);
                  else if (0 === t.column)
                    t.row > 0 &&
                      this.moveCursorTo(
                        t.row - 1,
                        this.doc.getLine(t.row - 1).length
                      );
                  else {
                    var n = this.session.getTabSize();
                    this.wouldMoveIntoSoftTab(t, n, -1) &&
                    !this.session.getNavigateWithinSoftTabs()
                      ? this.moveCursorBy(0, -n)
                      : this.moveCursorBy(0, -1);
                  }
                }),
                (this.moveCursorRight = function () {
                  var e,
                    t = this.lead.getPosition();
                  if ((e = this.session.getFoldAt(t.row, t.column, 1)))
                    this.moveCursorTo(e.end.row, e.end.column);
                  else if (
                    this.lead.column == this.doc.getLine(this.lead.row).length
                  )
                    this.lead.row < this.doc.getLength() - 1 &&
                      this.moveCursorTo(this.lead.row + 1, 0);
                  else {
                    var n = this.session.getTabSize();
                    t = this.lead;
                    this.wouldMoveIntoSoftTab(t, n, 1) &&
                    !this.session.getNavigateWithinSoftTabs()
                      ? this.moveCursorBy(0, n)
                      : this.moveCursorBy(0, 1);
                  }
                }),
                (this.moveCursorLineStart = function () {
                  var e = this.lead.row,
                    t = this.lead.column,
                    n = this.session.documentToScreenRow(e, t),
                    i = this.session.screenToDocumentPosition(n, 0),
                    r = this.session
                      .getDisplayLine(e, null, i.row, i.column)
                      .match(/^\s*/);
                  r[0].length == t ||
                    this.session.$useEmacsStyleLineStart ||
                    (i.column += r[0].length),
                    this.moveCursorToPosition(i);
                }),
                (this.moveCursorLineEnd = function () {
                  var e = this.lead,
                    t = this.session.getDocumentLastRowColumnPosition(
                      e.row,
                      e.column
                    );
                  if (this.lead.column == t.column) {
                    var n = this.session.getLine(t.row);
                    if (t.column == n.length) {
                      var i = n.search(/\s+$/);
                      i > 0 && (t.column = i);
                    }
                  }
                  this.moveCursorTo(t.row, t.column);
                }),
                (this.moveCursorFileEnd = function () {
                  var e = this.doc.getLength() - 1,
                    t = this.doc.getLine(e).length;
                  this.moveCursorTo(e, t);
                }),
                (this.moveCursorFileStart = function () {
                  this.moveCursorTo(0, 0);
                }),
                (this.moveCursorLongWordRight = function () {
                  var e = this.lead.row,
                    t = this.lead.column,
                    n = this.doc.getLine(e),
                    i = n.substring(t);
                  (this.session.nonTokenRe.lastIndex = 0),
                    (this.session.tokenRe.lastIndex = 0);
                  var r = this.session.getFoldAt(e, t, 1);
                  if (r) this.moveCursorTo(r.end.row, r.end.column);
                  else {
                    if (
                      (this.session.nonTokenRe.exec(i) &&
                        ((t += this.session.nonTokenRe.lastIndex),
                        (this.session.nonTokenRe.lastIndex = 0),
                        (i = n.substring(t))),
                      t >= n.length)
                    )
                      return (
                        this.moveCursorTo(e, n.length),
                        this.moveCursorRight(),
                        void (
                          e < this.doc.getLength() - 1 &&
                          this.moveCursorWordRight()
                        )
                      );
                    this.session.tokenRe.exec(i) &&
                      ((t += this.session.tokenRe.lastIndex),
                      (this.session.tokenRe.lastIndex = 0)),
                      this.moveCursorTo(e, t);
                  }
                }),
                (this.moveCursorLongWordLeft = function () {
                  var e,
                    t = this.lead.row,
                    n = this.lead.column;
                  if ((e = this.session.getFoldAt(t, n, -1)))
                    this.moveCursorTo(e.start.row, e.start.column);
                  else {
                    var i = this.session.getFoldStringAt(t, n, -1);
                    null == i && (i = this.doc.getLine(t).substring(0, n));
                    var o = r.stringReverse(i);
                    if (
                      ((this.session.nonTokenRe.lastIndex = 0),
                      (this.session.tokenRe.lastIndex = 0),
                      this.session.nonTokenRe.exec(o) &&
                        ((n -= this.session.nonTokenRe.lastIndex),
                        (o = o.slice(this.session.nonTokenRe.lastIndex)),
                        (this.session.nonTokenRe.lastIndex = 0)),
                      n <= 0)
                    )
                      return (
                        this.moveCursorTo(t, 0),
                        this.moveCursorLeft(),
                        void (t > 0 && this.moveCursorWordLeft())
                      );
                    this.session.tokenRe.exec(o) &&
                      ((n -= this.session.tokenRe.lastIndex),
                      (this.session.tokenRe.lastIndex = 0)),
                      this.moveCursorTo(t, n);
                  }
                }),
                (this.$shortWordEndIndex = function (e) {
                  var t,
                    n = 0,
                    i = /\s/,
                    r = this.session.tokenRe;
                  if (((r.lastIndex = 0), this.session.tokenRe.exec(e)))
                    n = this.session.tokenRe.lastIndex;
                  else {
                    for (; (t = e[n]) && i.test(t); ) n++;
                    if (n < 1)
                      for (r.lastIndex = 0; (t = e[n]) && !r.test(t); )
                        if (((r.lastIndex = 0), n++, i.test(t))) {
                          if (n > 2) {
                            n--;
                            break;
                          }
                          for (; (t = e[n]) && i.test(t); ) n++;
                          if (n > 2) break;
                        }
                  }
                  return (r.lastIndex = 0), n;
                }),
                (this.moveCursorShortWordRight = function () {
                  var e = this.lead.row,
                    t = this.lead.column,
                    n = this.doc.getLine(e),
                    i = n.substring(t),
                    r = this.session.getFoldAt(e, t, 1);
                  if (r) return this.moveCursorTo(r.end.row, r.end.column);
                  if (t == n.length) {
                    var o = this.doc.getLength();
                    do {
                      e++, (i = this.doc.getLine(e));
                    } while (e < o && /^\s*$/.test(i));
                    /^\s+/.test(i) || (i = ""), (t = 0);
                  }
                  var s = this.$shortWordEndIndex(i);
                  this.moveCursorTo(e, t + s);
                }),
                (this.moveCursorShortWordLeft = function () {
                  var e,
                    t = this.lead.row,
                    n = this.lead.column;
                  if ((e = this.session.getFoldAt(t, n, -1)))
                    return this.moveCursorTo(e.start.row, e.start.column);
                  var i = this.session.getLine(t).substring(0, n);
                  if (0 === n) {
                    do {
                      t--, (i = this.doc.getLine(t));
                    } while (t > 0 && /^\s*$/.test(i));
                    (n = i.length), /\s+$/.test(i) || (i = "");
                  }
                  var o = r.stringReverse(i),
                    s = this.$shortWordEndIndex(o);
                  return this.moveCursorTo(t, n - s);
                }),
                (this.moveCursorWordRight = function () {
                  this.session.$selectLongWords
                    ? this.moveCursorLongWordRight()
                    : this.moveCursorShortWordRight();
                }),
                (this.moveCursorWordLeft = function () {
                  this.session.$selectLongWords
                    ? this.moveCursorLongWordLeft()
                    : this.moveCursorShortWordLeft();
                }),
                (this.moveCursorBy = function (e, t) {
                  var n,
                    i = this.session.documentToScreenPosition(
                      this.lead.row,
                      this.lead.column
                    );
                  if (
                    (0 === t &&
                      (0 !== e &&
                        (this.session.$bidiHandler.isBidiRow(
                          i.row,
                          this.lead.row
                        )
                          ? ((n = this.session.$bidiHandler.getPosLeft(
                              i.column
                            )),
                            (i.column = Math.round(
                              n / this.session.$bidiHandler.charWidths[0]
                            )))
                          : (n =
                              i.column *
                              this.session.$bidiHandler.charWidths[0])),
                      this.$desiredColumn
                        ? (i.column = this.$desiredColumn)
                        : (this.$desiredColumn = i.column)),
                    0 != e &&
                      this.session.lineWidgets &&
                      this.session.lineWidgets[this.lead.row])
                  ) {
                    var r = this.session.lineWidgets[this.lead.row];
                    e < 0
                      ? (e -= r.rowsAbove || 0)
                      : e > 0 && (e += r.rowCount - (r.rowsAbove || 0));
                  }
                  var o = this.session.screenToDocumentPosition(
                    i.row + e,
                    i.column,
                    n
                  );
                  0 !== e &&
                    0 === t &&
                    o.row === this.lead.row &&
                    (o.column, this.lead.column),
                    this.moveCursorTo(o.row, o.column + t, 0 === t);
                }),
                (this.moveCursorToPosition = function (e) {
                  this.moveCursorTo(e.row, e.column);
                }),
                (this.moveCursorTo = function (e, t, n) {
                  var i = this.session.getFoldAt(e, t, 1);
                  i && ((e = i.start.row), (t = i.start.column)),
                    (this.$keepDesiredColumnOnChange = !0);
                  var r = this.session.getLine(e);
                  /[\uDC00-\uDFFF]/.test(r.charAt(t)) &&
                    r.charAt(t - 1) &&
                    (this.lead.row == e && this.lead.column == t + 1
                      ? (t -= 1)
                      : (t += 1)),
                    this.lead.setPosition(e, t),
                    (this.$keepDesiredColumnOnChange = !1),
                    n || (this.$desiredColumn = null);
                }),
                (this.moveCursorToScreen = function (e, t, n) {
                  var i = this.session.screenToDocumentPosition(e, t);
                  this.moveCursorTo(i.row, i.column, n);
                }),
                (this.detach = function () {
                  this.lead.detach(),
                    this.anchor.detach(),
                    (this.session = this.doc = null);
                }),
                (this.fromOrientedRange = function (e) {
                  this.setSelectionRange(e, e.cursor == e.start),
                    (this.$desiredColumn =
                      e.desiredColumn || this.$desiredColumn);
                }),
                (this.toOrientedRange = function (e) {
                  var t = this.getRange();
                  return (
                    e
                      ? ((e.start.column = t.start.column),
                        (e.start.row = t.start.row),
                        (e.end.column = t.end.column),
                        (e.end.row = t.end.row))
                      : (e = t),
                    (e.cursor = this.isBackwards() ? e.start : e.end),
                    (e.desiredColumn = this.$desiredColumn),
                    e
                  );
                }),
                (this.getRangeOfMovements = function (e) {
                  var t = this.getCursor();
                  try {
                    e(this);
                    var n = this.getCursor();
                    return s.fromPoints(t, n);
                  } catch (e) {
                    return s.fromPoints(t, t);
                  } finally {
                    this.moveCursorToPosition(t);
                  }
                }),
                (this.toJSON = function () {
                  if (this.rangeCount)
                    var e = this.ranges.map(function (e) {
                      var t = e.clone();
                      return (t.isBackwards = e.cursor == e.start), t;
                    });
                  else (e = this.getRange()).isBackwards = this.isBackwards();
                  return e;
                }),
                (this.fromJSON = function (e) {
                  if (null == e.start) {
                    if (this.rangeList && e.length > 1) {
                      this.toSingleRange(e[0]);
                      for (var t = e.length; t--; ) {
                        var n = s.fromPoints(e[t].start, e[t].end);
                        e[t].isBackwards && (n.cursor = n.start),
                          this.addRange(n, !0);
                      }
                      return;
                    }
                    e = e[0];
                  }
                  this.rangeList && this.toSingleRange(e),
                    this.setSelectionRange(e, e.isBackwards);
                }),
                (this.isEqual = function (e) {
                  if (
                    (e.length || this.rangeCount) &&
                    e.length != this.rangeCount
                  )
                    return !1;
                  if (!e.length || !this.ranges)
                    return this.getRange().isEqual(e);
                  for (var t = this.ranges.length; t--; )
                    if (!this.ranges[t].isEqual(e[t])) return !1;
                  return !0;
                });
            }).call(a.prototype),
              (t.Selection = a);
          }
        ),
        ace.define(
          "ace/tokenizer",
          ["require", "exports", "module", "ace/config"],
          function (e, t, n) {
            "use strict";
            var i = e("./config"),
              r = 2e3,
              o = function (e) {
                for (var t in ((this.states = e),
                (this.regExps = {}),
                (this.matchMappings = {}),
                this.states)) {
                  for (
                    var n = this.states[t],
                      i = [],
                      r = 0,
                      o = (this.matchMappings[t] = {
                        defaultToken: "text",
                      }),
                      s = "g",
                      a = [],
                      l = 0;
                    l < n.length;
                    l++
                  ) {
                    var c = n[l];
                    if (
                      (c.defaultToken && (o.defaultToken = c.defaultToken),
                      c.caseInsensitive && (s = "gi"),
                      null != c.regex)
                    ) {
                      c.regex instanceof RegExp &&
                        (c.regex = c.regex.toString().slice(1, -1));
                      var d = c.regex,
                        u =
                          new RegExp("(?:(" + d + ")|(.))").exec("a").length -
                          2;
                      Array.isArray(c.token)
                        ? 1 == c.token.length || 1 == u
                          ? (c.token = c.token[0])
                          : u - 1 != c.token.length
                          ? (this.reportError(
                              "number of classes and regexp groups doesn't match",
                              {
                                rule: c,
                                groupCount: u - 1,
                              }
                            ),
                            (c.token = c.token[0]))
                          : ((c.tokenArray = c.token),
                            (c.token = null),
                            (c.onMatch = this.$arrayTokens))
                        : "function" != typeof c.token ||
                          c.onMatch ||
                          (c.onMatch = u > 1 ? this.$applyToken : c.token),
                        u > 1 &&
                          (/\\\d/.test(c.regex)
                            ? (d = c.regex.replace(
                                /\\([0-9]+)/g,
                                function (e, t) {
                                  return "\\" + (parseInt(t, 10) + r + 1);
                                }
                              ))
                            : ((u = 1),
                              (d = this.removeCapturingGroups(c.regex))),
                          c.splitRegex ||
                            "string" == typeof c.token ||
                            a.push(c)),
                        (o[r] = l),
                        (r += u),
                        i.push(d),
                        c.onMatch || (c.onMatch = null);
                    }
                  }
                  i.length || ((o[0] = 0), i.push("$")),
                    a.forEach(function (e) {
                      e.splitRegex = this.createSplitterRegexp(e.regex, s);
                    }, this),
                    (this.regExps[t] = new RegExp(
                      "(" + i.join(")|(") + ")|($)",
                      s
                    ));
                }
              };
            (function () {
              (this.$setMaxTokenCount = function (e) {
                r = 0 | e;
              }),
                (this.$applyToken = function (e) {
                  var t = this.splitRegex.exec(e).slice(1),
                    n = this.token.apply(this, t);
                  if ("string" == typeof n)
                    return [
                      {
                        type: n,
                        value: e,
                      },
                    ];
                  for (var i = [], r = 0, o = n.length; r < o; r++)
                    t[r] &&
                      (i[i.length] = {
                        type: n[r],
                        value: t[r],
                      });
                  return i;
                }),
                (this.$arrayTokens = function (e) {
                  if (!e) return [];
                  var t = this.splitRegex.exec(e);
                  if (!t) return "text";
                  for (
                    var n = [], i = this.tokenArray, r = 0, o = i.length;
                    r < o;
                    r++
                  )
                    t[r + 1] &&
                      (n[n.length] = {
                        type: i[r],
                        value: t[r + 1],
                      });
                  return n;
                }),
                (this.removeCapturingGroups = function (e) {
                  return e.replace(
                    /\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!]|(\()/g,
                    function (e, t) {
                      return t ? "(?:" : e;
                    }
                  );
                }),
                (this.createSplitterRegexp = function (e, t) {
                  if (-1 != e.indexOf("(?=")) {
                    var n = 0,
                      i = !1,
                      r = {};
                    e.replace(
                      /(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,
                      function (e, t, o, s, a, l) {
                        return (
                          i
                            ? (i = "]" != a)
                            : a
                            ? (i = !0)
                            : s
                            ? (n == r.stack &&
                                ((r.end = l + 1), (r.stack = -1)),
                              n--)
                            : o &&
                              (n++,
                              1 != o.length && ((r.stack = n), (r.start = l))),
                          e
                        );
                      }
                    ),
                      null != r.end &&
                        /^\)*$/.test(e.substr(r.end)) &&
                        (e = e.substring(0, r.start) + e.substr(r.end));
                  }
                  return (
                    "^" != e.charAt(0) && (e = "^" + e),
                    "$" != e.charAt(e.length - 1) && (e += "$"),
                    new RegExp(e, (t || "").replace("g", ""))
                  );
                }),
                (this.getLineTokens = function (e, t) {
                  if (t && "string" != typeof t) {
                    var n = t.slice(0);
                    "#tmp" === (t = n[0]) && (n.shift(), (t = n.shift()));
                  } else n = [];
                  var i = t || "start",
                    o = this.states[i];
                  o || ((i = "start"), (o = this.states[i]));
                  var s = this.matchMappings[i],
                    a = this.regExps[i];
                  a.lastIndex = 0;
                  for (
                    var l,
                      c = [],
                      d = 0,
                      u = 0,
                      h = {
                        type: null,
                        value: "",
                      };
                    (l = a.exec(e));

                  ) {
                    var g = s.defaultToken,
                      p = null,
                      A = l[0],
                      f = a.lastIndex;
                    if (f - A.length > d) {
                      var m = e.substring(d, f - A.length);
                      h.type == g
                        ? (h.value += m)
                        : (h.type && c.push(h),
                          (h = {
                            type: g,
                            value: m,
                          }));
                    }
                    for (var v = 0; v < l.length - 2; v++)
                      if (void 0 !== l[v + 1]) {
                        (g = (p = o[s[v]]).onMatch
                          ? p.onMatch(A, i, n, e)
                          : p.token),
                          p.next &&
                            ((i =
                              "string" == typeof p.next
                                ? p.next
                                : p.next(i, n)),
                            (o = this.states[i]) ||
                              (this.reportError("state doesn't exist", i),
                              (i = "start"),
                              (o = this.states[i])),
                            (s = this.matchMappings[i]),
                            (d = f),
                            ((a = this.regExps[i]).lastIndex = f)),
                          p.consumeLineEnd && (d = f);
                        break;
                      }
                    if (A)
                      if ("string" == typeof g)
                        (p && !1 === p.merge) || h.type !== g
                          ? (h.type && c.push(h),
                            (h = {
                              type: g,
                              value: A,
                            }))
                          : (h.value += A);
                      else if (g) {
                        h.type && c.push(h),
                          (h = {
                            type: null,
                            value: "",
                          });
                        for (v = 0; v < g.length; v++) c.push(g[v]);
                      }
                    if (d == e.length) break;
                    if (((d = f), u++ > r)) {
                      for (
                        u > 2 * e.length &&
                        this.reportError(
                          "infinite loop with in ace tokenizer",
                          {
                            startState: t,
                            line: e,
                          }
                        );
                        d < e.length;

                      )
                        h.type && c.push(h),
                          (h = {
                            value: e.substring(d, (d += 500)),
                            type: "overflow",
                          });
                      (i = "start"), (n = []);
                      break;
                    }
                  }
                  return (
                    h.type && c.push(h),
                    n.length > 1 && n[0] !== i && n.unshift("#tmp", i),
                    {
                      tokens: c,
                      state: n.length ? n : i,
                    }
                  );
                }),
                (this.reportError = i.reportError);
            }).call(o.prototype),
              (t.Tokenizer = o);
          }
        ),
        ace.define(
          "ace/mode/text_highlight_rules",
          ["require", "exports", "module", "ace/lib/lang"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/lang"),
              r = function () {
                this.$rules = {
                  start: [
                    {
                      token: "empty_line",
                      regex: "^$",
                    },
                    {
                      defaultToken: "text",
                    },
                  ],
                };
              };
            (function () {
              (this.addRules = function (e, t) {
                if (t)
                  for (var n in e) {
                    for (var i = e[n], r = 0; r < i.length; r++) {
                      var o = i[r];
                      (o.next || o.onMatch) &&
                        ("string" == typeof o.next &&
                          0 !== o.next.indexOf(t) &&
                          (o.next = t + o.next),
                        o.nextState &&
                          0 !== o.nextState.indexOf(t) &&
                          (o.nextState = t + o.nextState));
                    }
                    this.$rules[t + n] = i;
                  }
                else for (var n in e) this.$rules[n] = e[n];
              }),
                (this.getRules = function () {
                  return this.$rules;
                }),
                (this.embedRules = function (e, t, n, r, o) {
                  var s = "function" == typeof e ? new e().getRules() : e;
                  if (r) for (var a = 0; a < r.length; a++) r[a] = t + r[a];
                  else for (var l in ((r = []), s)) r.push(t + l);
                  if ((this.addRules(s, t), n)) {
                    var c = Array.prototype[o ? "push" : "unshift"];
                    for (a = 0; a < r.length; a++)
                      c.apply(this.$rules[r[a]], i.deepCopy(n));
                  }
                  this.$embeds || (this.$embeds = []), this.$embeds.push(t);
                }),
                (this.getEmbeds = function () {
                  return this.$embeds;
                });
              var e = function (e, t) {
                  return (
                    ("start" != e || t.length) && t.unshift(this.nextState, e),
                    this.nextState
                  );
                },
                t = function (e, t) {
                  return t.shift(), t.shift() || "start";
                };
              (this.normalizeRules = function () {
                var n = 0,
                  i = this.$rules;
                Object.keys(i).forEach(function r(o) {
                  var s = i[o];
                  s.processed = !0;
                  for (var a = 0; a < s.length; a++) {
                    var l = s[a],
                      c = null;
                    Array.isArray(l) && ((c = l), (l = {})),
                      !l.regex &&
                        l.start &&
                        ((l.regex = l.start),
                        l.next || (l.next = []),
                        l.next.push(
                          {
                            defaultToken: l.token,
                          },
                          {
                            token: l.token + ".end",
                            regex: l.end || l.start,
                            next: "pop",
                          }
                        ),
                        (l.token = l.token + ".start"),
                        (l.push = !0));
                    var d = l.next || l.push;
                    if (d && Array.isArray(d)) {
                      var u = l.stateName;
                      u ||
                        ("string" != typeof (u = l.token) && (u = u[0] || ""),
                        i[u] && (u += n++)),
                        (i[u] = d),
                        (l.next = u),
                        r(u);
                    } else "pop" == d && (l.next = t);
                    if (
                      (l.push &&
                        ((l.nextState = l.next || l.push),
                        (l.next = e),
                        delete l.push),
                      l.rules)
                    )
                      for (var h in l.rules)
                        i[h]
                          ? i[h].push && i[h].push.apply(i[h], l.rules[h])
                          : (i[h] = l.rules[h]);
                    var g = "string" == typeof l ? l : l.include;
                    if (
                      (g &&
                        (c = Array.isArray(g)
                          ? g.map(function (e) {
                              return i[e];
                            })
                          : i[g]),
                      c)
                    ) {
                      var p = [a, 1].concat(c);
                      l.noEscape &&
                        (p = p.filter(function (e) {
                          return !e.next;
                        })),
                        s.splice.apply(s, p),
                        a--;
                    }
                    l.keywordMap &&
                      ((l.token = this.createKeywordMapper(
                        l.keywordMap,
                        l.defaultToken || "text",
                        l.caseInsensitive
                      )),
                      delete l.defaultToken);
                  }
                }, this);
              }),
                (this.createKeywordMapper = function (e, t, n, i) {
                  var r = Object.create(null);
                  return (
                    (this.$keywordList = []),
                    Object.keys(e).forEach(function (t) {
                      for (var o = e[t].split(i || "|"), s = o.length; s--; ) {
                        var a = o[s];
                        this.$keywordList.push(a),
                          n && (a = a.toLowerCase()),
                          (r[a] = t);
                      }
                    }, this),
                    (e = null),
                    n
                      ? function (e) {
                          return r[e.toLowerCase()] || t;
                        }
                      : function (e) {
                          return r[e] || t;
                        }
                  );
                }),
                (this.getKeywords = function () {
                  return this.$keywords;
                });
            }).call(r.prototype),
              (t.TextHighlightRules = r);
          }
        ),
        ace.define(
          "ace/mode/behaviour",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i = function () {
              this.$behaviours = {};
            };
            (function () {
              (this.add = function (e, t, n) {
                switch (void 0) {
                  case this.$behaviours:
                    this.$behaviours = {};
                  case this.$behaviours[e]:
                    this.$behaviours[e] = {};
                }
                this.$behaviours[e][t] = n;
              }),
                (this.addBehaviours = function (e) {
                  for (var t in e) for (var n in e[t]) this.add(t, n, e[t][n]);
                }),
                (this.remove = function (e) {
                  this.$behaviours &&
                    this.$behaviours[e] &&
                    delete this.$behaviours[e];
                }),
                (this.inherit = function (e, t) {
                  if ("function" == typeof e) var n = new e().getBehaviours(t);
                  else n = e.getBehaviours(t);
                  this.addBehaviours(n);
                }),
                (this.getBehaviours = function (e) {
                  if (e) {
                    for (var t = {}, n = 0; n < e.length; n++)
                      this.$behaviours[e[n]] &&
                        (t[e[n]] = this.$behaviours[e[n]]);
                    return t;
                  }
                  return this.$behaviours;
                });
            }).call(i.prototype),
              (t.Behaviour = i);
          }
        ),
        ace.define(
          "ace/token_iterator",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("./range").Range,
              r = function (e, t, n) {
                (this.$session = e),
                  (this.$row = t),
                  (this.$rowTokens = e.getTokens(t));
                var i = e.getTokenAt(t, n);
                this.$tokenIndex = i ? i.index : -1;
              };
            (function () {
              (this.stepBackward = function () {
                for (this.$tokenIndex -= 1; this.$tokenIndex < 0; ) {
                  if (((this.$row -= 1), this.$row < 0))
                    return (this.$row = 0), null;
                  (this.$rowTokens = this.$session.getTokens(this.$row)),
                    (this.$tokenIndex = this.$rowTokens.length - 1);
                }
                return this.$rowTokens[this.$tokenIndex];
              }),
                (this.stepForward = function () {
                  var e;
                  for (
                    this.$tokenIndex += 1;
                    this.$tokenIndex >= this.$rowTokens.length;

                  ) {
                    if (
                      ((this.$row += 1),
                      e || (e = this.$session.getLength()),
                      this.$row >= e)
                    )
                      return (this.$row = e - 1), null;
                    (this.$rowTokens = this.$session.getTokens(this.$row)),
                      (this.$tokenIndex = 0);
                  }
                  return this.$rowTokens[this.$tokenIndex];
                }),
                (this.getCurrentToken = function () {
                  return this.$rowTokens[this.$tokenIndex];
                }),
                (this.getCurrentTokenRow = function () {
                  return this.$row;
                }),
                (this.getCurrentTokenColumn = function () {
                  var e = this.$rowTokens,
                    t = this.$tokenIndex,
                    n = e[t].start;
                  if (void 0 !== n) return n;
                  for (n = 0; t > 0; ) n += e[(t -= 1)].value.length;
                  return n;
                }),
                (this.getCurrentTokenPosition = function () {
                  return {
                    row: this.$row,
                    column: this.getCurrentTokenColumn(),
                  };
                }),
                (this.getCurrentTokenRange = function () {
                  var e = this.$rowTokens[this.$tokenIndex],
                    t = this.getCurrentTokenColumn();
                  return new i(this.$row, t, this.$row, t + e.value.length);
                });
            }).call(r.prototype),
              (t.TokenIterator = r);
          }
        ),
        ace.define(
          "ace/mode/behaviour/cstyle",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/behaviour",
            "ace/token_iterator",
            "ace/lib/lang",
          ],
          function (e, t, n) {
            "use strict";
            var i,
              r = e("../../lib/oop"),
              o = e("../behaviour").Behaviour,
              s = e("../../token_iterator").TokenIterator,
              a = e("../../lib/lang"),
              l = [
                "text",
                "paren.rparen",
                "rparen",
                "paren",
                "punctuation.operator",
              ],
              c = [
                "text",
                "paren.rparen",
                "rparen",
                "paren",
                "punctuation.operator",
                "comment",
              ],
              d = {},
              u = {
                '"': '"',
                "'": "'",
              },
              h = function (e) {
                var t = -1;
                if (
                  (e.multiSelect &&
                    ((t = e.selection.index),
                    d.rangeCount != e.multiSelect.rangeCount &&
                      (d = {
                        rangeCount: e.multiSelect.rangeCount,
                      })),
                  d[t])
                )
                  return (i = d[t]);
                i = d[t] = {
                  autoInsertedBrackets: 0,
                  autoInsertedRow: -1,
                  autoInsertedLineEnd: "",
                  maybeInsertedBrackets: 0,
                  maybeInsertedRow: -1,
                  maybeInsertedLineStart: "",
                  maybeInsertedLineEnd: "",
                };
              },
              g = function (e, t, n, i) {
                var r = e.end.row - e.start.row;
                return {
                  text: n + t + i,
                  selection: [
                    0,
                    e.start.column + 1,
                    r,
                    e.end.column + (r ? 0 : 1),
                  ],
                };
              },
              p = function (e) {
                this.add("braces", "insertion", function (t, n, r, o, s) {
                  var l = r.getCursorPosition(),
                    c = o.doc.getLine(l.row);
                  if ("{" == s) {
                    h(r);
                    var d = r.getSelectionRange(),
                      u = o.doc.getTextRange(d);
                    if ("" !== u && "{" !== u && r.getWrapBehavioursEnabled())
                      return g(d, u, "{", "}");
                    if (p.isSaneInsertion(r, o))
                      return /[\]\}\)]/.test(c[l.column]) ||
                        r.inMultiSelectMode ||
                        (e && e.braces)
                        ? (p.recordAutoInsert(r, o, "}"),
                          {
                            text: "{}",
                            selection: [1, 1],
                          })
                        : (p.recordMaybeInsert(r, o, "{"),
                          {
                            text: "{",
                            selection: [1, 1],
                          });
                  } else if ("}" == s) {
                    if ((h(r), "}" == c.substring(l.column, l.column + 1)))
                      if (
                        null !==
                          o.$findOpeningBracket("}", {
                            column: l.column + 1,
                            row: l.row,
                          }) &&
                        p.isAutoInsertedClosing(l, c, s)
                      )
                        return (
                          p.popAutoInsertedClosing(),
                          {
                            text: "",
                            selection: [1, 1],
                          }
                        );
                  } else {
                    if ("\n" == s || "\r\n" == s) {
                      h(r);
                      var A = "";
                      if (
                        (p.isMaybeInsertedClosing(l, c) &&
                          ((A = a.stringRepeat("}", i.maybeInsertedBrackets)),
                          p.clearMaybeInsertedClosing()),
                        "}" === c.substring(l.column, l.column + 1))
                      ) {
                        var f = o.findMatchingBracket(
                          {
                            row: l.row,
                            column: l.column + 1,
                          },
                          "}"
                        );
                        if (!f) return null;
                        var m = this.$getIndent(o.getLine(f.row));
                      } else {
                        if (!A) return void p.clearMaybeInsertedClosing();
                        m = this.$getIndent(c);
                      }
                      var v = m + o.getTabString();
                      return {
                        text: "\n" + v + "\n" + m + A,
                        selection: [1, v.length, 1, v.length],
                      };
                    }
                    p.clearMaybeInsertedClosing();
                  }
                }),
                  this.add("braces", "deletion", function (e, t, n, r, o) {
                    var s = r.doc.getTextRange(o);
                    if (!o.isMultiLine() && "{" == s) {
                      if (
                        (h(n),
                        "}" ==
                          r.doc
                            .getLine(o.start.row)
                            .substring(o.end.column, o.end.column + 1))
                      )
                        return o.end.column++, o;
                      i.maybeInsertedBrackets--;
                    }
                  }),
                  this.add("parens", "insertion", function (e, t, n, i, r) {
                    if ("(" == r) {
                      h(n);
                      var o = n.getSelectionRange(),
                        s = i.doc.getTextRange(o);
                      if ("" !== s && n.getWrapBehavioursEnabled())
                        return g(o, s, "(", ")");
                      if (p.isSaneInsertion(n, i))
                        return (
                          p.recordAutoInsert(n, i, ")"),
                          {
                            text: "()",
                            selection: [1, 1],
                          }
                        );
                    } else if (")" == r) {
                      h(n);
                      var a = n.getCursorPosition(),
                        l = i.doc.getLine(a.row);
                      if (")" == l.substring(a.column, a.column + 1))
                        if (
                          null !==
                            i.$findOpeningBracket(")", {
                              column: a.column + 1,
                              row: a.row,
                            }) &&
                          p.isAutoInsertedClosing(a, l, r)
                        )
                          return (
                            p.popAutoInsertedClosing(),
                            {
                              text: "",
                              selection: [1, 1],
                            }
                          );
                    }
                  }),
                  this.add("parens", "deletion", function (e, t, n, i, r) {
                    var o = i.doc.getTextRange(r);
                    if (
                      !r.isMultiLine() &&
                      "(" == o &&
                      (h(n),
                      ")" ==
                        i.doc
                          .getLine(r.start.row)
                          .substring(r.start.column + 1, r.start.column + 2))
                    )
                      return r.end.column++, r;
                  }),
                  this.add("brackets", "insertion", function (e, t, n, i, r) {
                    if ("[" == r) {
                      h(n);
                      var o = n.getSelectionRange(),
                        s = i.doc.getTextRange(o);
                      if ("" !== s && n.getWrapBehavioursEnabled())
                        return g(o, s, "[", "]");
                      if (p.isSaneInsertion(n, i))
                        return (
                          p.recordAutoInsert(n, i, "]"),
                          {
                            text: "[]",
                            selection: [1, 1],
                          }
                        );
                    } else if ("]" == r) {
                      h(n);
                      var a = n.getCursorPosition(),
                        l = i.doc.getLine(a.row);
                      if ("]" == l.substring(a.column, a.column + 1))
                        if (
                          null !==
                            i.$findOpeningBracket("]", {
                              column: a.column + 1,
                              row: a.row,
                            }) &&
                          p.isAutoInsertedClosing(a, l, r)
                        )
                          return (
                            p.popAutoInsertedClosing(),
                            {
                              text: "",
                              selection: [1, 1],
                            }
                          );
                    }
                  }),
                  this.add("brackets", "deletion", function (e, t, n, i, r) {
                    var o = i.doc.getTextRange(r);
                    if (
                      !r.isMultiLine() &&
                      "[" == o &&
                      (h(n),
                      "]" ==
                        i.doc
                          .getLine(r.start.row)
                          .substring(r.start.column + 1, r.start.column + 2))
                    )
                      return r.end.column++, r;
                  }),
                  this.add(
                    "string_dquotes",
                    "insertion",
                    function (e, t, n, i, r) {
                      var o = i.$mode.$quotes || u;
                      if (1 == r.length && o[r]) {
                        if (
                          this.lineCommentStart &&
                          -1 != this.lineCommentStart.indexOf(r)
                        )
                          return;
                        h(n);
                        var s = r,
                          a = n.getSelectionRange(),
                          l = i.doc.getTextRange(a);
                        if (
                          !("" === l || (1 == l.length && o[l])) &&
                          n.getWrapBehavioursEnabled()
                        )
                          return g(a, l, s, s);
                        if (!l) {
                          var c = n.getCursorPosition(),
                            d = i.doc.getLine(c.row),
                            p = d.substring(c.column - 1, c.column),
                            A = d.substring(c.column, c.column + 1),
                            f = i.getTokenAt(c.row, c.column),
                            m = i.getTokenAt(c.row, c.column + 1);
                          if ("\\" == p && f && /escape/.test(f.type))
                            return null;
                          var v,
                            b = f && /string|escape/.test(f.type),
                            w = !m || /string|escape/.test(m.type);
                          if (A == s)
                            (v = b !== w) &&
                              /string\.end/.test(m.type) &&
                              (v = !1);
                          else {
                            if (b && !w) return null;
                            if (b && w) return null;
                            var y = i.$mode.tokenRe;
                            y.lastIndex = 0;
                            var x = y.test(p);
                            y.lastIndex = 0;
                            var C = y.test(p);
                            if (x || C) return null;
                            if (A && !/[\s;,.})\]\\]/.test(A)) return null;
                            var k = d[c.column - 2];
                            if (p == s && (k == s || y.test(k))) return null;
                            v = !0;
                          }
                          return {
                            text: v ? s + s : "",
                            selection: [1, 1],
                          };
                        }
                      }
                    }
                  ),
                  this.add(
                    "string_dquotes",
                    "deletion",
                    function (e, t, n, i, r) {
                      var o = i.$mode.$quotes || u,
                        s = i.doc.getTextRange(r);
                      if (
                        !r.isMultiLine() &&
                        o.hasOwnProperty(s) &&
                        (h(n),
                        i.doc
                          .getLine(r.start.row)
                          .substring(r.start.column + 1, r.start.column + 2) ==
                          s)
                      )
                        return r.end.column++, r;
                    }
                  );
              };
            (p.isSaneInsertion = function (e, t) {
              var n = e.getCursorPosition(),
                i = new s(t, n.row, n.column);
              if (!this.$matchTokenType(i.getCurrentToken() || "text", l)) {
                if (/[)}\]]/.test(e.session.getLine(n.row)[n.column]))
                  return !0;
                var r = new s(t, n.row, n.column + 1);
                if (!this.$matchTokenType(r.getCurrentToken() || "text", l))
                  return !1;
              }
              return (
                i.stepForward(),
                i.getCurrentTokenRow() !== n.row ||
                  this.$matchTokenType(i.getCurrentToken() || "text", c)
              );
            }),
              (p.$matchTokenType = function (e, t) {
                return t.indexOf(e.type || e) > -1;
              }),
              (p.recordAutoInsert = function (e, t, n) {
                var r = e.getCursorPosition(),
                  o = t.doc.getLine(r.row);
                this.isAutoInsertedClosing(r, o, i.autoInsertedLineEnd[0]) ||
                  (i.autoInsertedBrackets = 0),
                  (i.autoInsertedRow = r.row),
                  (i.autoInsertedLineEnd = n + o.substr(r.column)),
                  i.autoInsertedBrackets++;
              }),
              (p.recordMaybeInsert = function (e, t, n) {
                var r = e.getCursorPosition(),
                  o = t.doc.getLine(r.row);
                this.isMaybeInsertedClosing(r, o) ||
                  (i.maybeInsertedBrackets = 0),
                  (i.maybeInsertedRow = r.row),
                  (i.maybeInsertedLineStart = o.substr(0, r.column) + n),
                  (i.maybeInsertedLineEnd = o.substr(r.column)),
                  i.maybeInsertedBrackets++;
              }),
              (p.isAutoInsertedClosing = function (e, t, n) {
                return (
                  i.autoInsertedBrackets > 0 &&
                  e.row === i.autoInsertedRow &&
                  n === i.autoInsertedLineEnd[0] &&
                  t.substr(e.column) === i.autoInsertedLineEnd
                );
              }),
              (p.isMaybeInsertedClosing = function (e, t) {
                return (
                  i.maybeInsertedBrackets > 0 &&
                  e.row === i.maybeInsertedRow &&
                  t.substr(e.column) === i.maybeInsertedLineEnd &&
                  t.substr(0, e.column) == i.maybeInsertedLineStart
                );
              }),
              (p.popAutoInsertedClosing = function () {
                (i.autoInsertedLineEnd = i.autoInsertedLineEnd.substr(1)),
                  i.autoInsertedBrackets--;
              }),
              (p.clearMaybeInsertedClosing = function () {
                i && ((i.maybeInsertedBrackets = 0), (i.maybeInsertedRow = -1));
              }),
              r.inherits(p, o),
              (t.CstyleBehaviour = p);
          }
        ),
        ace.define(
          "ace/unicode",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            for (
              var i = [
                  48, 9, 8, 25, 5, 0, 2, 25, 48, 0, 11, 0, 5, 0, 6, 22, 2, 30,
                  2, 457, 5, 11, 15, 4, 8, 0, 2, 0, 18, 116, 2, 1, 3, 3, 9, 0,
                  2, 2, 2, 0, 2, 19, 2, 82, 2, 138, 2, 4, 3, 155, 12, 37, 3, 0,
                  8, 38, 10, 44, 2, 0, 2, 1, 2, 1, 2, 0, 9, 26, 6, 2, 30, 10, 7,
                  61, 2, 9, 5, 101, 2, 7, 3, 9, 2, 18, 3, 0, 17, 58, 3, 100, 15,
                  53, 5, 0, 6, 45, 211, 57, 3, 18, 2, 5, 3, 11, 3, 9, 2, 1, 7,
                  6, 2, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 0, 4, 3, 3, 8, 3, 1, 3,
                  3, 9, 0, 5, 1, 2, 4, 3, 11, 16, 2, 2, 5, 5, 1, 3, 21, 2, 6, 2,
                  1, 2, 1, 2, 1, 3, 0, 2, 4, 5, 1, 3, 2, 4, 0, 8, 3, 2, 0, 8,
                  15, 12, 2, 2, 8, 2, 2, 2, 21, 2, 6, 2, 1, 2, 4, 3, 9, 2, 2, 2,
                  2, 3, 0, 16, 3, 3, 9, 18, 2, 2, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2,
                  4, 3, 8, 3, 1, 3, 2, 9, 1, 5, 1, 2, 4, 3, 9, 2, 0, 17, 1, 2,
                  5, 4, 2, 2, 3, 4, 1, 2, 0, 2, 1, 4, 1, 4, 2, 4, 11, 5, 4, 4,
                  2, 2, 3, 3, 0, 7, 0, 15, 9, 18, 2, 2, 7, 2, 2, 2, 22, 2, 9, 2,
                  4, 4, 7, 2, 2, 2, 3, 8, 1, 2, 1, 7, 3, 3, 9, 19, 1, 2, 7, 2,
                  2, 2, 22, 2, 9, 2, 4, 3, 8, 2, 2, 2, 3, 8, 1, 8, 0, 2, 3, 3,
                  9, 19, 1, 2, 7, 2, 2, 2, 22, 2, 15, 4, 7, 2, 2, 2, 3, 10, 0,
                  9, 3, 3, 9, 11, 5, 3, 1, 2, 17, 4, 23, 2, 8, 2, 0, 3, 6, 4, 0,
                  5, 5, 2, 0, 2, 7, 19, 1, 14, 57, 6, 14, 2, 9, 40, 1, 2, 0, 3,
                  1, 2, 0, 3, 0, 7, 3, 2, 6, 2, 2, 2, 0, 2, 0, 3, 1, 2, 12, 2,
                  2, 3, 4, 2, 0, 2, 5, 3, 9, 3, 1, 35, 0, 24, 1, 7, 9, 12, 0, 2,
                  0, 2, 0, 5, 9, 2, 35, 5, 19, 2, 5, 5, 7, 2, 35, 10, 0, 58, 73,
                  7, 77, 3, 37, 11, 42, 2, 0, 4, 328, 2, 3, 3, 6, 2, 0, 2, 3, 3,
                  40, 2, 3, 3, 32, 2, 3, 3, 6, 2, 0, 2, 3, 3, 14, 2, 56, 2, 3,
                  3, 66, 5, 0, 33, 15, 17, 84, 13, 619, 3, 16, 2, 25, 6, 74, 22,
                  12, 2, 6, 12, 20, 12, 19, 13, 12, 2, 2, 2, 1, 13, 51, 3, 29,
                  4, 0, 5, 1, 3, 9, 34, 2, 3, 9, 7, 87, 9, 42, 6, 69, 11, 28, 4,
                  11, 5, 11, 11, 39, 3, 4, 12, 43, 5, 25, 7, 10, 38, 27, 5, 62,
                  2, 28, 3, 10, 7, 9, 14, 0, 89, 75, 5, 9, 18, 8, 13, 42, 4, 11,
                  71, 55, 9, 9, 4, 48, 83, 2, 2, 30, 14, 230, 23, 280, 3, 5, 3,
                  37, 3, 5, 3, 7, 2, 0, 2, 0, 2, 0, 2, 30, 3, 52, 2, 6, 2, 0, 4,
                  2, 2, 6, 4, 3, 3, 5, 5, 12, 6, 2, 2, 6, 67, 1, 20, 0, 29, 0,
                  14, 0, 17, 4, 60, 12, 5, 0, 4, 11, 18, 0, 5, 0, 3, 9, 2, 0, 4,
                  4, 7, 0, 2, 0, 2, 0, 2, 3, 2, 10, 3, 3, 6, 4, 5, 0, 53, 1,
                  2684, 46, 2, 46, 2, 132, 7, 6, 15, 37, 11, 53, 10, 0, 17, 22,
                  10, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 6, 2, 31, 48, 0,
                  470, 1, 36, 5, 2, 4, 6, 1, 5, 85, 3, 1, 3, 2, 2, 89, 2, 3, 6,
                  40, 4, 93, 18, 23, 57, 15, 513, 6581, 75, 20939, 53, 1164, 68,
                  45, 3, 268, 4, 27, 21, 31, 3, 13, 13, 1, 2, 24, 9, 69, 11, 1,
                  38, 8, 3, 102, 3, 1, 111, 44, 25, 51, 13, 68, 12, 9, 7, 23, 4,
                  0, 5, 45, 3, 35, 13, 28, 4, 64, 15, 10, 39, 54, 10, 13, 3, 9,
                  7, 22, 4, 1, 5, 66, 25, 2, 227, 42, 2, 1, 3, 9, 7, 11171, 13,
                  22, 5, 48, 8453, 301, 3, 61, 3, 105, 39, 6, 13, 4, 6, 11, 2,
                  12, 2, 4, 2, 0, 2, 1, 2, 1, 2, 107, 34, 362, 19, 63, 3, 53,
                  41, 11, 5, 15, 17, 6, 13, 1, 25, 2, 33, 4, 2, 134, 20, 9, 8,
                  25, 5, 0, 2, 25, 12, 88, 4, 5, 3, 5, 3, 5, 3, 2,
                ],
                r = 0,
                o = [],
                s = 0;
              s < i.length;
              s += 2
            )
              o.push((r += i[s])), i[s + 1] && o.push(45, (r += i[s + 1]));
            t.wordChars = String.fromCharCode.apply(null, o);
          }
        ),
        ace.define(
          "ace/mode/text",
          [
            "require",
            "exports",
            "module",
            "ace/config",
            "ace/tokenizer",
            "ace/mode/text_highlight_rules",
            "ace/mode/behaviour/cstyle",
            "ace/unicode",
            "ace/lib/lang",
            "ace/token_iterator",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../config"),
              r = e("../tokenizer").Tokenizer,
              o = e("./text_highlight_rules").TextHighlightRules,
              s = e("./behaviour/cstyle").CstyleBehaviour,
              a = e("../unicode"),
              l = e("../lib/lang"),
              c = e("../token_iterator").TokenIterator,
              d = e("../range").Range,
              u = function () {
                this.HighlightRules = o;
              };
            (function () {
              (this.$defaultBehaviour = new s()),
                (this.tokenRe = new RegExp("^[" + a.wordChars + "\\$_]+", "g")),
                (this.nonTokenRe = new RegExp(
                  "^(?:[^" + a.wordChars + "\\$_]|\\s])+",
                  "g"
                )),
                (this.getTokenizer = function () {
                  return (
                    this.$tokenizer ||
                      ((this.$highlightRules =
                        this.$highlightRules ||
                        new this.HighlightRules(this.$highlightRuleConfig)),
                      (this.$tokenizer = new r(
                        this.$highlightRules.getRules()
                      ))),
                    this.$tokenizer
                  );
                }),
                (this.lineCommentStart = ""),
                (this.blockComment = ""),
                (this.toggleCommentLines = function (e, t, n, i) {
                  var r = t.doc,
                    o = !0,
                    s = !0,
                    a = 1 / 0,
                    c = t.getTabSize(),
                    d = !1;
                  if (this.lineCommentStart) {
                    if (Array.isArray(this.lineCommentStart))
                      (A = this.lineCommentStart.map(l.escapeRegExp).join("|")),
                        (g = this.lineCommentStart[0]);
                    else
                      (A = l.escapeRegExp(this.lineCommentStart)),
                        (g = this.lineCommentStart);
                    (A = new RegExp("^(\\s*)(?:" + A + ") ?")),
                      (d = t.getUseSoftTabs());
                    v = function (e, t) {
                      var n = e.match(A);
                      if (n) {
                        var i = n[1].length,
                          o = n[0].length;
                        h(e, i, o) || " " != n[0][o - 1] || o--,
                          r.removeInLine(t, i, o);
                      }
                    };
                    var u = g + " ",
                      h =
                        ((m = function (e, t) {
                          (o && !/\S/.test(e)) ||
                            (h(e, a, a)
                              ? r.insertInLine(
                                  {
                                    row: t,
                                    column: a,
                                  },
                                  u
                                )
                              : r.insertInLine(
                                  {
                                    row: t,
                                    column: a,
                                  },
                                  g
                                ));
                        }),
                        (b = function (e, t) {
                          return A.test(e);
                        }),
                        function (e, t, n) {
                          for (var i = 0; t-- && " " == e.charAt(t); ) i++;
                          if (i % c != 0) return !1;
                          for (i = 0; " " == e.charAt(n++); ) i++;
                          return c > 2 ? i % c != c - 1 : i % c == 0;
                        });
                  } else {
                    if (!this.blockComment) return !1;
                    var g = this.blockComment.start,
                      p = this.blockComment.end,
                      A = new RegExp("^(\\s*)(?:" + l.escapeRegExp(g) + ")"),
                      f = new RegExp("(?:" + l.escapeRegExp(p) + ")\\s*$"),
                      m = function (e, t) {
                        b(e, t) ||
                          (o && !/\S/.test(e)) ||
                          (r.insertInLine(
                            {
                              row: t,
                              column: e.length,
                            },
                            p
                          ),
                          r.insertInLine(
                            {
                              row: t,
                              column: a,
                            },
                            g
                          ));
                      },
                      v = function (e, t) {
                        var n;
                        (n = e.match(f)) &&
                          r.removeInLine(t, e.length - n[0].length, e.length),
                          (n = e.match(A)) &&
                            r.removeInLine(t, n[1].length, n[0].length);
                      },
                      b = function (e, n) {
                        if (A.test(e)) return !0;
                        for (var i = t.getTokens(n), r = 0; r < i.length; r++)
                          if ("comment" === i[r].type) return !0;
                      };
                  }

                  function w(e) {
                    for (var t = n; t <= i; t++) e(r.getLine(t), t);
                  }
                  var y = 1 / 0;
                  w(function (e, t) {
                    var n = e.search(/\S/);
                    -1 !== n
                      ? (n < a && (a = n), s && !b(e, t) && (s = !1))
                      : y > e.length && (y = e.length);
                  }),
                    a == 1 / 0 && ((a = y), (o = !1), (s = !1)),
                    d && a % c != 0 && (a = Math.floor(a / c) * c),
                    w(s ? v : m);
                }),
                (this.toggleBlockComment = function (e, t, n, i) {
                  var r = this.blockComment;
                  if (r) {
                    !r.start && r[0] && (r = r[0]);
                    var o,
                      s,
                      a = (A = new c(t, i.row, i.column)).getCurrentToken(),
                      l = (t.selection, t.selection.toOrientedRange());
                    if (a && /comment/.test(a.type)) {
                      for (var u, h; a && /comment/.test(a.type); ) {
                        if (-1 != (f = a.value.indexOf(r.start))) {
                          var g = A.getCurrentTokenRow(),
                            p = A.getCurrentTokenColumn() + f;
                          u = new d(g, p, g, p + r.start.length);
                          break;
                        }
                        a = A.stepBackward();
                      }
                      var A;
                      for (
                        a = (A = new c(t, i.row, i.column)).getCurrentToken();
                        a && /comment/.test(a.type);

                      ) {
                        var f;
                        if (-1 != (f = a.value.indexOf(r.end))) {
                          (g = A.getCurrentTokenRow()),
                            (p = A.getCurrentTokenColumn() + f);
                          h = new d(g, p, g, p + r.end.length);
                          break;
                        }
                        a = A.stepForward();
                      }
                      h && t.remove(h),
                        u &&
                          (t.remove(u),
                          (o = u.start.row),
                          (s = -r.start.length));
                    } else
                      (s = r.start.length),
                        (o = n.start.row),
                        t.insert(n.end, r.end),
                        t.insert(n.start, r.start);
                    l.start.row == o && (l.start.column += s),
                      l.end.row == o && (l.end.column += s),
                      t.selection.fromOrientedRange(l);
                  }
                }),
                (this.getNextLineIndent = function (e, t, n) {
                  return this.$getIndent(t);
                }),
                (this.checkOutdent = function (e, t, n) {
                  return !1;
                }),
                (this.autoOutdent = function (e, t, n) {}),
                (this.$getIndent = function (e) {
                  return e.match(/^\s*/)[0];
                }),
                (this.createWorker = function (e) {
                  return null;
                }),
                (this.createModeDelegates = function (e) {
                  for (var t in ((this.$embeds = []), (this.$modes = {}), e))
                    if (e[t]) {
                      var n = e[t],
                        r = n.prototype.$id,
                        o = i.$modes[r];
                      o || (i.$modes[r] = o = new n()),
                        i.$modes[t] || (i.$modes[t] = o),
                        this.$embeds.push(t),
                        (this.$modes[t] = o);
                    }
                  var s = [
                    "toggleBlockComment",
                    "toggleCommentLines",
                    "getNextLineIndent",
                    "checkOutdent",
                    "autoOutdent",
                    "transformAction",
                    "getCompletions",
                  ];
                  for (t = 0; t < s.length; t++)
                    !(function (e) {
                      var n = s[t],
                        i = e[n];
                      e[s[t]] = function () {
                        return this.$delegator(n, arguments, i);
                      };
                    })(this);
                }),
                (this.$delegator = function (e, t, n) {
                  var i = t[0] || "start";
                  if ("string" != typeof i) {
                    if (Array.isArray(i[2])) {
                      var r = i[2][i[2].length - 1];
                      if ((s = this.$modes[r]))
                        return s[e].apply(
                          s,
                          [i[1]].concat([].slice.call(t, 1))
                        );
                    }
                    i = i[0] || "start";
                  }
                  for (var o = 0; o < this.$embeds.length; o++)
                    if (this.$modes[this.$embeds[o]]) {
                      var s,
                        a = i.split(this.$embeds[o]);
                      if (!a[0] && a[1])
                        return (
                          (t[0] = a[1]),
                          (s = this.$modes[this.$embeds[o]])[e].apply(s, t)
                        );
                    }
                  var l = n.apply(this, t);
                  return n ? l : void 0;
                }),
                (this.transformAction = function (e, t, n, i, r) {
                  if (this.$behaviour) {
                    var o = this.$behaviour.getBehaviours();
                    for (var s in o)
                      if (o[s][t]) {
                        var a = o[s][t].apply(this, arguments);
                        if (a) return a;
                      }
                  }
                }),
                (this.getKeywords = function (e) {
                  if (!this.completionKeywords) {
                    var t = this.$tokenizer.rules,
                      n = [];
                    for (var i in t)
                      for (var r = t[i], o = 0, s = r.length; o < s; o++)
                        if ("string" == typeof r[o].token)
                          / keyword | support | storage /.test(r[o].token) &&
                            n.push(r[o].regex);
                        else if ("object" == typeof r[o].token)
                          for (var a = 0, l = r[o].token.length; a < l; a++)
                            if (/keyword|support|storage/.test(r[o].token[a])) {
                              i = r[o].regex.match(/\(.+?\)/g)[a];
                              n.push(i.substr(1, i.length - 2));
                            }
                    this.completionKeywords = n;
                  }
                  return e
                    ? n.concat(this.$keywordList || [])
                    : this.$keywordList;
                }),
                (this.$createKeywordList = function () {
                  return (
                    this.$highlightRules || this.getTokenizer(),
                    (this.$keywordList =
                      this.$highlightRules.$keywordList || [])
                  );
                }),
                (this.getCompletions = function (e, t, n, i) {
                  return (this.$keywordList || this.$createKeywordList()).map(
                    function (e) {
                      return {
                        name: e,
                        value: e,
                        score: 0,
                        meta: "keyword",
                      };
                    }
                  );
                }),
                (this.$id = "ace/mode/text");
            }).call(u.prototype),
              (t.Mode = u);
          }
        ),
        ace.define(
          "ace/apply_delta",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            t.applyDelta = function (e, t, n) {
              var i = t.start.row,
                r = t.start.column,
                o = e[i] || "";
              switch (t.action) {
                case "insert":
                  if (1 === t.lines.length)
                    e[i] = o.substring(0, r) + t.lines[0] + o.substring(r);
                  else {
                    var s = [i, 1].concat(t.lines);
                    e.splice.apply(e, s),
                      (e[i] = o.substring(0, r) + e[i]),
                      (e[i + t.lines.length - 1] += o.substring(r));
                  }
                  break;
                case "remove":
                  var a = t.end.column,
                    l = t.end.row;
                  i === l
                    ? (e[i] = o.substring(0, r) + o.substring(a))
                    : e.splice(
                        i,
                        l - i + 1,
                        o.substring(0, r) + e[l].substring(a)
                      );
              }
            };
          }
        ),
        ace.define(
          "ace/anchor",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/event_emitter").EventEmitter,
              o = (t.Anchor = function (e, t, n) {
                (this.$onChange = this.onChange.bind(this)),
                  this.attach(e),
                  void 0 === n
                    ? this.setPosition(t.row, t.column)
                    : this.setPosition(t, n);
              });
            (function () {
              function e(e, t, n) {
                var i = n ? e.column <= t.column : e.column < t.column;
                return e.row < t.row || (e.row == t.row && i);
              }
              i.implement(this, r),
                (this.getPosition = function () {
                  return this.$clipPositionToDocument(this.row, this.column);
                }),
                (this.getDocument = function () {
                  return this.document;
                }),
                (this.$insertRight = !1),
                (this.onChange = function (t) {
                  if (
                    !(
                      (t.start.row == t.end.row && t.start.row != this.row) ||
                      t.start.row > this.row
                    )
                  ) {
                    var n = (function (t, n, i) {
                      var r = "insert" == t.action,
                        o = (r ? 1 : -1) * (t.end.row - t.start.row),
                        s = (r ? 1 : -1) * (t.end.column - t.start.column),
                        a = t.start,
                        l = r ? a : t.end;
                      if (e(n, a, i))
                        return {
                          row: n.row,
                          column: n.column,
                        };
                      if (e(l, n, !i))
                        return {
                          row: n.row + o,
                          column: n.column + (n.row == l.row ? s : 0),
                        };
                      return {
                        row: a.row,
                        column: a.column,
                      };
                    })(
                      t,
                      {
                        row: this.row,
                        column: this.column,
                      },
                      this.$insertRight
                    );
                    this.setPosition(n.row, n.column, !0);
                  }
                }),
                (this.setPosition = function (e, t, n) {
                  var i;
                  if (
                    ((i = n
                      ? {
                          row: e,
                          column: t,
                        }
                      : this.$clipPositionToDocument(e, t)),
                    this.row != i.row || this.column != i.column)
                  ) {
                    var r = {
                      row: this.row,
                      column: this.column,
                    };
                    (this.row = i.row),
                      (this.column = i.column),
                      this._signal("change", {
                        old: r,
                        value: i,
                      });
                  }
                }),
                (this.detach = function () {
                  this.document.off("change", this.$onChange);
                }),
                (this.attach = function (e) {
                  (this.document = e || this.document),
                    this.document.on("change", this.$onChange);
                }),
                (this.$clipPositionToDocument = function (e, t) {
                  var n = {};
                  return (
                    e >= this.document.getLength()
                      ? ((n.row = Math.max(0, this.document.getLength() - 1)),
                        (n.column = this.document.getLine(n.row).length))
                      : e < 0
                      ? ((n.row = 0), (n.column = 0))
                      : ((n.row = e),
                        (n.column = Math.min(
                          this.document.getLine(n.row).length,
                          Math.max(0, t)
                        ))),
                    t < 0 && (n.column = 0),
                    n
                  );
                });
            }).call(o.prototype);
          }
        ),
        ace.define(
          "ace/document",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/apply_delta",
            "ace/lib/event_emitter",
            "ace/range",
            "ace/anchor",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./apply_delta").applyDelta,
              o = e("./lib/event_emitter").EventEmitter,
              s = e("./range").Range,
              a = e("./anchor").Anchor,
              l = function (e) {
                (this.$lines = [""]),
                  0 === e.length
                    ? (this.$lines = [""])
                    : Array.isArray(e)
                    ? this.insertMergedLines(
                        {
                          row: 0,
                          column: 0,
                        },
                        e
                      )
                    : this.insert(
                        {
                          row: 0,
                          column: 0,
                        },
                        e
                      );
              };
            (function () {
              i.implement(this, o),
                (this.setValue = function (e) {
                  var t = this.getLength() - 1;
                  this.remove(new s(0, 0, t, this.getLine(t).length)),
                    this.insert(
                      {
                        row: 0,
                        column: 0,
                      },
                      e
                    );
                }),
                (this.getValue = function () {
                  return this.getAllLines().join(this.getNewLineCharacter());
                }),
                (this.createAnchor = function (e, t) {
                  return new a(this, e, t);
                }),
                0 === "aaa".split(/a/).length
                  ? (this.$split = function (e) {
                      return e.replace(/\r\n|\r/g, "\n").split("\n");
                    })
                  : (this.$split = function (e) {
                      return e.split(/\r\n|\r|\n/);
                    }),
                (this.$detectNewLine = function (e) {
                  var t = e.match(/^.*?(\r\n|\r|\n)/m);
                  (this.$autoNewLine = t ? t[1] : "\n"),
                    this._signal("changeNewLineMode");
                }),
                (this.getNewLineCharacter = function () {
                  switch (this.$newLineMode) {
                    case "windows":
                      return "\r\n";
                    case "unix":
                      return "\n";
                    default:
                      return this.$autoNewLine || "\n";
                  }
                }),
                (this.$autoNewLine = ""),
                (this.$newLineMode = "auto"),
                (this.setNewLineMode = function (e) {
                  this.$newLineMode !== e &&
                    ((this.$newLineMode = e),
                    this._signal("changeNewLineMode"));
                }),
                (this.getNewLineMode = function () {
                  return this.$newLineMode;
                }),
                (this.isNewLine = function (e) {
                  return "\r\n" == e || "\r" == e || "\n" == e;
                }),
                (this.getLine = function (e) {
                  return this.$lines[e] || "";
                }),
                (this.getLines = function (e, t) {
                  return this.$lines.slice(e, t + 1);
                }),
                (this.getAllLines = function () {
                  return this.getLines(0, this.getLength());
                }),
                (this.getLength = function () {
                  return this.$lines.length;
                }),
                (this.getTextRange = function (e) {
                  return this.getLinesForRange(e).join(
                    this.getNewLineCharacter()
                  );
                }),
                (this.getLinesForRange = function (e) {
                  var t;
                  if (e.start.row === e.end.row)
                    t = [
                      this.getLine(e.start.row).substring(
                        e.start.column,
                        e.end.column
                      ),
                    ];
                  else {
                    (t = this.getLines(e.start.row, e.end.row))[0] = (
                      t[0] || ""
                    ).substring(e.start.column);
                    var n = t.length - 1;
                    e.end.row - e.start.row == n &&
                      (t[n] = t[n].substring(0, e.end.column));
                  }
                  return t;
                }),
                (this.insertLines = function (e, t) {
                  return (
                    console.warn(
                      "Use of document.insertLines is deprecated. Use the insertFullLines method instead."
                    ),
                    this.insertFullLines(e, t)
                  );
                }),
                (this.removeLines = function (e, t) {
                  return (
                    console.warn(
                      "Use of document.removeLines is deprecated. Use the removeFullLines method instead."
                    ),
                    this.removeFullLines(e, t)
                  );
                }),
                (this.insertNewLine = function (e) {
                  return (
                    console.warn(
                      "Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."
                    ),
                    this.insertMergedLines(e, ["", ""])
                  );
                }),
                (this.insert = function (e, t) {
                  return (
                    this.getLength() <= 1 && this.$detectNewLine(t),
                    this.insertMergedLines(e, this.$split(t))
                  );
                }),
                (this.insertInLine = function (e, t) {
                  var n = this.clippedPos(e.row, e.column),
                    i = this.pos(e.row, e.column + t.length);
                  return (
                    this.applyDelta(
                      {
                        start: n,
                        end: i,
                        action: "insert",
                        lines: [t],
                      },
                      !0
                    ),
                    this.clonePos(i)
                  );
                }),
                (this.clippedPos = function (e, t) {
                  var n = this.getLength();
                  void 0 === e
                    ? (e = n)
                    : e < 0
                    ? (e = 0)
                    : e >= n && ((e = n - 1), (t = void 0));
                  var i = this.getLine(e);
                  return (
                    null == t && (t = i.length),
                    {
                      row: e,
                      column: (t = Math.min(Math.max(t, 0), i.length)),
                    }
                  );
                }),
                (this.clonePos = function (e) {
                  return {
                    row: e.row,
                    column: e.column,
                  };
                }),
                (this.pos = function (e, t) {
                  return {
                    row: e,
                    column: t,
                  };
                }),
                (this.$clipPosition = function (e) {
                  var t = this.getLength();
                  return (
                    e.row >= t
                      ? ((e.row = Math.max(0, t - 1)),
                        (e.column = this.getLine(t - 1).length))
                      : ((e.row = Math.max(0, e.row)),
                        (e.column = Math.min(
                          Math.max(e.column, 0),
                          this.getLine(e.row).length
                        ))),
                    e
                  );
                }),
                (this.insertFullLines = function (e, t) {
                  var n = 0;
                  (e = Math.min(Math.max(e, 0), this.getLength())) <
                  this.getLength()
                    ? ((t = t.concat([""])), (n = 0))
                    : ((t = [""].concat(t)), e--, (n = this.$lines[e].length)),
                    this.insertMergedLines(
                      {
                        row: e,
                        column: n,
                      },
                      t
                    );
                }),
                (this.insertMergedLines = function (e, t) {
                  var n = this.clippedPos(e.row, e.column),
                    i = {
                      row: n.row + t.length - 1,
                      column:
                        (1 == t.length ? n.column : 0) + t[t.length - 1].length,
                    };
                  return (
                    this.applyDelta({
                      start: n,
                      end: i,
                      action: "insert",
                      lines: t,
                    }),
                    this.clonePos(i)
                  );
                }),
                (this.remove = function (e) {
                  var t = this.clippedPos(e.start.row, e.start.column),
                    n = this.clippedPos(e.end.row, e.end.column);
                  return (
                    this.applyDelta({
                      start: t,
                      end: n,
                      action: "remove",
                      lines: this.getLinesForRange({
                        start: t,
                        end: n,
                      }),
                    }),
                    this.clonePos(t)
                  );
                }),
                (this.removeInLine = function (e, t, n) {
                  var i = this.clippedPos(e, t),
                    r = this.clippedPos(e, n);
                  return (
                    this.applyDelta(
                      {
                        start: i,
                        end: r,
                        action: "remove",
                        lines: this.getLinesForRange({
                          start: i,
                          end: r,
                        }),
                      },
                      !0
                    ),
                    this.clonePos(i)
                  );
                }),
                (this.removeFullLines = function (e, t) {
                  e = Math.min(Math.max(0, e), this.getLength() - 1);
                  var n =
                      (t = Math.min(Math.max(0, t), this.getLength() - 1)) ==
                        this.getLength() - 1 && e > 0,
                    i = t < this.getLength() - 1,
                    r = n ? e - 1 : e,
                    o = n ? this.getLine(r).length : 0,
                    a = i ? t + 1 : t,
                    l = i ? 0 : this.getLine(a).length,
                    c = new s(r, o, a, l),
                    d = this.$lines.slice(e, t + 1);
                  return (
                    this.applyDelta({
                      start: c.start,
                      end: c.end,
                      action: "remove",
                      lines: this.getLinesForRange(c),
                    }),
                    d
                  );
                }),
                (this.removeNewLine = function (e) {
                  e < this.getLength() - 1 &&
                    e >= 0 &&
                    this.applyDelta({
                      start: this.pos(e, this.getLine(e).length),
                      end: this.pos(e + 1, 0),
                      action: "remove",
                      lines: ["", ""],
                    });
                }),
                (this.replace = function (e, t) {
                  return (
                    e instanceof s || (e = s.fromPoints(e.start, e.end)),
                    0 === t.length && e.isEmpty()
                      ? e.start
                      : t == this.getTextRange(e)
                      ? e.end
                      : (this.remove(e), t ? this.insert(e.start, t) : e.start)
                  );
                }),
                (this.applyDeltas = function (e) {
                  for (var t = 0; t < e.length; t++) this.applyDelta(e[t]);
                }),
                (this.revertDeltas = function (e) {
                  for (var t = e.length - 1; t >= 0; t--)
                    this.revertDelta(e[t]);
                }),
                (this.applyDelta = function (e, t) {
                  var n = "insert" == e.action;
                  (n
                    ? e.lines.length <= 1 && !e.lines[0]
                    : !s.comparePoints(e.start, e.end)) ||
                    (n && e.lines.length > 2e4
                      ? this.$splitAndapplyLargeDelta(e, 2e4)
                      : (r(this.$lines, e, t), this._signal("change", e)));
                }),
                (this.$safeApplyDelta = function (e) {
                  var t = this.$lines.length;
                  (("remove" == e.action && e.start.row < t && e.end.row < t) ||
                    ("insert" == e.action && e.start.row <= t)) &&
                    this.applyDelta(e);
                }),
                (this.$splitAndapplyLargeDelta = function (e, t) {
                  for (
                    var n = e.lines,
                      i = n.length - t + 1,
                      r = e.start.row,
                      o = e.start.column,
                      s = 0,
                      a = 0;
                    s < i;
                    s = a
                  ) {
                    a += t - 1;
                    var l = n.slice(s, a);
                    l.push(""),
                      this.applyDelta(
                        {
                          start: this.pos(r + s, o),
                          end: this.pos(r + a, (o = 0)),
                          action: e.action,
                          lines: l,
                        },
                        !0
                      );
                  }
                  (e.lines = n.slice(s)),
                    (e.start.row = r + s),
                    (e.start.column = o),
                    this.applyDelta(e, !0);
                }),
                (this.revertDelta = function (e) {
                  this.$safeApplyDelta({
                    start: this.clonePos(e.start),
                    end: this.clonePos(e.end),
                    action: "insert" == e.action ? "remove" : "insert",
                    lines: e.lines.slice(),
                  });
                }),
                (this.indexToPosition = function (e, t) {
                  for (
                    var n = this.$lines || this.getAllLines(),
                      i = this.getNewLineCharacter().length,
                      r = t || 0,
                      o = n.length;
                    r < o;
                    r++
                  )
                    if ((e -= n[r].length + i) < 0)
                      return {
                        row: r,
                        column: e + n[r].length + i,
                      };
                  return {
                    row: o - 1,
                    column: e + n[o - 1].length + i,
                  };
                }),
                (this.positionToIndex = function (e, t) {
                  for (
                    var n = this.$lines || this.getAllLines(),
                      i = this.getNewLineCharacter().length,
                      r = 0,
                      o = Math.min(e.row, n.length),
                      s = t || 0;
                    s < o;
                    ++s
                  )
                    r += n[s].length + i;
                  return r + e.column;
                });
            }).call(l.prototype),
              (t.Document = l);
          }
        ),
        ace.define(
          "ace/background_tokenizer",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/event_emitter").EventEmitter,
              o = function (e, t) {
                (this.running = !1),
                  (this.lines = []),
                  (this.states = []),
                  (this.currentLine = 0),
                  (this.tokenizer = e);
                var n = this;
                this.$worker = function () {
                  if (n.running) {
                    for (
                      var e = new Date(),
                        t = n.currentLine,
                        i = -1,
                        r = n.doc,
                        o = t;
                      n.lines[t];

                    )
                      t++;
                    var s = r.getLength(),
                      a = 0;
                    for (n.running = !1; t < s; ) {
                      n.$tokenizeRow(t), (i = t);
                      do {
                        t++;
                      } while (n.lines[t]);
                      if (++a % 5 == 0 && new Date() - e > 20) {
                        n.running = setTimeout(n.$worker, 20);
                        break;
                      }
                    }
                    (n.currentLine = t),
                      -1 == i && (i = t),
                      o <= i && n.fireUpdateEvent(o, i);
                  }
                };
              };
            (function () {
              i.implement(this, r),
                (this.setTokenizer = function (e) {
                  (this.tokenizer = e),
                    (this.lines = []),
                    (this.states = []),
                    this.start(0);
                }),
                (this.setDocument = function (e) {
                  (this.doc = e),
                    (this.lines = []),
                    (this.states = []),
                    this.stop();
                }),
                (this.fireUpdateEvent = function (e, t) {
                  var n = {
                    first: e,
                    last: t,
                  };
                  this._signal("update", {
                    data: n,
                  });
                }),
                (this.start = function (e) {
                  (this.currentLine = Math.min(
                    e || 0,
                    this.currentLine,
                    this.doc.getLength()
                  )),
                    this.lines.splice(this.currentLine, this.lines.length),
                    this.states.splice(this.currentLine, this.states.length),
                    this.stop(),
                    (this.running = setTimeout(this.$worker, 700));
                }),
                (this.scheduleStart = function () {
                  this.running ||
                    (this.running = setTimeout(this.$worker, 700));
                }),
                (this.$updateOnChange = function (e) {
                  var t = e.start.row,
                    n = e.end.row - t;
                  if (0 === n) this.lines[t] = null;
                  else if ("remove" == e.action)
                    this.lines.splice(t, n + 1, null),
                      this.states.splice(t, n + 1, null);
                  else {
                    var i = Array(n + 1);
                    i.unshift(t, 1),
                      this.lines.splice.apply(this.lines, i),
                      this.states.splice.apply(this.states, i);
                  }
                  (this.currentLine = Math.min(
                    t,
                    this.currentLine,
                    this.doc.getLength()
                  )),
                    this.stop();
                }),
                (this.stop = function () {
                  this.running && clearTimeout(this.running),
                    (this.running = !1);
                }),
                (this.getTokens = function (e) {
                  return this.lines[e] || this.$tokenizeRow(e);
                }),
                (this.getState = function (e) {
                  return (
                    this.currentLine == e && this.$tokenizeRow(e),
                    this.states[e] || "start"
                  );
                }),
                (this.$tokenizeRow = function (e) {
                  var t = this.doc.getLine(e),
                    n = this.states[e - 1],
                    i = this.tokenizer.getLineTokens(t, n, e);
                  return (
                    this.states[e] + "" != i.state + ""
                      ? ((this.states[e] = i.state),
                        (this.lines[e + 1] = null),
                        this.currentLine > e + 1 && (this.currentLine = e + 1))
                      : this.currentLine == e && (this.currentLine = e + 1),
                    (this.lines[e] = i.tokens)
                  );
                });
            }).call(o.prototype),
              (t.BackgroundTokenizer = o);
          }
        ),
        ace.define(
          "ace/search_highlight",
          [
            "require",
            "exports",
            "module",
            "ace/lib/lang",
            "ace/lib/oop",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/lang"),
              r = (e("./lib/oop"), e("./range").Range),
              o = function (e, t, n) {
                this.setRegexp(e), (this.clazz = t), (this.type = n || "text");
              };
            (function () {
              (this.MAX_RANGES = 500),
                (this.setRegexp = function (e) {
                  this.regExp + "" != e + "" &&
                    ((this.regExp = e), (this.cache = []));
                }),
                (this.update = function (e, t, n, o) {
                  if (this.regExp)
                    for (
                      var s = o.firstRow, a = o.lastRow, l = s;
                      l <= a;
                      l++
                    ) {
                      var c = this.cache[l];
                      null == c &&
                        ((c = i.getMatchOffsets(n.getLine(l), this.regExp))
                          .length > this.MAX_RANGES &&
                          (c = c.slice(0, this.MAX_RANGES)),
                        (c = c.map(function (e) {
                          return new r(l, e.offset, l, e.offset + e.length);
                        })),
                        (this.cache[l] = c.length ? c : ""));
                      for (var d = c.length; d--; )
                        t.drawSingleLineMarker(
                          e,
                          c[d].toScreenRange(n),
                          this.clazz,
                          o
                        );
                    }
                });
            }).call(o.prototype),
              (t.SearchHighlight = o);
          }
        ),
        ace.define(
          "ace/edit_session/fold_line",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("../range").Range;

            function r(e, t) {
              (this.foldData = e),
                Array.isArray(t) ? (this.folds = t) : (t = this.folds = [t]);
              var n = t[t.length - 1];
              (this.range = new i(
                t[0].start.row,
                t[0].start.column,
                n.end.row,
                n.end.column
              )),
                (this.start = this.range.start),
                (this.end = this.range.end),
                this.folds.forEach(function (e) {
                  e.setFoldLine(this);
                }, this);
            }
            (function () {
              (this.shiftRow = function (e) {
                (this.start.row += e),
                  (this.end.row += e),
                  this.folds.forEach(function (t) {
                    (t.start.row += e), (t.end.row += e);
                  });
              }),
                (this.addFold = function (e) {
                  if (e.sameRow) {
                    if (e.start.row < this.startRow || e.endRow > this.endRow)
                      throw new Error(
                        "Can't add a fold to this FoldLine as it has no connection"
                      );
                    this.folds.push(e),
                      this.folds.sort(function (e, t) {
                        return -e.range.compareEnd(t.start.row, t.start.column);
                      }),
                      this.range.compareEnd(e.start.row, e.start.column) > 0
                        ? ((this.end.row = e.end.row),
                          (this.end.column = e.end.column))
                        : this.range.compareStart(e.end.row, e.end.column) <
                            0 &&
                          ((this.start.row = e.start.row),
                          (this.start.column = e.start.column));
                  } else if (e.start.row == this.end.row)
                    this.folds.push(e),
                      (this.end.row = e.end.row),
                      (this.end.column = e.end.column);
                  else {
                    if (e.end.row != this.start.row)
                      throw new Error(
                        "Trying to add fold to FoldRow that doesn't have a matching row"
                      );
                    this.folds.unshift(e),
                      (this.start.row = e.start.row),
                      (this.start.column = e.start.column);
                  }
                  e.foldLine = this;
                }),
                (this.containsRow = function (e) {
                  return e >= this.start.row && e <= this.end.row;
                }),
                (this.walk = function (e, t, n) {
                  var i,
                    r,
                    o = 0,
                    s = this.folds,
                    a = !0;
                  null == t && ((t = this.end.row), (n = this.end.column));
                  for (var l = 0; l < s.length; l++) {
                    if (-1 == (r = (i = s[l]).range.compareStart(t, n)))
                      return void e(null, t, n, o, a);
                    if (
                      (!e(null, i.start.row, i.start.column, o, a) &&
                        e(i.placeholder, i.start.row, i.start.column, o)) ||
                      0 === r
                    )
                      return;
                    (a = !i.sameRow), (o = i.end.column);
                  }
                  e(null, t, n, o, a);
                }),
                (this.getNextFoldTo = function (e, t) {
                  for (var n, i, r = 0; r < this.folds.length; r++) {
                    if (-1 == (i = (n = this.folds[r]).range.compareEnd(e, t)))
                      return {
                        fold: n,
                        kind: "after",
                      };
                    if (0 === i)
                      return {
                        fold: n,
                        kind: "inside",
                      };
                  }
                  return null;
                }),
                (this.addRemoveChars = function (e, t, n) {
                  var i,
                    r,
                    o = this.getNextFoldTo(e, t);
                  if (o)
                    if (
                      ((i = o.fold),
                      "inside" == o.kind &&
                        i.start.column != t &&
                        i.start.row != e)
                    )
                      window.console && window.console.log(e, t, i);
                    else if (i.start.row == e) {
                      var s = (r = this.folds).indexOf(i);
                      for (
                        0 === s && (this.start.column += n);
                        s < r.length;
                        s++
                      ) {
                        if ((((i = r[s]).start.column += n), !i.sameRow))
                          return;
                        i.end.column += n;
                      }
                      this.end.column += n;
                    }
                }),
                (this.split = function (e, t) {
                  var n = this.getNextFoldTo(e, t);
                  if (!n || "inside" == n.kind) return null;
                  var i = n.fold,
                    o = this.folds,
                    s = this.foldData,
                    a = o.indexOf(i),
                    l = o[a - 1];
                  (this.end.row = l.end.row), (this.end.column = l.end.column);
                  var c = new r(s, (o = o.splice(a, o.length - a)));
                  return s.splice(s.indexOf(this) + 1, 0, c), c;
                }),
                (this.merge = function (e) {
                  for (var t = e.folds, n = 0; n < t.length; n++)
                    this.addFold(t[n]);
                  var i = this.foldData;
                  i.splice(i.indexOf(e), 1);
                }),
                (this.toString = function () {
                  var e = [this.range.toString() + ": ["];
                  return (
                    this.folds.forEach(function (t) {
                      e.push("  " + t.toString());
                    }),
                    e.push("]"),
                    e.join("\n")
                  );
                }),
                (this.idxToPosition = function (e) {
                  for (var t = 0, n = 0; n < this.folds.length; n++) {
                    var i = this.folds[n];
                    if ((e -= i.start.column - t) < 0)
                      return {
                        row: i.start.row,
                        column: i.start.column + e,
                      };
                    if ((e -= i.placeholder.length) < 0) return i.start;
                    t = i.end.column;
                  }
                  return {
                    row: this.end.row,
                    column: this.end.column + e,
                  };
                });
            }).call(r.prototype),
              (t.FoldLine = r);
          }
        ),
        ace.define(
          "ace/range_list",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("./range").Range.comparePoints,
              r = function () {
                (this.ranges = []), (this.$bias = 1);
              };
            (function () {
              (this.comparePoints = i),
                (this.pointIndex = function (e, t, n) {
                  for (var r = this.ranges, o = n || 0; o < r.length; o++) {
                    var s = r[o],
                      a = i(e, s.end);
                    if (!(a > 0)) {
                      var l = i(e, s.start);
                      return 0 === a
                        ? t && 0 !== l
                          ? -o - 2
                          : o
                        : l > 0 || (0 === l && !t)
                        ? o
                        : -o - 1;
                    }
                  }
                  return -o - 1;
                }),
                (this.add = function (e) {
                  var t = !e.isEmpty(),
                    n = this.pointIndex(e.start, t);
                  n < 0 && (n = -n - 1);
                  var i = this.pointIndex(e.end, t, n);
                  return (
                    i < 0 ? (i = -i - 1) : i++, this.ranges.splice(n, i - n, e)
                  );
                }),
                (this.addList = function (e) {
                  for (var t = [], n = e.length; n--; )
                    t.push.apply(t, this.add(e[n]));
                  return t;
                }),
                (this.substractPoint = function (e) {
                  var t = this.pointIndex(e);
                  if (t >= 0) return this.ranges.splice(t, 1);
                }),
                (this.merge = function () {
                  for (
                    var e,
                      t = [],
                      n = this.ranges,
                      r = (n = n.sort(function (e, t) {
                        return i(e.start, t.start);
                      }))[0],
                      o = 1;
                    o < n.length;
                    o++
                  ) {
                    (e = r), (r = n[o]);
                    var s = i(e.end, r.start);
                    s < 0 ||
                      ((0 != s || e.isEmpty() || r.isEmpty()) &&
                        (i(e.end, r.end) < 0 &&
                          ((e.end.row = r.end.row),
                          (e.end.column = r.end.column)),
                        n.splice(o, 1),
                        t.push(r),
                        (r = e),
                        o--));
                  }
                  return (this.ranges = n), t;
                }),
                (this.contains = function (e, t) {
                  return (
                    this.pointIndex({
                      row: e,
                      column: t,
                    }) >= 0
                  );
                }),
                (this.containsPoint = function (e) {
                  return this.pointIndex(e) >= 0;
                }),
                (this.rangeAtPoint = function (e) {
                  var t = this.pointIndex(e);
                  if (t >= 0) return this.ranges[t];
                }),
                (this.clipRows = function (e, t) {
                  var n = this.ranges;
                  if (n[0].start.row > t || n[n.length - 1].start.row < e)
                    return [];
                  var i = this.pointIndex({
                    row: e,
                    column: 0,
                  });
                  i < 0 && (i = -i - 1);
                  var r = this.pointIndex(
                    {
                      row: t,
                      column: 0,
                    },
                    i
                  );
                  r < 0 && (r = -r - 1);
                  for (var o = [], s = i; s < r; s++) o.push(n[s]);
                  return o;
                }),
                (this.removeAll = function () {
                  return this.ranges.splice(0, this.ranges.length);
                }),
                (this.attach = function (e) {
                  this.session && this.detach(),
                    (this.session = e),
                    (this.onChange = this.$onChange.bind(this)),
                    this.session.on("change", this.onChange);
                }),
                (this.detach = function () {
                  this.session &&
                    (this.session.removeListener("change", this.onChange),
                    (this.session = null));
                }),
                (this.$onChange = function (e) {
                  for (
                    var t = e.start,
                      n = e.end,
                      i = t.row,
                      r = n.row,
                      o = this.ranges,
                      s = 0,
                      a = o.length;
                    s < a;
                    s++
                  ) {
                    if ((d = o[s]).end.row >= i) break;
                  }
                  if ("insert" == e.action)
                    for (var l = r - i, c = -t.column + n.column; s < a; s++) {
                      if ((d = o[s]).start.row > i) break;
                      if (
                        (d.start.row == i &&
                          d.start.column >= t.column &&
                          ((d.start.column == t.column && this.$bias <= 0) ||
                            ((d.start.column += c), (d.start.row += l))),
                        d.end.row == i && d.end.column >= t.column)
                      ) {
                        if (d.end.column == t.column && this.$bias < 0)
                          continue;
                        d.end.column == t.column &&
                          c > 0 &&
                          s < a - 1 &&
                          d.end.column > d.start.column &&
                          d.end.column == o[s + 1].start.column &&
                          (d.end.column -= c),
                          (d.end.column += c),
                          (d.end.row += l);
                      }
                    }
                  else
                    for (l = i - r, c = t.column - n.column; s < a; s++) {
                      if ((d = o[s]).start.row > r) break;
                      d.end.row < r &&
                      (i < d.end.row ||
                        (i == d.end.row && t.column < d.end.column))
                        ? ((d.end.row = i), (d.end.column = t.column))
                        : d.end.row == r
                        ? d.end.column <= n.column
                          ? (l || d.end.column > t.column) &&
                            ((d.end.column = t.column), (d.end.row = t.row))
                          : ((d.end.column += c), (d.end.row += l))
                        : d.end.row > r && (d.end.row += l),
                        d.start.row < r &&
                        (i < d.start.row ||
                          (i == d.start.row && t.column < d.start.column))
                          ? ((d.start.row = i), (d.start.column = t.column))
                          : d.start.row == r
                          ? d.start.column <= n.column
                            ? (l || d.start.column > t.column) &&
                              ((d.start.column = t.column),
                              (d.start.row = t.row))
                            : ((d.start.column += c), (d.start.row += l))
                          : d.start.row > r && (d.start.row += l);
                    }
                  if (0 != l && s < a)
                    for (; s < a; s++) {
                      var d;
                      ((d = o[s]).start.row += l), (d.end.row += l);
                    }
                });
            }).call(r.prototype),
              (t.RangeList = r);
          }
        ),
        ace.define(
          "ace/edit_session/fold",
          ["require", "exports", "module", "ace/range_list", "ace/lib/oop"],
          function (e, t, n) {
            "use strict";
            var i = e("../range_list").RangeList,
              r = e("../lib/oop"),
              o = (t.Fold = function (e, t) {
                (this.foldLine = null),
                  (this.placeholder = t),
                  (this.range = e),
                  (this.start = e.start),
                  (this.end = e.end),
                  (this.sameRow = e.start.row == e.end.row),
                  (this.subFolds = this.ranges = []);
              });

            function s(e, t) {
              (e.row -= t.row), 0 == e.row && (e.column -= t.column);
            }

            function a(e, t) {
              0 == e.row && (e.column += t.column), (e.row += t.row);
            }
            r.inherits(o, i),
              function () {
                (this.toString = function () {
                  return '"' + this.placeholder + '" ' + this.range.toString();
                }),
                  (this.setFoldLine = function (e) {
                    (this.foldLine = e),
                      this.subFolds.forEach(function (t) {
                        t.setFoldLine(e);
                      });
                  }),
                  (this.clone = function () {
                    var e = this.range.clone(),
                      t = new o(e, this.placeholder);
                    return (
                      this.subFolds.forEach(function (e) {
                        t.subFolds.push(e.clone());
                      }),
                      (t.collapseChildren = this.collapseChildren),
                      t
                    );
                  }),
                  (this.addSubFold = function (e) {
                    if (!this.range.isEqual(e)) {
                      var t, n;
                      (t = e), (n = this.start), s(t.start, n), s(t.end, n);
                      for (
                        var i = e.start.row, r = e.start.column, o = 0, a = -1;
                        o < this.subFolds.length &&
                        1 == (a = this.subFolds[o].range.compare(i, r));
                        o++
                      );
                      var l = this.subFolds[o],
                        c = 0;
                      if (0 == a) {
                        if (l.range.containsRange(e)) return l.addSubFold(e);
                        c = 1;
                      }
                      (i = e.range.end.row), (r = e.range.end.column);
                      var d = o;
                      for (
                        a = -1;
                        d < this.subFolds.length &&
                        1 == (a = this.subFolds[d].range.compare(i, r));
                        d++
                      );
                      0 == a && d++;
                      for (
                        var u = this.subFolds.splice(o, d - o, e),
                          h = 0 == a ? u.length - 1 : u.length,
                          g = c;
                        g < h;
                        g++
                      )
                        e.addSubFold(u[g]);
                      return e.setFoldLine(this.foldLine), e;
                    }
                  }),
                  (this.restoreRange = function (e) {
                    return (function (e, t) {
                      a(e.start, t), a(e.end, t);
                    })(e, this.start);
                  });
              }.call(o.prototype);
          }
        ),
        ace.define(
          "ace/edit_session/folding",
          [
            "require",
            "exports",
            "module",
            "ace/range",
            "ace/edit_session/fold_line",
            "ace/edit_session/fold",
            "ace/token_iterator",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../range").Range,
              r = e("./fold_line").FoldLine,
              o = e("./fold").Fold,
              s = e("../token_iterator").TokenIterator;
            t.Folding = function () {
              (this.getFoldAt = function (e, t, n) {
                var i = this.getFoldLine(e);
                if (!i) return null;
                for (var r = i.folds, o = 0; o < r.length; o++) {
                  var s = r[o].range;
                  if (s.contains(e, t)) {
                    if (1 == n && s.isEnd(e, t) && !s.isEmpty()) continue;
                    if (-1 == n && s.isStart(e, t) && !s.isEmpty()) continue;
                    return r[o];
                  }
                }
              }),
                (this.getFoldsInRange = function (e) {
                  var t = e.start,
                    n = e.end,
                    i = this.$foldData,
                    r = [];
                  (t.column += 1), (n.column -= 1);
                  for (var o = 0; o < i.length; o++) {
                    var s = i[o].range.compareRange(e);
                    if (2 != s) {
                      if (-2 == s) break;
                      for (var a = i[o].folds, l = 0; l < a.length; l++) {
                        var c = a[l];
                        if (-2 == (s = c.range.compareRange(e))) break;
                        if (2 != s) {
                          if (42 == s) break;
                          r.push(c);
                        }
                      }
                    }
                  }
                  return (t.column -= 1), (n.column += 1), r;
                }),
                (this.getFoldsInRangeList = function (e) {
                  if (Array.isArray(e)) {
                    var t = [];
                    e.forEach(function (e) {
                      t = t.concat(this.getFoldsInRange(e));
                    }, this);
                  } else t = this.getFoldsInRange(e);
                  return t;
                }),
                (this.getAllFolds = function () {
                  for (var e = [], t = this.$foldData, n = 0; n < t.length; n++)
                    for (var i = 0; i < t[n].folds.length; i++)
                      e.push(t[n].folds[i]);
                  return e;
                }),
                (this.getFoldStringAt = function (e, t, n, i) {
                  if (!(i = i || this.getFoldLine(e))) return null;
                  for (
                    var r,
                      o,
                      s = {
                        end: {
                          column: 0,
                        },
                      },
                      a = 0;
                    a < i.folds.length;
                    a++
                  ) {
                    var l = (o = i.folds[a]).range.compareEnd(e, t);
                    if (-1 == l) {
                      r = this.getLine(o.start.row).substring(
                        s.end.column,
                        o.start.column
                      );
                      break;
                    }
                    if (0 === l) return null;
                    s = o;
                  }
                  return (
                    r ||
                      (r = this.getLine(o.start.row).substring(s.end.column)),
                    -1 == n
                      ? r.substring(0, t - s.end.column)
                      : 1 == n
                      ? r.substring(t - s.end.column)
                      : r
                  );
                }),
                (this.getFoldLine = function (e, t) {
                  var n = this.$foldData,
                    i = 0;
                  for (
                    t && (i = n.indexOf(t)), -1 == i && (i = 0);
                    i < n.length;
                    i++
                  ) {
                    var r = n[i];
                    if (r.start.row <= e && r.end.row >= e) return r;
                    if (r.end.row > e) return null;
                  }
                  return null;
                }),
                (this.getNextFoldLine = function (e, t) {
                  var n = this.$foldData,
                    i = 0;
                  for (
                    t && (i = n.indexOf(t)), -1 == i && (i = 0);
                    i < n.length;
                    i++
                  ) {
                    var r = n[i];
                    if (r.end.row >= e) return r;
                  }
                  return null;
                }),
                (this.getFoldedRowCount = function (e, t) {
                  for (
                    var n = this.$foldData, i = t - e + 1, r = 0;
                    r < n.length;
                    r++
                  ) {
                    var o = n[r],
                      s = o.end.row,
                      a = o.start.row;
                    if (s >= t) {
                      a < t && (a >= e ? (i -= t - a) : (i = 0));
                      break;
                    }
                    s >= e && (i -= a >= e ? s - a : s - e + 1);
                  }
                  return i;
                }),
                (this.$addFoldLine = function (e) {
                  return (
                    this.$foldData.push(e),
                    this.$foldData.sort(function (e, t) {
                      return e.start.row - t.start.row;
                    }),
                    e
                  );
                }),
                (this.addFold = function (e, t) {
                  var n,
                    i = this.$foldData,
                    s = !1;
                  e instanceof o
                    ? (n = e)
                    : ((n = new o(t, e)).collapseChildren = t.collapseChildren),
                    this.$clipRangeToDocument(n.range);
                  var a = n.start.row,
                    l = n.start.column,
                    c = n.end.row,
                    d = n.end.column,
                    u = this.getFoldAt(a, l, 1),
                    h = this.getFoldAt(c, d, -1);
                  if (u && h == u) return u.addSubFold(n);
                  u && !u.range.isStart(a, l) && this.removeFold(u),
                    h && !h.range.isEnd(c, d) && this.removeFold(h);
                  var g = this.getFoldsInRange(n.range);
                  g.length > 0 &&
                    (this.removeFolds(g),
                    n.collapseChildren ||
                      g.forEach(function (e) {
                        n.addSubFold(e);
                      }));
                  for (var p = 0; p < i.length; p++) {
                    var A = i[p];
                    if (c == A.start.row) {
                      A.addFold(n), (s = !0);
                      break;
                    }
                    if (a == A.end.row) {
                      if ((A.addFold(n), (s = !0), !n.sameRow)) {
                        var f = i[p + 1];
                        if (f && f.start.row == c) {
                          A.merge(f);
                          break;
                        }
                      }
                      break;
                    }
                    if (c <= A.start.row) break;
                  }
                  return (
                    s || (A = this.$addFoldLine(new r(this.$foldData, n))),
                    this.$useWrapMode
                      ? this.$updateWrapData(A.start.row, A.start.row)
                      : this.$updateRowLengthCache(A.start.row, A.start.row),
                    (this.$modified = !0),
                    this._signal("changeFold", {
                      data: n,
                      action: "add",
                    }),
                    n
                  );
                }),
                (this.addFolds = function (e) {
                  e.forEach(function (e) {
                    this.addFold(e);
                  }, this);
                }),
                (this.removeFold = function (e) {
                  var t = e.foldLine,
                    n = t.start.row,
                    i = t.end.row,
                    r = this.$foldData,
                    o = t.folds;
                  if (1 == o.length) r.splice(r.indexOf(t), 1);
                  else if (t.range.isEnd(e.end.row, e.end.column))
                    o.pop(),
                      (t.end.row = o[o.length - 1].end.row),
                      (t.end.column = o[o.length - 1].end.column);
                  else if (t.range.isStart(e.start.row, e.start.column))
                    o.shift(),
                      (t.start.row = o[0].start.row),
                      (t.start.column = o[0].start.column);
                  else if (e.sameRow) o.splice(o.indexOf(e), 1);
                  else {
                    var s = t.split(e.start.row, e.start.column);
                    (o = s.folds).shift(),
                      (s.start.row = o[0].start.row),
                      (s.start.column = o[0].start.column);
                  }
                  this.$updating ||
                    (this.$useWrapMode
                      ? this.$updateWrapData(n, i)
                      : this.$updateRowLengthCache(n, i)),
                    (this.$modified = !0),
                    this._signal("changeFold", {
                      data: e,
                      action: "remove",
                    });
                }),
                (this.removeFolds = function (e) {
                  for (var t = [], n = 0; n < e.length; n++) t.push(e[n]);
                  t.forEach(function (e) {
                    this.removeFold(e);
                  }, this),
                    (this.$modified = !0);
                }),
                (this.expandFold = function (e) {
                  this.removeFold(e),
                    e.subFolds.forEach(function (t) {
                      e.restoreRange(t), this.addFold(t);
                    }, this),
                    e.collapseChildren > 0 &&
                      this.foldAll(
                        e.start.row + 1,
                        e.end.row,
                        e.collapseChildren - 1
                      ),
                    (e.subFolds = []);
                }),
                (this.expandFolds = function (e) {
                  e.forEach(function (e) {
                    this.expandFold(e);
                  }, this);
                }),
                (this.unfold = function (e, t) {
                  var n, r;
                  if (
                    (null == e
                      ? ((n = new i(0, 0, this.getLength(), 0)),
                        null == t && (t = !0))
                      : (n =
                          "number" == typeof e
                            ? new i(e, 0, e, this.getLine(e).length)
                            : "row" in e
                            ? i.fromPoints(e, e)
                            : e),
                    (r = this.getFoldsInRangeList(n)),
                    0 != t ? this.removeFolds(r) : this.expandFolds(r),
                    r.length)
                  )
                    return r;
                }),
                (this.isRowFolded = function (e, t) {
                  return !!this.getFoldLine(e, t);
                }),
                (this.getRowFoldEnd = function (e, t) {
                  var n = this.getFoldLine(e, t);
                  return n ? n.end.row : e;
                }),
                (this.getRowFoldStart = function (e, t) {
                  var n = this.getFoldLine(e, t);
                  return n ? n.start.row : e;
                }),
                (this.getFoldDisplayLine = function (e, t, n, i, r) {
                  null == i && (i = e.start.row),
                    null == r && (r = 0),
                    null == t && (t = e.end.row),
                    null == n && (n = this.getLine(t).length);
                  var o = this.doc,
                    s = "";
                  return (
                    e.walk(
                      function (e, t, n, a) {
                        if (!(t < i)) {
                          if (t == i) {
                            if (n < r) return;
                            a = Math.max(r, a);
                          }
                          s += null != e ? e : o.getLine(t).substring(a, n);
                        }
                      },
                      t,
                      n
                    ),
                    s
                  );
                }),
                (this.getDisplayLine = function (e, t, n, i) {
                  var r,
                    o = this.getFoldLine(e);
                  return o
                    ? this.getFoldDisplayLine(o, e, t, n, i)
                    : (r = this.doc.getLine(e)).substring(
                        i || 0,
                        t || r.length
                      );
                }),
                (this.$cloneFoldData = function () {
                  var e = [];
                  return (e = this.$foldData.map(function (t) {
                    var n = t.folds.map(function (e) {
                      return e.clone();
                    });
                    return new r(e, n);
                  }));
                }),
                (this.toggleFold = function (e) {
                  var t,
                    n,
                    i = this.selection.getRange();
                  if (i.isEmpty()) {
                    var r = i.start;
                    if ((t = this.getFoldAt(r.row, r.column)))
                      return void this.expandFold(t);
                    (n = this.findMatchingBracket(r))
                      ? 1 == i.comparePoint(n)
                        ? (i.end = n)
                        : ((i.start = n), i.start.column++, i.end.column--)
                      : (n = this.findMatchingBracket({
                          row: r.row,
                          column: r.column + 1,
                        }))
                      ? (1 == i.comparePoint(n) ? (i.end = n) : (i.start = n),
                        i.start.column++)
                      : (i = this.getCommentFoldRange(r.row, r.column) || i);
                  } else {
                    var o = this.getFoldsInRange(i);
                    if (e && o.length) return void this.expandFolds(o);
                    1 == o.length && (t = o[0]);
                  }
                  if (
                    (t || (t = this.getFoldAt(i.start.row, i.start.column)),
                    t && t.range.toString() == i.toString())
                  )
                    this.expandFold(t);
                  else {
                    var s = "...";
                    if (!i.isMultiLine()) {
                      if ((s = this.getTextRange(i)).length < 4) return;
                      s = s.trim().substring(0, 2) + "..";
                    }
                    this.addFold(s, i);
                  }
                }),
                (this.getCommentFoldRange = function (e, t, n) {
                  var r = new s(this, e, t),
                    o = r.getCurrentToken(),
                    a = o && o.type;
                  if (o && /^comment|string/.test(a)) {
                    "comment" == (a = a.match(/comment|string/)[0]) &&
                      (a += "|doc-start");
                    var l = new RegExp(a),
                      c = new i();
                    if (1 != n) {
                      do {
                        o = r.stepBackward();
                      } while (o && l.test(o.type));
                      r.stepForward();
                    }
                    if (
                      ((c.start.row = r.getCurrentTokenRow()),
                      (c.start.column = r.getCurrentTokenColumn() + 2),
                      (r = new s(this, e, t)),
                      -1 != n)
                    ) {
                      var d = -1;
                      do {
                        if (((o = r.stepForward()), -1 == d)) {
                          var u = this.getState(r.$row);
                          l.test(u) || (d = r.$row);
                        } else if (r.$row > d) break;
                      } while (o && l.test(o.type));
                      o = r.stepBackward();
                    } else o = r.getCurrentToken();
                    return (
                      (c.end.row = r.getCurrentTokenRow()),
                      (c.end.column =
                        r.getCurrentTokenColumn() + o.value.length - 2),
                      c
                    );
                  }
                }),
                (this.foldAll = function (e, t, n, i) {
                  null == n && (n = 1e5);
                  var r = this.foldWidgets;
                  if (r) {
                    t = t || this.getLength();
                    for (var o = (e = e || 0); o < t; o++)
                      if (
                        (null == r[o] && (r[o] = this.getFoldWidget(o)),
                        "start" == r[o] && (!i || i(o)))
                      ) {
                        var s = this.getFoldWidgetRange(o);
                        s &&
                          s.isMultiLine() &&
                          s.end.row <= t &&
                          s.start.row >= e &&
                          ((o = s.end.row),
                          (s.collapseChildren = n),
                          this.addFold("...", s));
                      }
                  }
                }),
                (this.foldToLevel = function (e) {
                  for (this.foldAll(); e-- > 0; ) this.unfold(null, !1);
                }),
                (this.foldAllComments = function () {
                  var e = this;
                  this.foldAll(null, null, null, function (t) {
                    for (var n = e.getTokens(t), i = 0; i < n.length; i++) {
                      var r = n[i];
                      if ("text" != r.type || !/^\s+$/.test(r.value))
                        return !!/comment/.test(r.type);
                    }
                  });
                }),
                (this.$foldStyles = {
                  manual: 1,
                  markbegin: 1,
                  markbeginend: 1,
                }),
                (this.$foldStyle = "markbegin"),
                (this.setFoldStyle = function (e) {
                  if (!this.$foldStyles[e])
                    throw new Error(
                      "invalid fold style: " +
                        e +
                        "[" +
                        Object.keys(this.$foldStyles).join(", ") +
                        "]"
                    );
                  if (this.$foldStyle != e) {
                    (this.$foldStyle = e), "manual" == e && this.unfold();
                    var t = this.$foldMode;
                    this.$setFolding(null), this.$setFolding(t);
                  }
                }),
                (this.$setFolding = function (e) {
                  this.$foldMode != e &&
                    ((this.$foldMode = e),
                    this.off("change", this.$updateFoldWidgets),
                    this.off(
                      "tokenizerUpdate",
                      this.$tokenizerUpdateFoldWidgets
                    ),
                    this._signal("changeAnnotation"),
                    e && "manual" != this.$foldStyle
                      ? ((this.foldWidgets = []),
                        (this.getFoldWidget = e.getFoldWidget.bind(
                          e,
                          this,
                          this.$foldStyle
                        )),
                        (this.getFoldWidgetRange = e.getFoldWidgetRange.bind(
                          e,
                          this,
                          this.$foldStyle
                        )),
                        (this.$updateFoldWidgets =
                          this.updateFoldWidgets.bind(this)),
                        (this.$tokenizerUpdateFoldWidgets =
                          this.tokenizerUpdateFoldWidgets.bind(this)),
                        this.on("change", this.$updateFoldWidgets),
                        this.on(
                          "tokenizerUpdate",
                          this.$tokenizerUpdateFoldWidgets
                        ))
                      : (this.foldWidgets = null));
                }),
                (this.getParentFoldRangeData = function (e, t) {
                  var n = this.foldWidgets;
                  if (!n || (t && n[e])) return {};
                  for (var i, r = e - 1; r >= 0; ) {
                    var o = n[r];
                    if (
                      (null == o && (o = n[r] = this.getFoldWidget(r)),
                      "start" == o)
                    ) {
                      var s = this.getFoldWidgetRange(r);
                      if ((i || (i = s), s && s.end.row >= e)) break;
                    }
                    r--;
                  }
                  return {
                    range: -1 !== r && s,
                    firstRange: i,
                  };
                }),
                (this.onFoldWidgetClick = function (e, t) {
                  var n = {
                    children: (t = t.domEvent).shiftKey,
                    all: t.ctrlKey || t.metaKey,
                    siblings: t.altKey,
                  };
                  if (!this.$toggleFoldWidget(e, n)) {
                    var i = t.target || t.srcElement;
                    i &&
                      /ace_fold-widget/.test(i.className) &&
                      (i.className += " ace_invalid");
                  }
                }),
                (this.$toggleFoldWidget = function (e, t) {
                  if (this.getFoldWidget) {
                    var n = this.getFoldWidget(e),
                      i = this.getLine(e),
                      r = "end" === n ? -1 : 1,
                      o = this.getFoldAt(e, -1 === r ? 0 : i.length, r);
                    if (o)
                      return (
                        t.children || t.all
                          ? this.removeFold(o)
                          : this.expandFold(o),
                        o
                      );
                    var s = this.getFoldWidgetRange(e, !0);
                    if (
                      s &&
                      !s.isMultiLine() &&
                      (o = this.getFoldAt(s.start.row, s.start.column, 1)) &&
                      s.isEqual(o.range)
                    )
                      return this.removeFold(o), o;
                    if (t.siblings) {
                      var a = this.getParentFoldRangeData(e);
                      if (a.range)
                        var l = a.range.start.row + 1,
                          c = a.range.end.row;
                      this.foldAll(l, c, t.all ? 1e4 : 0);
                    } else
                      t.children
                        ? ((c = s ? s.end.row : this.getLength()),
                          this.foldAll(e + 1, c, t.all ? 1e4 : 0))
                        : s &&
                          (t.all && (s.collapseChildren = 1e4),
                          this.addFold("...", s));
                    return s;
                  }
                }),
                (this.toggleFoldWidget = function (e) {
                  var t = this.selection.getCursor().row;
                  t = this.getRowFoldStart(t);
                  var n = this.$toggleFoldWidget(t, {});
                  if (!n) {
                    var i = this.getParentFoldRangeData(t, !0);
                    if ((n = i.range || i.firstRange)) {
                      t = n.start.row;
                      var r = this.getFoldAt(t, this.getLine(t).length, 1);
                      r ? this.removeFold(r) : this.addFold("...", n);
                    }
                  }
                }),
                (this.updateFoldWidgets = function (e) {
                  var t = e.start.row,
                    n = e.end.row - t;
                  if (0 === n) this.foldWidgets[t] = null;
                  else if ("remove" == e.action)
                    this.foldWidgets.splice(t, n + 1, null);
                  else {
                    var i = Array(n + 1);
                    i.unshift(t, 1),
                      this.foldWidgets.splice.apply(this.foldWidgets, i);
                  }
                }),
                (this.tokenizerUpdateFoldWidgets = function (e) {
                  var t = e.data;
                  t.first != t.last &&
                    this.foldWidgets.length > t.first &&
                    this.foldWidgets.splice(t.first, this.foldWidgets.length);
                });
            };
          }
        ),
        ace.define(
          "ace/edit_session/bracket_match",
          ["require", "exports", "module", "ace/token_iterator", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("../token_iterator").TokenIterator,
              r = e("../range").Range;
            t.BracketMatch = function () {
              (this.findMatchingBracket = function (e, t) {
                if (0 == e.column) return null;
                var n = t || this.getLine(e.row).charAt(e.column - 1);
                if ("" == n) return null;
                var i = n.match(/([\(\[\{])|([\)\]\}])/);
                return i
                  ? i[1]
                    ? this.$findClosingBracket(i[1], e)
                    : this.$findOpeningBracket(i[2], e)
                  : null;
              }),
                (this.getBracketRange = function (e) {
                  var t,
                    n = this.getLine(e.row),
                    i = !0,
                    o = n.charAt(e.column - 1),
                    s = o && o.match(/([\(\[\{])|([\)\]\}])/);
                  if (
                    (s ||
                      ((o = n.charAt(e.column)),
                      (e = {
                        row: e.row,
                        column: e.column + 1,
                      }),
                      (s = o && o.match(/([\(\[\{])|([\)\]\}])/)),
                      (i = !1)),
                    !s)
                  )
                    return null;
                  if (s[1]) {
                    if (!(a = this.$findClosingBracket(s[1], e))) return null;
                    (t = r.fromPoints(e, a)),
                      i || (t.end.column++, t.start.column--),
                      (t.cursor = t.end);
                  } else {
                    var a;
                    if (!(a = this.$findOpeningBracket(s[2], e))) return null;
                    (t = r.fromPoints(a, e)),
                      i || (t.start.column++, t.end.column--),
                      (t.cursor = t.start);
                  }
                  return t;
                }),
                (this.getMatchingBracketRanges = function (e) {
                  var t = this.getLine(e.row),
                    n = t.charAt(e.column - 1),
                    i = n && n.match(/([\(\[\{])|([\)\]\}])/);
                  if (
                    (i ||
                      ((n = t.charAt(e.column)),
                      (e = {
                        row: e.row,
                        column: e.column + 1,
                      }),
                      (i = n && n.match(/([\(\[\{])|([\)\]\}])/))),
                    !i)
                  )
                    return null;
                  var o = new r(e.row, e.column - 1, e.row, e.column),
                    s = i[1]
                      ? this.$findClosingBracket(i[1], e)
                      : this.$findOpeningBracket(i[2], e);
                  return s
                    ? [o, new r(s.row, s.column, s.row, s.column + 1)]
                    : [o];
                }),
                (this.$brackets = {
                  ")": "(",
                  "(": ")",
                  "]": "[",
                  "[": "]",
                  "{": "}",
                  "}": "{",
                  "<": ">",
                  ">": "<",
                }),
                (this.$findOpeningBracket = function (e, t, n) {
                  var r = this.$brackets[e],
                    o = 1,
                    s = new i(this, t.row, t.column),
                    a = s.getCurrentToken();
                  if ((a || (a = s.stepForward()), a)) {
                    n ||
                      (n = new RegExp(
                        "(\\.?" +
                          a.type
                            .replace(".", "\\.")
                            .replace("rparen", ".paren")
                            .replace(/\b(?:end)\b/, "(?:start|begin|end)") +
                          ")+"
                      ));
                    for (
                      var l = t.column - s.getCurrentTokenColumn() - 2,
                        c = a.value;
                      ;

                    ) {
                      for (; l >= 0; ) {
                        var d = c.charAt(l);
                        if (d == r) {
                          if (0 == (o -= 1))
                            return {
                              row: s.getCurrentTokenRow(),
                              column: l + s.getCurrentTokenColumn(),
                            };
                        } else d == e && (o += 1);
                        l -= 1;
                      }
                      do {
                        a = s.stepBackward();
                      } while (a && !n.test(a.type));
                      if (null == a) break;
                      l = (c = a.value).length - 1;
                    }
                    return null;
                  }
                }),
                (this.$findClosingBracket = function (e, t, n) {
                  var r = this.$brackets[e],
                    o = 1,
                    s = new i(this, t.row, t.column),
                    a = s.getCurrentToken();
                  if ((a || (a = s.stepForward()), a)) {
                    n ||
                      (n = new RegExp(
                        "(\\.?" +
                          a.type
                            .replace(".", "\\.")
                            .replace("lparen", ".paren")
                            .replace(
                              /\b(?:start|begin)\b/,
                              "(?:start|begin|end)"
                            ) +
                          ")+"
                      ));
                    for (var l = t.column - s.getCurrentTokenColumn(); ; ) {
                      for (var c = a.value, d = c.length; l < d; ) {
                        var u = c.charAt(l);
                        if (u == r) {
                          if (0 == (o -= 1))
                            return {
                              row: s.getCurrentTokenRow(),
                              column: l + s.getCurrentTokenColumn(),
                            };
                        } else u == e && (o += 1);
                        l += 1;
                      }
                      do {
                        a = s.stepForward();
                      } while (a && !n.test(a.type));
                      if (null == a) break;
                      l = 0;
                    }
                    return null;
                  }
                });
            };
          }
        ),
        ace.define(
          "ace/edit_session",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/bidihandler",
            "ace/config",
            "ace/lib/event_emitter",
            "ace/selection",
            "ace/mode/text",
            "ace/range",
            "ace/document",
            "ace/background_tokenizer",
            "ace/search_highlight",
            "ace/edit_session/folding",
            "ace/edit_session/bracket_match",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/lang"),
              o = e("./bidihandler").BidiHandler,
              s = e("./config"),
              a = e("./lib/event_emitter").EventEmitter,
              l = e("./selection").Selection,
              c = e("./mode/text").Mode,
              d = e("./range").Range,
              u = e("./document").Document,
              h = e("./background_tokenizer").BackgroundTokenizer,
              g = e("./search_highlight").SearchHighlight,
              p = function (e, t) {
                (this.$breakpoints = []),
                  (this.$decorations = []),
                  (this.$frontMarkers = {}),
                  (this.$backMarkers = {}),
                  (this.$markerId = 1),
                  (this.$undoSelect = !0),
                  (this.$foldData = []),
                  (this.id = "session" + ++p.$uid),
                  (this.$foldData.toString = function () {
                    return this.join("\n");
                  }),
                  this.on("changeFold", this.onChangeFold.bind(this)),
                  (this.$onChange = this.onChange.bind(this)),
                  ("object" == typeof e && e.getLine) || (e = new u(e)),
                  this.setDocument(e),
                  (this.selection = new l(this)),
                  (this.$bidiHandler = new o(this)),
                  s.resetOptions(this),
                  this.setMode(t),
                  s._signal("session", this);
              };
            (p.$uid = 0),
              function () {
                i.implement(this, a),
                  (this.setDocument = function (e) {
                    this.doc &&
                      this.doc.removeListener("change", this.$onChange),
                      (this.doc = e),
                      e.on("change", this.$onChange),
                      this.bgTokenizer &&
                        this.bgTokenizer.setDocument(this.getDocument()),
                      this.resetCaches();
                  }),
                  (this.getDocument = function () {
                    return this.doc;
                  }),
                  (this.$resetRowCache = function (e) {
                    if (!e)
                      return (
                        (this.$docRowCache = []),
                        void (this.$screenRowCache = [])
                      );
                    var t = this.$docRowCache.length,
                      n = this.$getRowCacheIndex(this.$docRowCache, e) + 1;
                    t > n &&
                      (this.$docRowCache.splice(n, t),
                      this.$screenRowCache.splice(n, t));
                  }),
                  (this.$getRowCacheIndex = function (e, t) {
                    for (var n = 0, i = e.length - 1; n <= i; ) {
                      var r = (n + i) >> 1,
                        o = e[r];
                      if (t > o) n = r + 1;
                      else {
                        if (!(t < o)) return r;
                        i = r - 1;
                      }
                    }
                    return n - 1;
                  }),
                  (this.resetCaches = function () {
                    (this.$modified = !0),
                      (this.$wrapData = []),
                      (this.$rowLengthCache = []),
                      this.$resetRowCache(0),
                      this.bgTokenizer && this.bgTokenizer.start(0);
                  }),
                  (this.onChangeFold = function (e) {
                    var t = e.data;
                    this.$resetRowCache(t.start.row);
                  }),
                  (this.onChange = function (e) {
                    (this.$modified = !0),
                      this.$bidiHandler.onChange(e),
                      this.$resetRowCache(e.start.row);
                    var t = this.$updateInternalDataOnChange(e);
                    !this.$fromUndo &&
                      this.$undoManager &&
                      (t &&
                        t.length &&
                        (this.$undoManager.add(
                          {
                            action: "removeFolds",
                            folds: t,
                          },
                          this.mergeUndoDeltas
                        ),
                        (this.mergeUndoDeltas = !0)),
                      this.$undoManager.add(e, this.mergeUndoDeltas),
                      (this.mergeUndoDeltas = !0),
                      this.$informUndoManager.schedule()),
                      this.bgTokenizer && this.bgTokenizer.$updateOnChange(e),
                      this._signal("change", e);
                  }),
                  (this.setValue = function (e) {
                    this.doc.setValue(e),
                      this.selection.moveTo(0, 0),
                      this.$resetRowCache(0),
                      this.setUndoManager(this.$undoManager),
                      this.getUndoManager().reset();
                  }),
                  (this.getValue = this.toString =
                    function () {
                      return this.doc.getValue();
                    }),
                  (this.getSelection = function () {
                    return this.selection;
                  }),
                  (this.getState = function (e) {
                    return this.bgTokenizer.getState(e);
                  }),
                  (this.getTokens = function (e) {
                    return this.bgTokenizer.getTokens(e);
                  }),
                  (this.getTokenAt = function (e, t) {
                    var n,
                      i = this.bgTokenizer.getTokens(e),
                      r = 0;
                    if (null == t) {
                      var o = i.length - 1;
                      r = this.getLine(e).length;
                    } else
                      for (
                        o = 0;
                        o < i.length && !((r += i[o].value.length) >= t);
                        o++
                      );
                    return (n = i[o])
                      ? ((n.index = o), (n.start = r - n.value.length), n)
                      : null;
                  }),
                  (this.setUndoManager = function (e) {
                    if (
                      ((this.$undoManager = e),
                      this.$informUndoManager &&
                        this.$informUndoManager.cancel(),
                      e)
                    ) {
                      var t = this;
                      e.addSession(this),
                        (this.$syncInformUndoManager = function () {
                          t.$informUndoManager.cancel(),
                            (t.mergeUndoDeltas = !1);
                        }),
                        (this.$informUndoManager = r.delayedCall(
                          this.$syncInformUndoManager
                        ));
                    } else this.$syncInformUndoManager = function () {};
                  }),
                  (this.markUndoGroup = function () {
                    this.$syncInformUndoManager &&
                      this.$syncInformUndoManager();
                  }),
                  (this.$defaultUndoManager = {
                    undo: function () {},
                    redo: function () {},
                    hasUndo: function () {},
                    hasRedo: function () {},
                    reset: function () {},
                    add: function () {},
                    addSelection: function () {},
                    startNewGroup: function () {},
                    addSession: function () {},
                  }),
                  (this.getUndoManager = function () {
                    return this.$undoManager || this.$defaultUndoManager;
                  }),
                  (this.getTabString = function () {
                    return this.getUseSoftTabs()
                      ? r.stringRepeat(" ", this.getTabSize())
                      : "\t";
                  }),
                  (this.setUseSoftTabs = function (e) {
                    this.setOption("useSoftTabs", e);
                  }),
                  (this.getUseSoftTabs = function () {
                    return this.$useSoftTabs && !this.$mode.$indentWithTabs;
                  }),
                  (this.setTabSize = function (e) {
                    this.setOption("tabSize", e);
                  }),
                  (this.getTabSize = function () {
                    return this.$tabSize;
                  }),
                  (this.isTabStop = function (e) {
                    return this.$useSoftTabs && e.column % this.$tabSize == 0;
                  }),
                  (this.setNavigateWithinSoftTabs = function (e) {
                    this.setOption("navigateWithinSoftTabs", e);
                  }),
                  (this.getNavigateWithinSoftTabs = function () {
                    return this.$navigateWithinSoftTabs;
                  }),
                  (this.$overwrite = !1),
                  (this.setOverwrite = function (e) {
                    this.setOption("overwrite", e);
                  }),
                  (this.getOverwrite = function () {
                    return this.$overwrite;
                  }),
                  (this.toggleOverwrite = function () {
                    this.setOverwrite(!this.$overwrite);
                  }),
                  (this.addGutterDecoration = function (e, t) {
                    this.$decorations[e] || (this.$decorations[e] = ""),
                      (this.$decorations[e] += " " + t),
                      this._signal("changeBreakpoint", {});
                  }),
                  (this.removeGutterDecoration = function (e, t) {
                    (this.$decorations[e] = (
                      this.$decorations[e] || ""
                    ).replace(" " + t, "")),
                      this._signal("changeBreakpoint", {});
                  }),
                  (this.getBreakpoints = function () {
                    return this.$breakpoints;
                  }),
                  (this.setBreakpoints = function (e) {
                    this.$breakpoints = [];
                    for (var t = 0; t < e.length; t++)
                      this.$breakpoints[e[t]] = "ace_breakpoint";
                    this._signal("changeBreakpoint", {});
                  }),
                  (this.clearBreakpoints = function () {
                    (this.$breakpoints = []),
                      this._signal("changeBreakpoint", {});
                  }),
                  (this.setBreakpoint = function (e, t) {
                    void 0 === t && (t = "ace_breakpoint"),
                      t
                        ? (this.$breakpoints[e] = t)
                        : delete this.$breakpoints[e],
                      this._signal("changeBreakpoint", {});
                  }),
                  (this.clearBreakpoint = function (e) {
                    delete this.$breakpoints[e],
                      this._signal("changeBreakpoint", {});
                  }),
                  (this.addMarker = function (e, t, n, i) {
                    var r = this.$markerId++,
                      o = {
                        range: e,
                        type: n || "line",
                        renderer: "function" == typeof n ? n : null,
                        clazz: t,
                        inFront: !!i,
                        id: r,
                      };
                    return (
                      i
                        ? ((this.$frontMarkers[r] = o),
                          this._signal("changeFrontMarker"))
                        : ((this.$backMarkers[r] = o),
                          this._signal("changeBackMarker")),
                      r
                    );
                  }),
                  (this.addDynamicMarker = function (e, t) {
                    if (e.update) {
                      var n = this.$markerId++;
                      return (
                        (e.id = n),
                        (e.inFront = !!t),
                        t
                          ? ((this.$frontMarkers[n] = e),
                            this._signal("changeFrontMarker"))
                          : ((this.$backMarkers[n] = e),
                            this._signal("changeBackMarker")),
                        e
                      );
                    }
                  }),
                  (this.removeMarker = function (e) {
                    var t = this.$frontMarkers[e] || this.$backMarkers[e];
                    t &&
                      (delete (
                        t.inFront ? this.$frontMarkers : this.$backMarkers
                      )[e],
                      this._signal(
                        t.inFront ? "changeFrontMarker" : "changeBackMarker"
                      ));
                  }),
                  (this.getMarkers = function (e) {
                    return e ? this.$frontMarkers : this.$backMarkers;
                  }),
                  (this.highlight = function (e) {
                    if (!this.$searchHighlight) {
                      var t = new g(null, "ace_selected-word", "text");
                      this.$searchHighlight = this.addDynamicMarker(t);
                    }
                    this.$searchHighlight.setRegexp(e);
                  }),
                  (this.highlightLines = function (e, t, n, i) {
                    "number" != typeof t && ((n = t), (t = e)),
                      n || (n = "ace_step");
                    var r = new d(e, 0, t, 1 / 0);
                    return (r.id = this.addMarker(r, n, "fullLine", i)), r;
                  }),
                  (this.setAnnotations = function (e) {
                    (this.$annotations = e),
                      this._signal("changeAnnotation", {});
                  }),
                  (this.getAnnotations = function () {
                    return this.$annotations || [];
                  }),
                  (this.clearAnnotations = function () {
                    this.setAnnotations([]);
                  }),
                  (this.$detectNewLine = function (e) {
                    var t = e.match(/^.*?(\r?\n)/m);
                    this.$autoNewLine = t ? t[1] : "\n";
                  }),
                  (this.getWordRange = function (e, t) {
                    var n = this.getLine(e),
                      i = !1;
                    if (
                      (t > 0 && (i = !!n.charAt(t - 1).match(this.tokenRe)),
                      i || (i = !!n.charAt(t).match(this.tokenRe)),
                      i)
                    )
                      var r = this.tokenRe;
                    else if (/^\s+$/.test(n.slice(t - 1, t + 1))) r = /\s/;
                    else r = this.nonTokenRe;
                    var o = t;
                    if (o > 0) {
                      do {
                        o--;
                      } while (o >= 0 && n.charAt(o).match(r));
                      o++;
                    }
                    for (var s = t; s < n.length && n.charAt(s).match(r); ) s++;
                    return new d(e, o, e, s);
                  }),
                  (this.getAWordRange = function (e, t) {
                    for (
                      var n = this.getWordRange(e, t),
                        i = this.getLine(n.end.row);
                      i.charAt(n.end.column).match(/[ \t]/);

                    )
                      n.end.column += 1;
                    return n;
                  }),
                  (this.setNewLineMode = function (e) {
                    this.doc.setNewLineMode(e);
                  }),
                  (this.getNewLineMode = function () {
                    return this.doc.getNewLineMode();
                  }),
                  (this.setUseWorker = function (e) {
                    this.setOption("useWorker", e);
                  }),
                  (this.getUseWorker = function () {
                    return this.$useWorker;
                  }),
                  (this.onReloadTokenizer = function (e) {
                    var t = e.data;
                    this.bgTokenizer.start(t.first),
                      this._signal("tokenizerUpdate", e);
                  }),
                  (this.$modes = s.$modes),
                  (this.$mode = null),
                  (this.$modeId = null),
                  (this.setMode = function (e, t) {
                    if (e && "object" == typeof e) {
                      if (e.getTokenizer) return this.$onChangeMode(e);
                      var n = e,
                        i = n.path;
                    } else i = e || "ace/mode/text";
                    if (
                      (this.$modes["ace/mode/text"] ||
                        (this.$modes["ace/mode/text"] = new c()),
                      this.$modes[i] && !n)
                    )
                      return (
                        this.$onChangeMode(this.$modes[i]), void (t && t())
                      );
                    (this.$modeId = i),
                      s.loadModule(
                        ["mode", i],
                        function (e) {
                          if (this.$modeId !== i) return t && t();
                          this.$modes[i] && !n
                            ? this.$onChangeMode(this.$modes[i])
                            : e &&
                              e.Mode &&
                              ((e = new e.Mode(n)),
                              n || ((this.$modes[i] = e), (e.$id = i)),
                              this.$onChangeMode(e)),
                            t && t();
                        }.bind(this)
                      ),
                      this.$mode ||
                        this.$onChangeMode(this.$modes["ace/mode/text"], !0);
                  }),
                  (this.$onChangeMode = function (e, t) {
                    if ((t || (this.$modeId = e.$id), this.$mode !== e)) {
                      var n = this.$mode;
                      (this.$mode = e),
                        this.$stopWorker(),
                        this.$useWorker && this.$startWorker();
                      var i = e.getTokenizer();
                      if (void 0 !== i.on) {
                        var r = this.onReloadTokenizer.bind(this);
                        i.on("update", r);
                      }
                      if (this.bgTokenizer) this.bgTokenizer.setTokenizer(i);
                      else {
                        this.bgTokenizer = new h(i);
                        var o = this;
                        this.bgTokenizer.on("update", function (e) {
                          o._signal("tokenizerUpdate", e);
                        });
                      }
                      this.bgTokenizer.setDocument(this.getDocument()),
                        (this.tokenRe = e.tokenRe),
                        (this.nonTokenRe = e.nonTokenRe),
                        t ||
                          (e.attachToSession && e.attachToSession(this),
                          this.$options.wrapMethod.set.call(
                            this,
                            this.$wrapMethod
                          ),
                          this.$setFolding(e.foldingRules),
                          this.bgTokenizer.start(0),
                          this._emit("changeMode", {
                            oldMode: n,
                            mode: e,
                          }));
                    }
                  }),
                  (this.$stopWorker = function () {
                    this.$worker &&
                      (this.$worker.terminate(), (this.$worker = null));
                  }),
                  (this.$startWorker = function () {
                    try {
                      this.$worker = this.$mode.createWorker(this);
                    } catch (e) {
                      s.warn("Could not load worker", e), (this.$worker = null);
                    }
                  }),
                  (this.getMode = function () {
                    return this.$mode;
                  }),
                  (this.$scrollTop = 0),
                  (this.setScrollTop = function (e) {
                    this.$scrollTop === e ||
                      isNaN(e) ||
                      ((this.$scrollTop = e),
                      this._signal("changeScrollTop", e));
                  }),
                  (this.getScrollTop = function () {
                    return this.$scrollTop;
                  }),
                  (this.$scrollLeft = 0),
                  (this.setScrollLeft = function (e) {
                    this.$scrollLeft === e ||
                      isNaN(e) ||
                      ((this.$scrollLeft = e),
                      this._signal("changeScrollLeft", e));
                  }),
                  (this.getScrollLeft = function () {
                    return this.$scrollLeft;
                  }),
                  (this.getScreenWidth = function () {
                    return (
                      this.$computeWidth(),
                      this.lineWidgets
                        ? Math.max(
                            this.getLineWidgetMaxWidth(),
                            this.screenWidth
                          )
                        : this.screenWidth
                    );
                  }),
                  (this.getLineWidgetMaxWidth = function () {
                    if (null != this.lineWidgetsWidth)
                      return this.lineWidgetsWidth;
                    var e = 0;
                    return (
                      this.lineWidgets.forEach(function (t) {
                        t && t.screenWidth > e && (e = t.screenWidth);
                      }),
                      (this.lineWidgetWidth = e)
                    );
                  }),
                  (this.$computeWidth = function (e) {
                    if (this.$modified || e) {
                      if (((this.$modified = !1), this.$useWrapMode))
                        return (this.screenWidth = this.$wrapLimit);
                      for (
                        var t = this.doc.getAllLines(),
                          n = this.$rowLengthCache,
                          i = 0,
                          r = 0,
                          o = this.$foldData[r],
                          s = o ? o.start.row : 1 / 0,
                          a = t.length,
                          l = 0;
                        l < a;
                        l++
                      ) {
                        if (l > s) {
                          if ((l = o.end.row + 1) >= a) break;
                          s = (o = this.$foldData[r++]) ? o.start.row : 1 / 0;
                        }
                        null == n[l] &&
                          (n[l] = this.$getStringScreenWidth(t[l])[0]),
                          n[l] > i && (i = n[l]);
                      }
                      this.screenWidth = i;
                    }
                  }),
                  (this.getLine = function (e) {
                    return this.doc.getLine(e);
                  }),
                  (this.getLines = function (e, t) {
                    return this.doc.getLines(e, t);
                  }),
                  (this.getLength = function () {
                    return this.doc.getLength();
                  }),
                  (this.getTextRange = function (e) {
                    return this.doc.getTextRange(
                      e || this.selection.getRange()
                    );
                  }),
                  (this.insert = function (e, t) {
                    return this.doc.insert(e, t);
                  }),
                  (this.remove = function (e) {
                    return this.doc.remove(e);
                  }),
                  (this.removeFullLines = function (e, t) {
                    return this.doc.removeFullLines(e, t);
                  }),
                  (this.undoChanges = function (e, t) {
                    if (e.length) {
                      this.$fromUndo = !0;
                      for (var n = e.length - 1; -1 != n; n--) {
                        var i = e[n];
                        "insert" == i.action || "remove" == i.action
                          ? this.doc.revertDelta(i)
                          : i.folds && this.addFolds(i.folds);
                      }
                      !t &&
                        this.$undoSelect &&
                        (e.selectionBefore
                          ? this.selection.fromJSON(e.selectionBefore)
                          : this.selection.setRange(
                              this.$getUndoSelection(e, !0)
                            )),
                        (this.$fromUndo = !1);
                    }
                  }),
                  (this.redoChanges = function (e, t) {
                    if (e.length) {
                      this.$fromUndo = !0;
                      for (var n = 0; n < e.length; n++) {
                        var i = e[n];
                        ("insert" != i.action && "remove" != i.action) ||
                          this.doc.$safeApplyDelta(i);
                      }
                      !t &&
                        this.$undoSelect &&
                        (e.selectionAfter
                          ? this.selection.fromJSON(e.selectionAfter)
                          : this.selection.setRange(
                              this.$getUndoSelection(e, !1)
                            )),
                        (this.$fromUndo = !1);
                    }
                  }),
                  (this.setUndoSelect = function (e) {
                    this.$undoSelect = e;
                  }),
                  (this.$getUndoSelection = function (e, t) {
                    function n(e) {
                      return t ? "insert" !== e.action : "insert" === e.action;
                    }
                    for (var i, r, o = 0; o < e.length; o++) {
                      var s = e[o];
                      s.start &&
                        (i
                          ? n(s)
                            ? ((r = s.start),
                              -1 == i.compare(r.row, r.column) && i.setStart(r),
                              (r = s.end),
                              1 == i.compare(r.row, r.column) && i.setEnd(r))
                            : ((r = s.start),
                              -1 == i.compare(r.row, r.column) &&
                                (i = d.fromPoints(s.start, s.start)))
                          : (i = n(s)
                              ? d.fromPoints(s.start, s.end)
                              : d.fromPoints(s.start, s.start)));
                    }
                    return i;
                  }),
                  (this.replace = function (e, t) {
                    return this.doc.replace(e, t);
                  }),
                  (this.moveText = function (e, t, n) {
                    var i = this.getTextRange(e),
                      r = this.getFoldsInRange(e),
                      o = d.fromPoints(t, t);
                    if (!n) {
                      this.remove(e);
                      var s = e.start.row - e.end.row;
                      (c = s ? -e.end.column : e.start.column - e.end.column) &&
                        (o.start.row == e.end.row &&
                          o.start.column > e.end.column &&
                          (o.start.column += c),
                        o.end.row == e.end.row &&
                          o.end.column > e.end.column &&
                          (o.end.column += c)),
                        s &&
                          o.start.row >= e.end.row &&
                          ((o.start.row += s), (o.end.row += s));
                    }
                    if (((o.end = this.insert(o.start, i)), r.length)) {
                      var a = e.start,
                        l = o.start,
                        c = ((s = l.row - a.row), l.column - a.column);
                      this.addFolds(
                        r.map(function (e) {
                          return (
                            (e = e.clone()).start.row == a.row &&
                              (e.start.column += c),
                            e.end.row == a.row && (e.end.column += c),
                            (e.start.row += s),
                            (e.end.row += s),
                            e
                          );
                        })
                      );
                    }
                    return o;
                  }),
                  (this.indentRows = function (e, t, n) {
                    n = n.replace(/\t/g, this.getTabString());
                    for (var i = e; i <= t; i++)
                      this.doc.insertInLine(
                        {
                          row: i,
                          column: 0,
                        },
                        n
                      );
                  }),
                  (this.outdentRows = function (e) {
                    for (
                      var t = e.collapseRows(),
                        n = new d(0, 0, 0, 0),
                        i = this.getTabSize(),
                        r = t.start.row;
                      r <= t.end.row;
                      ++r
                    ) {
                      var o = this.getLine(r);
                      (n.start.row = r), (n.end.row = r);
                      for (var s = 0; s < i && " " == o.charAt(s); ++s);
                      s < i && "\t" == o.charAt(s)
                        ? ((n.start.column = s), (n.end.column = s + 1))
                        : ((n.start.column = 0), (n.end.column = s)),
                        this.remove(n);
                    }
                  }),
                  (this.$moveLines = function (e, t, n) {
                    if (
                      ((e = this.getRowFoldStart(e)),
                      (t = this.getRowFoldEnd(t)),
                      n < 0)
                    ) {
                      if ((r = this.getRowFoldStart(e + n)) < 0) return 0;
                      var i = r - e;
                    } else if (n > 0) {
                      var r;
                      if (
                        (r = this.getRowFoldEnd(t + n)) >
                        this.doc.getLength() - 1
                      )
                        return 0;
                      i = r - t;
                    } else {
                      e = this.$clipRowToDocument(e);
                      i = (t = this.$clipRowToDocument(t)) - e + 1;
                    }
                    var o = new d(e, 0, t, Number.MAX_VALUE),
                      s = this.getFoldsInRange(o).map(function (e) {
                        return (
                          ((e = e.clone()).start.row += i), (e.end.row += i), e
                        );
                      }),
                      a =
                        0 == n
                          ? this.doc.getLines(e, t)
                          : this.doc.removeFullLines(e, t);
                    return (
                      this.doc.insertFullLines(e + i, a),
                      s.length && this.addFolds(s),
                      i
                    );
                  }),
                  (this.moveLinesUp = function (e, t) {
                    return this.$moveLines(e, t, -1);
                  }),
                  (this.moveLinesDown = function (e, t) {
                    return this.$moveLines(e, t, 1);
                  }),
                  (this.duplicateLines = function (e, t) {
                    return this.$moveLines(e, t, 0);
                  }),
                  (this.$clipRowToDocument = function (e) {
                    return Math.max(0, Math.min(e, this.doc.getLength() - 1));
                  }),
                  (this.$clipColumnToRow = function (e, t) {
                    return t < 0 ? 0 : Math.min(this.doc.getLine(e).length, t);
                  }),
                  (this.$clipPositionToDocument = function (e, t) {
                    if (((t = Math.max(0, t)), e < 0)) (e = 0), (t = 0);
                    else {
                      var n = this.doc.getLength();
                      e >= n
                        ? ((e = n - 1), (t = this.doc.getLine(n - 1).length))
                        : (t = Math.min(this.doc.getLine(e).length, t));
                    }
                    return {
                      row: e,
                      column: t,
                    };
                  }),
                  (this.$clipRangeToDocument = function (e) {
                    e.start.row < 0
                      ? ((e.start.row = 0), (e.start.column = 0))
                      : (e.start.column = this.$clipColumnToRow(
                          e.start.row,
                          e.start.column
                        ));
                    var t = this.doc.getLength() - 1;
                    return (
                      e.end.row > t
                        ? ((e.end.row = t),
                          (e.end.column = this.doc.getLine(t).length))
                        : (e.end.column = this.$clipColumnToRow(
                            e.end.row,
                            e.end.column
                          )),
                      e
                    );
                  }),
                  (this.$wrapLimit = 80),
                  (this.$useWrapMode = !1),
                  (this.$wrapLimitRange = {
                    min: null,
                    max: null,
                  }),
                  (this.setUseWrapMode = function (e) {
                    if (e != this.$useWrapMode) {
                      if (
                        ((this.$useWrapMode = e),
                        (this.$modified = !0),
                        this.$resetRowCache(0),
                        e)
                      ) {
                        var t = this.getLength();
                        (this.$wrapData = Array(t)),
                          this.$updateWrapData(0, t - 1);
                      }
                      this._signal("changeWrapMode");
                    }
                  }),
                  (this.getUseWrapMode = function () {
                    return this.$useWrapMode;
                  }),
                  (this.setWrapLimitRange = function (e, t) {
                    (this.$wrapLimitRange.min === e &&
                      this.$wrapLimitRange.max === t) ||
                      ((this.$wrapLimitRange = {
                        min: e,
                        max: t,
                      }),
                      (this.$modified = !0),
                      this.$bidiHandler.markAsDirty(),
                      this.$useWrapMode && this._signal("changeWrapMode"));
                  }),
                  (this.adjustWrapLimit = function (e, t) {
                    var n = this.$wrapLimitRange;
                    n.max < 0 &&
                      (n = {
                        min: t,
                        max: t,
                      });
                    var i = this.$constrainWrapLimit(e, n.min, n.max);
                    return (
                      i != this.$wrapLimit &&
                      i > 1 &&
                      ((this.$wrapLimit = i),
                      (this.$modified = !0),
                      this.$useWrapMode &&
                        (this.$updateWrapData(0, this.getLength() - 1),
                        this.$resetRowCache(0),
                        this._signal("changeWrapLimit")),
                      !0)
                    );
                  }),
                  (this.$constrainWrapLimit = function (e, t, n) {
                    return (
                      t && (e = Math.max(t, e)), n && (e = Math.min(n, e)), e
                    );
                  }),
                  (this.getWrapLimit = function () {
                    return this.$wrapLimit;
                  }),
                  (this.setWrapLimit = function (e) {
                    this.setWrapLimitRange(e, e);
                  }),
                  (this.getWrapLimitRange = function () {
                    return {
                      min: this.$wrapLimitRange.min,
                      max: this.$wrapLimitRange.max,
                    };
                  }),
                  (this.$updateInternalDataOnChange = function (e) {
                    var t = this.$useWrapMode,
                      n = e.action,
                      i = e.start,
                      r = e.end,
                      o = i.row,
                      s = r.row,
                      a = s - o,
                      l = null;
                    if (((this.$updating = !0), 0 != a))
                      if ("remove" === n) {
                        this[t ? "$wrapData" : "$rowLengthCache"].splice(o, a);
                        var c = this.$foldData;
                        (l = this.getFoldsInRange(e)), this.removeFolds(l);
                        var d = 0;
                        if ((A = this.getFoldLine(r.row))) {
                          A.addRemoveChars(
                            r.row,
                            r.column,
                            i.column - r.column
                          ),
                            A.shiftRow(-a);
                          var u = this.getFoldLine(o);
                          u && u !== A && (u.merge(A), (A = u)),
                            (d = c.indexOf(A) + 1);
                        }
                        for (; d < c.length; d++) {
                          (A = c[d]).start.row >= r.row && A.shiftRow(-a);
                        }
                        s = o;
                      } else {
                        var h = Array(a);
                        h.unshift(o, 0);
                        var g = t ? this.$wrapData : this.$rowLengthCache;
                        g.splice.apply(g, h);
                        (c = this.$foldData), (d = 0);
                        if ((A = this.getFoldLine(o))) {
                          var p = A.range.compareInside(i.row, i.column);
                          0 == p
                            ? (A = A.split(i.row, i.column)) &&
                              (A.shiftRow(a),
                              A.addRemoveChars(s, 0, r.column - i.column))
                            : -1 == p &&
                              (A.addRemoveChars(o, 0, r.column - i.column),
                              A.shiftRow(a)),
                            (d = c.indexOf(A) + 1);
                        }
                        for (; d < c.length; d++) {
                          var A;
                          (A = c[d]).start.row >= o && A.shiftRow(a);
                        }
                      }
                    else
                      (a = Math.abs(e.start.column - e.end.column)),
                        "remove" === n &&
                          ((l = this.getFoldsInRange(e)),
                          this.removeFolds(l),
                          (a = -a)),
                        (A = this.getFoldLine(o)) &&
                          A.addRemoveChars(o, i.column, a);
                    return (
                      t &&
                        this.$wrapData.length != this.doc.getLength() &&
                        console.error(
                          "doc.getLength() and $wrapData.length have to be the same!"
                        ),
                      (this.$updating = !1),
                      t
                        ? this.$updateWrapData(o, s)
                        : this.$updateRowLengthCache(o, s),
                      l
                    );
                  }),
                  (this.$updateRowLengthCache = function (e, t, n) {
                    (this.$rowLengthCache[e] = null),
                      (this.$rowLengthCache[t] = null);
                  }),
                  (this.$updateWrapData = function (n, i) {
                    var r,
                      o,
                      s = this.doc.getAllLines(),
                      a = this.getTabSize(),
                      l = this.$wrapData,
                      c = this.$wrapLimit,
                      d = n;
                    for (i = Math.min(i, s.length - 1); d <= i; )
                      (o = this.getFoldLine(d, o))
                        ? ((r = []),
                          o.walk(
                            function (n, i, o, a) {
                              var l;
                              if (null != n) {
                                (l = this.$getDisplayTokens(n, r.length))[0] =
                                  e;
                                for (var c = 1; c < l.length; c++) l[c] = t;
                              } else
                                l = this.$getDisplayTokens(
                                  s[i].substring(a, o),
                                  r.length
                                );
                              r = r.concat(l);
                            }.bind(this),
                            o.end.row,
                            s[o.end.row].length + 1
                          ),
                          (l[o.start.row] = this.$computeWrapSplits(r, c, a)),
                          (d = o.end.row + 1))
                        : ((r = this.$getDisplayTokens(s[d])),
                          (l[d] = this.$computeWrapSplits(r, c, a)),
                          d++);
                  });
                var e = 3,
                  t = 4;

                function n(e) {
                  return (
                    !(e < 4352) &&
                    ((e >= 4352 && e <= 4447) ||
                      (e >= 4515 && e <= 4519) ||
                      (e >= 4602 && e <= 4607) ||
                      (e >= 9001 && e <= 9002) ||
                      (e >= 11904 && e <= 11929) ||
                      (e >= 11931 && e <= 12019) ||
                      (e >= 12032 && e <= 12245) ||
                      (e >= 12272 && e <= 12283) ||
                      (e >= 12288 && e <= 12350) ||
                      (e >= 12353 && e <= 12438) ||
                      (e >= 12441 && e <= 12543) ||
                      (e >= 12549 && e <= 12589) ||
                      (e >= 12593 && e <= 12686) ||
                      (e >= 12688 && e <= 12730) ||
                      (e >= 12736 && e <= 12771) ||
                      (e >= 12784 && e <= 12830) ||
                      (e >= 12832 && e <= 12871) ||
                      (e >= 12880 && e <= 13054) ||
                      (e >= 13056 && e <= 19903) ||
                      (e >= 19968 && e <= 42124) ||
                      (e >= 42128 && e <= 42182) ||
                      (e >= 43360 && e <= 43388) ||
                      (e >= 44032 && e <= 55203) ||
                      (e >= 55216 && e <= 55238) ||
                      (e >= 55243 && e <= 55291) ||
                      (e >= 63744 && e <= 64255) ||
                      (e >= 65040 && e <= 65049) ||
                      (e >= 65072 && e <= 65106) ||
                      (e >= 65108 && e <= 65126) ||
                      (e >= 65128 && e <= 65131) ||
                      (e >= 65281 && e <= 65376) ||
                      (e >= 65504 && e <= 65510))
                  );
                }
                (this.$computeWrapSplits = function (n, i, r) {
                  if (0 == n.length) return [];
                  var o = [],
                    s = n.length,
                    a = 0,
                    l = 0,
                    c = this.$wrapAsCode,
                    d = this.$indentedSoftWrap,
                    u =
                      i <= Math.max(2 * r, 8) || !1 === d
                        ? 0
                        : Math.floor(i / 2);

                  function h(e) {
                    for (var t = e - a, i = a; i < e; i++) {
                      var s = n[i];
                      (12 !== s && 2 !== s) || (t -= 1);
                    }
                    o.length ||
                      ((g = (function () {
                        var e = 0;
                        if (0 === u) return e;
                        if (d)
                          for (var t = 0; t < n.length; t++) {
                            var i = n[t];
                            if (10 == i) e += 1;
                            else {
                              if (11 != i) {
                                if (12 == i) continue;
                                break;
                              }
                              e += r;
                            }
                          }
                        return c && !1 !== d && (e += r), Math.min(e, u);
                      })()),
                      (o.indent = g)),
                      (l += t),
                      o.push(l),
                      (a = e);
                  }
                  for (var g = 0; s - a > i - g; ) {
                    var p = a + i - g;
                    if (n[p - 1] >= 10 && n[p] >= 10) h(p);
                    else if (n[p] != e && n[p] != t) {
                      for (
                        var A = Math.max(p - (i - (i >> 2)), a - 1);
                        p > A && n[p] < e;

                      )
                        p--;
                      if (c) {
                        for (; p > A && n[p] < e; ) p--;
                        for (; p > A && 9 == n[p]; ) p--;
                      } else for (; p > A && n[p] < 10; ) p--;
                      p > A ? h(++p) : (2 == n[(p = a + i)] && p--, h(p - g));
                    } else {
                      for (; p != a - 1 && n[p] != e; p--);
                      if (p > a) {
                        h(p);
                        continue;
                      }
                      for (p = a + i; p < n.length && n[p] == t; p++);
                      if (p == n.length) break;
                      h(p);
                    }
                  }
                  return o;
                }),
                  (this.$getDisplayTokens = function (e, t) {
                    var i,
                      r = [];
                    t = t || 0;
                    for (var o = 0; o < e.length; o++) {
                      var s = e.charCodeAt(o);
                      if (9 == s) {
                        (i = this.getScreenTabSize(r.length + t)), r.push(11);
                        for (var a = 1; a < i; a++) r.push(12);
                      } else
                        32 == s
                          ? r.push(10)
                          : (s > 39 && s < 48) || (s > 57 && s < 64)
                          ? r.push(9)
                          : s >= 4352 && n(s)
                          ? r.push(1, 2)
                          : r.push(1);
                    }
                    return r;
                  }),
                  (this.$getStringScreenWidth = function (e, t, i) {
                    if (0 == t) return [0, 0];
                    var r, o;
                    for (
                      null == t && (t = 1 / 0), i = i || 0, o = 0;
                      o < e.length &&
                      (9 == (r = e.charCodeAt(o))
                        ? (i += this.getScreenTabSize(i))
                        : r >= 4352 && n(r)
                        ? (i += 2)
                        : (i += 1),
                      !(i > t));
                      o++
                    );
                    return [i, o];
                  }),
                  (this.lineWidgets = null),
                  (this.getRowLength = function (e) {
                    var t = 1;
                    return (
                      this.lineWidgets &&
                        (t +=
                          (this.lineWidgets[e] &&
                            this.lineWidgets[e].rowCount) ||
                          0),
                      this.$useWrapMode && this.$wrapData[e]
                        ? this.$wrapData[e].length + t
                        : t
                    );
                  }),
                  (this.getRowLineCount = function (e) {
                    return this.$useWrapMode && this.$wrapData[e]
                      ? this.$wrapData[e].length + 1
                      : 1;
                  }),
                  (this.getRowWrapIndent = function (e) {
                    if (this.$useWrapMode) {
                      var t = this.screenToDocumentPosition(
                          e,
                          Number.MAX_VALUE
                        ),
                        n = this.$wrapData[t.row];
                      return n.length && n[0] < t.column ? n.indent : 0;
                    }
                    return 0;
                  }),
                  (this.getScreenLastRowColumn = function (e) {
                    var t = this.screenToDocumentPosition(e, Number.MAX_VALUE);
                    return this.documentToScreenColumn(t.row, t.column);
                  }),
                  (this.getDocumentLastRowColumn = function (e, t) {
                    var n = this.documentToScreenRow(e, t);
                    return this.getScreenLastRowColumn(n);
                  }),
                  (this.getDocumentLastRowColumnPosition = function (e, t) {
                    var n = this.documentToScreenRow(e, t);
                    return this.screenToDocumentPosition(
                      n,
                      Number.MAX_VALUE / 10
                    );
                  }),
                  (this.getRowSplitData = function (e) {
                    return this.$useWrapMode ? this.$wrapData[e] : void 0;
                  }),
                  (this.getScreenTabSize = function (e) {
                    return this.$tabSize - (e % this.$tabSize | 0);
                  }),
                  (this.screenToDocumentRow = function (e, t) {
                    return this.screenToDocumentPosition(e, t).row;
                  }),
                  (this.screenToDocumentColumn = function (e, t) {
                    return this.screenToDocumentPosition(e, t).column;
                  }),
                  (this.screenToDocumentPosition = function (e, t, n) {
                    if (e < 0)
                      return {
                        row: 0,
                        column: 0,
                      };
                    var i,
                      r,
                      o = 0,
                      s = 0,
                      a = 0,
                      l = 0,
                      c = this.$screenRowCache,
                      d = this.$getRowCacheIndex(c, e),
                      u = c.length;
                    if (u && d >= 0) {
                      (a = c[d]), (o = this.$docRowCache[d]);
                      var h = e > c[u - 1];
                    } else h = !u;
                    for (
                      var g = this.getLength() - 1,
                        p = this.getNextFoldLine(o),
                        A = p ? p.start.row : 1 / 0;
                      a <= e && !(a + (l = this.getRowLength(o)) > e || o >= g);

                    )
                      (a += l),
                        ++o > A &&
                          ((o = p.end.row + 1),
                          (A = (p = this.getNextFoldLine(o, p))
                            ? p.start.row
                            : 1 / 0)),
                        h &&
                          (this.$docRowCache.push(o),
                          this.$screenRowCache.push(a));
                    if (p && p.start.row <= o)
                      (i = this.getFoldDisplayLine(p)), (o = p.start.row);
                    else {
                      if (a + l <= e || o > g)
                        return {
                          row: g,
                          column: this.getLine(g).length,
                        };
                      (i = this.getLine(o)), (p = null);
                    }
                    var f = 0,
                      m = Math.floor(e - a);
                    if (this.$useWrapMode) {
                      var v = this.$wrapData[o];
                      v &&
                        ((r = v[m]),
                        m > 0 &&
                          v.length &&
                          ((f = v.indent),
                          (s = v[m - 1] || v[v.length - 1]),
                          (i = i.substring(s))));
                    }
                    return (
                      void 0 !== n &&
                        this.$bidiHandler.isBidiRow(a + m, o, m) &&
                        (t = this.$bidiHandler.offsetToCol(n)),
                      (s += this.$getStringScreenWidth(i, t - f)[1]),
                      this.$useWrapMode && s >= r && (s = r - 1),
                      p
                        ? p.idxToPosition(s)
                        : {
                            row: o,
                            column: s,
                          }
                    );
                  }),
                  (this.documentToScreenPosition = function (e, t) {
                    if (void 0 === t)
                      var n = this.$clipPositionToDocument(e.row, e.column);
                    else n = this.$clipPositionToDocument(e, t);
                    (e = n.row), (t = n.column);
                    var i,
                      r = 0,
                      o = null;
                    (i = this.getFoldAt(e, t, 1)) &&
                      ((e = i.start.row), (t = i.start.column));
                    var s,
                      a = 0,
                      l = this.$docRowCache,
                      c = this.$getRowCacheIndex(l, e),
                      d = l.length;
                    if (d && c >= 0) {
                      (a = l[c]), (r = this.$screenRowCache[c]);
                      var u = e > l[d - 1];
                    } else u = !d;
                    for (
                      var h = this.getNextFoldLine(a),
                        g = h ? h.start.row : 1 / 0;
                      a < e;

                    ) {
                      if (a >= g) {
                        if ((s = h.end.row + 1) > e) break;
                        g = (h = this.getNextFoldLine(s, h))
                          ? h.start.row
                          : 1 / 0;
                      } else s = a + 1;
                      (r += this.getRowLength(a)),
                        (a = s),
                        u &&
                          (this.$docRowCache.push(a),
                          this.$screenRowCache.push(r));
                    }
                    var p = "";
                    h && a >= g
                      ? ((p = this.getFoldDisplayLine(h, e, t)),
                        (o = h.start.row))
                      : ((p = this.getLine(e).substring(0, t)), (o = e));
                    var A = 0;
                    if (this.$useWrapMode) {
                      var f = this.$wrapData[o];
                      if (f) {
                        for (var m = 0; p.length >= f[m]; ) r++, m++;
                        (p = p.substring(f[m - 1] || 0, p.length)),
                          (A = m > 0 ? f.indent : 0);
                      }
                    }
                    return (
                      this.lineWidgets &&
                        this.lineWidgets[a] &&
                        this.lineWidgets[a].rowsAbove &&
                        (r += this.lineWidgets[a].rowsAbove),
                      {
                        row: r,
                        column: A + this.$getStringScreenWidth(p)[0],
                      }
                    );
                  }),
                  (this.documentToScreenColumn = function (e, t) {
                    return this.documentToScreenPosition(e, t).column;
                  }),
                  (this.documentToScreenRow = function (e, t) {
                    return this.documentToScreenPosition(e, t).row;
                  }),
                  (this.getScreenLength = function () {
                    var e = 0,
                      t = null;
                    if (this.$useWrapMode)
                      for (
                        var n = this.$wrapData.length,
                          i = 0,
                          r =
                            ((a = 0),
                            (t = this.$foldData[a++]) ? t.start.row : 1 / 0);
                        i < n;

                      ) {
                        var o = this.$wrapData[i];
                        (e += o ? o.length + 1 : 1),
                          ++i > r &&
                            ((i = t.end.row + 1),
                            (r = (t = this.$foldData[a++])
                              ? t.start.row
                              : 1 / 0));
                      }
                    else {
                      e = this.getLength();
                      for (var s = this.$foldData, a = 0; a < s.length; a++)
                        e -= (t = s[a]).end.row - t.start.row;
                    }
                    return (
                      this.lineWidgets && (e += this.$getWidgetScreenLength()),
                      e
                    );
                  }),
                  (this.$setFontMetrics = function (e) {
                    this.$enableVarChar &&
                      (this.$getStringScreenWidth = function (t, n, i) {
                        if (0 === n) return [0, 0];
                        var r, o;
                        for (
                          n || (n = 1 / 0), i = i || 0, o = 0;
                          o < t.length &&
                          !(
                            (i +=
                              "\t" === (r = t.charAt(o))
                                ? this.getScreenTabSize(i)
                                : e.getCharacterWidth(r)) > n
                          );
                          o++
                        );
                        return [i, o];
                      });
                  }),
                  (this.destroy = function () {
                    this.bgTokenizer &&
                      (this.bgTokenizer.setDocument(null),
                      (this.bgTokenizer = null)),
                      this.$stopWorker(),
                      this.removeAllListeners(),
                      this.selection.detach();
                  }),
                  (this.isFullWidth = n);
              }.call(p.prototype),
              e("./edit_session/folding").Folding.call(p.prototype),
              e("./edit_session/bracket_match").BracketMatch.call(p.prototype),
              s.defineOptions(p.prototype, "session", {
                wrap: {
                  set: function (e) {
                    if (
                      (e && "off" != e
                        ? "free" == e
                          ? (e = !0)
                          : "printMargin" == e
                          ? (e = -1)
                          : "string" == typeof e && (e = parseInt(e, 10) || !1)
                        : (e = !1),
                      this.$wrap != e)
                    )
                      if (((this.$wrap = e), e)) {
                        var t = "number" == typeof e ? e : null;
                        this.setWrapLimitRange(t, t), this.setUseWrapMode(!0);
                      } else this.setUseWrapMode(!1);
                  },
                  get: function () {
                    return this.getUseWrapMode()
                      ? -1 == this.$wrap
                        ? "printMargin"
                        : this.getWrapLimitRange().min
                        ? this.$wrap
                        : "free"
                      : "off";
                  },
                  handlesSet: !0,
                },
                wrapMethod: {
                  set: function (e) {
                    (e =
                      "auto" == e ? "text" != this.$mode.type : "text" != e) !=
                      this.$wrapAsCode &&
                      ((this.$wrapAsCode = e),
                      this.$useWrapMode &&
                        ((this.$useWrapMode = !1), this.setUseWrapMode(!0)));
                  },
                  initialValue: "auto",
                },
                indentedSoftWrap: {
                  set: function () {
                    this.$useWrapMode &&
                      ((this.$useWrapMode = !1), this.setUseWrapMode(!0));
                  },
                  initialValue: !0,
                },
                firstLineNumber: {
                  set: function () {
                    this._signal("changeBreakpoint");
                  },
                  initialValue: 1,
                },
                useWorker: {
                  set: function (e) {
                    (this.$useWorker = e),
                      this.$stopWorker(),
                      e && this.$startWorker();
                  },
                  initialValue: !0,
                },
                useSoftTabs: {
                  initialValue: !0,
                },
                tabSize: {
                  set: function (e) {
                    (e = parseInt(e)) > 0 &&
                      this.$tabSize !== e &&
                      ((this.$modified = !0),
                      (this.$rowLengthCache = []),
                      (this.$tabSize = e),
                      this._signal("changeTabSize"));
                  },
                  initialValue: 4,
                  handlesSet: !0,
                },
                navigateWithinSoftTabs: {
                  initialValue: !1,
                },
                foldStyle: {
                  set: function (e) {
                    this.setFoldStyle(e);
                  },
                  handlesSet: !0,
                },
                overwrite: {
                  set: function (e) {
                    this._signal("changeOverwrite");
                  },
                  initialValue: !1,
                },
                newLineMode: {
                  set: function (e) {
                    this.doc.setNewLineMode(e);
                  },
                  get: function () {
                    return this.doc.getNewLineMode();
                  },
                  handlesSet: !0,
                },
                mode: {
                  set: function (e) {
                    this.setMode(e);
                  },
                  get: function () {
                    return this.$modeId;
                  },
                  handlesSet: !0,
                },
              }),
              (t.EditSession = p);
          }
        ),
        ace.define(
          "ace/search",
          [
            "require",
            "exports",
            "module",
            "ace/lib/lang",
            "ace/lib/oop",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/lang"),
              r = e("./lib/oop"),
              o = e("./range").Range,
              s = function () {
                this.$options = {};
              };
            (function () {
              (this.set = function (e) {
                return r.mixin(this.$options, e), this;
              }),
                (this.getOptions = function () {
                  return i.copyObject(this.$options);
                }),
                (this.setOptions = function (e) {
                  this.$options = e;
                }),
                (this.find = function (e) {
                  var t = this.$options,
                    n = this.$matchIterator(e, t);
                  if (!n) return !1;
                  var i = null;
                  return (
                    n.forEach(function (e, n, r, s) {
                      return (
                        (i = new o(e, n, r, s)),
                        !(
                          n == s &&
                          t.start &&
                          t.start.start &&
                          0 != t.skipCurrent &&
                          i.isEqual(t.start)
                        ) || ((i = null), !1)
                      );
                    }),
                    i
                  );
                }),
                (this.findAll = function (e) {
                  var t = this.$options;
                  if (!t.needle) return [];
                  this.$assembleRegExp(t);
                  var n = t.range,
                    r = n
                      ? e.getLines(n.start.row, n.end.row)
                      : e.doc.getAllLines(),
                    s = [],
                    a = t.re;
                  if (t.$isMultiLine) {
                    var l,
                      c = a.length,
                      d = r.length - c;
                    e: for (var u = a.offset || 0; u <= d; u++) {
                      for (var h = 0; h < c; h++)
                        if (-1 == r[u + h].search(a[h])) continue e;
                      var g = r[u],
                        p = r[u + c - 1],
                        A = g.length - g.match(a[0])[0].length,
                        f = p.match(a[c - 1])[0].length;
                      (l && l.end.row === u && l.end.column > A) ||
                        (s.push((l = new o(u, A, u + c - 1, f))),
                        c > 2 && (u = u + c - 2));
                    }
                  } else
                    for (var m = 0; m < r.length; m++) {
                      var v = i.getMatchOffsets(r[m], a);
                      for (h = 0; h < v.length; h++) {
                        var b = v[h];
                        s.push(new o(m, b.offset, m, b.offset + b.length));
                      }
                    }
                  if (n) {
                    var w = n.start.column,
                      y = n.start.column;
                    for (
                      m = 0, h = s.length - 1;
                      m < h &&
                      s[m].start.column < w &&
                      s[m].start.row == n.start.row;

                    )
                      m++;
                    for (
                      ;
                      m < h && s[h].end.column > y && s[h].end.row == n.end.row;

                    )
                      h--;
                    for (s = s.slice(m, h + 1), m = 0, h = s.length; m < h; m++)
                      (s[m].start.row += n.start.row),
                        (s[m].end.row += n.start.row);
                  }
                  return s;
                }),
                (this.replace = function (e, t) {
                  var n = this.$options,
                    i = this.$assembleRegExp(n);
                  if (n.$isMultiLine) return t;
                  if (i) {
                    var r = i.exec(e);
                    if (!r || r[0].length != e.length) return null;
                    if (((t = e.replace(i, t)), n.preserveCase)) {
                      t = t.split("");
                      for (var o = Math.min(e.length, e.length); o--; ) {
                        var s = e[o];
                        s && s.toLowerCase() != s
                          ? (t[o] = t[o].toUpperCase())
                          : (t[o] = t[o].toLowerCase());
                      }
                      t = t.join("");
                    }
                    return t;
                  }
                }),
                (this.$assembleRegExp = function (e, t) {
                  if (e.needle instanceof RegExp) return (e.re = e.needle);
                  var n = e.needle;
                  if (!e.needle) return (e.re = !1);
                  e.regExp || (n = i.escapeRegExp(n)),
                    e.wholeWord &&
                      (n = (function (e, t) {
                        function n(e) {
                          return /\w/.test(e) || t.regExp ? "\\b" : "";
                        }
                        return n(e[0]) + e + n(e[e.length - 1]);
                      })(n, e));
                  var r = e.caseSensitive ? "gm" : "gmi";
                  if (
                    ((e.$isMultiLine = !t && /[\n\r]/.test(n)), e.$isMultiLine)
                  )
                    return (e.re = this.$assembleMultilineRegExp(n, r));
                  try {
                    var o = new RegExp(n, r);
                  } catch (e) {
                    o = !1;
                  }
                  return (e.re = o);
                }),
                (this.$assembleMultilineRegExp = function (e, t) {
                  for (
                    var n = e.replace(/\r\n|\r|\n/g, "$\n^").split("\n"),
                      i = [],
                      r = 0;
                    r < n.length;
                    r++
                  )
                    try {
                      i.push(new RegExp(n[r], t));
                    } catch (e) {
                      return !1;
                    }
                  return i;
                }),
                (this.$matchIterator = function (e, t) {
                  var n = this.$assembleRegExp(t);
                  if (!n) return !1;
                  var i = 1 == t.backwards,
                    r = 0 != t.skipCurrent,
                    o = t.range,
                    s = t.start;
                  s ||
                    (s = o ? o[i ? "end" : "start"] : e.selection.getRange()),
                    s.start && (s = s[r != i ? "end" : "start"]);
                  var a = o ? o.start.row : 0,
                    l = o ? o.end.row : e.getLength() - 1;
                  if (i)
                    var c = function (e) {
                      var n = s.row;
                      if (!u(n, s.column, e)) {
                        for (n--; n >= a; n--)
                          if (u(n, Number.MAX_VALUE, e)) return;
                        if (0 != t.wrap)
                          for (n = l, a = s.row; n >= a; n--)
                            if (u(n, Number.MAX_VALUE, e)) return;
                      }
                    };
                  else
                    c = function (e) {
                      var n = s.row;
                      if (!u(n, s.column, e)) {
                        for (n += 1; n <= l; n++) if (u(n, 0, e)) return;
                        if (0 != t.wrap)
                          for (n = a, l = s.row; n <= l; n++)
                            if (u(n, 0, e)) return;
                      }
                    };
                  if (t.$isMultiLine)
                    var d = n.length,
                      u = function (t, r, o) {
                        var s = i ? t - d + 1 : t;
                        if (!(s < 0)) {
                          var a = e.getLine(s),
                            l = a.search(n[0]);
                          if (!((!i && l < r) || -1 === l)) {
                            for (var c = 1; c < d; c++)
                              if (-1 == (a = e.getLine(s + c)).search(n[c]))
                                return;
                            var u = a.match(n[d - 1])[0].length;
                            if (!(i && u > r))
                              return !!o(s, l, s + d - 1, u) || void 0;
                          }
                        }
                      };
                  else if (i)
                    u = function (t, i, r) {
                      var o,
                        s = e.getLine(t),
                        a = [],
                        l = 0;
                      for (n.lastIndex = 0; (o = n.exec(s)); ) {
                        var c = o[0].length;
                        if (((l = o.index), !c)) {
                          if (l >= s.length) break;
                          n.lastIndex = l += 1;
                        }
                        if (o.index + c > i) break;
                        a.push(o.index, c);
                      }
                      for (var d = a.length - 1; d >= 0; d -= 2) {
                        var u = a[d - 1];
                        if (r(t, u, t, u + (c = a[d]))) return !0;
                      }
                    };
                  else
                    u = function (t, i, r) {
                      var o,
                        s,
                        a = e.getLine(t);
                      for (n.lastIndex = i; (s = n.exec(a)); ) {
                        var l = s[0].length;
                        if (r(t, (o = s.index), t, o + l)) return !0;
                        if (!l && ((n.lastIndex = o += 1), o >= a.length))
                          return !1;
                      }
                    };
                  return {
                    forEach: c,
                  };
                });
            }).call(s.prototype),
              (t.Search = s);
          }
        ),
        ace.define(
          "ace/keyboard/hash_handler",
          ["require", "exports", "module", "ace/lib/keys", "ace/lib/useragent"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/keys"),
              r = e("../lib/useragent"),
              o = i.KEY_MODS;

            function s(e, t) {
              (this.platform = t || (r.isMac ? "mac" : "win")),
                (this.commands = {}),
                (this.commandKeyBinding = {}),
                this.addCommands(e),
                (this.$singleCommand = !0);
            }

            function a(e, t) {
              s.call(this, e, t), (this.$singleCommand = !1);
            }
            (a.prototype = s.prototype),
              function () {
                function e(e) {
                  return (
                    ("object" == typeof e && e.bindKey && e.bindKey.position) ||
                    (e.isDefault ? -100 : 0)
                  );
                }
                (this.addCommand = function (e) {
                  this.commands[e.name] && this.removeCommand(e),
                    (this.commands[e.name] = e),
                    e.bindKey && this._buildKeyHash(e);
                }),
                  (this.removeCommand = function (e, t) {
                    var n = e && ("string" == typeof e ? e : e.name);
                    (e = this.commands[n]), t || delete this.commands[n];
                    var i = this.commandKeyBinding;
                    for (var r in i) {
                      var o = i[r];
                      if (o == e) delete i[r];
                      else if (Array.isArray(o)) {
                        var s = o.indexOf(e);
                        -1 != s &&
                          (o.splice(s, 1), 1 == o.length && (i[r] = o[0]));
                      }
                    }
                  }),
                  (this.bindKey = function (e, t, n) {
                    if (
                      ("object" == typeof e &&
                        e &&
                        (null == n && (n = e.position), (e = e[this.platform])),
                      e)
                    )
                      return "function" == typeof t
                        ? this.addCommand({
                            exec: t,
                            bindKey: e,
                            name: t.name || e,
                          })
                        : void e.split("|").forEach(function (e) {
                            var i = "";
                            if (-1 != e.indexOf(" ")) {
                              var r = e.split(/\s+/);
                              (e = r.pop()),
                                r.forEach(function (e) {
                                  var t = this.parseKeys(e),
                                    n = o[t.hashId] + t.key;
                                  (i += (i ? " " : "") + n),
                                    this._addCommandToBinding(i, "chainKeys");
                                }, this),
                                (i += " ");
                            }
                            var s = this.parseKeys(e),
                              a = o[s.hashId] + s.key;
                            this._addCommandToBinding(i + a, t, n);
                          }, this);
                  }),
                  (this._addCommandToBinding = function (t, n, i) {
                    var r,
                      o = this.commandKeyBinding;
                    if (n)
                      if (!o[t] || this.$singleCommand) o[t] = n;
                      else {
                        Array.isArray(o[t])
                          ? -1 != (r = o[t].indexOf(n)) && o[t].splice(r, 1)
                          : (o[t] = [o[t]]),
                          "number" != typeof i && (i = e(n));
                        var s = o[t];
                        for (r = 0; r < s.length; r++) {
                          if (e(s[r]) > i) break;
                        }
                        s.splice(r, 0, n);
                      }
                    else delete o[t];
                  }),
                  (this.addCommands = function (e) {
                    e &&
                      Object.keys(e).forEach(function (t) {
                        var n = e[t];
                        if (n) {
                          if ("string" == typeof n) return this.bindKey(n, t);
                          "function" == typeof n &&
                            (n = {
                              exec: n,
                            }),
                            "object" == typeof n &&
                              (n.name || (n.name = t), this.addCommand(n));
                        }
                      }, this);
                  }),
                  (this.removeCommands = function (e) {
                    Object.keys(e).forEach(function (t) {
                      this.removeCommand(e[t]);
                    }, this);
                  }),
                  (this.bindKeys = function (e) {
                    Object.keys(e).forEach(function (t) {
                      this.bindKey(t, e[t]);
                    }, this);
                  }),
                  (this._buildKeyHash = function (e) {
                    this.bindKey(e.bindKey, e);
                  }),
                  (this.parseKeys = function (e) {
                    var t = e
                        .toLowerCase()
                        .split(/[\-\+]([\-\+])?/)
                        .filter(function (e) {
                          return e;
                        }),
                      n = t.pop(),
                      r = i[n];
                    if (i.FUNCTION_KEYS[r])
                      n = i.FUNCTION_KEYS[r].toLowerCase();
                    else {
                      if (!t.length)
                        return {
                          key: n,
                          hashId: -1,
                        };
                      if (1 == t.length && "shift" == t[0])
                        return {
                          key: n.toUpperCase(),
                          hashId: -1,
                        };
                    }
                    for (var o = 0, s = t.length; s--; ) {
                      var a = i.KEY_MODS[t[s]];
                      if (null == a)
                        return (
                          "undefined" != typeof console &&
                            console.error(
                              "invalid modifier " + t[s] + " in " + e
                            ),
                          !1
                        );
                      o |= a;
                    }
                    return {
                      key: n,
                      hashId: o,
                    };
                  }),
                  (this.findKeyCommand = function (e, t) {
                    var n = o[e] + t;
                    return this.commandKeyBinding[n];
                  }),
                  (this.handleKeyboard = function (e, t, n, i) {
                    if (!(i < 0)) {
                      var r = o[t] + n,
                        s = this.commandKeyBinding[r];
                      return (
                        e.$keyChain &&
                          ((e.$keyChain += " " + r),
                          (s = this.commandKeyBinding[e.$keyChain] || s)),
                        !s ||
                        ("chainKeys" != s && "chainKeys" != s[s.length - 1])
                          ? (e.$keyChain &&
                              ((t && 4 != t) || 1 != n.length
                                ? (-1 == t || i > 0) && (e.$keyChain = "")
                                : (e.$keyChain = e.$keyChain.slice(
                                    0,
                                    -r.length - 1
                                  ))),
                            {
                              command: s,
                            })
                          : ((e.$keyChain = e.$keyChain || r),
                            {
                              command: "null",
                            })
                      );
                    }
                  }),
                  (this.getStatusText = function (e, t) {
                    return t.$keyChain || "";
                  });
              }.call(s.prototype),
              (t.HashHandler = s),
              (t.MultiHashHandler = a);
          }
        ),
        ace.define(
          "ace/commands/command_manager",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/keyboard/hash_handler",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("../keyboard/hash_handler").MultiHashHandler,
              o = e("../lib/event_emitter").EventEmitter,
              s = function (e, t) {
                r.call(this, t, e),
                  (this.byName = this.commands),
                  this.setDefaultHandler("exec", function (e) {
                    return e.command.exec(e.editor, e.args || {});
                  });
              };
            i.inherits(s, r),
              function () {
                i.implement(this, o),
                  (this.exec = function (e, t, n) {
                    if (Array.isArray(e)) {
                      for (var i = e.length; i--; )
                        if (this.exec(e[i], t, n)) return !0;
                      return !1;
                    }
                    if (("string" == typeof e && (e = this.commands[e]), !e))
                      return !1;
                    if (t && t.$readOnly && !e.readOnly) return !1;
                    if (
                      0 != this.$checkCommandState &&
                      e.isAvailable &&
                      !e.isAvailable(t)
                    )
                      return !1;
                    var r = {
                      editor: t,
                      command: e,
                      args: n,
                    };
                    return (
                      (r.returnValue = this._emit("exec", r)),
                      this._signal("afterExec", r),
                      !1 !== r.returnValue
                    );
                  }),
                  (this.toggleRecording = function (e) {
                    if (!this.$inReplay)
                      return (
                        e && e._emit("changeStatus"),
                        this.recording
                          ? (this.macro.pop(),
                            this.off("exec", this.$addCommandToMacro),
                            this.macro.length || (this.macro = this.oldMacro),
                            (this.recording = !1))
                          : (this.$addCommandToMacro ||
                              (this.$addCommandToMacro = function (e) {
                                this.macro.push([e.command, e.args]);
                              }.bind(this)),
                            (this.oldMacro = this.macro),
                            (this.macro = []),
                            this.on("exec", this.$addCommandToMacro),
                            (this.recording = !0))
                      );
                  }),
                  (this.replay = function (e) {
                    if (!this.$inReplay && this.macro) {
                      if (this.recording) return this.toggleRecording(e);
                      try {
                        (this.$inReplay = !0),
                          this.macro.forEach(function (t) {
                            "string" == typeof t
                              ? this.exec(t, e)
                              : this.exec(t[0], e, t[1]);
                          }, this);
                      } finally {
                        this.$inReplay = !1;
                      }
                    }
                  }),
                  (this.trimMacro = function (e) {
                    return e.map(function (e) {
                      return (
                        "string" != typeof e[0] && (e[0] = e[0].name),
                        e[1] || (e = e[0]),
                        e
                      );
                    });
                  });
              }.call(s.prototype),
              (t.CommandManager = s);
          }
        ),
        ace.define(
          "ace/commands/default_commands",
          [
            "require",
            "exports",
            "module",
            "ace/lib/lang",
            "ace/config",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/lang"),
              r = e("../config"),
              o = e("../range").Range;

            function s(e, t) {
              return {
                win: e,
                mac: t,
              };
            }
            t.commands = [
              {
                name: "showSettingsMenu",
                bindKey: s("Ctrl-,", "Command-,"),
                exec: function (e) {
                  r.loadModule("ace/ext/settings_menu", function (t) {
                    t.init(e), e.showSettingsMenu();
                  });
                },
                readOnly: !0,
              },
              {
                name: "goToNextError",
                bindKey: s("Alt-E", "F4"),
                exec: function (e) {
                  r.loadModule("./ext/error_marker", function (t) {
                    t.showErrorMarker(e, 1);
                  });
                },
                scrollIntoView: "animate",
                readOnly: !0,
              },
              {
                name: "goToPreviousError",
                bindKey: s("Alt-Shift-E", "Shift-F4"),
                exec: function (e) {
                  r.loadModule("./ext/error_marker", function (t) {
                    t.showErrorMarker(e, -1);
                  });
                },
                scrollIntoView: "animate",
                readOnly: !0,
              },
              {
                name: "selectall",
                description: "Select all",
                bindKey: s("Ctrl-A", "Command-A"),
                exec: function (e) {
                  e.selectAll();
                },
                readOnly: !0,
              },
              {
                name: "centerselection",
                description: "Center selection",
                bindKey: s(null, "Ctrl-L"),
                exec: function (e) {
                  e.centerSelection();
                },
                readOnly: !0,
              },
              {
                name: "gotoline",
                description: "Go to line...",
                bindKey: s("Ctrl-L", "Command-L"),
                exec: function (e, t) {
                  "number" != typeof t || isNaN(t) || e.gotoLine(t),
                    e.prompt({
                      $type: "gotoLine",
                    });
                },
                readOnly: !0,
              },
              {
                name: "fold",
                bindKey: s("Alt-L|Ctrl-F1", "Command-Alt-L|Command-F1"),
                exec: function (e) {
                  e.session.toggleFold(!1);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "unfold",
                bindKey: s(
                  "Alt-Shift-L|Ctrl-Shift-F1",
                  "Command-Alt-Shift-L|Command-Shift-F1"
                ),
                exec: function (e) {
                  e.session.toggleFold(!0);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "toggleFoldWidget",
                bindKey: s("F2", "F2"),
                exec: function (e) {
                  e.session.toggleFoldWidget();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "toggleParentFoldWidget",
                bindKey: s("Alt-F2", "Alt-F2"),
                exec: function (e) {
                  e.session.toggleFoldWidget(!0);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "foldall",
                description: "Fold all",
                bindKey: s(null, "Ctrl-Command-Option-0"),
                exec: function (e) {
                  e.session.foldAll();
                },
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "foldAllComments",
                description: "Fold all comments",
                bindKey: s(null, "Ctrl-Command-Option-0"),
                exec: function (e) {
                  e.session.foldAllComments();
                },
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "foldOther",
                description: "Fold other",
                bindKey: s("Alt-0", "Command-Option-0"),
                exec: function (e) {
                  e.session.foldAll(),
                    e.session.unfold(e.selection.getAllRanges());
                },
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "unfoldall",
                description: "Unfold all",
                bindKey: s("Alt-Shift-0", "Command-Option-Shift-0"),
                exec: function (e) {
                  e.session.unfold();
                },
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "findnext",
                description: "Find next",
                bindKey: s("Ctrl-K", "Command-G"),
                exec: function (e) {
                  e.findNext();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "findprevious",
                description: "Find previous",
                bindKey: s("Ctrl-Shift-K", "Command-Shift-G"),
                exec: function (e) {
                  e.findPrevious();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "center",
                readOnly: !0,
              },
              {
                name: "selectOrFindNext",
                description: "Select or find next",
                bindKey: s("Alt-K", "Ctrl-G"),
                exec: function (e) {
                  e.selection.isEmpty()
                    ? e.selection.selectWord()
                    : e.findNext();
                },
                readOnly: !0,
              },
              {
                name: "selectOrFindPrevious",
                description: "Select or find previous",
                bindKey: s("Alt-Shift-K", "Ctrl-Shift-G"),
                exec: function (e) {
                  e.selection.isEmpty()
                    ? e.selection.selectWord()
                    : e.findPrevious();
                },
                readOnly: !0,
              },
              {
                name: "find",
                description: "Find",
                bindKey: s("Ctrl-F", "Command-F"),
                exec: function (e) {
                  r.loadModule("ace/ext/searchbox", function (t) {
                    t.Search(e);
                  });
                },
                readOnly: !0,
              },
              {
                name: "overwrite",
                description: "Overwrite",
                bindKey: "Insert",
                exec: function (e) {
                  e.toggleOverwrite();
                },
                readOnly: !0,
              },
              {
                name: "selecttostart",
                description: "Select to start",
                bindKey: s(
                  "Ctrl-Shift-Home",
                  "Command-Shift-Home|Command-Shift-Up"
                ),
                exec: function (e) {
                  e.getSelection().selectFileStart();
                },
                multiSelectAction: "forEach",
                readOnly: !0,
                scrollIntoView: "animate",
                aceCommandGroup: "fileJump",
              },
              {
                name: "gotostart",
                description: "Go to start",
                bindKey: s("Ctrl-Home", "Command-Home|Command-Up"),
                exec: function (e) {
                  e.navigateFileStart();
                },
                multiSelectAction: "forEach",
                readOnly: !0,
                scrollIntoView: "animate",
                aceCommandGroup: "fileJump",
              },
              {
                name: "selectup",
                description: "Select up",
                bindKey: s("Shift-Up", "Shift-Up|Ctrl-Shift-P"),
                exec: function (e) {
                  e.getSelection().selectUp();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "golineup",
                description: "Go line up",
                bindKey: s("Up", "Up|Ctrl-P"),
                exec: function (e, t) {
                  e.navigateUp(t.times);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selecttoend",
                description: "Select to end",
                bindKey: s(
                  "Ctrl-Shift-End",
                  "Command-Shift-End|Command-Shift-Down"
                ),
                exec: function (e) {
                  e.getSelection().selectFileEnd();
                },
                multiSelectAction: "forEach",
                readOnly: !0,
                scrollIntoView: "animate",
                aceCommandGroup: "fileJump",
              },
              {
                name: "gotoend",
                description: "Go to end",
                bindKey: s("Ctrl-End", "Command-End|Command-Down"),
                exec: function (e) {
                  e.navigateFileEnd();
                },
                multiSelectAction: "forEach",
                readOnly: !0,
                scrollIntoView: "animate",
                aceCommandGroup: "fileJump",
              },
              {
                name: "selectdown",
                description: "Select down",
                bindKey: s("Shift-Down", "Shift-Down|Ctrl-Shift-N"),
                exec: function (e) {
                  e.getSelection().selectDown();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "golinedown",
                description: "Go line down",
                bindKey: s("Down", "Down|Ctrl-N"),
                exec: function (e, t) {
                  e.navigateDown(t.times);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectwordleft",
                description: "Select word left",
                bindKey: s("Ctrl-Shift-Left", "Option-Shift-Left"),
                exec: function (e) {
                  e.getSelection().selectWordLeft();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotowordleft",
                description: "Go to word left",
                bindKey: s("Ctrl-Left", "Option-Left"),
                exec: function (e) {
                  e.navigateWordLeft();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selecttolinestart",
                description: "Select to line start",
                bindKey: s("Alt-Shift-Left", "Command-Shift-Left|Ctrl-Shift-A"),
                exec: function (e) {
                  e.getSelection().selectLineStart();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotolinestart",
                description: "Go to line start",
                bindKey: s("Alt-Left|Home", "Command-Left|Home|Ctrl-A"),
                exec: function (e) {
                  e.navigateLineStart();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectleft",
                description: "Select left",
                bindKey: s("Shift-Left", "Shift-Left|Ctrl-Shift-B"),
                exec: function (e) {
                  e.getSelection().selectLeft();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotoleft",
                description: "Go to left",
                bindKey: s("Left", "Left|Ctrl-B"),
                exec: function (e, t) {
                  e.navigateLeft(t.times);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectwordright",
                description: "Select word right",
                bindKey: s("Ctrl-Shift-Right", "Option-Shift-Right"),
                exec: function (e) {
                  e.getSelection().selectWordRight();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotowordright",
                description: "Go to word right",
                bindKey: s("Ctrl-Right", "Option-Right"),
                exec: function (e) {
                  e.navigateWordRight();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selecttolineend",
                description: "Select to line end",
                bindKey: s(
                  "Alt-Shift-Right",
                  "Command-Shift-Right|Shift-End|Ctrl-Shift-E"
                ),
                exec: function (e) {
                  e.getSelection().selectLineEnd();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotolineend",
                description: "Go to line end",
                bindKey: s("Alt-Right|End", "Command-Right|End|Ctrl-E"),
                exec: function (e) {
                  e.navigateLineEnd();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectright",
                description: "Select right",
                bindKey: s("Shift-Right", "Shift-Right"),
                exec: function (e) {
                  e.getSelection().selectRight();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "gotoright",
                description: "Go to right",
                bindKey: s("Right", "Right|Ctrl-F"),
                exec: function (e, t) {
                  e.navigateRight(t.times);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectpagedown",
                description: "Select page down",
                bindKey: "Shift-PageDown",
                exec: function (e) {
                  e.selectPageDown();
                },
                readOnly: !0,
              },
              {
                name: "pagedown",
                description: "Page down",
                bindKey: s(null, "Option-PageDown"),
                exec: function (e) {
                  e.scrollPageDown();
                },
                readOnly: !0,
              },
              {
                name: "gotopagedown",
                description: "Go to page down",
                bindKey: s("PageDown", "PageDown|Ctrl-V"),
                exec: function (e) {
                  e.gotoPageDown();
                },
                readOnly: !0,
              },
              {
                name: "selectpageup",
                description: "Select page up",
                bindKey: "Shift-PageUp",
                exec: function (e) {
                  e.selectPageUp();
                },
                readOnly: !0,
              },
              {
                name: "pageup",
                description: "Page up",
                bindKey: s(null, "Option-PageUp"),
                exec: function (e) {
                  e.scrollPageUp();
                },
                readOnly: !0,
              },
              {
                name: "gotopageup",
                description: "Go to page up",
                bindKey: "PageUp",
                exec: function (e) {
                  e.gotoPageUp();
                },
                readOnly: !0,
              },
              {
                name: "scrollup",
                description: "Scroll up",
                bindKey: s("Ctrl-Up", null),
                exec: function (e) {
                  e.renderer.scrollBy(
                    0,
                    -2 * e.renderer.layerConfig.lineHeight
                  );
                },
                readOnly: !0,
              },
              {
                name: "scrolldown",
                description: "Scroll down",
                bindKey: s("Ctrl-Down", null),
                exec: function (e) {
                  e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight);
                },
                readOnly: !0,
              },
              {
                name: "selectlinestart",
                description: "Select line start",
                bindKey: "Shift-Home",
                exec: function (e) {
                  e.getSelection().selectLineStart();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectlineend",
                description: "Select line end",
                bindKey: "Shift-End",
                exec: function (e) {
                  e.getSelection().selectLineEnd();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "togglerecording",
                description: "Toggle recording",
                bindKey: s("Ctrl-Alt-E", "Command-Option-E"),
                exec: function (e) {
                  e.commands.toggleRecording(e);
                },
                readOnly: !0,
              },
              {
                name: "replaymacro",
                description: "Replay macro",
                bindKey: s("Ctrl-Shift-E", "Command-Shift-E"),
                exec: function (e) {
                  e.commands.replay(e);
                },
                readOnly: !0,
              },
              {
                name: "jumptomatching",
                description: "Jump to matching",
                bindKey: s("Ctrl-\\|Ctrl-P", "Command-\\"),
                exec: function (e) {
                  e.jumpToMatching();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "animate",
                readOnly: !0,
              },
              {
                name: "selecttomatching",
                description: "Select to matching",
                bindKey: s("Ctrl-Shift-\\|Ctrl-Shift-P", "Command-Shift-\\"),
                exec: function (e) {
                  e.jumpToMatching(!0);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "animate",
                readOnly: !0,
              },
              {
                name: "expandToMatching",
                description: "Expand to matching",
                bindKey: s("Ctrl-Shift-M", "Ctrl-Shift-M"),
                exec: function (e) {
                  e.jumpToMatching(!0, !0);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "animate",
                readOnly: !0,
              },
              {
                name: "passKeysToBrowser",
                description: "Pass keys to browser",
                bindKey: s(null, null),
                exec: function () {},
                passEvent: !0,
                readOnly: !0,
              },
              {
                name: "copy",
                description: "Copy",
                exec: function (e) {},
                readOnly: !0,
              },
              {
                name: "cut",
                description: "Cut",
                exec: function (e) {
                  var t =
                    e.$copyWithEmptySelection && e.selection.isEmpty()
                      ? e.selection.getLineRange()
                      : e.selection.getRange();
                  e._emit("cut", t),
                    t.isEmpty() || e.session.remove(t),
                    e.clearSelection();
                },
                scrollIntoView: "cursor",
                multiSelectAction: "forEach",
              },
              {
                name: "paste",
                description: "Paste",
                exec: function (e, t) {
                  e.$handlePaste(t);
                },
                scrollIntoView: "cursor",
              },
              {
                name: "removeline",
                description: "Remove line",
                bindKey: s("Ctrl-D", "Command-D"),
                exec: function (e) {
                  e.removeLines();
                },
                scrollIntoView: "cursor",
                multiSelectAction: "forEachLine",
              },
              {
                name: "duplicateSelection",
                description: "Duplicate selection",
                bindKey: s("Ctrl-Shift-D", "Command-Shift-D"),
                exec: function (e) {
                  e.duplicateSelection();
                },
                scrollIntoView: "cursor",
                multiSelectAction: "forEach",
              },
              {
                name: "sortlines",
                description: "Sort lines",
                bindKey: s("Ctrl-Alt-S", "Command-Alt-S"),
                exec: function (e) {
                  e.sortLines();
                },
                scrollIntoView: "selection",
                multiSelectAction: "forEachLine",
              },
              {
                name: "togglecomment",
                description: "Toggle comment",
                bindKey: s("Ctrl-/", "Command-/"),
                exec: function (e) {
                  e.toggleCommentLines();
                },
                multiSelectAction: "forEachLine",
                scrollIntoView: "selectionPart",
              },
              {
                name: "toggleBlockComment",
                description: "Toggle block comment",
                bindKey: s("Ctrl-Shift-/", "Command-Shift-/"),
                exec: function (e) {
                  e.toggleBlockComment();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "selectionPart",
              },
              {
                name: "modifyNumberUp",
                description: "Modify number up",
                bindKey: s("Ctrl-Shift-Up", "Alt-Shift-Up"),
                exec: function (e) {
                  e.modifyNumber(1);
                },
                scrollIntoView: "cursor",
                multiSelectAction: "forEach",
              },
              {
                name: "modifyNumberDown",
                description: "Modify number down",
                bindKey: s("Ctrl-Shift-Down", "Alt-Shift-Down"),
                exec: function (e) {
                  e.modifyNumber(-1);
                },
                scrollIntoView: "cursor",
                multiSelectAction: "forEach",
              },
              {
                name: "replace",
                description: "Replace",
                bindKey: s("Ctrl-H", "Command-Option-F"),
                exec: function (e) {
                  r.loadModule("ace/ext/searchbox", function (t) {
                    t.Search(e, !0);
                  });
                },
              },
              {
                name: "undo",
                description: "Undo",
                bindKey: s("Ctrl-Z", "Command-Z"),
                exec: function (e) {
                  e.undo();
                },
              },
              {
                name: "redo",
                description: "Redo",
                bindKey: s("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"),
                exec: function (e) {
                  e.redo();
                },
              },
              {
                name: "copylinesup",
                description: "Copy lines up",
                bindKey: s("Alt-Shift-Up", "Command-Option-Up"),
                exec: function (e) {
                  e.copyLinesUp();
                },
                scrollIntoView: "cursor",
              },
              {
                name: "movelinesup",
                description: "Move lines up",
                bindKey: s("Alt-Up", "Option-Up"),
                exec: function (e) {
                  e.moveLinesUp();
                },
                scrollIntoView: "cursor",
              },
              {
                name: "copylinesdown",
                description: "Copy lines down",
                bindKey: s("Alt-Shift-Down", "Command-Option-Down"),
                exec: function (e) {
                  e.copyLinesDown();
                },
                scrollIntoView: "cursor",
              },
              {
                name: "movelinesdown",
                description: "Move lines down",
                bindKey: s("Alt-Down", "Option-Down"),
                exec: function (e) {
                  e.moveLinesDown();
                },
                scrollIntoView: "cursor",
              },
              {
                name: "del",
                description: "Delete",
                bindKey: s("Delete", "Delete|Ctrl-D|Shift-Delete"),
                exec: function (e) {
                  e.remove("right");
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "backspace",
                description: "Backspace",
                bindKey: s(
                  "Shift-Backspace|Backspace",
                  "Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"
                ),
                exec: function (e) {
                  e.remove("left");
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "cut_or_delete",
                description: "Cut or delete",
                bindKey: s("Shift-Delete", null),
                exec: function (e) {
                  if (!e.selection.isEmpty()) return !1;
                  e.remove("left");
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removetolinestart",
                description: "Remove to line start",
                bindKey: s("Alt-Backspace", "Command-Backspace"),
                exec: function (e) {
                  e.removeToLineStart();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removetolineend",
                description: "Remove to line end",
                bindKey: s("Alt-Delete", "Ctrl-K|Command-Delete"),
                exec: function (e) {
                  e.removeToLineEnd();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removetolinestarthard",
                description: "Remove to line start hard",
                bindKey: s("Ctrl-Shift-Backspace", null),
                exec: function (e) {
                  var t = e.selection.getRange();
                  (t.start.column = 0), e.session.remove(t);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removetolineendhard",
                description: "Remove to line end hard",
                bindKey: s("Ctrl-Shift-Delete", null),
                exec: function (e) {
                  var t = e.selection.getRange();
                  (t.end.column = Number.MAX_VALUE), e.session.remove(t);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removewordleft",
                description: "Remove word left",
                bindKey: s(
                  "Ctrl-Backspace",
                  "Alt-Backspace|Ctrl-Alt-Backspace"
                ),
                exec: function (e) {
                  e.removeWordLeft();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "removewordright",
                description: "Remove word right",
                bindKey: s("Ctrl-Delete", "Alt-Delete"),
                exec: function (e) {
                  e.removeWordRight();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "outdent",
                description: "Outdent",
                bindKey: s("Shift-Tab", "Shift-Tab"),
                exec: function (e) {
                  e.blockOutdent();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "selectionPart",
              },
              {
                name: "indent",
                description: "Indent",
                bindKey: s("Tab", "Tab"),
                exec: function (e) {
                  e.indent();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "selectionPart",
              },
              {
                name: "blockoutdent",
                description: "Block outdent",
                bindKey: s("Ctrl-[", "Ctrl-["),
                exec: function (e) {
                  e.blockOutdent();
                },
                multiSelectAction: "forEachLine",
                scrollIntoView: "selectionPart",
              },
              {
                name: "blockindent",
                description: "Block indent",
                bindKey: s("Ctrl-]", "Ctrl-]"),
                exec: function (e) {
                  e.blockIndent();
                },
                multiSelectAction: "forEachLine",
                scrollIntoView: "selectionPart",
              },
              {
                name: "insertstring",
                description: "Insert string",
                exec: function (e, t) {
                  e.insert(t);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "inserttext",
                description: "Insert text",
                exec: function (e, t) {
                  e.insert(i.stringRepeat(t.text || "", t.times || 1));
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "splitline",
                description: "Split line",
                bindKey: s(null, "Ctrl-O"),
                exec: function (e) {
                  e.splitLine();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "transposeletters",
                description: "Transpose letters",
                bindKey: s("Alt-Shift-X", "Ctrl-T"),
                exec: function (e) {
                  e.transposeLetters();
                },
                multiSelectAction: function (e) {
                  e.transposeSelections(1);
                },
                scrollIntoView: "cursor",
              },
              {
                name: "touppercase",
                description: "To uppercase",
                bindKey: s("Ctrl-U", "Ctrl-U"),
                exec: function (e) {
                  e.toUpperCase();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "tolowercase",
                description: "To lowercase",
                bindKey: s("Ctrl-Shift-U", "Ctrl-Shift-U"),
                exec: function (e) {
                  e.toLowerCase();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "autoindent",
                description: "Auto Indent",
                bindKey: s(null, null),
                exec: function (e) {
                  e.autoIndent();
                },
                multiSelectAction: "forEachLine",
                scrollIntoView: "animate",
              },
              {
                name: "expandtoline",
                description: "Expand to line",
                bindKey: s("Ctrl-Shift-L", "Command-Shift-L"),
                exec: function (e) {
                  var t = e.selection.getRange();
                  (t.start.column = t.end.column = 0),
                    t.end.row++,
                    e.selection.setRange(t, !1);
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "joinlines",
                description: "Join lines",
                bindKey: s(null, null),
                exec: function (e) {
                  for (
                    var t = e.selection.isBackwards(),
                      n = t
                        ? e.selection.getSelectionLead()
                        : e.selection.getSelectionAnchor(),
                      r = t
                        ? e.selection.getSelectionAnchor()
                        : e.selection.getSelectionLead(),
                      s = e.session.doc.getLine(n.row).length,
                      a = e.session.doc
                        .getTextRange(e.selection.getRange())
                        .replace(/\n\s*/, " ").length,
                      l = e.session.doc.getLine(n.row),
                      c = n.row + 1;
                    c <= r.row + 1;
                    c++
                  ) {
                    var d = i.stringTrimLeft(
                      i.stringTrimRight(e.session.doc.getLine(c))
                    );
                    0 !== d.length && (d = " " + d), (l += d);
                  }
                  r.row + 1 < e.session.doc.getLength() - 1 &&
                    (l += e.session.doc.getNewLineCharacter()),
                    e.clearSelection(),
                    e.session.doc.replace(new o(n.row, 0, r.row + 2, 0), l),
                    a > 0
                      ? (e.selection.moveCursorTo(n.row, n.column),
                        e.selection.selectTo(n.row, n.column + a))
                      : ((s =
                          e.session.doc.getLine(n.row).length > s ? s + 1 : s),
                        e.selection.moveCursorTo(n.row, s));
                },
                multiSelectAction: "forEach",
                readOnly: !0,
              },
              {
                name: "invertSelection",
                description: "Invert selection",
                bindKey: s(null, null),
                exec: function (e) {
                  var t = e.session.doc.getLength() - 1,
                    n = e.session.doc.getLine(t).length,
                    i = e.selection.rangeList.ranges,
                    r = [];
                  i.length < 1 && (i = [e.selection.getRange()]);
                  for (var s = 0; s < i.length; s++)
                    s == i.length - 1 &&
                      ((i[s].end.row === t && i[s].end.column === n) ||
                        r.push(new o(i[s].end.row, i[s].end.column, t, n))),
                      0 === s
                        ? (0 === i[s].start.row && 0 === i[s].start.column) ||
                          r.push(new o(0, 0, i[s].start.row, i[s].start.column))
                        : r.push(
                            new o(
                              i[s - 1].end.row,
                              i[s - 1].end.column,
                              i[s].start.row,
                              i[s].start.column
                            )
                          );
                  e.exitMultiSelectMode(), e.clearSelection();
                  for (s = 0; s < r.length; s++) e.selection.addRange(r[s], !1);
                },
                readOnly: !0,
                scrollIntoView: "none",
              },
              {
                name: "addLineAfter",
                exec: function (e) {
                  e.selection.clearSelection(),
                    e.navigateLineEnd(),
                    e.insert("\n");
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "addLineBefore",
                exec: function (e) {
                  e.selection.clearSelection();
                  var t = e.getCursorPosition();
                  e.selection.moveTo(t.row - 1, Number.MAX_VALUE),
                    e.insert("\n"),
                    0 === t.row && e.navigateUp();
                },
                multiSelectAction: "forEach",
                scrollIntoView: "cursor",
              },
              {
                name: "openCommandPallete",
                description: "Open command pallete",
                bindKey: s("F1", "F1"),
                exec: function (e) {
                  e.prompt({
                    $type: "commands",
                  });
                },
                readOnly: !0,
              },
              {
                name: "modeSelect",
                description: "Change language mode...",
                bindKey: s(null, null),
                exec: function (e) {
                  e.prompt({
                    $type: "modes",
                  });
                },
                readOnly: !0,
              },
            ];
            for (var a = 1; a < 9; a++)
              t.commands.push({
                name: "foldToLevel" + a,
                description: "Fold To Level " + a,
                level: a,
                exec: function (e) {
                  e.session.foldToLevel(this.level);
                },
                scrollIntoView: "center",
                readOnly: !0,
              });
          }
        ),
        ace.define(
          "ace/editor",
          [
            "require",
            "exports",
            "module",
            "ace/lib/fixoldbrowsers",
            "ace/lib/oop",
            "ace/lib/dom",
            "ace/lib/lang",
            "ace/lib/useragent",
            "ace/keyboard/textinput",
            "ace/mouse/mouse_handler",
            "ace/mouse/fold_handler",
            "ace/keyboard/keybinding",
            "ace/edit_session",
            "ace/search",
            "ace/range",
            "ace/lib/event_emitter",
            "ace/commands/command_manager",
            "ace/commands/default_commands",
            "ace/config",
            "ace/token_iterator",
            "ace/clipboard",
          ],
          function (e, t, n) {
            "use strict";
            e("./lib/fixoldbrowsers");
            var i = e("./lib/oop"),
              r = e("./lib/dom"),
              o = e("./lib/lang"),
              s = e("./lib/useragent"),
              a = e("./keyboard/textinput").TextInput,
              l = e("./mouse/mouse_handler").MouseHandler,
              c = e("./mouse/fold_handler").FoldHandler,
              d = e("./keyboard/keybinding").KeyBinding,
              u = e("./edit_session").EditSession,
              h = e("./search").Search,
              g = e("./range").Range,
              p = e("./lib/event_emitter").EventEmitter,
              A = e("./commands/command_manager").CommandManager,
              f = e("./commands/default_commands").commands,
              m = e("./config"),
              v = e("./token_iterator").TokenIterator,
              b = e("./clipboard"),
              w = function (e, t, n) {
                this.$toDestroy = [];
                var i = e.getContainerElement();
                (this.container = i),
                  (this.renderer = e),
                  (this.id = "editor" + ++w.$uid),
                  (this.commands = new A(s.isMac ? "mac" : "win", f)),
                  "object" == typeof document &&
                    ((this.textInput = new a(e.getTextAreaContainer(), this)),
                    (this.renderer.textarea = this.textInput.getElement()),
                    (this.$mouseHandler = new l(this)),
                    new c(this)),
                  (this.keyBinding = new d(this)),
                  (this.$search = new h().set({
                    wrap: !0,
                  })),
                  (this.$historyTracker = this.$historyTracker.bind(this)),
                  this.commands.on("exec", this.$historyTracker),
                  this.$initOperationListeners(),
                  (this._$emitInputEvent = o.delayedCall(
                    function () {
                      this._signal("input", {}),
                        this.session &&
                          this.session.bgTokenizer &&
                          this.session.bgTokenizer.scheduleStart();
                    }.bind(this)
                  )),
                  this.on("change", function (e, t) {
                    t._$emitInputEvent.schedule(31);
                  }),
                  this.setSession(t || (n && n.session) || new u("")),
                  m.resetOptions(this),
                  n && this.setOptions(n),
                  m._signal("editor", this);
              };
            (w.$uid = 0),
              function () {
                i.implement(this, p),
                  (this.$initOperationListeners = function () {
                    this.commands.on(
                      "exec",
                      this.startOperation.bind(this),
                      !0
                    ),
                      this.commands.on(
                        "afterExec",
                        this.endOperation.bind(this),
                        !0
                      ),
                      (this.$opResetTimer = o.delayedCall(
                        this.endOperation.bind(this, !0)
                      )),
                      this.on(
                        "change",
                        function () {
                          this.curOp ||
                            (this.startOperation(),
                            (this.curOp.selectionBefore = this.$lastSel)),
                            (this.curOp.docChanged = !0);
                        }.bind(this),
                        !0
                      ),
                      this.on(
                        "changeSelection",
                        function () {
                          this.curOp ||
                            (this.startOperation(),
                            (this.curOp.selectionBefore = this.$lastSel)),
                            (this.curOp.selectionChanged = !0);
                        }.bind(this),
                        !0
                      );
                  }),
                  (this.curOp = null),
                  (this.prevOp = {}),
                  (this.startOperation = function (e) {
                    if (this.curOp) {
                      if (!e || this.curOp.command) return;
                      this.prevOp = this.curOp;
                    }
                    e || ((this.previousCommand = null), (e = {})),
                      this.$opResetTimer.schedule(),
                      (this.curOp = this.session.curOp =
                        {
                          command: e.command || {},
                          args: e.args,
                          scrollTop: this.renderer.scrollTop,
                        }),
                      (this.curOp.selectionBefore = this.selection.toJSON());
                  }),
                  (this.endOperation = function (e) {
                    if (this.curOp && this.session) {
                      if ((e && !1 === e.returnValue) || !this.session)
                        return (this.curOp = null);
                      if (
                        1 == e &&
                        this.curOp.command &&
                        "mouse" == this.curOp.command.name
                      )
                        return;
                      if ((this._signal("beforeEndOperation"), !this.curOp))
                        return;
                      var t = this.curOp.command,
                        n = t && t.scrollIntoView;
                      if (n) {
                        switch (n) {
                          case "center-animate":
                            n = "animate";
                          case "center":
                            this.renderer.scrollCursorIntoView(null, 0.5);
                            break;
                          case "animate":
                          case "cursor":
                            this.renderer.scrollCursorIntoView();
                            break;
                          case "selectionPart":
                            var i = this.selection.getRange(),
                              r = this.renderer.layerConfig;
                            (i.start.row >= r.lastRow ||
                              i.end.row <= r.firstRow) &&
                              this.renderer.scrollSelectionIntoView(
                                this.selection.anchor,
                                this.selection.lead
                              );
                        }
                        "animate" == n &&
                          this.renderer.animateScrolling(this.curOp.scrollTop);
                      }
                      var o = this.selection.toJSON();
                      (this.curOp.selectionAfter = o),
                        (this.$lastSel = this.selection.toJSON()),
                        this.session.getUndoManager().addSelection(o),
                        (this.prevOp = this.curOp),
                        (this.curOp = null);
                    }
                  }),
                  (this.$mergeableCommands = [
                    "backspace",
                    "del",
                    "insertstring",
                  ]),
                  (this.$historyTracker = function (e) {
                    if (this.$mergeUndoDeltas) {
                      var t = this.prevOp,
                        n = this.$mergeableCommands,
                        i = t.command && e.command.name == t.command.name;
                      if ("insertstring" == e.command.name) {
                        var r = e.args;
                        void 0 === this.mergeNextCommand &&
                          (this.mergeNextCommand = !0),
                          (i =
                            i &&
                            this.mergeNextCommand &&
                            (!/\s/.test(r) || /\s/.test(t.args))),
                          (this.mergeNextCommand = !0);
                      } else i = i && -1 !== n.indexOf(e.command.name);
                      "always" != this.$mergeUndoDeltas &&
                        Date.now() - this.sequenceStartTime > 2e3 &&
                        (i = !1),
                        i
                          ? (this.session.mergeUndoDeltas = !0)
                          : -1 !== n.indexOf(e.command.name) &&
                            (this.sequenceStartTime = Date.now());
                    }
                  }),
                  (this.setKeyboardHandler = function (e, t) {
                    if (e && "string" == typeof e && "ace" != e) {
                      this.$keybindingId = e;
                      var n = this;
                      m.loadModule(["keybinding", e], function (i) {
                        n.$keybindingId == e &&
                          n.keyBinding.setKeyboardHandler(i && i.handler),
                          t && t();
                      });
                    } else
                      (this.$keybindingId = null),
                        this.keyBinding.setKeyboardHandler(e),
                        t && t();
                  }),
                  (this.getKeyboardHandler = function () {
                    return this.keyBinding.getKeyboardHandler();
                  }),
                  (this.setSession = function (e) {
                    if (this.session != e) {
                      this.curOp && this.endOperation(), (this.curOp = {});
                      var t = this.session;
                      if (t) {
                        this.session.off("change", this.$onDocumentChange),
                          this.session.off("changeMode", this.$onChangeMode),
                          this.session.off(
                            "tokenizerUpdate",
                            this.$onTokenizerUpdate
                          ),
                          this.session.off(
                            "changeTabSize",
                            this.$onChangeTabSize
                          ),
                          this.session.off(
                            "changeWrapLimit",
                            this.$onChangeWrapLimit
                          ),
                          this.session.off(
                            "changeWrapMode",
                            this.$onChangeWrapMode
                          ),
                          this.session.off("changeFold", this.$onChangeFold),
                          this.session.off(
                            "changeFrontMarker",
                            this.$onChangeFrontMarker
                          ),
                          this.session.off(
                            "changeBackMarker",
                            this.$onChangeBackMarker
                          ),
                          this.session.off(
                            "changeBreakpoint",
                            this.$onChangeBreakpoint
                          ),
                          this.session.off(
                            "changeAnnotation",
                            this.$onChangeAnnotation
                          ),
                          this.session.off(
                            "changeOverwrite",
                            this.$onCursorChange
                          ),
                          this.session.off(
                            "changeScrollTop",
                            this.$onScrollTopChange
                          ),
                          this.session.off(
                            "changeScrollLeft",
                            this.$onScrollLeftChange
                          );
                        var n = this.session.getSelection();
                        n.off("changeCursor", this.$onCursorChange),
                          n.off("changeSelection", this.$onSelectionChange);
                      }
                      (this.session = e),
                        e
                          ? ((this.$onDocumentChange =
                              this.onDocumentChange.bind(this)),
                            e.on("change", this.$onDocumentChange),
                            this.renderer.setSession(e),
                            (this.$onChangeMode = this.onChangeMode.bind(this)),
                            e.on("changeMode", this.$onChangeMode),
                            (this.$onTokenizerUpdate =
                              this.onTokenizerUpdate.bind(this)),
                            e.on("tokenizerUpdate", this.$onTokenizerUpdate),
                            (this.$onChangeTabSize =
                              this.renderer.onChangeTabSize.bind(
                                this.renderer
                              )),
                            e.on("changeTabSize", this.$onChangeTabSize),
                            (this.$onChangeWrapLimit =
                              this.onChangeWrapLimit.bind(this)),
                            e.on("changeWrapLimit", this.$onChangeWrapLimit),
                            (this.$onChangeWrapMode =
                              this.onChangeWrapMode.bind(this)),
                            e.on("changeWrapMode", this.$onChangeWrapMode),
                            (this.$onChangeFold = this.onChangeFold.bind(this)),
                            e.on("changeFold", this.$onChangeFold),
                            (this.$onChangeFrontMarker =
                              this.onChangeFrontMarker.bind(this)),
                            this.session.on(
                              "changeFrontMarker",
                              this.$onChangeFrontMarker
                            ),
                            (this.$onChangeBackMarker =
                              this.onChangeBackMarker.bind(this)),
                            this.session.on(
                              "changeBackMarker",
                              this.$onChangeBackMarker
                            ),
                            (this.$onChangeBreakpoint =
                              this.onChangeBreakpoint.bind(this)),
                            this.session.on(
                              "changeBreakpoint",
                              this.$onChangeBreakpoint
                            ),
                            (this.$onChangeAnnotation =
                              this.onChangeAnnotation.bind(this)),
                            this.session.on(
                              "changeAnnotation",
                              this.$onChangeAnnotation
                            ),
                            (this.$onCursorChange =
                              this.onCursorChange.bind(this)),
                            this.session.on(
                              "changeOverwrite",
                              this.$onCursorChange
                            ),
                            (this.$onScrollTopChange =
                              this.onScrollTopChange.bind(this)),
                            this.session.on(
                              "changeScrollTop",
                              this.$onScrollTopChange
                            ),
                            (this.$onScrollLeftChange =
                              this.onScrollLeftChange.bind(this)),
                            this.session.on(
                              "changeScrollLeft",
                              this.$onScrollLeftChange
                            ),
                            (this.selection = e.getSelection()),
                            this.selection.on(
                              "changeCursor",
                              this.$onCursorChange
                            ),
                            (this.$onSelectionChange =
                              this.onSelectionChange.bind(this)),
                            this.selection.on(
                              "changeSelection",
                              this.$onSelectionChange
                            ),
                            this.onChangeMode(),
                            this.onCursorChange(),
                            this.onScrollTopChange(),
                            this.onScrollLeftChange(),
                            this.onSelectionChange(),
                            this.onChangeFrontMarker(),
                            this.onChangeBackMarker(),
                            this.onChangeBreakpoint(),
                            this.onChangeAnnotation(),
                            this.session.getUseWrapMode() &&
                              this.renderer.adjustWrapLimit(),
                            this.renderer.updateFull())
                          : ((this.selection = null),
                            this.renderer.setSession(e)),
                        this._signal("changeSession", {
                          session: e,
                          oldSession: t,
                        }),
                        (this.curOp = null),
                        t &&
                          t._signal("changeEditor", {
                            oldEditor: this,
                          }),
                        e &&
                          e._signal("changeEditor", {
                            editor: this,
                          }),
                        e && e.bgTokenizer && e.bgTokenizer.scheduleStart();
                    }
                  }),
                  (this.getSession = function () {
                    return this.session;
                  }),
                  (this.setValue = function (e, t) {
                    return (
                      this.session.doc.setValue(e),
                      t
                        ? 1 == t
                          ? this.navigateFileEnd()
                          : -1 == t && this.navigateFileStart()
                        : this.selectAll(),
                      e
                    );
                  }),
                  (this.getValue = function () {
                    return this.session.getValue();
                  }),
                  (this.getSelection = function () {
                    return this.selection;
                  }),
                  (this.resize = function (e) {
                    this.renderer.onResize(e);
                  }),
                  (this.setTheme = function (e, t) {
                    this.renderer.setTheme(e, t);
                  }),
                  (this.getTheme = function () {
                    return this.renderer.getTheme();
                  }),
                  (this.setStyle = function (e) {
                    this.renderer.setStyle(e);
                  }),
                  (this.unsetStyle = function (e) {
                    this.renderer.unsetStyle(e);
                  }),
                  (this.getFontSize = function () {
                    return (
                      this.getOption("fontSize") ||
                      r.computedStyle(this.container).fontSize
                    );
                  }),
                  (this.setFontSize = function (e) {
                    this.setOption("fontSize", e);
                  }),
                  (this.$highlightBrackets = function () {
                    if (!this.$highlightPending) {
                      var e = this;
                      (this.$highlightPending = !0),
                        setTimeout(function () {
                          e.$highlightPending = !1;
                          var t = e.session;
                          if (t && t.bgTokenizer) {
                            t.$bracketHighlight &&
                              (t.$bracketHighlight.markerIds.forEach(function (
                                e
                              ) {
                                t.removeMarker(e);
                              }),
                              (t.$bracketHighlight = null));
                            var n = t.getMatchingBracketRanges(
                              e.getCursorPosition()
                            );
                            if (
                              (!n &&
                                t.$mode.getMatching &&
                                (n = t.$mode.getMatching(e.session)),
                              n)
                            ) {
                              var i = "ace_bracket";
                              Array.isArray(n)
                                ? 1 == n.length && (i = "ace_error_bracket")
                                : (n = [n]),
                                2 == n.length &&
                                  (0 == g.comparePoints(n[0].end, n[1].start)
                                    ? (n = [g.fromPoints(n[0].start, n[1].end)])
                                    : 0 ==
                                        g.comparePoints(n[0].start, n[1].end) &&
                                      (n = [
                                        g.fromPoints(n[1].start, n[0].end),
                                      ])),
                                (t.$bracketHighlight = {
                                  ranges: n,
                                  markerIds: n.map(function (e) {
                                    return t.addMarker(e, i, "text");
                                  }),
                                });
                            }
                          }
                        }, 50);
                    }
                  }),
                  (this.$highlightTags = function () {
                    if (!this.$highlightTagPending) {
                      var e = this;
                      (this.$highlightTagPending = !0),
                        setTimeout(function () {
                          e.$highlightTagPending = !1;
                          var t = e.session;
                          if (t && t.bgTokenizer) {
                            var n = e.getCursorPosition(),
                              i = new v(e.session, n.row, n.column),
                              r = i.getCurrentToken();
                            if (!r || !/\b(?:tag-open|tag-name)/.test(r.type))
                              return (
                                t.removeMarker(t.$tagHighlight),
                                void (t.$tagHighlight = null)
                              );
                            if (
                              -1 === r.type.indexOf("tag-open") ||
                              (r = i.stepForward())
                            ) {
                              var o = r.value,
                                s = r.value,
                                a = 0,
                                l = i.stepBackward();
                              if ("<" === l.value)
                                do {
                                  (l = r),
                                    (r = i.stepForward()) &&
                                      (-1 !== r.type.indexOf("tag-name")
                                        ? o === (s = r.value) &&
                                          ("<" === l.value
                                            ? a++
                                            : "</" === l.value && a--)
                                        : o === s && "/>" === r.value && a--);
                                } while (r && a >= 0);
                              else {
                                do {
                                  if (((r = l), (l = i.stepBackward()), r))
                                    if (-1 !== r.type.indexOf("tag-name"))
                                      o === r.value &&
                                        ("<" === l.value
                                          ? a++
                                          : "</" === l.value && a--);
                                    else if ("/>" === r.value) {
                                      for (var c = 0, d = l; d; ) {
                                        if (
                                          -1 !== d.type.indexOf("tag-name") &&
                                          d.value === o
                                        ) {
                                          a--;
                                          break;
                                        }
                                        if ("<" === d.value) break;
                                        (d = i.stepBackward()), c++;
                                      }
                                      for (var u = 0; u < c; u++)
                                        i.stepForward();
                                    }
                                } while (l && a <= 0);
                                i.stepForward();
                              }
                              if (!r)
                                return (
                                  t.removeMarker(t.$tagHighlight),
                                  void (t.$tagHighlight = null)
                                );
                              var h = i.getCurrentTokenRow(),
                                p = i.getCurrentTokenColumn(),
                                A = new g(h, p, h, p + r.value.length),
                                f = t.$backMarkers[t.$tagHighlight];
                              t.$tagHighlight &&
                                null != f &&
                                0 !== A.compareRange(f.range) &&
                                (t.removeMarker(t.$tagHighlight),
                                (t.$tagHighlight = null)),
                                t.$tagHighlight ||
                                  (t.$tagHighlight = t.addMarker(
                                    A,
                                    "ace_bracket",
                                    "text"
                                  ));
                            }
                          }
                        }, 50);
                    }
                  }),
                  (this.focus = function () {
                    var e = this;
                    setTimeout(function () {
                      e.isFocused() || e.textInput.focus();
                    }),
                      this.textInput.focus();
                  }),
                  (this.isFocused = function () {
                    return this.textInput.isFocused();
                  }),
                  (this.blur = function () {
                    this.textInput.blur();
                  }),
                  (this.onFocus = function (e) {
                    this.$isFocused ||
                      ((this.$isFocused = !0),
                      this.renderer.showCursor(),
                      this.renderer.visualizeFocus(),
                      this._emit("focus", e));
                  }),
                  (this.onBlur = function (e) {
                    this.$isFocused &&
                      ((this.$isFocused = !1),
                      this.renderer.hideCursor(),
                      this.renderer.visualizeBlur(),
                      this._emit("blur", e));
                  }),
                  (this.$cursorChange = function () {
                    this.renderer.updateCursor(),
                      this.$highlightBrackets(),
                      this.$highlightTags(),
                      this.$updateHighlightActiveLine();
                  }),
                  (this.onDocumentChange = function (e) {
                    var t = this.session.$useWrapMode,
                      n = e.start.row == e.end.row ? e.end.row : 1 / 0;
                    this.renderer.updateLines(e.start.row, n, t),
                      this._signal("change", e),
                      this.$cursorChange();
                  }),
                  (this.onTokenizerUpdate = function (e) {
                    var t = e.data;
                    this.renderer.updateLines(t.first, t.last);
                  }),
                  (this.onScrollTopChange = function () {
                    this.renderer.scrollToY(this.session.getScrollTop());
                  }),
                  (this.onScrollLeftChange = function () {
                    this.renderer.scrollToX(this.session.getScrollLeft());
                  }),
                  (this.onCursorChange = function () {
                    this.$cursorChange(), this._signal("changeSelection");
                  }),
                  (this.$updateHighlightActiveLine = function () {
                    var e,
                      t = this.getSession();
                    if (
                      (this.$highlightActiveLine &&
                        (("line" == this.$selectionStyle &&
                          this.selection.isMultiLine()) ||
                          (e = this.getCursorPosition()),
                        this.renderer.theme &&
                          this.renderer.theme.$selectionColorConflict &&
                          !this.selection.isEmpty() &&
                          (e = !1),
                        !this.renderer.$maxLines ||
                          1 !== this.session.getLength() ||
                          this.renderer.$minLines > 1 ||
                          (e = !1)),
                      t.$highlightLineMarker && !e)
                    )
                      t.removeMarker(t.$highlightLineMarker.id),
                        (t.$highlightLineMarker = null);
                    else if (!t.$highlightLineMarker && e) {
                      var n = new g(e.row, e.column, e.row, 1 / 0);
                      (n.id = t.addMarker(n, "ace_active-line", "screenLine")),
                        (t.$highlightLineMarker = n);
                    } else
                      e &&
                        ((t.$highlightLineMarker.start.row = e.row),
                        (t.$highlightLineMarker.end.row = e.row),
                        (t.$highlightLineMarker.start.column = e.column),
                        t._signal("changeBackMarker"));
                  }),
                  (this.onSelectionChange = function (e) {
                    var t = this.session;
                    if (
                      (t.$selectionMarker && t.removeMarker(t.$selectionMarker),
                      (t.$selectionMarker = null),
                      this.selection.isEmpty())
                    )
                      this.$updateHighlightActiveLine();
                    else {
                      var n = this.selection.getRange(),
                        i = this.getSelectionStyle();
                      t.$selectionMarker = t.addMarker(n, "ace_selection", i);
                    }
                    var r =
                      this.$highlightSelectedWord &&
                      this.$getSelectionHighLightRegexp();
                    this.session.highlight(r), this._signal("changeSelection");
                  }),
                  (this.$getSelectionHighLightRegexp = function () {
                    var e = this.session,
                      t = this.getSelectionRange();
                    if (!t.isEmpty() && !t.isMultiLine()) {
                      var n = t.start.column,
                        i = t.end.column,
                        r = e.getLine(t.start.row),
                        o = r.substring(n, i);
                      if (!(o.length > 5e3) && /[\w\d]/.test(o)) {
                        var s = this.$search.$assembleRegExp({
                            wholeWord: !0,
                            caseSensitive: !0,
                            needle: o,
                          }),
                          a = r.substring(n - 1, i + 1);
                        if (s.test(a)) return s;
                      }
                    }
                  }),
                  (this.onChangeFrontMarker = function () {
                    this.renderer.updateFrontMarkers();
                  }),
                  (this.onChangeBackMarker = function () {
                    this.renderer.updateBackMarkers();
                  }),
                  (this.onChangeBreakpoint = function () {
                    this.renderer.updateBreakpoints();
                  }),
                  (this.onChangeAnnotation = function () {
                    this.renderer.setAnnotations(this.session.getAnnotations());
                  }),
                  (this.onChangeMode = function (e) {
                    this.renderer.updateText(), this._emit("changeMode", e);
                  }),
                  (this.onChangeWrapLimit = function () {
                    this.renderer.updateFull();
                  }),
                  (this.onChangeWrapMode = function () {
                    this.renderer.onResize(!0);
                  }),
                  (this.onChangeFold = function () {
                    this.$updateHighlightActiveLine(),
                      this.renderer.updateFull();
                  }),
                  (this.getSelectedText = function () {
                    return this.session.getTextRange(this.getSelectionRange());
                  }),
                  (this.getCopyText = function () {
                    var e = this.getSelectedText(),
                      t = this.session.doc.getNewLineCharacter(),
                      n = !1;
                    if (!e && this.$copyWithEmptySelection) {
                      n = !0;
                      for (
                        var i = this.selection.getAllRanges(), r = 0;
                        r < i.length;
                        r++
                      ) {
                        var o = i[r];
                        (r && i[r - 1].start.row == o.start.row) ||
                          (e += this.session.getLine(o.start.row) + t);
                      }
                    }
                    var s = {
                      text: e,
                    };
                    return (
                      this._signal("copy", s),
                      (b.lineMode = n ? s.text : ""),
                      s.text
                    );
                  }),
                  (this.onCopy = function () {
                    this.commands.exec("copy", this);
                  }),
                  (this.onCut = function () {
                    this.commands.exec("cut", this);
                  }),
                  (this.onPaste = function (e, t) {
                    var n = {
                      text: e,
                      event: t,
                    };
                    this.commands.exec("paste", this, n);
                  }),
                  (this.$handlePaste = function (e) {
                    "string" == typeof e &&
                      (e = {
                        text: e,
                      }),
                      this._signal("paste", e);
                    var t = e.text,
                      n = t == b.lineMode,
                      i = this.session;
                    if (!this.inMultiSelectMode || this.inVirtualSelectionMode)
                      n
                        ? i.insert(
                            {
                              row: this.selection.lead.row,
                              column: 0,
                            },
                            t
                          )
                        : this.insert(t);
                    else if (n)
                      this.selection.rangeList.ranges.forEach(function (e) {
                        i.insert(
                          {
                            row: e.start.row,
                            column: 0,
                          },
                          t
                        );
                      });
                    else {
                      var r = t.split(/\r\n|\r|\n/),
                        o = this.selection.rangeList.ranges,
                        s = !(2 != r.length || (r[0] && r[1]));
                      if (r.length != o.length || s)
                        return this.commands.exec("insertstring", this, t);
                      for (var a = o.length; a--; ) {
                        var l = o[a];
                        l.isEmpty() || i.remove(l), i.insert(l.start, r[a]);
                      }
                    }
                  }),
                  (this.execCommand = function (e, t) {
                    return this.commands.exec(e, this, t);
                  }),
                  (this.insert = function (e, t) {
                    var n = this.session,
                      i = n.getMode(),
                      r = this.getCursorPosition();
                    if (this.getBehavioursEnabled() && !t) {
                      var o = i.transformAction(
                        n.getState(r.row),
                        "insertion",
                        this,
                        n,
                        e
                      );
                      o &&
                        (e !== o.text &&
                          (this.inVirtualSelectionMode ||
                            ((this.session.mergeUndoDeltas = !1),
                            (this.mergeNextCommand = !1))),
                        (e = o.text));
                    }
                    if (
                      ("\t" == e && (e = this.session.getTabString()),
                      this.selection.isEmpty())
                    ) {
                      if (
                        this.session.getOverwrite() &&
                        -1 == e.indexOf("\n")
                      ) {
                        ((s = new g.fromPoints(r, r)).end.column += e.length),
                          this.session.remove(s);
                      }
                    } else {
                      var s = this.getSelectionRange();
                      (r = this.session.remove(s)), this.clearSelection();
                    }
                    if ("\n" == e || "\r\n" == e) {
                      var a = n.getLine(r.row);
                      if (r.column > a.search(/\S|$/)) {
                        var l = a.substr(r.column).search(/\S|$/);
                        n.doc.removeInLine(r.row, r.column, r.column + l);
                      }
                    }
                    this.clearSelection();
                    var c = r.column,
                      d = n.getState(r.row),
                      u = ((a = n.getLine(r.row)), i.checkOutdent(d, a, e));
                    if (
                      (n.insert(r, e),
                      o &&
                        o.selection &&
                        (2 == o.selection.length
                          ? this.selection.setSelectionRange(
                              new g(
                                r.row,
                                c + o.selection[0],
                                r.row,
                                c + o.selection[1]
                              )
                            )
                          : this.selection.setSelectionRange(
                              new g(
                                r.row + o.selection[0],
                                o.selection[1],
                                r.row + o.selection[2],
                                o.selection[3]
                              )
                            )),
                      this.$enableAutoIndent)
                    ) {
                      if (n.getDocument().isNewLine(e)) {
                        var h = i.getNextLineIndent(
                          d,
                          a.slice(0, r.column),
                          n.getTabString()
                        );
                        n.insert(
                          {
                            row: r.row + 1,
                            column: 0,
                          },
                          h
                        );
                      }
                      u && i.autoOutdent(d, n, r.row);
                    }
                  }),
                  (this.autoIndent = function () {
                    var e,
                      t,
                      n = this.session,
                      i = n.getMode();
                    if (this.selection.isEmpty())
                      (e = 0), (t = n.doc.getLength() - 1);
                    else {
                      var r = this.getSelectionRange();
                      (e = r.start.row), (t = r.end.row);
                    }
                    for (
                      var o,
                        s,
                        a,
                        l = "",
                        c = "",
                        d = "",
                        u = n.getTabString(),
                        h = e;
                      h <= t;
                      h++
                    )
                      h > 0 &&
                        ((l = n.getState(h - 1)),
                        (c = n.getLine(h - 1)),
                        (d = i.getNextLineIndent(l, c, u))),
                        (o = n.getLine(h)),
                        d !== (s = i.$getIndent(o)) &&
                          (s.length > 0 &&
                            ((a = new g(h, 0, h, s.length)), n.remove(a)),
                          d.length > 0 &&
                            n.insert(
                              {
                                row: h,
                                column: 0,
                              },
                              d
                            )),
                        i.autoOutdent(l, n, h);
                  }),
                  (this.onTextInput = function (e, t) {
                    if (!t) return this.keyBinding.onTextInput(e);
                    this.startOperation({
                      command: {
                        name: "insertstring",
                      },
                    });
                    var n = this.applyComposition.bind(this, e, t);
                    this.selection.rangeCount ? this.forEachSelection(n) : n(),
                      this.endOperation();
                  }),
                  (this.applyComposition = function (e, t) {
                    var n;
                    (t.extendLeft || t.extendRight) &&
                      (((n = this.selection.getRange()).start.column -=
                        t.extendLeft),
                      (n.end.column += t.extendRight),
                      n.start.column < 0 &&
                        (n.start.row--,
                        (n.start.column +=
                          this.session.getLine(n.start.row).length + 1)),
                      this.selection.setRange(n),
                      e || n.isEmpty() || this.remove());
                    ((!e && this.selection.isEmpty()) || this.insert(e, !0),
                    t.restoreStart || t.restoreEnd) &&
                      (((n = this.selection.getRange()).start.column -=
                        t.restoreStart),
                      (n.end.column -= t.restoreEnd),
                      this.selection.setRange(n));
                  }),
                  (this.onCommandKey = function (e, t, n) {
                    return this.keyBinding.onCommandKey(e, t, n);
                  }),
                  (this.setOverwrite = function (e) {
                    this.session.setOverwrite(e);
                  }),
                  (this.getOverwrite = function () {
                    return this.session.getOverwrite();
                  }),
                  (this.toggleOverwrite = function () {
                    this.session.toggleOverwrite();
                  }),
                  (this.setScrollSpeed = function (e) {
                    this.setOption("scrollSpeed", e);
                  }),
                  (this.getScrollSpeed = function () {
                    return this.getOption("scrollSpeed");
                  }),
                  (this.setDragDelay = function (e) {
                    this.setOption("dragDelay", e);
                  }),
                  (this.getDragDelay = function () {
                    return this.getOption("dragDelay");
                  }),
                  (this.setSelectionStyle = function (e) {
                    this.setOption("selectionStyle", e);
                  }),
                  (this.getSelectionStyle = function () {
                    return this.getOption("selectionStyle");
                  }),
                  (this.setHighlightActiveLine = function (e) {
                    this.setOption("highlightActiveLine", e);
                  }),
                  (this.getHighlightActiveLine = function () {
                    return this.getOption("highlightActiveLine");
                  }),
                  (this.setHighlightGutterLine = function (e) {
                    this.setOption("highlightGutterLine", e);
                  }),
                  (this.getHighlightGutterLine = function () {
                    return this.getOption("highlightGutterLine");
                  }),
                  (this.setHighlightSelectedWord = function (e) {
                    this.setOption("highlightSelectedWord", e);
                  }),
                  (this.getHighlightSelectedWord = function () {
                    return this.$highlightSelectedWord;
                  }),
                  (this.setAnimatedScroll = function (e) {
                    this.renderer.setAnimatedScroll(e);
                  }),
                  (this.getAnimatedScroll = function () {
                    return this.renderer.getAnimatedScroll();
                  }),
                  (this.setShowInvisibles = function (e) {
                    this.renderer.setShowInvisibles(e);
                  }),
                  (this.getShowInvisibles = function () {
                    return this.renderer.getShowInvisibles();
                  }),
                  (this.setDisplayIndentGuides = function (e) {
                    this.renderer.setDisplayIndentGuides(e);
                  }),
                  (this.getDisplayIndentGuides = function () {
                    return this.renderer.getDisplayIndentGuides();
                  }),
                  (this.setShowPrintMargin = function (e) {
                    this.renderer.setShowPrintMargin(e);
                  }),
                  (this.getShowPrintMargin = function () {
                    return this.renderer.getShowPrintMargin();
                  }),
                  (this.setPrintMarginColumn = function (e) {
                    this.renderer.setPrintMarginColumn(e);
                  }),
                  (this.getPrintMarginColumn = function () {
                    return this.renderer.getPrintMarginColumn();
                  }),
                  (this.setReadOnly = function (e) {
                    this.setOption("readOnly", e);
                  }),
                  (this.getReadOnly = function () {
                    return this.getOption("readOnly");
                  }),
                  (this.setBehavioursEnabled = function (e) {
                    this.setOption("behavioursEnabled", e);
                  }),
                  (this.getBehavioursEnabled = function () {
                    return this.getOption("behavioursEnabled");
                  }),
                  (this.setWrapBehavioursEnabled = function (e) {
                    this.setOption("wrapBehavioursEnabled", e);
                  }),
                  (this.getWrapBehavioursEnabled = function () {
                    return this.getOption("wrapBehavioursEnabled");
                  }),
                  (this.setShowFoldWidgets = function (e) {
                    this.setOption("showFoldWidgets", e);
                  }),
                  (this.getShowFoldWidgets = function () {
                    return this.getOption("showFoldWidgets");
                  }),
                  (this.setFadeFoldWidgets = function (e) {
                    this.setOption("fadeFoldWidgets", e);
                  }),
                  (this.getFadeFoldWidgets = function () {
                    return this.getOption("fadeFoldWidgets");
                  }),
                  (this.remove = function (e) {
                    this.selection.isEmpty() &&
                      ("left" == e
                        ? this.selection.selectLeft()
                        : this.selection.selectRight());
                    var t = this.getSelectionRange();
                    if (this.getBehavioursEnabled()) {
                      var n = this.session,
                        i = n.getState(t.start.row),
                        r = n
                          .getMode()
                          .transformAction(i, "deletion", this, n, t);
                      if (0 === t.end.column) {
                        var o = n.getTextRange(t);
                        if ("\n" == o[o.length - 1]) {
                          var s = n.getLine(t.end.row);
                          /^\s+$/.test(s) && (t.end.column = s.length);
                        }
                      }
                      r && (t = r);
                    }
                    this.session.remove(t), this.clearSelection();
                  }),
                  (this.removeWordRight = function () {
                    this.selection.isEmpty() &&
                      this.selection.selectWordRight(),
                      this.session.remove(this.getSelectionRange()),
                      this.clearSelection();
                  }),
                  (this.removeWordLeft = function () {
                    this.selection.isEmpty() && this.selection.selectWordLeft(),
                      this.session.remove(this.getSelectionRange()),
                      this.clearSelection();
                  }),
                  (this.removeToLineStart = function () {
                    this.selection.isEmpty() &&
                      this.selection.selectLineStart(),
                      this.selection.isEmpty() && this.selection.selectLeft(),
                      this.session.remove(this.getSelectionRange()),
                      this.clearSelection();
                  }),
                  (this.removeToLineEnd = function () {
                    this.selection.isEmpty() && this.selection.selectLineEnd();
                    var e = this.getSelectionRange();
                    e.start.column == e.end.column &&
                      e.start.row == e.end.row &&
                      ((e.end.column = 0), e.end.row++),
                      this.session.remove(e),
                      this.clearSelection();
                  }),
                  (this.splitLine = function () {
                    this.selection.isEmpty() ||
                      (this.session.remove(this.getSelectionRange()),
                      this.clearSelection());
                    var e = this.getCursorPosition();
                    this.insert("\n"), this.moveCursorToPosition(e);
                  }),
                  (this.transposeLetters = function () {
                    if (this.selection.isEmpty()) {
                      var e = this.getCursorPosition(),
                        t = e.column;
                      if (0 !== t) {
                        var n,
                          i,
                          r = this.session.getLine(e.row);
                        t < r.length
                          ? ((n = r.charAt(t) + r.charAt(t - 1)),
                            (i = new g(e.row, t - 1, e.row, t + 1)))
                          : ((n = r.charAt(t - 1) + r.charAt(t - 2)),
                            (i = new g(e.row, t - 2, e.row, t))),
                          this.session.replace(i, n),
                          this.session.selection.moveToPosition(i.end);
                      }
                    }
                  }),
                  (this.toLowerCase = function () {
                    var e = this.getSelectionRange();
                    this.selection.isEmpty() && this.selection.selectWord();
                    var t = this.getSelectionRange(),
                      n = this.session.getTextRange(t);
                    this.session.replace(t, n.toLowerCase()),
                      this.selection.setSelectionRange(e);
                  }),
                  (this.toUpperCase = function () {
                    var e = this.getSelectionRange();
                    this.selection.isEmpty() && this.selection.selectWord();
                    var t = this.getSelectionRange(),
                      n = this.session.getTextRange(t);
                    this.session.replace(t, n.toUpperCase()),
                      this.selection.setSelectionRange(e);
                  }),
                  (this.indent = function () {
                    var e = this.session,
                      t = this.getSelectionRange();
                    if (!(t.start.row < t.end.row)) {
                      if (t.start.column < t.end.column) {
                        var n = e.getTextRange(t);
                        if (!/^\s+$/.test(n)) {
                          d = this.$getSelectedRows();
                          return void e.indentRows(d.first, d.last, "\t");
                        }
                      }
                      var i = e.getLine(t.start.row),
                        r = t.start,
                        s = e.getTabSize(),
                        a = e.documentToScreenColumn(r.row, r.column);
                      if (this.session.getUseSoftTabs())
                        var l = s - (a % s),
                          c = o.stringRepeat(" ", l);
                      else {
                        for (l = a % s; " " == i[t.start.column - 1] && l; )
                          t.start.column--, l--;
                        this.selection.setSelectionRange(t), (c = "\t");
                      }
                      return this.insert(c);
                    }
                    var d = this.$getSelectedRows();
                    e.indentRows(d.first, d.last, "\t");
                  }),
                  (this.blockIndent = function () {
                    var e = this.$getSelectedRows();
                    this.session.indentRows(e.first, e.last, "\t");
                  }),
                  (this.blockOutdent = function () {
                    var e = this.session.getSelection();
                    this.session.outdentRows(e.getRange());
                  }),
                  (this.sortLines = function () {
                    for (
                      var e = this.$getSelectedRows(),
                        t = this.session,
                        n = [],
                        i = e.first;
                      i <= e.last;
                      i++
                    )
                      n.push(t.getLine(i));
                    n.sort(function (e, t) {
                      return e.toLowerCase() < t.toLowerCase()
                        ? -1
                        : e.toLowerCase() > t.toLowerCase()
                        ? 1
                        : 0;
                    });
                    var r = new g(0, 0, 0, 0);
                    for (i = e.first; i <= e.last; i++) {
                      var o = t.getLine(i);
                      (r.start.row = i),
                        (r.end.row = i),
                        (r.end.column = o.length),
                        t.replace(r, n[i - e.first]);
                    }
                  }),
                  (this.toggleCommentLines = function () {
                    var e = this.session.getState(this.getCursorPosition().row),
                      t = this.$getSelectedRows();
                    this.session
                      .getMode()
                      .toggleCommentLines(e, this.session, t.first, t.last);
                  }),
                  (this.toggleBlockComment = function () {
                    var e = this.getCursorPosition(),
                      t = this.session.getState(e.row),
                      n = this.getSelectionRange();
                    this.session
                      .getMode()
                      .toggleBlockComment(t, this.session, n, e);
                  }),
                  (this.getNumberAt = function (e, t) {
                    var n = /[\-]?[0-9]+(?:\.[0-9]+)?/g;
                    n.lastIndex = 0;
                    for (var i = this.session.getLine(e); n.lastIndex < t; ) {
                      var r = n.exec(i);
                      if (r.index <= t && r.index + r[0].length >= t)
                        return {
                          value: r[0],
                          start: r.index,
                          end: r.index + r[0].length,
                        };
                    }
                    return null;
                  }),
                  (this.modifyNumber = function (e) {
                    var t = this.selection.getCursor().row,
                      n = this.selection.getCursor().column,
                      i = new g(t, n - 1, t, n),
                      r = this.session.getTextRange(i);
                    if (!isNaN(parseFloat(r)) && isFinite(r)) {
                      var o = this.getNumberAt(t, n);
                      if (o) {
                        var s =
                            o.value.indexOf(".") >= 0
                              ? o.start + o.value.indexOf(".") + 1
                              : o.end,
                          a = o.start + o.value.length - s,
                          l = parseFloat(o.value);
                        (l *= Math.pow(10, a)),
                          s !== o.end && n < s
                            ? (e *= Math.pow(10, o.end - n - 1))
                            : (e *= Math.pow(10, o.end - n)),
                          (l += e);
                        var c = (l /= Math.pow(10, a)).toFixed(a),
                          d = new g(t, o.start, t, o.end);
                        this.session.replace(d, c),
                          this.moveCursorTo(
                            t,
                            Math.max(o.start + 1, n + c.length - o.value.length)
                          );
                      }
                    } else this.toggleWord();
                  }),
                  (this.$toggleWordPairs = [
                    ["first", "last"],
                    ["true", "false"],
                    ["yes", "no"],
                    ["width", "height"],
                    ["top", "bottom"],
                    ["right", "left"],
                    ["on", "off"],
                    ["x", "y"],
                    ["get", "set"],
                    ["max", "min"],
                    ["horizontal", "vertical"],
                    ["show", "hide"],
                    ["add", "remove"],
                    ["up", "down"],
                    ["before", "after"],
                    ["even", "odd"],
                    ["in", "out"],
                    ["inside", "outside"],
                    ["next", "previous"],
                    ["increase", "decrease"],
                    ["attach", "detach"],
                    ["&&", "||"],
                    ["==", "!="],
                  ]),
                  (this.toggleWord = function () {
                    var e = this.selection.getCursor().row,
                      t = this.selection.getCursor().column;
                    this.selection.selectWord();
                    var n = this.getSelectedText(),
                      i = this.selection.getWordRange().start.column,
                      r = n
                        .replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, "$1 ")
                        .split(/\s/),
                      s = t - i - 1;
                    s < 0 && (s = 0);
                    var a = 0,
                      l = 0,
                      c = this;
                    n.match(/[A-Za-z0-9_]+/) &&
                      r.forEach(function (t, r) {
                        (l = a + t.length),
                          s >= a &&
                            s <= l &&
                            ((n = t),
                            c.selection.clearSelection(),
                            c.moveCursorTo(e, a + i),
                            c.selection.selectTo(e, l + i)),
                          (a = l);
                      });
                    for (
                      var d, u = this.$toggleWordPairs, h = 0;
                      h < u.length;
                      h++
                    )
                      for (var g = u[h], p = 0; p <= 1; p++) {
                        var A = +!p,
                          f = n.match(
                            new RegExp(
                              "^\\s?_?(" + o.escapeRegExp(g[p]) + ")\\s?$",
                              "i"
                            )
                          );
                        if (f)
                          n.match(
                            new RegExp(
                              "([_]|^|\\s)(" +
                                o.escapeRegExp(f[1]) +
                                ")($|\\s)",
                              "g"
                            )
                          ) &&
                            ((d = n.replace(
                              new RegExp(o.escapeRegExp(g[p]), "i"),
                              function (e) {
                                var t = g[A];
                                return (
                                  e.toUpperCase() == e
                                    ? (t = t.toUpperCase())
                                    : e.charAt(0).toUpperCase() ==
                                        e.charAt(0) &&
                                      (t =
                                        t.substr(0, 0) +
                                        g[A].charAt(0).toUpperCase() +
                                        t.substr(1)),
                                  t
                                );
                              }
                            )),
                            this.insert(d),
                            (d = ""));
                      }
                  }),
                  (this.removeLines = function () {
                    var e = this.$getSelectedRows();
                    this.session.removeFullLines(e.first, e.last),
                      this.clearSelection();
                  }),
                  (this.duplicateSelection = function () {
                    var e = this.selection,
                      t = this.session,
                      n = e.getRange(),
                      i = e.isBackwards();
                    if (n.isEmpty()) {
                      var r = n.start.row;
                      t.duplicateLines(r, r);
                    } else {
                      var o = i ? n.start : n.end,
                        s = t.insert(o, t.getTextRange(n), !1);
                      (n.start = o), (n.end = s), e.setSelectionRange(n, i);
                    }
                  }),
                  (this.moveLinesDown = function () {
                    this.$moveLines(1, !1);
                  }),
                  (this.moveLinesUp = function () {
                    this.$moveLines(-1, !1);
                  }),
                  (this.moveText = function (e, t, n) {
                    return this.session.moveText(e, t, n);
                  }),
                  (this.copyLinesUp = function () {
                    this.$moveLines(-1, !0);
                  }),
                  (this.copyLinesDown = function () {
                    this.$moveLines(1, !0);
                  }),
                  (this.$moveLines = function (e, t) {
                    var n,
                      i,
                      r = this.selection;
                    if (!r.inMultiSelectMode || this.inVirtualSelectionMode) {
                      var o = r.toOrientedRange();
                      (n = this.$getSelectedRows(o)),
                        (i = this.session.$moveLines(
                          n.first,
                          n.last,
                          t ? 0 : e
                        )),
                        t && -1 == e && (i = 0),
                        o.moveBy(i, 0),
                        r.fromOrientedRange(o);
                    } else {
                      var s = r.rangeList.ranges;
                      r.rangeList.detach(this.session),
                        (this.inVirtualSelectionMode = !0);
                      for (var a = 0, l = 0, c = s.length, d = 0; d < c; d++) {
                        var u = d;
                        s[d].moveBy(a, 0);
                        for (
                          var h = (n = this.$getSelectedRows(s[d])).first,
                            g = n.last;
                          ++d < c;

                        ) {
                          l && s[d].moveBy(l, 0);
                          var p = this.$getSelectedRows(s[d]);
                          if (t && p.first != g) break;
                          if (!t && p.first > g + 1) break;
                          g = p.last;
                        }
                        for (
                          d--,
                            a = this.session.$moveLines(h, g, t ? 0 : e),
                            t && -1 == e && (u = d + 1);
                          u <= d;

                        )
                          s[u].moveBy(a, 0), u++;
                        t || (a = 0), (l += a);
                      }
                      r.fromOrientedRange(r.ranges[0]),
                        r.rangeList.attach(this.session),
                        (this.inVirtualSelectionMode = !1);
                    }
                  }),
                  (this.$getSelectedRows = function (e) {
                    return (
                      (e = (e || this.getSelectionRange()).collapseRows()),
                      {
                        first: this.session.getRowFoldStart(e.start.row),
                        last: this.session.getRowFoldEnd(e.end.row),
                      }
                    );
                  }),
                  (this.onCompositionStart = function (e) {
                    this.renderer.showComposition(e);
                  }),
                  (this.onCompositionUpdate = function (e) {
                    this.renderer.setCompositionText(e);
                  }),
                  (this.onCompositionEnd = function () {
                    this.renderer.hideComposition();
                  }),
                  (this.getFirstVisibleRow = function () {
                    return this.renderer.getFirstVisibleRow();
                  }),
                  (this.getLastVisibleRow = function () {
                    return this.renderer.getLastVisibleRow();
                  }),
                  (this.isRowVisible = function (e) {
                    return (
                      e >= this.getFirstVisibleRow() &&
                      e <= this.getLastVisibleRow()
                    );
                  }),
                  (this.isRowFullyVisible = function (e) {
                    return (
                      e >= this.renderer.getFirstFullyVisibleRow() &&
                      e <= this.renderer.getLastFullyVisibleRow()
                    );
                  }),
                  (this.$getVisibleRowCount = function () {
                    return (
                      this.renderer.getScrollBottomRow() -
                      this.renderer.getScrollTopRow() +
                      1
                    );
                  }),
                  (this.$moveByPage = function (e, t) {
                    var n = this.renderer,
                      i = this.renderer.layerConfig,
                      r = e * Math.floor(i.height / i.lineHeight);
                    !0 === t
                      ? this.selection.$moveSelection(function () {
                          this.moveCursorBy(r, 0);
                        })
                      : !1 === t &&
                        (this.selection.moveCursorBy(r, 0),
                        this.selection.clearSelection());
                    var o = n.scrollTop;
                    n.scrollBy(0, r * i.lineHeight),
                      null != t && n.scrollCursorIntoView(null, 0.5),
                      n.animateScrolling(o);
                  }),
                  (this.selectPageDown = function () {
                    this.$moveByPage(1, !0);
                  }),
                  (this.selectPageUp = function () {
                    this.$moveByPage(-1, !0);
                  }),
                  (this.gotoPageDown = function () {
                    this.$moveByPage(1, !1);
                  }),
                  (this.gotoPageUp = function () {
                    this.$moveByPage(-1, !1);
                  }),
                  (this.scrollPageDown = function () {
                    this.$moveByPage(1);
                  }),
                  (this.scrollPageUp = function () {
                    this.$moveByPage(-1);
                  }),
                  (this.scrollToRow = function (e) {
                    this.renderer.scrollToRow(e);
                  }),
                  (this.scrollToLine = function (e, t, n, i) {
                    this.renderer.scrollToLine(e, t, n, i);
                  }),
                  (this.centerSelection = function () {
                    var e = this.getSelectionRange(),
                      t = {
                        row: Math.floor(
                          e.start.row + (e.end.row - e.start.row) / 2
                        ),
                        column: Math.floor(
                          e.start.column + (e.end.column - e.start.column) / 2
                        ),
                      };
                    this.renderer.alignCursor(t, 0.5);
                  }),
                  (this.getCursorPosition = function () {
                    return this.selection.getCursor();
                  }),
                  (this.getCursorPositionScreen = function () {
                    return this.session.documentToScreenPosition(
                      this.getCursorPosition()
                    );
                  }),
                  (this.getSelectionRange = function () {
                    return this.selection.getRange();
                  }),
                  (this.selectAll = function () {
                    this.selection.selectAll();
                  }),
                  (this.clearSelection = function () {
                    this.selection.clearSelection();
                  }),
                  (this.moveCursorTo = function (e, t) {
                    this.selection.moveCursorTo(e, t);
                  }),
                  (this.moveCursorToPosition = function (e) {
                    this.selection.moveCursorToPosition(e);
                  }),
                  (this.jumpToMatching = function (e, t) {
                    var n = this.getCursorPosition(),
                      i = new v(this.session, n.row, n.column),
                      r = i.getCurrentToken(),
                      o = r || i.stepForward();
                    if (o) {
                      var s,
                        a,
                        l = !1,
                        c = {},
                        d = n.column - o.start,
                        u = {
                          ")": "(",
                          "(": "(",
                          "]": "[",
                          "[": "[",
                          "{": "{",
                          "}": "{",
                        };
                      do {
                        if (o.value.match(/[{}()\[\]]/g)) {
                          for (; d < o.value.length && !l; d++)
                            if (u[o.value[d]])
                              switch (
                                ((a =
                                  u[o.value[d]] +
                                  "." +
                                  o.type.replace("rparen", "lparen")),
                                isNaN(c[a]) && (c[a] = 0),
                                o.value[d])
                              ) {
                                case "(":
                                case "[":
                                case "{":
                                  c[a]++;
                                  break;
                                case ")":
                                case "]":
                                case "}":
                                  c[a]--,
                                    -1 === c[a] && ((s = "bracket"), (l = !0));
                              }
                        } else
                          -1 !== o.type.indexOf("tag-name") &&
                            (isNaN(c[o.value]) && (c[o.value] = 0),
                            "<" === r.value
                              ? c[o.value]++
                              : "</" === r.value && c[o.value]--,
                            -1 === c[o.value] && ((s = "tag"), (l = !0)));
                        l || ((r = o), (o = i.stepForward()), (d = 0));
                      } while (o && !l);
                      if (s) {
                        var h, p;
                        if ("bracket" === s)
                          (h = this.session.getBracketRange(n)) ||
                            ((p = (h = new g(
                              i.getCurrentTokenRow(),
                              i.getCurrentTokenColumn() + d - 1,
                              i.getCurrentTokenRow(),
                              i.getCurrentTokenColumn() + d - 1
                            )).start),
                            (t ||
                              (p.row === n.row &&
                                Math.abs(p.column - n.column) < 2)) &&
                              (h = this.session.getBracketRange(p)));
                        else if ("tag" === s) {
                          if (!o || -1 === o.type.indexOf("tag-name")) return;
                          var A = o.value;
                          if (
                            0 ===
                            (h = new g(
                              i.getCurrentTokenRow(),
                              i.getCurrentTokenColumn() - 2,
                              i.getCurrentTokenRow(),
                              i.getCurrentTokenColumn() - 2
                            )).compare(n.row, n.column)
                          ) {
                            l = !1;
                            do {
                              (o = r),
                                (r = i.stepBackward()) &&
                                  (-1 !== r.type.indexOf("tag-close") &&
                                    h.setEnd(
                                      i.getCurrentTokenRow(),
                                      i.getCurrentTokenColumn() + 1
                                    ),
                                  o.value === A &&
                                    -1 !== o.type.indexOf("tag-name") &&
                                    ("<" === r.value
                                      ? c[A]++
                                      : "</" === r.value && c[A]--,
                                    0 === c[A] && (l = !0)));
                            } while (r && !l);
                          }
                          o &&
                            o.type.indexOf("tag-name") &&
                            (p = h.start).row == n.row &&
                            Math.abs(p.column - n.column) < 2 &&
                            (p = h.end);
                        }
                        (p = (h && h.cursor) || p) &&
                          (e
                            ? h && t
                              ? this.selection.setRange(h)
                              : h && h.isEqual(this.getSelectionRange())
                              ? this.clearSelection()
                              : this.selection.selectTo(p.row, p.column)
                            : this.selection.moveTo(p.row, p.column));
                      }
                    }
                  }),
                  (this.gotoLine = function (e, t, n) {
                    this.selection.clearSelection(),
                      this.session.unfold({
                        row: e - 1,
                        column: t || 0,
                      }),
                      this.exitMultiSelectMode && this.exitMultiSelectMode(),
                      this.moveCursorTo(e - 1, t || 0),
                      this.isRowFullyVisible(e - 1) ||
                        this.scrollToLine(e - 1, !0, n);
                  }),
                  (this.navigateTo = function (e, t) {
                    this.selection.moveTo(e, t);
                  }),
                  (this.navigateUp = function (e) {
                    if (
                      this.selection.isMultiLine() &&
                      !this.selection.isBackwards()
                    ) {
                      var t = this.selection.anchor.getPosition();
                      return this.moveCursorToPosition(t);
                    }
                    this.selection.clearSelection(),
                      this.selection.moveCursorBy(-e || -1, 0);
                  }),
                  (this.navigateDown = function (e) {
                    if (
                      this.selection.isMultiLine() &&
                      this.selection.isBackwards()
                    ) {
                      var t = this.selection.anchor.getPosition();
                      return this.moveCursorToPosition(t);
                    }
                    this.selection.clearSelection(),
                      this.selection.moveCursorBy(e || 1, 0);
                  }),
                  (this.navigateLeft = function (e) {
                    if (this.selection.isEmpty())
                      for (e = e || 1; e--; ) this.selection.moveCursorLeft();
                    else {
                      var t = this.getSelectionRange().start;
                      this.moveCursorToPosition(t);
                    }
                    this.clearSelection();
                  }),
                  (this.navigateRight = function (e) {
                    if (this.selection.isEmpty())
                      for (e = e || 1; e--; ) this.selection.moveCursorRight();
                    else {
                      var t = this.getSelectionRange().end;
                      this.moveCursorToPosition(t);
                    }
                    this.clearSelection();
                  }),
                  (this.navigateLineStart = function () {
                    this.selection.moveCursorLineStart(), this.clearSelection();
                  }),
                  (this.navigateLineEnd = function () {
                    this.selection.moveCursorLineEnd(), this.clearSelection();
                  }),
                  (this.navigateFileEnd = function () {
                    this.selection.moveCursorFileEnd(), this.clearSelection();
                  }),
                  (this.navigateFileStart = function () {
                    this.selection.moveCursorFileStart(), this.clearSelection();
                  }),
                  (this.navigateWordRight = function () {
                    this.selection.moveCursorWordRight(), this.clearSelection();
                  }),
                  (this.navigateWordLeft = function () {
                    this.selection.moveCursorWordLeft(), this.clearSelection();
                  }),
                  (this.replace = function (e, t) {
                    t && this.$search.set(t);
                    var n = this.$search.find(this.session),
                      i = 0;
                    return n
                      ? (this.$tryReplace(n, e) && (i = 1),
                        this.selection.setSelectionRange(n),
                        this.renderer.scrollSelectionIntoView(n.start, n.end),
                        i)
                      : i;
                  }),
                  (this.replaceAll = function (e, t) {
                    t && this.$search.set(t);
                    var n = this.$search.findAll(this.session),
                      i = 0;
                    if (!n.length) return i;
                    var r = this.getSelectionRange();
                    this.selection.moveTo(0, 0);
                    for (var o = n.length - 1; o >= 0; --o)
                      this.$tryReplace(n[o], e) && i++;
                    return this.selection.setSelectionRange(r), i;
                  }),
                  (this.$tryReplace = function (e, t) {
                    var n = this.session.getTextRange(e);
                    return null !== (t = this.$search.replace(n, t))
                      ? ((e.end = this.session.replace(e, t)), e)
                      : null;
                  }),
                  (this.getLastSearchOptions = function () {
                    return this.$search.getOptions();
                  }),
                  (this.find = function (e, t, n) {
                    t || (t = {}),
                      "string" == typeof e || e instanceof RegExp
                        ? (t.needle = e)
                        : "object" == typeof e && i.mixin(t, e);
                    var r = this.selection.getRange();
                    null == t.needle &&
                      ((e =
                        this.session.getTextRange(r) ||
                        this.$search.$options.needle) ||
                        ((r = this.session.getWordRange(
                          r.start.row,
                          r.start.column
                        )),
                        (e = this.session.getTextRange(r))),
                      this.$search.set({
                        needle: e,
                      })),
                      this.$search.set(t),
                      t.start ||
                        this.$search.set({
                          start: r,
                        });
                    var o = this.$search.find(this.session);
                    return t.preventScroll
                      ? o
                      : o
                      ? (this.revealRange(o, n), o)
                      : (t.backwards ? (r.start = r.end) : (r.end = r.start),
                        void this.selection.setRange(r));
                  }),
                  (this.findNext = function (e, t) {
                    this.find(
                      {
                        skipCurrent: !0,
                        backwards: !1,
                      },
                      e,
                      t
                    );
                  }),
                  (this.findPrevious = function (e, t) {
                    this.find(
                      e,
                      {
                        skipCurrent: !0,
                        backwards: !0,
                      },
                      t
                    );
                  }),
                  (this.revealRange = function (e, t) {
                    this.session.unfold(e), this.selection.setSelectionRange(e);
                    var n = this.renderer.scrollTop;
                    this.renderer.scrollSelectionIntoView(e.start, e.end, 0.5),
                      !1 !== t && this.renderer.animateScrolling(n);
                  }),
                  (this.undo = function () {
                    this.session.getUndoManager().undo(this.session),
                      this.renderer.scrollCursorIntoView(null, 0.5);
                  }),
                  (this.redo = function () {
                    this.session.getUndoManager().redo(this.session),
                      this.renderer.scrollCursorIntoView(null, 0.5);
                  }),
                  (this.destroy = function () {
                    this.$toDestroy &&
                      (this.$toDestroy.forEach(function (e) {
                        e.destroy();
                      }),
                      (this.$toDestroy = null)),
                      this.$mouseHandler && this.$mouseHandler.destroy(),
                      this.renderer.destroy(),
                      this._signal("destroy", this),
                      this.session && this.session.destroy(),
                      this._$emitInputEvent && this._$emitInputEvent.cancel(),
                      this.removeAllListeners();
                  }),
                  (this.setAutoScrollEditorIntoView = function (e) {
                    if (e) {
                      var t,
                        n = this,
                        i = !1;
                      this.$scrollAnchor ||
                        (this.$scrollAnchor = document.createElement("div"));
                      var r = this.$scrollAnchor;
                      (r.style.cssText = "position:absolute"),
                        this.container.insertBefore(
                          r,
                          this.container.firstChild
                        );
                      var o = this.on("changeSelection", function () {
                          i = !0;
                        }),
                        s = this.renderer.on("beforeRender", function () {
                          i &&
                            (t = n.renderer.container.getBoundingClientRect());
                        }),
                        a = this.renderer.on("afterRender", function () {
                          if (
                            i &&
                            t &&
                            (n.isFocused() ||
                              (n.searchBox && n.searchBox.isFocused()))
                          ) {
                            var e = n.renderer,
                              o = e.$cursorLayer.$pixelPos,
                              s = e.layerConfig,
                              a = o.top - s.offset;
                            null !=
                              (i =
                                (o.top >= 0 && a + t.top < 0) ||
                                (!(
                                  o.top < s.height &&
                                  o.top + t.top + s.lineHeight >
                                    window.innerHeight
                                ) &&
                                  null)) &&
                              ((r.style.top = a + "px"),
                              (r.style.left = o.left + "px"),
                              (r.style.height = s.lineHeight + "px"),
                              r.scrollIntoView(i)),
                              (i = t = null);
                          }
                        });
                      this.setAutoScrollEditorIntoView = function (e) {
                        e ||
                          (delete this.setAutoScrollEditorIntoView,
                          this.off("changeSelection", o),
                          this.renderer.off("afterRender", a),
                          this.renderer.off("beforeRender", s));
                      };
                    }
                  }),
                  (this.$resetCursorStyle = function () {
                    var e = this.$cursorStyle || "ace",
                      t = this.renderer.$cursorLayer;
                    t &&
                      (t.setSmoothBlinking(/smooth/.test(e)),
                      (t.isBlinking = !this.$readOnly && "wide" != e),
                      r.setCssClass(
                        t.element,
                        "ace_slim-cursors",
                        /slim/.test(e)
                      ));
                  }),
                  (this.prompt = function (e, t, n) {
                    var i = this;
                    m.loadModule("./ext/prompt", function (r) {
                      r.prompt(i, e, t, n);
                    });
                  });
              }.call(w.prototype),
              m.defineOptions(w.prototype, "editor", {
                selectionStyle: {
                  set: function (e) {
                    this.onSelectionChange(),
                      this._signal("changeSelectionStyle", {
                        data: e,
                      });
                  },
                  initialValue: "line",
                },
                highlightActiveLine: {
                  set: function () {
                    this.$updateHighlightActiveLine();
                  },
                  initialValue: !0,
                },
                highlightSelectedWord: {
                  set: function (e) {
                    this.$onSelectionChange();
                  },
                  initialValue: !0,
                },
                readOnly: {
                  set: function (e) {
                    this.textInput.setReadOnly(e), this.$resetCursorStyle();
                  },
                  initialValue: !1,
                },
                copyWithEmptySelection: {
                  set: function (e) {
                    this.textInput.setCopyWithEmptySelection(e);
                  },
                  initialValue: !1,
                },
                cursorStyle: {
                  set: function (e) {
                    this.$resetCursorStyle();
                  },
                  values: ["ace", "slim", "smooth", "wide"],
                  initialValue: "ace",
                },
                mergeUndoDeltas: {
                  values: [!1, !0, "always"],
                  initialValue: !0,
                },
                behavioursEnabled: {
                  initialValue: !0,
                },
                wrapBehavioursEnabled: {
                  initialValue: !0,
                },
                enableAutoIndent: {
                  initialValue: !0,
                },
                autoScrollEditorIntoView: {
                  set: function (e) {
                    this.setAutoScrollEditorIntoView(e);
                  },
                },
                keyboardHandler: {
                  set: function (e) {
                    this.setKeyboardHandler(e);
                  },
                  get: function () {
                    return this.$keybindingId;
                  },
                  handlesSet: !0,
                },
                value: {
                  set: function (e) {
                    this.session.setValue(e);
                  },
                  get: function () {
                    return this.getValue();
                  },
                  handlesSet: !0,
                  hidden: !0,
                },
                session: {
                  set: function (e) {
                    this.setSession(e);
                  },
                  get: function () {
                    return this.session;
                  },
                  handlesSet: !0,
                  hidden: !0,
                },
                showLineNumbers: {
                  set: function (e) {
                    this.renderer.$gutterLayer.setShowLineNumbers(e),
                      this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),
                      e && this.$relativeLineNumbers
                        ? y.attach(this)
                        : y.detach(this);
                  },
                  initialValue: !0,
                },
                relativeLineNumbers: {
                  set: function (e) {
                    this.$showLineNumbers && e
                      ? y.attach(this)
                      : y.detach(this);
                  },
                },
                placeholder: {
                  set: function (e) {
                    this.$updatePlaceholder ||
                      ((this.$updatePlaceholder = function () {
                        var e =
                          this.session &&
                          (this.renderer.$composition || this.getValue());
                        if (e && this.renderer.placeholderNode)
                          this.renderer.off(
                            "afterRender",
                            this.$updatePlaceholder
                          ),
                            r.removeCssClass(
                              this.container,
                              "ace_hasPlaceholder"
                            ),
                            this.renderer.placeholderNode.remove(),
                            (this.renderer.placeholderNode = null);
                        else if (e || this.renderer.placeholderNode)
                          !e &&
                            this.renderer.placeholderNode &&
                            (this.renderer.placeholderNode.textContent =
                              this.$placeholder || "");
                        else {
                          this.renderer.on(
                            "afterRender",
                            this.$updatePlaceholder
                          ),
                            r.addCssClass(this.container, "ace_hasPlaceholder");
                          var t = r.createElement("div");
                          (t.className = "ace_placeholder"),
                            (t.textContent = this.$placeholder || ""),
                            (this.renderer.placeholderNode = t),
                            this.renderer.content.appendChild(
                              this.renderer.placeholderNode
                            );
                        }
                      }.bind(this)),
                      this.on("input", this.$updatePlaceholder)),
                      this.$updatePlaceholder();
                  },
                },
                hScrollBarAlwaysVisible: "renderer",
                vScrollBarAlwaysVisible: "renderer",
                highlightGutterLine: "renderer",
                animatedScroll: "renderer",
                showInvisibles: "renderer",
                showPrintMargin: "renderer",
                printMarginColumn: "renderer",
                printMargin: "renderer",
                fadeFoldWidgets: "renderer",
                showFoldWidgets: "renderer",
                displayIndentGuides: "renderer",
                showGutter: "renderer",
                fontSize: "renderer",
                fontFamily: "renderer",
                maxLines: "renderer",
                minLines: "renderer",
                scrollPastEnd: "renderer",
                fixedWidthGutter: "renderer",
                theme: "renderer",
                hasCssTransforms: "renderer",
                maxPixelHeight: "renderer",
                useTextareaForIME: "renderer",
                scrollSpeed: "$mouseHandler",
                dragDelay: "$mouseHandler",
                dragEnabled: "$mouseHandler",
                focusTimeout: "$mouseHandler",
                tooltipFollowsMouse: "$mouseHandler",
                firstLineNumber: "session",
                overwrite: "session",
                newLineMode: "session",
                useWorker: "session",
                useSoftTabs: "session",
                navigateWithinSoftTabs: "session",
                tabSize: "session",
                wrap: "session",
                indentedSoftWrap: "session",
                foldStyle: "session",
                mode: "session",
              });
            var y = {
              getText: function (e, t) {
                return (
                  (Math.abs(e.selection.lead.row - t) ||
                    t + 1 + (t < 9 ? "·" : "")) + ""
                );
              },
              getWidth: function (e, t, n) {
                return (
                  Math.max(
                    t.toString().length,
                    (n.lastRow + 1).toString().length,
                    2
                  ) * n.characterWidth
                );
              },
              update: function (e, t) {
                t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER);
              },
              attach: function (e) {
                (e.renderer.$gutterLayer.$renderer = this),
                  e.on("changeSelection", this.update),
                  this.update(null, e);
              },
              detach: function (e) {
                e.renderer.$gutterLayer.$renderer == this &&
                  (e.renderer.$gutterLayer.$renderer = null),
                  e.off("changeSelection", this.update),
                  this.update(null, e);
              },
            };
            t.Editor = w;
          }
        ),
        ace.define(
          "ace/undomanager",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = function () {
              (this.$maxRev = 0), (this.$fromUndo = !1), this.reset();
            };
            (function () {
              (this.addSession = function (e) {
                this.$session = e;
              }),
                (this.add = function (e, t, n) {
                  this.$fromUndo ||
                    (e != this.$lastDelta &&
                      (this.$keepRedoStack || (this.$redoStack.length = 0),
                      (!1 !== t && this.lastDeltas) ||
                        ((this.lastDeltas = []),
                        this.$undoStack.push(this.lastDeltas),
                        (e.id = this.$rev = ++this.$maxRev)),
                      ("remove" != e.action && "insert" != e.action) ||
                        (this.$lastDelta = e),
                      this.lastDeltas.push(e)));
                }),
                (this.addSelection = function (e, t) {
                  this.selections.push({
                    value: e,
                    rev: t || this.$rev,
                  });
                }),
                (this.startNewGroup = function () {
                  return (this.lastDeltas = null), this.$rev;
                }),
                (this.markIgnored = function (e, t) {
                  null == t && (t = this.$rev + 1);
                  for (var n = this.$undoStack, i = n.length; i--; ) {
                    var r = n[i][0];
                    if (r.id <= e) break;
                    r.id < t && (r.ignore = !0);
                  }
                  this.lastDeltas = null;
                }),
                (this.getSelection = function (e, t) {
                  for (var n = this.selections, i = n.length; i--; ) {
                    var r = n[i];
                    if (r.rev < e) return t && (r = n[i + 1]), r;
                  }
                }),
                (this.getRevision = function () {
                  return this.$rev;
                }),
                (this.getDeltas = function (e, t) {
                  null == t && (t = this.$rev + 1);
                  for (
                    var n = this.$undoStack, i = null, r = 0, o = n.length;
                    o--;

                  ) {
                    var s = n[o][0];
                    if ((s.id < t && !i && (i = o + 1), s.id <= e)) {
                      r = o + 1;
                      break;
                    }
                  }
                  return n.slice(r, i);
                }),
                (this.getChangedRanges = function (e, t) {
                  null == t && (t = this.$rev + 1);
                }),
                (this.getChangedLines = function (e, t) {
                  null == t && (t = this.$rev + 1);
                }),
                (this.undo = function (e, t) {
                  this.lastDeltas = null;
                  var n = this.$undoStack;
                  if (
                    (function (e, t) {
                      for (var n = t; n--; ) {
                        var i = e[n];
                        if (i && !i[0].ignore) {
                          for (; n < t - 1; ) {
                            var r = d(e[n], e[n + 1]);
                            (e[n] = r[0]), (e[n + 1] = r[1]), n++;
                          }
                          return !0;
                        }
                      }
                    })(n, n.length)
                  ) {
                    e || (e = this.$session),
                      this.$redoStackBaseRev !== this.$rev &&
                        this.$redoStack.length &&
                        (this.$redoStack = []),
                      (this.$fromUndo = !0);
                    var i = n.pop(),
                      r = null;
                    return (
                      i &&
                        ((r = e.undoChanges(i, t)),
                        this.$redoStack.push(i),
                        this.$syncRev()),
                      (this.$fromUndo = !1),
                      r
                    );
                  }
                }),
                (this.redo = function (e, t) {
                  if (
                    ((this.lastDeltas = null),
                    e || (e = this.$session),
                    (this.$fromUndo = !0),
                    this.$redoStackBaseRev != this.$rev)
                  ) {
                    var n = this.getDeltas(
                      this.$redoStackBaseRev,
                      this.$rev + 1
                    );
                    !(function (e, t) {
                      for (var n = 0; n < t.length; n++)
                        for (var i = t[n], r = 0; r < i.length; r++) A(e, i[r]);
                    })(this.$redoStack, n),
                      (this.$redoStackBaseRev = this.$rev),
                      this.$redoStack.forEach(function (e) {
                        e[0].id = ++this.$maxRev;
                      }, this);
                  }
                  var i = this.$redoStack.pop(),
                    r = null;
                  return (
                    i &&
                      ((r = e.redoChanges(i, t)),
                      this.$undoStack.push(i),
                      this.$syncRev()),
                    (this.$fromUndo = !1),
                    r
                  );
                }),
                (this.$syncRev = function () {
                  var e = this.$undoStack,
                    t = e[e.length - 1],
                    n = (t && t[0].id) || 0;
                  (this.$redoStackBaseRev = n), (this.$rev = n);
                }),
                (this.reset = function () {
                  (this.lastDeltas = null),
                    (this.$lastDelta = null),
                    (this.$undoStack = []),
                    (this.$redoStack = []),
                    (this.$rev = 0),
                    (this.mark = 0),
                    (this.$redoStackBaseRev = this.$rev),
                    (this.selections = []);
                }),
                (this.canUndo = function () {
                  return this.$undoStack.length > 0;
                }),
                (this.canRedo = function () {
                  return this.$redoStack.length > 0;
                }),
                (this.bookmark = function (e) {
                  null == e && (e = this.$rev), (this.mark = e);
                }),
                (this.isAtBookmark = function () {
                  return this.$rev === this.mark;
                }),
                (this.toJSON = function () {}),
                (this.fromJSON = function () {}),
                (this.hasUndo = this.canUndo),
                (this.hasRedo = this.canRedo),
                (this.isClean = this.isAtBookmark),
                (this.markClean = this.bookmark),
                (this.$prettyPrint = function (e) {
                  return e
                    ? a(e)
                    : a(this.$undoStack) + "\n---\n" + a(this.$redoStack);
                });
            }).call(i.prototype);
            var r = e("./range").Range,
              o = r.comparePoints;
            r.comparePoints;

            function s(e) {
              return {
                row: e.row,
                column: e.column,
              };
            }

            function a(e) {
              if (((e = e || this), Array.isArray(e)))
                return e.map(a).join("\n");
              var t = "";
              return (
                e.action
                  ? ((t = "insert" == e.action ? "+" : "-"),
                    (t += "[" + e.lines + "]"))
                  : e.value &&
                    (t = Array.isArray(e.value)
                      ? e.value.map(l).join("\n")
                      : l(e.value)),
                e.start && (t += l(e)),
                (e.id || e.rev) && (t += "\t(" + (e.id || e.rev) + ")"),
                t
              );
            }

            function l(e) {
              return (
                e.start.row +
                ":" +
                e.start.column +
                "=>" +
                e.end.row +
                ":" +
                e.end.column
              );
            }

            function c(e, t) {
              var n = "insert" == e.action,
                i = "insert" == t.action;
              if (n && i)
                if (o(t.start, e.end) >= 0) h(t, e, -1);
                else {
                  if (!(o(t.start, e.start) <= 0)) return null;
                  h(e, t, 1);
                }
              else if (n && !i)
                if (o(t.start, e.end) >= 0) h(t, e, -1);
                else {
                  if (!(o(t.end, e.start) <= 0)) return null;
                  h(e, t, -1);
                }
              else if (!n && i)
                if (o(t.start, e.start) >= 0) h(t, e, 1);
                else {
                  if (!(o(t.start, e.start) <= 0)) return null;
                  h(e, t, 1);
                }
              else if (!n && !i)
                if (o(t.start, e.start) >= 0) h(t, e, 1);
                else {
                  if (!(o(t.end, e.start) <= 0)) return null;
                  h(e, t, -1);
                }
              return [t, e];
            }

            function d(e, t) {
              for (var n = e.length; n--; )
                for (var i = 0; i < t.length; i++)
                  if (!c(e[n], t[i])) {
                    for (; n < e.length; ) {
                      for (; i--; ) c(t[i], e[n]);
                      (i = t.length), n++;
                    }
                    return [e, t];
                  }
              return (
                (e.selectionBefore =
                  t.selectionBefore =
                  e.selectionAfter =
                  t.selectionAfter =
                    null),
                [t, e]
              );
            }

            function u(e, t) {
              var n = "insert" == e.action,
                i = "insert" == t.action;
              if (n && i) o(e.start, t.start) < 0 ? h(t, e, 1) : h(e, t, 1);
              else if (n && !i)
                o(e.start, t.end) >= 0
                  ? h(e, t, -1)
                  : (o(e.start, t.start) <= 0 ||
                      h(e, r.fromPoints(t.start, e.start), -1),
                    h(t, e, 1));
              else if (!n && i)
                o(t.start, e.end) >= 0
                  ? h(t, e, -1)
                  : (o(t.start, e.start) <= 0 ||
                      h(t, r.fromPoints(e.start, t.start), -1),
                    h(e, t, 1));
              else if (!n && !i)
                if (o(t.start, e.end) >= 0) h(t, e, -1);
                else {
                  var s, a;
                  if (!(o(t.end, e.start) <= 0))
                    return (
                      o(e.start, t.start) < 0 && ((s = e), (e = p(e, t.start))),
                      o(e.end, t.end) > 0 && (a = p(e, t.end)),
                      g(t.end, e.start, e.end, -1),
                      a &&
                        !s &&
                        ((e.lines = a.lines),
                        (e.start = a.start),
                        (e.end = a.end),
                        (a = e)),
                      [t, s, a].filter(Boolean)
                    );
                  h(e, t, -1);
                }
              return [t, e];
            }

            function h(e, t, n) {
              g(e.start, t.start, t.end, n), g(e.end, t.start, t.end, n);
            }

            function g(e, t, n, i) {
              e.row == (1 == i ? t : n).row &&
                (e.column += i * (n.column - t.column)),
                (e.row += i * (n.row - t.row));
            }

            function p(e, t) {
              var n = e.lines,
                i = e.end;
              e.end = s(t);
              var r = e.end.row - e.start.row,
                o = n.splice(r, n.length),
                a = r ? t.column : t.column - e.start.column;
              return (
                n.push(o[0].substring(0, a)),
                (o[0] = o[0].substr(a)),
                {
                  start: s(t),
                  end: i,
                  lines: o,
                  action: e.action,
                }
              );
            }

            function A(e, t) {
              t = (function (e) {
                return {
                  start: s(e.start),
                  end: s(e.end),
                  action: e.action,
                  lines: e.lines.slice(),
                };
              })(t);
              for (var n = e.length; n--; ) {
                for (var i = e[n], r = 0; r < i.length; r++) {
                  var o = u(i[r], t);
                  (t = o[0]),
                    2 != o.length &&
                      (o[2]
                        ? (i.splice(r + 1, 1, o[1], o[2]), r++)
                        : o[1] || (i.splice(r, 1), r--));
                }
                i.length || e.splice(n, 1);
              }
              return e;
            }
            t.UndoManager = i;
          }
        ),
        ace.define(
          "ace/layer/lines",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom"),
              r = function (e, t) {
                (this.element = e),
                  (this.canvasHeight = t || 5e5),
                  (this.element.style.height = 2 * this.canvasHeight + "px"),
                  (this.cells = []),
                  (this.cellCache = []),
                  (this.$offsetCoefficient = 0);
              };
            (function () {
              (this.moveContainer = function (e) {
                i.translate(
                  this.element,
                  0,
                  ((-e.firstRowScreen * e.lineHeight) % this.canvasHeight) -
                    e.offset * this.$offsetCoefficient
                );
              }),
                (this.pageChanged = function (e, t) {
                  return (
                    Math.floor(
                      (e.firstRowScreen * e.lineHeight) / this.canvasHeight
                    ) !==
                    Math.floor(
                      (t.firstRowScreen * t.lineHeight) / this.canvasHeight
                    )
                  );
                }),
                (this.computeLineTop = function (e, t, n) {
                  var i = t.firstRowScreen * t.lineHeight,
                    r = Math.floor(i / this.canvasHeight);
                  return (
                    n.documentToScreenRow(e, 0) * t.lineHeight -
                    r * this.canvasHeight
                  );
                }),
                (this.computeLineHeight = function (e, t, n) {
                  return t.lineHeight * n.getRowLineCount(e);
                }),
                (this.getLength = function () {
                  return this.cells.length;
                }),
                (this.get = function (e) {
                  return this.cells[e];
                }),
                (this.shift = function () {
                  this.$cacheCell(this.cells.shift());
                }),
                (this.pop = function () {
                  this.$cacheCell(this.cells.pop());
                }),
                (this.push = function (e) {
                  if (Array.isArray(e)) {
                    this.cells.push.apply(this.cells, e);
                    for (
                      var t = i.createFragment(this.element), n = 0;
                      n < e.length;
                      n++
                    )
                      t.appendChild(e[n].element);
                    this.element.appendChild(t);
                  } else
                    this.cells.push(e), this.element.appendChild(e.element);
                }),
                (this.unshift = function (e) {
                  if (Array.isArray(e)) {
                    this.cells.unshift.apply(this.cells, e);
                    for (
                      var t = i.createFragment(this.element), n = 0;
                      n < e.length;
                      n++
                    )
                      t.appendChild(e[n].element);
                    this.element.firstChild
                      ? this.element.insertBefore(t, this.element.firstChild)
                      : this.element.appendChild(t);
                  } else
                    this.cells.unshift(e),
                      this.element.insertAdjacentElement(
                        "afterbegin",
                        e.element
                      );
                }),
                (this.last = function () {
                  return this.cells.length
                    ? this.cells[this.cells.length - 1]
                    : null;
                }),
                (this.$cacheCell = function (e) {
                  e && (e.element.remove(), this.cellCache.push(e));
                }),
                (this.createCell = function (e, t, n, r) {
                  var o = this.cellCache.pop();
                  if (!o) {
                    var s = i.createElement("div");
                    r && r(s),
                      this.element.appendChild(s),
                      (o = {
                        element: s,
                        text: "",
                        row: e,
                      });
                  }
                  return (o.row = e), o;
                });
            }).call(r.prototype),
              (t.Lines = r);
          }
        ),
        ace.define(
          "ace/layer/gutter",
          [
            "require",
            "exports",
            "module",
            "ace/lib/dom",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/lib/event_emitter",
            "ace/layer/lines",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom"),
              r = e("../lib/oop"),
              o = e("../lib/lang"),
              s = e("../lib/event_emitter").EventEmitter,
              a = e("./lines").Lines,
              l = function (e) {
                (this.element = i.createElement("div")),
                  (this.element.className = "ace_layer ace_gutter-layer"),
                  e.appendChild(this.element),
                  this.setShowFoldWidgets(this.$showFoldWidgets),
                  (this.gutterWidth = 0),
                  (this.$annotations = []),
                  (this.$updateAnnotations =
                    this.$updateAnnotations.bind(this)),
                  (this.$lines = new a(this.element)),
                  (this.$lines.$offsetCoefficient = 1);
              };

            function c(e) {
              var t = document.createTextNode("");
              e.appendChild(t);
              var n = i.createElement("span");
              return e.appendChild(n), e;
            }
            (function () {
              r.implement(this, s),
                (this.setSession = function (e) {
                  this.session &&
                    this.session.off("change", this.$updateAnnotations),
                    (this.session = e),
                    e && e.on("change", this.$updateAnnotations);
                }),
                (this.addGutterDecoration = function (e, t) {
                  window.console &&
                    console.warn &&
                    console.warn("deprecated use session.addGutterDecoration"),
                    this.session.addGutterDecoration(e, t);
                }),
                (this.removeGutterDecoration = function (e, t) {
                  window.console &&
                    console.warn &&
                    console.warn(
                      "deprecated use session.removeGutterDecoration"
                    ),
                    this.session.removeGutterDecoration(e, t);
                }),
                (this.setAnnotations = function (e) {
                  this.$annotations = [];
                  for (var t = 0; t < e.length; t++) {
                    var n = e[t],
                      i = n.row,
                      r = this.$annotations[i];
                    r ||
                      (r = this.$annotations[i] =
                        {
                          text: [],
                        });
                    var s = n.text;
                    (s = s ? o.escapeHTML(s) : n.html || ""),
                      -1 === r.text.indexOf(s) && r.text.push(s);
                    var a = n.type;
                    "error" == a
                      ? (r.className = " ace_error")
                      : "warning" == a && " ace_error" != r.className
                      ? (r.className = " ace_warning")
                      : "info" != a ||
                        r.className ||
                        (r.className = " ace_info");
                  }
                }),
                (this.$updateAnnotations = function (e) {
                  if (this.$annotations.length) {
                    var t = e.start.row,
                      n = e.end.row - t;
                    if (0 === n);
                    else if ("remove" == e.action)
                      this.$annotations.splice(t, n + 1, null);
                    else {
                      var i = new Array(n + 1);
                      i.unshift(t, 1),
                        this.$annotations.splice.apply(this.$annotations, i);
                    }
                  }
                }),
                (this.update = function (e) {
                  this.config = e;
                  var t = this.session,
                    n = e.firstRow,
                    i = Math.min(e.lastRow + e.gutterOffset, t.getLength() - 1);
                  (this.oldLastRow = i),
                    (this.config = e),
                    this.$lines.moveContainer(e),
                    this.$updateCursorRow();
                  for (
                    var r = t.getNextFoldLine(n),
                      o = r ? r.start.row : 1 / 0,
                      s = null,
                      a = -1,
                      l = n;
                    ;

                  ) {
                    if (
                      (l > o &&
                        ((l = r.end.row + 1),
                        (o = (r = t.getNextFoldLine(l, r))
                          ? r.start.row
                          : 1 / 0)),
                      l > i)
                    ) {
                      for (; this.$lines.getLength() > a + 1; )
                        this.$lines.pop();
                      break;
                    }
                    (s = this.$lines.get(++a))
                      ? (s.row = l)
                      : ((s = this.$lines.createCell(l, e, this.session, c)),
                        this.$lines.push(s)),
                      this.$renderCell(s, e, r, l),
                      l++;
                  }
                  this._signal("afterRender"), this.$updateGutterWidth(e);
                }),
                (this.$updateGutterWidth = function (e) {
                  var t = this.session,
                    n = t.gutterRenderer || this.$renderer,
                    i = t.$firstLineNumber,
                    r = this.$lines.last() ? this.$lines.last().text : "";
                  (this.$fixedWidth || t.$useWrapMode) &&
                    (r = t.getLength() + i - 1);
                  var o = n
                      ? n.getWidth(t, r, e)
                      : r.toString().length * e.characterWidth,
                    s = this.$padding || this.$computePadding();
                  (o += s.left + s.right) === this.gutterWidth ||
                    isNaN(o) ||
                    ((this.gutterWidth = o),
                    (this.element.parentNode.style.width =
                      this.element.style.width =
                        Math.ceil(this.gutterWidth) + "px"),
                    this._signal("changeGutterWidth", o));
                }),
                (this.$updateCursorRow = function () {
                  if (this.$highlightGutterLine) {
                    var e = this.session.selection.getCursor();
                    this.$cursorRow !== e.row && (this.$cursorRow = e.row);
                  }
                }),
                (this.updateLineHighlight = function () {
                  if (this.$highlightGutterLine) {
                    var e = this.session.selection.cursor.row;
                    if (
                      ((this.$cursorRow = e),
                      !this.$cursorCell || this.$cursorCell.row != e)
                    ) {
                      this.$cursorCell &&
                        (this.$cursorCell.element.className =
                          this.$cursorCell.element.className.replace(
                            "ace_gutter-active-line ",
                            ""
                          ));
                      var t = this.$lines.cells;
                      this.$cursorCell = null;
                      for (var n = 0; n < t.length; n++) {
                        var i = t[n];
                        if (i.row >= this.$cursorRow) {
                          if (i.row > this.$cursorRow) {
                            var r = this.session.getFoldLine(this.$cursorRow);
                            if (!(n > 0 && r && r.start.row == t[n - 1].row))
                              break;
                            i = t[n - 1];
                          }
                          (i.element.className =
                            "ace_gutter-active-line " + i.element.className),
                            (this.$cursorCell = i);
                          break;
                        }
                      }
                    }
                  }
                }),
                (this.scrollLines = function (e) {
                  var t = this.config;
                  if (
                    ((this.config = e),
                    this.$updateCursorRow(),
                    this.$lines.pageChanged(t, e))
                  )
                    return this.update(e);
                  this.$lines.moveContainer(e);
                  var n = Math.min(
                      e.lastRow + e.gutterOffset,
                      this.session.getLength() - 1
                    ),
                    i = this.oldLastRow;
                  if (((this.oldLastRow = n), !t || i < e.firstRow))
                    return this.update(e);
                  if (n < t.firstRow) return this.update(e);
                  if (t.firstRow < e.firstRow)
                    for (
                      var r = this.session.getFoldedRowCount(
                        t.firstRow,
                        e.firstRow - 1
                      );
                      r > 0;
                      r--
                    )
                      this.$lines.shift();
                  if (i > n)
                    for (
                      r = this.session.getFoldedRowCount(n + 1, i);
                      r > 0;
                      r--
                    )
                      this.$lines.pop();
                  e.firstRow < t.firstRow &&
                    this.$lines.unshift(
                      this.$renderLines(e, e.firstRow, t.firstRow - 1)
                    ),
                    n > i && this.$lines.push(this.$renderLines(e, i + 1, n)),
                    this.updateLineHighlight(),
                    this._signal("afterRender"),
                    this.$updateGutterWidth(e);
                }),
                (this.$renderLines = function (e, t, n) {
                  for (
                    var i = [],
                      r = t,
                      o = this.session.getNextFoldLine(r),
                      s = o ? o.start.row : 1 / 0;
                    r > s &&
                      ((r = o.end.row + 1),
                      (s = (o = this.session.getNextFoldLine(r, o))
                        ? o.start.row
                        : 1 / 0)),
                      !(r > n);

                  ) {
                    var a = this.$lines.createCell(r, e, this.session, c);
                    this.$renderCell(a, e, o, r), i.push(a), r++;
                  }
                  return i;
                }),
                (this.$renderCell = function (e, t, n, r) {
                  var o = e.element,
                    s = this.session,
                    a = o.childNodes[0],
                    l = o.childNodes[1],
                    c = s.$firstLineNumber,
                    d = s.$breakpoints,
                    u = s.$decorations,
                    h = s.gutterRenderer || this.$renderer,
                    g = this.$showFoldWidgets && s.foldWidgets,
                    p = n ? n.start.row : Number.MAX_VALUE,
                    A = "ace_gutter-cell ";
                  if (
                    (this.$highlightGutterLine &&
                      (r == this.$cursorRow ||
                        (n &&
                          r < this.$cursorRow &&
                          r >= p &&
                          this.$cursorRow <= n.end.row)) &&
                      ((A += "ace_gutter-active-line "),
                      this.$cursorCell != e &&
                        (this.$cursorCell &&
                          (this.$cursorCell.element.className =
                            this.$cursorCell.element.className.replace(
                              "ace_gutter-active-line ",
                              ""
                            )),
                        (this.$cursorCell = e))),
                    d[r] && (A += d[r]),
                    u[r] && (A += u[r]),
                    this.$annotations[r] &&
                      (A += this.$annotations[r].className),
                    o.className != A && (o.className = A),
                    g)
                  ) {
                    var f = g[r];
                    null == f && (f = g[r] = s.getFoldWidget(r));
                  }
                  if (f) {
                    A = "ace_fold-widget ace_" + f;
                    "start" == f && r == p && r < n.end.row
                      ? (A += " ace_closed")
                      : (A += " ace_open"),
                      l.className != A && (l.className = A);
                    var m = t.lineHeight + "px";
                    i.setStyle(l.style, "height", m),
                      i.setStyle(l.style, "display", "inline-block");
                  } else l && i.setStyle(l.style, "display", "none");
                  var v = (h ? h.getText(s, r) : r + c).toString();
                  return (
                    v !== a.data && (a.data = v),
                    i.setStyle(
                      e.element.style,
                      "height",
                      this.$lines.computeLineHeight(r, t, s) + "px"
                    ),
                    i.setStyle(
                      e.element.style,
                      "top",
                      this.$lines.computeLineTop(r, t, s) + "px"
                    ),
                    (e.text = v),
                    e
                  );
                }),
                (this.$fixedWidth = !1),
                (this.$highlightGutterLine = !0),
                (this.$renderer = ""),
                (this.setHighlightGutterLine = function (e) {
                  this.$highlightGutterLine = e;
                }),
                (this.$showLineNumbers = !0),
                (this.$renderer = ""),
                (this.setShowLineNumbers = function (e) {
                  this.$renderer = !e && {
                    getWidth: function () {
                      return 0;
                    },
                    getText: function () {
                      return "";
                    },
                  };
                }),
                (this.getShowLineNumbers = function () {
                  return this.$showLineNumbers;
                }),
                (this.$showFoldWidgets = !0),
                (this.setShowFoldWidgets = function (e) {
                  e
                    ? i.addCssClass(this.element, "ace_folding-enabled")
                    : i.removeCssClass(this.element, "ace_folding-enabled"),
                    (this.$showFoldWidgets = e),
                    (this.$padding = null);
                }),
                (this.getShowFoldWidgets = function () {
                  return this.$showFoldWidgets;
                }),
                (this.$computePadding = function () {
                  if (!this.element.firstChild)
                    return {
                      left: 0,
                      right: 0,
                    };
                  var e = i.computedStyle(this.element.firstChild);
                  return (
                    (this.$padding = {}),
                    (this.$padding.left =
                      (parseInt(e.borderLeftWidth) || 0) +
                      (parseInt(e.paddingLeft) || 0) +
                      1),
                    (this.$padding.right =
                      (parseInt(e.borderRightWidth) || 0) +
                      (parseInt(e.paddingRight) || 0)),
                    this.$padding
                  );
                }),
                (this.getRegion = function (e) {
                  var t = this.$padding || this.$computePadding(),
                    n = this.element.getBoundingClientRect();
                  return e.x < t.left + n.left
                    ? "markers"
                    : this.$showFoldWidgets && e.x > n.right - t.right
                    ? "foldWidgets"
                    : void 0;
                });
            }).call(l.prototype),
              (t.Gutter = l);
          }
        ),
        ace.define(
          "ace/layer/marker",
          ["require", "exports", "module", "ace/range", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("../range").Range,
              r = e("../lib/dom"),
              o = function (e) {
                (this.element = r.createElement("div")),
                  (this.element.className = "ace_layer ace_marker-layer"),
                  e.appendChild(this.element);
              };
            (function () {
              (this.$padding = 0),
                (this.setPadding = function (e) {
                  this.$padding = e;
                }),
                (this.setSession = function (e) {
                  this.session = e;
                }),
                (this.setMarkers = function (e) {
                  this.markers = e;
                }),
                (this.elt = function (e, t) {
                  var n = -1 != this.i && this.element.childNodes[this.i];
                  n
                    ? this.i++
                    : ((n = document.createElement("div")),
                      this.element.appendChild(n),
                      (this.i = -1)),
                    (n.style.cssText = t),
                    (n.className = e);
                }),
                (this.update = function (e) {
                  if (e) {
                    var t;
                    for (var n in ((this.config = e),
                    (this.i = 0),
                    this.markers)) {
                      var i = this.markers[n];
                      if (i.range) {
                        var r = i.range.clipRows(e.firstRow, e.lastRow);
                        if (!r.isEmpty())
                          if (
                            ((r = r.toScreenRange(this.session)), i.renderer)
                          ) {
                            var o = this.$getTop(r.start.row, e),
                              s =
                                this.$padding +
                                r.start.column * e.characterWidth;
                            i.renderer(t, r, s, o, e);
                          } else
                            "fullLine" == i.type
                              ? this.drawFullLineMarker(t, r, i.clazz, e)
                              : "screenLine" == i.type
                              ? this.drawScreenLineMarker(t, r, i.clazz, e)
                              : r.isMultiLine()
                              ? "text" == i.type
                                ? this.drawTextMarker(t, r, i.clazz, e)
                                : this.drawMultiLineMarker(t, r, i.clazz, e)
                              : this.drawSingleLineMarker(
                                  t,
                                  r,
                                  i.clazz + " ace_start ace_br15",
                                  e
                                );
                      } else i.update(t, this, this.session, e);
                    }
                    if (-1 != this.i)
                      for (; this.i < this.element.childElementCount; )
                        this.element.removeChild(this.element.lastChild);
                  }
                }),
                (this.$getTop = function (e, t) {
                  return (e - t.firstRowScreen) * t.lineHeight;
                }),
                (this.drawTextMarker = function (e, t, n, r, o) {
                  for (
                    var s = this.session,
                      a = t.start.row,
                      l = t.end.row,
                      c = a,
                      d = 0,
                      u = 0,
                      h = s.getScreenLastRowColumn(c),
                      g = new i(c, t.start.column, c, u);
                    c <= l;
                    c++
                  )
                    (g.start.row = g.end.row = c),
                      (g.start.column =
                        c == a ? t.start.column : s.getRowWrapIndent(c)),
                      (g.end.column = h),
                      (d = u),
                      (u = h),
                      (h =
                        c + 1 < l
                          ? s.getScreenLastRowColumn(c + 1)
                          : c == l
                          ? 0
                          : t.end.column),
                      this.drawSingleLineMarker(
                        e,
                        g,
                        n +
                          (c == a ? " ace_start" : "") +
                          " ace_br" +
                          ((c == a || (c == a + 1 && t.start.column) ? 1 : 0) |
                            (d < u ? 2 : 0) |
                            (u > h ? 4 : 0) |
                            (c == l ? 8 : 0)),
                        r,
                        c == l ? 0 : 1,
                        o
                      );
                }),
                (this.drawMultiLineMarker = function (e, t, n, i, r) {
                  var o = this.$padding,
                    s = i.lineHeight,
                    a = this.$getTop(t.start.row, i),
                    l = o + t.start.column * i.characterWidth;
                  ((r = r || ""),
                  this.session.$bidiHandler.isBidiRow(t.start.row))
                    ? (((c = t.clone()).end.row = c.start.row),
                      (c.end.column = this.session.getLine(c.start.row).length),
                      this.drawBidiSingleLineMarker(
                        e,
                        c,
                        n + " ace_br1 ace_start",
                        i,
                        null,
                        r
                      ))
                    : this.elt(
                        n + " ace_br1 ace_start",
                        "height:" +
                          s +
                          "px;right:0;top:" +
                          a +
                          "px;left:" +
                          l +
                          "px;" +
                          (r || "")
                      );
                  if (this.session.$bidiHandler.isBidiRow(t.end.row)) {
                    var c;
                    ((c = t.clone()).start.row = c.end.row),
                      (c.start.column = 0),
                      this.drawBidiSingleLineMarker(
                        e,
                        c,
                        n + " ace_br12",
                        i,
                        null,
                        r
                      );
                  } else {
                    a = this.$getTop(t.end.row, i);
                    var d = t.end.column * i.characterWidth;
                    this.elt(
                      n + " ace_br12",
                      "height:" +
                        s +
                        "px;width:" +
                        d +
                        "px;top:" +
                        a +
                        "px;left:" +
                        o +
                        "px;" +
                        (r || "")
                    );
                  }
                  if (
                    !((s = (t.end.row - t.start.row - 1) * i.lineHeight) <= 0)
                  ) {
                    a = this.$getTop(t.start.row + 1, i);
                    var u = (t.start.column ? 1 : 0) | (t.end.column ? 0 : 8);
                    this.elt(
                      n + (u ? " ace_br" + u : ""),
                      "height:" +
                        s +
                        "px;right:0;top:" +
                        a +
                        "px;left:" +
                        o +
                        "px;" +
                        (r || "")
                    );
                  }
                }),
                (this.drawSingleLineMarker = function (e, t, n, i, r, o) {
                  if (this.session.$bidiHandler.isBidiRow(t.start.row))
                    return this.drawBidiSingleLineMarker(e, t, n, i, r, o);
                  var s = i.lineHeight,
                    a =
                      (t.end.column + (r || 0) - t.start.column) *
                      i.characterWidth,
                    l = this.$getTop(t.start.row, i),
                    c = this.$padding + t.start.column * i.characterWidth;
                  this.elt(
                    n,
                    "height:" +
                      s +
                      "px;width:" +
                      a +
                      "px;top:" +
                      l +
                      "px;left:" +
                      c +
                      "px;" +
                      (o || "")
                  );
                }),
                (this.drawBidiSingleLineMarker = function (e, t, n, i, r, o) {
                  var s = i.lineHeight,
                    a = this.$getTop(t.start.row, i),
                    l = this.$padding;
                  this.session.$bidiHandler
                    .getSelections(t.start.column, t.end.column)
                    .forEach(function (e) {
                      this.elt(
                        n,
                        "height:" +
                          s +
                          "px;width:" +
                          e.width +
                          (r || 0) +
                          "px;top:" +
                          a +
                          "px;left:" +
                          (l + e.left) +
                          "px;" +
                          (o || "")
                      );
                    }, this);
                }),
                (this.drawFullLineMarker = function (e, t, n, i, r) {
                  var o = this.$getTop(t.start.row, i),
                    s = i.lineHeight;
                  t.start.row != t.end.row &&
                    (s += this.$getTop(t.end.row, i) - o),
                    this.elt(
                      n,
                      "height:" +
                        s +
                        "px;top:" +
                        o +
                        "px;left:0;right:0;" +
                        (r || "")
                    );
                }),
                (this.drawScreenLineMarker = function (e, t, n, i, r) {
                  var o = this.$getTop(t.start.row, i),
                    s = i.lineHeight;
                  this.elt(
                    n,
                    "height:" +
                      s +
                      "px;top:" +
                      o +
                      "px;left:0;right:0;" +
                      (r || "")
                  );
                });
            }).call(o.prototype),
              (t.Marker = o);
          }
        ),
        ace.define(
          "ace/layer/text",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/dom",
            "ace/lib/lang",
            "ace/layer/lines",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("../lib/dom"),
              o = e("../lib/lang"),
              s = e("./lines").Lines,
              a = e("../lib/event_emitter").EventEmitter,
              l = function (e) {
                (this.dom = r),
                  (this.element = this.dom.createElement("div")),
                  (this.element.className = "ace_layer ace_text-layer"),
                  e.appendChild(this.element),
                  (this.$updateEolChar = this.$updateEolChar.bind(this)),
                  (this.$lines = new s(this.element));
              };
            (function () {
              i.implement(this, a),
                (this.EOF_CHAR = "¶"),
                (this.EOL_CHAR_LF = "¬"),
                (this.EOL_CHAR_CRLF = "¤"),
                (this.EOL_CHAR = this.EOL_CHAR_LF),
                (this.TAB_CHAR = "—"),
                (this.SPACE_CHAR = "·"),
                (this.$padding = 0),
                (this.MAX_LINE_LENGTH = 1e4),
                (this.$updateEolChar = function () {
                  var e = this.session.doc,
                    t =
                      "\n" == e.getNewLineCharacter() &&
                      "windows" != e.getNewLineMode()
                        ? this.EOL_CHAR_LF
                        : this.EOL_CHAR_CRLF;
                  if (this.EOL_CHAR != t) return (this.EOL_CHAR = t), !0;
                }),
                (this.setPadding = function (e) {
                  (this.$padding = e),
                    (this.element.style.margin = "0 " + e + "px");
                }),
                (this.getLineHeight = function () {
                  return this.$fontMetrics.$characterSize.height || 0;
                }),
                (this.getCharacterWidth = function () {
                  return this.$fontMetrics.$characterSize.width || 0;
                }),
                (this.$setFontMetrics = function (e) {
                  (this.$fontMetrics = e),
                    this.$fontMetrics.on(
                      "changeCharacterSize",
                      function (e) {
                        this._signal("changeCharacterSize", e);
                      }.bind(this)
                    ),
                    this.$pollSizeChanges();
                }),
                (this.checkForSizeChanges = function () {
                  this.$fontMetrics.checkForSizeChanges();
                }),
                (this.$pollSizeChanges = function () {
                  return (this.$pollSizeChangesTimer =
                    this.$fontMetrics.$pollSizeChanges());
                }),
                (this.setSession = function (e) {
                  (this.session = e), e && this.$computeTabString();
                }),
                (this.showInvisibles = !1),
                (this.showSpaces = !1),
                (this.showTabs = !1),
                (this.showEOL = !1),
                (this.setShowInvisibles = function (e) {
                  return (
                    this.showInvisibles != e &&
                    ((this.showInvisibles = e),
                    "string" == typeof e
                      ? ((this.showSpaces = /tab/i.test(e)),
                        (this.showTabs = /space/i.test(e)),
                        (this.showEOL = /eol/i.test(e)))
                      : (this.showSpaces = this.showTabs = this.showEOL = e),
                    this.$computeTabString(),
                    !0)
                  );
                }),
                (this.displayIndentGuides = !0),
                (this.setDisplayIndentGuides = function (e) {
                  return (
                    this.displayIndentGuides != e &&
                    ((this.displayIndentGuides = e),
                    this.$computeTabString(),
                    !0)
                  );
                }),
                (this.$tabStrings = []),
                (this.onChangeTabSize = this.$computeTabString =
                  function () {
                    var e = this.session.getTabSize();
                    this.tabSize = e;
                    for (
                      var t = (this.$tabStrings = [0]), n = 1;
                      n < e + 1;
                      n++
                    ) {
                      if (this.showTabs)
                        ((i = this.dom.createElement("span")).className =
                          "ace_invisible ace_invisible_tab"),
                          (i.textContent = o.stringRepeat(this.TAB_CHAR, n)),
                          t.push(i);
                      else
                        t.push(
                          this.dom.createTextNode(
                            o.stringRepeat(" ", n),
                            this.element
                          )
                        );
                    }
                    if (this.displayIndentGuides) {
                      this.$indentGuideRe = /\s\S| \t|\t |\s$/;
                      var i,
                        r = this.showSpaces
                          ? " ace_invisible ace_invisible_space"
                          : "",
                        s = this.showSpaces
                          ? o.stringRepeat(this.SPACE_CHAR, this.tabSize)
                          : o.stringRepeat(" ", this.tabSize),
                        a = this.showTabs
                          ? " ace_invisible ace_invisible_tab"
                          : "",
                        l = this.showTabs
                          ? o.stringRepeat(this.TAB_CHAR, this.tabSize)
                          : s;
                      ((i = this.dom.createElement("span")).className =
                        "ace_indent-guide" + r),
                        (i.textContent = s),
                        (this.$tabStrings[" "] = i),
                        ((i = this.dom.createElement("span")).className =
                          "ace_indent-guide" + a),
                        (i.textContent = l),
                        (this.$tabStrings["\t"] = i);
                    }
                  }),
                (this.updateLines = function (e, t, n) {
                  if (
                    this.config.lastRow != e.lastRow ||
                    this.config.firstRow != e.firstRow
                  )
                    return this.update(e);
                  this.config = e;
                  for (
                    var i = Math.max(t, e.firstRow),
                      r = Math.min(n, e.lastRow),
                      o = this.element.childNodes,
                      s = 0,
                      a = e.firstRow;
                    a < i;
                    a++
                  ) {
                    if ((l = this.session.getFoldLine(a))) {
                      if (l.containsRow(i)) {
                        i = l.start.row;
                        break;
                      }
                      a = l.end.row;
                    }
                    s++;
                  }
                  for (
                    var l,
                      c = !1,
                      d =
                        ((a = i),
                        (l = this.session.getNextFoldLine(a))
                          ? l.start.row
                          : 1 / 0);
                    a > d &&
                      ((a = l.end.row + 1),
                      (d = (l = this.session.getNextFoldLine(a, l))
                        ? l.start.row
                        : 1 / 0)),
                      !(a > r);

                  ) {
                    var u = o[s++];
                    if (u) {
                      this.dom.removeChildren(u),
                        this.$renderLine(u, a, a == d && l),
                        c &&
                          (u.style.top =
                            this.$lines.computeLineTop(a, e, this.session) +
                            "px");
                      var h =
                        e.lineHeight * this.session.getRowLength(a) + "px";
                      u.style.height != h && ((c = !0), (u.style.height = h));
                    }
                    a++;
                  }
                  if (c)
                    for (; s < this.$lines.cells.length; ) {
                      var g = this.$lines.cells[s++];
                      g.element.style.top =
                        this.$lines.computeLineTop(g.row, e, this.session) +
                        "px";
                    }
                }),
                (this.scrollLines = function (e) {
                  var t = this.config;
                  if (((this.config = e), this.$lines.pageChanged(t, e)))
                    return this.update(e);
                  this.$lines.moveContainer(e);
                  var n = e.lastRow,
                    i = t ? t.lastRow : -1;
                  if (!t || i < e.firstRow) return this.update(e);
                  if (n < t.firstRow) return this.update(e);
                  if (!t || t.lastRow < e.firstRow) return this.update(e);
                  if (e.lastRow < t.firstRow) return this.update(e);
                  if (t.firstRow < e.firstRow)
                    for (
                      var r = this.session.getFoldedRowCount(
                        t.firstRow,
                        e.firstRow - 1
                      );
                      r > 0;
                      r--
                    )
                      this.$lines.shift();
                  if (t.lastRow > e.lastRow)
                    for (
                      r = this.session.getFoldedRowCount(
                        e.lastRow + 1,
                        t.lastRow
                      );
                      r > 0;
                      r--
                    )
                      this.$lines.pop();
                  e.firstRow < t.firstRow &&
                    this.$lines.unshift(
                      this.$renderLinesFragment(e, e.firstRow, t.firstRow - 1)
                    ),
                    e.lastRow > t.lastRow &&
                      this.$lines.push(
                        this.$renderLinesFragment(e, t.lastRow + 1, e.lastRow)
                      );
                }),
                (this.$renderLinesFragment = function (e, t, n) {
                  for (
                    var i = [],
                      o = t,
                      s = this.session.getNextFoldLine(o),
                      a = s ? s.start.row : 1 / 0;
                    o > a &&
                      ((o = s.end.row + 1),
                      (a = (s = this.session.getNextFoldLine(o, s))
                        ? s.start.row
                        : 1 / 0)),
                      !(o > n);

                  ) {
                    var l = this.$lines.createCell(o, e, this.session),
                      c = l.element;
                    this.dom.removeChildren(c),
                      r.setStyle(
                        c.style,
                        "height",
                        this.$lines.computeLineHeight(o, e, this.session) + "px"
                      ),
                      r.setStyle(
                        c.style,
                        "top",
                        this.$lines.computeLineTop(o, e, this.session) + "px"
                      ),
                      this.$renderLine(c, o, o == a && s),
                      this.$useLineGroups()
                        ? (c.className = "ace_line_group")
                        : (c.className = "ace_line"),
                      i.push(l),
                      o++;
                  }
                  return i;
                }),
                (this.update = function (e) {
                  this.$lines.moveContainer(e), (this.config = e);
                  for (
                    var t = e.firstRow, n = e.lastRow, i = this.$lines;
                    i.getLength();

                  )
                    i.pop();
                  i.push(this.$renderLinesFragment(e, t, n));
                }),
                (this.$textToken = {
                  text: !0,
                  rparen: !0,
                  lparen: !0,
                }),
                (this.$renderToken = function (e, t, n, i) {
                  for (
                    var r,
                      s =
                        /(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,
                      a = this.dom.createFragment(this.element),
                      l = 0;
                    (r = s.exec(i));

                  ) {
                    var c = r[1],
                      d = r[2],
                      u = r[3],
                      h = r[4],
                      g = r[5];
                    if (this.showSpaces || !d) {
                      var p = l != r.index ? i.slice(l, r.index) : "";
                      if (
                        ((l = r.index + r[0].length),
                        p &&
                          a.appendChild(
                            this.dom.createTextNode(p, this.element)
                          ),
                        c)
                      ) {
                        var A = this.session.getScreenTabSize(t + r.index);
                        a.appendChild(this.$tabStrings[A].cloneNode(!0)),
                          (t += A - 1);
                      } else if (d) {
                        if (this.showSpaces)
                          ((m = this.dom.createElement("span")).className =
                            "ace_invisible ace_invisible_space"),
                            (m.textContent = o.stringRepeat(
                              this.SPACE_CHAR,
                              d.length
                            )),
                            a.appendChild(m);
                        else
                          a.appendChild(
                            this.com.createTextNode(d, this.element)
                          );
                      } else if (u) {
                        ((m = this.dom.createElement("span")).className =
                          "ace_invisible ace_invisible_space ace_invalid"),
                          (m.textContent = o.stringRepeat(
                            this.SPACE_CHAR,
                            u.length
                          )),
                          a.appendChild(m);
                      } else if (h) {
                        (t += 1),
                          ((m = this.dom.createElement("span")).style.width =
                            2 * this.config.characterWidth + "px"),
                          (m.className = this.showSpaces
                            ? "ace_cjk ace_invisible ace_invisible_space"
                            : "ace_cjk"),
                          (m.textContent = this.showSpaces
                            ? this.SPACE_CHAR
                            : h),
                          a.appendChild(m);
                      } else if (g) {
                        (t += 1),
                          ((m = this.dom.createElement("span")).style.width =
                            2 * this.config.characterWidth + "px"),
                          (m.className = "ace_cjk"),
                          (m.textContent = g),
                          a.appendChild(m);
                      }
                    }
                  }
                  if (
                    (a.appendChild(
                      this.dom.createTextNode(l ? i.slice(l) : i, this.element)
                    ),
                    this.$textToken[n.type])
                  )
                    e.appendChild(a);
                  else {
                    var f = "ace_" + n.type.replace(/\./g, " ace_"),
                      m = this.dom.createElement("span");
                    "fold" == n.type &&
                      (m.style.width =
                        n.value.length * this.config.characterWidth + "px"),
                      (m.className = f),
                      m.appendChild(a),
                      e.appendChild(m);
                  }
                  return t + i.length;
                }),
                (this.renderIndentGuide = function (e, t, n) {
                  var i = t.search(this.$indentGuideRe);
                  if (i <= 0 || i >= n) return t;
                  if (" " == t[0]) {
                    for (
                      var r = (i -= i % this.tabSize) / this.tabSize, o = 0;
                      o < r;
                      o++
                    )
                      e.appendChild(this.$tabStrings[" "].cloneNode(!0));
                    return t.substr(i);
                  }
                  if ("\t" == t[0]) {
                    for (o = 0; o < i; o++)
                      e.appendChild(this.$tabStrings["\t"].cloneNode(!0));
                    return t.substr(i);
                  }
                  return t;
                }),
                (this.$createLineElement = function (e) {
                  var t = this.dom.createElement("div");
                  return (
                    (t.className = "ace_line"),
                    (t.style.height = this.config.lineHeight + "px"),
                    t
                  );
                }),
                (this.$renderWrappedLine = function (e, t, n) {
                  var i = 0,
                    r = 0,
                    s = n[0],
                    a = 0,
                    l = this.$createLineElement();
                  e.appendChild(l);
                  for (var c = 0; c < t.length; c++) {
                    var d = t[c],
                      u = d.value;
                    if (0 == c && this.displayIndentGuides) {
                      if (
                        ((i = u.length), !(u = this.renderIndentGuide(l, u, s)))
                      )
                        continue;
                      i -= u.length;
                    }
                    if (i + u.length < s)
                      (a = this.$renderToken(l, a, d, u)), (i += u.length);
                    else {
                      for (; i + u.length >= s; )
                        (a = this.$renderToken(l, a, d, u.substring(0, s - i))),
                          (u = u.substring(s - i)),
                          (i = s),
                          (l = this.$createLineElement()),
                          e.appendChild(l),
                          l.appendChild(
                            this.dom.createTextNode(
                              o.stringRepeat(" ", n.indent),
                              this.element
                            )
                          ),
                          (a = 0),
                          (s = n[++r] || Number.MAX_VALUE);
                      0 != u.length &&
                        ((i += u.length), (a = this.$renderToken(l, a, d, u)));
                    }
                  }
                  n[n.length - 1] > this.MAX_LINE_LENGTH &&
                    this.$renderOverflowMessage(l, a, null, "", !0);
                }),
                (this.$renderSimpleLine = function (e, t) {
                  var n = 0,
                    i = t[0],
                    r = i.value;
                  this.displayIndentGuides &&
                    (r = this.renderIndentGuide(e, r)),
                    r && (n = this.$renderToken(e, n, i, r));
                  for (var o = 1; o < t.length; o++) {
                    if (
                      n + (r = (i = t[o]).value).length >
                      this.MAX_LINE_LENGTH
                    )
                      return this.$renderOverflowMessage(e, n, i, r);
                    n = this.$renderToken(e, n, i, r);
                  }
                }),
                (this.$renderOverflowMessage = function (e, t, n, i, r) {
                  n &&
                    this.$renderToken(
                      e,
                      t,
                      n,
                      i.slice(0, this.MAX_LINE_LENGTH - t)
                    );
                  var o = this.dom.createElement("span");
                  (o.className =
                    "ace_inline_button ace_keyword ace_toggle_wrap"),
                    (o.textContent = r ? "<hide>" : "<click to see more...>"),
                    e.appendChild(o);
                }),
                (this.$renderLine = function (e, t, n) {
                  if ((n || 0 == n || (n = this.session.getFoldLine(t)), n))
                    var i = this.$getFoldLineTokens(t, n);
                  else i = this.session.getTokens(t);
                  var r = e;
                  if (i.length) {
                    var o = this.session.getRowSplitData(t);
                    if (o && o.length) {
                      this.$renderWrappedLine(e, i, o);
                      r = e.lastChild;
                    } else {
                      r = e;
                      this.$useLineGroups() &&
                        ((r = this.$createLineElement()), e.appendChild(r)),
                        this.$renderSimpleLine(r, i);
                    }
                  } else
                    this.$useLineGroups() &&
                      ((r = this.$createLineElement()), e.appendChild(r));
                  if (this.showEOL && r) {
                    n && (t = n.end.row);
                    var s = this.dom.createElement("span");
                    (s.className = "ace_invisible ace_invisible_eol"),
                      (s.textContent =
                        t == this.session.getLength() - 1
                          ? this.EOF_CHAR
                          : this.EOL_CHAR),
                      r.appendChild(s);
                  }
                }),
                (this.$getFoldLineTokens = function (e, t) {
                  var n = this.session,
                    i = [];
                  var r = n.getTokens(e);
                  return (
                    t.walk(
                      function (e, t, o, s, a) {
                        null != e
                          ? i.push({
                              type: "fold",
                              value: e,
                            })
                          : (a && (r = n.getTokens(t)),
                            r.length &&
                              (function (e, t, n) {
                                for (
                                  var r = 0, o = 0;
                                  o + e[r].value.length < t;

                                )
                                  if (
                                    ((o += e[r].value.length), ++r == e.length)
                                  )
                                    return;
                                for (
                                  o != t &&
                                  ((s = e[r].value.substring(t - o)).length >
                                    n - t && (s = s.substring(0, n - t)),
                                  i.push({
                                    type: e[r].type,
                                    value: s,
                                  }),
                                  (o = t + s.length),
                                  (r += 1));
                                  o < n && r < e.length;

                                ) {
                                  var s;
                                  (s = e[r].value).length + o > n
                                    ? i.push({
                                        type: e[r].type,
                                        value: s.substring(0, n - o),
                                      })
                                    : i.push(e[r]),
                                    (o += s.length),
                                    (r += 1);
                                }
                              })(r, s, o));
                      },
                      t.end.row,
                      this.session.getLine(t.end.row).length
                    ),
                    i
                  );
                }),
                (this.$useLineGroups = function () {
                  return this.session.getUseWrapMode();
                }),
                (this.destroy = function () {});
            }).call(l.prototype),
              (t.Text = l);
          }
        ),
        ace.define(
          "ace/layer/cursor",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/dom"),
              r = function (e) {
                (this.element = i.createElement("div")),
                  (this.element.className = "ace_layer ace_cursor-layer"),
                  e.appendChild(this.element),
                  (this.isVisible = !1),
                  (this.isBlinking = !0),
                  (this.blinkInterval = 1e3),
                  (this.smoothBlinking = !1),
                  (this.cursors = []),
                  (this.cursor = this.addCursor()),
                  i.addCssClass(this.element, "ace_hidden-cursors"),
                  (this.$updateCursors = this.$updateOpacity.bind(this));
              };
            (function () {
              (this.$updateOpacity = function (e) {
                for (var t = this.cursors, n = t.length; n--; )
                  i.setStyle(t[n].style, "opacity", e ? "" : "0");
              }),
                (this.$startCssAnimation = function () {
                  for (var e = this.cursors, t = e.length; t--; )
                    e[t].style.animationDuration = this.blinkInterval + "ms";
                  setTimeout(
                    function () {
                      i.addCssClass(this.element, "ace_animate-blinking");
                    }.bind(this)
                  );
                }),
                (this.$stopCssAnimation = function () {
                  i.removeCssClass(this.element, "ace_animate-blinking");
                }),
                (this.$padding = 0),
                (this.setPadding = function (e) {
                  this.$padding = e;
                }),
                (this.setSession = function (e) {
                  this.session = e;
                }),
                (this.setBlinking = function (e) {
                  e != this.isBlinking &&
                    ((this.isBlinking = e), this.restartTimer());
                }),
                (this.setBlinkInterval = function (e) {
                  e != this.blinkInterval &&
                    ((this.blinkInterval = e), this.restartTimer());
                }),
                (this.setSmoothBlinking = function (e) {
                  e != this.smoothBlinking &&
                    ((this.smoothBlinking = e),
                    i.setCssClass(this.element, "ace_smooth-blinking", e),
                    this.$updateCursors(!0),
                    this.restartTimer());
                }),
                (this.addCursor = function () {
                  var e = i.createElement("div");
                  return (
                    (e.className = "ace_cursor"),
                    this.element.appendChild(e),
                    this.cursors.push(e),
                    e
                  );
                }),
                (this.removeCursor = function () {
                  if (this.cursors.length > 1) {
                    var e = this.cursors.pop();
                    return e.parentNode.removeChild(e), e;
                  }
                }),
                (this.hideCursor = function () {
                  (this.isVisible = !1),
                    i.addCssClass(this.element, "ace_hidden-cursors"),
                    this.restartTimer();
                }),
                (this.showCursor = function () {
                  (this.isVisible = !0),
                    i.removeCssClass(this.element, "ace_hidden-cursors"),
                    this.restartTimer();
                }),
                (this.restartTimer = function () {
                  var e = this.$updateCursors;
                  if (
                    (clearInterval(this.intervalId),
                    clearTimeout(this.timeoutId),
                    this.$stopCssAnimation(),
                    this.smoothBlinking &&
                      i.removeCssClass(this.element, "ace_smooth-blinking"),
                    e(!0),
                    this.isBlinking && this.blinkInterval && this.isVisible)
                  )
                    if (
                      (this.smoothBlinking &&
                        setTimeout(
                          function () {
                            i.addCssClass(this.element, "ace_smooth-blinking");
                          }.bind(this)
                        ),
                      i.HAS_CSS_ANIMATION)
                    )
                      this.$startCssAnimation();
                    else {
                      var t = function () {
                        this.timeoutId = setTimeout(function () {
                          e(!1);
                        }, 0.6 * this.blinkInterval);
                      }.bind(this);
                      (this.intervalId = setInterval(function () {
                        e(!0), t();
                      }, this.blinkInterval)),
                        t();
                    }
                  else this.$stopCssAnimation();
                }),
                (this.getPixelPosition = function (e, t) {
                  if (!this.config || !this.session)
                    return {
                      left: 0,
                      top: 0,
                    };
                  e || (e = this.session.selection.getCursor());
                  var n = this.session.documentToScreenPosition(e);
                  return {
                    left:
                      this.$padding +
                      (this.session.$bidiHandler.isBidiRow(n.row, e.row)
                        ? this.session.$bidiHandler.getPosLeft(n.column)
                        : n.column * this.config.characterWidth),
                    top:
                      (n.row - (t ? this.config.firstRowScreen : 0)) *
                      this.config.lineHeight,
                  };
                }),
                (this.isCursorInView = function (e, t) {
                  return e.top >= 0 && e.top < t.maxHeight;
                }),
                (this.update = function (e) {
                  this.config = e;
                  var t = this.session.$selectionMarkers,
                    n = 0,
                    r = 0;
                  (void 0 !== t && 0 !== t.length) ||
                    (t = [
                      {
                        cursor: null,
                      },
                    ]);
                  n = 0;
                  for (var o = t.length; n < o; n++) {
                    var s = this.getPixelPosition(t[n].cursor, !0);
                    if (
                      !((s.top > e.height + e.offset || s.top < 0) && n > 1)
                    ) {
                      var a = this.cursors[r++] || this.addCursor(),
                        l = a.style;
                      this.drawCursor
                        ? this.drawCursor(a, s, e, t[n], this.session)
                        : this.isCursorInView(s, e)
                        ? (i.setStyle(l, "display", "block"),
                          i.translate(a, s.left, s.top),
                          i.setStyle(
                            l,
                            "width",
                            Math.round(e.characterWidth) + "px"
                          ),
                          i.setStyle(l, "height", e.lineHeight + "px"))
                        : i.setStyle(l, "display", "none");
                    }
                  }
                  for (; this.cursors.length > r; ) this.removeCursor();
                  var c = this.session.getOverwrite();
                  this.$setOverwrite(c),
                    (this.$pixelPos = s),
                    this.restartTimer();
                }),
                (this.drawCursor = null),
                (this.$setOverwrite = function (e) {
                  e != this.overwrite &&
                    ((this.overwrite = e),
                    e
                      ? i.addCssClass(this.element, "ace_overwrite-cursors")
                      : i.removeCssClass(
                          this.element,
                          "ace_overwrite-cursors"
                        ));
                }),
                (this.destroy = function () {
                  clearInterval(this.intervalId), clearTimeout(this.timeoutId);
                });
            }).call(r.prototype),
              (t.Cursor = r);
          }
        ),
        ace.define(
          "ace/scrollbar",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/dom",
            "ace/lib/event",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/dom"),
              o = e("./lib/event"),
              s = e("./lib/event_emitter").EventEmitter,
              a = function (e) {
                (this.element = r.createElement("div")),
                  (this.element.className =
                    "ace_scrollbar ace_scrollbar" + this.classSuffix),
                  (this.inner = r.createElement("div")),
                  (this.inner.className = "ace_scrollbar-inner"),
                  (this.inner.textContent = " "),
                  this.element.appendChild(this.inner),
                  e.appendChild(this.element),
                  this.setVisible(!1),
                  (this.skipEvent = !1),
                  o.addListener(
                    this.element,
                    "scroll",
                    this.onScroll.bind(this)
                  ),
                  o.addListener(this.element, "mousedown", o.preventDefault);
              };
            (function () {
              i.implement(this, s),
                (this.setVisible = function (e) {
                  (this.element.style.display = e ? "" : "none"),
                    (this.isVisible = e),
                    (this.coeff = 1);
                });
            }).call(a.prototype);
            var l = function (e, t) {
              a.call(this, e),
                (this.scrollTop = 0),
                (this.scrollHeight = 0),
                (t.$scrollbarWidth = this.width =
                  r.scrollbarWidth(e.ownerDocument)),
                (this.inner.style.width = this.element.style.width =
                  (this.width || 15) + 5 + "px"),
                (this.$minWidth = 0);
            };
            i.inherits(l, a),
              function () {
                (this.classSuffix = "-v"),
                  (this.onScroll = function () {
                    if (!this.skipEvent) {
                      if (
                        ((this.scrollTop = this.element.scrollTop),
                        1 != this.coeff)
                      ) {
                        var e = this.element.clientHeight / this.scrollHeight;
                        this.scrollTop =
                          (this.scrollTop * (1 - e)) / (this.coeff - e);
                      }
                      this._emit("scroll", {
                        data: this.scrollTop,
                      });
                    }
                    this.skipEvent = !1;
                  }),
                  (this.getWidth = function () {
                    return Math.max(
                      this.isVisible ? this.width : 0,
                      this.$minWidth || 0
                    );
                  }),
                  (this.setHeight = function (e) {
                    this.element.style.height = e + "px";
                  }),
                  (this.setInnerHeight = this.setScrollHeight =
                    function (e) {
                      (this.scrollHeight = e),
                        e > 32768
                          ? ((this.coeff = 32768 / e), (e = 32768))
                          : 1 != this.coeff && (this.coeff = 1),
                        (this.inner.style.height = e + "px");
                    }),
                  (this.setScrollTop = function (e) {
                    this.scrollTop != e &&
                      ((this.skipEvent = !0),
                      (this.scrollTop = e),
                      (this.element.scrollTop = e * this.coeff));
                  });
              }.call(l.prototype);
            var c = function (e, t) {
              a.call(this, e),
                (this.scrollLeft = 0),
                (this.height = t.$scrollbarWidth),
                (this.inner.style.height = this.element.style.height =
                  (this.height || 15) + 5 + "px");
            };
            i.inherits(c, a),
              function () {
                (this.classSuffix = "-h"),
                  (this.onScroll = function () {
                    this.skipEvent ||
                      ((this.scrollLeft = this.element.scrollLeft),
                      this._emit("scroll", {
                        data: this.scrollLeft,
                      })),
                      (this.skipEvent = !1);
                  }),
                  (this.getHeight = function () {
                    return this.isVisible ? this.height : 0;
                  }),
                  (this.setWidth = function (e) {
                    this.element.style.width = e + "px";
                  }),
                  (this.setInnerWidth = function (e) {
                    this.inner.style.width = e + "px";
                  }),
                  (this.setScrollWidth = function (e) {
                    this.inner.style.width = e + "px";
                  }),
                  (this.setScrollLeft = function (e) {
                    this.scrollLeft != e &&
                      ((this.skipEvent = !0),
                      (this.scrollLeft = this.element.scrollLeft = e));
                  });
              }.call(c.prototype),
              (t.ScrollBar = l),
              (t.ScrollBarV = l),
              (t.ScrollBarH = c),
              (t.VScrollBar = l),
              (t.HScrollBar = c);
          }
        ),
        ace.define(
          "ace/renderloop",
          ["require", "exports", "module", "ace/lib/event"],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/event"),
              r = function (e, t) {
                (this.onRender = e),
                  (this.pending = !1),
                  (this.changes = 0),
                  (this.$recursionLimit = 2),
                  (this.window = t || window);
                var n = this;
                this._flush = function (e) {
                  n.pending = !1;
                  var t = n.changes;
                  if (
                    (t && (i.blockIdle(100), (n.changes = 0), n.onRender(t)),
                    n.changes)
                  ) {
                    if (n.$recursionLimit-- < 0) return;
                    n.schedule();
                  } else n.$recursionLimit = 2;
                };
              };
            (function () {
              (this.schedule = function (e) {
                (this.changes = this.changes | e),
                  this.changes &&
                    !this.pending &&
                    (i.nextFrame(this._flush), (this.pending = !0));
              }),
                (this.clear = function (e) {
                  var t = this.changes;
                  return (this.changes = 0), t;
                });
            }).call(r.prototype),
              (t.RenderLoop = r);
          }
        ),
        ace.define(
          "ace/layer/font_metrics",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/dom",
            "ace/lib/lang",
            "ace/lib/event",
            "ace/lib/useragent",
            "ace/lib/event_emitter",
          ],
          function (e, t, n) {
            var i = e("../lib/oop"),
              r = e("../lib/dom"),
              o = e("../lib/lang"),
              s = e("../lib/event"),
              a = e("../lib/useragent"),
              l = e("../lib/event_emitter").EventEmitter,
              c = "function" == typeof ResizeObserver,
              d = 200,
              u = (t.FontMetrics = function (e) {
                (this.el = r.createElement("div")),
                  this.$setMeasureNodeStyles(this.el.style, !0),
                  (this.$main = r.createElement("div")),
                  this.$setMeasureNodeStyles(this.$main.style),
                  (this.$measureNode = r.createElement("div")),
                  this.$setMeasureNodeStyles(this.$measureNode.style),
                  this.el.appendChild(this.$main),
                  this.el.appendChild(this.$measureNode),
                  e.appendChild(this.el),
                  (this.$measureNode.textContent = o.stringRepeat("X", 256)),
                  (this.$characterSize = {
                    width: 0,
                    height: 0,
                  }),
                  c ? this.$addObserver() : this.checkForSizeChanges();
              });
            (function () {
              i.implement(this, l),
                (this.$characterSize = {
                  width: 0,
                  height: 0,
                }),
                (this.$setMeasureNodeStyles = function (e, t) {
                  (e.width = e.height = "auto"),
                    (e.left = e.top = "0px"),
                    (e.visibility = "hidden"),
                    (e.position = "absolute"),
                    (e.whiteSpace = "pre"),
                    a.isIE < 8
                      ? (e["font-family"] = "inherit")
                      : (e.font = "inherit"),
                    (e.overflow = t ? "hidden" : "visible");
                }),
                (this.checkForSizeChanges = function (e) {
                  if (
                    (void 0 === e && (e = this.$measureSizes()),
                    e &&
                      (this.$characterSize.width !== e.width ||
                        this.$characterSize.height !== e.height))
                  ) {
                    this.$measureNode.style.fontWeight = "bold";
                    var t = this.$measureSizes();
                    (this.$measureNode.style.fontWeight = ""),
                      (this.$characterSize = e),
                      (this.charSizes = Object.create(null)),
                      (this.allowBoldFonts =
                        t && t.width === e.width && t.height === e.height),
                      this._emit("changeCharacterSize", {
                        data: e,
                      });
                  }
                }),
                (this.$addObserver = function () {
                  var e = this;
                  (this.$observer = new window.ResizeObserver(function (t) {
                    e.checkForSizeChanges();
                  })),
                    this.$observer.observe(this.$measureNode);
                }),
                (this.$pollSizeChanges = function () {
                  if (this.$pollSizeChangesTimer || this.$observer)
                    return this.$pollSizeChangesTimer;
                  var e = this;
                  return (this.$pollSizeChangesTimer = s.onIdle(function t() {
                    e.checkForSizeChanges(), s.onIdle(t, 500);
                  }, 500));
                }),
                (this.setPolling = function (e) {
                  e
                    ? this.$pollSizeChanges()
                    : this.$pollSizeChangesTimer &&
                      (clearInterval(this.$pollSizeChangesTimer),
                      (this.$pollSizeChangesTimer = 0));
                }),
                (this.$measureSizes = function (e) {
                  var t = {
                    height: (e || this.$measureNode).clientHeight,
                    width: (e || this.$measureNode).clientWidth / 256,
                  };
                  return 0 === t.width || 0 === t.height ? null : t;
                }),
                (this.$measureCharWidth = function (e) {
                  return (
                    (this.$main.textContent = o.stringRepeat(e, 256)),
                    this.$main.getBoundingClientRect().width / 256
                  );
                }),
                (this.getCharacterWidth = function (e) {
                  var t = this.charSizes[e];
                  return (
                    void 0 === t &&
                      (t = this.charSizes[e] =
                        this.$measureCharWidth(e) / this.$characterSize.width),
                    t
                  );
                }),
                (this.destroy = function () {
                  clearInterval(this.$pollSizeChangesTimer),
                    this.$observer && this.$observer.disconnect(),
                    this.el &&
                      this.el.parentNode &&
                      this.el.parentNode.removeChild(this.el);
                }),
                (this.$getZoom = function e(t) {
                  return t && t.parentElement
                    ? (window.getComputedStyle(t).zoom || 1) *
                        e(t.parentElement)
                    : 1;
                }),
                (this.$initTransformMeasureNodes = function () {
                  var e = function (e, t) {
                    return [
                      "div",
                      {
                        style:
                          "position: absolute;top:" +
                          e +
                          "px;left:" +
                          t +
                          "px;",
                      },
                    ];
                  };
                  this.els = r.buildDom(
                    [e(0, 0), e(d, 0), e(0, d), e(d, d)],
                    this.el
                  );
                }),
                (this.transformCoordinates = function (e, t) {
                  e && (e = o(1 / this.$getZoom(this.el), e));

                  function n(e, t, n) {
                    var i = e[1] * t[0] - e[0] * t[1];
                    return [
                      (-t[1] * n[0] + t[0] * n[1]) / i,
                      (+e[1] * n[0] - e[0] * n[1]) / i,
                    ];
                  }

                  function i(e, t) {
                    return [e[0] - t[0], e[1] - t[1]];
                  }

                  function r(e, t) {
                    return [e[0] + t[0], e[1] + t[1]];
                  }

                  function o(e, t) {
                    return [e * t[0], e * t[1]];
                  }

                  function s(e) {
                    var t = e.getBoundingClientRect();
                    return [t.left, t.top];
                  }
                  this.els || this.$initTransformMeasureNodes();
                  var a = s(this.els[0]),
                    l = s(this.els[1]),
                    c = s(this.els[2]),
                    u = s(this.els[3]),
                    h = n(i(u, l), i(u, c), i(r(l, c), r(u, a))),
                    g = o(1 + h[0], i(l, a)),
                    p = o(1 + h[1], i(c, a));
                  if (t) {
                    var A = t,
                      f = (h[0] * A[0]) / d + (h[1] * A[1]) / d + 1,
                      m = r(o(A[0], g), o(A[1], p));
                    return r(o(1 / f / d, m), a);
                  }
                  var v = i(e, a),
                    b = n(i(g, o(h[0], v)), i(p, o(h[1], v)), v);
                  return o(d, b);
                });
            }).call(u.prototype);
          }
        ),
        ace.define(
          "ace/virtual_renderer",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/dom",
            "ace/config",
            "ace/layer/gutter",
            "ace/layer/marker",
            "ace/layer/text",
            "ace/layer/cursor",
            "ace/scrollbar",
            "ace/scrollbar",
            "ace/renderloop",
            "ace/layer/font_metrics",
            "ace/lib/event_emitter",
            "ace/lib/useragent",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/oop"),
              r = e("./lib/dom"),
              o = e("./config"),
              s = e("./layer/gutter").Gutter,
              a = e("./layer/marker").Marker,
              l = e("./layer/text").Text,
              c = e("./layer/cursor").Cursor,
              d = e("./scrollbar").HScrollBar,
              u = e("./scrollbar").VScrollBar,
              h = e("./renderloop").RenderLoop,
              g = e("./layer/font_metrics").FontMetrics,
              p = e("./lib/event_emitter").EventEmitter,
              A =
                '.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;padding: 0;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;font-variant-ligatures: no-common-ligatures;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_error_bracket {position: absolute;border-bottom: 1px solid #DE5555;border-radius: 0;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);transform-origin: left;white-space: pre;opacity: 0.7;margin: 0 10px;}',
              f = e("./lib/useragent"),
              m = f.isIE;
            r.importCssString(A, "ace_editor.css");
            var v = function (e, t) {
              var n = this;
              (this.container = e || r.createElement("div")),
                r.addCssClass(this.container, "ace_editor"),
                r.HI_DPI && r.addCssClass(this.container, "ace_hidpi"),
                this.setTheme(t),
                (this.$gutter = r.createElement("div")),
                (this.$gutter.className = "ace_gutter"),
                this.container.appendChild(this.$gutter),
                this.$gutter.setAttribute("aria-hidden", !0),
                (this.scroller = r.createElement("div")),
                (this.scroller.className = "ace_scroller"),
                this.container.appendChild(this.scroller),
                (this.content = r.createElement("div")),
                (this.content.className = "ace_content"),
                this.scroller.appendChild(this.content),
                (this.$gutterLayer = new s(this.$gutter)),
                this.$gutterLayer.on(
                  "changeGutterWidth",
                  this.onGutterResize.bind(this)
                ),
                (this.$markerBack = new a(this.content));
              var i = (this.$textLayer = new l(this.content));
              (this.canvas = i.element),
                (this.$markerFront = new a(this.content)),
                (this.$cursorLayer = new c(this.content)),
                (this.$horizScroll = !1),
                (this.$vScroll = !1),
                (this.scrollBar = this.scrollBarV =
                  new u(this.container, this)),
                (this.scrollBarH = new d(this.container, this)),
                this.scrollBarV.on("scroll", function (e) {
                  n.$scrollAnimation ||
                    n.session.setScrollTop(e.data - n.scrollMargin.top);
                }),
                this.scrollBarH.on("scroll", function (e) {
                  n.$scrollAnimation ||
                    n.session.setScrollLeft(e.data - n.scrollMargin.left);
                }),
                (this.scrollTop = 0),
                (this.scrollLeft = 0),
                (this.cursorPos = {
                  row: 0,
                  column: 0,
                }),
                (this.$fontMetrics = new g(this.container)),
                this.$textLayer.$setFontMetrics(this.$fontMetrics),
                this.$textLayer.on("changeCharacterSize", function (e) {
                  n.updateCharacterSize(),
                    n.onResize(
                      !0,
                      n.gutterWidth,
                      n.$size.width,
                      n.$size.height
                    ),
                    n._signal("changeCharacterSize", e);
                }),
                (this.$size = {
                  width: 0,
                  height: 0,
                  scrollerHeight: 0,
                  scrollerWidth: 0,
                  $dirty: !0,
                }),
                (this.layerConfig = {
                  width: 1,
                  padding: 0,
                  firstRow: 0,
                  firstRowScreen: 0,
                  lastRow: 0,
                  lineHeight: 0,
                  characterWidth: 0,
                  minHeight: 1,
                  maxHeight: 1,
                  offset: 0,
                  height: 1,
                  gutterOffset: 1,
                }),
                (this.scrollMargin = {
                  left: 0,
                  right: 0,
                  top: 0,
                  bottom: 0,
                  v: 0,
                  h: 0,
                }),
                (this.margin = {
                  left: 0,
                  right: 0,
                  top: 0,
                  bottom: 0,
                  v: 0,
                  h: 0,
                }),
                (this.$keepTextAreaAtCursor = !f.isIOS),
                (this.$loop = new h(
                  this.$renderChanges.bind(this),
                  this.container.ownerDocument.defaultView
                )),
                this.$loop.schedule(this.CHANGE_FULL),
                this.updateCharacterSize(),
                this.setPadding(4),
                o.resetOptions(this),
                o._signal("renderer", this);
            };
            (function () {
              (this.CHANGE_CURSOR = 1),
                (this.CHANGE_MARKER = 2),
                (this.CHANGE_GUTTER = 4),
                (this.CHANGE_SCROLL = 8),
                (this.CHANGE_LINES = 16),
                (this.CHANGE_TEXT = 32),
                (this.CHANGE_SIZE = 64),
                (this.CHANGE_MARKER_BACK = 128),
                (this.CHANGE_MARKER_FRONT = 256),
                (this.CHANGE_FULL = 512),
                (this.CHANGE_H_SCROLL = 1024),
                i.implement(this, p),
                (this.updateCharacterSize = function () {
                  this.$textLayer.allowBoldFonts != this.$allowBoldFonts &&
                    ((this.$allowBoldFonts = this.$textLayer.allowBoldFonts),
                    this.setStyle("ace_nobold", !this.$allowBoldFonts)),
                    (this.layerConfig.characterWidth = this.characterWidth =
                      this.$textLayer.getCharacterWidth()),
                    (this.layerConfig.lineHeight = this.lineHeight =
                      this.$textLayer.getLineHeight()),
                    this.$updatePrintMargin(),
                    r.setStyle(
                      this.scroller.style,
                      "line-height",
                      this.lineHeight + "px"
                    );
                }),
                (this.setSession = function (e) {
                  this.session &&
                    this.session.doc.off(
                      "changeNewLineMode",
                      this.onChangeNewLineMode
                    ),
                    (this.session = e),
                    e &&
                      this.scrollMargin.top &&
                      e.getScrollTop() <= 0 &&
                      e.setScrollTop(-this.scrollMargin.top),
                    this.$cursorLayer.setSession(e),
                    this.$markerBack.setSession(e),
                    this.$markerFront.setSession(e),
                    this.$gutterLayer.setSession(e),
                    this.$textLayer.setSession(e),
                    e &&
                      (this.$loop.schedule(this.CHANGE_FULL),
                      this.session.$setFontMetrics(this.$fontMetrics),
                      (this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop =
                        null),
                      (this.onChangeNewLineMode =
                        this.onChangeNewLineMode.bind(this)),
                      this.onChangeNewLineMode(),
                      this.session.doc.on(
                        "changeNewLineMode",
                        this.onChangeNewLineMode
                      ));
                }),
                (this.updateLines = function (e, t, n) {
                  if (
                    (void 0 === t && (t = 1 / 0),
                    this.$changedLines
                      ? (this.$changedLines.firstRow > e &&
                          (this.$changedLines.firstRow = e),
                        this.$changedLines.lastRow < t &&
                          (this.$changedLines.lastRow = t))
                      : (this.$changedLines = {
                          firstRow: e,
                          lastRow: t,
                        }),
                    this.$changedLines.lastRow < this.layerConfig.firstRow)
                  ) {
                    if (!n) return;
                    this.$changedLines.lastRow = this.layerConfig.lastRow;
                  }
                  this.$changedLines.firstRow > this.layerConfig.lastRow ||
                    this.$loop.schedule(this.CHANGE_LINES);
                }),
                (this.onChangeNewLineMode = function () {
                  this.$loop.schedule(this.CHANGE_TEXT),
                    this.$textLayer.$updateEolChar(),
                    this.session.$bidiHandler.setEolChar(
                      this.$textLayer.EOL_CHAR
                    );
                }),
                (this.onChangeTabSize = function () {
                  this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER),
                    this.$textLayer.onChangeTabSize();
                }),
                (this.updateText = function () {
                  this.$loop.schedule(this.CHANGE_TEXT);
                }),
                (this.updateFull = function (e) {
                  e
                    ? this.$renderChanges(this.CHANGE_FULL, !0)
                    : this.$loop.schedule(this.CHANGE_FULL);
                }),
                (this.updateFontSize = function () {
                  this.$textLayer.checkForSizeChanges();
                }),
                (this.$changes = 0),
                (this.$updateSizeAsync = function () {
                  this.$loop.pending
                    ? (this.$size.$dirty = !0)
                    : this.onResize();
                }),
                (this.onResize = function (e, t, n, i) {
                  if (!(this.resizing > 2)) {
                    this.resizing > 0
                      ? this.resizing++
                      : (this.resizing = e ? 1 : 0);
                    var r = this.container;
                    i || (i = r.clientHeight || r.scrollHeight),
                      n || (n = r.clientWidth || r.scrollWidth);
                    var o = this.$updateCachedSize(e, t, n, i);
                    if (!this.$size.scrollerHeight || (!n && !i))
                      return (this.resizing = 0);
                    e && (this.$gutterLayer.$padding = null),
                      e
                        ? this.$renderChanges(o | this.$changes, !0)
                        : this.$loop.schedule(o | this.$changes),
                      this.resizing && (this.resizing = 0),
                      (this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop =
                        null);
                  }
                }),
                (this.$updateCachedSize = function (e, t, n, i) {
                  i -= this.$extraHeight || 0;
                  var o = 0,
                    s = this.$size,
                    a = {
                      width: s.width,
                      height: s.height,
                      scrollerHeight: s.scrollerHeight,
                      scrollerWidth: s.scrollerWidth,
                    };
                  if (
                    (i &&
                      (e || s.height != i) &&
                      ((s.height = i),
                      (o |= this.CHANGE_SIZE),
                      (s.scrollerHeight = s.height),
                      this.$horizScroll &&
                        (s.scrollerHeight -= this.scrollBarH.getHeight()),
                      (this.scrollBarV.element.style.bottom =
                        this.scrollBarH.getHeight() + "px"),
                      (o |= this.CHANGE_SCROLL)),
                    n && (e || s.width != n))
                  ) {
                    (o |= this.CHANGE_SIZE),
                      (s.width = n),
                      null == t &&
                        (t = this.$showGutter ? this.$gutter.offsetWidth : 0),
                      (this.gutterWidth = t),
                      r.setStyle(
                        this.scrollBarH.element.style,
                        "left",
                        t + "px"
                      ),
                      r.setStyle(
                        this.scroller.style,
                        "left",
                        t + this.margin.left + "px"
                      ),
                      (s.scrollerWidth = Math.max(
                        0,
                        n - t - this.scrollBarV.getWidth() - this.margin.h
                      )),
                      r.setStyle(
                        this.$gutter.style,
                        "left",
                        this.margin.left + "px"
                      );
                    var l = this.scrollBarV.getWidth() + "px";
                    r.setStyle(this.scrollBarH.element.style, "right", l),
                      r.setStyle(this.scroller.style, "right", l),
                      r.setStyle(
                        this.scroller.style,
                        "bottom",
                        this.scrollBarH.getHeight()
                      ),
                      ((this.session &&
                        this.session.getUseWrapMode() &&
                        this.adjustWrapLimit()) ||
                        e) &&
                        (o |= this.CHANGE_FULL);
                  }
                  return (
                    (s.$dirty = !n || !i), o && this._signal("resize", a), o
                  );
                }),
                (this.onGutterResize = function (e) {
                  var t = this.$showGutter ? e : 0;
                  t != this.gutterWidth &&
                    (this.$changes |= this.$updateCachedSize(
                      !0,
                      t,
                      this.$size.width,
                      this.$size.height
                    )),
                    (this.session.getUseWrapMode() && this.adjustWrapLimit()) ||
                    this.$size.$dirty
                      ? this.$loop.schedule(this.CHANGE_FULL)
                      : this.$computeLayerConfig();
                }),
                (this.adjustWrapLimit = function () {
                  var e = this.$size.scrollerWidth - 2 * this.$padding,
                    t = Math.floor(e / this.characterWidth);
                  return this.session.adjustWrapLimit(
                    t,
                    this.$showPrintMargin && this.$printMarginColumn
                  );
                }),
                (this.setAnimatedScroll = function (e) {
                  this.setOption("animatedScroll", e);
                }),
                (this.getAnimatedScroll = function () {
                  return this.$animatedScroll;
                }),
                (this.setShowInvisibles = function (e) {
                  this.setOption("showInvisibles", e),
                    this.session.$bidiHandler.setShowInvisibles(e);
                }),
                (this.getShowInvisibles = function () {
                  return this.getOption("showInvisibles");
                }),
                (this.getDisplayIndentGuides = function () {
                  return this.getOption("displayIndentGuides");
                }),
                (this.setDisplayIndentGuides = function (e) {
                  this.setOption("displayIndentGuides", e);
                }),
                (this.setShowPrintMargin = function (e) {
                  this.setOption("showPrintMargin", e);
                }),
                (this.getShowPrintMargin = function () {
                  return this.getOption("showPrintMargin");
                }),
                (this.setPrintMarginColumn = function (e) {
                  this.setOption("printMarginColumn", e);
                }),
                (this.getPrintMarginColumn = function () {
                  return this.getOption("printMarginColumn");
                }),
                (this.getShowGutter = function () {
                  return this.getOption("showGutter");
                }),
                (this.setShowGutter = function (e) {
                  return this.setOption("showGutter", e);
                }),
                (this.getFadeFoldWidgets = function () {
                  return this.getOption("fadeFoldWidgets");
                }),
                (this.setFadeFoldWidgets = function (e) {
                  this.setOption("fadeFoldWidgets", e);
                }),
                (this.setHighlightGutterLine = function (e) {
                  this.setOption("highlightGutterLine", e);
                }),
                (this.getHighlightGutterLine = function () {
                  return this.getOption("highlightGutterLine");
                }),
                (this.$updatePrintMargin = function () {
                  if (this.$showPrintMargin || this.$printMarginEl) {
                    if (!this.$printMarginEl) {
                      var e = r.createElement("div");
                      (e.className = "ace_layer ace_print-margin-layer"),
                        (this.$printMarginEl = r.createElement("div")),
                        (this.$printMarginEl.className = "ace_print-margin"),
                        e.appendChild(this.$printMarginEl),
                        this.content.insertBefore(e, this.content.firstChild);
                    }
                    var t = this.$printMarginEl.style;
                    (t.left =
                      Math.round(
                        this.characterWidth * this.$printMarginColumn +
                          this.$padding
                      ) + "px"),
                      (t.visibility = this.$showPrintMargin
                        ? "visible"
                        : "hidden"),
                      this.session &&
                        -1 == this.session.$wrap &&
                        this.adjustWrapLimit();
                  }
                }),
                (this.getContainerElement = function () {
                  return this.container;
                }),
                (this.getMouseEventTarget = function () {
                  return this.scroller;
                }),
                (this.getTextAreaContainer = function () {
                  return this.container;
                }),
                (this.$moveTextAreaToCursor = function () {
                  if (!this.$isMousePressed) {
                    var e = this.textarea.style,
                      t = this.$composition;
                    if (this.$keepTextAreaAtCursor || t) {
                      var n = this.$cursorLayer.$pixelPos;
                      if (n) {
                        t &&
                          t.markerRange &&
                          (n = this.$cursorLayer.getPixelPosition(
                            t.markerRange.start,
                            !0
                          ));
                        var i = this.layerConfig,
                          o = n.top,
                          s = n.left;
                        o -= i.offset;
                        var a =
                          t && t.useTextareaForIME
                            ? this.lineHeight
                            : m
                            ? 0
                            : 1;
                        if (o < 0 || o > i.height - a)
                          r.translate(this.textarea, 0, 0);
                        else {
                          var l = 1,
                            c = this.$size.height - a;
                          if (t)
                            if (t.useTextareaForIME) {
                              var d = this.textarea.value;
                              l =
                                this.characterWidth *
                                this.session.$getStringScreenWidth(d)[0];
                            } else o += this.lineHeight + 2;
                          else o += this.lineHeight;
                          (s -= this.scrollLeft) >
                            this.$size.scrollerWidth - l &&
                            (s = this.$size.scrollerWidth - l),
                            (s += this.gutterWidth + this.margin.left),
                            r.setStyle(e, "height", a + "px"),
                            r.setStyle(e, "width", l + "px"),
                            r.translate(
                              this.textarea,
                              Math.min(s, this.$size.scrollerWidth - l),
                              Math.min(o, c)
                            );
                        }
                      }
                    } else r.translate(this.textarea, -100, 0);
                  }
                }),
                (this.getFirstVisibleRow = function () {
                  return this.layerConfig.firstRow;
                }),
                (this.getFirstFullyVisibleRow = function () {
                  return (
                    this.layerConfig.firstRow +
                    (0 === this.layerConfig.offset ? 0 : 1)
                  );
                }),
                (this.getLastFullyVisibleRow = function () {
                  var e = this.layerConfig,
                    t = e.lastRow;
                  return this.session.documentToScreenRow(t, 0) * e.lineHeight -
                    this.session.getScrollTop() >
                    e.height - e.lineHeight
                    ? t - 1
                    : t;
                }),
                (this.getLastVisibleRow = function () {
                  return this.layerConfig.lastRow;
                }),
                (this.$padding = null),
                (this.setPadding = function (e) {
                  (this.$padding = e),
                    this.$textLayer.setPadding(e),
                    this.$cursorLayer.setPadding(e),
                    this.$markerFront.setPadding(e),
                    this.$markerBack.setPadding(e),
                    this.$loop.schedule(this.CHANGE_FULL),
                    this.$updatePrintMargin();
                }),
                (this.setScrollMargin = function (e, t, n, i) {
                  var r = this.scrollMargin;
                  (r.top = 0 | e),
                    (r.bottom = 0 | t),
                    (r.right = 0 | i),
                    (r.left = 0 | n),
                    (r.v = r.top + r.bottom),
                    (r.h = r.left + r.right),
                    r.top &&
                      this.scrollTop <= 0 &&
                      this.session &&
                      this.session.setScrollTop(-r.top),
                    this.updateFull();
                }),
                (this.setMargin = function (e, t, n, i) {
                  var r = this.margin;
                  (r.top = 0 | e),
                    (r.bottom = 0 | t),
                    (r.right = 0 | i),
                    (r.left = 0 | n),
                    (r.v = r.top + r.bottom),
                    (r.h = r.left + r.right),
                    this.$updateCachedSize(
                      !0,
                      this.gutterWidth,
                      this.$size.width,
                      this.$size.height
                    ),
                    this.updateFull();
                }),
                (this.getHScrollBarAlwaysVisible = function () {
                  return this.$hScrollBarAlwaysVisible;
                }),
                (this.setHScrollBarAlwaysVisible = function (e) {
                  this.setOption("hScrollBarAlwaysVisible", e);
                }),
                (this.getVScrollBarAlwaysVisible = function () {
                  return this.$vScrollBarAlwaysVisible;
                }),
                (this.setVScrollBarAlwaysVisible = function (e) {
                  this.setOption("vScrollBarAlwaysVisible", e);
                }),
                (this.$updateScrollBarV = function () {
                  var e = this.layerConfig.maxHeight,
                    t = this.$size.scrollerHeight;
                  !this.$maxLines &&
                    this.$scrollPastEnd &&
                    ((e -= (t - this.lineHeight) * this.$scrollPastEnd),
                    this.scrollTop > e - t &&
                      ((e = this.scrollTop + t),
                      (this.scrollBarV.scrollTop = null))),
                    this.scrollBarV.setScrollHeight(e + this.scrollMargin.v),
                    this.scrollBarV.setScrollTop(
                      this.scrollTop + this.scrollMargin.top
                    );
                }),
                (this.$updateScrollBarH = function () {
                  this.scrollBarH.setScrollWidth(
                    this.layerConfig.width +
                      2 * this.$padding +
                      this.scrollMargin.h
                  ),
                    this.scrollBarH.setScrollLeft(
                      this.scrollLeft + this.scrollMargin.left
                    );
                }),
                (this.$frozen = !1),
                (this.freeze = function () {
                  this.$frozen = !0;
                }),
                (this.unfreeze = function () {
                  this.$frozen = !1;
                }),
                (this.$renderChanges = function (e, t) {
                  if (
                    (this.$changes &&
                      ((e |= this.$changes), (this.$changes = 0)),
                    this.session &&
                      this.container.offsetWidth &&
                      !this.$frozen &&
                      (e || t))
                  ) {
                    if (this.$size.$dirty)
                      return (this.$changes |= e), this.onResize(!0);
                    this.lineHeight || this.$textLayer.checkForSizeChanges(),
                      this._signal("beforeRender", e),
                      this.session &&
                        this.session.$bidiHandler &&
                        this.session.$bidiHandler.updateCharacterWidths(
                          this.$fontMetrics
                        );
                    var n = this.layerConfig;
                    if (
                      e & this.CHANGE_FULL ||
                      e & this.CHANGE_SIZE ||
                      e & this.CHANGE_TEXT ||
                      e & this.CHANGE_LINES ||
                      e & this.CHANGE_SCROLL ||
                      e & this.CHANGE_H_SCROLL
                    ) {
                      if (
                        ((e |= this.$computeLayerConfig() | this.$loop.clear()),
                        n.firstRow != this.layerConfig.firstRow &&
                          n.firstRowScreen == this.layerConfig.firstRowScreen)
                      ) {
                        var i =
                          this.scrollTop +
                          (n.firstRow - this.layerConfig.firstRow) *
                            this.lineHeight;
                        i > 0 &&
                          ((this.scrollTop = i),
                          (e |= this.CHANGE_SCROLL),
                          (e |=
                            this.$computeLayerConfig() | this.$loop.clear()));
                      }
                      (n = this.layerConfig),
                        this.$updateScrollBarV(),
                        e & this.CHANGE_H_SCROLL && this.$updateScrollBarH(),
                        r.translate(this.content, -this.scrollLeft, -n.offset);
                      var o = n.width + 2 * this.$padding + "px",
                        s = n.minHeight + "px";
                      r.setStyle(this.content.style, "width", o),
                        r.setStyle(this.content.style, "height", s);
                    }
                    if (
                      (e & this.CHANGE_H_SCROLL &&
                        (r.translate(this.content, -this.scrollLeft, -n.offset),
                        (this.scroller.className =
                          this.scrollLeft <= 0
                            ? "ace_scroller"
                            : "ace_scroller ace_scroll-left")),
                      e & this.CHANGE_FULL)
                    )
                      return (
                        (this.$changedLines = null),
                        this.$textLayer.update(n),
                        this.$showGutter && this.$gutterLayer.update(n),
                        this.$markerBack.update(n),
                        this.$markerFront.update(n),
                        this.$cursorLayer.update(n),
                        this.$moveTextAreaToCursor(),
                        void this._signal("afterRender", e)
                      );
                    if (e & this.CHANGE_SCROLL)
                      return (
                        (this.$changedLines = null),
                        e & this.CHANGE_TEXT || e & this.CHANGE_LINES
                          ? this.$textLayer.update(n)
                          : this.$textLayer.scrollLines(n),
                        this.$showGutter &&
                          (e & this.CHANGE_GUTTER || e & this.CHANGE_LINES
                            ? this.$gutterLayer.update(n)
                            : this.$gutterLayer.scrollLines(n)),
                        this.$markerBack.update(n),
                        this.$markerFront.update(n),
                        this.$cursorLayer.update(n),
                        this.$moveTextAreaToCursor(),
                        void this._signal("afterRender", e)
                      );
                    e & this.CHANGE_TEXT
                      ? ((this.$changedLines = null),
                        this.$textLayer.update(n),
                        this.$showGutter && this.$gutterLayer.update(n))
                      : e & this.CHANGE_LINES
                      ? (this.$updateLines() ||
                          (e & this.CHANGE_GUTTER && this.$showGutter)) &&
                        this.$gutterLayer.update(n)
                      : e & this.CHANGE_TEXT || e & this.CHANGE_GUTTER
                      ? this.$showGutter && this.$gutterLayer.update(n)
                      : e & this.CHANGE_CURSOR &&
                        this.$highlightGutterLine &&
                        this.$gutterLayer.updateLineHighlight(n),
                      e & this.CHANGE_CURSOR &&
                        (this.$cursorLayer.update(n),
                        this.$moveTextAreaToCursor()),
                      e & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT) &&
                        this.$markerFront.update(n),
                      e & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK) &&
                        this.$markerBack.update(n),
                      this._signal("afterRender", e);
                  } else this.$changes |= e;
                }),
                (this.$autosize = function () {
                  var e = this.session.getScreenLength() * this.lineHeight,
                    t = this.$maxLines * this.lineHeight,
                    n =
                      Math.min(
                        t,
                        Math.max((this.$minLines || 1) * this.lineHeight, e)
                      ) +
                      this.scrollMargin.v +
                      (this.$extraHeight || 0);
                  this.$horizScroll && (n += this.scrollBarH.getHeight()),
                    this.$maxPixelHeight &&
                      n > this.$maxPixelHeight &&
                      (n = this.$maxPixelHeight);
                  var i = !(n <= 2 * this.lineHeight) && e > t;
                  if (
                    n != this.desiredHeight ||
                    this.$size.height != this.desiredHeight ||
                    i != this.$vScroll
                  ) {
                    i != this.$vScroll &&
                      ((this.$vScroll = i), this.scrollBarV.setVisible(i));
                    var r = this.container.clientWidth;
                    (this.container.style.height = n + "px"),
                      this.$updateCachedSize(!0, this.$gutterWidth, r, n),
                      (this.desiredHeight = n),
                      this._signal("autosize");
                  }
                }),
                (this.$computeLayerConfig = function () {
                  var e = this.session,
                    t = this.$size,
                    n = t.height <= 2 * this.lineHeight,
                    i = this.session.getScreenLength() * this.lineHeight,
                    r = this.$getLongestLine(),
                    o =
                      !n &&
                      (this.$hScrollBarAlwaysVisible ||
                        t.scrollerWidth - r - 2 * this.$padding < 0),
                    s = this.$horizScroll !== o;
                  s && ((this.$horizScroll = o), this.scrollBarH.setVisible(o));
                  var a = this.$vScroll;
                  this.$maxLines && this.lineHeight > 1 && this.$autosize();
                  var l = t.scrollerHeight + this.lineHeight,
                    c =
                      !this.$maxLines && this.$scrollPastEnd
                        ? (t.scrollerHeight - this.lineHeight) *
                          this.$scrollPastEnd
                        : 0;
                  i += c;
                  var d = this.scrollMargin;
                  this.session.setScrollTop(
                    Math.max(
                      -d.top,
                      Math.min(this.scrollTop, i - t.scrollerHeight + d.bottom)
                    )
                  ),
                    this.session.setScrollLeft(
                      Math.max(
                        -d.left,
                        Math.min(
                          this.scrollLeft,
                          r + 2 * this.$padding - t.scrollerWidth + d.right
                        )
                      )
                    );
                  var u =
                      !n &&
                      (this.$vScrollBarAlwaysVisible ||
                        t.scrollerHeight - i + c < 0 ||
                        this.scrollTop > d.top),
                    h = a !== u;
                  h && ((this.$vScroll = u), this.scrollBarV.setVisible(u));
                  var g,
                    p,
                    A = this.scrollTop % this.lineHeight,
                    f = Math.ceil(l / this.lineHeight) - 1,
                    m = Math.max(
                      0,
                      Math.round((this.scrollTop - A) / this.lineHeight)
                    ),
                    v = m + f,
                    b = this.lineHeight;
                  m = e.screenToDocumentRow(m, 0);
                  var w = e.getFoldLine(m);
                  w && (m = w.start.row),
                    (g = e.documentToScreenRow(m, 0)),
                    (p = e.getRowLength(m) * b),
                    (v = Math.min(
                      e.screenToDocumentRow(v, 0),
                      e.getLength() - 1
                    )),
                    (l = t.scrollerHeight + e.getRowLength(v) * b + p),
                    (A = this.scrollTop - g * b);
                  var y = 0;
                  return (
                    (this.layerConfig.width != r || s) &&
                      (y = this.CHANGE_H_SCROLL),
                    (s || h) &&
                      ((y |= this.$updateCachedSize(
                        !0,
                        this.gutterWidth,
                        t.width,
                        t.height
                      )),
                      this._signal("scrollbarVisibilityChanged"),
                      h && (r = this.$getLongestLine())),
                    (this.layerConfig = {
                      width: r,
                      padding: this.$padding,
                      firstRow: m,
                      firstRowScreen: g,
                      lastRow: v,
                      lineHeight: b,
                      characterWidth: this.characterWidth,
                      minHeight: l,
                      maxHeight: i,
                      offset: A,
                      gutterOffset: b
                        ? Math.max(
                            0,
                            Math.ceil((A + t.height - t.scrollerHeight) / b)
                          )
                        : 0,
                      height: this.$size.scrollerHeight,
                    }),
                    this.session.$bidiHandler &&
                      this.session.$bidiHandler.setContentWidth(
                        r - this.$padding
                      ),
                    y
                  );
                }),
                (this.$updateLines = function () {
                  if (this.$changedLines) {
                    var e = this.$changedLines.firstRow,
                      t = this.$changedLines.lastRow;
                    this.$changedLines = null;
                    var n = this.layerConfig;
                    if (!(e > n.lastRow + 1 || t < n.firstRow))
                      return t === 1 / 0
                        ? (this.$showGutter && this.$gutterLayer.update(n),
                          void this.$textLayer.update(n))
                        : (this.$textLayer.updateLines(n, e, t), !0);
                  }
                }),
                (this.$getLongestLine = function () {
                  var e = this.session.getScreenWidth();
                  return (
                    this.showInvisibles &&
                      !this.session.$useWrapMode &&
                      (e += 1),
                    this.$textLayer &&
                      e > this.$textLayer.MAX_LINE_LENGTH &&
                      (e = this.$textLayer.MAX_LINE_LENGTH + 30),
                    Math.max(
                      this.$size.scrollerWidth - 2 * this.$padding,
                      Math.round(e * this.characterWidth)
                    )
                  );
                }),
                (this.updateFrontMarkers = function () {
                  this.$markerFront.setMarkers(this.session.getMarkers(!0)),
                    this.$loop.schedule(this.CHANGE_MARKER_FRONT);
                }),
                (this.updateBackMarkers = function () {
                  this.$markerBack.setMarkers(this.session.getMarkers()),
                    this.$loop.schedule(this.CHANGE_MARKER_BACK);
                }),
                (this.addGutterDecoration = function (e, t) {
                  this.$gutterLayer.addGutterDecoration(e, t);
                }),
                (this.removeGutterDecoration = function (e, t) {
                  this.$gutterLayer.removeGutterDecoration(e, t);
                }),
                (this.updateBreakpoints = function (e) {
                  this.$loop.schedule(this.CHANGE_GUTTER);
                }),
                (this.setAnnotations = function (e) {
                  this.$gutterLayer.setAnnotations(e),
                    this.$loop.schedule(this.CHANGE_GUTTER);
                }),
                (this.updateCursor = function () {
                  this.$loop.schedule(this.CHANGE_CURSOR);
                }),
                (this.hideCursor = function () {
                  this.$cursorLayer.hideCursor();
                }),
                (this.showCursor = function () {
                  this.$cursorLayer.showCursor();
                }),
                (this.scrollSelectionIntoView = function (e, t, n) {
                  this.scrollCursorIntoView(e, n),
                    this.scrollCursorIntoView(t, n);
                }),
                (this.scrollCursorIntoView = function (e, t, n) {
                  if (0 !== this.$size.scrollerHeight) {
                    var i = this.$cursorLayer.getPixelPosition(e),
                      r = i.left,
                      o = i.top,
                      s = (n && n.top) || 0,
                      a = (n && n.bottom) || 0,
                      l = this.$scrollAnimation
                        ? this.session.getScrollTop()
                        : this.scrollTop;
                    l + s > o
                      ? (t &&
                          l + s > o + this.lineHeight &&
                          (o -= t * this.$size.scrollerHeight),
                        0 === o && (o = -this.scrollMargin.top),
                        this.session.setScrollTop(o))
                      : l + this.$size.scrollerHeight - a <
                          o + this.lineHeight &&
                        (t &&
                          l + this.$size.scrollerHeight - a <
                            o - this.lineHeight &&
                          (o += t * this.$size.scrollerHeight),
                        this.session.setScrollTop(
                          o + this.lineHeight + a - this.$size.scrollerHeight
                        ));
                    var c = this.scrollLeft;
                    c > r
                      ? (r <
                          this.$padding + 2 * this.layerConfig.characterWidth &&
                          (r = -this.scrollMargin.left),
                        this.session.setScrollLeft(r))
                      : c + this.$size.scrollerWidth < r + this.characterWidth
                      ? this.session.setScrollLeft(
                          Math.round(
                            r + this.characterWidth - this.$size.scrollerWidth
                          )
                        )
                      : c <= this.$padding &&
                        r - c < this.characterWidth &&
                        this.session.setScrollLeft(0);
                  }
                }),
                (this.getScrollTop = function () {
                  return this.session.getScrollTop();
                }),
                (this.getScrollLeft = function () {
                  return this.session.getScrollLeft();
                }),
                (this.getScrollTopRow = function () {
                  return this.scrollTop / this.lineHeight;
                }),
                (this.getScrollBottomRow = function () {
                  return Math.max(
                    0,
                    Math.floor(
                      (this.scrollTop + this.$size.scrollerHeight) /
                        this.lineHeight
                    ) - 1
                  );
                }),
                (this.scrollToRow = function (e) {
                  this.session.setScrollTop(e * this.lineHeight);
                }),
                (this.alignCursor = function (e, t) {
                  "number" == typeof e &&
                    (e = {
                      row: e,
                      column: 0,
                    });
                  var n = this.$cursorLayer.getPixelPosition(e),
                    i = this.$size.scrollerHeight - this.lineHeight,
                    r = n.top - i * (t || 0);
                  return this.session.setScrollTop(r), r;
                }),
                (this.STEPS = 8),
                (this.$calcSteps = function (e, t) {
                  var n,
                    i,
                    r = 0,
                    o = this.STEPS,
                    s = [];
                  for (r = 0; r < o; ++r)
                    s.push(
                      ((n = r / this.STEPS),
                      (i = e),
                      (t - e) * (Math.pow(n - 1, 3) + 1) + i)
                    );
                  return s;
                }),
                (this.scrollToLine = function (e, t, n, i) {
                  var r = this.$cursorLayer.getPixelPosition({
                    row: e,
                    column: 0,
                  }).top;
                  t && (r -= this.$size.scrollerHeight / 2);
                  var o = this.scrollTop;
                  this.session.setScrollTop(r),
                    !1 !== n && this.animateScrolling(o, i);
                }),
                (this.animateScrolling = function (e, t) {
                  var n = this.scrollTop;
                  if (this.$animatedScroll) {
                    var i = this;
                    if (e != n) {
                      if (this.$scrollAnimation) {
                        var r = this.$scrollAnimation.steps;
                        if (r.length && (e = r[0]) == n) return;
                      }
                      var o = i.$calcSteps(e, n);
                      (this.$scrollAnimation = {
                        from: e,
                        to: n,
                        steps: o,
                      }),
                        clearInterval(this.$timer),
                        i.session.setScrollTop(o.shift()),
                        (i.session.$scrollTop = n),
                        (this.$timer = setInterval(function () {
                          if (!i.session) return clearInterval(i.$timer);
                          o.length
                            ? (i.session.setScrollTop(o.shift()),
                              (i.session.$scrollTop = n))
                            : null != n
                            ? ((i.session.$scrollTop = -1),
                              i.session.setScrollTop(n),
                              (n = null))
                            : ((i.$timer = clearInterval(i.$timer)),
                              (i.$scrollAnimation = null),
                              t && t());
                        }, 10));
                    }
                  }
                }),
                (this.scrollToY = function (e) {
                  this.scrollTop !== e &&
                    (this.$loop.schedule(this.CHANGE_SCROLL),
                    (this.scrollTop = e));
                }),
                (this.scrollToX = function (e) {
                  this.scrollLeft !== e && (this.scrollLeft = e),
                    this.$loop.schedule(this.CHANGE_H_SCROLL);
                }),
                (this.scrollTo = function (e, t) {
                  this.session.setScrollTop(t), this.session.setScrollLeft(t);
                }),
                (this.scrollBy = function (e, t) {
                  t &&
                    this.session.setScrollTop(this.session.getScrollTop() + t),
                    e &&
                      this.session.setScrollLeft(
                        this.session.getScrollLeft() + e
                      );
                }),
                (this.isScrollableBy = function (e, t) {
                  return (
                    (t < 0 &&
                      this.session.getScrollTop() >=
                        1 - this.scrollMargin.top) ||
                    (t > 0 &&
                      this.session.getScrollTop() +
                        this.$size.scrollerHeight -
                        this.layerConfig.maxHeight <
                        -1 + this.scrollMargin.bottom) ||
                    (e < 0 &&
                      this.session.getScrollLeft() >=
                        1 - this.scrollMargin.left) ||
                    (e > 0 &&
                      this.session.getScrollLeft() +
                        this.$size.scrollerWidth -
                        this.layerConfig.width <
                        -1 + this.scrollMargin.right) ||
                    void 0
                  );
                }),
                (this.pixelToScreenCoordinates = function (e, t) {
                  var n;
                  if (this.$hasCssTransforms) {
                    n = {
                      top: 0,
                      left: 0,
                    };
                    var i = this.$fontMetrics.transformCoordinates([e, t]);
                    (e = i[1] - this.gutterWidth - this.margin.left),
                      (t = i[0]);
                  } else n = this.scroller.getBoundingClientRect();
                  var r = e + this.scrollLeft - n.left - this.$padding,
                    o = r / this.characterWidth,
                    s = Math.floor(
                      (t + this.scrollTop - n.top) / this.lineHeight
                    ),
                    a = this.$blockCursor ? Math.floor(o) : Math.round(o);
                  return {
                    row: s,
                    column: a,
                    side: o - a > 0 ? 1 : -1,
                    offsetX: r,
                  };
                }),
                (this.screenToTextCoordinates = function (e, t) {
                  var n;
                  if (this.$hasCssTransforms) {
                    n = {
                      top: 0,
                      left: 0,
                    };
                    var i = this.$fontMetrics.transformCoordinates([e, t]);
                    (e = i[1] - this.gutterWidth - this.margin.left),
                      (t = i[0]);
                  } else n = this.scroller.getBoundingClientRect();
                  var r = e + this.scrollLeft - n.left - this.$padding,
                    o = r / this.characterWidth,
                    s = this.$blockCursor ? Math.floor(o) : Math.round(o),
                    a = Math.floor(
                      (t + this.scrollTop - n.top) / this.lineHeight
                    );
                  return this.session.screenToDocumentPosition(
                    a,
                    Math.max(s, 0),
                    r
                  );
                }),
                (this.textToScreenCoordinates = function (e, t) {
                  var n = this.scroller.getBoundingClientRect(),
                    i = this.session.documentToScreenPosition(e, t),
                    r =
                      this.$padding +
                      (this.session.$bidiHandler.isBidiRow(i.row, e)
                        ? this.session.$bidiHandler.getPosLeft(i.column)
                        : Math.round(i.column * this.characterWidth)),
                    o = i.row * this.lineHeight;
                  return {
                    pageX: n.left + r - this.scrollLeft,
                    pageY: n.top + o - this.scrollTop,
                  };
                }),
                (this.visualizeFocus = function () {
                  r.addCssClass(this.container, "ace_focus");
                }),
                (this.visualizeBlur = function () {
                  r.removeCssClass(this.container, "ace_focus");
                }),
                (this.showComposition = function (e) {
                  (this.$composition = e),
                    e.cssText || (e.cssText = this.textarea.style.cssText),
                    null == e.useTextareaForIME &&
                      (e.useTextareaForIME = this.$useTextareaForIME),
                    this.$useTextareaForIME
                      ? (r.addCssClass(this.textarea, "ace_composition"),
                        (this.textarea.style.cssText = ""),
                        this.$moveTextAreaToCursor(),
                        (this.$cursorLayer.element.style.display = "none"))
                      : (e.markerId = this.session.addMarker(
                          e.markerRange,
                          "ace_composition_marker",
                          "text"
                        ));
                }),
                (this.setCompositionText = function (e) {
                  var t = this.session.selection.cursor;
                  this.addToken(e, "composition_placeholder", t.row, t.column),
                    this.$moveTextAreaToCursor();
                }),
                (this.hideComposition = function () {
                  if (this.$composition) {
                    this.$composition.markerId &&
                      this.session.removeMarker(this.$composition.markerId),
                      r.removeCssClass(this.textarea, "ace_composition"),
                      (this.textarea.style.cssText = this.$composition.cssText);
                    var e = this.session.selection.cursor;
                    this.removeExtraToken(e.row, e.column),
                      (this.$composition = null),
                      (this.$cursorLayer.element.style.display = "");
                  }
                }),
                (this.addToken = function (e, t, n, i) {
                  var r = this.session;
                  r.bgTokenizer.lines[n] = null;
                  var o = {
                      type: t,
                      value: e,
                    },
                    s = r.getTokens(n);
                  if (null == i) s.push(o);
                  else
                    for (var a = 0, l = 0; l < s.length; l++) {
                      var c = s[l];
                      if (i <= (a += c.value.length)) {
                        var d = c.value.length - (a - i),
                          u = c.value.slice(0, d),
                          h = c.value.slice(d);
                        s.splice(
                          l,
                          1,
                          {
                            type: c.type,
                            value: u,
                          },
                          o,
                          {
                            type: c.type,
                            value: h,
                          }
                        );
                        break;
                      }
                    }
                  this.updateLines(n, n);
                }),
                (this.removeExtraToken = function (e, t) {
                  this.updateLines(e, e);
                }),
                (this.setTheme = function (e, t) {
                  var n = this;
                  if (
                    ((this.$themeId = e),
                    n._dispatchEvent("themeChange", {
                      theme: e,
                    }),
                    e && "string" != typeof e)
                  )
                    s(e);
                  else {
                    var i = e || this.$options.theme.initialValue;
                    o.loadModule(["theme", i], s);
                  }

                  function s(i) {
                    if (n.$themeId != e) return t && t();
                    if (!i || !i.cssClass)
                      throw new Error(
                        "couldn't load module " +
                          e +
                          " or it didn't call define"
                      );
                    i.$id && (n.$themeId = i.$id),
                      r.importCssString(i.cssText, i.cssClass, n.container),
                      n.theme &&
                        r.removeCssClass(n.container, n.theme.cssClass);
                    var o =
                      "padding" in i
                        ? i.padding
                        : "padding" in (n.theme || {})
                        ? 4
                        : n.$padding;
                    n.$padding && o != n.$padding && n.setPadding(o),
                      (n.$theme = i.cssClass),
                      (n.theme = i),
                      r.addCssClass(n.container, i.cssClass),
                      r.setCssClass(n.container, "ace_dark", i.isDark),
                      n.$size && ((n.$size.width = 0), n.$updateSizeAsync()),
                      n._dispatchEvent("themeLoaded", {
                        theme: i,
                      }),
                      t && t();
                  }
                }),
                (this.getTheme = function () {
                  return this.$themeId;
                }),
                (this.setStyle = function (e, t) {
                  r.setCssClass(this.container, e, !1 !== t);
                }),
                (this.unsetStyle = function (e) {
                  r.removeCssClass(this.container, e);
                }),
                (this.setCursorStyle = function (e) {
                  r.setStyle(this.scroller.style, "cursor", e);
                }),
                (this.setMouseCursor = function (e) {
                  r.setStyle(this.scroller.style, "cursor", e);
                }),
                (this.attachToShadowRoot = function () {
                  r.importCssString(A, "ace_editor.css", this.container);
                }),
                (this.destroy = function () {
                  this.freeze(),
                    this.$fontMetrics.destroy(),
                    this.$cursorLayer.destroy(),
                    this.removeAllListeners(),
                    (this.container.textContent = "");
                });
            }).call(v.prototype),
              o.defineOptions(v.prototype, "renderer", {
                animatedScroll: {
                  initialValue: !1,
                },
                showInvisibles: {
                  set: function (e) {
                    this.$textLayer.setShowInvisibles(e) &&
                      this.$loop.schedule(this.CHANGE_TEXT);
                  },
                  initialValue: !1,
                },
                showPrintMargin: {
                  set: function () {
                    this.$updatePrintMargin();
                  },
                  initialValue: !0,
                },
                printMarginColumn: {
                  set: function () {
                    this.$updatePrintMargin();
                  },
                  initialValue: 80,
                },
                printMargin: {
                  set: function (e) {
                    "number" == typeof e && (this.$printMarginColumn = e),
                      (this.$showPrintMargin = !!e),
                      this.$updatePrintMargin();
                  },
                  get: function () {
                    return this.$showPrintMargin && this.$printMarginColumn;
                  },
                },
                showGutter: {
                  set: function (e) {
                    (this.$gutter.style.display = e ? "block" : "none"),
                      this.$loop.schedule(this.CHANGE_FULL),
                      this.onGutterResize();
                  },
                  initialValue: !0,
                },
                fadeFoldWidgets: {
                  set: function (e) {
                    r.setCssClass(this.$gutter, "ace_fade-fold-widgets", e);
                  },
                  initialValue: !1,
                },
                showFoldWidgets: {
                  set: function (e) {
                    this.$gutterLayer.setShowFoldWidgets(e),
                      this.$loop.schedule(this.CHANGE_GUTTER);
                  },
                  initialValue: !0,
                },
                displayIndentGuides: {
                  set: function (e) {
                    this.$textLayer.setDisplayIndentGuides(e) &&
                      this.$loop.schedule(this.CHANGE_TEXT);
                  },
                  initialValue: !0,
                },
                highlightGutterLine: {
                  set: function (e) {
                    this.$gutterLayer.setHighlightGutterLine(e),
                      this.$loop.schedule(this.CHANGE_GUTTER);
                  },
                  initialValue: !0,
                },
                hScrollBarAlwaysVisible: {
                  set: function (e) {
                    (this.$hScrollBarAlwaysVisible && this.$horizScroll) ||
                      this.$loop.schedule(this.CHANGE_SCROLL);
                  },
                  initialValue: !1,
                },
                vScrollBarAlwaysVisible: {
                  set: function (e) {
                    (this.$vScrollBarAlwaysVisible && this.$vScroll) ||
                      this.$loop.schedule(this.CHANGE_SCROLL);
                  },
                  initialValue: !1,
                },
                fontSize: {
                  set: function (e) {
                    "number" == typeof e && (e += "px"),
                      (this.container.style.fontSize = e),
                      this.updateFontSize();
                  },
                  initialValue: 12,
                },
                fontFamily: {
                  set: function (e) {
                    (this.container.style.fontFamily = e),
                      this.updateFontSize();
                  },
                },
                maxLines: {
                  set: function (e) {
                    this.updateFull();
                  },
                },
                minLines: {
                  set: function (e) {
                    this.$minLines < 562949953421311 || (this.$minLines = 0),
                      this.updateFull();
                  },
                },
                maxPixelHeight: {
                  set: function (e) {
                    this.updateFull();
                  },
                  initialValue: 0,
                },
                scrollPastEnd: {
                  set: function (e) {
                    (e = +e || 0),
                      this.$scrollPastEnd != e &&
                        ((this.$scrollPastEnd = e),
                        this.$loop.schedule(this.CHANGE_SCROLL));
                  },
                  initialValue: 0,
                  handlesSet: !0,
                },
                fixedWidthGutter: {
                  set: function (e) {
                    (this.$gutterLayer.$fixedWidth = !!e),
                      this.$loop.schedule(this.CHANGE_GUTTER);
                  },
                },
                theme: {
                  set: function (e) {
                    this.setTheme(e);
                  },
                  get: function () {
                    return this.$themeId || this.theme;
                  },
                  initialValue: "./theme/textmate",
                  handlesSet: !0,
                },
                hasCssTransforms: {},
                useTextareaForIME: {
                  initialValue: !f.isMobile && !f.isIE,
                },
              }),
              (t.VirtualRenderer = v);
          }
        ),
        ace.define(
          "ace/worker/worker_client",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/net",
            "ace/lib/event_emitter",
            "ace/config",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("../lib/net"),
              o = e("../lib/event_emitter").EventEmitter,
              s = e("../config");

            function a(e) {
              if ("undefined" == typeof Worker)
                return {
                  postMessage: function () {},
                  terminate: function () {},
                };
              if (s.get("loadWorkerFromBlob")) {
                var t = (function (e) {
                    var t = "importScripts('" + r.qualifyURL(e) + "');";
                    try {
                      return new Blob([t], {
                        type: "application/javascript",
                      });
                    } catch (e) {
                      var n = new (window.BlobBuilder ||
                        window.WebKitBlobBuilder ||
                        window.MozBlobBuilder)();
                      return n.append(t), n.getBlob("application/javascript");
                    }
                  })(e),
                  n = (window.URL || window.webkitURL).createObjectURL(t);
                return new Worker(n);
              }
              return new Worker(e);
            }
            var l = function (e) {
              e.postMessage ||
                (e = this.$createWorkerFromOldConfig.apply(this, arguments)),
                (this.$worker = e),
                (this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this)),
                (this.changeListener = this.changeListener.bind(this)),
                (this.onMessage = this.onMessage.bind(this)),
                (this.callbackId = 1),
                (this.callbacks = {}),
                (this.$worker.onmessage = this.onMessage);
            };
            (function () {
              i.implement(this, o),
                (this.$createWorkerFromOldConfig = function (t, n, i, r, o) {
                  if (
                    (e.nameToUrl && !e.toUrl && (e.toUrl = e.nameToUrl),
                    s.get("packaged") || !e.toUrl)
                  )
                    r = r || s.moduleUrl(n, "worker");
                  else {
                    var l = this.$normalizePath;
                    r = r || l(e.toUrl("ace/worker/worker.js", null, "_"));
                    var c = {};
                    t.forEach(function (t) {
                      c[t] = l(
                        e.toUrl(t, null, "_").replace(/(\.js)?(\?.*)?$/, "")
                      );
                    });
                  }
                  return (
                    (this.$worker = a(r)),
                    o && this.send("importScripts", o),
                    this.$worker.postMessage({
                      init: !0,
                      tlns: c,
                      module: n,
                      classname: i,
                    }),
                    this.$worker
                  );
                }),
                (this.onMessage = function (e) {
                  var t = e.data;
                  switch (t.type) {
                    case "event":
                      this._signal(t.name, {
                        data: t.data,
                      });
                      break;
                    case "call":
                      var n = this.callbacks[t.id];
                      n && (n(t.data), delete this.callbacks[t.id]);
                      break;
                    case "error":
                      this.reportError(t.data);
                      break;
                    case "log":
                      window.console &&
                        console.log &&
                        console.log.apply(console, t.data);
                  }
                }),
                (this.reportError = function (e) {
                  window.console && console.error && console.error(e);
                }),
                (this.$normalizePath = function (e) {
                  return r.qualifyURL(e);
                }),
                (this.terminate = function () {
                  this._signal("terminate", {}),
                    (this.deltaQueue = null),
                    this.$worker.terminate(),
                    (this.$worker = null),
                    this.$doc && this.$doc.off("change", this.changeListener),
                    (this.$doc = null);
                }),
                (this.send = function (e, t) {
                  this.$worker.postMessage({
                    command: e,
                    args: t,
                  });
                }),
                (this.call = function (e, t, n) {
                  if (n) {
                    var i = this.callbackId++;
                    (this.callbacks[i] = n), t.push(i);
                  }
                  this.send(e, t);
                }),
                (this.emit = function (e, t) {
                  try {
                    t.data &&
                      t.data.err &&
                      (t.data.err = {
                        message: t.data.err.message,
                        stack: t.data.err.stack,
                        code: t.data.err.code,
                      }),
                      this.$worker.postMessage({
                        event: e,
                        data: {
                          data: t.data,
                        },
                      });
                  } catch (e) {
                    console.error(e.stack);
                  }
                }),
                (this.attachToDocument = function (e) {
                  this.$doc && this.terminate(),
                    (this.$doc = e),
                    this.call("setValue", [e.getValue()]),
                    e.on("change", this.changeListener);
                }),
                (this.changeListener = function (e) {
                  this.deltaQueue ||
                    ((this.deltaQueue = []),
                    setTimeout(this.$sendDeltaQueue, 0)),
                    "insert" == e.action
                      ? this.deltaQueue.push(e.start, e.lines)
                      : this.deltaQueue.push(e.start, e.end);
                }),
                (this.$sendDeltaQueue = function () {
                  var e = this.deltaQueue;
                  e &&
                    ((this.deltaQueue = null),
                    e.length > 50 && e.length > this.$doc.getLength() >> 1
                      ? this.call("setValue", [this.$doc.getValue()])
                      : this.emit("change", {
                          data: e,
                        }));
                });
            }).call(l.prototype);
            (t.UIWorkerClient = function (e, t, n) {
              var i = null,
                r = !1,
                a = Object.create(o),
                c = [],
                d = new l({
                  messageBuffer: c,
                  terminate: function () {},
                  postMessage: function (e) {
                    c.push(e), i && (r ? setTimeout(u) : u());
                  },
                });
              d.setEmitSync = function (e) {
                r = e;
              };
              var u = function () {
                var e = c.shift();
                e.command
                  ? i[e.command].apply(i, e.args)
                  : e.event && a._signal(e.event, e.data);
              };
              return (
                (a.postMessage = function (e) {
                  d.onMessage({
                    data: e,
                  });
                }),
                (a.callback = function (e, t) {
                  this.postMessage({
                    type: "call",
                    id: t,
                    data: e,
                  });
                }),
                (a.emit = function (e, t) {
                  this.postMessage({
                    type: "event",
                    name: e,
                    data: t,
                  });
                }),
                s.loadModule(["worker", t], function (e) {
                  for (i = new e[n](a); c.length; ) u();
                }),
                d
              );
            }),
              (t.WorkerClient = l),
              (t.createWorker = a);
          }
        ),
        ace.define(
          "ace/placeholder",
          [
            "require",
            "exports",
            "module",
            "ace/range",
            "ace/lib/event_emitter",
            "ace/lib/oop",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("./range").Range,
              r = e("./lib/event_emitter").EventEmitter,
              o = e("./lib/oop"),
              s = function (e, t, n, i, r, o) {
                var s = this;
                (this.length = t),
                  (this.session = e),
                  (this.doc = e.getDocument()),
                  (this.mainClass = r),
                  (this.othersClass = o),
                  (this.$onUpdate = this.onUpdate.bind(this)),
                  this.doc.on("change", this.$onUpdate),
                  (this.$others = i),
                  (this.$onCursorChange = function () {
                    setTimeout(function () {
                      s.onCursorChange();
                    });
                  }),
                  (this.$pos = n);
                var a = e.getUndoManager().$undoStack ||
                  e.getUndoManager().$undostack || {
                    length: -1,
                  };
                (this.$undoStackDepth = a.length),
                  this.setup(),
                  e.selection.on("changeCursor", this.$onCursorChange);
              };
            (function () {
              o.implement(this, r),
                (this.setup = function () {
                  var e = this,
                    t = this.doc,
                    n = this.session;
                  (this.selectionBefore = n.selection.toJSON()),
                    n.selection.inMultiSelectMode &&
                      n.selection.toSingleRange(),
                    (this.pos = t.createAnchor(
                      this.$pos.row,
                      this.$pos.column
                    ));
                  var r = this.pos;
                  (r.$insertRight = !0),
                    r.detach(),
                    (r.markerId = n.addMarker(
                      new i(r.row, r.column, r.row, r.column + this.length),
                      this.mainClass,
                      null,
                      !1
                    )),
                    (this.others = []),
                    this.$others.forEach(function (n) {
                      var i = t.createAnchor(n.row, n.column);
                      (i.$insertRight = !0), i.detach(), e.others.push(i);
                    }),
                    n.setUndoSelect(!1);
                }),
                (this.showOtherMarkers = function () {
                  if (!this.othersActive) {
                    var e = this.session,
                      t = this;
                    (this.othersActive = !0),
                      this.others.forEach(function (n) {
                        n.markerId = e.addMarker(
                          new i(n.row, n.column, n.row, n.column + t.length),
                          t.othersClass,
                          null,
                          !1
                        );
                      });
                  }
                }),
                (this.hideOtherMarkers = function () {
                  if (this.othersActive) {
                    this.othersActive = !1;
                    for (var e = 0; e < this.others.length; e++)
                      this.session.removeMarker(this.others[e].markerId);
                  }
                }),
                (this.onUpdate = function (e) {
                  if (this.$updating) return this.updateAnchors(e);
                  var t = e;
                  if (
                    t.start.row === t.end.row &&
                    t.start.row === this.pos.row
                  ) {
                    this.$updating = !0;
                    var n =
                        "insert" === e.action
                          ? t.end.column - t.start.column
                          : t.start.column - t.end.column,
                      r =
                        t.start.column >= this.pos.column &&
                        t.start.column <= this.pos.column + this.length + 1,
                      o = t.start.column - this.pos.column;
                    if (
                      (this.updateAnchors(e),
                      r && (this.length += n),
                      r && !this.session.$fromUndo)
                    )
                      if ("insert" === e.action)
                        for (var s = this.others.length - 1; s >= 0; s--) {
                          var a = {
                            row: (l = this.others[s]).row,
                            column: l.column + o,
                          };
                          this.doc.insertMergedLines(a, e.lines);
                        }
                      else if ("remove" === e.action)
                        for (s = this.others.length - 1; s >= 0; s--) {
                          var l;
                          a = {
                            row: (l = this.others[s]).row,
                            column: l.column + o,
                          };
                          this.doc.remove(
                            new i(a.row, a.column, a.row, a.column - n)
                          );
                        }
                    (this.$updating = !1), this.updateMarkers();
                  }
                }),
                (this.updateAnchors = function (e) {
                  this.pos.onChange(e);
                  for (var t = this.others.length; t--; )
                    this.others[t].onChange(e);
                  this.updateMarkers();
                }),
                (this.updateMarkers = function () {
                  if (!this.$updating) {
                    var e = this,
                      t = this.session,
                      n = function (n, r) {
                        t.removeMarker(n.markerId),
                          (n.markerId = t.addMarker(
                            new i(n.row, n.column, n.row, n.column + e.length),
                            r,
                            null,
                            !1
                          ));
                      };
                    n(this.pos, this.mainClass);
                    for (var r = this.others.length; r--; )
                      n(this.others[r], this.othersClass);
                  }
                }),
                (this.onCursorChange = function (e) {
                  if (!this.$updating && this.session) {
                    var t = this.session.selection.getCursor();
                    t.row === this.pos.row &&
                    t.column >= this.pos.column &&
                    t.column <= this.pos.column + this.length
                      ? (this.showOtherMarkers(), this._emit("cursorEnter", e))
                      : (this.hideOtherMarkers(), this._emit("cursorLeave", e));
                  }
                }),
                (this.detach = function () {
                  this.session.removeMarker(this.pos && this.pos.markerId),
                    this.hideOtherMarkers(),
                    this.doc.off("change", this.$onUpdate),
                    this.session.selection.off(
                      "changeCursor",
                      this.$onCursorChange
                    ),
                    this.session.setUndoSelect(!0),
                    (this.session = null);
                }),
                (this.cancel = function () {
                  if (-1 !== this.$undoStackDepth) {
                    for (
                      var e = this.session.getUndoManager(),
                        t =
                          (e.$undoStack || e.$undostack).length -
                          this.$undoStackDepth,
                        n = 0;
                      n < t;
                      n++
                    )
                      e.undo(this.session, !0);
                    this.selectionBefore &&
                      this.session.selection.fromJSON(this.selectionBefore);
                  }
                });
            }).call(s.prototype),
              (t.PlaceHolder = s);
          }
        ),
        ace.define(
          "ace/mouse/multi_select_handler",
          [
            "require",
            "exports",
            "module",
            "ace/lib/event",
            "ace/lib/useragent",
          ],
          function (e, t, n) {
            var i = e("../lib/event"),
              r = e("../lib/useragent");

            function o(e, t) {
              return e.row == t.row && e.column == t.column;
            }
            t.onMouseDown = function (e) {
              var t = e.domEvent,
                n = t.altKey,
                s = t.shiftKey,
                a = t.ctrlKey,
                l = e.getAccelKey(),
                c = e.getButton();
              if (
                (a && r.isMac && (c = t.button),
                e.editor.inMultiSelectMode && 2 == c)
              )
                e.editor.textInput.onContextMenu(e.domEvent);
              else if (a || n || l) {
                if (0 === c) {
                  var d,
                    u = e.editor,
                    h = u.selection,
                    g = u.inMultiSelectMode,
                    p = e.getDocumentPosition(),
                    A = h.getCursor(),
                    f = e.inSelection() || (h.isEmpty() && o(p, A)),
                    m = e.x,
                    v = e.y,
                    b = u.session,
                    w = u.renderer.pixelToScreenCoordinates(m, v),
                    y = w;
                  if (u.$mouseHandler.$enableJumpToDef)
                    (a && n) || (l && n)
                      ? (d = s ? "block" : "add")
                      : n && u.$blockSelectEnabled && (d = "block");
                  else if (l && !n) {
                    if (((d = "add"), !g && s)) return;
                  } else n && u.$blockSelectEnabled && (d = "block");
                  if (
                    (d &&
                      r.isMac &&
                      t.ctrlKey &&
                      u.$mouseHandler.cancelContextMenu(),
                    "add" == d)
                  ) {
                    if (!g && f) return;
                    if (!g) {
                      var x = h.toOrientedRange();
                      u.addSelectionMarker(x);
                    }
                    var C = h.rangeList.rangeAtPoint(p);
                    (u.inVirtualSelectionMode = !0),
                      s &&
                        ((C = null),
                        (x = h.ranges[0] || x),
                        u.removeSelectionMarker(x)),
                      u.once("mouseup", function () {
                        var e = h.toOrientedRange();
                        C && e.isEmpty() && o(C.cursor, e.cursor)
                          ? h.substractPoint(e.cursor)
                          : (s
                              ? h.substractPoint(x.cursor)
                              : x &&
                                (u.removeSelectionMarker(x), h.addRange(x)),
                            h.addRange(e)),
                          (u.inVirtualSelectionMode = !1);
                      });
                  } else if ("block" == d) {
                    var k;
                    e.stop(), (u.inVirtualSelectionMode = !0);
                    var _ = [],
                      I = function () {
                        var e = u.renderer.pixelToScreenCoordinates(m, v),
                          t = b.screenToDocumentPosition(
                            e.row,
                            e.column,
                            e.offsetX
                          );
                        (o(y, e) && o(t, h.lead)) ||
                          ((y = e),
                          u.selection.moveToPosition(t),
                          u.renderer.scrollCursorIntoView(),
                          u.removeSelectionMarkers(_),
                          (_ = h.rectangularRangeBlock(y, w)),
                          u.$mouseHandler.$clickSelection &&
                            1 == _.length &&
                            _[0].isEmpty() &&
                            (_[0] = u.$mouseHandler.$clickSelection.clone()),
                          _.forEach(u.addSelectionMarker, u),
                          u.updateSelectionMarkers());
                      };
                    g && !l
                      ? h.toSingleRange()
                      : !g &&
                        l &&
                        ((k = h.toOrientedRange()), u.addSelectionMarker(k)),
                      s
                        ? (w = b.documentToScreenPosition(h.lead))
                        : h.moveToPosition(p),
                      (y = {
                        row: -1,
                        column: -1,
                      });
                    var E = I;
                    i.capture(
                      u.container,
                      function (e) {
                        (m = e.clientX), (v = e.clientY);
                      },
                      function (e) {
                        I(),
                          clearInterval(T),
                          u.removeSelectionMarkers(_),
                          _.length || (_ = [h.toOrientedRange()]),
                          k && (u.removeSelectionMarker(k), h.toSingleRange(k));
                        for (var t = 0; t < _.length; t++) h.addRange(_[t]);
                        (u.inVirtualSelectionMode = !1),
                          (u.$mouseHandler.$clickSelection = null);
                      }
                    );
                    var T = setInterval(function () {
                      E();
                    }, 20);
                    return e.preventDefault();
                  }
                }
              } else
                0 === c &&
                  e.editor.inMultiSelectMode &&
                  e.editor.exitMultiSelectMode();
            };
          }
        ),
        ace.define(
          "ace/commands/multi_select_commands",
          ["require", "exports", "module", "ace/keyboard/hash_handler"],
          function (e, t, n) {
            (t.defaultCommands = [
              {
                name: "addCursorAbove",
                description: "Add cursor above",
                exec: function (e) {
                  e.selectMoreLines(-1);
                },
                bindKey: {
                  win: "Ctrl-Alt-Up",
                  mac: "Ctrl-Alt-Up",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "addCursorBelow",
                description: "Add cursor below",
                exec: function (e) {
                  e.selectMoreLines(1);
                },
                bindKey: {
                  win: "Ctrl-Alt-Down",
                  mac: "Ctrl-Alt-Down",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "addCursorAboveSkipCurrent",
                description: "Add cursor above (skip current)",
                exec: function (e) {
                  e.selectMoreLines(-1, !0);
                },
                bindKey: {
                  win: "Ctrl-Alt-Shift-Up",
                  mac: "Ctrl-Alt-Shift-Up",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "addCursorBelowSkipCurrent",
                description: "Add cursor below (skip current)",
                exec: function (e) {
                  e.selectMoreLines(1, !0);
                },
                bindKey: {
                  win: "Ctrl-Alt-Shift-Down",
                  mac: "Ctrl-Alt-Shift-Down",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectMoreBefore",
                description: "Select more before",
                exec: function (e) {
                  e.selectMore(-1);
                },
                bindKey: {
                  win: "Ctrl-Alt-Left",
                  mac: "Ctrl-Alt-Left",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectMoreAfter",
                description: "Select more after",
                exec: function (e) {
                  e.selectMore(1);
                },
                bindKey: {
                  win: "Ctrl-Alt-Right",
                  mac: "Ctrl-Alt-Right",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectNextBefore",
                description: "Select next before",
                exec: function (e) {
                  e.selectMore(-1, !0);
                },
                bindKey: {
                  win: "Ctrl-Alt-Shift-Left",
                  mac: "Ctrl-Alt-Shift-Left",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "selectNextAfter",
                description: "Select next after",
                exec: function (e) {
                  e.selectMore(1, !0);
                },
                bindKey: {
                  win: "Ctrl-Alt-Shift-Right",
                  mac: "Ctrl-Alt-Shift-Right",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
              {
                name: "toggleSplitSelectionIntoLines",
                description: "Split into lines",
                exec: function (e) {
                  e.multiSelect.rangeCount > 1
                    ? e.multiSelect.joinSelections()
                    : e.multiSelect.splitIntoLines();
                },
                bindKey: {
                  win: "Ctrl-Alt-L",
                  mac: "Ctrl-Alt-L",
                },
                readOnly: !0,
              },
              {
                name: "splitSelectionIntoLines",
                description: "Split into lines",
                exec: function (e) {
                  e.multiSelect.splitIntoLines();
                },
                readOnly: !0,
              },
              {
                name: "alignCursors",
                description: "Align cursors",
                exec: function (e) {
                  e.alignCursors();
                },
                bindKey: {
                  win: "Ctrl-Alt-A",
                  mac: "Ctrl-Alt-A",
                },
                scrollIntoView: "cursor",
              },
              {
                name: "findAll",
                description: "Find all",
                exec: function (e) {
                  e.findAll();
                },
                bindKey: {
                  win: "Ctrl-Alt-K",
                  mac: "Ctrl-Alt-G",
                },
                scrollIntoView: "cursor",
                readOnly: !0,
              },
            ]),
              (t.multiSelectCommands = [
                {
                  name: "singleSelection",
                  description: "Single selection",
                  bindKey: "esc",
                  exec: function (e) {
                    e.exitMultiSelectMode();
                  },
                  scrollIntoView: "cursor",
                  readOnly: !0,
                  isAvailable: function (e) {
                    return e && e.inMultiSelectMode;
                  },
                },
              ]);
            var i = e("../keyboard/hash_handler").HashHandler;
            t.keyboardHandler = new i(t.multiSelectCommands);
          }
        ),
        ace.define(
          "ace/multi_select",
          [
            "require",
            "exports",
            "module",
            "ace/range_list",
            "ace/range",
            "ace/selection",
            "ace/mouse/multi_select_handler",
            "ace/lib/event",
            "ace/lib/lang",
            "ace/commands/multi_select_commands",
            "ace/search",
            "ace/edit_session",
            "ace/editor",
            "ace/config",
          ],
          function (e, t, n) {
            var i = e("./range_list").RangeList,
              r = e("./range").Range,
              o = e("./selection").Selection,
              s = e("./mouse/multi_select_handler").onMouseDown,
              a = e("./lib/event"),
              l = e("./lib/lang"),
              c = e("./commands/multi_select_commands");
            t.commands = c.defaultCommands.concat(c.multiSelectCommands);
            var d = new (0, e("./search").Search)();
            var u = e("./edit_session").EditSession;
            (function () {
              this.getSelectionMarkers = function () {
                return this.$selectionMarkers;
              };
            }).call(u.prototype),
              function () {
                (this.ranges = null),
                  (this.rangeList = null),
                  (this.addRange = function (e, t) {
                    if (e) {
                      if (!this.inMultiSelectMode && 0 === this.rangeCount) {
                        var n = this.toOrientedRange();
                        if (
                          (this.rangeList.add(n),
                          this.rangeList.add(e),
                          2 != this.rangeList.ranges.length)
                        )
                          return (
                            this.rangeList.removeAll(),
                            t || this.fromOrientedRange(e)
                          );
                        this.rangeList.removeAll(),
                          this.rangeList.add(n),
                          this.$onAddRange(n);
                      }
                      e.cursor || (e.cursor = e.end);
                      var i = this.rangeList.add(e);
                      return (
                        this.$onAddRange(e),
                        i.length && this.$onRemoveRange(i),
                        this.rangeCount > 1 &&
                          !this.inMultiSelectMode &&
                          (this._signal("multiSelect"),
                          (this.inMultiSelectMode = !0),
                          (this.session.$undoSelect = !1),
                          this.rangeList.attach(this.session)),
                        t || this.fromOrientedRange(e)
                      );
                    }
                  }),
                  (this.toSingleRange = function (e) {
                    e = e || this.ranges[0];
                    var t = this.rangeList.removeAll();
                    t.length && this.$onRemoveRange(t),
                      e && this.fromOrientedRange(e);
                  }),
                  (this.substractPoint = function (e) {
                    var t = this.rangeList.substractPoint(e);
                    if (t) return this.$onRemoveRange(t), t[0];
                  }),
                  (this.mergeOverlappingRanges = function () {
                    var e = this.rangeList.merge();
                    e.length && this.$onRemoveRange(e);
                  }),
                  (this.$onAddRange = function (e) {
                    (this.rangeCount = this.rangeList.ranges.length),
                      this.ranges.unshift(e),
                      this._signal("addRange", {
                        range: e,
                      });
                  }),
                  (this.$onRemoveRange = function (e) {
                    if (
                      ((this.rangeCount = this.rangeList.ranges.length),
                      1 == this.rangeCount && this.inMultiSelectMode)
                    ) {
                      var t = this.rangeList.ranges.pop();
                      e.push(t), (this.rangeCount = 0);
                    }
                    for (var n = e.length; n--; ) {
                      var i = this.ranges.indexOf(e[n]);
                      this.ranges.splice(i, 1);
                    }
                    this._signal("removeRange", {
                      ranges: e,
                    }),
                      0 === this.rangeCount &&
                        this.inMultiSelectMode &&
                        ((this.inMultiSelectMode = !1),
                        this._signal("singleSelect"),
                        (this.session.$undoSelect = !0),
                        this.rangeList.detach(this.session)),
                      (t = t || this.ranges[0]) &&
                        !t.isEqual(this.getRange()) &&
                        this.fromOrientedRange(t);
                  }),
                  (this.$initRangeList = function () {
                    this.rangeList ||
                      ((this.rangeList = new i()),
                      (this.ranges = []),
                      (this.rangeCount = 0));
                  }),
                  (this.getAllRanges = function () {
                    return this.rangeCount
                      ? this.rangeList.ranges.concat()
                      : [this.getRange()];
                  }),
                  (this.splitIntoLines = function () {
                    for (
                      var e = this.ranges.length
                          ? this.ranges
                          : [this.getRange()],
                        t = [],
                        n = 0;
                      n < e.length;
                      n++
                    ) {
                      var i = e[n],
                        o = i.start.row,
                        s = i.end.row;
                      if (o === s) t.push(i.clone());
                      else {
                        for (
                          t.push(
                            new r(
                              o,
                              i.start.column,
                              o,
                              this.session.getLine(o).length
                            )
                          );
                          ++o < s;

                        )
                          t.push(this.getLineRange(o, !0));
                        t.push(new r(s, 0, s, i.end.column));
                      }
                      0 != n || this.isBackwards() || (t = t.reverse());
                    }
                    this.toSingleRange();
                    for (n = t.length; n--; ) this.addRange(t[n]);
                  }),
                  (this.joinSelections = function () {
                    var e = this.rangeList.ranges,
                      t = e[e.length - 1],
                      n = r.fromPoints(e[0].start, t.end);
                    this.toSingleRange(),
                      this.setSelectionRange(n, t.cursor == t.start);
                  }),
                  (this.toggleBlockSelection = function () {
                    if (this.rangeCount > 1) {
                      var e = this.rangeList.ranges,
                        t = e[e.length - 1],
                        n = r.fromPoints(e[0].start, t.end);
                      this.toSingleRange(),
                        this.setSelectionRange(n, t.cursor == t.start);
                    } else {
                      var i = this.session.documentToScreenPosition(
                          this.cursor
                        ),
                        o = this.session.documentToScreenPosition(this.anchor);
                      this.rectangularRangeBlock(i, o).forEach(
                        this.addRange,
                        this
                      );
                    }
                  }),
                  (this.rectangularRangeBlock = function (e, t, n) {
                    var i = [],
                      o = e.column < t.column;
                    if (o)
                      var s = e.column,
                        a = t.column,
                        l = e.offsetX,
                        c = t.offsetX;
                    else
                      (s = t.column),
                        (a = e.column),
                        (l = t.offsetX),
                        (c = e.offsetX);
                    var d,
                      u,
                      h,
                      g = e.row < t.row;
                    if (g)
                      var p = e.row,
                        A = t.row;
                    else (p = t.row), (A = e.row);
                    s < 0 && (s = 0), p < 0 && (p = 0), p == A && (n = !0);
                    for (var f = p; f <= A; f++) {
                      var m = r.fromPoints(
                        this.session.screenToDocumentPosition(f, s, l),
                        this.session.screenToDocumentPosition(f, a, c)
                      );
                      if (m.isEmpty()) {
                        if (
                          d &&
                          ((u = m.end),
                          (h = d),
                          u.row == h.row && u.column == h.column)
                        )
                          break;
                        d = m.end;
                      }
                      (m.cursor = o ? m.start : m.end), i.push(m);
                    }
                    if ((g && i.reverse(), !n)) {
                      for (var v = i.length - 1; i[v].isEmpty() && v > 0; ) v--;
                      if (v > 0) for (var b = 0; i[b].isEmpty(); ) b++;
                      for (var w = v; w >= b; w--)
                        i[w].isEmpty() && i.splice(w, 1);
                    }
                    return i;
                  });
              }.call(o.prototype);
            var h = e("./editor").Editor;

            function g(e) {
              e.$multiselectOnSessionChange ||
                ((e.$onAddRange = e.$onAddRange.bind(e)),
                (e.$onRemoveRange = e.$onRemoveRange.bind(e)),
                (e.$onMultiSelect = e.$onMultiSelect.bind(e)),
                (e.$onSingleSelect = e.$onSingleSelect.bind(e)),
                (e.$multiselectOnSessionChange = t.onSessionChange.bind(e)),
                (e.$checkMultiselectChange = e.$checkMultiselectChange.bind(e)),
                e.$multiselectOnSessionChange(e),
                e.on("changeSession", e.$multiselectOnSessionChange),
                e.on("mousedown", s),
                e.commands.addCommands(c.defaultCommands),
                (function (e) {
                  if (!e.textInput) return;
                  var t = e.textInput.getElement(),
                    n = !1;

                  function i(t) {
                    n && (e.renderer.setMouseCursor(""), (n = !1));
                  }
                  a.addListener(
                    t,
                    "keydown",
                    function (t) {
                      var r =
                        18 == t.keyCode &&
                        !(t.ctrlKey || t.shiftKey || t.metaKey);
                      e.$blockSelectEnabled && r
                        ? n ||
                          (e.renderer.setMouseCursor("crosshair"), (n = !0))
                        : n && i();
                    },
                    e
                  ),
                    a.addListener(t, "keyup", i, e),
                    a.addListener(t, "blur", i, e);
                })(e));
            }
            (function () {
              (this.updateSelectionMarkers = function () {
                this.renderer.updateCursor(), this.renderer.updateBackMarkers();
              }),
                (this.addSelectionMarker = function (e) {
                  e.cursor || (e.cursor = e.end);
                  var t = this.getSelectionStyle();
                  return (
                    (e.marker = this.session.addMarker(e, "ace_selection", t)),
                    this.session.$selectionMarkers.push(e),
                    (this.session.selectionMarkerCount =
                      this.session.$selectionMarkers.length),
                    e
                  );
                }),
                (this.removeSelectionMarker = function (e) {
                  if (e.marker) {
                    this.session.removeMarker(e.marker);
                    var t = this.session.$selectionMarkers.indexOf(e);
                    -1 != t && this.session.$selectionMarkers.splice(t, 1),
                      (this.session.selectionMarkerCount =
                        this.session.$selectionMarkers.length);
                  }
                }),
                (this.removeSelectionMarkers = function (e) {
                  for (
                    var t = this.session.$selectionMarkers, n = e.length;
                    n--;

                  ) {
                    var i = e[n];
                    if (i.marker) {
                      this.session.removeMarker(i.marker);
                      var r = t.indexOf(i);
                      -1 != r && t.splice(r, 1);
                    }
                  }
                  this.session.selectionMarkerCount = t.length;
                }),
                (this.$onAddRange = function (e) {
                  this.addSelectionMarker(e.range),
                    this.renderer.updateCursor(),
                    this.renderer.updateBackMarkers();
                }),
                (this.$onRemoveRange = function (e) {
                  this.removeSelectionMarkers(e.ranges),
                    this.renderer.updateCursor(),
                    this.renderer.updateBackMarkers();
                }),
                (this.$onMultiSelect = function (e) {
                  this.inMultiSelectMode ||
                    ((this.inMultiSelectMode = !0),
                    this.setStyle("ace_multiselect"),
                    this.keyBinding.addKeyboardHandler(c.keyboardHandler),
                    this.commands.setDefaultHandler(
                      "exec",
                      this.$onMultiSelectExec
                    ),
                    this.renderer.updateCursor(),
                    this.renderer.updateBackMarkers());
                }),
                (this.$onSingleSelect = function (e) {
                  this.session.multiSelect.inVirtualMode ||
                    ((this.inMultiSelectMode = !1),
                    this.unsetStyle("ace_multiselect"),
                    this.keyBinding.removeKeyboardHandler(c.keyboardHandler),
                    this.commands.removeDefaultHandler(
                      "exec",
                      this.$onMultiSelectExec
                    ),
                    this.renderer.updateCursor(),
                    this.renderer.updateBackMarkers(),
                    this._emit("changeSelection"));
                }),
                (this.$onMultiSelectExec = function (e) {
                  var t = e.command,
                    n = e.editor;
                  if (n.multiSelect) {
                    if (t.multiSelectAction)
                      "forEach" == t.multiSelectAction
                        ? (i = n.forEachSelection(t, e.args))
                        : "forEachLine" == t.multiSelectAction
                        ? (i = n.forEachSelection(t, e.args, !0))
                        : "single" == t.multiSelectAction
                        ? (n.exitMultiSelectMode(),
                          (i = t.exec(n, e.args || {})))
                        : (i = t.multiSelectAction(n, e.args || {}));
                    else {
                      var i = t.exec(n, e.args || {});
                      n.multiSelect.addRange(n.multiSelect.toOrientedRange()),
                        n.multiSelect.mergeOverlappingRanges();
                    }
                    return i;
                  }
                }),
                (this.forEachSelection = function (e, t, n) {
                  if (!this.inVirtualSelectionMode) {
                    var i,
                      r = n && n.keepOrder,
                      s = 1 == n || (n && n.$byLines),
                      a = this.session,
                      l = this.selection,
                      c = l.rangeList,
                      d = (r ? l : c).ranges;
                    if (!d.length)
                      return e.exec ? e.exec(this, t || {}) : e(this, t || {});
                    var u = l._eventRegistry;
                    l._eventRegistry = {};
                    var h = new o(a);
                    this.inVirtualSelectionMode = !0;
                    for (var g = d.length; g--; ) {
                      if (s)
                        for (; g > 0 && d[g].start.row == d[g - 1].end.row; )
                          g--;
                      h.fromOrientedRange(d[g]),
                        (h.index = g),
                        (this.selection = a.selection = h);
                      var p = e.exec ? e.exec(this, t || {}) : e(this, t || {});
                      i || void 0 === p || (i = p), h.toOrientedRange(d[g]);
                    }
                    h.detach(),
                      (this.selection = a.selection = l),
                      (this.inVirtualSelectionMode = !1),
                      (l._eventRegistry = u),
                      l.mergeOverlappingRanges(),
                      l.ranges[0] && l.fromOrientedRange(l.ranges[0]);
                    var A = this.renderer.$scrollAnimation;
                    return (
                      this.onCursorChange(),
                      this.onSelectionChange(),
                      A &&
                        A.from == A.to &&
                        this.renderer.animateScrolling(A.from),
                      i
                    );
                  }
                }),
                (this.exitMultiSelectMode = function () {
                  this.inMultiSelectMode &&
                    !this.inVirtualSelectionMode &&
                    this.multiSelect.toSingleRange();
                }),
                (this.getSelectedText = function () {
                  var e = "";
                  if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {
                    for (
                      var t = this.multiSelect.rangeList.ranges, n = [], i = 0;
                      i < t.length;
                      i++
                    )
                      n.push(this.session.getTextRange(t[i]));
                    var r = this.session.getDocument().getNewLineCharacter();
                    (e = n.join(r)).length == (n.length - 1) * r.length &&
                      (e = "");
                  } else
                    this.selection.isEmpty() ||
                      (e = this.session.getTextRange(this.getSelectionRange()));
                  return e;
                }),
                (this.$checkMultiselectChange = function (e, t) {
                  if (this.inMultiSelectMode && !this.inVirtualSelectionMode) {
                    var n = this.multiSelect.ranges[0];
                    if (
                      this.multiSelect.isEmpty() &&
                      t == this.multiSelect.anchor
                    )
                      return;
                    var i =
                      t == this.multiSelect.anchor
                        ? n.cursor == n.start
                          ? n.end
                          : n.start
                        : n.cursor;
                    i.row != t.row ||
                    this.session.$clipPositionToDocument(i.row, i.column)
                      .column != t.column
                      ? this.multiSelect.toSingleRange(
                          this.multiSelect.toOrientedRange()
                        )
                      : this.multiSelect.mergeOverlappingRanges();
                  }
                }),
                (this.findAll = function (e, t, n) {
                  if (
                    (((t = t || {}).needle = e || t.needle), null == t.needle)
                  ) {
                    var i = this.selection.isEmpty()
                      ? this.selection.getWordRange()
                      : this.selection.getRange();
                    t.needle = this.session.getTextRange(i);
                  }
                  this.$search.set(t);
                  var r = this.$search.findAll(this.session);
                  if (!r.length) return 0;
                  var o = this.multiSelect;
                  n || o.toSingleRange(r[0]);
                  for (var s = r.length; s--; ) o.addRange(r[s], !0);
                  return (
                    i && o.rangeList.rangeAtPoint(i.start) && o.addRange(i, !0),
                    r.length
                  );
                }),
                (this.selectMoreLines = function (e, t) {
                  var n = this.selection.toOrientedRange(),
                    i = n.cursor == n.end,
                    o = this.session.documentToScreenPosition(n.cursor);
                  this.selection.$desiredColumn &&
                    (o.column = this.selection.$desiredColumn);
                  var s,
                    a = this.session.screenToDocumentPosition(
                      o.row + e,
                      o.column
                    );
                  if (n.isEmpty()) c = a;
                  else
                    var l = this.session.documentToScreenPosition(
                        i ? n.end : n.start
                      ),
                      c = this.session.screenToDocumentPosition(
                        l.row + e,
                        l.column
                      );
                  i
                    ? ((s = r.fromPoints(a, c)).cursor = s.start)
                    : ((s = r.fromPoints(c, a)).cursor = s.end);
                  if (
                    ((s.desiredColumn = o.column),
                    this.selection.inMultiSelectMode)
                  ) {
                    if (t) var d = n.cursor;
                  } else this.selection.addRange(n);
                  this.selection.addRange(s),
                    d && this.selection.substractPoint(d);
                }),
                (this.transposeSelections = function (e) {
                  for (
                    var t = this.session,
                      n = t.multiSelect,
                      i = n.ranges,
                      r = i.length;
                    r--;

                  ) {
                    if ((a = i[r]).isEmpty()) {
                      var o = t.getWordRange(a.start.row, a.start.column);
                      (a.start.row = o.start.row),
                        (a.start.column = o.start.column),
                        (a.end.row = o.end.row),
                        (a.end.column = o.end.column);
                    }
                  }
                  n.mergeOverlappingRanges();
                  var s = [];
                  for (r = i.length; r--; ) {
                    var a = i[r];
                    s.unshift(t.getTextRange(a));
                  }
                  e < 0 ? s.unshift(s.pop()) : s.push(s.shift());
                  for (r = i.length; r--; ) {
                    o = (a = i[r]).clone();
                    t.replace(a, s[r]),
                      (a.start.row = o.start.row),
                      (a.start.column = o.start.column);
                  }
                  n.fromOrientedRange(n.ranges[0]);
                }),
                (this.selectMore = function (e, t, n) {
                  var i = this.session,
                    r = i.multiSelect.toOrientedRange();
                  if (
                    !r.isEmpty() ||
                    (((r = i.getWordRange(r.start.row, r.start.column)).cursor =
                      -1 == e ? r.start : r.end),
                    this.multiSelect.addRange(r),
                    !n)
                  ) {
                    var o = i.getTextRange(r),
                      s = (function (e, t, n) {
                        return (
                          (d.$options.wrap = !0),
                          (d.$options.needle = t),
                          (d.$options.backwards = -1 == n),
                          d.find(e)
                        );
                      })(i, o, e);
                    s &&
                      ((s.cursor = -1 == e ? s.start : s.end),
                      this.session.unfold(s),
                      this.multiSelect.addRange(s),
                      this.renderer.scrollCursorIntoView(null, 0.5)),
                      t && this.multiSelect.substractPoint(r.cursor);
                  }
                }),
                (this.alignCursors = function () {
                  var e = this.session,
                    t = e.multiSelect,
                    n = t.ranges,
                    i = -1,
                    o = n.filter(function (e) {
                      if (e.cursor.row == i) return !0;
                      i = e.cursor.row;
                    });
                  if (n.length && o.length != n.length - 1) {
                    o.forEach(function (e) {
                      t.substractPoint(e.cursor);
                    });
                    var s = 0,
                      a = 1 / 0,
                      c = n.map(function (t) {
                        var n = t.cursor,
                          i = e.getLine(n.row).substr(n.column).search(/\S/g);
                        return (
                          -1 == i && (i = 0),
                          n.column > s && (s = n.column),
                          i < a && (a = i),
                          i
                        );
                      });
                    n.forEach(function (t, n) {
                      var i = t.cursor,
                        o = s - i.column,
                        d = c[n] - a;
                      o > d
                        ? e.insert(i, l.stringRepeat(" ", o - d))
                        : e.remove(
                            new r(i.row, i.column, i.row, i.column - o + d)
                          ),
                        (t.start.column = t.end.column = s),
                        (t.start.row = t.end.row = i.row),
                        (t.cursor = t.end);
                    }),
                      t.fromOrientedRange(n[0]),
                      this.renderer.updateCursor(),
                      this.renderer.updateBackMarkers();
                  } else {
                    var d = this.selection.getRange(),
                      u = d.start.row,
                      h = d.end.row,
                      g = u == h;
                    if (g) {
                      var p,
                        A = this.session.getLength();
                      do {
                        p = this.session.getLine(h);
                      } while (/[=:]/.test(p) && ++h < A);
                      do {
                        p = this.session.getLine(u);
                      } while (/[=:]/.test(p) && --u > 0);
                      u < 0 && (u = 0), h >= A && (h = A - 1);
                    }
                    var f = this.session.removeFullLines(u, h);
                    (f = this.$reAlignText(f, g)),
                      this.session.insert(
                        {
                          row: u,
                          column: 0,
                        },
                        f.join("\n") + "\n"
                      ),
                      g ||
                        ((d.start.column = 0),
                        (d.end.column = f[f.length - 1].length)),
                      this.selection.setRange(d);
                  }
                }),
                (this.$reAlignText = function (e, t) {
                  var n,
                    i,
                    r,
                    o = !0,
                    s = !0;
                  return e
                    .map(function (e) {
                      var t = e.match(/(\s*)(.*?)(\s*)([=:].*)/);
                      return t
                        ? null == n
                          ? ((n = t[1].length),
                            (i = t[2].length),
                            (r = t[3].length),
                            t)
                          : (n + i + r !=
                              t[1].length + t[2].length + t[3].length &&
                              (s = !1),
                            n != t[1].length && (o = !1),
                            n > t[1].length && (n = t[1].length),
                            i < t[2].length && (i = t[2].length),
                            r > t[3].length && (r = t[3].length),
                            t)
                        : [e];
                    })
                    .map(
                      t
                        ? c
                        : o
                        ? s
                          ? function (e) {
                              return e[2]
                                ? a(n + i - e[2].length) +
                                    e[2] +
                                    a(r) +
                                    e[4].replace(/^([=:])\s+/, "$1 ")
                                : e[0];
                            }
                          : c
                        : function (e) {
                            return e[2]
                              ? a(n) +
                                  e[2] +
                                  a(r) +
                                  e[4].replace(/^([=:])\s+/, "$1 ")
                              : e[0];
                          }
                    );

                  function a(e) {
                    return l.stringRepeat(" ", e);
                  }

                  function c(e) {
                    return e[2]
                      ? a(n) +
                          e[2] +
                          a(i - e[2].length + r) +
                          e[4].replace(/^([=:])\s+/, "$1 ")
                      : e[0];
                  }
                });
            }).call(h.prototype),
              (t.onSessionChange = function (e) {
                var t = e.session;
                t &&
                  !t.multiSelect &&
                  ((t.$selectionMarkers = []),
                  t.selection.$initRangeList(),
                  (t.multiSelect = t.selection)),
                  (this.multiSelect = t && t.multiSelect);
                var n = e.oldSession;
                n &&
                  (n.multiSelect.off("addRange", this.$onAddRange),
                  n.multiSelect.off("removeRange", this.$onRemoveRange),
                  n.multiSelect.off("multiSelect", this.$onMultiSelect),
                  n.multiSelect.off("singleSelect", this.$onSingleSelect),
                  n.multiSelect.lead.off(
                    "change",
                    this.$checkMultiselectChange
                  ),
                  n.multiSelect.anchor.off(
                    "change",
                    this.$checkMultiselectChange
                  )),
                  t &&
                    (t.multiSelect.on("addRange", this.$onAddRange),
                    t.multiSelect.on("removeRange", this.$onRemoveRange),
                    t.multiSelect.on("multiSelect", this.$onMultiSelect),
                    t.multiSelect.on("singleSelect", this.$onSingleSelect),
                    t.multiSelect.lead.on(
                      "change",
                      this.$checkMultiselectChange
                    ),
                    t.multiSelect.anchor.on(
                      "change",
                      this.$checkMultiselectChange
                    )),
                  t &&
                    this.inMultiSelectMode != t.selection.inMultiSelectMode &&
                    (t.selection.inMultiSelectMode
                      ? this.$onMultiSelect()
                      : this.$onSingleSelect());
              }),
              (t.MultiSelect = g),
              e("./config").defineOptions(h.prototype, "editor", {
                enableMultiselect: {
                  set: function (e) {
                    g(this),
                      e
                        ? (this.on(
                            "changeSession",
                            this.$multiselectOnSessionChange
                          ),
                          this.on("mousedown", s))
                        : (this.off(
                            "changeSession",
                            this.$multiselectOnSessionChange
                          ),
                          this.off("mousedown", s));
                  },
                  value: !0,
                },
                enableBlockSelect: {
                  set: function (e) {
                    this.$blockSelectEnabled = e;
                  },
                  value: !0,
                },
              });
          }
        ),
        ace.define(
          "ace/mode/folding/fold_mode",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("../../range").Range,
              r = (t.FoldMode = function () {});
            (function () {
              (this.foldingStartMarker = null),
                (this.foldingStopMarker = null),
                (this.getFoldWidget = function (e, t, n) {
                  var i = e.getLine(n);
                  return this.foldingStartMarker.test(i)
                    ? "start"
                    : "markbeginend" == t &&
                      this.foldingStopMarker &&
                      this.foldingStopMarker.test(i)
                    ? "end"
                    : "";
                }),
                (this.getFoldWidgetRange = function (e, t, n) {
                  return null;
                }),
                (this.indentationBlock = function (e, t, n) {
                  var r = /\S/,
                    o = e.getLine(t),
                    s = o.search(r);
                  if (-1 != s) {
                    for (
                      var a = n || o.length, l = e.getLength(), c = t, d = t;
                      ++t < l;

                    ) {
                      var u = e.getLine(t).search(r);
                      if (-1 != u) {
                        if (u <= s) {
                          var h = e.getTokenAt(t, 0);
                          if (!h || "string" !== h.type) break;
                        }
                        d = t;
                      }
                    }
                    if (d > c) {
                      var g = e.getLine(d).length;
                      return new i(c, a, d, g);
                    }
                  }
                }),
                (this.openingBracketBlock = function (e, t, n, r, o) {
                  var s = {
                      row: n,
                      column: r + 1,
                    },
                    a = e.$findClosingBracket(t, s, o);
                  if (a) {
                    var l = e.foldWidgets[a.row];
                    return (
                      null == l && (l = e.getFoldWidget(a.row)),
                      "start" == l &&
                        a.row > s.row &&
                        (a.row--, (a.column = e.getLine(a.row).length)),
                      i.fromPoints(s, a)
                    );
                  }
                }),
                (this.closingBracketBlock = function (e, t, n, r, o) {
                  var s = {
                      row: n,
                      column: r,
                    },
                    a = e.$findOpeningBracket(t, s);
                  if (a) return a.column++, s.column--, i.fromPoints(a, s);
                });
            }).call(r.prototype);
          }
        ),
        ace.define(
          "ace/theme/textmate",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            (t.isDark = !1),
              (t.cssClass = "ace-tm"),
              (t.cssText =
                '.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}'),
              (t.$id = "ace/theme/textmate"),
              e("../lib/dom").importCssString(t.cssText, t.cssClass);
          }
        ),
        ace.define(
          "ace/line_widgets",
          ["require", "exports", "module", "ace/lib/dom"],
          function (e, t, n) {
            "use strict";
            var i = e("./lib/dom");

            function r(e) {
              (this.session = e),
                (this.session.widgetManager = this),
                (this.session.getRowLength = this.getRowLength),
                (this.session.$getWidgetScreenLength =
                  this.$getWidgetScreenLength),
                (this.updateOnChange = this.updateOnChange.bind(this)),
                (this.renderWidgets = this.renderWidgets.bind(this)),
                (this.measureWidgets = this.measureWidgets.bind(this)),
                (this.session._changedWidgets = []),
                (this.$onChangeEditor = this.$onChangeEditor.bind(this)),
                this.session.on("change", this.updateOnChange),
                this.session.on("changeFold", this.updateOnFold),
                this.session.on("changeEditor", this.$onChangeEditor);
            }
            (function () {
              (this.getRowLength = function (e) {
                var t;
                return (
                  (t =
                    (this.lineWidgets &&
                      this.lineWidgets[e] &&
                      this.lineWidgets[e].rowCount) ||
                    0),
                  this.$useWrapMode && this.$wrapData[e]
                    ? this.$wrapData[e].length + 1 + t
                    : 1 + t
                );
              }),
                (this.$getWidgetScreenLength = function () {
                  var e = 0;
                  return (
                    this.lineWidgets.forEach(function (t) {
                      t && t.rowCount && !t.hidden && (e += t.rowCount);
                    }),
                    e
                  );
                }),
                (this.$onChangeEditor = function (e) {
                  this.attach(e.editor);
                }),
                (this.attach = function (e) {
                  e &&
                    e.widgetManager &&
                    e.widgetManager != this &&
                    e.widgetManager.detach(),
                    this.editor != e &&
                      (this.detach(),
                      (this.editor = e),
                      e &&
                        ((e.widgetManager = this),
                        e.renderer.on("beforeRender", this.measureWidgets),
                        e.renderer.on("afterRender", this.renderWidgets)));
                }),
                (this.detach = function (e) {
                  var t = this.editor;
                  if (t) {
                    (this.editor = null),
                      (t.widgetManager = null),
                      t.renderer.off("beforeRender", this.measureWidgets),
                      t.renderer.off("afterRender", this.renderWidgets);
                    var n = this.session.lineWidgets;
                    n &&
                      n.forEach(function (e) {
                        e &&
                          e.el &&
                          e.el.parentNode &&
                          ((e._inDocument = !1),
                          e.el.parentNode.removeChild(e.el));
                      });
                  }
                }),
                (this.updateOnFold = function (e, t) {
                  var n = t.lineWidgets;
                  if (n && e.action) {
                    for (
                      var i = e.data,
                        r = i.start.row,
                        o = i.end.row,
                        s = "add" == e.action,
                        a = r + 1;
                      a < o;
                      a++
                    )
                      n[a] && (n[a].hidden = s);
                    n[o] &&
                      (s
                        ? n[r]
                          ? (n[o].hidden = s)
                          : (n[r] = n[o])
                        : (n[r] == n[o] && (n[r] = void 0), (n[o].hidden = s)));
                  }
                }),
                (this.updateOnChange = function (e) {
                  var t = this.session.lineWidgets;
                  if (t) {
                    var n = e.start.row,
                      i = e.end.row - n;
                    if (0 === i);
                    else if ("remove" == e.action) {
                      var r = t.splice(n + 1, i);
                      !t[n] && r[r.length - 1] && (t[n] = r.pop()),
                        r.forEach(function (e) {
                          e && this.removeLineWidget(e);
                        }, this),
                        this.$updateRows();
                    } else {
                      var o = new Array(i);
                      t[n] &&
                        null != t[n].column &&
                        e.start.column > t[n].column &&
                        n++,
                        o.unshift(n, 0),
                        t.splice.apply(t, o),
                        this.$updateRows();
                    }
                  }
                }),
                (this.$updateRows = function () {
                  var e = this.session.lineWidgets;
                  if (e) {
                    var t = !0;
                    e.forEach(function (e, n) {
                      if (e)
                        for (t = !1, e.row = n; e.$oldWidget; )
                          (e.$oldWidget.row = n), (e = e.$oldWidget);
                    }),
                      t && (this.session.lineWidgets = null);
                  }
                }),
                (this.$registerLineWidget = function (e) {
                  this.session.lineWidgets ||
                    (this.session.lineWidgets = new Array(
                      this.session.getLength()
                    ));
                  var t = this.session.lineWidgets[e.row];
                  return (
                    t &&
                      ((e.$oldWidget = t),
                      t.el &&
                        t.el.parentNode &&
                        (t.el.parentNode.removeChild(t.el),
                        (t._inDocument = !1))),
                    (this.session.lineWidgets[e.row] = e),
                    e
                  );
                }),
                (this.addLineWidget = function (e) {
                  if (
                    (this.$registerLineWidget(e),
                    (e.session = this.session),
                    !this.editor)
                  )
                    return e;
                  var t = this.editor.renderer;
                  e.html &&
                    !e.el &&
                    ((e.el = i.createElement("div")),
                    (e.el.innerHTML = e.html)),
                    e.el &&
                      (i.addCssClass(e.el, "ace_lineWidgetContainer"),
                      (e.el.style.position = "absolute"),
                      (e.el.style.zIndex = 5),
                      t.container.appendChild(e.el),
                      (e._inDocument = !0),
                      e.coverGutter || (e.el.style.zIndex = 3),
                      null == e.pixelHeight &&
                        (e.pixelHeight = e.el.offsetHeight)),
                    null == e.rowCount &&
                      (e.rowCount = e.pixelHeight / t.layerConfig.lineHeight);
                  var n = this.session.getFoldAt(e.row, 0);
                  if (((e.$fold = n), n)) {
                    var r = this.session.lineWidgets;
                    e.row != n.end.row || r[n.start.row]
                      ? (e.hidden = !0)
                      : (r[n.start.row] = e);
                  }
                  return (
                    this.session._emit("changeFold", {
                      data: {
                        start: {
                          row: e.row,
                        },
                      },
                    }),
                    this.$updateRows(),
                    this.renderWidgets(null, t),
                    this.onWidgetChanged(e),
                    e
                  );
                }),
                (this.removeLineWidget = function (e) {
                  if (
                    ((e._inDocument = !1),
                    (e.session = null),
                    e.el &&
                      e.el.parentNode &&
                      e.el.parentNode.removeChild(e.el),
                    e.editor && e.editor.destroy)
                  )
                    try {
                      e.editor.destroy();
                    } catch (e) {}
                  if (this.session.lineWidgets) {
                    var t = this.session.lineWidgets[e.row];
                    if (t == e)
                      (this.session.lineWidgets[e.row] = e.$oldWidget),
                        e.$oldWidget && this.onWidgetChanged(e.$oldWidget);
                    else
                      for (; t; ) {
                        if (t.$oldWidget == e) {
                          t.$oldWidget = e.$oldWidget;
                          break;
                        }
                        t = t.$oldWidget;
                      }
                  }
                  this.session._emit("changeFold", {
                    data: {
                      start: {
                        row: e.row,
                      },
                    },
                  }),
                    this.$updateRows();
                }),
                (this.getWidgetsAtRow = function (e) {
                  for (
                    var t = this.session.lineWidgets, n = t && t[e], i = [];
                    n;

                  )
                    i.push(n), (n = n.$oldWidget);
                  return i;
                }),
                (this.onWidgetChanged = function (e) {
                  this.session._changedWidgets.push(e),
                    this.editor && this.editor.renderer.updateFull();
                }),
                (this.measureWidgets = function (e, t) {
                  var n = this.session._changedWidgets,
                    i = t.layerConfig;
                  if (n && n.length) {
                    for (var r = 1 / 0, o = 0; o < n.length; o++) {
                      var s = n[o];
                      if (s && s.el && s.session == this.session) {
                        if (!s._inDocument) {
                          if (this.session.lineWidgets[s.row] != s) continue;
                          (s._inDocument = !0), t.container.appendChild(s.el);
                        }
                        (s.h = s.el.offsetHeight),
                          s.fixedWidth ||
                            ((s.w = s.el.offsetWidth),
                            (s.screenWidth = Math.ceil(
                              s.w / i.characterWidth
                            )));
                        var a = s.h / i.lineHeight;
                        s.coverLine &&
                          (a -= this.session.getRowLineCount(s.row)) < 0 &&
                          (a = 0),
                          s.rowCount != a &&
                            ((s.rowCount = a), s.row < r && (r = s.row));
                      }
                    }
                    r != 1 / 0 &&
                      (this.session._emit("changeFold", {
                        data: {
                          start: {
                            row: r,
                          },
                        },
                      }),
                      (this.session.lineWidgetWidth = null)),
                      (this.session._changedWidgets = []);
                  }
                }),
                (this.renderWidgets = function (e, t) {
                  var n = t.layerConfig,
                    i = this.session.lineWidgets;
                  if (i) {
                    for (
                      var r = Math.min(this.firstRow, n.firstRow),
                        o = Math.max(this.lastRow, n.lastRow, i.length);
                      r > 0 && !i[r];

                    )
                      r--;
                    (this.firstRow = n.firstRow),
                      (this.lastRow = n.lastRow),
                      (t.$cursorLayer.config = n);
                    for (var s = r; s <= o; s++) {
                      var a = i[s];
                      if (a && a.el)
                        if (a.hidden)
                          a.el.style.top = -100 - (a.pixelHeight || 0) + "px";
                        else {
                          a._inDocument ||
                            ((a._inDocument = !0),
                            t.container.appendChild(a.el));
                          var l = t.$cursorLayer.getPixelPosition(
                            {
                              row: s,
                              column: 0,
                            },
                            !0
                          ).top;
                          a.coverLine ||
                            (l +=
                              n.lineHeight *
                              this.session.getRowLineCount(a.row)),
                            (a.el.style.top = l - n.offset + "px");
                          var c = a.coverGutter ? 0 : t.gutterWidth;
                          a.fixedWidth || (c -= t.scrollLeft),
                            (a.el.style.left = c + "px"),
                            a.fullWidth &&
                              a.screenWidth &&
                              (a.el.style.minWidth =
                                n.width + 2 * n.padding + "px"),
                            a.fixedWidth
                              ? (a.el.style.right =
                                  t.scrollBar.getWidth() + "px")
                              : (a.el.style.right = "");
                        }
                    }
                  }
                });
            }).call(r.prototype),
              (t.LineWidgets = r);
          }
        ),
        ace.define(
          "ace/ext/error_marker",
          [
            "require",
            "exports",
            "module",
            "ace/line_widgets",
            "ace/lib/dom",
            "ace/range",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../line_widgets").LineWidgets,
              r = e("../lib/dom"),
              o = e("../range").Range;
            (t.showErrorMarker = function (e, t) {
              var n = e.session;
              n.widgetManager ||
                ((n.widgetManager = new i(n)), n.widgetManager.attach(e));
              var s = e.getCursorPosition(),
                a = s.row,
                l = n.widgetManager.getWidgetsAtRow(a).filter(function (e) {
                  return "errorMarker" == e.type;
                })[0];
              l ? l.destroy() : (a -= t);
              var c,
                d = (function (e, t, n) {
                  var i = e.getAnnotations().sort(o.comparePoints);
                  if (i.length) {
                    var r = (function (e, t, n) {
                      for (var i = 0, r = e.length - 1; i <= r; ) {
                        var o = (i + r) >> 1,
                          s = n(t, e[o]);
                        if (s > 0) i = o + 1;
                        else {
                          if (!(s < 0)) return o;
                          r = o - 1;
                        }
                      }
                      return -(i + 1);
                    })(
                      i,
                      {
                        row: t,
                        column: -1,
                      },
                      o.comparePoints
                    );
                    r < 0 && (r = -r - 1),
                      r >= i.length
                        ? (r = n > 0 ? 0 : i.length - 1)
                        : 0 === r && n < 0 && (r = i.length - 1);
                    var s = i[r];
                    if (s && n) {
                      if (s.row === t) {
                        do {
                          s = i[(r += n)];
                        } while (s && s.row === t);
                        if (!s) return i.slice();
                      }
                      var a = [];
                      t = s.row;
                      do {
                        a[n < 0 ? "unshift" : "push"](s), (s = i[(r += n)]);
                      } while (s && s.row == t);
                      return a.length && a;
                    }
                  }
                })(n, a, t);
              if (d) {
                var u = d[0];
                (s.column =
                  (u.pos && "number" != typeof u.column
                    ? u.pos.sc
                    : u.column) || 0),
                  (s.row = u.row),
                  (c = e.renderer.$gutterLayer.$annotations[s.row]);
              } else {
                if (l) return;
                c = {
                  text: ["Looks good!"],
                  className: "ace_ok",
                };
              }
              e.session.unfold(s.row), e.selection.moveToPosition(s);
              var h = {
                  row: s.row,
                  fixedWidth: !0,
                  coverGutter: !0,
                  el: r.createElement("div"),
                  type: "errorMarker",
                },
                g = h.el.appendChild(r.createElement("div")),
                p = h.el.appendChild(r.createElement("div"));
              p.className = "error_widget_arrow " + c.className;
              var A = e.renderer.$cursorLayer.getPixelPosition(s).left;
              (p.style.left = A + e.renderer.gutterWidth - 5 + "px"),
                (h.el.className = "error_widget_wrapper"),
                (g.className = "error_widget " + c.className),
                (g.innerHTML = c.text.join("<br>")),
                g.appendChild(r.createElement("div"));
              var f = function (e, t, n) {
                if (0 === t && ("esc" === n || "return" === n))
                  return (
                    h.destroy(),
                    {
                      command: "null",
                    }
                  );
              };
              (h.destroy = function () {
                e.$mouseHandler.isMousePressed ||
                  (e.keyBinding.removeKeyboardHandler(f),
                  n.widgetManager.removeLineWidget(h),
                  e.off("changeSelection", h.destroy),
                  e.off("changeSession", h.destroy),
                  e.off("mouseup", h.destroy),
                  e.off("change", h.destroy));
              }),
                e.keyBinding.addKeyboardHandler(f),
                e.on("changeSelection", h.destroy),
                e.on("changeSession", h.destroy),
                e.on("mouseup", h.destroy),
                e.on("change", h.destroy),
                e.session.widgetManager.addLineWidget(h),
                (h.el.onmousedown = e.focus.bind(e)),
                e.renderer.scrollCursorIntoView(null, 0.5, {
                  bottom: h.el.offsetHeight,
                });
            }),
              r.importCssString(
                "    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }",
                ""
              );
          }
        ),
        ace.define(
          "ace/ace",
          [
            "require",
            "exports",
            "module",
            "ace/lib/fixoldbrowsers",
            "ace/lib/dom",
            "ace/lib/event",
            "ace/range",
            "ace/editor",
            "ace/edit_session",
            "ace/undomanager",
            "ace/virtual_renderer",
            "ace/worker/worker_client",
            "ace/keyboard/hash_handler",
            "ace/placeholder",
            "ace/multi_select",
            "ace/mode/folding/fold_mode",
            "ace/theme/textmate",
            "ace/ext/error_marker",
            "ace/config",
          ],
          function (e, t, i) {
            "use strict";
            e("./lib/fixoldbrowsers");
            var r = e("./lib/dom"),
              o = e("./lib/event"),
              s = e("./range").Range,
              a = e("./editor").Editor,
              l = e("./edit_session").EditSession,
              c = e("./undomanager").UndoManager,
              d = e("./virtual_renderer").VirtualRenderer;
            e("./worker/worker_client"),
              e("./keyboard/hash_handler"),
              e("./placeholder"),
              e("./multi_select"),
              e("./mode/folding/fold_mode"),
              e("./theme/textmate"),
              e("./ext/error_marker"),
              (t.config = e("./config")),
              (t.require = e),
              (t.define = n(13)),
              (t.edit = function (e, n) {
                if ("string" == typeof e) {
                  var i = e;
                  if (!(e = document.getElementById(i)))
                    throw new Error("ace.edit can't find div #" + i);
                }
                if (e && e.env && e.env.editor instanceof a)
                  return e.env.editor;
                var s = "";
                if (e && /input|textarea/i.test(e.tagName)) {
                  var l = e;
                  (s = l.value),
                    (e = r.createElement("pre")),
                    l.parentNode.replaceChild(e, l);
                } else e && ((s = e.textContent), (e.innerHTML = ""));
                var c = t.createEditSession(s),
                  u = new a(new d(e), c, n),
                  h = {
                    document: c,
                    editor: u,
                    onResize: u.resize.bind(u, null),
                  };
                return (
                  l && (h.textarea = l),
                  o.addListener(window, "resize", h.onResize),
                  u.on("destroy", function () {
                    o.removeListener(window, "resize", h.onResize),
                      (h.editor.container.env = null);
                  }),
                  (u.container.env = u.env = h),
                  u
                );
              }),
              (t.createEditSession = function (e, t) {
                var n = new l(e, t);
                return n.setUndoManager(new c()), n;
              }),
              (t.Range = s),
              (t.Editor = a),
              (t.EditSession = l),
              (t.UndoManager = c),
              (t.VirtualRenderer = d),
              (t.version = t.config.version);
          }
        ),
        ace.require(["ace/ace"], function (t) {
          for (var n in (t && (t.config.init(!0), (t.define = ace.define)),
          window.ace || (window.ace = t),
          t))
            t.hasOwnProperty(n) && (window.ace[n] = t[n]);
          (window.ace.default = window.ace), e && (e.exports = window.ace);
        });
    }).call(this, n(12)(e));
  },
  function (e, t, n) {
    e.exports =
      '<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel=stylesheet>\r\n<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel=stylesheet>\r\n\r\n<div class=loading-page-overlay style=position:fixed;display:flex;justify-content:center;align-items:center;text-align:center;width:100%;height:100%;top:0;left:0;background:#eee;z-index:1000>\r\n    <div>\r\n        <div><img width=60px src=' +
      n(14) +
      ' /></div>\r\n        <label style=margin-bottom:0;margin-top:-5px;font-size:95%>{language.starting}</label>\r\n    </div>\r\n</div>\r\n\r\n<div class="themewp-view-source view-source">\r\n    <div class=source-code-header>\r\n        <span class=close-button>\r\n            <i>\r\n                <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M19.41 18l8.29-8.29a1 1 0 0 0-1.41-1.41L18 16.59l-8.29-8.3a1 1 0 0 0-1.42 1.42l8.3 8.29l-8.3 8.29A1 1 0 1 0 9.7 27.7l8.3-8.29l8.29 8.29a1 1 0 0 0 1.41-1.41z" fill=#626262 /></svg>\r\n            </i>\r\n        </span>\r\n    </div>\r\n    <div id=editor>\r\n        \x3c!--content template--\x3e\r\n    </div>\r\n</div>\r\n\r\n<div class=themewp-wrapper>\r\n    <div class="themewp-sidebar is-main-page">\r\n        <div class="themewp-header p-2">\r\n            <span class="menu-button left-menu">\r\n                <i>\r\n                    \r\n                </i>\r\n            </span>\r\n            <div class=title>\r\n                <strong class=font-weight-bold>Bee</strong> Builder PRO\r\n            </div>\r\n            <span class="menu-button right-menu">\r\n                <i>\r\n                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><g fill=none><path d="M4 4h4v4H4V4z" fill=#626262 /><path d="M4 10h4v4H4v-4z" fill=#626262 /><path d="M8 16H4v4h4v-4z" fill=#626262 /><path d="M10 4h4v4h-4V4z" fill=#626262 /><path d="M14 10h-4v4h4v-4z" fill=#626262 /><path d="M10 16h4v4h-4v-4z" fill=#626262 /><path d="M20 4h-4v4h4V4z" fill=#626262 /><path d="M16 10h4v4h-4v-4z" fill=#626262 /><path d="M20 16h-4v4h4v-4z" fill=#626262 /></g></svg>\r\n                </i>\r\n            </span>\r\n        </div>\r\n        <div class="header-dropdown header-menu hide">\r\n            <div class=full-width>\r\n                <div class="menu-actions full-width">\r\n                    <div class="menu-action menu-device menu-device-laptop active" onclick=\'showDevicesDropdown("laptop")\'>\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i class=d-block>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M26 24.005H6a2.002 2.002 0 0 1-2-2v-14a2.002 2.002 0 0 1 2-2h20a2.002 2.002 0 0 1 2 2v14a2.003 2.003 0 0 1-2 2zm-20-16v14h20v-14z" fill=#626262 /><path d="M2 26.005h28v2H2z" fill=#626262 /></svg>\r\n                                </i>\r\n                                <label>Laptop</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class="menu-action menu-device menu-device-tablet" onclick=\'showDevicesDropdown("tablet")\'>\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=#626262><path fill-rule=evenodd d="M12 1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM4 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H4z"/><path fill-rule=evenodd d="M8 14a1 1 0 1 0 0-2a1 1 0 0 0 0 2z"/></g></svg>\r\n                                </i>\r\n                                <label>Tablet</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class="menu-action menu-device menu-device-mobile" onclick=\'showDevicesDropdown("mobile")\'>\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 1024 1024"><path d="M744 62H280c-35.3 0-64 28.7-64 64v768c0 35.3 28.7 64 64 64h464c35.3 0 64-28.7 64-64V126c0-35.3-28.7-64-64-64zm-8 824H288V134h448v752zM472 784a40 40 0 1 0 80 0a40 40 0 1 0-80 0z" fill=#626262 /></svg>\r\n                                </i>\r\n                                <label>Mobile</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class="menu-action bp-view-source">\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i class=d-block>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=#626262><path fill-rule=evenodd d="M4.854 4.146a.5.5 0 0 1 0 .708L1.707 8l3.147 3.146a.5.5 0 0 1-.708.708l-3.5-3.5a.5.5 0 0 1 0-.708l3.5-3.5a.5.5 0 0 1 .708 0zm6.292 0a.5.5 0 0 0 0 .708L14.293 8l-3.147 3.146a.5.5 0 0 0 .708.708l3.5-3.5a.5.5 0 0 0 0-.708l-3.5-3.5a.5.5 0 0 0-.708 0zm-.999-3.124a.5.5 0 0 1 .33.625l-4 13a.5.5 0 0 1-.955-.294l4-13a.5.5 0 0 1 .625-.33z"/></g></svg>\r\n                                </i>\r\n                                <label>Source Code</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class=menu-action onclick=goToSwitchTemplatePage(),hideMainMenuDropdown()>\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><g fill=none><path fill-rule=evenodd clip-rule=evenodd d="M3 3v6h18V3H3zm16 2H5v2h14V5z" fill=#626262 /><path fill-rule=evenodd clip-rule=evenodd d="M3 11v10h8V11H3zm6 2H5v6h4v-6z" fill=#626262 /><path d="M21 11h-8v2h8v-2z" fill=#626262 /><path d="M13 15h8v2h-8v-2z" fill=#626262 /><path d="M21 19h-8v2h8v-2z" fill=#626262 /></g></svg>\r\n                                </i>\r\n                                <label>Templates</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                    <div class="menu-action bp-template-clear">\r\n                        <div class=inner>\r\n                            <span>\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=#626262><path d="M10 12.6l.7.7l1.6-1.6l1.6 1.6l.8-.7L13 11l1.7-1.6l-.8-.8l-1.6 1.7l-1.6-1.7l-.7.8l1.6 1.6l-1.6 1.6zM1 4h14V3H1v1zm0 3h14V6H1v1zm8 2.5V9H1v1h8v-.5zM9 13v-1H1v1h8z"/></g></svg>\r\n                                </i>\r\n                                <label>Clear</label>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class="header-dropdown devices-menu hide">\r\n            <div class=full-width>\r\n                <a class=back-link onclick=hideDevicesDropdown()>Back to main menu</a>\r\n\r\n                <div class="devices-list laptop">\r\n                    <div class=device-button data-value=default-size data-device=laptop>\r\n                        Reset to default\r\n                    </div>\r\n\r\n                    <div class=device-button data-value=laptop-1920-1080 data-device=laptop>\r\n                        1920 x 1080  Full HD screen\r\n                    </div>\r\n                    <div class=device-button data-value=laptop-1024-768 data-device=laptop>\r\n                        1024 x 768  HD screen Laptop\r\n                    </div>\r\n                    <div class=device-button data-value=laptop-4096-2304 data-device=laptop>\r\n                        4096 x 2304 Macbook Pro 13" screen\r\n                    </div>\r\n                    <div class=device-button data-value=laptop-3072-1920 data-device=laptop>\r\n                        3072 x 1920 Macbook Pro 16" screen\r\n                    </div>\r\n                </div>\r\n\r\n                <div class="devices-list tablet">\r\n                    <div class=device-button data-value=default-size data-device=laptop>\r\n                        Reset to default\r\n                    </div>\r\n                    <div class=device-button data-value=tablet-768 data-device=tablet>\r\n                        768 <span>iPad</span>\r\n                    </div>\r\n                    <div class=device-button data-value=tablet-1024 data-device=tablet>\r\n                        1024 <span>iPad Pro</span>\r\n                    </div>\r\n                    <div class=device-button data-value=tablet-960 data-device=tablet>\r\n                        960 <span>Galaxy tab</span>\r\n                    </div>\r\n                </div>\r\n\r\n                <div class="devices-list mobile">\r\n                    <div class=device-button data-value=default-size data-device=laptop>\r\n                        Reset to default\r\n                    </div>\r\n                    <div class=device-button data-value=mobile-320 data-device=mobile>\r\n                        320 <span>iPhone 5</span>\r\n                    </div>\r\n                    <div class=device-button data-value=mobile-360 data-device=mobile>\r\n                        360 <span>Galaxy S10</span>\r\n                    </div>\r\n                    <div class=device-button data-value=mobile-375 data-device=mobile>\r\n                        375 <span>iPhone X</span>\r\n                    </div>\r\n                    <div class=device-button data-value=mobile-414 data-device=mobile>\r\n                        414 <span>iPhone 8<sup>+</sup></span>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <div class=sidebar-content>\r\n            <div class=sidebar-container>\r\n                <div class="sidebar-page main-page">\r\n                    <div class=page-content>\r\n                        <div class=p-3>\r\n                            <div class=main-search-group>\r\n                                <input type=text name=keyword class="main-search form-control"/>\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 50 50"><path d="M23 36c-7.2 0-13-5.8-13-13s5.8-13 13-13s13 5.8 13 13s-5.8 13-13 13zm0-24c-6.1 0-11 4.9-11 11s4.9 11 11 11s11-4.9 11-11s-4.9-11-11-11z" fill=#626262 /><path d="M32.682 31.267l8.98 8.98l-1.414 1.414l-8.98-8.98z" fill=#626262 /></svg>\r\n                                </i>\r\n                                <p class="my-2 not-item-search hide">No items found!</p>\r\n                            </div>\r\n                        </div>\r\n                        <div class="main-menus py-3">\r\n                            <div class="main-menu px-3 py-2" onclick=goToListFieldsPage()>\r\n                                <div class="pr-4 mr-auto">\r\n                                    <label>List Fields</label>\r\n                                    <p>Contact attributes fields available for the selected contact</p>\r\n                                </div>\r\n                                <i class=caret-right>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                </i>\r\n                            </div>\r\n                            <div class="main-menu px-3 py-3" onclick=goToGlobalTagsPage()>\r\n                                <div class="pr-4 mr-auto">\r\n                                    <label>Global Tags</label>\r\n                                    <p>Tags are variable piece of content that can be transformed to actual values</p>\r\n                                </div>\r\n                                <i class=caret-right>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                </i>                            \r\n                            </div>\r\n                            <div class="main-menu px-3 py-3" onclick=goToHtmlWidgetsPage()>\r\n                                <div class="pr-4 mr-auto">\r\n                                    <label>HTML Widgets</label>\r\n                                    <p>HTML elements that are essential to your email or page design</p>\r\n                                </div>\r\n                                <i class=caret-right>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                </i>                            \r\n                            </div>\r\n                            <div class="main-menu px-3 py-3 bp-setting">\r\n                                <div class="pr-4 mr-auto">\r\n                                    <label>Settings</label>\r\n                                    <p>Make global CSS settings to all HTML elements in this form / email / page</p>\r\n                                </div>\r\n                                <i class=caret-right>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                </i>                            \r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="footer-dropup history hide">\r\n                        <div class=history-container></div>\r\n                    </div>\r\n                    <div class="footer-dropup bee-alert hide">\r\n                        <div class="bee-alert-container p-3">\r\n                            <div class="d-flex align-items-center">\r\n                                <div class="alert-icon mr-3">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><circle class="clr-i-outline clr-i-outline-path-1" cx=18 cy=26.06 r=1.33 fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M18 22.61a1 1 0 0 1-1-1v-12a1 1 0 1 1 2 0v12a1 1 0 0 1-1 1z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M18 34a16 16 0 1 1 16-16a16 16 0 0 1-16 16zm0-30a14 14 0 1 0 14 14A14 14 0 0 0 18 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class=message>\r\n                                    <label class=mb-1>title</label>\r\n                                    <p>content</p>\r\n                                </div>\r\n                            </div>                            \r\n                        </div>\r\n                    </div>\r\n                    <div class="footer-bar px-2">\r\n                        <div class="footer-left mr-auto">\r\n                            <button class="btn btn-primary mr-1 bp-save">Save</button>\r\n                            <button class="btn btn-primary bp-exit">Exit</button>\r\n                        </div>\r\n                        <div class=footer-right>\r\n                            <span class="action undo">\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                </i>\r\n                            </span>\r\n                            <span class="action redo">\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                </i>\r\n                            </span>\r\n                            <span class="action show-history dropup-button">\r\n                                <i>\r\n                                    <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 16 16"><g fill=#626262><path fill-rule=evenodd d="M8.515 1.019A7 7 0 0 0 8 1V0a8 8 0 0 1 .589.022l-.074.997zm2.004.45a7.003 7.003 0 0 0-.985-.299l.219-.976c.383.086.76.2 1.126.342l-.36.933zm1.37.71a7.01 7.01 0 0 0-.439-.27l.493-.87a8.025 8.025 0 0 1 .979.654l-.615.789a6.996 6.996 0 0 0-.418-.302zm1.834 1.79a6.99 6.99 0 0 0-.653-.796l.724-.69c.27.285.52.59.747.91l-.818.576zm.744 1.352a7.08 7.08 0 0 0-.214-.468l.893-.45a7.976 7.976 0 0 1 .45 1.088l-.95.313a7.023 7.023 0 0 0-.179-.483zm.53 2.507a6.991 6.991 0 0 0-.1-1.025l.985-.17c.067.386.106.778.116 1.17l-1 .025zm-.131 1.538c.033-.17.06-.339.081-.51l.993.123a7.957 7.957 0 0 1-.23 1.155l-.964-.267c.046-.165.086-.332.12-.501zm-.952 2.379c.184-.29.346-.594.486-.908l.914.405c-.16.36-.345.706-.555 1.038l-.845-.535zm-.964 1.205c.122-.122.239-.248.35-.378l.758.653a8.073 8.073 0 0 1-.401.432l-.707-.707z"/><path fill-rule=evenodd d="M8 1a7 7 0 1 0 4.95 11.95l.707.707A8.001 8.001 0 1 1 8 0v1z"/><path fill-rule=evenodd d="M7.5 3a.5.5 0 0 1 .5.5v5.21l3.248 1.856a.5.5 0 0 1-.496.868l-3.5-2A.5.5 0 0 1 7 9V3.5a.5.5 0 0 1 .5-.5z"/></g></svg>\r\n                                </i>\r\n                            </span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=sidebar-page>\r\n                    <div class="second-page list-fields">\r\n                        <div class=page-content>\r\n                            <div class=sidebar-page-header>\r\n                                <div class=back-button onclick=goToMainPage()>\r\n                                    <i class=caret-left>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class="py-2 px-3 d-flex align-item-center">\r\n                                    <div>\r\n                                        <label>List Fields</label>\r\n                                        <p>Contact attributes fields available for the selected contact</p>\r\n                                    </div>\r\n                                </div>                            \r\n                            </div>\r\n                            <div class=p-3>\r\n                                <h4 class=mb-2>Available list fields</h4>\r\n                                <p>The following fields are available for the <red>My Awesome</red> mail list. Drag and drop onto\r\n                                your form on the right hand</p>\r\n\r\n                                <div class="fields-container mt-4" style=margin-left:-.5rem;margin-right:-1rem>\r\n                                                        \r\n                                </div>\r\n                                <br style=clear:both />\r\n\r\n                                <p class="mt-4 mb-2">Or search for other field name if you can not find it in the list above</p>\r\n                                <div class=main-search-group>\r\n                                    <input type=text name=keyword class="main-search form-control"/>\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 50 50"><path d="M23 36c-7.2 0-13-5.8-13-13s5.8-13 13-13s13 5.8 13 13s-5.8 13-13 13zm0-24c-6.1 0-11 4.9-11 11s4.9 11 11 11s11-4.9 11-11s-4.9-11-11-11z" fill=#626262 /><path d="M32.682 31.267l8.98 8.98l-1.414 1.414l-8.98-8.98z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                    <p class="my-2 not-item-search hide">No items found!</p>\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class="footer-bar px-2">\r\n                            <div class="footer-left mr-auto">\r\n                                <button class="btn btn-primary mr-1 bp-save">Save</button>                            \r\n                            </div>\r\n                            <div class=footer-right>\r\n                                <span class="action undo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action redo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-delete">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M27.14 34H8.86A2.93 2.93 0 0 1 6 31V11.23h2V31a.93.93 0 0 0 .86 1h18.28a.93.93 0 0 0 .86-1V11.23h2V31a2.93 2.93 0 0 1-2.86 3z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M30.78 9H5a1 1 0 0 1 0-2h25.78a1 1 0 0 1 0 2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M21 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-4" d="M13 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-5" d="M23 5.86h-1.9V4h-6.2v1.86H13V4a2 2 0 0 1 1.9-2h6.2A2 2 0 0 1 23 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-duplicate">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M9 6h8a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3v-1h1v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H6V9a3 3 0 0 1 3-3zM5 2h10v1H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h7.25L10 13.75l.664-.75l3.5 3.5l-3.5 3.5l-.664-.75L12.25 17H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="second-page global-tags">\r\n                        <div class=page-content>\r\n                            <div class=sidebar-page-header>\r\n                                <div class=back-button onclick=goToMainPage()>\r\n                                    <i class=caret-left>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class="py-2 px-3">\r\n                                    <label>Global Tags</label>\r\n                                    <p>Tags are variable piece of content that can be transformed to actual values</p>\r\n                                </div>                            \r\n                            </div>\r\n                            <div class=p-3>\r\n                                <h4 class=mb-2>Available Tags</h4>\r\n                                <p>The following fields are available for your page content, click on a tag to copy it to the clipboard and paste it to your HTML content</p>\r\n\r\n                                <div class="tags-container mt-4" style=margin-left:-.5rem;margin-right:-1rem>\r\n                                    \r\n                                </div>\r\n                                <br style=clear:both />\r\n\r\n                                <p class="mt-4 mb-2">Or search for a tag name if you cannot find it in the list above</p>\r\n                                <div class=main-search-group>\r\n                                    <input type=text name=keyword class="main-search form-control"/>\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 50 50"><path d="M23 36c-7.2 0-13-5.8-13-13s5.8-13 13-13s13 5.8 13 13s-5.8 13-13 13zm0-24c-6.1 0-11 4.9-11 11s4.9 11 11 11s11-4.9 11-11s-4.9-11-11-11z" fill=#626262 /><path d="M32.682 31.267l8.98 8.98l-1.414 1.414l-8.98-8.98z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                    <p class="my-2 not-item-search hide">No items found!</p>\r\n                                </div>\r\n                                \r\n                            </div>\r\n                        </div>\r\n                        <div class="footer-bar px-2">\r\n                            <div class="footer-left mr-auto">\r\n                                <button class="btn btn-primary mr-1 bp-save">Save</button>                            \r\n                            </div>\r\n                            <div class=footer-right>\r\n                                <span class="action undo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action redo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-delete">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M27.14 34H8.86A2.93 2.93 0 0 1 6 31V11.23h2V31a.93.93 0 0 0 .86 1h18.28a.93.93 0 0 0 .86-1V11.23h2V31a2.93 2.93 0 0 1-2.86 3z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M30.78 9H5a1 1 0 0 1 0-2h25.78a1 1 0 0 1 0 2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M21 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-4" d="M13 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-5" d="M23 5.86h-1.9V4h-6.2v1.86H13V4a2 2 0 0 1 1.9-2h6.2A2 2 0 0 1 23 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-duplicate">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M9 6h8a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3v-1h1v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H6V9a3 3 0 0 1 3-3zM5 2h10v1H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h7.25L10 13.75l.664-.75l3.5 3.5l-3.5 3.5l-.664-.75L12.25 17H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="second-page html-widgets">\r\n                        <div class=page-content>\r\n                            <div class=sidebar-page-header>\r\n                                <div class=back-button onclick=goToMainPage()>\r\n                                    <i class=caret-left>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class="py-2 px-3 d-flex align-items-center">\r\n                                    <div>\r\n                                        <label>HTML Widgets</label>\r\n                                        <p>HTML elements that are essential to your email or page design</p>\r\n                                    </div>\r\n                                </div>                       \r\n                            </div>\r\n                            <div class=p-3>\r\n                                <p>Choose an HTML widget below or search for your desired ones</p>\r\n\r\n                                <div class="main-search-group mt-2">\r\n                                    <input type=text name=keyword class="main-search widget-search form-control"/>\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 50 50"><path d="M23 36c-7.2 0-13-5.8-13-13s5.8-13 13-13s13 5.8 13 13s-5.8 13-13 13zm0-24c-6.1 0-11 4.9-11 11s4.9 11 11 11s11-4.9 11-11s-4.9-11-11-11z" fill=#626262 /><path d="M32.682 31.267l8.98 8.98l-1.414 1.414l-8.98-8.98z" fill=#626262 /></svg>\r\n                                    </i>                                    \r\n                                </div>\r\n\r\n                                <div class="widgets-container mt-4" style=margin-right:-1rem>\r\n                                    \r\n                                </div>\r\n                                <br style=clear:both />                                \r\n                            </div>\r\n                        </div>\r\n                        <div class="footer-bar px-2">\r\n                            <div class="footer-left mr-auto">\r\n                                <button class="btn btn-primary mr-1 bp-save">Save</button>                            \r\n                            </div>\r\n                            <div class=footer-right>\r\n                                <span class="action undo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action redo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-delete">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M27.14 34H8.86A2.93 2.93 0 0 1 6 31V11.23h2V31a.93.93 0 0 0 .86 1h18.28a.93.93 0 0 0 .86-1V11.23h2V31a2.93 2.93 0 0 1-2.86 3z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M30.78 9H5a1 1 0 0 1 0-2h25.78a1 1 0 0 1 0 2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M21 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-4" d="M13 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-5" d="M23 5.86h-1.9V4h-6.2v1.86H13V4a2 2 0 0 1 1.9-2h6.2A2 2 0 0 1 23 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-duplicate">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M9 6h8a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3v-1h1v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H6V9a3 3 0 0 1 3-3zM5 2h10v1H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h7.25L10 13.75l.664-.75l3.5 3.5l-3.5 3.5l-.664-.75L12.25 17H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                    <div class="second-page switch-template">\r\n                        <div class=page-content>\r\n                            <div class=sidebar-page-header>\r\n                                <div class=back-button onclick=goToMainPage()>\r\n                                    <i class=caret-left>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class="py-2 px-3 d-flex align-items-center">\r\n                                    <div>\r\n                                        <label>Switch Template</label>\r\n                                        <p>Choose a template to design upon</p>\r\n                                    </div>\r\n                                </div>                            \r\n                            </div>\r\n                            <div class=p-3>\r\n                                <h4 class=mb-2>Available templates</h4>\r\n                                <p>The following fields are available templates you can choose from</p>\r\n\r\n                                <div class="main-search-group mt-2">\r\n                                    <input type=text name=keyword class="main-search form-control"/>\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 50 50"><path d="M23 36c-7.2 0-13-5.8-13-13s5.8-13 13-13s13 5.8 13 13s-5.8 13-13 13zm0-24c-6.1 0-11 4.9-11 11s4.9 11 11 11s11-4.9 11-11s-4.9-11-11-11z" fill=#626262 /><path d="M32.682 31.267l8.98 8.98l-1.414 1.414l-8.98-8.98z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                    <p class="my-2 not-item-search hide">No items found!</p>\r\n                                </div>\r\n\r\n                                <ul class="templates-container mt-4" style=margin-left:0;margin-right:-1.7rem>\r\n                                    \r\n                                </ul>                                \r\n                            </div>\r\n                        </div>\r\n                        <div class="footer-bar px-2">\r\n                            <div class="footer-left mr-auto">\r\n                                <button class="btn btn-primary mr-1 bp-save">Save</button>                            \r\n                            </div>\r\n                            <div class=footer-right>\r\n                                <span class="action undo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action redo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-delete">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M27.14 34H8.86A2.93 2.93 0 0 1 6 31V11.23h2V31a.93.93 0 0 0 .86 1h18.28a.93.93 0 0 0 .86-1V11.23h2V31a2.93 2.93 0 0 1-2.86 3z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M30.78 9H5a1 1 0 0 1 0-2h25.78a1 1 0 0 1 0 2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M21 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-4" d="M13 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-5" d="M23 5.86h-1.9V4h-6.2v1.86H13V4a2 2 0 0 1 1.9-2h6.2A2 2 0 0 1 23 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-duplicate">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M9 6h8a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3v-1h1v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H6V9a3 3 0 0 1 3-3zM5 2h10v1H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h7.25L10 13.75l.664-.75l3.5 3.5l-3.5 3.5l-.664-.75L12.25 17H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                <div class=sidebar-page>\r\n                    <div class="third-page element-attributes">\r\n                        <div class=page-content>\r\n                            <div class=sidebar-page-header>\r\n                                <div class=back-button onclick=goToSecondPage()>\r\n                                    <i class=caret-left>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=0.3em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 210 700"><path d="M23 44q10 0 16 6l163 162q7 8 7 17t-7 16L39 407q-7 7-16 7t-16-7t-7-16t7-16l146-146L7 83q-7-7-7-17t6.5-16T23 44z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </div>\r\n                                <div class="py-2 px-3 d-flex align-items-center">\r\n                                    <div>\r\n                                        <label class=element-name>Element</label>\r\n                                        <p>Selected element from your builder</p>\r\n                                    </div>\r\n                                </div>                         \r\n                            </div>\r\n                            <div class="">\r\n                                <div class="attributes-container pt-2">\r\n                                    \r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                        <div class="footer-bar px-2">\r\n                            <div class="footer-left mr-auto">\r\n                                <button class="btn btn-primary mr-1 bp-save">Save</button>                            \r\n                            </div>\r\n                            <div class=footer-right>\r\n                                <span class="action undo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C12 3 8.4 4.8 6 7.7V4H4v8h8v-2H6.8c2-3 5.3-5 9.2-5c6.1 0 11 4.9 11 11s-4.9 11-11 11S5 22.1 5 16H3c0 7.2 5.8 13 13 13s13-5.8 13-13S23.2 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action redo">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M16 3C8.832 3 3 8.832 3 16s5.832 13 13 13s13-5.832 13-13h-2c0 6.086-4.914 11-11 11S5 22.086 5 16S9.914 5 16 5c3.875 0 7.262 1.984 9.219 5H20v2h8V4h-2v3.719C23.617 4.844 20.02 3 16 3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-delete">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M27.14 34H8.86A2.93 2.93 0 0 1 6 31V11.23h2V31a.93.93 0 0 0 .86 1h18.28a.93.93 0 0 0 .86-1V11.23h2V31a2.93 2.93 0 0 1-2.86 3z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-2" d="M30.78 9H5a1 1 0 0 1 0-2h25.78a1 1 0 0 1 0 2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-3" d="M21 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-4" d="M13 13h2v15h-2z" fill=#626262 /><path class="clr-i-outline clr-i-outline-path-5" d="M23 5.86h-1.9V4h-6.2v1.86H13V4a2 2 0 0 1 1.9-2h6.2A2 2 0 0 1 23 4z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                                <span class="action bp-duplicate">\r\n                                    <i>\r\n                                        <svg xmlns=http://www.w3.org/2000/svg xmlns:xlink=http://www.w3.org/1999/xlink aria-hidden=true focusable=false width=1em height=1em style=-ms-transform:rotate(360deg);-webkit-transform:rotate(360deg);transform:rotate(360deg) preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path d="M9 6h8a3 3 0 0 1 3 3v11a3 3 0 0 1-3 3H9a3 3 0 0 1-3-3v-1h1v1a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v5H6V9a3 3 0 0 1 3-3zM5 2h10v1H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h7.25L10 13.75l.664-.75l3.5 3.5l-3.5 3.5l-.664-.75L12.25 17H5a3 3 0 0 1-3-3V5a3 3 0 0 1 3-3z" fill=#626262 /></svg>\r\n                                    </i>\r\n                                </span>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n    <div class="themewp-content p-4">\r\n        <iframe id=builder_iframe class="col-lg-12 col-md-12 col-sm-12" width=100% height=100% onload=\'this.style.height=this.contentDocument.body.scrollHeight+"px"\' scrolling=no style=""></iframe>\r\n    </div>\r\n</div>';
  },
  function (e, t, n) {
    (e.exports = (function () {
      "use strict";

      function e(t) {
        return (e =
          "function" == typeof Symbol && "symbol" == typeof Symbol.iterator
            ? function (e) {
                return typeof e;
              }
            : function (e) {
                return e &&
                  "function" == typeof Symbol &&
                  e.constructor === Symbol &&
                  e !== Symbol.prototype
                  ? "symbol"
                  : typeof e;
              })(t);
      }

      function t(e, t) {
        if (!(e instanceof t))
          throw new TypeError("Cannot call a class as a function");
      }

      function n(e, t) {
        for (var n = 0; n < t.length; n++) {
          var i = t[n];
          (i.enumerable = i.enumerable || !1),
            (i.configurable = !0),
            "value" in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i);
        }
      }

      function i(e, t, i) {
        return t && n(e.prototype, t), i && n(e, i), e;
      }

      function r() {
        return (r =
          Object.assign ||
          function (e) {
            for (var t = 1; t < arguments.length; t++) {
              var n = arguments[t];
              for (var i in n)
                Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
            }
            return e;
          }).apply(this, arguments);
      }

      function o(e) {
        return (o = Object.setPrototypeOf
          ? Object.getPrototypeOf
          : function (e) {
              return e.__proto__ || Object.getPrototypeOf(e);
            })(e);
      }

      function s(e, t) {
        return (s =
          Object.setPrototypeOf ||
          function (e, t) {
            return (e.__proto__ = t), e;
          })(e, t);
      }

      function a(e, t, n) {
        return (a = (function () {
          if ("undefined" == typeof Reflect || !Reflect.construct) return !1;
          if (Reflect.construct.sham) return !1;
          if ("function" == typeof Proxy) return !0;
          try {
            return (
              Date.prototype.toString.call(
                Reflect.construct(Date, [], function () {})
              ),
              !0
            );
          } catch (e) {
            return !1;
          }
        })()
          ? Reflect.construct
          : function (e, t, n) {
              var i = [null];
              i.push.apply(i, t);
              var r = new (Function.bind.apply(e, i))();
              return n && s(r, n.prototype), r;
            }).apply(null, arguments);
      }

      function l(e, t) {
        return !t || ("object" != typeof t && "function" != typeof t)
          ? (function (e) {
              if (void 0 === e)
                throw new ReferenceError(
                  "this hasn't been initialised - super() hasn't been called"
                );
              return e;
            })(e)
          : t;
      }

      function c(e, t, n) {
        return (c =
          "undefined" != typeof Reflect && Reflect.get
            ? Reflect.get
            : function (e, t, n) {
                var i = (function (e, t) {
                  for (
                    ;
                    !Object.prototype.hasOwnProperty.call(e, t) &&
                    null !== (e = o(e));

                  );
                  return e;
                })(e, t);
                if (i) {
                  var r = Object.getOwnPropertyDescriptor(i, t);
                  return r.get ? r.get.call(n) : r.value;
                }
              })(e, t, n || e);
      }

      function d(e) {
        return Object.keys(e).map(function (t) {
          return e[t];
        });
      }

      function u(e) {
        return Array.prototype.slice.call(e);
      }

      function h(e) {
        console.error("".concat(v, " ").concat(e));
      }

      function g(e, t) {
        !(function (e) {
          -1 === w.indexOf(e) && (w.push(e), b(e));
        })(
          '"'
            .concat(
              e,
              '" is deprecated and will be removed in the next major release. Please use "'
            )
            .concat(t, '" instead.')
        );
      }

      function p(e) {
        return e && Promise.resolve(e) === e;
      }

      function A(e) {
        var t = {};
        for (var n in e) t[e[n]] = "swal2-" + e[n];
        return t;
      }

      function f(e, t) {
        return e.classList.contains(t);
      }

      function m(e, t, n) {
        u(e.classList).forEach(function (t) {
          -1 === d(C).indexOf(t) &&
            -1 === d(k).indexOf(t) &&
            e.classList.remove(t);
        }),
          t && t[n] && re(e, t[n]);
      }
      var v = "SweetAlert2:",
        b = function (e) {
          console.warn("".concat(v, " ").concat(e));
        },
        w = [],
        y = function (e) {
          return "function" == typeof e ? e() : e;
        },
        x = Object.freeze({
          cancel: "cancel",
          backdrop: "backdrop",
          close: "close",
          esc: "esc",
          timer: "timer",
        }),
        C = A([
          "container",
          "shown",
          "height-auto",
          "iosfix",
          "popup",
          "modal",
          "no-backdrop",
          "toast",
          "toast-shown",
          "toast-column",
          "fade",
          "show",
          "hide",
          "noanimation",
          "close",
          "title",
          "header",
          "content",
          "actions",
          "confirm",
          "cancel",
          "footer",
          "icon",
          "image",
          "input",
          "file",
          "range",
          "select",
          "radio",
          "checkbox",
          "label",
          "textarea",
          "inputerror",
          "validation-message",
          "progress-steps",
          "active-progress-step",
          "progress-step",
          "progress-step-line",
          "loading",
          "styled",
          "top",
          "top-start",
          "top-end",
          "top-left",
          "top-right",
          "center",
          "center-start",
          "center-end",
          "center-left",
          "center-right",
          "bottom",
          "bottom-start",
          "bottom-end",
          "bottom-left",
          "bottom-right",
          "grow-row",
          "grow-column",
          "grow-fullscreen",
          "rtl",
        ]),
        k = A(["success", "warning", "info", "question", "error"]),
        _ = {
          previousBodyPadding: null,
        };

      function I(e, t) {
        if (!t) return null;
        switch (t) {
          case "select":
          case "textarea":
          case "file":
            return se(e, C[t]);
          case "checkbox":
            return e.querySelector(".".concat(C.checkbox, " input"));
          case "radio":
            return (
              e.querySelector(".".concat(C.radio, " input:checked")) ||
              e.querySelector(".".concat(C.radio, " input:first-child"))
            );
          case "range":
            return e.querySelector(".".concat(C.range, " input"));
          default:
            return se(e, C.input);
        }
      }

      function E(e) {
        if ((e.focus(), "file" !== e.type)) {
          var t = e.value;
          (e.value = ""), (e.value = t);
        }
      }

      function T(e, t, n) {
        e &&
          t &&
          ("string" == typeof t && (t = t.split(/\s+/).filter(Boolean)),
          t.forEach(function (t) {
            e.forEach
              ? e.forEach(function (e) {
                  n ? e.classList.add(t) : e.classList.remove(t);
                })
              : n
              ? e.classList.add(t)
              : e.classList.remove(t);
          }));
      }

      function S(e, t, n) {
        n || 0 === parseInt(n)
          ? (e.style[t] = "number" == typeof n ? n + "px" : n)
          : e.style.removeProperty(t);
      }

      function L(e, t) {
        var n = 1 < arguments.length && void 0 !== t ? t : "flex";
        (e.style.opacity = ""), (e.style.display = n);
      }

      function j(e) {
        (e.style.opacity = ""), (e.style.display = "none");
      }

      function R(e, t, n) {
        t ? L(e, n) : j(e);
      }

      function B(e) {
        return !(
          !e || !(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
        );
      }

      function M(e) {
        var t = window.getComputedStyle(e),
          n = parseFloat(t.getPropertyValue("animation-duration") || "0"),
          i = parseFloat(t.getPropertyValue("transition-duration") || "0");
        return 0 < n || 0 < i;
      }

      function D() {
        return document.body.querySelector("." + C.container);
      }

      function O(e) {
        var t = D();
        return t ? t.querySelector(e) : null;
      }

      function H(e) {
        return O("." + e);
      }

      function W() {
        return H(C.popup);
      }

      function P() {
        return u(W().querySelectorAll("." + C.icon));
      }

      function N() {
        var e = P().filter(function (e) {
          return B(e);
        });
        return e.length ? e[0] : null;
      }

      function q() {
        return H(C.title);
      }

      function z() {
        return H(C.content);
      }

      function V() {
        return H(C.image);
      }

      function F() {
        return H(C["progress-steps"]);
      }

      function Q() {
        return H(C["validation-message"]);
      }

      function U() {
        return O("." + C.actions + " ." + C.confirm);
      }

      function K() {
        return O("." + C.actions + " ." + C.cancel);
      }

      function X() {
        return H(C.actions);
      }

      function G() {
        return H(C.header);
      }

      function J() {
        return H(C.footer);
      }

      function Y() {
        return H(C.close);
      }

      function Z() {
        var e = u(
            W().querySelectorAll(
              '[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'
            )
          ).sort(function (e, t) {
            return (
              (e = parseInt(e.getAttribute("tabindex"))),
              (t = parseInt(t.getAttribute("tabindex"))) < e
                ? 1
                : e < t
                ? -1
                : 0
            );
          }),
          t = u(
            W().querySelectorAll(
              'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [tabindex="0"], [contenteditable], audio[controls], video[controls]'
            )
          ).filter(function (e) {
            return "-1" !== e.getAttribute("tabindex");
          });
        return (function (e) {
          for (var t = [], n = 0; n < e.length; n++)
            -1 === t.indexOf(e[n]) && t.push(e[n]);
          return t;
        })(e.concat(t)).filter(function (e) {
          return B(e);
        });
      }

      function $() {
        return !ae() && !document.body.classList.contains(C["no-backdrop"]);
      }

      function ee() {
        return "undefined" == typeof window || "undefined" == typeof document;
      }

      function te(e) {
        Ye.isVisible() && ie !== e.target.value && Ye.resetValidationMessage(),
          (ie = e.target.value);
      }

      function ne(t, n) {
        t instanceof HTMLElement
          ? n.appendChild(t)
          : "object" === e(t)
          ? ce(n, t)
          : t && (n.innerHTML = t);
      }
      var ie,
        re = function (e, t) {
          T(e, t, !0);
        },
        oe = function (e, t) {
          T(e, t, !1);
        },
        se = function (e, t) {
          for (var n = 0; n < e.childNodes.length; n++)
            if (f(e.childNodes[n], t)) return e.childNodes[n];
        },
        ae = function () {
          return document.body.classList.contains(C["toast-shown"]);
        },
        le = '\n <div aria-labelledby="'
          .concat(C.title, '" aria-describedby="')
          .concat(C.content, '" class="')
          .concat(C.popup, '" tabindex="-1">\n   <div class="')
          .concat(C.header, '">\n     <ul class="')
          .concat(C["progress-steps"], '"></ul>\n     <div class="')
          .concat(C.icon, " ")
          .concat(
            k.error,
            '">\n       <span class="swal2-x-mark"><span class="swal2-x-mark-line-left"></span><span class="swal2-x-mark-line-right"></span></span>\n     </div>\n     <div class="'
          )
          .concat(C.icon, " ")
          .concat(k.question, '"></div>\n     <div class="')
          .concat(C.icon, " ")
          .concat(k.warning, '"></div>\n     <div class="')
          .concat(C.icon, " ")
          .concat(k.info, '"></div>\n     <div class="')
          .concat(C.icon, " ")
          .concat(
            k.success,
            '">\n       <div class="swal2-success-circular-line-left"></div>\n       <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n       <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n       <div class="swal2-success-circular-line-right"></div>\n     </div>\n     <img class="'
          )
          .concat(C.image, '" />\n     <h2 class="')
          .concat(C.title, '" id="')
          .concat(C.title, '"></h2>\n     <button type="button" class="')
          .concat(C.close, '"></button>\n   </div>\n   <div class="')
          .concat(C.content, '">\n     <div id="')
          .concat(C.content, '"></div>\n     <input class="')
          .concat(C.input, '" />\n     <input type="file" class="')
          .concat(C.file, '" />\n     <div class="')
          .concat(
            C.range,
            '">\n       <input type="range" />\n       <output></output>\n     </div>\n     <select class="'
          )
          .concat(C.select, '"></select>\n     <div class="')
          .concat(C.radio, '"></div>\n     <label for="')
          .concat(C.checkbox, '" class="')
          .concat(
            C.checkbox,
            '">\n       <input type="checkbox" />\n       <span class="'
          )
          .concat(C.label, '"></span>\n     </label>\n     <textarea class="')
          .concat(C.textarea, '"></textarea>\n     <div class="')
          .concat(C["validation-message"], '" id="')
          .concat(
            C["validation-message"],
            '"></div>\n   </div>\n   <div class="'
          )
          .concat(C.actions, '">\n     <button type="button" class="')
          .concat(
            C.confirm,
            '">OK</button>\n     <button type="button" class="'
          )
          .concat(C.cancel, '">Cancel</button>\n   </div>\n   <div class="')
          .concat(C.footer, '">\n   </div>\n </div>\n')
          .replace(/(^|\n)\s*/g, ""),
        ce = function (e, t) {
          if (((e.innerHTML = ""), 0 in t))
            for (var n = 0; n in t; n++) e.appendChild(t[n].cloneNode(!0));
          else e.appendChild(t.cloneNode(!0));
        },
        de = (function () {
          if (ee()) return !1;
          var e = document.createElement("div"),
            t = {
              WebkitAnimation: "webkitAnimationEnd",
              OAnimation: "oAnimationEnd oanimationend",
              animation: "animationend",
            };
          for (var n in t)
            if (
              Object.prototype.hasOwnProperty.call(t, n) &&
              void 0 !== e.style[n]
            )
              return t[n];
          return !1;
        })();

      function ue(e, t, n) {
        R(e, n["showC" + t.substring(1) + "Button"], "inline-block"),
          (e.innerHTML = n[t + "ButtonText"]),
          e.setAttribute("aria-label", n[t + "ButtonAriaLabel"]),
          (e.className = C[t]),
          m(e, n.customClass, t + "Button"),
          re(e, n[t + "ButtonClass"]);
      }

      function he(e, t) {
        (e.placeholder && !t.inputPlaceholder) ||
          (e.placeholder = t.inputPlaceholder);
      }
      var ge = {
          promise: new WeakMap(),
          innerParams: new WeakMap(),
          domCache: new WeakMap(),
        },
        pe = [
          "input",
          "file",
          "range",
          "select",
          "radio",
          "checkbox",
          "textarea",
        ],
        Ae = {};

      function fe(e, t) {
        var n = z().querySelector("#" + C.content);
        t.html
          ? (ne(t.html, n), L(n, "block"))
          : t.text
          ? ((n.textContent = t.text), L(n, "block"))
          : j(n),
          (function (e, t) {
            var n = z(),
              i = ge.innerParams.get(e),
              r = !i || t.input !== i.input;
            pe.forEach(function (e) {
              var i = C[e],
                o = se(n, i);
              (function (e, t) {
                var n = I(z(), e);
                if (n)
                  for (var i in ((function (e) {
                    for (var t = 0; t < e.attributes.length; t++) {
                      var n = e.attributes[t].name;
                      -1 === ["type", "value", "style"].indexOf(n) &&
                        e.removeAttribute(n);
                    }
                  })(n),
                  t))
                    ("range" === e && "placeholder" === i) ||
                      n.setAttribute(i, t[i]);
              })(e, t.inputAttributes),
                (function (e, t, n) {
                  (e.className = t),
                    n.inputClass && re(e, n.inputClass),
                    n.customClass && re(e, n.customClass.input);
                })(o, i, t),
                r && j(o);
            }),
              t.input &&
                r &&
                (function (e) {
                  if (!Ae[e.input])
                    return h(
                      'Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(
                        e.input,
                        '"'
                      )
                    );
                  L(Ae[e.input](e));
                })(t);
          })(e, t),
          m(z(), t.customClass, "content");
      }

      function me(e, t) {
        var n = F();
        if (!t.progressSteps || 0 === t.progressSteps.length) return j(n);
        L(n), (n.innerHTML = "");
        var i = parseInt(
          null === t.currentProgressStep
            ? Ye.getQueueStep()
            : t.currentProgressStep
        );
        i >= t.progressSteps.length &&
          b(
            "Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"
          ),
          t.progressSteps.forEach(function (e, r) {
            var o = (function (e) {
              var t = document.createElement("li");
              return re(t, C["progress-step"]), (t.innerHTML = e), t;
            })(e);
            if (
              (n.appendChild(o),
              r === i && re(o, C["active-progress-step"]),
              r !== t.progressSteps.length - 1)
            ) {
              var s = (function (e) {
                var t = document.createElement("li");
                return (
                  re(t, C["progress-step-line"]),
                  e.progressStepsDistance &&
                    (t.style.width = e.progressStepsDistance),
                  t
                );
              })(e);
              n.appendChild(s);
            }
          });
      }

      function ve(e, t) {
        !(function (e, t) {
          var n = W();
          S(n, "width", t.width),
            S(n, "padding", t.padding),
            t.background && (n.style.background = t.background),
            (n.className = C.popup),
            t.toast
              ? (re(
                  [document.documentElement, document.body],
                  C["toast-shown"]
                ),
                re(n, C.toast))
              : re(n, C.modal),
            m(n, t.customClass, "popup"),
            "string" == typeof t.customClass && re(n, t.customClass),
            T(n, C.noanimation, !t.animation);
        })(0, t),
          (function (e, t) {
            var n = D();
            n &&
              ((function (e, t) {
                "string" == typeof t
                  ? (e.style.background = t)
                  : t ||
                    re(
                      [document.documentElement, document.body],
                      C["no-backdrop"]
                    );
              })(n, t.backdrop),
              !t.backdrop &&
                t.allowOutsideClick &&
                b(
                  '"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'
                ),
              (function (e, t) {
                t in C
                  ? re(e, C[t])
                  : (b(
                      'The "position" parameter is not valid, defaulting to "center"'
                    ),
                    re(e, C.center));
              })(n, t.position),
              (function (e, t) {
                if (t && "string" == typeof t) {
                  var n = "grow-" + t;
                  n in C && re(e, C[n]);
                }
              })(n, t.grow),
              m(n, t.customClass, "container"),
              t.customContainerClass && re(n, t.customContainerClass));
          })(0, t),
          (function (e, t) {
            m(G(), t.customClass, "header"),
              me(0, t),
              (function (e, t) {
                var n = ge.innerParams.get(e);
                if (n && t.type === n.type && N())
                  m(N(), t.customClass, "icon");
                else if ((be(), t.type))
                  if ((we(), -1 !== Object.keys(k).indexOf(t.type))) {
                    var i = O(".".concat(C.icon, ".").concat(k[t.type]));
                    L(i),
                      m(i, t.customClass, "icon"),
                      T(
                        i,
                        "swal2-animate-".concat(t.type, "-icon"),
                        t.animation
                      );
                  } else
                    h(
                      'Unknown type! Expected "success", "error", "warning", "info" or "question", got "'.concat(
                        t.type,
                        '"'
                      )
                    );
              })(e, t),
              (function (e, t) {
                var n = V();
                if (!t.imageUrl) return j(n);
                L(n),
                  n.setAttribute("src", t.imageUrl),
                  n.setAttribute("alt", t.imageAlt),
                  S(n, "width", t.imageWidth),
                  S(n, "height", t.imageHeight),
                  (n.className = C.image),
                  m(n, t.customClass, "image"),
                  t.imageClass && re(n, t.imageClass);
              })(0, t),
              (function (e, t) {
                var n = q();
                R(n, t.title || t.titleText),
                  t.title && ne(t.title, n),
                  t.titleText && (n.innerText = t.titleText),
                  m(n, t.customClass, "title");
              })(0, t),
              (function (e, t) {
                var n = Y();
                (n.innerHTML = t.closeButtonHtml),
                  m(n, t.customClass, "closeButton"),
                  R(n, t.showCloseButton),
                  n.setAttribute("aria-label", t.closeButtonAriaLabel);
              })(0, t);
          })(e, t),
          fe(e, t),
          (function (e, t) {
            var n = X(),
              i = U(),
              r = K();
            t.showConfirmButton || t.showCancelButton ? L(n) : j(n),
              m(n, t.customClass, "actions"),
              ue(i, "confirm", t),
              ue(r, "cancel", t),
              t.buttonsStyling
                ? (function (e, t, n) {
                    re([e, t], C.styled),
                      n.confirmButtonColor &&
                        (e.style.backgroundColor = n.confirmButtonColor),
                      n.cancelButtonColor &&
                        (t.style.backgroundColor = n.cancelButtonColor);
                    var i = window
                      .getComputedStyle(e)
                      .getPropertyValue("background-color");
                    (e.style.borderLeftColor = i),
                      (e.style.borderRightColor = i);
                  })(i, r, t)
                : (oe([i, r], C.styled),
                  (i.style.backgroundColor =
                    i.style.borderLeftColor =
                    i.style.borderRightColor =
                      ""),
                  (r.style.backgroundColor =
                    r.style.borderLeftColor =
                    r.style.borderRightColor =
                      ""));
          })(0, t),
          (function (e, t) {
            var n = J();
            R(n, t.footer),
              t.footer && ne(t.footer, n),
              m(n, t.customClass, "footer");
          })(0, t);
      }
      (Ae.text =
        Ae.email =
        Ae.password =
        Ae.number =
        Ae.tel =
        Ae.url =
          function (t) {
            var n = se(z(), C.input);
            return (
              "string" == typeof t.inputValue || "number" == typeof t.inputValue
                ? (n.value = t.inputValue)
                : p(t.inputValue) ||
                  b(
                    'Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(
                      e(t.inputValue),
                      '"'
                    )
                  ),
              he(n, t),
              (n.type = t.input),
              n
            );
          }),
        (Ae.file = function (e) {
          var t = se(z(), C.file);
          return he(t, e), (t.type = e.input), t;
        }),
        (Ae.range = function (e) {
          var t = se(z(), C.range),
            n = t.querySelector("input"),
            i = t.querySelector("output");
          return (
            (n.value = e.inputValue),
            (n.type = e.input),
            (i.value = e.inputValue),
            t
          );
        }),
        (Ae.select = function (e) {
          var t = se(z(), C.select);
          if (((t.innerHTML = ""), e.inputPlaceholder)) {
            var n = document.createElement("option");
            (n.innerHTML = e.inputPlaceholder),
              (n.value = ""),
              (n.disabled = !0),
              (n.selected = !0),
              t.appendChild(n);
          }
          return t;
        }),
        (Ae.radio = function () {
          var e = se(z(), C.radio);
          return (e.innerHTML = ""), e;
        }),
        (Ae.checkbox = function (e) {
          var t = se(z(), C.checkbox),
            n = I(z(), "checkbox");
          return (
            (n.type = "checkbox"),
            (n.value = 1),
            (n.id = C.checkbox),
            (n.checked = Boolean(e.inputValue)),
            (t.querySelector("span").innerHTML = e.inputPlaceholder),
            t
          );
        }),
        (Ae.textarea = function (e) {
          var t = se(z(), C.textarea);
          return (t.value = e.inputValue), he(t, e), t;
        });
      var be = function () {
          for (var e = P(), t = 0; t < e.length; t++) j(e[t]);
        },
        we = function () {
          for (
            var e = W(),
              t = window
                .getComputedStyle(e)
                .getPropertyValue("background-color"),
              n = e.querySelectorAll(
                "[class^=swal2-success-circular-line], .swal2-success-fix"
              ),
              i = 0;
            i < n.length;
            i++
          )
            n[i].style.backgroundColor = t;
        };

      function ye() {
        var e = W();
        e || Ye.fire(""), (e = W());
        var t = X(),
          n = U(),
          i = K();
        L(t),
          L(n),
          re([e, t], C.loading),
          (n.disabled = !0),
          (i.disabled = !0),
          e.setAttribute("data-loading", !0),
          e.setAttribute("aria-busy", !0),
          e.focus();
      }

      function xe(e) {
        return Object.prototype.hasOwnProperty.call(Ie, e);
      }

      function Ce(e) {
        return Te[e];
      }
      var ke = [],
        _e = {},
        Ie = {
          title: "",
          titleText: "",
          text: "",
          html: "",
          footer: "",
          type: null,
          toast: !1,
          customClass: "",
          customContainerClass: "",
          target: "body",
          backdrop: !0,
          animation: !0,
          heightAuto: !0,
          allowOutsideClick: !0,
          allowEscapeKey: !0,
          allowEnterKey: !0,
          stopKeydownPropagation: !0,
          keydownListenerCapture: !1,
          showConfirmButton: !0,
          showCancelButton: !1,
          preConfirm: null,
          confirmButtonText: "OK",
          confirmButtonAriaLabel: "",
          confirmButtonColor: null,
          confirmButtonClass: "",
          cancelButtonText: "Cancel",
          cancelButtonAriaLabel: "",
          cancelButtonColor: null,
          cancelButtonClass: "",
          buttonsStyling: !0,
          reverseButtons: !1,
          focusConfirm: !0,
          focusCancel: !1,
          showCloseButton: !1,
          closeButtonHtml: "&times;",
          closeButtonAriaLabel: "Close this dialog",
          showLoaderOnConfirm: !1,
          imageUrl: null,
          imageWidth: null,
          imageHeight: null,
          imageAlt: "",
          imageClass: "",
          timer: null,
          width: null,
          padding: null,
          background: null,
          input: null,
          inputPlaceholder: "",
          inputValue: "",
          inputOptions: {},
          inputAutoTrim: !0,
          inputClass: "",
          inputAttributes: {},
          inputValidator: null,
          validationMessage: null,
          grow: !1,
          position: "center",
          progressSteps: [],
          currentProgressStep: null,
          progressStepsDistance: null,
          onBeforeOpen: null,
          onAfterClose: null,
          onOpen: null,
          onClose: null,
          scrollbarPadding: !0,
        },
        Ee = [
          "title",
          "titleText",
          "text",
          "html",
          "type",
          "customClass",
          "showConfirmButton",
          "showCancelButton",
          "confirmButtonText",
          "confirmButtonAriaLabel",
          "confirmButtonColor",
          "confirmButtonClass",
          "cancelButtonText",
          "cancelButtonAriaLabel",
          "cancelButtonColor",
          "cancelButtonClass",
          "buttonsStyling",
          "reverseButtons",
          "imageUrl",
          "imageWidth",
          "imageHeigth",
          "imageAlt",
          "imageClass",
          "progressSteps",
          "currentProgressStep",
        ],
        Te = {
          customContainerClass: "customClass",
          confirmButtonClass: "customClass",
          cancelButtonClass: "customClass",
          imageClass: "customClass",
          inputClass: "customClass",
        },
        Se = [
          "allowOutsideClick",
          "allowEnterKey",
          "backdrop",
          "focusConfirm",
          "focusCancel",
          "heightAuto",
          "keydownListenerCapture",
        ],
        Le = Object.freeze({
          isValidParameter: xe,
          isUpdatableParameter: function (e) {
            return -1 !== Ee.indexOf(e);
          },
          isDeprecatedParameter: Ce,
          argsToParams: function (t) {
            var n = {};
            switch (e(t[0])) {
              case "object":
                r(n, t[0]);
                break;
              default:
                ["title", "html", "type"].forEach(function (i, r) {
                  switch (e(t[r])) {
                    case "string":
                      n[i] = t[r];
                      break;
                    case "undefined":
                      break;
                    default:
                      h(
                        "Unexpected type of "
                          .concat(i, '! Expected "string", got ')
                          .concat(e(t[r]))
                      );
                  }
                });
            }
            return n;
          },
          isVisible: function () {
            return B(W());
          },
          clickConfirm: function () {
            return U() && U().click();
          },
          clickCancel: function () {
            return K() && K().click();
          },
          getContainer: D,
          getPopup: W,
          getTitle: q,
          getContent: z,
          getImage: V,
          getIcon: N,
          getIcons: P,
          getCloseButton: Y,
          getActions: X,
          getConfirmButton: U,
          getCancelButton: K,
          getHeader: G,
          getFooter: J,
          getFocusableElements: Z,
          getValidationMessage: Q,
          isLoading: function () {
            return W().hasAttribute("data-loading");
          },
          fire: function () {
            for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
              t[n] = arguments[n];
            return a(this, t);
          },
          mixin: function (e) {
            return (function (n) {
              function a() {
                return t(this, a), l(this, o(a).apply(this, arguments));
              }
              return (
                (function (e, t) {
                  if ("function" != typeof t && null !== t)
                    throw new TypeError(
                      "Super expression must either be null or a function"
                    );
                  (e.prototype = Object.create(t && t.prototype, {
                    constructor: {
                      value: e,
                      writable: !0,
                      configurable: !0,
                    },
                  })),
                    t && s(e, t);
                })(a, n),
                i(a, [
                  {
                    key: "_main",
                    value: function (t) {
                      return c(o(a.prototype), "_main", this).call(
                        this,
                        r({}, e, t)
                      );
                    },
                  },
                ]),
                a
              );
            })(this);
          },
          queue: function (e) {
            var t = this;

            function n(e, t) {
              (ke = []),
                document.body.removeAttribute("data-swal2-queue-step"),
                e(t);
            }
            ke = e;
            var i = [];
            return new Promise(function (e) {
              !(function r(o, s) {
                o < ke.length
                  ? (document.body.setAttribute("data-swal2-queue-step", o),
                    t.fire(ke[o]).then(function (t) {
                      void 0 !== t.value
                        ? (i.push(t.value), r(o + 1, s))
                        : n(e, {
                            dismiss: t.dismiss,
                          });
                    }))
                  : n(e, {
                      value: i,
                    });
              })(0);
            });
          },
          getQueueStep: function () {
            return document.body.getAttribute("data-swal2-queue-step");
          },
          insertQueueStep: function (e, t) {
            return t && t < ke.length ? ke.splice(t, 0, e) : ke.push(e);
          },
          deleteQueueStep: function (e) {
            void 0 !== ke[e] && ke.splice(e, 1);
          },
          showLoading: ye,
          enableLoading: ye,
          getTimerLeft: function () {
            return _e.timeout && _e.timeout.getTimerLeft();
          },
          stopTimer: function () {
            return _e.timeout && _e.timeout.stop();
          },
          resumeTimer: function () {
            return _e.timeout && _e.timeout.start();
          },
          toggleTimer: function () {
            var e = _e.timeout;
            return e && (e.running ? e.stop() : e.start());
          },
          increaseTimer: function (e) {
            return _e.timeout && _e.timeout.increase(e);
          },
          isTimerRunning: function () {
            return _e.timeout && _e.timeout.isRunning();
          },
        });

      function je() {
        var e = ge.innerParams.get(this),
          t = ge.domCache.get(this);
        e.showConfirmButton ||
          (j(t.confirmButton), e.showCancelButton || j(t.actions)),
          oe([t.popup, t.actions], C.loading),
          t.popup.removeAttribute("aria-busy"),
          t.popup.removeAttribute("data-loading"),
          (t.confirmButton.disabled = !1),
          (t.cancelButton.disabled = !1);
      }

      function Re() {
        return !!window.MSInputMethodContext && !!document.documentMode;
      }

      function Be() {
        var e = D(),
          t = W();
        e.style.removeProperty("align-items"),
          t.offsetTop < 0 && (e.style.alignItems = "flex-start");
      }
      var Me = {
        swalPromiseResolve: new WeakMap(),
      };

      function De(e, t, n, i) {
        n
          ? Pe(e, i)
          : (new Promise(function (e) {
              var t = window.scrollX,
                n = window.scrollY;
              (_e.restoreFocusTimeout = setTimeout(function () {
                _e.previousActiveElement && _e.previousActiveElement.focus
                  ? (_e.previousActiveElement.focus(),
                    (_e.previousActiveElement = null))
                  : document.body && document.body.focus(),
                  e();
              }, 100)),
                void 0 !== t && void 0 !== n && window.scrollTo(t, n);
            }).then(function () {
              return Pe(e, i);
            }),
            _e.keydownTarget.removeEventListener("keydown", _e.keydownHandler, {
              capture: _e.keydownListenerCapture,
            }),
            (_e.keydownHandlerAdded = !1)),
          t.parentNode && t.parentNode.removeChild(t),
          $() &&
            (null !== _.previousBodyPadding &&
              ((document.body.style.paddingRight =
                _.previousBodyPadding + "px"),
              (_.previousBodyPadding = null)),
            (function () {
              if (f(document.body, C.iosfix)) {
                var e = parseInt(document.body.style.top, 10);
                oe(document.body, C.iosfix),
                  (document.body.style.top = ""),
                  (document.body.scrollTop = -1 * e);
              }
            })(),
            "undefined" != typeof window &&
              Re() &&
              window.removeEventListener("resize", Be),
            u(document.body.children).forEach(function (e) {
              e.hasAttribute("data-previous-aria-hidden")
                ? (e.setAttribute(
                    "aria-hidden",
                    e.getAttribute("data-previous-aria-hidden")
                  ),
                  e.removeAttribute("data-previous-aria-hidden"))
                : e.removeAttribute("aria-hidden");
            })),
          oe(
            [document.documentElement, document.body],
            [
              C.shown,
              C["height-auto"],
              C["no-backdrop"],
              C["toast-shown"],
              C["toast-column"],
            ]
          );
      }

      function Oe(e) {
        var t = W();
        if (t && !f(t, C.hide)) {
          var n = ge.innerParams.get(this);
          if (n) {
            var i = Me.swalPromiseResolve.get(this);
            oe(t, C.show),
              re(t, C.hide),
              (function (e, t, n) {
                var i = D(),
                  r = de && M(t),
                  o = n.onClose,
                  s = n.onAfterClose;
                null !== o && "function" == typeof o && o(t),
                  r ? We(e, t, i, s) : De(e, i, ae(), s);
              })(this, t, n),
              i(e || {});
          }
        }
      }

      function He(e) {
        for (var t in e) e[t] = new WeakMap();
      }
      var We = function (e, t, n, i) {
          (_e.swalCloseEventFinishedCallback = De.bind(null, e, n, ae(), i)),
            t.addEventListener(de, function (e) {
              e.target === t &&
                (_e.swalCloseEventFinishedCallback(),
                delete _e.swalCloseEventFinishedCallback);
            });
        },
        Pe = function (e, t) {
          setTimeout(function () {
            null !== t && "function" == typeof t && t(),
              W() ||
                (function (e) {
                  delete e.params,
                    delete _e.keydownHandler,
                    delete _e.keydownTarget,
                    He(ge),
                    He(Me);
                })(e);
          });
        };

      function Ne(e, t, n) {
        var i = ge.domCache.get(e);
        t.forEach(function (e) {
          i[e].disabled = n;
        });
      }

      function qe(e, t) {
        if (!e) return !1;
        if ("radio" === e.type)
          for (
            var n = e.parentNode.parentNode.querySelectorAll("input"), i = 0;
            i < n.length;
            i++
          )
            n[i].disabled = t;
        else e.disabled = t;
      }
      var ze = (function () {
          function e(n, i) {
            t(this, e),
              (this.callback = n),
              (this.remaining = i),
              (this.running = !1),
              this.start();
          }
          return (
            i(e, [
              {
                key: "start",
                value: function () {
                  return (
                    this.running ||
                      ((this.running = !0),
                      (this.started = new Date()),
                      (this.id = setTimeout(this.callback, this.remaining))),
                    this.remaining
                  );
                },
              },
              {
                key: "stop",
                value: function () {
                  return (
                    this.running &&
                      ((this.running = !1),
                      clearTimeout(this.id),
                      (this.remaining -= new Date() - this.started)),
                    this.remaining
                  );
                },
              },
              {
                key: "increase",
                value: function (e) {
                  var t = this.running;
                  return (
                    t && this.stop(),
                    (this.remaining += e),
                    t && this.start(),
                    this.remaining
                  );
                },
              },
              {
                key: "getTimerLeft",
                value: function () {
                  return (
                    this.running && (this.stop(), this.start()), this.remaining
                  );
                },
              },
              {
                key: "isRunning",
                value: function () {
                  return this.running;
                },
              },
            ]),
            e
          );
        })(),
        Ve = {
          email: function (e, t) {
            return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(
              e
            )
              ? Promise.resolve()
              : Promise.resolve(t || "Invalid email address");
          },
          url: function (e, t) {
            return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(
              e
            )
              ? Promise.resolve()
              : Promise.resolve(t || "Invalid URL");
          },
        };

      function Fe(e) {
        !(function (e) {
          e.inputValidator ||
            Object.keys(Ve).forEach(function (t) {
              e.input === t && (e.inputValidator = Ve[t]);
            });
        })(e),
          e.showLoaderOnConfirm &&
            !e.preConfirm &&
            b(
              "showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"
            ),
          (e.animation = y(e.animation)),
          (function (e) {
            (e.target &&
              ("string" != typeof e.target ||
                document.querySelector(e.target)) &&
              ("string" == typeof e.target || e.target.appendChild)) ||
              (b('Target parameter is not valid, defaulting to "body"'),
              (e.target = "body"));
          })(e),
          "string" == typeof e.title &&
            (e.title = e.title.split("\n").join("<br />")),
          (function (e) {
            if (
              ((function () {
                var e = D();
                e &&
                  (e.parentNode.removeChild(e),
                  oe(
                    [document.documentElement, document.body],
                    [C["no-backdrop"], C["toast-shown"], C["has-column"]]
                  ));
              })(),
              ee())
            )
              h("SweetAlert2 requires document to initialize");
            else {
              var t = document.createElement("div");
              (t.className = C.container), (t.innerHTML = le);
              var n = (function (e) {
                return "string" == typeof e ? document.querySelector(e) : e;
              })(e.target);
              n.appendChild(t),
                (function (e) {
                  var t = W();
                  t.setAttribute("role", e.toast ? "alert" : "dialog"),
                    t.setAttribute(
                      "aria-live",
                      e.toast ? "polite" : "assertive"
                    ),
                    e.toast || t.setAttribute("aria-modal", "true");
                })(e),
                (function (e) {
                  "rtl" === window.getComputedStyle(e).direction &&
                    re(D(), C.rtl);
                })(n),
                (function () {
                  var e = z(),
                    t = se(e, C.input),
                    n = se(e, C.file),
                    i = e.querySelector(".".concat(C.range, " input")),
                    r = e.querySelector(".".concat(C.range, " output")),
                    o = se(e, C.select),
                    s = e.querySelector(".".concat(C.checkbox, " input")),
                    a = se(e, C.textarea);
                  (t.oninput = te),
                    (n.onchange = te),
                    (o.onchange = te),
                    (s.onchange = te),
                    (a.oninput = te),
                    (i.oninput = function (e) {
                      te(e), (r.value = i.value);
                    }),
                    (i.onchange = function (e) {
                      te(e), (i.nextSibling.value = i.value);
                    });
                })();
            }
          })(e);
      }

      function Qe(e, t) {
        e.removeEventListener(de, Qe), (t.style.overflowY = "auto");
      }
      var Ue,
        Ke = function (e, t) {
          !(function () {
            if (
              /iPad|iPhone|iPod/.test(navigator.userAgent) &&
              !window.MSStream &&
              !f(document.body, C.iosfix)
            ) {
              var e = document.body.scrollTop;
              (document.body.style.top = -1 * e + "px"),
                re(document.body, C.iosfix),
                (function () {
                  var e,
                    t = D();
                  (t.ontouchstart = function (n) {
                    e =
                      n.target === t ||
                      (!(function (e) {
                        return !!(e.scrollHeight > e.clientHeight);
                      })(t) &&
                        "INPUT" !== n.target.tagName);
                  }),
                    (t.ontouchmove = function (t) {
                      e && (t.preventDefault(), t.stopPropagation());
                    });
                })();
            }
          })(),
            "undefined" != typeof window &&
              Re() &&
              (Be(), window.addEventListener("resize", Be)),
            u(document.body.children).forEach(function (e) {
              e === D() ||
                (function (e, t) {
                  if ("function" == typeof e.contains) return e.contains(t);
                })(e, D()) ||
                (e.hasAttribute("aria-hidden") &&
                  e.setAttribute(
                    "data-previous-aria-hidden",
                    e.getAttribute("aria-hidden")
                  ),
                e.setAttribute("aria-hidden", "true"));
            }),
            t &&
              null === _.previousBodyPadding &&
              document.body.scrollHeight > window.innerHeight &&
              ((_.previousBodyPadding = parseInt(
                window
                  .getComputedStyle(document.body)
                  .getPropertyValue("padding-right")
              )),
              (document.body.style.paddingRight =
                _.previousBodyPadding +
                (function () {
                  if ("ontouchstart" in window || navigator.msMaxTouchPoints)
                    return 0;
                  var e = document.createElement("div");
                  (e.style.width = "50px"),
                    (e.style.height = "50px"),
                    (e.style.overflow = "scroll"),
                    document.body.appendChild(e);
                  var t = e.offsetWidth - e.clientWidth;
                  return document.body.removeChild(e), t;
                })() +
                "px")),
            setTimeout(function () {
              e.scrollTop = 0;
            });
        },
        Xe = {
          select: function (e, t, n) {
            var i = se(e, C.select);
            t.forEach(function (e) {
              var t = e[0],
                r = e[1],
                o = document.createElement("option");
              (o.value = t),
                (o.innerHTML = r),
                n.inputValue.toString() === t.toString() && (o.selected = !0),
                i.appendChild(o);
            }),
              i.focus();
          },
          radio: function (e, t, n) {
            var i = se(e, C.radio);
            t.forEach(function (e) {
              var t = e[0],
                r = e[1],
                o = document.createElement("input"),
                s = document.createElement("label");
              (o.type = "radio"),
                (o.name = C.radio),
                (o.value = t),
                n.inputValue.toString() === t.toString() && (o.checked = !0);
              var a = document.createElement("span");
              (a.innerHTML = r),
                (a.className = C.label),
                s.appendChild(o),
                s.appendChild(a),
                i.appendChild(s);
            });
            var r = i.querySelectorAll("input");
            r.length && r[0].focus();
          },
        },
        Ge = Object.freeze({
          hideLoading: je,
          disableLoading: je,
          getInput: function (e) {
            var t = ge.innerParams.get(e || this),
              n = ge.domCache.get(e || this);
            return n ? I(n.content, t.input) : null;
          },
          close: Oe,
          closePopup: Oe,
          closeModal: Oe,
          closeToast: Oe,
          enableButtons: function () {
            Ne(this, ["confirmButton", "cancelButton"], !1);
          },
          disableButtons: function () {
            Ne(this, ["confirmButton", "cancelButton"], !0);
          },
          enableConfirmButton: function () {
            g(
              "Swal.disableConfirmButton()",
              "Swal.getConfirmButton().removeAttribute('disabled')"
            ),
              Ne(this, ["confirmButton"], !1);
          },
          disableConfirmButton: function () {
            g(
              "Swal.enableConfirmButton()",
              "Swal.getConfirmButton().setAttribute('disabled', '')"
            ),
              Ne(this, ["confirmButton"], !0);
          },
          enableInput: function () {
            return qe(this.getInput(), !1);
          },
          disableInput: function () {
            return qe(this.getInput(), !0);
          },
          showValidationMessage: function (e) {
            var t = ge.domCache.get(this);
            t.validationMessage.innerHTML = e;
            var n = window.getComputedStyle(t.popup);
            (t.validationMessage.style.marginLeft = "-".concat(
              n.getPropertyValue("padding-left")
            )),
              (t.validationMessage.style.marginRight = "-".concat(
                n.getPropertyValue("padding-right")
              )),
              L(t.validationMessage);
            var i = this.getInput();
            i &&
              (i.setAttribute("aria-invalid", !0),
              i.setAttribute("aria-describedBy", C["validation-message"]),
              E(i),
              re(i, C.inputerror));
          },
          resetValidationMessage: function () {
            var e = ge.domCache.get(this);
            e.validationMessage && j(e.validationMessage);
            var t = this.getInput();
            t &&
              (t.removeAttribute("aria-invalid"),
              t.removeAttribute("aria-describedBy"),
              oe(t, C.inputerror));
          },
          getProgressSteps: function () {
            return (
              g(
                "Swal.getProgressSteps()",
                "const swalInstance = Swal.fire({progressSteps: ['1', '2', '3']}); const progressSteps = swalInstance.params.progressSteps"
              ),
              ge.innerParams.get(this).progressSteps
            );
          },
          setProgressSteps: function (e) {
            g("Swal.setProgressSteps()", "Swal.update()");
            var t = r({}, ge.innerParams.get(this), {
              progressSteps: e,
            });
            me(0, t), ge.innerParams.set(this, t);
          },
          showProgressSteps: function () {
            L(ge.domCache.get(this).progressSteps);
          },
          hideProgressSteps: function () {
            j(ge.domCache.get(this).progressSteps);
          },
          _main: function (t) {
            var n = this;
            !(function (e) {
              for (var t in e)
                xe((r = t)) || b('Unknown parameter "'.concat(r, '"')),
                  e.toast &&
                    ((i = t),
                    -1 !== Se.indexOf(i) &&
                      b(
                        'The parameter "'.concat(
                          i,
                          '" is incompatible with toasts'
                        )
                      )),
                  Ce((n = void 0)) && g(n, Ce(n));
              var n, i, r;
            })(t),
              W() &&
                _e.swalCloseEventFinishedCallback &&
                (_e.swalCloseEventFinishedCallback(),
                delete _e.swalCloseEventFinishedCallback),
              _e.deferDisposalTimer &&
                (clearTimeout(_e.deferDisposalTimer),
                delete _e.deferDisposalTimer);
            var i = r({}, Ie, t);
            Fe(i),
              Object.freeze(i),
              _e.timeout && (_e.timeout.stop(), delete _e.timeout),
              clearTimeout(_e.restoreFocusTimeout);
            var o = {
              popup: W(),
              container: D(),
              content: z(),
              actions: X(),
              confirmButton: U(),
              cancelButton: K(),
              closeButton: Y(),
              validationMessage: Q(),
              progressSteps: F(),
            };
            ge.domCache.set(this, o), ve(this, i), ge.innerParams.set(this, i);
            var s = this.constructor;
            return new Promise(function (t) {
              function r(e) {
                n.closePopup({
                  value: e,
                });
              }

              function a(e) {
                n.closePopup({
                  dismiss: e,
                });
              }
              Me.swalPromiseResolve.set(n, t),
                i.timer &&
                  (_e.timeout = new ze(function () {
                    a("timer"), delete _e.timeout;
                  }, i.timer)),
                i.input &&
                  setTimeout(function () {
                    var e = n.getInput();
                    e && E(e);
                  }, 0);
              for (
                var l = function (e) {
                    i.showLoaderOnConfirm && s.showLoading(),
                      i.preConfirm
                        ? (n.resetValidationMessage(),
                          Promise.resolve()
                            .then(function () {
                              return i.preConfirm(e, i.validationMessage);
                            })
                            .then(function (t) {
                              B(o.validationMessage) || !1 === t
                                ? n.hideLoading()
                                : r(void 0 === t ? e : t);
                            }))
                        : r(e);
                  },
                  c = function (e) {
                    var t = e.target,
                      r = o.confirmButton,
                      c = o.cancelButton,
                      d = r && (r === t || r.contains(t)),
                      u = c && (c === t || c.contains(t));
                    switch (e.type) {
                      case "click":
                        if (d)
                          if ((n.disableButtons(), i.input)) {
                            var h = (function () {
                              var e = n.getInput();
                              if (!e) return null;
                              switch (i.input) {
                                case "checkbox":
                                  return e.checked ? 1 : 0;
                                case "radio":
                                  return e.checked ? e.value : null;
                                case "file":
                                  return e.files.length ? e.files[0] : null;
                                default:
                                  return i.inputAutoTrim
                                    ? e.value.trim()
                                    : e.value;
                              }
                            })();
                            i.inputValidator
                              ? (n.disableInput(),
                                Promise.resolve()
                                  .then(function () {
                                    return i.inputValidator(
                                      h,
                                      i.validationMessage
                                    );
                                  })
                                  .then(function (e) {
                                    n.enableButtons(),
                                      n.enableInput(),
                                      e ? n.showValidationMessage(e) : l(h);
                                  }))
                              : n.getInput().checkValidity()
                              ? l(h)
                              : (n.enableButtons(),
                                n.showValidationMessage(i.validationMessage));
                          } else l(!0);
                        else
                          u && (n.disableButtons(), a(s.DismissReason.cancel));
                    }
                  },
                  d = o.popup.querySelectorAll("button"),
                  u = 0;
                u < d.length;
                u++
              )
                (d[u].onclick = c),
                  (d[u].onmouseover = c),
                  (d[u].onmouseout = c),
                  (d[u].onmousedown = c);
              if (
                ((o.closeButton.onclick = function () {
                  a(s.DismissReason.close);
                }),
                i.toast)
              )
                o.popup.onclick = function () {
                  i.showConfirmButton ||
                    i.showCancelButton ||
                    i.showCloseButton ||
                    i.input ||
                    a(s.DismissReason.close);
                };
              else {
                var g = !1;
                (o.popup.onmousedown = function () {
                  o.container.onmouseup = function (e) {
                    (o.container.onmouseup = void 0),
                      e.target === o.container && (g = !0);
                  };
                }),
                  (o.container.onmousedown = function () {
                    o.popup.onmouseup = function (e) {
                      (o.popup.onmouseup = void 0),
                        (e.target !== o.popup && !o.popup.contains(e.target)) ||
                          (g = !0);
                    };
                  }),
                  (o.container.onclick = function (e) {
                    g
                      ? (g = !1)
                      : e.target === o.container &&
                        y(i.allowOutsideClick) &&
                        a(s.DismissReason.backdrop);
                  });
              }

              function A(e, t) {
                for (var n = Z(i.focusCancel), r = 0; r < n.length; r++)
                  return (
                    (e += t) === n.length
                      ? (e = 0)
                      : -1 === e && (e = n.length - 1),
                    n[e].focus()
                  );
                o.popup.focus();
              }
              i.reverseButtons
                ? o.confirmButton.parentNode.insertBefore(
                    o.cancelButton,
                    o.confirmButton
                  )
                : o.confirmButton.parentNode.insertBefore(
                    o.confirmButton,
                    o.cancelButton
                  ),
                _e.keydownTarget &&
                  _e.keydownHandlerAdded &&
                  (_e.keydownTarget.removeEventListener(
                    "keydown",
                    _e.keydownHandler,
                    {
                      capture: _e.keydownListenerCapture,
                    }
                  ),
                  (_e.keydownHandlerAdded = !1)),
                i.toast ||
                  ((_e.keydownHandler = function (e) {
                    return (function (e, t) {
                      if (
                        (t.stopKeydownPropagation && e.stopPropagation(),
                        "Enter" !== e.key || e.isComposing)
                      )
                        if ("Tab" === e.key) {
                          for (
                            var i = e.target,
                              r = Z(t.focusCancel),
                              l = -1,
                              c = 0;
                            c < r.length;
                            c++
                          )
                            if (i === r[c]) {
                              l = c;
                              break;
                            }
                          e.shiftKey ? A(l, -1) : A(l, 1),
                            e.stopPropagation(),
                            e.preventDefault();
                        } else
                          -1 !==
                          [
                            "ArrowLeft",
                            "ArrowRight",
                            "ArrowUp",
                            "ArrowDown",
                            "Left",
                            "Right",
                            "Up",
                            "Down",
                          ].indexOf(e.key)
                            ? document.activeElement === o.confirmButton &&
                              B(o.cancelButton)
                              ? o.cancelButton.focus()
                              : document.activeElement === o.cancelButton &&
                                B(o.confirmButton) &&
                                o.confirmButton.focus()
                            : ("Escape" !== e.key && "Esc" !== e.key) ||
                              !0 !== y(t.allowEscapeKey) ||
                              (e.preventDefault(), a(s.DismissReason.esc));
                      else if (
                        e.target &&
                        n.getInput() &&
                        e.target.outerHTML === n.getInput().outerHTML
                      ) {
                        if (-1 !== ["textarea", "file"].indexOf(t.input))
                          return;
                        s.clickConfirm(), e.preventDefault();
                      }
                    })(e, i);
                  }),
                  (_e.keydownTarget = i.keydownListenerCapture
                    ? window
                    : o.popup),
                  (_e.keydownListenerCapture = i.keydownListenerCapture),
                  _e.keydownTarget.addEventListener(
                    "keydown",
                    _e.keydownHandler,
                    {
                      capture: _e.keydownListenerCapture,
                    }
                  ),
                  (_e.keydownHandlerAdded = !0)),
                n.enableButtons(),
                n.hideLoading(),
                n.resetValidationMessage(),
                i.toast && (i.input || i.footer || i.showCloseButton)
                  ? re(document.body, C["toast-column"])
                  : oe(document.body, C["toast-column"]),
                "select" === i.input || "radio" === i.input
                  ? (function (t, n) {
                      function i(e) {
                        return Xe[n.input](
                          r,
                          (function (e) {
                            var t = [];
                            return (
                              "undefined" != typeof Map && e instanceof Map
                                ? e.forEach(function (e, n) {
                                    t.push([n, e]);
                                  })
                                : Object.keys(e).forEach(function (n) {
                                    t.push([n, e[n]]);
                                  }),
                              t
                            );
                          })(e),
                          n
                        );
                      }
                      var r = z();
                      p(n.inputOptions)
                        ? (ye(),
                          n.inputOptions.then(function (e) {
                            t.hideLoading(), i(e);
                          }))
                        : "object" === e(n.inputOptions)
                        ? i(n.inputOptions)
                        : h(
                            "Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(
                              e(n.inputOptions)
                            )
                          );
                    })(n, i)
                  : -1 !==
                      ["text", "email", "number", "tel", "textarea"].indexOf(
                        i.input
                      ) &&
                    p(i.inputValue) &&
                    (function (e, t) {
                      var n = e.getInput();
                      j(n),
                        t.inputValue
                          .then(function (i) {
                            (n.value =
                              "number" === t.input
                                ? parseFloat(i) || 0
                                : i + ""),
                              L(n),
                              n.focus(),
                              e.hideLoading();
                          })
                          .catch(function (t) {
                            h("Error in inputValue promise: " + t),
                              (n.value = ""),
                              L(n),
                              n.focus(),
                              e.hideLoading();
                          });
                    })(n, i),
                (function (e) {
                  var t = D(),
                    n = W();
                  "function" == typeof e.onBeforeOpen && e.onBeforeOpen(n),
                    (function (e, t, n) {
                      n.animation && (re(t, C.show), re(e, C.fade)),
                        L(t),
                        re(
                          [document.documentElement, document.body, e],
                          C.shown
                        ),
                        n.heightAuto &&
                          n.backdrop &&
                          !n.toast &&
                          re(
                            [document.documentElement, document.body],
                            C["height-auto"]
                          );
                    })(t, n, e),
                    (function (e, t) {
                      de && M(t)
                        ? ((e.style.overflowY = "hidden"),
                          t.addEventListener(de, Qe.bind(null, t, e)))
                        : (e.style.overflowY = "auto");
                    })(t, n),
                    $() && Ke(t, e.scrollbarPadding),
                    ae() ||
                      _e.previousActiveElement ||
                      (_e.previousActiveElement = document.activeElement),
                    "function" == typeof e.onOpen &&
                      setTimeout(function () {
                        return e.onOpen(n);
                      });
                })(i),
                i.toast ||
                  (y(i.allowEnterKey)
                    ? i.focusCancel && B(o.cancelButton)
                      ? o.cancelButton.focus()
                      : i.focusConfirm && B(o.confirmButton)
                      ? o.confirmButton.focus()
                      : A(-1, 1)
                    : document.activeElement &&
                      "function" == typeof document.activeElement.blur &&
                      document.activeElement.blur()),
                (o.container.scrollTop = 0);
            });
          },
          update: function (e) {
            var t = {};
            Object.keys(e).forEach(function (n) {
              Ye.isUpdatableParameter(n)
                ? (t[n] = e[n])
                : b(
                    'Invalid parameter to update: "'.concat(
                      n,
                      '". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js'
                    )
                  );
            });
            var n = r({}, ge.innerParams.get(this), t);
            ve(this, n),
              ge.innerParams.set(this, n),
              Object.defineProperties(this, {
                params: {
                  value: r({}, this.params, e),
                  writable: !1,
                  enumerable: !0,
                },
              });
          },
        });

      function Je() {
        if ("undefined" != typeof window) {
          "undefined" == typeof Promise &&
            h(
              "This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"
            ),
            (Ue = this);
          for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
            t[n] = arguments[n];
          var i = Object.freeze(this.constructor.argsToParams(t));
          Object.defineProperties(this, {
            params: {
              value: i,
              writable: !1,
              enumerable: !0,
              configurable: !0,
            },
          });
          var r = this._main(this.params);
          ge.promise.set(this, r);
        }
      }
      (Je.prototype.then = function (e) {
        return ge.promise.get(this).then(e);
      }),
        (Je.prototype.finally = function (e) {
          return ge.promise.get(this).finally(e);
        }),
        r(Je.prototype, Ge),
        r(Je, Le),
        Object.keys(Ge).forEach(function (e) {
          Je[e] = function () {
            var t;
            if (Ue) return (t = Ue)[e].apply(t, arguments);
          };
        }),
        (Je.DismissReason = x),
        (Je.version = "8.14.0");
      var Ye = Je;
      return (Ye.default = Ye);
    })()),
      void 0 !== this &&
        this.Sweetalert2 &&
        (this.swal =
          this.sweetAlert =
          this.Swal =
          this.SweetAlert =
            this.Sweetalert2);
  },
  function (e, t, n) {
    e.exports = n(54);
  },
  function (e, t, n) {
    var i, r;
    !(function () {
      var o;
      !(function () {
        "use strict";
        var e = [
            ,
            ,
            function (e) {
              function t(e) {
                (this.__parent = e),
                  (this.__character_count = 0),
                  (this.__indent_count = -1),
                  (this.__alignment_count = 0),
                  (this.__wrap_point_index = 0),
                  (this.__wrap_point_character_count = 0),
                  (this.__wrap_point_indent_count = -1),
                  (this.__wrap_point_alignment_count = 0),
                  (this.__items = []);
              }

              function n(e, t) {
                (this.__cache = [""]),
                  (this.__indent_size = e.indent_size),
                  (this.__indent_string = e.indent_char),
                  e.indent_with_tabs ||
                    (this.__indent_string = new Array(e.indent_size + 1).join(
                      e.indent_char
                    )),
                  (t = t || ""),
                  e.indent_level > 0 &&
                    (t = new Array(e.indent_level + 1).join(
                      this.__indent_string
                    )),
                  (this.__base_string = t),
                  (this.__base_string_length = t.length);
              }

              function i(e, i) {
                (this.__indent_cache = new n(e, i)),
                  (this.raw = !1),
                  (this._end_with_newline = e.end_with_newline),
                  (this.indent_size = e.indent_size),
                  (this.wrap_line_length = e.wrap_line_length),
                  (this.indent_empty_lines = e.indent_empty_lines),
                  (this.__lines = []),
                  (this.previous_line = null),
                  (this.current_line = null),
                  (this.next_line = new t(this)),
                  (this.space_before_token = !1),
                  (this.non_breaking_space = !1),
                  (this.previous_token_wrapped = !1),
                  this.__add_outputline();
              }
              (t.prototype.clone_empty = function () {
                var e = new t(this.__parent);
                return (
                  e.set_indent(this.__indent_count, this.__alignment_count), e
                );
              }),
                (t.prototype.item = function (e) {
                  return e < 0
                    ? this.__items[this.__items.length + e]
                    : this.__items[e];
                }),
                (t.prototype.has_match = function (e) {
                  for (var t = this.__items.length - 1; t >= 0; t--)
                    if (this.__items[t].match(e)) return !0;
                  return !1;
                }),
                (t.prototype.set_indent = function (e, t) {
                  this.is_empty() &&
                    ((this.__indent_count = e || 0),
                    (this.__alignment_count = t || 0),
                    (this.__character_count = this.__parent.get_indent_size(
                      this.__indent_count,
                      this.__alignment_count
                    )));
                }),
                (t.prototype._set_wrap_point = function () {
                  this.__parent.wrap_line_length &&
                    ((this.__wrap_point_index = this.__items.length),
                    (this.__wrap_point_character_count =
                      this.__character_count),
                    (this.__wrap_point_indent_count =
                      this.__parent.next_line.__indent_count),
                    (this.__wrap_point_alignment_count =
                      this.__parent.next_line.__alignment_count));
                }),
                (t.prototype._should_wrap = function () {
                  return (
                    this.__wrap_point_index &&
                    this.__character_count > this.__parent.wrap_line_length &&
                    this.__wrap_point_character_count >
                      this.__parent.next_line.__character_count
                  );
                }),
                (t.prototype._allow_wrap = function () {
                  if (this._should_wrap()) {
                    this.__parent.add_new_line();
                    var e = this.__parent.current_line;
                    return (
                      e.set_indent(
                        this.__wrap_point_indent_count,
                        this.__wrap_point_alignment_count
                      ),
                      (e.__items = this.__items.slice(this.__wrap_point_index)),
                      (this.__items = this.__items.slice(
                        0,
                        this.__wrap_point_index
                      )),
                      (e.__character_count +=
                        this.__character_count -
                        this.__wrap_point_character_count),
                      (this.__character_count =
                        this.__wrap_point_character_count),
                      " " === e.__items[0] &&
                        (e.__items.splice(0, 1), (e.__character_count -= 1)),
                      !0
                    );
                  }
                  return !1;
                }),
                (t.prototype.is_empty = function () {
                  return 0 === this.__items.length;
                }),
                (t.prototype.last = function () {
                  return this.is_empty()
                    ? null
                    : this.__items[this.__items.length - 1];
                }),
                (t.prototype.push = function (e) {
                  this.__items.push(e);
                  var t = e.lastIndexOf("\n");
                  -1 !== t
                    ? (this.__character_count = e.length - t)
                    : (this.__character_count += e.length);
                }),
                (t.prototype.pop = function () {
                  var e = null;
                  return (
                    this.is_empty() ||
                      ((e = this.__items.pop()),
                      (this.__character_count -= e.length)),
                    e
                  );
                }),
                (t.prototype._remove_indent = function () {
                  this.__indent_count > 0 &&
                    ((this.__indent_count -= 1),
                    (this.__character_count -= this.__parent.indent_size));
                }),
                (t.prototype._remove_wrap_indent = function () {
                  this.__wrap_point_indent_count > 0 &&
                    (this.__wrap_point_indent_count -= 1);
                }),
                (t.prototype.trim = function () {
                  for (; " " === this.last(); )
                    this.__items.pop(), (this.__character_count -= 1);
                }),
                (t.prototype.toString = function () {
                  var e = "";
                  return (
                    this.is_empty()
                      ? this.__parent.indent_empty_lines &&
                        (e = this.__parent.get_indent_string(
                          this.__indent_count
                        ))
                      : ((e = this.__parent.get_indent_string(
                          this.__indent_count,
                          this.__alignment_count
                        )),
                        (e += this.__items.join(""))),
                    e
                  );
                }),
                (n.prototype.get_indent_size = function (e, t) {
                  var n = this.__base_string_length;
                  return (
                    (t = t || 0),
                    e < 0 && (n = 0),
                    (n += e * this.__indent_size),
                    (n += t)
                  );
                }),
                (n.prototype.get_indent_string = function (e, t) {
                  var n = this.__base_string;
                  return (
                    (t = t || 0),
                    e < 0 && ((e = 0), (n = "")),
                    (t += e * this.__indent_size),
                    this.__ensure_cache(t),
                    (n += this.__cache[t])
                  );
                }),
                (n.prototype.__ensure_cache = function (e) {
                  for (; e >= this.__cache.length; ) this.__add_column();
                }),
                (n.prototype.__add_column = function () {
                  var e = this.__cache.length,
                    t = 0,
                    n = "";
                  this.__indent_size &&
                    e >= this.__indent_size &&
                    ((e -=
                      (t = Math.floor(e / this.__indent_size)) *
                      this.__indent_size),
                    (n = new Array(t + 1).join(this.__indent_string))),
                    e && (n += new Array(e + 1).join(" ")),
                    this.__cache.push(n);
                }),
                (i.prototype.__add_outputline = function () {
                  (this.previous_line = this.current_line),
                    (this.current_line = this.next_line.clone_empty()),
                    this.__lines.push(this.current_line);
                }),
                (i.prototype.get_line_number = function () {
                  return this.__lines.length;
                }),
                (i.prototype.get_indent_string = function (e, t) {
                  return this.__indent_cache.get_indent_string(e, t);
                }),
                (i.prototype.get_indent_size = function (e, t) {
                  return this.__indent_cache.get_indent_size(e, t);
                }),
                (i.prototype.is_empty = function () {
                  return !this.previous_line && this.current_line.is_empty();
                }),
                (i.prototype.add_new_line = function (e) {
                  return (
                    !(this.is_empty() || (!e && this.just_added_newline())) &&
                    (this.raw || this.__add_outputline(), !0)
                  );
                }),
                (i.prototype.get_code = function (e) {
                  this.trim(!0);
                  var t = this.current_line.pop();
                  t &&
                    ("\n" === t[t.length - 1] && (t = t.replace(/\n+$/g, "")),
                    this.current_line.push(t)),
                    this._end_with_newline && this.__add_outputline();
                  var n = this.__lines.join("\n");
                  return "\n" !== e && (n = n.replace(/[\n]/g, e)), n;
                }),
                (i.prototype.set_wrap_point = function () {
                  this.current_line._set_wrap_point();
                }),
                (i.prototype.set_indent = function (e, t) {
                  return (
                    (e = e || 0),
                    (t = t || 0),
                    this.next_line.set_indent(e, t),
                    this.__lines.length > 1
                      ? (this.current_line.set_indent(e, t), !0)
                      : (this.current_line.set_indent(), !1)
                  );
                }),
                (i.prototype.add_raw_token = function (e) {
                  for (var t = 0; t < e.newlines; t++) this.__add_outputline();
                  this.current_line.set_indent(-1),
                    this.current_line.push(e.whitespace_before),
                    this.current_line.push(e.text),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped = !1);
                }),
                (i.prototype.add_token = function (e) {
                  this.__add_space_before_token(),
                    this.current_line.push(e),
                    (this.space_before_token = !1),
                    (this.non_breaking_space = !1),
                    (this.previous_token_wrapped =
                      this.current_line._allow_wrap());
                }),
                (i.prototype.__add_space_before_token = function () {
                  this.space_before_token &&
                    !this.just_added_newline() &&
                    (this.non_breaking_space || this.set_wrap_point(),
                    this.current_line.push(" "));
                }),
                (i.prototype.remove_indent = function (e) {
                  for (var t = this.__lines.length; e < t; )
                    this.__lines[e]._remove_indent(), e++;
                  this.current_line._remove_wrap_indent();
                }),
                (i.prototype.trim = function (e) {
                  for (
                    e = void 0 !== e && e, this.current_line.trim();
                    e &&
                    this.__lines.length > 1 &&
                    this.current_line.is_empty();

                  )
                    this.__lines.pop(),
                      (this.current_line =
                        this.__lines[this.__lines.length - 1]),
                      this.current_line.trim();
                  this.previous_line =
                    this.__lines.length > 1
                      ? this.__lines[this.__lines.length - 2]
                      : null;
                }),
                (i.prototype.just_added_newline = function () {
                  return this.current_line.is_empty();
                }),
                (i.prototype.just_added_blankline = function () {
                  return (
                    this.is_empty() ||
                    (this.current_line.is_empty() &&
                      this.previous_line.is_empty())
                  );
                }),
                (i.prototype.ensure_empty_line_above = function (e, n) {
                  for (var i = this.__lines.length - 2; i >= 0; ) {
                    var r = this.__lines[i];
                    if (r.is_empty()) break;
                    if (0 !== r.item(0).indexOf(e) && r.item(-1) !== n) {
                      this.__lines.splice(i + 1, 0, new t(this)),
                        (this.previous_line =
                          this.__lines[this.__lines.length - 2]);
                      break;
                    }
                    i--;
                  }
                }),
                (e.exports.Output = i);
            },
            function (e) {
              e.exports.Token = function (e, t, n, i) {
                (this.type = e),
                  (this.text = t),
                  (this.comments_before = null),
                  (this.newlines = n || 0),
                  (this.whitespace_before = i || ""),
                  (this.parent = null),
                  (this.next = null),
                  (this.previous = null),
                  (this.opened = null),
                  (this.closed = null),
                  (this.directives = null);
              };
            },
            ,
            ,
            function (e) {
              function t(e, t) {
                (this.raw_options = n(e, t)),
                  (this.disabled = this._get_boolean("disabled")),
                  (this.eol = this._get_characters("eol", "auto")),
                  (this.end_with_newline =
                    this._get_boolean("end_with_newline")),
                  (this.indent_size = this._get_number("indent_size", 4)),
                  (this.indent_char = this._get_characters("indent_char", " ")),
                  (this.indent_level = this._get_number("indent_level")),
                  (this.preserve_newlines = this._get_boolean(
                    "preserve_newlines",
                    !0
                  )),
                  (this.max_preserve_newlines = this._get_number(
                    "max_preserve_newlines",
                    32786
                  )),
                  this.preserve_newlines || (this.max_preserve_newlines = 0),
                  (this.indent_with_tabs = this._get_boolean(
                    "indent_with_tabs",
                    "\t" === this.indent_char
                  )),
                  this.indent_with_tabs &&
                    ((this.indent_char = "\t"),
                    1 === this.indent_size && (this.indent_size = 4)),
                  (this.wrap_line_length = this._get_number(
                    "wrap_line_length",
                    this._get_number("max_char")
                  )),
                  (this.indent_empty_lines =
                    this._get_boolean("indent_empty_lines")),
                  (this.templating = this._get_selection_list(
                    "templating",
                    [
                      "auto",
                      "none",
                      "django",
                      "erb",
                      "handlebars",
                      "php",
                      "smarty",
                    ],
                    ["auto"]
                  ));
              }

              function n(e, t) {
                var n,
                  r = {};
                for (n in (e = i(e))) n !== t && (r[n] = e[n]);
                if (t && e[t]) for (n in e[t]) r[n] = e[t][n];
                return r;
              }

              function i(e) {
                var t,
                  n = {};
                for (t in e) {
                  n[t.replace(/-/g, "_")] = e[t];
                }
                return n;
              }
              (t.prototype._get_array = function (e, t) {
                var n = this.raw_options[e],
                  i = t || [];
                return (
                  "object" == typeof n
                    ? null !== n &&
                      "function" == typeof n.concat &&
                      (i = n.concat())
                    : "string" == typeof n &&
                      (i = n.split(/[^a-zA-Z0-9_\/\-]+/)),
                  i
                );
              }),
                (t.prototype._get_boolean = function (e, t) {
                  var n = this.raw_options[e];
                  return void 0 === n ? !!t : !!n;
                }),
                (t.prototype._get_characters = function (e, t) {
                  var n = this.raw_options[e],
                    i = t || "";
                  return (
                    "string" == typeof n &&
                      (i = n
                        .replace(/\\r/, "\r")
                        .replace(/\\n/, "\n")
                        .replace(/\\t/, "\t")),
                    i
                  );
                }),
                (t.prototype._get_number = function (e, t) {
                  var n = this.raw_options[e];
                  (t = parseInt(t, 10)), isNaN(t) && (t = 0);
                  var i = parseInt(n, 10);
                  return isNaN(i) && (i = t), i;
                }),
                (t.prototype._get_selection = function (e, t, n) {
                  var i = this._get_selection_list(e, t, n);
                  if (1 !== i.length)
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can only be one of the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i[0];
                }),
                (t.prototype._get_selection_list = function (e, t, n) {
                  if (!t || 0 === t.length)
                    throw new Error("Selection list cannot be empty.");
                  if (((n = n || [t[0]]), !this._is_valid_selection(n, t)))
                    throw new Error("Invalid Default Value!");
                  var i = this._get_array(e, n);
                  if (!this._is_valid_selection(i, t))
                    throw new Error(
                      "Invalid Option Value: The option '" +
                        e +
                        "' can contain only the following values:\n" +
                        t +
                        "\nYou passed in: '" +
                        this.raw_options[e] +
                        "'"
                    );
                  return i;
                }),
                (t.prototype._is_valid_selection = function (e, t) {
                  return (
                    e.length &&
                    t.length &&
                    !e.some(function (e) {
                      return -1 === t.indexOf(e);
                    })
                  );
                }),
                (e.exports.Options = t),
                (e.exports.normalizeOpts = i),
                (e.exports.mergeOpts = n);
            },
            ,
            function (e) {
              var t = RegExp.prototype.hasOwnProperty("sticky");

              function n(e) {
                (this.__input = e || ""),
                  (this.__input_length = this.__input.length),
                  (this.__position = 0);
              }
              (n.prototype.restart = function () {
                this.__position = 0;
              }),
                (n.prototype.back = function () {
                  this.__position > 0 && (this.__position -= 1);
                }),
                (n.prototype.hasNext = function () {
                  return this.__position < this.__input_length;
                }),
                (n.prototype.next = function () {
                  var e = null;
                  return (
                    this.hasNext() &&
                      ((e = this.__input.charAt(this.__position)),
                      (this.__position += 1)),
                    e
                  );
                }),
                (n.prototype.peek = function (e) {
                  var t = null;
                  return (
                    (e = e || 0),
                    (e += this.__position) >= 0 &&
                      e < this.__input_length &&
                      (t = this.__input.charAt(e)),
                    t
                  );
                }),
                (n.prototype.__match = function (e, n) {
                  e.lastIndex = n;
                  var i = e.exec(this.__input);
                  return (
                    !i || (t && e.sticky) || (i.index !== n && (i = null)), i
                  );
                }),
                (n.prototype.test = function (e, t) {
                  return (
                    (t = t || 0),
                    (t += this.__position) >= 0 &&
                      t < this.__input_length &&
                      !!this.__match(e, t)
                  );
                }),
                (n.prototype.testChar = function (e, t) {
                  var n = this.peek(t);
                  return (e.lastIndex = 0), null !== n && e.test(n);
                }),
                (n.prototype.match = function (e) {
                  var t = this.__match(e, this.__position);
                  return t ? (this.__position += t[0].length) : (t = null), t;
                }),
                (n.prototype.read = function (e, t, n) {
                  var i,
                    r = "";
                  return (
                    e && (i = this.match(e)) && (r += i[0]),
                    !t || (!i && e) || (r += this.readUntil(t, n)),
                    r
                  );
                }),
                (n.prototype.readUntil = function (e, t) {
                  var n,
                    i = this.__position;
                  e.lastIndex = this.__position;
                  var r = e.exec(this.__input);
                  return (
                    r
                      ? ((i = r.index), t && (i += r[0].length))
                      : (i = this.__input_length),
                    (n = this.__input.substring(this.__position, i)),
                    (this.__position = i),
                    n
                  );
                }),
                (n.prototype.readUntilAfter = function (e) {
                  return this.readUntil(e, !0);
                }),
                (n.prototype.get_regexp = function (e, n) {
                  var i = null,
                    r = "g";
                  return (
                    n && t && (r = "y"),
                    "string" == typeof e && "" !== e
                      ? (i = new RegExp(e, r))
                      : e && (i = new RegExp(e.source, r)),
                    i
                  );
                }),
                (n.prototype.get_literal_regexp = function (e) {
                  return RegExp(e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"));
                }),
                (n.prototype.peekUntilAfter = function (e) {
                  var t = this.__position,
                    n = this.readUntilAfter(e);
                  return (this.__position = t), n;
                }),
                (n.prototype.lookBack = function (e) {
                  var t = this.__position - 1;
                  return (
                    t >= e.length &&
                    this.__input.substring(t - e.length, t).toLowerCase() === e
                  );
                }),
                (e.exports.InputScanner = n);
            },
            function (e, t, n) {
              var i = n(8).InputScanner,
                r = n(3).Token,
                o = n(10).TokenStream,
                s = n(11).WhitespacePattern,
                a = {
                  START: "TK_START",
                  RAW: "TK_RAW",
                  EOF: "TK_EOF",
                },
                l = function (e, t) {
                  (this._input = new i(e)),
                    (this._options = t || {}),
                    (this.__tokens = null),
                    (this._patterns = {}),
                    (this._patterns.whitespace = new s(this._input));
                };
              (l.prototype.tokenize = function () {
                var e;
                this._input.restart(), (this.__tokens = new o()), this._reset();
                for (
                  var t = new r(a.START, ""), n = null, i = [], s = new o();
                  t.type !== a.EOF;

                ) {
                  for (e = this._get_next_token(t, n); this._is_comment(e); )
                    s.add(e), (e = this._get_next_token(t, n));
                  s.isEmpty() || ((e.comments_before = s), (s = new o())),
                    (e.parent = n),
                    this._is_opening(e)
                      ? (i.push(n), (n = e))
                      : n &&
                        this._is_closing(e, n) &&
                        ((e.opened = n),
                        (n.closed = e),
                        (n = i.pop()),
                        (e.parent = n)),
                    (e.previous = t),
                    (t.next = e),
                    this.__tokens.add(e),
                    (t = e);
                }
                return this.__tokens;
              }),
                (l.prototype._is_first_token = function () {
                  return this.__tokens.isEmpty();
                }),
                (l.prototype._reset = function () {}),
                (l.prototype._get_next_token = function (e, t) {
                  this._readWhitespace();
                  var n = this._input.read(/.+/g);
                  return n
                    ? this._create_token(a.RAW, n)
                    : this._create_token(a.EOF, "");
                }),
                (l.prototype._is_comment = function (e) {
                  return !1;
                }),
                (l.prototype._is_opening = function (e) {
                  return !1;
                }),
                (l.prototype._is_closing = function (e, t) {
                  return !1;
                }),
                (l.prototype._create_token = function (e, t) {
                  return new r(
                    e,
                    t,
                    this._patterns.whitespace.newline_count,
                    this._patterns.whitespace.whitespace_before_token
                  );
                }),
                (l.prototype._readWhitespace = function () {
                  return this._patterns.whitespace.read();
                }),
                (e.exports.Tokenizer = l),
                (e.exports.TOKEN = a);
            },
            function (e) {
              function t(e) {
                (this.__tokens = []),
                  (this.__tokens_length = this.__tokens.length),
                  (this.__position = 0),
                  (this.__parent_token = e);
              }
              (t.prototype.restart = function () {
                this.__position = 0;
              }),
                (t.prototype.isEmpty = function () {
                  return 0 === this.__tokens_length;
                }),
                (t.prototype.hasNext = function () {
                  return this.__position < this.__tokens_length;
                }),
                (t.prototype.next = function () {
                  var e = null;
                  return (
                    this.hasNext() &&
                      ((e = this.__tokens[this.__position]),
                      (this.__position += 1)),
                    e
                  );
                }),
                (t.prototype.peek = function (e) {
                  var t = null;
                  return (
                    (e = e || 0),
                    (e += this.__position) >= 0 &&
                      e < this.__tokens_length &&
                      (t = this.__tokens[e]),
                    t
                  );
                }),
                (t.prototype.add = function (e) {
                  this.__parent_token && (e.parent = this.__parent_token),
                    this.__tokens.push(e),
                    (this.__tokens_length += 1);
                }),
                (e.exports.TokenStream = t);
            },
            function (e, t, n) {
              var i = n(12).Pattern;

              function r(e, t) {
                i.call(this, e, t),
                  t
                    ? (this._line_regexp = this._input.get_regexp(
                        t._line_regexp
                      ))
                    : this.__set_whitespace_patterns("", ""),
                  (this.newline_count = 0),
                  (this.whitespace_before_token = "");
              }
              (r.prototype = new i()),
                (r.prototype.__set_whitespace_patterns = function (e, t) {
                  (e += "\\t "),
                    (t += "\\n\\r"),
                    (this._match_pattern = this._input.get_regexp(
                      "[" + e + t + "]+",
                      !0
                    )),
                    (this._newline_regexp = this._input.get_regexp(
                      "\\r\\n|[" + t + "]"
                    ));
                }),
                (r.prototype.read = function () {
                  (this.newline_count = 0), (this.whitespace_before_token = "");
                  var e = this._input.read(this._match_pattern);
                  if (" " === e) this.whitespace_before_token = " ";
                  else if (e) {
                    var t = this.__split(this._newline_regexp, e);
                    (this.newline_count = t.length - 1),
                      (this.whitespace_before_token = t[this.newline_count]);
                  }
                  return e;
                }),
                (r.prototype.matching = function (e, t) {
                  var n = this._create();
                  return n.__set_whitespace_patterns(e, t), n._update(), n;
                }),
                (r.prototype._create = function () {
                  return new r(this._input, this);
                }),
                (r.prototype.__split = function (e, t) {
                  e.lastIndex = 0;
                  for (var n = 0, i = [], r = e.exec(t); r; )
                    i.push(t.substring(n, r.index)),
                      (n = r.index + r[0].length),
                      (r = e.exec(t));
                  return (
                    n < t.length
                      ? i.push(t.substring(n, t.length))
                      : i.push(""),
                    i
                  );
                }),
                (e.exports.WhitespacePattern = r);
            },
            function (e) {
              function t(e, t) {
                (this._input = e),
                  (this._starting_pattern = null),
                  (this._match_pattern = null),
                  (this._until_pattern = null),
                  (this._until_after = !1),
                  t &&
                    ((this._starting_pattern = this._input.get_regexp(
                      t._starting_pattern,
                      !0
                    )),
                    (this._match_pattern = this._input.get_regexp(
                      t._match_pattern,
                      !0
                    )),
                    (this._until_pattern = this._input.get_regexp(
                      t._until_pattern
                    )),
                    (this._until_after = t._until_after));
              }
              (t.prototype.read = function () {
                var e = this._input.read(this._starting_pattern);
                return (
                  (this._starting_pattern && !e) ||
                    (e += this._input.read(
                      this._match_pattern,
                      this._until_pattern,
                      this._until_after
                    )),
                  e
                );
              }),
                (t.prototype.read_match = function () {
                  return this._input.match(this._match_pattern);
                }),
                (t.prototype.until_after = function (e) {
                  var t = this._create();
                  return (
                    (t._until_after = !0),
                    (t._until_pattern = this._input.get_regexp(e)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.until = function (e) {
                  var t = this._create();
                  return (
                    (t._until_after = !1),
                    (t._until_pattern = this._input.get_regexp(e)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.starting_with = function (e) {
                  var t = this._create();
                  return (
                    (t._starting_pattern = this._input.get_regexp(e, !0)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype.matching = function (e) {
                  var t = this._create();
                  return (
                    (t._match_pattern = this._input.get_regexp(e, !0)),
                    t._update(),
                    t
                  );
                }),
                (t.prototype._create = function () {
                  return new t(this._input, this);
                }),
                (t.prototype._update = function () {}),
                (e.exports.Pattern = t);
            },
            function (e) {
              function t(e, t) {
                (e = "string" == typeof e ? e : e.source),
                  (t = "string" == typeof t ? t : t.source),
                  (this.__directives_block_pattern = new RegExp(
                    e + / beautify( \w+[:]\w+)+ /.source + t,
                    "g"
                  )),
                  (this.__directive_pattern = / (\w+)[:](\w+)/g),
                  (this.__directives_end_ignore_pattern = new RegExp(
                    e + /\sbeautify\signore:end\s/.source + t,
                    "g"
                  ));
              }
              (t.prototype.get_directives = function (e) {
                if (!e.match(this.__directives_block_pattern)) return null;
                var t = {};
                this.__directive_pattern.lastIndex = 0;
                for (var n = this.__directive_pattern.exec(e); n; )
                  (t[n[1]] = n[2]), (n = this.__directive_pattern.exec(e));
                return t;
              }),
                (t.prototype.readIgnored = function (e) {
                  return e.readUntilAfter(this.__directives_end_ignore_pattern);
                }),
                (e.exports.Directives = t);
            },
            function (e, t, n) {
              var i = n(12).Pattern,
                r = {
                  django: !1,
                  erb: !1,
                  handlebars: !1,
                  php: !1,
                  smarty: !1,
                };

              function o(e, t) {
                i.call(this, e, t),
                  (this.__template_pattern = null),
                  (this._disabled = Object.assign({}, r)),
                  (this._excluded = Object.assign({}, r)),
                  t &&
                    ((this.__template_pattern = this._input.get_regexp(
                      t.__template_pattern
                    )),
                    (this._excluded = Object.assign(
                      this._excluded,
                      t._excluded
                    )),
                    (this._disabled = Object.assign(
                      this._disabled,
                      t._disabled
                    )));
                var n = new i(e);
                this.__patterns = {
                  handlebars_comment: n
                    .starting_with(/{{!--/)
                    .until_after(/--}}/),
                  handlebars_unescaped: n
                    .starting_with(/{{{/)
                    .until_after(/}}}/),
                  handlebars: n.starting_with(/{{/).until_after(/}}/),
                  php: n.starting_with(/<\?(?:[= ]|php)/).until_after(/\?>/),
                  erb: n.starting_with(/<%[^%]/).until_after(/[^%]%>/),
                  django: n.starting_with(/{%/).until_after(/%}/),
                  django_value: n.starting_with(/{{/).until_after(/}}/),
                  django_comment: n.starting_with(/{#/).until_after(/#}/),
                  smarty: n
                    .starting_with(/{(?=[^}{\s\n])/)
                    .until_after(/[^\s\n]}/),
                  smarty_comment: n.starting_with(/{\*/).until_after(/\*}/),
                  smarty_literal: n
                    .starting_with(/{literal}/)
                    .until_after(/{\/literal}/),
                };
              }
              (o.prototype = new i()),
                (o.prototype._create = function () {
                  return new o(this._input, this);
                }),
                (o.prototype._update = function () {
                  this.__set_templated_pattern();
                }),
                (o.prototype.disable = function (e) {
                  var t = this._create();
                  return (t._disabled[e] = !0), t._update(), t;
                }),
                (o.prototype.read_options = function (e) {
                  var t = this._create();
                  for (var n in r)
                    t._disabled[n] = -1 === e.templating.indexOf(n);
                  return t._update(), t;
                }),
                (o.prototype.exclude = function (e) {
                  var t = this._create();
                  return (t._excluded[e] = !0), t._update(), t;
                }),
                (o.prototype.read = function () {
                  var e = "";
                  e = this._match_pattern
                    ? this._input.read(this._starting_pattern)
                    : this._input.read(
                        this._starting_pattern,
                        this.__template_pattern
                      );
                  for (var t = this._read_template(); t; )
                    this._match_pattern
                      ? (t += this._input.read(this._match_pattern))
                      : (t += this._input.readUntil(this.__template_pattern)),
                      (e += t),
                      (t = this._read_template());
                  return (
                    this._until_after &&
                      (e += this._input.readUntilAfter(this._until_pattern)),
                    e
                  );
                }),
                (o.prototype.__set_templated_pattern = function () {
                  var e = [];
                  this._disabled.php ||
                    e.push(this.__patterns.php._starting_pattern.source),
                    this._disabled.handlebars ||
                      e.push(
                        this.__patterns.handlebars._starting_pattern.source
                      ),
                    this._disabled.erb ||
                      e.push(this.__patterns.erb._starting_pattern.source),
                    this._disabled.django ||
                      (e.push(this.__patterns.django._starting_pattern.source),
                      e.push(
                        this.__patterns.django_value._starting_pattern.source
                      ),
                      e.push(
                        this.__patterns.django_comment._starting_pattern.source
                      )),
                    this._disabled.smarty ||
                      e.push(this.__patterns.smarty._starting_pattern.source),
                    this._until_pattern && e.push(this._until_pattern.source),
                    (this.__template_pattern = this._input.get_regexp(
                      "(?:" + e.join("|") + ")"
                    ));
                }),
                (o.prototype._read_template = function () {
                  var e = "",
                    t = this._input.peek();
                  if ("<" === t) {
                    var n = this._input.peek(1);
                    this._disabled.php ||
                      this._excluded.php ||
                      "?" !== n ||
                      (e = e || this.__patterns.php.read()),
                      this._disabled.erb ||
                        this._excluded.erb ||
                        "%" !== n ||
                        (e = e || this.__patterns.erb.read());
                  } else
                    "{" === t &&
                      (this._disabled.handlebars ||
                        this._excluded.handlebars ||
                        (e =
                          (e =
                            (e =
                              e || this.__patterns.handlebars_comment.read()) ||
                            this.__patterns.handlebars_unescaped.read()) ||
                          this.__patterns.handlebars.read()),
                      this._disabled.django ||
                        (this._excluded.django ||
                          this._excluded.handlebars ||
                          (e = e || this.__patterns.django_value.read()),
                        this._excluded.django ||
                          (e =
                            (e = e || this.__patterns.django_comment.read()) ||
                            this.__patterns.django.read())),
                      this._disabled.smarty ||
                        (this._disabled.django &&
                          this._disabled.handlebars &&
                          (e =
                            (e =
                              (e =
                                e || this.__patterns.smarty_comment.read()) ||
                              this.__patterns.smarty_literal.read()) ||
                            this.__patterns.smarty.read())));
                  return e;
                }),
                (e.exports.TemplatablePattern = o);
            },
            ,
            ,
            ,
            function (e, t, n) {
              var i = n(19).Beautifier,
                r = n(20).Options;
              (e.exports = function (e, t, n, r) {
                return new i(e, t, n, r).beautify();
              }),
                (e.exports.defaultOptions = function () {
                  return new r();
                });
            },
            function (e, t, n) {
              var i = n(20).Options,
                r = n(2).Output,
                o = n(21).Tokenizer,
                s = n(21).TOKEN,
                a = /\r\n|[\r\n]/,
                l = /\r\n|[\r\n]/g,
                c = function (e, t) {
                  (this.indent_level = 0),
                    (this.alignment_size = 0),
                    (this.max_preserve_newlines = e.max_preserve_newlines),
                    (this.preserve_newlines = e.preserve_newlines),
                    (this._output = new r(e, t));
                };
              (c.prototype.current_line_has_match = function (e) {
                return this._output.current_line.has_match(e);
              }),
                (c.prototype.set_space_before_token = function (e, t) {
                  (this._output.space_before_token = e),
                    (this._output.non_breaking_space = t);
                }),
                (c.prototype.set_wrap_point = function () {
                  this._output.set_indent(
                    this.indent_level,
                    this.alignment_size
                  ),
                    this._output.set_wrap_point();
                }),
                (c.prototype.add_raw_token = function (e) {
                  this._output.add_raw_token(e);
                }),
                (c.prototype.print_preserved_newlines = function (e) {
                  var t = 0;
                  e.type !== s.TEXT &&
                    e.previous.type !== s.TEXT &&
                    (t = e.newlines ? 1 : 0),
                    this.preserve_newlines &&
                      (t =
                        e.newlines < this.max_preserve_newlines + 1
                          ? e.newlines
                          : this.max_preserve_newlines + 1);
                  for (var n = 0; n < t; n++) this.print_newline(n > 0);
                  return 0 !== t;
                }),
                (c.prototype.traverse_whitespace = function (e) {
                  return (
                    !(!e.whitespace_before && !e.newlines) &&
                    (this.print_preserved_newlines(e) ||
                      (this._output.space_before_token = !0),
                    !0)
                  );
                }),
                (c.prototype.previous_token_wrapped = function () {
                  return this._output.previous_token_wrapped;
                }),
                (c.prototype.print_newline = function (e) {
                  this._output.add_new_line(e);
                }),
                (c.prototype.print_token = function (e) {
                  e.text &&
                    (this._output.set_indent(
                      this.indent_level,
                      this.alignment_size
                    ),
                    this._output.add_token(e.text));
                }),
                (c.prototype.indent = function () {
                  this.indent_level++;
                }),
                (c.prototype.get_full_indent = function (e) {
                  return (e = this.indent_level + (e || 0)) < 1
                    ? ""
                    : this._output.get_indent_string(e);
                });
              var d = function (e, t) {
                var n = null,
                  i = null;
                return t.closed
                  ? ("script" === e
                      ? (n = "text/javascript")
                      : "style" === e && (n = "text/css"),
                    (n =
                      (function (e) {
                        for (
                          var t = null, n = e.next;
                          n.type !== s.EOF && e.closed !== n;

                        ) {
                          if (n.type === s.ATTRIBUTE && "type" === n.text) {
                            n.next &&
                              n.next.type === s.EQUALS &&
                              n.next.next &&
                              n.next.next.type === s.VALUE &&
                              (t = n.next.next.text);
                            break;
                          }
                          n = n.next;
                        }
                        return t;
                      })(t) || n).search("text/css") > -1
                      ? (i = "css")
                      : n.search(
                          /module|((text|application|dojo)\/(x-)?(javascript|ecmascript|jscript|livescript|(ld\+)?json|method|aspect))/
                        ) > -1
                      ? (i = "javascript")
                      : n.search(/(text|application|dojo)\/(x-)?(html)/) > -1
                      ? (i = "html")
                      : n.search(/test\/null/) > -1 && (i = "null"),
                    i)
                  : null;
              };

              function u(e, t) {
                return -1 !== t.indexOf(e);
              }

              function h(e, t, n) {
                (this.parent = e || null),
                  (this.tag = t ? t.tag_name : ""),
                  (this.indent_level = n || 0),
                  (this.parser_token = t || null);
              }

              function g(e) {
                (this._printer = e), (this._current_frame = null);
              }

              function p(e, t, n, r) {
                (this._source_text = e || ""),
                  (t = t || {}),
                  (this._js_beautify = n),
                  (this._css_beautify = r),
                  (this._tag_stack = null);
                var o = new i(t, "html");
                (this._options = o),
                  (this._is_wrap_attributes_force =
                    "force" ===
                    this._options.wrap_attributes.substr(0, "force".length)),
                  (this._is_wrap_attributes_force_expand_multiline =
                    "force-expand-multiline" === this._options.wrap_attributes),
                  (this._is_wrap_attributes_force_aligned =
                    "force-aligned" === this._options.wrap_attributes),
                  (this._is_wrap_attributes_aligned_multiple =
                    "aligned-multiple" === this._options.wrap_attributes),
                  (this._is_wrap_attributes_preserve =
                    "preserve" ===
                    this._options.wrap_attributes.substr(0, "preserve".length)),
                  (this._is_wrap_attributes_preserve_aligned =
                    "preserve-aligned" === this._options.wrap_attributes);
              }
              (g.prototype.get_parser_token = function () {
                return this._current_frame
                  ? this._current_frame.parser_token
                  : null;
              }),
                (g.prototype.record_tag = function (e) {
                  var t = new h(
                    this._current_frame,
                    e,
                    this._printer.indent_level
                  );
                  this._current_frame = t;
                }),
                (g.prototype._try_pop_frame = function (e) {
                  var t = null;
                  return (
                    e &&
                      ((t = e.parser_token),
                      (this._printer.indent_level = e.indent_level),
                      (this._current_frame = e.parent)),
                    t
                  );
                }),
                (g.prototype._get_frame = function (e, t) {
                  for (
                    var n = this._current_frame;
                    n && -1 === e.indexOf(n.tag);

                  ) {
                    if (t && -1 !== t.indexOf(n.tag)) {
                      n = null;
                      break;
                    }
                    n = n.parent;
                  }
                  return n;
                }),
                (g.prototype.try_pop = function (e, t) {
                  var n = this._get_frame([e], t);
                  return this._try_pop_frame(n);
                }),
                (g.prototype.indent_to_tag = function (e) {
                  var t = this._get_frame(e);
                  t && (this._printer.indent_level = t.indent_level);
                }),
                (p.prototype.beautify = function () {
                  if (this._options.disabled) return this._source_text;
                  var e = this._source_text,
                    t = this._options.eol;
                  "auto" === this._options.eol &&
                    ((t = "\n"), e && a.test(e) && (t = e.match(a)[0]));
                  var n = (e = e.replace(l, "\n")).match(/^[\t ]*/)[0],
                    i = {
                      text: "",
                      type: "",
                    },
                    r = new A(),
                    d = new c(this._options, n),
                    u = new o(e, this._options).tokenize();
                  this._tag_stack = new g(d);
                  for (var h = null, p = u.next(); p.type !== s.EOF; )
                    p.type === s.TAG_OPEN || p.type === s.COMMENT
                      ? (r = h = this._handle_tag_open(d, p, r, i))
                      : p.type === s.ATTRIBUTE ||
                        p.type === s.EQUALS ||
                        p.type === s.VALUE ||
                        (p.type === s.TEXT && !r.tag_complete)
                      ? (h = this._handle_inside_tag(d, p, r, u))
                      : p.type === s.TAG_CLOSE
                      ? (h = this._handle_tag_close(d, p, r))
                      : p.type === s.TEXT
                      ? (h = this._handle_text(d, p, r))
                      : d.add_raw_token(p),
                      (i = h),
                      (p = u.next());
                  return d._output.get_code(t);
                }),
                (p.prototype._handle_tag_close = function (e, t, n) {
                  var i = {
                    text: t.text,
                    type: t.type,
                  };
                  return (
                    (e.alignment_size = 0),
                    (n.tag_complete = !0),
                    e.set_space_before_token(
                      t.newlines || "" !== t.whitespace_before,
                      !0
                    ),
                    n.is_unformatted
                      ? e.add_raw_token(t)
                      : ("<" === n.tag_start_char &&
                          (e.set_space_before_token("/" === t.text[0], !0),
                          this._is_wrap_attributes_force_expand_multiline &&
                            n.has_wrapped_attrs &&
                            e.print_newline(!1)),
                        e.print_token(t)),
                    !n.indent_content ||
                      n.is_unformatted ||
                      n.is_content_unformatted ||
                      (e.indent(), (n.indent_content = !1)),
                    n.is_inline_element ||
                      n.is_unformatted ||
                      n.is_content_unformatted ||
                      e.set_wrap_point(),
                    i
                  );
                }),
                (p.prototype._handle_inside_tag = function (e, t, n, i) {
                  var r = n.has_wrapped_attrs,
                    o = {
                      text: t.text,
                      type: t.type,
                    };
                  if (
                    (e.set_space_before_token(
                      t.newlines || "" !== t.whitespace_before,
                      !0
                    ),
                    n.is_unformatted)
                  )
                    e.add_raw_token(t);
                  else if ("{" === n.tag_start_char && t.type === s.TEXT)
                    e.print_preserved_newlines(t)
                      ? ((t.newlines = 0), e.add_raw_token(t))
                      : e.print_token(t);
                  else {
                    if (
                      (t.type === s.ATTRIBUTE
                        ? (e.set_space_before_token(!0), (n.attr_count += 1))
                        : (t.type === s.EQUALS ||
                            (t.type === s.VALUE &&
                              t.previous.type === s.EQUALS)) &&
                          e.set_space_before_token(!1),
                      t.type === s.ATTRIBUTE &&
                        "<" === n.tag_start_char &&
                        ((this._is_wrap_attributes_preserve ||
                          this._is_wrap_attributes_preserve_aligned) &&
                          (e.traverse_whitespace(t),
                          (r = r || 0 !== t.newlines)),
                        this._is_wrap_attributes_force))
                    ) {
                      var a = n.attr_count > 1;
                      if (
                        this._is_wrap_attributes_force_expand_multiline &&
                        1 === n.attr_count
                      ) {
                        var l,
                          c = !0,
                          d = 0;
                        do {
                          if ((l = i.peek(d)).type === s.ATTRIBUTE) {
                            c = !1;
                            break;
                          }
                          d += 1;
                        } while (
                          d < 4 &&
                          l.type !== s.EOF &&
                          l.type !== s.TAG_CLOSE
                        );
                        a = !c;
                      }
                      a && (e.print_newline(!1), (r = !0));
                    }
                    e.print_token(t),
                      (r = r || e.previous_token_wrapped()),
                      (n.has_wrapped_attrs = r);
                  }
                  return o;
                }),
                (p.prototype._handle_text = function (e, t, n) {
                  var i = {
                    text: t.text,
                    type: "TK_CONTENT",
                  };
                  return (
                    n.custom_beautifier_name
                      ? this._print_custom_beatifier_text(e, t, n)
                      : n.is_unformatted || n.is_content_unformatted
                      ? e.add_raw_token(t)
                      : (e.traverse_whitespace(t), e.print_token(t)),
                    i
                  );
                }),
                (p.prototype._print_custom_beatifier_text = function (e, t, n) {
                  var i = this;
                  if ("" !== t.text) {
                    var r,
                      o = t.text,
                      s = 1,
                      a = "",
                      l = "";
                    "javascript" === n.custom_beautifier_name &&
                    "function" == typeof this._js_beautify
                      ? (r = this._js_beautify)
                      : "css" === n.custom_beautifier_name &&
                        "function" == typeof this._css_beautify
                      ? (r = this._css_beautify)
                      : "html" === n.custom_beautifier_name &&
                        (r = function (e, t) {
                          return new p(
                            e,
                            t,
                            i._js_beautify,
                            i._css_beautify
                          ).beautify();
                        }),
                      "keep" === this._options.indent_scripts
                        ? (s = 0)
                        : "separate" === this._options.indent_scripts &&
                          (s = -e.indent_level);
                    var c = e.get_full_indent(s);
                    if (
                      ((o = o.replace(/\n[ \t]*$/, "")),
                      "html" !== n.custom_beautifier_name &&
                        "<" === o[0] &&
                        o.match(/^(<!--|<!\[CDATA\[)/))
                    ) {
                      var d =
                        /^(<!--[^\n]*|<!\[CDATA\[)(\n?)([ \t\n]*)([\s\S]*)(-->|]]>)$/.exec(
                          o
                        );
                      if (!d) return void e.add_raw_token(t);
                      (a = c + d[1] + "\n"),
                        (o = d[4]),
                        d[5] && (l = c + d[5]),
                        (o = o.replace(/\n[ \t]*$/, "")),
                        (d[2] || -1 !== d[3].indexOf("\n")) &&
                          (d = d[3].match(/[ \t]+$/)) &&
                          (t.whitespace_before = d[0]);
                    }
                    if (o)
                      if (r) {
                        var u = function () {
                          this.eol = "\n";
                        };
                        (u.prototype = this._options.raw_options),
                          (o = r(c + o, new u()));
                      } else {
                        var h = t.whitespace_before;
                        h &&
                          (o = o.replace(
                            new RegExp("\n(" + h + ")?", "g"),
                            "\n"
                          )),
                          (o = c + o.replace(/\n/g, "\n" + c));
                      }
                    a && (o = o ? a + o + "\n" + l : a + l),
                      e.print_newline(!1),
                      o &&
                        ((t.text = o),
                        (t.whitespace_before = ""),
                        (t.newlines = 0),
                        e.add_raw_token(t),
                        e.print_newline(!0));
                  }
                }),
                (p.prototype._handle_tag_open = function (e, t, n, i) {
                  var r = this._get_tag_open_token(t);
                  return (
                    (!n.is_unformatted && !n.is_content_unformatted) ||
                    n.is_empty_element ||
                    t.type !== s.TAG_OPEN ||
                    0 !== t.text.indexOf("</")
                      ? (e.traverse_whitespace(t),
                        this._set_tag_position(e, t, r, n, i),
                        r.is_inline_element || e.set_wrap_point(),
                        e.print_token(t))
                      : (e.add_raw_token(t),
                        (r.start_tag_token = this._tag_stack.try_pop(
                          r.tag_name
                        ))),
                    (this._is_wrap_attributes_force_aligned ||
                      this._is_wrap_attributes_aligned_multiple ||
                      this._is_wrap_attributes_preserve_aligned) &&
                      (r.alignment_size = t.text.length + 1),
                    r.tag_complete ||
                      r.is_unformatted ||
                      (e.alignment_size = r.alignment_size),
                    r
                  );
                });
              var A = function (e, t) {
                var n;
                ((this.parent = e || null),
                (this.text = ""),
                (this.type = "TK_TAG_OPEN"),
                (this.tag_name = ""),
                (this.is_inline_element = !1),
                (this.is_unformatted = !1),
                (this.is_content_unformatted = !1),
                (this.is_empty_element = !1),
                (this.is_start_tag = !1),
                (this.is_end_tag = !1),
                (this.indent_content = !1),
                (this.multiline_content = !1),
                (this.custom_beautifier_name = null),
                (this.start_tag_token = null),
                (this.attr_count = 0),
                (this.has_wrapped_attrs = !1),
                (this.alignment_size = 0),
                (this.tag_complete = !1),
                (this.tag_start_char = ""),
                (this.tag_check = ""),
                t)
                  ? ((this.tag_start_char = t.text[0]),
                    (this.text = t.text),
                    "<" === this.tag_start_char
                      ? ((n = t.text.match(/^<([^\s>]*)/)),
                        (this.tag_check = n ? n[1] : ""))
                      : ((n = t.text.match(/^{{(?:[\^]|#\*?)?([^\s}]+)/)),
                        (this.tag_check = n ? n[1] : ""),
                        "{{#>" === t.text &&
                          ">" === this.tag_check &&
                          null !== t.next &&
                          (this.tag_check = t.next.text)),
                    (this.tag_check = this.tag_check.toLowerCase()),
                    t.type === s.COMMENT && (this.tag_complete = !0),
                    (this.is_start_tag = "/" !== this.tag_check.charAt(0)),
                    (this.tag_name = this.is_start_tag
                      ? this.tag_check
                      : this.tag_check.substr(1)),
                    (this.is_end_tag =
                      !this.is_start_tag ||
                      (t.closed && "/>" === t.closed.text)),
                    (this.is_end_tag =
                      this.is_end_tag ||
                      ("{" === this.tag_start_char &&
                        (this.text.length < 3 ||
                          /[^#\^]/.test(this.text.charAt(2))))))
                  : (this.tag_complete = !0);
              };
              (p.prototype._get_tag_open_token = function (e) {
                var t = new A(this._tag_stack.get_parser_token(), e);
                return (
                  (t.alignment_size =
                    this._options.wrap_attributes_indent_size),
                  (t.is_end_tag =
                    t.is_end_tag ||
                    u(t.tag_check, this._options.void_elements)),
                  (t.is_empty_element =
                    t.tag_complete || (t.is_start_tag && t.is_end_tag)),
                  (t.is_unformatted =
                    !t.tag_complete &&
                    u(t.tag_check, this._options.unformatted)),
                  (t.is_content_unformatted =
                    !t.is_empty_element &&
                    u(t.tag_check, this._options.content_unformatted)),
                  (t.is_inline_element =
                    u(t.tag_name, this._options.inline) ||
                    "{" === t.tag_start_char),
                  t
                );
              }),
                (p.prototype._set_tag_position = function (e, t, n, i, r) {
                  if (
                    (n.is_empty_element ||
                      (n.is_end_tag
                        ? (n.start_tag_token = this._tag_stack.try_pop(
                            n.tag_name
                          ))
                        : (this._do_optional_end_element(n) &&
                            (n.is_inline_element || e.print_newline(!1)),
                          this._tag_stack.record_tag(n),
                          ("script" !== n.tag_name && "style" !== n.tag_name) ||
                            n.is_unformatted ||
                            n.is_content_unformatted ||
                            (n.custom_beautifier_name = d(n.tag_check, t)))),
                    u(n.tag_check, this._options.extra_liners) &&
                      (e.print_newline(!1),
                      e._output.just_added_blankline() || e.print_newline(!0)),
                    n.is_empty_element)
                  ) {
                    if ("{" === n.tag_start_char && "else" === n.tag_check)
                      this._tag_stack.indent_to_tag(["if", "unless", "each"]),
                        (n.indent_content = !0),
                        e.current_line_has_match(/{{#if/) ||
                          e.print_newline(!1);
                    ("!--" === n.tag_name &&
                      r.type === s.TAG_CLOSE &&
                      i.is_end_tag &&
                      -1 === n.text.indexOf("\n")) ||
                      (n.is_inline_element ||
                        n.is_unformatted ||
                        e.print_newline(!1),
                      this._calcluate_parent_multiline(e, n));
                  } else if (n.is_end_tag) {
                    var o = !1;
                    (o =
                      (o =
                        n.start_tag_token &&
                        n.start_tag_token.multiline_content) ||
                      (!n.is_inline_element &&
                        !(i.is_inline_element || i.is_unformatted) &&
                        !(r.type === s.TAG_CLOSE && n.start_tag_token === i) &&
                        "TK_CONTENT" !== r.type)),
                      (n.is_content_unformatted || n.is_unformatted) &&
                        (o = !1),
                      o && e.print_newline(!1);
                  } else
                    (n.indent_content = !n.custom_beautifier_name),
                      "<" === n.tag_start_char &&
                        ("html" === n.tag_name
                          ? (n.indent_content = this._options.indent_inner_html)
                          : "head" === n.tag_name
                          ? (n.indent_content =
                              this._options.indent_head_inner_html)
                          : "body" === n.tag_name &&
                            (n.indent_content =
                              this._options.indent_body_inner_html)),
                      n.is_inline_element ||
                        n.is_unformatted ||
                        ("TK_CONTENT" === r.type &&
                          !n.is_content_unformatted) ||
                        e.print_newline(!1),
                      this._calcluate_parent_multiline(e, n);
                }),
                (p.prototype._calcluate_parent_multiline = function (e, t) {
                  !t.parent ||
                    !e._output.just_added_newline() ||
                    ((t.is_inline_element || t.is_unformatted) &&
                      t.parent.is_inline_element) ||
                    (t.parent.multiline_content = !0);
                });
              var f = [
                  "address",
                  "article",
                  "aside",
                  "blockquote",
                  "details",
                  "div",
                  "dl",
                  "fieldset",
                  "figcaption",
                  "figure",
                  "footer",
                  "form",
                  "h1",
                  "h2",
                  "h3",
                  "h4",
                  "h5",
                  "h6",
                  "header",
                  "hr",
                  "main",
                  "nav",
                  "ol",
                  "p",
                  "pre",
                  "section",
                  "table",
                  "ul",
                ],
                m = ["a", "audio", "del", "ins", "map", "noscript", "video"];
              (p.prototype._do_optional_end_element = function (e) {
                var t = null;
                if (!e.is_empty_element && e.is_start_tag && e.parent) {
                  if ("body" === e.tag_name)
                    t = t || this._tag_stack.try_pop("head");
                  else if ("li" === e.tag_name)
                    t = t || this._tag_stack.try_pop("li", ["ol", "ul"]);
                  else if ("dd" === e.tag_name || "dt" === e.tag_name)
                    t =
                      (t = t || this._tag_stack.try_pop("dt", ["dl"])) ||
                      this._tag_stack.try_pop("dd", ["dl"]);
                  else if (
                    "p" === e.parent.tag_name &&
                    -1 !== f.indexOf(e.tag_name)
                  ) {
                    var n = e.parent.parent;
                    (n && -1 !== m.indexOf(n.tag_name)) ||
                      (t = t || this._tag_stack.try_pop("p"));
                  } else
                    "rp" === e.tag_name || "rt" === e.tag_name
                      ? (t =
                          (t =
                            t ||
                            this._tag_stack.try_pop("rt", ["ruby", "rtc"])) ||
                          this._tag_stack.try_pop("rp", ["ruby", "rtc"]))
                      : "optgroup" === e.tag_name
                      ? (t =
                          t || this._tag_stack.try_pop("optgroup", ["select"]))
                      : "option" === e.tag_name
                      ? (t =
                          t ||
                          this._tag_stack.try_pop("option", [
                            "select",
                            "datalist",
                            "optgroup",
                          ]))
                      : "colgroup" === e.tag_name
                      ? (t = t || this._tag_stack.try_pop("caption", ["table"]))
                      : "thead" === e.tag_name
                      ? (t =
                          (t =
                            t ||
                            this._tag_stack.try_pop("caption", ["table"])) ||
                          this._tag_stack.try_pop("colgroup", ["table"]))
                      : "tbody" === e.tag_name || "tfoot" === e.tag_name
                      ? (t =
                          (t =
                            (t =
                              (t =
                                t ||
                                this._tag_stack.try_pop("caption", [
                                  "table",
                                ])) ||
                              this._tag_stack.try_pop("colgroup", ["table"])) ||
                            this._tag_stack.try_pop("thead", ["table"])) ||
                          this._tag_stack.try_pop("tbody", ["table"]))
                      : "tr" === e.tag_name
                      ? (t =
                          (t =
                            (t =
                              t ||
                              this._tag_stack.try_pop("caption", ["table"])) ||
                            this._tag_stack.try_pop("colgroup", ["table"])) ||
                          this._tag_stack.try_pop("tr", [
                            "table",
                            "thead",
                            "tbody",
                            "tfoot",
                          ]))
                      : ("th" !== e.tag_name && "td" !== e.tag_name) ||
                        (t =
                          (t =
                            t ||
                            this._tag_stack.try_pop("td", [
                              "table",
                              "thead",
                              "tbody",
                              "tfoot",
                              "tr",
                            ])) ||
                          this._tag_stack.try_pop("th", [
                            "table",
                            "thead",
                            "tbody",
                            "tfoot",
                            "tr",
                          ]));
                  return (e.parent = this._tag_stack.get_parser_token()), t;
                }
              }),
                (e.exports.Beautifier = p);
            },
            function (e, t, n) {
              var i = n(6).Options;

              function r(e) {
                i.call(this, e, "html"),
                  1 === this.templating.length &&
                    "auto" === this.templating[0] &&
                    (this.templating = ["django", "erb", "handlebars", "php"]),
                  (this.indent_inner_html =
                    this._get_boolean("indent_inner_html")),
                  (this.indent_body_inner_html = this._get_boolean(
                    "indent_body_inner_html",
                    !0
                  )),
                  (this.indent_head_inner_html = this._get_boolean(
                    "indent_head_inner_html",
                    !0
                  )),
                  (this.indent_handlebars = this._get_boolean(
                    "indent_handlebars",
                    !0
                  )),
                  (this.wrap_attributes = this._get_selection(
                    "wrap_attributes",
                    [
                      "auto",
                      "force",
                      "force-aligned",
                      "force-expand-multiline",
                      "aligned-multiple",
                      "preserve",
                      "preserve-aligned",
                    ]
                  )),
                  (this.wrap_attributes_indent_size = this._get_number(
                    "wrap_attributes_indent_size",
                    this.indent_size
                  )),
                  (this.extra_liners = this._get_array("extra_liners", [
                    "head",
                    "body",
                    "/html",
                  ])),
                  (this.inline = this._get_array("inline", [
                    "a",
                    "abbr",
                    "area",
                    "audio",
                    "b",
                    "bdi",
                    "bdo",
                    "br",
                    "button",
                    "canvas",
                    "cite",
                    "code",
                    "data",
                    "datalist",
                    "del",
                    "dfn",
                    "em",
                    "embed",
                    "i",
                    "iframe",
                    "img",
                    "input",
                    "ins",
                    "kbd",
                    "keygen",
                    "label",
                    "map",
                    "mark",
                    "math",
                    "meter",
                    "noscript",
                    "object",
                    "output",
                    "progress",
                    "q",
                    "ruby",
                    "s",
                    "samp",
                    "select",
                    "small",
                    "span",
                    "strong",
                    "sub",
                    "sup",
                    "svg",
                    "template",
                    "textarea",
                    "time",
                    "u",
                    "var",
                    "video",
                    "wbr",
                    "text",
                    "acronym",
                    "big",
                    "strike",
                    "tt",
                  ])),
                  (this.void_elements = this._get_array("void_elements", [
                    "area",
                    "base",
                    "br",
                    "col",
                    "embed",
                    "hr",
                    "img",
                    "input",
                    "keygen",
                    "link",
                    "menuitem",
                    "meta",
                    "param",
                    "source",
                    "track",
                    "wbr",
                    "!doctype",
                    "?xml",
                    "basefont",
                    "isindex",
                  ])),
                  (this.unformatted = this._get_array("unformatted", [])),
                  (this.content_unformatted = this._get_array(
                    "content_unformatted",
                    ["pre", "textarea"]
                  )),
                  (this.unformatted_content_delimiter = this._get_characters(
                    "unformatted_content_delimiter"
                  )),
                  (this.indent_scripts = this._get_selection("indent_scripts", [
                    "normal",
                    "keep",
                    "separate",
                  ]));
              }
              (r.prototype = new i()), (e.exports.Options = r);
            },
            function (e, t, n) {
              var i = n(9).Tokenizer,
                r = n(9).TOKEN,
                o = n(13).Directives,
                s = n(14).TemplatablePattern,
                a = n(12).Pattern,
                l = {
                  TAG_OPEN: "TK_TAG_OPEN",
                  TAG_CLOSE: "TK_TAG_CLOSE",
                  ATTRIBUTE: "TK_ATTRIBUTE",
                  EQUALS: "TK_EQUALS",
                  VALUE: "TK_VALUE",
                  COMMENT: "TK_COMMENT",
                  TEXT: "TK_TEXT",
                  UNKNOWN: "TK_UNKNOWN",
                  START: r.START,
                  RAW: r.RAW,
                  EOF: r.EOF,
                },
                c = new o(/<\!--/, /-->/),
                d = function (e, t) {
                  i.call(this, e, t), (this._current_tag_name = "");
                  var n = new s(this._input).read_options(this._options),
                    r = new a(this._input);
                  if (
                    ((this.__patterns = {
                      word: n.until(/[\n\r\t <]/),
                      single_quote: n.until_after(/'/),
                      double_quote: n.until_after(/"/),
                      attribute: n.until(/[\n\r\t =>]|\/>/),
                      element_name: n.until(/[\n\r\t >\/]/),
                      handlebars_comment: r
                        .starting_with(/{{!--/)
                        .until_after(/--}}/),
                      handlebars: r.starting_with(/{{/).until_after(/}}/),
                      handlebars_open: r.until(/[\n\r\t }]/),
                      handlebars_raw_close: r.until(/}}/),
                      comment: r.starting_with(/<!--/).until_after(/-->/),
                      cdata: r.starting_with(/<!\[CDATA\[/).until_after(/]]>/),
                      conditional_comment: r
                        .starting_with(/<!\[/)
                        .until_after(/]>/),
                      processing: r.starting_with(/<\?/).until_after(/\?>/),
                    }),
                    this._options.indent_handlebars &&
                      (this.__patterns.word =
                        this.__patterns.word.exclude("handlebars")),
                    (this._unformatted_content_delimiter = null),
                    this._options.unformatted_content_delimiter)
                  ) {
                    var o = this._input.get_literal_regexp(
                      this._options.unformatted_content_delimiter
                    );
                    this.__patterns.unformatted_content_delimiter = r
                      .matching(o)
                      .until_after(o);
                  }
                };
              ((d.prototype = new i())._is_comment = function (e) {
                return !1;
              }),
                (d.prototype._is_opening = function (e) {
                  return e.type === l.TAG_OPEN;
                }),
                (d.prototype._is_closing = function (e, t) {
                  return (
                    e.type === l.TAG_CLOSE &&
                    t &&
                    (((">" === e.text || "/>" === e.text) &&
                      "<" === t.text[0]) ||
                      ("}}" === e.text &&
                        "{" === t.text[0] &&
                        "{" === t.text[1]))
                  );
                }),
                (d.prototype._reset = function () {
                  this._current_tag_name = "";
                }),
                (d.prototype._get_next_token = function (e, t) {
                  var n = null;
                  this._readWhitespace();
                  var i = this._input.peek();
                  return null === i
                    ? this._create_token(l.EOF, "")
                    : (n =
                        (n =
                          (n =
                            (n =
                              (n =
                                (n =
                                  (n =
                                    (n =
                                      (n =
                                        n ||
                                        this._read_open_handlebars(i, t)) ||
                                      this._read_attribute(i, e, t)) ||
                                    this._read_close(i, t)) ||
                                  this._read_raw_content(i, e, t)) ||
                                this._read_content_word(i)) ||
                              this._read_comment_or_cdata(i)) ||
                            this._read_processing(i)) ||
                          this._read_open(i, t)) ||
                        this._create_token(l.UNKNOWN, this._input.next()));
                }),
                (d.prototype._read_comment_or_cdata = function (e) {
                  var t = null,
                    n = null,
                    i = null;
                  "<" === e &&
                    ("!" === this._input.peek(1) &&
                      ((n = this.__patterns.comment.read())
                        ? (i = c.get_directives(n)) &&
                          "start" === i.ignore &&
                          (n += c.readIgnored(this._input))
                        : (n = this.__patterns.cdata.read())),
                    n &&
                      ((t = this._create_token(l.COMMENT, n)).directives = i));
                  return t;
                }),
                (d.prototype._read_processing = function (e) {
                  var t = null,
                    n = null;
                  if ("<" === e) {
                    var i = this._input.peek(1);
                    ("!" !== i && "?" !== i) ||
                      (n =
                        (n = this.__patterns.conditional_comment.read()) ||
                        this.__patterns.processing.read()),
                      n &&
                        ((t = this._create_token(l.COMMENT, n)).directives =
                          null);
                  }
                  return t;
                }),
                (d.prototype._read_open = function (e, t) {
                  var n = null,
                    i = null;
                  return (
                    t ||
                      ("<" === e &&
                        ((n = this._input.next()),
                        "/" === this._input.peek() && (n += this._input.next()),
                        (n += this.__patterns.element_name.read()),
                        (i = this._create_token(l.TAG_OPEN, n)))),
                    i
                  );
                }),
                (d.prototype._read_open_handlebars = function (e, t) {
                  var n = null,
                    i = null;
                  return (
                    t ||
                      (this._options.indent_handlebars &&
                        "{" === e &&
                        "{" === this._input.peek(1) &&
                        ("!" === this._input.peek(2)
                          ? ((n =
                              (n = this.__patterns.handlebars_comment.read()) ||
                              this.__patterns.handlebars.read()),
                            (i = this._create_token(l.COMMENT, n)))
                          : ((n = this.__patterns.handlebars_open.read()),
                            (i = this._create_token(l.TAG_OPEN, n))))),
                    i
                  );
                }),
                (d.prototype._read_close = function (e, t) {
                  var n = null,
                    i = null;
                  return (
                    t &&
                      ("<" === t.text[0] &&
                      (">" === e || ("/" === e && ">" === this._input.peek(1)))
                        ? ((n = this._input.next()),
                          "/" === e && (n += this._input.next()),
                          (i = this._create_token(l.TAG_CLOSE, n)))
                        : "{" === t.text[0] &&
                          "}" === e &&
                          "}" === this._input.peek(1) &&
                          (this._input.next(),
                          this._input.next(),
                          (i = this._create_token(l.TAG_CLOSE, "}}")))),
                    i
                  );
                }),
                (d.prototype._read_attribute = function (e, t, n) {
                  var i = null,
                    r = "";
                  if (n && "<" === n.text[0])
                    if ("=" === e)
                      i = this._create_token(l.EQUALS, this._input.next());
                    else if ('"' === e || "'" === e) {
                      var o = this._input.next();
                      (o +=
                        '"' === e
                          ? this.__patterns.double_quote.read()
                          : this.__patterns.single_quote.read()),
                        (i = this._create_token(l.VALUE, o));
                    } else
                      (r = this.__patterns.attribute.read()) &&
                        (i =
                          t.type === l.EQUALS
                            ? this._create_token(l.VALUE, r)
                            : this._create_token(l.ATTRIBUTE, r));
                  return i;
                }),
                (d.prototype._is_content_unformatted = function (e) {
                  return (
                    -1 === this._options.void_elements.indexOf(e) &&
                    (-1 !== this._options.content_unformatted.indexOf(e) ||
                      -1 !== this._options.unformatted.indexOf(e))
                  );
                }),
                (d.prototype._read_raw_content = function (e, t, n) {
                  var i = "";
                  if (n && "{" === n.text[0])
                    i = this.__patterns.handlebars_raw_close.read();
                  else if (
                    t.type === l.TAG_CLOSE &&
                    "<" === t.opened.text[0] &&
                    "/" !== t.text[0]
                  ) {
                    var r = t.opened.text.substr(1).toLowerCase();
                    if ("script" === r || "style" === r) {
                      var o = this._read_comment_or_cdata(e);
                      if (o) return (o.type = l.TEXT), o;
                      i = this._input.readUntil(
                        new RegExp("</" + r + "[\\n\\r\\t ]*?>", "ig")
                      );
                    } else
                      this._is_content_unformatted(r) &&
                        (i = this._input.readUntil(
                          new RegExp("</" + r + "[\\n\\r\\t ]*?>", "ig")
                        ));
                  }
                  return i ? this._create_token(l.TEXT, i) : null;
                }),
                (d.prototype._read_content_word = function (e) {
                  var t = "";
                  if (
                    (this._options.unformatted_content_delimiter &&
                      e === this._options.unformatted_content_delimiter[0] &&
                      (t =
                        this.__patterns.unformatted_content_delimiter.read()),
                    t || (t = this.__patterns.word.read()),
                    t)
                  )
                    return this._create_token(l.TEXT, t);
                }),
                (e.exports.Tokenizer = d),
                (e.exports.TOKEN = l);
            },
          ],
          t = {};
        var n = (function n(i) {
          var r = t[i];
          if (void 0 !== r) return r.exports;
          var o = (t[i] = {
            exports: {},
          });
          return e[i](o, o.exports, n), o.exports;
        })(18);
        o = n;
      })();
      var s = o;
      (i = [n, n(6), n(7)]),
        void 0 ===
          (r = function (e) {
            var t = n(6),
              i = n(7);
            return {
              html_beautify: function (e, n) {
                return s(e, n, t.js_beautify, i.css_beautify);
              },
            };
          }.apply(t, i)) || (e.exports = r);
    })();
  },
  function (e, t) {
    var n;
    ((n = jQuery).bootstrapGrowl = function (e, t) {
      t = n.extend({}, n.bootstrapGrowl.default_options, t);
      var i = n("<div>");
      i.attr("class", "bootstrap-growl alert"),
        t.type && i.addClass("alert-" + t.type),
        t.allow_dismiss &&
          i.append(
            '<a class="close" data-dismiss="alert" href="#">&times;</a>'
          ),
        i.append(e),
        t.top_offset &&
          (t.offset = {
            from: "top",
            amount: t.top_offset,
          });
      var r = n(".bootstrap-growl", t.ele);
      switch (
        ((offsetAmount = t.offset.amount),
        n.each(r, function () {
          offsetAmount =
            offsetAmount + n(this).outerHeight() + t.stackup_spacing;
        }),
        (css = {
          position: "absolute",
          margin: 0,
          "z-index": "9999",
          display: "none",
        }),
        (css[t.offset.from] = offsetAmount + "px"),
        i.css(css),
        "auto" !== t.width && i.css("width", t.width + "px"),
        n(t.ele).append(i),
        t.align)
      ) {
        case "center":
          i.css({
            left: "50%",
            "margin-left": "-" + i.outerWidth() / 2 + "px",
          });
          break;
        case "left":
          i.css("left", "20px");
          break;
        default:
          i.css("right", "20px");
      }
      i.fadeIn(),
        t.delay >= 0 &&
          i.delay(t.delay).fadeOut("slow", function () {
            n(this).remove();
          });
    }),
      (n.bootstrapGrowl.default_options = {
        ele: "body",
        type: null,
        offset: {
          from: "top",
          amount: 20,
        },
        align: "right",
        width: 250,
        delay: 4e3,
        allow_dismiss: !0,
        stackup_spacing: 10,
      });
  },
  function (e, t, n) {
    (function (t) {
      e.exports = (function () {
        "use strict";

        function e(e) {
          return e && "[object Function]" === {}.toString.call(e);
        }

        function n(e, t) {
          if (1 !== e.nodeType) return [];
          var n = e.ownerDocument.defaultView.getComputedStyle(e, null);
          return t ? n[t] : n;
        }

        function i(e) {
          return "HTML" === e.nodeName ? e : e.parentNode || e.host;
        }

        function r(e) {
          if (!e) return document.body;
          switch (e.nodeName) {
            case "HTML":
            case "BODY":
              return e.ownerDocument.body;
            case "#document":
              return e.body;
          }
          var t = n(e),
            o = t.overflow,
            s = t.overflowX,
            a = t.overflowY;
          return /(auto|scroll|overlay)/.test(o + a + s) ? e : r(i(e));
        }

        function o(e) {
          return 11 === e ? Y : 10 === e ? Z : Y || Z;
        }

        function s(e) {
          if (!e) return document.documentElement;
          for (
            var t = o(10) ? document.body : null, i = e.offsetParent || null;
            i === t && e.nextElementSibling;

          )
            i = (e = e.nextElementSibling).offsetParent;
          var r = i && i.nodeName;
          return r && "BODY" !== r && "HTML" !== r
            ? -1 !== ["TH", "TD", "TABLE"].indexOf(i.nodeName) &&
              "static" === n(i, "position")
              ? s(i)
              : i
            : e
            ? e.ownerDocument.documentElement
            : document.documentElement;
        }

        function a(e) {
          return null === e.parentNode ? e : a(e.parentNode);
        }

        function l(e, t) {
          if (!(e && e.nodeType && t && t.nodeType))
            return document.documentElement;
          var n =
              e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
            i = n ? e : t,
            r = n ? t : e,
            o = document.createRange();
          o.setStart(i, 0), o.setEnd(r, 0);
          var c = o.commonAncestorContainer;
          if ((e !== c && t !== c) || i.contains(r))
            return (function (e) {
              var t = e.nodeName;
              return (
                "BODY" !== t && ("HTML" === t || s(e.firstElementChild) === e)
              );
            })(c)
              ? c
              : s(c);
          var d = a(e);
          return d.host ? l(d.host, t) : l(e, a(t).host);
        }

        function c(e) {
          var t =
              1 < arguments.length && void 0 !== arguments[1]
                ? arguments[1]
                : "top",
            n = "top" === t ? "scrollTop" : "scrollLeft",
            i = e.nodeName;
          if ("BODY" === i || "HTML" === i) {
            var r = e.ownerDocument.documentElement,
              o = e.ownerDocument.scrollingElement || r;
            return o[n];
          }
          return e[n];
        }

        function d(e, t) {
          var n =
              2 < arguments.length && void 0 !== arguments[2] && arguments[2],
            i = c(t, "top"),
            r = c(t, "left"),
            o = n ? -1 : 1;
          return (
            (e.top += i * o),
            (e.bottom += i * o),
            (e.left += r * o),
            (e.right += r * o),
            e
          );
        }

        function u(e, t) {
          var n = "x" === t ? "Left" : "Top",
            i = "Left" == n ? "Right" : "Bottom";
          return (
            parseFloat(e["border" + n + "Width"], 10) +
            parseFloat(e["border" + i + "Width"], 10)
          );
        }

        function h(e, t, n, i) {
          return Q(
            t["offset" + e],
            t["scroll" + e],
            n["client" + e],
            n["offset" + e],
            n["scroll" + e],
            o(10)
              ? parseInt(n["offset" + e]) +
                  parseInt(i["margin" + ("Height" === e ? "Top" : "Left")]) +
                  parseInt(i["margin" + ("Height" === e ? "Bottom" : "Right")])
              : 0
          );
        }

        function g(e) {
          var t = e.body,
            n = e.documentElement,
            i = o(10) && getComputedStyle(n);
          return {
            height: h("Height", t, n, i),
            width: h("Width", t, n, i),
          };
        }

        function p(e) {
          return ne({}, e, {
            right: e.left + e.width,
            bottom: e.top + e.height,
          });
        }

        function A(e) {
          var t = {};
          try {
            if (o(10)) {
              t = e.getBoundingClientRect();
              var i = c(e, "top"),
                r = c(e, "left");
              (t.top += i), (t.left += r), (t.bottom += i), (t.right += r);
            } else t = e.getBoundingClientRect();
          } catch (e) {}
          var s = {
              left: t.left,
              top: t.top,
              width: t.right - t.left,
              height: t.bottom - t.top,
            },
            a = "HTML" === e.nodeName ? g(e.ownerDocument) : {},
            l = a.width || e.clientWidth || s.right - s.left,
            d = a.height || e.clientHeight || s.bottom - s.top,
            h = e.offsetWidth - l,
            A = e.offsetHeight - d;
          if (h || A) {
            var f = n(e);
            (h -= u(f, "x")), (A -= u(f, "y")), (s.width -= h), (s.height -= A);
          }
          return p(s);
        }

        function f(e, t) {
          var i =
              2 < arguments.length && void 0 !== arguments[2] && arguments[2],
            s = o(10),
            a = "HTML" === t.nodeName,
            l = A(e),
            c = A(t),
            u = r(e),
            h = n(t),
            g = parseFloat(h.borderTopWidth, 10),
            f = parseFloat(h.borderLeftWidth, 10);
          i && a && ((c.top = Q(c.top, 0)), (c.left = Q(c.left, 0)));
          var m = p({
            top: l.top - c.top - g,
            left: l.left - c.left - f,
            width: l.width,
            height: l.height,
          });
          if (((m.marginTop = 0), (m.marginLeft = 0), !s && a)) {
            var v = parseFloat(h.marginTop, 10),
              b = parseFloat(h.marginLeft, 10);
            (m.top -= g - v),
              (m.bottom -= g - v),
              (m.left -= f - b),
              (m.right -= f - b),
              (m.marginTop = v),
              (m.marginLeft = b);
          }
          return (
            (s && !i ? t.contains(u) : t === u && "BODY" !== u.nodeName) &&
              (m = d(m, t)),
            m
          );
        }

        function m(e) {
          var t =
              1 < arguments.length && void 0 !== arguments[1] && arguments[1],
            n = e.ownerDocument.documentElement,
            i = f(e, n),
            r = Q(n.clientWidth, window.innerWidth || 0),
            o = Q(n.clientHeight, window.innerHeight || 0),
            s = t ? 0 : c(n),
            a = t ? 0 : c(n, "left"),
            l = {
              top: s - i.top + i.marginTop,
              left: a - i.left + i.marginLeft,
              width: r,
              height: o,
            };
          return p(l);
        }

        function v(e) {
          var t = e.nodeName;
          if ("BODY" === t || "HTML" === t) return !1;
          if ("fixed" === n(e, "position")) return !0;
          var r = i(e);
          return !!r && v(r);
        }

        function b(e) {
          if (!e || !e.parentElement || o()) return document.documentElement;
          for (var t = e.parentElement; t && "none" === n(t, "transform"); )
            t = t.parentElement;
          return t || document.documentElement;
        }

        function w(e, t, n, o) {
          var s =
              4 < arguments.length && void 0 !== arguments[4] && arguments[4],
            a = {
              top: 0,
              left: 0,
            },
            c = s ? b(e) : l(e, t);
          if ("viewport" === o) a = m(c, s);
          else {
            var d;
            "scrollParent" === o
              ? "BODY" === (d = r(i(t))).nodeName &&
                (d = e.ownerDocument.documentElement)
              : (d = "window" === o ? e.ownerDocument.documentElement : o);
            var u = f(d, c, s);
            if ("HTML" !== d.nodeName || v(c)) a = u;
            else {
              var h = g(e.ownerDocument),
                p = h.height,
                A = h.width;
              (a.top += u.top - u.marginTop),
                (a.bottom = p + u.top),
                (a.left += u.left - u.marginLeft),
                (a.right = A + u.left);
            }
          }
          var w = "number" == typeof (n = n || 0);
          return (
            (a.left += w ? n : n.left || 0),
            (a.top += w ? n : n.top || 0),
            (a.right -= w ? n : n.right || 0),
            (a.bottom -= w ? n : n.bottom || 0),
            a
          );
        }

        function y(e) {
          return e.width * e.height;
        }

        function x(e, t, n, i, r) {
          var o =
            5 < arguments.length && void 0 !== arguments[5] ? arguments[5] : 0;
          if (-1 === e.indexOf("auto")) return e;
          var s = w(n, i, o, r),
            a = {
              top: {
                width: s.width,
                height: t.top - s.top,
              },
              right: {
                width: s.right - t.right,
                height: s.height,
              },
              bottom: {
                width: s.width,
                height: s.bottom - t.bottom,
              },
              left: {
                width: t.left - s.left,
                height: s.height,
              },
            },
            l = Object.keys(a)
              .map(function (e) {
                return ne(
                  {
                    key: e,
                  },
                  a[e],
                  {
                    area: y(a[e]),
                  }
                );
              })
              .sort(function (e, t) {
                return t.area - e.area;
              }),
            c = l.filter(function (e) {
              var t = e.width,
                i = e.height;
              return t >= n.clientWidth && i >= n.clientHeight;
            }),
            d = 0 < c.length ? c[0].key : l[0].key,
            u = e.split("-")[1];
          return d + (u ? "-" + u : "");
        }

        function C(e, t, n) {
          var i =
              3 < arguments.length && void 0 !== arguments[3]
                ? arguments[3]
                : null,
            r = i ? b(t) : l(t, n);
          return f(n, r, i);
        }

        function k(e) {
          var t = e.ownerDocument.defaultView.getComputedStyle(e),
            n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0),
            i = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0);
          return {
            width: e.offsetWidth + i,
            height: e.offsetHeight + n,
          };
        }

        function _(e) {
          var t = {
            left: "right",
            right: "left",
            bottom: "top",
            top: "bottom",
          };
          return e.replace(/left|right|bottom|top/g, function (e) {
            return t[e];
          });
        }

        function I(e, t, n) {
          n = n.split("-")[0];
          var i = k(e),
            r = {
              width: i.width,
              height: i.height,
            },
            o = -1 !== ["right", "left"].indexOf(n),
            s = o ? "top" : "left",
            a = o ? "left" : "top",
            l = o ? "height" : "width",
            c = o ? "width" : "height";
          return (
            (r[s] = t[s] + t[l] / 2 - i[l] / 2),
            (r[a] = n === a ? t[a] - i[c] : t[_(a)]),
            r
          );
        }

        function E(e, t) {
          return Array.prototype.find ? e.find(t) : e.filter(t)[0];
        }

        function T(t, n, i) {
          return (
            (void 0 === i
              ? t
              : t.slice(
                  0,
                  (function (e, t, n) {
                    if (Array.prototype.findIndex)
                      return e.findIndex(function (e) {
                        return e[t] === n;
                      });
                    var i = E(e, function (e) {
                      return e[t] === n;
                    });
                    return e.indexOf(i);
                  })(t, "name", i)
                )
            ).forEach(function (t) {
              t.function &&
                console.warn(
                  "`modifier.function` is deprecated, use `modifier.fn`!"
                );
              var i = t.function || t.fn;
              t.enabled &&
                e(i) &&
                ((n.offsets.popper = p(n.offsets.popper)),
                (n.offsets.reference = p(n.offsets.reference)),
                (n = i(n, t)));
            }),
            n
          );
        }

        function S() {
          if (!this.state.isDestroyed) {
            var e = {
              instance: this,
              styles: {},
              arrowStyles: {},
              attributes: {},
              flipped: !1,
              offsets: {},
            };
            (e.offsets.reference = C(
              this.state,
              this.popper,
              this.reference,
              this.options.positionFixed
            )),
              (e.placement = x(
                this.options.placement,
                e.offsets.reference,
                this.popper,
                this.reference,
                this.options.modifiers.flip.boundariesElement,
                this.options.modifiers.flip.padding
              )),
              (e.originalPlacement = e.placement),
              (e.positionFixed = this.options.positionFixed),
              (e.offsets.popper = I(
                this.popper,
                e.offsets.reference,
                e.placement
              )),
              (e.offsets.popper.position = this.options.positionFixed
                ? "fixed"
                : "absolute"),
              (e = T(this.modifiers, e)),
              this.state.isCreated
                ? this.options.onUpdate(e)
                : ((this.state.isCreated = !0), this.options.onCreate(e));
          }
        }

        function L(e, t) {
          return e.some(function (e) {
            var n = e.name;
            return e.enabled && n === t;
          });
        }

        function j(e) {
          for (
            var t = [!1, "ms", "Webkit", "Moz", "O"],
              n = e.charAt(0).toUpperCase() + e.slice(1),
              i = 0;
            i < t.length;
            i++
          ) {
            var r = t[i],
              o = r ? "" + r + n : e;
            if (void 0 !== document.body.style[o]) return o;
          }
          return null;
        }

        function R() {
          return (
            (this.state.isDestroyed = !0),
            L(this.modifiers, "applyStyle") &&
              (this.popper.removeAttribute("x-placement"),
              (this.popper.style.position = ""),
              (this.popper.style.top = ""),
              (this.popper.style.left = ""),
              (this.popper.style.right = ""),
              (this.popper.style.bottom = ""),
              (this.popper.style.willChange = ""),
              (this.popper.style[j("transform")] = "")),
            this.disableEventListeners(),
            this.options.removeOnDestroy &&
              this.popper.parentNode.removeChild(this.popper),
            this
          );
        }

        function B(e) {
          var t = e.ownerDocument;
          return t ? t.defaultView : window;
        }

        function M(e, t, n, i) {
          (n.updateBound = i),
            B(e).addEventListener("resize", n.updateBound, {
              passive: !0,
            });
          var o = r(e);
          return (
            (function e(t, n, i, o) {
              var s = "BODY" === t.nodeName,
                a = s ? t.ownerDocument.defaultView : t;
              a.addEventListener(n, i, {
                passive: !0,
              }),
                s || e(r(a.parentNode), n, i, o),
                o.push(a);
            })(o, "scroll", n.updateBound, n.scrollParents),
            (n.scrollElement = o),
            (n.eventsEnabled = !0),
            n
          );
        }

        function D() {
          this.state.eventsEnabled ||
            (this.state = M(
              this.reference,
              this.options,
              this.state,
              this.scheduleUpdate
            ));
        }

        function O() {
          this.state.eventsEnabled &&
            (cancelAnimationFrame(this.scheduleUpdate),
            (this.state = (function (e, t) {
              return (
                B(e).removeEventListener("resize", t.updateBound),
                t.scrollParents.forEach(function (e) {
                  e.removeEventListener("scroll", t.updateBound);
                }),
                (t.updateBound = null),
                (t.scrollParents = []),
                (t.scrollElement = null),
                (t.eventsEnabled = !1),
                t
              );
            })(this.reference, this.state)));
        }

        function H(e) {
          return "" !== e && !isNaN(parseFloat(e)) && isFinite(e);
        }

        function W(e, t) {
          Object.keys(t).forEach(function (n) {
            var i = "";
            -1 !==
              ["width", "height", "top", "right", "bottom", "left"].indexOf(
                n
              ) &&
              H(t[n]) &&
              (i = "px"),
              (e.style[n] = t[n] + i);
          });
        }

        function P(e, t, n) {
          var i = E(e, function (e) {
              return e.name === t;
            }),
            r =
              !!i &&
              e.some(function (e) {
                return e.name === n && e.enabled && e.order < i.order;
              });
          if (!r) {
            var o = "`" + t + "`";
            console.warn(
              "`" +
                n +
                "` modifier is required by " +
                o +
                " modifier in order to work, be sure to include it before " +
                o +
                "!"
            );
          }
          return r;
        }

        function N(e) {
          var t =
              1 < arguments.length && void 0 !== arguments[1] && arguments[1],
            n = oe.indexOf(e),
            i = oe.slice(n + 1).concat(oe.slice(0, n));
          return t ? i.reverse() : i;
        }

        function q(e, t, n, i) {
          var r = [0, 0],
            o = -1 !== ["right", "left"].indexOf(i),
            s = e.split(/(\+|\-)/).map(function (e) {
              return e.trim();
            }),
            a = s.indexOf(
              E(s, function (e) {
                return -1 !== e.search(/,|\s/);
              })
            );
          s[a] &&
            -1 === s[a].indexOf(",") &&
            console.warn(
              "Offsets separated by white space(s) are deprecated, use a comma (,) instead."
            );
          var l = /\s*,\s*|\s+/,
            c =
              -1 === a
                ? [s]
                : [
                    s.slice(0, a).concat([s[a].split(l)[0]]),
                    [s[a].split(l)[1]].concat(s.slice(a + 1)),
                  ];
          return (
            (c = c.map(function (e, i) {
              var r = (1 === i ? !o : o) ? "height" : "width",
                s = !1;
              return e
                .reduce(function (e, t) {
                  return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t)
                    ? ((e[e.length - 1] = t), (s = !0), e)
                    : s
                    ? ((e[e.length - 1] += t), (s = !1), e)
                    : e.concat(t);
                }, [])
                .map(function (e) {
                  return (function (e, t, n, i) {
                    var r = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
                      o = +r[1],
                      s = r[2];
                    if (!o) return e;
                    if (0 === s.indexOf("%")) {
                      var a;
                      switch (s) {
                        case "%p":
                          a = n;
                          break;
                        case "%":
                        case "%r":
                        default:
                          a = i;
                      }
                      return (p(a)[t] / 100) * o;
                    }
                    return "vh" === s || "vw" === s
                      ? (("vh" === s
                          ? Q(
                              document.documentElement.clientHeight,
                              window.innerHeight || 0
                            )
                          : Q(
                              document.documentElement.clientWidth,
                              window.innerWidth || 0
                            )) /
                          100) *
                          o
                      : o;
                  })(e, r, t, n);
                });
            })).forEach(function (e, t) {
              e.forEach(function (n, i) {
                H(n) && (r[t] += n * ("-" === e[i - 1] ? -1 : 1));
              });
            }),
            r
          );
        }
        for (
          var z = Math.min,
            V = Math.floor,
            F = Math.round,
            Q = Math.max,
            U = "undefined" != typeof window && "undefined" != typeof document,
            K = ["Edge", "Trident", "Firefox"],
            X = 0,
            G = 0;
          G < K.length;
          G += 1
        )
          if (U && 0 <= navigator.userAgent.indexOf(K[G])) {
            X = 1;
            break;
          }
        var J =
            U && window.Promise
              ? function (e) {
                  var t = !1;
                  return function () {
                    t ||
                      ((t = !0),
                      window.Promise.resolve().then(function () {
                        (t = !1), e();
                      }));
                  };
                }
              : function (e) {
                  var t = !1;
                  return function () {
                    t ||
                      ((t = !0),
                      setTimeout(function () {
                        (t = !1), e();
                      }, X));
                  };
                },
          Y = U && !(!window.MSInputMethodContext || !document.documentMode),
          Z = U && /MSIE 10/.test(navigator.userAgent),
          $ = function (e, t) {
            if (!(e instanceof t))
              throw new TypeError("Cannot call a class as a function");
          },
          ee = (function () {
            function e(e, t) {
              for (var n, i = 0; i < t.length; i++)
                ((n = t[i]).enumerable = n.enumerable || !1),
                  (n.configurable = !0),
                  "value" in n && (n.writable = !0),
                  Object.defineProperty(e, n.key, n);
            }
            return function (t, n, i) {
              return n && e(t.prototype, n), i && e(t, i), t;
            };
          })(),
          te = function (e, t, n) {
            return (
              t in e
                ? Object.defineProperty(e, t, {
                    value: n,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0,
                  })
                : (e[t] = n),
              e
            );
          },
          ne =
            Object.assign ||
            function (e) {
              for (var t, n = 1; n < arguments.length; n++)
                for (var i in (t = arguments[n]))
                  Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
              return e;
            },
          ie = U && /Firefox/i.test(navigator.userAgent),
          re = [
            "auto-start",
            "auto",
            "auto-end",
            "top-start",
            "top",
            "top-end",
            "right-start",
            "right",
            "right-end",
            "bottom-end",
            "bottom",
            "bottom-start",
            "left-end",
            "left",
            "left-start",
          ],
          oe = re.slice(3),
          se = "flip",
          ae = "clockwise",
          le = "counterclockwise",
          ce = (function () {
            function t(n, i) {
              var r = this,
                o =
                  2 < arguments.length && void 0 !== arguments[2]
                    ? arguments[2]
                    : {};
              $(this, t),
                (this.scheduleUpdate = function () {
                  return requestAnimationFrame(r.update);
                }),
                (this.update = J(this.update.bind(this))),
                (this.options = ne({}, t.Defaults, o)),
                (this.state = {
                  isDestroyed: !1,
                  isCreated: !1,
                  scrollParents: [],
                }),
                (this.reference = n && n.jquery ? n[0] : n),
                (this.popper = i && i.jquery ? i[0] : i),
                (this.options.modifiers = {}),
                Object.keys(ne({}, t.Defaults.modifiers, o.modifiers)).forEach(
                  function (e) {
                    r.options.modifiers[e] = ne(
                      {},
                      t.Defaults.modifiers[e] || {},
                      o.modifiers ? o.modifiers[e] : {}
                    );
                  }
                ),
                (this.modifiers = Object.keys(this.options.modifiers)
                  .map(function (e) {
                    return ne(
                      {
                        name: e,
                      },
                      r.options.modifiers[e]
                    );
                  })
                  .sort(function (e, t) {
                    return e.order - t.order;
                  })),
                this.modifiers.forEach(function (t) {
                  t.enabled &&
                    e(t.onLoad) &&
                    t.onLoad(r.reference, r.popper, r.options, t, r.state);
                }),
                this.update();
              var s = this.options.eventsEnabled;
              s && this.enableEventListeners(), (this.state.eventsEnabled = s);
            }
            return (
              ee(t, [
                {
                  key: "update",
                  value: function () {
                    return S.call(this);
                  },
                },
                {
                  key: "destroy",
                  value: function () {
                    return R.call(this);
                  },
                },
                {
                  key: "enableEventListeners",
                  value: function () {
                    return D.call(this);
                  },
                },
                {
                  key: "disableEventListeners",
                  value: function () {
                    return O.call(this);
                  },
                },
              ]),
              t
            );
          })();
        return (
          (ce.Utils = ("undefined" == typeof window ? t : window).PopperUtils),
          (ce.placements = re),
          (ce.Defaults = {
            placement: "bottom",
            positionFixed: !1,
            eventsEnabled: !0,
            removeOnDestroy: !1,
            onCreate: function () {},
            onUpdate: function () {},
            modifiers: {
              shift: {
                order: 100,
                enabled: !0,
                fn: function (e) {
                  var t = e.placement,
                    n = t.split("-")[0],
                    i = t.split("-")[1];
                  if (i) {
                    var r = e.offsets,
                      o = r.reference,
                      s = r.popper,
                      a = -1 !== ["bottom", "top"].indexOf(n),
                      l = a ? "left" : "top",
                      c = a ? "width" : "height",
                      d = {
                        start: te({}, l, o[l]),
                        end: te({}, l, o[l] + o[c] - s[c]),
                      };
                    e.offsets.popper = ne({}, s, d[i]);
                  }
                  return e;
                },
              },
              offset: {
                order: 200,
                enabled: !0,
                fn: function (e, t) {
                  var n,
                    i = t.offset,
                    r = e.placement,
                    o = e.offsets,
                    s = o.popper,
                    a = o.reference,
                    l = r.split("-")[0];
                  return (
                    (n = H(+i) ? [+i, 0] : q(i, s, a, l)),
                    "left" === l
                      ? ((s.top += n[0]), (s.left -= n[1]))
                      : "right" === l
                      ? ((s.top += n[0]), (s.left += n[1]))
                      : "top" === l
                      ? ((s.left += n[0]), (s.top -= n[1]))
                      : "bottom" === l && ((s.left += n[0]), (s.top += n[1])),
                    (e.popper = s),
                    e
                  );
                },
                offset: 0,
              },
              preventOverflow: {
                order: 300,
                enabled: !0,
                fn: function (e, t) {
                  var n = t.boundariesElement || s(e.instance.popper);
                  e.instance.reference === n && (n = s(n));
                  var i = j("transform"),
                    r = e.instance.popper.style,
                    o = r.top,
                    a = r.left,
                    l = r[i];
                  (r.top = ""), (r.left = ""), (r[i] = "");
                  var c = w(
                    e.instance.popper,
                    e.instance.reference,
                    t.padding,
                    n,
                    e.positionFixed
                  );
                  (r.top = o), (r.left = a), (r[i] = l), (t.boundaries = c);
                  var d = t.priority,
                    u = e.offsets.popper,
                    h = {
                      primary: function (e) {
                        var n = u[e];
                        return (
                          u[e] < c[e] &&
                            !t.escapeWithReference &&
                            (n = Q(u[e], c[e])),
                          te({}, e, n)
                        );
                      },
                      secondary: function (e) {
                        var n = "right" === e ? "left" : "top",
                          i = u[n];
                        return (
                          u[e] > c[e] &&
                            !t.escapeWithReference &&
                            (i = z(
                              u[n],
                              c[e] - ("right" === e ? u.width : u.height)
                            )),
                          te({}, n, i)
                        );
                      },
                    };
                  return (
                    d.forEach(function (e) {
                      var t =
                        -1 === ["left", "top"].indexOf(e)
                          ? "secondary"
                          : "primary";
                      u = ne({}, u, h[t](e));
                    }),
                    (e.offsets.popper = u),
                    e
                  );
                },
                priority: ["left", "right", "top", "bottom"],
                padding: 5,
                boundariesElement: "scrollParent",
              },
              keepTogether: {
                order: 400,
                enabled: !0,
                fn: function (e) {
                  var t = e.offsets,
                    n = t.popper,
                    i = t.reference,
                    r = e.placement.split("-")[0],
                    o = V,
                    s = -1 !== ["top", "bottom"].indexOf(r),
                    a = s ? "right" : "bottom",
                    l = s ? "left" : "top",
                    c = s ? "width" : "height";
                  return (
                    n[a] < o(i[l]) && (e.offsets.popper[l] = o(i[l]) - n[c]),
                    n[l] > o(i[a]) && (e.offsets.popper[l] = o(i[a])),
                    e
                  );
                },
              },
              arrow: {
                order: 500,
                enabled: !0,
                fn: function (e, t) {
                  var i;
                  if (!P(e.instance.modifiers, "arrow", "keepTogether"))
                    return e;
                  var r = t.element;
                  if ("string" == typeof r) {
                    if (!(r = e.instance.popper.querySelector(r))) return e;
                  } else if (!e.instance.popper.contains(r))
                    return (
                      console.warn(
                        "WARNING: `arrow.element` must be child of its popper element!"
                      ),
                      e
                    );
                  var o = e.placement.split("-")[0],
                    s = e.offsets,
                    a = s.popper,
                    l = s.reference,
                    c = -1 !== ["left", "right"].indexOf(o),
                    d = c ? "height" : "width",
                    u = c ? "Top" : "Left",
                    h = u.toLowerCase(),
                    g = c ? "left" : "top",
                    A = c ? "bottom" : "right",
                    f = k(r)[d];
                  l[A] - f < a[h] && (e.offsets.popper[h] -= a[h] - (l[A] - f)),
                    l[h] + f > a[A] && (e.offsets.popper[h] += l[h] + f - a[A]),
                    (e.offsets.popper = p(e.offsets.popper));
                  var m = l[h] + l[d] / 2 - f / 2,
                    v = n(e.instance.popper),
                    b = parseFloat(v["margin" + u], 10),
                    w = parseFloat(v["border" + u + "Width"], 10),
                    y = m - e.offsets.popper[h] - b - w;
                  return (
                    (y = Q(z(a[d] - f, y), 0)),
                    (e.arrowElement = r),
                    (e.offsets.arrow =
                      (te((i = {}), h, F(y)), te(i, g, ""), i)),
                    e
                  );
                },
                element: "[x-arrow]",
              },
              flip: {
                order: 600,
                enabled: !0,
                fn: function (e, t) {
                  if (L(e.instance.modifiers, "inner")) return e;
                  if (e.flipped && e.placement === e.originalPlacement)
                    return e;
                  var n = w(
                      e.instance.popper,
                      e.instance.reference,
                      t.padding,
                      t.boundariesElement,
                      e.positionFixed
                    ),
                    i = e.placement.split("-")[0],
                    r = _(i),
                    o = e.placement.split("-")[1] || "",
                    s = [];
                  switch (t.behavior) {
                    case se:
                      s = [i, r];
                      break;
                    case ae:
                      s = N(i);
                      break;
                    case le:
                      s = N(i, !0);
                      break;
                    default:
                      s = t.behavior;
                  }
                  return (
                    s.forEach(function (a, l) {
                      if (i !== a || s.length === l + 1) return e;
                      (i = e.placement.split("-")[0]), (r = _(i));
                      var c = e.offsets.popper,
                        d = e.offsets.reference,
                        u = V,
                        h =
                          ("left" === i && u(c.right) > u(d.left)) ||
                          ("right" === i && u(c.left) < u(d.right)) ||
                          ("top" === i && u(c.bottom) > u(d.top)) ||
                          ("bottom" === i && u(c.top) < u(d.bottom)),
                        g = u(c.left) < u(n.left),
                        p = u(c.right) > u(n.right),
                        A = u(c.top) < u(n.top),
                        f = u(c.bottom) > u(n.bottom),
                        m =
                          ("left" === i && g) ||
                          ("right" === i && p) ||
                          ("top" === i && A) ||
                          ("bottom" === i && f),
                        v = -1 !== ["top", "bottom"].indexOf(i),
                        b =
                          !!t.flipVariations &&
                          ((v && "start" === o && g) ||
                            (v && "end" === o && p) ||
                            (!v && "start" === o && A) ||
                            (!v && "end" === o && f));
                      (h || m || b) &&
                        ((e.flipped = !0),
                        (h || m) && (i = s[l + 1]),
                        b &&
                          (o = (function (e) {
                            return "end" === e
                              ? "start"
                              : "start" === e
                              ? "end"
                              : e;
                          })(o)),
                        (e.placement = i + (o ? "-" + o : "")),
                        (e.offsets.popper = ne(
                          {},
                          e.offsets.popper,
                          I(e.instance.popper, e.offsets.reference, e.placement)
                        )),
                        (e = T(e.instance.modifiers, e, "flip")));
                    }),
                    e
                  );
                },
                behavior: "flip",
                padding: 5,
                boundariesElement: "viewport",
              },
              inner: {
                order: 700,
                enabled: !1,
                fn: function (e) {
                  var t = e.placement,
                    n = t.split("-")[0],
                    i = e.offsets,
                    r = i.popper,
                    o = i.reference,
                    s = -1 !== ["left", "right"].indexOf(n),
                    a = -1 === ["top", "left"].indexOf(n);
                  return (
                    (r[s ? "left" : "top"] =
                      o[n] - (a ? r[s ? "width" : "height"] : 0)),
                    (e.placement = _(t)),
                    (e.offsets.popper = p(r)),
                    e
                  );
                },
              },
              hide: {
                order: 800,
                enabled: !0,
                fn: function (e) {
                  if (!P(e.instance.modifiers, "hide", "preventOverflow"))
                    return e;
                  var t = e.offsets.reference,
                    n = E(e.instance.modifiers, function (e) {
                      return "preventOverflow" === e.name;
                    }).boundaries;
                  if (
                    t.bottom < n.top ||
                    t.left > n.right ||
                    t.top > n.bottom ||
                    t.right < n.left
                  ) {
                    if (!0 === e.hide) return e;
                    (e.hide = !0), (e.attributes["x-out-of-boundaries"] = "");
                  } else {
                    if (!1 === e.hide) return e;
                    (e.hide = !1), (e.attributes["x-out-of-boundaries"] = !1);
                  }
                  return e;
                },
              },
              computeStyle: {
                order: 850,
                enabled: !0,
                fn: function (e, t) {
                  var n = t.x,
                    i = t.y,
                    r = e.offsets.popper,
                    o = E(e.instance.modifiers, function (e) {
                      return "applyStyle" === e.name;
                    }).gpuAcceleration;
                  void 0 !== o &&
                    console.warn(
                      "WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"
                    );
                  var a,
                    l,
                    c = void 0 === o ? t.gpuAcceleration : o,
                    d = s(e.instance.popper),
                    u = A(d),
                    h = {
                      position: r.position,
                    },
                    g = (function (e, t) {
                      var n = e.offsets,
                        i = n.popper,
                        r = n.reference,
                        o = F,
                        s = function (e) {
                          return e;
                        },
                        a = o(r.width),
                        l = o(i.width),
                        c = -1 !== ["left", "right"].indexOf(e.placement),
                        d = -1 !== e.placement.indexOf("-"),
                        u = t ? (c || d || a % 2 == l % 2 ? o : V) : s,
                        h = t ? o : s;
                      return {
                        left: u(
                          1 == a % 2 && 1 == l % 2 && !d && t
                            ? i.left - 1
                            : i.left
                        ),
                        top: h(i.top),
                        bottom: h(i.bottom),
                        right: u(i.right),
                      };
                    })(e, 2 > window.devicePixelRatio || !ie),
                    p = "bottom" === n ? "top" : "bottom",
                    f = "right" === i ? "left" : "right",
                    m = j("transform");
                  if (
                    ((l =
                      "bottom" == p
                        ? "HTML" === d.nodeName
                          ? -d.clientHeight + g.bottom
                          : -u.height + g.bottom
                        : g.top),
                    (a =
                      "right" == f
                        ? "HTML" === d.nodeName
                          ? -d.clientWidth + g.right
                          : -u.width + g.right
                        : g.left),
                    c && m)
                  )
                    (h[m] = "translate3d(" + a + "px, " + l + "px, 0)"),
                      (h[p] = 0),
                      (h[f] = 0),
                      (h.willChange = "transform");
                  else {
                    var v = "bottom" == p ? -1 : 1,
                      b = "right" == f ? -1 : 1;
                    (h[p] = l * v),
                      (h[f] = a * b),
                      (h.willChange = p + ", " + f);
                  }
                  var w = {
                    "x-placement": e.placement,
                  };
                  return (
                    (e.attributes = ne({}, w, e.attributes)),
                    (e.styles = ne({}, h, e.styles)),
                    (e.arrowStyles = ne({}, e.offsets.arrow, e.arrowStyles)),
                    e
                  );
                },
                gpuAcceleration: !0,
                x: "bottom",
                y: "right",
              },
              applyStyle: {
                order: 900,
                enabled: !0,
                fn: function (e) {
                  return (
                    W(e.instance.popper, e.styles),
                    (function (e, t) {
                      Object.keys(t).forEach(function (n) {
                        !1 === t[n]
                          ? e.removeAttribute(n)
                          : e.setAttribute(n, t[n]);
                      });
                    })(e.instance.popper, e.attributes),
                    e.arrowElement &&
                      Object.keys(e.arrowStyles).length &&
                      W(e.arrowElement, e.arrowStyles),
                    e
                  );
                },
                onLoad: function (e, t, n, i, r) {
                  var o = C(r, t, e, n.positionFixed),
                    s = x(
                      n.placement,
                      o,
                      t,
                      e,
                      n.modifiers.flip.boundariesElement,
                      n.modifiers.flip.padding
                    );
                  return (
                    t.setAttribute("x-placement", s),
                    W(t, {
                      position: n.positionFixed ? "fixed" : "absolute",
                    }),
                    n
                  );
                },
                gpuAcceleration: void 0,
              },
            },
          }),
          ce
        );
      })();
    }).call(this, n(10));
  },
  function (e, t, n) {},
  function (e, t, n) {
    /*!
     * Bootstrap v4.3.1 (https://getbootstrap.com/)
     * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
     * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
     */
    !(function (e, t, n) {
      "use strict";

      function i(e, t) {
        for (var n = 0; n < t.length; n++) {
          var i = t[n];
          (i.enumerable = i.enumerable || !1),
            (i.configurable = !0),
            "value" in i && (i.writable = !0),
            Object.defineProperty(e, i.key, i);
        }
      }

      function r(e, t, n) {
        return t && i(e.prototype, t), n && i(e, n), e;
      }

      function o(e) {
        for (var t = 1; t < arguments.length; t++) {
          var n = null != arguments[t] ? arguments[t] : {},
            i = Object.keys(n);
          "function" == typeof Object.getOwnPropertySymbols &&
            (i = i.concat(
              Object.getOwnPropertySymbols(n).filter(function (e) {
                return Object.getOwnPropertyDescriptor(n, e).enumerable;
              })
            )),
            i.forEach(function (t) {
              var i, r, o;
              (i = e),
                (o = n[(r = t)]),
                r in i
                  ? Object.defineProperty(i, r, {
                      value: o,
                      enumerable: !0,
                      configurable: !0,
                      writable: !0,
                    })
                  : (i[r] = o);
            });
        }
        return e;
      }
      (t = t && t.hasOwnProperty("default") ? t.default : t),
        (n = n && n.hasOwnProperty("default") ? n.default : n);
      var s = "transitionend",
        a = {
          TRANSITION_END: "bsTransitionEnd",
          getUID: function (e) {
            for (
              ;
              (e += ~~(1e6 * Math.random())), document.getElementById(e);

            );
            return e;
          },
          getSelectorFromElement: function (e) {
            var t = e.getAttribute("data-target");
            if (!t || "#" === t) {
              var n = e.getAttribute("href");
              t = n && "#" !== n ? n.trim() : "";
            }
            try {
              return document.querySelector(t) ? t : null;
            } catch (e) {
              return null;
            }
          },
          getTransitionDurationFromElement: function (e) {
            if (!e) return 0;
            var n = t(e).css("transition-duration"),
              i = t(e).css("transition-delay"),
              r = parseFloat(n),
              o = parseFloat(i);
            return r || o
              ? ((n = n.split(",")[0]),
                (i = i.split(",")[0]),
                1e3 * (parseFloat(n) + parseFloat(i)))
              : 0;
          },
          reflow: function (e) {
            return e.offsetHeight;
          },
          triggerTransitionEnd: function (e) {
            t(e).trigger(s);
          },
          supportsTransitionEnd: function () {
            return Boolean(s);
          },
          isElement: function (e) {
            return (e[0] || e).nodeType;
          },
          typeCheckConfig: function (e, t, n) {
            for (var i in n)
              if (Object.prototype.hasOwnProperty.call(n, i)) {
                var r = n[i],
                  o = t[i],
                  s =
                    o && a.isElement(o)
                      ? "element"
                      : ((l = o),
                        {}.toString
                          .call(l)
                          .match(/\s([a-z]+)/i)[1]
                          .toLowerCase());
                if (!new RegExp(r).test(s))
                  throw new Error(
                    e.toUpperCase() +
                      ': Option "' +
                      i +
                      '" provided type "' +
                      s +
                      '" but expected type "' +
                      r +
                      '".'
                  );
              }
            var l;
          },
          findShadowRoot: function (e) {
            if (!document.documentElement.attachShadow) return null;
            if ("function" != typeof e.getRootNode)
              return e instanceof ShadowRoot
                ? e
                : e.parentNode
                ? a.findShadowRoot(e.parentNode)
                : null;
            var t = e.getRootNode();
            return t instanceof ShadowRoot ? t : null;
          },
        };
      (t.fn.emulateTransitionEnd = function (e) {
        var n = this,
          i = !1;
        return (
          t(this).one(a.TRANSITION_END, function () {
            i = !0;
          }),
          setTimeout(function () {
            i || a.triggerTransitionEnd(n);
          }, e),
          this
        );
      }),
        (t.event.special[a.TRANSITION_END] = {
          bindType: s,
          delegateType: s,
          handle: function (e) {
            if (t(e.target).is(this))
              return e.handleObj.handler.apply(this, arguments);
          },
        });
      var l = "alert",
        c = "bs.alert",
        d = "." + c,
        u = t.fn[l],
        h = {
          CLOSE: "close" + d,
          CLOSED: "closed" + d,
          CLICK_DATA_API: "click" + d + ".data-api",
        },
        g = (function () {
          function e(e) {
            this._element = e;
          }
          var n = e.prototype;
          return (
            (n.close = function (e) {
              var t = this._element;
              e && (t = this._getRootElement(e)),
                this._triggerCloseEvent(t).isDefaultPrevented() ||
                  this._removeElement(t);
            }),
            (n.dispose = function () {
              t.removeData(this._element, c), (this._element = null);
            }),
            (n._getRootElement = function (e) {
              var n = a.getSelectorFromElement(e),
                i = !1;
              return (
                n && (i = document.querySelector(n)),
                i || (i = t(e).closest(".alert")[0]),
                i
              );
            }),
            (n._triggerCloseEvent = function (e) {
              var n = t.Event(h.CLOSE);
              return t(e).trigger(n), n;
            }),
            (n._removeElement = function (e) {
              var n = this;
              if ((t(e).removeClass("show"), t(e).hasClass("fade"))) {
                var i = a.getTransitionDurationFromElement(e);
                t(e)
                  .one(a.TRANSITION_END, function (t) {
                    return n._destroyElement(e, t);
                  })
                  .emulateTransitionEnd(i);
              } else this._destroyElement(e);
            }),
            (n._destroyElement = function (e) {
              t(e).detach().trigger(h.CLOSED).remove();
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this),
                  r = i.data(c);
                r || ((r = new e(this)), i.data(c, r)),
                  "close" === n && r[n](this);
              });
            }),
            (e._handleDismiss = function (e) {
              return function (t) {
                t && t.preventDefault(), e.close(this);
              };
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
            ]),
            e
          );
        })();
      t(document).on(
        h.CLICK_DATA_API,
        '[data-dismiss="alert"]',
        g._handleDismiss(new g())
      ),
        (t.fn[l] = g._jQueryInterface),
        (t.fn[l].Constructor = g),
        (t.fn[l].noConflict = function () {
          return (t.fn[l] = u), g._jQueryInterface;
        });
      var p = "button",
        A = "bs.button",
        f = "." + A,
        m = ".data-api",
        v = t.fn[p],
        b = "active",
        w = '[data-toggle^="button"]',
        y = ".btn",
        x = {
          CLICK_DATA_API: "click" + f + m,
          FOCUS_BLUR_DATA_API: "focus" + f + m + " blur" + f + m,
        },
        C = (function () {
          function e(e) {
            this._element = e;
          }
          var n = e.prototype;
          return (
            (n.toggle = function () {
              var e = !0,
                n = !0,
                i = t(this._element).closest('[data-toggle="buttons"]')[0];
              if (i) {
                var r = this._element.querySelector(
                  'input:not([type="hidden"])'
                );
                if (r) {
                  if ("radio" === r.type)
                    if (r.checked && this._element.classList.contains(b))
                      e = !1;
                    else {
                      var o = i.querySelector(".active");
                      o && t(o).removeClass(b);
                    }
                  if (e) {
                    if (
                      r.hasAttribute("disabled") ||
                      i.hasAttribute("disabled") ||
                      r.classList.contains("disabled") ||
                      i.classList.contains("disabled")
                    )
                      return;
                    (r.checked = !this._element.classList.contains(b)),
                      t(r).trigger("change");
                  }
                  r.focus(), (n = !1);
                }
              }
              n &&
                this._element.setAttribute(
                  "aria-pressed",
                  !this._element.classList.contains(b)
                ),
                e && t(this._element).toggleClass(b);
            }),
            (n.dispose = function () {
              t.removeData(this._element, A), (this._element = null);
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this).data(A);
                i || ((i = new e(this)), t(this).data(A, i)),
                  "toggle" === n && i[n]();
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
            ]),
            e
          );
        })();
      t(document)
        .on(x.CLICK_DATA_API, w, function (e) {
          e.preventDefault();
          var n = e.target;
          t(n).hasClass("btn") || (n = t(n).closest(y)),
            C._jQueryInterface.call(t(n), "toggle");
        })
        .on(x.FOCUS_BLUR_DATA_API, w, function (e) {
          var n = t(e.target).closest(y)[0];
          t(n).toggleClass("focus", /^focus(in)?$/.test(e.type));
        }),
        (t.fn[p] = C._jQueryInterface),
        (t.fn[p].Constructor = C),
        (t.fn[p].noConflict = function () {
          return (t.fn[p] = v), C._jQueryInterface;
        });
      var k = "carousel",
        _ = "bs.carousel",
        I = "." + _,
        E = ".data-api",
        T = t.fn[k],
        S = {
          interval: 5e3,
          keyboard: !0,
          slide: !1,
          pause: "hover",
          wrap: !0,
          touch: !0,
        },
        L = {
          interval: "(number|boolean)",
          keyboard: "boolean",
          slide: "(boolean|string)",
          pause: "(string|boolean)",
          wrap: "boolean",
          touch: "boolean",
        },
        j = "next",
        R = "prev",
        B = {
          SLIDE: "slide" + I,
          SLID: "slid" + I,
          KEYDOWN: "keydown" + I,
          MOUSEENTER: "mouseenter" + I,
          MOUSELEAVE: "mouseleave" + I,
          TOUCHSTART: "touchstart" + I,
          TOUCHMOVE: "touchmove" + I,
          TOUCHEND: "touchend" + I,
          POINTERDOWN: "pointerdown" + I,
          POINTERUP: "pointerup" + I,
          DRAG_START: "dragstart" + I,
          LOAD_DATA_API: "load" + I + E,
          CLICK_DATA_API: "click" + I + E,
        },
        M = "active",
        D = ".active.carousel-item",
        O = {
          TOUCH: "touch",
          PEN: "pen",
        },
        H = (function () {
          function e(e, t) {
            (this._items = null),
              (this._interval = null),
              (this._activeElement = null),
              (this._isPaused = !1),
              (this._isSliding = !1),
              (this.touchTimeout = null),
              (this.touchStartX = 0),
              (this.touchDeltaX = 0),
              (this._config = this._getConfig(t)),
              (this._element = e),
              (this._indicatorsElement = this._element.querySelector(
                ".carousel-indicators"
              )),
              (this._touchSupported =
                "ontouchstart" in document.documentElement ||
                0 < navigator.maxTouchPoints),
              (this._pointerEvent = Boolean(
                window.PointerEvent || window.MSPointerEvent
              )),
              this._addEventListeners();
          }
          var n = e.prototype;
          return (
            (n.next = function () {
              this._isSliding || this._slide(j);
            }),
            (n.nextWhenVisible = function () {
              !document.hidden &&
                t(this._element).is(":visible") &&
                "hidden" !== t(this._element).css("visibility") &&
                this.next();
            }),
            (n.prev = function () {
              this._isSliding || this._slide(R);
            }),
            (n.pause = function (e) {
              e || (this._isPaused = !0),
                this._element.querySelector(
                  ".carousel-item-next, .carousel-item-prev"
                ) && (a.triggerTransitionEnd(this._element), this.cycle(!0)),
                clearInterval(this._interval),
                (this._interval = null);
            }),
            (n.cycle = function (e) {
              e || (this._isPaused = !1),
                this._interval &&
                  (clearInterval(this._interval), (this._interval = null)),
                this._config.interval &&
                  !this._isPaused &&
                  (this._interval = setInterval(
                    (document.visibilityState
                      ? this.nextWhenVisible
                      : this.next
                    ).bind(this),
                    this._config.interval
                  ));
            }),
            (n.to = function (e) {
              var n = this;
              this._activeElement = this._element.querySelector(D);
              var i = this._getItemIndex(this._activeElement);
              if (!(e > this._items.length - 1 || e < 0))
                if (this._isSliding)
                  t(this._element).one(B.SLID, function () {
                    return n.to(e);
                  });
                else {
                  if (i === e) return this.pause(), void this.cycle();
                  var r = i < e ? j : R;
                  this._slide(r, this._items[e]);
                }
            }),
            (n.dispose = function () {
              t(this._element).off(I),
                t.removeData(this._element, _),
                (this._items = null),
                (this._config = null),
                (this._element = null),
                (this._interval = null),
                (this._isPaused = null),
                (this._isSliding = null),
                (this._activeElement = null),
                (this._indicatorsElement = null);
            }),
            (n._getConfig = function (e) {
              return (e = o({}, S, e)), a.typeCheckConfig(k, e, L), e;
            }),
            (n._handleSwipe = function () {
              var e = Math.abs(this.touchDeltaX);
              if (!(e <= 40)) {
                var t = e / this.touchDeltaX;
                0 < t && this.prev(), t < 0 && this.next();
              }
            }),
            (n._addEventListeners = function () {
              var e = this;
              this._config.keyboard &&
                t(this._element).on(B.KEYDOWN, function (t) {
                  return e._keydown(t);
                }),
                "hover" === this._config.pause &&
                  t(this._element)
                    .on(B.MOUSEENTER, function (t) {
                      return e.pause(t);
                    })
                    .on(B.MOUSELEAVE, function (t) {
                      return e.cycle(t);
                    }),
                this._config.touch && this._addTouchEventListeners();
            }),
            (n._addTouchEventListeners = function () {
              var e = this;
              if (this._touchSupported) {
                var n = function (t) {
                    e._pointerEvent &&
                    O[t.originalEvent.pointerType.toUpperCase()]
                      ? (e.touchStartX = t.originalEvent.clientX)
                      : e._pointerEvent ||
                        (e.touchStartX = t.originalEvent.touches[0].clientX);
                  },
                  i = function (t) {
                    e._pointerEvent &&
                      O[t.originalEvent.pointerType.toUpperCase()] &&
                      (e.touchDeltaX = t.originalEvent.clientX - e.touchStartX),
                      e._handleSwipe(),
                      "hover" === e._config.pause &&
                        (e.pause(),
                        e.touchTimeout && clearTimeout(e.touchTimeout),
                        (e.touchTimeout = setTimeout(function (t) {
                          return e.cycle(t);
                        }, 500 + e._config.interval)));
                  };
                t(this._element.querySelectorAll(".carousel-item img")).on(
                  B.DRAG_START,
                  function (e) {
                    return e.preventDefault();
                  }
                ),
                  this._pointerEvent
                    ? (t(this._element).on(B.POINTERDOWN, function (e) {
                        return n(e);
                      }),
                      t(this._element).on(B.POINTERUP, function (e) {
                        return i(e);
                      }),
                      this._element.classList.add("pointer-event"))
                    : (t(this._element).on(B.TOUCHSTART, function (e) {
                        return n(e);
                      }),
                      t(this._element).on(B.TOUCHMOVE, function (t) {
                        var n;
                        (n = t).originalEvent.touches &&
                        1 < n.originalEvent.touches.length
                          ? (e.touchDeltaX = 0)
                          : (e.touchDeltaX =
                              n.originalEvent.touches[0].clientX -
                              e.touchStartX);
                      }),
                      t(this._element).on(B.TOUCHEND, function (e) {
                        return i(e);
                      }));
              }
            }),
            (n._keydown = function (e) {
              if (!/input|textarea/i.test(e.target.tagName))
                switch (e.which) {
                  case 37:
                    e.preventDefault(), this.prev();
                    break;
                  case 39:
                    e.preventDefault(), this.next();
                }
            }),
            (n._getItemIndex = function (e) {
              return (
                (this._items =
                  e && e.parentNode
                    ? [].slice.call(
                        e.parentNode.querySelectorAll(".carousel-item")
                      )
                    : []),
                this._items.indexOf(e)
              );
            }),
            (n._getItemByDirection = function (e, t) {
              var n = e === j,
                i = e === R,
                r = this._getItemIndex(t),
                o = this._items.length - 1;
              if (((i && 0 === r) || (n && r === o)) && !this._config.wrap)
                return t;
              var s = (r + (e === R ? -1 : 1)) % this._items.length;
              return -1 === s
                ? this._items[this._items.length - 1]
                : this._items[s];
            }),
            (n._triggerSlideEvent = function (e, n) {
              var i = this._getItemIndex(e),
                r = this._getItemIndex(this._element.querySelector(D)),
                o = t.Event(B.SLIDE, {
                  relatedTarget: e,
                  direction: n,
                  from: r,
                  to: i,
                });
              return t(this._element).trigger(o), o;
            }),
            (n._setActiveIndicatorElement = function (e) {
              if (this._indicatorsElement) {
                var n = [].slice.call(
                  this._indicatorsElement.querySelectorAll(".active")
                );
                t(n).removeClass(M);
                var i = this._indicatorsElement.children[this._getItemIndex(e)];
                i && t(i).addClass(M);
              }
            }),
            (n._slide = function (e, n) {
              var i,
                r,
                o,
                s = this,
                l = this._element.querySelector(D),
                c = this._getItemIndex(l),
                d = n || (l && this._getItemByDirection(e, l)),
                u = this._getItemIndex(d),
                h = Boolean(this._interval);
              if (
                ((o =
                  e === j
                    ? ((i = "carousel-item-left"),
                      (r = "carousel-item-next"),
                      "left")
                    : ((i = "carousel-item-right"),
                      (r = "carousel-item-prev"),
                      "right")),
                d && t(d).hasClass(M))
              )
                this._isSliding = !1;
              else if (
                !this._triggerSlideEvent(d, o).isDefaultPrevented() &&
                l &&
                d
              ) {
                (this._isSliding = !0),
                  h && this.pause(),
                  this._setActiveIndicatorElement(d);
                var g = t.Event(B.SLID, {
                  relatedTarget: d,
                  direction: o,
                  from: c,
                  to: u,
                });
                if (t(this._element).hasClass("slide")) {
                  t(d).addClass(r),
                    a.reflow(d),
                    t(l).addClass(i),
                    t(d).addClass(i);
                  var p = parseInt(d.getAttribute("data-interval"), 10);
                  this._config.interval = p
                    ? ((this._config.defaultInterval =
                        this._config.defaultInterval || this._config.interval),
                      p)
                    : this._config.defaultInterval || this._config.interval;
                  var A = a.getTransitionDurationFromElement(l);
                  t(l)
                    .one(a.TRANSITION_END, function () {
                      t(d)
                        .removeClass(i + " " + r)
                        .addClass(M),
                        t(l).removeClass(M + " " + r + " " + i),
                        (s._isSliding = !1),
                        setTimeout(function () {
                          return t(s._element).trigger(g);
                        }, 0);
                    })
                    .emulateTransitionEnd(A);
                } else
                  t(l).removeClass(M),
                    t(d).addClass(M),
                    (this._isSliding = !1),
                    t(this._element).trigger(g);
                h && this.cycle();
              }
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this).data(_),
                  r = o({}, S, t(this).data());
                "object" == typeof n && (r = o({}, r, n));
                var s = "string" == typeof n ? n : r.slide;
                if (
                  (i || ((i = new e(this, r)), t(this).data(_, i)),
                  "number" == typeof n)
                )
                  i.to(n);
                else if ("string" == typeof s) {
                  if (void 0 === i[s])
                    throw new TypeError('No method named "' + s + '"');
                  i[s]();
                } else r.interval && r.ride && (i.pause(), i.cycle());
              });
            }),
            (e._dataApiClickHandler = function (n) {
              var i = a.getSelectorFromElement(this);
              if (i) {
                var r = t(i)[0];
                if (r && t(r).hasClass("carousel")) {
                  var s = o({}, t(r).data(), t(this).data()),
                    l = this.getAttribute("data-slide-to");
                  l && (s.interval = !1),
                    e._jQueryInterface.call(t(r), s),
                    l && t(r).data(_).to(l),
                    n.preventDefault();
                }
              }
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return S;
                },
              },
            ]),
            e
          );
        })();
      t(document).on(
        B.CLICK_DATA_API,
        "[data-slide], [data-slide-to]",
        H._dataApiClickHandler
      ),
        t(window).on(B.LOAD_DATA_API, function () {
          for (
            var e = [].slice.call(
                document.querySelectorAll('[data-ride="carousel"]')
              ),
              n = 0,
              i = e.length;
            n < i;
            n++
          ) {
            var r = t(e[n]);
            H._jQueryInterface.call(r, r.data());
          }
        }),
        (t.fn[k] = H._jQueryInterface),
        (t.fn[k].Constructor = H),
        (t.fn[k].noConflict = function () {
          return (t.fn[k] = T), H._jQueryInterface;
        });
      var W = "collapse",
        P = "bs.collapse",
        N = "." + P,
        q = t.fn[W],
        z = {
          toggle: !0,
          parent: "",
        },
        V = {
          toggle: "boolean",
          parent: "(string|element)",
        },
        F = {
          SHOW: "show" + N,
          SHOWN: "shown" + N,
          HIDE: "hide" + N,
          HIDDEN: "hidden" + N,
          CLICK_DATA_API: "click" + N + ".data-api",
        },
        Q = "show",
        U = "collapse",
        K = "collapsing",
        X = "collapsed",
        G = '[data-toggle="collapse"]',
        J = (function () {
          function e(e, t) {
            (this._isTransitioning = !1),
              (this._element = e),
              (this._config = this._getConfig(t)),
              (this._triggerArray = [].slice.call(
                document.querySelectorAll(
                  '[data-toggle="collapse"][href="#' +
                    e.id +
                    '"],[data-toggle="collapse"][data-target="#' +
                    e.id +
                    '"]'
                )
              ));
            for (
              var n = [].slice.call(document.querySelectorAll(G)),
                i = 0,
                r = n.length;
              i < r;
              i++
            ) {
              var o = n[i],
                s = a.getSelectorFromElement(o),
                l = [].slice
                  .call(document.querySelectorAll(s))
                  .filter(function (t) {
                    return t === e;
                  });
              null !== s &&
                0 < l.length &&
                ((this._selector = s), this._triggerArray.push(o));
            }
            (this._parent = this._config.parent ? this._getParent() : null),
              this._config.parent ||
                this._addAriaAndCollapsedClass(
                  this._element,
                  this._triggerArray
                ),
              this._config.toggle && this.toggle();
          }
          var n = e.prototype;
          return (
            (n.toggle = function () {
              t(this._element).hasClass(Q) ? this.hide() : this.show();
            }),
            (n.show = function () {
              var n,
                i,
                r = this;
              if (
                !(
                  this._isTransitioning ||
                  t(this._element).hasClass(Q) ||
                  (this._parent &&
                    0 ===
                      (n = [].slice
                        .call(
                          this._parent.querySelectorAll(".show, .collapsing")
                        )
                        .filter(function (e) {
                          return "string" == typeof r._config.parent
                            ? e.getAttribute("data-parent") === r._config.parent
                            : e.classList.contains(U);
                        })).length &&
                    (n = null),
                  n &&
                    (i = t(n).not(this._selector).data(P)) &&
                    i._isTransitioning)
                )
              ) {
                var o = t.Event(F.SHOW);
                if ((t(this._element).trigger(o), !o.isDefaultPrevented())) {
                  n &&
                    (e._jQueryInterface.call(t(n).not(this._selector), "hide"),
                    i || t(n).data(P, null));
                  var s = this._getDimension();
                  t(this._element).removeClass(U).addClass(K),
                    (this._element.style[s] = 0),
                    this._triggerArray.length &&
                      t(this._triggerArray)
                        .removeClass(X)
                        .attr("aria-expanded", !0),
                    this.setTransitioning(!0);
                  var l = "scroll" + (s[0].toUpperCase() + s.slice(1)),
                    c = a.getTransitionDurationFromElement(this._element);
                  t(this._element)
                    .one(a.TRANSITION_END, function () {
                      t(r._element).removeClass(K).addClass(U).addClass(Q),
                        (r._element.style[s] = ""),
                        r.setTransitioning(!1),
                        t(r._element).trigger(F.SHOWN);
                    })
                    .emulateTransitionEnd(c),
                    (this._element.style[s] = this._element[l] + "px");
                }
              }
            }),
            (n.hide = function () {
              var e = this;
              if (!this._isTransitioning && t(this._element).hasClass(Q)) {
                var n = t.Event(F.HIDE);
                if ((t(this._element).trigger(n), !n.isDefaultPrevented())) {
                  var i = this._getDimension();
                  (this._element.style[i] =
                    this._element.getBoundingClientRect()[i] + "px"),
                    a.reflow(this._element),
                    t(this._element).addClass(K).removeClass(U).removeClass(Q);
                  var r = this._triggerArray.length;
                  if (0 < r)
                    for (var o = 0; o < r; o++) {
                      var s = this._triggerArray[o],
                        l = a.getSelectorFromElement(s);
                      null !== l &&
                        (t(
                          [].slice.call(document.querySelectorAll(l))
                        ).hasClass(Q) ||
                          t(s).addClass(X).attr("aria-expanded", !1));
                    }
                  this.setTransitioning(!0), (this._element.style[i] = "");
                  var c = a.getTransitionDurationFromElement(this._element);
                  t(this._element)
                    .one(a.TRANSITION_END, function () {
                      e.setTransitioning(!1),
                        t(e._element)
                          .removeClass(K)
                          .addClass(U)
                          .trigger(F.HIDDEN);
                    })
                    .emulateTransitionEnd(c);
                }
              }
            }),
            (n.setTransitioning = function (e) {
              this._isTransitioning = e;
            }),
            (n.dispose = function () {
              t.removeData(this._element, P),
                (this._config = null),
                (this._parent = null),
                (this._element = null),
                (this._triggerArray = null),
                (this._isTransitioning = null);
            }),
            (n._getConfig = function (e) {
              return (
                ((e = o({}, z, e)).toggle = Boolean(e.toggle)),
                a.typeCheckConfig(W, e, V),
                e
              );
            }),
            (n._getDimension = function () {
              return t(this._element).hasClass("width") ? "width" : "height";
            }),
            (n._getParent = function () {
              var n,
                i = this;
              a.isElement(this._config.parent)
                ? ((n = this._config.parent),
                  void 0 !== this._config.parent.jquery &&
                    (n = this._config.parent[0]))
                : (n = document.querySelector(this._config.parent));
              var r =
                  '[data-toggle="collapse"][data-parent="' +
                  this._config.parent +
                  '"]',
                o = [].slice.call(n.querySelectorAll(r));
              return (
                t(o).each(function (t, n) {
                  i._addAriaAndCollapsedClass(e._getTargetFromElement(n), [n]);
                }),
                n
              );
            }),
            (n._addAriaAndCollapsedClass = function (e, n) {
              var i = t(e).hasClass(Q);
              n.length && t(n).toggleClass(X, !i).attr("aria-expanded", i);
            }),
            (e._getTargetFromElement = function (e) {
              var t = a.getSelectorFromElement(e);
              return t ? document.querySelector(t) : null;
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this),
                  r = i.data(P),
                  s = o({}, z, i.data(), "object" == typeof n && n ? n : {});
                if (
                  (!r && s.toggle && /show|hide/.test(n) && (s.toggle = !1),
                  r || ((r = new e(this, s)), i.data(P, r)),
                  "string" == typeof n)
                ) {
                  if (void 0 === r[n])
                    throw new TypeError('No method named "' + n + '"');
                  r[n]();
                }
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return z;
                },
              },
            ]),
            e
          );
        })();
      t(document).on(F.CLICK_DATA_API, G, function (e) {
        "A" === e.currentTarget.tagName && e.preventDefault();
        var n = t(this),
          i = a.getSelectorFromElement(this),
          r = [].slice.call(document.querySelectorAll(i));
        t(r).each(function () {
          var e = t(this),
            i = e.data(P) ? "toggle" : n.data();
          J._jQueryInterface.call(e, i);
        });
      }),
        (t.fn[W] = J._jQueryInterface),
        (t.fn[W].Constructor = J),
        (t.fn[W].noConflict = function () {
          return (t.fn[W] = q), J._jQueryInterface;
        });
      var Y = "dropdown",
        Z = "bs.dropdown",
        $ = "." + Z,
        ee = ".data-api",
        te = t.fn[Y],
        ne = new RegExp("38|40|27"),
        ie = {
          HIDE: "hide" + $,
          HIDDEN: "hidden" + $,
          SHOW: "show" + $,
          SHOWN: "shown" + $,
          CLICK: "click" + $,
          CLICK_DATA_API: "click" + $ + ee,
          KEYDOWN_DATA_API: "keydown" + $ + ee,
          KEYUP_DATA_API: "keyup" + $ + ee,
        },
        re = "disabled",
        oe = "show",
        se = "dropdown-menu-right",
        ae = '[data-toggle="dropdown"]',
        le = ".dropdown-menu",
        ce = {
          offset: 0,
          flip: !0,
          boundary: "scrollParent",
          reference: "toggle",
          display: "dynamic",
        },
        de = {
          offset: "(number|string|function)",
          flip: "boolean",
          boundary: "(string|element)",
          reference: "(string|element)",
          display: "string",
        },
        ue = (function () {
          function e(e, t) {
            (this._element = e),
              (this._popper = null),
              (this._config = this._getConfig(t)),
              (this._menu = this._getMenuElement()),
              (this._inNavbar = this._detectNavbar()),
              this._addEventListeners();
          }
          var i = e.prototype;
          return (
            (i.toggle = function () {
              if (!this._element.disabled && !t(this._element).hasClass(re)) {
                var i = e._getParentFromElement(this._element),
                  r = t(this._menu).hasClass(oe);
                if ((e._clearMenus(), !r)) {
                  var o = {
                      relatedTarget: this._element,
                    },
                    s = t.Event(ie.SHOW, o);
                  if ((t(i).trigger(s), !s.isDefaultPrevented())) {
                    if (!this._inNavbar) {
                      if (void 0 === n)
                        throw new TypeError(
                          "Bootstrap's dropdowns require Popper.js (https://popper.js.org/)"
                        );
                      var l = this._element;
                      "parent" === this._config.reference
                        ? (l = i)
                        : a.isElement(this._config.reference) &&
                          ((l = this._config.reference),
                          void 0 !== this._config.reference.jquery &&
                            (l = this._config.reference[0])),
                        "scrollParent" !== this._config.boundary &&
                          t(i).addClass("position-static"),
                        (this._popper = new n(
                          l,
                          this._menu,
                          this._getPopperConfig()
                        ));
                    }
                    "ontouchstart" in document.documentElement &&
                      0 === t(i).closest(".navbar-nav").length &&
                      t(document.body).children().on("mouseover", null, t.noop),
                      this._element.focus(),
                      this._element.setAttribute("aria-expanded", !0),
                      t(this._menu).toggleClass(oe),
                      t(i).toggleClass(oe).trigger(t.Event(ie.SHOWN, o));
                  }
                }
              }
            }),
            (i.show = function () {
              if (
                !(
                  this._element.disabled ||
                  t(this._element).hasClass(re) ||
                  t(this._menu).hasClass(oe)
                )
              ) {
                var n = {
                    relatedTarget: this._element,
                  },
                  i = t.Event(ie.SHOW, n),
                  r = e._getParentFromElement(this._element);
                t(r).trigger(i),
                  i.isDefaultPrevented() ||
                    (t(this._menu).toggleClass(oe),
                    t(r).toggleClass(oe).trigger(t.Event(ie.SHOWN, n)));
              }
            }),
            (i.hide = function () {
              if (
                !this._element.disabled &&
                !t(this._element).hasClass(re) &&
                t(this._menu).hasClass(oe)
              ) {
                var n = {
                    relatedTarget: this._element,
                  },
                  i = t.Event(ie.HIDE, n),
                  r = e._getParentFromElement(this._element);
                t(r).trigger(i),
                  i.isDefaultPrevented() ||
                    (t(this._menu).toggleClass(oe),
                    t(r).toggleClass(oe).trigger(t.Event(ie.HIDDEN, n)));
              }
            }),
            (i.dispose = function () {
              t.removeData(this._element, Z),
                t(this._element).off($),
                (this._element = null),
                (this._menu = null) !== this._popper &&
                  (this._popper.destroy(), (this._popper = null));
            }),
            (i.update = function () {
              (this._inNavbar = this._detectNavbar()),
                null !== this._popper && this._popper.scheduleUpdate();
            }),
            (i._addEventListeners = function () {
              var e = this;
              t(this._element).on(ie.CLICK, function (t) {
                t.preventDefault(), t.stopPropagation(), e.toggle();
              });
            }),
            (i._getConfig = function (e) {
              return (
                (e = o(
                  {},
                  this.constructor.Default,
                  t(this._element).data(),
                  e
                )),
                a.typeCheckConfig(Y, e, this.constructor.DefaultType),
                e
              );
            }),
            (i._getMenuElement = function () {
              if (!this._menu) {
                var t = e._getParentFromElement(this._element);
                t && (this._menu = t.querySelector(le));
              }
              return this._menu;
            }),
            (i._getPlacement = function () {
              var e = t(this._element.parentNode),
                n = "bottom-start";
              return (
                e.hasClass("dropup")
                  ? ((n = "top-start"),
                    t(this._menu).hasClass(se) && (n = "top-end"))
                  : e.hasClass("dropright")
                  ? (n = "right-start")
                  : e.hasClass("dropleft")
                  ? (n = "left-start")
                  : t(this._menu).hasClass(se) && (n = "bottom-end"),
                n
              );
            }),
            (i._detectNavbar = function () {
              return 0 < t(this._element).closest(".navbar").length;
            }),
            (i._getOffset = function () {
              var e = this,
                t = {};
              return (
                "function" == typeof this._config.offset
                  ? (t.fn = function (t) {
                      return (
                        (t.offsets = o(
                          {},
                          t.offsets,
                          e._config.offset(t.offsets, e._element) || {}
                        )),
                        t
                      );
                    })
                  : (t.offset = this._config.offset),
                t
              );
            }),
            (i._getPopperConfig = function () {
              var e = {
                placement: this._getPlacement(),
                modifiers: {
                  offset: this._getOffset(),
                  flip: {
                    enabled: this._config.flip,
                  },
                  preventOverflow: {
                    boundariesElement: this._config.boundary,
                  },
                },
              };
              return (
                "static" === this._config.display &&
                  (e.modifiers.applyStyle = {
                    enabled: !1,
                  }),
                e
              );
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this).data(Z);
                if (
                  (i ||
                    ((i = new e(this, "object" == typeof n ? n : null)),
                    t(this).data(Z, i)),
                  "string" == typeof n)
                ) {
                  if (void 0 === i[n])
                    throw new TypeError('No method named "' + n + '"');
                  i[n]();
                }
              });
            }),
            (e._clearMenus = function (n) {
              if (
                !n ||
                (3 !== n.which && ("keyup" !== n.type || 9 === n.which))
              )
                for (
                  var i = [].slice.call(document.querySelectorAll(ae)),
                    r = 0,
                    o = i.length;
                  r < o;
                  r++
                ) {
                  var s = e._getParentFromElement(i[r]),
                    a = t(i[r]).data(Z),
                    l = {
                      relatedTarget: i[r],
                    };
                  if ((n && "click" === n.type && (l.clickEvent = n), a)) {
                    var c = a._menu;
                    if (
                      t(s).hasClass(oe) &&
                      !(
                        n &&
                        (("click" === n.type &&
                          /input|textarea/i.test(n.target.tagName)) ||
                          ("keyup" === n.type && 9 === n.which)) &&
                        t.contains(s, n.target)
                      )
                    ) {
                      var d = t.Event(ie.HIDE, l);
                      t(s).trigger(d),
                        d.isDefaultPrevented() ||
                          ("ontouchstart" in document.documentElement &&
                            t(document.body)
                              .children()
                              .off("mouseover", null, t.noop),
                          i[r].setAttribute("aria-expanded", "false"),
                          t(c).removeClass(oe),
                          t(s).removeClass(oe).trigger(t.Event(ie.HIDDEN, l)));
                    }
                  }
                }
            }),
            (e._getParentFromElement = function (e) {
              var t,
                n = a.getSelectorFromElement(e);
              return n && (t = document.querySelector(n)), t || e.parentNode;
            }),
            (e._dataApiKeydownHandler = function (n) {
              if (
                (/input|textarea/i.test(n.target.tagName)
                  ? !(
                      32 === n.which ||
                      (27 !== n.which &&
                        ((40 !== n.which && 38 !== n.which) ||
                          t(n.target).closest(le).length))
                    )
                  : ne.test(n.which)) &&
                (n.preventDefault(),
                n.stopPropagation(),
                !this.disabled && !t(this).hasClass(re))
              ) {
                var i = e._getParentFromElement(this),
                  r = t(i).hasClass(oe);
                if (r && (!r || (27 !== n.which && 32 !== n.which))) {
                  var o = [].slice.call(
                    i.querySelectorAll(
                      ".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"
                    )
                  );
                  if (0 !== o.length) {
                    var s = o.indexOf(n.target);
                    38 === n.which && 0 < s && s--,
                      40 === n.which && s < o.length - 1 && s++,
                      s < 0 && (s = 0),
                      o[s].focus();
                  }
                } else {
                  if (27 === n.which) {
                    var a = i.querySelector(ae);
                    t(a).trigger("focus");
                  }
                  t(this).trigger("click");
                }
              }
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return ce;
                },
              },
              {
                key: "DefaultType",
                get: function () {
                  return de;
                },
              },
            ]),
            e
          );
        })();
      t(document)
        .on(ie.KEYDOWN_DATA_API, ae, ue._dataApiKeydownHandler)
        .on(ie.KEYDOWN_DATA_API, le, ue._dataApiKeydownHandler)
        .on(ie.CLICK_DATA_API + " " + ie.KEYUP_DATA_API, ue._clearMenus)
        .on(ie.CLICK_DATA_API, ae, function (e) {
          e.preventDefault(),
            e.stopPropagation(),
            ue._jQueryInterface.call(t(this), "toggle");
        })
        .on(ie.CLICK_DATA_API, ".dropdown form", function (e) {
          e.stopPropagation();
        }),
        (t.fn[Y] = ue._jQueryInterface),
        (t.fn[Y].Constructor = ue),
        (t.fn[Y].noConflict = function () {
          return (t.fn[Y] = te), ue._jQueryInterface;
        });
      var he = "modal",
        ge = "bs.modal",
        pe = "." + ge,
        Ae = t.fn[he],
        fe = {
          backdrop: !0,
          keyboard: !0,
          focus: !0,
          show: !0,
        },
        me = {
          backdrop: "(boolean|string)",
          keyboard: "boolean",
          focus: "boolean",
          show: "boolean",
        },
        ve = {
          HIDE: "hide" + pe,
          HIDDEN: "hidden" + pe,
          SHOW: "show" + pe,
          SHOWN: "shown" + pe,
          FOCUSIN: "focusin" + pe,
          RESIZE: "resize" + pe,
          CLICK_DISMISS: "click.dismiss" + pe,
          KEYDOWN_DISMISS: "keydown.dismiss" + pe,
          MOUSEUP_DISMISS: "mouseup.dismiss" + pe,
          MOUSEDOWN_DISMISS: "mousedown.dismiss" + pe,
          CLICK_DATA_API: "click" + pe + ".data-api",
        },
        be = "modal-open",
        we = "fade",
        ye = "show",
        xe = ".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",
        Ce = ".sticky-top",
        ke = (function () {
          function e(e, t) {
            (this._config = this._getConfig(t)),
              (this._element = e),
              (this._dialog = e.querySelector(".modal-dialog")),
              (this._backdrop = null),
              (this._isShown = !1),
              (this._isBodyOverflowing = !1),
              (this._ignoreBackdropClick = !1),
              (this._isTransitioning = !1),
              (this._scrollbarWidth = 0);
          }
          var n = e.prototype;
          return (
            (n.toggle = function (e) {
              return this._isShown ? this.hide() : this.show(e);
            }),
            (n.show = function (e) {
              var n = this;
              if (!this._isShown && !this._isTransitioning) {
                t(this._element).hasClass(we) && (this._isTransitioning = !0);
                var i = t.Event(ve.SHOW, {
                  relatedTarget: e,
                });
                t(this._element).trigger(i),
                  this._isShown ||
                    i.isDefaultPrevented() ||
                    ((this._isShown = !0),
                    this._checkScrollbar(),
                    this._setScrollbar(),
                    this._adjustDialog(),
                    this._setEscapeEvent(),
                    this._setResizeEvent(),
                    t(this._element).on(
                      ve.CLICK_DISMISS,
                      '[data-dismiss="modal"]',
                      function (e) {
                        return n.hide(e);
                      }
                    ),
                    t(this._dialog).on(ve.MOUSEDOWN_DISMISS, function () {
                      t(n._element).one(ve.MOUSEUP_DISMISS, function (e) {
                        t(e.target).is(n._element) &&
                          (n._ignoreBackdropClick = !0);
                      });
                    }),
                    this._showBackdrop(function () {
                      return n._showElement(e);
                    }));
              }
            }),
            (n.hide = function (e) {
              var n = this;
              if (
                (e && e.preventDefault(),
                this._isShown && !this._isTransitioning)
              ) {
                var i = t.Event(ve.HIDE);
                if (
                  (t(this._element).trigger(i),
                  this._isShown && !i.isDefaultPrevented())
                ) {
                  this._isShown = !1;
                  var r = t(this._element).hasClass(we);
                  if (
                    (r && (this._isTransitioning = !0),
                    this._setEscapeEvent(),
                    this._setResizeEvent(),
                    t(document).off(ve.FOCUSIN),
                    t(this._element).removeClass(ye),
                    t(this._element).off(ve.CLICK_DISMISS),
                    t(this._dialog).off(ve.MOUSEDOWN_DISMISS),
                    r)
                  ) {
                    var o = a.getTransitionDurationFromElement(this._element);
                    t(this._element)
                      .one(a.TRANSITION_END, function (e) {
                        return n._hideModal(e);
                      })
                      .emulateTransitionEnd(o);
                  } else this._hideModal();
                }
              }
            }),
            (n.dispose = function () {
              [window, this._element, this._dialog].forEach(function (e) {
                return t(e).off(pe);
              }),
                t(document).off(ve.FOCUSIN),
                t.removeData(this._element, ge),
                (this._config = null),
                (this._element = null),
                (this._dialog = null),
                (this._backdrop = null),
                (this._isShown = null),
                (this._isBodyOverflowing = null),
                (this._ignoreBackdropClick = null),
                (this._isTransitioning = null),
                (this._scrollbarWidth = null);
            }),
            (n.handleUpdate = function () {
              this._adjustDialog();
            }),
            (n._getConfig = function (e) {
              return (e = o({}, fe, e)), a.typeCheckConfig(he, e, me), e;
            }),
            (n._showElement = function (e) {
              var n = this,
                i = t(this._element).hasClass(we);
              (this._element.parentNode &&
                this._element.parentNode.nodeType === Node.ELEMENT_NODE) ||
                document.body.appendChild(this._element),
                (this._element.style.display = "block"),
                this._element.removeAttribute("aria-hidden"),
                this._element.setAttribute("aria-modal", !0),
                t(this._dialog).hasClass("modal-dialog-scrollable")
                  ? (this._dialog.querySelector(".modal-body").scrollTop = 0)
                  : (this._element.scrollTop = 0),
                i && a.reflow(this._element),
                t(this._element).addClass(ye),
                this._config.focus && this._enforceFocus();
              var r = t.Event(ve.SHOWN, {
                  relatedTarget: e,
                }),
                o = function () {
                  n._config.focus && n._element.focus(),
                    (n._isTransitioning = !1),
                    t(n._element).trigger(r);
                };
              if (i) {
                var s = a.getTransitionDurationFromElement(this._dialog);
                t(this._dialog)
                  .one(a.TRANSITION_END, o)
                  .emulateTransitionEnd(s);
              } else o();
            }),
            (n._enforceFocus = function () {
              var e = this;
              t(document)
                .off(ve.FOCUSIN)
                .on(ve.FOCUSIN, function (n) {
                  document !== n.target &&
                    e._element !== n.target &&
                    0 === t(e._element).has(n.target).length &&
                    e._element.focus();
                });
            }),
            (n._setEscapeEvent = function () {
              var e = this;
              this._isShown && this._config.keyboard
                ? t(this._element).on(ve.KEYDOWN_DISMISS, function (t) {
                    27 === t.which && (t.preventDefault(), e.hide());
                  })
                : this._isShown || t(this._element).off(ve.KEYDOWN_DISMISS);
            }),
            (n._setResizeEvent = function () {
              var e = this;
              this._isShown
                ? t(window).on(ve.RESIZE, function (t) {
                    return e.handleUpdate(t);
                  })
                : t(window).off(ve.RESIZE);
            }),
            (n._hideModal = function () {
              var e = this;
              (this._element.style.display = "none"),
                this._element.setAttribute("aria-hidden", !0),
                this._element.removeAttribute("aria-modal"),
                (this._isTransitioning = !1),
                this._showBackdrop(function () {
                  t(document.body).removeClass(be),
                    e._resetAdjustments(),
                    e._resetScrollbar(),
                    t(e._element).trigger(ve.HIDDEN);
                });
            }),
            (n._removeBackdrop = function () {
              this._backdrop &&
                (t(this._backdrop).remove(), (this._backdrop = null));
            }),
            (n._showBackdrop = function (e) {
              var n = this,
                i = t(this._element).hasClass(we) ? we : "";
              if (this._isShown && this._config.backdrop) {
                if (
                  ((this._backdrop = document.createElement("div")),
                  (this._backdrop.className = "modal-backdrop"),
                  i && this._backdrop.classList.add(i),
                  t(this._backdrop).appendTo(document.body),
                  t(this._element).on(ve.CLICK_DISMISS, function (e) {
                    n._ignoreBackdropClick
                      ? (n._ignoreBackdropClick = !1)
                      : e.target === e.currentTarget &&
                        ("static" === n._config.backdrop
                          ? n._element.focus()
                          : n.hide());
                  }),
                  i && a.reflow(this._backdrop),
                  t(this._backdrop).addClass(ye),
                  !e)
                )
                  return;
                if (!i) return void e();
                var r = a.getTransitionDurationFromElement(this._backdrop);
                t(this._backdrop)
                  .one(a.TRANSITION_END, e)
                  .emulateTransitionEnd(r);
              } else if (!this._isShown && this._backdrop) {
                t(this._backdrop).removeClass(ye);
                var o = function () {
                  n._removeBackdrop(), e && e();
                };
                if (t(this._element).hasClass(we)) {
                  var s = a.getTransitionDurationFromElement(this._backdrop);
                  t(this._backdrop)
                    .one(a.TRANSITION_END, o)
                    .emulateTransitionEnd(s);
                } else o();
              } else e && e();
            }),
            (n._adjustDialog = function () {
              var e =
                this._element.scrollHeight >
                document.documentElement.clientHeight;
              !this._isBodyOverflowing &&
                e &&
                (this._element.style.paddingLeft = this._scrollbarWidth + "px"),
                this._isBodyOverflowing &&
                  !e &&
                  (this._element.style.paddingRight =
                    this._scrollbarWidth + "px");
            }),
            (n._resetAdjustments = function () {
              (this._element.style.paddingLeft = ""),
                (this._element.style.paddingRight = "");
            }),
            (n._checkScrollbar = function () {
              var e = document.body.getBoundingClientRect();
              (this._isBodyOverflowing = e.left + e.right < window.innerWidth),
                (this._scrollbarWidth = this._getScrollbarWidth());
            }),
            (n._setScrollbar = function () {
              var e = this;
              if (this._isBodyOverflowing) {
                var n = [].slice.call(document.querySelectorAll(xe)),
                  i = [].slice.call(document.querySelectorAll(Ce));
                t(n).each(function (n, i) {
                  var r = i.style.paddingRight,
                    o = t(i).css("padding-right");
                  t(i)
                    .data("padding-right", r)
                    .css(
                      "padding-right",
                      parseFloat(o) + e._scrollbarWidth + "px"
                    );
                }),
                  t(i).each(function (n, i) {
                    var r = i.style.marginRight,
                      o = t(i).css("margin-right");
                    t(i)
                      .data("margin-right", r)
                      .css(
                        "margin-right",
                        parseFloat(o) - e._scrollbarWidth + "px"
                      );
                  });
                var r = document.body.style.paddingRight,
                  o = t(document.body).css("padding-right");
                t(document.body)
                  .data("padding-right", r)
                  .css(
                    "padding-right",
                    parseFloat(o) + this._scrollbarWidth + "px"
                  );
              }
              t(document.body).addClass(be);
            }),
            (n._resetScrollbar = function () {
              var e = [].slice.call(document.querySelectorAll(xe));
              t(e).each(function (e, n) {
                var i = t(n).data("padding-right");
                t(n).removeData("padding-right"),
                  (n.style.paddingRight = i || "");
              });
              var n = [].slice.call(document.querySelectorAll("" + Ce));
              t(n).each(function (e, n) {
                var i = t(n).data("margin-right");
                void 0 !== i &&
                  t(n).css("margin-right", i).removeData("margin-right");
              });
              var i = t(document.body).data("padding-right");
              t(document.body).removeData("padding-right"),
                (document.body.style.paddingRight = i || "");
            }),
            (n._getScrollbarWidth = function () {
              var e = document.createElement("div");
              (e.className = "modal-scrollbar-measure"),
                document.body.appendChild(e);
              var t = e.getBoundingClientRect().width - e.clientWidth;
              return document.body.removeChild(e), t;
            }),
            (e._jQueryInterface = function (n, i) {
              return this.each(function () {
                var r = t(this).data(ge),
                  s = o(
                    {},
                    fe,
                    t(this).data(),
                    "object" == typeof n && n ? n : {}
                  );
                if (
                  (r || ((r = new e(this, s)), t(this).data(ge, r)),
                  "string" == typeof n)
                ) {
                  if (void 0 === r[n])
                    throw new TypeError('No method named "' + n + '"');
                  r[n](i);
                } else s.show && r.show(i);
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return fe;
                },
              },
            ]),
            e
          );
        })();
      t(document).on(ve.CLICK_DATA_API, '[data-toggle="modal"]', function (e) {
        var n,
          i = this,
          r = a.getSelectorFromElement(this);
        r && (n = document.querySelector(r));
        var s = t(n).data(ge) ? "toggle" : o({}, t(n).data(), t(this).data());
        ("A" !== this.tagName && "AREA" !== this.tagName) || e.preventDefault();
        var l = t(n).one(ve.SHOW, function (e) {
          e.isDefaultPrevented() ||
            l.one(ve.HIDDEN, function () {
              t(i).is(":visible") && i.focus();
            });
        });
        ke._jQueryInterface.call(t(n), s, this);
      }),
        (t.fn[he] = ke._jQueryInterface),
        (t.fn[he].Constructor = ke),
        (t.fn[he].noConflict = function () {
          return (t.fn[he] = Ae), ke._jQueryInterface;
        });
      var _e = [
          "background",
          "cite",
          "href",
          "itemtype",
          "longdesc",
          "poster",
          "src",
          "xlink:href",
        ],
        Ie = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,
        Ee =
          /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;

      function Te(e, t, n) {
        if (0 === e.length) return e;
        if (n && "function" == typeof n) return n(e);
        for (
          var i = new window.DOMParser().parseFromString(e, "text/html"),
            r = Object.keys(t),
            o = [].slice.call(i.body.querySelectorAll("*")),
            s = function (e, n) {
              var i = o[e],
                s = i.nodeName.toLowerCase();
              if (-1 === r.indexOf(i.nodeName.toLowerCase()))
                return i.parentNode.removeChild(i), "continue";
              var a = [].slice.call(i.attributes),
                l = [].concat(t["*"] || [], t[s] || []);
              a.forEach(function (e) {
                (function (e, t) {
                  var n = e.nodeName.toLowerCase();
                  if (-1 !== t.indexOf(n))
                    return (
                      -1 === _e.indexOf(n) ||
                      Boolean(e.nodeValue.match(Ie) || e.nodeValue.match(Ee))
                    );
                  for (
                    var i = t.filter(function (e) {
                        return e instanceof RegExp;
                      }),
                      r = 0,
                      o = i.length;
                    r < o;
                    r++
                  )
                    if (n.match(i[r])) return !0;
                  return !1;
                })(e, l) || i.removeAttribute(e.nodeName);
              });
            },
            a = 0,
            l = o.length;
          a < l;
          a++
        )
          s(a);
        return i.body.innerHTML;
      }
      var Se = "tooltip",
        Le = "bs.tooltip",
        je = "." + Le,
        Re = t.fn[Se],
        Be = "bs-tooltip",
        Me = new RegExp("(^|\\s)" + Be + "\\S+", "g"),
        De = ["sanitize", "whiteList", "sanitizeFn"],
        Oe = {
          animation: "boolean",
          template: "string",
          title: "(string|element|function)",
          trigger: "string",
          delay: "(number|object)",
          html: "boolean",
          selector: "(string|boolean)",
          placement: "(string|function)",
          offset: "(number|string|function)",
          container: "(string|element|boolean)",
          fallbackPlacement: "(string|array)",
          boundary: "(string|element)",
          sanitize: "boolean",
          sanitizeFn: "(null|function)",
          whiteList: "object",
        },
        He = {
          AUTO: "auto",
          TOP: "top",
          RIGHT: "right",
          BOTTOM: "bottom",
          LEFT: "left",
        },
        We = {
          animation: !0,
          template:
            '<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',
          trigger: "hover focus",
          title: "",
          delay: 0,
          html: !1,
          selector: !1,
          placement: "top",
          offset: 0,
          container: !1,
          fallbackPlacement: "flip",
          boundary: "scrollParent",
          sanitize: !0,
          sanitizeFn: null,
          whiteList: {
            "*": ["class", "dir", "id", "lang", "role", /^aria-[\w-]*$/i],
            a: ["target", "href", "title", "rel"],
            area: [],
            b: [],
            br: [],
            col: [],
            code: [],
            div: [],
            em: [],
            hr: [],
            h1: [],
            h2: [],
            h3: [],
            h4: [],
            h5: [],
            h6: [],
            i: [],
            img: ["src", "alt", "title", "width", "height"],
            li: [],
            ol: [],
            p: [],
            pre: [],
            s: [],
            small: [],
            span: [],
            sub: [],
            sup: [],
            strong: [],
            u: [],
            ul: [],
          },
        },
        Pe = "show",
        Ne = {
          HIDE: "hide" + je,
          HIDDEN: "hidden" + je,
          SHOW: "show" + je,
          SHOWN: "shown" + je,
          INSERTED: "inserted" + je,
          CLICK: "click" + je,
          FOCUSIN: "focusin" + je,
          FOCUSOUT: "focusout" + je,
          MOUSEENTER: "mouseenter" + je,
          MOUSELEAVE: "mouseleave" + je,
        },
        qe = "fade",
        ze = "show",
        Ve = "hover",
        Fe = "focus",
        Qe = (function () {
          function e(e, t) {
            if (void 0 === n)
              throw new TypeError(
                "Bootstrap's tooltips require Popper.js (https://popper.js.org/)"
              );
            (this._isEnabled = !0),
              (this._timeout = 0),
              (this._hoverState = ""),
              (this._activeTrigger = {}),
              (this._popper = null),
              (this.element = e),
              (this.config = this._getConfig(t)),
              (this.tip = null),
              this._setListeners();
          }
          var i = e.prototype;
          return (
            (i.enable = function () {
              this._isEnabled = !0;
            }),
            (i.disable = function () {
              this._isEnabled = !1;
            }),
            (i.toggleEnabled = function () {
              this._isEnabled = !this._isEnabled;
            }),
            (i.toggle = function (e) {
              if (this._isEnabled)
                if (e) {
                  var n = this.constructor.DATA_KEY,
                    i = t(e.currentTarget).data(n);
                  i ||
                    ((i = new this.constructor(
                      e.currentTarget,
                      this._getDelegateConfig()
                    )),
                    t(e.currentTarget).data(n, i)),
                    (i._activeTrigger.click = !i._activeTrigger.click),
                    i._isWithActiveTrigger()
                      ? i._enter(null, i)
                      : i._leave(null, i);
                } else {
                  if (t(this.getTipElement()).hasClass(ze))
                    return void this._leave(null, this);
                  this._enter(null, this);
                }
            }),
            (i.dispose = function () {
              clearTimeout(this._timeout),
                t.removeData(this.element, this.constructor.DATA_KEY),
                t(this.element).off(this.constructor.EVENT_KEY),
                t(this.element).closest(".modal").off("hide.bs.modal"),
                this.tip && t(this.tip).remove(),
                (this._isEnabled = null),
                (this._timeout = null),
                (this._hoverState = null),
                (this._activeTrigger = null) !== this._popper &&
                  this._popper.destroy(),
                (this._popper = null),
                (this.element = null),
                (this.config = null),
                (this.tip = null);
            }),
            (i.show = function () {
              var e = this;
              if ("none" === t(this.element).css("display"))
                throw new Error("Please use show on visible elements");
              var i = t.Event(this.constructor.Event.SHOW);
              if (this.isWithContent() && this._isEnabled) {
                t(this.element).trigger(i);
                var r = a.findShadowRoot(this.element),
                  o = t.contains(
                    null !== r ? r : this.element.ownerDocument.documentElement,
                    this.element
                  );
                if (i.isDefaultPrevented() || !o) return;
                var s = this.getTipElement(),
                  l = a.getUID(this.constructor.NAME);
                s.setAttribute("id", l),
                  this.element.setAttribute("aria-describedby", l),
                  this.setContent(),
                  this.config.animation && t(s).addClass(qe);
                var c =
                    "function" == typeof this.config.placement
                      ? this.config.placement.call(this, s, this.element)
                      : this.config.placement,
                  d = this._getAttachment(c);
                this.addAttachmentClass(d);
                var u = this._getContainer();
                t(s).data(this.constructor.DATA_KEY, this),
                  t.contains(
                    this.element.ownerDocument.documentElement,
                    this.tip
                  ) || t(s).appendTo(u),
                  t(this.element).trigger(this.constructor.Event.INSERTED),
                  (this._popper = new n(this.element, s, {
                    placement: d,
                    modifiers: {
                      offset: this._getOffset(),
                      flip: {
                        behavior: this.config.fallbackPlacement,
                      },
                      arrow: {
                        element: ".arrow",
                      },
                      preventOverflow: {
                        boundariesElement: this.config.boundary,
                      },
                    },
                    onCreate: function (t) {
                      t.originalPlacement !== t.placement &&
                        e._handlePopperPlacementChange(t);
                    },
                    onUpdate: function (t) {
                      return e._handlePopperPlacementChange(t);
                    },
                  })),
                  t(s).addClass(ze),
                  "ontouchstart" in document.documentElement &&
                    t(document.body).children().on("mouseover", null, t.noop);
                var h = function () {
                  e.config.animation && e._fixTransition();
                  var n = e._hoverState;
                  (e._hoverState = null),
                    t(e.element).trigger(e.constructor.Event.SHOWN),
                    "out" === n && e._leave(null, e);
                };
                if (t(this.tip).hasClass(qe)) {
                  var g = a.getTransitionDurationFromElement(this.tip);
                  t(this.tip).one(a.TRANSITION_END, h).emulateTransitionEnd(g);
                } else h();
              }
            }),
            (i.hide = function (e) {
              var n = this,
                i = this.getTipElement(),
                r = t.Event(this.constructor.Event.HIDE),
                o = function () {
                  n._hoverState !== Pe &&
                    i.parentNode &&
                    i.parentNode.removeChild(i),
                    n._cleanTipClass(),
                    n.element.removeAttribute("aria-describedby"),
                    t(n.element).trigger(n.constructor.Event.HIDDEN),
                    null !== n._popper && n._popper.destroy(),
                    e && e();
                };
              if ((t(this.element).trigger(r), !r.isDefaultPrevented())) {
                if (
                  (t(i).removeClass(ze),
                  "ontouchstart" in document.documentElement &&
                    t(document.body).children().off("mouseover", null, t.noop),
                  (this._activeTrigger.click = !1),
                  (this._activeTrigger[Fe] = !1),
                  (this._activeTrigger[Ve] = !1),
                  t(this.tip).hasClass(qe))
                ) {
                  var s = a.getTransitionDurationFromElement(i);
                  t(i).one(a.TRANSITION_END, o).emulateTransitionEnd(s);
                } else o();
                this._hoverState = "";
              }
            }),
            (i.update = function () {
              null !== this._popper && this._popper.scheduleUpdate();
            }),
            (i.isWithContent = function () {
              return Boolean(this.getTitle());
            }),
            (i.addAttachmentClass = function (e) {
              t(this.getTipElement()).addClass(Be + "-" + e);
            }),
            (i.getTipElement = function () {
              return (
                (this.tip = this.tip || t(this.config.template)[0]), this.tip
              );
            }),
            (i.setContent = function () {
              var e = this.getTipElement();
              this.setElementContent(
                t(e.querySelectorAll(".tooltip-inner")),
                this.getTitle()
              ),
                t(e).removeClass(qe + " " + ze);
            }),
            (i.setElementContent = function (e, n) {
              "object" != typeof n || (!n.nodeType && !n.jquery)
                ? this.config.html
                  ? (this.config.sanitize &&
                      (n = Te(
                        n,
                        this.config.whiteList,
                        this.config.sanitizeFn
                      )),
                    e.html(n))
                  : e.text(n)
                : this.config.html
                ? t(n).parent().is(e) || e.empty().append(n)
                : e.text(t(n).text());
            }),
            (i.getTitle = function () {
              var e = this.element.getAttribute("data-original-title");
              return (
                e ||
                  (e =
                    "function" == typeof this.config.title
                      ? this.config.title.call(this.element)
                      : this.config.title),
                e
              );
            }),
            (i._getOffset = function () {
              var e = this,
                t = {};
              return (
                "function" == typeof this.config.offset
                  ? (t.fn = function (t) {
                      return (
                        (t.offsets = o(
                          {},
                          t.offsets,
                          e.config.offset(t.offsets, e.element) || {}
                        )),
                        t
                      );
                    })
                  : (t.offset = this.config.offset),
                t
              );
            }),
            (i._getContainer = function () {
              return !1 === this.config.container
                ? document.body
                : a.isElement(this.config.container)
                ? t(this.config.container)
                : t(document).find(this.config.container);
            }),
            (i._getAttachment = function (e) {
              return He[e.toUpperCase()];
            }),
            (i._setListeners = function () {
              var e = this;
              this.config.trigger.split(" ").forEach(function (n) {
                if ("click" === n)
                  t(e.element).on(
                    e.constructor.Event.CLICK,
                    e.config.selector,
                    function (t) {
                      return e.toggle(t);
                    }
                  );
                else if ("manual" !== n) {
                  var i =
                      n === Ve
                        ? e.constructor.Event.MOUSEENTER
                        : e.constructor.Event.FOCUSIN,
                    r =
                      n === Ve
                        ? e.constructor.Event.MOUSELEAVE
                        : e.constructor.Event.FOCUSOUT;
                  t(e.element)
                    .on(i, e.config.selector, function (t) {
                      return e._enter(t);
                    })
                    .on(r, e.config.selector, function (t) {
                      return e._leave(t);
                    });
                }
              }),
                t(this.element)
                  .closest(".modal")
                  .on("hide.bs.modal", function () {
                    e.element && e.hide();
                  }),
                this.config.selector
                  ? (this.config = o({}, this.config, {
                      trigger: "manual",
                      selector: "",
                    }))
                  : this._fixTitle();
            }),
            (i._fixTitle = function () {
              var e = typeof this.element.getAttribute("data-original-title");
              (this.element.getAttribute("title") || "string" !== e) &&
                (this.element.setAttribute(
                  "data-original-title",
                  this.element.getAttribute("title") || ""
                ),
                this.element.setAttribute("title", ""));
            }),
            (i._enter = function (e, n) {
              var i = this.constructor.DATA_KEY;
              (n = n || t(e.currentTarget).data(i)) ||
                ((n = new this.constructor(
                  e.currentTarget,
                  this._getDelegateConfig()
                )),
                t(e.currentTarget).data(i, n)),
                e && (n._activeTrigger["focusin" === e.type ? Fe : Ve] = !0),
                t(n.getTipElement()).hasClass(ze) || n._hoverState === Pe
                  ? (n._hoverState = Pe)
                  : (clearTimeout(n._timeout),
                    (n._hoverState = Pe),
                    n.config.delay && n.config.delay.show
                      ? (n._timeout = setTimeout(function () {
                          n._hoverState === Pe && n.show();
                        }, n.config.delay.show))
                      : n.show());
            }),
            (i._leave = function (e, n) {
              var i = this.constructor.DATA_KEY;
              (n = n || t(e.currentTarget).data(i)) ||
                ((n = new this.constructor(
                  e.currentTarget,
                  this._getDelegateConfig()
                )),
                t(e.currentTarget).data(i, n)),
                e && (n._activeTrigger["focusout" === e.type ? Fe : Ve] = !1),
                n._isWithActiveTrigger() ||
                  (clearTimeout(n._timeout),
                  (n._hoverState = "out"),
                  n.config.delay && n.config.delay.hide
                    ? (n._timeout = setTimeout(function () {
                        "out" === n._hoverState && n.hide();
                      }, n.config.delay.hide))
                    : n.hide());
            }),
            (i._isWithActiveTrigger = function () {
              for (var e in this._activeTrigger)
                if (this._activeTrigger[e]) return !0;
              return !1;
            }),
            (i._getConfig = function (e) {
              var n = t(this.element).data();
              return (
                Object.keys(n).forEach(function (e) {
                  -1 !== De.indexOf(e) && delete n[e];
                }),
                "number" ==
                  typeof (e = o(
                    {},
                    this.constructor.Default,
                    n,
                    "object" == typeof e && e ? e : {}
                  )).delay &&
                  (e.delay = {
                    show: e.delay,
                    hide: e.delay,
                  }),
                "number" == typeof e.title && (e.title = e.title.toString()),
                "number" == typeof e.content &&
                  (e.content = e.content.toString()),
                a.typeCheckConfig(Se, e, this.constructor.DefaultType),
                e.sanitize &&
                  (e.template = Te(e.template, e.whiteList, e.sanitizeFn)),
                e
              );
            }),
            (i._getDelegateConfig = function () {
              var e = {};
              if (this.config)
                for (var t in this.config)
                  this.constructor.Default[t] !== this.config[t] &&
                    (e[t] = this.config[t]);
              return e;
            }),
            (i._cleanTipClass = function () {
              var e = t(this.getTipElement()),
                n = e.attr("class").match(Me);
              null !== n && n.length && e.removeClass(n.join(""));
            }),
            (i._handlePopperPlacementChange = function (e) {
              var t = e.instance;
              (this.tip = t.popper),
                this._cleanTipClass(),
                this.addAttachmentClass(this._getAttachment(e.placement));
            }),
            (i._fixTransition = function () {
              var e = this.getTipElement(),
                n = this.config.animation;
              null === e.getAttribute("x-placement") &&
                (t(e).removeClass(qe),
                (this.config.animation = !1),
                this.hide(),
                this.show(),
                (this.config.animation = n));
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this).data(Le),
                  r = "object" == typeof n && n;
                if (
                  (i || !/dispose|hide/.test(n)) &&
                  (i || ((i = new e(this, r)), t(this).data(Le, i)),
                  "string" == typeof n)
                ) {
                  if (void 0 === i[n])
                    throw new TypeError('No method named "' + n + '"');
                  i[n]();
                }
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return We;
                },
              },
              {
                key: "NAME",
                get: function () {
                  return Se;
                },
              },
              {
                key: "DATA_KEY",
                get: function () {
                  return Le;
                },
              },
              {
                key: "Event",
                get: function () {
                  return Ne;
                },
              },
              {
                key: "EVENT_KEY",
                get: function () {
                  return je;
                },
              },
              {
                key: "DefaultType",
                get: function () {
                  return Oe;
                },
              },
            ]),
            e
          );
        })();
      (t.fn[Se] = Qe._jQueryInterface),
        (t.fn[Se].Constructor = Qe),
        (t.fn[Se].noConflict = function () {
          return (t.fn[Se] = Re), Qe._jQueryInterface;
        });
      var Ue = "popover",
        Ke = "bs.popover",
        Xe = "." + Ke,
        Ge = t.fn[Ue],
        Je = "bs-popover",
        Ye = new RegExp("(^|\\s)" + Je + "\\S+", "g"),
        Ze = o({}, Qe.Default, {
          placement: "right",
          trigger: "click",
          content: "",
          template:
            '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',
        }),
        $e = o({}, Qe.DefaultType, {
          content: "(string|element|function)",
        }),
        et = {
          HIDE: "hide" + Xe,
          HIDDEN: "hidden" + Xe,
          SHOW: "show" + Xe,
          SHOWN: "shown" + Xe,
          INSERTED: "inserted" + Xe,
          CLICK: "click" + Xe,
          FOCUSIN: "focusin" + Xe,
          FOCUSOUT: "focusout" + Xe,
          MOUSEENTER: "mouseenter" + Xe,
          MOUSELEAVE: "mouseleave" + Xe,
        },
        tt = (function (e) {
          var n, i;

          function o() {
            return e.apply(this, arguments) || this;
          }
          (i = e),
            ((n = o).prototype = Object.create(i.prototype)),
            ((n.prototype.constructor = n).__proto__ = i);
          var s = o.prototype;
          return (
            (s.isWithContent = function () {
              return this.getTitle() || this._getContent();
            }),
            (s.addAttachmentClass = function (e) {
              t(this.getTipElement()).addClass(Je + "-" + e);
            }),
            (s.getTipElement = function () {
              return (
                (this.tip = this.tip || t(this.config.template)[0]), this.tip
              );
            }),
            (s.setContent = function () {
              var e = t(this.getTipElement());
              this.setElementContent(
                e.find(".popover-header"),
                this.getTitle()
              );
              var n = this._getContent();
              "function" == typeof n && (n = n.call(this.element)),
                this.setElementContent(e.find(".popover-body"), n),
                e.removeClass("fade show");
            }),
            (s._getContent = function () {
              return (
                this.element.getAttribute("data-content") || this.config.content
              );
            }),
            (s._cleanTipClass = function () {
              var e = t(this.getTipElement()),
                n = e.attr("class").match(Ye);
              null !== n && 0 < n.length && e.removeClass(n.join(""));
            }),
            (o._jQueryInterface = function (e) {
              return this.each(function () {
                var n = t(this).data(Ke),
                  i = "object" == typeof e ? e : null;
                if (
                  (n || !/dispose|hide/.test(e)) &&
                  (n || ((n = new o(this, i)), t(this).data(Ke, n)),
                  "string" == typeof e)
                ) {
                  if (void 0 === n[e])
                    throw new TypeError('No method named "' + e + '"');
                  n[e]();
                }
              });
            }),
            r(o, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return Ze;
                },
              },
              {
                key: "NAME",
                get: function () {
                  return Ue;
                },
              },
              {
                key: "DATA_KEY",
                get: function () {
                  return Ke;
                },
              },
              {
                key: "Event",
                get: function () {
                  return et;
                },
              },
              {
                key: "EVENT_KEY",
                get: function () {
                  return Xe;
                },
              },
              {
                key: "DefaultType",
                get: function () {
                  return $e;
                },
              },
            ]),
            o
          );
        })(Qe);
      (t.fn[Ue] = tt._jQueryInterface),
        (t.fn[Ue].Constructor = tt),
        (t.fn[Ue].noConflict = function () {
          return (t.fn[Ue] = Ge), tt._jQueryInterface;
        });
      var nt = "scrollspy",
        it = "bs.scrollspy",
        rt = "." + it,
        ot = t.fn[nt],
        st = {
          offset: 10,
          method: "auto",
          target: "",
        },
        at = {
          offset: "number",
          method: "string",
          target: "(string|element)",
        },
        lt = {
          ACTIVATE: "activate" + rt,
          SCROLL: "scroll" + rt,
          LOAD_DATA_API: "load" + rt + ".data-api",
        },
        ct = "active",
        dt = ".nav, .list-group",
        ut = ".nav-link",
        ht = ".list-group-item",
        gt = "position",
        pt = (function () {
          function e(e, n) {
            var i = this;
            (this._element = e),
              (this._scrollElement = "BODY" === e.tagName ? window : e),
              (this._config = this._getConfig(n)),
              (this._selector =
                this._config.target +
                " " +
                ut +
                "," +
                this._config.target +
                " " +
                ht +
                "," +
                this._config.target +
                " .dropdown-item"),
              (this._offsets = []),
              (this._targets = []),
              (this._activeTarget = null),
              (this._scrollHeight = 0),
              t(this._scrollElement).on(lt.SCROLL, function (e) {
                return i._process(e);
              }),
              this.refresh(),
              this._process();
          }
          var n = e.prototype;
          return (
            (n.refresh = function () {
              var e = this,
                n =
                  this._scrollElement === this._scrollElement.window
                    ? "offset"
                    : gt,
                i = "auto" === this._config.method ? n : this._config.method,
                r = i === gt ? this._getScrollTop() : 0;
              (this._offsets = []),
                (this._targets = []),
                (this._scrollHeight = this._getScrollHeight()),
                [].slice
                  .call(document.querySelectorAll(this._selector))
                  .map(function (e) {
                    var n,
                      o = a.getSelectorFromElement(e);
                    if ((o && (n = document.querySelector(o)), n)) {
                      var s = n.getBoundingClientRect();
                      if (s.width || s.height) return [t(n)[i]().top + r, o];
                    }
                    return null;
                  })
                  .filter(function (e) {
                    return e;
                  })
                  .sort(function (e, t) {
                    return e[0] - t[0];
                  })
                  .forEach(function (t) {
                    e._offsets.push(t[0]), e._targets.push(t[1]);
                  });
            }),
            (n.dispose = function () {
              t.removeData(this._element, it),
                t(this._scrollElement).off(rt),
                (this._element = null),
                (this._scrollElement = null),
                (this._config = null),
                (this._selector = null),
                (this._offsets = null),
                (this._targets = null),
                (this._activeTarget = null),
                (this._scrollHeight = null);
            }),
            (n._getConfig = function (e) {
              if (
                "string" !=
                typeof (e = o({}, st, "object" == typeof e && e ? e : {}))
                  .target
              ) {
                var n = t(e.target).attr("id");
                n || ((n = a.getUID(nt)), t(e.target).attr("id", n)),
                  (e.target = "#" + n);
              }
              return a.typeCheckConfig(nt, e, at), e;
            }),
            (n._getScrollTop = function () {
              return this._scrollElement === window
                ? this._scrollElement.pageYOffset
                : this._scrollElement.scrollTop;
            }),
            (n._getScrollHeight = function () {
              return (
                this._scrollElement.scrollHeight ||
                Math.max(
                  document.body.scrollHeight,
                  document.documentElement.scrollHeight
                )
              );
            }),
            (n._getOffsetHeight = function () {
              return this._scrollElement === window
                ? window.innerHeight
                : this._scrollElement.getBoundingClientRect().height;
            }),
            (n._process = function () {
              var e = this._getScrollTop() + this._config.offset,
                t = this._getScrollHeight(),
                n = this._config.offset + t - this._getOffsetHeight();
              if ((this._scrollHeight !== t && this.refresh(), n <= e)) {
                var i = this._targets[this._targets.length - 1];
                this._activeTarget !== i && this._activate(i);
              } else {
                if (
                  this._activeTarget &&
                  e < this._offsets[0] &&
                  0 < this._offsets[0]
                )
                  return (this._activeTarget = null), void this._clear();
                for (var r = this._offsets.length; r--; )
                  this._activeTarget !== this._targets[r] &&
                    e >= this._offsets[r] &&
                    (void 0 === this._offsets[r + 1] ||
                      e < this._offsets[r + 1]) &&
                    this._activate(this._targets[r]);
              }
            }),
            (n._activate = function (e) {
              (this._activeTarget = e), this._clear();
              var n = this._selector.split(",").map(function (t) {
                  return (
                    t + '[data-target="' + e + '"],' + t + '[href="' + e + '"]'
                  );
                }),
                i = t([].slice.call(document.querySelectorAll(n.join(","))));
              i.hasClass("dropdown-item")
                ? (i.closest(".dropdown").find(".dropdown-toggle").addClass(ct),
                  i.addClass(ct))
                : (i.addClass(ct),
                  i
                    .parents(dt)
                    .prev(ut + ", " + ht)
                    .addClass(ct),
                  i.parents(dt).prev(".nav-item").children(ut).addClass(ct)),
                t(this._scrollElement).trigger(lt.ACTIVATE, {
                  relatedTarget: e,
                });
            }),
            (n._clear = function () {
              [].slice
                .call(document.querySelectorAll(this._selector))
                .filter(function (e) {
                  return e.classList.contains(ct);
                })
                .forEach(function (e) {
                  return e.classList.remove(ct);
                });
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this).data(it);
                if (
                  (i ||
                    ((i = new e(this, "object" == typeof n && n)),
                    t(this).data(it, i)),
                  "string" == typeof n)
                ) {
                  if (void 0 === i[n])
                    throw new TypeError('No method named "' + n + '"');
                  i[n]();
                }
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "Default",
                get: function () {
                  return st;
                },
              },
            ]),
            e
          );
        })();
      t(window).on(lt.LOAD_DATA_API, function () {
        for (
          var e = [].slice.call(
              document.querySelectorAll('[data-spy="scroll"]')
            ),
            n = e.length;
          n--;

        ) {
          var i = t(e[n]);
          pt._jQueryInterface.call(i, i.data());
        }
      }),
        (t.fn[nt] = pt._jQueryInterface),
        (t.fn[nt].Constructor = pt),
        (t.fn[nt].noConflict = function () {
          return (t.fn[nt] = ot), pt._jQueryInterface;
        });
      var At = "bs.tab",
        ft = "." + At,
        mt = t.fn.tab,
        vt = {
          HIDE: "hide" + ft,
          HIDDEN: "hidden" + ft,
          SHOW: "show" + ft,
          SHOWN: "shown" + ft,
          CLICK_DATA_API: "click" + ft + ".data-api",
        },
        bt = "active",
        wt = ".active",
        yt = "> li > .active",
        xt = (function () {
          function e(e) {
            this._element = e;
          }
          var n = e.prototype;
          return (
            (n.show = function () {
              var e = this;
              if (
                !(
                  (this._element.parentNode &&
                    this._element.parentNode.nodeType === Node.ELEMENT_NODE &&
                    t(this._element).hasClass(bt)) ||
                  t(this._element).hasClass("disabled")
                )
              ) {
                var n,
                  i,
                  r = t(this._element).closest(".nav, .list-group")[0],
                  o = a.getSelectorFromElement(this._element);
                if (r) {
                  var s = "UL" === r.nodeName || "OL" === r.nodeName ? yt : wt;
                  i = (i = t.makeArray(t(r).find(s)))[i.length - 1];
                }
                var l = t.Event(vt.HIDE, {
                    relatedTarget: this._element,
                  }),
                  c = t.Event(vt.SHOW, {
                    relatedTarget: i,
                  });
                if (
                  (i && t(i).trigger(l),
                  t(this._element).trigger(c),
                  !c.isDefaultPrevented() && !l.isDefaultPrevented())
                ) {
                  o && (n = document.querySelector(o)),
                    this._activate(this._element, r);
                  var d = function () {
                    var n = t.Event(vt.HIDDEN, {
                        relatedTarget: e._element,
                      }),
                      r = t.Event(vt.SHOWN, {
                        relatedTarget: i,
                      });
                    t(i).trigger(n), t(e._element).trigger(r);
                  };
                  n ? this._activate(n, n.parentNode, d) : d();
                }
              }
            }),
            (n.dispose = function () {
              t.removeData(this._element, At), (this._element = null);
            }),
            (n._activate = function (e, n, i) {
              var r = this,
                o = (
                  !n || ("UL" !== n.nodeName && "OL" !== n.nodeName)
                    ? t(n).children(wt)
                    : t(n).find(yt)
                )[0],
                s = i && o && t(o).hasClass("fade"),
                l = function () {
                  return r._transitionComplete(e, o, i);
                };
              if (o && s) {
                var c = a.getTransitionDurationFromElement(o);
                t(o)
                  .removeClass("show")
                  .one(a.TRANSITION_END, l)
                  .emulateTransitionEnd(c);
              } else l();
            }),
            (n._transitionComplete = function (e, n, i) {
              if (n) {
                t(n).removeClass(bt);
                var r = t(n.parentNode).find("> .dropdown-menu .active")[0];
                r && t(r).removeClass(bt),
                  "tab" === n.getAttribute("role") &&
                    n.setAttribute("aria-selected", !1);
              }
              if (
                (t(e).addClass(bt),
                "tab" === e.getAttribute("role") &&
                  e.setAttribute("aria-selected", !0),
                a.reflow(e),
                e.classList.contains("fade") && e.classList.add("show"),
                e.parentNode && t(e.parentNode).hasClass("dropdown-menu"))
              ) {
                var o = t(e).closest(".dropdown")[0];
                if (o) {
                  var s = [].slice.call(o.querySelectorAll(".dropdown-toggle"));
                  t(s).addClass(bt);
                }
                e.setAttribute("aria-expanded", !0);
              }
              i && i();
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this),
                  r = i.data(At);
                if (
                  (r || ((r = new e(this)), i.data(At, r)),
                  "string" == typeof n)
                ) {
                  if (void 0 === r[n])
                    throw new TypeError('No method named "' + n + '"');
                  r[n]();
                }
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
            ]),
            e
          );
        })();
      t(document).on(
        vt.CLICK_DATA_API,
        '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
        function (e) {
          e.preventDefault(), xt._jQueryInterface.call(t(this), "show");
        }
      ),
        (t.fn.tab = xt._jQueryInterface),
        (t.fn.tab.Constructor = xt),
        (t.fn.tab.noConflict = function () {
          return (t.fn.tab = mt), xt._jQueryInterface;
        });
      var Ct = "toast",
        kt = "bs.toast",
        _t = "." + kt,
        It = t.fn[Ct],
        Et = {
          CLICK_DISMISS: "click.dismiss" + _t,
          HIDE: "hide" + _t,
          HIDDEN: "hidden" + _t,
          SHOW: "show" + _t,
          SHOWN: "shown" + _t,
        },
        Tt = "show",
        St = "showing",
        Lt = {
          animation: "boolean",
          autohide: "boolean",
          delay: "number",
        },
        jt = {
          animation: !0,
          autohide: !0,
          delay: 500,
        },
        Rt = (function () {
          function e(e, t) {
            (this._element = e),
              (this._config = this._getConfig(t)),
              (this._timeout = null),
              this._setListeners();
          }
          var n = e.prototype;
          return (
            (n.show = function () {
              var e = this;
              t(this._element).trigger(Et.SHOW),
                this._config.animation && this._element.classList.add("fade");
              var n = function () {
                e._element.classList.remove(St),
                  e._element.classList.add(Tt),
                  t(e._element).trigger(Et.SHOWN),
                  e._config.autohide && e.hide();
              };
              if (
                (this._element.classList.remove("hide"),
                this._element.classList.add(St),
                this._config.animation)
              ) {
                var i = a.getTransitionDurationFromElement(this._element);
                t(this._element)
                  .one(a.TRANSITION_END, n)
                  .emulateTransitionEnd(i);
              } else n();
            }),
            (n.hide = function (e) {
              var n = this;
              this._element.classList.contains(Tt) &&
                (t(this._element).trigger(Et.HIDE),
                e
                  ? this._close()
                  : (this._timeout = setTimeout(function () {
                      n._close();
                    }, this._config.delay)));
            }),
            (n.dispose = function () {
              clearTimeout(this._timeout),
                (this._timeout = null),
                this._element.classList.contains(Tt) &&
                  this._element.classList.remove(Tt),
                t(this._element).off(Et.CLICK_DISMISS),
                t.removeData(this._element, kt),
                (this._element = null),
                (this._config = null);
            }),
            (n._getConfig = function (e) {
              return (
                (e = o(
                  {},
                  jt,
                  t(this._element).data(),
                  "object" == typeof e && e ? e : {}
                )),
                a.typeCheckConfig(Ct, e, this.constructor.DefaultType),
                e
              );
            }),
            (n._setListeners = function () {
              var e = this;
              t(this._element).on(
                Et.CLICK_DISMISS,
                '[data-dismiss="toast"]',
                function () {
                  return e.hide(!0);
                }
              );
            }),
            (n._close = function () {
              var e = this,
                n = function () {
                  e._element.classList.add("hide"),
                    t(e._element).trigger(Et.HIDDEN);
                };
              if (
                (this._element.classList.remove(Tt), this._config.animation)
              ) {
                var i = a.getTransitionDurationFromElement(this._element);
                t(this._element)
                  .one(a.TRANSITION_END, n)
                  .emulateTransitionEnd(i);
              } else n();
            }),
            (e._jQueryInterface = function (n) {
              return this.each(function () {
                var i = t(this),
                  r = i.data(kt);
                if (
                  (r ||
                    ((r = new e(this, "object" == typeof n && n)),
                    i.data(kt, r)),
                  "string" == typeof n)
                ) {
                  if (void 0 === r[n])
                    throw new TypeError('No method named "' + n + '"');
                  r[n](this);
                }
              });
            }),
            r(e, null, [
              {
                key: "VERSION",
                get: function () {
                  return "4.3.1";
                },
              },
              {
                key: "DefaultType",
                get: function () {
                  return Lt;
                },
              },
              {
                key: "Default",
                get: function () {
                  return jt;
                },
              },
            ]),
            e
          );
        })();
      (t.fn[Ct] = Rt._jQueryInterface),
        (t.fn[Ct].Constructor = Rt),
        (t.fn[Ct].noConflict = function () {
          return (t.fn[Ct] = It), Rt._jQueryInterface;
        }),
        (function () {
          if (void 0 === t)
            throw new TypeError(
              "Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript."
            );
          var e = t.fn.jquery.split(" ")[0].split(".");
          if (
            (e[0] < 2 && e[1] < 9) ||
            (1 === e[0] && 9 === e[1] && e[2] < 1) ||
            4 <= e[0]
          )
            throw new Error(
              "Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0"
            );
        })(),
        (e.Util = a),
        (e.Alert = g),
        (e.Button = C),
        (e.Carousel = H),
        (e.Collapse = J),
        (e.Dropdown = ue),
        (e.Modal = ke),
        (e.Popover = tt),
        (e.Scrollspy = pt),
        (e.Tab = xt),
        (e.Toast = Rt),
        (e.Tooltip = Qe),
        Object.defineProperty(e, "__esModule", {
          value: !0,
        });
    })(t, n(11), n(32));
  },
  function (e, t, n) {
    "use strict";
    n.r(t),
      function (e) {
        /**!
         * @fileOverview Kickass library to create and place poppers near their reference elements.
         * @version 1.16.1
         * @license
         * Copyright (c) 2016 Federico Zivolo and contributors
         *
         * Permission is hereby granted, free of charge, to any person obtaining a copy
         * of this software and associated documentation files (the "Software"), to deal
         * in the Software without restriction, including without limitation the rights
         * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
         * copies of the Software, and to permit persons to whom the Software is
         * furnished to do so, subject to the following conditions:
         *
         * The above copyright notice and this permission notice shall be included in all
         * copies or substantial portions of the Software.
         *
         * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
         * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
         * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
         * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
         * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
         * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
         * SOFTWARE.
         */
        var n =
            "undefined" != typeof window &&
            "undefined" != typeof document &&
            "undefined" != typeof navigator,
          i = (function () {
            for (
              var e = ["Edge", "Trident", "Firefox"], t = 0;
              t < e.length;
              t += 1
            )
              if (n && navigator.userAgent.indexOf(e[t]) >= 0) return 1;
            return 0;
          })();
        var r =
          n && window.Promise
            ? function (e) {
                var t = !1;
                return function () {
                  t ||
                    ((t = !0),
                    window.Promise.resolve().then(function () {
                      (t = !1), e();
                    }));
                };
              }
            : function (e) {
                var t = !1;
                return function () {
                  t ||
                    ((t = !0),
                    setTimeout(function () {
                      (t = !1), e();
                    }, i));
                };
              };

        function o(e) {
          return e && "[object Function]" === {}.toString.call(e);
        }

        function s(e, t) {
          if (1 !== e.nodeType) return [];
          var n = e.ownerDocument.defaultView.getComputedStyle(e, null);
          return t ? n[t] : n;
        }

        function a(e) {
          return "HTML" === e.nodeName ? e : e.parentNode || e.host;
        }

        function l(e) {
          if (!e) return document.body;
          switch (e.nodeName) {
            case "HTML":
            case "BODY":
              return e.ownerDocument.body;
            case "#document":
              return e.body;
          }
          var t = s(e),
            n = t.overflow,
            i = t.overflowX,
            r = t.overflowY;
          return /(auto|scroll|overlay)/.test(n + r + i) ? e : l(a(e));
        }

        function c(e) {
          return e && e.referenceNode ? e.referenceNode : e;
        }
        var d = n && !(!window.MSInputMethodContext || !document.documentMode),
          u = n && /MSIE 10/.test(navigator.userAgent);

        function h(e) {
          return 11 === e ? d : 10 === e ? u : d || u;
        }

        function g(e) {
          if (!e) return document.documentElement;
          for (
            var t = h(10) ? document.body : null, n = e.offsetParent || null;
            n === t && e.nextElementSibling;

          )
            n = (e = e.nextElementSibling).offsetParent;
          var i = n && n.nodeName;
          return i && "BODY" !== i && "HTML" !== i
            ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) &&
              "static" === s(n, "position")
              ? g(n)
              : n
            : e
            ? e.ownerDocument.documentElement
            : document.documentElement;
        }

        function p(e) {
          return null !== e.parentNode ? p(e.parentNode) : e;
        }

        function A(e, t) {
          if (!(e && e.nodeType && t && t.nodeType))
            return document.documentElement;
          var n =
              e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING,
            i = n ? e : t,
            r = n ? t : e,
            o = document.createRange();
          o.setStart(i, 0), o.setEnd(r, 0);
          var s,
            a,
            l = o.commonAncestorContainer;
          if ((e !== l && t !== l) || i.contains(r))
            return "BODY" === (a = (s = l).nodeName) ||
              ("HTML" !== a && g(s.firstElementChild) !== s)
              ? g(l)
              : l;
          var c = p(e);
          return c.host ? A(c.host, t) : A(e, p(t).host);
        }

        function f(e) {
          var t =
              arguments.length > 1 && void 0 !== arguments[1]
                ? arguments[1]
                : "top",
            n = "top" === t ? "scrollTop" : "scrollLeft",
            i = e.nodeName;
          if ("BODY" === i || "HTML" === i) {
            var r = e.ownerDocument.documentElement,
              o = e.ownerDocument.scrollingElement || r;
            return o[n];
          }
          return e[n];
        }

        function m(e, t) {
          var n =
              arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
            i = f(t, "top"),
            r = f(t, "left"),
            o = n ? -1 : 1;
          return (
            (e.top += i * o),
            (e.bottom += i * o),
            (e.left += r * o),
            (e.right += r * o),
            e
          );
        }

        function v(e, t) {
          var n = "x" === t ? "Left" : "Top",
            i = "Left" === n ? "Right" : "Bottom";
          return (
            parseFloat(e["border" + n + "Width"]) +
            parseFloat(e["border" + i + "Width"])
          );
        }

        function b(e, t, n, i) {
          return Math.max(
            t["offset" + e],
            t["scroll" + e],
            n["client" + e],
            n["offset" + e],
            n["scroll" + e],
            h(10)
              ? parseInt(n["offset" + e]) +
                  parseInt(i["margin" + ("Height" === e ? "Top" : "Left")]) +
                  parseInt(i["margin" + ("Height" === e ? "Bottom" : "Right")])
              : 0
          );
        }

        function w(e) {
          var t = e.body,
            n = e.documentElement,
            i = h(10) && getComputedStyle(n);
          return {
            height: b("Height", t, n, i),
            width: b("Width", t, n, i),
          };
        }
        var y = function (e, t) {
            if (!(e instanceof t))
              throw new TypeError("Cannot call a class as a function");
          },
          x = (function () {
            function e(e, t) {
              for (var n = 0; n < t.length; n++) {
                var i = t[n];
                (i.enumerable = i.enumerable || !1),
                  (i.configurable = !0),
                  "value" in i && (i.writable = !0),
                  Object.defineProperty(e, i.key, i);
              }
            }
            return function (t, n, i) {
              return n && e(t.prototype, n), i && e(t, i), t;
            };
          })(),
          C = function (e, t, n) {
            return (
              t in e
                ? Object.defineProperty(e, t, {
                    value: n,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0,
                  })
                : (e[t] = n),
              e
            );
          },
          k =
            Object.assign ||
            function (e) {
              for (var t = 1; t < arguments.length; t++) {
                var n = arguments[t];
                for (var i in n)
                  Object.prototype.hasOwnProperty.call(n, i) && (e[i] = n[i]);
              }
              return e;
            };

        function _(e) {
          return k({}, e, {
            right: e.left + e.width,
            bottom: e.top + e.height,
          });
        }

        function I(e) {
          var t = {};
          try {
            if (h(10)) {
              t = e.getBoundingClientRect();
              var n = f(e, "top"),
                i = f(e, "left");
              (t.top += n), (t.left += i), (t.bottom += n), (t.right += i);
            } else t = e.getBoundingClientRect();
          } catch (e) {}
          var r = {
              left: t.left,
              top: t.top,
              width: t.right - t.left,
              height: t.bottom - t.top,
            },
            o = "HTML" === e.nodeName ? w(e.ownerDocument) : {},
            a = o.width || e.clientWidth || r.width,
            l = o.height || e.clientHeight || r.height,
            c = e.offsetWidth - a,
            d = e.offsetHeight - l;
          if (c || d) {
            var u = s(e);
            (c -= v(u, "x")), (d -= v(u, "y")), (r.width -= c), (r.height -= d);
          }
          return _(r);
        }

        function E(e, t) {
          var n =
              arguments.length > 2 && void 0 !== arguments[2] && arguments[2],
            i = h(10),
            r = "HTML" === t.nodeName,
            o = I(e),
            a = I(t),
            c = l(e),
            d = s(t),
            u = parseFloat(d.borderTopWidth),
            g = parseFloat(d.borderLeftWidth);
          n &&
            r &&
            ((a.top = Math.max(a.top, 0)), (a.left = Math.max(a.left, 0)));
          var p = _({
            top: o.top - a.top - u,
            left: o.left - a.left - g,
            width: o.width,
            height: o.height,
          });
          if (((p.marginTop = 0), (p.marginLeft = 0), !i && r)) {
            var A = parseFloat(d.marginTop),
              f = parseFloat(d.marginLeft);
            (p.top -= u - A),
              (p.bottom -= u - A),
              (p.left -= g - f),
              (p.right -= g - f),
              (p.marginTop = A),
              (p.marginLeft = f);
          }
          return (
            (i && !n ? t.contains(c) : t === c && "BODY" !== c.nodeName) &&
              (p = m(p, t)),
            p
          );
        }

        function T(e) {
          var t =
              arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
            n = e.ownerDocument.documentElement,
            i = E(e, n),
            r = Math.max(n.clientWidth, window.innerWidth || 0),
            o = Math.max(n.clientHeight, window.innerHeight || 0),
            s = t ? 0 : f(n),
            a = t ? 0 : f(n, "left"),
            l = {
              top: s - i.top + i.marginTop,
              left: a - i.left + i.marginLeft,
              width: r,
              height: o,
            };
          return _(l);
        }

        function S(e) {
          var t = e.nodeName;
          if ("BODY" === t || "HTML" === t) return !1;
          if ("fixed" === s(e, "position")) return !0;
          var n = a(e);
          return !!n && S(n);
        }

        function L(e) {
          if (!e || !e.parentElement || h()) return document.documentElement;
          for (var t = e.parentElement; t && "none" === s(t, "transform"); )
            t = t.parentElement;
          return t || document.documentElement;
        }

        function j(e, t, n, i) {
          var r =
              arguments.length > 4 && void 0 !== arguments[4] && arguments[4],
            o = {
              top: 0,
              left: 0,
            },
            s = r ? L(e) : A(e, c(t));
          if ("viewport" === i) o = T(s, r);
          else {
            var d = void 0;
            "scrollParent" === i
              ? "BODY" === (d = l(a(t))).nodeName &&
                (d = e.ownerDocument.documentElement)
              : (d = "window" === i ? e.ownerDocument.documentElement : i);
            var u = E(d, s, r);
            if ("HTML" !== d.nodeName || S(s)) o = u;
            else {
              var h = w(e.ownerDocument),
                g = h.height,
                p = h.width;
              (o.top += u.top - u.marginTop),
                (o.bottom = g + u.top),
                (o.left += u.left - u.marginLeft),
                (o.right = p + u.left);
            }
          }
          var f = "number" == typeof (n = n || 0);
          return (
            (o.left += f ? n : n.left || 0),
            (o.top += f ? n : n.top || 0),
            (o.right -= f ? n : n.right || 0),
            (o.bottom -= f ? n : n.bottom || 0),
            o
          );
        }

        function R(e) {
          return e.width * e.height;
        }

        function B(e, t, n, i, r) {
          var o =
            arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0;
          if (-1 === e.indexOf("auto")) return e;
          var s = j(n, i, o, r),
            a = {
              top: {
                width: s.width,
                height: t.top - s.top,
              },
              right: {
                width: s.right - t.right,
                height: s.height,
              },
              bottom: {
                width: s.width,
                height: s.bottom - t.bottom,
              },
              left: {
                width: t.left - s.left,
                height: s.height,
              },
            },
            l = Object.keys(a)
              .map(function (e) {
                return k(
                  {
                    key: e,
                  },
                  a[e],
                  {
                    area: R(a[e]),
                  }
                );
              })
              .sort(function (e, t) {
                return t.area - e.area;
              }),
            c = l.filter(function (e) {
              var t = e.width,
                i = e.height;
              return t >= n.clientWidth && i >= n.clientHeight;
            }),
            d = c.length > 0 ? c[0].key : l[0].key,
            u = e.split("-")[1];
          return d + (u ? "-" + u : "");
        }

        function M(e, t, n) {
          var i =
              arguments.length > 3 && void 0 !== arguments[3]
                ? arguments[3]
                : null,
            r = i ? L(t) : A(t, c(n));
          return E(n, r, i);
        }

        function D(e) {
          var t = e.ownerDocument.defaultView.getComputedStyle(e),
            n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0),
            i = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0);
          return {
            width: e.offsetWidth + i,
            height: e.offsetHeight + n,
          };
        }

        function O(e) {
          var t = {
            left: "right",
            right: "left",
            bottom: "top",
            top: "bottom",
          };
          return e.replace(/left|right|bottom|top/g, function (e) {
            return t[e];
          });
        }

        function H(e, t, n) {
          n = n.split("-")[0];
          var i = D(e),
            r = {
              width: i.width,
              height: i.height,
            },
            o = -1 !== ["right", "left"].indexOf(n),
            s = o ? "top" : "left",
            a = o ? "left" : "top",
            l = o ? "height" : "width",
            c = o ? "width" : "height";
          return (
            (r[s] = t[s] + t[l] / 2 - i[l] / 2),
            (r[a] = n === a ? t[a] - i[c] : t[O(a)]),
            r
          );
        }

        function W(e, t) {
          return Array.prototype.find ? e.find(t) : e.filter(t)[0];
        }

        function P(e, t, n) {
          return (
            (void 0 === n
              ? e
              : e.slice(
                  0,
                  (function (e, t, n) {
                    if (Array.prototype.findIndex)
                      return e.findIndex(function (e) {
                        return e[t] === n;
                      });
                    var i = W(e, function (e) {
                      return e[t] === n;
                    });
                    return e.indexOf(i);
                  })(e, "name", n)
                )
            ).forEach(function (e) {
              e.function &&
                console.warn(
                  "`modifier.function` is deprecated, use `modifier.fn`!"
                );
              var n = e.function || e.fn;
              e.enabled &&
                o(n) &&
                ((t.offsets.popper = _(t.offsets.popper)),
                (t.offsets.reference = _(t.offsets.reference)),
                (t = n(t, e)));
            }),
            t
          );
        }

        function N() {
          if (!this.state.isDestroyed) {
            var e = {
              instance: this,
              styles: {},
              arrowStyles: {},
              attributes: {},
              flipped: !1,
              offsets: {},
            };
            (e.offsets.reference = M(
              this.state,
              this.popper,
              this.reference,
              this.options.positionFixed
            )),
              (e.placement = B(
                this.options.placement,
                e.offsets.reference,
                this.popper,
                this.reference,
                this.options.modifiers.flip.boundariesElement,
                this.options.modifiers.flip.padding
              )),
              (e.originalPlacement = e.placement),
              (e.positionFixed = this.options.positionFixed),
              (e.offsets.popper = H(
                this.popper,
                e.offsets.reference,
                e.placement
              )),
              (e.offsets.popper.position = this.options.positionFixed
                ? "fixed"
                : "absolute"),
              (e = P(this.modifiers, e)),
              this.state.isCreated
                ? this.options.onUpdate(e)
                : ((this.state.isCreated = !0), this.options.onCreate(e));
          }
        }

        function q(e, t) {
          return e.some(function (e) {
            var n = e.name;
            return e.enabled && n === t;
          });
        }

        function z(e) {
          for (
            var t = [!1, "ms", "Webkit", "Moz", "O"],
              n = e.charAt(0).toUpperCase() + e.slice(1),
              i = 0;
            i < t.length;
            i++
          ) {
            var r = t[i],
              o = r ? "" + r + n : e;
            if (void 0 !== document.body.style[o]) return o;
          }
          return null;
        }

        function V() {
          return (
            (this.state.isDestroyed = !0),
            q(this.modifiers, "applyStyle") &&
              (this.popper.removeAttribute("x-placement"),
              (this.popper.style.position = ""),
              (this.popper.style.top = ""),
              (this.popper.style.left = ""),
              (this.popper.style.right = ""),
              (this.popper.style.bottom = ""),
              (this.popper.style.willChange = ""),
              (this.popper.style[z("transform")] = "")),
            this.disableEventListeners(),
            this.options.removeOnDestroy &&
              this.popper.parentNode.removeChild(this.popper),
            this
          );
        }

        function F(e) {
          var t = e.ownerDocument;
          return t ? t.defaultView : window;
        }

        function Q(e, t, n, i) {
          (n.updateBound = i),
            F(e).addEventListener("resize", n.updateBound, {
              passive: !0,
            });
          var r = l(e);
          return (
            (function e(t, n, i, r) {
              var o = "BODY" === t.nodeName,
                s = o ? t.ownerDocument.defaultView : t;
              s.addEventListener(n, i, {
                passive: !0,
              }),
                o || e(l(s.parentNode), n, i, r),
                r.push(s);
            })(r, "scroll", n.updateBound, n.scrollParents),
            (n.scrollElement = r),
            (n.eventsEnabled = !0),
            n
          );
        }

        function U() {
          this.state.eventsEnabled ||
            (this.state = Q(
              this.reference,
              this.options,
              this.state,
              this.scheduleUpdate
            ));
        }

        function K() {
          var e, t;
          this.state.eventsEnabled &&
            (cancelAnimationFrame(this.scheduleUpdate),
            (this.state =
              ((e = this.reference),
              (t = this.state),
              F(e).removeEventListener("resize", t.updateBound),
              t.scrollParents.forEach(function (e) {
                e.removeEventListener("scroll", t.updateBound);
              }),
              (t.updateBound = null),
              (t.scrollParents = []),
              (t.scrollElement = null),
              (t.eventsEnabled = !1),
              t)));
        }

        function X(e) {
          return "" !== e && !isNaN(parseFloat(e)) && isFinite(e);
        }

        function G(e, t) {
          Object.keys(t).forEach(function (n) {
            var i = "";
            -1 !==
              ["width", "height", "top", "right", "bottom", "left"].indexOf(
                n
              ) &&
              X(t[n]) &&
              (i = "px"),
              (e.style[n] = t[n] + i);
          });
        }
        var J = n && /Firefox/i.test(navigator.userAgent);

        function Y(e, t, n) {
          var i = W(e, function (e) {
              return e.name === t;
            }),
            r =
              !!i &&
              e.some(function (e) {
                return e.name === n && e.enabled && e.order < i.order;
              });
          if (!r) {
            var o = "`" + t + "`",
              s = "`" + n + "`";
            console.warn(
              s +
                " modifier is required by " +
                o +
                " modifier in order to work, be sure to include it before " +
                o +
                "!"
            );
          }
          return r;
        }
        var Z = [
            "auto-start",
            "auto",
            "auto-end",
            "top-start",
            "top",
            "top-end",
            "right-start",
            "right",
            "right-end",
            "bottom-end",
            "bottom",
            "bottom-start",
            "left-end",
            "left",
            "left-start",
          ],
          $ = Z.slice(3);

        function ee(e) {
          var t =
              arguments.length > 1 && void 0 !== arguments[1] && arguments[1],
            n = $.indexOf(e),
            i = $.slice(n + 1).concat($.slice(0, n));
          return t ? i.reverse() : i;
        }
        var te = "flip",
          ne = "clockwise",
          ie = "counterclockwise";

        function re(e, t, n, i) {
          var r = [0, 0],
            o = -1 !== ["right", "left"].indexOf(i),
            s = e.split(/(\+|\-)/).map(function (e) {
              return e.trim();
            }),
            a = s.indexOf(
              W(s, function (e) {
                return -1 !== e.search(/,|\s/);
              })
            );
          s[a] &&
            -1 === s[a].indexOf(",") &&
            console.warn(
              "Offsets separated by white space(s) are deprecated, use a comma (,) instead."
            );
          var l = /\s*,\s*|\s+/,
            c =
              -1 !== a
                ? [
                    s.slice(0, a).concat([s[a].split(l)[0]]),
                    [s[a].split(l)[1]].concat(s.slice(a + 1)),
                  ]
                : [s];
          return (
            (c = c.map(function (e, i) {
              var r = (1 === i ? !o : o) ? "height" : "width",
                s = !1;
              return e
                .reduce(function (e, t) {
                  return "" === e[e.length - 1] && -1 !== ["+", "-"].indexOf(t)
                    ? ((e[e.length - 1] = t), (s = !0), e)
                    : s
                    ? ((e[e.length - 1] += t), (s = !1), e)
                    : e.concat(t);
                }, [])
                .map(function (e) {
                  return (function (e, t, n, i) {
                    var r = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),
                      o = +r[1],
                      s = r[2];
                    if (!o) return e;
                    if (0 === s.indexOf("%")) {
                      var a = void 0;
                      switch (s) {
                        case "%p":
                          a = n;
                          break;
                        case "%":
                        case "%r":
                        default:
                          a = i;
                      }
                      return (_(a)[t] / 100) * o;
                    }
                    if ("vh" === s || "vw" === s) {
                      return (
                        (("vh" === s
                          ? Math.max(
                              document.documentElement.clientHeight,
                              window.innerHeight || 0
                            )
                          : Math.max(
                              document.documentElement.clientWidth,
                              window.innerWidth || 0
                            )) /
                          100) *
                        o
                      );
                    }
                    return o;
                  })(e, r, t, n);
                });
            })).forEach(function (e, t) {
              e.forEach(function (n, i) {
                X(n) && (r[t] += n * ("-" === e[i - 1] ? -1 : 1));
              });
            }),
            r
          );
        }
        var oe = {
            placement: "bottom",
            positionFixed: !1,
            eventsEnabled: !0,
            removeOnDestroy: !1,
            onCreate: function () {},
            onUpdate: function () {},
            modifiers: {
              shift: {
                order: 100,
                enabled: !0,
                fn: function (e) {
                  var t = e.placement,
                    n = t.split("-")[0],
                    i = t.split("-")[1];
                  if (i) {
                    var r = e.offsets,
                      o = r.reference,
                      s = r.popper,
                      a = -1 !== ["bottom", "top"].indexOf(n),
                      l = a ? "left" : "top",
                      c = a ? "width" : "height",
                      d = {
                        start: C({}, l, o[l]),
                        end: C({}, l, o[l] + o[c] - s[c]),
                      };
                    e.offsets.popper = k({}, s, d[i]);
                  }
                  return e;
                },
              },
              offset: {
                order: 200,
                enabled: !0,
                fn: function (e, t) {
                  var n = t.offset,
                    i = e.placement,
                    r = e.offsets,
                    o = r.popper,
                    s = r.reference,
                    a = i.split("-")[0],
                    l = void 0;
                  return (
                    (l = X(+n) ? [+n, 0] : re(n, o, s, a)),
                    "left" === a
                      ? ((o.top += l[0]), (o.left -= l[1]))
                      : "right" === a
                      ? ((o.top += l[0]), (o.left += l[1]))
                      : "top" === a
                      ? ((o.left += l[0]), (o.top -= l[1]))
                      : "bottom" === a && ((o.left += l[0]), (o.top += l[1])),
                    (e.popper = o),
                    e
                  );
                },
                offset: 0,
              },
              preventOverflow: {
                order: 300,
                enabled: !0,
                fn: function (e, t) {
                  var n = t.boundariesElement || g(e.instance.popper);
                  e.instance.reference === n && (n = g(n));
                  var i = z("transform"),
                    r = e.instance.popper.style,
                    o = r.top,
                    s = r.left,
                    a = r[i];
                  (r.top = ""), (r.left = ""), (r[i] = "");
                  var l = j(
                    e.instance.popper,
                    e.instance.reference,
                    t.padding,
                    n,
                    e.positionFixed
                  );
                  (r.top = o), (r.left = s), (r[i] = a), (t.boundaries = l);
                  var c = t.priority,
                    d = e.offsets.popper,
                    u = {
                      primary: function (e) {
                        var n = d[e];
                        return (
                          d[e] < l[e] &&
                            !t.escapeWithReference &&
                            (n = Math.max(d[e], l[e])),
                          C({}, e, n)
                        );
                      },
                      secondary: function (e) {
                        var n = "right" === e ? "left" : "top",
                          i = d[n];
                        return (
                          d[e] > l[e] &&
                            !t.escapeWithReference &&
                            (i = Math.min(
                              d[n],
                              l[e] - ("right" === e ? d.width : d.height)
                            )),
                          C({}, n, i)
                        );
                      },
                    };
                  return (
                    c.forEach(function (e) {
                      var t =
                        -1 !== ["left", "top"].indexOf(e)
                          ? "primary"
                          : "secondary";
                      d = k({}, d, u[t](e));
                    }),
                    (e.offsets.popper = d),
                    e
                  );
                },
                priority: ["left", "right", "top", "bottom"],
                padding: 5,
                boundariesElement: "scrollParent",
              },
              keepTogether: {
                order: 400,
                enabled: !0,
                fn: function (e) {
                  var t = e.offsets,
                    n = t.popper,
                    i = t.reference,
                    r = e.placement.split("-")[0],
                    o = Math.floor,
                    s = -1 !== ["top", "bottom"].indexOf(r),
                    a = s ? "right" : "bottom",
                    l = s ? "left" : "top",
                    c = s ? "width" : "height";
                  return (
                    n[a] < o(i[l]) && (e.offsets.popper[l] = o(i[l]) - n[c]),
                    n[l] > o(i[a]) && (e.offsets.popper[l] = o(i[a])),
                    e
                  );
                },
              },
              arrow: {
                order: 500,
                enabled: !0,
                fn: function (e, t) {
                  var n;
                  if (!Y(e.instance.modifiers, "arrow", "keepTogether"))
                    return e;
                  var i = t.element;
                  if ("string" == typeof i) {
                    if (!(i = e.instance.popper.querySelector(i))) return e;
                  } else if (!e.instance.popper.contains(i))
                    return (
                      console.warn(
                        "WARNING: `arrow.element` must be child of its popper element!"
                      ),
                      e
                    );
                  var r = e.placement.split("-")[0],
                    o = e.offsets,
                    a = o.popper,
                    l = o.reference,
                    c = -1 !== ["left", "right"].indexOf(r),
                    d = c ? "height" : "width",
                    u = c ? "Top" : "Left",
                    h = u.toLowerCase(),
                    g = c ? "left" : "top",
                    p = c ? "bottom" : "right",
                    A = D(i)[d];
                  l[p] - A < a[h] && (e.offsets.popper[h] -= a[h] - (l[p] - A)),
                    l[h] + A > a[p] && (e.offsets.popper[h] += l[h] + A - a[p]),
                    (e.offsets.popper = _(e.offsets.popper));
                  var f = l[h] + l[d] / 2 - A / 2,
                    m = s(e.instance.popper),
                    v = parseFloat(m["margin" + u]),
                    b = parseFloat(m["border" + u + "Width"]),
                    w = f - e.offsets.popper[h] - v - b;
                  return (
                    (w = Math.max(Math.min(a[d] - A, w), 0)),
                    (e.arrowElement = i),
                    (e.offsets.arrow =
                      (C((n = {}), h, Math.round(w)), C(n, g, ""), n)),
                    e
                  );
                },
                element: "[x-arrow]",
              },
              flip: {
                order: 600,
                enabled: !0,
                fn: function (e, t) {
                  if (q(e.instance.modifiers, "inner")) return e;
                  if (e.flipped && e.placement === e.originalPlacement)
                    return e;
                  var n = j(
                      e.instance.popper,
                      e.instance.reference,
                      t.padding,
                      t.boundariesElement,
                      e.positionFixed
                    ),
                    i = e.placement.split("-")[0],
                    r = O(i),
                    o = e.placement.split("-")[1] || "",
                    s = [];
                  switch (t.behavior) {
                    case te:
                      s = [i, r];
                      break;
                    case ne:
                      s = ee(i);
                      break;
                    case ie:
                      s = ee(i, !0);
                      break;
                    default:
                      s = t.behavior;
                  }
                  return (
                    s.forEach(function (a, l) {
                      if (i !== a || s.length === l + 1) return e;
                      (i = e.placement.split("-")[0]), (r = O(i));
                      var c = e.offsets.popper,
                        d = e.offsets.reference,
                        u = Math.floor,
                        h =
                          ("left" === i && u(c.right) > u(d.left)) ||
                          ("right" === i && u(c.left) < u(d.right)) ||
                          ("top" === i && u(c.bottom) > u(d.top)) ||
                          ("bottom" === i && u(c.top) < u(d.bottom)),
                        g = u(c.left) < u(n.left),
                        p = u(c.right) > u(n.right),
                        A = u(c.top) < u(n.top),
                        f = u(c.bottom) > u(n.bottom),
                        m =
                          ("left" === i && g) ||
                          ("right" === i && p) ||
                          ("top" === i && A) ||
                          ("bottom" === i && f),
                        v = -1 !== ["top", "bottom"].indexOf(i),
                        b =
                          !!t.flipVariations &&
                          ((v && "start" === o && g) ||
                            (v && "end" === o && p) ||
                            (!v && "start" === o && A) ||
                            (!v && "end" === o && f)),
                        w =
                          !!t.flipVariationsByContent &&
                          ((v && "start" === o && p) ||
                            (v && "end" === o && g) ||
                            (!v && "start" === o && f) ||
                            (!v && "end" === o && A)),
                        y = b || w;
                      (h || m || y) &&
                        ((e.flipped = !0),
                        (h || m) && (i = s[l + 1]),
                        y &&
                          (o = (function (e) {
                            return "end" === e
                              ? "start"
                              : "start" === e
                              ? "end"
                              : e;
                          })(o)),
                        (e.placement = i + (o ? "-" + o : "")),
                        (e.offsets.popper = k(
                          {},
                          e.offsets.popper,
                          H(e.instance.popper, e.offsets.reference, e.placement)
                        )),
                        (e = P(e.instance.modifiers, e, "flip")));
                    }),
                    e
                  );
                },
                behavior: "flip",
                padding: 5,
                boundariesElement: "viewport",
                flipVariations: !1,
                flipVariationsByContent: !1,
              },
              inner: {
                order: 700,
                enabled: !1,
                fn: function (e) {
                  var t = e.placement,
                    n = t.split("-")[0],
                    i = e.offsets,
                    r = i.popper,
                    o = i.reference,
                    s = -1 !== ["left", "right"].indexOf(n),
                    a = -1 === ["top", "left"].indexOf(n);
                  return (
                    (r[s ? "left" : "top"] =
                      o[n] - (a ? r[s ? "width" : "height"] : 0)),
                    (e.placement = O(t)),
                    (e.offsets.popper = _(r)),
                    e
                  );
                },
              },
              hide: {
                order: 800,
                enabled: !0,
                fn: function (e) {
                  if (!Y(e.instance.modifiers, "hide", "preventOverflow"))
                    return e;
                  var t = e.offsets.reference,
                    n = W(e.instance.modifiers, function (e) {
                      return "preventOverflow" === e.name;
                    }).boundaries;
                  if (
                    t.bottom < n.top ||
                    t.left > n.right ||
                    t.top > n.bottom ||
                    t.right < n.left
                  ) {
                    if (!0 === e.hide) return e;
                    (e.hide = !0), (e.attributes["x-out-of-boundaries"] = "");
                  } else {
                    if (!1 === e.hide) return e;
                    (e.hide = !1), (e.attributes["x-out-of-boundaries"] = !1);
                  }
                  return e;
                },
              },
              computeStyle: {
                order: 850,
                enabled: !0,
                fn: function (e, t) {
                  var n = t.x,
                    i = t.y,
                    r = e.offsets.popper,
                    o = W(e.instance.modifiers, function (e) {
                      return "applyStyle" === e.name;
                    }).gpuAcceleration;
                  void 0 !== o &&
                    console.warn(
                      "WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"
                    );
                  var s = void 0 !== o ? o : t.gpuAcceleration,
                    a = g(e.instance.popper),
                    l = I(a),
                    c = {
                      position: r.position,
                    },
                    d = (function (e, t) {
                      var n = e.offsets,
                        i = n.popper,
                        r = n.reference,
                        o = Math.round,
                        s = Math.floor,
                        a = function (e) {
                          return e;
                        },
                        l = o(r.width),
                        c = o(i.width),
                        d = -1 !== ["left", "right"].indexOf(e.placement),
                        u = -1 !== e.placement.indexOf("-"),
                        h = t ? (d || u || l % 2 == c % 2 ? o : s) : a,
                        g = t ? o : a;
                      return {
                        left: h(
                          l % 2 == 1 && c % 2 == 1 && !u && t
                            ? i.left - 1
                            : i.left
                        ),
                        top: g(i.top),
                        bottom: g(i.bottom),
                        right: h(i.right),
                      };
                    })(e, window.devicePixelRatio < 2 || !J),
                    u = "bottom" === n ? "top" : "bottom",
                    h = "right" === i ? "left" : "right",
                    p = z("transform"),
                    A = void 0,
                    f = void 0;
                  if (
                    ((f =
                      "bottom" === u
                        ? "HTML" === a.nodeName
                          ? -a.clientHeight + d.bottom
                          : -l.height + d.bottom
                        : d.top),
                    (A =
                      "right" === h
                        ? "HTML" === a.nodeName
                          ? -a.clientWidth + d.right
                          : -l.width + d.right
                        : d.left),
                    s && p)
                  )
                    (c[p] = "translate3d(" + A + "px, " + f + "px, 0)"),
                      (c[u] = 0),
                      (c[h] = 0),
                      (c.willChange = "transform");
                  else {
                    var m = "bottom" === u ? -1 : 1,
                      v = "right" === h ? -1 : 1;
                    (c[u] = f * m),
                      (c[h] = A * v),
                      (c.willChange = u + ", " + h);
                  }
                  var b = {
                    "x-placement": e.placement,
                  };
                  return (
                    (e.attributes = k({}, b, e.attributes)),
                    (e.styles = k({}, c, e.styles)),
                    (e.arrowStyles = k({}, e.offsets.arrow, e.arrowStyles)),
                    e
                  );
                },
                gpuAcceleration: !0,
                x: "bottom",
                y: "right",
              },
              applyStyle: {
                order: 900,
                enabled: !0,
                fn: function (e) {
                  var t, n;
                  return (
                    G(e.instance.popper, e.styles),
                    (t = e.instance.popper),
                    (n = e.attributes),
                    Object.keys(n).forEach(function (e) {
                      !1 !== n[e]
                        ? t.setAttribute(e, n[e])
                        : t.removeAttribute(e);
                    }),
                    e.arrowElement &&
                      Object.keys(e.arrowStyles).length &&
                      G(e.arrowElement, e.arrowStyles),
                    e
                  );
                },
                onLoad: function (e, t, n, i, r) {
                  var o = M(r, t, e, n.positionFixed),
                    s = B(
                      n.placement,
                      o,
                      t,
                      e,
                      n.modifiers.flip.boundariesElement,
                      n.modifiers.flip.padding
                    );
                  return (
                    t.setAttribute("x-placement", s),
                    G(t, {
                      position: n.positionFixed ? "fixed" : "absolute",
                    }),
                    n
                  );
                },
                gpuAcceleration: void 0,
              },
            },
          },
          se = (function () {
            function e(t, n) {
              var i = this,
                s =
                  arguments.length > 2 && void 0 !== arguments[2]
                    ? arguments[2]
                    : {};
              y(this, e),
                (this.scheduleUpdate = function () {
                  return requestAnimationFrame(i.update);
                }),
                (this.update = r(this.update.bind(this))),
                (this.options = k({}, e.Defaults, s)),
                (this.state = {
                  isDestroyed: !1,
                  isCreated: !1,
                  scrollParents: [],
                }),
                (this.reference = t && t.jquery ? t[0] : t),
                (this.popper = n && n.jquery ? n[0] : n),
                (this.options.modifiers = {}),
                Object.keys(k({}, e.Defaults.modifiers, s.modifiers)).forEach(
                  function (t) {
                    i.options.modifiers[t] = k(
                      {},
                      e.Defaults.modifiers[t] || {},
                      s.modifiers ? s.modifiers[t] : {}
                    );
                  }
                ),
                (this.modifiers = Object.keys(this.options.modifiers)
                  .map(function (e) {
                    return k(
                      {
                        name: e,
                      },
                      i.options.modifiers[e]
                    );
                  })
                  .sort(function (e, t) {
                    return e.order - t.order;
                  })),
                this.modifiers.forEach(function (e) {
                  e.enabled &&
                    o(e.onLoad) &&
                    e.onLoad(i.reference, i.popper, i.options, e, i.state);
                }),
                this.update();
              var a = this.options.eventsEnabled;
              a && this.enableEventListeners(), (this.state.eventsEnabled = a);
            }
            return (
              x(e, [
                {
                  key: "update",
                  value: function () {
                    return N.call(this);
                  },
                },
                {
                  key: "destroy",
                  value: function () {
                    return V.call(this);
                  },
                },
                {
                  key: "enableEventListeners",
                  value: function () {
                    return U.call(this);
                  },
                },
                {
                  key: "disableEventListeners",
                  value: function () {
                    return K.call(this);
                  },
                },
              ]),
              e
            );
          })();
        (se.Utils = ("undefined" != typeof window ? window : e).PopperUtils),
          (se.placements = Z),
          (se.Defaults = oe),
          (t.default = se);
      }.call(this, n(10));
  },
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t) {
    (window.showDevicesDropdown = function (e) {
      $(".devices-list").hide(),
        $(".devices-list." + e).show(),
        $(".header-dropdown.devices-menu").removeClass("hide");
    }),
      (window.hideDevicesDropdown = function () {
        $(".header-dropdown.devices-menu").addClass("hide");
      }),
      (window.showMainMenuDropdown = function () {
        $(".menu-button.right-menu i").html(
          '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 36 36"><path class="clr-i-outline clr-i-outline-path-1" d="M19.41 18l8.29-8.29a1 1 0 0 0-1.41-1.41L18 16.59l-8.29-8.3a1 1 0 0 0-1.42 1.42l8.3 8.29l-8.3 8.29A1 1 0 1 0 9.7 27.7l8.3-8.29l8.29 8.29a1 1 0 0 0 1.41-1.41z" fill="#626262"/></svg>'
        ),
          $(".header-dropdown.header-menu").removeClass("hide");
      }),
      (window.hideMainMenuDropdown = function () {
        $(".menu-button.right-menu i").html(
          '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><g fill="none"><path d="M4 4h4v4H4V4z" fill="#626262"/><path d="M4 10h4v4H4v-4z" fill="#626262"/><path d="M8 16H4v4h4v-4z" fill="#626262"/><path d="M10 4h4v4h-4V4z" fill="#626262"/><path d="M14 10h-4v4h4v-4z" fill="#626262"/><path d="M10 16h4v4h-4v-4z" fill="#626262"/><path d="M20 4h-4v4h4V4z" fill="#626262"/><path d="M16 10h4v4h-4v-4z" fill="#626262"/><path d="M20 16h-4v4h4v-4z" fill="#626262"/></g></svg>'
        ),
          $(".header-dropdown.header-menu").addClass("hide"),
          $(".header-dropdown.devices-menu").addClass("hide");
      }),
      (window.beeAlertTimeout = null),
      (window.beeAlert = function (e, t) {
        $(".footer-dropup.bee-alert").find(".message label").html(e),
          $(".footer-dropup.bee-alert").find(".message p").html(t),
          $(".footer-dropup.bee-alert").removeClass("hide"),
          beeAlertTimeout && clearTimeout(beeAlertTimeout),
          (beeAlertTimeout = setTimeout(() => {
            $(".footer-dropup.bee-alert").addClass("hide");
          }, 2e3));
      }),
      (window.goToSecondPage = function () {
        $(".menu-button.left-menu i").html(
          '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"><path fill="#626262" d="M80 96h352v32H80z"/><path fill="#626262" d="M80 240h352v32H80z"/><path fill="#626262" d="M80 384h352v32H80z"/></svg>'
        ),
          $(".themewp-sidebar").removeClass("is-main-page"),
          $(".themewp-sidebar").removeClass("is-third-page"),
          $(".themewp-sidebar").addClass("is-second-page"),
          currentEditor.unselect();
      }),
      (window.goToThirdPage = function () {
        $(".menu-button.left-menu i").html(
          '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512"><path fill="#626262" d="M80 96h352v32H80z"/><path fill="#626262" d="M80 240h352v32H80z"/><path fill="#626262" d="M80 384h352v32H80z"/></svg>'
        ),
          $(".themewp-sidebar").removeClass("is-main-page"),
          $(".themewp-sidebar").removeClass("is-second-page"),
          $(".themewp-sidebar").addClass("is-third-page");
      }),
      (window.goToMainPage = function () {
        $(".menu-button.left-menu i").html(
          '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" focusable="false" width="1em" height="1em" style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M30 23v-2h-2.09a5.96 5.96 0 0 0-1.024-2.47l1.478-1.48l-1.414-1.414l-1.479 1.479A5.958 5.958 0 0 0 23 16.09V14h-2v2.09a5.958 5.958 0 0 0-2.47 1.024l-1.48-1.478l-1.414 1.414l1.479 1.479A5.962 5.962 0 0 0 16.09 21H14v2h2.09a5.962 5.962 0 0 0 1.024 2.47l-1.478 1.48l1.414 1.414l1.479-1.479A5.958 5.958 0 0 0 21 27.91V30h2v-2.09a5.958 5.958 0 0 0 2.47-1.024l1.48 1.478l1.414-1.414l-1.479-1.479A5.96 5.96 0 0 0 27.91 23zm-8 3a4 4 0 1 1 4-4a4.005 4.005 0 0 1-4 4z" fill="#626262"/><path d="M28 6a2 2 0 0 0-2-2h-4V2h-2v2h-8V2h-2v2H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h4v-2H6V6h4v2h2V6h8v2h2V6h4v6h2z" fill="#626262"/></svg>'
        ),
          $(".themewp-sidebar").removeClass("is-second-page"),
          $(".themewp-sidebar").removeClass("is-third-page"),
          $(".themewp-sidebar").addClass("is-main-page"),
          currentEditor.unselect();
      }),
      (window.goToListFieldsPage = function () {
        $(".second-page").hide(),
          $(".second-page.list-fields").show(),
          goToSecondPage();
      }),
      (window.goToGlobalTagsPage = function () {
        $(".second-page").hide(),
          $(".second-page.global-tags").show(),
          goToSecondPage();
      }),
      (window.showHtmlWidgetsPage = function () {
        $(".second-page").hide(), $(".second-page.html-widgets").show();
      }),
      (window.goToHtmlWidgetsPage = function () {
        showHtmlWidgetsPage(), goToSecondPage();
      }),
      (window.goToSwitchTemplatePage = function () {
        $(".second-page").hide(),
          $(".second-page.switch-template").show(),
          goToSecondPage();
      }),
      (window.hideDropup = function () {
        $(".footer-dropup").addClass("hide"),
          $(".show-history").removeClass("active"),
          hideMainMenuDropdown();
      }),
      (window.clickIframe = function () {
        hideDropup();
      }),
      $(document).ready(function () {
        $(document).on("click", ".show-history", function () {
          var e = $(this);
          $(".footer-dropup.history").hasClass("hide")
            ? (e.addClass("active"),
              $(".footer-dropup.history").removeClass("hide"))
            : (e.removeClass("active"),
              $(".footer-dropup.history").addClass("hide"));
        }),
          $(document).on("change keyup", "input.main-search", function () {
            $(this)
              .closest(".main-search-group")
              .find(".not-item-search")
              .removeClass("hide");
          }),
          $(document).on("click", ".menu-button.right-menu", function () {
            $(".header-dropdown.header-menu").hasClass("hide")
              ? showMainMenuDropdown()
              : hideMainMenuDropdown();
          }),
          $(document).on(
            "click",
            ".themewp-sidebar.is-second-page .menu-button.left-menu, .themewp-sidebar.is-third-page .menu-button.left-menu",
            function () {
              hideMainMenuDropdown(), goToMainPage();
            }
          ),
          $(document).on(
            "click",
            ".themewp-sidebar.is-main-page .menu-button.left-menu",
            function () {
              hideMainMenuDropdown(), currentEditor.goToHomeTab();
            }
          ),
          $(document).on(
            "click",
            ".source-code-header .close-button",
            function () {
              $("body").removeClass("bp-source-mode"), $(".view-source").hide();
            }
          ),
          $(document).on("click", ".bp-template-clear", function () {
            currentEditor.clearDesign(), hideMainMenuDropdown();
          }),
          $(document).on("click", ".device-button", function () {
            var e = $(this).attr("data-value");
            $(".device-button").removeClass("active"),
              $(this).addClass("active"),
              $(".menu-device").removeClass("active"),
              $(".menu-device-" + $(this).attr("data-device")).addClass(
                "active"
              ),
              $(".themewp-content").removeClass(function (e, t) {
                return (t.match(/(^|\s)device-mode-\S+/g) || []).join(" ");
              }),
              $(".themewp-content").addClass("device-mode-" + e),
              "default-size" == e && hideDevicesDropdown();
          }),
          $(document).on("keyup change", ".widget-search", function () {
            var e = $(this).val(),
              t = !0;
            $(".widgets-container .widget-item").each(function () {
              $(this)
                .find(".body__title")
                .html()
                .toLowerCase()
                .includes(e.toLowerCase().trim())
                ? ($(this).show(), (t = !1))
                : $(this).hide();
            }),
              $(".widgets-container .not-item-search").remove(),
              t &&
                $(".widgets-container").append(
                  '<p class="my-1 mx-2 not-item-search">No items found!</p>'
                );
          }),
          $(document).on("click", ".ag-toogle-button", function () {
            var e = $(this),
              t = e
                .closest(".attributes-group, .atts-group")
                .find(".attributes, .atts-group-container");
            t.is(":visible")
              ? (t.slideUp(100), e.removeClass("open"))
              : (t.slideDown(100), e.addClass("open"));
          }),
          $(document).mouseup(function (e) {
            var t = $(
              ".footer-dropup, .dropup-button, .menu-button, .header-dropdown"
            );
            t.is(e.target) || 0 !== t.has(e.target).length || hideDropup();
          }),
          $(document).on("change", ".color-picker [type=color]", function () {
            $(this)
              .closest(".color-picker")
              .find("[type=text]")
              .val($(this).val());
          }),
          $(document).on("change", ".color-picker [type=text]", function () {
            $(this)
              .closest(".color-picker")
              .find("[type=color]")
              .val($(this).val());
          });
      });
  },
  function (e, t, n) {},
  function (e, t, n) {
    (function (e) {
      ace.define(
        "ace/mode/doc_comment_highlight_rules",
        [
          "require",
          "exports",
          "module",
          "ace/lib/oop",
          "ace/mode/text_highlight_rules",
        ],
        function (e, t, n) {
          "use strict";
          var i = e("../lib/oop"),
            r = e("./text_highlight_rules").TextHighlightRules,
            o = function () {
              this.$rules = {
                start: [
                  {
                    token: "comment.doc.tag",
                    regex: "@[\\w\\d_]+",
                  },
                  o.getTagRule(),
                  {
                    defaultToken: "comment.doc",
                    caseInsensitive: !0,
                  },
                ],
              };
            };
          i.inherits(o, r),
            (o.getTagRule = function (e) {
              return {
                token: "comment.doc.tag.storage.type",
                regex: "\\b(?:TODO|FIXME|XXX|HACK)\\b",
              };
            }),
            (o.getStartRule = function (e) {
              return {
                token: "comment.doc",
                regex: "\\/\\*(?=\\*)",
                next: e,
              };
            }),
            (o.getEndRule = function (e) {
              return {
                token: "comment.doc",
                regex: "\\*\\/",
                next: e,
              };
            }),
            (t.DocCommentHighlightRules = o);
        }
      ),
        ace.define(
          "ace/mode/javascript_highlight_rules",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/doc_comment_highlight_rules",
            "ace/mode/text_highlight_rules",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("./doc_comment_highlight_rules").DocCommentHighlightRules,
              o = e("./text_highlight_rules").TextHighlightRules,
              s = "[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*",
              a = function (e) {
                var t = this.createKeywordMapper(
                    {
                      "variable.language":
                        "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",
                      keyword:
                        "const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static",
                      "storage.type": "const|let|var|function",
                      "constant.language": "null|Infinity|NaN|undefined",
                      "support.function": "alert",
                      "constant.language.boolean": "true|false",
                    },
                    "identifier"
                  ),
                  n =
                    "\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";
                (this.$rules = {
                  no_regex: [
                    r.getStartRule("doc-start"),
                    c("no_regex"),
                    {
                      token: "string",
                      regex: "'(?=.)",
                      next: "qstring",
                    },
                    {
                      token: "string",
                      regex: '"(?=.)',
                      next: "qqstring",
                    },
                    {
                      token: "constant.numeric",
                      regex: /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/,
                    },
                    {
                      token: "constant.numeric",
                      regex: /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/,
                    },
                    {
                      token: [
                        "storage.type",
                        "punctuation.operator",
                        "support.function",
                        "punctuation.operator",
                        "entity.name.function",
                        "text",
                        "keyword.operator",
                      ],
                      regex:
                        "(" + s + ")(\\.)(prototype)(\\.)(" + s + ")(\\s*)(=)",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "storage.type",
                        "punctuation.operator",
                        "entity.name.function",
                        "text",
                        "keyword.operator",
                        "text",
                        "storage.type",
                        "text",
                        "paren.lparen",
                      ],
                      regex:
                        "(" +
                        s +
                        ")(\\.)(" +
                        s +
                        ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "entity.name.function",
                        "text",
                        "keyword.operator",
                        "text",
                        "storage.type",
                        "text",
                        "paren.lparen",
                      ],
                      regex: "(" + s + ")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "storage.type",
                        "punctuation.operator",
                        "entity.name.function",
                        "text",
                        "keyword.operator",
                        "text",
                        "storage.type",
                        "text",
                        "entity.name.function",
                        "text",
                        "paren.lparen",
                      ],
                      regex:
                        "(" +
                        s +
                        ")(\\.)(" +
                        s +
                        ")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "storage.type",
                        "text",
                        "entity.name.function",
                        "text",
                        "paren.lparen",
                      ],
                      regex: "(function)(\\s+)(" + s + ")(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "entity.name.function",
                        "text",
                        "punctuation.operator",
                        "text",
                        "storage.type",
                        "text",
                        "paren.lparen",
                      ],
                      regex: "(" + s + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: [
                        "text",
                        "text",
                        "storage.type",
                        "text",
                        "paren.lparen",
                      ],
                      regex: "(:)(\\s*)(function)(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: "keyword",
                      regex: "from(?=\\s*('|\"))",
                    },
                    {
                      token: "keyword",
                      regex:
                        "(?:case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void)\\b",
                      next: "start",
                    },
                    {
                      token: ["support.constant"],
                      regex: /that\b/,
                    },
                    {
                      token: [
                        "storage.type",
                        "punctuation.operator",
                        "support.function.firebug",
                      ],
                      regex:
                        /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/,
                    },
                    {
                      token: t,
                      regex: s,
                    },
                    {
                      token: "punctuation.operator",
                      regex: /[.](?![.])/,
                      next: "property",
                    },
                    {
                      token: "storage.type",
                      regex: /=>/,
                      next: "start",
                    },
                    {
                      token: "keyword.operator",
                      regex:
                        /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,
                      next: "start",
                    },
                    {
                      token: "punctuation.operator",
                      regex: /[?:,;.]/,
                      next: "start",
                    },
                    {
                      token: "paren.lparen",
                      regex: /[\[({]/,
                      next: "start",
                    },
                    {
                      token: "paren.rparen",
                      regex: /[\])}]/,
                    },
                    {
                      token: "comment",
                      regex: /^#!.*$/,
                    },
                  ],
                  property: [
                    {
                      token: "text",
                      regex: "\\s+",
                    },
                    {
                      token: [
                        "storage.type",
                        "punctuation.operator",
                        "entity.name.function",
                        "text",
                        "keyword.operator",
                        "text",
                        "storage.type",
                        "text",
                        "entity.name.function",
                        "text",
                        "paren.lparen",
                      ],
                      regex:
                        "(" +
                        s +
                        ")(\\.)(" +
                        s +
                        ")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",
                      next: "function_arguments",
                    },
                    {
                      token: "punctuation.operator",
                      regex: /[.](?![.])/,
                    },
                    {
                      token: "support.function",
                      regex:
                        /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/,
                    },
                    {
                      token: "support.function.dom",
                      regex:
                        /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/,
                    },
                    {
                      token: "support.constant",
                      regex:
                        /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/,
                    },
                    {
                      token: "identifier",
                      regex: s,
                    },
                    {
                      regex: "",
                      token: "empty",
                      next: "no_regex",
                    },
                  ],
                  start: [
                    r.getStartRule("doc-start"),
                    c("start"),
                    {
                      token: "string.regexp",
                      regex: "\\/",
                      next: "regex",
                    },
                    {
                      token: "text",
                      regex: "\\s+|^$",
                      next: "start",
                    },
                    {
                      token: "empty",
                      regex: "",
                      next: "no_regex",
                    },
                  ],
                  regex: [
                    {
                      token: "regexp.keyword.operator",
                      regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)",
                    },
                    {
                      token: "string.regexp",
                      regex: "/[sxngimy]*",
                      next: "no_regex",
                    },
                    {
                      token: "invalid",
                      regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/,
                    },
                    {
                      token: "constant.language.escape",
                      regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/,
                    },
                    {
                      token: "constant.language.delimiter",
                      regex: /\|/,
                    },
                    {
                      token: "constant.language.escape",
                      regex: /\[\^?/,
                      next: "regex_character_class",
                    },
                    {
                      token: "empty",
                      regex: "$",
                      next: "no_regex",
                    },
                    {
                      defaultToken: "string.regexp",
                    },
                  ],
                  regex_character_class: [
                    {
                      token: "regexp.charclass.keyword.operator",
                      regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)",
                    },
                    {
                      token: "constant.language.escape",
                      regex: "]",
                      next: "regex",
                    },
                    {
                      token: "constant.language.escape",
                      regex: "-",
                    },
                    {
                      token: "empty",
                      regex: "$",
                      next: "no_regex",
                    },
                    {
                      defaultToken: "string.regexp.charachterclass",
                    },
                  ],
                  function_arguments: [
                    {
                      token: "variable.parameter",
                      regex: s,
                    },
                    {
                      token: "punctuation.operator",
                      regex: "[, ]+",
                    },
                    {
                      token: "punctuation.operator",
                      regex: "$",
                    },
                    {
                      token: "empty",
                      regex: "",
                      next: "no_regex",
                    },
                  ],
                  qqstring: [
                    {
                      token: "constant.language.escape",
                      regex: n,
                    },
                    {
                      token: "string",
                      regex: "\\\\$",
                      consumeLineEnd: !0,
                    },
                    {
                      token: "string",
                      regex: '"|$',
                      next: "no_regex",
                    },
                    {
                      defaultToken: "string",
                    },
                  ],
                  qstring: [
                    {
                      token: "constant.language.escape",
                      regex: n,
                    },
                    {
                      token: "string",
                      regex: "\\\\$",
                      consumeLineEnd: !0,
                    },
                    {
                      token: "string",
                      regex: "'|$",
                      next: "no_regex",
                    },
                    {
                      defaultToken: "string",
                    },
                  ],
                }),
                  (e && e.noES6) ||
                    (this.$rules.no_regex.unshift(
                      {
                        regex: "[{}]",
                        onMatch: function (e, t, n) {
                          if (
                            ((this.next = "{" == e ? this.nextState : ""),
                            "{" == e && n.length)
                          )
                            n.unshift("start", t);
                          else if (
                            "}" == e &&
                            n.length &&
                            (n.shift(),
                            (this.next = n.shift()),
                            -1 != this.next.indexOf("string") ||
                              -1 != this.next.indexOf("jsx"))
                          )
                            return "paren.quasi.end";
                          return "{" == e ? "paren.lparen" : "paren.rparen";
                        },
                        nextState: "start",
                      },
                      {
                        token: "string.quasi.start",
                        regex: /`/,
                        push: [
                          {
                            token: "constant.language.escape",
                            regex: n,
                          },
                          {
                            token: "paren.quasi.start",
                            regex: /\${/,
                            push: "start",
                          },
                          {
                            token: "string.quasi.end",
                            regex: /`/,
                            next: "pop",
                          },
                          {
                            defaultToken: "string.quasi",
                          },
                        ],
                      }
                    ),
                    (e && 0 == e.jsx) || l.call(this)),
                  this.embedRules(r, "doc-", [r.getEndRule("no_regex")]),
                  this.normalizeRules();
              };

            function l() {
              var e = s.replace("\\d", "\\d\\-"),
                t = {
                  onMatch: function (e, t, n) {
                    var i = "/" == e.charAt(1) ? 2 : 1;
                    return (
                      1 == i
                        ? (t != this.nextState
                            ? n.unshift(this.next, this.nextState, 0)
                            : n.unshift(this.next),
                          n[2]++)
                        : 2 == i &&
                          t == this.nextState &&
                          (n[1]--,
                          (!n[1] || n[1] < 0) && (n.shift(), n.shift())),
                      [
                        {
                          type:
                            "meta.tag.punctuation." +
                            (1 == i ? "" : "end-") +
                            "tag-open.xml",
                          value: e.slice(0, i),
                        },
                        {
                          type: "meta.tag.tag-name.xml",
                          value: e.substr(i),
                        },
                      ]
                    );
                  },
                  regex: "</?" + e,
                  next: "jsxAttributes",
                  nextState: "jsx",
                };
              this.$rules.start.unshift(t);
              var n = {
                regex: "{",
                token: "paren.quasi.start",
                push: "start",
              };
              (this.$rules.jsx = [
                n,
                t,
                {
                  include: "reference",
                },
                {
                  defaultToken: "string",
                },
              ]),
                (this.$rules.jsxAttributes = [
                  {
                    token: "meta.tag.punctuation.tag-close.xml",
                    regex: "/?>",
                    onMatch: function (e, t, n) {
                      return (
                        t == n[0] && n.shift(),
                        2 == e.length &&
                          (n[0] == this.nextState && n[1]--,
                          (!n[1] || n[1] < 0) && n.splice(0, 2)),
                        (this.next = n[0] || "start"),
                        [
                          {
                            type: this.token,
                            value: e,
                          },
                        ]
                      );
                    },
                    nextState: "jsx",
                  },
                  n,
                  c("jsxAttributes"),
                  {
                    token: "entity.other.attribute-name.xml",
                    regex: e,
                  },
                  {
                    token: "keyword.operator.attribute-equals.xml",
                    regex: "=",
                  },
                  {
                    token: "text.tag-whitespace.xml",
                    regex: "\\s+",
                  },
                  {
                    token: "string.attribute-value.xml",
                    regex: "'",
                    stateName: "jsx_attr_q",
                    push: [
                      {
                        token: "string.attribute-value.xml",
                        regex: "'",
                        next: "pop",
                      },
                      {
                        include: "reference",
                      },
                      {
                        defaultToken: "string.attribute-value.xml",
                      },
                    ],
                  },
                  {
                    token: "string.attribute-value.xml",
                    regex: '"',
                    stateName: "jsx_attr_qq",
                    push: [
                      {
                        token: "string.attribute-value.xml",
                        regex: '"',
                        next: "pop",
                      },
                      {
                        include: "reference",
                      },
                      {
                        defaultToken: "string.attribute-value.xml",
                      },
                    ],
                  },
                  t,
                ]),
                (this.$rules.reference = [
                  {
                    token: "constant.language.escape.reference.xml",
                    regex:
                      "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)",
                  },
                ]);
            }

            function c(e) {
              return [
                {
                  token: "comment",
                  regex: /\/\*/,
                  next: [
                    r.getTagRule(),
                    {
                      token: "comment",
                      regex: "\\*\\/",
                      next: e || "pop",
                    },
                    {
                      defaultToken: "comment",
                      caseInsensitive: !0,
                    },
                  ],
                },
                {
                  token: "comment",
                  regex: "\\/\\/",
                  next: [
                    r.getTagRule(),
                    {
                      token: "comment",
                      regex: "$|^",
                      next: e || "pop",
                    },
                    {
                      defaultToken: "comment",
                      caseInsensitive: !0,
                    },
                  ],
                },
              ];
            }
            i.inherits(a, o), (t.JavaScriptHighlightRules = a);
          }
        ),
        ace.define(
          "ace/mode/matching_brace_outdent",
          ["require", "exports", "module", "ace/range"],
          function (e, t, n) {
            "use strict";
            var i = e("../range").Range,
              r = function () {};
            (function () {
              (this.checkOutdent = function (e, t) {
                return !!/^\s+$/.test(e) && /^\s*\}/.test(t);
              }),
                (this.autoOutdent = function (e, t) {
                  var n = e.getLine(t).match(/^(\s*\})/);
                  if (!n) return 0;
                  var r = n[1].length,
                    o = e.findMatchingBracket({
                      row: t,
                      column: r,
                    });
                  if (!o || o.row == t) return 0;
                  var s = this.$getIndent(e.getLine(o.row));
                  e.replace(new i(t, 0, t, r - 1), s);
                }),
                (this.$getIndent = function (e) {
                  return e.match(/^\s*/)[0];
                });
            }).call(r.prototype),
              (t.MatchingBraceOutdent = r);
          }
        ),
        ace.define(
          "ace/mode/folding/cstyle",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/range",
            "ace/mode/folding/fold_mode",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = e("../../range").Range,
              o = e("./fold_mode").FoldMode,
              s = (t.FoldMode = function (e) {
                e &&
                  ((this.foldingStartMarker = new RegExp(
                    this.foldingStartMarker.source.replace(
                      /\|[^|]*?$/,
                      "|" + e.start
                    )
                  )),
                  (this.foldingStopMarker = new RegExp(
                    this.foldingStopMarker.source.replace(
                      /\|[^|]*?$/,
                      "|" + e.end
                    )
                  )));
              });
            i.inherits(s, o),
              function () {
                (this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/),
                  (this.foldingStopMarker =
                    /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/),
                  (this.singleLineBlockCommentRe = /^\s*(\/\*).*\*\/\s*$/),
                  (this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/),
                  (this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/),
                  (this._getFoldWidgetBase = this.getFoldWidget),
                  (this.getFoldWidget = function (e, t, n) {
                    var i = e.getLine(n);
                    if (
                      this.singleLineBlockCommentRe.test(i) &&
                      !this.startRegionRe.test(i) &&
                      !this.tripleStarBlockCommentRe.test(i)
                    )
                      return "";
                    var r = this._getFoldWidgetBase(e, t, n);
                    return !r && this.startRegionRe.test(i) ? "start" : r;
                  }),
                  (this.getFoldWidgetRange = function (e, t, n, i) {
                    var r,
                      o = e.getLine(n);
                    if (this.startRegionRe.test(o))
                      return this.getCommentRegionBlock(e, o, n);
                    if ((r = o.match(this.foldingStartMarker))) {
                      var s = r.index;
                      if (r[1]) return this.openingBracketBlock(e, r[1], n, s);
                      var a = e.getCommentFoldRange(n, s + r[0].length, 1);
                      return (
                        a &&
                          !a.isMultiLine() &&
                          (i
                            ? (a = this.getSectionRange(e, n))
                            : "all" != t && (a = null)),
                        a
                      );
                    }
                    if (
                      "markbegin" !== t &&
                      (r = o.match(this.foldingStopMarker))
                    ) {
                      s = r.index + r[0].length;
                      return r[1]
                        ? this.closingBracketBlock(e, r[1], n, s)
                        : e.getCommentFoldRange(n, s, -1);
                    }
                  }),
                  (this.getSectionRange = function (e, t) {
                    for (
                      var n = e.getLine(t),
                        i = n.search(/\S/),
                        o = t,
                        s = n.length,
                        a = (t += 1),
                        l = e.getLength();
                      ++t < l;

                    ) {
                      var c = (n = e.getLine(t)).search(/\S/);
                      if (-1 !== c) {
                        if (i > c) break;
                        var d = this.getFoldWidgetRange(e, "all", t);
                        if (d) {
                          if (d.start.row <= o) break;
                          if (d.isMultiLine()) t = d.end.row;
                          else if (i == c) break;
                        }
                        a = t;
                      }
                    }
                    return new r(o, s, a, e.getLine(a).length);
                  }),
                  (this.getCommentRegionBlock = function (e, t, n) {
                    for (
                      var i = t.search(/\s*$/),
                        o = e.getLength(),
                        s = n,
                        a = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,
                        l = 1;
                      ++n < o;

                    ) {
                      t = e.getLine(n);
                      var c = a.exec(t);
                      if (c && (c[1] ? l-- : l++, !l)) break;
                    }
                    if (n > s) return new r(s, i, n, t.length);
                  });
              }.call(s.prototype);
          }
        ),
        ace.define(
          "ace/mode/javascript",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/text",
            "ace/mode/javascript_highlight_rules",
            "ace/mode/matching_brace_outdent",
            "ace/worker/worker_client",
            "ace/mode/behaviour/cstyle",
            "ace/mode/folding/cstyle",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("./text").Mode,
              o = e("./javascript_highlight_rules").JavaScriptHighlightRules,
              s = e("./matching_brace_outdent").MatchingBraceOutdent,
              a = e("../worker/worker_client").WorkerClient,
              l = e("./behaviour/cstyle").CstyleBehaviour,
              c = e("./folding/cstyle").FoldMode,
              d = function () {
                (this.HighlightRules = o),
                  (this.$outdent = new s()),
                  (this.$behaviour = new l()),
                  (this.foldingRules = new c());
              };
            i.inherits(d, r),
              function () {
                (this.lineCommentStart = "//"),
                  (this.blockComment = {
                    start: "/*",
                    end: "*/",
                  }),
                  (this.$quotes = {
                    '"': '"',
                    "'": "'",
                    "`": "`",
                  }),
                  (this.getNextLineIndent = function (e, t, n) {
                    var i = this.$getIndent(t),
                      r = this.getTokenizer().getLineTokens(t, e),
                      o = r.tokens,
                      s = r.state;
                    if (o.length && "comment" == o[o.length - 1].type) return i;
                    if ("start" == e || "no_regex" == e)
                      (a = t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/)) &&
                        (i += n);
                    else if ("doc-start" == e) {
                      if ("start" == s || "no_regex" == s) return "";
                      var a;
                      (a = t.match(/^\s*(\/?)\*/)) &&
                        (a[1] && (i += " "), (i += "* "));
                    }
                    return i;
                  }),
                  (this.checkOutdent = function (e, t, n) {
                    return this.$outdent.checkOutdent(t, n);
                  }),
                  (this.autoOutdent = function (e, t, n) {
                    this.$outdent.autoOutdent(t, n);
                  }),
                  (this.createWorker = function (e) {
                    var t = new a(
                      ["ace"],
                      "ace/mode/javascript_worker",
                      "JavaScriptWorker"
                    );
                    return (
                      t.attachToDocument(e.getDocument()),
                      t.on("annotate", function (t) {
                        e.setAnnotations(t.data);
                      }),
                      t.on("terminate", function () {
                        e.clearAnnotations();
                      }),
                      t
                    );
                  }),
                  (this.$id = "ace/mode/javascript"),
                  (this.snippetFileId = "ace/snippets/javascript");
              }.call(d.prototype),
              (t.Mode = d);
          }
        ),
        ace.define(
          "ace/mode/css_highlight_rules",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/mode/text_highlight_rules",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r =
                (e("../lib/lang"),
                e("./text_highlight_rules").TextHighlightRules),
              o = (t.supportType =
                "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"),
              s = (t.supportFunction = "rgb|rgba|url|attr|counter|counters"),
              a = (t.supportConstant =
                "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom"),
              l = (t.supportConstantColor =
                "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"),
              c = (t.supportConstantFonts =
                "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"),
              d = (t.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"),
              u = (t.pseudoElements =
                "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"),
              h = (t.pseudoClasses =
                "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"),
              g = function () {
                var e = this.createKeywordMapper(
                  {
                    "support.function": s,
                    "support.constant": a,
                    "support.type": o,
                    "support.constant.color": l,
                    "support.constant.fonts": c,
                  },
                  "text",
                  !0
                );
                (this.$rules = {
                  start: [
                    {
                      include: ["strings", "url", "comments"],
                    },
                    {
                      token: "paren.lparen",
                      regex: "\\{",
                      next: "ruleset",
                    },
                    {
                      token: "paren.rparen",
                      regex: "\\}",
                    },
                    {
                      token: "string",
                      regex: "@(?!viewport)",
                      next: "media",
                    },
                    {
                      token: "keyword",
                      regex: "#[a-z0-9-_]+",
                    },
                    {
                      token: "keyword",
                      regex: "%",
                    },
                    {
                      token: "variable",
                      regex: "\\.[a-z0-9-_]+",
                    },
                    {
                      token: "string",
                      regex: ":[a-z0-9-_]+",
                    },
                    {
                      token: "constant.numeric",
                      regex: d,
                    },
                    {
                      token: "constant",
                      regex: "[a-z0-9-_]+",
                    },
                    {
                      caseInsensitive: !0,
                    },
                  ],
                  media: [
                    {
                      include: ["strings", "url", "comments"],
                    },
                    {
                      token: "paren.lparen",
                      regex: "\\{",
                      next: "start",
                    },
                    {
                      token: "paren.rparen",
                      regex: "\\}",
                      next: "start",
                    },
                    {
                      token: "string",
                      regex: ";",
                      next: "start",
                    },
                    {
                      token: "keyword",
                      regex:
                        "(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)",
                    },
                  ],
                  comments: [
                    {
                      token: "comment",
                      regex: "\\/\\*",
                      push: [
                        {
                          token: "comment",
                          regex: "\\*\\/",
                          next: "pop",
                        },
                        {
                          defaultToken: "comment",
                        },
                      ],
                    },
                  ],
                  ruleset: [
                    {
                      regex: "-(webkit|ms|moz|o)-",
                      token: "text",
                    },
                    {
                      token: "punctuation.operator",
                      regex: "[:;]",
                    },
                    {
                      token: "paren.rparen",
                      regex: "\\}",
                      next: "start",
                    },
                    {
                      include: ["strings", "url", "comments"],
                    },
                    {
                      token: ["constant.numeric", "keyword"],
                      regex:
                        "(" +
                        d +
                        ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)",
                    },
                    {
                      token: "constant.numeric",
                      regex: d,
                    },
                    {
                      token: "constant.numeric",
                      regex: "#[a-f0-9]{6}",
                    },
                    {
                      token: "constant.numeric",
                      regex: "#[a-f0-9]{3}",
                    },
                    {
                      token: [
                        "punctuation",
                        "entity.other.attribute-name.pseudo-element.css",
                      ],
                      regex: u,
                    },
                    {
                      token: [
                        "punctuation",
                        "entity.other.attribute-name.pseudo-class.css",
                      ],
                      regex: h,
                    },
                    {
                      include: "url",
                    },
                    {
                      token: e,
                      regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*",
                    },
                    {
                      caseInsensitive: !0,
                    },
                  ],
                  url: [
                    {
                      token: "support.function",
                      regex: "(?:url(:?-prefix)?|domain|regexp)\\(",
                      push: [
                        {
                          token: "support.function",
                          regex: "\\)",
                          next: "pop",
                        },
                        {
                          defaultToken: "string",
                        },
                      ],
                    },
                  ],
                  strings: [
                    {
                      token: "string.start",
                      regex: "'",
                      push: [
                        {
                          token: "string.end",
                          regex: "'|$",
                          next: "pop",
                        },
                        {
                          include: "escapes",
                        },
                        {
                          token: "constant.language.escape",
                          regex: /\\$/,
                          consumeLineEnd: !0,
                        },
                        {
                          defaultToken: "string",
                        },
                      ],
                    },
                    {
                      token: "string.start",
                      regex: '"',
                      push: [
                        {
                          token: "string.end",
                          regex: '"|$',
                          next: "pop",
                        },
                        {
                          include: "escapes",
                        },
                        {
                          token: "constant.language.escape",
                          regex: /\\$/,
                          consumeLineEnd: !0,
                        },
                        {
                          defaultToken: "string",
                        },
                      ],
                    },
                  ],
                  escapes: [
                    {
                      token: "constant.language.escape",
                      regex: /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/,
                    },
                  ],
                }),
                  this.normalizeRules();
              };
            i.inherits(g, r), (t.CssHighlightRules = g);
          }
        ),
        ace.define(
          "ace/mode/css_completions",
          ["require", "exports", "module"],
          function (e, t, n) {
            "use strict";
            var i = {
                background: {
                  "#$0": 1,
                },
                "background-color": {
                  "#$0": 1,
                  transparent: 1,
                  fixed: 1,
                },
                "background-image": {
                  "url('/$0')": 1,
                },
                "background-repeat": {
                  repeat: 1,
                  "repeat-x": 1,
                  "repeat-y": 1,
                  "no-repeat": 1,
                  inherit: 1,
                },
                "background-position": {
                  bottom: 2,
                  center: 2,
                  left: 2,
                  right: 2,
                  top: 2,
                  inherit: 2,
                },
                "background-attachment": {
                  scroll: 1,
                  fixed: 1,
                },
                "background-size": {
                  cover: 1,
                  contain: 1,
                },
                "background-clip": {
                  "border-box": 1,
                  "padding-box": 1,
                  "content-box": 1,
                },
                "background-origin": {
                  "border-box": 1,
                  "padding-box": 1,
                  "content-box": 1,
                },
                border: {
                  "solid $0": 1,
                  "dashed $0": 1,
                  "dotted $0": 1,
                  "#$0": 1,
                },
                "border-color": {
                  "#$0": 1,
                },
                "border-style": {
                  solid: 2,
                  dashed: 2,
                  dotted: 2,
                  double: 2,
                  groove: 2,
                  hidden: 2,
                  inherit: 2,
                  inset: 2,
                  none: 2,
                  outset: 2,
                  ridged: 2,
                },
                "border-collapse": {
                  collapse: 1,
                  separate: 1,
                },
                bottom: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                clear: {
                  left: 1,
                  right: 1,
                  both: 1,
                  none: 1,
                },
                color: {
                  "#$0": 1,
                  "rgb(#$00,0,0)": 1,
                },
                cursor: {
                  default: 1,
                  pointer: 1,
                  move: 1,
                  text: 1,
                  wait: 1,
                  help: 1,
                  progress: 1,
                  "n-resize": 1,
                  "ne-resize": 1,
                  "e-resize": 1,
                  "se-resize": 1,
                  "s-resize": 1,
                  "sw-resize": 1,
                  "w-resize": 1,
                  "nw-resize": 1,
                },
                display: {
                  none: 1,
                  block: 1,
                  inline: 1,
                  "inline-block": 1,
                  "table-cell": 1,
                },
                "empty-cells": {
                  show: 1,
                  hide: 1,
                },
                float: {
                  left: 1,
                  right: 1,
                  none: 1,
                },
                "font-family": {
                  Arial: 2,
                  "Comic Sans MS": 2,
                  Consolas: 2,
                  "Courier New": 2,
                  Courier: 2,
                  Georgia: 2,
                  Monospace: 2,
                  "Sans-Serif": 2,
                  "Segoe UI": 2,
                  Tahoma: 2,
                  "Times New Roman": 2,
                  "Trebuchet MS": 2,
                  Verdana: 1,
                },
                "font-size": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "font-weight": {
                  bold: 1,
                  normal: 1,
                },
                "font-style": {
                  italic: 1,
                  normal: 1,
                },
                "font-variant": {
                  normal: 1,
                  "small-caps": 1,
                },
                height: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                left: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "letter-spacing": {
                  normal: 1,
                },
                "line-height": {
                  normal: 1,
                },
                "list-style-type": {
                  none: 1,
                  disc: 1,
                  circle: 1,
                  square: 1,
                  decimal: 1,
                  "decimal-leading-zero": 1,
                  "lower-roman": 1,
                  "upper-roman": 1,
                  "lower-greek": 1,
                  "lower-latin": 1,
                  "upper-latin": 1,
                  georgian: 1,
                  "lower-alpha": 1,
                  "upper-alpha": 1,
                },
                margin: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "margin-right": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "margin-left": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "margin-top": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "margin-bottom": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "max-height": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "max-width": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "min-height": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "min-width": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                overflow: {
                  hidden: 1,
                  visible: 1,
                  auto: 1,
                  scroll: 1,
                },
                "overflow-x": {
                  hidden: 1,
                  visible: 1,
                  auto: 1,
                  scroll: 1,
                },
                "overflow-y": {
                  hidden: 1,
                  visible: 1,
                  auto: 1,
                  scroll: 1,
                },
                padding: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "padding-top": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "padding-right": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "padding-bottom": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "padding-left": {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "page-break-after": {
                  auto: 1,
                  always: 1,
                  avoid: 1,
                  left: 1,
                  right: 1,
                },
                "page-break-before": {
                  auto: 1,
                  always: 1,
                  avoid: 1,
                  left: 1,
                  right: 1,
                },
                position: {
                  absolute: 1,
                  relative: 1,
                  fixed: 1,
                  static: 1,
                },
                right: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "table-layout": {
                  fixed: 1,
                  auto: 1,
                },
                "text-decoration": {
                  none: 1,
                  underline: 1,
                  "line-through": 1,
                  blink: 1,
                },
                "text-align": {
                  left: 1,
                  right: 1,
                  center: 1,
                  justify: 1,
                },
                "text-transform": {
                  capitalize: 1,
                  uppercase: 1,
                  lowercase: 1,
                  none: 1,
                },
                top: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "vertical-align": {
                  top: 1,
                  bottom: 1,
                },
                visibility: {
                  hidden: 1,
                  visible: 1,
                },
                "white-space": {
                  nowrap: 1,
                  normal: 1,
                  pre: 1,
                  "pre-line": 1,
                  "pre-wrap": 1,
                },
                width: {
                  px: 1,
                  em: 1,
                  "%": 1,
                },
                "word-spacing": {
                  normal: 1,
                },
                filter: {
                  "alpha(opacity=$0100)": 1,
                },
                "text-shadow": {
                  "$02px 2px 2px #777": 1,
                },
                "text-overflow": {
                  "ellipsis-word": 1,
                  clip: 1,
                  ellipsis: 1,
                },
                "-moz-border-radius": 1,
                "-moz-border-radius-topright": 1,
                "-moz-border-radius-bottomright": 1,
                "-moz-border-radius-topleft": 1,
                "-moz-border-radius-bottomleft": 1,
                "-webkit-border-radius": 1,
                "-webkit-border-top-right-radius": 1,
                "-webkit-border-top-left-radius": 1,
                "-webkit-border-bottom-right-radius": 1,
                "-webkit-border-bottom-left-radius": 1,
                "-moz-box-shadow": 1,
                "-webkit-box-shadow": 1,
                transform: {
                  "rotate($00deg)": 1,
                  "skew($00deg)": 1,
                },
                "-moz-transform": {
                  "rotate($00deg)": 1,
                  "skew($00deg)": 1,
                },
                "-webkit-transform": {
                  "rotate($00deg)": 1,
                  "skew($00deg)": 1,
                },
              },
              r = function () {};
            (function () {
              (this.completionsDefined = !1),
                (this.defineCompletions = function () {
                  if (document) {
                    var e = document.createElement("c").style;
                    for (var t in e)
                      if ("string" == typeof e[t]) {
                        var n = t.replace(/[A-Z]/g, function (e) {
                          return "-" + e.toLowerCase();
                        });
                        i.hasOwnProperty(n) || (i[n] = 1);
                      }
                  }
                  this.completionsDefined = !0;
                }),
                (this.getCompletions = function (e, t, n, i) {
                  if (
                    (this.completionsDefined || this.defineCompletions(),
                    "ruleset" === e || "ace/mode/scss" == t.$mode.$id)
                  ) {
                    var r = t.getLine(n.row).substr(0, n.column);
                    return /:[^;]+$/.test(r)
                      ? (/([\w\-]+):[^:]*$/.test(r),
                        this.getPropertyValueCompletions(e, t, n, i))
                      : this.getPropertyCompletions(e, t, n, i);
                  }
                  return [];
                }),
                (this.getPropertyCompletions = function (e, t, n, r) {
                  return Object.keys(i).map(function (e) {
                    return {
                      caption: e,
                      snippet: e + ": $0;",
                      meta: "property",
                      score: 1e6,
                    };
                  });
                }),
                (this.getPropertyValueCompletions = function (e, t, n, r) {
                  var o = t.getLine(n.row).substr(0, n.column),
                    s = (/([\w\-]+):[^:]*$/.exec(o) || {})[1];
                  if (!s) return [];
                  var a = [];
                  return (
                    s in i &&
                      "object" == typeof i[s] &&
                      (a = Object.keys(i[s])),
                    a.map(function (e) {
                      return {
                        caption: e,
                        snippet: e,
                        meta: "property value",
                        score: 1e6,
                      };
                    })
                  );
                });
            }).call(r.prototype),
              (t.CssCompletions = r);
          }
        ),
        ace.define(
          "ace/mode/behaviour/css",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/behaviour",
            "ace/mode/behaviour/cstyle",
            "ace/token_iterator",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = (e("../behaviour").Behaviour, e("./cstyle").CstyleBehaviour),
              o = e("../../token_iterator").TokenIterator,
              s = function () {
                this.inherit(r),
                  this.add("colon", "insertion", function (e, t, n, i, r) {
                    if (":" === r && n.selection.isEmpty()) {
                      var s = n.getCursorPosition(),
                        a = new o(i, s.row, s.column),
                        l = a.getCurrentToken();
                      if (
                        (l && l.value.match(/\s+/) && (l = a.stepBackward()),
                        l && "support.type" === l.type)
                      ) {
                        var c = i.doc.getLine(s.row);
                        if (":" === c.substring(s.column, s.column + 1))
                          return {
                            text: "",
                            selection: [1, 1],
                          };
                        if (/^(\s+[^;]|\s*$)/.test(c.substring(s.column)))
                          return {
                            text: ":;",
                            selection: [1, 1],
                          };
                      }
                    }
                  }),
                  this.add("colon", "deletion", function (e, t, n, i, r) {
                    var s = i.doc.getTextRange(r);
                    if (!r.isMultiLine() && ":" === s) {
                      var a = n.getCursorPosition(),
                        l = new o(i, a.row, a.column),
                        c = l.getCurrentToken();
                      if (
                        (c && c.value.match(/\s+/) && (c = l.stepBackward()),
                        c && "support.type" === c.type)
                      )
                        if (
                          ";" ===
                          i.doc
                            .getLine(r.start.row)
                            .substring(r.end.column, r.end.column + 1)
                        )
                          return r.end.column++, r;
                    }
                  }),
                  this.add("semicolon", "insertion", function (e, t, n, i, r) {
                    if (";" === r && n.selection.isEmpty()) {
                      var o = n.getCursorPosition();
                      if (
                        ";" ===
                        i.doc.getLine(o.row).substring(o.column, o.column + 1)
                      )
                        return {
                          text: "",
                          selection: [1, 1],
                        };
                    }
                  }),
                  this.add("!important", "insertion", function (e, t, n, i, r) {
                    if ("!" === r && n.selection.isEmpty()) {
                      var o = n.getCursorPosition(),
                        s = i.doc.getLine(o.row);
                      if (/^\s*(;|}|$)/.test(s.substring(o.column)))
                        return {
                          text: "!important",
                          selection: [10, 10],
                        };
                    }
                  });
              };
            i.inherits(s, r), (t.CssBehaviour = s);
          }
        ),
        ace.define(
          "ace/mode/css",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/text",
            "ace/mode/css_highlight_rules",
            "ace/mode/matching_brace_outdent",
            "ace/worker/worker_client",
            "ace/mode/css_completions",
            "ace/mode/behaviour/css",
            "ace/mode/folding/cstyle",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("./text").Mode,
              o = e("./css_highlight_rules").CssHighlightRules,
              s = e("./matching_brace_outdent").MatchingBraceOutdent,
              a = e("../worker/worker_client").WorkerClient,
              l = e("./css_completions").CssCompletions,
              c = e("./behaviour/css").CssBehaviour,
              d = e("./folding/cstyle").FoldMode,
              u = function () {
                (this.HighlightRules = o),
                  (this.$outdent = new s()),
                  (this.$behaviour = new c()),
                  (this.$completer = new l()),
                  (this.foldingRules = new d());
              };
            i.inherits(u, r),
              function () {
                (this.foldingRules = "cStyle"),
                  (this.blockComment = {
                    start: "/*",
                    end: "*/",
                  }),
                  (this.getNextLineIndent = function (e, t, n) {
                    var i = this.$getIndent(t),
                      r = this.getTokenizer().getLineTokens(t, e).tokens;
                    return (
                      (r.length && "comment" == r[r.length - 1].type) ||
                        (t.match(/^.*\{\s*$/) && (i += n)),
                      i
                    );
                  }),
                  (this.checkOutdent = function (e, t, n) {
                    return this.$outdent.checkOutdent(t, n);
                  }),
                  (this.autoOutdent = function (e, t, n) {
                    this.$outdent.autoOutdent(t, n);
                  }),
                  (this.getCompletions = function (e, t, n, i) {
                    return this.$completer.getCompletions(e, t, n, i);
                  }),
                  (this.createWorker = function (e) {
                    var t = new a(["ace"], "ace/mode/css_worker", "Worker");
                    return (
                      t.attachToDocument(e.getDocument()),
                      t.on("annotate", function (t) {
                        e.setAnnotations(t.data);
                      }),
                      t.on("terminate", function () {
                        e.clearAnnotations();
                      }),
                      t
                    );
                  }),
                  (this.$id = "ace/mode/css"),
                  (this.snippetFileId = "ace/snippets/css");
              }.call(u.prototype),
              (t.Mode = u);
          }
        ),
        ace.define(
          "ace/mode/xml_highlight_rules",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/text_highlight_rules",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("./text_highlight_rules").TextHighlightRules,
              o = function (e) {
                var t = "[_:a-zA-ZÀ-][-_:.a-zA-Z0-9À-]*";
                (this.$rules = {
                  start: [
                    {
                      token: "string.cdata.xml",
                      regex: "<\\!\\[CDATA\\[",
                      next: "cdata",
                    },
                    {
                      token: [
                        "punctuation.instruction.xml",
                        "keyword.instruction.xml",
                      ],
                      regex: "(<\\?)(" + t + ")",
                      next: "processing_instruction",
                    },
                    {
                      token: "comment.start.xml",
                      regex: "<\\!--",
                      next: "comment",
                    },
                    {
                      token: ["xml-pe.doctype.xml", "xml-pe.doctype.xml"],
                      regex: "(<\\!)(DOCTYPE)(?=[\\s])",
                      next: "doctype",
                      caseInsensitive: !0,
                    },
                    {
                      include: "tag",
                    },
                    {
                      token: "text.end-tag-open.xml",
                      regex: "</",
                    },
                    {
                      token: "text.tag-open.xml",
                      regex: "<",
                    },
                    {
                      include: "reference",
                    },
                    {
                      defaultToken: "text.xml",
                    },
                  ],
                  processing_instruction: [
                    {
                      token:
                        "entity.other.attribute-name.decl-attribute-name.xml",
                      regex: t,
                    },
                    {
                      token: "keyword.operator.decl-attribute-equals.xml",
                      regex: "=",
                    },
                    {
                      include: "whitespace",
                    },
                    {
                      include: "string",
                    },
                    {
                      token: "punctuation.xml-decl.xml",
                      regex: "\\?>",
                      next: "start",
                    },
                  ],
                  doctype: [
                    {
                      include: "whitespace",
                    },
                    {
                      include: "string",
                    },
                    {
                      token: "xml-pe.doctype.xml",
                      regex: ">",
                      next: "start",
                    },
                    {
                      token: "xml-pe.xml",
                      regex: "[-_a-zA-Z0-9:]+",
                    },
                    {
                      token: "punctuation.int-subset",
                      regex: "\\[",
                      push: "int_subset",
                    },
                  ],
                  int_subset: [
                    {
                      token: "text.xml",
                      regex: "\\s+",
                    },
                    {
                      token: "punctuation.int-subset.xml",
                      regex: "]",
                      next: "pop",
                    },
                    {
                      token: [
                        "punctuation.markup-decl.xml",
                        "keyword.markup-decl.xml",
                      ],
                      regex: "(<\\!)(" + t + ")",
                      push: [
                        {
                          token: "text",
                          regex: "\\s+",
                        },
                        {
                          token: "punctuation.markup-decl.xml",
                          regex: ">",
                          next: "pop",
                        },
                        {
                          include: "string",
                        },
                      ],
                    },
                  ],
                  cdata: [
                    {
                      token: "string.cdata.xml",
                      regex: "\\]\\]>",
                      next: "start",
                    },
                    {
                      token: "text.xml",
                      regex: "\\s+",
                    },
                    {
                      token: "text.xml",
                      regex: "(?:[^\\]]|\\](?!\\]>))+",
                    },
                  ],
                  comment: [
                    {
                      token: "comment.end.xml",
                      regex: "--\x3e",
                      next: "start",
                    },
                    {
                      defaultToken: "comment.xml",
                    },
                  ],
                  reference: [
                    {
                      token: "constant.language.escape.reference.xml",
                      regex:
                        "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)",
                    },
                  ],
                  attr_reference: [
                    {
                      token:
                        "constant.language.escape.reference.attribute-value.xml",
                      regex:
                        "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)",
                    },
                  ],
                  tag: [
                    {
                      token: [
                        "meta.tag.punctuation.tag-open.xml",
                        "meta.tag.punctuation.end-tag-open.xml",
                        "meta.tag.tag-name.xml",
                      ],
                      regex: "(?:(<)|(</))((?:" + t + ":)?" + t + ")",
                      next: [
                        {
                          include: "attributes",
                        },
                        {
                          token: "meta.tag.punctuation.tag-close.xml",
                          regex: "/?>",
                          next: "start",
                        },
                      ],
                    },
                  ],
                  tag_whitespace: [
                    {
                      token: "text.tag-whitespace.xml",
                      regex: "\\s+",
                    },
                  ],
                  whitespace: [
                    {
                      token: "text.whitespace.xml",
                      regex: "\\s+",
                    },
                  ],
                  string: [
                    {
                      token: "string.xml",
                      regex: "'",
                      push: [
                        {
                          token: "string.xml",
                          regex: "'",
                          next: "pop",
                        },
                        {
                          defaultToken: "string.xml",
                        },
                      ],
                    },
                    {
                      token: "string.xml",
                      regex: '"',
                      push: [
                        {
                          token: "string.xml",
                          regex: '"',
                          next: "pop",
                        },
                        {
                          defaultToken: "string.xml",
                        },
                      ],
                    },
                  ],
                  attributes: [
                    {
                      token: "entity.other.attribute-name.xml",
                      regex: t,
                    },
                    {
                      token: "keyword.operator.attribute-equals.xml",
                      regex: "=",
                    },
                    {
                      include: "tag_whitespace",
                    },
                    {
                      include: "attribute_value",
                    },
                  ],
                  attribute_value: [
                    {
                      token: "string.attribute-value.xml",
                      regex: "'",
                      push: [
                        {
                          token: "string.attribute-value.xml",
                          regex: "'",
                          next: "pop",
                        },
                        {
                          include: "attr_reference",
                        },
                        {
                          defaultToken: "string.attribute-value.xml",
                        },
                      ],
                    },
                    {
                      token: "string.attribute-value.xml",
                      regex: '"',
                      push: [
                        {
                          token: "string.attribute-value.xml",
                          regex: '"',
                          next: "pop",
                        },
                        {
                          include: "attr_reference",
                        },
                        {
                          defaultToken: "string.attribute-value.xml",
                        },
                      ],
                    },
                  ],
                }),
                  this.constructor === o && this.normalizeRules();
              };
            (function () {
              this.embedTagRules = function (e, t, n) {
                this.$rules.tag.unshift({
                  token: [
                    "meta.tag.punctuation.tag-open.xml",
                    "meta.tag." + n + ".tag-name.xml",
                  ],
                  regex: "(<)(" + n + "(?=\\s|>|$))",
                  next: [
                    {
                      include: "attributes",
                    },
                    {
                      token: "meta.tag.punctuation.tag-close.xml",
                      regex: "/?>",
                      next: t + "start",
                    },
                  ],
                }),
                  (this.$rules[n + "-end"] = [
                    {
                      include: "attributes",
                    },
                    {
                      token: "meta.tag.punctuation.tag-close.xml",
                      regex: "/?>",
                      next: "start",
                      onMatch: function (e, t, n) {
                        return n.splice(0), this.token;
                      },
                    },
                  ]),
                  this.embedRules(e, t, [
                    {
                      token: [
                        "meta.tag.punctuation.end-tag-open.xml",
                        "meta.tag." + n + ".tag-name.xml",
                      ],
                      regex: "(</)(" + n + "(?=\\s|>|$))",
                      next: n + "-end",
                    },
                    {
                      token: "string.cdata.xml",
                      regex: "<\\!\\[CDATA\\[",
                    },
                    {
                      token: "string.cdata.xml",
                      regex: "\\]\\]>",
                    },
                  ]);
              };
            }).call(r.prototype),
              i.inherits(o, r),
              (t.XmlHighlightRules = o);
          }
        ),
        ace.define(
          "ace/mode/html_highlight_rules",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/mode/css_highlight_rules",
            "ace/mode/javascript_highlight_rules",
            "ace/mode/xml_highlight_rules",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("../lib/lang"),
              o = e("./css_highlight_rules").CssHighlightRules,
              s = e("./javascript_highlight_rules").JavaScriptHighlightRules,
              a = e("./xml_highlight_rules").XmlHighlightRules,
              l = r.createMap({
                a: "anchor",
                button: "form",
                form: "form",
                img: "image",
                input: "form",
                label: "form",
                option: "form",
                script: "script",
                select: "form",
                textarea: "form",
                style: "style",
                table: "table",
                tbody: "table",
                td: "table",
                tfoot: "table",
                th: "table",
                tr: "table",
              }),
              c = function () {
                a.call(this),
                  this.addRules({
                    attributes: [
                      {
                        include: "tag_whitespace",
                      },
                      {
                        token: "entity.other.attribute-name.xml",
                        regex: "[-_a-zA-Z0-9:.]+",
                      },
                      {
                        token: "keyword.operator.attribute-equals.xml",
                        regex: "=",
                        push: [
                          {
                            include: "tag_whitespace",
                          },
                          {
                            token: "string.unquoted.attribute-value.html",
                            regex: "[^<>='\"`\\s]+",
                            next: "pop",
                          },
                          {
                            token: "empty",
                            regex: "",
                            next: "pop",
                          },
                        ],
                      },
                      {
                        include: "attribute_value",
                      },
                    ],
                    tag: [
                      {
                        token: function (e, t) {
                          var n = l[t];
                          return [
                            "meta.tag.punctuation." +
                              ("<" == e ? "" : "end-") +
                              "tag-open.xml",
                            "meta.tag" + (n ? "." + n : "") + ".tag-name.xml",
                          ];
                        },
                        regex: "(</?)([-_a-zA-Z0-9:.]+)",
                        next: "tag_stuff",
                      },
                    ],
                    tag_stuff: [
                      {
                        include: "attributes",
                      },
                      {
                        token: "meta.tag.punctuation.tag-close.xml",
                        regex: "/?>",
                        next: "start",
                      },
                    ],
                  }),
                  this.embedTagRules(o, "css-", "style"),
                  this.embedTagRules(
                    new s({
                      jsx: !1,
                    }).getRules(),
                    "js-",
                    "script"
                  ),
                  this.constructor === c && this.normalizeRules();
              };
            i.inherits(c, a), (t.HtmlHighlightRules = c);
          }
        ),
        ace.define(
          "ace/mode/behaviour/xml",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/behaviour",
            "ace/token_iterator",
            "ace/lib/lang",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = e("../behaviour").Behaviour,
              o = e("../../token_iterator").TokenIterator;
            e("../../lib/lang");

            function s(e, t) {
              return e && e.type.lastIndexOf(t + ".xml") > -1;
            }
            var a = function () {
              this.add("string_dquotes", "insertion", function (e, t, n, i, r) {
                if ('"' == r || "'" == r) {
                  var a = r,
                    l = i.doc.getTextRange(n.getSelectionRange());
                  if (
                    "" !== l &&
                    "'" !== l &&
                    '"' != l &&
                    n.getWrapBehavioursEnabled()
                  )
                    return {
                      text: a + l + a,
                      selection: !1,
                    };
                  var c = n.getCursorPosition(),
                    d = i.doc.getLine(c.row).substring(c.column, c.column + 1),
                    u = new o(i, c.row, c.column),
                    h = u.getCurrentToken();
                  if (d == a && (s(h, "attribute-value") || s(h, "string")))
                    return {
                      text: "",
                      selection: [1, 1],
                    };
                  if ((h || (h = u.stepBackward()), !h)) return;
                  for (; s(h, "tag-whitespace") || s(h, "whitespace"); )
                    h = u.stepBackward();
                  var g = !d || d.match(/\s/);
                  if (
                    (s(h, "attribute-equals") && (g || ">" == d)) ||
                    (s(h, "decl-attribute-equals") && (g || "?" == d))
                  )
                    return {
                      text: a + a,
                      selection: [1, 1],
                    };
                }
              }),
                this.add(
                  "string_dquotes",
                  "deletion",
                  function (e, t, n, i, r) {
                    var o = i.doc.getTextRange(r);
                    if (
                      !r.isMultiLine() &&
                      ('"' == o || "'" == o) &&
                      i.doc
                        .getLine(r.start.row)
                        .substring(r.start.column + 1, r.start.column + 2) == o
                    )
                      return r.end.column++, r;
                  }
                ),
                this.add("autoclosing", "insertion", function (e, t, n, i, r) {
                  if (">" == r) {
                    var a = n.getSelectionRange().start,
                      l = new o(i, a.row, a.column),
                      c = l.getCurrentToken() || l.stepBackward();
                    if (
                      !c ||
                      !(
                        s(c, "tag-name") ||
                        s(c, "tag-whitespace") ||
                        s(c, "attribute-name") ||
                        s(c, "attribute-equals") ||
                        s(c, "attribute-value")
                      )
                    )
                      return;
                    if (s(c, "reference.attribute-value")) return;
                    if (s(c, "attribute-value")) {
                      var d = l.getCurrentTokenColumn() + c.value.length;
                      if (a.column < d) return;
                      if (a.column == d) {
                        var u = l.stepForward();
                        if (u && s(u, "attribute-value")) return;
                        l.stepBackward();
                      }
                    }
                    if (/^\s*>/.test(i.getLine(a.row).slice(a.column))) return;
                    for (; !s(c, "tag-name"); )
                      if ("<" == (c = l.stepBackward()).value) {
                        c = l.stepForward();
                        break;
                      }
                    var h = l.getCurrentTokenRow(),
                      g = l.getCurrentTokenColumn();
                    if (s(l.stepBackward(), "end-tag-open")) return;
                    var p = c.value;
                    if (
                      (h == a.row && (p = p.substring(0, a.column - g)),
                      this.voidElements.hasOwnProperty(p.toLowerCase()))
                    )
                      return;
                    return {
                      text: "></" + p + ">",
                      selection: [1, 1],
                    };
                  }
                }),
                this.add("autoindent", "insertion", function (e, t, n, i, r) {
                  if ("\n" == r) {
                    var s = n.getCursorPosition(),
                      a = i.getLine(s.row),
                      l = new o(i, s.row, s.column),
                      c = l.getCurrentToken();
                    if (c && -1 !== c.type.indexOf("tag-close")) {
                      if ("/>" == c.value) return;
                      for (; c && -1 === c.type.indexOf("tag-name"); )
                        c = l.stepBackward();
                      if (!c) return;
                      var d = c.value,
                        u = l.getCurrentTokenRow();
                      if (
                        !(c = l.stepBackward()) ||
                        -1 !== c.type.indexOf("end-tag")
                      )
                        return;
                      if (this.voidElements && !this.voidElements[d]) {
                        var h = i.getTokenAt(s.row, s.column + 1),
                          g = ((a = i.getLine(u)), this.$getIndent(a)),
                          p = g + i.getTabString();
                        return h && "</" === h.value
                          ? {
                              text: "\n" + p + "\n" + g,
                              selection: [1, p.length, 1, p.length],
                            }
                          : {
                              text: "\n" + p,
                            };
                      }
                    }
                  }
                });
            };
            i.inherits(a, r), (t.XmlBehaviour = a);
          }
        ),
        ace.define(
          "ace/mode/folding/mixed",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/folding/fold_mode",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = e("./fold_mode").FoldMode,
              o = (t.FoldMode = function (e, t) {
                (this.defaultMode = e), (this.subModes = t);
              });
            i.inherits(o, r),
              function () {
                (this.$getMode = function (e) {
                  for (var t in ("string" != typeof e && (e = e[0]),
                  this.subModes))
                    if (0 === e.indexOf(t)) return this.subModes[t];
                  return null;
                }),
                  (this.$tryMode = function (e, t, n, i) {
                    var r = this.$getMode(e);
                    return r ? r.getFoldWidget(t, n, i) : "";
                  }),
                  (this.getFoldWidget = function (e, t, n) {
                    return (
                      this.$tryMode(e.getState(n - 1), e, t, n) ||
                      this.$tryMode(e.getState(n), e, t, n) ||
                      this.defaultMode.getFoldWidget(e, t, n)
                    );
                  }),
                  (this.getFoldWidgetRange = function (e, t, n) {
                    var i = this.$getMode(e.getState(n - 1));
                    return (
                      (i && i.getFoldWidget(e, t, n)) ||
                        (i = this.$getMode(e.getState(n))),
                      (i && i.getFoldWidget(e, t, n)) || (i = this.defaultMode),
                      i.getFoldWidgetRange(e, t, n)
                    );
                  });
              }.call(o.prototype);
          }
        ),
        ace.define(
          "ace/mode/folding/xml",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/range",
            "ace/mode/folding/fold_mode",
            "ace/token_iterator",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = (e("../../lib/lang"), e("../../range").Range),
              o = e("./fold_mode").FoldMode,
              s = e("../../token_iterator").TokenIterator,
              a = (t.FoldMode = function (e, t) {
                o.call(this),
                  (this.voidElements = e || {}),
                  (this.optionalEndTags = i.mixin({}, this.voidElements)),
                  t && i.mixin(this.optionalEndTags, t);
              });
            i.inherits(a, o);
            var l = function () {
              (this.tagName = ""),
                (this.closing = !1),
                (this.selfClosing = !1),
                (this.start = {
                  row: 0,
                  column: 0,
                }),
                (this.end = {
                  row: 0,
                  column: 0,
                });
            };

            function c(e, t) {
              return e.type.lastIndexOf(t + ".xml") > -1;
            }
            (function () {
              (this.getFoldWidget = function (e, t, n) {
                var i = this._getFirstTagInLine(e, n);
                return i
                  ? i.closing || (!i.tagName && i.selfClosing)
                    ? "markbeginend" == t
                      ? "end"
                      : ""
                    : !i.tagName ||
                      i.selfClosing ||
                      this.voidElements.hasOwnProperty(
                        i.tagName.toLowerCase()
                      ) ||
                      this._findEndTagInLine(e, n, i.tagName, i.end.column)
                    ? ""
                    : "start"
                  : this.getCommentFoldWidget(e, n);
              }),
                (this.getCommentFoldWidget = function (e, t) {
                  return /comment/.test(e.getState(t)) &&
                    /<!-/.test(e.getLine(t))
                    ? "start"
                    : "";
                }),
                (this._getFirstTagInLine = function (e, t) {
                  for (
                    var n = e.getTokens(t), i = new l(), r = 0;
                    r < n.length;
                    r++
                  ) {
                    var o = n[r];
                    if (c(o, "tag-open")) {
                      if (
                        ((i.end.column = i.start.column + o.value.length),
                        (i.closing = c(o, "end-tag-open")),
                        !(o = n[++r]))
                      )
                        return null;
                      for (
                        i.tagName = o.value,
                          i.end.column += o.value.length,
                          r++;
                        r < n.length;
                        r++
                      )
                        if (
                          ((o = n[r]),
                          (i.end.column += o.value.length),
                          c(o, "tag-close"))
                        ) {
                          i.selfClosing = "/>" == o.value;
                          break;
                        }
                      return i;
                    }
                    if (c(o, "tag-close"))
                      return (i.selfClosing = "/>" == o.value), i;
                    i.start.column += o.value.length;
                  }
                  return null;
                }),
                (this._findEndTagInLine = function (e, t, n, i) {
                  for (
                    var r = e.getTokens(t), o = 0, s = 0;
                    s < r.length;
                    s++
                  ) {
                    var a = r[s];
                    if (
                      !((o += a.value.length) < i) &&
                      c(a, "end-tag-open") &&
                      (a = r[s + 1]) &&
                      a.value == n
                    )
                      return !0;
                  }
                  return !1;
                }),
                (this._readTagForward = function (e) {
                  var t = e.getCurrentToken();
                  if (!t) return null;
                  var n = new l();
                  do {
                    if (c(t, "tag-open"))
                      (n.closing = c(t, "end-tag-open")),
                        (n.start.row = e.getCurrentTokenRow()),
                        (n.start.column = e.getCurrentTokenColumn());
                    else if (c(t, "tag-name")) n.tagName = t.value;
                    else if (c(t, "tag-close"))
                      return (
                        (n.selfClosing = "/>" == t.value),
                        (n.end.row = e.getCurrentTokenRow()),
                        (n.end.column =
                          e.getCurrentTokenColumn() + t.value.length),
                        e.stepForward(),
                        n
                      );
                  } while ((t = e.stepForward()));
                  return null;
                }),
                (this._readTagBackward = function (e) {
                  var t = e.getCurrentToken();
                  if (!t) return null;
                  var n = new l();
                  do {
                    if (c(t, "tag-open"))
                      return (
                        (n.closing = c(t, "end-tag-open")),
                        (n.start.row = e.getCurrentTokenRow()),
                        (n.start.column = e.getCurrentTokenColumn()),
                        e.stepBackward(),
                        n
                      );
                    c(t, "tag-name")
                      ? (n.tagName = t.value)
                      : c(t, "tag-close") &&
                        ((n.selfClosing = "/>" == t.value),
                        (n.end.row = e.getCurrentTokenRow()),
                        (n.end.column =
                          e.getCurrentTokenColumn() + t.value.length));
                  } while ((t = e.stepBackward()));
                  return null;
                }),
                (this._pop = function (e, t) {
                  for (; e.length; ) {
                    var n = e[e.length - 1];
                    if (t && n.tagName != t.tagName) {
                      if (this.optionalEndTags.hasOwnProperty(n.tagName)) {
                        e.pop();
                        continue;
                      }
                      return null;
                    }
                    return e.pop();
                  }
                }),
                (this.getFoldWidgetRange = function (e, t, n) {
                  var i = this._getFirstTagInLine(e, n);
                  if (!i)
                    return (
                      this.getCommentFoldWidget(e, n) &&
                      e.getCommentFoldRange(n, e.getLine(n).length)
                    );
                  var o,
                    a = [];
                  if (i.closing || i.selfClosing) {
                    c = new s(e, n, i.end.column);
                    for (
                      var l = {
                        row: n,
                        column: i.start.column,
                      };
                      (o = this._readTagBackward(c));

                    ) {
                      if (o.selfClosing) {
                        if (a.length) continue;
                        return (
                          (o.start.column += o.tagName.length + 2),
                          (o.end.column -= 2),
                          r.fromPoints(o.start, o.end)
                        );
                      }
                      if (o.closing) a.push(o);
                      else if ((this._pop(a, o), 0 == a.length))
                        return (
                          (o.start.column += o.tagName.length + 2),
                          o.start.row == o.end.row &&
                            o.start.column < o.end.column &&
                            (o.start.column = o.end.column),
                          r.fromPoints(o.start, l)
                        );
                    }
                  } else {
                    var c = new s(e, n, i.start.column),
                      d = {
                        row: n,
                        column: i.start.column + i.tagName.length + 2,
                      };
                    for (
                      i.start.row == i.end.row && (d.column = i.end.column);
                      (o = this._readTagForward(c));

                    ) {
                      if (o.selfClosing) {
                        if (a.length) continue;
                        return (
                          (o.start.column += o.tagName.length + 2),
                          (o.end.column -= 2),
                          r.fromPoints(o.start, o.end)
                        );
                      }
                      if (o.closing) {
                        if ((this._pop(a, o), 0 == a.length))
                          return r.fromPoints(d, o.start);
                      } else a.push(o);
                    }
                  }
                });
            }).call(a.prototype);
          }
        ),
        ace.define(
          "ace/mode/folding/html",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/mode/folding/mixed",
            "ace/mode/folding/xml",
            "ace/mode/folding/cstyle",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../../lib/oop"),
              r = e("./mixed").FoldMode,
              o = e("./xml").FoldMode,
              s = e("./cstyle").FoldMode,
              a = (t.FoldMode = function (e, t) {
                r.call(this, new o(e, t), {
                  "js-": new s(),
                  "css-": new s(),
                });
              });
            i.inherits(a, r);
          }
        ),
        ace.define(
          "ace/mode/html_completions",
          ["require", "exports", "module", "ace/token_iterator"],
          function (e, t, n) {
            "use strict";
            var i = e("../token_iterator").TokenIterator,
              r = [
                "accesskey",
                "class",
                "contenteditable",
                "contextmenu",
                "dir",
                "draggable",
                "dropzone",
                "hidden",
                "id",
                "inert",
                "itemid",
                "itemprop",
                "itemref",
                "itemscope",
                "itemtype",
                "lang",
                "spellcheck",
                "style",
                "tabindex",
                "title",
                "translate",
              ].concat([
                "onabort",
                "onblur",
                "oncancel",
                "oncanplay",
                "oncanplaythrough",
                "onchange",
                "onclick",
                "onclose",
                "oncontextmenu",
                "oncuechange",
                "ondblclick",
                "ondrag",
                "ondragend",
                "ondragenter",
                "ondragleave",
                "ondragover",
                "ondragstart",
                "ondrop",
                "ondurationchange",
                "onemptied",
                "onended",
                "onerror",
                "onfocus",
                "oninput",
                "oninvalid",
                "onkeydown",
                "onkeypress",
                "onkeyup",
                "onload",
                "onloadeddata",
                "onloadedmetadata",
                "onloadstart",
                "onmousedown",
                "onmousemove",
                "onmouseout",
                "onmouseover",
                "onmouseup",
                "onmousewheel",
                "onpause",
                "onplay",
                "onplaying",
                "onprogress",
                "onratechange",
                "onreset",
                "onscroll",
                "onseeked",
                "onseeking",
                "onselect",
                "onshow",
                "onstalled",
                "onsubmit",
                "onsuspend",
                "ontimeupdate",
                "onvolumechange",
                "onwaiting",
              ]),
              o = {
                a: {
                  href: 1,
                  target: {
                    _blank: 1,
                    top: 1,
                  },
                  ping: 1,
                  rel: {
                    nofollow: 1,
                    alternate: 1,
                    author: 1,
                    bookmark: 1,
                    help: 1,
                    license: 1,
                    next: 1,
                    noreferrer: 1,
                    prefetch: 1,
                    prev: 1,
                    search: 1,
                    tag: 1,
                  },
                  media: 1,
                  hreflang: 1,
                  type: 1,
                },
                abbr: {},
                address: {},
                area: {
                  shape: 1,
                  coords: 1,
                  href: 1,
                  hreflang: 1,
                  alt: 1,
                  target: 1,
                  media: 1,
                  rel: 1,
                  ping: 1,
                  type: 1,
                },
                article: {
                  pubdate: 1,
                },
                aside: {},
                audio: {
                  src: 1,
                  autobuffer: 1,
                  autoplay: {
                    autoplay: 1,
                  },
                  loop: {
                    loop: 1,
                  },
                  controls: {
                    controls: 1,
                  },
                  muted: {
                    muted: 1,
                  },
                  preload: {
                    auto: 1,
                    metadata: 1,
                    none: 1,
                  },
                },
                b: {},
                base: {
                  href: 1,
                  target: 1,
                },
                bdi: {},
                bdo: {},
                blockquote: {
                  cite: 1,
                },
                body: {
                  onafterprint: 1,
                  onbeforeprint: 1,
                  onbeforeunload: 1,
                  onhashchange: 1,
                  onmessage: 1,
                  onoffline: 1,
                  onpopstate: 1,
                  onredo: 1,
                  onresize: 1,
                  onstorage: 1,
                  onundo: 1,
                  onunload: 1,
                },
                br: {},
                button: {
                  autofocus: 1,
                  disabled: {
                    disabled: 1,
                  },
                  form: 1,
                  formaction: 1,
                  formenctype: 1,
                  formmethod: 1,
                  formnovalidate: 1,
                  formtarget: 1,
                  name: 1,
                  value: 1,
                  type: {
                    button: 1,
                    submit: 1,
                  },
                },
                canvas: {
                  width: 1,
                  height: 1,
                },
                caption: {},
                cite: {},
                code: {},
                col: {
                  span: 1,
                },
                colgroup: {
                  span: 1,
                },
                command: {
                  type: 1,
                  label: 1,
                  icon: 1,
                  disabled: 1,
                  checked: 1,
                  radiogroup: 1,
                  command: 1,
                },
                data: {},
                datalist: {},
                dd: {},
                del: {
                  cite: 1,
                  datetime: 1,
                },
                details: {
                  open: 1,
                },
                dfn: {},
                dialog: {
                  open: 1,
                },
                div: {},
                dl: {},
                dt: {},
                em: {},
                embed: {
                  src: 1,
                  height: 1,
                  width: 1,
                  type: 1,
                },
                fieldset: {
                  disabled: 1,
                  form: 1,
                  name: 1,
                },
                figcaption: {},
                figure: {},
                footer: {},
                form: {
                  "accept-charset": 1,
                  action: 1,
                  autocomplete: 1,
                  enctype: {
                    "multipart/form-data": 1,
                    "application/x-www-form-urlencoded": 1,
                  },
                  method: {
                    get: 1,
                    post: 1,
                  },
                  name: 1,
                  novalidate: 1,
                  target: {
                    _blank: 1,
                    top: 1,
                  },
                },
                h1: {},
                h2: {},
                h3: {},
                h4: {},
                h5: {},
                h6: {},
                head: {},
                header: {},
                hr: {},
                html: {
                  manifest: 1,
                },
                i: {},
                iframe: {
                  name: 1,
                  src: 1,
                  height: 1,
                  width: 1,
                  sandbox: {
                    "allow-same-origin": 1,
                    "allow-top-navigation": 1,
                    "allow-forms": 1,
                    "allow-scripts": 1,
                  },
                  seamless: {
                    seamless: 1,
                  },
                },
                img: {
                  alt: 1,
                  src: 1,
                  height: 1,
                  width: 1,
                  usemap: 1,
                  ismap: 1,
                },
                input: {
                  type: {
                    text: 1,
                    password: 1,
                    hidden: 1,
                    checkbox: 1,
                    submit: 1,
                    radio: 1,
                    file: 1,
                    button: 1,
                    reset: 1,
                    image: 31,
                    color: 1,
                    date: 1,
                    datetime: 1,
                    "datetime-local": 1,
                    email: 1,
                    month: 1,
                    number: 1,
                    range: 1,
                    search: 1,
                    tel: 1,
                    time: 1,
                    url: 1,
                    week: 1,
                  },
                  accept: 1,
                  alt: 1,
                  autocomplete: {
                    on: 1,
                    off: 1,
                  },
                  autofocus: {
                    autofocus: 1,
                  },
                  checked: {
                    checked: 1,
                  },
                  disabled: {
                    disabled: 1,
                  },
                  form: 1,
                  formaction: 1,
                  formenctype: {
                    "application/x-www-form-urlencoded": 1,
                    "multipart/form-data": 1,
                    "text/plain": 1,
                  },
                  formmethod: {
                    get: 1,
                    post: 1,
                  },
                  formnovalidate: {
                    formnovalidate: 1,
                  },
                  formtarget: {
                    _blank: 1,
                    _self: 1,
                    _parent: 1,
                    _top: 1,
                  },
                  height: 1,
                  list: 1,
                  max: 1,
                  maxlength: 1,
                  min: 1,
                  multiple: {
                    multiple: 1,
                  },
                  name: 1,
                  pattern: 1,
                  placeholder: 1,
                  readonly: {
                    readonly: 1,
                  },
                  required: {
                    required: 1,
                  },
                  size: 1,
                  src: 1,
                  step: 1,
                  width: 1,
                  files: 1,
                  value: 1,
                },
                ins: {
                  cite: 1,
                  datetime: 1,
                },
                kbd: {},
                keygen: {
                  autofocus: 1,
                  challenge: {
                    challenge: 1,
                  },
                  disabled: {
                    disabled: 1,
                  },
                  form: 1,
                  keytype: {
                    rsa: 1,
                    dsa: 1,
                    ec: 1,
                  },
                  name: 1,
                },
                label: {
                  form: 1,
                  for: 1,
                },
                legend: {},
                li: {
                  value: 1,
                },
                link: {
                  href: 1,
                  hreflang: 1,
                  rel: {
                    stylesheet: 1,
                    icon: 1,
                  },
                  media: {
                    all: 1,
                    screen: 1,
                    print: 1,
                  },
                  type: {
                    "text/css": 1,
                    "image/png": 1,
                    "image/jpeg": 1,
                    "image/gif": 1,
                  },
                  sizes: 1,
                },
                main: {},
                map: {
                  name: 1,
                },
                mark: {},
                math: {},
                menu: {
                  type: 1,
                  label: 1,
                },
                meta: {
                  "http-equiv": {
                    "content-type": 1,
                  },
                  name: {
                    description: 1,
                    keywords: 1,
                  },
                  content: {
                    "text/html; charset=UTF-8": 1,
                  },
                  charset: 1,
                },
                meter: {
                  value: 1,
                  min: 1,
                  max: 1,
                  low: 1,
                  high: 1,
                  optimum: 1,
                },
                nav: {},
                noscript: {
                  href: 1,
                },
                object: {
                  param: 1,
                  data: 1,
                  type: 1,
                  height: 1,
                  width: 1,
                  usemap: 1,
                  name: 1,
                  form: 1,
                  classid: 1,
                },
                ol: {
                  start: 1,
                  reversed: 1,
                },
                optgroup: {
                  disabled: 1,
                  label: 1,
                },
                option: {
                  disabled: 1,
                  selected: 1,
                  label: 1,
                  value: 1,
                },
                output: {
                  for: 1,
                  form: 1,
                  name: 1,
                },
                p: {},
                param: {
                  name: 1,
                  value: 1,
                },
                pre: {},
                progress: {
                  value: 1,
                  max: 1,
                },
                q: {
                  cite: 1,
                },
                rp: {},
                rt: {},
                ruby: {},
                s: {},
                samp: {},
                script: {
                  charset: 1,
                  type: {
                    "text/javascript": 1,
                  },
                  src: 1,
                  defer: 1,
                  async: 1,
                },
                select: {
                  autofocus: 1,
                  disabled: 1,
                  form: 1,
                  multiple: {
                    multiple: 1,
                  },
                  name: 1,
                  size: 1,
                  readonly: {
                    readonly: 1,
                  },
                },
                small: {},
                source: {
                  src: 1,
                  type: 1,
                  media: 1,
                },
                span: {},
                strong: {},
                style: {
                  type: 1,
                  media: {
                    all: 1,
                    screen: 1,
                    print: 1,
                  },
                  scoped: 1,
                },
                sub: {},
                sup: {},
                svg: {},
                table: {
                  summary: 1,
                },
                tbody: {},
                td: {
                  headers: 1,
                  rowspan: 1,
                  colspan: 1,
                },
                textarea: {
                  autofocus: {
                    autofocus: 1,
                  },
                  disabled: {
                    disabled: 1,
                  },
                  form: 1,
                  maxlength: 1,
                  name: 1,
                  placeholder: 1,
                  readonly: {
                    readonly: 1,
                  },
                  required: {
                    required: 1,
                  },
                  rows: 1,
                  cols: 1,
                  wrap: {
                    on: 1,
                    off: 1,
                    hard: 1,
                    soft: 1,
                  },
                },
                tfoot: {},
                th: {
                  headers: 1,
                  rowspan: 1,
                  colspan: 1,
                  scope: 1,
                },
                thead: {},
                time: {
                  datetime: 1,
                },
                title: {},
                tr: {},
                track: {
                  kind: 1,
                  src: 1,
                  srclang: 1,
                  label: 1,
                  default: 1,
                },
                section: {},
                summary: {},
                u: {},
                ul: {},
                var: {},
                video: {
                  src: 1,
                  autobuffer: 1,
                  autoplay: {
                    autoplay: 1,
                  },
                  loop: {
                    loop: 1,
                  },
                  controls: {
                    controls: 1,
                  },
                  width: 1,
                  height: 1,
                  poster: 1,
                  muted: {
                    muted: 1,
                  },
                  preload: {
                    auto: 1,
                    metadata: 1,
                    none: 1,
                  },
                },
                wbr: {},
              },
              s = Object.keys(o);

            function a(e, t) {
              return e.type.lastIndexOf(t + ".xml") > -1;
            }

            function l(e, t) {
              for (
                var n = new i(e, t.row, t.column), r = n.getCurrentToken();
                r && !a(r, "tag-name");

              )
                r = n.stepBackward();
              if (r) return r.value;
            }
            var c = function () {};
            (function () {
              (this.getCompletions = function (e, t, n, i) {
                var r = t.getTokenAt(n.row, n.column);
                if (!r) return [];
                if (
                  a(r, "tag-name") ||
                  a(r, "tag-open") ||
                  a(r, "end-tag-open")
                )
                  return this.getTagCompletions(e, t, n, i);
                if (a(r, "tag-whitespace") || a(r, "attribute-name"))
                  return this.getAttributeCompletions(e, t, n, i);
                if (a(r, "attribute-value"))
                  return this.getAttributeValueCompletions(e, t, n, i);
                var o = t.getLine(n.row).substr(0, n.column);
                return /&[a-z]*$/i.test(o)
                  ? this.getHTMLEntityCompletions(e, t, n, i)
                  : [];
              }),
                (this.getTagCompletions = function (e, t, n, i) {
                  return s.map(function (e) {
                    return {
                      value: e,
                      meta: "tag",
                      score: 1e6,
                    };
                  });
                }),
                (this.getAttributeCompletions = function (e, t, n, i) {
                  var s = l(t, n);
                  if (!s) return [];
                  var a = r;
                  return (
                    s in o && (a = a.concat(Object.keys(o[s]))),
                    a.map(function (e) {
                      return {
                        caption: e,
                        snippet: e + '="$0"',
                        meta: "attribute",
                        score: 1e6,
                      };
                    })
                  );
                }),
                (this.getAttributeValueCompletions = function (e, t, n, r) {
                  var s = l(t, n),
                    c = (function (e, t) {
                      for (
                        var n = new i(e, t.row, t.column),
                          r = n.getCurrentToken();
                        r && !a(r, "attribute-name");

                      )
                        r = n.stepBackward();
                      if (r) return r.value;
                    })(t, n);
                  if (!s) return [];
                  var d = [];
                  return (
                    s in o &&
                      c in o[s] &&
                      "object" == typeof o[s][c] &&
                      (d = Object.keys(o[s][c])),
                    d.map(function (e) {
                      return {
                        caption: e,
                        snippet: e,
                        meta: "attribute value",
                        score: 1e6,
                      };
                    })
                  );
                }),
                (this.getHTMLEntityCompletions = function (e, t, n, i) {
                  return [
                    "Aacute;",
                    "aacute;",
                    "Acirc;",
                    "acirc;",
                    "acute;",
                    "AElig;",
                    "aelig;",
                    "Agrave;",
                    "agrave;",
                    "alefsym;",
                    "Alpha;",
                    "alpha;",
                    "amp;",
                    "and;",
                    "ang;",
                    "Aring;",
                    "aring;",
                    "asymp;",
                    "Atilde;",
                    "atilde;",
                    "Auml;",
                    "auml;",
                    "bdquo;",
                    "Beta;",
                    "beta;",
                    "brvbar;",
                    "bull;",
                    "cap;",
                    "Ccedil;",
                    "ccedil;",
                    "cedil;",
                    "cent;",
                    "Chi;",
                    "chi;",
                    "circ;",
                    "clubs;",
                    "cong;",
                    "copy;",
                    "crarr;",
                    "cup;",
                    "curren;",
                    "Dagger;",
                    "dagger;",
                    "dArr;",
                    "darr;",
                    "deg;",
                    "Delta;",
                    "delta;",
                    "diams;",
                    "divide;",
                    "Eacute;",
                    "eacute;",
                    "Ecirc;",
                    "ecirc;",
                    "Egrave;",
                    "egrave;",
                    "empty;",
                    "emsp;",
                    "ensp;",
                    "Epsilon;",
                    "epsilon;",
                    "equiv;",
                    "Eta;",
                    "eta;",
                    "ETH;",
                    "eth;",
                    "Euml;",
                    "euml;",
                    "euro;",
                    "exist;",
                    "fnof;",
                    "forall;",
                    "frac12;",
                    "frac14;",
                    "frac34;",
                    "frasl;",
                    "Gamma;",
                    "gamma;",
                    "ge;",
                    "gt;",
                    "hArr;",
                    "harr;",
                    "hearts;",
                    "hellip;",
                    "Iacute;",
                    "iacute;",
                    "Icirc;",
                    "icirc;",
                    "iexcl;",
                    "Igrave;",
                    "igrave;",
                    "image;",
                    "infin;",
                    "int;",
                    "Iota;",
                    "iota;",
                    "iquest;",
                    "isin;",
                    "Iuml;",
                    "iuml;",
                    "Kappa;",
                    "kappa;",
                    "Lambda;",
                    "lambda;",
                    "lang;",
                    "laquo;",
                    "lArr;",
                    "larr;",
                    "lceil;",
                    "ldquo;",
                    "le;",
                    "lfloor;",
                    "lowast;",
                    "loz;",
                    "lrm;",
                    "lsaquo;",
                    "lsquo;",
                    "lt;",
                    "macr;",
                    "mdash;",
                    "micro;",
                    "middot;",
                    "minus;",
                    "Mu;",
                    "mu;",
                    "nabla;",
                    "nbsp;",
                    "ndash;",
                    "ne;",
                    "ni;",
                    "not;",
                    "notin;",
                    "nsub;",
                    "Ntilde;",
                    "ntilde;",
                    "Nu;",
                    "nu;",
                    "Oacute;",
                    "oacute;",
                    "Ocirc;",
                    "ocirc;",
                    "OElig;",
                    "oelig;",
                    "Ograve;",
                    "ograve;",
                    "oline;",
                    "Omega;",
                    "omega;",
                    "Omicron;",
                    "omicron;",
                    "oplus;",
                    "or;",
                    "ordf;",
                    "ordm;",
                    "Oslash;",
                    "oslash;",
                    "Otilde;",
                    "otilde;",
                    "otimes;",
                    "Ouml;",
                    "ouml;",
                    "para;",
                    "part;",
                    "permil;",
                    "perp;",
                    "Phi;",
                    "phi;",
                    "Pi;",
                    "pi;",
                    "piv;",
                    "plusmn;",
                    "pound;",
                    "Prime;",
                    "prime;",
                    "prod;",
                    "prop;",
                    "Psi;",
                    "psi;",
                    "quot;",
                    "radic;",
                    "rang;",
                    "raquo;",
                    "rArr;",
                    "rarr;",
                    "rceil;",
                    "rdquo;",
                    "real;",
                    "reg;",
                    "rfloor;",
                    "Rho;",
                    "rho;",
                    "rlm;",
                    "rsaquo;",
                    "rsquo;",
                    "sbquo;",
                    "Scaron;",
                    "scaron;",
                    "sdot;",
                    "sect;",
                    "shy;",
                    "Sigma;",
                    "sigma;",
                    "sigmaf;",
                    "sim;",
                    "spades;",
                    "sub;",
                    "sube;",
                    "sum;",
                    "sup;",
                    "sup1;",
                    "sup2;",
                    "sup3;",
                    "supe;",
                    "szlig;",
                    "Tau;",
                    "tau;",
                    "there4;",
                    "Theta;",
                    "theta;",
                    "thetasym;",
                    "thinsp;",
                    "THORN;",
                    "thorn;",
                    "tilde;",
                    "times;",
                    "trade;",
                    "Uacute;",
                    "uacute;",
                    "uArr;",
                    "uarr;",
                    "Ucirc;",
                    "ucirc;",
                    "Ugrave;",
                    "ugrave;",
                    "uml;",
                    "upsih;",
                    "Upsilon;",
                    "upsilon;",
                    "Uuml;",
                    "uuml;",
                    "weierp;",
                    "Xi;",
                    "xi;",
                    "Yacute;",
                    "yacute;",
                    "yen;",
                    "Yuml;",
                    "yuml;",
                    "Zeta;",
                    "zeta;",
                    "zwj;",
                    "zwnj;",
                  ].map(function (e) {
                    return {
                      caption: e,
                      snippet: e,
                      meta: "html entity",
                      score: 1e6,
                    };
                  });
                });
            }).call(c.prototype),
              (t.HtmlCompletions = c);
          }
        ),
        ace.define(
          "ace/mode/html",
          [
            "require",
            "exports",
            "module",
            "ace/lib/oop",
            "ace/lib/lang",
            "ace/mode/text",
            "ace/mode/javascript",
            "ace/mode/css",
            "ace/mode/html_highlight_rules",
            "ace/mode/behaviour/xml",
            "ace/mode/folding/html",
            "ace/mode/html_completions",
            "ace/worker/worker_client",
          ],
          function (e, t, n) {
            "use strict";
            var i = e("../lib/oop"),
              r = e("../lib/lang"),
              o = e("./text").Mode,
              s = e("./javascript").Mode,
              a = e("./css").Mode,
              l = e("./html_highlight_rules").HtmlHighlightRules,
              c = e("./behaviour/xml").XmlBehaviour,
              d = e("./folding/html").FoldMode,
              u = e("./html_completions").HtmlCompletions,
              h = e("../worker/worker_client").WorkerClient,
              g = [
                "area",
                "base",
                "br",
                "col",
                "embed",
                "hr",
                "img",
                "input",
                "keygen",
                "link",
                "meta",
                "menuitem",
                "param",
                "source",
                "track",
                "wbr",
              ],
              p = [
                "li",
                "dt",
                "dd",
                "p",
                "rt",
                "rp",
                "optgroup",
                "option",
                "colgroup",
                "td",
                "th",
              ],
              A = function (e) {
                (this.fragmentContext = e && e.fragmentContext),
                  (this.HighlightRules = l),
                  (this.$behaviour = new c()),
                  (this.$completer = new u()),
                  this.createModeDelegates({
                    "js-": s,
                    "css-": a,
                  }),
                  (this.foldingRules = new d(
                    this.voidElements,
                    r.arrayToMap(p)
                  ));
              };
            i.inherits(A, o),
              function () {
                (this.blockComment = {
                  start: "\x3c!--",
                  end: "--\x3e",
                }),
                  (this.voidElements = r.arrayToMap(g)),
                  (this.getNextLineIndent = function (e, t, n) {
                    return this.$getIndent(t);
                  }),
                  (this.checkOutdent = function (e, t, n) {
                    return !1;
                  }),
                  (this.getCompletions = function (e, t, n, i) {
                    return this.$completer.getCompletions(e, t, n, i);
                  }),
                  (this.createWorker = function (e) {
                    if (this.constructor == A) {
                      var t = new h(["ace"], "ace/mode/html_worker", "Worker");
                      return (
                        t.attachToDocument(e.getDocument()),
                        this.fragmentContext &&
                          t.call("setOptions", [
                            {
                              context: this.fragmentContext,
                            },
                          ]),
                        t.on("error", function (t) {
                          e.setAnnotations(t.data);
                        }),
                        t.on("terminate", function () {
                          e.clearAnnotations();
                        }),
                        t
                      );
                    }
                  }),
                  (this.$id = "ace/mode/html"),
                  (this.snippetFileId = "ace/snippets/html");
              }.call(A.prototype),
              (t.Mode = A);
          }
        ),
        ace.require(["ace/mode/html"], function (t) {
          e && (e.exports = t);
        });
    }).call(this, n(12)(e));
  },
  function (e, t) {
    e.exports =
      "data:image/png;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNDAgMzI4LjIyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzRjYTRkNTt9LmNscy0ye2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9ImNvbnRlbnQtcGxhY2Vob2xkZXIiPjxyZWN0IGNsYXNzPSJjbHMtMSIgd2lkdGg9IjM0MCIgaGVpZ2h0PSIzMjguMjIiIHJ4PSIxNCIvPjxjaXJjbGUgY2xhc3M9ImNscy0yIiBjeD0iMTI3LjY0IiBjeT0iMTMyLjg0IiByPSIxNS45MSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTY1LDgzLjExdjE2MkgyNzV2LTE2MlptMTk4LDE1MEg3N3YtMTM4SDI2M1oiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iODcgMjE5LjExIDEyNS45NyAxODAuMTEgMTM4LjIgMTg2Ljk5IDE4MS43NSAxNDEuMTEgMTk4LjU3IDE2MC45OSAyMDYuOTcgMTU1LjY0IDI0OSAyMTkuMTEgODcgMjE5LjExIi8+PC9nPjwvZz48L3N2Zz4=";
  },
  function (e, t) {
    e.exports =
      "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAACcklEQVR4AWJwL/ABUF8GGqpEYQDe3SmUBUIAS71BuvQIIZHeYAABAQFIoDfYBQTYiwACZd6gCEChsAwNQYW++w8/9rLae+8988/08UFqpk+nM/9xKuCJdbEvvoqBuBFD8ayG+lqg7+nrZzzX38dVVF5si+9ixL8T6TXaYj71QKAgDsQQ94R67YJ5oC5DX9yRPDu9l2cSCDTFNfasxWZigcCjOCJ9RuKj00DgWZySHabis5NA4EVckT1W4st/BWrcB9nl47vI75bliuyzurVcb20oU+6Hqfj4N4Ej7o/RHwUCTe6X5s1AwBPX3C9r0bsV6HP/+F8GAgWXs6Xv+5xOJ6zRhsJXgQMc8vDwQK1WY7vdkgKD3wKBvBi6DowtlUrMZjOMCcX858C2iPNA9enpieFwyPV6xZD258CfSQaqtFotDocDRrzHbfpoILIIjK1UKiyXSwyIRC8O/CFiEqgWi0UmkwkG1OPAvnWgSq/X43K5kCD9OPAtlUC10Wiw2+1IiLc4MEgtUC2Xy8zncxIgiAM3qQaqnucxHo9xzCYODG0Db9vtdjkejzgijAPPmQlUO50OjjjbB9r+gufMLNFcLpfEfzBMf5PRXXSxWKA432SCtJ+D+/2ehAjsH/S2k8yr/ahmOYvqqFa3DKxWq3qaMKFud1zS82AU6a1+sWsHBQCAIBRDI5rHTBLSy48g7DBpwf4bepdGHl7ooz8jyYJoMrnVHp3Aqpbo1JgNqS6a213hl7+EX0G6F4wvgvlMMIAKJmwBQhAwEgEEElAuAcYTcMoPYmnSzKP0eoDSi0fpd4STrxl0tG42EdsKZkPVmtFiWwEA049h+6B6tZUAAAAASUVORK5CYII=";
  },
  function (e, t) {
    e.exports =
      "data:image/png;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/png;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/jpeg;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gNzAK/9sAQwAKBwcIBwYKCAgICwoKCw4YEA4NDQ4dFRYRGCMfJSQiHyIhJis3LyYpNCkhIjBBMTQ5Oz4+PiUuRElDPEg3PT47/9sAQwEKCwsODQ4cEBAcOygiKDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7/8AAEQgAyADIAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A85DEU4PmmUle7GqezOimSnmmFfSmhsU8HNbRrHm1sImM3EdacGoKg0zBWuiNS55FSi4ElOFRqakWuiOpzseBS7aVRUgFbqJk2RbaNlTbaTbT5BcxFtxThxTttGKylSTC45ZmXvmpVuvWq+Kaa4quFi+hcaklsy2bkHvUbzj1qoxNRkn1rzamEitjpjWl1J3mzUDvmmHNITXPychqp8w1zk03NKxphNawq2E4jw1PBqDNTwozmuyFdIzcSRFyaK0LW0zjIoq/rkUT7KTKBFNIqUimkV5CmffSgREUDinkUmK3hM5p0xynNO25FRjg1MpzXXTZ5tehoRlCp4py1LtzTCu08V6dKVzwa9Fxd0PWpVqBWqRWrticEkS0U0NS5rQiwYpMUtFS0A00w080w1zTRSI2qNqkamGuGojZEZphNPIpjCvPqQNYsY1RmnmnxQl26Vw1Fy6nTB3EhiLmta0tenFFpadOK2rS16cV51XF8uh0Rpi2tr04orYtrbGOKK4XjvM09mcHikIpaK9s+xaGEUhFPIppFaRlYylEbigHFLikrtp1DlnAmVqU4NQZxT1eu+nUPNrYe4pXHSkDU7OaCoNd8Kp4lbCNaocHp4aq/K0oet1M8+VNrcsbqTNRhqXdQ5GfKOJppozRWMtRjSKaRUmKaRXPKJSZERUbCpiKdHCXPSuKqkkaRZBHAXPStO1s+nFSW9r04rWtrbpxXgYur2O+lALW06cVr21rjHFLbW3TitSCDGOK+XxVRndGIkEGO1FaEMOO1FeM5yvua2PH6KSjNfoZ9PcWkIpaKaCwwikIp+KQitIysZyiMpKcRSGuuFU5pwAMRT1fNR0ldkKxyVKKZPkGmlQajDkU8PW6rWPNrYRMTkUBqXOaCAa2jWueXUwrWw4NTgaiwRQHrTnRxSg1uTZpDTA2amijLmsp1EkTYSOIua0ILfpxSwQYxxWhDD7V5GJrXOyhRbd2FvB04rWtYBxxUVvD04rVtocY4r5zEyuerCFia3g6cVoQw+1Ngiq9HHivn8RubpBHHiip1WivHnOzLUTwqiiiv0k+hFpRSUVSGOpMUUVQxpFIRT6QimnYzcRmKTFOIpCK2jOxjKAw03NPIphFaqoc8oChqkU5qHFPQ1tGocdSkmS0hTceKcvNWIos1ftrHm1cOmRxW5J5rQghx0FEUXtV2KP2rlqVmzljh0mOhiq/DF0qKJKv28fNefUmd1OmkWbaHpxWnBF0qC3i6VoxJivHryOhImiTFWkFRIKlFeHiZWRpGJIKKaDRXztSTcjZQPCTRQTTc1+rRPXbsx+aM03NKDVoVx2aWmg0oqikxaKKUUxiYppFPoxTE0REU0ipiKaRQZygRYp6rRtqaNM1pFnNUhYdDHk1eijqOCOr0UdU2eXWHRR1cjjpkSVbjSspHLpcfFHWjbx4xxUEMdX4lxXHV2NYstwLjFXYxVSKrSGvExErHRBXJ1qQGoQaeGr57EScjpjEkBoqMvRXkuOprynhrGmZoc4qPdzX6skdE56koNKDUYNOBq0JSJAacDUYNOFUapj6UU0U4UzRMdRSUtMoMUhFOopg0NVcmrUcdJDH3q1HHk1SOGvIfClXYo6ZDFV+KL2pOSR41aQkaVajSlSKrMceKzlM43LUfEuKtxioUSrCDFcdR3NYSLEdWFNV0qUGvKrU7nbCROGpDJioS+KYXzXjV6Gh2wJxJmiq+7BorxpQs7HSkeNT8MahzUs5yar55r9QOP2lyUGniolNSrTN4O5IKcBSLTwKLnVFCgUoFKBTwKOY6FAaBRin7aMUJlcgypI0LNSKu44q7BDjHFaowqy5UPhi6Vehg9qLeDPatGGD2rOdSx49WoMhg9quxQ8dKkig9qtJFiudzueXVkQpFU6x+1SKlPC0tzilOw1UqVVoAp4FS4lRqCjinbqaKMVzzid9KYE5pKdijFebWgejTmNNFBorxKtG8jtjLQ8Zmaq/enyNk0wCvvjzYEi1MtRKKmUUjvpokWpVFMUVKoqWz0KcRwFOAoAp4FRe7OyMRMUBcnApwUseKswwd60iRUkoobDBWhBB04pIYenFaMEPtVSnZHjV6l2Pt4OnFaUMHtTbeHpxWhFFxXBOpqeVUkNSLAqQR1MqU8JShK551WRBtpcVMUpjLiuuCueZVm0MpwFKFp6pTlZEU5tsaFp22n7aSuWR6VKdhmKQ0+mmuSpG56lKoRtRSsKK8+VPU9CM9Dw/kmpFFIFqRVr6gypQHKKmUU1RUqikelTiOUVKopqipAKhnfTiKBTwM8U0VPDHk5oSN3JRRJDFV2KOmRJV2CLPam5WPLr1bksEPtWlBD04qO3h6VpQRdK46lS55VWY+GKrqR4FJFHgVOq1yOV2efUkNCU4LTwtOC1vTPOqMj200pmp9tLtrqU7HJKNyuI6cExU+2mkVMp3BQsQkUwipWFRmkaqVhtIRmlxS1hNWO6jUIytFSEUVyuN2ejGpoeJ+XSiM+lWjHikC17KkehT0IVGKlWlK0Diq3PQpj1p4pgqVFLHpSsdkZJIfGm41eijqKGOr8MXTihtI5a1a5JDF0rRt4enFR28PTitS3h6Vx1Kh5VWoSQQ9OKvxR0yKPpVtFwK4pSucFSYqrUiikAp4FVCJ51SY4ClAoFPAroWhyt3EC0u2ngUuKlzCxGRTGqRqjaqiSyNxUZFSkZpMVtexnbUiIpKkIphrKSubQdhtFITRWfIdkamh5S6VCUxVphTCM11pnvwkV8UjLipWXFOWPdWkWdSqW1I4oyauxxe1EUXtVyKGtLmc8Qwhi9q0beGmwQ9OK0reGuapI5ZVR9vD04rRhjqOGLFXI0wK4Js5JzJI1wKmUVGoqUVMYnBUqDhThSAU9RXQtDjk7jlFPApAKeBSlISQUjGlJpjGpSuNjWNMJpxptbrQhiUhpaQ0wSGmo2p5NRO2KqMbj2GscUVBLJiiuqNFtE+1seasabRRXOj6eLAJuNWY4uKKKuJbk7FqOH2q7DDRRVt6GLbNCCHpxWhDFRRXJMybLscdWVSiisGjCbHhaeBRRVJHBMkVakC0UUmzKw8Cl6UUVBQwmmE0UVtEhjTSGiirENJppNFFUiiNmqtK+KKK7KUUZzZQuJcZ5ooor1YQVjz6knc/9k=";
  },
  function (e, t) {
    e.exports =
      "data:image/jpeg;base64, ";
  },
  function (e, t) {
    e.exports =
      "data:image/jpeg;base64, ";
  },
  function (e, t, n) {},
  function (e, t, n) {},
  function (e, t, n) {
    "use strict";
    n.r(t);
    var i = n(21),
      r = n.n(i),
      o = n(8),
      s = n.n(o);
    class a {
      constructor(e) {
        (this.id = makeid()),
          (this.options = {}),
          void 0 !== e && (this.options = e),
          this.init(),
          this.events();
      }
      dropHtml() {
        return this.getContentHtml();
      }
      dragHtml() {
        return this.getDraggingHtml();
      }
      hasBlockContainer() {
        return !1;
      }
      getHtmlId() {
        return "None";
      }
      init() {
        $("#" + this.getHtmlId()).length &&
          this.setButtonHtml($("#" + this.getHtmlId()).html()),
          $("#" + this.getHtmlId()).length + getI18n("content") &&
            this.setContentHtml($("#" + this.getHtmlId() + "Content").html()),
          $("#" + this.getHtmlId()).length &&
            this.setDraggingHtml($("#" + this.getHtmlId()).html());
      }
      events() {}
      icon() {
        return "fa fa-history";
      }
      setButtonHtml(e) {
        this.buttonHtml = e;
      }
      setContentHtml(e) {
        this.contentHtml = e;
      }
      setDraggingHtml(e) {
        this.draggingHtml = e;
      }
      getDraggingHtml() {
        return this.draggingHtml;
      }
      getButtonHtml() {
        return this.buttonHtml;
      }
      getContentHtml() {
        return this.contentHtml;
      }
    }
    class l extends a {
      replaceTag(e) {
        var t = this.field.name && this.field.name;
        e = e.replace(/\[FIELD_ID\]/g, this.id);
        t = this.field.name ? this.field.name : "";
        e = e.replace(/\[FIELD_NAME\]/g, t);
        var n = this.field.label ? this.field.label : "";
        e = e.replace(/\[FIELD_LABEL\]/g, n);
        var i = this.field.placeholder ? this.field.placeholder : "";
        return (
          (e = e.replace(/\[FIELD_PLACEHOLDER\]/g, i)),
          (e =
            1 == this.field.required
              ? e.replace(/\[FIELD_REQUIRED\]/gi, "required")
              : e.replace(/\[FIELD_REQUIRED\]/gi, ""))
        );
      }
      constructor(e) {
        super();
        this.field = e;
        var t = this.getButtonHtml();
        (t = this.replaceTag(t)), this.setButtonHtml(t);
        t = this.getContentHtml();
        (t = this.replaceTag(t)), this.setContentHtml(t);
        t = this.getDraggingHtml();
        (t = this.replaceTag(t)), this.setDraggingHtml(t);
      }
    }
    class c extends a {
      getHtmlId() {
        return "CenterLogoWidget";
      }
    }
    window.CenterLogoWidget = c;
    class d {
      constructor(e) {
        (this.obj = e),
          (this.currentHtml = this.obj.html()),
          (this.currentStyle = this.obj.attr("style"));
      }
      getContainer() {
        var e = this.obj.closest("[builder-element=BlockElement]");
        return e.length
          ? "BlockElement" != this.obj.attr("builder-element")
            ? new BlockElement(e)
            : null
          : (console.warn(
              "Selected element dose not have container (BlockElement)!"
            ),
            null);
      }
      getParentElements() {
        return [];
      }
      getCellContainer() {
        var e = this.obj.closest("[builder-element=CellContainerElement]");
        return e.length &&
          "CellContainerElement" != this.obj.attr("builder-element")
          ? new CellContainerElement(e)
          : null;
      }
      canSelect() {
        return !0;
      }
      canHover() {
        return !0;
      }
      name() {
        return this.obj.prop("tagName");
      }
      icon() {
        return "fa fa-code";
      }
      isContainer() {
        return !1;
      }
      isWrapper() {
        return !1;
      }
      canDelete() {
        return !0;
      }
      canDuplicate() {
        return !0;
      }
      isInlineEdit() {
        return this.obj.is("[builder-inline-edit]");
      }
      isFullRow() {
        return this.obj.offset().left < 20;
      }
      showControls() {
        return !this.isWrapper();
      }
      isDraggable() {
        return !currentEditor.strict;
      }
      dropHtml() {
        return $("<div>").append(this.obj.clone()).html();
      }
      dragHtml() {
        return '\n            <div class="widget-moving-shadow">\n                <div class="_1content widget-text" title="[NAME]">\n                    <div class="panel__body" title="{language.wpanel.widgets.title.title}">\n                        <span class="widget-custom-tag"><i class="{builder-icon-user}"></i></span>\n                        <span class="remove-widget-button"><i class="{builder-icon-trash-alt}"></i></span>\n                        <div class="image-drag">\n                            <div ng-bind-html="::getModuleIcon(module)" class="ng-binding">\n                                <i class="{builder-icon-code}" style="font-size: 36px;display: inline-block;"></i>\n                            </div>\n                        </div>\n                        <div class="body__title">[NAME]</div>\n                    </div>\n                </div>\n            </div>\n        ';
      }
      hasBlockContainer() {
        return !0;
      }
      hoverOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-hover-outline");
      }
      loadHoverOutline() {
        if (0 == this.hoverOutline().length) {
          var e = $(
            '\n                <div class="builder-tool builder-hover-outline"></div>\n            '
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
      }
      removeHoverOutline() {
        this.hoverOutline().remove();
      }
      adjustHoverOutlinePosition() {
        this.hoverOutline().css({
          top: this.obj.offset().top - 5,
          height: this.obj.outerHeight() + 10,
          width: this.obj.outerWidth() + 10,
          left: this.obj.offset().left - 5,
        }),
          this.isFullRow() &&
            this.hoverOutline().css({
              top: this.obj.offset().top,
              height: this.obj.outerHeight(),
              width: this.obj.outerWidth(),
              left: this.obj.offset().left,
            });
      }
      hoverLabel() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-outline-content-hover");
      }
      loadHoverLabel() {
        if (0 == this.hoverLabel().length) {
          var e = $(
            '\n                <div class="builder-tool builder-outline-content-hover">' +
              this.name() +
              "</div>\n            "
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
      }
      removeHoverLabel() {
        this.hoverLabel().remove();
      }
      adjustHoverLabelPosition() {
        this.hoverLabel().css(
          "top",
          this.obj.offset().top - this.hoverLabel().outerHeight() - 0.5
        ),
          this.hoverLabel().css(
            "left",
            this.obj.offset().left +
              this.obj.outerWidth() -
              this.hoverLabel().outerWidth() -
              2 +
              5
          ),
          this.hoverLabel().offset().top < 0 &&
            (this.hoverLabel().css(
              "top",
              this.obj.offset().top + this.obj.outerHeight() + 4 + 5
            ),
            this.hoverLabel().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() -
                this.hoverLabel().outerWidth() -
                2 +
                5
            ),
            this.hoverLabel().offset().top >
              $("#builder_iframe").outerHeight() - this.obj.outerHeight() &&
              (this.hoverLabel().css(
                "top",
                this.obj.offset().top +
                  this.obj.outerHeight() -
                  this.hoverLabel().outerHeight() +
                  5
              ),
              this.hoverLabel().css(
                "left",
                this.obj.offset().left +
                  this.obj.outerWidth() -
                  this.hoverLabel().outerWidth()
              )));
      }
      highlight() {
        this.obj.addClass("builder-class-element-highlighted"),
          this.loadHoverLabel(),
          this.adjustHoverLabelPosition(),
          this.loadHoverOutline(),
          this.adjustHoverOutlinePosition();
      }
      unhighlight() {
        this.removeHoverLabel(),
          this.removeHoverOutline(),
          this.obj.removeClass("builder-class-element-highlighted");
      }
      selectOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-select-outline");
      }
      loadSelectOutline() {
        if (0 == this.selectOutline().length) {
          var e = $(
            '\n                <div class="builder-tool builder-select-outline" style="display: none;"></div>\n            '
          );
          $("#builder_iframe").contents().find("body").append(e), e.fadeIn(200);
        }
      }
      removeSelectOutline() {
        this.selectOutline().remove();
      }
      adjustSelectOutlinePosition() {
        this.selectOutline().css({
          top: this.obj.offset().top - 5,
          height: this.obj.outerHeight() + 10,
          width: this.obj.outerWidth() + 10,
          left: this.obj.offset().left - 5,
        }),
          this.isFullRow() &&
            this.selectOutline().css({
              top: this.obj.offset().top,
              height: this.obj.outerHeight(),
              width: this.obj.outerWidth(),
              left: this.obj.offset().left,
            });
      }
      selectControls() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-outline-selected-controls");
      }
      loadSelectControls() {
        if (0 == this.selectControls().length) {
          var e = $("<div>")
              .append($(".builder-outline-selected-controls").clone())
              .html(),
            t = $(e);
          $("#builder_iframe").contents().find("body").append(t);
        }
        this.canDelete()
          ? this.selectControls().find(".builder-remove-selected-button").show()
          : this.selectControls()
              .find(".builder-remove-selected-button")
              .hide(),
          this.canDuplicate()
            ? this.selectControls()
                .find(".builder-duplicate-selected-button")
                .show()
            : this.selectControls()
                .find(".builder-duplicate-selected-button")
                .hide();
      }
      adjustSelectControlsPosition() {
        this.selectControls().css(
          "top",
          this.obj.offset().top + this.obj.outerHeight() + 5
        ),
          this.selectControls().css(
            "left",
            this.obj.offset().left +
              this.obj.outerWidth() -
              this.selectControls().outerWidth() +
              5
          ),
          this.isFullRow() &&
            this.selectControls().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() -
                this.selectControls().outerWidth()
            ),
          this.selectControls().offset().top +
            this.selectControls().outerHeight() >
            $("#builder_iframe").outerHeight() &&
            (this.selectControls().css(
              "top",
              this.obj.offset().top +
                this.obj.outerHeight() -
                this.selectControls().outerHeight() -
                8
            ),
            this.selectControls().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() -
                this.selectControls().outerWidth() -
                3
            ));
      }
      removeSelectControls() {
        this.selectControls().remove();
      }
      selectMoveButton() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-outline-move-hook");
      }
      loadSelectMoveButton() {
        if (0 == this.selectMoveButton().length && this.isDraggable()) {
          var e = $("<div>")
              .append($(".builder-outline-move-hook").clone())
              .html(),
            t = $(e);
          $("#builder_iframe").contents().find("body").append(t);
        }
      }
      adjustSelectMoveButtonPosition() {
        this.isDraggable() &&
          (this.selectMoveButton().css(
            "top",
            this.obj.offset().top +
              this.obj.outerHeight() / 2 -
              this.selectMoveButton().outerHeight() / 2
          ),
          this.selectMoveButton().css(
            "left",
            this.obj.offset().left +
              this.obj.outerWidth() -
              this.selectMoveButton().outerWidth() / 2 +
              4
          ),
          this.selectMoveButton().css("border-radius", "50%"),
          this.isFullRow() &&
            (this.selectMoveButton().css(
              "top",
              this.obj.offset().top +
                this.obj.outerHeight() / 2 -
                this.selectMoveButton().outerHeight() / 2
            ),
            this.selectMoveButton().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() -
                this.selectMoveButton().outerWidth() / 2
            ),
            this.selectMoveButton().css("border-radius", "50% 0% 0% 50%"),
            this.selectMoveButton().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() -
                this.selectMoveButton().outerWidth() / 2 +
                4 -
                19
            )));
      }
      removeSelectMoveButton() {
        this.selectMoveButton().remove();
      }
      select() {
        this.obj.addClass("builder-class-element-selected"),
          this.loadSelectOutline(),
          this.adjustSelectOutlinePosition(),
          this.showControls() &&
            (this.loadSelectControls(), this.adjustSelectControlsPosition()),
          this.isDraggable() &&
            (this.loadSelectMoveButton(),
            this.adjustSelectMoveButtonPosition()),
          this.unhighlight();
      }
      unselect() {
        (this.currentHtml == this.obj.html() &&
          this.currentStyle == this.obj.attr("style")) ||
          currentEditor.recordState(),
          this.obj.removeClass("builder-class-element-selected"),
          this.showControls() && this.removeSelectControls(),
          this.removeSelectMoveButton(),
          this.removeSelectOutline(),
          void 0 !== this.unselectCallback && this.unselectCallback();
      }
      getControls() {
        return [];
      }
      equals(e) {
        return null != e && this.obj.is(e.obj);
      }
      dropOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-drop-outline");
      }
      loadDropOutline() {
        if (0 == this.dropOutline().length) {
          var e = $(
            '\n                <div class="builder-tool builder-drop-outline"></div>\n            '
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
      }
      removeDropOutline() {
        this.dropOutline().remove();
      }
      adjustDropOutlinePosition() {
        this.dropOutline().css({
          top: this.obj.offset().top,
          height: this.obj.outerHeight(),
          width: this.obj.outerWidth(),
          left: this.obj.offset().left,
        });
      }
      dropAfterOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".drop-element-after-hover");
      }
      loadDropAfterOutline() {
        if (0 == this.dropAfterOutline().length) {
          var e = $(
            '<div class="builder-tool drop-element-after-hover"><span>' +
              getI18n("drag_here") +
              "</span></div>"
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
        this.obj.addClass("builder-drop-after-element");
      }
      adjustDropAfterOutlinePosition() {
        this.dropAfterOutline().css(
          "top",
          this.obj.offset().top +
            this.obj.outerHeight() -
            2 +
            parseInt(this.obj.css("margin-bottom"))
        ),
          this.dropAfterOutline().css("left", this.obj.offset().left),
          this.dropAfterOutline().css("width", this.obj.outerWidth());
      }
      removeDropAfterOutline() {
        this.dropAfterOutline().remove(),
          this.obj.removeClass("builder-drop-after-element");
      }
      afterHighlight() {
        this.removeDropBeforeOutline(),
          this.obj.addClass("builder-class-drop-element-highlight"),
          this.loadDropOutline(),
          this.adjustDropOutlinePosition(),
          this.loadDropAfterOutline(),
          this.adjustDropAfterOutlinePosition();
      }
      afterUnHighlight() {
        this.obj.removeClass("builder-class-drop-element-highlight"),
          this.removeDropOutline(),
          this.removeDropAfterOutline();
      }
      dropBeforeOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".drop-element-before-hover");
      }
      loadDropBeforeOutline() {
        if (0 == this.dropBeforeOutline().length) {
          var e = $(
            '<div class="builder-tool drop-element-before-hover"><span>' +
              getI18n("drag_here") +
              "</span></div>"
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
        this.obj.addClass("builder-drop-before-element");
      }
      adjustDropBeforeOutlinePosition() {
        this.dropBeforeOutline().css("top", this.obj.offset().top),
          this.dropBeforeOutline().css("left", this.obj.offset().left),
          this.dropBeforeOutline().css("width", this.obj.outerWidth());
      }
      removeDropBeforeOutline() {
        this.dropBeforeOutline().remove(),
          this.obj.removeClass("builder-drop-before-element");
      }
      beforeHighlight() {
        this.removeDropAfterOutline(),
          this.obj.addClass("builder-class-drop-element-highlight"),
          this.loadDropOutline(),
          this.adjustDropOutlinePosition(),
          this.loadDropBeforeOutline(),
          this.adjustDropBeforeOutlinePosition();
      }
      beforeUnHighlight() {
        this.obj.removeClass("builder-class-drop-element-highlight"),
          this.removeDropOutline(),
          this.removeDropBeforeOutline();
      }
      checkTargetPosition(e) {
        var t = this.obj.height(),
          n = this.obj.offset().top;
        return e.pageY - n < t / 2 ? "before" : "after";
      }
      dropInsideOutline() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".builder-drop-inside-outline");
      }
      loadDropInsideOutline() {
        if (0 == this.dropInsideOutline().length) {
          var e = $(
            '\n                <div class="builder-tool builder-drop-inside-outline"></div>\n            '
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
      }
      removeDropInsideOutline() {
        this.dropInsideOutline().remove();
      }
      adjustDropInsideOutlinePosition() {
        this.dropInsideOutline().css({
          top: this.obj.offset().top,
          height: this.obj.outerHeight(),
          width: this.obj.outerWidth(),
          left: this.obj.offset().left,
        });
      }
      dropInsideLabel() {
        return $("#builder_iframe")
          .contents()
          .find("body")
          .find(".drop-inside-label-hover");
      }
      loadDropInsideLabel() {
        if (0 == this.dropInsideLabel().length) {
          var e = $(
            '<div class="builder-tool drop-inside-label-hover"><span>' +
              getI18n("drag_here") +
              "</span></div>"
          );
          $("#builder_iframe").contents().find("body").append(e);
        }
      }
      adjustDropInsideLabelPosition() {
        this.dropInsideLabel().css(
          "top",
          this.obj.offset().top + this.dropInsideLabel().outerHeight()
        ),
          this.dropInsideLabel().css("left", this.obj.offset().left),
          this.dropInsideLabel().css("width", this.obj.outerWidth());
      }
      removeDropInsideLabel() {
        this.dropInsideLabel().remove();
      }
      dropInsideHighlight() {
        this.loadDropInsideOutline(),
          this.adjustDropInsideOutlinePosition(),
          this.loadDropInsideLabel(),
          this.adjustDropInsideLabelPosition();
      }
    }
    class u {
      constructor(e, t, n) {
        (this.title = e),
          (this.callback = n),
          (this.value = t),
          (this.id = makeid());
      }
      groupId() {
        return "general";
      }
      renderHtml() {
        return '<input type="file" value="" />';
      }
    }
    var h = n(1),
      g = n(22),
      p = n.n(g),
      A = n(23),
      f = (n(42), n(9)),
      m = n.n(f),
      v = n(24),
      b = n.n(v),
      w = n(3),
      y = n.n(w),
      x = n(4),
      C = n.n(x),
      k = n(5),
      _ = n.n(k),
      I = {
        fontawesome: {
          "builder-icon-youtube": "fal fa-youtube",
          "builder-icon-header": "fal fa-align",
          "builder-icon-align": "fal fa-align",
          "builder-icon-angle": "fal fa-angle",
          "builder-icon-arrow": "fal fa-arrow",
          "builder-icon-arrows": "fal fa-arrows",
          "builder-icon-clone": "fal fa-clone",
          "builder-icon-code": "fal fa-code",
          "builder-icon-file": "fal fa-file",
          "builder-icon-film": "fal fa-film",
          "builder-icon-font": "fal fa-font",
          "builder-icon-history": "fal fa-history",
          "builder-icon-image": "fal fa-image",
          "builder-icon-images": "fal fa-images",
          "builder-icon-laptop": "fal fa-laptop",
          "builder-icon-layer": "fal fa-layer",
          "builder-icon-list": "fal fa-list",
          "builder-icon-minus": "fal fa-minus",
          "builder-icon-mobile": "fal fa-mobile",
          "builder-icon-newspaper": "fal fa-newspaper",
          "builder-icon-qrcode": "fal fa-qrcode",
          "builder-icon-question": "fal fa-question",
          "builder-icon-receipt": "fal fa-receipt",
          "builder-icon-reply": "fal fa-reply",
          "builder-icon-ruler": "fal fa-ruler",
          "builder-icon-server": "fal fa-server",
          "builder-icon-share": "fal fa-share",
          "builder-icon-tablet": "fal fa-tablet",
          "builder-icon-times": "fal fa-times",
          "builder-icon-trash": "fal fa-trash",
          "builder-icon-user": "fal fa-user",
          "builder-icon-align-justify": "fal fa-align-justify",
          "builder-icon-align-left": "fal fa-align-left",
          "builder-icon-align-right": "fal fa-align-right",
          "builder-icon-angle-down": "fal fa-angle-down",
          "builder-icon-angle-left": "fal fa-angle-left",
          "builder-icon-arrow-to-bottom": "fal fa-arrow-to-bottom",
          "builder-icon-arrow-up": "fal fa-arrow-up",
          "builder-icon-cloud-upload-alt": "fal fa-cloud-upload-alt",
          "builder-icon-file-code": "fal fa-file-code",
          "builder-icon-layer-plus": "fal fa-layer-plus",
          "builder-icon-list-alt": "fal fa-list-alt",
          "builder-icon-minus-square": "fal fa-minus-square",
          "builder-icon-question-circle": "fal fa-question-circle",
          "builder-icon-ruler-horizontal": "fal fa-ruler-horizontal",
          "builder-icon-share-alt": "fal fa-share-alt",
          "builder-icon-times-circle": "fal fa-times-circle",
          "builder-icon-trash-alt": "fal fa-trash-alt",
          "builder-icon-table": "fal fa-table",
          "builder-icon-list-image": "fal fa-images",
          "builder-icon-header": "fal fa-heading",
          "builder-icon-progressbar": "fal fa-percent",
          "builder-icon-listgroup": "fal fa-list",
          "builder-icon-panel": "fal fa-columns",
          "builder-icon-image_header": "fal fa-file-image",
          "builder-icon-jumbotron": "fal fa-pager",
          "builder-icon-meterial": "fal fa-archive",
          "builder-icon-navbar": "fal fa-bars",
          "builder-icon-pricing": "fal fa-usd-circle",
          "builder-icon-services_list": "fal fa-question-circle",
          "builder-icon-imagegrid": "fal fa-th",
          "builder-icon-div_container": "fal fa-rectangle-wide",
          "builder-icon-container": "fal fa-rectangle-landscape",
          "builder-icon-well": "fal fa-hexagon",
          "builder-icon-media_object": "fal fa-play",
          "builder-icon-paragraph": "fal fa-align-justify",
          "builder-icon-marked-text": "fal fa-info-circle",
          "builder-icon-definition-list": "fal fa-list-alt",
          "builder-icon-blockqoute": "fal fa-quote-right",
          "builder-icon-unordered-list": "fal fa-list-ul",
          "builder-icon-heading": "fal fa-h2",
          "builder-icon-link": "fal fa-link",
          "builder-icon-button-group": "fal fa-th-large",
          "builder-icon-button-toolbar": "fal fa-grip-horizontal",
          "builder-icon-input-field": "fal fa-minus",
          "builder-icon-text-area": "fal fa-square",
          "builder-icon-checkbox": "fal fa-check-square",
          "builder-icon-input-group": "fal fa-ballot",
          "builder-icon-form-group": "fal fa-th-list",
          "builder-icon-select": "fal fa-caret-down",
          "builder-icon-form": "fal fa-clipboard-list",
          "builder-icon-cross": "fal fa-times",
          "builder-icon-bold": "fal fa-bold",
          "builder-icon-italic": "fal fa-italic",
          "builder-icon-underline": "fal fa-underline",
          "builder-icon-strikethrough": "fal fa-strikethrough",
          "builder-icon-pointer-left": "fal fa-angle-double-left",
        },
        default: {
          "builder-icon-align": "fa fa-align",
          "builder-icon-angle": "fa fa-angle",
          "builder-icon-arrow": "fa fa-arrow",
          "builder-icon-arrows": "fa fa-expand-arrows-alt",
          "builder-icon-clone": "fa fa-clone",
          "builder-icon-code": "fa fa-code",
          "builder-icon-file": "fa fa-file",
          "builder-icon-film": "fa fa-film",
          "builder-icon-font": "fa fa-font",
          "builder-icon-history": "fa fa-history",
          "builder-icon-image": "fa fa-image",
          "builder-icon-images": "fa fa-images",
          "builder-icon-laptop": "fa fa-laptop",
          "builder-icon-layer": "fa fa-layer",
          "builder-icon-list": "fa fa-list",
          "builder-icon-minus": "fa fa-minus",
          "builder-icon-mobile": "fa fa-mobile",
          "builder-icon-newspaper": "fa fa-newspaper",
          "builder-icon-qrcode": "fa fa-qrcode",
          "builder-icon-question": "fa fa-question",
          "builder-icon-receipt": "fa fa-receipt",
          "builder-icon-reply": "fa fa-reply",
          "builder-icon-ruler": "fa fa-ruler",
          "builder-icon-server": "fa fa-server",
          "builder-icon-share": "fa fa-share",
          "builder-icon-tablet": "fa fa-tablet",
          "builder-icon-times": "fa fa-times",
          "builder-icon-trash": "fa fa-trash",
          "builder-icon-user": "fa fa-user",
          "builder-icon-align-justify": "fa fa-align-justify",
          "builder-icon-align-left": "fa fa-align-left",
          "builder-icon-align-right": "fa fa-align-right",
          "builder-icon-angle-down": "fa fa-angle-down",
          "builder-icon-angle-left": "fa fa-angle-left",
          "builder-icon-arrow-to-bottom": "fa fa-upload",
          "builder-icon-arrow-up": "fa fa-arrow-up",
          "builder-icon-cloud-upload-alt": "fa fa-cloud-upload-alt",
          "builder-icon-file-code": "fa fa-file-code",
          "builder-icon-layer-plus": "fa fa-plus",
          "builder-icon-list-alt": "fa fa-list-alt",
          "builder-icon-minus-square": "fa fa-minus-square",
          "builder-icon-question-circle": "fa fa-question-circle",
          "builder-icon-ruler-horizontal": "fa fa-ruler-horizontal",
          "builder-icon-share-alt": "fa fa-share-alt",
          "builder-icon-times-circle": "fa fa-times-circle",
          "builder-icon-trash-alt": "fa fa-trash-alt",
          "builder-icon-table": "fa fa-table",
          "builder-icon-list-image": "fa fa-images",
          "builder-icon-header": "fa fa-heading",
          "builder-icon-progressbar": "fa fa-percent",
          "builder-icon-listgroup": "fa fa-list",
          "builder-icon-panel": "fa fa-columns",
          "builder-icon-image_header": "fa fa-file-image",
          "builder-icon-jumbotron": "fa fa-pager",
          "builder-icon-meterial": "fa fa-archive",
          "builder-icon-navbar": "fa fa-bars",
          "builder-icon-pricing": "fa fa-usd-circle",
          "builder-icon-services_list": "fa fa-question-circle",
          "builder-icon-imagegrid": "fa fa-th",
          "builder-icon-div_container": "fa fa-rectangle-wide",
          "builder-icon-container": "fa fa-rectangle-landscape",
          "builder-icon-well": "fa fa-hexagon",
          "builder-icon-media_object": "fa fa-play",
          "builder-icon-paragraph": "fa fa-align-justify",
          "builder-icon-marked-text": "fa fa-info-circle",
          "builder-icon-definition-list": "fa fa-list-alt",
          "builder-icon-blockqoute": "fa fa-quote-right",
          "builder-icon-unordered-list": "fa fa-list-ul",
          "builder-icon-heading": "fa fa-h2",
          "builder-icon-link": "fa fa-link",
          "builder-icon-button-group": "fa fa-th-large",
          "builder-icon-button-toolbar": "fa fa-grip-horizontal",
          "builder-icon-input-field": "fa fa-minus",
          "builder-icon-text-area": "fa fa-square",
          "builder-icon-checkbox": "fa fa-check-square",
          "builder-icon-input-group": "fa fa-ballot",
          "builder-icon-form-group": "fa fa-th-list",
          "builder-icon-select": "fa fa-caret-down",
          "builder-icon-form": "fa fa-clipboard-list",
          "builder-icon-cross": "fa fa-times",
          "builder-icon-bold": "fa fa-bold",
          "builder-icon-italic": "fa fa-italic",
          "builder-icon-underline": "fa fa-underline",
          "builder-icon-strikethrough": "fa fa-strikethrough",
          "builder-icon-pointer-left": "fa fa-angle-double-left",
        },
      },
      E = function (e = "", t = "full", n = "default") {
        $("#builderModal .modal-dialog")
          .contents()
          .find("*")
          .removeClass(function (e, t) {
            return (t.match(/modal-size-[a-zA-Z0-9\_\-]+/g) || []).join(" ");
          }),
          "auto" == t && "default" == n
            ? ($("#builderModal .modal-dialog").addClass("modal-size-default"),
              $("#builderModal .modal-dialog").css("max-width", "none"),
              $("#builderModal").removeClass("content-width"),
              $(".PopUpContent").css("height", "auto"),
              $("#builderModal .default-popup").show(),
              $("#builderModal .right-popup").hide())
            : "xright" == t && "right" == n
            ? ($("#builderModal .modal-dialog").addClass("modal-size-xright"),
              $("#builderModal .modal-dialog").css("max-width", "none"),
              $("#builderModal").addClass("content-width"),
              $("#builderModal .default-popup").hide(),
              $("#builderModal .right-popup").show())
            : "small" == t
            ? ($("#builderModal .modal-dialog").addClass("modal-size-small"),
              $("#builderModal .modal-dialog").css("max-width", "650px"),
              $(".PopUpContent").css("height", "auto"),
              $("#builderModal .default-popup").show(),
              $("#builderModal .right-popup").hide())
            : ($("#builderModal .modal-dialog").addClass("modal-size-default"),
              $("#builderModal .modal-dialog").css("max-width", "none"),
              $("#builderModal").removeClass("content-width"),
              $(".PopUpContent").css("height", "481px"),
              $("#builderModal .default-popup").show(),
              $("#builderModal .right-popup").hide()),
          $(".PopUpCloseButton").click(function () {
            new E("").hide(),
              $("span.des-upload").text(
                "Drag your files here or click in this area."
              );
          }),
          $("#popupTitle").html(e);
      };

    function T() {
      $(".helpPopUpCloseButton").click(function () {
        $(".helpPopUp").hide();
      });
    }
    (E.prototype = {
      close: function () {
        $("#builderModal").hide();
      },
      show: function () {
        $("body").append('<div class="modal-backdrop show"></div>'),
          $("#builderModal").addClass("show"),
          $("#builderModal").show();
      },
      hide: function () {
        $(".modal-backdrop").remove(),
          $("#builderModal").removeClass("show"),
          $("#builderModal").hide();
      },
      load: function (e, t = function () {}) {
        var n = this;
        $.ajax({
          url: e,
          type: "GET",
          data: {},
        }).done(function (e) {
          n.remove(), n.loadHtml(e), t();
        });
      },
      remove: function () {
        $(".PopUpContent").html();
      },
      loadHtml: function (e) {
        this.remove(), $(".PopUpContent").html(e), this.show();
      },
      loadHtmlXright: function () {
        this.remove(), this.getContainer("xright");
      },
      getContainer: function (e = "default") {
        return "xright" == e ? $(".right-box").html() : void 0;
      },
    }),
      (T.prototype = {
        close: function () {
          $(".helpPopUp").hide();
        },
        load: function (e) {
          $(".helpPopUp").find("iframe#iframeLoad").attr("src", e),
            $(".helpPopUp").addClass("display-right"),
            $(".helpPopUp .flex").removeClass("left-right--0"),
            $(".helpPopUp").show();
        },
        remove: function () {
          $(".helpPopUpContent").html();
        },
        loadHtml: function (e) {
          this.remove(), $(".helpPopUpContent").html(e), this.show();
        },
      });
    var S = n(25),
      L = n.n(S),
      j = [
        "{Please check your mailbox for our reply. Thank you.",
        "{Thank you for your interest in our product. ",
        "Thank you.",
        "Please shoot us a message through our profile/support contact form. We will get back to you shortly. Thank you.",
        "It seems you did not setup the cronjob on your hosting server yet\nCronjob is needed for actually sending email campaigns, updating the listing as well as verifying/importing/exporting\nPlease go to Admin View > Setting > All Settings > Background Job\nThen capture the cronjob generated and install it into your hosting server.\n\nIf you are running on cPanel, you can find it here:\nhttp://kb.xyzscripts.com/wp-content/uploads/2012/04/1.png\n\nIf you are using Plesk:\nhttps://www.dropbox.com/s/p1e2x71yy3xxk0v/cron-02.png?dl=0\n\nIf you are using SSH console:\nhttp://prntscr.com/mpn999\n\nLet me know if you are not familiar with setting up cronjob, we can help then",
        "We have the installation & getting started guideline (for cPanel or unmanaged server/VPS) included in the guideline/ folder of the software package you download from CodeCanyon (go to the guideline/ folder, double click on the index.html file to open it on your browser)\nJust check it out and let us know if you still cannot get it to work, we are willing to help then",
      ];
    n(11);
    (window.beautify = r.a),
      (window.jQuery = s.a),
      (window.$ = s.a),
      n(28),
      (window.bootstrapGrowl = $.bootstrapGrowl),
      n(29),
      n(30),
      n(31),
      n(33),
      n(34),
      n(35),
      n(36),
      n(37),
      n(38),
      n(39),
      n(40),
      n(41),
      (window.Widget = a),
      (window.FieldWidget = l),
      (window.BlockqouteWidget = class extends a {
        getHtmlId() {
          return "BlockqouteWidget";
        }
        name() {
          return getI18n("blockqoute");
        }
        icon() {
          return "fal fa-quote-right";
        }
        init() {
          super.init();
        }
      }),
      (window.BoxedTextWidget = class extends a {
        getHtmlId() {
          return "BoxedTextWidget";
        }
        name() {
          return getI18n("text");
        }
        icon() {
          return "fal fa-font";
        }
      }),
      (window.Button2Widget = class extends a {
        getHtmlId() {
          return "Button2Widget";
        }
        name() {
          return getI18n("button");
        }
        icon() {
          return "fal fa-minus-square";
        }
      }),
      (window.ButtonGroupWidget = class extends a {
        getHtmlId() {
          return "ButtonGroupWidget";
        }
        name() {
          return getI18n("button_group");
        }
        icon() {
          return "fal fa-th-large";
        }
        init() {
          super.init();
        }
      }),
      (window.ButtonToolbarWidget = class extends a {
        getHtmlId() {
          return "ButtonToolbarWidget";
        }
        name() {
          return getI18n("button_toolbar");
        }
        icon() {
          return "fal fa-grip-horizontal";
        }
        init() {
          super.init();
        }
      }),
      (window.ButtonWidget = class extends a {
        getHtmlId() {
          return "ButtonWidget";
        }
        name() {
          return getI18n("button");
        }
        icon() {
          return "fal fa-minus-square";
        }
      }),
      (window.CenterLogoWidget = c),
      (window.CheckboxFieldWidget = class extends l {
        getHtmlId() {
          return "CheckboxFieldWidget";
        }
        replaceTag(e) {
          e = super.replaceTag(e);
          var t = this;
          if (t.field.options.length) {
            var n = "";
            t.field.options.forEach(function (e) {
              (n =
                n +
                '\n                    <span class="mr-4 checkbox-option d-block">\n                        <input type="checkbox" name="' +
                t.field.name +
                '[]" value="' +
                e.value +
                '" autocomplete="off">\n                        <span class="text">' +
                e.text +
                "</span>\n                    </span>\n                "),
                1;
            }),
              (e = e.replace(/\[FIELD_OPTIONS\]/g, n));
          }
          return e;
        }
      }),
      (window.CheckboxWidget = class extends a {
        getHtmlId() {
          return "CheckboxWidget";
        }
        name() {
          return getI18n("checkbox");
        }
        icon() {
          return "fal fa-check-square";
        }
        init() {
          super.init();
        }
      }),
      (window.ContainerWidget = class extends a {
        getHtmlId() {
          return "ContainerWidget";
        }
        name() {
          return getI18n("container");
        }
        icon() {
          return "fal fa-rectangle-landscape";
        }
        init() {
          super.init();
        }
      }),
      (window.CustomWidget = class extends a {
        getHtmlId() {
          return "CustomWidget";
        }
        name() {
          return getI18n("custom_widget");
        }
        icon() {
          return "fal fa-code";
        }
        init() {
          super.init();
        }
      }),
      (window.DateFieldWidget = class extends l {
        getHtmlId() {
          return "DateFieldWidget";
        }
      }),
      (window.DatetimeFieldWidget = class extends l {
        getHtmlId() {
          return "DatetimeFieldWidget";
        }
      }),
      (window.DefinitionListWidget = class extends a {
        getHtmlId() {
          return "DefinitionListWidget";
        }
        name() {
          return getI18n("definition_list");
        }
        icon() {
          return "fa fa-list-alt";
        }
        init() {
          super.init();
        }
      }),
      (window.DivContainerWidget = class extends a {
        getHtmlId() {
          return "DivContainerWidget";
        }
        name() {
          return getI18n("div_container");
        }
        icon() {
          return "fal fa-align-justify";
        }
        init() {
          super.init();
        }
      }),
      (window.DividerWidget = class extends a {
        getHtmlId() {
          return "DividerWidget";
        }
        name() {
          return getI18n("divider");
        }
        icon() {
          return "fal fa-ruler-horizontal";
        }
      }),
      (window.DropdownFieldWidget = class extends l {
        getHtmlId() {
          return "DropdownFieldWidget";
        }
        replaceTag(e) {
          e = super.replaceTag(e);
          if (this.field.options.length) {
            var t = "";
            this.field.options.forEach(function (e) {
              t = t + '<option value="' + e.value + '">' + e.text + "</option>";
            }),
              (e = e.replace(/\[FIELD_OPTIONS\]/g, t));
          }
          return e;
        }
      }),
      (window.EmailFieldWidget = class extends l {
        getHtmlId() {
          return "EmailFieldWidget";
        }
      }),
      (window.FooterBlockWidget = class extends a {
        getHtmlId() {
          return "FooterBlockWidget";
        }
      }),
      (window.FooterWidget = class extends a {
        getHtmlId() {
          return "FooterWidget";
        }
        name() {
          return getI18n("footer");
        }
        icon() {
          return "fal fa-receipt";
        }
        init() {
          super.init();
          var e = $("#FooterWidgetContent").html(),
            t = this.id,
            n = $("<div>").html(e);
          n.find(".footer-container").attr("id", t),
            (this.contentHtml = n.html());
        }
        events() {
          var e = this.id;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + e + " a.remove-content-widget", function () {
              $("#builder_iframe")[0]
                .contentWindow.$("#" + e)
                .remove();
            });
        }
      }),
      (window.FormGroupWidget = class extends a {
        getHtmlId() {
          return "FormGroupWidget";
        }
        name() {
          return getI18n("input_form");
        }
        icon() {
          return "fal fa-th-list";
        }
        init() {
          super.init();
        }
      }),
      (window.FormWidget = class extends a {
        getHtmlId() {
          return "FormWidget";
        }
        name() {
          return getI18n("form");
        }
        icon() {
          return "fal fa-clipboard-list";
        }
        init() {
          super.init();
        }
      }),
      (window.FourRow3333Widget = class extends a {
        getHtmlId() {
          return "FourRow3333Widget";
        }
      }),
      (window.HeaderBlockWidget = class extends a {
        getHtmlId() {
          return "HeaderBlockWidget";
        }
      }),
      (window.HeaderWidget = class extends a {
        getHtmlId() {
          return "HeaderWidget";
        }
        name() {
          return getI18n("header");
        }
        icon() {
          return "fal fa-heading";
        }
        init() {
          super.init();
        }
      }),
      (window.HeadingWidget = class extends a {
        getHtmlId() {
          return "HeadingWidget";
        }
        name() {
          return getI18n("heading");
        }
        icon() {
          return "fal fa-h2";
        }
        init() {
          super.init();
        }
      }),
      (window.HeroImageWidget = class extends a {
        getHtmlId() {
          return "HeroImageWidget";
        }
      }),
      (window.HtmlWidget = class extends a {
        getHtmlId() {
          return "HtmlWidget";
        }
        name() {
          return getI18n("html");
        }
        icon() {
          return "fal fa-file-code";
        }
        init() {
          super.init();
          var e = $("#HtmlWidgetContent").html(),
            t = this.id,
            n = $("<div>").html(e);
          n.find(".html-container").attr("id", t),
            (this.contentHtml = n.html());
        }
        events() {
          var e = this.id;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + e + " .description", function () {});
        }
      }),
      (window.ImageCaptionWidget = class extends a {
        getHtmlId() {
          return "ImageCaptionWidget";
        }
        name() {
          return getI18n("block");
        }
        icon() {
          return "fal fa-newspaper";
        }
        init() {
          super.init();
          var e = $("#ImageCaptionWidgetContent").html(),
            t = this.id,
            n = $("<div>").html(e);
          n.find(".image-caption-container").attr("id", t),
            (this.contentHtml = n.html());
        }
        events() {
          var e = this.id;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + e + " .button-add-image-caption", function () {
              !(function (t = "upload") {
                var n = new PopUp(getI18n("change_image"), "auto"),
                  i =
                    '<div id="image-popup-' +
                    e +
                    '">' +
                    $("#ImageToolbox").html() +
                    "</div>";
                "upload" == t
                  ? (n.loadHtml(i),
                    $(".nav-content").removeClass("active"),
                    $(".nav-tab").removeClass("active"),
                    $("#home").addClass("active show"),
                    $(".home").addClass("active"))
                  : "url" == t
                  ? (n.loadHtml(i),
                    $(".nav-content").removeClass("active"),
                    $(".nav-tab").removeClass("active"),
                    $("#menu1").addClass("active show"),
                    $(".menu1").addClass("active"))
                  : "base64" == t
                  ? (n.loadHtml(i),
                    $(".nav-content").removeClass("active"),
                    $(".nav-tab").removeClass("active"),
                    $("#menu2").addClass("active show"),
                    $(".menu2").addClass("active"))
                  : "filemanager" == t &&
                    (n.loadHtml(i),
                    $(".nav-content").removeClass("active"),
                    $(".nav-tab").removeClass("active"),
                    $("#menu3").addClass("active show"),
                    $(".menu3").addClass("active")),
                  (window.filemanager_callback = function (t) {
                    var n = $("#builder_iframe")[0].contentWindow.$("#" + e);
                    n.after(
                      '<img id="' +
                        e +
                        '" builder-element class="" src="' +
                        t +
                        '" style="width: auto;"/>'
                    ),
                      n.remove(),
                      new PopUp().hide();
                  }),
                  void 0 ===
                    $(".modal-content .filemanager-iframe").attr("src") &&
                    currentEditor.filemanager &&
                    $(".modal-content .filemanager-iframe").prop(
                      "src",
                      currentEditor.filemanager
                    );
              })("upload");
            }),
            $(document).on(
              "change",
              'input[name="file_upload_image"]',
              function (e) {
                var t = e.target.files[0].name;
                $("p.file-upload-input-title span.des-upload").text(t);
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e + " button.buttonSaveUpload",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="file_upload_image"]')[0].files[0],
                      n = $("#builder_iframe")[0].contentWindow.$("#" + e),
                      i = new FormData();
                    if (
                      (i.append("file", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "upload"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n
                        .find(".image-caption-placeholder")
                        .html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          200 == r.status
                            ? (n
                                .find(".image-caption-placeholder")
                                .after(
                                  '<img id="' +
                                    e +
                                    '" builder-element class="" src="' +
                                    t.url +
                                    '" style="width: auto;"/>'
                                ),
                              n.find(".image-caption-placeholder").remove(),
                              new PopUp().hide(),
                              $(
                                "p.file-upload-input-title span.des-upload"
                              ).text(getI18n("drag_click")))
                            : alert(r.responseText);
                        })
                        .fail(function (e, t, i) {
                          var r = $.parseJSON(e.responseText);
                          alert(getI18n("error_upload_file") + r.error.file[0]),
                            n.html(html);
                        });
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e + " button.buttonSaveUrl",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="url_image"]').val(),
                      n = $("#builder_iframe")[0].contentWindow.$("#" + e),
                      i = new FormData();
                    if (
                      (i.append("url", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "url"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n
                        .find(".image-caption-placeholder")
                        .html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          200 == r.status
                            ? (n
                                .find(".image-caption-placeholder")
                                .after(
                                  '<img id="' +
                                    e +
                                    '" builder-element class="" src="' +
                                    t.url +
                                    '" style="width: auto;"/>'
                                ),
                              n.find(".image-caption-placeholder").remove(),
                              new PopUp().hide())
                            : alert(r.responseText);
                        })
                        .fail(function (e, t, n) {
                          alert(e.responseText);
                        });
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e + " button.buttonSaveBase64",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('[name="base64_image"]').val(),
                      n = $("#builder_iframe")[0].contentWindow.$("#" + e),
                      i = new FormData();
                    if (
                      (i.append("url_base64", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "base64"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n
                        .find(".image-caption-placeholder")
                        .html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          200 == r.status
                            ? (n
                                .find(".image-caption-placeholder")
                                .after(
                                  '<img id="' +
                                    e +
                                    '" builder-element class="" src="' +
                                    t.url +
                                    '" style="width: auto;"/>'
                                ),
                              n.find(".image-caption-placeholder").remove(),
                              new PopUp().hide())
                            : alert(r.responseText);
                        })
                        .fail(function (e, t, i) {
                          var r = $.parseJSON(e.responseText);
                          alert(
                            getI18n("error_upload_base64") +
                              r.error.url_base64[0]
                          ),
                            n.html(html);
                        });
                  })();
              }
            ),
            $("#builder_iframe")
              .contents()
              .find("body")
              .on("click", "#" + e + " a.remove-content-widget", function () {
                $("#builder_iframe")[0]
                  .contentWindow.$("#" + e)
                  .remove();
              });
        }
      }),
      (window.ImageGridWidget = class extends a {
        getHtmlId() {
          return "ImageGridWidget";
        }
        name() {
          return getI18n("image_grid");
        }
        icon() {
          return "fal fa-th";
        }
        init() {
          super.init();
        }
      }),
      (window.ImageHeaderWidget = class extends a {
        getHtmlId() {
          return "ImageHeaderWidget";
        }
        name() {
          return getI18n("image_header");
        }
        icon() {
          return "fal fa-file-image";
        }
        init() {
          super.init();
        }
      }),
      (window.ImageWidget = class extends a {
        getHtmlId() {
          return "ImageWidget";
        }
        name() {
          return getI18n("image");
        }
        icon() {
          return "fal fa-image";
        }
        init() {
          var e = this;
          super.init();
          var t = $("#ImageWidgetContent").html(),
            n = this.id,
            i = $("<div>").html(t);
          i.find(".image-container").attr("id", n),
            (this.contentHtml = i.html()),
            currentEditor.addBeforeSaveEvent(function () {
              e.getPlaceholder().length &&
                e
                  .getPlaceholder()
                  .closest('[builder-element="BlockElement"]')
                  .remove();
            });
        }
        getPlaceholder() {
          return currentEditor.getIframeContent().find("#" + this.id);
        }
        events() {
          var e = this,
            t = this.id;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + t + " .browse-btn", function () {
              (e.currentPlaceholder = $(this).closest(".image-container")),
                (function (n = "upload") {
                  var i = new PopUp(getI18n("change_image"), "auto"),
                    r =
                      '<div id="image-popup-' +
                      t +
                      '">' +
                      $("#ImageToolbox").html() +
                      "</div>";
                  "upload" == n
                    ? (i.loadHtml(r),
                      $(".nav-content").removeClass("active"),
                      $(".nav-tab").removeClass("active"),
                      setTimeout(function () {
                        $("#home").addClass("active show"),
                          $(".home").addClass("active");
                      }, 100))
                    : "url" == n
                    ? (i.loadHtml(r),
                      $(".nav-content").removeClass("active"),
                      $(".nav-tab").removeClass("active"),
                      $("#menu1").addClass("active show"),
                      $(".menu1").addClass("active"))
                    : "base64" == n
                    ? (i.loadHtml(r),
                      $(".nav-content").removeClass("active"),
                      $(".nav-tab").removeClass("active"),
                      $("#menu2").addClass("active show"),
                      $(".menu2").addClass("active"))
                    : "filemanager" == n &&
                      (i.loadHtml(r),
                      $(".nav-content").removeClass("active"),
                      $(".nav-tab").removeClass("active"),
                      $("#menu3").addClass("active show"),
                      $(".menu3").addClass("active")),
                    (window.filemanager_callback = function (n) {
                      var i = e.currentPlaceholder,
                        r = $(
                          '<img id="' +
                            t +
                            '" builder-element class="" src="' +
                            n +
                            '" style="width: 100%;"/>'
                        );
                      i.after(r),
                        i.remove(),
                        new PopUp().hide(),
                        setTimeout(() => {
                          var e = currentEditor.elementFactory(r);
                          currentEditor.select(e), currentEditor.handleSelect();
                        }, 500);
                    }),
                    void 0 ===
                      $(".modal-content .filemanager-iframe").attr("src") &&
                      currentEditor.filemanager &&
                      $(".modal-content .filemanager-iframe").prop(
                        "src",
                        currentEditor.filemanager
                      );
                })("upload");
            }),
            $(document).on(
              "change",
              'input[name="file_upload_image"]',
              function (e) {
                var t = e.target.files[0].name;
                $("p.file-upload-input-title span.des-upload").text(t);
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + t + " button.buttonSaveUpload",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="file_upload_image"]')[0].files[0],
                      n = e.currentPlaceholder,
                      i = new FormData();
                    if (
                      (i.append("file", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "upload"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    if ($('input[name="file_upload_image"]').val()) {
                      var o = currentEditor.uploadAssetMethod;
                      [
                        "PUT",
                        "PATCH",
                        "TRACE",
                        "OPTIONS",
                        "DELETE",
                        "HEAD",
                        "CONNECT",
                      ].includes(o.toUpperCase()) && (o = "POST"),
                        i.append("_method", o),
                        n.html('<div class="loader"></div>'),
                        $.ajax({
                          url: currentEditor.uploadAssetUrl,
                          type: currentEditor.uploadAssetMethod,
                          data: i,
                          dataType: "json",
                          contentType: !1,
                          processData: !1,
                        })
                          .done(function (e, t, i) {
                            if (200 == i.status) {
                              var r = $(
                                '<img builder-element class="" src="' +
                                  e.url +
                                  '" style="width: 100%;"/>'
                              );
                              n.after(r),
                                n.remove(),
                                new PopUp().hide(),
                                $(
                                  "p.file-upload-input-title span.des-upload"
                                ).text(getI18n("drag_click")),
                                (r[0].onload = function () {
                                  var e = currentEditor.elementFactory(r);
                                  currentEditor.select(e),
                                    currentEditor.handleSelect();
                                });
                            } else alert(i.responseText);
                          })
                          .fail(function (e, t, i) {
                            var r = $.parseJSON(e.responseText);
                            alert(
                              getI18n("error_upload_file") + r.error.file[0]
                            ),
                              n.html(html);
                          });
                    } else
                      Swal.fire({
                        title: getI18n("error_job"),
                        text: getI18n("no_file_selected"),
                        type: "error",
                      }).then((e) => {});
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + t + " button.buttonSaveUrl",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="url_image"]').val(),
                      n = e.currentPlaceholder,
                      i = new FormData();
                    if (
                      (i.append("url", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "url"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n.html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (e, t, i) {
                          if (200 == i.status) {
                            var r = $(
                              '<img builder-element class="" src="' +
                                e.url +
                                '" style="width: 100%;"/>'
                            );
                            n.after(r),
                              n.remove(),
                              new PopUp().hide(),
                              (r[0].onload = function () {
                                var e = currentEditor.elementFactory(r);
                                currentEditor.select(e),
                                  currentEditor.handleSelect();
                              });
                          } else alert(i.responseText);
                        })
                        .fail(function (e, t, n) {
                          alert(e.responseText);
                        });
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + t + " button.buttonSaveBase64",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('[name="base64_image"]').val(),
                      n = e.currentPlaceholder,
                      i = new FormData();
                    if (
                      (i.append("url_base64", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "base64"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n.html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (e, t, i) {
                          if (200 == i.status) {
                            var r = $(
                              '<img builder-element class="" src="' +
                                e.url +
                                '" style="width: 100%;"/>'
                            );
                            n.after(r),
                              n.remove(),
                              new PopUp().hide(),
                              (r[0].onload = function () {
                                var e = currentEditor.elementFactory(r);
                                currentEditor.select(e),
                                  currentEditor.handleSelect();
                              });
                          } else alert(i.responseText);
                        })
                        .fail(function (e, t, i) {
                          var r = $.parseJSON(e.responseText);
                          alert(
                            getI18n("error_upload_base64") +
                              r.error.url_base64[0]
                          ),
                            n.html(html);
                        });
                  })();
              }
            ),
            $("#builder_iframe")
              .contents()
              .find("body")
              .on("click", "#" + t + " a.remove-content-widget", function () {
                $(this).closest('[builder-element="BlockElement"]').remove();
              });
        }
      }),
      (window.InputFieldWidget = class extends a {
        getHtmlId() {
          return "InputFieldWidget";
        }
        name() {
          return getI18n("input_field");
        }
        icon() {
          return "fal fa-minus";
        }
        init() {
          super.init();
        }
      }),
      (window.InputGroupWidget = class extends a {
        getHtmlId() {
          return "InputGroupWidget";
        }
        name() {
          return getI18n("input_group");
        }
        icon() {
          return "fal fa-ballot";
        }
        init() {
          super.init();
        }
      }),
      (window.IntroBlockWidget = class extends a {
        getHtmlId() {
          return "IntroBlockWidget";
        }
      }),
      (window.IpFieldWidget = class extends l {
        getHtmlId() {
          return "IpFieldWidget";
        }
      }),
      (window.JumbotronWidget = class extends a {
        getHtmlId() {
          return "JumbotronWidget";
        }
        name() {
          return getI18n("jumbotron");
        }
        icon() {
          return "fal fa-pager";
        }
        init() {
          super.init();
        }
      }),
      (window.LinkWidget = class extends a {
        getHtmlId() {
          return "LinkWidget";
        }
        name() {
          return getI18n("link");
        }
        icon() {
          return "fal fa-link";
        }
        init() {
          super.init();
        }
      }),
      (window.ListGroupWidget = class extends a {
        getHtmlId() {
          return "ListGroupWidget";
        }
        name() {
          return getI18n("list_group");
        }
        icon() {
          return "fal fa-list";
        }
        init() {
          super.init();
        }
      }),
      (window.ListImageWidget = class extends a {
        getHtmlId() {
          return "ListImageWidget";
        }
        name() {
          return getI18n("list_image");
        }
        icon() {
          return "fal fa-images";
        }
        init() {
          super.init();
        }
      }),
      (window.MarkedTextWidget = class extends a {
        getHtmlId() {
          return "MarkedTextWidget";
        }
        name() {
          return getI18n("paragraph");
        }
        icon() {
          return "fal fa-info-circle";
        }
        init() {
          super.init();
        }
      }),
      (window.MediaObjectWidget = class extends a {
        getHtmlId() {
          return "MediaObjectWidget";
        }
        name() {
          return getI18n("media_object");
        }
        icon() {
          return "fal fa-play";
        }
        init() {
          super.init();
        }
      }),
      (window.MeterialWidget = class extends a {
        getHtmlId() {
          return "MeterialWidget";
        }
        name() {
          return getI18n("meterial");
        }
        icon() {
          return "fal fa-archive";
        }
        init() {
          super.init();
        }
      }),
      (window.MultiselectFieldWidget = class extends l {
        getHtmlId() {
          return "MultiselectFieldWidget";
        }
        replaceTag(e) {
          e = super.replaceTag(e);
          if (this.field.options.length) {
            var t = "";
            this.field.options.forEach(function (e) {
              t = t + '<option value="' + e.value + '">' + e.text + "</option>";
            }),
              (e = e.replace(/\[FIELD_OPTIONS\]/g, t));
          }
          return e;
        }
      }),
      (window.NavbarWidget = class extends a {
        getHtmlId() {
          return "NavbarWidget";
        }
        name() {
          return getI18n("navbar");
        }
        icon() {
          return "fal fa-bars";
        }
        init() {
          super.init();
        }
      }),
      (window.NumberFieldWidget = class extends l {
        getHtmlId() {
          return "NumberFieldWidget";
        }
      }),
      (window.OneColumnBlockWidget = class extends a {
        getHtmlId() {
          return "OneColumnBlockWidget";
        }
      }),
      (window.MyImageWidget = class extends a {
        getHtmlId() {
          return "MyImageWidget";
        }
      }),
      (window.OneRowWidget = class extends a {
        getHtmlId() {
          return "OneRowWidget";
        }
      }),
      (window.PanelWidget = class extends a {
        getHtmlId() {
          return "PanelWidget";
        }
        name() {
          return getI18n("panel");
        }
        icon() {
          return "fal fa-columns";
        }
        init() {
          super.init();
        }
      }),
      (window.ParagraphWidget = class extends a {
        getHtmlId() {
          return "ParagraphWidget";
        }
        name() {
          return getI18n("paragraph");
        }
        icon() {
          return "fal fa-align-justify";
        }
        init() {
          super.init();
        }
      }),
      (window.PricingTableWidget = class extends a {
        getHtmlId() {
          return "PricingTableWidget";
        }
        name() {
          return getI18n("pricing_table");
        }
        icon() {
          return "fal fa-usd-circle";
        }
        init() {
          super.init();
        }
      }),
      (window.ProgressBarWidget = class extends a {
        getHtmlId() {
          return "ProgressBarWidget";
        }
        name() {
          return getI18n("progress_bar");
        }
        icon() {
          return "fal fa-percent";
        }
        init() {
          super.init();
        }
      }),
      (window.RadioFieldWidget = class extends l {
        getHtmlId() {
          return "RadioFieldWidget";
        }
        replaceTag(e) {
          e = super.replaceTag(e);
          var t = this;
          if (t.field.options.length) {
            var n = "",
              i = 0;
            t.field.options.forEach(function (e) {
              (n =
                n +
                '\n                    <span class="mr-4 radio-option">\n                        <input ' +
                (0 == i ? "checked" : "") +
                ' type="radio" name="' +
                t.field.name +
                '" value="' +
                e.value +
                '" autocomplete="off">\n                        <span class="text">' +
                e.text +
                "</span>\n                    </span>\n                "),
                (i += 1);
            }),
              (e = e.replace(/\[FIELD_OPTIONS\]/g, n));
          }
          return e;
        }
      }),
      (window.RatingFieldWidget = class extends l {
        getHtmlId() {
          return "RatingFieldWidget";
        }
        replaceTag(e) {
          e = super.replaceTag(e);
          var t =
            "<script>\n            var rating_" +
            this.id +
            " = new Rating($('.rating-" +
            this.id +
            "'));\n        </script>";
          return (e = e.replace(/\[SCRIPT\]/g, t));
        }
      }),
      (window.SelectWidget = class extends a {
        getHtmlId() {
          return "SelectWidget";
        }
        name() {
          return getI18n("select");
        }
        icon() {
          return "fal fa-caret-down";
        }
        init() {
          super.init();
        }
      }),
      (window.ServicesListWidget = class extends a {
        getHtmlId() {
          return "ServicesListWidget";
        }
        name() {
          return getI18n("services_list");
        }
        icon() {
          return "fal fa-question-circle";
        }
        init() {
          super.init();
        }
      }),
      (window.SocialLinksBlockWidget = class extends a {
        getHtmlId() {
          return "SocialLinksBlockWidget";
        }
      }),
      (window.SocialWidget = class extends a {
        getHtmlId() {
          return "SocialWidget";
        }
        name() {
          return getI18n("social");
        }
        icon() {
          return "fal fa-share-alt";
        }
      }),
      (window.SubmitButtonWidget = class extends a {
        getHtmlId() {
          return "SubmitButtonWidget";
        }
      }),
      (window.Table4Widget = class extends a {
        getHtmlId() {
          return "Table4Widget";
        }
        name() {
          return getI18n("table");
        }
        icon() {
          return "fal fa-table";
        }
        init() {
          super.init();
        }
      }),
      (window.Table5Widget = class extends a {
        getHtmlId() {
          return "Table5Widget";
        }
        name() {
          return getI18n("table");
        }
        icon() {
          return "fal fa-table";
        }
        init() {
          super.init();
        }
      }),
      (window.TableWidget = class extends a {
        getHtmlId() {
          return "TableWidget";
        }
        name() {
          return getI18n("table");
        }
        icon() {
          return "fal fa-table";
        }
        init() {
          super.init();
        }
      }),
      (window.TextAreaWidget = class extends a {
        getHtmlId() {
          return "TextAreaWidget";
        }
        name() {
          return getI18n("text_area");
        }
        icon() {
          return "fal fa-rectangle-wide";
        }
        init() {
          super.init();
        }
      }),
      (window.TextFieldWidget = class extends l {
        getHtmlId() {
          return "TextFieldWidget";
        }
      }),
      (window.TextWidget = class extends a {
        getHtmlId() {
          return "TextWidget";
        }
        name() {
          return getI18n("text");
        }
        icon() {
          return "fal fa-font";
        }
      }),
      (window.TextareaFieldWidget = class extends l {
        getHtmlId() {
          return "TextareaFieldWidget";
        }
      }),
      (window.ThreeColumnsBlockWidget = class extends a {
        getHtmlId() {
          return "ThreeColumnsBlockWidget";
        }
        init() {
          $("#" + this.getHtmlId()).length &&
            this.setButtonHtml($("#" + this.getHtmlId()).html()),
            $("#" + this.getHtmlId()).length + getI18n("content") &&
              (currentEditor.emailMode
                ? this.setContentHtml(
                    $("#" + this.getHtmlId() + "EmailContent").html()
                  )
                : this.setContentHtml(
                    $("#" + this.getHtmlId() + "Content").html()
                  )),
            $("#" + this.getHtmlId()).length &&
              this.setDraggingHtml($("#" + this.getHtmlId()).html());
        }
      }),
      (window.ThreeColumnsWidget = class extends a {
        getHtmlId() {
          return "ThreeColumnsWidget";
        }
        init() {
          this.setButtonHtml(
            '\n            <div class="_1content widget-text">\n                <div class="panel__body woo-panel__body">\n                    <div class="image-drag">\n                        <div>\n                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.8 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="21.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="28.2" y="1" width="21.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="55.8" y="1" width="21" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                        </div>\n                    </div>\n                    <div class="body__title">{language.widget.three_columns}</div>\n                </div>\n            </div>\n        '
          ),
            currentEditor.emailMode
              ? this.setContentHtml(
                  '\n                <table width="100%" builder-element="BlockElement">\n                    <tr><td style="padding-top:15px;padding-bottom:15px">\n                        <div class="container">\n                            <table builder-element="CellContainerElement" data-layout="5-5" border="0" cellpadding="0" cellspacing="0" width="100%">\n                                <tr>\n                                    <td builder-element="CellElement" valign="top" width="33.33%" class="responsive-column">\n                                        \n                                    </td>\n                                    <td builder-element="CellElement" valign="top" width="33.33%" class="responsive-column">\n                                        \n                                    </td>\n                                    <td builder-element="CellElement" valign="top" width="33.33%" class="responsive-column">\n                                        \n                                    </td>\n                                </tr>\n                            </table>\n                        </div>\n                    </td></tr>\n                </table>\n            '
                )
              : this.setContentHtml(
                  '\n                <div id="' +
                    this.id +
                    '" builder-element="CellContainerElement" style="\n                    display: flex;\n                    flex-wrap: wrap;\n                " data-layout="4-4-4">\n                    <div style="\n                        width: 33.333333%;\n                    " builder-element="CellElement"></div>\n                    <div style="\n                        width: 33.333333%;\n                    " builder-element="CellElement"></div>\n                    <div style="\n                        width: 33.333334%;\n                    " builder-element="CellElement"></div>\n                </div>\n            '
                ),
            this.setDraggingHtml(this.getButtonHtml());
        }
        getCellContainerElement() {
          return currentEditor.getIframeContent().find("#" + this.id);
        }
        drop() {}
      }),
      (window.ThreeRow444Widget = class extends a {
        getHtmlId() {
          return "ThreeRow444Widget";
        }
      }),
      (window.TwoArticlesBlockWidget = class extends a {
        getHtmlId() {
          return "TwoArticlesBlockWidget";
        }
      }),
      (window.TwoArticlesRTLBlockWidget = class extends a {
        getHtmlId() {
          return "TwoArticlesRTLBlockWidget";
        }
      }),
      (window.TwoColumnsBlockWidget = class extends a {
        getHtmlId() {
          return "TwoColumnsBlockWidget";
        }
        init() {
          $("#" + this.getHtmlId()).length &&
            this.setButtonHtml($("#" + this.getHtmlId()).html()),
            $("#" + this.getHtmlId()).length + getI18n("content") &&
              (currentEditor.emailMode
                ? this.setContentHtml(
                    $("#" + this.getHtmlId() + "EmailContent").html()
                  )
                : this.setContentHtml(
                    $("#" + this.getHtmlId() + "Content").html()
                  )),
            $("#" + this.getHtmlId()).length &&
              this.setDraggingHtml($("#" + this.getHtmlId()).html());
        }
      }),
      (window.TwoColumnsWidget = class extends a {
        getHtmlId() {
          return "TwoColumnsWidget";
        }
        init() {
          this.setButtonHtml(
            '\n            <div class="_1content widget-text">\n                <div class="panel__body woo-panel__body">\n                    <div class="image-drag">\n                        <div>\n                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="27" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="32" y="1" width="45" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                        </div>\n                    </div>\n                    <div class="body__title">{language.widget.two_columns}</div>\n                </div>\n            </div>\n        '
          ),
            currentEditor.emailMode
              ? this.setContentHtml(
                  '\n                <table width="100%" builder-element="BlockElement">\n                    <tr><td style="padding-top:15px;padding-bottom:15px">\n                        <div class="container">\n                            <table builder-element="CellContainerElement" data-layout="5-5" border="0" cellpadding="0" cellspacing="0" width="100%">\n                                <tr>\n                                    <td builder-element="CellElement" valign="top" width="50%" class="responsive-column">\n                                        \n                                    </td>\n                                    <td builder-element="CellElement" valign="top" width="50%" class="responsive-column">\n                                        \n                                    </td>\n                                </tr>\n                            </table>\n                        </div>\n                    </td></tr>\n                </table>\n            '
                )
              : this.setContentHtml(
                  '\n                <div id="' +
                    this.id +
                    '" builder-element="CellContainerElement" style="\n                    display: flex;\n                    flex-wrap: wrap;\n                " data-layout="3-7">\n                    <div style="\n                        width: 33.333333%;\n                    " builder-element="CellElement"></div>\n                    <div style="\n                        width: 66.666667%;\n                    " builder-element="CellElement"></div>\n                </div>\n            '
                ),
            this.setDraggingHtml(this.getButtonHtml());
        }
        getCellContainerElement() {
          return currentEditor.getIframeContent().find("#" + this.id);
        }
        drop() {}
      }),
      (window.OneColumnWidget = class extends a {
        getHtmlId() {
          return "OneColumnWidget";
        }
        init() {
          this.setButtonHtml(
            '\n            <div class="_1content widget-text">\n                <div class="panel__body woo-panel__body">\n                    <div class="image-drag">\n                        <div>\n                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" transform="matrix(1,0,0,-1,0,0)"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="75" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"></rect></g></svg>\n                        </div>\n                    </div>\n                    <div class="body__title">{language.widget.one_column}</div>\n                </div>\n            </div>\n        '
          ),
            currentEditor.emailMode
              ? this.setContentHtml(
                  '\n                <table width="100%" builder-element="BlockElement">\n                    <tr><td style="padding-top:15px;padding-bottom:15px">\n                        <div class="container">\n                            <table builder-element="CellContainerElement" data-layout="5-5" border="0" cellpadding="0" cellspacing="0" width="100%">\n                                <tr>\n                                    <td builder-element="CellElement" valign="top" width="100%" class="responsive-column">\n                                        \n                                    </td>\n                                                                   </tr>\n                            </table>\n                        </div>\n                    </td></tr>\n                </table>\n            '
                )
              : this.setContentHtml(
                  '\n                <div id="' +
                    this.id +
                    '" builder-element="CellContainerElement" style="\n                    display: flex;\n                    flex-wrap: wrap;\n                " data-layout="3-7">\n                    <div style="\n                        width: 100%;\n                    " builder-element="CellElement"></div>\n                    </div>\n            '
                ),
            this.setDraggingHtml(this.getButtonHtml());
        }
        getCellContainerElement() {
          return currentEditor.getIframeContent().find("#" + this.id);
        }
        drop() {}
      }),
      (window.TwoRow48Widget = class extends a {
        getHtmlId() {
          return "TwoRow48Widget";
        }
      }),
      (window.TwoRow66Widget = class extends a {
        getHtmlId() {
          return "TwoRow66Widget";
        }
      }),
      (window.TwoRow84Widget = class extends a {
        getHtmlId() {
          return "TwoRow84Widget";
        }
      }),
      (window.UnorderedListWidget = class extends a {
        getHtmlId() {
          return "UnorderedListWidget";
        }
        name() {
          return getI18n("unordered_list");
        }
        icon() {
          return "fal fa-list-ul";
        }
        init() {
          super.init();
        }
      }),
      (window.UserProfileWidget = class extends a {
        getHtmlId() {
          return "UserProfileWidget";
        }
        name() {
          return getI18n("user_profile");
        }
        icon() {
          return "fal fa-user";
        }
        init() {
          super.init();
        }
      }),
      (window.VideoWidget = class extends a {
        getHtmlId() {
          return "VideoWidget";
        }
        name() {
          return getI18n("video");
        }
        icon() {
          return "fal fa-film";
        }
        init() {
          super.init();
          var e = $("#VideoWidgetContent").html(),
            t = this.id,
            n = $("<div>").html(e);
          n.find(".video-container").attr("id", t),
            (this.contentHtml = n.html());
        }
        events() {
          var e = this.id;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + e + " .button-add-video", function () {
              !(function (t = "upload") {
                var n = new PopUp(getI18n("upload_video"), "auto"),
                  i =
                    '<div id="video-popup-' +
                    e +
                    '">' +
                    $("#VideoToolbox").html() +
                    "</div>";
                "upload" == t
                  ? (n.loadHtml(i),
                    setTimeout(function () {
                      $(".nav-content").removeClass("active"),
                        $(".nav-tab").removeClass("active"),
                        $("#home").addClass("active show"),
                        $(".home").addClass("active");
                    }, 1e3))
                  : "url" == t &&
                    (n.loadHtml(i),
                    $(".nav-content").removeClass("active"),
                    $(".nav-tab").removeClass("active"),
                    $("#menu1").addClass("active show"),
                    $(".menu1").addClass("active"));
              })("upload");
            }),
            $(document).on(
              "change",
              'input[name="file_upload_video"]',
              function (e) {
                var t = e.target.files[0].name;
                $("p.file-upload-input-title span.des-upload").text(t);
              }
            ),
            $(document).on(
              "click",
              "#video-popup-" + e + " button.buttonSaveUpload",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="file_upload_video"]')[0].files[0],
                      n = $("#builder_iframe")[0].contentWindow.$("#" + e),
                      i = new FormData();
                    if (
                      (i.append("file", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "upload"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      n.html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          if (200 == r.status) {
                            var o = t.url;
                            n.after(
                              '<video id="v-' +
                                e +
                                '" class="video-after-change" width="100%" height="240" controls src="' +
                                o +
                                '"></video>'
                            ),
                              n.remove(),
                              new PopUp().hide(),
                              $(
                                "p.file-upload-input-title span.des-upload"
                              ).text(getI18n("drag_click"));
                          } else alert(r.responseText);
                        })
                        .fail(function (e, t, i) {
                          var r = $.parseJSON(e.responseText);
                          alert(getI18n("error_upload_file") + r.error.file[0]),
                            n.html(html);
                        });
                  })();
              }
            ),
            $(document).on(
              "click",
              "#video-popup-" + e + " button.buttonSaveUrl",
              function () {
                var t = $("input.url-video").val(),
                  n = $("#builder_iframe")[0].contentWindow.$("#" + e),
                  i = new FormData();
                if (
                  (i.append("url", t),
                  i.append("_token", CSRF_TOKEN),
                  i.append("assetType", "url"),
                  null !== currentEditor.data)
                )
                  for (var r in currentEditor.data)
                    i.append(r, currentEditor.data[r]);
                var o = currentEditor.uploadAssetMethod;
                return (
                  [
                    "PUT",
                    "PATCH",
                    "TRACE",
                    "OPTIONS",
                    "DELETE",
                    "HEAD",
                    "CONNECT",
                  ].includes(o.toUpperCase()) && (o = "POST"),
                  i.append("_method", o),
                  n.html('<div class="loader"></div>'),
                  t.includes("youtube")
                    ? (n.after(
                        '\n                    <p builder-element class="text-center"><iframe width="560" height="315" src="https://www.youtube.com/embed/' +
                          t.split(/(\?v=|&)/)[1] +
                          '" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>\n                '
                      ),
                      n.remove(),
                      void new PopUp().hide())
                    : ($.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          if (200 == r.status) {
                            var o = t.url;
                            n.after(
                              '<video id="v-' +
                                e +
                                '" class="video-after-change" width="100%" height="240" controls src="' +
                                o +
                                '"></video>'
                            ),
                              n.remove(),
                              new PopUp().hide();
                          } else alert(r.responseText);
                        })
                        .fail(function (e, t, n) {
                          alert(e.responseText);
                        }),
                      !1)
                );
              }
            ),
            $("#builder_iframe")
              .contents()
              .find("body")
              .on("click", "#" + e + " a.remove-content-widget", function () {
                $("#builder_iframe")[0]
                  .contentWindow.$("#" + e)
                  .remove();
              });
        }
      }),
      (window.WellWidget = class extends a {
        getHtmlId() {
          return "WellWidget";
        }
        name() {
          return getI18n("well");
        }
        icon() {
          return "fal fa-hexagon";
        }
        init() {
          super.init();
        }
      }),
      (window.YoutubeWidget = class extends a {
        getHtmlId() {
          return "YoutubeWidget";
        }
        init() {
          super.init();
          var e = this,
            t = $("#YoutubeWidgetContent").html(),
            n = this.id,
            i = $("<div>").html(t);
          i.find(".video-container").attr("id", n),
            (this.contentHtml = i.html()),
            (this.innerHtml = i.find(".container").html()),
            currentEditor.addBeforeSaveEvent(function () {
              e.getPlaceholder().length &&
                e
                  .getPlaceholder()
                  .closest('[builder-element="BlockElement"]')
                  .remove();
            });
        }
        getPlaceholder() {
          return currentEditor
            .getIframeContent()
            .find("#" + this.id + " .video-placeholder");
        }
        events() {
          var e = this;
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("click", "#" + e.id + " .button-add-youtube", function (t) {
              (e.youtubePopup = new PopUp(getI18n("youtube"), "small")),
                e.youtubePopup.loadHtml(
                  '\n                <div id="popup-' +
                    e.id +
                    '" class="container pb-3 youtube-popup">\n                    <p class="py-2">' +
                    getI18n("youtube.enter_youtube_url") +
                    ':</p>\n                    <input type="text" name="youtube_url" class="youtube_url mb-3">\n                    <button class="btn btn-secondary youtube_save_button">' +
                    getI18n("youtube.save") +
                    "</button>\n                </div>\n            "
                );
            }),
            $(document).on(
              "click",
              "#popup-" + e.id + " .youtube_save_button",
              function (t) {
                var n = $(this)
                  .closest(".youtube-popup")
                  .find("[name=youtube_url]")
                  .val();
                if ("" != n) {
                  var i =
                    /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
                  if (n.match(i)) {
                    var r = n.match(i)[1];
                    !1 !== currentEditor.emailMode
                      ? $("#builder_iframe")
                          .contents()
                          .find("#" + e.id)
                          .html(
                            '\n                    <div builder-element="YoutubeElement" data-code="' +
                              r +
                              '" class="position-relative" style="width:100%;\n                        margin: -20px; padding: 20px;width: calc(100% + 40px);text-align:center;\n                    ">\n                        <svg style="\n                            fill: #ffffff;\n                            position: absolute;\n                            display: block;\n                            transform: scale(2);\n                            top: calc(50% - 20px);\n                            pointer-events: none;\n                            opacity: 0.7;\n                            left: calc(50% - 20px);\n                        " xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M19.15 32.5 32.5 24 19.15 15.5ZM24 44Q19.9 44 16.25 42.425Q12.6 40.85 9.875 38.125Q7.15 35.4 5.575 31.75Q4 28.1 4 24Q4 19.9 5.575 16.25Q7.15 12.6 9.875 9.875Q12.6 7.15 16.25 5.575Q19.9 4 24 4Q28.1 4 31.75 5.575Q35.4 7.15 38.125 9.875Q40.85 12.6 42.425 16.25Q44 19.9 44 24Q44 28.1 42.425 31.75Q40.85 35.4 38.125 38.125Q35.4 40.85 31.75 42.425Q28.1 44 24 44ZM24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24Q24 24 24 24ZM24 41Q31 41 36 36Q41 31 41 24Q41 17 36 12Q31 7 24 7Q17 7 12 12Q7 17 7 24Q7 31 12 36Q17 41 24 41Z"/></svg>\n\n                        <div class="ytb-link-container">\n                            <a target="_blank" href="https://www.youtube.com/watch?v=' +
                              r +
                              '">\n                                <img alt="Youtube Thumb Image" class="ytb-thumb" width="100%" height="auto" src="http://img.youtube.com/vi/' +
                              r +
                              '/hqdefault.jpg" width="100%" />\n                            </a>\n                        </div>\n                    </div>\n                '
                          )
                      : $("#builder_iframe")
                          .contents()
                          .find("#" + e.id)
                          .html(
                            '\n                    <div builder-element="YoutubeElement" data-code="' +
                              r +
                              '" class="position-relative" style="width:100%;\n                        margin: -20px; padding: 20px;width: calc(100% + 40px);text-align:center;\n                    ">\n                        <iframe width="560" height="315" src="https://www.youtube.com/embed/' +
                              r +
                              '" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n                    </div>\n                '
                          ),
                      e.youtubePopup.hide(),
                      setTimeout(function () {
                        currentEditor.selected.unselect();
                      }, 100);
                  } else alert(getI18n("youtube.entered_url_not_valid"));
                } else alert(getI18n("youtube.please_enter_url"));
              }
            ),
            $("#builder_iframe")
              .contents()
              .find("body")
              .on(
                "click",
                "#" + e.id + " a.remove-content-widget",
                function () {
                  $(this).closest('[builder-element="BlockElement"]').remove();
                }
              );
        }
      }),
      (window.AudioWidget = class extends a {
        name() {
          return getI18n("widget.audio");
        }
        init() {
          super.init(),
            this.setButtonHtml(
              '\n            <div class="_1content widget-text">\n                <div class="panel__body woo-panel__body">\n                    <div class="image-drag">\n                        <div>\n                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="0.5" y="0.5" width="35" height="35" rx="4.7" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10"/><path d="M16,27a3.8,3.8,0,0,1-2.8-1.2,3.9,3.9,0,0,1,0-5.6A3.8,3.8,0,0,1,16,19h1.1l.9.4V9h6v4H20V23a3.8,3.8,0,0,1-1.2,2.8A3.8,3.8,0,0,1,16,27Z" style="fill:#999"/></g></g></svg>\n                        </div>\n                    </div>\n                    <div class="body__title">{language.widget.audio}</div>\n                </div>\n            </div>\n        '
            ),
            this.setContentHtml(
              '\n            <div builder-element="AudioElement">\n                <div style="text-align:center">\n                    <audio controls>\n                        <source src="horse.ogg" type="audio/ogg">\n                        <source src="horse.mp3" type="audio/mpeg">\n                        Your browser does not support the audio element.\n                    </audio>\n                </div>\n                <div style="auto-placeholder">\n                    <p class="" style="margin:0;padding:10px;text-align:center;color:#dc3545;">{language.widget.audio.upload_your_audio}</p>\n                </div>\n            </div>\n        '
            ),
            this.setDraggingHtml(
              '\n            <div class="_1content widget-text">\n                <div class="panel__body woo-panel__body">\n                    <div class="image-drag">\n                        <div>\n                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="27" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"></rect><rect x="32" y="1" width="45" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"></rect></g></g></svg>\n                        </div>\n                    </div>\n                    <div class="body__title">2 columns</div>\n                </div>\n            </div>\n        '
            );
        }
        events() {}
        afterDrop(e) {
          var t = currentEditor.elementFactory(
            e.find('[builder-element="AudioElement"]').first()
          );
          currentEditor.select(t), currentEditor.handleSelect();
        }
      }),
      (window.SuperElement = d),
      (window.AElement = class extends d {
        name() {
          return getI18n("link");
        }
        getControls() {
          var e = this;
          return [
            new ActionButtonControl(
              getI18n("action"),
              {
                name: e.obj.attr("name"),
                data_action: e.obj.attr("href"),
              },
              function (t) {
                e.obj.attr("name", t.name), e.obj.attr("href", t.data_action);
              }
            ),
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new LinkColorControl(
              getI18n("link_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.DivElement = class extends d {
        name() {
          return getI18n("text");
        }
        icon() {
          return "fal fa-font";
        }
        getControls() {
          var e = this;
          return [
            new DivOptionControl("", e.obj.css("height"), function (t) {
              e.obj.css("height", t);
            }),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.IconLinkElement = class extends d {
        name() {
          return getI18n("icon");
        }
        icon() {
          return "fal fa-font";
        }
        getAbsIconSrc() {
          var e = this.obj.find("img").attr("src"),
            t = $("#builder_iframe").get(0).contentWindow.location.origin,
            n = $("#builder_iframe").get(0).contentWindow.location.pathname;
          return (
            -1 !==
              (e =
                -1 !== e.indexOf("/tmp")
                  ? t + e
                  : "/" == e[0] || /^((http|https|ftp):\/\/)/.test(e)
                  ? e
                  : n + e).indexOf("data:") && (e = e),
            e
          );
        }
        getControls() {
          var e = this;
          return [
            new IconSelectControl(
              getI18n("icon"),
              {
                icon: e.obj.attr("data-value"),
                url: e.obj.attr("href"),
              },
              {
                setValue: function (t) {
                  e.obj.attr("data-value", t);
                },
                setIconHtml: function (t) {
                  e.obj.html(t);
                },
                setUrl: function (t) {
                  e.obj.attr("href", t);
                },
                duplicate: function () {
                  var t = e.obj.closest("td"),
                    n = t.clone();
                  t.after(n);
                  var i = currentEditor.elementFactory(
                    n.find("[builder-element=IconLinkElement]")
                  );
                  currentEditor.select(i), currentEditor.handleSelect();
                },
                remove: function () {
                  e.obj.closest("td").remove(),
                    currentEditor.unselect(),
                    currentEditor.hideControls();
                },
              }
            ),
          ];
        }
      }),
      (window.PElement = class extends d {
        name() {
          return getI18n("text");
        }
        icon() {
          return "fal fa-font";
        }
        unselect() {
          super.unselect();
          var e = this.obj.children().first();
          if (void 0 !== e && "DIV" == e.prop("tagName")) {
            var t = this.obj[0].style.cssText,
              n = e[0].style.cssText;
            (this.obj[0].style.cssText = t + n), console.log(t + n);
          }
        }
        getControls() {
          var e = this;
          return [
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new AlignmentControl(
              "alignment",
              {
                align: e.obj.css("text-align"),
              },
              {
                setAlign: function (t) {
                  e.obj.css("text-align", t);
                },
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new BlockOptionControl(
              getI18n("margin"),
              {
                padding: e.obj.css("margin"),
                top: e.obj.css("margin-top"),
                bottom: e.obj.css("margin-bottom"),
                right: e.obj.css("margin-right"),
                left: e.obj.css("margin-left"),
              },
              function (t) {
                e.obj.css("margin", t.padding),
                  e.obj.css("margin-top", t.top),
                  e.obj.css("margin-bottom", t.bottom),
                  e.obj.css("margin-right", t.right),
                  e.obj.css("margin-left", t.left),
                  e.select();
              }
            ),
          ];
        }
      }),
      (window.TableBlockElement = class extends d {
        name() {
          return getI18n("block");
        }
        getControls() {
          var e = this;
          return [
            new TableBlockControl(
              getI18n("theme"),
              e.obj.attr("data-theme"),
              function (t) {
                e.obj.find("table").removeClass(function (e, t) {
                  return (t.match(/(^|\s)table-\S+/g) || []).join(" ");
                }),
                  e.obj.find("table").addClass(t),
                  e.obj.find("table").attr("data-theme", t),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-image", t)
                    : e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-color", t)
                    : e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-repeat", t)
                    : e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-position", t)
                    : e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-size", t)
                    : e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.BlockElement = class extends d {
        name() {
          return getI18n("block");
        }
        icon() {
          return "fal fa-font";
        }
        isDraggable() {
          return !0;
        }
        getControls() {
          var e = this,
            t = e.obj;
          return currentEditor.emailMode && "TABLE" == e.obj.prop("tagName")
            ? (e.obj.find("td").length && (t = e.obj.find("td").first()),
              [
                new FontFamilyControl(
                  getI18n("font_family"),
                  t.css("font-family"),
                  function (e) {
                    t.css("font-family", e), currentEditor.selected.select();
                  }
                ),
                new AlignmentControl(
                  "alignment",
                  {
                    align: t.css("text-align"),
                  },
                  {
                    setAlign: function (e) {
                      console.log(e), t.css("text-align", e);
                    },
                  }
                ),
                new BackgroundImageControl(
                  getI18n("background_image"),
                  {
                    image: t.css("background-image"),
                    color: t.css("background-color"),
                    repeat: t.css("background-repeat"),
                    position: t.css("background-position"),
                    size: t.css("background-size"),
                  },
                  {
                    setBackgroundImage: function (n) {
                      e.isWrapper()
                        ? t.closest("body").css("background-image", n)
                        : t.css("background-image", n);
                    },
                    setBackgroundColor: function (n) {
                      e.isWrapper()
                        ? t.closest("body").css("background-color", n)
                        : t.css("background-color", n);
                    },
                    setBackgroundRepeat: function (n) {
                      e.isWrapper()
                        ? t.closest("body").css("background-repeat", n)
                        : t.css("background-repeat", n);
                    },
                    setBackgroundPosition: function (n) {
                      e.isWrapper()
                        ? t.closest("body").css("background-position", n)
                        : t.css("background-position", n);
                    },
                    setBackgroundSize: function (n) {
                      e.isWrapper()
                        ? t.closest("body").css("background-size", n)
                        : t.css("background-size", n);
                    },
                  }
                ),
                new BlockOptionControl(
                  getI18n("padding"),
                  {
                    padding: t.css("padding"),
                    top: t.css("padding-top"),
                    bottom: t.css("padding-bottom"),
                    right: t.css("padding-right"),
                    left: t.css("padding-left"),
                  },
                  function (e) {
                    t.css("padding", e.padding),
                      t.css("padding-top", e.top),
                      t.css("padding-bottom", e.bottom),
                      t.css("padding-right", e.right),
                      t.css("padding-left", e.left),
                      setTimeout(function () {
                        currentEditor.selected.select();
                      }, 100);
                  }
                ),
                new MobileDesktopToggleControl(
                  getI18n("toogle"),
                  {
                    type: t.attr("data-hide-on"),
                  },
                  function (e) {
                    t.attr("data-hide-on", e),
                      setTimeout(function () {
                        currentEditor.selected.select();
                      }, 100);
                  }
                ),
              ])
            : [
                new FontFamilyControl(
                  getI18n("font_family"),
                  e.obj.css("font-family"),
                  function (t) {
                    e.obj.css("font-family", t),
                      currentEditor.selected.select();
                  }
                ),
                new AlignmentControl(
                  "alignment",
                  {
                    align: e.obj.css("text-align"),
                  },
                  {
                    setAlign: function (t) {
                      console.log(t), e.obj.css("text-align", t);
                    },
                  }
                ),
                new BackgroundImageControl(
                  getI18n("background_image"),
                  {
                    image: e.obj.css("background-image"),
                    color: e.obj.css("background-color"),
                    repeat: e.obj.css("background-repeat"),
                    position: e.obj.css("background-position"),
                    size: e.obj.css("background-size"),
                  },
                  {
                    setBackgroundImage: function (t) {
                      e.isWrapper()
                        ? e.obj.closest("body").css("background-image", t)
                        : e.obj.css("background-image", t);
                    },
                    setBackgroundColor: function (t) {
                      e.isWrapper()
                        ? e.obj.closest("body").css("background-color", t)
                        : e.obj.css("background-color", t);
                    },
                    setBackgroundRepeat: function (t) {
                      e.isWrapper()
                        ? e.obj.closest("body").css("background-repeat", t)
                        : e.obj.css("background-repeat", t);
                    },
                    setBackgroundPosition: function (t) {
                      e.isWrapper()
                        ? e.obj.closest("body").css("background-position", t)
                        : e.obj.css("background-position", t);
                    },
                    setBackgroundSize: function (t) {
                      e.isWrapper()
                        ? e.obj.closest("body").css("background-size", t)
                        : e.obj.css("background-size", t);
                    },
                  }
                ),
                new BlockOptionControl(
                  getI18n("padding"),
                  {
                    padding: t.css("padding"),
                    top: t.css("padding-top"),
                    bottom: t.css("padding-bottom"),
                    right: t.css("padding-right"),
                    left: t.css("padding-left"),
                  },
                  function (e) {
                    t.css("padding", e.padding),
                      t.css("padding-top", e.top),
                      t.css("padding-bottom", e.bottom),
                      t.css("padding-right", e.right),
                      t.css("padding-left", e.left),
                      setTimeout(function () {
                        currentEditor.selected.select();
                      }, 100);
                  }
                ),
                new MobileDesktopToggleControl(
                  getI18n("toogle"),
                  {
                    type: e.obj.attr("data-hide-on"),
                  },
                  function (t) {
                    e.obj.attr("data-hide-on", t),
                      setTimeout(function () {
                        currentEditor.selected.select();
                      }, 100);
                  }
                ),
              ];
        }
      }),
      (window.DividerElement = class extends d {
        name() {
          return getI18n("divider");
        }
        getControls() {
          var e = this;
          return [
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-image", t)
                    : e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-color", t)
                    : e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-repeat", t)
                    : e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-position", t)
                    : e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-size", t)
                    : e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.IconsContainerElement = class extends d {
        name() {
          return getI18n("container");
        }
        getControls() {
          var e = this;
          return [
            new IconsContainerControl(
              getI18n("icons_container"),
              {},
              {
                addIcon: function () {
                  var t = $(
                    currentEditor.transformHtml(
                      '\n                        <td style="padding-right: 15px">\n                            <a builder-element="IconLinkElement" data-value="none" href="" class="d-inline-block">\n                                <span class="social-icon">\n                                    <img src="{{root}}image/icons/none.png" height="35" width="auto" />\n                                </span>\n                            </a>\n                        </td>\n                    '
                    )
                  );
                  e.obj.find("tr").append(t);
                  var n = currentEditor.elementFactory(
                    e.obj.find("[builder-element=IconLinkElement]").last()
                  );
                  currentEditor.select(n), currentEditor.handleSelect();
                },
              }
            ),
            new AlignmentControl(
              "alignment",
              {
                align: e.obj.css("text-align"),
              },
              {
                setAlign: function (t) {
                  e.obj.css("text-align", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.PageElement = class extends d {
        name() {
          return getI18n("page");
        }
        icon() {
          return "fal fa-font";
        }
        isContainer() {
          return !0;
        }
        isWrapper() {
          return !0;
        }
        getControls() {
          var e = this;
          return [
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: (e.isWrapper(), e.obj.css("background-image")),
                color: (e.isWrapper(), e.obj.css("background-color")),
                repeat: (e.isWrapper(), e.obj.css("background-repeat")),
                position: (e.isWrapper(), e.obj.css("background-position")),
                size: (e.isWrapper(), e.obj.css("background-size")),
              },
              {
                setBackgroundImage: function (t) {
                  e.isWrapper(), e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.isWrapper(), e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.isWrapper(), e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.isWrapper(), e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.isWrapper(), e.obj.css("background-size", t);
                },
              }
            ),
            new BlockOptionControl(
              getI18n("padding"),
              {
                padding: e.obj.css("padding"),
                top: e.obj.css("padding-top"),
                bottom: e.obj.css("padding-bottom"),
                right: e.obj.css("padding-right"),
                left: e.obj.css("padding-left"),
              },
              function (t) {
                e.obj.css("padding", t.padding),
                  e.obj.css("padding-top", t.top),
                  e.obj.css("padding-bottom", t.bottom),
                  e.obj.css("padding-right", t.right),
                  e.obj.css("padding-left", t.left),
                  setTimeout(function () {
                    currentEditor.selected.select();
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.TextElement = class extends d {
        name() {
          return getI18n("text");
        }
        getControls() {
          var e = this;
          return [
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new AlignmentControl(
              "alignment",
              {
                align: e.obj.css("text-align"),
              },
              {
                setAlign: function (t) {
                  e.obj.css("text-align", t);
                },
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new BlockOptionControl(
              getI18n("margin"),
              {
                padding: e.obj.css("margin"),
                top: e.obj.css("margin-top"),
                bottom: e.obj.css("margin-bottom"),
                right: e.obj.css("margin-right"),
                left: e.obj.css("margin-left"),
              },
              function (t) {
                e.obj.css("margin", t.padding),
                  e.obj.css("margin-top", t.top),
                  e.obj.css("margin-bottom", t.bottom),
                  e.obj.css("margin-right", t.right),
                  e.obj.css("margin-left", t.left),
                  e.select();
              }
            ),
          ];
        }
      }),
      (window.ButtonElement = class extends d {
        name() {
          return getI18n("button");
        }
        icon() {
          return "fal fa-minus-square";
        }
        getControls() {
          var e = this,
            t = e.obj;
          return [
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new ButtonControl(
              getI18n("button_style"),
              e.obj.attr("data-style"),
              function (t, n) {
                e.obj.attr("data-style", n),
                  t.applyStyle(e.obj, n),
                  currentEditor.select(e);
              }
            ),
            new ActionButtonControl(
              getI18n("action"),
              {
                name: e.obj.attr("name"),
                data_action: e.obj.attr("href"),
              },
              function (t) {
                e.obj.attr("name", t.name),
                  e.obj.parent().is("a")
                    ? e.obj.parent().attr("href", t.data_action)
                    : e.obj.is("a")
                    ? e.obj.attr("href", t.data_action)
                    : e.obj.wrap("<a href='" + t.data_action + "'></a>"),
                  e.obj.attr("type", "submit");
              }
            ),
            new ButtonOptionControl(
              getI18n("button_actions"),
              {
                background_color: e.obj.css("background-color"),
                text_color: e.obj.css("color"),
                align: e.obj.css("float"),
                line_height: e.obj.css("line-height"),
                border_radius: e.obj.css("border-radius"),
                border_style: e.obj.css("border-style"),
                border_width: e.obj.css("border-width"),
                border_color: e.obj.css("border-color"),
                border_top_style: e.obj.css("border-top-style"),
                border_top_width: e.obj.css("border-top-width"),
                border_top_color: e.obj.css("border-top-color"),
                border_right_style: e.obj.css("border-right-style"),
                border_right_width: e.obj.css("border-right-width"),
                border_right_color: e.obj.css("border-right-color"),
                border_bottom_style: e.obj.css("border-bottom-style"),
                border_bottom_width: e.obj.css("border-bottom-width"),
                border_bottom_color: e.obj.css("border-bottom-color"),
                border_left_style: e.obj.css("border-left-style"),
                border_left_width: e.obj.css("border-left-width"),
                border_left_color: e.obj.css("border-left-color"),
                width_button: e.obj.css("width"),
              },
              function (t) {
                void 0 !== t.background_color &&
                  e.obj.css("background-color", t.background_color),
                  void 0 !== t.text_color && e.obj.css("color", t.text_color),
                  void 0 !== t.align &&
                    (e.obj.parent().removeClass("text-center"),
                    e.obj
                      .parent()
                      .css("text-align", t.align)
                      .css("display", "block")),
                  void 0 !== t.line_height &&
                    e.obj.css("line-height", t.line_height),
                  void 0 !== t.border_radius &&
                    e.obj.css("border-radius", t.border_radius),
                  void 0 !== t.border_style &&
                    e.obj.css("border-style", t.border_style),
                  void 0 !== t.border_width &&
                    e.obj.css("border-width", t.border_width),
                  void 0 !== t.border_color &&
                    e.obj.css("border-color", t.border_color),
                  void 0 !== t.border_top_style &&
                    e.obj.css("border-top-style", t.border_top_style),
                  void 0 !== t.border_top_width &&
                    e.obj.css("border-top-width", t.border_top_width),
                  void 0 !== t.border_top_color &&
                    e.obj.css("border-top-color", t.border_top_color),
                  void 0 !== t.border_right_style &&
                    e.obj.css("border-right-style", t.border_right_style),
                  void 0 !== t.border_right_width &&
                    e.obj.css("border-right-width", t.border_right_width),
                  void 0 !== t.border_right_color &&
                    e.obj.css("border-right-color", t.border_right_color),
                  void 0 !== t.border_bottom_style &&
                    e.obj.css("border-bottom-style", t.border_bottom_style),
                  void 0 !== t.border_bottom_width &&
                    e.obj.css("border-bottom-width", t.border_bottom_width),
                  void 0 !== t.border_bottom_color &&
                    e.obj.css("border-bottom-color", t.border_bottom_color),
                  void 0 !== t.border_left_style &&
                    e.obj.css("border-left-style", t.border_left_style),
                  void 0 !== t.border_left_width &&
                    e.obj.css("border-left-width", t.border_left_width),
                  void 0 !== t.border_left_color &&
                    e.obj.css("border-left-color", t.border_left_color),
                  void 0 !== t.width_button &&
                    e.obj.css("width", t.width_button),
                  e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new BlockOptionControl(
              getI18n("padding"),
              {
                padding: t.css("padding"),
                top: t.css("padding-top"),
                bottom: t.css("padding-bottom"),
                right: t.css("padding-right"),
                left: t.css("padding-left"),
              },
              function (e) {
                t.css("padding", e.padding),
                  t.css("padding-top", e.top),
                  t.css("padding-bottom", e.bottom),
                  t.css("padding-right", e.right),
                  t.css("padding-left", e.left),
                  setTimeout(function () {
                    currentEditor.selected.select();
                  }, 100);
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.DropdownElement = class extends d {
        getControls() {
          var e = this;
          return [
            new DropdownAssociateControl(
              getI18n("associate_tag"),
              {
                name: e.obj.attr("name"),
              },
              function (t) {
                e.obj.attr("name", "{GENDER}"), e.obj.attr("value", t.name);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.attr("placeholder"),
              },
              function (t) {
                var n = e.obj.find("option:first-child");
                n.css("display", "none"), n.html(t.placeholder);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.ImgElement = class extends d {
        name() {
          return getI18n("image");
        }
        icon() {
          return "fal fa-image";
        }
        getControls() {
          var e = this,
            t =
              e.obj.parent().length && e.obj.parent().is("a")
                ? e.obj.parent().attr("href")
                : "",
            n = !e.obj[0].style.width.includes("%");
          return [
            new ImageControl(
              getI18n("align"),
              {
                width: (e.obj.width() / e.obj.parent().width()) * 100,
                width_fix_checked: n,
                width_fix: e.obj.width(),
                height: e.obj.height(),
                autoHeight:
                  "" == e.obj.prop("style").height ||
                  "auto" == e.obj.prop("style").height,
                src: e.obj.attr("src"),
                alt: e.obj.attr("alt"),
                auto_width:
                  "100%" == e.obj.attr("width") ||
                  "100%" == e.obj[0].style.width,
              },
              {
                setWidth: function (t) {
                  e.obj.css("width", t),
                    currentEditor.emailMode &&
                      (e.obj.css("max-width", t),
                      e.obj.prop("width", t.replace("px", ""))),
                    currentEditor.select(e),
                    currentEditor.handleSelect();
                },
                setWidthFix: function (t) {
                  e.obj.css("width", t),
                    currentEditor.emailMode &&
                      (e.obj.css("max-width", t),
                      e.obj.prop("width", t.replace("px", ""))),
                    currentEditor.select(e),
                    currentEditor.handleSelect();
                },
                setHeight: function (t) {
                  console.log(t),
                    e.obj.css("height", t),
                    currentEditor.emailMode &&
                      (e.obj.css("max-height", width),
                      e.obj.prop("height", width.replace("px", ""))),
                    currentEditor.select(e),
                    currentEditor.handleSelect();
                },
                setUrl: function (t) {
                  e.obj.removeAttr("src").attr("src", t),
                    e.obj.one("load", function () {
                      currentEditor.select(e), currentEditor.handleSelect();
                    });
                },
                setAlign: function (t) {
                  e.obj.parent().css("text-align", t),
                    setTimeout(function () {
                      currentEditor.select(e);
                    }, 100);
                },
                setAlt: function (t) {
                  e.obj.attr("alt", t),
                    setTimeout(function () {
                      currentEditor.select(e);
                    }, 100);
                },
                setAutoWidth: function (t) {
                  t && e.obj.css("width", "100%"),
                    setTimeout(function () {
                      currentEditor.select(e);
                    }, 100);
                },
              }
            ),
            new ImageSizeControl(
              getI18n("image_size"),
              {
                width:
                  "" !== e.obj[0].style.width
                    ? e.obj[0].style.width
                    : e.obj.attr("width")
                    ? e.obj.attr("width")
                    : "auto",
                height:
                  "" !== e.obj[0].style.height
                    ? e.obj[0].style.height
                    : e.obj.attr("height")
                    ? e.obj.attr("height")
                    : "auto",
              },
              function (t) {
                e.obj.width(t.width),
                  e.obj.height(t.height),
                  currentEditor.select(e);
              }
            ),
            new ImageLinkControl(
              getI18n("image_link"),
              {
                url: t,
              },
              function (t) {
                e.obj.parent().is("a")
                  ? e.obj.parent().attr("href", t.url)
                  : e.obj.wrap("<a href='" + t.url + "'></a>");
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.PricingItemElement = class extends d {
        name() {
          return getI18n("pricing_item");
        }
        getControls() {
          var e = this,
            t = e.obj.closest("[builder-element=PricingTableElement]");
          return [
            new PricingTableControl(
              getI18n("theme"),
              t.attr("data-style"),
              function (n) {
                t.attr("data-style", n),
                  "dark" == n
                    ? (t.find(".col-12").css("background", "#007c89"),
                      t.children().css("color", "#fff"),
                      t.children().css("border-left", "none"),
                      t.find(".btn").css("border", "none"),
                      t.find(".btn").css("background", "#fff"),
                      t.find(".btn").css("color", "#333"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #fff"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border-width", "0px 1px 0px 0px"),
                      t
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "0px 0px 0px 0px"))
                    : "light" == n
                    ? (t.find(".col-12").css("background", "transparent"),
                      t.children().css("color", "#333"),
                      t.children().css("border-left", "none"),
                      t.find(".btn").css("border", "none"),
                      t.find(".btn").css("background", "#007c89"),
                      t.find(".btn").css("color", "#fff"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #ccc"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border-width", "0px 1px 0px 0px"),
                      t
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "0px 0px 0px 0px"))
                    : (t.find(".col-12").css("background", "transparent"),
                      t.children().css("color", "#333"),
                      t.children().css("border-left", "solid 1px #ccc"),
                      t.find(".btn").css("border", "none"),
                      t.find(".btn").css("background", "#007c89"),
                      t.find(".btn").css("color", "#fff"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #ccc"),
                      t
                        .children()
                        .first()
                        .children()
                        .css("border-width", "1px 1px 1px 0px"),
                      t
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "1px 1px 1px 0px")),
                  e.select();
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.TextFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("text_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "text_format",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.CellContainerElement = class extends d {
        name() {
          return getI18n("cell_container");
        }
        canSelect() {
          return !1;
        }
        canHover() {
          return !1;
        }
        layoutToWidths(e) {
          var t = e.split("-"),
            n = t.reduce((e, t) => parseInt(e) + parseInt(t), 0),
            i = [];
          return (
            t.forEach(function (e) {
              i.push((parseFloat(e) / parseFloat(n)) * 100);
            }),
            i
          );
        }
        setLayout(e) {
          this.obj.attr("data-layout", e);
          for (var t = this.layoutToWidths(e), n = 0; n < t.length; n++) {
            this.obj
              .find('[builder-element="CellElement"]')
              .eq(n)
              .css("width", t[n] + "%");
          }
        }
        getControls() {
          var e = this;
          return [
            new CellOptionControl(
              getI18n("cell_options"),
              {
                count: e.obj.find('[builder-element="CellElement"]').length,
                layout: e.obj.attr("data-layout"),
                responsive: e.obj.hasClass("cell-responsive"),
              },
              {
                setLayout: function (t) {
                  e.setLayout(t),
                    setTimeout(function () {
                      currentEditor.selected.select(),
                        currentEditor.adjustIframeSize();
                    }, 350);
                },
                setResponsive: function (t) {
                  t
                    ? e.obj.addClass("cell-responsive")
                    : e.obj.removeClass("cell-responsive"),
                    setTimeout(function () {
                      currentEditor.selected.select(),
                        currentEditor.adjustIframeSize();
                    }, 350);
                },
              }
            ),
          ];
        }
      }),
      (window.DropdownFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("dropdown_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("select").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("select").attr("id"),
                icon: "kitchen",
              },
              function (t) {
                e.obj.find("select").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("select").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("select").attr("placeholder"),
              },
              function (t) {
                e.obj.find("select").attr("placeholder", t.placeholder);
              }
            ),
            new SectionTitleControl(getI18n("field_options")),
            new FieldOptionsControl(
              getI18n("options"),
              {
                options: e.obj
                  .find("select option")
                  .map(function () {
                    return {
                      value: $(this).attr("value"),
                      text: $(this).html().trim(),
                    };
                  })
                  .get(),
              },
              function (t) {
                e.obj.find("select").html(""),
                  t.options.forEach(function (t) {
                    e.obj
                      .find("select")
                      .append(
                        '<option value="' +
                          t.value +
                          '">' +
                          t.text +
                          "</option>"
                      );
                  });
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("select").attr("required"),
                minLength: e.obj.find("select").attr("data-min-length")
                  ? e.obj.find("select").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("select").attr("data-max-length")
                  ? e.obj.find("select").attr("data-max-length")
                  : "",
                regexp: e.obj.find("select").attr("data-regexp")
                  ? e.obj.find("select").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("select").prop("required", !0)
                  : e.obj.find("select").removeAttr("required"),
                  e.obj.find("select").attr("data-min-length", t.minLength),
                  e.obj.find("select").attr("data-max-length", t.maxLength),
                  e.obj.find("select").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.IpFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("ip_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "router",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.PricingTableElement = class extends d {
        name() {
          return getI18n("pricing_table");
        }
        getControls() {
          var e = this;
          return [
            new PricingTableControl(
              getI18n("theme"),
              e.obj.attr("data-style"),
              function (t) {
                e.obj.attr("data-style", t),
                  "dark" == t
                    ? (e.obj.find(".col-12").css("background", "#007c89"),
                      e.obj.children().css("color", "#fff"),
                      e.obj.children().css("border-left", "none"),
                      e.obj.find(".btn").css("border", "none"),
                      e.obj.find(".btn").css("background", "#fff"),
                      e.obj.find(".btn").css("color", "#333"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #fff"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border-width", "0px 1px 0px 0px"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "0px 0px 0px 0px"))
                    : "light" == t
                    ? (e.obj.find(".col-12").css("background", "transparent"),
                      e.obj.children().css("color", "#333"),
                      e.obj.children().css("border-left", "none"),
                      e.obj.find(".btn").css("border", "none"),
                      e.obj.find(".btn").css("background", "#007c89"),
                      e.obj.find(".btn").css("color", "#fff"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #ccc"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border-width", "0px 1px 0px 0px"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "0px 0px 0px 0px"))
                    : (e.obj.find(".col-12").css("background", "transparent"),
                      e.obj.children().css("color", "#333"),
                      e.obj.children().css("border-left", "solid 1px #ccc"),
                      e.obj.find(".btn").css("border", "none"),
                      e.obj.find(".btn").css("background", "#007c89"),
                      e.obj.find(".btn").css("color", "#fff"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border", "solid 1px #ccc"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .css("border-width", "1px 1px 1px 0px"),
                      e.obj
                        .children()
                        .first()
                        .children()
                        .last()
                        .css("border-width", "1px 1px 1px 0px")),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-image", t)
                    : e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-color", t)
                    : e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-repeat", t)
                    : e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-position", t)
                    : e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-size", t)
                    : e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.TextareaFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("textarea_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("textarea").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("textarea").attr("id"),
                icon: "article",
              },
              function (t) {
                e.obj.find("textarea").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("textarea").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("textarea").attr("placeholder"),
              },
              function (t) {
                e.obj.find("textarea").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("textarea").attr("required"),
                minLength: e.obj.find("textarea").attr("data-min-length")
                  ? e.obj.find("textarea").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("textarea").attr("data-max-length")
                  ? e.obj.find("textarea").attr("data-max-length")
                  : "",
                regexp: e.obj.find("textarea").attr("data-regexp")
                  ? e.obj.find("textarea").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("textarea").prop("required", !0)
                  : e.obj.find("textarea").removeAttr("required"),
                  e.obj.find("textarea").attr("data-min-length", t.minLength),
                  e.obj.find("textarea").attr("data-max-length", t.maxLength),
                  e.obj.find("textarea").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.CellElement = class extends d {
        name() {
          return getI18n("cell");
        }
        icon() {
          return "fal fa-font";
        }
        isContainer() {
          return !0;
        }
        canSelect() {
          return !0;
        }
        canDelete() {
          return !1;
        }
        canDuplicate() {
          return !1;
        }
        loadHoverLabel() {
          if (0 == this.hoverLabel().length) {
            var e = $(
              currentEditor.transformHtml(
                '\n                <div class="builder-tool builder-outline-content-hover">{language.drag_items_here}</div>\n            '
              )
            );
            $("#builder_iframe").contents().find("body").append(e);
          }
        }
        adjustHoverLabelPosition() {
          this.hoverLabel().css("top", this.obj.offset().top - 2),
            this.hoverLabel().css(
              "left",
              this.obj.offset().left +
                this.obj.outerWidth() / 2 -
                this.hoverLabel().outerWidth() / 2 -
                2 +
                5
            );
        }
        getControls() {
          var e = this;
          currentEditor.elementFactory(
            e.obj.closest('[builder-element="CellContainerElement"]')
          );
          return [
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-image", t)
                    : e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-color", t)
                    : e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-repeat", t)
                    : e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-position", t)
                    : e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.isWrapper()
                    ? e.obj.closest("body").css("background-size", t)
                    : e.obj.css("background-size", t);
                },
              }
            ),
          ];
        }
      }),
      (window.EmailFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("email_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "mail",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.MultiselectFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("multiselect_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("select").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("select").attr("id"),
                icon: "done_all",
              },
              function (t) {
                e.obj.find("select").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("select").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("select").attr("placeholder"),
              },
              function (t) {
                e.obj.find("select").attr("placeholder", t.placeholder);
              }
            ),
            new SectionTitleControl(getI18n("field_options")),
            new FieldOptionsControl(
              getI18n("options"),
              {
                options: e.obj
                  .find("select option")
                  .map(function () {
                    return {
                      value: $(this).attr("value"),
                      text: $(this).html().trim(),
                    };
                  })
                  .get(),
              },
              function (t) {
                e.obj.find("select").html(""),
                  t.options.forEach(function (t) {
                    e.obj
                      .find("select")
                      .append(
                        '<option value="' +
                          t.value +
                          '">' +
                          t.text +
                          "</option>"
                      );
                  });
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("select").attr("required"),
                minLength: e.obj.find("select").attr("data-min-length")
                  ? e.obj.find("select").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("select").attr("data-max-length")
                  ? e.obj.find("select").attr("data-max-length")
                  : "",
                regexp: e.obj.find("select").attr("data-regexp")
                  ? e.obj.find("select").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("select").prop("required", !0)
                  : e.obj.find("select").removeAttr("required"),
                  e.obj.find("select").attr("data-min-length", t.minLength),
                  e.obj.find("select").attr("data-max-length", t.maxLength),
                  e.obj.find("select").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.RadioFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("radio_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "radio_button_checked",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new SectionTitleControl(getI18n("field_options")),
            new FieldOptionsControl(
              getI18n("options"),
              {
                options: e.obj
                  .find(".radio-option")
                  .map(function () {
                    return {
                      value: $(this).find("input").val(),
                      text: $(this).find(".text").html(),
                    };
                  })
                  .get(),
              },
              function (t) {
                var n = e.obj.find(".inputs-group input").attr("name");
                e.obj.find(".inputs-group").html(""),
                  t.options.forEach(function (t) {
                    e.obj
                      .find(".inputs-group")
                      .append(
                        '\n                        <span class="mr-4 radio-option">\n                            <input type="radio" name="' +
                          n +
                          '" value="' +
                          t.value +
                          '" autocomplete="off">\n                            <span class="text">' +
                          t.text +
                          "</span>\n                        </span>   \n                    "
                      );
                  });
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.VideoElement = class extends d {
        name() {
          return getI18n("video");
        }
        icon() {
          return "fal fa-film";
        }
        getControls() {
          var e = this;
          return [
            new VideoOptionControl(
              getI18n("video_url"),
              {
                src: e.obj.attr("src"),
              },
              function (t) {
                e.obj.attr("src", t.src);
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.CheckboxElement = class extends d {
        name() {
          return getI18n("checbox");
        }
        getControls() {
          var e = this;
          return [
            new CheckboxAssociateControl(
              getI18n("associate_checbox"),
              {
                name: e.obj.attr("name"),
              },
              function (t) {
                e.obj.attr("name", t.name);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.FormElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("block_container");
        }
        getControls() {
          var e = this;
          return [
            new SectionTitleControl(getI18n("form_options")),
            new CaptchaToggleControl(
              getI18n("captcha"),
              e.obj.attr("data-captcha"),
              function (t) {
                e.obj.attr("data-captcha", t);
              }
            ),
            new FormControl(
              getI18n("captcha"),
              {
                method: e.obj.attr("method") ? e.obj.attr("method") : "GET",
                autocomplete: e.obj.attr("autocomplete")
                  ? e.obj.attr("autocomplete")
                  : "on",
                accept_charset: e.obj.attr("accept-charset")
                  ? e.obj.attr("accept-charset")
                  : "",
                enctype: e.obj.attr("enctype") ? e.obj.attr("enctype") : "",
              },
              function (t) {
                e.obj.attr("method", t.method),
                  e.obj.attr("autocomplete", t.autocomplete),
                  e.obj.attr("accept-charset", t.accept_charset),
                  e.obj.attr("enctype", t.enctype);
              }
            ),
            new BackgroundControl(
              getI18n("background"),
              {
                color: e.obj.css("background-color"),
              },
              function (t) {
                e.obj.css("background-color", t.color),
                  e.isWrapper() &&
                    e.obj.closest("body").css("background-color", t.color);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.NoneElement = class extends d {
        getControls() {
          return [];
        }
      }),
      (window.RatingFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("rating_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "star_half",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.YoutubeElement = class extends d {
        name() {
          return getI18n("block");
        }
        getControls() {
          var e = this;
          return [
            new YoutubeControl(
              getI18n("youtube"),
              {
                code: e.obj.attr("data-code"),
                width: e.obj.find("iframe").length
                  ? e.obj.find("iframe").attr("width")
                  : e.obj.find(".ytb-thumb").attr("width"),
                height: e.obj.find("iframe").length
                  ? e.obj.find("iframe").attr("height")
                  : e.obj.find(".ytb-thumb").attr("height"),
                alignment: e.obj.css("text-align"),
              },
              {
                setCode: function (t) {
                  e.obj.find("iframe").length
                    ? e.obj.html(
                        '\n                            <iframe width="' +
                          e.obj.find("iframe").attr("width") +
                          '" height="' +
                          e.obj.find("iframe").attr("height") +
                          '" src="https://www.youtube.com/embed/' +
                          t +
                          '" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>\n                        '
                      )
                    : e.obj
                        .find(".ytb-link-container")
                        .html(
                          '\n                            <a target="_blank" href="https://www.youtube.com/watch?v=' +
                            t +
                            '">\n                                <img class="ytb-thumb" width="100%" height="auto" src="http://img.youtube.com/vi/' +
                            t +
                            '/hqdefault.jpg" width="100%" />\n                            </a>\n                        '
                        ),
                    currentEditor.select(e);
                },
                setWidth: function (t) {
                  e.obj.find("iframe").length
                    ? e.obj.find("iframe").attr("width", t)
                    : e.obj.find(".ytb-thumb").attr("width", t),
                    currentEditor.select(e);
                },
                setHeight: function (t) {
                  e.obj.find("iframe").length
                    ? e.obj.find("iframe").attr("height", t)
                    : e.obj.find(".ytb-thumb").attr("height", t),
                    currentEditor.select(e);
                },
                setAlignment: function (t) {
                  e.obj.css("text-align", t), currentEditor.select(e);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.CheckboxFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("checkbox_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "check_box",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new SectionTitleControl(getI18n("field_options")),
            new FieldOptionsControl(
              getI18n("options"),
              {
                options: e.obj
                  .find(".checkbox-option")
                  .map(function () {
                    return {
                      value: $(this).find("input").val(),
                      text: $(this).find(".text").html(),
                    };
                  })
                  .get(),
              },
              function (t) {
                var n = e.obj.find(".inputs-group input").attr("name");
                e.obj.find(".inputs-group").html(""),
                  t.options.forEach(function (t) {
                    e.obj
                      .find(".inputs-group")
                      .append(
                        '\n                        <span class="mr-4 checkbox-option d-block">\n                            <input type="checkbox" name="' +
                          n +
                          '" value="' +
                          t.value +
                          '" autocomplete="off">\n                            <span class="text">' +
                          t.text +
                          "</span>\n                        </span>   \n                    "
                      );
                  });
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.HeadingElement = class extends d {
        name() {
          return getI18n("Heading");
        }
        icon() {
          return "fal fa-font";
        }
        getControls() {
          var e = this;
          return [
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new HeadingControl(
              getI18n("heading"),
              e.obj.prop("tagName").toLowerCase(),
              function (t) {
                var n = "^<" + e.obj.prop("tagName"),
                  i = (e.obj.prop("tagName"), new RegExp(n, "i")),
                  r = new RegExp(n, "i"),
                  o = $(
                    e.obj[0].outerHTML
                      .replace(i, "<" + t)
                      .replace(r, "</" + t + ">")
                  );
                e.obj.replaceWith(o), (e.obj = o), e.select();
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new AlignmentControl(
              "alignment",
              {
                align: e.obj.css("text-align"),
              },
              {
                setAlign: function (t) {
                  console.log(t), e.obj.css("text-align", t);
                },
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.NumberFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("number_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "looks_5",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.SpanElement = class extends d {
        name() {
          return getI18n("text");
        }
        icon() {
          return "fal fa-font";
        }
        getControls() {
          var e = this;
          return [
            new TextControl(getI18n("text"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.DateFieldElement = class extends d {
        constructor(e) {
          super(e);
        }
        name() {
          return getI18n("date_field");
        }
        getControls() {
          var e = this;
          return [
            new FieldListHeaderControl(
              e.obj.find("label").html(),
              currentEditor.listName ? currentEditor.listName : "Select List"
            ),
            new CommonFieldControl(
              getI18n("common_field"),
              {
                fieldName: e.obj.find("input").attr("name"),
                label: e.obj.find("label").html(),
                labelShowed: e.obj.find("label").is(":visible"),
                id: e.obj.find("input").attr("id"),
                icon: "today",
              },
              function (t) {
                e.obj.find("input").attr("name", t.fieldName),
                  e.obj.find("label").html(t.label),
                  t.labelShowed
                    ? e.obj.find("label").fadeIn(100, function () {
                        e.select();
                      })
                    : e.obj.find("label").fadeOut(100, function () {
                        e.select();
                      }),
                  e.obj.find("input").attr("id", t.id);
              }
            ),
            new PlaceholderControl(
              getI18n("placeholder"),
              {
                placeholder: e.obj.find("input").attr("placeholder"),
              },
              function (t) {
                e.obj.find("input").attr("placeholder", t.placeholder);
              }
            ),
            new ValidationControl(
              getI18n("validation"),
              {
                required: e.obj.find("input").attr("required"),
                minLength: e.obj.find("input").attr("data-min-length")
                  ? e.obj.find("input").attr("data-min-length")
                  : 1,
                maxLength: e.obj.find("input").attr("data-max-length")
                  ? e.obj.find("input").attr("data-max-length")
                  : "",
                regexp: e.obj.find("input").attr("data-regexp")
                  ? e.obj.find("input").attr("data-regexp")
                  : "",
              },
              function (t) {
                t.required
                  ? e.obj.find("input").prop("required", !0)
                  : e.obj.find("input").removeAttr("required"),
                  e.obj.find("input").attr("data-min-length", t.minLength),
                  e.obj.find("input").attr("data-max-length", t.maxLength),
                  e.obj.find("input").attr("data-regexp", t.regexp);
              }
            ),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.HtmlElement = class extends d {
        getControls() {
          var e = this;
          return [
            new HtmlOptionControl(getI18n("html"), e.obj.html(), function (t) {
              e.obj.html(t);
            }),
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.OtherElement = class extends d {
        name() {
          return getI18n("other");
        }
        icon() {
          return "fal fa-not-equal";
        }
        getControls() {
          var e = this;
          return [
            new ColorPickerControl(
              getI18n("text_color"),
              e.obj.css("color"),
              function (t) {
                e.obj.css("color", t);
              }
            ),
            new LineHeightControl(
              getI18n("line_height"),
              e.obj.css("line-height"),
              function (t) {
                e.obj.css("line-height", t), e.select();
              }
            ),
            new TextSizeControl(
              getI18n("text_size"),
              e.obj.css("font-size"),
              function (t) {
                e.obj.css("font-size", t),
                  e.obj.find("*").css("font-size", t),
                  e.select();
              }
            ),
            new TextStyleControl(
              getI18n("text_style"),
              {
                font_weight: e.obj.css("font-weight"),
                text_decoration: e.obj.css("text-decoration"),
                font_style: e.obj.css("font-style"),
              },
              function (t) {
                e.obj.css("font-weight", t.font_weight),
                  e.obj.css("font-style", t.font_style),
                  e.obj.css("text-decoration", t.text_decoration),
                  e.select();
              }
            ),
            new FontFamilyControl(
              getI18n("font_family"),
              e.obj.css("font-family"),
              function (t) {
                e.obj.css("font-family", t), e.select();
              }
            ),
            new BackgroundImageControl(
              getI18n("background_image"),
              {
                image: e.obj.css("background-image"),
                color: e.obj.css("background-color"),
                repeat: e.obj.css("background-repeat"),
                position: e.obj.css("background-position"),
                size: e.obj.css("background-size"),
              },
              {
                setBackgroundImage: function (t) {
                  e.obj.css("background-image", t);
                },
                setBackgroundColor: function (t) {
                  e.obj.css("background-color", t);
                },
                setBackgroundRepeat: function (t) {
                  e.obj.css("background-repeat", t);
                },
                setBackgroundPosition: function (t) {
                  e.obj.css("background-position", t);
                },
                setBackgroundSize: function (t) {
                  e.obj.css("background-size", t);
                },
              }
            ),
            new MobileDesktopToggleControl(
              getI18n("toogle"),
              {
                type: e.obj.attr("data-hide-on"),
              },
              function (t) {
                e.obj.attr("data-hide-on", t),
                  setTimeout(function () {
                    currentEditor.select(e);
                  }, 100);
              }
            ),
          ];
        }
      }),
      (window.AudioElement = class extends d {
        name() {
          return getI18n("block");
        }
        setUrl(e) {
          this.obj.html(
            '\n            <div style="text-align:center">\n                <audio controls>\n                    <source src="' +
              e +
              '" type="audio/mpeg">\n                    Your browser does not support the audio element.\n                </audio>\n            </div>\n        '
          );
        }
        getControls() {
          var e = this;
          return [
            new AudioControl(
              getI18n("language.widget.audio"),
              {},
              {
                setUrl: function (t) {
                  e.setUrl(t), currentEditor.select(e);
                },
              }
            ),
          ];
        }
      }),
      (window.Control = u),
      (window.ActionButtonControl = class extends u {
        groupId() {
          return "action";
        }
        renderHtml() {
          var e = this,
            t = $("#ActionButtonControl").html();
          t = t.replace("[TITLE]", this.title);
          var n = $("<div>").html(t);
          n.find(".action-button .owp-button").html(getI18n("select_option")),
            n
              .find(".action-button .down-menu-button")
              .append(
                '<li style="display:none;"><a class="link-button select-option link-page" href="javascript:;" data-name="--Select option--" id="">--Select option--</a></li>'
              ),
            n
              .find(".action-button .action-button-link")
              .html(getI18n("select_option")),
            n
              .find(".action-button .down-menu-action-button")
              .append(
                '<li style="display:none;"><a class="link-action-button select-option link-action-page" href="javascript:;" data-name="--Select option--" id="">--Select option--</a></li>'
              );
          var i = "down-menu-button_" + this.id;
          n.find(".action-button .down-menu-button").attr("id", i);
          var r = "dropdown-link-page_" + this.id;
          n.find(".action-button .owp-button").attr("id", r);
          var o = "down-menu-action-button_" + this.id;
          n.find(".action-button .down-menu-action-button").attr("id", o);
          var s = "dropdown-action-page_" + this.id;
          n.find(".action-button .action-button-link").attr("id", s);
          var a = "check-link-page_" + this.id;
          n.find(".action-button .check-link-page").attr("id", a);
          var l = "check-action-page_" + this.id;
          n.find(".action-button .check-action-page").attr("id", l),
            editor.tags.forEach(function (e) {
              "url" == e.type &&
                n
                  .find(".action-button .down-menu-button")
                  .append(
                    '<li><a class="link-button link-page" href="javascript:;" data-name="' +
                      e.text +
                      '" value="' +
                      e.url +
                      '" id="">' +
                      e.text +
                      "</a></li>"
                  ),
                "button" == e.type &&
                  n
                    .find(".action-button .down-menu-action-button")
                    .append(
                      '<li><a class="link-action-button link-action-page" href="javascript:;" data-name="' +
                        e.text +
                        '" value="' +
                        e.tag +
                        '" id="">' +
                        e.text +
                        "</a></li>"
                    );
            }),
            n
              .find(".action-button .down-menu-button")
              .append(
                '<li><a class="link-button external-url" href="javascript:;" data-name="Custom URL" id="">Custom URL</a></li>'
              );
          var c = "link-button_" + this.id;
          n.find(".action-button .link-button").attr("id", c);
          var d = "link-action-button_" + this.id;
          n.find(".action-button .link-action-button").attr("id", d);
          var u = "input-" + this.id;
          n.find(".action-button .input-external").attr("id", u);
          var h = "input-url_" + this.id;
          n.find(".action-button .input-url").attr("id", h);
          var g = this.value.data_action;
          (null != g && "" != g) ||
            (n
              .find(".action-button button.action-button-link")
              .addClass("disable"),
            n.find(".action-button button.owp-button").addClass("disable"),
            n.find(".action-button div.arrows-button").addClass("disable"),
            n.find(".action-button .owp-button").html(getI18n("custom_url")),
            n.find(".action-button .owp-button").html() ==
              getI18n("custom_url") &&
              n.find(".action-button .input-url").removeClass("input-url-hide"),
            n.find(".action-button .input-external").attr("value", p),
            n.find(".action-button input.check-link-page").attr("checked", !0),
            n
              .find(".action-button button.action-button-link")
              .addClass("disable"),
            n.find(".action-button div.arrows-button").addClass("disable"),
            n.find(".action-button .owp-button").removeClass("disable"));
          if (g) {
            var p = g.slice(5).split("]}")[0],
              A = g.indexOf("{URL[http");
            if (-1 !== A)
              n.find(".action-button .owp-button").html(getI18n("custom_url")),
                n.find(".action-button .owp-button").html() ==
                  getI18n("custom_url") &&
                  n
                    .find(".action-button .input-url")
                    .removeClass("input-url-hide"),
                n.find(".action-button .input-external").attr("value", p),
                n
                  .find(".action-button input.check-link-page")
                  .attr("checked", !0),
                n
                  .find(".action-button button.action-button-link")
                  .addClass("disable"),
                n.find(".action-button div.arrows-button").addClass("disable");
            else if (-1 == A) {
              n.find(".action-button .owp-button").html(getI18n("custom_url")),
                n.find(".action-button .owp-button").html() ==
                  getI18n("custom_url") &&
                  n
                    .find(".action-button .input-url")
                    .removeClass("input-url-hide"),
                n.find(".action-button .input-external").attr("value", g),
                n
                  .find(".action-button input.check-link-page")
                  .attr("checked", !0),
                n
                  .find(".action-button button.action-button-link")
                  .addClass("disable"),
                n.find(".action-button div.arrows-button").addClass("disable");
            }
          }
          g &&
            -1 !== g.indexOf("{PAGE[") &&
            (g ==
              n
                .find('.action-button .link-page[data-name="Thank you"]')
                .attr("value") &&
              (n.find(".action-button .owp-button").html(getI18n("thank_you")),
              n.find(".action-button .down-menu-button").removeClass("hienlen"),
              n.find(".action-button .input-url").addClass("input-url-hide"),
              n
                .find(".action-button input.check-link-page")
                .attr("checked", !0),
              n
                .find(".action-button button.action-button-link")
                .addClass("disable"),
              n.find(".action-button div.arrows-button").addClass("disable"),
              n
                .find(".action-button .down-menu-action-button")
                .removeClass("hienlen")),
            g ==
              n
                .find('.action-button .link-page[data-name="Checkout"]')
                .attr("value") &&
              (n.find(".action-button .owp-button").html(getI18n("checkout")),
              n.find(".action-button .down-menu-button").removeClass("hienlen"),
              n.find(".action-button .input-url").addClass("input-url-hide"),
              n
                .find(".action-button input.check-link-page")
                .attr("checked", !0),
              n
                .find(".action-button button.action-button-link")
                .addClass("disable"),
              n.find(".action-button div.arrows-button").addClass("disable"),
              n
                .find(".action-button .down-menu-action-button")
                .removeClass("hienlen")),
            g ==
              n
                .find('.action-button .link-page[data-name="Sales"]')
                .attr("value") &&
              (n.find(".action-button .owp-button").html(getI18n("sales")),
              n.find(".action-button .down-menu-button").removeClass("hienlen"),
              n.find(".action-button .input-url").addClass("input-url-hide"),
              n
                .find(".action-button input.check-link-page")
                .attr("checked", !0),
              n
                .find(".action-button button.action-button-link")
                .addClass("disable"),
              n.find(".action-button div.arrows-button").addClass("disable"),
              n
                .find(".action-button .down-menu-action-button")
                .removeClass("hienlen")));
          g &&
            -1 !== g.indexOf("{PAGE_TYPE") &&
            "{PAGE_TYPE[CHECKOUT]}" == g &&
            (n.find(".action-button .owp-button").html(getI18n("checkout")),
            n.find(".action-button .down-menu-button").removeClass("hienlen"),
            n.find(".action-button div#action-redirect-page").hide(),
            n.find(".action-button input.check-link-page").attr("checked", !0),
            n.find(".action-button .input-url").addClass("input-url-hide"));
          return (
            $(document).on("click", "#" + c, function () {
              var t = $(this).attr("data-name");
              $(".owp-button").html(t);
              var r = $(this).attr("value");
              "Custom URL" != t ||
                $("#" + u).is(":visible") ||
                ((r = ""), $("#" + u).val("")),
                $("#" + i).removeClass("hienlen"),
                $("#" + o).removeClass("hienlen"),
                n
                  .find(".action-button .action-button-link")
                  .html("--Select option--"),
                $("#" + s).html("--Select option--"),
                e.callback({
                  data_action: r,
                });
            }),
            $(document).on("click", "#" + d, function () {
              var t = $(this).attr("data-name");
              $(".action-button-link").html(t);
              var n = $(this).attr("value");
              $("#" + o).removeClass("hienlen"),
                $("#" + i).removeClass("hienlen"),
                $("#" + r).html("--Select option--"),
                $("#" + h).addClass("input-url-hide"),
                e.callback({
                  data_action: n,
                });
            }),
            $(document).on("change keyup", "#" + u, function () {
              var t = $(this).val();
              e.callback({
                data_action: t,
              });
            }),
            $(document).on("click", "#" + a, function () {
              $("#" + s).addClass("disable"),
                $("#" + s).html(getI18n("select_option")),
                $("#" + r).removeClass("disable"),
                $("#" + o).removeClass("hienlen");
            }),
            $(document).on("click", "#" + l, function () {
              $("#" + r).addClass("disable"),
                $("#" + r).html(getI18n("select_option")),
                $("#" + s).removeClass("disable"),
                $("#" + i).removeClass("hienlen"),
                $("#" + h).addClass("input-url-hide");
            }),
            n.html()
          );
        }
      }),
      (window.ActionControl = class extends u {
        groupId() {
          return "action";
        }
        renderHtml() {
          var e = $("#ActionControl").html();
          return (
            (e = e.replace("[TITLE]", this.title)),
            $(document).on("click", "#builder_iframe", function () {}),
            e
          );
        }
      }),
      (window.AlignmentControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          return (
            '\n            <div class="widget-section align pr-3 control-' +
            this.id +
            '">\n                <div class="label">{language.wpanel.controls.align.title}</div>\n                <div class="thongso background">\n                    <div class="item_1-2 right" >\n                        <div mailup-common-alignment-selector="" ng-model="style[\'text-align\']" class="ng-pristine ng-untouched ng-valid ng-isolate-scope ng-not-empty">\n                            <div class="alignment-container">\n                                <button type="button" class="align btn btn-default align-left ng-pristine ng-valid ng-not-empty ng-touched" float="left" ng-model="value" data-value="left" style="">\n                                </button>\n                                <button type="button" class="align btn btn-default align-center ng-pristine ng-untouched ng-valid ng-not-empty active" float="center" ng-model="value" data-value="center">\n                                </button>\n                                <button type="button" class="align btn btn-default align-right ng-pristine ng-untouched ng-valid ng-not-empty" float="right" ng-model="value" data-value="right">\n                                </button>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        '
          );
        }
        getControl() {
          return $(".control-" + this.id);
        }
        afterRender() {
          var e = this;
          e
            .getControl()
            .find("button.align-" + e.value.align)
            .addClass("current"),
            e
              .getControl()
              .find("button.align")
              .on("click", function () {
                var t = $(this).attr("data-value");
                e.getControl().find("button.align").removeClass("current"),
                  $(this).addClass("current"),
                  e.callback.setAlign(t);
              });
        }
      }),
      (window.BackgroundControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value.color;
          t = rgb2hex(t);
          var n = $("#BackgroundControl").html(),
            i = "A_color_input_" + this.id;
          n = (n = (n = n.replace("[TITLE]", this.title)).replace(
            /\[AVALUE\]/g,
            t
          )).replace(/\[AINPUT_ID\]/g, i);
          var r = $("<DIV>").html(n);
          return (
            r.find(".link-color-element .link-color").attr("value", t),
            r.find(".link-color-element .link-color-input").attr("value", t),
            r.find("#" + i).attr("value", t),
            $(document).on("change", "#" + i, function () {
              var t = $(this).val();
              $("#A-bg-color-" + this.id).val(t),
                e.callback({
                  color: t,
                });
            }),
            r.html()
          );
        }
      }),
      (window.BackgroundImageControl = class extends u {
        groupId() {
          return "background";
        }
        renderHtml() {
          var e = $("#BackgroundImageControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            ))
          );
        }
        setValues() {}
        rgb2hex(e) {
          return (e = e.match(
            /^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i
          )) && 4 === e.length
            ? "#" +
                ("0" + parseInt(e[1], 10).toString(16)).slice(-2) +
                ("0" + parseInt(e[2], 10).toString(16)).slice(-2) +
                ("0" + parseInt(e[3], 10).toString(16)).slice(-2)
            : "";
        }
        hasImage() {
          return this.value.image && "none" != this.value.image;
        }
        removePlaceholderImage() {
          $(this.selector)
            .find(".background-image")
            .attr(
              "src",
              "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNDAgMzI4LjIyIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6IzRjYTRkNTt9LmNscy0ye2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PGcgaWQ9IkxheWVyXzIiIGRhdGEtbmFtZT0iTGF5ZXIgMiI+PGcgaWQ9ImNvbnRlbnQtcGxhY2Vob2xkZXIiPjxyZWN0IGNsYXNzPSJjbHMtMSIgd2lkdGg9IjM0MCIgaGVpZ2h0PSIzMjguMjIiIHJ4PSIxNCIvPjxjaXJjbGUgY2xhc3M9ImNscy0yIiBjeD0iMTI3LjY0IiBjeT0iMTMyLjg0IiByPSIxNS45MSIvPjxwYXRoIGNsYXNzPSJjbHMtMiIgZD0iTTY1LDgzLjExdjE2MkgyNzV2LTE2MlptMTk4LDE1MEg3N3YtMTM4SDI2M1oiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iODcgMjE5LjExIDEyNS45NyAxODAuMTEgMTM4LjIgMTg2Ljk5IDE4MS43NSAxNDEuMTEgMTk4LjU3IDE2MC45OSAyMDYuOTcgMTU1LjY0IDI0OSAyMTkuMTEgODcgMjE5LjExIi8+PC9nPjwvZz48L3N2Zz4="
            );
        }
        toggleControls() {
          this.hasImage()
            ? ($(this.selector).find(".add-group").hide(),
              $(this.selector).find(".edit-group").show())
            : ($(this.selector).find(".add-group").show(),
              $(this.selector).find(".edit-group").hide());
        }
        clearImage() {
          this.callback.setBackgroundImage("none"),
            (this.value.image = "none"),
            this.removePlaceholderImage(),
            this.toggleControls();
        }
        updateImageSrc(e) {
          (this.value.image = e), this.toggleControls();
        }
        afterRender() {
          var e = this;
          e.toggleControls(),
            e.hasImage() &&
              $(e.selector)
                .find(".background-image")
                .attr("src", e.value.image.split(/"/)[1].replace(/"/g, ""));
          var t =
            "rgba(0, 0, 0, 0)" == e.value.color
              ? "--"
              : e.rgb2hex(e.value.color);
          $(e.selector).find(".background-color").val(t),
            "--" == t &&
              $(e.selector)
                .find(".background-color[type=color]")
                .val("#ffffff"),
            $(e.selector).find(".background-repeat").val(e.value.repeat),
            $(e.selector).find(".background-position").val(e.value.position),
            $(e.selector).find(".background-size").val(e.value.size),
            $(e.selector)
              .find(".background-color")
              .on("change keyup", function (t) {
                e.callback.setBackgroundColor($(this).val());
              }),
            $(e.selector)
              .find(".background-repeat")
              .on("change keyup", function (t) {
                e.callback.setBackgroundRepeat($(this).val());
              }),
            $(e.selector)
              .find(".background-position")
              .on("change keyup", function (t) {
                e.callback.setBackgroundPosition($(this).val());
              }),
            $(e.selector)
              .find(".background-size")
              .on("change keyup", function (t) {
                e.callback.setBackgroundSize($(this).val());
              });
          var n = $("#builder_iframe").get(0).contentWindow.location;
          $(document).on(
            "change",
            'input[name="file_upload_image"]',
            function (e) {
              var t = e.target.files[0].name;
              $("p.file-upload-input-title span.des-upload").text(t);
            }
          ),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveUpload",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="file_upload_image"]')[0].files[0],
                      i = new FormData();
                    if (
                      (i.append("file", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "upload"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    if ($('input[name="file_upload_image"]').val()) {
                      var o = currentEditor.uploadAssetMethod;
                      [
                        "PUT",
                        "PATCH",
                        "TRACE",
                        "OPTIONS",
                        "DELETE",
                        "HEAD",
                        "CONNECT",
                      ].includes(o.toUpperCase()) && (o = "POST"),
                        i.append("_method", o),
                        $.ajax({
                          url: currentEditor.uploadAssetUrl,
                          type: currentEditor.uploadAssetMethod,
                          data: i,
                          dataType: "json",
                          contentType: !1,
                          processData: !1,
                        })
                          .done(function (t, i, r) {
                            if (200 == r.status) {
                              var o = t.url,
                                s = n + o.replace(n, "");
                              $(e.selector)
                                .find(".background-image")
                                .attr("src", s),
                                e.callback.setBackgroundImage("url(" + o + ")"),
                                new PopUp().hide(),
                                $(
                                  "p.file-upload-input-title span.des-upload"
                                ).text(getI18n("drag_click")),
                                e.updateImageSrc(s);
                            } else alert(r.responseText);
                          })
                          .fail(function (e, t, n) {
                            var i = $.parseJSON(e.responseText);
                            alert(
                              getI18n("error_upload_file") + i.error.file[0]
                            );
                          });
                    } else
                      Swal.fire({
                        title: getI18n("error_job"),
                        text: getI18n("no_file_selected"),
                        type: "error",
                      }).then((e) => {});
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveUrl",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('input[name="url_image"]').val(),
                      i = new FormData();
                    if (
                      (i.append("url", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "url"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          if (200 == r.status) {
                            var o = t.url,
                              s = n + o.replace(n, "");
                            $(e.selector)
                              .find(".background-image")
                              .attr("src", s),
                              e.callback.setBackgroundImage("url(" + o + ")"),
                              new PopUp().hide(),
                              e.updateImageSrc(s);
                          } else alert(r.responseText);
                        })
                        .fail(function (t, n, i) {
                          alert(t.responseText), e.toggleControls();
                        });
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveBase64",
              function (t) {
                t.preventDefault(),
                  (function () {
                    var t = $('[name="base64_image"]').val(),
                      i = new FormData();
                    if (
                      (i.append("url_base64", t),
                      i.append("_token", CSRF_TOKEN),
                      i.append("assetType", "base64"),
                      null !== currentEditor.data)
                    )
                      for (var r in currentEditor.data)
                        i.append(r, currentEditor.data[r]);
                    var o = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(o.toUpperCase()) && (o = "POST"),
                      i.append("_method", o),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: i,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (t, i, r) {
                          if (200 == r.status) {
                            var o = t.url,
                              s = n + o.replace(n, "");
                            $(e.selector)
                              .find(".background-image")
                              .attr("src", s),
                              e.callback.setBackgroundImage("url(" + o + ")"),
                              new PopUp().hide(),
                              e.updateImageSrc(s);
                          } else alert(r.responseText);
                        })
                        .fail(function (t, n, i) {
                          var r = $.parseJSON(t.responseText);
                          alert(
                            getI18n("error_upload_base64") +
                              r.error.url_base64[0]
                          ),
                            e.toggleControls();
                        });
                  })();
              }
            ),
            $(e.selector)
              .find(".change-image, .background-image")
              .on("click", function () {
                return (
                  (function (t = "upload") {
                    var n = new PopUp(getI18n("change_image"), "auto"),
                      i =
                        '<div id="image-popup-' +
                        e.id +
                        '">' +
                        $("#ImageToolbox").html() +
                        "</div>";
                    "upload" == t
                      ? (n.loadHtml(i),
                        $(".nav-content").removeClass("active"),
                        $(".nav-tab").removeClass("active"),
                        $("#home").addClass("active show"),
                        $(".home").addClass("active"))
                      : "url" == t
                      ? (n.loadHtml(i),
                        $(".nav-content").removeClass("active"),
                        $(".nav-tab").removeClass("active"),
                        $("#menu1").addClass("active show"),
                        $(".menu1").addClass("active"))
                      : "base64" == t
                      ? (n.loadHtml(i),
                        $(".nav-content").removeClass("active"),
                        $(".nav-tab").removeClass("active"),
                        $("#menu2").addClass("active show"),
                        $(".menu2").addClass("active"))
                      : "filemanager" == t &&
                        (n.loadHtml(i),
                        $(".nav-content").removeClass("active"),
                        $(".nav-tab").removeClass("active"),
                        $("#menu3").addClass("active show"),
                        $(".menu3").addClass("active")),
                      (window.filemanager_callback = function (t) {
                        $(e.selector).find(".background-image").attr("src", t),
                          e.callback.setBackgroundImage("url(" + t + ")"),
                          new PopUp().hide();
                      }),
                      void 0 ===
                        $(".modal-content .filemanager-iframe").attr("src") &&
                        currentEditor.filemanager &&
                        $(".modal-content .filemanager-iframe").prop(
                          "src",
                          currentEditor.filemanager
                        );
                  })("upload"),
                  !1
                );
              }),
            $(e.selector)
              .find(".clear-image")
              .on("click", function () {
                return e.clearImage(), !1;
              });
        }
      }),
      (window.BlockOptionControl = class extends u {
        groupId() {
          return "block_options";
        }
        afterRender() {
          var e = parseInt(this.value.top.replace("px", "")),
            t = parseInt(this.value.bottom.replace("px", "")),
            n = parseInt(this.value.right.replace("px", "")),
            i = parseInt(this.value.left.replace("px", ""));
          (e == t && t == n && n == i) || this.showAll();
        }
        showAll() {
          $(".control-" + this.id)
            .find("label.check-all-padding")
            .addClass("andi"),
            $(".control-" + this.id)
              .find("label.check-4-padding")
              .addClass("hienthi"),
            $(".control-" + this.id)
              .find(".all-padding-section")
              .addClass("andi"),
            $(".control-" + this.id)
              .find(".four-padding-section")
              .addClass("hienlen");
        }
        renderHtml() {
          var e = this,
            t = parseInt(this.value.top.replace("px", "")),
            n = parseInt(this.value.bottom.replace("px", "")),
            i = parseInt(this.value.right.replace("px", "")),
            r = parseInt(this.value.left.replace("px", "")),
            o = parseInt(this.value.padding.replace("px", ""));
          $("#square-block").css("padding", (o >= 30 ? 30 : o) + "px");
          var s = $("#BlockOptionControl").html();
          s = (s = (s = (s = (s = (s = (s = s.replace("[ID]", this.id)).replace(
            "[TITLE]",
            this.title
          )).replace("[PADDING]", o)).replace("[TOP]", t)).replace(
            "[BOTTOM]",
            n
          )).replace("[RIGHT]", i)).replace("[LEFT]", r);
          var a = "minus-all_" + this.id,
            l = "plus-all_" + this.id,
            c = "minus-top_" + this.id,
            d = "plus-top_" + this.id,
            u = "minus-bottom_" + this.id,
            h = "plus-bottom_" + this.id,
            g = "minus-right_" + this.id,
            p = "plus-right_" + this.id,
            A = "minus-left_" + this.id,
            f = "plus-left_" + this.id,
            m = "all-padding_" + this.id,
            v = "_4-padding_" + this.id,
            b = $("<DIV>").html(s);
          b.find(".block-option-control .plus-all").attr("id", l),
            b.find(".block-option-control .minus-all").attr("id", a),
            b.find(".block-option-control .plus-top").attr("id", d),
            b.find(".block-option-control .minus-top").attr("id", c),
            b.find(".block-option-control .plus-bottom").attr("id", h),
            b.find(".block-option-control .minus-bottom").attr("id", u),
            b.find(".block-option-control .plus-right").attr("id", p),
            b.find(".block-option-control .minus-right").attr("id", g),
            b.find(".block-option-control .plus-left").attr("id", f),
            b.find(".block-option-control .minus-left").attr("id", A),
            b.find(".block-option-control .all-padding").attr("id", m),
            b.find(".block-option-control ._4-padding").attr("id", v),
            $(document).on("click", "#" + m, function () {
              var t = $("#giatri").val(),
                n = $("#value-top").val(t),
                i = $("#value-bottom").val(t),
                r = $("#value-right").val(t),
                o = $("#value-left").val(t);
              $("#square-block").css("padding", (t >= 30 ? 30 : t) + "px"),
                e.callback({
                  top: n,
                  bottom: i,
                  right: r,
                  left: o,
                });
            });
          var w = this,
            y = function (t, n) {
              var i;
              n <= 0 && (n = 0),
                n >= 999 && (n = 999),
                $(".control-" + w.id + " .value-" + t).val(n),
                e.callback(JSON.parse('{"' + t + '":' + n + "}")),
                (i = "padding" == t ? "padding" : "padding-" + t),
                n >= 30
                  ? $(".control-" + w.id + " #square-block").css(i, "30px")
                  : $(".control-" + w.id + " #square-block").css(i, n + "px");
            };
          return (
            $(document).on("click", "#" + v, function () {
              b.find(".block-option-control #value-top");
              var e = $("#value-top").val(),
                t = $("#value-bottom").val(),
                n = $("#value-right").val(),
                i = $("#value-left").val(),
                r = e;
              r < t ? (r = t) : r < n ? (r = n) : r < i && (r = i),
                y("padding", r);
            }),
            $(document).on(
              "change",
              ".control-" + w.id + " .value-left",
              function () {
                var e = $(this).val();
                y("left", e);
              }
            ),
            $(document).on(
              "change",
              ".control-" + w.id + " .value-right",
              function () {
                var e = $(this).val();
                y("right", e);
              }
            ),
            $(document).on(
              "change",
              ".control-" + w.id + " .value-top",
              function () {
                var e = $(this).val();
                y("top", e);
              }
            ),
            $(document).on(
              "change",
              ".control-" + w.id + " .value-bottom",
              function () {
                var e = $(this).val();
                y("bottom", e);
              }
            ),
            $(document).on(
              "change",
              ".control-" + w.id + " .value-padding",
              function () {
                var e = $(this).val();
                y("padding", e);
              }
            ),
            $(document).on("click", "#" + l, function () {
              var e = $(".control-" + w.id + " .value-padding").val();
              (e = parseInt(e)), (e = e += 5);
              y("padding", e);
            }),
            $(document).on("click", "#" + a, function () {
              var e = $(".control-" + w.id + " .value-padding").val();
              (e = parseInt(e)), (e = e -= 5);
              y("padding", e);
            }),
            $(document).on("click", "#" + d, function () {
              var e = $(".control-" + w.id + " .value-top").val();
              (e = parseInt(e)), (e = e += 5);
              y("top", e);
            }),
            $(document).on("click", "#" + c, function () {
              var e = $(".control-" + w.id + " .value-top").val();
              (e = parseInt(e)), (e = e -= 5);
              y("top", e);
            }),
            $(document).on("click", "#" + h, function () {
              var e = $(".control-" + w.id + " .value-bottom").val();
              (e = parseInt(e)), (e = e += 5);
              y("bottom", e);
            }),
            $(document).on("click", "#" + u, function () {
              var e = $(".control-" + w.id + " .value-bottom").val();
              (e = parseInt(e)), (e = e -= 5);
              y("bottom", e);
            }),
            $(document).on("click", "#" + p, function () {
              var e = $(".control-" + w.id + " .value-right").val();
              (e = parseInt(e)), (e = e += 5);
              y("right", e);
            }),
            $(document).on("click", "#" + g, function () {
              var e = $(".control-" + w.id + " .value-right").val();
              (e = parseInt(e)), (e = e -= 5);
              y("right", e);
            }),
            $(document).on("click", "#" + f, function () {
              var e = $(".control-" + w.id + " .value-left").val();
              (e = parseInt(e)), (e = e += 5);
              y("left", e);
            }),
            $(document).on("click", "#" + A, function () {
              var e = $(".control-" + w.id + " .value-left").val();
              (e = parseInt(e)), (e = e -= 5);
              y("left", e);
            }),
            b.html()
          );
        }
      }),
      (window.ButtonControl = class extends u {
        renderHtml() {
          var e = this,
            t = $("#ButtonControl").html();
          return (
            (e.selector = function () {
              return $(".control-" + e.id);
            }),
            (t = (t = t.replace("[ID]", e.id)).replace("[TITLE]", e.title)),
            $("<DIV>").html(t).html()
          );
        }
        styles() {
          return {
            style_1: {
              border: "1.5px solid rgb(33, 150, 243)",
              background: "rgb(33, 150, 243)",
              "border-radius": "3px",
              color: "#fff",
            },
            style_2: {
              border: "1.5px solid #353634",
              background: "#353634",
              "border-radius": "3px",
              color: "#fff",
            },
            style_3: {
              border: "1.5px solid #e4894f",
              background: "#e4894f",
              "border-radius": "3px",
              color: "#fff",
            },
            style_4: {
              border: "1.5px solid #ababab",
              background: "#ababab",
              "border-radius": "3px",
              color: "#fff",
            },
            style_5: {
              border: "1.5px solid #f7c94e",
              background: "#f7c94e",
              "border-radius": "3px",
              color: "#fff",
            },
            style_6: {
              border: "1.5px solid #5d7cc5",
              background: "#5d7cc5",
              "border-radius": "3px",
              color: "#fff",
            },
            style_7: {
              border: "1.5px solid #84b35d",
              background: "#84b35d",
              "border-radius": "3px",
              color: "#fff",
            },
            style_8: {
              border: "1.5px solid #82a3cb",
              background: "#a7bfe1",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_9: {
              border: "1.5px solid #404041",
              background: "#818281",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_10: {
              border: "1.5px solid #cd936c",
              background: "#ebaf90",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_11: {
              border: "1.5px solid #afafb0",
              background: "#c3c3c3",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_12: {
              border: "1.5px solid #e5ce86",
              background: "#f8d78e",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_13: {
              border: "1.5px solid #6780b8",
              background: "#93a2d3",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_14: {
              border: "1.5px solid #9fb98d",
              background: "#aacb95",
              "border-radius": "3px",
              color: "#2a3048",
            },
            style_15: {
              border: "solid 1px #2d64bc",
              background: "#2d64bc",
              "border-radius": "100px",
              color: "#fff",
            },
            style_16: {
              border: "solid 1px #2d64bc",
              background: "#fff",
              "border-radius": "100px",
              color: "#2d64bc",
            },
          };
        }
        applyStyle(e, t) {
          t || (t = "style_1");
          var n = this.styles()[t];
          for (const [t, i] of Object.entries(n)) e.css(t, i);
        }
        afterRender() {
          var e = this;
          e.applyStyle(e.selector().find(".button-preview"), e.value),
            e
              .selector()
              .find(".button_styles button")
              .each(function (t) {
                e.applyStyle($(this), $(this).attr("data-style"));
              }),
            e
              .selector()
              .find(".button-preview")
              .on("click", function (t) {
                t.preventDefault(),
                  e.selector().find(".button_styles").toggle();
              }),
            e
              .selector()
              .find(".button_styles button")
              .on("click", function (t) {
                t.preventDefault();
                var n = $(this).attr("data-style");
                e.applyStyle(e.selector().find(".button-preview"), n),
                  e.selector().find(".button_styles").hide(),
                  e.callback(e, n);
              }),
            $(document).on("click", function (e) {
              !$(e.target).closest(".button-styles-select").length &&
                $(".button_styles").is(":visible") &&
                $(".button_styles").hide();
            });
        }
      }),
      (window.ButtonOptionControl = class extends u {
        groupId() {
          return "action";
        }
        renderHtml() {
          var e = this.value;
          e = rgb2hex(this.value.background_color);
          var t = this.value;
          t = rgb2hex(this.value.text_color);
          this.value, this.value;
          var n = parseInt(this.value.border_radius.replace("px", "")),
            i = this.value.border_style,
            r = parseInt(this.value.border_width.replace("px", "")),
            o = this.value;
          o = rgb2hex(this.value.border_color);
          var s = this.value.border_top_style,
            a = parseInt(this.value.border_top_width.replace("px", "")),
            l = this.value;
          l = rgb2hex(this.value.border_top_color);
          var c = this.value.border_right_style,
            d = parseInt(this.value.border_right_width.replace("px", "")),
            u = this.value;
          u = rgb2hex(this.value.border_right_color);
          var h = this.value.border_bottom_style,
            g = parseInt(this.value.border_bottom_width.replace("px", "")),
            p = this.value;
          p = rgb2hex(this.value.border_bottom_color);
          this.value.border_left_style;
          var A = parseInt(this.value.border_left_width.replace("px", "")),
            f = this.value;
          f = rgb2hex(this.value.border_left_color);
          var m = parseInt(this.value.width_button),
            v = parseInt(this.value.width_button) + "px",
            b = $("#ButtonOptionControl").html();
          b = b.replace("[ID]", this.id);
          var w = "background-color_" + this.id,
            y = "text_color_input_" + this.id,
            x = "border_color_input_" + this.id,
            C = "border_top_color_input_" + this.id,
            k = "border_right_color_input_" + this.id,
            _ = "border_bottom_color_input_" + this.id,
            I = "border_left_color_input_" + this.id,
            E = "ng_binding_solid_" + this.id,
            T = "ng_binding_dotted" + this.id,
            S = "ng_binding_dashed_" + this.id,
            L = "ng_binding_solid_top_" + this.id,
            j = "ng_binding_dotted_top_" + this.id,
            R = "ng_binding_dashed_top_" + this.id,
            B = "ng_binding_solid_right_" + this.id,
            M = "ng_binding_dotted_right_" + this.id,
            D = "ng_binding_dashed_right_" + this.id,
            O = "ng_binding_solid_bottom_" + this.id,
            H = "ng_binding_dotted_bottom_" + this.id,
            W = "ng_binding_dashed_bottom_" + this.id,
            P = "ng_binding_solid_left_" + this.id,
            N = "ng_binding_dotted_left_" + this.id,
            q = "ng_binding_dashed_left_" + this.id,
            z = "input_width_button_" + this.id,
            V = "plus-border-width" + this.id,
            F = "minus-border-width" + this.id,
            Q = "plus-border-top" + this.id,
            U = "minus-border-top" + this.id,
            K = "plus-border-right" + this.id,
            X = "minus-border-right" + this.id,
            G = "plus-border-bottom" + this.id,
            J = "minus-border-bottom" + this.id,
            Y = "plus-border-left" + this.id,
            Z = "minus-border-left" + this.id,
            ee = "all-border_" + this.id,
            te = "four-border_" + this.id;
          b = (b = (b = b.replace("[TITLE]", this.title)).replace(
            /\[BACKGROUNDVALUE\]/g,
            e
          )).replace(/\[BACKINPUT_ID\]/g, w);
          var ne = $("<DIV>").html(b);
          return (
            ne
              .find(".button-option-control .background-color-input")
              .attr("value", e),
            ne.find(".button-option-control .background-color").attr("id", w),
            ne
              .find(".button-option-control .background-color")
              .attr("value", e),
            ne
              .find(".button-option-control .input-text-color")
              .attr("value", t),
            ne
              .find(".button-option-control .text-color-picker")
              .attr("value", t),
            ne.find(".button-option-control .text-color").attr("id", y),
            ne.find(".button-option-control .text-color").attr("value", t),
            ne.find(".button-option-control .border-button").attr("value", n),
            ne.find(".button-option-control .border-style").html(i),
            ne
              .find(".button-option-control .border-width-input")
              .attr("value", r),
            ne
              .find(".button-option-control .border_color_input")
              .attr("value", o),
            ne.find(".button-option-control .border-color").attr("id", x),
            ne.find(".button-option-control .border-color").attr("value", o),
            ne.find(".button-option-control .square-border").css({
              "border-color": o,
              "border-width": r,
              "border-style": i,
            }),
            ne.find(".button-option-control .ng-binding-solid").attr("id", E),
            ne.find(".button-option-control .ng-binding-dotted").attr("id", T),
            ne.find(".button-option-control .ng-binding-dashed").attr("id", S),
            ne.find(".button-option-control .border-style-top").html(s),
            ne
              .find(".button-option-control .border-top-width-input")
              .attr("value", a),
            ne
              .find(".button-option-control .border_top_color_input")
              .attr("value", l),
            ne.find(".button-option-control .border-color-top").attr("id", C),
            ne
              .find(".button-option-control .border-color-top")
              .attr("value", l),
            ne
              .find(".button-option-control .ng-binding-solid-top")
              .attr("id", L),
            ne
              .find(".button-option-control .ng-binding-dotted-top")
              .attr("id", j),
            ne
              .find(".button-option-control .ng-binding-dashed-top")
              .attr("id", R),
            ne.find(".button-option-control .border-style-right").html(c),
            ne
              .find(".button-option-control .border-right-width-input")
              .attr("value", d),
            ne
              .find(".button-option-control .border_right_color_input")
              .attr("value", u),
            ne.find(".button-option-control .border-color-right").attr("id", k),
            ne
              .find(".button-option-control .border-color-right")
              .attr("value", u),
            ne
              .find(".button-option-control .ng-binding-solid-right")
              .attr("id", B),
            ne
              .find(".button-option-control .ng-binding-dotted-right")
              .attr("id", M),
            ne
              .find(".button-option-control .ng-binding-dashed-right")
              .attr("id", D),
            ne.find(".button-option-control .border-style-bottom").html(h),
            ne
              .find(".button-option-control .border-bottom-width-input")
              .attr("value", g),
            ne
              .find(".button-option-control .border_bottom_color_input")
              .attr("value", p),
            ne
              .find(".button-option-control .border-color-bottom")
              .attr("id", _),
            ne
              .find(".button-option-control .border-color-bottom")
              .attr("value", p),
            ne
              .find(".button-option-control .ng-binding-solid-bottom")
              .attr("id", O),
            ne
              .find(".button-option-control .ng-binding-dotted-bottom")
              .attr("id", H),
            ne
              .find(".button-option-control .ng-binding-dashed-bottom")
              .attr("id", W),
            ne.find(".button-option-control .border-style-left").html(c),
            ne
              .find(".button-option-control .border-left-width-input")
              .attr("value", A),
            ne
              .find(".button-option-control .border_left_color_input")
              .attr("value", f),
            ne.find(".button-option-control .border-color-left").attr("id", I),
            ne
              .find(".button-option-control .border-color-left")
              .attr("value", f),
            ne
              .find(".button-option-control .ng-binding-solid-left")
              .attr("id", P),
            ne
              .find(".button-option-control .ng-binding-dotted-left")
              .attr("id", N),
            ne
              .find(".button-option-control .ng-binding-dashed-left")
              .attr("id", q),
            ne.find(".button-option-control .width-button").html(v),
            ne
              .find(".button-option-control .color-default-button")
              .attr("value", m),
            ne
              .find(".button-option-control .color-default-button")
              .attr("id", z),
            ne.find(".button-option-control #plus-border-width").attr("id", V),
            ne.find(".button-option-control #minus-border-width").attr("id", F),
            ne.find(".button-option-control #plus-border-top").attr("id", Q),
            ne.find(".button-option-control #minus-border-top").attr("id", U),
            ne.find(".button-option-control #plus-border-right").attr("id", K),
            ne.find(".button-option-control #minus-border-right").attr("id", X),
            ne.find(".button-option-control #plus-border-bottom").attr("id", G),
            ne
              .find(".button-option-control #minus-border-bottom")
              .attr("id", J),
            ne.find(".button-option-control #plus-border-left").attr("id", Y),
            ne.find(".button-option-control #minus-border-left").attr("id", Z),
            ne.find(".button-option-control .all-border").attr("id", ee),
            ne.find(".button-option-control .four-border").attr("id", te),
            ne.html()
          );
        }
        afterRender() {
          var e = this,
            t = this.value;
          t = rgb2hex(this.value.background_color);
          this.value;
          rgb2hex(this.value.text_color);
          this.value, this.value;
          var n = parseInt(this.value.border_radius.replace("px", ""));
          this.value.border_style,
            parseInt(this.value.border_width.replace("px", "")),
            this.value;
          rgb2hex(this.value.border_color);
          this.value.border_top_style,
            parseInt(this.value.border_top_width.replace("px", "")),
            this.value;
          rgb2hex(this.value.border_top_color);
          this.value.border_right_style,
            parseInt(this.value.border_right_width.replace("px", "")),
            this.value;
          rgb2hex(this.value.border_right_color);
          this.value.border_bottom_style,
            parseInt(this.value.border_bottom_width.replace("px", "")),
            this.value;
          rgb2hex(this.value.border_bottom_color);
          this.value.border_left_style,
            parseInt(this.value.border_left_width.replace("px", "")),
            this.value;
          rgb2hex(this.value.border_left_color);
          parseInt(this.value.width_button), parseInt(this.value.width_button);
          var i = $("#ButtonOptionControl").html();
          i = i.replace("[ID]", e.id);
          var r = "background-color_" + this.id,
            o = (this.id, "border_color_input_" + this.id),
            s = "border_top_color_input_" + this.id,
            a = "border_right_color_input_" + this.id,
            l = "border_bottom_color_input_" + this.id,
            c = "border_left_color_input_" + this.id,
            d = "ng_binding_solid_" + this.id,
            u = "ng_binding_dotted" + this.id,
            h = "ng_binding_dashed_" + this.id,
            g = "ng_binding_solid_top_" + this.id,
            p = "ng_binding_dotted_top_" + this.id,
            A = "ng_binding_dashed_top_" + this.id,
            f = "ng_binding_solid_right_" + this.id,
            m = "ng_binding_dotted_right_" + this.id,
            v = "ng_binding_dashed_right_" + this.id,
            b = "ng_binding_solid_bottom_" + this.id,
            w = "ng_binding_dotted_bottom_" + this.id,
            y = "ng_binding_dashed_bottom_" + this.id,
            x = "ng_binding_solid_left_" + this.id,
            C = "ng_binding_dotted_left_" + this.id,
            k = "ng_binding_dashed_left_" + this.id,
            _ = "input_width_button_" + this.id,
            I = "plus-border-width" + this.id,
            E = "minus-border-width" + this.id,
            T = "plus-border-top" + this.id,
            S = "minus-border-top" + this.id,
            L = "plus-border-right" + this.id,
            j = "minus-border-right" + this.id,
            R = "plus-border-bottom" + this.id,
            B = "minus-border-bottom" + this.id,
            M = "plus-border-left" + this.id,
            D = "minus-border-left" + this.id,
            O = "all-border_" + this.id,
            H = "four-border_" + this.id;
          (i = (i = (i = i.replace("[TITLE]", this.title)).replace(
            /\[BACKGROUNDVALUE\]/g,
            t
          )).replace(/\[BACKINPUT_ID\]/g, r)),
            $(".control-" + e.id).on("change", "#" + _, function () {
              var t = this.value + "px";
              $("#thongsos").html(t),
                e.callback({
                  width_button: t,
                });
            }),
            $(".control-" + e.id).on("change", "#" + r, function () {
              var t = $(this).val();
              $(".control-" + e.id + " #background-color-input-text").val(t),
                e.callback({
                  background_color: t,
                });
            }),
            $(".control-" + e.id).on(
              "change keyup",
              "#background-color-input-text",
              function () {
                var t = $(this).val();
                $(".control-" + e.id + " #" + r).val(t),
                  e.callback({
                    background_color: t,
                  });
              }
            ),
            $(".control-" + e.id).on(
              "change",
              " .text-color-picker",
              function () {
                var t = $(this).val();
                "" != t &&
                  ($(".control-" + e.id + " #text_color_input").val(t),
                  e.callback({
                    text_color: t,
                  }));
              }
            ),
            $(".control-" + e.id).on(
              "change keyup",
              "#text_color_input",
              function () {
                var t = $(this).val();
                "" != t &&
                  ($(".control-" + e.id + " .text-color-picker").val(t),
                  e.callback({
                    text_color: t,
                  }));
              }
            ),
            $(".control-" + e.id).on("click", ".align", function () {
              var t = $(this).attr("float");
              $(".align").removeClass("active"),
                $(this).addClass("active"),
                e.callback({
                  align: t,
                });
            }),
            $(".control-" + e.id).on("click", ".icon-line-height", function () {
              var t = $(this).attr("line-height");
              $(".icon-line-height").removeClass("active"),
                $(this).addClass("active"),
                e.callback({
                  line_height: t,
                });
            }),
            $(".control-" + e.id).on("click", "#plus-border", function () {
              if (n < 60) {
                var t = (n += 1),
                  i = $("#border-radius").val(t);
                t >= 60 && i.val(60),
                  e.callback({
                    border_radius: t,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#minus-border", function () {
              if (n > 0) {
                var t = (n -= 1),
                  i = $("#border-radius").val(t);
                t <= 0 && i.val(0),
                  e.callback({
                    border_radius: t,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + I, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborder")
                  .val();
              if (n < 30) {
                var i = parseInt(n),
                  r = (i += 1),
                  o = t.find("#giatriborder").val(r);
                $("#square-border").css("border-width", r + "px"),
                  r >= 30 &&
                    (o.val(30),
                    $("#square-border").css("border-width", "30px")),
                  e.callback({
                    border_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + E, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborder")
                  .val();
              if (n > 0) {
                var i = parseInt(n),
                  r = (i -= 1),
                  o = t.find("#giatriborder").val(r);
                $("#square-border").css("border-width", r + "px"),
                  r <= 0 &&
                    (o.val(0), $("#square-border").css("border-width", "0px")),
                  e.callback({
                    border_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("change", "#" + o, function () {
              var t = $(this).val();
              $("#border-color").val(t),
                $("#square-border").css("border-color", t),
                e.callback({
                  border_color: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + d, function () {
              var t = $(this).attr("data-value");
              $(".border-style").html(getI18n("solid")),
                $(".border-style").attr("data-style", "solid"),
                $("#square-border").css("border-style", t),
                e.callback({
                  border_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + u, function () {
              var t = $(this).attr("data-value");
              $(".border-style").html(getI18n("dotted")),
                $(".border-style").attr("data-style", "dotted"),
                $("#square-border").css("border-style", t),
                e.callback({
                  border_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + h, function () {
              var t = $(this).attr("data-value");
              $(".border-style").html(getI18n("dashed")),
                $(".border-style").attr("data-style", "dashed"),
                $("#square-border").css("border-style", t),
                e.callback({
                  border_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + T, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatribordertop")
                  .val();
              if (n < 30) {
                var i = parseInt(n),
                  r = (i += 1),
                  o = t.find("#giatribordertop").val(r);
                $("#square-border").css("border-top-width", r + "px"),
                  r >= 30 &&
                    (o.val(30),
                    $("#square-border").css("border-top-width", "30px")),
                  e.callback({
                    border_top_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + S, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatribordertop")
                  .val();
              if (n > 0) {
                var i = parseInt(n),
                  r = (i -= 1),
                  o = t.find("#giatribordertop").val(r);
                $("#square-border").css("border-top-width", r + "px"),
                  r <= 0 &&
                    (o.val(0),
                    $("#square-border").css("border-top-width", "0px")),
                  e.callback({
                    border_top_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("change", "#" + s, function () {
              var t = $(this).val();
              $("#border-color-top").val(t),
                $("#square-border").css("border-top-color", t),
                e.callback({
                  border_top_color: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + g, function () {
              var t = $(this).attr("data-value");
              $(".border-style-top").html("Solid"),
                $("#square-border").css("border-top-style", t),
                e.callback({
                  border_top_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + p, function () {
              var t = $(this).attr("data-value");
              $(".border-style-top").html("Dotted"),
                $("#square-border").css("border-top-style", t),
                e.callback({
                  border_top_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + A, function () {
              var t = $(this).attr("data-value");
              $(".border-style-top").html("Dashed"),
                $("#square-border").css("border-top-style", t),
                e.callback({
                  border_top_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + L, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderright")
                  .val();
              if (n < 30) {
                var i = parseInt(n),
                  r = (i += 1),
                  o = t.find("#giatriborderright").val(r);
                $("#square-border").css("border-right-width", r + "px"),
                  r >= 30 &&
                    (o.val(30),
                    $("#square-border").css("border-right-width", "30px")),
                  e.callback({
                    border_right_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + j, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderright")
                  .val();
              if (n > 0) {
                var i = parseInt(n),
                  r = (i -= 1),
                  o = t.find("#giatriborderright").val(r);
                $("#square-border").css("border-right-width", r + "px"),
                  r <= 0 &&
                    (o.val(0),
                    $("#square-border").css("border-right-width", "0px")),
                  e.callback({
                    border_right_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("change", "#" + a, function () {
              var t = $(this).val();
              $("#border-color-right").val(t),
                $("#square-border").css("border-right-color", t),
                e.callback({
                  border_right_color: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + f, function () {
              var t = $(this).attr("data-value");
              $(".border-style-right").html(getI18n("solid")),
                $("#square-border").css("border-right-style", t),
                e.callback({
                  border_right_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + m, function () {
              var t = $(this).attr("data-value");
              $(".border-style-right").html(getI18n("dotted")),
                $("#square-border").css("border-right-style", t),
                e.callback({
                  border_right_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + v, function () {
              var t = $(this).attr("data-value");
              $(".border-style-right").html(getI18n("dashed")),
                $("#square-border").css("border-right-style", t),
                e.callback({
                  border_right_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + R, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderbottom")
                  .val();
              if (n < 30) {
                var i = parseInt(n),
                  r = (i += 1),
                  o = t.find("#giatriborderbottom").val(r);
                $("#square-border").css("border-bottom-width", r + "px"),
                  r >= 30 &&
                    (o.val(30),
                    $("#square-border").css("border-bottom-width", "30px")),
                  e.callback({
                    border_bottom_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + B, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderbottom")
                  .val();
              if (n > 0) {
                var i = parseInt(n),
                  r = (i -= 1),
                  o = t.find("#giatriborderbottom").val(r);
                $("#square-border").css("border-bottom-width", r + "px"),
                  r <= 0 &&
                    (o.val(0),
                    $("#square-border").css("border-bottom-width", "0px")),
                  e.callback({
                    border_bottom_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("change", "#" + l, function () {
              var t = $(this).val();
              $("#border-color-bottom").val(t),
                $("#square-border").css("border-bottom-color", t),
                e.callback({
                  border_bottom_color: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + b, function () {
              var t = $(this).attr("data-value");
              $(".border-style-bottom").html(getI18n("solid")),
                $("#square-border").css("border-bottom-style", t),
                e.callback({
                  border_bottom_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + w, function () {
              var t = $(this).attr("data-value");
              $(".border-style-bottom").html(getI18n("dotted")),
                $("#square-border").css("border-bottom-style", t),
                e.callback({
                  border_bottom_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + y, function () {
              var t = $(this).attr("data-value");
              $(".border-style-bottom").html(getI18n("dashed")),
                $("#square-border").css("border-bottom-style", t),
                e.callback({
                  border_bottom_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + M, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderleft")
                  .val();
              if (n < 30) {
                var i = parseInt(n),
                  r = (i += 1),
                  o = t.find("#giatriborderleft").val(r);
                $("#square-border").css("border-left-width", r + "px"),
                  r >= 30 &&
                    (o.val(30),
                    $("#square-border").css("border-left-width", "30px")),
                  e.callback({
                    border_left_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("click", "#" + D, function () {
              var t = $(this).closest(".minus-plus-border"),
                n = $(this)
                  .closest(".minus-plus-border")
                  .find("#giatriborderleft")
                  .val();
              if (n > 0) {
                var i = parseInt(n),
                  r = (i -= 1),
                  o = t.find("#giatriborderleft").val(r);
                $("#square-border").css("border-left-width", r + "px"),
                  r <= 0 &&
                    (o.val(0),
                    $("#square-border").css("border-left-width", "0px")),
                  e.callback({
                    border_left_width: r,
                  });
              }
            }),
            $(".control-" + e.id).on("change", "#" + c, function () {
              var t = $(this).val();
              $("#border-color-left").val(t),
                $("#square-border").css("border-left-color", t),
                e.callback({
                  border_left_color: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + x, function () {
              var t = $(this).attr("data-value");
              $(".border-style-left").html(getI18n("solid")),
                $("#square-border").css("border-left-style", t),
                e.callback({
                  border_left_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + C, function () {
              var t = $(this).attr("data-value");
              $(".border-style-left").html(getI18n("dotted")),
                $("#square-border").css("border-left-style", t),
                e.callback({
                  border_left_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + k, function () {
              var t = $(this).attr("data-value");
              $(".border-style-left").html(getI18n("dashed")),
                $("#square-border").css("border-left-style", t),
                e.callback({
                  border_left_style: t,
                });
            }),
            $(".control-" + e.id).on("click", "#" + O, function () {
              var e = $(".border-style").attr("data-style"),
                t = $("#giatriborder").val(),
                n = $("#border-color").val();
              $(".border-style-top").html(e),
                $(".border-style-top").attr("data-style", e),
                $("#giatribordertop").val(t),
                $("#border-top-color").val(n),
                $(".border-color-top").val(n),
                $(".border-style-bottom").html(e),
                $(".border-style-bottom").attr("data-style", e),
                $("#giatriborderbottom").val(t),
                $("#border-bottom-color").val(n),
                $(".border-color-bottom").val(n),
                $(".border-style-right").html(e),
                $(".border-style-right").attr("data-style", e),
                $("#giatriborderright").val(t),
                $("#border-right-color").val(n),
                $(".border-color-right").val(n),
                $(".border-style-left").html(e),
                $(".border-style-left").attr("data-style", e),
                $("#giatriborderleft").val(t),
                $("#border-left-color").val(n),
                $(".border-color-left").val(n);
            }),
            $(".control-" + e.id).on("click", "#" + H, function () {
              $(".border-style").html(getI18n("solid")),
                $(".border-style").attr("data-style", "solid"),
                $("#giatriborder").val(0),
                $("#border-color").val("#ffffff"),
                $(".border-color").val("#ffffff"),
                $("#square-border").css("border-style", "solid"),
                $("#square-border").css("border-width", "0px"),
                e.callback({
                  border_style: "solid",
                  border_width: 0,
                  border_color: "#ffffff",
                });
            });
        }
      }),
      (window.CaptchaToggleControl = class extends u {
        renderHtml() {
          var e = $("#CaptchaToggleControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = e.replace("[ID]", this.id)),
            $("<DIV>").html(e).html()
          );
        }
        getCaptchaSwitch() {
          return $(this.selector).find(".captcha-switch");
        }
        captchaShowed() {
          return "true" == this.getCaptchaSwitch().attr("data-checked");
        }
        hideCaptcha() {
          this.getCaptchaSwitch().attr("data-checked", "false"),
            this.getCaptchaSwitch().find(".material-icons").html("toggle_off"),
            this.getCaptchaSwitch()
              .find(".material-icons")
              .addClass("text-secondary"),
            this.getCaptchaSwitch()
              .find(".material-icons")
              .removeClass("text-primary"),
            this.update();
        }
        showCaptcha() {
          this.getCaptchaSwitch().attr("data-checked", "true"),
            this.getCaptchaSwitch().find(".material-icons").html("toggle_on"),
            this.getCaptchaSwitch()
              .find(".material-icons")
              .removeClass("text-secondary"),
            this.getCaptchaSwitch()
              .find(".material-icons")
              .addClass("text-primary"),
            this.update();
        }
        toggleCaptcha() {
          this.captchaShowed() ? this.hideCaptcha() : this.showCaptcha();
        }
        update() {
          this.callback(this.captchaShowed());
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find(".captcha-switch")
            .click(function () {
              e.toggleCaptcha();
            }),
            e.value || e.hideCaptcha();
        }
      }),
      (window.CellOptionControl = class extends u {
        renderHtml() {
          var e = this,
            t =
              '\n            <div id="CellOptionControl">\n                <div class="control-[ID]">\n                    <div class="widget-row px-3 py-2">                        \n                        <div class="layout-group layout-group-2">\n                            <h4>{language.cell.layout}</h4>\n                            <div class="d-flex cell-layouts">\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="3-7">\n                                    <svg style="width:50px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="27" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="32" y="1" width="45" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">3-7</div>\n                                </div>\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="5-5">\n                                    <svg style="width:50px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="36" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="41" y="1" width="36" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">5-5</div>\n                                </div>\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="7-3">\n                                    <svg style="width:50px;transform:scaleX(-1)" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 78 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="27" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="32" y="1" width="45" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">7-3</div>\n                                </div>\n                            </div>\n                        </div>\n                        <div class="layout-group layout-group-3">\n                            <h4>{language.cell.layout}</h4>\n                            <div class="d-flex cell-layouts">\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="4-4-4">\n                                    <svg style="width:50px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.8 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="21.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="28.2" y="1" width="21.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="55.8" y="1" width="21" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">4-4-4</div>\n                                </div>\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="3-6-3">\n                                    <svg style="width:50px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.8 53.5"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="60" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="21.8" y="1.5" width="34" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">3-6-3</div>\n                                </div>\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="3-3-6">\n                                    <svg style="width:50px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.8 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="22" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="42.8" y="1" width="34" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">3-3-6</div>\n                                </div>\n                                <div class="mr-2 cell-layout p-2 border rounded" data-value="6-3-3">\n                                    <svg style="width:50px;transform:scaleX(-1)" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 77.8 53"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><rect x="1" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="22" y="1" width="16.8" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/><rect x="42.8" y="1" width="34" height="51" rx="4.3" style="fill:#e2e1e2;stroke:#b7b7b8;stroke-miterlimit:10;stroke-width:2px"/></g></g></svg>\n                                    <div style="font-weight:600;text-align:center">6-3-3</div>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <div class="widget-row px-3 py-2">                        \n                        <div class="">\n                            <div class="d-flex">\n                                <div class="mr-auto pr-4">\n                                    <label class="label mb-1" style="font-weight:600;">{language.cell.responsive}</label>\n                                    <p class="small">{language.cell.responsive.wording}</p>\n                                </div>\n                                <div class="d-flex align-items-center">\n                                    <label style="position: relative;">\n                                        <input name="responsive" type="checkbox" class="styled3" />\n                                        <span class="check-symbol"></span>\n                                    </label>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        ';
          return (
            (e.selector = function () {
              return $(".control-" + e.id);
            }),
            (t = t.replace("[ID]", e.id)),
            $("<DIV>").html(t).html()
          );
        }
        setLayout(e) {
          this.selector().find(".cell-layout").removeClass("current"),
            this.selector()
              .find('.cell-layout[data-value="' + e + '"]')
              .addClass("current"),
            this.callback.setLayout(e);
        }
        afterRender() {
          var e = this;
          e
            .selector()
            .find('.cell-layout[data-value="' + e.value.layout + '"]')
            .addClass("current"),
            e.value.responsive
              ? e.selector().find("[name=responsive]").prop("checked", !0)
              : e.selector().find("[name=responsive]").prop("checked", !1),
            e
              .selector()
              .find(".cell-layout")
              .on("click", function () {
                var t = $(this).attr("data-value");
                e.setLayout(t);
              }),
            e
              .selector()
              .find("[name=responsive]")
              .on("change", function () {
                var t = $(this).is(":checked");
                e.callback.setResponsive(t);
              }),
            e.selector().find(".layout-group").hide(),
            e
              .selector()
              .find(".layout-group-" + e.value.count)
              .show();
        }
      }),
      (window.CheckboxAssociateControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = $("#CheckboxAssociateControl").html();
          t = t.replace("[TITLE]", this.title);
          var n = $("<div>").html(t);
          n.find(".associate-checkbox").append(
            '<option class="" value="">' +
              getI18n("select_option") +
              "</option>"
          );
          var i = "associate-checkbox" + this.id;
          return (
            n.find(".widget-associate .associate-checkbox").attr("id", i),
            editor.tags.forEach(function (e) {
              "checkbox" == e.type &&
                n
                  .find(".associate-checkbox")
                  .append(
                    '<option class="" value="' +
                      e.tag +
                      '">' +
                      e.text +
                      "</option>"
                  );
            }),
            $(document).on("change", "#" + i, function () {
              var t = $(this).val();
              e.callback({
                name: t,
              });
            }),
            n.html()
          );
        }
      }),
      (window.ColorPickerControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value;
          t = rgb2hex(this.value);
          var n = $("#ColorPickerControl").html(),
            i = "P_color_input_" + this.id;
          n = (n = (n = n.replace("[TITLE]", this.title)).replace(
            /\[PVALUE\]/g,
            t
          )).replace(/\[PINPUT_ID\]/g, i);
          var r = $("<DIV>").html(n);
          return (
            r.find(".text-color-element .color").attr("value", t),
            r.find(".text-color-element .text-color-input").attr("value", t),
            $(document).on("change", "#" + i, function () {
              var t = $(this).val();
              $("#P-text-color").val(t), e.callback(t);
            }),
            r.html()
          );
        }
      }),
      (window.CommonFieldControl = class extends u {
        renderHtml() {
          var e = $("#CommonFieldControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = (e = (e = (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )).replace("[FIELD_ID]", this.value.id)).replace(
              /\[FIELD_NAME\]/g,
              this.value.fieldName
            )).replace(/\[ICON\]/g, this.value.icon)).replace(
              "[LABEL]",
              this.value.label
            )),
            $("<DIV>").html(e).html()
          );
        }
        getLabelSwitch() {
          return $(this.selector).find(".label-switch");
        }
        labelShowed() {
          return "true" == this.getLabelSwitch().attr("data-checked");
        }
        hideLabel() {
          this.getLabelSwitch().attr("data-checked", "false"),
            this.getLabelSwitch().find(".material-icons").html("toggle_off"),
            this.getLabelSwitch()
              .find(".material-icons")
              .addClass("text-secondary"),
            this.getLabelSwitch()
              .find(".material-icons")
              .removeClass("text-primary"),
            $(this.selector).find(".field-label-line").addClass("force-hide"),
            this.update();
        }
        showLabel() {
          this.getLabelSwitch().attr("data-checked", "true"),
            this.getLabelSwitch().find(".material-icons").html("toggle_on"),
            this.getLabelSwitch()
              .find(".material-icons")
              .removeClass("text-secondary"),
            this.getLabelSwitch()
              .find(".material-icons")
              .addClass("text-primary"),
            $(this.selector)
              .find(".field-label-line")
              .removeClass("force-hide"),
            $(this.selector).find(".field-label-line").show(),
            this.update();
        }
        toggleLabel() {
          this.labelShowed() ? this.hideLabel() : this.showLabel();
        }
        update() {
          this.callback({
            fieldName: $(this.selector).find(".field-name").val().trim(),
            label: $(this.selector).find(".field-label").val().trim(),
            labelShowed: this.labelShowed(),
            id: $(this.selector).find(".field-id").val().trim(),
          });
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find(".field-name, .field-label, .field-id")
            .on("change keyup", function () {
              e.update();
            }),
            $(e.selector)
              .find(".label-switch")
              .click(function () {
                e.toggleLabel();
              }),
            e.value.labelShowed || e.hideLabel();
        }
      }),
      (window.DivOptionControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = $("#DivOptionControl").html(),
            n = "minus-div_" + this.id,
            i = "plus-div_" + this.id,
            r = $("<DIV>").html(t);
          return (
            r.find(".divider-mode-container .minus-div").attr("id", n),
            r.find(".divider-mode-container .plus-div").attr("id", i),
            $(document).on("click", "#" + i, function () {
              var t = $("#height-div").val();
              if (t < 100) {
                var n = parseInt(t),
                  i = (n += 5),
                  r = $("#height-div").val(i);
                i >= 100 && r.val(100),
                  e.callback({
                    height: i,
                  });
              }
            }),
            $(document).on("click", "#" + n, function () {
              var t = $("#height-div").val();
              if (t > 0) {
                var n = (t -= 5),
                  i = $("#height-div").val(n);
                n <= 0 && i.val(0),
                  e.callback({
                    height: n,
                  });
              }
            }),
            r.html()
          );
        }
      }),
      (window.DropdownAssociateControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = $("#DropdownAssociateControl").html(),
            n = "dropdown_" + this.id;
          t = (t = t.replace("[TITLE]", this.title)).replace(
            /\[dropdown_ID]/g,
            n
          );
          var i = $("<div>").html(t);
          editor.tags.forEach(function (e) {
            "dropdown" == e.type &&
              i
                .find(".associate-dropdown")
                .append(
                  '<option class="gender" value="' +
                    e.tag +
                    '">' +
                    e.text +
                    "</option>"
                );
          });
          var r = "placeholder_" + this.id;
          i.find(".placeholder-input-control .placeholder-input").attr("id", r);
          var o = i.find(".placeholder-option");
          return (
            $(document).on("keyup change", "#" + r, function () {
              var t = $(this).val();
              o.html(t),
                e.callback({
                  placeholder: t,
                });
            }),
            $(document).on("change", "#" + n, function () {
              var t = $(this).val();
              e.callback({
                name: t,
              });
            }),
            i.html()
          );
        }
      }),
      (window.FieldListHeaderControl = class extends u {
        renderHtml() {
          var e = $("#FieldListHeaderControl").html();
          return (
            (e = (e = e.replace("[TITLE]", this.title)).replace(
              "[LIST_NAME]",
              this.value
            )),
            $("<DIV>").html(e).html()
          );
        }
      }),
      (window.FieldOptionsControl = class extends u {
        renderHtml() {
          var e = $("#FieldOptionsControl").html();
          (this.selector = ".control-" + this.id),
            (e = e.replace("[ID]", this.id));
          var t = "";
          return (
            this.value.options.forEach(function (e) {
              t =
                t +
                '\n                <div class="field-option">\n                    <div class="row">\n                        <div class="col-md-5 d-flex align-items-center pr-1">\n                            <label class="small m-0">' +
                getI18n("field.option.value") +
                '</label>\n                            <input disabled class="disabled" type="text" name="value" value="' +
                e.value +
                '" />\n                        </div>\n                        <div class="col-md-7 d-flex align-items-center pl-1">\n                            <label class="small m-0">' +
                getI18n("field.option.text") +
                '</label>\n                            <input class="" type="text" name="text" value="' +
                e.text +
                '" />\n                        </div>\n                    </div>\n                </div>\n            ';
            }),
            (e = e.replace("[OPTIONS]", t)),
            $("<DIV>").html(e).html()
          );
        }
        update() {
          this.callback({
            options: $(this.selector)
              .find(".field-option")
              .map(function () {
                return {
                  value: $(this).find("[name=value]").val().trim(),
                  text: $(this).find("[name=text]").val().trim(),
                  checked: $(this).find("[name=checkbox]").is(":checked"),
                };
              })
              .get(),
          });
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find("input")
            .on("change keyup", function () {
              e.update();
            });
        }
      }),
      (window.FontFamilyControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value,
            n = t.split(",")[0].trim().toLowerCase().replace(/\"/g, ""),
            i = $("#FontFamilyControl").html();
          i = (i = i.replace("[TITLE]", this.title)).replace("[ID]", this.id);
          var r = $("<DIV>").html(i);
          return (
            0 !=
              r.find(
                ".control-" +
                  this.id +
                  '.font-family select option[value="' +
                  n +
                  '"]'
              ).length &&
              (r
                .find(".control-" + this.id + ".font-family select option")
                .attr("selected", !1),
              r
                .find(
                  ".control-" +
                    this.id +
                    '.font-family select option[value="' +
                    n +
                    '"]'
                )
                .attr("selected", !0)),
            $(document).on(
              "change",
              ".control-" + this.id + " select",
              function () {
                e.callback('"' + $(this).val() + '", ' + t);
              }
            ),
            r.html()
          );
        }
      }),
      (window.FormControl = class extends u {
        renderHtml() {
          var e = $("#FormControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = (e = e.replace("[ID]", this.id)).replace(
              "[ENCTYPE]",
              this.value.enctype
                ? this.value.enctype
                : "application/x-www-form-urlencoded"
            )).replace(
              "[ACCEPT_CHARSET]",
              this.value.accept_charset ? this.value.accept_charset : "UTF-8"
            )),
            $("<DIV>").html(e).html()
          );
        }
        update() {
          this.callback({
            method: $(this.selector).find(".method").val(),
            autocomplete: this.autocompleteShowed() ? "on" : "off",
            accept_charset: $(this.selector).find(".accept_charset").val(),
            enctype: $(this.selector).find(".enctype").val(),
          });
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find(".method, .enctype, .accept_charset")
            .on("change keyup", function () {
              e.update();
            }),
            $(e.selector)
              .find(".autocomplete-switch")
              .click(function () {
                e.toggleAutocomplete();
              }),
            "on" != e.value.autocomplete && e.hideAutocomplete(),
            $(e.selector).find(".method").val(e.value.method),
            $(e.selector)
              .find(".enctype")
              .val(
                e.value.enctype
                  ? e.value.enctype
                  : "application/x-www-form-urlencoded"
              ),
            $(e.selector)
              .find(".accept_charset")
              .val(e.value.accept_charset ? e.value.accept_charset : "UTF-8");
        }
        getAutocompleteSwitch() {
          return $(this.selector).find(".autocomplete-switch");
        }
        autocompleteShowed() {
          return "true" == this.getAutocompleteSwitch().attr("data-checked");
        }
        hideAutocomplete() {
          this.getAutocompleteSwitch().attr("data-checked", "false"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .html("toggle_off"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .addClass("text-secondary"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .removeClass("text-primary"),
            this.update();
        }
        showAutocomplete() {
          this.getAutocompleteSwitch().attr("data-checked", "true"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .html("toggle_on"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .removeClass("text-secondary"),
            this.getAutocompleteSwitch()
              .find(".material-icons")
              .addClass("text-primary"),
            this.update();
        }
        toggleAutocomplete() {
          this.autocompleteShowed()
            ? this.hideAutocomplete()
            : this.showAutocomplete();
        }
      }),
      (window.HeadingControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value,
            n = $("#HeadingControl").html();
          n = (n = n.replace("[TITLE]", this.title)).replace("[ID]", this.id);
          var i = $("<DIV>").html(n);
          return (
            i
              .find(".control-" + this.id + " select option")
              .attr("selected", !1),
            i
              .find(".control-" + this.id + ' select option[value="' + t + '"]')
              .attr("selected", !0),
            $(document).on(
              "change",
              ".control-" + this.id + " select",
              function () {
                e.callback($(this).val());
              }
            ),
            i.html()
          );
        }
      }),
      (window.HtmlOptionControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = $("#HtmlOptionControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )).replace("[HTML]", this.value))
          );
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find(".html-input")
            .on("change keyup", function (t) {
              e.callback($(this).val());
            });
        }
      }),
      (window.IconSelectControl = class extends u {
        groupId() {
          return "action";
        }
        icons() {
          return {
            none: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/none.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            facebook: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/facebook.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            linkedin: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/linkedin.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            youtube: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/youtube.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            google_plus: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/google_plus.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            twitter: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/twitter.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            instagram: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/instagram.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            tumblr: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/tumblr.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            line: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/line.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            wechat: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/wechat.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            weibo: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/weibo.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            tiktok: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/tiktok.png" height="35" width="auto" />\n                    </span>\n                ',
            },
            pinterest: {
              html: '\n                    <span class="social-icon">\n                        <img alt="Social Icon Image" src="{{root}}image/icons/pinterest.png" height="35" width="auto" />\n                    </span>\n                ',
            },
          };
        }
        getIconHtml(e) {
          return (
            console.log(e), currentEditor.transformHtml(this.icons()[e].html)
          );
        }
        setIcon(e) {
          $(".control-" + this.id + " .icon").html(this.getIconHtml(e)),
            this.callback.setIconHtml(this.getIconHtml(e)),
            this.callback.setValue(e);
        }
        renderHtml() {
          var e = this,
            t = this.value,
            n = $("#IconSelectControl").html();
          n = (n = n.replace("[TITLE]", this.title)).replace("[ID]", this.id);
          var i = $("<DIV>").html(n);
          return (
            console.log(t.icon),
            i
              .find(".control-" + this.id + " .icon")
              .html(this.getIconHtml(t.icon)),
            i.find(".control-" + this.id + " .url").attr("value", t.url),
            $(document).on(
              "change",
              ".control-" + this.id + " select",
              function () {
                var t = $(this).val();
                e.setIcon(t);
              }
            ),
            $(document).on(
              "change keyup",
              ".control-" + this.id + " .url",
              function () {
                e.callback.setUrl($(this).val());
              }
            ),
            $(document).on(
              "click",
              ".control-" + this.id + " .but-dup",
              function () {
                e.callback.duplicate();
              }
            ),
            $(document).on(
              "click",
              ".control-" + this.id + " .but-remove",
              function () {
                e.callback.remove();
              }
            ),
            i.html()
          );
        }
        afterRender() {
          $(".control-" + this.id + " select option").attr("selected", !1),
            console.log(
              $(
                ".control-" +
                  this.id +
                  ' select option[value="' +
                  this.value.icon +
                  '"]'
              )
            ),
            $(
              ".control-" +
                this.id +
                ' select option[value="' +
                this.value.icon +
                '"]'
            ).prop("selected", !0);
        }
      }),
      (window.IconsContainerControl = class extends u {
        renderHtml() {
          return (
            '\n            <div class="d-flex justify-content-center align-items-center px-2 py-3 control-' +
            this.id +
            '">\n                <button class="btn btn-primary mr-2 add-icon d-flex align-items-center">\n                    <i class="material-icons-outlined mr-1" style="font-size:18px;transform: translateY(2px);">add</i>\n                    <span>{language.add_icon}</span>\n                </button>\n            </div>\n        '
          );
        }
        getContainer() {
          return $(".control-" + this.id);
        }
        afterRender() {
          var e = this;
          this.getContainer()
            .find(".add-icon")
            .on("click", function () {
              e.callback.addIcon();
            });
        }
      }),
      (window.ImageControl = class extends u {
        box() {
          return $(".control-" + this.id);
        }
        autoHeightOn() {
          this.box().find(".image-height-auto").prop("checked", !0),
            this.box().find(".image-height").prop("disabled", !0);
        }
        autoHeightOff() {
          this.box().find(".image-height-auto").prop("checked", !1),
            this.box().find(".image-height").prop("disabled", !1);
        }
        showWidthFix() {
          this.box().find(".width_fix_row").show(),
            this.box().find(".width_row").hide();
        }
        hideWidthFix() {
          this.box().find(".width_fix_row").hide(),
            this.box().find(".width_row").show();
        }
        toggleWidthFix() {
          this.value.width_fix_checked
            ? this.showWidthFix()
            : this.hideWidthFix();
        }
        applyValue() {
          var e = this.value.width;
          this.box().find(".image-width").val(e),
            this.box()
              .find(".image-width-text")
              .html(Math.round(e) + "%"),
            this.box()
              .find('[name="width_fix"]')
              .prop("checked", this.value.width_fix_checked),
            this.toggleWidthFix();
          var t = this.value.width_fix;
          this.box().find(".image-width-fix").val(t),
            this.box()
              .find(".image-width-fix-text")
              .html(Math.round(t) + "px");
          var n = this.value.height;
          this.box().find(".image-height").val(n.toString().replace("px", "")),
            this.value.autoHeight
              ? this.box().find(".image-height-text").html("auto")
              : this.box()
                  .find(".image-height-text")
                  .html(
                    Math.round(n.toString().replace("px", "")).toString() + "px"
                  ),
            this.value.autoHeight ? this.autoHeightOn() : this.autoHeightOff();
        }
        afterRender() {
          var e = this,
            t = this.id,
            n = "img_alt_" + this.id,
            i = "uploadImage-" + this.id,
            r = "image_selected_" + this.id,
            o = $("#builder_iframe").get(0).contentWindow.location.origin,
            s = this;
          null != s.value.readonly &&
            !0 === s.value.readonly &&
            ($(".control-" + s.id + " .button").remove(),
            $(".control-" + s.id + " .link-image").remove(),
            $(".control-" + s.id + " .image-selected").css(
              "pointer-events",
              "none"
            ));
          var a =
            "100%" ==
            (a =
              "0%" == (a = "50%" == s.value.align ? "center" : s.value.align)
                ? "left"
                : a)
              ? "right"
              : a;

          function l(e = "upload") {
            var n = new PopUp(getI18n("change_image"), "auto"),
              i =
                '<div id="image-popup-' +
                t +
                '">' +
                $("#ImageToolbox").html() +
                "</div>";
            "upload" == e
              ? (n.loadHtml(i),
                $(".nav-content").removeClass("active"),
                $(".nav-tab").removeClass("active"),
                $("#home").addClass("active show"),
                $(".home").addClass("active"))
              : "url" == e
              ? (n.loadHtml(i),
                $(".nav-content").removeClass("active"),
                $(".nav-tab").removeClass("active"),
                $("#menu1").addClass("active show"),
                $(".menu1").addClass("active"))
              : "base64" == e
              ? (n.loadHtml(i),
                $(".nav-content").removeClass("active"),
                $(".nav-tab").removeClass("active"),
                $("#menu2").addClass("active show"),
                $(".menu2").addClass("active"))
              : "filemanager" == e &&
                (n.loadHtml(i),
                $(".nav-content").removeClass("active"),
                $(".nav-tab").removeClass("active"),
                $("#menu3").addClass("active show"),
                $(".menu3").addClass("active")),
              (window.filemanager_callback = function (e) {
                s.callback.setUrl(e), new PopUp().hide();
              }),
              void 0 === $(".modal-content .filemanager-iframe").attr("src") &&
                currentEditor.filemanager &&
                $(".modal-content .filemanager-iframe").prop(
                  "src",
                  currentEditor.filemanager
                );
          }
          s
            .box()
            .find('[align="' + a + '"]')
            .addClass("active"),
            e.applyValue(),
            e
              .box()
              .find(".image-width")
              .on("input", function () {
                var t = $(this).val();
                e.box()
                  .find(".image-width-text")
                  .html(Math.round(t) + "%");
              }),
            e
              .box()
              .find(".image-width")
              .on("change", function () {
                var t = $(this).val();
                e.callback.setWidth(t + "%");
              }),
            e
              .box()
              .find(".image-width-fix")
              .on("input", function () {
                var t = $(this).val();
                e.box()
                  .find(".image-width-fix-text")
                  .html(Math.round(t) + "px");
              }),
            e
              .box()
              .find(".image-width-fix")
              .on("change", function () {
                var t = $(this).val();
                e.callback.setWidth(t + "px");
              }),
            e
              .box()
              .find('[name="width_fix"]')
              .on("change", function () {
                if ($(this).is(":checked")) {
                  var t = e.box().find(".image-width-fix").val();
                  e.callback.setWidth(t + "px");
                } else {
                  t = e.box().find(".image-width").val();
                  e.callback.setWidth(t + "%");
                }
              }),
            e
              .box()
              .find(".image-height-auto")
              .on("change", function () {
                $(this).is(":checked")
                  ? (e.autoHeightOn(), e.callback.setHeight("auto"))
                  : (e.autoHeightOff(),
                    e.callback.setHeight(
                      e.box().find(".image-height").val() + "px"
                    ));
              }),
            e
              .box()
              .find(".image-height")
              .on("input", function () {
                var t = $(this).val();
                e.box()
                  .find(".image-height-text")
                  .html(Math.round(t) + "px");
              }),
            e
              .box()
              .find(".image-height")
              .on("change", function () {
                var t = $(this).val();
                e.callback.setHeight(t + "px");
              }),
            e
              .box()
              .find(".icon-align")
              .on("click", function () {
                var t = $(this).attr("align");
                $(".icon-align").removeClass("active"),
                  $(this).addClass("active"),
                  e.callback.setAlign(t);
              }),
            e
              .box()
              .find("#" + i)
              .on("click", function () {
                return l("upload"), !1;
              }),
            e
              .box()
              .find("#" + r)
              .on("click", function () {
                return l("upload"), !1;
              }),
            e
              .box()
              .find('input[name="file_upload_image"]')
              .on("change", function (e) {
                var t = e.target.files[0].name;
                $("p.file-upload-input-title span.des-upload").text(t);
              }),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveUpload",
              function (e) {
                e.preventDefault(),
                  (function () {
                    var e = $('input[name="file_upload_image"]')[0].files[0],
                      t = new FormData();
                    if (
                      (t.append("file", e),
                      t.append("_token", CSRF_TOKEN),
                      t.append("assetType", "upload"),
                      null !== currentEditor.data)
                    )
                      for (var n in currentEditor.data)
                        t.append(n, currentEditor.data[n]);
                    if ($('input[name="file_upload_image"]').val()) {
                      var i = currentEditor.uploadAssetMethod;
                      [
                        "PUT",
                        "PATCH",
                        "TRACE",
                        "OPTIONS",
                        "DELETE",
                        "HEAD",
                        "CONNECT",
                      ].includes(i.toUpperCase()) && (i = "POST"),
                        t.append("_method", i);
                      var a = $("#builder_iframe")[0].contentWindow.$(
                        "img.element-selected"
                      );
                      $(a).html('<div class="loader"></div>'),
                        $.ajax({
                          url: currentEditor.uploadAssetUrl,
                          type: currentEditor.uploadAssetMethod,
                          data: t,
                          dataType: "json",
                          contentType: !1,
                          processData: !1,
                        })
                          .done(function (e, t, n) {
                            if (200 == n.status) {
                              var i = e.url,
                                a = i.replace(/^.*[\\\/]/, "");
                              $("span#name-image").html(a),
                                s.callback.setUrl(i),
                                new PopUp().hide(),
                                $(
                                  "p.file-upload-input-title span.des-upload"
                                ).text(getI18n("drag_click")),
                                $("#" + r).attr("src", ""),
                                $("#" + r).attr("src", o + i);
                            } else alert(n.responseText);
                          })
                          .fail(function (e, t, n) {
                            var i = $.parseJSON(e.responseText);
                            alert(
                              getI18n("error_upload_file") + i.error.file[0]
                            ),
                              $(a).html(a);
                          });
                    } else
                      Swal.fire({
                        title: getI18n("error_job"),
                        text: getI18n("no_file_selected"),
                        type: "error",
                      }).then((e) => {});
                  })();
              }
            ),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveUrl",
              function (e) {
                e.preventDefault(),
                  (function () {
                    var e = $('input[name="url_image"]').val(),
                      t = new FormData();
                    if (
                      (t.append("url", e),
                      t.append("_token", CSRF_TOKEN),
                      t.append("assetType", "url"),
                      null !== currentEditor.data)
                    )
                      for (var n in currentEditor.data)
                        t.append(n, currentEditor.data[n]);
                    var i = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(i.toUpperCase()) && (i = "POST"),
                      t.append("_method", i);
                    var r = $("#builder_iframe")[0].contentWindow.$(
                      "img.element-selected"
                    );
                    $(r).html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: t,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (e, t, n) {
                          if (200 == n.status) {
                            var i = e.url,
                              r = i.replace(/^.*[\\\/]/, "");
                            $("span#name-image").html(r),
                              s.callback.setUrl(i),
                              new PopUp().hide();
                          } else alert(n.responseText);
                        })
                        .fail(function (e, t, n) {
                          alert(e.responseText);
                        });
                  })();
              }
            ),
            e
              .box()
              .find("#" + n)
              .on("keyup change", function (t) {
                t.preventDefault(), e.callback.setAlt($(this).val());
              }),
            $(document).on(
              "click",
              "#image-popup-" + e.id + " button.buttonSaveBase64",
              function (e) {
                e.preventDefault(),
                  (function () {
                    var e = $('[name="base64_image"]').val(),
                      t = new FormData();
                    if (
                      (t.append("url_base64", e),
                      t.append("_token", CSRF_TOKEN),
                      t.append("assetType", "base64"),
                      null !== currentEditor.data)
                    )
                      for (var n in currentEditor.data)
                        t.append(n, currentEditor.data[n]);
                    var i = currentEditor.uploadAssetMethod;
                    [
                      "PUT",
                      "PATCH",
                      "TRACE",
                      "OPTIONS",
                      "DELETE",
                      "HEAD",
                      "CONNECT",
                    ].includes(i.toUpperCase()) && (i = "POST"),
                      t.append("_method", i);
                    var r = $("#builder_iframe")[0].contentWindow.$(
                      "img.element-selected"
                    );
                    $(r).html('<div class="loader"></div>'),
                      $.ajax({
                        url: currentEditor.uploadAssetUrl,
                        type: currentEditor.uploadAssetMethod,
                        data: t,
                        dataType: "json",
                        contentType: !1,
                        processData: !1,
                      })
                        .done(function (e, t, n) {
                          if (200 == n.status) {
                            var i = e.url,
                              r = i.replace(/^.*[\\\/]/, "");
                            $("span#name-image").html(r),
                              s.callback.setUrl(i),
                              new PopUp().hide();
                          } else alert(n.responseText);
                        })
                        .fail(function (e, t, n) {
                          var i = $.parseJSON(e.responseText);
                          alert(
                            getI18n("error_upload_base64") +
                              i.error.url_base64[0]
                          ),
                            $(r).html(r);
                        });
                  })();
              }
            );
        }
        renderHtml() {
          var e = $("#imageControl").html(),
            t = this.value.src,
            n = $("#builder_iframe").get(0).contentWindow.location.origin,
            i = $("#builder_iframe").get(0).contentWindow.location.pathname,
            r = this.value.alt,
            o = t.replace(/^.*[\\\/]/, ""),
            s = "img_url_" + this.id,
            a = "img_alt_" + this.id,
            l = "myRanges_" + this.id,
            c = "thongsos_" + this.id,
            d = "changeImg-" + this.id,
            u = "uploadImage-" + this.id,
            h = "change-img-" + this.id,
            g = "image_selected_" + this.id;
          e = (e = (e = (e = (e = (e = (e = (e = (e = (e = e.replace(
            "[TITLE]",
            this.title
          )).replace(/\[ID]/g, this.id)).replace(/\[img_url_ID]/g, s)).replace(
            /\[img_alt_ID]/g,
            a
          )).replace(/\[myRanges_ID]/g, l)).replace(
            /\[thongsos_ID]/g,
            c
          )).replace(/\[changeImg-ID]/g, d)).replace(
            /\[uploadImage-ID]/g,
            u
          )).replace(/\[change-img-ID]/g, h)).replace(
            /\[image_selected_ID]/g,
            g
          );
          var p = $("<DIV>").html(e);
          p.find(".image-name .src").attr("value", t),
            p.find("#" + s).attr("value", t),
            p.find(".image-name span#name-image").html(o),
            p.find(".alternate-text .name-img").attr("value", r),
            -1 !== t.indexOf("/tmp")
              ? p.find("#" + g).attr("src", n + t)
              : "/" == t[0] || /^((http|https|ftp):\/\/)/.test(t)
              ? p.find("#" + g).attr("src", t)
              : p.find("#" + g).attr("src", i + t),
            -1 !== t.indexOf("data:") && p.find("#" + g).attr("src", t),
            void 0 !== this.value.widthRange &&
              (p.find(".image-width").attr("max", this.value.widthRange),
              p.find(".label-end").html(this.value.widthRange + "%"));
          makeid();
          return p.html();
        }
      }),
      (window.ImageLinkControl = class extends u {
        renderHtml() {
          var e = $("#ImageLinkControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )),
            $("<DIV>").html(e).html()
          );
        }
        getValues() {
          var e = this.value.url;
          $(this.selector).find(".image-link").val(e);
        }
        update() {
          this.callback({
            url: $(this.selector).find(".image-link").val(),
          });
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find(".copy-url")
            .on("click", function (t) {
              t.preventDefault(),
                $(e.selector).find(".image-link")[0].select(),
                document.execCommand("copy");
              var n = getI18n("copy_url_success");
              currentEditor.notificationArea(n);
            }),
            $(e.selector)
              .find(".image-link")
              .on("change", function (t) {
                e.update();
              }),
            e.getValues(),
            null != e.value.readonly &&
              !0 === e.value.readonly &&
              $(".control-" + e.id + " input").prop("readonly", !0);
        }
      }),
      (window.ImageSizeControl = class extends u {
        renderHtml() {
          var e = $("#ImageSizeControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )),
            $("<DIV>").html(e).html()
          );
        }
        getValues() {
          var e = this.value.width,
            t = this.value.height,
            n = $(this.selector).find('[value="' + e + "x" + t + '"]');
          $(this.selector).find(".custom-width").val(e),
            $(this.selector).find(".custom-height").val(t),
            n.length
              ? $(this.selector).find("select.image-sizes").val(n.attr("value"))
              : $(this.selector)
                  .find("select.image-sizes")
                  .val("custom")
                  .change();
        }
        update() {
          var e, t;
          "custom" != $(this.selector).find("select.image-sizes").val() &&
            ($(this.selector)
              .find(".custom-width")
              .val(
                $(this.selector).find("select.image-sizes").val().split("x")[0]
              ),
            $(this.selector)
              .find(".custom-height")
              .val(
                $(this.selector).find("select.image-sizes").val().split("x")[1]
              )),
            (e = $(this.selector).find(".custom-width").val()),
            (t = $(this.selector).find(".custom-height").val()),
            this.callback({
              width: e,
              height: t,
            });
        }
        afterRender() {
          var e = this;
          $(e.selector)
            .find("select.image-sizes")
            .on("change", function () {
              "custom" == $(this).val()
                ? $(e.selector).find(".custom-size").show()
                : $(e.selector).find(".custom-size").hide(),
                e.update();
            }),
            $(e.selector)
              .find(".custom-size input")
              .on("change", function () {
                e.update();
              }),
            e.getValues();
        }
      }),
      (window.LineHeightControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = $("#LineHeightControl").html();
          return (e = (e = e.replace("[ID]", this.id)).replace(
            "[TITLE]",
            this.title
          ));
        }
        afterRender() {
          var e = this;
          (e.selector = function () {
            return $(".control-" + e.id);
          }),
            e
              .selector()
              .find(".icon-line-height")
              .on("click", function (t) {
                var n = $(this).attr("line-height");
                $(".icon-line-height").removeClass("active"),
                  $(this).addClass("active"),
                  e.callback(n);
              });
        }
      }),
      (window.LinkColorControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = $("#LinkColorControl").html(),
            n = "A_color_input_" + this.id;
          t = (t = (t = t.replace("[TITLE]", this.title)).replace(
            /\[AVALUE\]/g,
            "#0056b3"
          )).replace(/\[AINPUT_ID\]/g, n);
          var i = $("<DIV>").html(t);
          return (
            i.find(".link-color-element .link-color").attr("value", "#0056b3"),
            i
              .find(".link-color-element .link-color-input")
              .attr("value", "#0056b3"),
            $(document).on("change", "#" + n, function () {
              var t = $(this).val();
              $("#A-link-color-" + this.id).val(t), e.callback(t);
            }),
            i.html()
          );
        }
      }),
      (window.MobileDesktopToggleControl = class extends u {
        groupId() {
          return "block_options";
        }
        getControl() {
          return $(this.selector);
        }
        renderHtml() {
          var e =
            '\n            <div id="ProductListControl">\n                <div class="control-[ID]">\n                    <div class="widget-section hide-mobile toggle-desktop-mobile">\n                        <div class="des-hide-on"><p>{language.wpanel.controls.description.title}</p></div>\n                        <div class="row group-button">\n                            <div class="col-sm-4 hide-on">\n                                <div class="widget-lable">{language.wpanel.controls.hide_on.title}</div>\n                            </div>\n                            <div class="col-sm-8 desk-mobi">\n                                <i class="{builder-icon-times-circle} clear-icon" style="display:none"></i>\n                                <div class="btn-group">\n                                    <button class="btn btn-select-type" data-type="desktop">{language.wpanel.controls.hide_on.desktop}</button>\n                                    <button class="btn btn-select-type" data-type="mobile">{language.wpanel.controls.hide_on.mobile}</button>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        ';
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )),
            $("<DIV>").html(e).html()
          );
        }
        selectType(e) {
          this.getControl().find(".btn-select-type").removeClass("active"),
            this.getControl()
              .find('.btn-select-type[data-type="' + e + '"]')
              .addClass("active"),
            this.getControl().find(".clear-icon").show(),
            this.callback(e);
        }
        clearAll() {
          this.getControl().find(".btn-select-type").removeClass("active"),
            this.getControl().find(".clear-icon").hide(),
            this.callback("");
        }
        afterRender() {
          var e = this;
          ("desktop" != e.value.type && "mobile" != e.value.type) ||
            e.selectType(e.value.type),
            this.getControl()
              .find(".btn-select-type")
              .on("click", function () {
                var t = $(this).attr("data-type");
                e.selectType(t);
              }),
            this.getControl()
              .find(".clear-icon")
              .on("click", function () {
                $(this).attr("data-type");
                e.clearAll();
              });
        }
      }),
      (window.PlaceholderControl = class extends u {
        renderHtml() {
          var e = this,
            t = this.value.placeholder,
            n = $("#PlaceholderControl").html();
          n = n.replace("[TITLE]", this.title);
          var i = $("<div>").html(n),
            r = "placeholder_" + this.id;
          return (
            i
              .find(".placeholder-input-control .placeholder-input")
              .attr("id", r),
            i
              .find(".placeholder-input-control .placeholder-input")
              .attr("value", t),
            $(document).on("keyup change", "#" + r, function () {
              var t = $(this).val();
              e.callback({
                placeholder: t,
              });
            }),
            i.html()
          );
        }
      }),
      (window.PricingTableControl = class extends u {
        renderHtml() {
          var e = this,
            t = $("#PricingTableControl").html();
          return (
            (e.selector = function () {
              return $(".control-" + e.id);
            }),
            (t = (t = t.replace("[ID]", e.id)).replace("[TITLE]", e.title)),
            $("<DIV>").html(t).html()
          );
        }
        afterRender() {
          var e = this;
          e.selector().find(".pricing-preview").attr("data-style", e.value),
            e
              .selector()
              .find(".pricing-preview")
              .on("click", function (t) {
                t.preventDefault(),
                  e.selector().find(".pricing_styles").toggle();
              }),
            e
              .selector()
              .find(".pricing_styles button")
              .on("click", function (t) {
                t.preventDefault();
                var n = $(this).attr("data-style");
                e.selector().find(".pricing-preview").attr("data-style", n),
                  e.callback(n);
              }),
            $(document).on("click", function (t) {
              !$(t.target).closest(".pricing-styles-select").length &&
                e.selector().find(".pricing_styles").is(":visible") &&
                e.selector().find(".pricing_styles").hide();
            });
        }
      }),
      (window.SectionTitleControl = class extends u {
        renderHtml() {
          var e = $("#SectionTitleControl").html();
          return (
            (e = e.replace("[TITLE]", this.title)), $("<DIV>").html(e).html()
          );
        }
      }),
      (window.TableBlockControl = class extends u {
        renderHtml() {
          var e = $("#TableBlockControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )),
            $("<DIV>").html(e).html()
          );
        }
        getValues() {
          $(this.selector).find(".theme").val(this.value);
        }
        update() {
          this.callback($(this.selector).find(".theme").val());
        }
        afterRender() {
          var e = this;
          e.getValues(),
            $(e.selector)
              .find(".theme")
              .on("change", function (t) {
                t.preventDefault(), e.update();
              });
        }
      }),
      (window.TextAssociateControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = $("#TextAssociateControl").html();
          t = t.replace("[TITLE]", this.title);
          var n = $("<div>").html(t);
          n.find(".associate-text").append(
            '<option class="tag-first" value="" style="display:none;">' +
              getI18n("select_option") +
              "</option>"
          );
          var i = "associate-text_" + this.id;
          n.find(".widget-associate .associate-text").attr("id", i),
            editor.tags.forEach(function (e) {
              ("text" != e.type && "email" != e.type) ||
                n
                  .find(".associate-text")
                  .append(
                    '<option class="" value="' +
                      e.tag +
                      '">' +
                      e.text +
                      "</option>"
                  );
            });
          var r = this.value.name;
          return (
            "{CONTACT[EMAIL]}" == r &&
              (n
                .find(".associate-text")
                .html('<option class="" value="' + r + '">Email</option>'),
              editor.tags.forEach(function (e) {
                "text" == e.type &&
                  n
                    .find(".associate-text")
                    .append(
                      '<option class="" value="' +
                        e.tag +
                        '">' +
                        e.text +
                        "</option>"
                    );
              })),
            "{CONTACT[FIRST_NAME]}" == r &&
              (n
                .find(".associate-text")
                .html(
                  '<option class="" value="' +
                    r +
                    '">' +
                    getI18n("first_name") +
                    "</option>"
                ),
              n
                .find(".associate-text")
                .append(
                  '<option class="" value="{CONTACT[EMAIL]}">' +
                    getI18n("email") +
                    "</option>"
                ),
              n
                .find(".associate-text")
                .append(
                  '<option class="" value="{CONTACT[LAST_NAME]}">' +
                    getI18n("last_name") +
                    "</option>"
                )),
            "{CONTACT[LAST_NAME]}" == r &&
              (n
                .find(".associate-text")
                .html(
                  '<option class="" value="' +
                    r +
                    '">' +
                    getI18n("last_name") +
                    "</option>"
                ),
              n
                .find(".associate-text")
                .append(
                  '<option class="" value="{CONTACT[EMAIL]}">' +
                    getI18n("email") +
                    "</option>"
                ),
              n
                .find(".associate-text")
                .append(
                  '<option class="" value="{CONTACT[FIRST_NAME]}">' +
                    getI18n("first_name") +
                    "</option>"
                )),
            $(document).on("change", "#" + i, function () {
              var t = $(this).val();
              e.callback({
                name: t,
              });
            }),
            n.html()
          );
        }
      }),
      (window.TextControl = class extends u {
        renderHtml() {
          var e = this.value,
            t = $("#TextControl").html();
          return (t = (t = (t = t.replace("[ID]", this.id)).replace(
            "[ID]",
            this.id
          )).replace("[TEXT]", e));
        }
        afterRender() {
          var e = this,
            t = 180;
          this.value.length > 100 && (t = 220),
            this.value.length > 400 && (t = 300);
          var n = {
            selector: ".text-editor-" + this.id,
            valid_elements: "*[*]",
            valid_children:
              "+p[ol],+p[ul],+h1[div],+h2[div],+h3[div],+h4[div],+h5[div],+h6[div],+a[div],*[*]",
            branding: !1,
            menubar: !1,
            skin: "oxide",
            height: t,
            elementpath: !1,
            force_br_newlines: !1,
            relative_urls: !1,
            convert_urls: !1,
            remove_script_host: !1,
            force_p_newlines: !1,
            forced_root_block: "",
            inline_boundaries: !1,
            allow_html_in_named_anchor: !0,
            plugins: "link lists autolink",
            font_formats:
              "Andale Mono=andale mono,times; Arial=arial,helvetica,sans-serif; Arial Black=arial black,avant garde; Book Antiqua=book antiqua,palatino; Comic Sans MS=comic sans ms,sans-serif; Courier New=courier new,courier; Georgia=georgia,palatino; Helvetica=helvetica; Impact=impact,chicago; Oswald=oswald; Symbol=symbol; Tahoma=tahoma,arial,helvetica,sans-serif; Terminal=terminal,monaco; Times New Roman=times new roman,times; Trebuchet MS=trebuchet ms,geneva; Verdana=verdana,geneva; Webdings=webdings; Wingdings=wingdings,zapf dingbats",
            menubar: "custom",
            toolbar:
              "undo redo bold italic underline strikethrough alignleft aligncenter alignright alignjustify outdent indent  numlist bullist checklist fontselect fontsizeselect forecolor backcolor casechange permanentpen formatpainter removeformat pagebreak charmap emoticons fullscreen  preview save print insertfile image media pageembed template link anchor codesample a11ycheck ltr rtl showcomments addcomment customTag custom1 custom2",
            menu: {
              custom: {
                title: "Dynamic Contents",
                items:
                  "basicitem contactlist_cf toggleitem nesteditemsurvey customfields dct",
              },
            },
            setup: function (t) {
              var toggleState = false;

              /* t.ui.registry.addMenuButton("customTag", {
                text: getI18n("editor.insert_tag"),
                fetch: function (e) {
                  var n = [];
                  currentEditor.tags.forEach(function (e) {
                    "label" == e.type &&
                      n.push({
                        type: "menuitem",
                        text: e.tag.replace("{", "").replace("}", ""),
                        onAction: function (n) {
                          e.text
                            ? t.insertContent(e.text)
                            : t.insertContent(e.tag);
                        },
                      });
                  }),
                    e(n);
                },
              }),   */
              t.ui.registry.addMenuItem("basicitem", {
                text: "Insert Unsubscribe Link",
                onAction: function () {
                  t.insertContent(
                    " <a href='http://%%unsubscribelink%%/'>Unsubscribe me from this list</a> "
                  );
                },
              });

              t.ui.registry.addNestedMenuItem("customfields", {
                text: "Insert Custom Field",
                icon: "plus",
                getSubmenuItems: function () {
                  return currentEditor.cf_tags;
                },
              });

              t.ui.registry.addNestedMenuItem("contactlist_cf", {
                text: "Contact List [Custom Fields]",
                icon: "plus",
                getSubmenuItems: function () {
                  return currentEditor.clcf_tags;
                },
              });

              t.ui.registry.addNestedMenuItem("nesteditemsurvey", {
                text: "Insert a Survey Link",
                icon: "plus",
                getSubmenuItems: function () {
                  return currentEditor.survey_tags;
                },
              });

              t.ui.registry.addNestedMenuItem("dct", {
                text: "Insert a Dynamic Content Tag",
                icon: "plus",
                getSubmenuItems: function () {
                  return currentEditor.dct_tags;
                },
              });
              t.on("change keyup", function (n) {
                t.save(),
                  $(t.getElement()).trigger("change"),
                  e.callback(t.getContent()),
                  currentEditor.selected.select();
              }),
                (currentEditor.inlineEditCallback = function (e) {
                  t.setContent(e);
                }),
                null != currentEditor.customTinymceSetup &&
                  currentEditor.customTinymceSetup(t);
            },
            formats: {
              alignleft: {
                selector: "span,em,i,b,strong",
                inline: "span",
                block: "span",
                styles: {
                  display: "block",
                  "text-align": "left",
                },
              },
              aligncenter: {
                selector: "span,em,i,b,strong",
                inline: "span",
                block: "span",
                styles: {
                  display: "block",
                  "text-align": "center",
                },
              },
              alignright: {
                selector: "span,em,i,b,strong",
                inline: "span",
                block: "span",
                styles: {
                  display: "block",
                  "text-align": "right",
                },
              },
              alignfull: {
                selector: "span,em,i,b,strong",
                inline: "span",
                block: "span",
                styles: {
                  display: "block",
                  "text-align": "full",
                },
              },
              alignjustify: {
                selector: "span,em,i,b,strong",
                inline: "span",
                block: "span",
                styles: {
                  display: "block",
                  "text-align": "justify",
                },
              },
            },
          };
          tinymce.init(n);
        }
      }),
      (window.TextSizeControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value,
            n = $("#TextSizeControl").html();
          n = (n = n.replace("[TITLE]", this.title)).replace("[ID]", this.id);
          var i = $("<DIV>").html(n);
          this.value &&
            (0 !=
            i.find(
              ".control-" +
                this.id +
                '.text-size select option[value="' +
                t +
                '"]'
            ).length
              ? (i
                  .find(".control-" + this.id + ".text-size select option")
                  .attr("selected", !1),
                i
                  .find(
                    ".control-" +
                      this.id +
                      '.text-size select option[value="' +
                      t +
                      '"]'
                  )
                  .attr("selected", !0))
              : (i
                  .find(".control-" + this.id + ".text-size select option")
                  .attr("selected", !1),
                i
                  .find(".control-" + this.id + ".text-size select")
                  .prepend(
                    '<option selected value="' + t + '">' + t + "</option>"
                  )));
          return (
            $(document).on(
              "change",
              ".control-" + this.id + " select",
              function () {
                e.callback($(this).val());
              }
            ),
            i.html()
          );
        }
      }),
      (window.TextStyleControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value,
            n = $("#TextStyleControl").html();
          n = (n = n.replace("[TITLE]", this.title)).replace("[ID]", this.id);
          var i = $("<DIV>").html(n);
          return (
            t.font_weight < 800 || "bold" != t.font_weight
              ? $(this).removeClass("active")
              : $(this).addClass("active"),
            $(document).on(
              "click",
              ".control-" + this.id + " .text-style-bold",
              function () {
                t.font_weight < 800 || "bold" != t.font_weight
                  ? ((t.font_weight = "bold"), $(this).addClass("active"))
                  : ((t.font_weight = 400), $(this).removeClass("active")),
                  e.callback(t);
              }
            ),
            t.font_style < 800 || "bold" != t.font_style
              ? $(this).removeClass("active")
              : $(this).addClass("active"),
            $(document).on(
              "click",
              ".control-" + this.id + " .text-style-italic",
              function () {
                "italic" != t.font_style
                  ? ((t.font_style = "italic"), $(this).addClass("active"))
                  : ((t.font_style = "normal"), $(this).removeClass("active")),
                  e.callback(t);
              }
            ),
            "underline" != t.text_decoration.split(" ")[0]
              ? $(this).removeClass("active")
              : $(this).addClass("active"),
            $(document).on(
              "click",
              ".control-" + this.id + " .text-style-underline",
              function () {
                $(
                  ".control-" + e.id + " .text-style-strikethrough"
                ).removeClass("active"),
                  "underline" != t.text_decoration.split(" ")[0]
                    ? ((t.text_decoration = "underline"),
                      $(this).addClass("active"))
                    : ((t.text_decoration = "none"),
                      $(this).removeClass("active")),
                  e.callback(t);
              }
            ),
            "line-through" != t.text_decoration.split(" ")[0]
              ? $(this).removeClass("active")
              : $(this).addClass("active"),
            $(document).on(
              "click",
              ".control-" + this.id + " .text-style-strikethrough",
              function () {
                $(".control-" + e.id + " .text-style-underline").removeClass(
                  "active"
                ),
                  "line-through" != t.text_decoration.split(" ")[0]
                    ? ((t.text_decoration = "line-through"),
                      $(this).addClass("active"))
                    : ((t.text_decoration = "none"),
                      $(this).removeClass("active")),
                  e.callback(t);
              }
            ),
            i.html()
          );
        }
      }),
      (window.ValidationControl = class extends u {
        groupId() {
          return "validation";
        }
        renderHtml() {
          var e = $("#ValidationControl").html();
          return (
            (this.selector = ".control-" + this.id),
            (e = (e = (e = (e = (e = e.replace("[ID]", this.id)).replace(
              "[TITLE]",
              this.title
            )).replace("[MIN_LENGTH]", this.value.minLength)).replace(
              "[MAX_LENGTH]",
              this.value.maxLength
            )).replace("[REGEXP]", this.value.regexp)),
            $("<DIV>").html(e).html()
          );
        }
        getRequiredSwitch() {
          return $(this.selector).find(".required-switch");
        }
        requiredChecked() {
          return "true" == this.getRequiredSwitch().attr("data-checked");
        }
        requiredOff() {
          this.getRequiredSwitch().attr("data-checked", "false"),
            this.getRequiredSwitch().find(".material-icons").html("toggle_off"),
            this.getRequiredSwitch()
              .find(".material-icons")
              .addClass("text-secondary"),
            this.getRequiredSwitch()
              .find(".material-icons")
              .removeClass("text-primary"),
            $(this.selector).find(".validation-rules").hide(),
            this.update();
        }
        requiredOn() {
          this.getRequiredSwitch().attr("data-checked", "true"),
            this.getRequiredSwitch().find(".material-icons").html("toggle_on"),
            this.getRequiredSwitch()
              .find(".material-icons")
              .removeClass("text-secondary"),
            this.getRequiredSwitch()
              .find(".material-icons")
              .addClass("text-primary"),
            $(this.selector).find(".validation-rules").show(),
            this.update();
        }
        requiredToogle() {
          this.requiredChecked() ? this.requiredOff() : this.requiredOn();
        }
        update() {
          this.callback({
            required: this.requiredChecked(),
            minLength: $(this.selector).find(".min-length").val(),
            maxLength: $(this.selector).find(".max-length").val(),
            regexp: $(this.selector).find(".regexp").val(),
          });
        }
        import() {
          this.value.required || this.requiredOff();
        }
        afterRender() {
          var e = this;
          e.import(),
            e.getRequiredSwitch().click(function () {
              e.requiredToogle();
            }),
            $(e.selector)
              .find(".min-length, .max-length, .regexp")
              .on("change keyup", function () {
                e.update();
              });
        }
      }),
      (window.VideoOptionControl = class extends u {
        groupId() {
          return "general";
        }
        renderHtml() {
          var e = this,
            t = this.value.src,
            n = $("#VideoOptionControl").html();
          n = n.replace("[TITLE]", this.title);
          var i = $("<div>").html(n),
            r = "input-url-link-video" + this.id;
          return (
            i.find(".action-video .input-url-link-video").attr("id", r),
            i.find(".action-video .input-url-link-video").val(t),
            $(document).on("change", "#" + r, function () {
              var t = $(this).val();
              e.callback({
                src: t,
              });
            }),
            i.html()
          );
        }
      }),
      (window.YoutubeControl = class extends u {
        renderHtml() {
          var e = this,
            t = $("#YoutubeControl").html();
          return (
            (e.selector = function () {
              return $(".control-" + e.id);
            }),
            (t = (t = (t = (t = t.replace("[ID]", e.id)).replace(
              "[CODE]",
              "https://youtu.be/" + e.value.code
            )).replace("[WIDTH]", e.value.width)).replace(
              "[HEIGHT]",
              e.value.height
            )),
            $("<DIV>").html(t).html()
          );
        }
        afterRender() {
          var e = this;
          e.selector().find(".alignment").val(e.value.alignment),
            e
              .selector()
              .find(".youtube_url")
              .on("change", function (t) {
                var n = $(this).val();
                if ("" != n) {
                  var i =
                    /^(?:https?:\/\/)?(?:m\.|www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
                  if (n.match(i)) {
                    var r = n.match(i)[1];
                    e.callback.setCode(r);
                  } else alert(getI18n("youtube.entered_url_not_valid"));
                } else alert(getI18n("youtube.please_enter_url"));
              }),
            e
              .selector()
              .find(".youtube_width")
              .on("change", function (t) {
                var n = $(this).val();
                e.callback.setWidth(n);
              }),
            e
              .selector()
              .find(".youtube_height")
              .on("change", function (t) {
                var n = $(this).val();
                e.callback.setHeight(n);
              }),
            e
              .selector()
              .find(".alignment")
              .on("change", function (t) {
                var n = $(this).val();
                e.callback.setAlignment(n);
              });
        }
      }),
      (window.AudioControl = class extends u {
        renderHtml() {
          var e = this,
            t =
              '\n            <div class="control-[ID]">\n                <div class="widget-row px-3 py-2">\n                    <h4>{language.widget.audio}</h4>\n                    <p class="mb-2">{language.audio.upload_audio_file}</p>\n                    <form action="upload_audio.php" method="post" enctype="multipart/form-data">\n                        <div class="d-flex algin-items-center">\n                            <div class="place-value me-3 mr-3">\n                                <span class="">\n                                    <input type="hidden" name="assetType" value="audio" />\n                                    <input style="\n                                        width: 100%;\n                                        height: 35px;\n                                        display: flex;\n                                        align-items: center;\n                                        line-height: 25px;\n                                    " type="file" name="file" class="" value="" style="width:100%"  accept=".mp3,audio/*" required />\n                                </span>\n                            </div>\n                            <div>\n                                <button type="submit" class="btn btn-primary">{language.upload}</button>\n                            </div>\n                        </div>\n                    </form>\n                </div>\n            </div>\n        ';
          return (
            (e.selector = function () {
              return $(".control-" + e.id);
            }),
            (t = t.replace("[ID]", e.id)),
            $("<DIV>").html(t).html()
          );
        }
        getForm() {
          return this.selector().find("form");
        }
        getFileInput() {
          return this.selector().find('inpyt[type="file"]');
        }
        upload() {}
        getSubmitButton() {
          return this.selector().find('[type="submit"]');
        }
        afterRender() {
          var e = this;
          this.getForm().on("submit", function (t) {
            t.preventDefault();
            var n = new FormData(this);
            n.append("_token", CSRF_TOKEN),
              $.ajax({
                type: "POST",
                url: currentEditor.uploadAssetUrl,
                method: currentEditor.uploadAssetMethod,
                data: n,
                processData: !1,
                contentType: !1,
                success: function (t) {
                  e.callback.setUrl(t.url), e.getFileInput().val("");
                },
                error: function (e) {
                  console.log(e);
                },
              });
          });
        }
      }),
      (window.rgb2hex = function (e) {
        return (e = e.match(
          /^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i
        )) && 4 === e.length
          ? "#" +
              ("0" + parseInt(e[1], 10).toString(16)).slice(-2) +
              ("0" + parseInt(e[2], 10).toString(16)).slice(-2) +
              ("0" + parseInt(e[3], 10).toString(16)).slice(-2)
          : "";
      }),
      (window.rgba2hex = function (e) {
        var t = e
            .replace(/\s/g, "")
            .match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i),
          n = ((t && t[4]) || "").trim(),
          i = t
            ? (256 | t[1]).toString(16).slice(1) +
              (256 | t[2]).toString(16).slice(1) +
              (256 | t[3]).toString(16).slice(1)
            : e;
        return (
          "#" + (i += ((255 * ("" !== n ? n : 1)) | 256).toString(16).slice(1))
        );
      }),
      (window.removeModalGetLinkVideo = function () {
        $(".container-content").remove();
      }),
      (window.modal_display = function () {
        $(".dijitDialogShow.dijitDialog").remove(),
          $(".dijitDialogUnderlayWrapper").remove();
      }),
      (window.htmlLoader = function () {
        return '<div class="sk-fading-circle"><div class="sk-circle1 sk-circle"></div><div class="sk-circle2 sk-circle"></div><div class="sk-circle3 sk-circle"></div><div class="sk-circle4 sk-circle"></div><div class="sk-circle5 sk-circle"></div><div class="sk-circle6 sk-circle"></div><div class="sk-circle7 sk-circle"></div><div class="sk-circle8 sk-circle"></div><div class="sk-circle9 sk-circle"></div><div class="sk-circle10 sk-circle"></div><div class="sk-circle11 sk-circle"></div><div class="sk-circle12 sk-circle"></div></div>';
      }),
      (window.createElementFromHTML = h.b),
      (window.makeid = h.c),
      (window.Editor = h.a),
      (window.simulateClick = h.d),
      (window.ClipboardJS = p.a),
      (window.ace = A),
      (window.BuilderIcons = I),
      (h.a.prototype.setIcons = function (e) {
        var t = I.default;
        for (var n in t) {
          var i = t[n],
            r = "{" + n + "}",
            o = new RegExp(r, "g"),
            s = new RegExp("=" + r, "g");
          e = (e = e.replace(s, '="' + i + '"')).replace(o, i);
        }
        return e;
      }),
      (h.a.prototype.updateLanguage = function (e) {
        for (var t in this.I18n) {
          var n = this.I18n[t],
            i = new RegExp("{language." + t + "}", "g");
          e = e.replace(i, n);
        }
        return e;
      }),
      (h.a.prototype.prepairUrls = function (e) {
        return (e = e.replace(/{{root}}/g, this.root));
      }),
      (h.a.prototype.prepairHtml = function (e) {
        if (void 0 !== this.canvas && void 0 !== this.sidePanel) {
          var t = $(m.a);
          return (
            $("html").html().includes("family=Open+Sans") ||
              $("head").append(
                '<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i&amp;subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese" rel="stylesheet">'
              ),
            $("html").html().includes("family=Material+Icons") ||
              ($("head").append(
                '<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">'
              ),
              $("head").append(
                '<link href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined" rel="stylesheet">'
              )),
            $(this.canvas).html(
              this.transformHtml(t.find(".content-left")[0].outerHTML)
            ),
            $(this.canvas).append(
              this.transformHtml(t.find(".undo-redo")[0].outerHTML)
            ),
            $(this.sidePanel).html(
              this.transformHtml(t.find("#builder_sidebar")[0].outerHTML)
            ),
            $("body").append(this.transformHtml(C.a)),
            $("body").append(this.transformHtml(_.a)),
            void $("body").append(this.transformHtml(y.a))
          );
        }
        if ("themewp" == e) var n = b.a + C.a + _.a + y.a;
        else n = m.a + C.a + _.a + y.a;
        (n = (n = this.transformHtml(n)).replace(/{{root}}/g, this.root)),
          $("body").html(n);
      }),
      (h.a.prototype.build = function () {
        (this.inlineEditor = "tinymce"), (this.iconStyle = "default");
      }),
      n(52),
      (window.PopUp = E),
      (window.helpPopUp = T),
      n(53),
      (window.Swal = L.a),
      (window.acpAutocomplete = function (e, t) {
        var n,
          i = /\{[a-zA-Z0-9\_]*(?=\s|$)/g;

        function r(e) {
          if (!e) return !1;
          !(function (e) {
            for (var t = 0; t < e.length; t++)
              e[t].classList.remove("autocomplete-active");
          })(e),
            n >= e.length && (n = 0),
            n < 0 && (n = e.length - 1),
            e[n].classList.add("autocomplete-active");
        }

        function o(e) {
          $("#builder_iframe").contents().find(".autocomplete-items").remove();
        }
        $("#builder_iframe")
          .contents()
          .find("body")
          .on("keyup", function (r) {
            if (40 != r.keyCode && null != e.selected) {
              var s,
                a,
                l,
                c,
                d = e.selected.obj.html().match(i);
              if ((null != d && (c = d[0]), o(), !c)) return !1;
              for (
                n = -1,
                  (s = document.createElement("DIV")).setAttribute(
                    "id",
                    this.id + "autocomplete-list"
                  ),
                  s.setAttribute("class", "autocomplete-items"),
                  e.selected.obj.hasClass("autocomplete") ||
                    e.selected.obj.addClass("autocomplete"),
                  e.selected.obj.after(s),
                  l = 0;
                l < t.length;
                l++
              )
                t[l].substr(0, c.length).toUpperCase() == c.toUpperCase() &&
                  (((a = document.createElement("DIV")).innerHTML =
                    "<strong>" + t[l].substr(0, c.length) + "</strong>"),
                  (a.innerHTML += t[l].substr(c.length)),
                  (a.innerHTML += "<input type='hidden' value='" + t[l] + "'>"),
                  s.appendChild(a),
                  $(a).click(function () {
                    var t = $(this).find("input").val(),
                      n = e.selected.obj.html().replace(i, t);
                    e.selected.obj.html(n), o();
                  }));
            }
          }),
          $("#builder_iframe")
            .contents()
            .find("body")
            .on("keydown", function (e) {
              var t = $("#builder_iframe")
                .contents()
                .find("#autocomplete-list")[0];
              if ((t && (t = t.getElementsByTagName("div")), 40 == e.keyCode))
                n++, r(t);
              else if (38 == e.keyCode) n--, r(t);
              else if (13 == e.keyCode)
                return (
                  e.preventDefault(),
                  n > -1 ? t && t[n].click() : t && t[0].click(),
                  !1
                );
            }),
          document.addEventListener("click", function (e) {
            o(e.target);
          });
      }),
      (window.acpAddCss = function () {
        var e = document.createElement("style");
        (e.innerHTML =
          ".autocomplete{position:relative}.autocomplete-items{position:absolute;border:1px solid #d4d4d4;border-bottom:none;border-top:none;z-index:99;top:100%;left:0;right:0}.autocomplete-items div{padding:10px;cursor:pointer;background-color:#fff;border-bottom:1px solid #d4d4d4}.autocomplete-items div:hover{background-color:#e9e9e9}.autocomplete-active{background-color:#1e90ff!important;color:#fff}"),
          document.head.appendChild(e);
      }),
      (window.acpDictionary = j);
  },
]);
