/*! * froala_editor v4.0.4 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2021 Froala Labs */ ! function (e, t) { "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : e.FroalaEditor = t() }(this, function () { "use strict"; function St(e) { return (St = "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 })(e) } Element.prototype.matches || (Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector), Element.prototype.closest || (Element.prototype.closest = function (e) { var t = this; if (!document.documentElement.contains(t)) return null; do { if (t.matches(e)) return t; t = t.parentElement || t.parentNode } while (null !== t && 1 === t.nodeType); return null }), Element.prototype.matches || (Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (e) { for (var t = (this.document || this.ownerDocument).querySelectorAll(e), n = t.length; 0 <= --n && t.item(n) !== this;); return -1 < n }), Array.isArray || (Array.isArray = function (e) { return "[object Array]" === Object.prototype.toString.call(e) }), "function" != typeof Object.assign && Object.defineProperty(Object, "assign", { value: function (e, t) { if (null == e) throw new TypeError("Cannot convert undefined or null to object"); for (var n = Object(e), r = 1; r < arguments.length; r++) { var a = arguments[r]; if (null != a) for (var o in a) Object.prototype.hasOwnProperty.call(a, o) && (n[o] = a[o]) } return n }, writable: !0, configurable: !0 }), function () { var i = /^\s*:scope/gi, s = /,\s*:scope/gi, l = document.createElement("div"); function e(e, t) { var o = e[t]; e[t] = function (e) { var t, n = !1, r = !1; if (!e || Array.isArray(e) || !e.match(i) && !e.match(s)) return o.call(this, e); this.parentNode || (l.appendChild(this), r = !0); var a = this.parentNode; return this.id || (this.id = "rootedQuerySelector_id_".concat((new Date).getTime()), n = !0), t = o.call(a, e.replace(i, "#".concat(this.id)).replace(s, ",#".concat(this.id))), n && (this.id = ""), r && l.removeChild(this), t } } try { var t = l.querySelectorAll(":scope *"); if (!t || Array.isArray(t)) throw "error" } catch (n) { e(Element.prototype, "querySelector"), e(Element.prototype, "querySelectorAll"), e(HTMLElement.prototype, "querySelector"), e(HTMLElement.prototype, "querySelectorAll") } }(), "document" in self && ("classList" in document.createElement("_") && (!document.createElementNS || "classList" in document.createElementNS("http://www.w3.org/2000/svg", "g")) || function (e) { if ("Element" in e) { var t = "classList", n = "prototype", r = e.Element[n], a = Object, o = String[n].trim || function () { return this.replace(/^\s+|\s+$/g, "") }, i = Array[n].indexOf || function (e) { for (var t = 0, n = this.length; t < n; t++) if (t in this && this[t] === e) return t; return -1 }, s = function s(e, t) { this.name = e, this.code = DOMException[e], this.message = t }, l = function l(e, t) { if ("" === t) throw new s("SYNTAX_ERR", "The token must not be empty."); if (/\s/.test(t)) throw new s("INVALID_CHARACTER_ERR", "The token must not contain space characters."); return i.call(e, t) }, c = function c(e) { for (var t = o.call(e.getAttribute("class") || ""), n = t ? t.split(/\s+/) : [], r = 0, a = n.length; r < a; r++) this.push(n[r]); this._updateClassName = function () { e.setAttribute("class", this.toString()) } }, d = c[n] = [], f = function f() { return new c(this) }; if (s[n] = Error[n], d.item = function (e) { return this[e] || null }, d.contains = function (e) { return ~l(this, e + "") }, d.add = function () { for (var e, t = arguments, n = 0, r = t.length, a = !1; e = t[n] + "", ~l(this, e) || (this.push(e), a = !0), ++n < r;); a && this._updateClassName() }, d.remove = function () { var e, t, n = arguments, r = 0, a = n.length, o = !1; do { for (e = n[r] + "", t = l(this, e); ~t;) this.splice(t, 1), o = !0, t = l(this, e) } while (++r < a); o && this._updateClassName() }, d.toggle = function (e, t) { var n = this.contains(e), r = n ? !0 !== t && "remove" : !1 !== t && "add"; return r && this[r](e), !0 === t || !1 === t ? t : !n }, d.replace = function (e, t) { var n = l(e + ""); ~n && (this.splice(n, 1, t), this._updateClassName()) }, d.toString = function () { return this.join(" ") }, a.defineProperty) { var p = { get: f, enumerable: !0, configurable: !0 }; try { a.defineProperty(r, t, p) } catch (u) { void 0 !== u.number && -2146823252 !== u.number || (p.enumerable = !1, a.defineProperty(r, t, p)) } } else a[n].__defineGetter__ && r.__defineGetter__(t, f) } }(self), function () { var e = document.createElement("_"); if (e.classList.add("c1", "c2"), !e.classList.contains("c2")) { var t = function Yc(e) { var Yc = DOMTokenList.prototype[e]; DOMTokenList.prototype[e] = function (e) { var t, n = arguments.length; for (t = 0; t < n; t++) e = arguments[t], Yc.call(this, e) } }; t("add"), t("remove") } if (e.classList.toggle("c3", !1), e.classList.contains("c3")) { var n = DOMTokenList.prototype.toggle; DOMTokenList.prototype.toggle = function (e, t) { return 1 in arguments && !this.contains(e) == !t ? t : n.call(this, e) } } "replace" in document.createElement("_").classList || (DOMTokenList.prototype.replace = function (e, t) { var n = this.toString().split(" "), r = n.indexOf(e + ""); ~r && (n = n.slice(r), this.remove.apply(this, n), this.add(t), this.add.apply(this, n.slice(1))) }), e = null }()); function kt(e, t, n) { if ("string" != typeof e) return new kt.Bootstrap(e, t, n); var r = document.querySelectorAll(e); t && t.iframe_document && (r = t.iframe_document.querySelectorAll(e)); for (var a = [], o = 0; o < r.length; o++) { var i = r[o]["data-froala.editor"]; i ? a.push(i) : a.push(new kt.Bootstrap(r[o], t, n)) } return 1 == a.length ? a[0] : a } kt.RegisterPlugins = function (e) { for (var t = 0; t < e.length; t++) e[t].call(kt) }, Object.assign(kt, { DEFAULTS: { initOnClick: !1, pluginsEnabled: null }, MODULES: {}, PLUGINS: {}, VERSION: "4.0.4", INSTANCES: [], OPTS_MAPPING: {}, SHARED: {}, ID: 0 }), kt.MODULES.node = function (i) { var n = i.$; function s(e) { return e && "IFRAME" !== e.tagName ? Array.prototype.slice.call(e.childNodes || []) : [] } function l(e) { return !!e && (e.nodeType === Node.ELEMENT_NODE && 0 <= kt.BLOCK_TAGS.indexOf(e.tagName.toLowerCase())) } function c(e) { var t = {}, n = e.attributes; if (n) for (var r = 0; r < n.length; r++) { var a = n[r]; t[a.nodeName] = a.value } return t } function t(e) { for (var t = "", n = c(e), r = Object.keys(n).sort(), a = 0; a < r.length; a++) { var o = r[a], i = n[o]; i.indexOf("'") < 0 && 0 <= i.indexOf('"') ? t += " ".concat(o, "='").concat(i, "'") : (0 <= i.indexOf('"') && 0 <= i.indexOf("'") && (i = i.replace(/"/g, """)), t += " ".concat(o, '="').concat(i, '"')) } return t } function r(e) { return e === i.el } return { isBlock: l, isEmpty: function d(e, t) { if (!e) return !0; if (e.querySelector("table")) return !1; var n = s(e); 1 === n.length && l(n[0]) && (n = s(n[0])); for (var r = !1, a = 0; a < n.length; a++) { var o = n[a]; if (!(t && i.node.hasClass(o, "fr-marker") || o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length)) { if ("BR" !== o.tagName && 0 < (o.textContent || "").replace(/\u200B/gi, "").replace(/\n/g, "").length) return !1; if (r) return !1; "BR" === o.tagName && (r = !0) } } return !(e.querySelectorAll(kt.VOID_ELEMENTS.join(",")).length - e.querySelectorAll("br").length || e.querySelector("".concat(i.opts.htmlAllowedEmptyTags.join(":not(.fr-marker),"), ":not(.fr-marker)")) || 1 < e.querySelectorAll(kt.BLOCK_TAGS.join(",")).length || e.querySelector("".concat(i.opts.htmlDoNotWrapTags.join(":not(.fr-marker),"), ":not(.fr-marker)"))) }, blockParent: function a(e) { for (; e && e.parentNode !== i.el && (!e.parentNode || !i.node.hasClass(e.parentNode, "fr-inner"));) if (l(e = e.parentNode)) return e; return null }, deepestParent: function o(e, t, n) { if (void 0 === t && (t = []), void 0 === n && (n = !0), t.push(i.el), 0 <= t.indexOf(e.parentNode) || e.parentNode && i.node.hasClass(e.parentNode, "fr-inner") || e.parentNode && 0 <= kt.SIMPLE_ENTER_TAGS.indexOf(e.parentNode.tagName) && n) return null; for (; t.indexOf(e.parentNode) < 0 && e.parentNode && !i.node.hasClass(e.parentNode, "fr-inner") && (kt.SIMPLE_ENTER_TAGS.indexOf(e.parentNode.tagName) < 0 || !n) && (!l(e) || l(e.parentNode)) && (!l(e) || !l(e.parentNode) || !n);) e = e.parentNode; return e }, rawAttributes: c, attributes: t, clearAttributes: function f(e) { for (var t = e.attributes, n = t.length - 1; 0 <= n; n--) { var r = t[n]; e.removeAttribute(r.nodeName) } }, openTagString: function p(e) { return "<".concat(e.tagName.toLowerCase()).concat(t(e), ">") }, closeTagString: function u(e) { return "") }, isFirstSibling: function h(e, t) { void 0 === t && (t = !0); for (var n = e.previousSibling; n && t && i.node.hasClass(n, "fr-marker");) n = n.previousSibling; return !n || n.nodeType === Node.TEXT_NODE && "" === n.textContent && h(n) }, isLastSibling: function g(e, t) { void 0 === t && (t = !0); for (var n = e.nextSibling; n && t && i.node.hasClass(n, "fr-marker");) n = n.nextSibling; return !n || n.nodeType === Node.TEXT_NODE && "" === n.textContent && g(n) }, isList: function m(e) { return !!e && 0 <= ["UL", "OL"].indexOf(e.tagName) }, isLink: function v(e) { return !!e && e.nodeType === Node.ELEMENT_NODE && "a" === e.tagName.toLowerCase() }, isElement: r, contents: s, isVoid: function b(e) { return e && e.nodeType === Node.ELEMENT_NODE && 0 <= kt.VOID_ELEMENTS.indexOf((e.tagName || "").toLowerCase()) }, hasFocus: function C(e) { return e === i.doc.activeElement && (!i.doc.hasFocus || i.doc.hasFocus()) && Boolean(r(e) || e.type || e.href || ~e.tabIndex) }, isEditable: function E(e) { return (!e.getAttribute || "false" !== e.getAttribute("contenteditable")) && ["STYLE", "SCRIPT"].indexOf(e.tagName) < 0 }, isDeletable: function y(e) { return e && e.nodeType === Node.ELEMENT_NODE && e.getAttribute("class") && 0 <= (e.getAttribute("class") || "").indexOf("fr-deletable") }, hasClass: function L(e, t) { return e instanceof n && (e = e.get(0)), e && e.classList && e.classList.contains(t) }, filter: function _(e) { return i.browser.msie ? e : { acceptNode: e } } } }, Object.assign(kt.DEFAULTS, { DOMPurify: window.DOMPurify, htmlAllowedTags: ["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "blockquote", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "menu", "menuitem", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "pre", "progress", "queue", "rp", "rt", "ruby", "s", "samp", "script", "style", "section", "select", "small", "source", "span", "strike", "strong", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "u", "ul", "var", "video", "wbr"], htmlRemoveTags: ["script", "style"], htmlAllowedAttrs: ["accept", "accept-charset", "accesskey", "action", "align", "allowfullscreen", "allowtransparency", "alt", "async", "autocomplete", "autofocus", "autoplay", "autosave", "background", "bgcolor", "border", "charset", "cellpadding", "cellspacing", "checked", "cite", "class", "color", "cols", "colspan", "content", "contenteditable", "contextmenu", "controls", "coords", "data", "data-.*", "datetime", "default", "defer", "dir", "dirname", "disabled", "download", "draggable", "dropzone", "enctype", "for", "form", "formaction", "frameborder", "headers", "height", "hidden", "high", "href", "hreflang", "http-equiv", "icon", "id", "ismap", "itemprop", "keytype", "kind", "label", "lang", "language", "list", "loop", "low", "max", "maxlength", "media", "method", "min", "mozallowfullscreen", "multiple", "muted", "name", "novalidate", "open", "optimum", "pattern", "ping", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "reversed", "rows", "rowspan", "sandbox", "scope", "scoped", "scrolling", "seamless", "selected", "shape", "size", "sizes", "span", "src", "srcdoc", "srclang", "srcset", "start", "step", "summary", "spellcheck", "style", "tabindex", "target", "title", "type", "translate", "usemap", "value", "valign", "webkitallowfullscreen", "width", "wrap"], htmlAllowedStyleProps: [".*"], htmlAllowComments: !0, htmlUntouched: !1, fullPage: !1 }), kt.HTML5Map = { B: "STRONG", I: "EM", STRIKE: "S" }, kt.MODULES.clean = function (f) { var d, p, u, h, g = f.$; function a(e) { if (e.nodeType === Node.ELEMENT_NODE && e.getAttribute("class") && 0 <= e.getAttribute("class").indexOf("fr-marker")) return !1; var t, n = f.node.contents(e), r = []; for (t = 0; t < n.length; t++) n[t].nodeType !== Node.ELEMENT_NODE || f.node.isVoid(n[t]) ? n[t].nodeType === Node.TEXT_NODE && (n[t].textContent = n[t].textContent.replace(/\u200b/g, "")) : n[t].textContent.replace(/\u200b/g, "").length !== n[t].textContent.length && a(n[t]); if (e.nodeType === Node.ELEMENT_NODE && !f.node.isVoid(e) && (e.normalize(), n = f.node.contents(e), r = e.querySelectorAll(".fr-marker"), n.length - r.length == 0)) { for (t = 0; t < n.length; t++) if (n[t].nodeType === Node.ELEMENT_NODE && (n[t].getAttribute("class") || "").indexOf("fr-marker") < 0) return !1; for (t = 0; t < r.length; t++) e.parentNode.insertBefore(r[t].cloneNode(!0), e); return e.parentNode.removeChild(e), !1 } } function s(e, t) { if (e.nodeType === Node.COMMENT_NODE) return ""); if (e.nodeType === Node.TEXT_NODE) return t ? e.textContent.replace(/&/g, "&").replace(//g, ">") : e.textContent.replace(/&/g, "&").replace(//g, ">").replace(/\u00A0/g, " ").replace(/\u0009/g, ""); if (e.nodeType !== Node.ELEMENT_NODE) return e.outerHTML; if (e.nodeType === Node.ELEMENT_NODE && 0 <= ["STYLE", "SCRIPT", "NOSCRIPT"].indexOf(e.tagName)) return e.outerHTML; if (e.nodeType === Node.ELEMENT_NODE && "svg" === e.tagName) { var n = document.createElement("div"), r = e.cloneNode(!0); return n.appendChild(r), n.innerHTML } if ("IFRAME" === e.tagName) return e.outerHTML.replace(/</g, "<").replace(/>/g, ">"); var a = e.childNodes; if (0 === a.length) return e.outerHTML; for (var o = "", i = 0; i < a.length; i++) "PRE" === e.tagName && (t = !0), o += s(a[i], t); return f.node.openTagString(e) + o + f.node.closeTagString(e) } var l = []; function m(e) { var t = e.replace(/;;/gi, ";"); return ";" !== (t = t.replace(/^;/gi, "")).charAt(t.length) && (t += ";"), t } function c(e) { var t; for (t in e) if (Object.prototype.hasOwnProperty.call(e, t)) { var n = t.match(u), r = null; "style" === t && f.opts.htmlAllowedStyleProps.length && (r = e[t].match(h)), n && r ? e[t] = m(r.join(";")) : n && ("style" !== t || r) || delete e[t] } for (var a = "", o = Object.keys(e).sort(), i = 0; i < o.length; i++) e[t = o[i]].indexOf('"') < 0 ? a += " ".concat(t, '="').concat(e[t], '"') : a += " ".concat(t, "='").concat(e[t], "'"); return a } function v(e, t) { var n, r = document.implementation.createHTMLDocument("Froala DOC").createElement("DIV"); g(r).append(e); var a = ""; if (r) { var o = f.node.contents(r); for (n = 0; n < o.length; n++) t(o[n]); for (o = f.node.contents(r), n = 0; n < o.length; n++) a += s(o[n]) } return a } function b(e, t, n) { var r = e = function o(e) { return l = [], e = (e = (e = (e = e.replace(/)<[^<]*)*<\/script>/gi, function (e) { return l.push(e), "[FROALA.EDITOR.SCRIPT ".concat(l.length - 1, "]") })).replace(/)<[^<]*)*<\/noscript>/gi, function (e) { return l.push(e), "[FROALA.EDITOR.NOSCRIPT ".concat(l.length - 1, "]") })).replace(/"), r = g(n); if (r && r.length) { var a = v(r.html(), E); r.html(a), n = r.get(0).outerHTML } return n })).replace(/" : t; var o = c(f.html.extractNodeAttrs(n, "head")), i = c(f.html.extractNodeAttrs(n, "body")); return "".concat(r, "").concat(t, "").concat(e, "") } return e }(r, a, e)) } function C(e) { var t = f.doc.createElement("DIV"); return t.innerText = e, t.textContent } function E(e) { for (var t = f.node.contents(e), n = 0; n < t.length; n++) t[n].nodeType !== Node.TEXT_NODE && E(t[n]); ! function c(i) { if ("SPAN" === i.tagName && 0 <= (i.getAttribute("class") || "").indexOf("fr-marker")) return !1; if ("PRE" === i.tagName && function l(e) { var t = e.innerHTML; 0 <= t.indexOf("\n") && (e.innerHTML = t.replace(/\n/g, "
")) }(i), i.nodeType === Node.ELEMENT_NODE && (i.getAttribute("data-fr-src") && 0 !== i.getAttribute("data-fr-src").indexOf("blob:") && i.setAttribute("data-fr-src", f.helpers.sanitizeURL(C(i.getAttribute("data-fr-src")))), i.getAttribute("href") && i.setAttribute("href", f.helpers.sanitizeURL(C(i.getAttribute("href")))), i.getAttribute("src") && i.setAttribute("src", f.helpers.sanitizeURL(C(i.getAttribute("src")))), i.getAttribute("srcdoc") && i.setAttribute("srcdoc", f.clean.html(i.getAttribute("srcdoc"))), 0 <= ["TABLE", "TBODY", "TFOOT", "TR"].indexOf(i.tagName) && (i.innerHTML = i.innerHTML.trim())), !f.opts.pasteAllowLocalImages && i.nodeType === Node.ELEMENT_NODE && "IMG" === i.tagName && i.getAttribute("data-fr-src") && 0 === i.getAttribute("data-fr-src").indexOf("file://")) return i.parentNode.removeChild(i), !1; if (i.nodeType === Node.ELEMENT_NODE && kt.HTML5Map[i.tagName] && "" === f.node.attributes(i)) { var e = kt.HTML5Map[i.tagName], t = "<".concat(e, ">").concat(i.innerHTML, ""); i.insertAdjacentHTML("beforebegin", t), (i = i.previousSibling).parentNode.removeChild(i.nextSibling) } if (f.opts.htmlAllowComments || i.nodeType !== Node.COMMENT_NODE) if (i.tagName && i.tagName.match(p)) "STYLE" == i.tagName && f.helpers.isMac() && function () { var e, n = i.innerHTML.trim(), r = [], t = /{([^}]+)}/g; for (n = n.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*|$/, ""); e = t.exec(n);) r.push(e[1]); for (var a = function a(t) { var e = n.substring(0, n.indexOf("{")).trim(); 0 == !/^[a-z_-][a-z\d_-]*$/i.test(e) && i.parentNode.querySelectorAll(e).forEach(function (e) { e.removeAttribute("class"), e.setAttribute("style", r[t]) }), n = n.substring(n.indexOf("}") + 1) }, o = 0; - 1 != n.indexOf("{"); o++) a(o) }(), i.parentNode.removeChild(i); else if (i.tagName && !i.tagName.match(d)) "svg" === i.tagName ? i.parentNode.removeChild(i) : f.browser.safari && "path" === i.tagName && i.parentNode && "svg" === i.parentNode.tagName || (i.outerHTML = i.innerHTML); else { var n = i.attributes; if (n) for (var r = n.length - 1; 0 <= r; r--) { var a = n[r], o = a.nodeName.match(u), s = null; "style" === a.nodeName && f.opts.htmlAllowedStyleProps.length && (s = a.value.match(h)), o && s ? a.value = m(s.join(";")) : o && ("style" !== a.nodeName || s) || i.removeAttribute(a.nodeName) } } else 0 !== i.data.indexOf("[FROALA.EDITOR") && i.parentNode.removeChild(i) }(e) } return { _init: function e() { f.opts.fullPage && g.merge(f.opts.htmlAllowedTags, ["head", "title", "style", "link", "base", "body", "html", "meta"]) }, html: function y(e, t, n, r) { void 0 === t && (t = []), void 0 === n && (n = []), void 0 === r && (r = !1); var a, o = g.merge([], f.opts.htmlAllowedTags); for (a = 0; a < t.length; a++) 0 <= o.indexOf(t[a]) && o.splice(o.indexOf(t[a]), 1); var i = g.merge([], f.opts.htmlAllowedAttrs); for (a = 0; a < n.length; a++) 0 <= i.indexOf(n[a]) && i.splice(i.indexOf(n[a]), 1); return i.push("data-fr-.*"), i.push("fr-.*"), d = new RegExp("^".concat(o.join("$|^"), "$"), "gi"), u = new RegExp("^".concat(i.join("$|^"), "$"), "gi"), p = new RegExp("^".concat(f.opts.htmlRemoveTags.join("$|^"), "$"), "gi"), h = f.opts.htmlAllowedStyleProps.length ? new RegExp("((^|;|\\s)".concat(f.opts.htmlAllowedStyleProps.join(":.+?(?=;|$))|((^|;|\\s)"), ":.+?(?=(;)|$))"), "gi") : null, e = b(e, E, !0), "undefined" != typeof f.opts.DOMPurify && (e = f.opts.DOMPurify.sanitize(e)), e }, toHTML5: function r() { var e = f.el.querySelectorAll(Object.keys(kt.HTML5Map).join(",")); if (e.length) { var t = !1; f.el.querySelector(".fr-marker") || (f.selection.save(), t = !0); for (var n = 0; n < e.length; n++) "" === f.node.attributes(e[n]) && g(e[n]).replaceWith("<".concat(kt.HTML5Map[e[n].tagName], ">").concat(e[n].innerHTML, "")); t && f.selection.restore() } }, tables: function t() { ! function s() { for (var e = f.el.querySelectorAll("tr"), t = 0; t < e.length; t++) { for (var n = e[t].children, r = !0, a = 0; a < n.length; a++) if ("TH" !== n[a].tagName) { r = !1; break } if (!1 !== r && 0 !== n.length) { for (var o = e[t]; o && "TABLE" !== o.tagName && "THEAD" !== o.tagName;) o = o.parentNode; var i = o; "THEAD" !== i.tagName && (i = f.doc.createElement("THEAD"), o.insertBefore(i, o.firstChild)), i.appendChild(e[t]) } } }() }, lists: function L() { ! function s() { var e, t = []; do { if (t.length) { var n = t[0], r = f.doc.createElement("ul"); n.parentNode.insertBefore(r, n); do { var a = n; n = n.nextSibling, r.appendChild(a) } while (n && "LI" === n.tagName) } t = []; for (var o = f.el.querySelectorAll("li"), i = 0; i < o.length; i++) e = o[i], f.node.isList(e.parentNode) || t.push(o[i]) } while (0 < t.length) }(), function o() { for (var e = f.el.querySelectorAll("ol + ol, ul + ul"), t = 0; t < e.length; t++) { var n = e[t]; if (f.node.isList(n.previousSibling) && f.node.openTagString(n) === f.node.openTagString(n.previousSibling)) { for (var r = f.node.contents(n), a = 0; a < r.length; a++) n.previousSibling.appendChild(r[a]); n.parentNode.removeChild(n) } } }(), function i() { for (var e = f.el.querySelectorAll("ul, ol"), t = 0; t < e.length; t++) for (var n = f.node.contents(e[t]), r = null, a = n.length - 1; 0 <= a; a--) !n[a].tagName && f.opts.htmlUntouched || "LI" === n[a].tagName || "UL" == n[a].tagName || "OL" == n[a].tagName ? r = null : (r || (r = g(f.doc.createElement("LI"))).insertBefore(n[a]), r.prepend(n[a])) }(), function l() { var e, t, n; do { t = !1; var r = f.el.querySelectorAll("li:empty"); for (e = 0; e < r.length; e++) r[e].parentNode.removeChild(r[e]); var a = f.el.querySelectorAll("ul, ol"); for (e = 0; e < a.length; e++)(n = a[e]).querySelector("LI") || (t = !0, n.parentNode.removeChild(n)) } while (!0 === t) }(), function a() { for (var e = f.el.querySelectorAll("ul > ul, ol > ol, ul > ol, ol > ul"), t = 0; t < e.length; t++) { var n = e[t], r = n.previousSibling; r && ("LI" === r.tagName ? r.appendChild(n) : g(n).wrap("
  • ")) } }(), function c() { for (var e = f.el.querySelectorAll("li > ul, li > ol"), t = 0; t < e.length; t++) { var n = e[t]; if (n.nextSibling) for (var r = n.nextSibling; 0 < r.childNodes.length;) n.append(r.childNodes[0]) } }(), function d() { for (var e = f.el.querySelectorAll("li > ul, li > ol"), t = 0; t < e.length; t++) { var n = e[t]; if (f.node.isFirstSibling(n) && "none" != n.parentNode.style.listStyleType) g(n).before("
    "); else if (n.previousSibling && "BR" === n.previousSibling.tagName) { for (var r = n.previousSibling.previousSibling; r && f.node.hasClass(r, "fr-marker");) r = r.previousSibling; r && "BR" !== r.tagName && g(n.previousSibling).remove() } } }(), function n() { for (var e = f.el.querySelectorAll("li:empty"), t = 0; t < e.length; t++) g(e[t]).remove() }() }, invisibleSpaces: function n(e) { return e.replace(/\u200b/g, "").length === e.length ? e : f.clean.exec(e, a) }, exec: b } }, kt.XS = 0, kt.SM = 1, kt.MD = 2, kt.LG = 3; kt.LinkRegExCommon = "[".concat("a-z\\u0080-\\u009f\\u00a1-\\uffff0-9-_\\.", "]{1,}"), kt.LinkRegExEnd = "((:[0-9]{1,5})|)(((\\/|\\?|#)[a-z\\u00a1-\\uffff0-9@?\\|!^=%&\\/~+#-\\'*-_{}]*)|())", kt.LinkRegExTLD = "((".concat(kt.LinkRegExCommon, ")(\\.(com|net|org|edu|mil|gov|co|biz|info|me|dev)))"), kt.LinkRegExHTTP = "((ftp|http|https):\\/\\/".concat(kt.LinkRegExCommon, ")"), kt.LinkRegExAuth = "((ftp|http|https):\\/\\/[\\u0021-\\uffff]{1,}@".concat(kt.LinkRegExCommon, ")"), kt.LinkRegExWWW = "(www\\.".concat(kt.LinkRegExCommon, "\\.[a-z0-9-]{2,24})"), kt.LinkRegEx = "(".concat(kt.LinkRegExTLD, "|").concat(kt.LinkRegExHTTP, "|").concat(kt.LinkRegExWWW, "|").concat(kt.LinkRegExAuth, ")").concat(kt.LinkRegExEnd), kt.LinkProtocols = ["mailto", "tel", "sms", "notes", "data"], kt.MAIL_REGEX = /.+@.+\..+/i, kt.MODULES.helpers = function (o) { var i, s = o.$; function e() { var e = {}, t = function o() { var e, t = -1; return "Microsoft Internet Explorer" === navigator.appName ? (e = navigator.userAgent, null !== new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})").exec(e) && (t = parseFloat(RegExp.$1))) : "Netscape" === navigator.appName && (e = navigator.userAgent, null !== new RegExp("Trident/.*rv:([0-9]{1,}[\\.0-9]{0,})").exec(e) && (t = parseFloat(RegExp.$1))), t }(); if (0 < t) e.msie = !0; else { var n = navigator.userAgent.toLowerCase(), r = /(edge)[ /]([\w.]+)/.exec(n) || /(chrome)[ /]([\w.]+)/.exec(n) || /(webkit)[ /]([\w.]+)/.exec(n) || /(opera)(?:.*version|)[ /]([\w.]+)/.exec(n) || /(msie) ([\w.]+)/.exec(n) || n.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(n) || [], a = r[1] || ""; r[2]; r[1] && (e[a] = !0), e.chrome ? e.webkit = !0 : e.webkit && (e.safari = !0) } return e.msie && (e.version = t), e } function t() { return /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && !a() } function n() { return /(Android)/g.test(navigator.userAgent) && !a() } function r() { return /(Blackberry)/g.test(navigator.userAgent) } function a() { return /(Windows Phone)/gi.test(navigator.userAgent) } var l = null; return { _init: function c() { o.browser = e() }, isIOS: t, isMac: function d() { return null === l && (l = 0 <= navigator.platform.toUpperCase().indexOf("MAC")), l }, isAndroid: n, isBlackberry: r, isWindowsPhone: a, isMobile: function f() { return n() || t() || r() }, isEmail: function p(e) { return !/^(https?:|ftps?:|)\/\//i.test(e) && kt.MAIL_REGEX.test(e) }, requestAnimationFrame: function u() { return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (e) { window.setTimeout(e, 1e3 / 60) } }, getPX: function h(e) { return parseInt(e, 10) || 0 }, screenSize: function g(e) { try { var t = 0; if ((t = e ? o.$box.width() : o.$sc.width()) < 768) return kt.XS; if (768 <= t && t < 992) return kt.SM; if (992 <= t && t < 1200) return kt.MD; if (1200 <= t) return kt.LG } catch (n) { return kt.LG } }, isTouch: function m() { return "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch }, sanitizeURL: function v(e) { return /^(https?:|ftps?:|)\/\//i.test(e) ? e : /^([A-Za-z]:(\\){1,2}|[A-Za-z]:((\\){1,2}[^\\]+)+)(\\)?$/i.test(e) ? e : new RegExp("^(".concat(kt.LinkProtocols.join("|"), "):"), "i").test(e) ? e : e = encodeURIComponent(e).replace(/%23/g, "#").replace(/%2F/g, "/").replace(/%25/g, "%").replace(/mailto%3A/gi, "mailto:").replace(/file%3A/gi, "file:").replace(/sms%3A/gi, "sms:").replace(/tel%3A/gi, "tel:").replace(/notes%3A/gi, "notes:").replace(/data%3Aimage/gi, "data:image").replace(/blob%3A/gi, "blob:").replace(/%3A(\d)/gi, ":$1").replace(/webkit-fake-url%3A/gi, "webkit-fake-url:").replace(/%3F/g, "?").replace(/%3D/g, "=").replace(/%26/g, "&").replace(/&/g, "&").replace(/%2C/g, ",").replace(/%3B/g, ";").replace(/%2B/g, "+").replace(/%40/g, "@").replace(/%5B/g, "[").replace(/%5D/g, "]").replace(/%7B/g, "{").replace(/%7D/g, "}") }, isArray: function b(e) { return e && !Object.prototype.propertyIsEnumerable.call(e, "length") && "object" === St(e) && "number" == typeof e.length }, RGBToHex: function C(e) { function t(e) { return "0".concat(parseInt(e, 10).toString(16)).slice(-2) } try { return e && "transparent" !== e ? /^#[0-9A-F]{6}$/i.test(e) ? e : (e = e.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/), "#".concat(t(e[1])).concat(t(e[2])).concat(t(e[3])).toUpperCase()) : "" } catch (n) { return null } }, HEXtoRGB: function E(e) { e = e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (e, t, n, r) { return t + t + n + n + r + r }); var t = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e); return t ? "rgb(".concat(parseInt(t[1], 16), ", ").concat(parseInt(t[2], 16), ", ").concat(parseInt(t[3], 16), ")") : "" }, isURL: function y(e) { return !!/^(https?:|ftps?:|)\/\//i.test(e) && (e = String(e).replace(//g, "%3E").replace(/"/g, "%22").replace(/ /g, "%20"), new RegExp("^".concat(kt.LinkRegExHTTP).concat(kt.LinkRegExEnd, "$"), "gi").test(e)) }, getAlignment: function L(e) { e.css || (e = s(e)); var t = (e.css("text-align") || "").replace(/-(.*)-/g, ""); if (["left", "right", "justify", "center"].indexOf(t) < 0) { if (!i) { var n = s('
    ..
    ')); s("body").first().append(n); var r = n.find("#s1").get(0).getBoundingClientRect().left, a = n.find("#s2").get(0).getBoundingClientRect().left; n.remove(), i = r < a ? "left" : "right" } t = i } return t }, scrollTop: function _() { return o.o_win.pageYOffset ? o.o_win.pageYOffset : o.o_doc.documentElement && o.o_doc.documentElement.scrollTop ? o.o_doc.documentElement.scrollTop : o.o_doc.body.scrollTop ? o.o_doc.body.scrollTop : 0 }, scrollLeft: function w() { return o.o_win.pageXOffset ? o.o_win.pageXOffset : o.o_doc.documentElement && o.o_doc.documentElement.scrollLeft ? o.o_doc.documentElement.scrollLeft : o.o_doc.body.scrollLeft ? o.o_doc.body.scrollLeft : 0 }, isInViewPort: function A(e) { var t = e.getBoundingClientRect(); return 0 <= (t = { top: Math.round(t.top), bottom: Math.round(t.bottom) }).top && t.bottom <= (window.innerHeight || document.documentElement.clientHeight) || t.top <= 0 && t.bottom >= (window.innerHeight || document.documentElement.clientHeight) } } }, kt.MODULES.events = function (l) { var e, o = l.$, i = {}; function s(e, t, n) { m(e, t, n) } function c(e) { if (void 0 === e && (e = !0), !l.$wp) return !1; if (l.helpers.isIOS() && l.$win.get(0).focus(), l.core.hasFocus()) return !1; if (l.selection.isCollapsed() && !l.selection.get().anchorNode) { var t = l.$el.find(l.html.blockTagsQuery()).get(0); t && (o(t).prepend(kt.MARKERS), l.selection.restore()) } if (!l.core.hasFocus() && e) { var n = l.$win.scrollTop(); if (l.browser.msie && l.$box && l.$box.css("position", "fixed"), l.browser.msie && l.$wp && l.$wp.css("overflow", "visible"), l.browser.msie && l.$sc && l.$sc.css("position", "fixed"), l.browser.msie || (p(), l.el.focus(), l.events.trigger("focus"), f()), l.browser.msie && l.$sc && l.$sc.css("position", ""), l.browser.msie && l.$box && l.$box.css("position", ""), l.browser.msie && l.$wp && l.$wp.css("overflow", "auto"), n !== l.$win.scrollTop() && l.$win.scrollTop(n), !l.selection.info(l.el).atStart) return !1 } if (!l.core.hasFocus() || 0 < l.$el.find(".fr-marker").length) return !1; if (l.selection.info(l.el).atStart && l.selection.isCollapsed() && null !== l.html.defaultTag()) { var r = l.markers.insert(); if (r && !l.node.blockParent(r)) { o(r).remove(); var a = l.$el.find(l.html.blockTagsQuery()).get(0); a && (o(a).prepend(kt.MARKERS), l.selection.restore()) } else r && o(r).remove() } } var d = !1; function f() { e = !0 } function p() { e = !1 } function u() { return e } function h(e, t, n) { var r, a = e.split(" "); if (1 < a.length) { for (var o = 0; o < a.length; o++) h(a[o], t, n); return !0 } void 0 === n && (n = !1), r = 0 !== e.indexOf("shared.") ? (i[e] = i[e] || [], i[e]) : (l.shared._events[e] = l.shared._events[e] || [], l.shared._events[e]), n ? r.unshift(t) : r.push(t) } var g = []; function m(e, t, n, r, a) { "function" == typeof n && (a = r, r = n, n = !1); var o = a ? l.shared.$_events : g, i = a ? l.sid : l.id, s = "".concat(t.trim().split(" ").join(".ed".concat(i, " ")), ".ed").concat(i); n ? e.on(s, n, r) : e.on(s, r), o.push([e, s]) } function t(e) { for (var t = 0; t < e.length; t++) e[t][0].off(e[t][1]) } function v(e, t, n) { if (!l.edit.isDisabled() || n) { var r, a; if (0 !== e.indexOf("shared.")) r = i[e]; else { if (0 < l.shared.count) return !1; r = l.shared._events[e] } if (r) for (var o = 0; o < r.length; o++) if (!1 === (a = r[o].apply(l, t))) return !1; return (!l.opts.events || !l.opts.events[e] || !1 !== (a = l.opts.events[e].apply(l, t))) && a } } function b() { for (var e in i) Object.prototype.hasOwnProperty.call(i, e) && delete i[e] } function C() { for (var e in l.shared._events) Object.prototype.hasOwnProperty.call(l.shared._events, e) && delete l.shared._events[e] } return { _init: function E() { l.shared.$_events = l.shared.$_events || [], l.shared._events = {}, function e() { l.helpers.isMobile() ? (l._mousedown = "touchstart", l._mouseup = "touchend", l._move = "touchmove", l._mousemove = "touchmove") : (l._mousedown = "mousedown", l._mouseup = "mouseup", l._move = "", l._mousemove = "mousemove") }(), function t() { s(l.$el, "click mouseup mousemove mousedown touchstart touchend dragenter dragover dragleave dragend drop dragstart", function (e) { v(e.type, [e]) }), h("mousedown", function () { for (var e = 0; e < kt.INSTANCES.length; e++) kt.INSTANCES[e] !== l && kt.INSTANCES[e].popups && kt.INSTANCES[e].popups.areVisible() && kt.INSTANCES[e].$el.find(".fr-marker").remove() }) }(), function n() { s(l.$win, l._mousedown, function (e) { v("window.mousedown", [e]), f() }), s(l.$win, l._mouseup, function (e) { v("window.mouseup", [e]) }), s(l.$win, "beforeinput cut copy keydown keyup touchmove touchend", function (e) { v("window.".concat(e.type), [e]) }) }(), function r() { s(l.$doc, "dragend drop", function (e) { v("document.".concat(e.type), [e]) }) }(), function a() { s(l.$el, "beforeinput keydown keypress keyup input", function (e) { v(e.type, [e]) }) }(), function o() { s(l.$el, "focus", function (e) { u() && (c(!1), !1 === d && (v(e.type, [e]), l.helpers.isMobile() && p())) }), s(l.$el, "blur", function (e) { u() && !0 === d && (v(e.type, [e]), l.helpers.isMobile() && l.opts.toolbarContainer && (l.shared.selected_editor = l.id), f()) }), m(l.$el, "mousedown", '[contenteditable="true"]', function () { p(), l.$el.blur() }), h("focus", function () { d = !0 }), h("blur", function () { d = !1 }) }(), f(), function i() { s(l.$el, "cut copy paste beforepaste", function (e) { v(e.type, [e]) }) }(), h("destroy", b), h("shared.destroy", C) }, on: h, trigger: v, bindClick: function r(e, t, n) { m(e, l._mousedown, t, function (e) { l.edit.isDisabled() || function n(e) { var t = o(e.currentTarget); return l.edit.isDisabled() || l.node.hasClass(t.get(0), "fr-disabled") ? (e.preventDefault(), !1) : "mousedown" === e.type && 1 !== e.which || (l.helpers.isMobile() || e.preventDefault(), (l.helpers.isAndroid() || l.helpers.isWindowsPhone()) && 0 === t.parents(".fr-dropdown-menu").length && (e.preventDefault(), e.stopPropagation()), t.addClass("fr-selected"), void l.events.trigger("commands.mousedown", [t])) }(e) }, !0), m(e, "".concat(l._mouseup, " ").concat(l._move), t, function (e) { l.edit.isDisabled() || function a(e, t) { var n = o(e.currentTarget); if (l.edit.isDisabled() || l.node.hasClass(n.get(0), "fr-disabled")) return e.preventDefault(), !1; if ("mouseup" === e.type && 1 !== e.which) return !0; if (l.button.getButtons(".fr-selected", !0).get(0) == n.get(0) && !l.node.hasClass(n.get(0), "fr-selected")) return !0; if ("touchmove" !== e.type) { if (e.stopPropagation(), e.stopImmediatePropagation(), e.preventDefault(), !l.node.hasClass(n.get(0), "fr-selected")) return l.button.getButtons(".fr-selected", !0).removeClass("fr-selected"), !1; if (l.button.getButtons(".fr-selected", !0).removeClass("fr-selected"), n.data("dragging") || n.attr("disabled")) return n.removeData("dragging"), !1; var r = n.data("timeout"); r && (clearTimeout(r), n.removeData("timeout")), t.apply(l, [e]) } else n.data("timeout") || n.data("timeout", setTimeout(function () { n.data("dragging", !0) }, 100)) }(e, n) }, !0), m(e, "mousedown click mouseup", t, function (e) { l.edit.isDisabled() || e.stopPropagation() }, !0), h("window.mouseup", function () { l.edit.isDisabled() || (e.find(t).removeClass("fr-selected"), f()) }), m(e, "mouseover", t, function () { o(this).hasClass("fr-options") && o(this).prev(".fr-btn").addClass("fr-btn-hover"), o(this).next(".fr-btn").hasClass("fr-options") && o(this).next(".fr-btn").addClass("fr-btn-hover") }), m(e, "mouseout", t, function () { o(this).hasClass("fr-options") && o(this).prev(".fr-btn").removeClass("fr-btn-hover"), o(this).next(".fr-btn").hasClass("fr-options") && o(this).next(".fr-btn").removeClass("fr-btn-hover") }) }, disableBlur: p, enableBlur: f, blurActive: u, focus: c, chainTrigger: function y(e, t, n) { if (!l.edit.isDisabled() || n) { var r, a; if (0 !== e.indexOf("shared.")) r = i[e]; else { if (0 < l.shared.count) return !1; r = l.shared._events[e] } if (r) for (var o = 0; o < r.length; o++) void 0 !== (a = r[o].apply(l, [t])) && (t = a); return l.opts.events && l.opts.events[e] && void 0 !== (a = l.opts.events[e].apply(l, [t])) && (t = a), t } }, $on: m, $off: function n() { t(g), g = [], 0 === l.shared.count && (t(l.shared.$_events), l.shared.$_events = []) } } }, Object.assign(kt.DEFAULTS, { indentMargin: 20 }), kt.COMMANDS = { bold: { title: "Bold", toggle: !0, refresh: function (e) { var t = this.format.is("strong"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, italic: { title: "Italic", toggle: !0, refresh: function (e) { var t = this.format.is("em"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, underline: { title: "Underline", toggle: !0, refresh: function (e) { var t = this.format.is("u"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, strikeThrough: { title: "Strikethrough", toggle: !0, refresh: function (e) { var t = this.format.is("s"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, subscript: { title: "Subscript", toggle: !0, refresh: function (e) { var t = this.format.is("sub"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, superscript: { title: "Superscript", toggle: !0, refresh: function (e) { var t = this.format.is("sup"); e.toggleClass("fr-active", t).attr("aria-pressed", t) } }, outdent: { title: "Decrease Indent" }, indent: { title: "Increase Indent" }, undo: { title: "Undo", undo: !1, forcedRefresh: !0, disabled: !0 }, redo: { title: "Redo", undo: !1, forcedRefresh: !0, disabled: !0 }, insertHR: { title: "Insert Horizontal Line" }, clearFormatting: { title: "Clear Formatting" }, selectAll: { title: "Select All", undo: !1 }, moreText: { title: "More Text", undo: !1 }, moreParagraph: { title: "More Paragraph", undo: !1 }, moreRich: { title: "More Rich", undo: !1 }, moreMisc: { title: "More Misc", undo: !1 } }, kt.RegisterCommand = function (e, t) { kt.COMMANDS[e] = t }, kt.MODULES.commands = function (i) { var s = i.$; function l(e) { return i.html.defaultTag() && (e = "<".concat(i.html.defaultTag(), ">").concat(e, "")), e } var o = { bold: function () { e("bold", "strong") }, subscript: function () { i.format.is("sup") && i.format.remove("sup"), e("subscript", "sub") }, superscript: function () { i.format.is("sub") && i.format.remove("sub"), e("superscript", "sup") }, italic: function () { e("italic", "em") }, strikeThrough: function () { e("strikeThrough", "s") }, underline: function () { e("underline", "u") }, undo: function () { i.undo.run() }, redo: function () { i.undo.redo() }, indent: function () { r(1) }, outdent: function () { r(-1) }, show: function () { i.opts.toolbarInline && i.toolbar.showInline(null, !0) }, insertHR: function () { i.selection.remove(); var e = ""; i.core.isEmpty() && (e = l(e = "
    ")); var t = '
    '.concat(e); i.opts.trackChangesEnabled && (t = i.track_changes.wrapInTracking(s(t), "hrWrapper").get(0).outerHTML); i.html.insert(t); var n, r = i.$el.find("hr#fr-just").length ? i.$el.find("hr#fr-just") : i.$el.find(".fr-just"); r.removeAttr("id"), r.removeAttr("class"); var a = i.opts.trackChangesEnabled && "SPAN" === r[0].parentNode.tagName && "P" === r[0].parentNode.parentNode.tagName; if (0 === r.next().length) { var o = i.html.defaultTag(); o && !a ? r.after(s(i.doc.createElement(o)).append("
    ").get(0)) : a ? r[0].parentNode.after(s(i.doc.createElement(o)).append("
    ").get(0)) : r.after("
    ") } r.prev().is("hr") ? n = i.selection.setAfter(r.get(0), !1) : r.next().is("hr") ? n = i.selection.setBefore(r.get(0), !1) : a || i.selection.setAfter(r.get(0), !1) ? i.selection.setAfter(r[0].parentNode, !1) : i.selection.setBefore(r.get(0), !1), n || void 0 === n || (e = l(e = "".concat(kt.MARKERS, "
    ")), r.after(e)), i.selection.restore() }, clearFormatting: function () { i.format.remove() }, selectAll: function () { i.doc.execCommand("selectAll", !1, !1) }, moreText: function (e) { t(e) }, moreParagraph: function (e) { t(e) }, moreRich: function (e) { t(e) }, moreMisc: function (e) { t(e) }, moreTrackChanges: function () { t("trackChanges") } }; function t(e) { var t = i.$tb.find("[data-cmd=".concat(e, "]")), n = i.$tb.find("[data-cmd=html]"); i.opts.trackChangesEnabled ? n && n.addClass("fr-disabled") : n && n.removeClass("fr-disabled"), function r(n) { i.helpers.isMobile() && i.opts.toolbarInline && i.events.disableBlur(); var e = i.$tb.find('.fr-more-toolbar[data-name="'.concat(n.attr("data-group-name"), '"]')); "trackChanges" === n.data("cmd") && (e = i.$tb.find('.fr-more-toolbar[data-name="trackChanges-'.concat(i.id, '"]'))); if (i.$tb.find(".fr-open").not(n).not('[data-cmd="trackChanges"]').removeClass("fr-open"), n.toggleClass("fr-open"), i.$tb.find(".fr-more-toolbar").removeClass("fr-overflow-visible"), i.$tb.find(".fr-expanded").not(e).length) { var t = i.$tb.find(".fr-expanded").not(e); t.each(function (e, t) { 0 != s(t).data("name").indexOf("trackChanges-") && 0 != s(t).data("name").indexOf("moreRich-") ? s(t).toggleClass("fr-expanded") : n.parents('[data-name^="moreRich-"]').length || 0 == s(t).data("name").indexOf("trackChanges-") || s(t).find('[id^="trackChanges-"]').length && i.opts.trackChangesEnabled || s(t).toggleClass("fr-expanded") }), e.toggleClass("fr-expanded") } else e.toggleClass("fr-expanded"), i.$box.toggleClass("fr-toolbar-open"), i.$tb.toggleClass("fr-toolbar-open") }(t), i.toolbar.setMoreToolbarsHeight() } function n(e, t) { if (!(i.markdown && i.markdown.isEnabled() && ("bold" === e || "italic" === e || "underline" === e) || i.opts.trackChangesEnabled && "markdown" === e) && !1 !== i.events.trigger("commands.before", s.merge([e], t || []))) { var n = kt.COMMANDS[e] && kt.COMMANDS[e].callback || o[e], r = !0, a = !1; kt.COMMANDS[e] && ("undefined" != typeof kt.COMMANDS[e].focus && (r = kt.COMMANDS[e].focus), "undefined" != typeof kt.COMMANDS[e].accessibilityFocus && (a = kt.COMMANDS[e].accessibilityFocus)), (!i.core.hasFocus() && r && !i.popups.areVisible() || !i.core.hasFocus() && a && i.accessibility.hasFocus()) && i.events.focus(!0), kt.COMMANDS[e] && !1 !== kt.COMMANDS[e].undo && (i.$el.find(".fr-marker").length && (i.events.disableBlur(), i.selection.restore()), i.undo.saveStep()), n && n.apply(i, s.merge([e], t || [])), i.events.trigger("commands.after", s.merge([e], t || [])), kt.COMMANDS[e] && !1 !== kt.COMMANDS[e].undo && i.undo.saveStep() } } function e(e, t) { i.format.toggle(t) } function r(e) { i.selection.save(), i.html.wrap(!0, !0, !0, !0), i.selection.restore(); for (var t = i.selection.blocks(), n = 0; n < t.length; n++) if ("LI" !== t[n].tagName || "LI" !== t[n].parentNode.tagName) { var r = s(t[n]); "LI" != t[n].tagName && "LI" == t[n].parentNode.tagName && (r = s(t[n].parentNode)); var a = "rtl" === i.opts.direction || "rtl" === r.css("direction") ? "margin-right" : "margin-left", o = i.helpers.getPX(r.css(a)); if (r.width() < 2 * i.opts.indentMargin && 0 < e) continue; "UL" != t[n].parentNode.tagName && "OL" != t[n].parentNode.tagName && "LI" != t[n].parentNode.tagName && r.css(a, Math.max(o + e * i.opts.indentMargin, 0) || ""), r.removeClass("fr-temp-div") } i.selection.save(), i.html.unwrap(), i.selection.restore() } function a(e) { return function () { n(e) } } var c = {}; for (var d in o) Object.prototype.hasOwnProperty.call(o, d) && (c[d] = a(d)); return Object.assign(c, { exec: n, _init: function f() { i.events.on("keydown", function (e) { var t = i.selection.element(); if (t && "HR" === t.tagName && !i.keys.isArrow(e.which)) return e.preventDefault(), !1 }), i.events.on("keyup", function (e) { var t = i.selection.element(); if (t && "HR" === t.tagName) if (e.which === kt.KEYCODE.ARROW_LEFT || e.which === kt.KEYCODE.ARROW_UP) { if (t.previousSibling) return i.node.isBlock(t.previousSibling) ? i.selection.setAtEnd(t.previousSibling) : s(t).before(kt.MARKERS), i.selection.restore(), !1 } else if ((e.which === kt.KEYCODE.ARROW_RIGHT || e.which === kt.KEYCODE.ARROW_DOWN) && t.nextSibling) return i.node.isBlock(t.nextSibling) ? i.selection.setAtStart(t.nextSibling) : s(t).after(kt.MARKERS), i.selection.restore(), !1 }), i.events.on("mousedown", function (e) { if (e.target && "HR" === e.target.tagName) return e.preventDefault(), e.stopPropagation(), !1 }), i.events.on("mouseup", function () { var e = i.selection.element(); e === i.selection.endElement() && e && "HR" === e.tagName && (e.nextSibling && (i.node.isBlock(e.nextSibling) ? i.selection.setAtStart(e.nextSibling) : s(e).after(kt.MARKERS)), i.selection.restore()) }) } }) }, kt.MODULES.cursorLists = function (g) { var m = g.$; function v(e) { for (var t = e; "LI" !== t.tagName;) t = t.parentNode; return t } function b(e) { for (var t = e; !g.node.isList(t);) t = t.parentNode; return t } return { _startEnter: function C(e) { var t, n = v(e), r = n.nextSibling, a = n.previousSibling, o = g.html.defaultTag(); if (g.node.isEmpty(n, !0) && r) { for (var i = "", s = "", l = e.parentNode; !g.node.isList(l) && l.parentNode && ("LI" !== l.parentNode.tagName || l.parentNode === n);) i = g.node.openTagString(l) + i, s += g.node.closeTagString(l), l = l.parentNode; i = g.node.openTagString(l) + i, s += g.node.closeTagString(l); var c = ""; for (c = l.parentNode && "LI" === l.parentNode.tagName ? "".concat(s, "
  • ").concat(kt.MARKERS, "
    ").concat(i) : o ? "".concat(s, "<").concat(o, ">").concat(kt.MARKERS, "
    ").concat(i) : "".concat(s + kt.MARKERS, "
    ").concat(i); ["UL", "OL"].indexOf(l.tagName) < 0 || l.parentNode && "LI" === l.parentNode.tagName;) l = l.parentNode; m(n).replaceWith(''); var d = g.node.openTagString(l) + m(l).html() + g.node.closeTagString(l); d = d.replace(/<\/span>/g, c), m(l).replaceWith(d), g.$el.find("li:empty").remove() } else if (a && r || !g.node.isEmpty(n, !0)) { for (var f = "
    ", p = e.parentNode; p && "LI" !== p.tagName;) f = g.node.openTagString(p) + f + g.node.closeTagString(p), p = p.parentNode; m(n).before("
  • ".concat(f, "
  • ")), m(e).remove() } else if (a) { t = b(n); for (var u = "".concat(kt.MARKERS, "
    "), h = e.parentNode; h && "LI" !== h.tagName;) u = g.node.openTagString(h) + u + g.node.closeTagString(h), h = h.parentNode; t.parentNode && "LI" === t.parentNode.tagName ? m(t.parentNode).after("
  • ".concat(u, "
  • ")) : o ? m(t).after("<".concat(o, ">").concat(u, "")) : m(t).after(u), m(n).remove() } else(t = b(n)).parentNode && "LI" === t.parentNode.tagName ? r ? m(t.parentNode).before("".concat(g.node.openTagString(n) + kt.MARKERS, "
    ")) : m(t.parentNode).after("".concat(g.node.openTagString(n) + kt.MARKERS, "
    ")) : o ? m(t).before("<".concat(o, ">").concat(kt.MARKERS, "
    ")) : m(t).before("".concat(kt.MARKERS, "
    ")), m(n).remove() }, _middleEnter: function c(e) { for (var t = v(e), n = "", r = e, a = "", o = "", i = !1; r !== t;) { var s = "A" === (r = r.parentNode).tagName && g.cursor.isAtEnd(e, r) ? "fr-to-remove" : ""; i || r == t || g.node.isBlock(r) || (i = !0, a += kt.INVISIBLE_SPACE), a = g.node.openTagString(m(r).clone().addClass(s).get(0)) + a, g.opts.trackChangesEnabled ? o += g.node.closeTagString(r) : o = g.node.closeTagString(r) + o } n = o + n + a + kt.MARKERS + (g.opts.keepFormatOnDelete ? kt.INVISIBLE_SPACE : ""), m(e).replaceWith(''); var l = g.node.openTagString(t) + m(t).html() + g.node.closeTagString(t); l = l.replace(/<\/span>/g, n), m(t).replaceWith(l) }, _endEnter: function l(e) { for (var t = v(e), n = kt.MARKERS, r = "", a = e, o = !1; a !== t;) if (!(a = a.parentNode).classList.contains("fr-img-space-wrap") && !a.classList.contains("fr-img-space-wrap2")) { var i = "A" === a.tagName && g.cursor.isAtEnd(e, a) ? "fr-to-remove" : ""; o || a === t || g.node.isBlock(a) || (o = !0, r += kt.INVISIBLE_SPACE), r = g.node.openTagString(m(a).clone().addClass(i).get(0)) + r, n += g.node.closeTagString(a) } var s = r + n; m(e).remove(), m(t).after(s) }, _backspace: function d(e) { var t = v(e), n = t.previousSibling; if (n) { n = m(n).find(g.html.blockTagsQuery()).get(-1) || n, m(e).replaceWith(kt.MARKERS); var r = g.node.contents(n); r.length && "BR" === r[r.length - 1].tagName && m(r[r.length - 1]).remove(), m(t).find(g.html.blockTagsQuery()).not("ol, ul, table").each(function () { this.parentNode === t && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? "" : "
    ")) }); for (var a, o = g.node.contents(t)[0]; o && !g.node.isList(o);) a = o.nextSibling, m(n).append(o), o = a; for (n = t.previousSibling; o;) a = o.nextSibling, m(n).append(o), o = a; 1 < (r = g.node.contents(n)).length && "BR" === r[r.length - 1].tagName && m(r[r.length - 1]).remove(), m(t).remove() } else { var i = b(t); if (m(e).replaceWith(kt.MARKERS), i.parentNode && "LI" === i.parentNode.tagName) { var s = i.previousSibling; g.node.isBlock(s) ? (m(t).find(g.html.blockTagsQuery()).not("ol, ul, table").each(function () { this.parentNode === t && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? "" : "
    ")) }), m(s).append(m(t).html())) : m(i).before(m(t).html()) } else { var l = g.html.defaultTag(); l && 0 === m(t).find(g.html.blockTagsQuery()).length ? m(i).before("<".concat(l, ">").concat(m(t).html(), "")) : m(i).before(m(t).html()) } m(t).remove(), g.html.wrap(), 0 === m(i).find("li").length && m(i).remove() } }, _del: function f(e) { var t, n = v(e), r = n.nextSibling; if (r) { (t = g.node.contents(r)).length && "BR" === t[0].tagName && m(t[0]).remove(), m(r).find(g.html.blockTagsQuery()).not("ol, ul, table").each(function () { this.parentNode === r && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? "" : "
    ")) }); for (var a, o = e, i = g.node.contents(r)[0]; i && !g.node.isList(i);) a = i.nextSibling, m(o).after(i), o = i, i = a; for (; i;) a = i.nextSibling, m(n).append(i), i = a; m(e).replaceWith(kt.MARKERS), m(r).remove() } else { for (var s = n; !s.nextSibling && s !== g.el;) s = s.parentNode; if (s === g.el) return !1; if (s = s.nextSibling, g.node.isBlock(s)) kt.NO_DELETE_TAGS.indexOf(s.tagName) < 0 && (m(e).replaceWith(kt.MARKERS), (t = g.node.contents(n)).length && "BR" === t[t.length - 1].tagName && m(t[t.length - 1]).remove(), m(n).append(m(s).html()), m(s).remove()); else { for ((t = g.node.contents(n)).length && "BR" === t[t.length - 1].tagName && m(t[t.length - 1]).remove(), m(e).replaceWith(kt.MARKERS); s && !g.node.isBlock(s) && "BR" !== s.tagName;) m(n).append(m(s)), s = s.nextSibling; m(s).remove() } } } } }, kt.NO_DELETE_TAGS = ["TH", "TD", "TR", "TABLE", "FORM"], kt.SIMPLE_ENTER_TAGS = ["TH", "TD", "LI", "DL", "DT", "FORM"], kt.MODULES.cursor = function (g) { var m = g.$; function p(e) { return !!e && (!!g.node.isBlock(e) || (e.nextSibling && e.nextSibling.nodeType === Node.TEXT_NODE && 0 === e.nextSibling.textContent.replace(/\u200b/g, "").length ? p(e.nextSibling) : !(e.nextSibling && (!e.previousSibling || "BR" !== e.nextSibling.tagName || e.nextSibling.nextSibling)) && p(e.parentNode))) } function u(e) { return !!e && (!!g.node.isBlock(e) || (e.previousSibling && e.previousSibling.nodeType === Node.TEXT_NODE && 0 === e.previousSibling.textContent.replace(/\u200b/g, "").length ? u(e.previousSibling) : !e.previousSibling && (!(e.previousSibling || !g.node.hasClass(e.parentNode, "fr-inner")) || u(e.parentNode)))) } function h(e, t) { return !!e && (e !== g.$wp.get(0) && (e.previousSibling && e.previousSibling.nodeType === Node.TEXT_NODE && 0 === e.previousSibling.textContent.replace(/\u200b/g, "").length ? h(e.previousSibling, t) : !e.previousSibling && (e.parentNode === t || h(e.parentNode, t)))) } function v(e, t) { return !!e && (e !== g.$wp.get(0) && (e.nextSibling && e.nextSibling.nodeType === Node.TEXT_NODE && 0 === e.nextSibling.textContent.replace(/\u200b/g, "").length ? v(e.nextSibling, t) : !(e.nextSibling && (!e.previousSibling || "BR" !== e.nextSibling.tagName || e.nextSibling.nextSibling)) && (e.parentNode === t || v(e.parentNode, t)))) } function b(e) { return 0 < m(e).parentsUntil(g.$el, "LI").length && 0 === m(e).parentsUntil("LI", "TABLE").length } function C(e, t) { var n = new RegExp("".concat(t ? "^" : "", "(([\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+\\u200D)*[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]{2})").concat(t ? "" : "$"), "i"), r = e.match(n); return r ? r[0].length : 1 } function E(e) { for (var t, n = e; !n.previousSibling;) if (n = n.parentNode, g.node.isElement(n)) return !1; n = n.previousSibling; var r = g.opts.htmlAllowedEmptyTags, a = n.tagName && n.tagName.toLowerCase(); if ((!g.node.isBlock(n) || n.lastChild && a && 0 <= r.indexOf(a)) && g.node.isEditable(n)) { for (t = g.node.contents(n); n.nodeType !== Node.TEXT_NODE && !g.node.isDeletable(n) && t.length && g.node.isEditable(n);) n = t[t.length - 1], t = g.node.contents(n); if (n.nodeType === Node.TEXT_NODE) { var o = n.textContent, i = o.length; if (o.length && "\n" === o[o.length - 1]) return n.textContent = o.substring(0, i - 2), 0 === n.textContent.length && n.parentNode.removeChild(n), E(e); if (g.opts.tabSpaces && o.length >= g.opts.tabSpaces) 0 === o.substr(o.length - g.opts.tabSpaces, o.length - 1).replace(/ /g, "").replace(new RegExp(kt.UNICODE_NBSP, "g"), "").length && (i = o.length - g.opts.tabSpaces + 1); n.textContent = o.substring(0, i - C(o)); var s = n.textContent; (g.opts.enter === kt.ENTER_BR && 0 < s.length && " " === s.charAt(s.length - 1) || 0 === s.length && e.previousSibling && 3 === e.previousSibling.nodeType && "TD" !== e.parentNode.tagName && "LI" !== e.parentNode.tagName && o !== String.fromCharCode(8203)) && (e.insertAdjacentHTML("beforebegin", kt.INVISIBLE_SPACE), n = n.nextSibling), g.opts.trackChangesEnabled && 0 === n.textContent.length && m(n.parentElement).data("tracking") && 0 === m(n.parentElement).find("[data-tracking-deleted=true]").length && (m(e).insertBefore(n.parentElement), m(n.parentElement).remove(), n = m(e)[0].previousSibling), g.opts.htmlUntouched && !e.nextSibling && n.textContent.length && " " === n.textContent[n.textContent.length - 1] && (n.textContent = n.textContent.substring(0, n.textContent.length - 1) + kt.UNICODE_NBSP); var l = o.length !== n.textContent.length; if (0 === n.textContent.length && n.previousSibling && "BR" === n.previousSibling.tagName && n.previousSibling.remove(), 0 === n.textContent.length) if (l && g.opts.keepFormatOnDelete) m(n).after(kt.INVISIBLE_SPACE + kt.MARKERS); else if (0 !== o.length && g.node.isBlock(n.parentNode)) m(n).after(kt.MARKERS); else if ((2 != n.parentNode.childNodes.length || n.parentNode != e.parentNode) && 1 != n.parentNode.childNodes.length || g.node.isBlock(n.parentNode) || g.node.isElement(n.parentNode) || !g.node.isDeletable(n.parentNode)) { for (var c, d = n; !g.node.isElement(n.parentNode) && g.node.isEmpty(n.parentNode) && kt.NO_DELETE_TAGS.indexOf(n.parentNode.tagName) < 0;) if ("A" === (n = n.parentNode).tagName) { var f = n.childNodes[0]; for (m(n).before(f), c = !0; 0 < f.childNodes.length;) f = f.childNodes[0]; n.parentNode.removeChild(n), n = f; break } c || (n = d), m(n).after(kt.MARKERS), g.node.isElement(n.parentNode) && !e.nextSibling && n.previousSibling && "BR" === n.previousSibling.tagName && m(e).after("
    "); var p = n.parentNode; n.parentNode.removeChild(n), g.node.isEmpty(p) && m(p).html(kt.INVISIBLE_SPACE + kt.MARKERS) } else m(n.parentNode).after(kt.MARKERS), m(n.parentNode).remove(); else m(n).after(kt.MARKERS) } else g.node.isDeletable(n) ? (m(n).after(kt.MARKERS), m(n).remove()) : e.nextSibling && "BR" === e.nextSibling.tagName && g.node.isVoid(n) && "BR" !== n.tagName ? (m(e.nextSibling).remove(), m(e).replaceWith(kt.MARKERS)) : !1 !== g.events.trigger("node.remove", [m(n)]) && (m(n).after(kt.MARKERS), m(n).remove()) } else if (kt.NO_DELETE_TAGS.indexOf(n.tagName) < 0 && (g.node.isEditable(n) || g.node.isDeletable(n))) if (g.node.isDeletable(n)) m(e).replaceWith(kt.MARKERS), m(n).remove(); else if (g.node.isEmpty(n) && !g.node.isList(n)) m(n).remove(), m(e).replaceWith(kt.MARKERS); else { for (g.node.isList(n) && (n = m(n).find("li").last().get(0)), (t = g.node.contents(n)) && "BR" === t[t.length - 1].tagName && m(t[t.length - 1]).remove(), t = g.node.contents(n); t && g.node.isBlock(t[t.length - 1]);) n = t[t.length - 1], t = g.node.contents(n); m(n).append(kt.MARKERS); for (var u = e; !u.previousSibling;) u = u.parentNode; for (; u && "BR" !== u.tagName && !g.node.isBlock(u);) { var h = u; u = u.nextSibling, m(n).append(h) } u && "BR" === u.tagName && m(u).remove(), m(e).remove() } else e.nextSibling && "BR" === e.nextSibling.tagName && m(e.nextSibling).remove(); return !0 } function o(e) { var t = 0 < m(e).parentsUntil(g.$el, "BLOCKQUOTE").length, n = g.node.deepestParent(e, [], !t); if (n && "BLOCKQUOTE" === n.tagName) { var r = g.node.deepestParent(e, [m(e).parentsUntil(g.$el, "BLOCKQUOTE").get(0)]); r && r.nextSibling && (n = r) } if (null !== n) { var a, o = n.nextSibling; if (g.node.isBlock(n) && (g.node.isEditable(n) || g.node.isDeletable(n)) && o && kt.NO_DELETE_TAGS.indexOf(o.tagName) < 0) if (g.node.isDeletable(o)) m(o).remove(), m(e).replaceWith(kt.MARKERS); else if (g.node.isBlock(o) && g.node.isEditable(o)) if (g.node.isList(o)) if (g.node.isEmpty(n, !0)) m(n).remove(), m(o).find("li").first().prepend(kt.MARKERS); else { var i = m(o).find("li").first(); "BLOCKQUOTE" === n.tagName && (a = g.node.contents(n)).length && g.node.isBlock(a[a.length - 1]) && (n = a[a.length - 1]), 0 === i.find("ul, ol").length && (m(e).replaceWith(kt.MARKERS), i.find(g.html.blockTagsQuery()).not("ol, ul, table").each(function () { this.parentNode === i.get(0) && m(this).replaceWith(m(this).html() + (g.node.isEmpty(this) ? "" : "
    ")) }), m(n).append(g.node.contents(i.get(0))), i.remove(), 0 === m(o).find("li").length && m(o).remove()) } else { if ((a = g.node.contents(o)).length && "BR" === a[0].tagName && m(a[0]).remove(), "BLOCKQUOTE" !== o.tagName && "BLOCKQUOTE" === n.tagName) for (a = g.node.contents(n); a.length && g.node.isBlock(a[a.length - 1]);) n = a[a.length - 1], a = g.node.contents(n); else if ("BLOCKQUOTE" === o.tagName && "BLOCKQUOTE" !== n.tagName) for (a = g.node.contents(o); a.length && g.node.isBlock(a[0]);) o = a[0], a = g.node.contents(o); m(e).replaceWith(kt.MARKERS), m(n).append(o.innerHTML), m(o).remove() } else { for (m(e).replaceWith(kt.MARKERS); o && "BR" !== o.tagName && !g.node.isBlock(o) && g.node.isEditable(o);) { var s = o; o = o.nextSibling, m(n).append(s) } o && "BR" === o.tagName && g.node.isEditable(o) && m(o).remove() } } } function n(e) { for (var t, n = e; !n.nextSibling;) if (n = n.parentNode, g.node.isElement(n)) return !1; if ("BR" === (n = n.nextSibling).tagName && g.node.isEditable(n)) if (n.nextSibling) { if (g.node.isBlock(n.nextSibling) && g.node.isEditable(n.nextSibling)) { if (!(kt.NO_DELETE_TAGS.indexOf(n.nextSibling.tagName) < 0)) return void m(n).remove(); n = n.nextSibling, m(n.previousSibling).remove() } } else if (p(n)) { if (b(e)) g.cursorLists._del(e); else g.node.deepestParent(n) && ((!g.node.isEmpty(g.node.blockParent(n)) || (g.node.blockParent(n).nextSibling && kt.NO_DELETE_TAGS.indexOf(g.node.blockParent(n).nextSibling.tagName)) < 0) && m(n).remove(), o(e)); return } if (!g.node.isBlock(n) && g.node.isEditable(n)) { for (t = g.node.contents(n); n.nodeType !== Node.TEXT_NODE && t.length && !g.node.isDeletable(n) && g.node.isEditable(n);) n = t[0], t = g.node.contents(n); n.nodeType === Node.TEXT_NODE ? (m(n).before(kt.MARKERS), n.textContent.length && (n.textContent = n.textContent.substring(C(n.textContent, !0), n.textContent.length))) : g.node.isDeletable(n) ? (m(n).before(kt.MARKERS), m(n).remove()) : !1 !== g.events.trigger("node.remove", [m(n)]) && (m(n).before(kt.MARKERS), m(n).remove()), m(e).remove() } else if (kt.NO_DELETE_TAGS.indexOf(n.tagName) < 0 && (g.node.isEditable(n) || g.node.isDeletable(n))) if (g.node.isDeletable(n)) m(e).replaceWith(kt.MARKERS), m(n).remove(); else if (g.node.isList(n)) e.previousSibling ? (m(n).find("li").first().prepend(e), g.cursorLists._backspace(e)) : (m(n).find("li").first().prepend(kt.MARKERS), m(e).remove()); else if ((t = g.node.contents(n)) && "BR" === t[0].tagName && m(t[0]).remove(), t && "BLOCKQUOTE" === n.tagName) { var r = t[0]; for (m(e).before(kt.MARKERS); r && "BR" !== r.tagName;) { var a = r; r = r.nextSibling, m(e).before(a) } r && "BR" === r.tagName && m(r).remove() } else m(e).after(m(n).html()).after(kt.MARKERS), m(n).remove() } function i() { for (var e = g.el.querySelectorAll("blockquote:empty"), t = 0; t < e.length; t++) e[t].parentNode.removeChild(e[t]) } function y(e, t, n) { var r, a = g.node.deepestParent(e, [], !n); if (a && "BLOCKQUOTE" === a.tagName) return v(e, a) ? (r = g.html.defaultTag(), t ? m(e).replaceWith("
    " + kt.MARKERS) : r ? m(a).after("<".concat(r, ">").concat(kt.MARKERS, "
    ")) : m(a).after("".concat(kt.MARKERS, "
    ")), m(e).remove()) : L(e, t, n), !1; if (null === a)(r = g.html.defaultTag()) && g.node.isElement(e.parentNode) ? m(e).replaceWith("<".concat(r, ">").concat(kt.MARKERS, "
    ")) : !e.previousSibling || m(e.previousSibling).is("br") || e.nextSibling ? m(e).replaceWith("
    ".concat(kt.MARKERS)) : m(e).replaceWith("
    ".concat(kt.MARKERS, "
    ")); else { var o = e, i = ""; "PRE" != a.tagName || e.nextSibling || (t = !0), g.node.isBlock(a) && !t || (i = "
    "); var s, l = "", c = "", d = "", f = ""; (r = g.html.defaultTag()) && g.node.isBlock(a) && (d = "<".concat(r, ">"), f = ""), a.tagName === r.toUpperCase() && (d = g.node.openTagString(m(a).clone().removeAttr("id").get(0)))); do { if (o = o.parentNode, !t || o !== a || t && !g.node.isBlock(a)) if (l += g.node.closeTagString(o), o === a && g.node.isBlock(a)) c = d + c; else { var p = ("A" === o.tagName || g.node.hasClass(o, "fa")) && v(e, o) ? "fr-to-remove" : ""; c = "isPasted" === o.getAttribute("id") ? g.node.openTagString(m(o).clone().attr("style", "").addClass(p).get(0)) + c : g.node.openTagString(m(o).clone().addClass(p).get(0)) + c } } while (o !== a); i = l + i + c + (e.parentNode === a && g.node.isBlock(a) ? "" : kt.INVISIBLE_SPACE) + kt.MARKERS, g.node.isBlock(a) && !m(a).find("*").last().is("br") && m(a).append("
    "), m(e).after(''), m(e).remove(), a.nextSibling && !g.node.isBlock(a.nextSibling) || g.node.isBlock(a) || m(a).after("
    "), s = (s = !t && g.node.isBlock(a) ? g.node.openTagString(a) + m(a).html() + f : g.node.openTagString(a) + m(a).html() + g.node.closeTagString(a)).replace(/<\/span>/g, i), m(a).replaceWith(s) } } function L(e, t, n) { var r = g.node.deepestParent(e, [], !n); if (null === r) g.html.defaultTag() && e.parentNode === g.el ? m(e).replaceWith("<".concat(g.html.defaultTag(), ">").concat(kt.MARKERS, "
    ")) : (e.nextSibling && !g.node.isBlock(e.nextSibling) || m(e).after("
    "), m(e).replaceWith("
    ".concat(kt.MARKERS))); else if (e.previousSibling && "IMG" == e.previousSibling.tagName || e.nextSibling && "IMG" == e.nextSibling.tagName) m(e).replaceWith("<" + g.html.defaultTag() + ">" + kt.MARKERS + "
    "); else { var a = e, o = ""; "PRE" === r.tagName && (t = !0), g.node.isBlock(r) && !t || (o = "
    "); var i = "", s = ""; do { var l = a; if (a = a.parentNode, "BLOCKQUOTE" === r.tagName && g.node.isEmpty(l) && !g.node.hasClass(l, "fr-marker") && m(l).contains(e) && m(l).after(e), "BLOCKQUOTE" !== r.tagName || !v(e, a) && !h(e, a)) if (!t || a !== r || t && !g.node.isBlock(r)) { i += g.node.closeTagString(a); var c = "A" == a.tagName && v(e, a) || g.node.hasClass(a, "fa") ? "fr-to-remove" : ""; s = g.node.openTagString(m(a).clone().addClass(c).removeAttr("id").get(0)) + s, a === r && "DIV" === r.tagName && (i = "
    ", s = "") } else "BLOCKQUOTE" == r.tagName && t && (s = i = "") } while (a !== r); var d = r === e.parentNode && g.node.isBlock(r) || e.nextSibling; if ("BLOCKQUOTE" === r.tagName) if (e.previousSibling && g.node.isBlock(e.previousSibling) && e.nextSibling && "BR" === e.nextSibling.tagName && (m(e.nextSibling).after(e), e.nextSibling && "BR" === e.nextSibling.tagName && m(e.nextSibling).remove()), t) o = i + o + kt.MARKERS + s; else { var f = g.html.defaultTag(); o = "".concat(i + o + (f ? "<".concat(f, ">") : "") + kt.MARKERS, "
    ").concat(f ? "") : "").concat(s) } else o = i + o + s + (d ? "" : kt.INVISIBLE_SPACE) + kt.MARKERS; m(e).replaceWith(''); var p = g.node.openTagString(r) + m(r).html() + g.node.closeTagString(r); p = p.replace(/<\/span>/g, o), m(r).replaceWith(p) } } return { enter: function _(e) { var t = g.markers.insert(); if (!t) return !0; for (var n = t.parentNode; n && !g.node.isElement(n);) { if ("false" === n.getAttribute("contenteditable")) return m(t).replaceWith(kt.MARKERS), g.selection.restore(), !1; if ("true" === n.getAttribute("contenteditable")) break; n = n.parentNode } g.el.normalize(); var r = !1; 0 < m(t).parentsUntil(g.$el, "BLOCKQUOTE").length && (r = !0), m(t).parentsUntil(g.$el, "TD, TH").length && (r = !1), p(t) ? !b(t) || e || r ? y(t, e, r) : g.cursorLists._endEnter(t) : u(t) ? !b(t) || e || r ? function l(e, t, n) { var r, a = g.node.deepestParent(e, [], !n); if (a && "TABLE" === a.tagName) return m(a).find("td, th").first().prepend(e), l(e, t, n); if (a && "BLOCKQUOTE" === a.tagName) if (h(e, a)) { if (!t) return (r = g.html.defaultTag()) ? m(a).before("<".concat(r, ">").concat(kt.MARKERS, "
    ")) : m(a).before("".concat(kt.MARKERS, "
    ")), m(e).remove(), !1 } else v(e, a) ? y(e, t, !0) : L(e, t, !0); if (null === a)(r = g.html.defaultTag()) && g.node.isElement(e.parentNode) ? m(e).replaceWith("<".concat(r, ">").concat(kt.MARKERS, "
    ")) : m(e).replaceWith("
    ".concat(kt.MARKERS)); else { if (r = g.html.defaultTag(), g.node.isBlock(a)) if ("PRE" === a.tagName && (t = !0), t) m(e).remove(), m(a).prepend("
    ".concat(kt.MARKERS)); else if (e.nextSibling && "IMG" == e.nextSibling.tagName || e.nextSibling && e.nextSibling.nextElementSibling && "IMG" == e.nextSibling.nextElementSibling) m(e).replaceWith("<" + g.html.defaultTag() + ">" + kt.MARKERS + "
    "); else { if (g.node.isEmpty(a, !0)) return y(e, t, n); if (g.opts.keepFormatOnDelete || "DIV" === a.tagName || "div" === g.html.defaultTag()) if (!g.opts.keepFormatOnDelete && "DIV" === a.tagName || "div" === g.html.defaultTag()) m(a).before("<" + g.html.defaultTag() + ">
    "); else { for (var o = e, i = kt.INVISIBLE_SPACE; o !== a && !g.node.isElement(o);) o = o.parentNode, i = g.node.openTagString(o) + i + g.node.closeTagString(o); m(a).before(i) } else m(a).before("".concat(g.node.openTagString(m(a).clone().removeAttr("id").get(0)), "
    ").concat(g.node.closeTagString(a))) } else m(a).before("
    "); m(e).remove() } }(t, e, r) : g.cursorLists._startEnter(t) : !b(t) || e || r ? L(t, e, r) : g.cursorLists._middleEnter(t), function c() { g.$el.find(".fr-to-remove").each(function () { for (var e = g.node.contents(this), t = 0; t < e.length; t++) e[t].nodeType === Node.TEXT_NODE && (e[t].textContent = e[t].textContent.replace(/\u200B/g, "")); m(this).replaceWith(this.innerHTML) }) }(), g.html.fillEmptyBlocks(!0), g.opts.htmlUntouched || (g.html.cleanEmptyTags(), g.clean.lists(), g.spaces.normalizeAroundCursor()), g.selection.restore(); var a = g.o_win.innerHeight; if (g.$oel[0].offsetHeight > a) { var o = function d() { var e = g.selection.get(), t = null; if (g.selection.inEditor() && e.rangeCount) for (var n = g.selection.ranges(), r = 0; r < n.length; r++) { var a = n[r]; t = g.selection.rangeElement(a.startContainer, a.startOffset); break } return t }(); if (o) { var i = function f(e) { var t = e.getBoundingClientRect(), n = window.pageXOffset || document.documentElement.scrollLeft, r = window.pageYOffset || document.documentElement.scrollTop; return { top: t.top + r, left: t.left + n } }(o), s = o.getBoundingClientRect().top; o.parentNode && "TD" === o.parentNode.tagName && a < s ? g.o_win.scroll(0, s - 50) : s < 0 ? g.o_win.scroll(0, i.top - 80) : a < s + 20 && g.o_win.scroll(0, i.top - a + 50) } } }, backspace: function s() { var e = !1, t = g.markers.insert(); if (!t) return !0; for (var n = t.parentNode; n && !g.node.isElement(n);) { if ("false" === n.getAttribute("contenteditable")) return m(t).replaceWith(kt.MARKERS), g.selection.restore(), !1; if (n.innerText.length && "true" === n.getAttribute("contenteditable")) break; n = n.parentNode } g.el.normalize(); var r = t.previousSibling; if (r) { var a = r.textContent; a && a.length && 8203 === a.charCodeAt(a.length - 1) && 1 !== a.length && (r.textContent = r.textContent.substr(0, a.length - C(a))) } return p(t) ? b(t) && h(t, m(t).parents("li").first().get(0)) ? g.cursorLists._backspace(t) : e = E(t) : u(t) ? b(t) && h(t, m(t).parents("li").first().get(0)) ? g.cursorLists._backspace(t) : function c(e) { for (var t = 0 < m(e).parentsUntil(g.$el, "BLOCKQUOTE").length, n = g.node.deepestParent(e, [], !t), r = n; n && !n.previousSibling && "BLOCKQUOTE" !== n.tagName && n.parentElement !== g.el && !g.node.hasClass(n.parentElement, "fr-inner") && kt.SIMPLE_ENTER_TAGS.indexOf(n.parentElement.tagName) < 0;) n = n.parentElement; if (n && "BLOCKQUOTE" === n.tagName) { var a = g.node.deepestParent(e, [m(e).parentsUntil(g.$el, "BLOCKQUOTE").get(0)]); a && a.previousSibling && (r = n = a) } if (null !== n) { var o, i = n.previousSibling; if (g.node.isBlock(n) && g.node.isEditable(n)) if (i && kt.NO_DELETE_TAGS.indexOf(i.tagName) < 0) { if (g.node.isDeletable(i)) m(i).remove(), m(e).replaceWith(kt.MARKERS); else if (g.node.isEditable(i)) if (g.node.isBlock(i)) if (g.node.isEmpty(i) && !g.node.isList(i)) m(i).remove(), m(e).after(g.opts.keepFormatOnDelete ? kt.INVISIBLE_SPACE : ""); else { if (g.node.isList(i) && (i = m(i).find("li").last().get(0)), (o = g.node.contents(i)).length && "BR" === o[o.length - 1].tagName && m(o[o.length - 1]).remove(), "BLOCKQUOTE" === i.tagName && "BLOCKQUOTE" !== n.tagName) for (o = g.node.contents(i); o.length && g.node.isBlock(o[o.length - 1]);) i = o[o.length - 1], o = g.node.contents(i); else if ("BLOCKQUOTE" !== i.tagName && "BLOCKQUOTE" === r.tagName) for (o = g.node.contents(r); o.length && g.node.isBlock(o[0]);) r = o[0], o = g.node.contents(r); if (g.node.isEmpty(n)) m(e).remove(), g.selection.setAtEnd(i, !0); else { m(e).replaceWith(kt.MARKERS); var s = i.childNodes; g.node.isBlock(s[s.length - 1]) ? m(s[s.length - 1]).append(r.innerHTML) : m(i).append(r.innerHTML) } m(r).remove(), g.node.isEmpty(n) && m(n).remove() } else m(e).replaceWith(kt.MARKERS), "BLOCKQUOTE" === n.tagName && i.nodeType === Node.ELEMENT_NODE ? m(i).remove() : (m(i).after(g.node.isEmpty(n) ? "" : m(n).html()), m(n).remove(), "BR" === i.tagName && m(i).remove()) } else if (!i) if (n && "BLOCKQUOTE" === n.tagName && 0 === m(n).text().replace(/\u200B/g, "").length) m(n).remove(); else { var l = n.nextSibling; g.node.isEmpty(n) && n.parentNode && g.node.isEditable(n.parentNode) && !l && (n.parentNode != g.el && "TD" !== n.parentNode.tagName ? m(n.parentNode).remove() : n.parentNode != g.el && "TD" === n.parentNode.tagName && m(n).remove()) } } }(t) : e = E(t), m(t).remove(), i(), g.html.fillEmptyBlocks(!0), g.opts.htmlUntouched || (g.html.cleanEmptyTags(), g.clean.lists(), g.spaces.normalizeAroundCursor()), g.selection.restore(), e }, del: function r() { var e = g.markers.insert(); if (!e) return !1; if (g.el.normalize(), p(e)) if (b(e)) if (0 === m(e).parents("li").first().find("ul, ol").length) g.cursorLists._del(e); else { var t = m(e).parents("li").first().find("ul, ol").first().find("li").first(); (t = t.find(g.html.blockTagsQuery()).get(-1) || t).prepend(e), g.cursorLists._backspace(e) } else o(e); else u(e), n(e); m(e).remove(), i(), g.html.fillEmptyBlocks(!0), g.opts.htmlUntouched || (g.html.cleanEmptyTags(), g.clean.lists()), g.spaces.normalizeAroundCursor(), g.selection.restore() }, isAtEnd: v, isAtStart: h } }, kt.MODULES.data = function (f) { function p(e) { return e } function c(e) { for (var t = e.toString(), n = 0, r = 0; r < t.length; r++) n += parseInt(t.charAt(r), 10); return 10 < n ? n % 9 + 1 : n } function d(e, t, n) { for (var r = Math.abs(n); 0 < r--;) e -= t; return n < 0 && (e += 123), e } function u(e) { return e && "block" !== e.css("display") ? (e.remove(), !0) : e && 0 === f.helpers.getPX(e.css("height")) ? (e.remove(), !0) : !(!e || "absolute" !== e.css("position") && "fixed" !== e.css("position") || (e.remove(), 0)) } function h(e) { return e && 0 === f.$box.find(e).length } function g() { if (10 < e && (f[p(T("0ppecjvc=="))](), setTimeout(function () { E.FE = null }, 10)), !f.$box) return !1; f.$wp.prepend(T(p(T(w)))), b = f.$wp.find("> div").first(), C = b.find("> a"), "rtl" === f.opts.direction && b.css("left", "auto").css("right", 0).attr("direction", "rtl"), e++ } function m(e) { for (var t = [T("9qqG-7amjlwq=="), T("KA3B3C2A6D1D5H5H1A3=="), T("3B9B3B5F3C4G3E3=="), T("QzbzvxyB2yA-9m=="), T("ji1kacwmgG5bc=="), T("nmA-13aogi1A3c1jd=="), T("BA9ggq=="), T("emznbjbH3fij=="), T("tkC-22d1qC-13sD1wzF-7=="), T("tA3jjf=="), T("1D1brkm==")], n = 0; n < t.length; n++) if (String.prototype.endsWith || (String.prototype.endsWith = function (e, t) { return (void 0 === t || t > this.length) && (t = this.length), this.substring(t - e.length, t) === e }), e.endsWith(t[n])) return !0; return !1 } function v() { var e = T(p(n)), t = T(p("tzgatD-13eD1dtdrvmF3c1nrC-7saQcdav==")).split("."); try { return window.parent.document.querySelector(e) && window[t[1]][t[2]] } catch (e) { return !1 } } var b, C, E = f.$, y = "sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2FC1A3NB2IF1HE1TH4WB8eB-11zVG2F3I3yYB5ZG4CB2DA15CC5AD3F1A1KG1oLA10B1A6wQF1H3vgale2C4F4XA2qc2A5D5B3pepmriKB3OE1HD1fUC10pjD-11E-11TB4YJ3bC-16zE-11yc1B2CE2BC3jhjKC1pdA-21OA6C1D5B-8vF4QA11pD6sqf1C3lldA-16BD4A2H3qoEA7bB-16rmNH5H1F1vSB7RE2A3TH4YC5A5b1A4d1B3whepyAC3AA2zknC3mbgf1SC4WH4PD8TC5ZB2C3H3jb2A5ZA2EF2aoFC5qqHC4B1H1zeGA7UA5RF4TA29TA6ZC4d1C3hyWA10A3rBB2E3decorationRD3QC10UD3E6E6ZD2F3F3fme2E5uxxrEC9C3E4fB-11azhHB1LD7D6VF4VVTPC6b1C4TYG3qzDD6B3B3AH4I2H2kxbHE1JD1yihfd1QD6WB1D4mhrc1B5rvFG3A14A7cDA2OC1AA1JB5zC-16KA6WB4C-8wvlTB5A5lkZB2C2C7zynBD2D2bI-7C-21d1HE2cubyvPC8A6VB3aroxxZE4C4F4e1I2BE1WjdifH1H4A14NA1GB1YG-10tWA3A14A9sVA2C5XH2A29b2A6gsleGG2jaED2D-13fhE1OA8NjwytyTD4e1sc1D-16ZC3B5C-9e1C2FB6EFF5B2C2JH4E1C2tdLE5A3UG4G-7b2D3B4fA-9oh1G3kqvB4AG3ibnjcAC6D2B1cDA9KC2QA6bRC4VA30RB8hYB2A4A-8h1A21A2B2==", L = "7D4YH4fkhHB3pqDC3H2E1fkMD1IB1NF1D3QD9wB5rxqlh1A8c2B4ZA3FD2AA6FB5EB3jJG4D2J-7aC-21GB6PC5RE4TC11QD6XC4XE3XH3mlvnqjbaOA2OC2BE6A1fmI-7ujwbc1G5f1F3e1C11mXF4owBG3E1yD1E4F1D2D-8B-8C-7yC-22HD1MF5UE4cWA3D8D6a1B2C3H3a3I3sZA4B3A2akfwEB3xHD5D1F1wIC11pA-16xdxtVI2C9A6YC4a1A2F3B2GA6B4C3lsjyJB1eMA1D-11MF5PE4ja1D3D7byrf1C3e1C7D-16lwqAF3H2A1B-21wNE1MA1OG1HB2A-16tSE5UD4RB3icRA4F-10wtwzBB3E1C3CC2DA8LA2LA1EB1kdH-8uVB7decorg1J2B7B6qjrqGI2J1C6ijehIB1hkemC-13hqkrH4H-7QD6XF5XF3HLNAC3CB2aD2CD2KB10B4ycg1A-8KA4H4B11jVB5TC4yqpB-21pd1E4pedzGB6MD5B3ncB-7MA4LD2JB6PD5uH-8TB9C7YD5XD2E3I3jmiDB3zeimhLD8E2F2JC1H-9ivkPC5lG-10SB1D3H3A-21rc1A3d1E3fsdqwfGA2KA1OrC-22LA6D1B4afUB16SC7AitC-8qYA11fsxcajGA15avjNE2A-9h1hDB16B9tPC1C5F5UC1G3B8d2A5d1D4RnHJ3C3JB5D3ucMG1yzD-17hafjC-8VD3yWC6e1YD2H3ZE2C8C5oBA3H3D2vFA4WzJC4C2i1A-65fNB8afWA1H4A26mvkC-13ZB3E3h1A21BC4eFB2GD2AA5ghqND2A2B2==", n = "MekC-11nB-8tIzpD7pewxvzC6mD-16xerg1==", _ = "lC4B3A3B2B5A1C2E4G1A2==", w = "sC-7OB2fwhVC4vsG-7ohPA4ZD4D-8f1J3stzB-11bFE2EE1MA2ND1KD1IE4cA-21pSD2D5ve1G3h1A8b1E5ZC3CD2FA16mC5OC5E1hpnG1NA10B1D7hkUD4I-7b2C3C5nXD2E3F3whidEC2EH3GI2mJE2E2bxci1WA10VC7pllSG2F3A7xd1A4ZC3DB2aaeGA2DE4H2E1j1ywD-13FD1A3VE4WA3D8C6wuc1A2hf1B5B7vnrrjA1B9ic1mpbD1oMB1iSB7rWC4RI4G-7upB6jd1A2F3H2EA4FD3kDF4A2moc1anJD1TD4VI4b2C7oeQF4c1E3XC7ZA3C3G3uDB2wGB6D1JC4D1JD4C1hTE6QC5pH4pD3C-22D7c1A3textAA4gdlB2mpozkmhNC1mrxA3yWA5edhg1I2H3B7ozgmvAI3I2B5GD1LD2RSNH1KA1XA5SB4PA3sA9tlmC-9tnf1G3nd1coBH4I2I2JC3C-16LE6A1tnUA3vbwQB1G3f1A20a3A8a1C6pxAB2eniuE1F3kH2lnjB2hB-16XA5PF1G4zwtYA5B-11mzTG2B9pHB3BE2hGH3B3B2cMD5C1F1wzPA8E7VG5H5vD3H-7C8tyvsVF2I1G2A5fE3bg1mgajoyxMA4fhuzSD8aQB2B4g1A20ukb1A4B3F3GG2CujjanIC1ObiB11SD1C5pWC1D4YB8YE5FE-11jXE2F-7jB4CC2G-10uLH4E1C2tA-13yjUH5d1H1A7sWD5E4hmjF-7pykafoGA16hDD4joyD-8OA33B3C2tC7cRE4SA31a1B8d1e2A4F4g1A2A22CC5zwlAC2C1A12==", A = function () { for (var e = 0, t = document.domain, n = t.split("."), r = "_gd".concat((new Date).getTime()); e < n.length - 1 && -1 === document.cookie.indexOf("".concat(r, "=").concat(r));) t = n.slice(-1 - ++e).join("."), document.cookie = "".concat(r, "=").concat(r, ";domain=").concat(t, ";"); return document.cookie = "".concat(r, "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=").concat(t, ";"), (t || "").replace(/(^\.*)|(\.*$)/g, "") }(), T = p(function S(e) { if (!e) return e; for (var t = "", n = p("charCodeAt"), r = p("fromCharCode"), a = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".indexOf(e[0]), o = 1; o < e.length - 2; o++) { for (var i = c(++a), s = e[n](o), l = ""; /[0-9-]/.test(e[o + 1]);) l += e[++o]; s = d(s, i, l = parseInt(l, 10) || 0), s ^= a - 1 & 31, t += String[r](s) } return t }), e = 0; return { _init: function k() { var e = f.opts.key || [""], t = T(p("ziRA1E3B9pA5B-11D-11xg1A3ZB5D1D4B-11ED2EG2pdeoC1clIH4wB-22yQD5uF4YE3E3A9==")); "string" == typeof e && (e = [e]); for (var n, r, a, o = !(f.ul = !0), i = 0, s = 0; s < e.length; s++) { var l = (r = e[s], 4 === (a = (T(r) || "").split("|")).length && "V3" === a[0] ? [a[1], a[3], a[2]] : [null, null, ""]), c = l[2]; if (c === T(p(T("LGnD1KNZf1CPBYCAZB-8F3UDSLLSG1VFf1A3C2=="))) || 0 <= c.indexOf(A, c.length - A.length) || m(A) || v()) { /*if (null !== (n = l[1]) && !(0 == n.indexOf("TRIAL") ? (n = new Date(n.replace(/TRIAL/, "")), new Date(n) < new Date && (y = L, 1)) : new Date(n) < new Date(T(_))) || !(0 < (A || "").length) || m(A) || v()) { f.ul = !1; break }*/ o = !0, w = y, i = l[0] || -1 } } var d = new Image; /* Fungsi menampilkan unlicensed !0 === f.ul && (g(), d.src = o ? "".concat(p(T(t)), "e=").concat(i) : "".concat(p(T(t)), "u")), !0 === f.ul && (f.events.on("contentChanged", function () { (function e() { return u(b) || u(C) || h(b) || h(C) })() && g() }), f.events.on("html.get", function (e) { return e + T("qD2H-9G3ioD-17qA1tE1B-8qI3A4hA-13C-11E2C1njfldD1E6pg1C-8sC3hfbkcD2G3stC-22gqgB3G2B-7vtoA4nweeD1A31A15B9uC-16A1F5dkykdc1B8dE-11bA3F2D3A9gd1E7F2tlI-8H-7vtxB2A5B2C3B2F2B5A6ldbyC4iqC-22D-17E-13mA3D2dywiB3oxlvfC1H4C2TjqbzlnI3ntB4E3qA2zaqsC6D3pmnkoE3C6D5wvuE3bwifdhB6hch1E4xibD-17dmrC1rG-7pntnF6nB-8F1D2A11C8plrkmF2F3MC-16bocqA2WwA-21ayeA1C4d1isC-22rD-13D6DfjpjtC2E6hB2G2G4A-7D2==") })), f.events.on("html.set", function () { var e = f.el.querySelector('[data-f-id="pbf"]'); e && E(e).remove() }), f.events.on("destroy", function () { b && b.length && b.remove() }, !0)*/ } } }, kt.MODULES.edit = function (t) { function e() { if (t.browser.mozilla) try { t.doc.execCommand("enableObjectResizing", !1, "false"), t.doc.execCommand("enableInlineTableEditing", !1, "false") } catch (e) {} if (t.browser.msie) try { t.doc.body.addEventListener("mscontrolselect", function (e) { return e.srcElement.focus(), !1 }) } catch (e) {} } var n = !1; function r() { return n } return { _init: function a() { t.events.on("focus", function () { r() ? t.edit.off() : t.edit.on() }) }, on: function o() { t.$wp ? (t.$el.attr("contenteditable", !0), t.$el.removeClass("fr-disabled").attr("aria-disabled", !1), e()) : t.$el.is("a") && t.$el.attr("contenteditable", !0), t.events.trigger("edit.on", [], !0), n = !1 }, off: function i() { t.events.disableBlur(), t.$wp ? (t.$el.attr("contenteditable", !1), t.$el.addClass("fr-disabled").attr("aria-disabled", !0)) : t.$el.is("a") && t.$el.attr("contenteditable", !1), t.events.trigger("edit.off"), t.events.enableBlur(), n = !0 }, disableDesign: e, isDisabled: r } }, kt.MODULES.format = function (w) { var A = w.$; function m(e, t) { var n = "<".concat(e); for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (n += " ".concat(r, '="').concat(t[r], '"')); return n += ">" } function T(e, t) { var n = e; for (var r in t) Object.prototype.hasOwnProperty.call(t, r) && (n += "id" === r ? "#".concat(t[r]) : "class" === r ? ".".concat(t[r]) : "[".concat(r, '="').concat(t[r], '"]')); return n } function S(e, t) { return !(!e || e.nodeType !== Node.ELEMENT_NODE) && (e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector).call(e, t) } function b(e, t, n) { var r, a, o, i = { strong: { prop: "font-weight", val: "bold" }, em: { prop: "font-style", val: "italic" } }; if (e) { if (w.node.isBlock(e) && e.hasAttribute("contenteditable") && "false" === e.getAttribute("contenteditable") || e.parentNode && e.parentNode.hasAttribute("contenteditable") && "false" === e.parentNode.getAttribute("contenteditable")) { if (e.nextSibling && A(e.nextSibling).hasClass("fr-marker")) return; if (e.nextSibling) return void b(e.nextSibling, t, n); if (e.parentNode) return void b(e.parentNode, t, n) } for (; e.nodeType === Node.COMMENT_NODE;) e = e.nextSibling; if (e) { if (w.node.isBlock(e) && "HR" !== e.tagName) return w.node.hasClass(e.firstChild, "fr-marker") ? b(e.firstChild.nextSibling, t, n) : b(e.firstChild, t, n), !1; var s = A(w.doc.createElement(t)); s.attr(n), s.insertBefore(e), (r = C(e)) && (0 <= ["strong", "em"].indexOf(t) || "span" === t && n.hasOwnProperty("style")) && (o = "span" === t ? (a = (i = n.style.replace(/;$/, "").split(":"))[0].trim(), i[1].trim()) : (a = i[t].prop, i[t].val), "background-color" !== a && (A(r).css(a, o), function g(e, t) { var n, r = e.childNodes; for (n = 0; n < r.length; n++) 0 <= ["UL", "OL", "LI"].indexOf(r[n].tagName) && "" === r[n].style[t] && A(r[n]).css(t, "initial") }(r, a))); for (var l = e; l && !A(l).hasClass("fr-marker") && 0 === A(l).find(".fr-marker").length && "UL" !== l.tagName && "OL" !== l.tagName;) { var c = l; if ("SPAN" === l.tagName && A(l).hasClass("fr-tracking-deleted")) l = l.nextSibling; else { if (w.node.isBlock(l) && "HR" !== e.tagName) return b(l.firstChild, t, n), !1; if ("SPAN" === l.tagName) return b(l.firstChild, t, n), !1; if (l.tagName && l.hasAttribute("contenteditable") && "false" === l.getAttribute("contenteditable")) return void b(l.nextSibling, t, n); l = l.nextSibling, s.append(c) } } if (l) { if (A(l).find(".fr-marker").length || "UL" === l.tagName || "OL" === l.tagName) b(l.firstChild, t, n); else if (w.browser.mozilla && w.node.hasClass(l, "fr-marker")) { var d, f = w.selection.blocks(), p = f.length; for (d = 0; d < p; d++) f[d] != l.parentNode && f[d].childNodes.length && f[d].childNodes[0] != l.parentNode && (l = f[d].childNodes[1] || f[d].childNodes[0], (s = A(m(t, n)).insertBefore(l)).append(l)) } } else { for (var u = s.get(0).parentNode; u && !u.nextSibling && !w.node.isElement(u);) u = u.parentNode; if (u) { var h = u.nextSibling; h && (w.node.isBlock(h) ? "HR" === h.tagName ? b(h.nextSibling, t, n) : b(h.firstChild, t, n) : b(h, t, n)) } } s.is(":empty") && s.remove() } } } function n(e, t) { var n; if (void 0 === t && (t = {}), t.style && delete t.style, w.selection.isCollapsed()) { w.markers.insert(), w.$el.find(".fr-marker").replaceWith(m(e, t) + kt.INVISIBLE_SPACE + kt.MARKERS + function i(e) { return "") }(e)), w.selection.restore() } else { var r; w.selection.save(), b(w.$el.find('.fr-marker[data-type="true"]').length && w.$el.find('.fr-marker[data-type="true"]').get(0).nextSibling, e, t); do { for (r = w.$el.find("".concat(T(e, t), " > ").concat(T(e, t))), n = 0; n < r.length; n++) r[n].outerHTML = r[n].innerHTML } while (r.length); w.el.normalize(); var a = w.el.querySelectorAll(".fr-marker"); for (n = 0; n < a.length; n++) { var o = A(a[n]); !0 === o.data("type") ? S(o.get(0).nextSibling, T(e, t)) && o.next().prepend(o) : S(o.get(0).previousSibling, T(e, t)) && o.prev().append(o) } w.selection.restore() } } function k(e, t, n, r) { if (!r) { var a = !1; if (!0 === e.data("type")) for (; w.node.isFirstSibling(e.get(0)) && !e.parent().is(w.$el) && !e.parent().is("ol") && !e.parent().is("ul");) e.parent().before(e), a = !0; else if (!1 === e.data("type")) for (; w.node.isLastSibling(e.get(0)) && !e.parent().is(w.$el) && !e.parent().is("ol") && !e.parent().is("ul");) e.parent().after(e), a = !0; if (a) return !0 } if (e.parents(t).length || void 0 === t) { var o, i = "", s = "", l = e.parent(); if (l.is(w.$el) || w.node.isBlock(l.get(0))) return !1; for (; !(w.node.isBlock(l.parent().get(0)) || void 0 !== t && S(l.get(0), T(t, n)));) i += w.node.closeTagString(l.get(0)), s = w.node.openTagString(l.get(0)) + s, l = l.parent(); var c = e.get(0).outerHTML; return e.replaceWith(''), o = l.html().replace(/<\/span>/, i + w.node.closeTagString(l.get(0)) + s + c + i + w.node.openTagString(l.get(0)) + s), l.replaceWith(w.node.openTagString(l.get(0)) + o + w.node.closeTagString(l.get(0))), !0 } return !1 } function r(e, t) { void 0 === t && (t = {}), t.style && delete t.style; var n = w.selection.isCollapsed(); w.selection.save(); for (var r = !0; r;) { r = !1; for (var a = w.$el.find(".fr-marker"), o = 0; o < a.length; o++) { var i = A(a[o]), s = null; if (i.attr("data-cloned") || n || (s = i.clone().removeClass("fr-marker").addClass("fr-clone"), i.data("type") && "true" === i.data("type").toString() ? i.attr("data-cloned", !0).after(s) : i.attr("data-cloned", !0).before(s)), k(i, e, t, n)) { r = !0; break } } }! function L(e, t, n, r) { for (var a, o = { strong: { prop: "font-weight", val: "bold" }, em: { prop: "font-style", val: "italic" } }, i = w.node.contents(e.get(0)), s = 0; s < i.length; s++) { var l = i[s]; if (l.innerHTML && 8203 == l.innerHTML.charCodeAt() && l.tagName.toLocaleLowerCase() == n && l.childNodes.length < 2 && (l.outerHTML = l.innerHTML), w.node.hasClass(l, "fr-marker")) t = (t + 1) % 2; else if (t) if (0 < A(l).find(".fr-marker").length) t = L(A(l), t, n, r); else { (a = "LI" === l.tagName ? l : A(l).parentsUntil(w.$el, "li").get(0)) && (void 0 === n || 0 <= ["strong", "em"].indexOf(n)) && (n ? A(a).css(o[n].prop, "") : a.style = ""), (a = l.parentNode !== w.el ? l.parentNode : null) && 1 === a.nodeType && "a" !== n && a.hasAttribute("style") ? a.style = "" : l && 1 === l.nodeType && "a" !== n && l.hasAttribute("style") && (l.style = ""); for (var c = A(l).find(n || "*:not(br)"), d = c.length - 1; 0 <= d; d--) { var f = c[d]; (a = "LI" === f.tagName ? f : A(f).parentsUntil(w.$el, "li").get(0)) && (!n || 0 <= ["strong", "em"].indexOf(n)) && (n ? A(a).css(o[n].prop, "") : a.style = ""), w.node.isBlock(f) || w.node.isVoid(f) || void 0 !== n && !S(f, T(n, r)) ? w.node.isBlock(f) && void 0 === n && "TABLE" !== l.tagName && w.node.clearAttributes(f) : w.node.hasClass(f, "fr-clone") || w.node.hasClass(f, "fr-tracking-deleted") || A(f).data("tracking") || (f.outerHTML = f.innerHTML) } void 0 === n && l.nodeType === Node.ELEMENT_NODE && !w.node.isVoid(l) || S(l, T(n, r)) ? w.node.isBlock(l) || (w.node.hasClass(l, "fr-clone") || w.opts.trackChangesEnabled ? !w.node.hasClass(l, "fr-clone") && w.opts.trackChangesEnabled && l.parentNode && (l.outerHTML = l.innerHTML) : l.outerHTML = l.innerHTML) : void 0 === n && l.nodeType === Node.ELEMENT_NODE && w.node.isBlock(l) && "TABLE" !== l.tagName && w.node.clearAttributes(l) } else 0 < A(l).find(".fr-marker").length && (t = L(A(l), t, n, r)) } return t }(w.$el, 0, e, t), n || (w.$el.find(".fr-marker").remove(), w.$el.find(".fr-clone").removeClass("fr-clone").addClass("fr-marker")), n && w.$el.find(".fr-marker").before(kt.INVISIBLE_SPACE).after(kt.INVISIBLE_SPACE), w.html.cleanEmptyTags(), w.el.normalize(), w.selection.restore(); var l = w.win.getSelection() && w.win.getSelection().anchorNode; if (l) { var c = w.node.blockParent(l), d = !!l.textContent.replace(/\u200B/g, "").length, f = w.win.getSelection().getRangeAt(0), p = f.startOffset, u = f.endOffset; w.selection.text().replace(/\u200B/g, "").length || function _(e, t) { if (e && t) { if (e.isSameNode(t) ? e.textContent = e.textContent.replace(/\u200B(?=.*\u200B)/g, "") : e.nodeType === Node.TEXT_NODE && (e.textContent = e.textContent.replace(/\u200B/g, "")), !e.childNodes.length) return !1; Array.isArray(e.childNodes) && e.childNodes.forEach(function (e) { _(e, t) }) } }(c, l); var h = w.win.getSelection().getRangeAt(0); if (l.nodeType === Node.TEXT_NODE) { if (!d || !w.selection.text().length && p === u) { var g = l.textContent.search(/\u200B/g) + 1; if (w.browser.msie) { var m = w.doc.createRange(); w.selection.get().removeAllRanges(), m.setStart(l, g), m.setEnd(l, g), w.selection.get().addRange(m) } else h.setStart(l, g), h.setEnd(l, g) } } else { var v, b, C = 0, E = A(l).contents(); if (w.browser.msie) { for (; b = E[C];) b.nodeType === Node.TEXT_NODE && 0 <= b.textContent.search(/\u200B/g) && (v = b), C++; v = A(v) } else v = E.filter(function (e) { return e.nodeType === Node.TEXT_NODE && 0 <= e.textContent.search(/\u200B/g) }); if (v.length && !w.opts.trackChangesEnabled) { var y = v.text().search(/\u200B/g) + 1; h.setStart(v.get(0), y), h.setEnd(v.get(0), y) } } } } function t(e, t) { var n, r, a, o, i, s, l, c = null; if (w.selection.isCollapsed()) { w.markers.insert(); var d = (r = w.$el.find(".fr-marker")).parent(); if (w.node.openTagString(d.get(0)) === '')) { if (w.node.isEmpty(d.get(0))) c = A(w.doc.createElement("span")).attr("style", "".concat(e, ": ").concat(t, ";")).html("".concat(kt.INVISIBLE_SPACE).concat(kt.MARKERS)), d.replaceWith(c); else { var f = {}; f["style*"] = "".concat(e, ":"), k(r, "span", f, !0), r = w.$el.find(".fr-marker"), t ? (c = A(w.doc.createElement("span")).attr("style", "".concat(e, ": ").concat(t, ";")).html("".concat(kt.INVISIBLE_SPACE).concat(kt.MARKERS)), r.replaceWith(c)) : r.replaceWith(kt.INVISIBLE_SPACE + kt.MARKERS) } w.html.cleanEmptyTags() } else w.node.isEmpty(d.get(0)) && d.is("span") ? (r.replaceWith(kt.MARKERS), d.css(e, t)) : (c = A('').concat(kt.INVISIBLE_SPACE).concat(kt.MARKERS, "")), r.replaceWith(c)); c && E(c, e, t) } else { if (w.selection.save(), null === t || "color" === e && 0 < w.$el.find(".fr-marker").parents("u, a").length) { var p = w.$el.find(".fr-marker"); for (n = 0; n < p.length; n++) if (!0 === (r = A(p[n])).data("type") || "true" === r.data("type")) for (; w.node.isFirstSibling(r.get(0)) && !r.parent().is(w.$el) && !w.node.isElement(r.parent().get(0)) && !w.node.isBlock(r.parent().get(0));) r.parent().before(r); else for (; w.node.isLastSibling(r.get(0)) && !r.parent().is(w.$el) && !w.node.isElement(r.parent().get(0)) && !w.node.isBlock(r.parent().get(0));) r.parent().after(r) } for (var u = w.$el.find('.fr-marker[data-type="true"]').get(0).nextSibling; u.firstChild;) u = u.firstChild; var h = { "class": "fr-unprocessed" }; for (t && (h.style = "".concat(e, ": ").concat(t, ";")), b(u, "span", h), w.$el.find(".fr-marker + .fr-unprocessed").each(function () { A(this).prepend(A(this).prev()) }), w.$el.find(".fr-unprocessed + .fr-marker").each(function () { A(this).prev().append(A(this)) }), (t || "").match(/\dem$/) && w.$el.find("span.fr-unprocessed").removeClass("fr-unprocessed"); 0 < w.$el.find("span.fr-unprocessed").length;) { if (a = C(c = w.$el.find("span.fr-unprocessed").first().removeClass("fr-unprocessed")), c.parent().get(0).normalize(), c.parent().is("span") && 1 === c.parent().get(0).childNodes.length) { var g = t; w.browser.msie && !t && (g = ""), c.parent().css(e, g); var m = c; c = c.parent(), m.replaceWith(m.html()) } for (o = c.find("span"), a && "background-color" !== e && (a.normalize(), o = A(a).find("span:not(.fr-unprocessed)")), n = o.length - 1; 0 <= n; n--) i = o[n], s = e, l = void 0, (l = A(i)).css(s, ""), "" === l.attr("style") && l.replaceWith(l.html()); E(c, e, t) } }! function v() { var e; for (; 0 < w.$el.find(".fr-split:empty").length;) w.$el.find(".fr-split:empty").remove(); w.$el.find(".fr-split").removeClass("fr-split"), w.$el.find('[style=""]').removeAttr("style"), w.$el.find('[class=""]').removeAttr("class"), w.html.cleanEmptyTags(); for (var t = w.$el.find("span"), n = t.length - 1; 0 <= n; n--) { var r = t[n]; r.attributes && 0 !== r.attributes.length || A(r).replaceWith(r.innerHTML) } w.el.normalize(); var a = w.$el.find("span[style] + span[style]"); for (e = 0; e < a.length; e++) { var o = A(a[e]), i = A(a[e]).prev(); o.get(0).previousSibling === i.get(0) && w.node.openTagString(o.get(0)) === w.node.openTagString(i.get(0)) && (o.prepend(i.html()), i.remove()) } w.$el.find("span[style] span[style]").each(function () { if (0 <= A(this).attr("style").indexOf("font-size")) { var e = A(this).parents("span[style]"); e.attr("style") && 0 <= e.attr("style").indexOf("background-color") && (A(this).attr("style", "".concat(A(this).attr("style"), ";").concat(e.attr("style"))), k(A(this), "span[style]", {}, !1)) } }), w.el.normalize(), w.selection.restore() }() } function C(e) { var t, n, r, a, o, i; if (t = "LI" === e.tagName ? e : A(e).parentsUntil(w.$el, "li").get(0)) { if ((i = w.selection.info(t)).atStart && i.atEnd) return t; if (i.atStart && !i.atEnd && (n = A(t).find(".fr-marker[data-type=false]").get(0), r = A(n).parentsUntil(w.$el, "li").get(0), a = A(n).parent().get(0), (o = n.nextSibling) && 0 <= ["UL", "OL"].indexOf(o.tagName) || !r.isSameNode(t) || !o && ("LI" === a.tagName || !a.nextSibling || 0 <= ["UL", "OL"].indexOf(a.nextSibling.tagName) || w.node.isVoid(a.nextSibling)))) return t } } function E(e, t, n) { var r, a, o, i = e.parentsUntil(w.$el, "span[style]"), s = []; for (r = i.length - 1; 0 <= r; r--) a = i[r], o = t, 0 === A(a).attr("style").indexOf("".concat(o, ":")) || 0 <= A(a).attr("style").indexOf(";".concat(o, ":")) || 0 <= A(a).attr("style").indexOf("; ".concat(o, ":")) || s.push(i[r]); if ((i = i.not(s)).length) { for (var l = "", c = "", d = "", f = "", p = e.get(0); p = p.parentNode, A(p).addClass("fr-split"), l += w.node.closeTagString(p), c = w.node.openTagString(A(p).clone().addClass("fr-split").get(0)) + c, i.get(0) !== p && (d += w.node.closeTagString(p), f = w.node.openTagString(A(p).clone().addClass("fr-split").get(0)) + f), i.get(0) !== p;); var u = "".concat(l + w.node.openTagString(A(i.get(0)).clone().css(t, n || "").get(0)) + f + e.css(t, "").get(0).outerHTML + d, "").concat(c); e.replaceWith(''); var h = i.get(0).outerHTML; A(i.get(0)).replaceWith(h.replace(/<\/span>/g, function () { return u })) } } function a(e, t) { void 0 === t && (t = {}), t.style && delete t.style; var n = w.selection.ranges(0), r = n.startContainer; if (r.nodeType === Node.ELEMENT_NODE && 0 < r.childNodes.length && r.childNodes[n.startOffset] && (r = r.childNodes[n.startOffset]), !n.collapsed && r.nodeType === Node.TEXT_NODE && n.startOffset === (r.textContent || "").length) { for (; !w.node.isBlock(r.parentNode) && !r.nextSibling;) r = r.parentNode; r.nextSibling && (r = r.nextSibling) } for (var a = r; a && a.nodeType === Node.ELEMENT_NODE && !S(a, T(e, t));) a = a.firstChild; if (a && a.nodeType === Node.ELEMENT_NODE && S(a, T(e, t))) return !0; var o = r; for (o && o.nodeType !== Node.ELEMENT_NODE && (o = o.parentNode); o && o.nodeType === Node.ELEMENT_NODE && o !== w.el && !S(o, T(e, t));) o = o.parentNode; return !(!o || o.nodeType !== Node.ELEMENT_NODE || o === w.el || !S(o, T(e, t))) } return { is: a, toggle: function o(e, t) { a(e, t) ? r(e, t) : n(e, t) }, apply: n, remove: r, applyStyle: t, removeStyle: function i(e) { t(e, null) } } }, kt.MODULES.spaces = function (c) { function r(e, t) { var n = e.previousSibling, r = e.nextSibling, a = e.textContent, o = e.parentNode, i = [kt.ENTER_P, kt.ENTER_DIV, kt.ENTER_BR]; if (!c.html.isPreformatted(o)) { t && (a = a.replace(/[\f\n\r\t\v ]{2,}/g, " "), r && "BR" !== r.tagName && !c.node.isBlock(r) || !(c.node.isBlock(o) || c.node.isLink(o) && !o.nextSibling || c.node.isElement(o)) || (a = a.replace(/[\f\n\r\t\v ]{1,}$/g, "")), n && "BR" !== n.tagName && !c.node.isBlock(n) || !(c.node.isBlock(o) || c.node.isLink(o) && !o.previousSibling || c.node.isElement(o)) || (a = a.replace(/^[\f\n\r\t\v ]{1,}/g, "")), (c.node.isBlock(r) || c.node.isBlock(n)) && (!n || n && "A" !== n.tagName) && (a = a.replace(/^[\f\n\r\t\v ]{1,}/g, "")), " " === a && (n && c.node.isVoid(n) || r && c.node.isVoid(r)) && !(n && r && c.node.isVoid(n) || r && n && c.node.isVoid(r)) && (a = "")), (!n && c.node.isBlock(r) || !r && c.node.isBlock(n)) && c.node.isBlock(o) && o !== c.el && (a = a.replace(/^[\f\n\r\t\v ]{1,}/g, "")), t || (a = a.replace(new RegExp(kt.UNICODE_NBSP, "g"), " ")); for (var s = "", l = 0; l < a.length; l++) 32 != a.charCodeAt(l) || 0 !== l && 32 != s.charCodeAt(l - 1) || !((c.opts.enter === kt.ENTER_BR || c.opts.enter === kt.ENTER_DIV) && (n && "BR" === n.tagName || r && "BR" === r.tagName) || n && r && n.tagName === r.tagName) && (n && r && c.node.isVoid(n) || n && r && c.node.isVoid(r)) ? s += a[l] : s += kt.UNICODE_NBSP; (!r || r && c.node.isBlock(r) || r && r.nodeType === Node.ELEMENT_NODE && c.win.getComputedStyle(r) && "block" === c.win.getComputedStyle(r).display) && (!c.node.isVoid(n) || n && -1 !== ["P", "DIV", "BR"].indexOf(n.tagName) && -1 !== i.indexOf(c.opts.enter)) && (s = s.replace(/ $/, kt.UNICODE_NBSP)), !n || c.node.isVoid(n) || c.node.isBlock(n) || 1 !== (s = s.replace(/^\u00A0([^ $])/, " $1")).length || 160 !== s.charCodeAt(0) || !r || c.node.isVoid(r) || c.node.isBlock(r) || c.node.hasClass(n, "fr-marker") && c.node.hasClass(r, "fr-marker") || (s = " "), t || (s = s.replace(/([^ \u00A0])\u00A0([^ \u00A0])/g, "$1 $2")), e.textContent !== s && (e.textContent = s) } } function l(e, t) { if (void 0 !== e && e || (e = c.el), void 0 === t && (t = !1), !e.getAttribute || "false" !== e.getAttribute("contenteditable")) if (e.nodeType === Node.TEXT_NODE) r(e, t); else if (e.nodeType === Node.ELEMENT_NODE) for (var n = c.doc.createTreeWalker(e, NodeFilter.SHOW_TEXT, c.node.filter(function (e) { for (var t = e.parentNode; t && t !== c.el;) { if ("STYLE" === t.tagName || "IFRAME" === t.tagName) return !1; if ("PRE" === t.tagName) return !1; t = t.parentNode } return null !== e.textContent.match(/([ \u00A0\f\n\r\t\v]{2,})|(^[ \u00A0\f\n\r\t\v]{1,})|([ \u00A0\f\n\r\t\v]{1,}$)/g) && !c.node.hasClass(e.parentNode, "fr-marker") }), !1); n.nextNode();) r(n.currentNode, t) } return { normalize: l, normalizeAroundCursor: function d() { for (var e = [], t = c.el.querySelectorAll(".fr-marker"), n = 0; n < t.length; n++) { for (var r = null, a = c.node.blockParent(t[n]), o = (r = a || t[n]).nextSibling, i = r.previousSibling; o && "BR" === o.tagName;) o = o.nextSibling; for (; i && "BR" === i.tagName;) i = i.previousSibling; r && e.indexOf(r) < 0 && e.push(r), i && e.indexOf(i) < 0 && e.push(i), o && e.indexOf(o) < 0 && e.push(o) } for (var s = 0; s < e.length; s++) l(e[s]) } } }, kt.START_MARKER = '"), kt.END_MARKER = '"), kt.MARKERS = kt.START_MARKER + kt.END_MARKER, kt.MODULES.markers = function (d) { var f = d.$; function l() { if (!d.$wp) return null; try { var e = d.selection.ranges(0), t = e.commonAncestorContainer; if (t !== d.el && !d.$el.contains(t)) return null; var n = e.cloneRange(), r = e.cloneRange(); n.collapse(!0); var a = f(d.doc.createElement("SPAN")).addClass("fr-marker").attr("style", "display: none; line-height: 0;").html(kt.INVISIBLE_SPACE).get(0); if (n.insertNode(a), a = d.$el.find("span.fr-marker").get(0)) { for (var o = a.nextSibling; o && o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length;) f(o).remove(), o = d.$el.find("span.fr-marker").get(0).nextSibling; return d.selection.clear(), d.selection.get().addRange(r), a } return null } catch (i) {} } function c() { d.$el.find(".fr-marker").remove() } return { place: function p(e, t, n) { var r, a, o; try { var i = e.cloneRange(); if (i.collapse(t), i.insertNode(function l(e, t) { var n = f(d.doc.createElement("SPAN")); return n.addClass("fr-marker").attr("data-id", t).attr("data-type", e).attr("style", "display: ".concat(d.browser.safari ? "none" : "inline-block", "; line-height: 0;")).html(kt.INVISIBLE_SPACE), n.get(0) }(t, n)), !0 === t) for (o = (r = d.$el.find('span.fr-marker[data-type="true"][data-id="'.concat(n, '"]')).get(0)).nextSibling; o && o.nodeType === Node.TEXT_NODE && 0 === o.textContent.length;) f(o).remove(), o = r.nextSibling; if (!0 === t && !e.collapsed) { for (; !d.node.isElement(r.parentNode) && !o;) - 1 < /\bfa\b/g.test(r.parentNode.className) && "I" === r.parentNode.tagName ? f(r.parentNode).before(r) : f(r.parentNode).after(r), o = r.nextSibling; if (o && o.nodeType === Node.ELEMENT_NODE && d.node.isBlock(o) && "HR" !== o.tagName) { for (a = [o]; o = a[0], (a = d.node.contents(o))[0] && d.node.isBlock(a[0]);); f(o).prepend(f(r)) } } if (!1 === t && !e.collapsed) { if ((o = (r = d.$el.find('span.fr-marker[data-type="false"][data-id="'.concat(n, '"]')).get(0)).previousSibling) && o.nodeType === Node.ELEMENT_NODE && d.node.isBlock(o) && "HR" !== o.tagName) { for (a = [o]; o = a[a.length - 1], (a = d.node.contents(o))[a.length - 1] && d.node.isBlock(a[a.length - 1]);); f(o).append(f(r)) }(r.parentNode && 0 <= ["TD", "TH"].indexOf(r.parentNode.tagName) || !r.previousSibling && d.node.isBlock(r.parentElement)) && (r.parentNode.previousSibling && !r.previousSibling ? f(r.parentNode.previousSibling).append(r) : 0 <= ["TD", "TH"].indexOf(r.parentNode.tagName) && r.parentNode.firstChild === r && (r.parentNode.previousSibling ? f(r.parentNode.previousSibling).append(r) : r.parentNode.parentNode && r.parentNode.parentNode.previousSibling && f(r.parentNode.parentNode.previousSibling).append(r))) } var s = d.$el.find('span.fr-marker[data-type="'.concat(t, '"][data-id="').concat(n, '"]')).get(0); return s && (s.style.display = "none"), s } catch (c) { return null } }, insert: l, split: function i() { d.selection.isCollapsed() || d.selection.remove(); var e = d.$el.find(".fr-marker").get(0); if (e || (e = l()), !e) return null; var t = d.node.deepestParent(e); if (t || (t = d.node.blockParent(e)) && "LI" !== t.tagName && (t = null), t) if (d.node.isBlock(t) && d.node.isEmpty(t)) "LI" !== t.tagName || t.parentNode.firstElementChild !== t || d.node.isEmpty(t.parentNode) ? f(t).replaceWith('') : f(t).append(''); else if (d.cursor.isAtStart(e, t)) f(t).before(''), f(e).remove(); else if (d.cursor.isAtEnd(e, t)) f(t).after(''), f(e).remove(); else { for (var n = e, r = "", a = ""; n = n.parentNode, r += d.node.closeTagString(n), a = d.node.openTagString(n) + a, n !== t;); f(e).replaceWith(''); var o = d.node.openTagString(t) + f(t).html() + d.node.closeTagString(t); o = o.replace(/<\/span>/g, "".concat(r, '').concat(a)), f(t).replaceWith(o) } return d.$el.find(".fr-marker").get(0) }, insertAtPoint: function u(e) { var t, n = e.clientX, r = e.clientY; c(); var a = null; if ("undefined" != typeof d.doc.caretPositionFromPoint ? (t = d.doc.caretPositionFromPoint(n, r), (a = d.doc.createRange()).setStart(t.offsetNode, t.offset), a.setEnd(t.offsetNode, t.offset)) : "undefined" != typeof d.doc.caretRangeFromPoint && (t = d.doc.caretRangeFromPoint(n, r), (a = d.doc.createRange()).setStart(t.startContainer, t.startOffset), a.setEnd(t.startContainer, t.startOffset)), null !== a && "undefined" != typeof d.win.getSelection) { var o = d.win.getSelection(); o.removeAllRanges(), o.addRange(a) } else if ("undefined" != typeof d.doc.body.createTextRange) try { (a = d.doc.body.createTextRange()).moveToPoint(n, r); var i = a.duplicate(); i.moveToPoint(n, r), a.setEndPoint("EndToEnd", i), a.select() } catch (s) { return !1 } l() }, remove: c } }, kt.MODULES.selection = function (y) { var L = y.$; function s() { var e = ""; return y.win.getSelection ? e = y.win.getSelection() : y.doc.getSelection ? e = y.doc.getSelection() : y.doc.selection && (e = y.doc.selection.createRange().text), e.toString() } function E() { return y.win.getSelection ? y.win.getSelection() : y.doc.getSelection ? y.doc.getSelection() : y.doc.selection.createRange() } function f(e) { var t = E(), n = []; if (t && t.getRangeAt && t.rangeCount) { n = []; for (var r = 0; r < t.rangeCount; r++) n.push(t.getRangeAt(r)) } else n = y.doc.createRange ? [y.doc.createRange()] : []; return void 0 !== e ? n[e] : n } function _() { var e = E(); try { e.removeAllRanges ? e.removeAllRanges() : e.empty ? e.empty() : e.clear && e.clear() } catch (t) {} } function p(e, t) { var n = e; return n.nodeType === Node.ELEMENT_NODE && 0 < n.childNodes.length && n.childNodes[t] && (n = n.childNodes[t]), n.nodeType === Node.TEXT_NODE && (n = n.parentNode), n } function w() { if (y.$wp) { y.markers.remove(); var e, t, n = f(), r = []; for (t = 0; t < n.length; t++) if (n[t].startContainer !== y.doc || y.browser.msie) { var a = (e = n[t]).collapsed, o = y.markers.place(e, !0, t), i = y.markers.place(e, !1, t); if (void 0 !== o && o || !a || (L(".fr-marker").remove(), y.selection.setAtEnd(y.el)), y.el.normalize(), y.browser.safari && !a) try { (e = y.doc.createRange()).setStartAfter(o), e.setEndBefore(i), r.push(e) } catch (s) {} } if (y.browser.safari && r.length) for (y.selection.clear(), t = 0; t < r.length; t++) y.selection.get().addRange(r[t]) } } function A() { var e, t = y.el.querySelectorAll('.fr-marker[data-type="true"]'); if (!y.$wp) return y.markers.remove(), !1; if (0 === t.length) return !1; if (y.browser.msie || y.browser.edge) for (e = 0; e < t.length; e++) t[e].style.display = "inline-block"; y.core.hasFocus() || y.browser.msie || y.browser.webkit || y.$el.focus(), _(); var n = E(); for (e = 0; e < t.length; e++) { var r = L(t[e]).data("id"), a = t[e], o = y.doc.createRange(), i = y.$el.find('.fr-marker[data-type="false"][data-id="'.concat(r, '"]')); (y.browser.msie || y.browser.edge) && i.css("display", "inline-block"); var s = null; if (0 < i.length) { i = i[0]; try { for (var l = !1, c = a.nextSibling, d = null; c && c.nodeType === Node.TEXT_NODE && 0 === c.textContent.length;) c = (d = c).nextSibling, L(d).remove(); for (var f = i.nextSibling; f && f.nodeType === Node.TEXT_NODE && 0 === f.textContent.length;) f = (d = f).nextSibling, L(d).remove(); if (a.nextSibling === i || i.nextSibling === a) { for (var p = a.nextSibling === i ? a : i, u = p === a ? i : a, h = p.previousSibling; h && h.nodeType === Node.TEXT_NODE && 0 === h.length;) h = (d = h).previousSibling, L(d).remove(); if (h && h.nodeType === Node.TEXT_NODE) for (; h && h.previousSibling && h.previousSibling.nodeType === Node.TEXT_NODE;) h.previousSibling.textContent += h.textContent, h = h.previousSibling, L(h.nextSibling).remove(); for (var g = u.nextSibling; g && g.nodeType === Node.TEXT_NODE && 0 === g.length;) g = (d = g).nextSibling, L(d).remove(); if (g && g.nodeType === Node.TEXT_NODE) for (; g && g.nextSibling && g.nextSibling.nodeType === Node.TEXT_NODE;) g.nextSibling.textContent = g.textContent + g.nextSibling.textContent, g = g.nextSibling, L(g.previousSibling).remove(); if (h && (y.node.isVoid(h) || y.node.isBlock(h)) && (h = null), g && (y.node.isVoid(g) || y.node.isBlock(g)) && (g = null), h && g && h.nodeType === Node.TEXT_NODE && g.nodeType === Node.TEXT_NODE) { L(a).remove(), L(i).remove(); var m = h.textContent.length; h.textContent += g.textContent, L(g).remove(), y.spaces.normalize(h), o.setStart(h, m), o.setEnd(h, m), l = !0 } else !h && g && g.nodeType === Node.TEXT_NODE ? (L(a).remove(), L(i).remove(), y.opts.htmlUntouched || y.spaces.normalize(g), s = L(y.doc.createTextNode("​")).get(0), L(g).before(s), o.setStart(g, 0), o.setEnd(g, 0), l = !0) : !g && h && h.nodeType === Node.TEXT_NODE && (L(a).remove(), L(i).remove(), y.opts.htmlUntouched || y.spaces.normalize(h), s = L(y.doc.createTextNode("​")).get(0), L(h).after(s), o.setStart(h, h.textContent.length), o.setEnd(h, h.textContent.length), l = !0) } if (!l) { var v = void 0, b = void 0; b = (y.browser.chrome || y.browser.edge) && a.nextSibling === i ? (v = T(i, o, !0) || o.setStartAfter(i), T(a, o, !1) || o.setEndBefore(a)) : (a.previousSibling === i && (i = (a = i).nextSibling), i.nextSibling && "BR" === i.nextSibling.tagName || !i.nextSibling && y.node.isBlock(a.previousSibling) || a.previousSibling && "BR" === a.previousSibling.tagName || (a.style.display = "inline", i.style.display = "inline", s = L(y.doc.createTextNode("​")).get(0)), v = T(a, o, !0) || L(a).before(s) && o.setStartBefore(a), T(i, o, !1) || L(i).after(s) && o.setEndAfter(i)), "function" == typeof v && v(), "function" == typeof b && b() } } catch (C) {} } s && L(s).remove(); try { n.addRange(o) } catch (C) {} } y.markers.remove() } function T(e, t, n) { var r, a = e.previousSibling, o = e.nextSibling; return a && o && a.nodeType === Node.TEXT_NODE && o.nodeType === Node.TEXT_NODE ? (r = a.textContent.length, n ? (o.textContent = a.textContent + o.textContent, L(a).remove(), L(e).remove(), y.opts.htmlUntouched || y.spaces.normalize(o), function () { t.setStart(o, r) }) : (a.textContent += o.textContent, L(o).remove(), L(e).remove(), y.opts.htmlUntouched || y.spaces.normalize(a), function () { t.setEnd(a, r) })) : a && !o && a.nodeType === Node.TEXT_NODE ? (r = a.textContent.length, n ? (y.opts.htmlUntouched || y.spaces.normalize(a), function () { t.setStart(a, r) }) : (y.opts.htmlUntouched || y.spaces.normalize(a), function () { t.setEnd(a, r) })) : !(!o || a || o.nodeType !== Node.TEXT_NODE) && (n ? (y.opts.htmlUntouched || y.spaces.normalize(o), function () { t.setStart(o, 0) }) : (y.opts.htmlUntouched || y.spaces.normalize(o), function () { t.setEnd(o, 0) })) } function S() { for (var e = f(), t = 0; t < e.length; t++) if (!e[t].collapsed) return !1; return !0 } function a(e) { var t, n, r = !1, a = !1; if (y.win.getSelection) { var o = y.win.getSelection(); o.rangeCount && ((n = (t = o.getRangeAt(0)).cloneRange()).selectNodeContents(e), n.setEnd(t.startContainer, t.startOffset), r = i(n), n.selectNodeContents(e), n.setStart(t.endContainer, t.endOffset), a = i(n)) } else y.doc.selection && "Control" !== y.doc.selection.type && ((n = (t = y.doc.selection.createRange()).duplicate()).moveToElementText(e), n.setEndPoint("EndToStart", t), r = i(n), n.moveToElementText(e), n.setEndPoint("StartToEnd", t), a = i(n)); return { atStart: r, atEnd: a } } function i(e) { return "" === e.toString().replace(/[\u200B-\u200D\uFEFF]/g, "") } function k(e, t) { void 0 === t && (t = !0); var n = L(e).html(); n && n.replace(/\u200b/g, "").length !== n.length && L(e).html(n.replace(/\u200b/g, "")); for (var r = y.node.contents(e), a = 0; a < r.length; a++) r[a].nodeType !== Node.ELEMENT_NODE ? L(r[a]).remove() : (k(r[a], 0 === a), 0 === a && (t = !1)); if (e.nodeType === Node.TEXT_NODE) { var o = L(document.createElement("span")).attr("data-first", "true").attr("data-text", "true"); L(e)[0].replaceWith(o[0]) } else t && L(e).attr("data-first", !0) } function x() { return 0 === L(this).find("fr-inner").length } function u() { try { if (!y.$wp) return !1; for (var e = f(0).commonAncestorContainer; e && !y.node.isElement(e);) e = e.parentNode; return !!y.node.isElement(e) } catch (t) { return !1 } } function r(e, t) { if (!e || 0 < e.getElementsByClassName("fr-marker").length) return !1; for (var n = e.firstChild; n && (y.node.isBlock(n) || t && !y.node.isVoid(n) && n.nodeType === Node.ELEMENT_NODE);) n = (e = n).firstChild; e.innerHTML = kt.MARKERS + e.innerHTML } function o(e, t) { if (!e || 0 < e.getElementsByClassName("fr-marker").length) return !1; for (var n = e.lastChild; n && (y.node.isBlock(n) || t && !y.node.isVoid(n) && n.nodeType === Node.ELEMENT_NODE);) n = (e = n).lastChild; var r = y.doc.createElement("SPAN"); for (r.setAttribute("id", "fr-sel-markers"), r.innerHTML = kt.MARKERS; e.parentNode && y.opts.htmlAllowedEmptyTags && 0 <= y.opts.htmlAllowedEmptyTags.indexOf(e.tagName.toLowerCase());) e = e.parentNode; e.appendChild(r); var a = e.querySelector("#fr-sel-markers"); a.outerHTML = a.innerHTML } return { text: s, get: E, ranges: f, clear: _, element: function l() { var e = E(); try { if (e.rangeCount) { var t, n = f(0), r = n.startContainer; if (y.node.isElement(r) && 0 === n.startOffset && r.childNodes.length) for (; r.childNodes.length && r.childNodes[0].nodeType === Node.ELEMENT_NODE;) r = r.childNodes[0]; if (r.nodeType === Node.TEXT_NODE && n.startOffset === (r.textContent || "").length && r.nextSibling && (r = r.nextSibling), r.nodeType === Node.ELEMENT_NODE) { var a = !1; if (0 < r.childNodes.length && r.childNodes[n.startOffset]) { for (t = r.childNodes[n.startOffset]; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) t = t.nextSibling; if (t && t.textContent.replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && (r = t, a = !0), !a && 1 < r.childNodes.length && 0 < n.startOffset && r.childNodes[n.startOffset - 1]) { for (t = r.childNodes[n.startOffset - 1]; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) t = t.nextSibling; t && t.textContent.replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && (r = t, a = !0) } } else !n.collapsed && r.nextSibling && r.nextSibling.nodeType === Node.ELEMENT_NODE && (t = r.nextSibling) && t.textContent.replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && (r = t, a = !0); !a && 0 < r.childNodes.length && L(r.childNodes[0]).text().replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && ["BR", "IMG", "HR"].indexOf(r.childNodes[0].tagName) < 0 && (r = r.childNodes[0]) } for (; r.nodeType !== Node.ELEMENT_NODE && r.parentNode;) r = r.parentNode; for (var o = r; o && "HTML" !== o.tagName;) { if (o === y.el) return r; o = L(o).parent()[0] } } } catch (i) {} return y.el }, endElement: function c() { var e = E(); try { if (e.rangeCount) { var t, n = f(0), r = n.endContainer; if (r.nodeType === Node.ELEMENT_NODE) { var a = !1; 0 < r.childNodes.length && r.childNodes[n.endOffset] && L(r.childNodes[n.endOffset]).text() === s() ? (r = r.childNodes[n.endOffset], a = !0) : !n.collapsed && r.previousSibling && r.previousSibling.nodeType === Node.ELEMENT_NODE ? (t = r.previousSibling) && t.textContent.replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && (r = t, a = !0) : !n.collapsed && 0 < r.childNodes.length && r.childNodes[n.endOffset] && (t = r.childNodes[n.endOffset].previousSibling).nodeType === Node.ELEMENT_NODE && t && t.textContent.replace(/\u200B/g, "") === s().replace(/\u200B/g, "") && (r = t, a = !0), !a && 0 < r.childNodes.length && L(r.childNodes[r.childNodes.length - 1]).text() === s() && ["BR", "IMG", "HR"].indexOf(r.childNodes[r.childNodes.length - 1].tagName) < 0 && (r = r.childNodes[r.childNodes.length - 1]) } for (r.nodeType === Node.TEXT_NODE && 0 === n.endOffset && r.previousSibling && r.previousSibling.nodeType === Node.ELEMENT_NODE && (r = r.previousSibling); r.nodeType !== Node.ELEMENT_NODE && r.parentNode;) r = r.parentNode; for (var o = r; o && "HTML" !== o.tagName;) { if (o === y.el) return r; o = L(o).parent()[0] } } } catch (i) {} return y.el }, save: w, restore: A, isCollapsed: S, isFull: function d() { if (S()) return !1; y.selection.save(); var e, t = y.el.querySelectorAll("td, th, img, br"); for (e = 0; e < t.length; e++)(t[e].nextSibling || "IMG" === t[e].tagName) && (t[e].innerHTML = ''.concat(t[e].innerHTML)); var n = !1, r = a(y.el); for (r.atStart && r.atEnd && (n = !0), t = y.el.querySelectorAll(".fr-mk"), e = 0; e < t.length; e++) t[e].parentNode.removeChild(t[e]); return y.selection.restore(), n }, inEditor: u, remove: function R() { if (S()) return !0; var e; function t(e) { for (var t = e.previousSibling; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) { var n = t; t = t.previousSibling, L(n).remove() } return t } function n(e) { for (var t = e.nextSibling; t && t.nodeType === Node.TEXT_NODE && 0 === t.textContent.length;) { var n = t; t = t.nextSibling, L(n).remove() } return t } w(); var r = y.$el.find('.fr-marker[data-type="true"]'); for (e = 0; e < r.length; e++) for (var a = r[e]; !(t(a) || y.node.isBlock(a.parentNode) || y.$el.is(a.parentNode) || y.node.hasClass(a.parentNode, "fr-inner"));) L(a.parentNode).before(a); var o = y.$el.find('.fr-marker[data-type="false"]'); for (e = 0; e < o.length; e++) { for (var i = o[e]; !(n(i) || y.node.isBlock(i.parentNode) || y.$el.is(i.parentNode) || y.node.hasClass(i.parentNode, "fr-inner"));) L(i.parentNode).after(i); i.parentNode && y.node.isBlock(i.parentNode) && y.node.isEmpty(i.parentNode) && !y.$el.is(i.parentNode) && !y.node.hasClass(i.parentNode, "fr-inner") && y.opts.keepFormatOnDelete && L(i.parentNode).after(i) } if (function C() { for (var e = y.$el.find(".fr-marker"), t = 0; t < e.length; t++) if (L(e[t]).parentsUntil('.fr-element, [contenteditable="true"]', '[contenteditable="false"]').length) return !1; return !0 }()) { ! function E(e, t) { var n = y.node.contents(e.get(0)); 0 <= ["TD", "TH"].indexOf(e.get(0).tagName) && 1 === e.find(".fr-marker").length && (y.node.hasClass(n[0], "fr-marker") || "BR" == n[0].tagName && y.node.hasClass(n[0].nextElementSibling, "fr-marker")) && e.attr("data-del-cell", !0); for (var r = 0; r < n.length; r++) { var a = n[r]; y.node.hasClass(a, "fr-marker") ? t = (t + 1) % 2 : t ? 0 < L(a).find(".fr-marker").length ? t = E(L(a), t) : ["TD", "TH"].indexOf(a.tagName) < 0 && !y.node.hasClass(a, "fr-inner") ? !y.opts.keepFormatOnDelete || 0 < y.$el.find("[data-first]").length || y.node.isVoid(a) ? L(a).remove() : k(a) : y.node.hasClass(a, "fr-inner") ? 0 === L(a).find(".fr-inner").length ? L(a).html("
    ") : L(a).find(".fr-inner").filter(x).html("
    ") : (L(a).empty(), L(a).attr("data-del-cell", !0)) : 0 < L(a).find(".fr-marker").length && (t = E(L(a), t)) } return t }(y.$el, 0); var s = y.$el.find('[data-first="true"]'); if (s.length) y.$el.find(".fr-marker").remove(), s.append(kt.INVISIBLE_SPACE + kt.MARKERS).removeAttr("data-first"), s.attr("data-text") && s.replaceWith(s.html()); else for (y.$el.find("table").filter(function () { return 0 < L(this).find("[data-del-cell]").length && L(this).find("[data-del-cell]").length === L(this).find("td, th").length }).remove(), y.$el.find("[data-del-cell]").removeAttr("data-del-cell"), r = y.$el.find('.fr-marker[data-type="true"]'), e = 0; e < r.length; e++) { var l = r[e], c = l.nextSibling, d = y.$el.find('.fr-marker[data-type="false"][data-id="'.concat(L(l).data("id"), '"]')).get(0); if (d) { if (l && (!c || c !== d)) { var f = y.node.blockParent(l), p = y.node.blockParent(d), u = !1, h = !1; if (f && 0 <= ["UL", "OL"].indexOf(f.tagName) && (u = !(f = null)), p && 0 <= ["UL", "OL"].indexOf(p.tagName) && (h = !(p = null)), L(l).after(d), f !== p) if (null !== f || u) if (null !== p || h || 0 !== L(f).parentsUntil(y.$el, "table").length) f && p && 0 === L(f).parentsUntil(y.$el, "table").length && 0 === L(p).parentsUntil(y.$el, "table").length && !L(f).contains(p) && !L(p).contains(f) && (L(f).append(L(p).html()), L(p).remove()); else { for (c = f; !c.nextSibling && c.parentNode !== y.el;) c = c.parentNode; for (c = c.nextSibling; c && "BR" !== c.tagName;) { var g = c.nextSibling; L(f).append(c), c = g } c && "BR" === c.tagName && L(c).remove() } else { var m = y.node.deepestParent(l); m ? (L(m).after(L(p).html()), L(p).remove()) : 0 === L(p).parentsUntil(y.$el, "table").length && (L(l).next().after(L(p).html()), L(p).remove()) } } } else d = L(l).clone().attr("data-type", !1), L(l).after(d) } } y.$el.find("li:empty").remove(), y.opts.keepFormatOnDelete || y.html.fillEmptyBlocks(), y.html.cleanEmptyTags(!0), y.opts.htmlUntouched || (y.clean.lists(), y.$el.find("li:empty").append("
    "), y.spaces.normalize()); var v = y.$el.find(".fr-marker").last().get(0), b = y.$el.find(".fr-marker").first().get(0); void 0 !== v && void 0 !== b && !v.nextSibling && b.previousSibling && "BR" === b.previousSibling.tagName && y.node.isElement(v.parentNode) && y.node.isElement(b.parentNode) && y.$el.append("
    "), A() }, blocks: function h(e) { var t, n, r = [], a = E(); if (u() && a.rangeCount) { var o = f(); for (t = 0; t < o.length; t++) { var i = o[t], s = p(i.startContainer, i.startOffset), l = p(i.endContainer, i.endOffset); (y.node.isBlock(s) || y.node.hasClass(s, "fr-inner")) && r.indexOf(s) < 0 && r.push(s), (n = y.node.blockParent(s)) && r.indexOf(n) < 0 && r.push(n); for (var c = [], d = s; d !== l && d !== y.el;) c.indexOf(d) < 0 && d.children && d.children.length ? (c.push(d), d = d.children[0]) : d.nextSibling ? d = d.nextSibling : d.parentNode && (d = d.parentNode, c.push(d)), y.node.isBlock(d) && c.indexOf(d) < 0 && r.indexOf(d) < 0 && (d !== l || 0 < i.endOffset) && r.push(d); y.node.isBlock(l) && r.indexOf(l) < 0 && 0 < i.endOffset && r.push(l), (n = y.node.blockParent(l)) && r.indexOf(n) < 0 && r.push(n) } } for (t = r.length - 1; 0 < t; t--) if (L(r[t]).find(r).length) { if (e && L(r[t]).find("ul, ol").length) continue; r.splice(t, 1) } return r }, info: a, setAtEnd: o, setAtStart: r, setBefore: function g(e, t) { void 0 === t && (t = !0); for (var n = e.previousSibling; n && n.nodeType === Node.TEXT_NODE && 0 === n.textContent.length;) n = n.previousSibling; return n ? (y.node.isBlock(n) ? o(n) : "BR" === n.tagName ? L(n).before(kt.MARKERS) : L(n).after(kt.MARKERS), !0) : !!t && (y.node.isBlock(e) ? r(e) : L(e).before(kt.MARKERS), !0) }, setAfter: function m(e, t) { void 0 === t && (t = !0); for (var n = e.nextSibling; n && n.nodeType === Node.TEXT_NODE && 0 === n.textContent.length;) n = n.nextSibling; return n ? (y.node.isBlock(n) ? r(n) : L(n).before(kt.MARKERS), !0) : !!t && (y.node.isBlock(e) ? o(e) : L(e).after(kt.MARKERS), !0) }, rangeElement: p } }, Object.assign(kt.DEFAULTS, { language: null }), kt.LANGUAGE = {}, kt.MODULES.language = function (e) { var t; return { _init: function n() { kt.LANGUAGE && (t = kt.LANGUAGE[e.opts.language]), t && t.direction && (e.opts.direction = t.direction) }, translate: function r(e) { return t && t.translation[e] && t.translation[e].length ? t.translation[e] : e } } }, Object.assign(kt.DEFAULTS, { placeholderText: "Type something" }), kt.MODULES.placeholder = function (f) { var p = f.$; function e() { f.$placeholder || function d() { f.$placeholder = p(f.doc.createElement("SPAN")).addClass("fr-placeholder"), f.$wp.append(f.$placeholder) }(); var e = f.opts.iframe ? f.$iframe.prev().outerHeight(!0) : f.$el.prev().outerHeight(!0), t = 0, n = 0, r = 0, a = 0, o = 0, i = 0, s = f.node.contents(f.el), l = p(f.selection.element()).css("text-align"); if (s.length && s[0].nodeType === Node.ELEMENT_NODE) { var c = p(s[0]); (0 < f.$wp.prev().length || 0 < f.$el.prev().length) && f.ready && (t = f.helpers.getPX(c.css("margin-top")), a = f.helpers.getPX(c.css("padding-top")), n = f.helpers.getPX(c.css("margin-left")), r = f.helpers.getPX(c.css("margin-right")), o = f.helpers.getPX(c.css("padding-left")), i = f.helpers.getPX(c.css("padding-right"))), f.$placeholder.css("font-size", c.css("font-size")), f.$placeholder.css("line-height", c.css("line-height")) } else f.$placeholder.css("font-size", f.$el.css("font-size")), f.$placeholder.css("line-height", f.$el.css("line-height")); f.$wp.addClass("show-placeholder"), f.$placeholder.css( { marginTop: Math.max(f.helpers.getPX(f.$el.css("margin-top")), t) + (e || 0), paddingTop: Math.max(f.helpers.getPX(f.$el.css("padding-top")), a), paddingLeft: Math.max(f.helpers.getPX(f.$el.css("padding-left")), o), marginLeft: Math.max(f.helpers.getPX(f.$el.css("margin-left")), n), paddingRight: Math.max(f.helpers.getPX(f.$el.css("padding-right")), i), marginRight: Math.max(f.helpers.getPX(f.$el.css("margin-right")), r), textAlign: l }).text(f.language.translate(f.opts.placeholderText || f.$oel.attr("placeholder") || "")), f.$placeholder.html(f.$placeholder.text().replace(/\n/g, "
    ")) } function t() { f.$wp.removeClass("show-placeholder") } function n() { if (!f.$wp) return !1; f.core.isEmpty() ? e() : t() } return { _init: function r() { if (!f.$wp) return !1; f.events.on("init input keydown keyup contentChanged initialized", n) }, show: e, hide: t, refresh: n, isVisible: function a() { return !f.$wp || f.node.hasClass(f.$wp.get(0), "show-placeholder") } } }, kt.UNICODE_NBSP = String.fromCharCode(160), kt.VOID_ELEMENTS = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "menuitem", "meta", "param", "source", "track", "wbr"], kt.BLOCK_TAGS = ["address", "article", "aside", "audio", "blockquote", "canvas", "details", "dd", "div", "dl", "dt", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "li", "main", "nav", "noscript", "ol", "output", "p", "pre", "section", "table", "tbody", "td", "tfoot", "th", "thead", "tr", "ul", "video"], Object.assign(kt.DEFAULTS, { htmlAllowedEmptyTags: ["textarea", "a", "iframe", "object", "video", "style", "script", ".fa", ".fr-emoticon", ".fr-inner", "path", "line", "hr"], htmlDoNotWrapTags: ["script", "style"], htmlSimpleAmpersand: !1, htmlIgnoreCSSProperties: [], htmlExecuteScripts: !0 }), kt.MODULES.html = function (x) { var h = x.$; function d() { return x.opts.enter === kt.ENTER_P ? "p" : x.opts.enter === kt.ENTER_DIV ? "div" : x.opts.enter === kt.ENTER_BR ? null : void 0 } function s(e, t) { return !(!e || e === x.el) && (t ? -1 != ["PRE", "SCRIPT", "STYLE"].indexOf(e.tagName) || s(e.parentNode, t) : -1 !== ["PRE", "SCRIPT", "STYLE"].indexOf(e.tagName)) } function o(e) { var t, n = [], r = []; if (e) { var a = x.el.querySelectorAll(".fr-marker"); for (t = 0; t < a.length; t++) { var o = x.node.blockParent(a[t]) || a[t]; if (o) { var i = o.nextSibling, s = o.previousSibling; o && r.indexOf(o) < 0 && x.node.isBlock(o) && r.push(o), s && x.node.isBlock(s) && r.indexOf(s) < 0 && r.push(s), i && x.node.isBlock(i) && r.indexOf(i) < 0 && r.push(i) } } } else r = x.el.querySelectorAll(p()); var l = p(); for (l += ",".concat(kt.VOID_ELEMENTS.join(",")), l += ", .fr-inner", l += ",".concat(x.opts.htmlAllowedEmptyTags.join(":not(.fr-marker),"), ":not(.fr-marker)"), t = r.length - 1; 0 <= t; t--) if (!(r[t].textContent && 0 < r[t].textContent.replace(/\u200B|\n/g, "").length || 0 < r[t].querySelectorAll(l).length)) { for (var c = x.node.contents(r[t]), d = !1, f = 0; f < c.length; f++) if (c[f].nodeType !== Node.COMMENT_NODE && c[f].textContent && 0 < c[f].textContent.replace(/\u200B|\n/g, "").length) { d = !0; break } d || n.push(r[t]) } return n } function p() { return kt.BLOCK_TAGS.join(", ") } function e(e) { var t, n, r = h.merge([], kt.VOID_ELEMENTS); r = h.merge(r, x.opts.htmlAllowedEmptyTags), r = void 0 === e ? h.merge(r, kt.BLOCK_TAGS) : h.merge(r, kt.NO_DELETE_TAGS), t = x.el.querySelectorAll("*:empty:not(".concat(r.join("):not("), "):not(.fr-marker):not(template)")); do { n = !1; for (var a = 0; a < t.length; a++) 0 !== t[a].attributes.length && void 0 === t[a].getAttribute("href") || (t[a].parentNode.removeChild(t[a]), n = !0); t = x.el.querySelectorAll("*:empty:not(".concat(r.join("):not("), "):not(.fr-marker):not(template)")) } while (t.length && n) } function i(e, t) { var n = d(); if (t && (n = "div"), n) { for (var r = x.doc.createDocumentFragment(), a = null, o = !1, i = e.firstChild, s = !1; i;) { var l = i.nextSibling; if (i.nodeType === Node.ELEMENT_NODE && (x.node.isBlock(i) || 0 <= x.opts.htmlDoNotWrapTags.indexOf(i.tagName.toLowerCase()) && !x.node.hasClass(i, "fr-marker"))) a = null, r.appendChild(i.cloneNode(!0)); else if (i.nodeType !== Node.ELEMENT_NODE && i.nodeType !== Node.TEXT_NODE) a = null, r.appendChild(i.cloneNode(!0)); else if ("BR" === i.tagName) null === a ? (a = x.doc.createElement(n), s = !0, t && (a.setAttribute("class", "fr-temp-div"), a.setAttribute("data-empty", !0)), a.appendChild(i.cloneNode(!0)), r.appendChild(a)) : !1 === o && (a.appendChild(x.doc.createElement("br")), t && (a.setAttribute("class", "fr-temp-div"), a.setAttribute("data-empty", !0))), a = null; else { var c = i.textContent; i.nodeType !== Node.TEXT_NODE || 0 < c.replace(/\n/g, "").replace(/(^ *)|( *$)/g, "").length || c.replace(/(^ *)|( *$)/g, "").length && c.indexOf("\n") < 0 ? (null === a && (a = x.doc.createElement(n), s = !0, t && a.setAttribute("class", "fr-temp-div"), r.appendChild(a), o = !1), a.appendChild(i.cloneNode(!0)), o || x.node.hasClass(i, "fr-marker") || i.nodeType === Node.TEXT_NODE && 0 === c.replace(/ /g, "").length || (o = !0)) : s = !0 } i = l } s && (e.innerHTML = "", e.appendChild(r)) } } function l(e, t) { for (var n = e.length - 1; 0 <= n; n--) i(e[n], t) } function t(e, t, n, r, a) { if (!x.$wp) return !1; void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === n && (n = !1), void 0 === r && (r = !1), void 0 === a && (a = !1); var o = x.$wp.scrollTop(); i(x.el, e), r && l(x.el.querySelectorAll(".fr-inner"), e), t && l(x.el.querySelectorAll("td, th"), e), n && l(x.el.querySelectorAll("blockquote"), e), a && l(x.el.querySelectorAll("li"), e), o !== x.$wp.scrollTop() && x.$wp.scrollTop(o) } function n(e) { if (void 0 === e && (e = x.el), e && 0 <= ["SCRIPT", "STYLE", "PRE"].indexOf(e.tagName)) return !1; for (var t = x.doc.createTreeWalker(e, NodeFilter.SHOW_TEXT, x.node.filter(function (e) { return null !== e.textContent.match(/([ \n]{2,})|(^[ \n]{1,})|([ \n]{1,}$)/g) }), !1); t.nextNode();) { var n = t.currentNode; if (!s(n.parentNode, !0)) { var r = x.node.isBlock(n.parentNode) || x.node.isElement(n.parentNode), a = n.textContent.replace(/(?!^)( ){2,}(?!$)/g, " ").replace(/\n/g, " ").replace(/^[ ]{2,}/g, " ").replace(/[ ]{2,}$/g, " "); if (r) { var o = n.previousSibling, i = n.nextSibling; o && i && " " === a ? a = x.node.isBlock(o) && x.node.isBlock(i) ? "" : " " : (o || (a = a.replace(/^ */, "")), i || (a = a.replace(/ *$/, ""))) } n.textContent = a } } } function r(e, t, n) { var r = new RegExp(t, "gi").exec(e); return r ? r[n] : null } function R(e) { var t = e.doctype, n = ""; return t && (n = "")), n } function c(e) { var t = e.parentNode; if (t && (x.node.isBlock(t) || x.node.isElement(t)) && ["TD", "TH"].indexOf(t.tagName) < 0) { for (var n = e.previousSibling, r = e.nextSibling; n && (n.nodeType === Node.TEXT_NODE && 0 === n.textContent.replace(/\n|\r/g, "").length || x.node.hasClass(n, "fr-tmp"));) n = n.previousSibling; if (r) return !1; n && t && "BR" !== n.tagName && !x.node.isBlock(n) && !r && 0 < t.textContent.replace(/\u200B/g, "").length && 0 < n.textContent.length && !x.node.hasClass(n, "fr-marker") && (x.el === t && !r && x.opts.enter === kt.ENTER_BR && x.browser.msie || e.parentNode.removeChild(e)) } else !t || x.node.isBlock(t) || x.node.isElement(t) || e.previousSibling || e.nextSibling || !x.node.isDeletable(e.parentNode) || c(e.parentNode) } function g() { x.opts.htmlUntouched || (e(), t(), n(), x.spaces.normalize(null, !0), x.html.fillEmptyBlocks(), x.clean.lists(), x.clean.tables(), x.clean.toHTML5(), x.html.cleanBRs()), x.selection.restore(), a(), x.placeholder.refresh() } function a() { x.node.isEmpty(x.el) && (null !== d() ? x.el.querySelector(p()) || x.el.querySelector("".concat(x.opts.htmlDoNotWrapTags.join(":not(.fr-marker),"), ":not(.fr-marker)")) || (x.core.hasFocus() ? (x.$el.html("<".concat(d(), ">").concat(kt.MARKERS, "
    ")), x.selection.restore()) : x.$el.html("<".concat(d(), ">
    "))) : x.el.querySelector("*:not(.fr-marker):not(br)") || (x.core.hasFocus() ? (x.$el.html("".concat(kt.MARKERS, "
    ")), x.selection.restore()) : x.$el.html("
    "))) } function m(e, t) { return r(e, "<".concat(t, "[^>]*?>([\\w\\W]*)"), 1) } function v(e, t) { var n = h("
    ]*?)>"), 1) || "", ">")); return x.node.rawAttributes(n.get(0)) } function b(e) { return (r(e, "]*?)>", 0) || "").replace(/\n/g, " ").replace(/ {2,}/g, " ") } function C(e, t) { x.opts.htmlExecuteScripts ? e.html(t) : e.get(0).innerHTML = t } function M(e) { var t; (t = /:not\(([^)]*)\)/g).test(e) && (e = e.replace(t, " $1 ")); var n = 100 * (e.match(/(#[^\s+>~.[:]+)/g) || []).length + 10 * (e.match(/(\[[^]]+\])/g) || []).length + 10 * (e.match(/(\.[^\s+>~.[:]+)/g) || []).length + 10 * (e.match(/(:[\w-]+\([^)]*\))/gi) || []).length + 10 * (e.match(/(:[^\s+>~.[:]+)/g) || []).length + (e.match(/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi) || []).length; return n += ((e = (e = e.replace(/[*\s+>~]/g, " ")).replace(/[#.]/g, " ")).match(/([^\s+>~.[:]+)/g) || []).length } function O(e) { if (x.events.trigger("html.processGet", [e]), e && e.getAttribute && "" === e.getAttribute("class") && e.removeAttribute("class"), e && e.getAttribute && "" === e.getAttribute("style") && e.removeAttribute("style"), e && e.nodeType === Node.ELEMENT_NODE) { var t, n = e.querySelectorAll('[class=""],[style=""]'); for (t = 0; t < n.length; t++) { var r = n[t]; "" === r.getAttribute("class") && r.removeAttribute("class"), "" === r.getAttribute("style") && r.removeAttribute("style") } if ("BR" === e.tagName) c(e); else { var a = e.querySelectorAll("br"); for (t = 0; t < a.length; t++) c(a[t]) } } } function N(e, t) { return e[3] - t[3] } function I() { for (var e = x.el.querySelectorAll("input, textarea"), t = 0; t < e.length; t++) "checkbox" !== e[t].type && "radio" !== e[t].type || (e[t].checked ? e[t].setAttribute("checked", e[t].checked) : x.$(e[t]).removeAttr("checked")), e[t].getAttribute("value") && e[t].setAttribute("value", e[t].value) } function f(e) { var t = x.doc.createElement("div"); return t.innerHTML = e, null !== t.querySelector(p()) } function u(e) { var t = null; if (void 0 === e && (t = x.selection.element()), x.opts.keepFormatOnDelete) return !1; var n, r, a = t ? (t.textContent.match(/\u200B/g) || []).length - t.querySelectorAll(".fr-marker").length : 0; if ((x.el.textContent.match(/\u200B/g) || []).length - x.el.querySelectorAll(".fr-marker").length === a) return !1; do { r = !1, n = x.el.querySelectorAll("*:not(.fr-marker)"); for (var o = 0; o < n.length; o++) { var i = n[o]; if (t !== i) { var s = i.textContent; 0 === i.children.length && 1 === s.length && 8203 === s.charCodeAt(0) && "TD" !== i.tagName && (h(i).remove(), r = !0) } } } while (r) } function E() { u(), x.placeholder && setTimeout(x.placeholder.refresh, 0) } return { defaultTag: d, isPreformatted: s, emptyBlocks: o, emptyBlockTagsQuery: function y() { return "".concat(kt.BLOCK_TAGS.join(":empty, "), ":empty") }, blockTagsQuery: p, fillEmptyBlocks: function L(e) { var t = o(e); x.node.isEmpty(x.el) && x.opts.enter === kt.ENTER_BR && t.push(x.el); for (var n = 0; n < t.length; n++) { var r = t[n]; "false" === r.getAttribute("contenteditable") || r.querySelector("".concat(x.opts.htmlAllowedEmptyTags.join(":not(.fr-marker),"), ":not(.fr-marker)")) || x.node.isVoid(r) || "TABLE" !== r.tagName && "TBODY" !== r.tagName && "TR" !== r.tagName && "UL" !== r.tagName && "OL" !== r.tagName && r.appendChild(x.doc.createElement("br")) } if (x.browser.msie && x.opts.enter === kt.ENTER_BR) { var a = x.node.contents(x.el); a.length && a[a.length - 1].nodeType === Node.TEXT_NODE && x.$el.append("
    ") } }, cleanEmptyTags: e, cleanWhiteTags: u, cleanBlankSpaces: n, blocks: function _() { return x.$el.get(0).querySelectorAll(p()) }, getDoctype: R, set: function w(e) { var t = x.clean.html((e || "").trim(), [], [], x.opts.fullPage), n = new RegExp("%3A//", "g"), r = t.replace(n, "://"); if (x.opts.fullPage) { var a = m(r, "body") || (0 <= r.indexOf("", s = v(r, "head"), l = h("
    "); l.append(i).contents().each(function () { (this.nodeType === Node.COMMENT_NODE || 0 <= ["BASE", "LINK", "META", "NOSCRIPT", "SCRIPT", "STYLE", "TEMPLATE", "TITLE"].indexOf(this.tagName)) && this.parentNode.removeChild(this) }); var c = l.html().trim(); i = h("
    ").append(i).contents().map(function () { return this.nodeType === Node.COMMENT_NODE ? "") : 0 <= ["BASE", "LINK", "META", "NOSCRIPT", "SCRIPT", "STYLE", "TEMPLATE", "TITLE"].indexOf(this.tagName) ? this.outerHTML : "" }).toArray().join(""); var d = b(r), f = v(r, "html"); C(x.$el, "".concat(c, "\n").concat(a)), x.node.clearAttributes(x.el), x.$el.attr(o), x.$el.addClass("fr-view"), x.$el.attr("spellcheck", x.opts.spellcheck), x.$el.attr("dir", x.opts.direction), C(x.$head, i), x.node.clearAttributes(x.$head.get(0)), x.$head.attr(s), x.node.clearAttributes(x.$html.get(0)), x.$html.attr(f), x.iframe_document.doctype.parentNode.replaceChild(function u(e, t) { var n = e.match(//i); return n ? t.implementation.createDocumentType(n[1], n[3], n[4]) : t.implementation.createDocumentType("html") }(d, x.iframe_document), x.iframe_document.doctype) } else C(x.$el, r); var p = x.edit.isDisabled(); x.edit.on(), x.core.injectStyle(x.opts.iframeDefaultStyle + x.opts.iframeStyle), g(), x.opts.useClasses || (x.$el.find("[fr-original-class]").each(function () { this.setAttribute("class", this.getAttribute("fr-original-class")), this.removeAttribute("fr-original-class") }), x.$el.find("[fr-original-style]").each(function () { this.setAttribute("style", this.getAttribute("fr-original-style")), this.removeAttribute("fr-original-style") })), p && x.edit.off(), x.events.trigger("html.set"), x.events.trigger("charCounter.update") }, syncInputs: I, get: function D(e, t) { if (!x.$wp) return x.$oel.clone().removeClass("fr-view").removeAttr("contenteditable").get(0).outerHTML; var n = ""; x.events.trigger("html.beforeGet"); var r, a, o = [], i = {}, s = []; if (I(), !x.opts.useClasses && !t) { var l = new RegExp("^".concat(x.opts.htmlIgnoreCSSProperties.join("$|^"), "$"), "gi"); for (r = 0; r < x.doc.styleSheets.length; r++) { var c = void 0, d = 0; try { c = x.doc.styleSheets[r].cssRules, x.doc.styleSheets[r].ownerNode && "STYLE" === x.doc.styleSheets[r].ownerNode.nodeType && (d = 1) } catch (k) {} if (c) for (var f = 0, p = c.length; f < p; f++) if (c[f].selectorText && 0 < c[f].style.cssText.length) { var u = c[f].selectorText.replace(/body |\.fr-view /g, "").replace(/::/g, ":"), h = void 0; try { h = x.el.querySelectorAll(u) } catch (k) { h = [] } for (a = 0; a < h.length; a++) { !h[a].getAttribute("fr-original-style") && h[a].getAttribute("style") ? (h[a].setAttribute("fr-original-style", h[a].getAttribute("style")), o.push(h[a])) : h[a].getAttribute("fr-original-style") || (h[a].setAttribute("fr-original-style", ""), o.push(h[a])), i[h[a]] || (i[h[a]] = {}); for (var g = 1e3 * d + M(c[f].selectorText), m = c[f].style.cssText.split(";"), v = 0; v < m.length; v++) { var b = m[v].trim().split(":")[0]; if (b && !b.match(l) && (i[h[a]][b] || (i[h[a]][b] = 0) <= (h[a].getAttribute("fr-original-style") || "").indexOf("".concat(b, ":")) && (i[h[a]][b] = 1e4), g >= i[h[a]][b] && (i[h[a]][b] = g, m[v].trim().length))) { var C = m[v].trim().split(":"); C.splice(0, 1), s.push([h[a], b.trim(), C.join(":").trim(), g]) } } } } } for (s.sort(N), r = 0; r < s.length; r++) { var E = s[r]; E[0].style[E[1]] = E[2] } for (r = 0; r < o.length; r++) if (o[r].getAttribute("class") && (o[r].setAttribute("fr-original-class", o[r].getAttribute("class")), o[r].removeAttribute("class")), 0 < (o[r].getAttribute("fr-original-style") || "").trim().length) { var y = o[r].getAttribute("fr-original-style").split(";"); for (a = 0; a < y.length; a++) if (0 < y[a].indexOf(":")) { var L = y[a].split(":"), _ = L[0]; L.splice(0, 1), o[r].style[_.trim()] = L.join(":").trim() } } } if (x.node.isEmpty(x.el)) x.opts.fullPage && (n = R(x.iframe_document), n += "").concat(x.$html.find("head").get(0).outerHTML, "")); else if (void 0 === e && (e = !1), x.opts.fullPage) { n = R(x.iframe_document), x.$el.removeClass("fr-view"); var w = x.opts.heightMin, A = x.opts.height, T = x.opts.heightMax; x.opts.heightMin = null, x.opts.height = null, x.opts.heightMax = null, x.size.refresh(), n += "").concat(x.$html.html(), ""), x.opts.heightMin = w, x.opts.height = A, x.opts.heightMax = T, x.size.refresh(), x.$el.addClass("fr-view") } else n = x.$el.html(); if (!x.opts.useClasses && !t) for (r = 0; r < o.length; r++) o[r].getAttribute("fr-original-class") && (o[r].setAttribute("class", o[r].getAttribute("fr-original-class")), o[r].removeAttribute("fr-original-class")), null !== o[r].getAttribute("fr-original-style") && void 0 !== o[r].getAttribute("fr-original-style") ? (0 !== o[r].getAttribute("fr-original-style").length ? o[r].setAttribute("style", o[r].getAttribute("fr-original-style")) : o[r].removeAttribute("style"), o[r].removeAttribute("fr-original-style")) : o[r].removeAttribute("style"); x.opts.fullPage && (n = (n = (n = (n = (n = (n = (n = (n = n.replace(/")); for (var t = 0; t < i.opts.iframeStyleFiles.length; t++) { var n = r('')); n.get(0).addEventListener("load", i.size.syncIframe), i.$head.append(n) } } }, hasFocus: function l() { return i.browser.mozilla && i.helpers.isMobile() ? i.selection.inEditor() : i.node.hasFocus(i.el) || 0 < i.$el.find("*:focus").length }, sameInstance: function c(e) { if (!e) return !1; var t = e.data("instance"); return !!t && t.id === i.id } } }, kt.POPUP_TEMPLATES = { "text.edit": "[_EDIT_]" }, kt.RegisterTemplate = function (e, t) { kt.POPUP_TEMPLATES[e] = t }, kt.MODULES.popups = function (u) { var r, d = u.$; u.shared.popups || (u.shared.popups = {}); var h, g = u.shared.popups; function m(e, t) { t.isVisible() || (t = u.$sc), t.is(g[e].data("container")) || (g[e].data("container", t), t.append(g[e])) } function a(e) { var t; e.find(".fr-upload-progress").addClass("fr-height-set"), e.find(".fr-upload-progress").removeClass("fr-height-auto"), u.popups.get("filesManager.insert").removeClass("fr-height-auto"), e.find(".fr-files-upload-layer").hasClass("fr-active") && (t = 1), e.find(".fr-files-by-url-layer").hasClass("fr-active") && (t = 2), e.find(".fr-files-embed-layer").hasClass("fr-active") && (t = 3), e.find(".fr-upload-progress-layer").get(0).clientHeight + 10 < e.find(".fr-upload-progress").get(0).clientHeight && e.find(".fr-upload-progress").addClass("fr-height-auto"), 400 < e[0].clientHeight && (e[0].childNodes[4].style.height = "".concat(e[0].clientHeight - (e[0].childNodes[0].clientHeight + e[0].childNodes[t].clientHeight) - 80, "px")) } var o = 2e3; function i() { d(this).toggleClass("fr-not-empty", !0) } function s() { var e = d(this); e.toggleClass("fr-not-empty", "" !== e.val()) } function v(e) { return g[e] && u.node.hasClass(g[e], "fr-active") && u.core.sameInstance(g[e]) || !1 } function b(e) { for (var t in g) if (Object.prototype.hasOwnProperty.call(g, t) && v(t) && (void 0 === e || g[t].data("instance") === e)) return g[t]; return !1 } function n(e) { var t = null; if (t = "string" != typeof e ? e : g[e], "filesManager.insert" === e && u.filesManager !== undefined && u.filesManager.isChildWindowOpen()) return !1; if (t && u.node.hasClass(t, "fr-active") && (t.removeClass("fr-active fr-above"), u.events.trigger("popups.hide.".concat(e)), u.$tb && (1 < u.opts.zIndex ? u.$tb.css("zIndex", u.opts.zIndex + 1) : u.$tb.css("zIndex", "")), u.events.disableBlur(), t.find("input, textarea, button").each(function () { this === this.ownerDocument.activeElement && this.blur() }), t.find("input, textarea").attr("disabled", "disabled"), h)) for (var n = 0; n < h.length; n++) d(h[n]).removeClass("fr-btn-active-popup") } function C(e) { for (var t in void 0 === e && (e = []), g) Object.prototype.hasOwnProperty.call(g, t) && e.indexOf(t) < 0 && n(t) } function t() { u.shared.exit_flag = !0 } function E() { u.shared.exit_flag = !1 } function l() { return u.shared.exit_flag } function c(e, t) { var n, r = function c(e, t) { var n = kt.POPUP_TEMPLATES[e]; if (!n) return null; for (var r in "function" == typeof n && (n = n.apply(u)), t) Object.prototype.hasOwnProperty.call(t, r) && (n = n.replace("[_".concat(r.toUpperCase(), "_]"), t[r])); return n }(e, t), a = d(u.doc.createElement("DIV")); if (!r) return "filesManager.insert" === e ? a.addClass("fr-popup fr-files-manager fr-empty") : a.addClass("fr-popup fr-empty"), (n = d("body").first()).append(a), a.data("container", n), g[e] = a; "filesManager.insert" === e ? a.addClass("fr-popup fr-files-manager".concat(u.helpers.isMobile() ? " fr-mobile" : " fr-desktop").concat(u.opts.toolbarInline ? " fr-inline" : "")) : a.addClass("fr-popup".concat(u.helpers.isMobile() ? " fr-mobile" : " fr-desktop").concat(u.opts.toolbarInline ? " fr-inline" : "")), a.html(r), u.opts.theme && a.addClass("".concat(u.opts.theme, "-theme")), 1 < u.opts.zIndex && (!u.opts.editInPopup && u.$tb ? u.$tb.css("z-index", u.opts.zIndex + 2) : a.css("z-index", u.opts.zIndex + 2)), "auto" !== u.opts.direction && a.removeClass("fr-ltr fr-rtl").addClass("fr-".concat(u.opts.direction)), a.find("input, textarea").attr("dir", u.opts.direction).attr("disabled", "disabled"), (n = d("body").first()).append(a), a.data("container", n); var o = (g[e] = a).find(".fr-color-hex-layer"); if (0 < o.length) { var i = u.helpers.getPX(a.find(".fr-color-set > span").css("width")), s = u.helpers.getPX(o.css("paddingLeft")), l = u.helpers.getPX(o.css("paddingRight")); o.css("width", i * u.opts.colorsStep + s + l) } return u.button.bindCommands(a, !1), a } function y(a) { var o = g[a]; return { _windowResize: function () { var e = o.data("instance") || u; !e.helpers.isMobile() && o.isVisible() && (e.events.disableBlur(), e.popups.hide(a), e.events.enableBlur()) }, _inputFocus: function (e) { var t = o.data("instance") || u, n = d(e.currentTarget); if (n.is("input:file") && n.closest(".fr-layer").addClass("fr-input-focus"), e.preventDefault(), e.stopPropagation(), setTimeout(function () { t.events.enableBlur() }, 100), t.helpers.isMobile()) { var r = d(t.o_win).scrollTop(); setTimeout(function () { d(t.o_win).scrollTop(r) }, 0) } }, _inputBlur: function (e) { var t = o.data("instance") || u, n = d(e.currentTarget); n.is("input:file") && n.closest(".fr-layer").removeClass("fr-input-focus"), document.activeElement !== this && d(this).isVisible() && (t.events.blurActive() && t.events.trigger("blur"), t.events.enableBlur()) }, _editorKeydown: function (e) { var t = o.data("instance") || u; t.keys.ctrlKey(e) || e.which === kt.KEYCODE.ALT || e.which === kt.KEYCODE.ESC || (v(a) && o.findVisible(".fr-back").length ? t.button.exec(o.findVisible(".fr-back").first()) : e.which !== kt.KEYCODE.ALT && t.popups.hide(a)) }, _preventFocus: function (e) { var t = o.data("instance") || u, n = e.originalEvent ? e.originalEvent.target || e.originalEvent.originalTarget : null; "mouseup" === e.type || d(n).is(":focus") || t.events.disableBlur(), "mouseup" !== e.type || d(n).hasClass("fr-command") || 0 < d(n).parents(".fr-command").length || d(n).hasClass("fr-dropdown-content") || u.button.hideActiveDropdowns(o), (u.browser.safari || u.browser.mozilla) && "mousedown" === e.type && d(n).is("input[type=file]") && t.events.disableBlur(); var r = "input, textarea, button, select, label, .fr-command"; if (n && !d(n).is(r) && 0 === d(n).parents(r).length) return e.stopPropagation(), !1; n && d(n).is(r) && e.stopPropagation(), E() }, _editorMouseup: function () { o.isVisible() && l() && 0 < o.findVisible("input:focus, textarea:focus, button:focus, select:focus").length && u.events.disableBlur() }, _windowMouseup: function (e) { if (!u.core.sameInstance(o)) return !0; var t = o.data("instance") || u; o.isVisible() && l() && (e.stopPropagation(), t.markers.remove(), t.popups.hide(a), E()) }, _windowKeydown: function (e) { if (!u.core.sameInstance(o)) return !0; var t = o.data("instance") || u, n = e.which; if (kt.KEYCODE.ESC === n) { if (t.popups.isVisible(a) && t.opts.toolbarInline) return e.stopPropagation(), t.popups.isVisible(a) && (o.findVisible(".fr-back").length ? (t.button.exec(o.findVisible(".fr-back").first()), t.accessibility.focusPopupButton(o)) : o.findVisible(".fr-dismiss").length ? t.button.exec(o.findVisible(".fr-dismiss").first()) : (t.popups.hide(a), t.toolbar.showInline(null, !0), t.accessibility.focusPopupButton(o))), !1; if (t.popups.isVisible(a)) return o.findVisible(".fr-back").length ? (t.button.exec(o.findVisible(".fr-back").first), t.accessibility.focusPopupButton(o)) : o.findVisible(".fr-dismiss").length ? t.button.exec(o.findVisible(".fr-dismiss").first()) : (t.popups.hide(a), t.accessibility.focusPopupButton(o)), !1 } }, _repositionPopup: function () { if (!u.opts.height && !u.opts.heightMax || u.opts.toolbarInline) return !0; if (u.$wp && v(a) && o.parent().get(0) === u.$sc.get(0)) { var e = o.offset().top - u.$wp.offset().top, t = u.$wp.outerHeight(); u.node.hasClass(o.get(0), "fr-above") && (e += o.outerHeight()); var n = u.image.getEl(), r = n && n.get(0).getBoundingClientRect().top; (!u.opts.iframe && n && n.offset().top > t || t < e || e < 0) && (t + 100 < r || r < -90) ? o.addClass("fr-hidden"): o.removeClass("fr-hidden") } }, handleWindowClick: function (e) { if (!u.core.sameInstance(o)) return !0; var t = o.data("instance") || u; o.isVisible() && e.target && (0 < d(e.target).find("body").length || "BODY" === d(e.target)[0].tagName) && (e.stopPropagation(), t.popups.hide(a)) } } } function f(e, t) { u.events.on("mouseup", e._editorMouseup, !0), u.$wp && u.events.on("keydown", e._editorKeydown), u.events.on("focus", function () { g[t].removeClass("focused") }), u.events.on("blur", function () { b() && u.markers.remove(), u.helpers.isMobile() ? g[t].hasClass("focused") ? (C(), g[t].removeClass("focused")) : g[t].addClass("focused") : g[t].find("iframe").length || C() }), u.$wp && !u.helpers.isMobile() && u.events.$on(u.$wp, "scroll.popup".concat(t), e._repositionPopup), u.events.on("window.mouseup", e._windowMouseup, !0), u.events.on("window.keydown", e._windowKeydown, !0), u.opts.iframe && window.addEventListener("click", e.handleWindowClick), g[t].data("inst".concat(u.id), !0), u.events.on("destroy", function () { u.core.sameInstance(g[t]) && (d("body").first().append(g[t]), g[t].removeClass("fr-active")) }, !0) } function p() { var e = d(this).prev().children().first(); e.attr("checked", !e.attr("checked")) } function e() { for (var e in g) if (Object.prototype.hasOwnProperty.call(g, e)) { var t = g[e]; t && (t.html("").removeData().remove(), g[e] = null) } g = [] } return u.shared.exit_flag = !1, { _init: function L() { r = window.innerHeight, u.events.on("shared.destroy", e, !0), u.events.on("window.mousedown", t), u.events.on("window.touchmove", E), u.events.$on(d(u.o_win), "scroll", E), u.events.on("mousedown", function (e) { b() && (e.stopPropagation(), u.$el.find(".fr-marker").remove(), t(), u.events.disableBlur()) }) }, create: function _(e, t) { var n = c(e, t), r = y(e); f(r, e), u.events.$on(n, "mousedown mouseup touchstart touchend touch", "*", r._preventFocus, !0), u.events.$on(n, "focus", "input, textarea, button, select", r._inputFocus, !0), u.events.$on(n, "blur", "input, textarea, button, select", r._inputBlur, !0); var a = n.find("input, textarea"); return function o(e) { for (var t = 0; t < e.length; t++) { var n = e[t], r = d(n); 0 === r.next().length && r.attr("placeholder") && (r.after('")), r.attr("placeholder", "")) } }(a), u.events.$on(a, "focus", i), u.events.$on(a, "blur change", s), u.events.$on(n, "click", ".fr-checkbox + label", p), u.accessibility.registerPopup(e), u.helpers.isIOS() && u.events.$on(n, "touchend", "label", function () { d("#".concat(d(this).attr("for"))).prop("checked", function (e, t) { return !t }) }, !0), u.events.$on(d(u.o_win), "resize", r._windowResize, !0), "filesManager.insert" === e && g["filesManager.insert"].css("zIndex", 2147483641), n }, get: function w(e) { var t = g[e]; return t && !t.data("inst".concat(u.id)) && f(y(e), e), t }, show: function A(e, t, n, r, a) { if (v(e) || (b() && 0 < u.$el.find(".fr-marker").length ? (u.events.disableBlur(), u.selection.restore()) : b() || (u.events.disableBlur(), u.events.focus(), u.events.enableBlur())), C([e]), !g[e]) return !1; var o = u.button.getButtons(".fr-dropdown.fr-active"); o.removeClass("fr-active").attr("aria-expanded", !1).parents(".fr-toolbar").css("zIndex", "").find("> .fr-dropdown-wrapper").css("height", ""), o.next().attr("aria-hidden", !0).css("overflow", "").find("> .fr-dropdown-wrapper").css("height", ""), g[e].data("instance", u), u.$tb && u.$tb.data("instance", u); var i = v(e); g[e].addClass("fr-active").removeClass("fr-hidden").find("input, textarea").removeAttr("disabled"); var s = g[e].data("container"); if (function p(e, t) { t.isVisible() || (t = u.$sc), t.contains([g[e].get(0)]) || t.append(g[e]) }(e, s), u.opts.toolbarInline && s && u.$tb && s.get(0) === u.$tb.get(0) && (m(e, u.$sc), n = u.$tb.offset().top - u.helpers.getPX(u.$tb.css("margin-top")), t = u.$tb.offset().left + u.$tb.outerWidth() / 2, u.node.hasClass(u.$tb.get(0), "fr-above") && n && (n += u.$tb.outerHeight()), r = 0), s = g[e].data("container"), u.opts.iframe && !r && !i) { var l = u.helpers.getPX(u.$wp.find(".fr-iframe").css("padding-top")), c = u.helpers.getPX(u.$wp.find(".fr-iframe").css("padding-left")); t && (t -= u.$iframe.offset().left + c), n && (n -= u.$iframe.offset().top + l) } s.is(u.$tb) ? u.$tb.css("zIndex", (u.opts.zIndex || 1) + 4) : g[e].css("zIndex", (u.opts.zIndex || 1) + 3), u.opts.toolbarBottom && s && u.$tb && s.get(0) === u.$tb.get(0) && (g[e].addClass("fr-above"), n && (n -= g[e].outerHeight())), a && (t -= g[e].width() / 2), t + g[e].outerWidth() > u.$sc.offset().left + u.$sc.width() && (t -= t + g[e].outerWidth() - u.$sc.offset().left - u.$sc.width()), t < u.$sc.offset().left && "rtl" === u.opts.direction && (t = u.$sc.offset().left), g[e].removeClass("fr-active"), u.position.at(t, n, g[e], r || 0); var d = u.node.blockParent(u.selection.blocks()[0]); if (d && "false" === d.getAttribute("contenteditable")) g[e].removeClass("fr-active"); else { var f = u.selection.element().parentElement.getAttribute("contenteditable"); f && "false" === f ? g[e].removeClass("fr-active") : g[e].addClass("fr-active") } i || u.accessibility.focusPopup(g[e]), u.opts.toolbarInline && u.toolbar.hide(), u.$tb && (h = u.$tb.find(".fr-btn-active-popup")), u.events.trigger("popups.show.".concat(e)), y(e)._repositionPopup(), E() }, hide: n, onHide: function T(e, t) { u.events.on("popups.hide.".concat(e), t) }, hideAll: C, setContainer: m, refresh: function S(e) { g[e].data("instance", u), u.events.trigger("popups.refresh.".concat(e)); for (var t = g[e].find(".fr-command"), n = 0; n < t.length; n++) { var r = d(t[n]); 0 === r.parents(".fr-dropdown-menu").length && u.button.refresh(r) } }, onRefresh: function k(e, t) { u.events.on("popups.refresh.".concat(e), t) }, onShow: function x(e, t) { u.events.on("popups.show.".concat(e), t) }, isVisible: v, setFileListHeight: a, areVisible: b, setPopupDimensions: function R(e, t) { t && e.find(".fr-upload-progress-layer").get(0).clientHeight < o && (e.find(".fr-upload-progress").addClass("fr-height-auto"), u.popups.get("filesManager.insert").addClass("fr-height-auto"), e.find(".fr-upload-progress").removeClass("fr-height-set"), o = 2e3), e.get(0).clientHeight > window.innerHeight / 2 && (window.innerWidth < 500 ? e.get(0).clientHeight > .6 * r && a(e) : 400 < e.get(0).clientHeight && a(e), o = e.find(".fr-upload-progress-layer").get(0).clientHeight); var n = window.innerWidth; switch (!0) { case n <= 320: e.width(200); break; case n <= 420: e.width(250); break; case n <= 520: e.width(300); break; case n <= 720: e.width(400); break; case 720 < n: e.width(530) } } } }, kt.MODULES.accessibility = function (f) { var p = f.$, o = !0; function l(t) { for (var e = f.$el.find('[contenteditable="true"]'), n = !1, r = 0; e.get(r);) p(e.get(r)).is(":focus") && (n = !0), r++; if (t && t.length && !n) { t.data("blur-event-set") || t.parents(".fr-popup").length || (f.events.$on(t, "blur", function () { var e = t.parents(".fr-toolbar, .fr-popup").data("instance") || f; e.events.blurActive() && !f.core.hasFocus() && e.events.trigger("blur"), setTimeout(function () { e.events.enableBlur() }, 100) }, !0), t.data("blur-event-set", !0)); var a = t.parents(".fr-toolbar, .fr-popup").data("instance") || f; f.browser.safari && (f.shared.safariSelection = f.selection.get().getRangeAt(0).cloneRange()), a.events.disableBlur(), t.get(0).focus(), f.shared.$f_el = t } } function u(e, t) { var n = t ? "last" : "first", r = s(g(e))[n](); if (r.length) return l(r), !0 } function i(e) { return e.is("input, textarea, select") && t(), f.events.disableBlur(), e.get(0).focus(), !0 } function h(e, t) { var n = e.find("input, textarea, button, select").filter(function () { return p(this).isVisible() }).not(":disabled"); if ((n = t ? n.last() : n.first()).length) return i(n); if (f.shared.with_kb) { var r = e.findVisible(".fr-active-item").first(); if (r.length) return i(r); var a = e.findVisible("[tabIndex]").first(); if (a.length) return i(a) } } function t() { 0 === f.$el.find(".fr-marker").length && f.core.hasFocus() && f.selection.save() } function c() { var e = f.popups.areVisible(); if (e) { var t = e.find(".fr-buttons"); return t.find("button:focus, .fr-group span:focus").length ? !u(e.data("instance").$tb) : !u(t) } return !u(f.$tb) } function d() { var e = null; return f.shared.$f_el.is(".fr-dropdown.fr-active") ? e = f.shared.$f_el : f.shared.$f_el.closest(".fr-dropdown-menu").prev().is(".fr-dropdown.fr-active") && (e = f.shared.$f_el.closest(".fr-dropdown-menu").prev()), e } function s(e) { for (var t = -1, n = 0; n < e.length; n++) p(e[n]).hasClass("fr-open") && (t = n); var r = e.index(f.$tb.find(".fr-more-toolbar.fr-expanded > button.fr-command").first()); if (0 < r && -1 !== t) { var a = e.slice(r, e.length), o = (e = e.slice(0, r)).slice(0, t + 1), i = e.slice(t + 1, e.length); e = o; for (var s = 0; s < a.length; s++) e.push(a[s]); for (var l = 0; l < i.length; l++) e.push(i[l]) } return e } function g(e) { return e.findVisible("button:not(.fr-disabled), .fr-group span.fr-command").filter(function (e) { var t = p(e).parents(".fr-more-toolbar"); return 0 === t.length || 0 < t.length && t.hasClass("fr-expanded") }) } function n(e, t, n) { if (f.shared.$f_el) { var r = d(); r && (f.button.click(r), f.shared.$f_el = r); var a = s(g(e)), o = a.index(f.shared.$f_el); if (0 === o && !n || o === a.length - 1 && n) { var i; if (t) { if (e.parent().is(".fr-popup")) i = !h(e.parent().children().not(".fr-buttons"), !n); !1 === i && (f.shared.$f_el = null) } t && !1 === i || u(e, !n) } else l(p(a.get(o + (n ? 1 : -1)))); return !1 } } function m(e, t) { return n(e, t, !0) } function v(e, t) { return n(e, t) } function b(e) { if (f.shared.$f_el) { var t; if (f.shared.$f_el.is(".fr-dropdown.fr-active")) return l(t = e ? f.shared.$f_el.next().find(".fr-command:not(.fr-disabled)").first() : f.shared.$f_el.next().find(".fr-command:not(.fr-disabled)").last()), !1; if (f.shared.$f_el.is("a.fr-command")) return (t = e ? f.shared.$f_el.closest("li").nextAllVisible().first().find(".fr-command:not(.fr-disabled)").first() : f.shared.$f_el.closest("li").prevAllVisible().first().find(".fr-command:not(.fr-disabled)").first()).length || (t = e ? f.shared.$f_el.closest(".fr-dropdown-menu").find(".fr-command:not(.fr-disabled)").first() : f.shared.$f_el.closest(".fr-dropdown-menu").find(".fr-command:not(.fr-disabled)").last()), l(t), !1 } } function C() { if (f.shared.$f_el) { if (f.shared.$f_el.hasClass("fr-dropdown")) f.button.click(f.shared.$f_el); else if (f.shared.$f_el.is("button.fr-back")) { f.opts.toolbarInline && (f.events.disableBlur(), f.events.focus()); var e = f.popups.areVisible(f); e && (f.shared.with_kb = !1), f.button.click(f.shared.$f_el), y(e) } else { if (f.events.disableBlur(), f.button.click(f.shared.$f_el), f.shared.$f_el.attr("data-group-name")) { var t = f.$tb.find('.fr-more-toolbar[data-name="'.concat(f.shared.$f_el.attr("data-group-name"), '"]')), n = f.shared.$f_el; t.hasClass("fr-expanded") && (n = t.findVisible("button:not(.fr-disabled)").first()), n && l(n) } else if (f.shared.$f_el.attr("data-popup")) { var r = f.popups.areVisible(f); r && r.data("popup-button", f.shared.$f_el) } else if (f.shared.$f_el.attr("data-modal")) { var a = f.modals.areVisible(f); a && a.data("modal-button", f.shared.$f_el) } f.shared.$f_el = null } return !1 } } function E() { f.shared.$f_el && (f.events.disableBlur(), f.shared.$f_el.blur(), f.shared.$f_el = null), !1 !== f.events.trigger("toolbar.focusEditor") && (f.events.disableBlur(), f.$el.get(0).focus(), f.events.focus()) } function a(c) { c && c.length && (f.events.$on(c, "keydown", function (e) { if (!p(e.target).is("a.fr-command, button.fr-command, .fr-group span.fr-command")) return !0; var t = c.parents(".fr-popup").data("instance") || c.data("instance") || f; if (f.shared.with_kb = !0, f.browser.safari && f.shared.safariSelection) { var n = f.shared.safariSelection, r = n.startContainer, a = n.endContainer, o = n.startOffset, i = n.endOffset, s = f.doc.createRange(); s.setStart(r, o), s.setEnd(a, i), f.selection.get().addRange(s) } var l = t.accessibility.exec(e, c); return f.shared.with_kb = !1, l }, !0), f.events.$on(c, "mouseenter", "[tabIndex]", function (e) { var t = c.parents(".fr-popup").data("instance") || c.data("instance") || f; if (!o) return e.stopPropagation(), void e.preventDefault(); var n = p(e.currentTarget); t.shared.$f_el && t.shared.$f_el.not(n) && t.accessibility.focusEditor() }, !0), f.$tb && f.events.$on(f.$tb, "transitionend", ".fr-more-toolbar", function () { f.shared.$f_el = p(document.activeElement) })) } function y(e) { var t = e.data("popup-button"); t && setTimeout(function () { l(t), e.data("popup-button", null) }, 0) } function L(e) { var t = f.popups.areVisible(e); t && t.data("popup-button", null) } function e(e) { var t = -1 !== navigator.userAgent.indexOf("Mac OS X") ? e.metaKey : e.ctrlKey; if (e.which !== kt.KEYCODE.F10 || t || e.shiftKey || !e.altKey) return !0; f.shared.with_kb = !0; var n = f.popups.areVisible(f), r = !1; return n && (r = h(n.children().not(".fr-buttons"))), r || c(), f.shared.with_kb = !1, e.preventDefault(), e.stopPropagation(), !1 } return { _init: function r() { f.$wp ? f.events.on("keydown", e, !0) : f.events.$on(f.$win, "keydown", e, !0), f.events.on("mousedown", function (e) { L(f), f.shared.$f_el && f.el.isSameNode(f.shared.$f_el[0]) && (f.accessibility.restoreSelection(), e.stopPropagation(), f.events.disableBlur(), f.shared.$f_el = null) }, !0), f.events.on("blur", function () { f.shared.$f_el = null, L(f) }, !0) }, registerPopup: function _(e) { var t = f.popups.get(e), n = function r(c) { var d = f.popups.get(c); return { _tiKeydown: function (e) { var t = d.data("instance") || f; if (!1 === t.events.trigger("popup.tab", [e])) return !1; var n = e.which, r = d.find(":focus").first(); if (kt.KEYCODE.TAB === n) { e.preventDefault(); var a = d.children().not(".fr-buttons"), o = a.findVisible("input, textarea, button, select").not(".fr-no-touch input, .fr-no-touch textarea, .fr-no-touch button, .fr-no-touch select, :disabled").toArray(), i = o.indexOf(this) + (e.shiftKey ? -1 : 1); if (0 <= i && i < o.length) return t.events.disableBlur(), p(o[i]).focus(), e.stopPropagation(), !1; var s = d.find(".fr-buttons"); if (s.length && u(s, Boolean(e.shiftKey))) return e.stopPropagation(), !1; if (h(a)) return e.stopPropagation(), !1 } else { if (kt.KEYCODE.ENTER !== n || !e.target || "TEXTAREA" === e.target.tagName) return kt.KEYCODE.ESC === n ? (e.preventDefault(), e.stopPropagation(), t.accessibility.restoreSelection(), t.popups.isVisible(c) && d.findVisible(".fr-back").length ? (t.opts.toolbarInline && (t.events.disableBlur(), t.events.focus()), t.button.exec(d.findVisible(".fr-back").first()), y(d)) : t.popups.isVisible(c) && d.findVisible(".fr-dismiss").length ? t.button.exec(d.findVisible(".fr-dismiss").first()) : (t.popups.hide(c), t.opts.toolbarInline && t.toolbar.showInline(null, !0), y(d)), !1) : kt.KEYCODE.SPACE === n && (r.is(".fr-submit") || r.is(".fr-dismiss")) ? (e.preventDefault(), e.stopPropagation(), t.events.disableBlur(), t.button.exec(r), !0) : t.keys.isBrowserAction(e) ? void e.stopPropagation() : r.is("input[type=text], textarea") ? void e.stopPropagation() : kt.KEYCODE.SPACE === n && (r.is(".fr-link-attr") || r.is("input[type=file]")) ? void e.stopPropagation() : (e.stopPropagation(), e.preventDefault(), !1); var l = null; 0 < d.findVisible(".fr-submit").length ? l = d.findVisible(".fr-submit").first() : d.findVisible(".fr-dismiss").length && (l = d.findVisible(".fr-dismiss").first()), l && (e.preventDefault(), e.stopPropagation(), t.events.disableBlur(), t.button.exec(l)) } }, _tiMouseenter: function () { var e = d.data("instance") || f; L(e) } } }(e); a(t.find(".fr-buttons")), f.events.$on(t, "mouseenter", "tabIndex", n._tiMouseenter, !0), f.events.$on(t.children().not(".fr-buttons"), "keydown", "[tabIndex]", n._tiKeydown, !0), f.popups.onHide(e, function () { (t.data("instance") || f).accessibility.restoreSelection() }), f.popups.onShow(e, function () { o = !1, setTimeout(function () { o = !0 }, 0) }) }, registerToolbar: a, focusToolbarElement: l, focusToolbar: u, focusContent: h, focusPopup: function w(r) { var a = r.children().not(".fr-buttons"); a.data("mouseenter-event-set") || (f.events.$on(a, "mouseenter", "[tabIndex]", function (e) { var t = r.data("instance") || f; if (!o) return e.stopPropagation(), void e.preventDefault(); var n = a.find(":focus").first(); n.length && !n.is("input, button, textarea, select") && (t.events.disableBlur(), n.blur(), t.events.disableBlur(), t.events.focus()) }), a.data("mouseenter-event-set", !0)), !h(a) && f.shared.with_kb && u(r.find(".fr-buttons")) }, focusModal: function A(e) { f.core.hasFocus() || (f.events.disableBlur(), f.events.focus()), f.accessibility.saveSelection(), f.events.disableBlur(), f.el.blur(), f.selection.clear(), f.events.disableBlur(), f.shared.with_kb ? e.find(".fr-command[tabIndex], [tabIndex]").first().focus() : e.find("[tabIndex]").first().focus() }, focusEditor: E, focusPopupButton: y, focusModalButton: function T(e) { var t = e.data("modal-button"); t && setTimeout(function () { l(t), e.data("modal-button", null) }, 0) }, hasFocus: function S() { return null !== f.shared.$f_el }, exec: function k(e, t) { var n = -1 !== navigator.userAgent.indexOf("Mac OS X") ? e.metaKey : e.ctrlKey, r = e.which, a = !1; return r !== kt.KEYCODE.TAB || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.ARROW_RIGHT || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.TAB || n || !e.shiftKey || e.altKey ? r !== kt.KEYCODE.ARROW_LEFT || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.ARROW_UP || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.ARROW_DOWN || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.ENTER && r !== kt.KEYCODE.SPACE || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.ESC || n || e.shiftKey || e.altKey ? r !== kt.KEYCODE.F10 || n || e.shiftKey || !e.altKey || (a = c()) : a = function o(e) { if (f.shared.$f_el) { var t = d(); return t ? (f.button.click(t), l(t)) : e.parent().findVisible(".fr-back").length ? (f.shared.with_kb = !1, f.opts.toolbarInline && (f.events.disableBlur(), f.events.focus()), f.button.exec(e.parent().findVisible(".fr-back")).first(), y(e.parent())) : f.shared.$f_el.is("button, .fr-group span") && (e.parent().is(".fr-popup") ? (f.accessibility.restoreSelection(), f.shared.$f_el = null, !1 !== f.events.trigger("toolbar.esc") && (f.popups.hide(e.parent()), f.opts.toolbarInline && f.toolbar.showInline(null, !0), y(e.parent()))) : E()), !1 } }(t) : a = C() : a = function i() { return f.shared.$f_el && f.shared.$f_el.is(".fr-dropdown:not(.fr-active)") ? C() : b(!0) }() : a = function s() { return b() }() : a = v(t) : a = v(t, !0) : a = m(t) : a = m(t, !0), f.shared.$f_el || void 0 !== a || (a = !0), !a && f.keys.isBrowserAction(e) && (a = !0), !!a || (e.preventDefault(), e.stopPropagation(), !1) }, saveSelection: t, restoreSelection: function x() { f.$el.find(".fr-marker").length && (f.events.disableBlur(), f.selection.restore(), f.events.enableBlur()) } } }, Object.assign(kt.DEFAULTS, { tooltips: !0 }), kt.MODULES.tooltip = function (s) { var l = s.$; function r() { s.helpers.isMobile() || s.$tooltip && s.$tooltip.removeClass("fr-visible").css("left", "-3000px").css("position", "fixed") } function a(e, t) { if (!s.helpers.isMobile()) { var n = e.attr("id") && e.attr("id").split("-")[0], r = e.attr("title"); if ("trackChanges" === n) r = s.opts.trackChangesEnabled ? "Disable Track Changes" : "Enable Track Changes"; else if ("showChanges" === n) r = s.opts.showChangesEnabled ? "Hide Changes" : "Show Changes"; else if (("applyAll" === n || "removeAll" === n || "applyLast" === n || "removeLast" === n) && 0 === s.track_changes.getPendingChanges().length) return; if (e.data("title", r), e.data("title")) { s.$tooltip || function i() { s.opts.tooltips && !s.helpers.isMobile() && (s.shared.$tooltip ? s.$tooltip = s.shared.$tooltip : (s.shared.$tooltip = l(s.doc.createElement("DIV")).addClass("fr-tooltip"), s.$tooltip = s.shared.$tooltip, s.opts.theme && s.$tooltip.addClass("".concat(s.opts.theme, "-theme")), l(s.o_doc).find("body").first().append(s.$tooltip)), s.events.on("shared.destroy", function () { s.$tooltip.html("").removeData().remove(), s.$tooltip = null }, !0)) }(), e.removeAttr("title"), s.$tooltip.text(s.language.translate(e.data("title"))), s.$tooltip.addClass("fr-visible"); var a = e.offset().left + (e.outerWidth() - s.$tooltip.outerWidth()) / 2; a < 0 && (a = 0), a + s.$tooltip.outerWidth() > l(s.o_win).width() && (a = l(s.o_win).width() - s.$tooltip.outerWidth()), void 0 === t && (t = s.opts.toolbarBottom), e.offset().top - l(window).scrollTop() + e.outerHeight() + 10 >= l(window).height() && (t = !0); var o = t ? e.offset().top - s.$tooltip.height() : e.offset().top + e.outerHeight(); s.$tooltip.css("position", ""), s.$tooltip.css("left", a), s.$tooltip.css("top", Math.ceil(o)), "static" !== l(s.o_doc).find("body").first().css("position") ? (s.$tooltip.css("margin-left", -l(s.o_doc).find("body").first().offset().left), s.$tooltip.css("margin-top", -l(s.o_doc).find("body").first().offset().top)) : (s.$tooltip.css("margin-left", ""), s.$tooltip.css("margin-top", "")) } } } return { hide: r, to: a, bind: function o(e, t, n) { s.opts.tooltips && !s.helpers.isMobile() && (s.events.$on(e, "mouseover", t, function (e) { s.node.hasClass(e.currentTarget, "fr-disabled") || s.edit.isDisabled() || a(l(e.currentTarget), n) }, !0), s.events.$on(e, "mouseout ".concat(s._mousedown, " ").concat(s._mouseup), t, function () { r() }, !0)) } } }, kt.TOOLBAR_VISIBLE_BUTTONS = 3, kt.MODULES.button = function (g) { var h = g.$, i = []; (g.opts.toolbarInline || g.opts.toolbarContainer) && (g.shared.buttons || (g.shared.buttons = []), i = g.shared.buttons); var s = []; function l(e, t, n) { for (var r = h(), a = 0; a < e.length; a++) { var o = h(e[a]); if (o.is(t) && (r = r.add(o)), n && o.is(".fr-dropdown")) { var i = o.next().find(t); r = r.add(i) } } return r } function m(e, t) { var n, r = h(); if (!e) return r; for (n in r = (r = r.add(l(i, e, t))).add(l(s, e, t)), g.shared.popups) if (Object.prototype.hasOwnProperty.call(g.shared.popups, n)) { var a = g.shared.popups[n].children().find(e); r = r.add(a) } for (n in g.shared.modals) if (Object.prototype.hasOwnProperty.call(g.shared.modals, n)) { var o = g.shared.modals[n].$modal.find(e); r = r.add(o) } return r } function a(e) { var t = e.next(), n = g.node.hasClass(e.get(0), "fr-active"), r = m(".fr-dropdown.fr-active").not(e), a = e.parents(".fr-toolbar, .fr-popup").data("instance") || g; a.helpers.isIOS() && !a.el.querySelector(".fr-marker") && (a.selection.save(), a.selection.clear(), a.selection.restore()), t.parents(".fr-more-toolbar").addClass("fr-overflow-visible"); var o = 0, i = 0, s = t.find("> .fr-dropdown-wrapper"); if (!n) { var l = e.data("cmd"); t.find(".fr-command").removeClass("fr-active").attr("aria-selected", !1), kt.COMMANDS[l] && kt.COMMANDS[l].refreshOnShow && kt.COMMANDS[l].refreshOnShow.apply(a, [e, t]), t.css("left", e.offset().left - e.parents(".fr-btn-wrap, .fr-toolbar, .fr-buttons").offset().left - ("rtl" === g.opts.direction ? t.width() - e.outerWidth() : 0)), t.addClass("test-height"), o = t.outerHeight(), i = g.helpers.getPX(s.css("max-height")), t.removeClass("test-height"), t.css("top", "").css("bottom", ""); var c = e.outerHeight() / 10; if (!g.opts.toolbarBottom && t.offset().top + e.outerHeight() + o < h(g.o_doc).height()) t.css("top", e.position().top + e.outerHeight() - c); else { var d = 0, f = e.parents(".fr-more-toolbar"); 0 < f.length && (d = f.first().height()), t.css("bottom", e.parents(".fr-popup, .fr-toolbar").first().height() - d - e.position().top) } }(e.addClass("fr-blink").toggleClass("fr-active"), e.hasClass("fr-options")) && e.prev().toggleClass("fr-expanded"); e.hasClass("fr-active") ? (t.attr("aria-hidden", !1), e.attr("aria-expanded", !0), function u(e, t, n) { n <= t && (e.parent().css("overflow", "auto"), e.parent().css("overflow-x", "hidden")), e.css("height", Math.min(t, n)) }(s, o, i)) : (t.attr("aria-hidden", !0).css("overflow", ""), e.attr("aria-expanded", !1), s.css("height", "")), setTimeout(function () { e.removeClass("fr-blink") }, 300), t.css("margin-left", ""), t.offset().left + t.outerWidth() > g.$sc.offset().left + g.$sc.width() && t.css("margin-left", -(t.offset().left + t.outerWidth() - g.$sc.offset().left - g.$sc.width())), t.offset().left < g.$sc.offset().left && "rtl" === g.opts.direction && t.css("margin-left", g.$sc.offset().left), r.removeClass("fr-active").attr("aria-expanded", !1).next().attr("aria-hidden", !0).css("overflow", "").find("> .fr-dropdown-wrapper").css("height", ""), r.prev(".fr-expanded").removeClass("fr-expanded"), r.parents(".fr-toolbar:not(.fr-inline)").css("zIndex", ""), 0 !== e.parents(".fr-popup").length || g.opts.toolbarInline || (g.node.hasClass(e.get(0), "fr-active") ? g.$tb.css("zIndex", (g.opts.zIndex || 1) + 4) : g.$tb.css("zIndex", "")); var p = t.find("a.fr-command.fr-active").first(); g.helpers.isMobile() || (p.length ? (g.accessibility.focusToolbarElement(p), s.scrollTop(Math.abs(p.parents(".fr-dropdown-content").offset().top - p.offset().top) - p.offset().top)) : (g.accessibility.focusToolbarElement(e), s.scrollTop(0))) } function o(e) { e.addClass("fr-blink"), setTimeout(function () { e.removeClass("fr-blink") }, 500); for (var t = e.data("cmd"), n = []; void 0 !== e.data("param".concat(n.length + 1));) n.push(e.data("param".concat(n.length + 1))); var r = m(".fr-dropdown.fr-active"); r.length && (r.removeClass("fr-active").attr("aria-expanded", !1).next().attr("aria-hidden", !0).css("overflow", "").find("> .fr-dropdown-wrapper").css("height", ""), r.prev(".fr-expanded").removeClass("fr-expanded"), r.parents(".fr-toolbar:not(.fr-inline)").css("zIndex", "")), e.parents(".fr-popup, .fr-toolbar").data("instance").commands.exec(t, n) } function t(e) { var t = e.parents(".fr-popup, .fr-toolbar").data("instance"); if (0 === e.parents(".fr-popup").length && e.data("popup") && !e.hasClass("fr-btn-active-popup") && e.addClass("fr-btn-active-popup"), 0 !== e.parents(".fr-popup").length || e.data("popup") || t.popups.hideAll(), t.popups.areVisible() && !t.popups.areVisible(t)) { for (var n = 0; n < kt.INSTANCES.length; n++) kt.INSTANCES[n] !== t && kt.INSTANCES[n].popups && kt.INSTANCES[n].popups.areVisible() && kt.INSTANCES[n].$el.find(".fr-marker").remove(); t.popups.hideAll() } g.node.hasClass(e.get(0), "fr-dropdown") ? a(e) : (! function r(e) { o(e) }(e), kt.COMMANDS[e.data("cmd")] && !1 !== kt.COMMANDS[e.data("cmd")].refreshAfterCallback && t.button.bulkRefresh()) } function c(e) { t(h(e.currentTarget)) } function d(e) { var t = e.find(".fr-dropdown.fr-active"); t.length && (t.removeClass("fr-active").attr("aria-expanded", !1).next().attr("aria-hidden", !0).css("overflow", "").find("> .fr-dropdown-wrapper").css("height", ""), t.parents(".fr-toolbar:not(.fr-inline)").css("zIndex", ""), t.prev().removeClass("fr-expanded")) } function f(e) { e.preventDefault(), e.stopPropagation() } function p(e) { if (e.stopPropagation(), !g.helpers.isMobile()) return !1 } function v(e) { var t = 1 < arguments.length && arguments[1] !== undefined ? arguments[1] : {}, n = 2 < arguments.length ? arguments[2] : undefined; if (g.helpers.isMobile() && !1 === t.showOnMobile) return ""; var r = t.displaySelection; "function" == typeof r && (r = r(g)); var a = ""; if ("options" !== t.type) if (r) { var o = "function" == typeof t.defaultSelection ? t.defaultSelection(g) : t.defaultSelection; a = '').concat(g.language.translate(o || t.title), "") } else a = g.icon.create(t.icon || e), a += ''.concat(g.language.translate(t.title) || "", ""); var i = t.popup ? ' data-popup="true"' : "", s = t.modal ? ' data-modal="true"' : "", l = g.shortcuts.get("".concat(e, ".")); l = l ? " (".concat(l, ")") : ""; var c = "".concat(e, "-").concat(g.id), d = "dropdown-menu-".concat(c), f = '"); if ("dropdown" === t.type || "options" === t.type) { var p = '" } return t.hasOptions && t.hasOptions.apply(g) && (f = '
    '.concat(f, " ").concat(v(e + "Options", Object.assign( {}, t, { type: "options", hasOptions: !1 }), n), "
    ")), f } function e(a) { var o = g.$tb && g.$tb.data("instance") || g; if (!1 === g.events.trigger("buttons.refresh")) return !0; setTimeout(function () { for (var e = o.selection.inEditor() && o.core.hasFocus(), t = 0; t < a.length; t++) { var n = h(a[t]), r = n.data("cmd"); 0 === n.parents(".fr-popup").length ? e || kt.COMMANDS[r] && kt.COMMANDS[r].forcedRefresh ? o.button.refresh(n) : g.node.hasClass(n.get(0), "fr-dropdown") || (n.removeClass("fr-active"), n.attr("aria-pressed") && n.attr("aria-pressed", !1)) : n.parents(".fr-popup").isVisible() && o.button.refresh(n) } }, 0) } function n() { e(i), e(s) } function r() { i = [], s = [] } g.shared.popup_buttons || (g.shared.popup_buttons = []), s = g.shared.popup_buttons; var u = null; function b() { clearTimeout(u), u = setTimeout(n, 50) } return { _init: function C() { g.opts.toolbarInline ? g.events.on("toolbar.show", n) : (g.events.on("mouseup", b), g.events.on("keyup", b), g.events.on("blur", b), g.events.on("focus", b), g.events.on("contentChanged", b), g.helpers.isMobile() && g.events.$on(g.$doc, "selectionchange", n)), g.events.on("shared.destroy", r) }, build: v, buildList: function E(e, t) { for (var n = "", r = 0; r < e.length; r++) { var a = e[r], o = kt.COMMANDS[a]; o && "undefined" != typeof o.plugin && g.opts.pluginsEnabled.indexOf(o.plugin) < 0 || (o ? n += v(a, o, void 0 === t || 0 <= t.indexOf(a)) : "|" === a ? n += '' : "-" === a && (n += '')) } return n }, buildGroup: function y(e) { var t = "", n = ""; for (var r in e) { var a = e[r]; if (a.buttons) { for (var o = "", i = "", s = 0, l = "left", c = kt.TOOLBAR_VISIBLE_BUTTONS, d = 0; d < a.buttons.length; d++) { var f = a.buttons[d], p = kt.COMMANDS[f]; p || ("|" == f ? o += '' : "-" == f && (o += '')), !p || p && "undefined" != typeof p.plugin && g.opts.pluginsEnabled.indexOf(p.plugin) < 0 || (e[r].align !== undefined && (l = e[r].align), e[r].buttonsVisible !== undefined && (c = e[r].buttonsVisible), e.showMoreButtons && c <= s ? i += v(f, p, !0) : o += v(f, p, !0), s++) } if (e.showMoreButtons && c < s) { var u = r, h = kt.COMMANDS[u]; h.more_btn = !0, o += v(u, h, !0) } "trackChanges" !== r && (t += '
    ').concat(o, "
    ")), e.showMoreButtons && 0 < i.length && (n += '
    ').concat(i, "
    ")) } } return g.opts.toolbarBottom ? g.helpers.isMobile() ? '
    '.concat(n, "
    ").concat(t, "
    ") : "".concat(n, '
    ').concat(t) : "".concat(t, '
    ').concat(n) }, bindCommands: function L(t, e) { g.events.bindClick(t, ".fr-command:not(.fr-disabled)", c), g.events.$on(t, "".concat(g._mousedown, " ").concat(g._mouseup, " ").concat(g._move), ".fr-dropdown-menu", f, !0), g.events.$on(t, "".concat(g._mousedown, " ").concat(g._mouseup, " ").concat(g._move), ".fr-dropdown-menu .fr-dropdown-wrapper", p, !0); var n = t.get(0).ownerDocument, r = "defaultView" in n ? n.defaultView : n.parentWindow; function a(e) { (!e || e.type === g._mouseup && e.target !== h("html").get(0) || "keydown" === e.type && (g.keys.isCharacter(e.which) && !g.keys.ctrlKey(e) || e.which === kt.KEYCODE.ESC)) && (d(t), g.opts.iframe && function r(e) { var t = e.find(".fr-popup.fr-active"); if (t.length) { t.removeClass("fr-active").attr("aria-expanded", !1).next().attr("aria-hidden", !0).css("overflow", "").find("> .fr-dropdown-wrapper").css("height", ""), t.parents(".fr-toolbar:not(.fr-inline)").css("zIndex", ""), t.prev().removeClass("fr-expanded"); var n = g.$tb.find(".fr-btn-active-popup"); h(n[0]).removeClass("fr-btn-active-popup") } }(t)) } g.events.$on(h(r), "".concat(g._mouseup, " resize keydown"), a, !0), g.opts.iframe && g.events.$on(g.$win, g._mouseup, a, !0), g.node.hasClass(t.get(0), "fr-popup") ? h.merge(s, t.find(".fr-btn").toArray()) : h.merge(i, t.find(".fr-btn").toArray()), g.tooltip.bind(t, ".fr-btn, .fr-title", e) }, refresh: function _(e) { var t, n = e.parents(".fr-popup, .fr-toolbar").data("instance") || g, r = e.data("cmd"); g.node.hasClass(e.get(0), "fr-dropdown") ? t = e.next() : (e.removeClass("fr-active"), e.attr("aria-pressed") && e.attr("aria-pressed", !1)), kt.COMMANDS[r] && kt.COMMANDS[r].refresh ? kt.COMMANDS[r].refresh.apply(n, [e, t]) : g.refresh[r] && n.refresh[r](e, t) }, bulkRefresh: n, exec: o, click: t, hideActiveDropdowns: d, addButtons: function w(e) { for (var t = 0; t < e.length; t++) i.push(e[t]) }, getButtons: m, getPosition: function A(e) { var t = e.offset().left, n = g.opts.toolbarBottom ? 10 : e.outerHeight() - 10; return { left: t, top: e.offset().top + n } } } }, kt.ICON_TEMPLATES = { font_awesome: '', font_awesome_5: '', font_awesome_5r: '', font_awesome_5l: '', font_awesome_5b: '', text: '[NAME]', image: "[ALT]", svg: '', empty: " " }, kt.ICONS = { bold: { NAME: "bold", SVG_KEY: "bold" }, italic: { NAME: "italic", SVG_KEY: "italic" }, underline: { NAME: "underline", SVG_KEY: "underline" }, strikeThrough: { NAME: "strikethrough", SVG_KEY: "strikeThrough" }, subscript: { NAME: "subscript", SVG_KEY: "subscript" }, superscript: { NAME: "superscript", SVG_KEY: "superscript" }, cancel: { NAME: "cancel", SVG_KEY: "cancel" }, color: { NAME: "tint", SVG_KEY: "textColor" }, outdent: { NAME: "outdent", SVG_KEY: "outdent" }, indent: { NAME: "indent", SVG_KEY: "indent" }, undo: { NAME: "rotate-left", FA5NAME: "undo", SVG_KEY: "undo" }, redo: { NAME: "rotate-right", FA5NAME: "redo", SVG_KEY: "redo" }, insert: { NAME: "insert", SVG_KEY: "insert" }, insertAll: { NAME: "insertAll", SVG_KEY: "insertAll" }, insertHR: { NAME: "minus", SVG_KEY: "horizontalLine" }, clearFormatting: { NAME: "eraser", SVG_KEY: "clearFormatting" }, selectAll: { NAME: "mouse-pointer", SVG_KEY: "selectAll" }, minimize: { NAME: "minimize", SVG_KEY: "minimize" }, moreText: { NAME: "ellipsis-v", SVG_KEY: "textMore" }, moreParagraph: { NAME: "ellipsis-v", SVG_KEY: "paragraphMore" }, moreRich: { NAME: "ellipsis-v", SVG_KEY: "insertMore" }, moreMisc: { NAME: "ellipsis-v", SVG_KEY: "more" } }, kt.DefineIconTemplate = function (e, t) { kt.ICON_TEMPLATES[e] = t }, kt.DefineIcon = function (e, t) { kt.ICONS[e] = t }, Object.assign(kt.DEFAULTS, { iconsTemplate: "svg" }), kt.MODULES.icon = function (a) { return { create: function o(n) { var e = null, r = kt.ICONS[n]; if (void 0 !== r) { var t = r.template || kt.ICON_DEFAULT_TEMPLATE || a.opts.iconsTemplate; t && t.apply && (t = t.apply(a)), r.FA5NAME || (r.FA5NAME = r.NAME), "svg" !== t || r.PATH || (r.PATH = kt.SVG[r.SVG_KEY] || ""), t && (t = kt.ICON_TEMPLATES[t]) && (e = t.replace(/\[([a-zA-Z0-9]*)\]/g, function (e, t) { return "NAME" === t ? r[t] || n : r[t] })) } return e || n }, getTemplate: function r(e) { var t = kt.ICONS[e], n = a.opts.iconsTemplate; return void 0 !== t ? n = t.template || kt.ICON_DEFAULT_TEMPLATE || a.opts.iconsTemplate : n }, getFileIcon: function n(e) { var t = kt.FILEICONS[e]; return void 0 !== t ? t : e } } }, kt.SVG = { add: "M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z", advancedImageEditor: "M3,17v2h6v-2H3z M3,5v2h10V5H3z M13,21v-2h8v-2h-8v-2h-2v6H13z M7,9v2H3v2h4v2h2V9H7z M21,13v-2H11v2H21z M15,9h2V7h4V5h-4 V3h-2V9z", alignCenter: "M9,18h6v-2H9V18z M6,11v2h12v-2H6z M3,6v2h18V6H3z", alignJustify: "M3,18h18v-2H3V18z M3,11v2h18v-2H3z M3,6v2h18V6H3z", alignLeft: "M3,18h6v-2H3V18z M3,11v2h12v-2H3z M3,6v2h18V6H3z", alignRight: "M15,18h6v-2h-6V18z M9,11v2h12v-2H9z M3,6v2h18V6H3z", anchors: "M16,4h-4H8C6.9,4,6,4.9,6,6v4v10l6-2.6l6,2.6V10V6C18,4.9,17.1,4,16,4z M16,17l-4-1.8L8,17v-7V6h4h4v4V17z", autoplay: "M 7.570312 0.292969 C 7.542969 0.292969 7.515625 0.292969 7.488281 0.296875 C 7.203125 0.324219 6.984375 0.539062 6.980469 0.792969 L 6.925781 3.535156 C 2.796875 3.808594 -0.0078125 6.425781 -0.0859375 10.09375 C -0.121094 11.96875 0.710938 13.6875 2.265625 14.921875 C 3.769531 16.117188 5.839844 16.796875 8.097656 16.828125 C 8.140625 16.828125 12.835938 16.898438 13.035156 16.886719 C 15.171875 16.796875 17.136719 16.128906 18.558594 15.003906 C 20.066406 13.816406 20.882812 12.226562 20.917969 10.40625 C 20.960938 8.410156 20.023438 6.605469 18.289062 5.335938 C 18.214844 5.277344 18.128906 5.230469 18.035156 5.203125 C 17.636719 5.074219 17.222656 5.199219 17 5.476562 L 15.546875 7.308594 C 15.304688 7.609375 15.363281 8.007812 15.664062 8.265625 C 16.351562 8.851562 16.707031 9.625 16.6875 10.5 C 16.652344 12.25 15.070312 13.390625 12.757812 13.535156 C 12.59375 13.539062 8.527344 13.472656 8.164062 13.464844 C 5.703125 13.429688 4.101562 12.191406 4.140625 10.3125 C 4.175781 8.570312 5.132812 7.46875 6.847656 7.199219 L 6.796875 9.738281 C 6.792969 9.992188 7 10.214844 7.285156 10.253906 C 7.3125 10.257812 7.339844 10.257812 7.367188 10.257812 C 7.503906 10.261719 7.632812 10.222656 7.738281 10.148438 L 14.039062 5.785156 C 14.171875 5.691406 14.253906 5.558594 14.253906 5.410156 C 14.257812 5.261719 14.1875 5.125 14.058594 5.027344 L 7.941406 0.414062 C 7.835938 0.335938 7.707031 0.292969 7.570312 0.292969 ", back: "M20 11L7.83 11 11.425 7.405 10.01 5.991 5.416 10.586 5.414 10.584 4 11.998 4.002 12 4 12.002 5.414 13.416 5.416 13.414 10.01 18.009 11.425 16.595 7.83 13 20 13 20 13 20 11 20 11Z", backgroundColor: "M9.91752,12.24082l7.74791-5.39017,1.17942,1.29591-6.094,7.20747L9.91752,12.24082M7.58741,12.652l4.53533,4.98327a.93412.93412,0,0,0,1.39531-.0909L20.96943,8.7314A.90827.90827,0,0,0,20.99075,7.533l-2.513-2.76116a.90827.90827,0,0,0-1.19509-.09132L7.809,11.27135A.93412.93412,0,0,0,7.58741,12.652ZM2.7939,18.52772,8.41126,19.5l1.47913-1.34617-3.02889-3.328Z", blockquote: "M10.31788,5l.93817,1.3226A12.88271,12.88271,0,0,0,8.1653,9.40125a5.54242,5.54242,0,0,0-.998,3.07866v.33733q.36089-.04773.66067-.084a4.75723,4.75723,0,0,1,.56519-.03691,2.87044,2.87044,0,0,1,2.11693.8427,2.8416,2.8416,0,0,1,.8427,2.09274,3.37183,3.37183,0,0,1-.8898,2.453A3.143,3.143,0,0,1,8.10547,19,3.40532,3.40532,0,0,1,5.375,17.7245,4.91156,4.91156,0,0,1,4.30442,14.453,9.3672,9.3672,0,0,1,5.82051,9.32933,14.75716,14.75716,0,0,1,10.31788,5Zm8.39243,0,.9369,1.3226a12.88289,12.88289,0,0,0-3.09075,3.07865,5.54241,5.54241,0,0,0-.998,3.07866v.33733q.33606-.04773.63775-.084a4.91773,4.91773,0,0,1,.58938-.03691,2.8043,2.8043,0,0,1,2.1042.83,2.89952,2.89952,0,0,1,.80578,2.10547,3.42336,3.42336,0,0,1-.86561,2.453A3.06291,3.06291,0,0,1,16.49664,19,3.47924,3.47924,0,0,1,13.742,17.7245,4.846,4.846,0,0,1,12.64721,14.453,9.25867,9.25867,0,0,1,14.17476,9.3898,15.26076,15.26076,0,0,1,18.71031,5Z", bold: "M15.25,11.8h0A3.68,3.68,0,0,0,17,9a3.93,3.93,0,0,0-3.86-4H6.65V19h7a3.74,3.74,0,0,0,3.7-3.78V15.1A3.64,3.64,0,0,0,15.25,11.8ZM8.65,7h4.2a2.09,2.09,0,0,1,2,1.3,2.09,2.09,0,0,1-1.37,2.61,2.23,2.23,0,0,1-.63.09H8.65Zm4.6,10H8.65V13h4.6a2.09,2.09,0,0,1,2,1.3,2.09,2.09,0,0,1-1.37,2.61A2.23,2.23,0,0,1,13.25,17Z", cancel: "M13.4,12l5.6,5.6L17.6,19L12,13.4L6.4,19L5,17.6l5.6-5.6L5,6.4L6.4,5l5.6,5.6L17.6,5L19,6.4L13.4,12z", cellBackground: "M16.6,12.4L7.6,3.5L6.2,4.9l2.4,2.4l-5.2,5.2c-0.6,0.6-0.6,1.5,0,2.1l5.5,5.5c0.3,0.3,0.7,0.4,1.1,0.4s0.8-0.1,1.1-0.4 l5.5-5.5C17.2,14,17.2,13,16.6,12.4z M5.2,13.5L10,8.7l4.8,4.8H5.2z M19,15c0,0-2,2.2-2,3.5c0,1.1,0.9,2,2,2s2-0.9,2-2 C21,17.2,19,15,19,15z", cellBorderColor: "M22,22H2v2h20V22z", cellOptions: "M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M9.5,6.5h5V9h-5V6.5z M8,17.5H4 c-0.3,0-0.5-0.2-0.5-0.4c0,0,0,0,0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M8,9H3.5V7c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0,0H8V9z M14.5,17.5h-5V15h5V17.5z M20.5,17c0,0.3-0.2,0.5-0.4,0.5c0,0,0,0,0,0H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9H16V6.5h4 c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0V9z", cellStyle: "M20,19.9l0.9,3.6l-3.2-1.9l-3.3,1.9l0.8-3.6L12.3,17h3.8l1.7-3.5l1.4,3.5H23L20,19.9z M20,5H4C2.9,5,2,5.9,2,7v10 c0,1.1,0.9,2,2,2h7.5l-0.6-0.6L10,17.5H9.5V15h5.4l1.1-2.3v-2.2h4.5v3H20l0.6,1.5H22V7C22,5.9,21.1,5,20,5z M3.5,7 c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0.1,0h4V9H3.5V7z M3.5,10.5H8v3H3.5V10.5z M4,17.5c-0.3,0-0.5-0.2-0.5-0.4c0,0,0,0,0-0.1v-2H8v2.5H4 z M14.5,9h-5V6.5h5V9z M20.5,9H16V6.5h4c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0.1V9z", clearFormatting: "M11.48,10.09l-1.2-1.21L8.8,7.41,6.43,5,5.37,6.1,8.25,9,4.66,19h2l1.43-4h5.14l1.43,4h2l-.89-2.51L18.27,19l1.07-1.06L14.59,13.2ZM8.8,13l.92-2.56L12.27,13Zm.56-7.15L9.66,5h2l1.75,4.9Z", close: "M13.4,12l5.6,5.6L17.6,19L12,13.4L6.4,19L5,17.6l5.6-5.6L5,6.4L6.4,5l5.6,5.6L17.6,5L19,6.4L13.4,12z", codeView: "M9.4,16.6,4.8,12,9.4,7.4,8,6,2,12l6,6Zm5.2,0L19.2,12,14.6,7.4,16,6l6,6-6,6Z", cogs: "M18.877 12.907a6.459 6.459 0 0 0 0 -1.814l1.952 -1.526a0.468 0.468 0 0 0 0.111 -0.593l-1.851 -3.2a0.461 0.461 0 0 0 -0.407 -0.231 0.421 0.421 0 0 0 -0.157 0.028l-2.3 0.925a6.755 6.755 0 0 0 -1.563 -0.907l-0.352 -2.452a0.451 0.451 0 0 0 -0.453 -0.388h-3.7a0.451 0.451 0 0 0 -0.454 0.388L9.347 5.588A7.077 7.077 0 0 0 7.783 6.5l-2.3 -0.925a0.508 0.508 0 0 0 -0.166 -0.028 0.457 0.457 0 0 0 -0.4 0.231l-1.851 3.2a0.457 0.457 0 0 0 0.111 0.593l1.952 1.526A7.348 7.348 0 0 0 5.063 12a7.348 7.348 0 0 0 0.064 0.907L3.175 14.433a0.468 0.468 0 0 0 -0.111 0.593l1.851 3.2a0.461 0.461 0 0 0 0.407 0.231 0.421 0.421 0 0 0 0.157 -0.028l2.3 -0.925a6.74 6.74 0 0 0 1.564 0.907L9.7 20.864a0.451 0.451 0 0 0 0.454 0.388h3.7a0.451 0.451 0 0 0 0.453 -0.388l0.352 -2.452a7.093 7.093 0 0 0 1.563 -0.907l2.3 0.925a0.513 0.513 0 0 0 0.167 0.028 0.457 0.457 0 0 0 0.4 -0.231l1.851 -3.2a0.468 0.468 0 0 0 -0.111 -0.593Zm-0.09 2.029l-0.854 1.476 -2.117 -0.852 -0.673 0.508a5.426 5.426 0 0 1 -1.164 0.679l-0.795 0.323 -0.33 2.269h-1.7l-0.32 -2.269 -0.793 -0.322a5.3 5.3 0 0 1 -1.147 -0.662L8.2 15.56l-2.133 0.86 -0.854 -1.475 1.806 -1.411 -0.1 -0.847c-0.028 -0.292 -0.046 -0.5 -0.046 -0.687s0.018 -0.4 0.045 -0.672l0.106 -0.854L5.217 9.064l0.854 -1.475 2.117 0.851 0.673 -0.508a5.426 5.426 0 0 1 1.164 -0.679l0.8 -0.323 0.331 -2.269h1.7l0.321 2.269 0.792 0.322a5.3 5.3 0 0 1 1.148 0.661l0.684 0.526 2.133 -0.859 0.853 1.473 -1.8 1.421 0.1 0.847a5 5 0 0 1 0.046 0.679c0 0.193 -0.018 0.4 -0.045 0.672l-0.106 0.853ZM12 14.544A2.544 2.544 0 1 1 14.546 12 2.552 2.552 0 0 1 12 14.544Z", columns: "M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.4 c0,0,0,0,0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M8,9H3.5V7c0-0.3,0.2-0.5,0.4-0.5c0,0,0,0,0,0H8V9z M20.5,17 c0,0.3-0.2,0.5-0.4,0.5c0,0,0,0,0,0H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9H16V6.5h4c0.3,0,0.5,0.2,0.5,0.4c0,0,0,0,0,0 V9z", edit: "M17,11.2L12.8,7L5,14.8V19h4.2L17,11.2z M7,16.8v-1.5l5.6-5.6l1.4,1.5l-5.6,5.6H7z M13.5,6.3l0.7-0.7c0.8-0.8,2.1-0.8,2.8,0 c0,0,0,0,0,0L18.4,7c0.8,0.8,0.8,2,0,2.8l-0.7,0.7L13.5,6.3z", exitFullscreen: "M5,16H8v3h2V14H5ZM8,8H5v2h5V5H8Zm6,11h2V16h3V14H14ZM16,8V5H14v5h5V8Z", fileInsert: "M 8.09375 12.75 L 5.90625 12.75 C 5.542969 12.75 5.25 12.394531 5.25 11.953125 L 5.25 6.375 L 2.851562 6.375 C 2.367188 6.375 2.121094 5.660156 2.464844 5.242188 L 6.625 0.1875 C 6.832031 -0.0585938 7.167969 -0.0585938 7.371094 0.1875 L 11.535156 5.242188 C 11.878906 5.660156 11.632812 6.375 11.148438 6.375 L 8.75 6.375 L 8.75 11.953125 C 8.75 12.394531 8.457031 12.75 8.09375 12.75 Z M 14 12.484375 L 14 16.203125 C 14 16.644531 13.707031 17 13.34375 17 L 0.65625 17 C 0.292969 17 0 16.644531 0 16.203125 L 0 12.484375 C 0 12.042969 0.292969 11.6875 0.65625 11.6875 L 4.375 11.6875 L 4.375 11.953125 C 4.375 12.980469 5.0625 13.8125 5.90625 13.8125 L 8.09375 13.8125 C 8.9375 13.8125 9.625 12.980469 9.625 11.953125 L 9.625 11.6875 L 13.34375 11.6875 C 13.707031 11.6875 14 12.042969 14 12.484375 Z M 10.609375 15.40625 C 10.609375 15.039062 10.363281 14.742188 10.0625 14.742188 C 9.761719 14.742188 9.515625 15.039062 9.515625 15.40625 C 9.515625 15.773438 9.761719 16.070312 10.0625 16.070312 C 10.363281 16.070312 10.609375 15.773438 10.609375 15.40625 Z M 12.359375 15.40625 C 12.359375 15.039062 12.113281 14.742188 11.8125 14.742188 C 11.511719 14.742188 11.265625 15.039062 11.265625 15.40625 C 11.265625 15.773438 11.511719 16.070312 11.8125 16.070312 C 12.113281 16.070312 12.359375 15.773438 12.359375 15.40625 Z M 12.359375 15.40625 ", fileManager: "M 0 5.625 L 20.996094 5.625 L 21 15.75 C 21 16.371094 20.410156 16.875 19.6875 16.875 L 1.3125 16.875 C 0.585938 16.875 0 16.371094 0 15.75 Z M 0 5.625 M 21 4.5 L 0 4.5 L 0 2.25 C 0 1.628906 0.585938 1.125 1.3125 1.125 L 6.921875 1.125 C 7.480469 1.125 8.015625 1.316406 8.40625 1.652344 L 9.800781 2.847656 C 10.195312 3.183594 10.730469 3.375 11.289062 3.375 L 19.6875 3.375 C 20.414062 3.375 21 3.878906 21 4.5 Z M 21 4.5", markdown: "M5.55006 17.75V7.35L8.96006 16.89H10.7101L14.2301 7.37V14.0729C14.3951 14.1551 14.5499 14.265 14.6875 14.4026L14.7001 14.4151V11.64C14.7001 10.8583 15.2127 10.1963 15.9201 9.97171V5H13.6801L10.0401 14.86L6.51006 5H4.00006V17.75H5.55006ZM17.2001 11.64C17.2001 11.2258 16.8643 10.89 16.4501 10.89C16.0359 10.89 15.7001 11.2258 15.7001 11.64V16.8294L13.9804 15.1097C13.6875 14.8168 13.2126 14.8168 12.9197 15.1097C12.6269 15.4026 12.6269 15.8775 12.9197 16.1703L15.9197 19.1703C16.2126 19.4632 16.6875 19.4632 16.9804 19.1703L19.9804 16.1703C20.2733 15.8775 20.2733 15.4026 19.9804 15.1097C19.6875 14.8168 19.2126 14.8168 18.9197 15.1097L17.2001 16.8294V11.64Z", fontAwesome: "M18.99018,13.98212V7.52679c-.08038-1.21875-1.33929-.683-1.33929-.683-2.933,1.39282-4.36274.61938-5.85938.15625a6.23272,6.23272,0,0,0-2.79376-.20062l-.00946.004A1.98777,1.98777,0,0,0,7.62189,5.106a.984.984,0,0,0-.17517-.05432c-.02447-.0055-.04882-.01032-.0736-.0149A.9565.9565,0,0,0,7.1908,5H6.82539a.9565.9565,0,0,0-.18232.0368c-.02472.00458-.04907.0094-.07348.01484a.985.985,0,0,0-.17523.05438,1.98585,1.98585,0,0,0-.573,3.49585v9.394A1.004,1.004,0,0,0,6.82539,19H7.1908a1.00406,1.00406,0,0,0,1.00409-1.00409V15.52234c3.64221-1.09827,5.19709.64282,7.09888.57587a5.57291,5.57291,0,0,0,3.25446-1.05805A1.2458,1.2458,0,0,0,18.99018,13.98212Z", fontFamily: "M16,19h2L13,5H11L6,19H8l1.43-4h5.14Zm-5.86-6L12,7.8,13.86,13Z", fontSize: "M20.75,19h1.5l-3-10h-1.5l-3,10h1.5L17,16.5h3Zm-3.3-4,1.05-3.5L19.55,15Zm-5.7,4h2l-5-14h-2l-5,14h2l1.43-4h5.14ZM5.89,13,7.75,7.8,9.61,13Z", fullscreen: "M7,14H5v5h5V17H7ZM5,10H7V7h3V5H5Zm12,7H14v2h5V14H17ZM14,5V7h3v3h2V5Z", help: "M11,17h2v2h-2V17z M12,5C9.8,5,8,6.8,8,9h2c0-1.1,0.9-2,2-2s2,0.9,2,2c0,2-3,1.7-3,5v1h2v-1c0-2.2,3-2.5,3-5 C16,6.8,14.2,5,12,5z", horizontalLine: "M5,12h14 M19,11H5v2h14V11z", imageAltText: "M19,7h-6v12h-2V7H5V5h6h2h6V7z", imageCaption: "M14.2,11l3.8,5H6l3-3.9l2.1,2.7L14,11H14.2z M8.5,11c0.8,0,1.5-0.7,1.5-1.5S9.3,8,8.5,8S7,8.7,7,9.5C7,10.3,7.7,11,8.5,11z M22,6v12c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,8.8V6H4v12h16V8.8z M22,22H2v2h20V22z", imageClass: "M9.5,13.4l-2.9-2.9h3.8L12.2,7l1.4,3.5h3.8l-3,2.9l0.9,3.6L12,15.1L8.8,17L9.5,13.4z M22,6v12c0,1.1-0.9,2-2,2H4 c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,6H4v12h16V8.8V6z", imageDisplay: "M3,5h18v2H3V5z M13,9h8v2h-8V9z M13,13h8v2h-8V13z M3,17h18v2H3V17z M3,9h8v6H3V9z", imageManager: "M20,6h-7l-2-2H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V8C22,6.9,21.1,6,20,6z M20,18H4V6h6.2l2,2H20V18z M18,16l-3.8-5H14l-2.9,3.8L9,12.1L6,16H18z M10,9.5C10,8.7,9.3,8,8.5,8S7,8.7,7,9.5S7.7,11,8.5,11S10,10.3,10,9.5z", imageSize: "M16.9,4c-0.3,0-0.5,0.2-0.8,0.3L3.3,13c-0.9,0.6-1.1,1.9-0.5,2.8l2.2,3.3c0.4,0.7,1.2,1,2,0.8c0.3,0,0.5-0.2,0.8-0.3 L20.7,11c0.9-0.6,1.1-1.9,0.5-2.8l-2.2-3.3C18.5,4.2,17.7,3.9,16.9,4L16.9,4z M16.9,9.9L18.1,9l-2-2.9L17,5.6c0.1,0,0.1-0.1,0.2-0.1 c0.2,0,0.4,0,0.5,0.2L19.9,9c0.2,0.2,0.1,0.5-0.1,0.7L7,18.4c-0.1,0-0.1,0.1-0.2,0.1c-0.2,0-0.4,0-0.5-0.2L4.1,15 c-0.2-0.2-0.1-0.5,0.1-0.7L5,13.7l2,2.9l1.2-0.8l-2-2.9L7.5,12l1.1,1.7l1.2-0.8l-1.1-1.7l1.2-0.8l2,2.9l1.2-0.8l-2-2.9l1.2-0.8 l1.1,1.7l1.2-0.8l-1.1-1.7L14.9,7L16.9,9.9z", indent: "M3,9v6l3-3L3,9z M3,19h18v-2H3V19z M3,7h18V5H3V7z M9,11h12V9H9V11z M9,15h12v-2H9V15z", inlineClass: "M9.9,13.313A1.2,1.2,0,0,1,9.968,13H6.277l1.86-5.2,1.841,5.148A1.291,1.291,0,0,1,11.212,12h.426l-2.5-7h-2l-5,14h2l1.43-4H9.9Zm2.651,6.727a2.884,2.884,0,0,1-.655-2.018v-2.71A1.309,1.309,0,0,1,13.208,14h3.113a3.039,3.039,0,0,1,2,1.092s1.728,1.818,2.964,2.928a1.383,1.383,0,0,1,.318,1.931,1.44,1.44,0,0,1-.19.215l-3.347,3.31a1.309,1.309,0,0,1-1.832.258h0a1.282,1.282,0,0,1-.258-.257l-1.71-1.728Zm2.48-3.96a.773.773,0,1,0,.008,0Z", inlineStyle: "M11.88,15h.7l.7-1.7-3-8.3h-2l-5,14h2l1.4-4Zm-4.4-2,1.9-5.2,1.9,5.2ZM15.4,21.545l3.246,1.949-.909-3.637L20.72,17H16.954l-1.429-3.506L13.837,17H10.071l2.857,2.857-.779,3.637Z", insert: "M13.889,11.611c-0.17,0.17-0.443,0.17-0.612,0l-3.189-3.187l-3.363,3.36c-0.171,0.171-0.441,0.171-0.612,0c-0.172-0.169-0.172-0.443,0-0.611l3.667-3.669c0.17-0.17,0.445-0.172,0.614,0l3.496,3.493C14.058,11.167,14.061,11.443,13.889,11.611 M18.25,10c0,4.558-3.693,8.25-8.25,8.25c-4.557,0-8.25-3.692-8.25-8.25c0-4.557,3.693-8.25,8.25-8.25C14.557,1.75,18.25,5.443,18.25,10 M17.383,10c0-4.07-3.312-7.382-7.383-7.382S2.618,5.93,2.618,10S5.93,17.381,10,17.381S17.383,14.07,17.383,10", insertEmbed: "M20.73889,15.45929a3.4768,3.4768,0,0,0-5.45965-.28662L9.5661,12.50861a3.49811,3.49811,0,0,0-.00873-1.01331l5.72174-2.66809a3.55783,3.55783,0,1,0-.84527-1.81262L8.70966,9.6839a3.50851,3.50851,0,1,0,.0111,4.63727l5.7132,2.66412a3.49763,3.49763,0,1,0,6.30493-1.526ZM18.00745,5.01056A1.49993,1.49993,0,1,1,16.39551,6.3894,1.49994,1.49994,0,0,1,18.00745,5.01056ZM5.99237,13.49536a1.49989,1.49989,0,1,1,1.61194-1.37878A1.49982,1.49982,0,0,1,5.99237,13.49536Zm11.78211,5.494a1.49993,1.49993,0,1,1,1.61193-1.37885A1.49987,1.49987,0,0,1,17.77448,18.98932Z", insertFile: "M7,3C5.9,3,5,3.9,5,5v14c0,1.1,0.9,2,2,2h10c1.1,0,2-0.9,2-2V7.6L14.4,3H7z M17,19H7V5h6v4h4V19z", insertImage: "M14.2,11l3.8,5H6l3-3.9l2.1,2.7L14,11H14.2z M8.5,11c0.8,0,1.5-0.7,1.5-1.5S9.3,8,8.5,8S7,8.7,7,9.5C7,10.3,7.7,11,8.5,11z M22,6v12c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V6c0-1.1,0.9-2,2-2h16C21.1,4,22,4.9,22,6z M20,8.8V6H4v12h16V8.8z", insertLink: "M11,17H7A5,5,0,0,1,7,7h4V9H7a3,3,0,0,0,0,6h4ZM17,7H13V9h4a3,3,0,0,1,0,6H13v2h4A5,5,0,0,0,17,7Zm-1,4H8v2h8Z", insertMore: "M16.5,13h-6v6h-2V13h-6V11h6V5h2v6h6Zm5,4.5A1.5,1.5,0,1,1,20,16,1.5,1.5,0,0,1,21.5,17.5Zm0-4A1.5,1.5,0,1,1,20,12,1.5,1.5,0,0,1,21.5,13.5Zm0-4A1.5,1.5,0,1,1,20,8,1.5,1.5,0,0,1,21.5,9.5Z", insertTable: "M20,5H4C2.9,5,2,5.9,2,7v2v1.5v3V15v2c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2v-2v-1.5v-3V9V7C22,5.9,21.1,5,20,5z M9.5,13.5v-3 h5v3H9.5z M14.5,15v2.5h-5V15H14.5z M9.5,9V6.5h5V9H9.5z M3.5,7c0-0.3,0.2-0.5,0.5-0.5h4V9H3.5V7z M3.5,10.5H8v3H3.5V10.5z M3.5,17 v-2H8v2.5H4C3.7,17.5,3.5,17.3,3.5,17z M20.5,17c0,0.3-0.2,0.5-0.5,0.5h-4V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M16,9V6.5h4 c0.3,0,0.5,0.2,0.5,0.5v2H16z", insertVideo: "M15,8v8H5V8H15m2,2.5V7a1,1,0,0,0-1-1H4A1,1,0,0,0,3,7V17a1,1,0,0,0,1,1H16a1,1,0,0,0,1-1V13.5l2.29,2.29A1,1,0,0,0,21,15.08V8.91a1,1,0,0,0-1.71-.71Z", upload: "M12 6.66667a4.87654 4.87654 0 0 1 4.77525 3.92342l0.29618 1.50268 1.52794 0.10578a2.57021 2.57021 0 0 1 -0.1827 5.13478H6.5a3.49774 3.49774 0 0 1 -0.3844 -6.97454l1.06682 -0.11341L7.678 9.29387A4.86024 4.86024 0 0 1 12 6.66667m0 -2A6.871 6.871 0 0 0 5.90417 8.37 5.49773 5.49773 0 0 0 6.5 19.33333H18.41667a4.57019 4.57019 0 0 0 0.32083 -9.13A6.86567 6.86567 0 0 0 12 4.66667Zm0.99976 7.2469h1.91406L11.99976 9 9.08618 11.91357h1.91358v3H11V16h2V14h-0.00024Z", uploadFiles: "M12 6.66667a4.87654 4.87654 0 0 1 4.77525 3.92342l0.29618 1.50268 1.52794 0.10578a2.57021 2.57021 0 0 1 -0.1827 5.13478H6.5a3.49774 3.49774 0 0 1 -0.3844 -6.97454l1.06682 -0.11341L7.678 9.29387A4.86024 4.86024 0 0 1 12 6.66667m0 -2A6.871 6.871 0 0 0 5.90417 8.37 5.49773 5.49773 0 0 0 6.5 19.33333H18.41667a4.57019 4.57019 0 0 0 0.32083 -9.13A6.86567 6.86567 0 0 0 12 4.66667Zm0.99976 7.2469h1.91406L11.99976 9 9.08618 11.91357h1.91358v3H11V16h2V14h-0.00024Z", italic: "M11.76,9h2l-2.2,10h-2Zm1.68-4a1,1,0,1,0,1,1,1,1,0,0,0-1-1Z", search: "M15.5 14h-0.79l-0.28 -0.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09 -0.59 4.23 -1.57l0.27 0.28v0.79l5 4.99L20.49 19l-4.99 -5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z", lineHeight: "M6.25,7h2.5L5.25,3.5,1.75,7h2.5V17H1.75l3.5,3.5L8.75,17H6.25Zm4-2V7h12V5Zm0,14h12V17h-12Zm0-6h12V11h-12Z", linkStyles: "M19,17.9l0.9,3.6l-3.2-1.9l-3.3,1.9l0.8-3.6L11.3,15h3.8l1.7-3.5l1.4,3.5H22L19,17.9z M20,12c0,0.3-0.1,0.7-0.2,1h2.1 c0.1-0.3,0.1-0.6,0.1-1c0-2.8-2.2-5-5-5h-4v2h4C18.7,9,20,10.3,20,12z M14.8,11H8v2h3.3h2.5L14.8,11z M9.9,16.4L8.5,15H7 c-1.7,0-3-1.3-3-3s1.3-3,3-3h4V7H7c-2.8,0-5,2.2-5,5s2.2,5,5,5h3.5L9.9,16.4z", mention: "M12.4,5c-4.1,0-7.5,3.4-7.5,7.5S8.3,20,12.4,20h3.8v-1.5h-3.8c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6v1.1 c0,0.6-0.5,1.2-1.1,1.2s-1.1-0.6-1.1-1.2v-1.1c0-2.1-1.7-3.8-3.8-3.8s-3.7,1.7-3.7,3.8s1.7,3.8,3.8,3.8c1,0,2-0.4,2.7-1.1 c0.5,0.7,1.3,1.1,2.2,1.1c1.5,0,2.6-1.2,2.6-2.7v-1.1C19.9,8.4,16.6,5,12.4,5z M12.4,14.7c-1.2,0-2.3-1-2.3-2.2s1-2.3,2.3-2.3 s2.3,1,2.3,2.3S13.6,14.7,12.4,14.7z", minimize: "M5,12h14 M19,11H5v2h14V11z", more: "M13.5,17c0,0.8-0.7,1.5-1.5,1.5s-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5S13.5,16.2,13.5,17z M13.5,12c0,0.8-0.7,1.5-1.5,1.5 s-1.5-0.7-1.5-1.5s0.7-1.5,1.5-1.5S13.5,11.2,13.5,12z M13.5,7c0,0.8-0.7,1.5-1.5,1.5S10.5,7.8,10.5,7s0.7-1.5,1.5-1.5 S13.5,6.2,13.5,7z", openLink: "M17,17H7V7h3V5H7C6,5,5,6,5,7v10c0,1,1,2,2,2h10c1,0,2-1,2-2v-3h-2V17z M14,5v2h1.6l-5.8,5.8l1.4,1.4L17,8.4V10h2V5H14z", orderedList: "M2.5,16h2v.5h-1v1h1V18h-2v1h3V15h-3Zm1-7h1V5h-2V6h1Zm-1,2H4.3L2.5,13.1V14h3V13H3.7l1.8-2.1V10h-3Zm5-5V8h14V6Zm0,12h14V16H7.5Zm0-5h14V11H7.5Z", outdent: "M3,12l3,3V9L3,12z M3,19h18v-2H3V19z M3,7h18V5H3V7z M9,11h12V9H9V11z M9,15h12v-2H9V15z", pageBreaker: "M3,9v6l3-3L3,9z M21,9H8V4h2v3h9V4h2V9z M21,20h-2v-3h-9v3H8v-5h13V20z M11,13H8v-2h3V13z M16,13h-3v-2h3V13z M21,13h-3v-2 h3V13z", paragraphFormat: "M10.15,5A4.11,4.11,0,0,0,6.08,8.18,4,4,0,0,0,10,13v6h2V7h2V19h2V7h2V5ZM8,9a2,2,0,0,1,2-2v4A2,2,0,0,1,8,9Z", paragraphMore: "M7.682,5a4.11,4.11,0,0,0-4.07,3.18,4,4,0,0,0,3.11,4.725h0l.027.005a3.766,3.766,0,0,0,.82.09v6h2V7h2V19h2V7h2V5ZM5.532,9a2,2,0,0,1,2-2v4A2,2,0,0,1,5.532,9Zm14.94,8.491a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,17.491Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,13.491Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.472,9.491Z", paragraphStyle: "M4,9c0-1.1,0.9-2,2-2v4C4.9,11,4,10.1,4,9z M16.7,20.5l3.2,1.9L19,18.8l3-2.9h-3.7l-1.4-3.5L15.3,16h-3.8l2.9,2.9l-0.9,3.6 L16.7,20.5z M10,17.4V19h1.6L10,17.4z M6.1,5c-1.9,0-3.6,1.3-4,3.2c-0.5,2.1,0.8,4.2,2.9,4.7c0,0,0,0,0,0h0.2C5.5,13,5.8,13,6,13v6 h2V7h2v7h2V7h2V5H6.1z", pdfExport: "M7,3C5.9,3,5,3.9,5,5v14c0,1.1,0.9,2,2,2h10c1.1,0,2-0.9,2-2V7.6L14.4,3H7z M17,19H7V5h6v4h4V19z M16.3,13.5 c-0.2-0.6-1.1-0.8-2.6-0.8c-0.1,0-0.1,0-0.2,0c-0.3-0.3-0.8-0.9-1-1.2c-0.2-0.2-0.3-0.3-0.4-0.6c0.2-0.7,0.2-1,0.3-1.5 c0.1-0.9,0-1.6-0.2-1.8c-0.4-0.2-0.7-0.2-0.9-0.2c-0.1,0-0.3,0.2-0.7,0.7c-0.2,0.7-0.1,1.8,0.6,2.8c-0.2,0.8-0.7,1.6-1,2.4 c-0.8,0.2-1.5,0.7-1.9,1.1c-0.7,0.7-0.9,1.1-0.7,1.6c0,0.3,0.2,0.6,0.7,0.6c0.3-0.1,0.3-0.2,0.7-0.3c0.6-0.3,1.2-1.7,1.7-2.4 c0.8-0.2,1.7-0.3,2-0.3c0.1,0,0.3,0,0.6,0c0.8,0.8,1.2,1.1,1.8,1.2c0.1,0,0.2,0,0.3,0c0.3,0,0.8-0.1,1-0.6 C16.4,14.1,16.4,13.9,16.3,13.5z M8.3,15.7c-0.1,0.1-0.2,0.1-0.2,0.1c0-0.1,0-0.3,0.6-0.8c0.2-0.2,0.6-0.3,0.9-0.7 C9,15,8.6,15.5,8.3,15.7z M11.3,9c0-0.1,0.1-0.2,0.1-0.2S11.6,9,11.5,10c0,0.1,0,0.3-0.1,0.7C11.3,10.1,11,9.5,11.3,9z M10.9,13.1 c0.2-0.6,0.6-1,0.7-1.5c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.2,0.3,0.7,0.7,0.9C12.2,12.8,11.6,13,10.9,13.1z M15.2,14.1 c-0.1,0-0.1,0-0.2,0c-0.2,0-0.7-0.2-1-0.7c1.1,0,1.6,0.2,1.6,0.6C15.5,14.1,15.4,14.1,15.2,14.1z", print: "M16.1,17c0-0.6,0.4-1,1-1c0.6,0,1,0.4,1,1s-0.4,1-1,1C16.5,18,16.1,17.6,16.1,17z M22,15v4c0,1.1-0.9,2-2,2H4 c-1.1,0-2-0.9-2-2v-4c0-1.1,0.9-2,2-2h1V5c0-1.1,0.9-2,2-2h7.4L19,7.6V13h1C21.1,13,22,13.9,22,15z M7,13h10V9h-4V5H7V13z M20,15H4 v4h16V15z", redo: "M13.6,9.4c1.7,0.3,3.2,0.9,4.6,2L21,8.5v7h-7l2.7-2.7C13,10.1,7.9,11,5.3,14.7c-0.2,0.3-0.4,0.5-0.5,0.8L3,14.6 C5.1,10.8,9.3,8.7,13.6,9.4z", removeTable: "M15,10v8H9v-8H15 M14,4H9.9l-1,1H6v2h12V5h-3L14,4z M17,8H7v10c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V8z", insertAll: "M 9.25 12 L 6.75 12 C 6.335938 12 6 11.664062 6 11.25 L 6 6 L 3.257812 6 C 2.703125 6 2.425781 5.328125 2.820312 4.933594 L 7.570312 0.179688 C 7.804688 -0.0546875 8.191406 -0.0546875 8.425781 0.179688 L 13.179688 4.933594 C 13.574219 5.328125 13.296875 6 12.742188 6 L 10 6 L 10 11.25 C 10 11.664062 9.664062 12 9.25 12 Z M 16 11.75 L 16 15.25 C 16 15.664062 15.664062 16 15.25 16 L 0.75 16 C 0.335938 16 0 15.664062 0 15.25 L 0 11.75 C 0 11.335938 0.335938 11 0.75 11 L 5 11 L 5 11.25 C 5 12.214844 5.785156 13 6.75 13 L 9.25 13 C 10.214844 13 11 12.214844 11 11.25 L 11 11 L 15.25 11 C 15.664062 11 16 11.335938 16 11.75 Z M 12.125 14.5 C 12.125 14.15625 11.84375 13.875 11.5 13.875 C 11.15625 13.875 10.875 14.15625 10.875 14.5 C 10.875 14.84375 11.15625 15.125 11.5 15.125 C 11.84375 15.125 12.125 14.84375 12.125 14.5 Z M 14.125 14.5 C 14.125 14.15625 13.84375 13.875 13.5 13.875 C 13.15625 13.875 12.875 14.15625 12.875 14.5 C 12.875 14.84375 13.15625 15.125 13.5 15.125 C 13.84375 15.125 14.125 14.84375 14.125 14.5 Z M 14.125 14.5 ", remove: "M15,10v8H9v-8H15 M14,4H9.9l-1,1H6v2h12V5h-3L14,4z M17,8H7v10c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V8z", replaceImage: "M16,5v3H4v2h12v3l4-4L16,5z M8,19v-3h12v-2H8v-3l-4,4L8,19z", row: "M20,5H4C2.9,5,2,5.9,2,7v2v1.5v3V15v2c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2v-2v-1.5v-3V9V7C22,5.9,21.1,5,20,5z M16,6.5h4 c0.3,0,0.5,0.2,0.5,0.5v2H16V6.5z M9.5,6.5h5V9h-5V6.5z M3.5,7c0-0.3,0.2-0.5,0.5-0.5h4V9H3.5V7z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.5 v-2H8V17.5z M14.5,17.5h-5V15h5V17.5z M20.5,17c0,0.3-0.2,0.5-0.5,0.5h-4V15h4.5V17z", selectAll: "M5,7h2V5C5.9,5,5,5.9,5,7z M5,11h2V9H5V11z M9,19h2v-2H9V19z M5,11h2V9H5V11z M15,5h-2v2h2V5z M17,5v2h2C19,5.9,18.1,5,17,5 z M7,19v-2H5C5,18.1,5.9,19,7,19z M5,15h2v-2H5V15z M11,5H9v2h2V5z M13,19h2v-2h-2V19z M17,11h2V9h-2V11z M17,19c1.1,0,2-0.9,2-2h-2 V19z M17,11h2V9h-2V11z M17,15h2v-2h-2V15z M13,19h2v-2h-2V19z M13,7h2V5h-2V7z M9,15h6V9H9V15z M11,11h2v2h-2V11z", smile: "M11.991,3A9,9,0,1,0,21,12,8.99557,8.99557,0,0,0,11.991,3ZM12,19a7,7,0,1,1,7-7A6.99808,6.99808,0,0,1,12,19Zm3.105-5.2h1.503a4.94542,4.94542,0,0,1-9.216,0H8.895a3.57808,3.57808,0,0,0,6.21,0ZM7.5,9.75A1.35,1.35,0,1,1,8.85,11.1,1.35,1.35,0,0,1,7.5,9.75Zm6.3,0a1.35,1.35,0,1,1,1.35,1.35A1.35,1.35,0,0,1,13.8,9.75Z", spellcheck: "M19.1,13.6l-5.6,5.6l-2.7-2.7l-1.4,1.4l4.1,4.1l7-7L19.1,13.6z M10.8,13.7l2.7,2.7l0.8-0.8L10.5,5h-2l-5,14h2l1.4-4h2.6 L10.8,13.7z M9.5,7.8l1.9,5.2H7.6L9.5,7.8z", star: "M12.1,7.7l1,2.5l0.4,0.9h1h2.4l-2.1,2l-0.6,0.6l0.2,0.9l0.6,2.3l-2.2-1.3L12,15.2l-0.8,0.5L9,17l0.5-2.5l0.1-0.8L9,13.1 l-2-2h2.5h0.9l0.4-0.8L12.1,7.7 M12.2,4L9.5,9.6H3.4L8,14.2L6.9,20l5.1-3.1l5.3,3.1l-1.5-5.8l4.8-4.6h-6.1L12.2,4L12.2,4z", strikeThrough: "M3,12.20294H21v1.5H16.63422a3.59782,3.59782,0,0,1,.34942,1.5929,3.252,3.252,0,0,1-1.31427,2.6997A5.55082,5.55082,0,0,1,12.20251,19a6.4421,6.4421,0,0,1-2.62335-.539,4.46335,4.46335,0,0,1-1.89264-1.48816,3.668,3.668,0,0,1-.67016-2.15546V14.704h.28723v-.0011h.34149v.0011H9.02v.11334a2.18275,2.18275,0,0,0,.85413,1.83069,3.69,3.69,0,0,0,2.32836.67926,3.38778,3.38778,0,0,0,2.07666-.5462,1.73346,1.73346,0,0,0,.7013-1.46655,1.69749,1.69749,0,0,0-.647-1.43439,3.00525,3.00525,0,0,0-.27491-.17725H3ZM16.34473,7.05981A4.18163,4.18163,0,0,0,14.6236,5.5462,5.627,5.627,0,0,0,12.11072,5,5.16083,5.16083,0,0,0,8.74719,6.06213,3.36315,3.36315,0,0,0,7.44006,8.76855a3.22923,3.22923,0,0,0,.3216,1.42786h2.59668c-.08338-.05365-.18537-.10577-.25269-.16064a1.60652,1.60652,0,0,1-.65283-1.30036,1.79843,1.79843,0,0,1,.68842-1.5108,3.12971,3.12971,0,0,1,1.96948-.55243,3.04779,3.04779,0,0,1,2.106.6687,2.35066,2.35066,0,0,1,.736,1.83258v.11341h2.00317V9.17346A3.90013,3.90013,0,0,0,16.34473,7.05981Z", subscript: "M10.4,12l3.6,3.6L12.6,17L9,13.4L5.4,17L4,15.6L7.6,12L4,8.4L5.4,7L9,10.6L12.6,7L14,8.4L10.4,12z M18.31234,19.674 l1.06812-1.1465c0.196-0.20141,0.37093-0.40739,0.5368-0.6088c0.15975-0.19418,0.30419-0.40046,0.432-0.617 c0.11969-0.20017,0.21776-0.41249,0.29255-0.6334c0.07103-0.21492,0.10703-0.43986,0.10662-0.66621 c0.00297-0.28137-0.04904-0.56062-0.1531-0.82206c-0.09855-0.24575-0.25264-0.46534-0.45022-0.6416 c-0.20984-0.18355-0.45523-0.32191-0.72089-0.40646c-0.63808-0.19005-1.3198-0.17443-1.94851,0.04465 c-0.28703,0.10845-0.54746,0.2772-0.76372,0.49487c-0.20881,0.20858-0.37069,0.45932-0.47483,0.73548 c-0.10002,0.26648-0.15276,0.54838-0.15585,0.833l-0.00364,0.237H17.617l0.00638-0.22692 c0.00158-0.12667,0.01966-0.25258,0.05377-0.37458c0.03337-0.10708,0.08655-0.20693,0.15679-0.29437 c0.07105-0.08037,0.15959-0.14335,0.25882-0.1841c0.22459-0.08899,0.47371-0.09417,0.7018-0.01458 c0.0822,0.03608,0.15559,0.08957,0.21509,0.15679c0.06076,0.07174,0.10745,0.15429,0.13761,0.24333 c0.03567,0.10824,0.05412,0.22141,0.05469,0.33538c-0.00111,0.08959-0.0118,0.17881-0.0319,0.26612 c-0.02913,0.10428-0.07076,0.20465-0.124,0.29893c-0.07733,0.13621-0.1654,0.26603-0.26338,0.38823 c-0.13438,0.17465-0.27767,0.34226-0.42929,0.50217l-2.15634,2.35315V21H21v-1.326H18.31234z", superscript: "M10.4,12,14,15.6,12.6,17,9,13.4,5.4,17,4,15.6,7.6,12,4,8.4,5.4,7,9,10.6,12.6,7,14,8.4Zm8.91234-3.326,1.06812-1.1465c.196-.20141.37093-.40739.5368-.6088a4.85745,4.85745,0,0,0,.432-.617,3.29,3.29,0,0,0,.29255-.6334,2.11079,2.11079,0,0,0,.10662-.66621,2.16127,2.16127,0,0,0-.1531-.82206,1.7154,1.7154,0,0,0-.45022-.6416,2.03,2.03,0,0,0-.72089-.40646,3.17085,3.17085,0,0,0-1.94851.04465,2.14555,2.14555,0,0,0-.76372.49487,2.07379,2.07379,0,0,0-.47483.73548,2.446,2.446,0,0,0-.15585.833l-.00364.237H18.617L18.62338,5.25a1.45865,1.45865,0,0,1,.05377-.37458.89552.89552,0,0,1,.15679-.29437.70083.70083,0,0,1,.25882-.1841,1.00569,1.00569,0,0,1,.7018-.01458.62014.62014,0,0,1,.21509.15679.74752.74752,0,0,1,.13761.24333,1.08893,1.08893,0,0,1,.05469.33538,1.25556,1.25556,0,0,1-.0319.26612,1.34227,1.34227,0,0,1-.124.29893,2.94367,2.94367,0,0,1-.26338.38823,6.41629,6.41629,0,0,1-.42929.50217L17.19709,8.92642V10H22V8.674Z", symbols: "M15.77493,16.98885a8.21343,8.21343,0,0,0,1.96753-2.57651,7.34824,7.34824,0,0,0,.6034-3.07618A6.09092,6.09092,0,0,0,11.99515,5a6.13347,6.13347,0,0,0-4.585,1.79187,6.417,6.417,0,0,0-1.756,4.69207,6.93955,6.93955,0,0,0,.622,2.97415,8.06587,8.06587,0,0,0,1.949,2.53076H5.41452V19h5.54114v-.04331h-.00147V16.84107a5.82825,5.82825,0,0,1-2.2052-2.2352A6.40513,6.40513,0,0,1,7.97672,11.447,4.68548,4.68548,0,0,1,9.07785,8.19191a3.73232,3.73232,0,0,1,2.9173-1.22462,3.76839,3.76839,0,0,1,2.91241,1.21489,4.482,4.482,0,0,1,1.11572,3.154,6.71141,6.71141,0,0,1-.75384,3.24732,5.83562,5.83562,0,0,1-2.22357,2.25759v2.11562H13.0444V19h5.54108V16.98885Z", tags: "M8.9749 7.47489a1.5 1.5 0 1 1 -1.5 1.5A1.5 1.5 0 0 1 8.9749 7.47489Zm3.78866 -3.12713L16.5362 8.12041l0.33565 0.33564 2.77038 2.77038a2.01988 2.01988 0 0 1 0.59 1.42 1.95518 1.95518 0 0 1 -0.5854 1.40455l0.00044 0.00043 -5.59583 5.59583 -0.00043 -0.00044a1.95518 1.95518 0 0 1 -1.40455 0.5854 1.98762 1.98762 0 0 1 -1.41 -0.58L8.45605 16.87185l-0.33564 -0.33565L4.35777 12.77357a1.99576 1.99576 0 0 1 -0.59 -1.42V9.36358l0 -3.59582a2.00579 2.00579 0 0 1 2 -2l3.59582 0h1.98995A1.98762 1.98762 0 0 1 12.76356 4.34776ZM15.46186 9.866l-0.33564 -0.33564L11.36359 5.76776H5.76776v5.59583L9.866 15.46186l2.7794 2.7794 5.5878 -5.60385 -0.001 -0.001Z", tableHeader: "M20,5H4C2.9,5,2,5.9,2,7v10c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V7C22,5.9,21.1,5,20,5z M8,17.5H4c-0.3,0-0.5-0.2-0.5-0.4 l0,0V17v-2H8V17.5z M8,13.5H3.5v-3H8V13.5z M14.5,17.5h-5V15h5V17.5z M14.5,13.5h-5v-3h5V13.5z M20.5,17c0,0.3-0.2,0.5-0.4,0.5l0,0 H16V15h4.5V17z M20.5,13.5H16v-3h4.5V13.5z M20.5,9h-4.4H16h-1.5h-5H8H7.9H3.5V7c0-0.3,0.2-0.5,0.4-0.5l0,0h4l0,0h8.2l0,0H20 c0.3,0,0.5,0.2,0.5,0.4l0,0V9z", tableStyle: "M20.0171,19.89752l.9,3.6-3.2-1.9-3.3,1.9.8-3.6-2.9-2.9h3.8l1.7-3.5,1.4,3.5h3.8ZM20,5H4A2.00591,2.00591,0,0,0,2,7V17a2.00591,2.00591,0,0,0,2,2h7.49115l-.58826-.58826L9.99115,17.5H9.5V14.9975h5.36511L16,12.66089V10.5h4.5v3h-.52783l.599,1.4975H22V7A2.00591,2.00591,0,0,0,20,5ZM3.5,7A.4724.4724,0,0,1,4,6.5H8V9H3.5Zm0,3.5H8v3H3.5Zm.5,7a.4724.4724,0,0,1-.5-.5V15H8v2.5Zm10.5-4h-5v-3h5Zm0-4.5h-5V6.5h5Zm6,0H16V6.5h4a.4724.4724,0,0,1,.5.5Z", textColor: "M15.2,13.494s-3.6,3.9-3.6,6.3a3.65,3.65,0,0,0,7.3.1v-.1C18.9,17.394,15.2,13.494,15.2,13.494Zm-1.47-1.357.669-.724L12.1,5h-2l-5,14h2l1.43-4h2.943A24.426,24.426,0,0,1,13.726,12.137ZM11.1,7.8l1.86,5.2H9.244Z", textMore: "M13.55,19h2l-5-14h-2l-5,14h2l1.4-4h5.1Zm-5.9-6,1.9-5.2,1.9,5.2Zm12.8,4.5a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.45,17.5Zm0-4a1.5,1.5,0,1,1-1.5-1.5A1.5,1.5,0,0,1,20.45,13.5Zm0-4A1.5,1.5,0,1,1,18.95,8,1.5,1.5,0,0,1,20.45,9.5Z", underline: "M19,20v2H5V20Zm-3-6.785a4,4,0,0,1-5.74,3.4A3.75,3.75,0,0,1,8,13.085V5.005H6v8.21a6,6,0,0,0,8,5.44,5.851,5.851,0,0,0,4-5.65v-8H16ZM16,5v0h2V5ZM8,5H6v0H8Z", undo: "M10.4,9.4c-1.7,0.3-3.2,0.9-4.6,2L3,8.5v7h7l-2.7-2.7c3.7-2.6,8.8-1.8,11.5,1.9c0.2,0.3,0.4,0.5,0.5,0.8l1.8-0.9 C18.9,10.8,14.7,8.7,10.4,9.4z", unlink: "M14.4,11l1.6,1.6V11H14.4z M17,7h-4v1.9h4c1.7,0,3.1,1.4,3.1,3.1c0,1.3-0.8,2.4-1.9,2.8l1.4,1.4C21,15.4,22,13.8,22,12 C22,9.2,19.8,7,17,7z M2,4.3l3.1,3.1C3.3,8.1,2,9.9,2,12c0,2.8,2.2,5,5,5h4v-1.9H7c-1.7,0-3.1-1.4-3.1-3.1c0-1.6,1.2-2.9,2.8-3.1 L8.7,11H8v2h2.7l2.3,2.3V17h1.7l4,4l1.4-1.4L3.4,2.9L2,4.3z", unorderedList: "M4,10.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S4.8,10.5,4,10.5z M4,5.5C3.2,5.5,2.5,6.2,2.5,7 S3.2,8.5,4,8.5S5.5,7.8,5.5,7S4.8,5.5,4,5.5z M4,15.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S4.8,15.5,4,15.5z M7.5,6v2h14V6H7.5z M7.5,18h14v-2h-14V18z M7.5,13h14v-2h-14V13z", verticalAlignBottom: "M16,13h-3V3h-2v10H8l4,4L16,13z M3,19v2h18v-2H3z", verticalAlignMiddle: "M3,11v2h18v-2H3z M8,18h3v3h2v-3h3l-4-4L8,18z M16,6h-3V3h-2v3H8l4,4L16,6z", verticalAlignTop: "M8,11h3v10h2V11h3l-4-4L8,11z M21,5V3H3v2H21z", trackChanges: "M17.2 20H12.4599L13.9938 19.2076L14.0305 19.1886L14.0616 19.1612C14.1036 19.1242 14.1373 19.0786 14.1603 19.0275C14.1806 18.9825 14.1923 18.9342 14.1948 18.885H14.2H14.3384L14.4364 18.7874L14.7049 18.52H15.45C15.5747 18.52 15.6942 18.4705 15.7823 18.3823C15.8705 18.2942 15.92 18.1746 15.92 18.05C15.92 17.9253 15.8705 17.8058 15.7823 17.7176C15.7351 17.6704 15.6789 17.6343 15.6177 17.6109L17.33 15.9056V19.87C17.33 19.8871 17.3266 19.904 17.3201 19.9197C17.3136 19.9355 17.304 19.9499 17.2919 19.9619C17.2799 19.974 17.2655 19.9836 17.2497 19.9901C17.234 19.9966 17.2171 20 17.2 20ZM4.13 20H11.2508C11.2396 19.9629 11.2337 19.9242 11.2337 19.885C11.2337 19.8133 11.2533 19.7431 11.29 19.6819L11.2739 19.6734L11.8838 18.52H5C4.87535 18.52 4.7558 18.4705 4.66766 18.3823C4.57952 18.2942 4.53 18.1746 4.53 18.05C4.53 17.9253 4.57952 17.8058 4.66766 17.7176C4.7558 17.6295 4.87535 17.58 5 17.58H12.3809L12.3925 17.5582L12.4187 17.5284C12.4558 17.4864 12.5014 17.4527 12.5525 17.4297C12.5836 17.4156 12.6163 17.4057 12.6498 17.4001C12.6522 17.3065 12.6877 17.2166 12.7503 17.1467L13 17.37C12.9902 17.381 12.9847 17.3952 12.9847 17.41C12.9847 17.4247 12.9902 17.439 13 17.45L14.13 18.55H14.2L19.09 13.68V13.6L17.99 12.5C17.979 12.4902 17.9647 12.4847 17.95 12.4847C17.9352 12.4847 17.921 12.4902 17.91 12.5L13 17.37L12.7641 17.1322L15.1759 14.74H5C4.87535 14.74 4.7558 14.6905 4.66766 14.6023C4.57952 14.5142 4.53 14.3946 4.53 14.27C4.53 14.1453 4.57952 14.0258 4.66766 13.9376C4.7558 13.8495 4.87535 13.8 5 13.8H15.45C15.5747 13.8 15.6942 13.8495 15.7823 13.9376C15.8169 13.9722 15.8454 14.0115 15.8675 14.0541L17.33 12.6034V9.3H13.28C13.207 9.30976 13.133 9.30976 13.06 9.3C12.7697 9.22119 12.5113 9.05343 12.3212 8.82027C12.1311 8.58711 12.0187 8.30026 12 8V4H4.13C4.09552 4 4.06246 4.0137 4.03808 4.03808C4.0137 4.06246 4 4.09552 4 4.13V19.87C4 19.9045 4.0137 19.9375 4.03808 19.9619C4.06246 19.9863 4.09552 20 4.13 20ZM11.7889 20H11.8785C11.8902 19.9746 11.898 19.9475 11.9015 19.9197L11.8661 19.9866L11.8117 19.9578L13.84 18.91C13.8464 18.9044 13.8515 18.8974 13.855 18.8897C13.8585 18.8819 13.8603 18.8735 13.8603 18.865C13.8603 18.8565 13.8585 18.8481 13.855 18.8403C13.8515 18.8325 13.8464 18.8256 13.84 18.82L12.76 17.75C12.7544 17.7436 12.7474 17.7385 12.7397 17.735C12.7319 17.7315 12.7235 17.7297 12.715 17.7297C12.7065 17.7297 12.6981 17.7315 12.6903 17.735C12.6825 17.7385 12.6756 17.7436 12.67 17.75L11.57 19.83L11.5023 19.7942L11.58 19.85C11.5727 19.8602 11.5687 19.8724 11.5687 19.885C11.5687 19.8975 11.5727 19.9098 11.58 19.92L11.67 20H11.73L11.7642 19.9823L11.7889 20ZM13.1 4.65L16.6 8.15C16.6212 8.17232 16.6355 8.20028 16.6412 8.23051C16.6469 8.26075 16.6437 8.29199 16.6321 8.32048C16.6205 8.34898 16.6009 8.37352 16.5757 8.39117C16.5505 8.40882 16.5207 8.41883 16.49 8.42H13.06L12.83 8.19V4.76C12.8312 4.72925 12.8412 4.6995 12.8588 4.67429C12.8765 4.64909 12.901 4.62951 12.9295 4.6179C12.958 4.6063 12.9893 4.60315 13.0195 4.60884C13.0497 4.61453 13.0777 4.62882 13.1 4.65ZM11 6.72C11.0027 6.66089 10.9937 6.60183 10.9735 6.54621C10.9534 6.49058 10.9224 6.43948 10.8825 6.39582C10.8425 6.35216 10.7944 6.31681 10.7408 6.29179C10.6871 6.26677 10.6291 6.25257 10.57 6.25H5C4.88239 6.25773 4.77251 6.3113 4.69397 6.39918C4.61543 6.48707 4.57451 6.60226 4.58 6.72C4.57451 6.83774 4.61543 6.95293 4.69397 7.04082C4.77251 7.12871 4.88239 7.18227 5 7.19H10.6C10.714 7.1774 10.8189 7.12173 10.8933 7.03438C10.9676 6.94702 11.0058 6.83457 11 6.72ZM11.1 8.14001H5C4.87535 8.14001 4.7558 8.18953 4.66766 8.27767C4.57952 8.36582 4.53 8.48536 4.53 8.61001C4.53 8.73467 4.57952 8.85421 4.66766 8.94236C4.7558 9.0305 4.87535 9.08001 5 9.08001H11.1C11.2247 9.08001 11.3442 9.0305 11.4323 8.94236C11.5205 8.85421 11.57 8.73467 11.57 8.61001C11.57 8.48536 11.5205 8.36582 11.4323 8.27767C11.3442 8.18953 11.2247 8.14001 11.1 8.14001ZM5 11H15.45C15.5826 11 15.7098 10.9473 15.8036 10.8536C15.8973 10.7598 15.95 10.6326 15.95 10.5C15.95 10.3674 15.8973 10.2402 15.8036 10.1464C15.7098 10.0527 15.5826 10 15.45 10H5C4.86739 10 4.74021 10.0527 4.64645 10.1464C4.55268 10.2402 4.5 10.3674 4.5 10.5C4.5 10.6326 4.55268 10.7598 4.64645 10.8536C4.74021 10.9473 4.86739 11 5 11ZM5 12.86H11.1C11.2211 12.8523 11.3346 12.798 11.4166 12.7085C11.4986 12.6191 11.5428 12.5013 11.54 12.38C11.5427 12.2597 11.4982 12.1431 11.4159 12.0552C11.3337 11.9673 11.2202 11.9152 11.1 11.91H5C4.94089 11.9126 4.88286 11.9268 4.82924 11.9518C4.77562 11.9768 4.72746 12.0122 4.68752 12.0558C4.64758 12.0995 4.61664 12.1506 4.59648 12.2062C4.57631 12.2618 4.56731 12.3209 4.57 12.38C4.56451 12.5004 4.60649 12.6181 4.6869 12.7079C4.76731 12.7976 4.87974 12.8523 5 12.86ZM11.1 16.63H5C4.87535 16.63 4.7558 16.5805 4.66766 16.4923C4.57952 16.4042 4.53 16.2846 4.53 16.16C4.53 16.0353 4.57952 15.9158 4.66766 15.8276C4.7558 15.7395 4.87535 15.69 5 15.69H11.1C11.2247 15.69 11.3442 15.7395 11.4323 15.8276C11.5205 15.9158 11.57 16.0353 11.57 16.16C11.57 16.2846 11.5205 16.4042 11.4323 16.4923C11.3442 16.5805 11.2247 16.63 11.1 16.63ZM18.8503 11.592C18.7991 11.6175 18.7545 11.6544 18.72 11.7L18.26 12.14C18.2501 12.151 18.2447 12.1652 18.2447 12.18C18.2447 12.1947 18.2501 12.209 18.26 12.22L19.37 13.32C19.381 13.3298 19.3952 13.3353 19.41 13.3353C19.4247 13.3353 19.439 13.3298 19.45 13.32L19.86 12.91C19.9057 12.867 19.9421 12.8151 19.967 12.7575C19.9919 12.6998 20.0047 12.6377 20.0047 12.575C20.0047 12.5122 19.9919 12.4501 19.967 12.3925C19.9421 12.3349 19.9057 12.283 19.86 12.24L19.31 11.7C19.2755 11.6544 19.2309 11.6175 19.1797 11.592C19.1285 11.5666 19.0721 11.5533 19.015 11.5533C18.9578 11.5533 18.9014 11.5666 18.8503 11.592Z", showTrackChanges: "M17.2421 13.6048C17.2631 13.6136 17.2841 13.6226 17.305 13.6317V9.29505H13.2626C13.1897 9.30481 13.1159 9.30481 13.043 9.29505C12.7532 9.21632 12.4953 9.04872 12.3056 8.81577C12.1158 8.58283 12.0037 8.29625 11.985 7.99627V4H4.12976C4.09534 4 4.06234 4.01368 4.038 4.03804C4.01367 4.0624 4 4.09543 4 4.12988V19.8552C4 19.8896 4.01367 19.9227 4.038 19.947C4.06234 19.9714 4.09534 19.9851 4.12976 19.9851H13.4875C13.0501 19.8216 12.6281 19.6155 12.2277 19.3686C11.8529 19.1551 11.4911 18.9196 11.1442 18.6632C11.0697 18.6152 10.9982 18.5628 10.9302 18.5065H4.99812C4.87371 18.5065 4.75438 18.457 4.66641 18.3689C4.57843 18.2809 4.529 18.1614 4.529 18.0369C4.529 17.9124 4.57843 17.7929 4.66641 17.7049C4.75438 17.6168 4.87371 17.5673 4.99812 17.5673H10.4396C10.4472 17.4488 10.4756 17.3324 10.5235 17.2235C10.5939 17.017 10.6761 16.8149 10.7694 16.6182H4.99812C4.87371 16.6182 4.75438 16.5687 4.66641 16.4807C4.57843 16.3926 4.529 16.2732 4.529 16.1487C4.529 16.0241 4.57843 15.9047 4.66641 15.8166C4.75438 15.7286 4.87371 15.6791 4.99812 15.6791H11.0867C11.1576 15.6791 11.2268 15.6952 11.2895 15.7253C11.5204 15.361 11.7938 15.027 12.1033 14.73H4.99812C4.87371 14.73 4.75438 14.6805 4.66641 14.5924C4.57843 14.5044 4.529 14.385 4.529 14.2604C4.529 14.1359 4.57843 14.0164 4.66641 13.9284C4.75438 13.8403 4.87371 13.7909 4.99812 13.7909H13.4434C13.9833 13.525 14.5656 13.3516 15.166 13.2795L15.1923 13.2763H15.2189H15.4925C16.0923 13.2609 16.6886 13.3728 17.2421 13.6048ZM13.0829 4.64939L16.5764 8.14613C16.5975 8.16843 16.6118 8.19636 16.6174 8.22657C16.6231 8.25677 16.62 8.28798 16.6084 8.31645C16.5968 8.34492 16.5773 8.36944 16.5521 8.38707C16.527 8.40471 16.4973 8.41471 16.4666 8.41587H13.043L12.8134 8.18609V4.75929C12.8146 4.72857 12.8246 4.69884 12.8422 4.67366C12.8598 4.64849 12.8843 4.62893 12.9128 4.61733C12.9412 4.60573 12.9724 4.60259 13.0026 4.60827C13.0328 4.61396 13.0607 4.62824 13.0829 4.64939ZM10.9869 6.71746C10.9896 6.65841 10.9806 6.59941 10.9604 6.54383C10.9403 6.48825 10.9094 6.4372 10.8696 6.39358C10.8297 6.34997 10.7816 6.31465 10.7281 6.28965C10.6746 6.26466 10.6167 6.25047 10.5577 6.2479H4.99813C4.88074 6.25562 4.77106 6.30914 4.69267 6.39694C4.61428 6.48475 4.57343 6.59983 4.57891 6.71746C4.57343 6.83509 4.61428 6.95017 4.69267 7.03798C4.77106 7.12579 4.88074 7.1793 4.99813 7.18702H10.5876C10.7014 7.17444 10.8061 7.11882 10.8803 7.03154C10.9545 6.94427 10.9927 6.83192 10.9869 6.71746ZM11.0867 8.13614H4.99812C4.87371 8.13614 4.75438 8.18561 4.66641 8.27367C4.57843 8.36173 4.529 8.48116 4.529 8.6057C4.529 8.73023 4.57843 8.84967 4.66641 8.93773C4.75438 9.02579 4.87371 9.07526 4.99812 9.07526H11.0867C11.2111 9.07526 11.3304 9.02579 11.4184 8.93773C11.5064 8.84967 11.5558 8.73023 11.5558 8.6057C11.5558 8.48116 11.5064 8.36173 11.4184 8.27367C11.3304 8.18561 11.2111 8.13614 11.0867 8.13614ZM4.99812 10.9935H15.4285C15.5609 10.9935 15.6878 10.9408 15.7814 10.8472C15.875 10.7535 15.9276 10.6264 15.9276 10.4939C15.9276 10.3614 15.875 10.2344 15.7814 10.1407C15.6878 10.047 15.5609 9.9944 15.4285 9.9944H4.99812C4.86576 9.9944 4.73883 10.047 4.64523 10.1407C4.55164 10.2344 4.49906 10.3614 4.49906 10.4939C4.49906 10.6264 4.55164 10.7535 4.64523 10.8472C4.73883 10.9408 4.86576 10.9935 4.99812 10.9935ZM4.99812 12.8517H11.0867C11.2076 12.844 11.3208 12.7898 11.4027 12.7004C11.4845 12.611 11.5287 12.4934 11.5259 12.3722C11.5286 12.252 11.4841 12.1355 11.402 12.0477C11.3199 11.9599 11.2067 11.9078 11.0867 11.9026H4.99812C4.93912 11.9052 4.8812 11.9194 4.82769 11.9444C4.77417 11.9694 4.7261 12.0047 4.68623 12.0483C4.64637 12.0919 4.61549 12.143 4.59536 12.1985C4.57523 12.2541 4.56625 12.3131 4.56893 12.3722C4.56345 12.4925 4.60535 12.6101 4.68561 12.6998C4.76587 12.7894 4.87809 12.844 4.99812 12.8517ZM19.97 17.4974C19.5787 16.5636 19.0431 15.6971 18.383 14.9298C18.0152 14.5351 17.5679 14.2233 17.0706 14.0148C16.5732 13.8064 16.0373 13.7062 15.4984 13.7209H15.2189C14.4787 13.8098 13.7684 14.0666 13.1423 14.4717C12.5162 14.8769 11.9906 15.4196 11.6057 16.0587C11.3211 16.4677 11.0959 16.9151 10.937 17.3875C10.9006 17.464 10.8817 17.5476 10.8817 17.6323C10.8817 17.717 10.9006 17.8006 10.937 17.877C11.0642 18.0428 11.2196 18.1849 11.3961 18.2967C11.7346 18.5476 12.0879 18.7778 12.4541 18.986C13.4096 19.5767 14.497 19.92 15.6182 19.9851C16.4392 20.0504 17.2632 19.9005 18.0088 19.5501C18.7544 19.1998 19.3959 18.661 19.8702 17.9869C19.9311 17.923 19.9729 17.8432 19.9905 17.7566C20.0082 17.67 20.0011 17.5801 19.97 17.4974ZM15.9775 19.1758C14.3849 19.068 12.8507 18.5331 11.5358 17.6273C11.5788 17.5678 11.6255 17.5111 11.6756 17.4574C12.3061 16.569 13.1295 15.8359 14.0832 15.3126C13.8003 15.7406 13.6785 16.2566 13.7417 16.7681C13.7676 17.0339 13.8465 17.2918 13.9737 17.5265C14.1009 17.7613 14.2739 17.9681 14.4823 18.1348C14.6907 18.3016 14.9304 18.4248 15.1872 18.4972C15.4441 18.5696 15.7128 18.5897 15.9775 18.5564C16.305 18.4971 16.6137 18.3609 16.8785 18.159C17.1432 17.9572 17.3564 17.6954 17.5005 17.3951C17.6446 17.0949 17.7156 16.7647 17.7077 16.4317C17.6997 16.0987 17.613 15.7723 17.4547 15.4793C17.2614 15.3391 17.0533 15.2235 16.8351 15.1339C17.0715 15.226 17.2966 15.3485 17.5046 15.4993C18.0049 15.8976 18.4424 16.3691 18.8022 16.898L18.8927 17.0137L18.8927 17.0137C19.0823 17.2564 19.2729 17.5004 19.4709 17.7072C18.5404 18.6311 17.288 19.1576 15.9775 19.1758ZM16.3168 15.769C16.2085 15.8106 16.1171 15.8873 16.0574 15.9869C15.9977 16.0865 15.9731 16.2032 15.9875 16.3185C15.9949 16.3856 16.0156 16.4505 16.0483 16.5096C16.081 16.5686 16.1251 16.6206 16.178 16.6624C16.2309 16.7042 16.2916 16.7351 16.3566 16.7532C16.4216 16.7714 16.4895 16.7764 16.5564 16.7681H16.6063C16.5618 16.9495 16.4637 17.1132 16.3248 17.238C16.186 17.3627 16.0127 17.4427 15.8278 17.4674H15.6481C15.4335 17.4396 15.2337 17.3427 15.0789 17.1913C14.924 17.04 14.8226 16.8423 14.7897 16.6282C14.7628 16.3782 14.8311 16.1271 14.981 15.9253C15.1305 15.7238 15.3504 15.5861 15.5968 15.5395C15.3446 15.5862 15.12 15.7284 14.9697 15.9364C14.8191 16.1448 14.7547 16.4034 14.7897 16.6582C14.8226 16.8723 14.924 17.0699 15.0789 17.2213C15.2337 17.3727 15.4335 17.4696 15.6481 17.4974H15.8377C16.0209 17.4708 16.1919 17.39 16.3289 17.2654C16.4658 17.1408 16.5625 16.978 16.6063 16.7981C16.7293 16.7633 16.8359 16.686 16.9072 16.5799C16.9785 16.4737 17.0098 16.3457 16.9956 16.2186C16.9882 16.1515 16.9675 16.0865 16.9348 16.0275C16.9021 15.9685 16.858 15.9165 16.805 15.8747C16.7521 15.8329 16.6914 15.802 16.6264 15.7838C16.5615 15.7657 16.4936 15.7607 16.4266 15.769H16.3168Z", acceptAllChanges: "M9.36499 16.7348C9.38499 16.7547 9.41212 16.7659 9.44041 16.7659H10.9881C10.9028 16.6008 10.9289 16.3933 11.0663 16.2541L11.7266 15.585H10.1444C10.0549 15.5701 9.97363 15.5238 9.91498 15.4547C9.85639 15.3856 9.82422 15.298 9.82422 15.2074C9.82422 15.1169 9.85639 15.0292 9.91498 14.9601C9.97363 14.891 10.0549 14.8448 10.1444 14.8298H12.4879C12.5584 14.785 12.6407 14.7607 12.7257 14.7607C12.8106 14.7607 12.893 14.785 12.9635 14.8298H16.5295L18.3303 13.0091C18.4135 12.925 18.5271 12.8776 18.6456 12.8777C18.7642 12.8777 18.8777 12.9252 18.9609 13.0094L20 14.0621V8.25532H16.8001C16.7301 8.27288 16.6568 8.27288 16.5868 8.25532C16.3485 8.1935 16.1367 8.0565 15.9829 7.86478C15.8292 7.67306 15.7416 7.43688 15.7335 7.19149V4H9.44041C9.41293 4.0024 9.38718 4.01437 9.36767 4.03383C9.34816 4.05329 9.33615 4.07897 9.33375 4.10638V16.6596C9.33375 16.6878 9.34499 16.7148 9.36499 16.7348ZM10.0744 17.2979H11.4803L12.259 18.0957H5.06727C5.01734 18.0957 4.96838 18.1057 4.9232 18.1246C4.8788 18.1431 4.83798 18.1702 4.80335 18.2048C4.7333 18.2746 4.69398 18.3693 4.69398 18.468C4.69398 18.5668 4.7333 18.6615 4.80335 18.7313C4.87333 18.8011 4.96832 18.8404 5.06727 18.8404H12.9857L13.7947 19.6693L14.0836 19.9574H4.10733C4.09291 19.9591 4.07829 19.9576 4.06457 19.9528C4.05085 19.9481 4.03838 19.9403 4.02812 19.9301C4.01785 19.9198 4.01004 19.9074 4.00529 19.8937C4.00054 19.88 3.99896 19.8654 4.00067 19.8511V7.29787C4.00067 7.26966 4.01191 7.2426 4.03191 7.22265C4.05192 7.2027 4.07905 7.19149 4.10733 7.19149H8.70447V9.05319H5.06727C4.97294 9.05867 4.88453 9.10069 4.8208 9.17019C4.757 9.23973 4.72302 9.33135 4.72594 9.42553C4.72289 9.52082 4.75654 9.61364 4.82002 9.6849C4.88356 9.75613 4.97203 9.80038 5.06727 9.8085H8.70447V10.5638H5.06727C5.01968 10.5652 4.97274 10.5759 4.92932 10.5954C4.88583 10.6148 4.84664 10.6426 4.8139 10.6772C4.78122 10.7118 4.7557 10.7525 4.73877 10.7969C4.72184 10.8413 4.7139 10.8887 4.71527 10.9361C4.7139 10.9837 4.72184 11.031 4.73877 11.0754C4.74424 11.0897 4.75055 11.1037 4.75778 11.1171C4.76162 11.1243 4.76566 11.1313 4.76995 11.1382C4.78265 11.1585 4.79736 11.1776 4.8139 11.1951C4.84664 11.2297 4.88583 11.2575 4.92932 11.2769C4.95491 11.2884 4.98173 11.2968 5.0092 11.3021C5.02834 11.3058 5.04774 11.3079 5.06727 11.3085H8.70447V12.0638H5.06734C4.97782 12.0789 4.89651 12.1251 4.83792 12.1942C4.77926 12.2633 4.7471 12.351 4.7471 12.4415C4.7471 12.5321 4.77926 12.6197 4.83792 12.6888C4.89651 12.758 4.97782 12.8041 5.06734 12.8192H8.70447V13.5745H5.06734C4.97782 13.5895 4.89651 13.6357 4.83792 13.7048C4.81383 13.7332 4.79424 13.7647 4.77946 13.7983C4.7583 13.8465 4.7471 13.8988 4.7471 13.9522C4.7471 14.0427 4.77926 14.1303 4.83792 14.1994C4.89651 14.2686 4.97782 14.3147 5.06734 14.3298H8.70447V15.0744H5.06727C4.97776 15.0895 4.89651 15.1357 4.83785 15.2048C4.77926 15.2739 4.7471 15.3616 4.7471 15.4521C4.7471 15.5043 4.75778 15.5556 4.77809 15.6029C4.793 15.6376 4.81305 15.6701 4.83785 15.6994C4.89651 15.7685 4.97776 15.8147 5.06727 15.8298H8.70447V16.5851H5.06727C4.97776 16.6001 4.89651 16.6463 4.83785 16.7154C4.79489 16.7661 4.76618 16.8267 4.75387 16.8912C4.74938 16.9146 4.7471 16.9386 4.7471 16.9628C4.7471 17.0533 4.77926 17.1409 4.83785 17.21C4.89651 17.2792 4.97776 17.3253 5.06727 17.3404H9.95241C9.99552 17.3331 10.0367 17.3187 10.0744 17.2979ZM20 15.3204L18.5709 16.7659H19.8933C19.9216 16.7659 19.9487 16.7547 19.9687 16.7348C19.9887 16.7148 20 16.6878 20 16.6596V15.3204ZM14.7526 16.6264L13.7248 15.585H15.7825L14.7526 16.6264ZM14.9498 6.08721C14.9465 6.06854 14.9416 6.05023 14.9353 6.03244C14.9202 5.98939 14.897 5.94929 14.8665 5.91442C14.8145 5.85488 14.7444 5.81394 14.6669 5.79787H10.1337C10.0348 5.79787 9.93978 5.83709 9.8698 5.90693C9.79975 5.97676 9.76043 6.07146 9.76043 6.17022C9.76043 6.19463 9.76283 6.21879 9.76752 6.24239C9.77462 6.2782 9.78692 6.31268 9.80398 6.34479C9.82123 6.37716 9.8433 6.40709 9.8698 6.43348C9.93978 6.50332 10.0348 6.54257 10.1337 6.54257H14.6669C14.6811 6.54023 14.6951 6.53702 14.7088 6.53299C14.7206 6.52955 14.7322 6.52549 14.7436 6.52082C14.7624 6.51309 14.7806 6.50371 14.7979 6.4928C14.8378 6.46764 14.8722 6.43468 14.8991 6.39599C14.9259 6.35729 14.9447 6.31359 14.9543 6.26749C14.9554 6.26232 14.9563 6.25716 14.9571 6.25197C14.9579 6.24739 14.9586 6.24281 14.9591 6.23824C14.9612 6.22129 14.962 6.20424 14.9616 6.18723C14.961 6.16727 14.9588 6.14733 14.9549 6.12766C14.9539 6.11406 14.9523 6.10055 14.9498 6.08721ZM15.0189 7.29788H10.1445C10.0549 7.31291 9.97363 7.35911 9.91504 7.42823C9.85639 7.49738 9.82422 7.585 9.82422 7.67555C9.82422 7.76609 9.85639 7.85369 9.91504 7.92284C9.97363 7.99196 10.0549 8.03815 10.1445 8.05319H15.0189C15.0321 8.05241 15.0451 8.05095 15.058 8.04877C15.0745 8.04601 15.0906 8.04212 15.1064 8.03718C15.1669 8.01822 15.2219 7.98361 15.2654 7.93618C15.3291 7.86664 15.3632 7.77502 15.3602 7.68084C15.3606 7.67392 15.3608 7.66701 15.3608 7.66009C15.3609 7.65087 15.3606 7.64165 15.3599 7.63247C15.3592 7.62263 15.358 7.61279 15.3565 7.60302C15.3532 7.58188 15.3479 7.56104 15.3409 7.54072C15.3254 7.49575 15.301 7.45426 15.2693 7.41868C15.2492 7.39621 15.2265 7.37638 15.2017 7.35959C15.1872 7.34979 15.172 7.34102 15.1562 7.33339C15.1132 7.31265 15.0665 7.3006 15.0189 7.29788ZM10.1445 9.56381H18.496C18.5856 9.54877 18.6669 9.50258 18.7255 9.43346C18.7841 9.3643 18.8163 9.27671 18.8163 9.18617C18.8163 9.09562 18.7841 9.008 18.7255 8.93884C18.6669 8.86973 18.5856 8.82353 18.496 8.8085H10.1445C10.0549 8.82353 9.97363 8.86973 9.91504 8.93884C9.85639 9.008 9.82422 9.09562 9.82422 9.18617C9.82422 9.24412 9.83738 9.30087 9.86224 9.35236C9.87624 9.38132 9.89395 9.40859 9.91504 9.43346C9.97363 9.50258 10.0549 9.54877 10.1445 9.56381ZM10.1445 11.0638H15.0189C15.1084 11.0488 15.1897 11.0026 15.2483 10.9335C15.2854 10.8898 15.3118 10.8387 15.3263 10.7842C15.3347 10.7525 15.3391 10.7195 15.3391 10.6861C15.3391 10.5956 15.3069 10.508 15.2483 10.4389C15.1897 10.3697 15.1084 10.3235 15.0189 10.3085H10.1445C10.0549 10.3235 9.97363 10.3697 9.91504 10.4389C9.85639 10.508 9.82422 10.5956 9.82422 10.6861C9.82422 10.7424 9.83666 10.7976 9.8601 10.8478C9.87442 10.8785 9.89284 10.9073 9.91504 10.9335C9.97363 11.0026 10.0549 11.0488 10.1445 11.0638ZM18.496 12.5745H10.1444C10.0549 12.5594 9.97363 12.5132 9.91498 12.4441C9.85639 12.3749 9.82422 12.2873 9.82422 12.1968C9.82422 12.1062 9.85639 12.0186 9.91498 11.9495C9.97363 11.8803 10.0549 11.8342 10.1444 11.8191H18.496C18.5856 11.8342 18.6669 11.8803 18.7255 11.9495C18.7841 12.0186 18.8163 12.1062 18.8163 12.1968C18.8163 12.2873 18.7841 12.3749 18.7255 12.4441C18.6971 12.4776 18.6633 12.5058 18.6259 12.5276C18.5861 12.5507 18.5421 12.5667 18.496 12.5745ZM15.0189 14.0744H10.1444C10.0968 14.0731 10.0499 14.0624 10.0064 14.0429C9.96296 14.0234 9.92376 13.9956 9.89102 13.961C9.85834 13.9265 9.83282 13.8857 9.81589 13.8413C9.79897 13.7969 9.79102 13.7496 9.79239 13.7021C9.79102 13.6546 9.79897 13.6073 9.81589 13.5628C9.83282 13.5184 9.85834 13.4778 9.89102 13.4432C9.92376 13.4086 9.96296 13.3808 10.0064 13.3613C10.0499 13.3419 10.0968 13.3311 10.1444 13.3297H15.0189C15.0661 13.3311 15.1125 13.3419 15.1554 13.3615C15.1983 13.381 15.2368 13.4091 15.2686 13.4438C15.3005 13.4785 15.325 13.5193 15.3407 13.5637C15.3564 13.608 15.363 13.6551 15.3602 13.7021C15.3631 13.7963 15.3291 13.8879 15.2653 13.9574C15.2016 14.027 15.1132 14.0689 15.0189 14.0744ZM16.6188 4.52128L19.4133 7.30852C19.4293 7.32624 19.4401 7.34808 19.4443 7.37157C19.4485 7.39506 19.446 7.41925 19.4371 7.4414C19.4282 7.46356 19.4133 7.48278 19.394 7.4969C19.3747 7.51102 19.3518 7.51947 19.328 7.52128H16.5868L16.4054 7.34043V4.60639C16.4073 4.5826 16.4157 4.55979 16.4299 4.54056C16.444 4.52133 16.4633 4.50644 16.4855 4.49757C16.5077 4.48871 16.532 4.48624 16.5556 4.49043C16.5791 4.49462 16.601 4.50531 16.6188 4.52128ZM18.6454 13.3192L20 14.6915L14.7522 20L14.7416 19.9894L14.1123 19.3617L13.3976 18.6277L11.3817 16.5638L12.7257 15.2021L14.7522 17.2553L18.6454 13.3192Z", rejectAllChanges: "M9.54637 16.5847H8.96997V15.8295H12.786C12.8024 15.8265 12.8186 15.8223 12.8343 15.817C12.8535 15.8105 12.8719 15.8023 12.8897 15.7926C12.9315 15.7697 12.969 15.738 12.9997 15.6991C13.0268 15.6649 13.0478 15.6261 13.0621 15.5847H13.571V16.7656H9.79386C9.78396 16.7479 9.77269 16.731 9.76011 16.7151C9.70552 16.6459 9.62976 16.5998 9.54637 16.5847ZM13.4717 12.9573V13.3295H9.72523C9.6809 13.3309 9.63716 13.3416 9.59671 13.361C9.57578 13.3711 9.55595 13.3834 9.53745 13.3977C9.5201 13.411 9.50391 13.4262 9.48917 13.4429C9.45872 13.4775 9.43494 13.5182 9.41917 13.5626C9.41778 13.5664 9.41644 13.5703 9.41523 13.5742H8.96997V12.8189H12.786C12.8694 12.8039 12.9452 12.7577 12.9997 12.6886C13.0078 12.6784 13.0153 12.6677 13.0223 12.6568L13.029 12.6458L13.033 12.6389L13.0397 12.6266C13.0452 12.6157 13.0503 12.6046 13.055 12.5931C13.0576 12.5869 13.0599 12.5806 13.0621 12.5742H13.6872C13.6453 12.5965 13.607 12.6269 13.5746 12.6644C13.5059 12.7439 13.469 12.849 13.4717 12.9573ZM9.82598 14.0742H13.4758C13.4809 14.0932 13.4904 14.1108 13.5037 14.1251C13.5242 14.147 13.552 14.1593 13.581 14.1593H13.6008L13.571 14.1912V14.8295H9.72523C9.64183 14.8445 9.56614 14.8907 9.51149 14.9598C9.4845 14.994 9.46351 15.0328 9.4492 15.0741H8.96997V14.3295H9.54637C9.62976 14.3145 9.70552 14.2683 9.76011 14.1992C9.78947 14.162 9.81166 14.1195 9.82598 14.0742ZM18.9075 8.2552V12.5317H17.7846V12.323C17.7978 12.2827 17.8047 12.2399 17.8047 12.1965C17.8047 12.106 17.7747 12.0184 17.7201 11.9493C17.6655 11.8801 17.5897 11.834 17.5063 11.8189H9.72523C9.64183 11.834 9.56614 11.8801 9.51149 11.9493C9.48444 11.9835 9.46351 12.0222 9.4492 12.0636H8.96997V11.3083H9.54637C9.63425 11.3028 9.71662 11.2608 9.776 11.1913C9.80687 11.1551 9.83029 11.113 9.84527 11.0676L9.84654 11.0637H14.2667C14.3501 11.0486 14.4258 11.0024 14.4805 10.9333C14.5231 10.8794 14.5507 10.8142 14.5607 10.7452C14.5636 10.7258 14.565 10.706 14.565 10.686C14.565 10.6658 14.5635 10.6458 14.5606 10.626C14.5572 10.6026 14.5516 10.5796 14.5442 10.5573C14.5299 10.5144 14.5084 10.4741 14.4805 10.4387C14.4258 10.3696 14.3501 10.3234 14.2667 10.3083H9.72529C9.6832 10.3159 9.64299 10.3314 9.60653 10.3538C9.57081 10.3759 9.5386 10.4045 9.51155 10.4387C9.49639 10.4579 9.4831 10.4785 9.47182 10.5002C9.46133 10.5205 9.45259 10.5417 9.44568 10.5636H8.96997V9.80838H9.16873C9.25656 9.80286 9.33899 9.76085 9.39837 9.69131C9.45775 9.62177 9.48947 9.53022 9.48674 9.43601C9.48711 9.42951 9.48735 9.42302 9.48741 9.41653C9.48741 9.41049 9.48729 9.40445 9.48705 9.39848C9.49457 9.41055 9.50269 9.42218 9.51155 9.43334C9.56614 9.50249 9.64189 9.54866 9.72529 9.56372H17.5063C17.5897 9.54866 17.6655 9.50249 17.7201 9.43334C17.7747 9.36419 17.8047 9.2766 17.8047 9.18603C17.8047 9.09552 17.7747 9.00786 17.7201 8.93878C17.6655 8.86963 17.5897 8.82346 17.5063 8.8084H9.72529C9.64189 8.82346 9.56614 8.86963 9.51155 8.93878C9.4569 9.00786 9.42694 9.09552 9.42694 9.18603L9.427 9.19707L9.42754 9.20875C9.41972 9.19661 9.41123 9.18499 9.40201 9.17389C9.38478 9.15311 9.36537 9.1346 9.34427 9.11863C9.33735 9.11344 9.33026 9.1085 9.32298 9.10383C9.31855 9.10097 9.31406 9.09824 9.30951 9.09565L9.30424 9.09266L9.29659 9.08857C9.28792 9.08402 9.27906 9.07993 9.27009 9.07623C9.2616 9.07279 9.25298 9.06974 9.24431 9.06701C9.21974 9.05935 9.19439 9.05461 9.16873 9.05305H8.96997V4.10638C8.97221 4.07897 8.9834 4.05328 9.00157 4.03383C9.01975 4.01437 9.04374 4.0024 9.06935 4H14.9325V7.1914C14.9401 7.43679 15.0216 7.67296 15.1649 7.86468C15.3082 8.0564 15.5055 8.19338 15.7275 8.2552C15.7927 8.27277 15.861 8.27277 15.9262 8.2552H18.9075ZM13.571 17.2975V19.4251L13.5722 19.4615C13.5835 19.6376 13.6323 19.8068 13.7133 19.957H4.10061C4.08718 19.9587 4.07355 19.9571 4.06077 19.9524C4.04799 19.9477 4.03637 19.9399 4.02681 19.9296C4.01724 19.9194 4.00997 19.907 4.00554 19.8933C4.00111 19.8796 3.99964 19.865 4.00124 19.8506V7.29778C4.00124 7.26957 4.01171 7.24251 4.03034 7.22256C4.04898 7.20261 4.07426 7.1914 4.10061 7.1914H8.38368V9.05305H4.99497C4.90708 9.05857 4.82471 9.10052 4.76533 9.17006C4.70589 9.2396 4.67423 9.33121 4.67696 9.42536C4.67411 9.52067 4.70547 9.61346 4.76461 9.68475C4.8238 9.75598 4.90623 9.80026 4.99497 9.80838H8.38368V10.5636H4.99497C4.96682 10.5645 4.93898 10.5692 4.91199 10.5774C4.89647 10.5821 4.88124 10.588 4.86644 10.5952C4.8494 10.6034 4.83308 10.613 4.81762 10.6241C4.79627 10.6393 4.77655 10.657 4.7589 10.6771C4.72846 10.7116 4.70468 10.7523 4.68891 10.7967C4.67314 10.8411 4.66574 10.8885 4.66701 10.9359C4.66641 10.9597 4.66792 10.9834 4.67156 11.0067C4.6752 11.03 4.68102 11.053 4.68891 11.0752C4.70468 11.1196 4.72846 11.1603 4.7589 11.1949C4.7731 11.211 4.78862 11.2256 4.80524 11.2386C4.81452 11.2459 4.82417 11.2527 4.83417 11.259C4.84461 11.2655 4.85534 11.2714 4.86644 11.2767C4.9069 11.2962 4.95063 11.3069 4.99497 11.3083H8.38368V12.0636H4.99503C4.91163 12.0787 4.83587 12.1249 4.78128 12.194C4.7526 12.2303 4.7307 12.2717 4.71639 12.3159C4.70347 12.3559 4.69667 12.3983 4.69667 12.4413C4.69667 12.5318 4.72664 12.6194 4.78128 12.6886C4.809 12.7237 4.84218 12.7529 4.87906 12.7751C4.89416 12.7842 4.90993 12.7921 4.92619 12.7988C4.94833 12.8079 4.97137 12.8147 4.99503 12.8189H8.38368V13.5742H4.99503C4.95275 13.5819 4.91242 13.5975 4.87584 13.62C4.8403 13.642 4.80822 13.6705 4.78128 13.7046C4.72664 13.7737 4.69667 13.8613 4.69667 13.9519C4.69667 14.0424 4.72664 14.13 4.78128 14.1992C4.83587 14.2683 4.91163 14.3145 4.99503 14.3295H8.38368V15.0741H4.99497C4.94644 15.0829 4.90047 15.1022 4.85977 15.1304C4.83878 15.145 4.81919 15.162 4.80136 15.1811C4.79439 15.1885 4.78765 15.1964 4.78122 15.2045C4.77188 15.2163 4.76327 15.2287 4.75539 15.2416C4.74441 15.2594 4.73495 15.2781 4.727 15.2975C4.71924 15.3163 4.71293 15.3358 4.70808 15.3558C4.70407 15.3723 4.7011 15.389 4.69922 15.4061C4.69752 15.4212 4.69667 15.4364 4.69667 15.4518C4.69667 15.5423 4.72664 15.6299 4.78122 15.6991C4.83587 15.7682 4.91157 15.8144 4.99497 15.8295H8.38368V16.5847H4.99497C4.91157 16.5998 4.83587 16.6459 4.78122 16.7151C4.72664 16.7842 4.69667 16.8718 4.69667 16.9624C4.69667 17.0529 4.72664 17.1405 4.78122 17.2097C4.83587 17.2788 4.91157 17.325 4.99497 17.34H9.54637C9.58655 17.3328 9.62496 17.3183 9.66008 17.2975H13.571ZM15.7573 4.52124L18.3609 7.30839C18.3758 7.32612 18.3858 7.34796 18.3897 7.37145C18.3937 7.39493 18.3914 7.41913 18.3831 7.44128C18.3748 7.46343 18.3609 7.48266 18.3429 7.49678C18.325 7.51089 18.3036 7.51934 18.2814 7.52115H15.7275L15.5585 7.34031V4.60634C15.5602 4.58255 15.5681 4.55975 15.5813 4.54051C15.5945 4.52128 15.6125 4.50639 15.6332 4.49753C15.6539 4.48867 15.6765 4.48619 15.6984 4.49038C15.7203 4.49457 15.7407 4.50526 15.7573 4.52124ZM14.1248 5.91437C14.1732 5.97391 14.2021 6.04884 14.2071 6.1276C14.2157 6.17377 14.2155 6.22129 14.2065 6.26739C14.2045 6.27778 14.2021 6.28804 14.1992 6.29817L14.1944 6.31388C14.1847 6.34291 14.1715 6.3705 14.1551 6.39595C14.13 6.43465 14.098 6.46757 14.0608 6.49276C14.0354 6.5099 14.008 6.52328 13.9794 6.53244C13.9661 6.53672 13.9525 6.5401 13.9387 6.5425H9.71529C9.62309 6.5425 9.5346 6.50328 9.4694 6.43342C9.40413 6.36362 9.3675 6.26889 9.3675 6.17013C9.3675 6.07144 9.40413 5.97671 9.4694 5.90691C9.5346 5.83704 9.62309 5.79783 9.71529 5.79783H13.9387C13.9718 5.80516 14.0034 5.81769 14.0326 5.83484C14.0672 5.85522 14.0984 5.88204 14.1248 5.91437ZM14.2667 7.29776H9.72529C9.69606 7.30302 9.66773 7.31211 9.64092 7.3247C9.62612 7.33171 9.61175 7.33977 9.59798 7.34879C9.56565 7.36996 9.53642 7.39664 9.51155 7.42813C9.4569 7.49722 9.42694 7.58487 9.42694 7.67538C9.42694 7.70155 9.42942 7.72752 9.43434 7.75285C9.44635 7.81505 9.47273 7.87355 9.51155 7.9227C9.55292 7.9751 9.60647 8.01432 9.66628 8.03678C9.67762 8.04107 9.6892 8.04477 9.70097 8.04775C9.70898 8.04983 9.71711 8.05158 9.72529 8.05308H14.2667C14.3546 8.04756 14.437 8.00555 14.4964 7.93601C14.5558 7.86647 14.5875 7.77492 14.5847 7.68071C14.5874 7.63318 14.5813 7.58559 14.5667 7.54059C14.5522 7.4956 14.5296 7.45417 14.5 7.41859C14.4704 7.38301 14.4346 7.35398 14.3946 7.33327C14.3546 7.31256 14.3111 7.30048 14.2667 7.29776ZM4.99497 18.84H12.786C12.8783 18.84 12.9667 18.8008 13.032 18.731C13.0972 18.6611 13.1338 18.5664 13.1338 18.4677C13.1338 18.3689 13.0972 18.2742 13.032 18.2044C12.9667 18.1346 12.8783 18.0954 12.786 18.0954H4.99497C4.90277 18.0954 4.81428 18.1346 4.74908 18.2044C4.68381 18.2742 4.64718 18.3689 4.64718 18.4677C4.64718 18.5664 4.68381 18.6611 4.74908 18.731C4.81428 18.8008 4.90277 18.84 4.99497 18.84ZM17.5858 12.7444H19.5733H19.623C19.7249 12.7499 19.821 12.7971 19.8913 12.8764C19.9616 12.9556 20.0007 13.0607 20.0006 13.17V13.8295C20.0007 13.8458 19.9976 13.862 19.9914 13.8769C19.9853 13.8918 19.9764 13.9052 19.9652 13.9163C19.9539 13.9273 19.9407 13.9357 19.9262 13.9409C19.9118 13.9461 19.8965 13.948 19.8814 13.9465H13.7797C13.7507 13.9465 13.7229 13.9342 13.7024 13.9123C13.6819 13.8903 13.6704 13.8606 13.6704 13.8295V13.17C13.6677 13.0617 13.7046 12.9566 13.7733 12.8771C13.842 12.7976 13.9371 12.75 14.0381 12.7444H16.0256V12.5104C16.0352 12.439 16.0687 12.3737 16.1199 12.3268C16.1711 12.2798 16.2365 12.2544 16.3039 12.2551H17.2976C17.3667 12.2517 17.4345 12.276 17.4878 12.3232C17.541 12.3704 17.576 12.4371 17.5858 12.5104V12.7444ZM14.0679 19.4251V14.1912H19.5037V19.4251C19.4935 19.585 19.4256 19.7344 19.3143 19.8416C19.203 19.9488 19.0571 20.0055 18.9075 19.9996H14.6642C14.5146 20.0055 14.3687 19.9488 14.2574 19.8416C14.1461 19.7344 14.0781 19.585 14.0679 19.4251ZM15.5983 15.1593H15.2505C15.0969 15.1593 14.9723 15.2926 14.9723 15.4572V18.7336C14.9723 18.8981 15.0969 19.0315 15.2505 19.0315H15.5983C15.752 19.0315 15.8766 18.8981 15.8766 18.7336V15.4572C15.8766 15.2926 15.752 15.1593 15.5983 15.1593ZM16.9598 15.1593H16.612C16.4583 15.1593 16.3337 15.2926 16.3337 15.4572V18.7336C16.3337 18.8981 16.4583 19.0315 16.612 19.0315H16.9598C17.1135 19.0315 17.238 18.8981 17.238 18.7336V15.4572C17.238 15.2926 17.1135 15.1593 16.9598 15.1593ZM17.9635 15.1593H18.3113C18.465 15.1593 18.5895 15.2926 18.5895 15.4572V18.7336C18.5895 18.8981 18.465 19.0315 18.3113 19.0315H17.9635C17.8098 19.0315 17.6852 18.8981 17.6852 18.7336V15.4572C17.6852 15.2926 17.8098 15.1593 17.9635 15.1593Z", acceptSingleChange: "M17.2 20H15.6628L17.33 18.3091V19.87C17.33 19.8871 17.3266 19.904 17.3201 19.9197C17.3136 19.9355 17.304 19.9499 17.2919 19.9619C17.2799 19.974 17.2655 19.9836 17.2497 19.9901C17.234 19.9966 17.2171 20 17.2 20ZM4.13 20H14.4978L14.1823 19.6791L13.5135 18.9904L13.5123 18.9891L13.0529 18.52H5C4.87537 18.52 4.75586 18.4705 4.66766 18.3823C4.57953 18.2942 4.53003 18.1747 4.53003 18.05C4.53003 17.9253 4.57953 17.8058 4.66766 17.7177C4.75586 17.6295 4.87537 17.58 5 17.58H12.1323L11.6235 17.0604L11.6231 16.48L12.8831 15.19L13.4765 15.1896L15.0807 16.8276L17.33 14.5413V9.3H13.28C13.207 9.30976 13.133 9.30976 13.06 9.3C12.7697 9.22119 12.5113 9.05343 12.3212 8.82027C12.1311 8.58711 12.0187 8.30026 12 8V4H4.13C4.09552 4 4.06246 4.0137 4.03808 4.03808C4.0137 4.06246 4 4.09552 4 4.13V19.87C4 19.9045 4.0137 19.9375 4.03808 19.9619C4.06246 19.9863 4.09552 20 4.13 20ZM13.1 4.65L16.6 8.15C16.6212 8.17232 16.6355 8.20028 16.6412 8.23051C16.6469 8.26075 16.6437 8.29199 16.6321 8.32048C16.6205 8.34898 16.6009 8.37352 16.5757 8.39117C16.5505 8.40882 16.5208 8.41883 16.49 8.42H13.06L12.83 8.19V4.76C12.8312 4.72925 12.8412 4.6995 12.8588 4.67429C12.8765 4.64909 12.901 4.62951 12.9295 4.6179C12.958 4.6063 12.9893 4.60315 13.0195 4.60884C13.0497 4.61453 13.0777 4.62882 13.1 4.65ZM11 6.72C11.0027 6.66089 10.9937 6.60184 10.9735 6.5462C10.9534 6.49057 10.9224 6.43948 10.8825 6.39581C10.8425 6.35217 10.7944 6.3168 10.7408 6.29178C10.6871 6.26678 10.6292 6.25256 10.57 6.25H5C4.88239 6.25772 4.77252 6.31131 4.69397 6.39917C4.61542 6.48706 4.57452 6.60226 4.58002 6.72C4.57452 6.83774 4.61542 6.95294 4.69397 7.04083C4.77252 7.12869 4.88239 7.18228 5 7.19H10.6C10.7141 7.1774 10.8189 7.12173 10.8933 7.03436C10.9677 6.94702 11.0058 6.83456 11 6.72ZM11.1 8.14001H5C4.87537 8.14001 4.75586 8.18954 4.66766 8.27768C4.57953 8.36581 4.53003 8.48535 4.53003 8.61002C4.53003 8.73468 4.57953 8.85422 4.66766 8.94235C4.71558 8.99023 4.77277 9.02673 4.83496 9.05008C4.86932 9.06296 4.90521 9.07184 4.94189 9.07642C4.96106 9.0788 4.98047 9.08002 5 9.08002H11.1C11.2247 9.08002 11.3442 9.03049 11.4324 8.94235C11.5205 8.85422 11.57 8.73468 11.57 8.61002C11.57 8.48535 11.5205 8.36581 11.4324 8.27768C11.3442 8.18954 11.2247 8.14001 11.1 8.14001ZM5 11H15.45C15.5826 11 15.7098 10.9473 15.8035 10.8535C15.8973 10.7598 15.95 10.6326 15.95 10.5C15.95 10.3674 15.8973 10.2402 15.8035 10.1465C15.7098 10.0527 15.5826 10 15.45 10H5C4.86737 10 4.74023 10.0527 4.64642 10.1465C4.55267 10.2402 4.5 10.3674 4.5 10.5C4.5 10.6326 4.55267 10.7598 4.64642 10.8535C4.74023 10.9473 4.86737 11 5 11ZM5 12.86H11.1C11.2211 12.8523 11.3346 12.798 11.4166 12.7085C11.4986 12.6191 11.5428 12.5013 11.54 12.38C11.5427 12.2597 11.4982 12.1431 11.416 12.0552C11.3337 11.9673 11.2203 11.9152 11.1 11.91H5C4.94086 11.9126 4.88287 11.9268 4.82922 11.9518C4.77563 11.9768 4.72748 12.0122 4.6875 12.0558C4.65833 12.0878 4.63391 12.1237 4.61505 12.1624C4.60809 12.1767 4.60193 12.1913 4.5965 12.2062C4.58264 12.2443 4.5741 12.2841 4.57092 12.3243C4.56946 12.3428 4.56915 12.3614 4.57001 12.38C4.56451 12.5004 4.60651 12.6181 4.68689 12.7079C4.76733 12.7976 4.87976 12.8523 5 12.86ZM15.45 14.74H5C4.87537 14.74 4.75586 14.6905 4.66766 14.6023C4.57953 14.5142 4.53003 14.3947 4.53003 14.27C4.53003 14.1453 4.57953 14.0258 4.66766 13.9377C4.75586 13.8495 4.87537 13.8 5 13.8H15.45C15.5747 13.8 15.6942 13.8495 15.7823 13.9377C15.8705 14.0258 15.92 14.1453 15.92 14.27C15.92 14.3947 15.8705 14.5142 15.7823 14.6023C15.6942 14.6905 15.5747 14.74 15.45 14.74ZM11.1 16.63H5C4.87537 16.63 4.75586 16.5805 4.66766 16.4923C4.57953 16.4042 4.53003 16.2846 4.53003 16.16C4.53003 16.0353 4.57953 15.9158 4.66766 15.8276C4.75586 15.7395 4.87537 15.69 5 15.69H11.1C11.2247 15.69 11.3442 15.7395 11.4324 15.8276C11.5205 15.9158 11.57 16.0353 11.57 16.16C11.57 16.2846 11.5205 16.4042 11.4324 16.4923C11.3442 16.5805 11.2247 16.63 11.1 16.63ZM18.73 13.71L20 15.01L15.08 20L15.07 19.99L14.48 19.39L13.81 18.7L11.92 16.77L13.18 15.48L15.08 17.42L18.73 13.71Z", rejectSingleChange: "M17.0495 11.5C17.1461 11.5 17.241 11.5173 17.33 11.5501V9.3H13.28C13.207 9.30976 13.133 9.30976 13.06 9.3C12.7697 9.22119 12.5113 9.05343 12.3212 8.82027C12.1311 8.58711 12.0187 8.30026 12 8V4H4.13C4.09552 4 4.06246 4.0137 4.03808 4.03808C4.0137 4.06246 4 4.09552 4 4.13V19.87C4 19.9045 4.0137 19.9375 4.03808 19.9619C4.06246 19.9863 4.09552 20 4.13 20H13.2305C13.1075 19.8287 13.0338 19.6249 13.0205 19.4112L13.0195 19.3956V18.52H5C4.87537 18.52 4.75586 18.4705 4.66772 18.3823C4.57959 18.2942 4.53003 18.1747 4.53003 18.05C4.53003 18.0119 4.53467 17.9742 4.54358 17.9378C4.56396 17.8552 4.60657 17.7788 4.66772 17.7177C4.75586 17.6295 4.87537 17.58 5 17.58H13.0195V14.74H5C4.87537 14.74 4.75586 14.6905 4.66772 14.6023C4.57959 14.5142 4.53003 14.3947 4.53003 14.27C4.53003 14.1453 4.57959 14.0258 4.66772 13.9377C4.75586 13.8495 4.87537 13.8 5 13.8H12.8393C12.6229 13.6377 12.4998 13.3897 12.4998 13.1032C12.4997 12.8414 12.6008 12.5847 12.7513 12.3911C12.9 12.1998 13.1561 12 13.4994 12L15.2519 12C15.2928 11.8972 15.3589 11.7915 15.4649 11.6992C15.6135 11.5698 15.8041 11.499 16.0011 11.5H17.0495ZM13.1 4.65L16.6 8.15C16.6211 8.17232 16.6354 8.20028 16.6411 8.23051C16.6468 8.26075 16.6437 8.29199 16.6321 8.32048C16.6204 8.34898 16.6009 8.37352 16.5757 8.39117C16.5505 8.40882 16.5207 8.41883 16.49 8.42H13.06L12.83 8.19V4.76C12.8311 4.72925 12.8411 4.6995 12.8588 4.67429C12.8764 4.64909 12.901 4.62951 12.9295 4.6179C12.958 4.6063 12.9892 4.60315 13.0194 4.60884C13.0497 4.61453 13.0776 4.62882 13.1 4.65ZM11 6.72C11.0027 6.66089 10.9937 6.60184 10.9735 6.5462C10.9716 6.5408 10.9695 6.53543 10.9673 6.53012C10.9626 6.51852 10.9575 6.50717 10.9518 6.49603C10.9406 6.47391 10.9275 6.45273 10.9127 6.43274C10.9033 6.41992 10.8932 6.40759 10.8824 6.39581C10.8425 6.35217 10.7943 6.3168 10.7407 6.29178C10.6871 6.26678 10.629 6.25256 10.5699 6.25H5C4.88232 6.25772 4.77246 6.31131 4.69397 6.39917C4.61536 6.48706 4.57446 6.60226 4.57996 6.72C4.57715 6.7811 4.58679 6.84152 4.60767 6.8978C4.61523 6.91803 4.62415 6.93771 4.63452 6.9567C4.65088 6.98669 4.67078 7.01495 4.69397 7.04083C4.77246 7.12869 4.88232 7.18228 5 7.19H10.6C10.714 7.1774 10.8188 7.12173 10.8932 7.03436C10.922 7.00049 10.9454 6.96283 10.9629 6.92273C10.9725 6.9006 10.9805 6.87775 10.9865 6.8544C10.9933 6.82791 10.9977 6.80075 10.9995 6.77325C11.0001 6.76453 11.0004 6.75574 11.0005 6.74695C11.0006 6.73798 11.0005 6.729 11 6.72ZM11.1 8.14001H5C4.97534 8.14001 4.95081 8.14194 4.92676 8.14575C4.89587 8.15063 4.8656 8.15857 4.83643 8.1694C4.77368 8.19272 4.71606 8.2294 4.66772 8.27768C4.57959 8.36581 4.53003 8.48535 4.53003 8.61002C4.53003 8.73468 4.57959 8.85422 4.66772 8.94235C4.75586 9.03049 4.87537 9.08002 5 9.08002H11.1C11.2247 9.08002 11.3442 9.03049 11.4324 8.94235C11.4617 8.91306 11.4867 8.88028 11.5071 8.845C11.5349 8.79691 11.554 8.74414 11.5634 8.68915C11.5677 8.66318 11.5701 8.63672 11.5701 8.61002C11.5701 8.48535 11.5205 8.36581 11.4324 8.27768C11.3929 8.23831 11.3474 8.20663 11.2979 8.18365C11.2365 8.15518 11.1689 8.14001 11.1 8.14001ZM5 11H15.45C15.5826 11 15.7098 10.9473 15.8036 10.8535C15.8973 10.7598 15.95 10.6326 15.95 10.5C15.95 10.3674 15.8973 10.2402 15.8036 10.1465C15.7098 10.0527 15.5826 10 15.45 10H5C4.86743 10 4.74023 10.0527 4.64648 10.1465C4.55273 10.2402 4.5 10.3674 4.5 10.5C4.5 10.6326 4.55273 10.7598 4.64648 10.8535C4.74023 10.9473 4.86743 11 5 11ZM5 12.86H11.1C11.2211 12.8523 11.3346 12.798 11.4166 12.7085C11.4987 12.6191 11.5428 12.5013 11.54 12.38C11.5427 12.2597 11.4982 12.1431 11.4159 12.0552C11.3336 11.9673 11.2202 11.9152 11.1 11.91H5C4.94092 11.9126 4.88281 11.9268 4.82922 11.9518C4.77563 11.9768 4.72742 12.0122 4.6875 12.0558C4.64758 12.0995 4.6167 12.1506 4.59644 12.2062C4.58899 12.2266 4.58313 12.2475 4.57874 12.2687C4.57129 12.3052 4.56824 12.3426 4.56995 12.38C4.56445 12.5004 4.60645 12.6181 4.68689 12.7079C4.76733 12.7976 4.87976 12.8523 5 12.86ZM11.1 16.63H5C4.87537 16.63 4.75586 16.5805 4.66772 16.4923C4.57959 16.4042 4.53003 16.2846 4.53003 16.16C4.53003 16.0353 4.57959 15.9158 4.66772 15.8276C4.75586 15.7395 4.87537 15.69 5 15.69H11.1C11.2247 15.69 11.3442 15.7395 11.4324 15.8276C11.5205 15.9158 11.5701 16.0353 11.5701 16.16C11.5701 16.2846 11.5205 16.4042 11.4324 16.4923C11.3442 16.5805 11.2247 16.63 11.1 16.63ZM19.59 12.53H17.36V12.3C17.3574 12.2195 17.3236 12.1432 17.2657 12.0872C17.2078 12.0313 17.1305 12 17.05 12H16C15.9242 11.9994 15.8509 12.0265 15.7938 12.0762C15.7367 12.126 15.6997 12.1949 15.69 12.27V12.5H13.44C13.3768 12.4994 13.3142 12.5125 13.2565 12.5382C13.1988 12.564 13.1473 12.6019 13.1055 12.6493C13.0638 12.6968 13.0327 12.7526 13.0145 12.8132C12.9963 12.8737 12.9913 12.9374 13 13V13.67C13 13.6871 13.0033 13.704 13.0099 13.7198C13.0164 13.7355 13.026 13.7499 13.038 13.7619C13.0501 13.774 13.0644 13.7836 13.0802 13.7901C13.096 13.7966 13.1129 13.8 13.13 13.8H19.84C19.8611 13.8054 19.8834 13.8054 19.9045 13.8C19.9257 13.7946 19.9452 13.7839 19.9611 13.7689C19.9771 13.754 19.989 13.7352 19.9958 13.7144C20.0026 13.6937 20.004 13.6715 20 13.65V13C20.0028 12.8866 19.9617 12.7765 19.8853 12.6927C19.809 12.6088 19.7031 12.5577 19.59 12.55V12.53ZM13.52 14V19.38C13.5303 19.5454 13.6054 19.7 13.7289 19.8105C13.8525 19.9209 14.0145 19.9782 14.18 19.97H18.84C19.0055 19.9782 19.1676 19.9209 19.2911 19.8105C19.4146 19.7 19.4897 19.5454 19.5 19.38V14H13.52ZM15.52 18.67C15.52 18.7522 15.4874 18.8311 15.4292 18.8892C15.3711 18.9473 15.2922 18.98 15.21 18.98H14.83C14.7478 18.98 14.669 18.9473 14.6108 18.8892C14.5527 18.8311 14.52 18.7522 14.52 18.67V15.33C14.52 15.2893 14.528 15.249 14.5436 15.2114C14.5592 15.1738 14.582 15.1396 14.6108 15.1108C14.6396 15.082 14.6738 15.0592 14.7114 15.0436C14.749 15.028 14.7893 15.02 14.83 15.02H15.21C15.2507 15.02 15.291 15.028 15.3287 15.0436C15.3663 15.0592 15.4004 15.082 15.4292 15.1108C15.458 15.1396 15.4808 15.1738 15.4964 15.2114C15.512 15.249 15.52 15.2893 15.52 15.33V18.67ZM17.01 18.67C17.01 18.7522 16.9774 18.8311 16.9192 18.8892C16.8611 18.9473 16.7822 18.98 16.7 18.98H16.32C16.2798 18.98 16.2399 18.9719 16.2029 18.9562C16.1658 18.9405 16.1323 18.9176 16.1043 18.8886C16.0763 18.8597 16.0544 18.8254 16.0399 18.7879C16.0254 18.7503 16.0187 18.7102 16.02 18.67V15.33C16.0187 15.2898 16.0254 15.2497 16.0399 15.2121C16.0544 15.1746 16.0763 15.1403 16.1043 15.1114C16.1323 15.0824 16.1658 15.0595 16.2029 15.0438C16.2399 15.0281 16.2798 15.02 16.32 15.02H16.7C16.7407 15.02 16.781 15.028 16.8187 15.0436C16.8563 15.0592 16.8904 15.082 16.9192 15.1108C16.948 15.1396 16.9708 15.1738 16.9864 15.2114C17.002 15.249 17.01 15.2893 17.01 15.33V18.67ZM18.51 18.67C18.51 18.7107 18.502 18.751 18.4864 18.7886C18.4708 18.8262 18.448 18.8604 18.4192 18.8892C18.3904 18.918 18.3563 18.9408 18.3187 18.9564C18.281 18.972 18.2407 18.98 18.2 18.98H17.82C17.7378 18.98 17.659 18.9473 17.6008 18.8892C17.5427 18.8311 17.51 18.7522 17.51 18.67V15.33C17.51 15.2893 17.518 15.249 17.5336 15.2114C17.5492 15.1738 17.572 15.1396 17.6008 15.1108C17.6296 15.082 17.6638 15.0592 17.7014 15.0436C17.739 15.028 17.7793 15.02 17.82 15.02H18.2C18.2407 15.02 18.281 15.028 18.3187 15.0436C18.3563 15.0592 18.3904 15.082 18.4192 15.1108C18.448 15.1396 18.4708 15.1738 18.4864 15.2114C18.502 15.249 18.51 15.2893 18.51 15.33V18.67Z" }, kt.FILEICONS = { docIcon: { extension: ".doc", path: '\n \n \n \n \n ' }, gifIcon: { extension: ".gif", path: '\n \n \n \n \n ' }, jpegIcon: { extension: ".jpeg", path: '\n \n \n \n \n ' }, logIcon: { extension: ".log", path: '\n \n \n \n \n ' }, movIcon: { extension: ".mov", path: '\n \n \n \n \n ' }, ogvIcon: { extension: ".ogv", path: '\n \n \n \n \n ' }, pngIcon: { extension: ".png", path: '\n \n \n \n \n ' }, txtIcon: { extension: ".txt", path: '\n \n \n \n \n ' }, webmIcon: { extension: ".webm", path: '\n \n \n \n \n ' }, webpIcon: { extension: ".webp", path: '\n \n \n \n \n ' }, wmvIcon: { extension: ".wmv", path: '\n \n \n \n \n ' }, xlsIcon: { extension: ".xls", path: '\n \n \n \n \n ' }, xlsxIcon: { extension: ".xlsx", path: '\n \n \n \n \n ' }, zipIcon: { extension: ".zip", path: '\n \n \n \n \n ' }, docxIcon: { extension: ".docx", path: '\n \n \n \n \n \n \n \n \n ' }, jpgIcon: { extension: ".jpg", path: '\n \n \n \n \n ' }, mp3Icon: { extension: ".mp3", path: '\n \n \n \n \n \n \n \n \n \n ' }, mp4Icon: { extension: ".mp4", path: '\n \n \n \n \n \n \n \n \n ' }, oggIcon: { extension: ".ogg", path: '\n \n \n \n \n \n \n \n \n ' }, pdfIcon: { extension: ".pdf", path: '\n \n \n \n \n \n \n ' }, defaultIcon: { extension: ".default", path: '\n \n ' } }, kt.MODULES.modals = function (l) { var i = l.$; l.shared.modals || (l.shared.modals = {}); var a, c = l.shared.modals; function e() { for (var e in c) if (Object.prototype.hasOwnProperty.call(c, e)) { var t = c[e]; t && t.$modal && t.$modal.removeData().remove() } a && a.removeData().remove(), c = {} } function s(e, t) { if (c[e]) { var n = c[e].$modal, r = n.data("instance") || l; r.events.enableBlur(), n.hide(), a.hide(), i(r.o_doc).find("body").first().removeClass("fr-prevent-scroll fr-mobile"), n.removeClass("fr-active"), t || (r.accessibility.restoreSelection(), r.events.trigger("modals.hide")) } } function n(e) { var t; if ("string" == typeof e) { if (!c[e]) return; t = c[e].$modal } else t = e; return t && l.node.hasClass(t, "fr-active") && l.core.sameInstance(t) || !1 } return { _init: function t() { l.events.on("shared.destroy", e, !0) }, get: function r(e) { return c[e] }, create: function d(n, e, t) { if (e = '
    '.concat(e, "
    "), l.shared.$overlay || (l.shared.$overlay = i(l.doc.createElement("DIV")).addClass("fr-overlay"), i("body").first().append(l.shared.$overlay)), a = l.shared.$overlay, l.opts.theme && a.addClass("".concat(l.opts.theme, "-theme")), !c[n]) { var r = function o(e, t) { var n = '
    '), r = ''); n += '
    '.concat(e).concat(r, "
    "), n += '
    '.concat(t, "
    "), n += "
    "; var a = i(l.doc.createElement("DIV")); return a.html(n), a.find("> .fr-modal") }(e, t); c[n] = { $modal: r, $head: r.find(".fr-modal-head"), $body: r.find(".fr-modal-body") }, l.helpers.isMobile() || r.addClass("fr-desktop"), i("body").first().append(r), l.events.$on(r, "click", ".fr-modal-close", function () { s(n) }, !0), c[n].$body.css("margin-top", c[n].$head.outerHeight()), l.events.$on(r, "keydown", function (e) { var t = e.which; return t === kt.KEYCODE.ESC ? (s(n), l.accessibility.focusModalButton(r), !1) : !(!i(e.currentTarget).is("input[type=text], textarea") && t !== kt.KEYCODE.ARROW_UP && t !== kt.KEYCODE.ARROW_DOWN && !l.keys.isBrowserAction(e) && (e.preventDefault(), e.stopPropagation(), 1)) }, !0), s(n, !0) } return c[n] }, show: function o(e) { if (c[e]) { var t = c[e].$modal; t.data("instance", l), t.show(), a.show(), i(l.o_doc).find("body").first().addClass("fr-prevent-scroll"), l.helpers.isMobile() && i(l.o_doc).find("body").first().addClass("fr-mobile"), t.addClass("fr-active"), l.accessibility.focusModal(t) } }, hide: s, resize: function f(e) { if (c[e]) { var t = c[e], n = t.$modal, r = t.$body, a = l.o_win.innerHeight, o = n.find(".fr-modal-wrapper"), i = a - o.outerHeight(!0) + (o.height() - (r.outerHeight(!0) - r.height())), s = "auto"; i < r.get(0).scrollHeight && (s = i), r.height(s) } }, isVisible: n, areVisible: function p(e) { for (var t in c) if (Object.prototype.hasOwnProperty.call(c, t) && n(t) && (void 0 === e || c[t].$modal.data("instance") === e)) return c[t].$modal; return !1 } } }, kt.MODULES.position = function (E) { var y = E.$; function a() { var e = E.selection.ranges(0).getBoundingClientRect(); if (0 === e.top && 0 === e.left && 0 === e.width || 0 === e.height) { var t = !1; 0 === E.$el.find(".fr-marker").length && (E.selection.save(), t = !0); var n = E.$el.find(".fr-marker").first(); n.css("display", "inline"), n.css("line-height", ""); var r = n.offset(), a = n.outerHeight(); n.css("display", "none"), n.css("line-height", 0), (e = {}).left = r && r.left, e.width = 0, e.height = a, e.top = r && r.top - (E.helpers.isMobile() && !E.helpers.isIOS() || E.opts.iframe ? 0 : E.helpers.scrollTop()), e.right = 1, e.bottom = 1, e.ok = !0, t && E.selection.restore() } return e } function o(e, t, n, r) { var a = n.data("container"); if (!a || "BODY" === a.get(0).tagName && "static" === a.css("position") || (e && (e -= a.offset().left), t && (t -= a.offset().top), "BODY" !== a.get(0).tagName ? (e && (e += a.get(0).scrollLeft), t && (t += a.get(0).scrollTop)) : "absolute" === a.css("position") && (e && (e += a.position().left), t && (t += a.position().top))), E.opts.iframe && a && E.$tb && a.get(0) !== E.$tb.get(0)) { var o = E.helpers.getPX(E.$wp.find(".fr-iframe").css("padding-top")), i = E.helpers.getPX(E.$wp.find(".fr-iframe").css("padding-left")); e && (e += E.$iframe.offset().left + i), t && (t += E.$iframe.offset().top + o) } var s = function l(e, t) { var n = e.outerWidth(!0); return t + n > E.$sc.get(0).clientWidth - 10 && (t = E.$sc.get(0).clientWidth - n - 10), t < 0 && (t = 10), t }(n, e); e && n.css("left", s), t && n.css("top", function c(e, t, n) { var r = e.outerHeight(!0); if (!E.helpers.isMobile() && E.$tb && e.parent().get(0) !== E.$tb.get(0)) { var a = e.parent().offset().top, o = t - r - (n || 0); e.parent().get(0) === E.$sc.get(0) && (a -= e.parent().position().top); var i = E.$sc.get(0).clientHeight; a + t + r > E.$sc.offset().top + i && 0 < e.parent().offset().top + o && 0 < o ? o > E.$wp.scrollTop() && (t = o, e.addClass("fr-above")) : e.removeClass("fr-above") } return t }(n, t, r)) } function i(e) { var n = y(e), t = n.is(".fr-sticky-on"), r = n.data("sticky-top"), a = n.data("sticky-scheduled"); if (void 0 === r) { n.data("sticky-top", 0); var o = y('
    ')); E.$box.prepend(o) } else E.$box.find(".fr-sticky-dummy").css("height", n.outerHeight()); if (E.core.hasFocus() || 0 < E.$tb.findVisible("input:focus").length) { var i = E.helpers.scrollTop(), s = Math.min(Math.max(i - E.$tb.parent().offset().top, 0), E.$tb.parent().outerHeight() - n.outerHeight()); if (s !== r && s !== a && (clearTimeout(n.data("sticky-timeout")), n.data("sticky-scheduled", s), n.outerHeight() < i - E.$tb.parent().offset().top && n.addClass("fr-opacity-0"), n.data("sticky-timeout", setTimeout(function () { var e = E.helpers.scrollTop(), t = Math.min(Math.max(e - E.$tb.parent().offset().top, 0), E.$tb.parent().outerHeight() - n.outerHeight()); 0 < t && "BODY" === E.$tb.parent().get(0).tagName && (t += E.$tb.parent().position().top), t !== r && (n.css("top", Math.max(t, 0)), n.data("sticky-top", t), n.data("sticky-scheduled", t)), n.removeClass("fr-opacity-0") }, 100))), !t) { var l = E.$tb.parent(), c = l.get(0).offsetWidth - l.get(0).clientWidth; n.css("top", "0"), n.width(l.width() - c), n.addClass("fr-sticky-on"), E.$box.addClass("fr-sticky-box") } } else clearTimeout(y(e).css("sticky-timeout")), n.css("top", "0"), n.css("position", ""), n.css("width", ""), n.data("sticky-top", 0), n.removeClass("fr-sticky-on"), E.$box.removeClass("fr-sticky-box") } function t(e) { if (e.offsetWidth) { var t = y(e), n = t.outerHeight(), r = t.data("sticky-position"), a = y("body" === E.opts.scrollableContainer ? E.o_win : E.opts.scrollableContainer).outerHeight(), o = 0, i = 0; "body" !== E.opts.scrollableContainer && (o = E.$sc.offset().top, i = y(E.o_win).outerHeight() - o - a); var s = "body" === E.opts.scrollableContainer ? E.helpers.scrollTop() : o, l = t.is(".fr-sticky-on"); t.data("sticky-parent") || t.data("sticky-parent", t.parent()); var c = t.data("sticky-parent"), d = c.offset().top, f = c.outerHeight(); if (t.data("sticky-offset") ? E.$box.find(".fr-sticky-dummy").css("height", "".concat(n, "px")) : (t.data("sticky-offset", !0), t.after('
    '))), !r) { var p = "auto" !== t.css("top") || "auto" !== t.css("bottom"); p || t.css("position", "fixed"), r = { top: E.node.hasClass(t.get(0), "fr-top"), bottom: E.node.hasClass(t.get(0), "fr-bottom") }, p || t.css("position", ""), t.data("sticky-position", r), t.data("top", E.node.hasClass(t.get(0), "fr-top") ? t.css("top") : "auto"), t.data("bottom", E.node.hasClass(t.get(0), "fr-bottom") ? t.css("bottom") : "auto") } var u = E.helpers.getPX(t.data("top")), h = E.helpers.getPX(t.data("bottom")), g = r.top && function b() { return d < s + u && s + u <= d + f - n }() && (E.helpers.isInViewPort(E.$sc.get(0)) || "body" === E.opts.scrollableContainer), m = r.bottom && function C() { return d + n < s + a - h && s + a - h < d + f }(); if (g || m) { var v = c.get(0).offsetWidth - c.get(0).clientWidth; t.css("width", "".concat(c.get(0).getBoundingClientRect().width - v, "px")), l || (t.addClass("fr-sticky-on"), t.removeClass("fr-sticky-off"), t.css("top") && ("auto" !== t.data("top") ? t.css("top", E.helpers.getPX(t.data("top")) + o) : t.data("top", "auto")), t.css("bottom") && ("auto" !== t.data("bottom") ? t.css("bottom", E.helpers.getPX(t.data("bottom")) + i) : t.css("bottom", "auto"))) } else E.node.hasClass(t.get(0), "fr-sticky-off") || (t.css("width", ""), t.removeClass("fr-sticky-on"), t.addClass("fr-sticky-off"), t.css("top") && "auto" !== t.data("top") && r.top && t.css("top", 0), t.css("bottom") && "auto" !== t.data("bottom") && r.bottom && t.css("bottom", 0)) } } function s() { if (E.helpers.requestAnimationFrame()(s), !1 !== E.events.trigger("position.refresh")) for (var e = 0; e < E._stickyElements.length; e++) if (E.opts.toolbarBottom) { var t = E.$tb.parent(), n = t.get(0).offsetWidth - t.get(0).clientWidth, r = y(E._stickyElements[e]); r.width(t.width() - n), r.addClass("fr-sticky-on"), E.$box.addClass("fr-sticky-box") } else i(E._stickyElements[e]) } function n() { if (E._stickyElements) for (var e = 0; e < E._stickyElements.length; e++) t(E._stickyElements[e]) } return { _init: function r() { ! function e() { E._stickyElements = [], E.helpers.isIOS() ? (s(), E.events.$on(y(E.o_win), "scroll", function () { if (E.core.hasFocus()) for (var e = 0; e < E._stickyElements.length; e++) { var t = y(E._stickyElements[e]), n = t.parent(), r = E.helpers.scrollTop(); t.outerHeight() < r - n.offset().top && (E.opts.toolbarBottom && E.helpers.isIOS() || (t.addClass("fr-opacity-0"), t.data("sticky-top", -1), t.data("sticky-scheduled", -1))) } }, !0)) : ("body" !== E.opts.scrollableContainer && E.events.$on(y(E.opts.scrollableContainer), "scroll", n, !0), E.events.$on(y(E.o_win), "scroll", n, !0), E.events.$on(y(E.o_win), "resize", n, !0), E.events.on("initialized", n), E.events.on("focus", n), E.events.$on(y(E.o_win), "resize", "textarea", n, !0)), E.events.on("destroy", function () { E._stickyElements = [] }) }() }, forSelection: function l(e) { var t = a(); e.css( { top: 0, left: 0 }); var n = t.top + t.height, r = t.left + t.width / 2 - e.get(0).offsetWidth / 2 + E.helpers.scrollLeft(); E.opts.iframe || (n += E.helpers.scrollTop()), o(r, n, e, t.height) }, addSticky: function c(e) { e.addClass("fr-sticky"), E.helpers.isIOS() && !E.opts.toolbarBottom && e.addClass("fr-sticky-ios"), e.removeClass("fr-sticky"), E._stickyElements.push(e.get(0)) }, refresh: n, at: o, getBoundingRect: a } }, kt.MODULES.refresh = function (l) { var c = l.$; function o(e, t) { e.toggleClass("fr-disabled", t).attr("aria-disabled", t) } function e(e) { var t = l.$tb.find('.fr-more-toolbar[data-name="'.concat(e.attr("data-group-name"), '"]')), n = function s(e, t) { var n = 0, r = t.find("> .fr-command, > .fr-btn-wrap"); r.each(function (e, t) { n += c(t).outerWidth() }); var a, o = l.helpers.getPX(c(r[0]).css("margin-left")), i = l.helpers.getPX(c(r[0]).css("margin-right")); a = "rtl" === l.opts.direction ? l.$tb.outerWidth() - e.offset().left + l.$tb.offset().left - (n + e.outerWidth() + r.length * (o + i)) / 2 : e.offset().left - l.$tb.offset().left - (n - e.outerWidth() + r.length * (o + i)) / 2; a + n + r.length * (o + i) > l.$tb.outerWidth() && (a -= (n + r.length * (o + i) - e.outerWidth()) / 2); a < 0 && (a = 0); return a }(e, t); "rtl" === l.opts.direction ? t.css("padding-right", n) : t.css("padding-left", n) } return { undo: function t(e) { o(e, !l.undo.canDo()) }, redo: function n(e) { o(e, !l.undo.canRedo()) }, outdent: function i(e) { if (l.node.hasClass(e.get(0), "fr-no-refresh")) return !1; if (c("button#markdown-".concat(l.id, ".fr-active")).length) return !1; for (var t = l.selection.blocks(), n = 0; n < t.length; n++) { var r = "rtl" === l.opts.direction || "rtl" === c(t[n]).css("direction") ? "margin-right" : "margin-left", a = t[0].parentElement; if ("P" != a.parentNode.tagName && "DIV" != a.parentNode.tagName && "UL" != a.parentNode.tagName && "OL" != a.parentNode.tagName && "LI" != a.parentNode.tagName) return o(e, !0), !0; if (t[0].previousSibling && "none" == a.parentNode.style.listStyleType) return o(e, !0), !0; if ("LI" === t[n].tagName || "LI" === t[n].parentNode.tagName) return o(e, !1), !0; if (0 < l.helpers.getPX(c(t[n]).css(r))) return o(e, !1), !0 } o(e, !0) }, indent: function a(e) { if (l.node.hasClass(e.get(0), "fr-no-refresh")) return !1; if (c("button#markdown-".concat(l.id, ".fr-active")).length) return !1; for (var t = l.selection.blocks(), n = 0; n < t.length; n++) { for (var r = t[n].previousSibling; r && r.nodeType === Node.TEXT_NODE && 0 === r.textContent.length;) r = r.previousSibling; if ("LI" !== t[n].tagName || r) return o(e, !1), !0; o(e, !0) } }, moreText: e, moreParagraph: e, moreMisc: e, moreRich: e } }, Object.assign(kt.DEFAULTS, { attribution: !0, toolbarBottom: !1, toolbarButtons: null, toolbarButtonsXS: null, toolbarButtonsSM: null, toolbarButtonsMD: null, toolbarContainer: null, toolbarInline: !1, toolbarSticky: !0, toolbarStickyOffset: 0, toolbarVisibleWithoutSelection: !1 }), kt.TOOLBAR_BUTTONS = { moreText: { buttons: ["bold", "italic", "underline", "strikeThrough", "subscript", "superscript", "fontFamily", "fontSize", "textColor", "backgroundColor", "inlineClass", "inlineStyle", "clearFormatting"] }, moreParagraph: { buttons: ["alignLeft", "alignCenter", "formatOLSimple", "alignRight", "alignJustify", "formatOL", "formatUL", "paragraphFormat", "paragraphStyle", "lineHeight", "outdent", "indent", "quote"] }, moreRich: { buttons: ["trackChanges", "markdown", "insertLink", "insertFiles", "insertImage", "insertVideo", "insertTable", "emoticons", "fontAwesome", "specialCharacters", "embedly", "insertFile", "insertHR"], buttonsVisible: 4 }, moreMisc: { buttons: ["undo", "redo", "fullscreen", "print", "getPDF", "spellChecker", "selectAll", "html", "help"], align: "right", buttonsVisible: 2 }, trackChanges: { buttons: ["showChanges", "applyAll", "removeAll", "applyLast", "removeLast"], buttonsVisible: 0 } }, kt.TOOLBAR_BUTTONS_MD = null, (kt.TOOLBAR_BUTTONS_SM = {}).moreText = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreText, { buttonsVisible: 2 }), kt.TOOLBAR_BUTTONS_SM.moreParagraph = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreParagraph, { buttonsVisible: 2 }), kt.TOOLBAR_BUTTONS_SM.moreRich = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreRich, { buttonsVisible: 2 }), kt.TOOLBAR_BUTTONS_SM.moreMisc = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreMisc, { buttonsVisible: 2 }), kt.TOOLBAR_BUTTONS_SM.trackChanges = Object.assign( {}, kt.TOOLBAR_BUTTONS.trackChanges, { buttonsVisible: 0 }), (kt.TOOLBAR_BUTTONS_XS = {}).moreText = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreText, { buttonsVisible: 0 }), kt.TOOLBAR_BUTTONS_XS.moreParagraph = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreParagraph, { buttonsVisible: 0 }), kt.TOOLBAR_BUTTONS_XS.moreRich = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreRich, { buttonsVisible: 0 }), kt.TOOLBAR_BUTTONS_XS.moreMisc = Object.assign( {}, kt.TOOLBAR_BUTTONS.moreMisc, { buttonsVisible: 2 }), kt.TOOLBAR_BUTTONS_XS.trackChanges = Object.assign( {}, kt.TOOLBAR_BUTTONS.trackChanges, { buttonsVisible: 0 }), kt.POWERED_BY = '', kt.MODULES.toolbar = function (y) { var L, _ = y.$, t = []; function e(e) { var n = {}; if (Array.isArray(e)) { if (!Array.isArray(e[0])) { for (var t = [], r = [], a = 0; a < e.length; a++) "|" === e[a] || "-" === e[a] ? (0 < r.length && t.push(r), r = []) : r.push(e[a]); 0 < r.length && t.push(r), e = t } e.forEach(function (e, t) { n["group".concat(t + 1)] = { buttons: e } }), n.showMoreButtons = !1 } else "object" !== St(e) || Array.isArray(e) || ((n = e).showMoreButtons = !0); return n } function w() { var e = y.helpers.screenSize(); return t[L = e] } function A() { for (var e = y.$tb.find(".fr-more-toolbar"), t = 0; t < e.length; t++) { var c = _(e[t]); c.hasClass("fr-expanded") ? function () { var n = y.helpers.getPX(c.css("padding-left")), e = c.find("> .fr-command, > .fr-btn-wrap"), t = _(e[0]), r = y.helpers.getPX(t.css("margin-left")), a = y.helpers.getPX(t.css("margin-right")), o = y.helpers.getPX(t.css("margin-top")), i = y.helpers.getPX(t.css("margin-bottom")); if (e.each(function (e, t) { n += _(t).outerWidth() + r + a }), y.$tb.outerWidth() < n) { var s = Math.floor(n / y.$tb.outerWidth()); n += s * (n / c[0].childElementCount), s = Math.ceil(n / y.$tb.outerWidth()); var l = (y.helpers.getPX(t.css("height")) + o + i) * s; c.css("height", l) } }() : c.css("height", "") }!y.helpers.isMobile() && y.opts.toolbarBottom ? y.$tb.find(".fr-toolbar .fr-more-toolbar").removeClass("position-relative") : y.$tb.find(".fr-toolbar .fr-more-toolbar").addClass("position-relative") } function r() { if (0 == _("[data-name='trackChanges-".concat(y.id, "']")).length) { // _(".fr-toolbar").append(_('
    ').data("name", "trackChanges-".concat(y.id))); for (var e = 0, t = ["showChanges", "applyAll", "removeAll", "applyLast", "removeLast"]; e < t.length; e++) { var n = t[e], r = kt.COMMANDS[n]; r.more_btn = !0; var a = _(y.button.build(n, r, !0)); y.button.addButtons(a), _("[data-name='trackChanges-".concat(y.id, "']")).append(a) } } if (L !== y.helpers.screenSize()) { var o = w(), i = _(), s = _(); for (var l in y.$tb.find(".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command, .fr-btn-grp > .fr-btn-wrap > .fr-command, .fr-more-toolbar > .fr-btn-wrap > .fr-command").addClass("fr-hidden"), function E() { for (var t = y.$tb.find(".fr-btn-grp, .fr-more-toolbar"), r = function r(e) { var n = _(t[e]); n.children().each(function (e, t) { n.before(t) }), n.remove() }, e = 0; e < t.length; e++) r(e) }(), o) { var c = o[l]; if (c.buttons) { var d = void 0, f = 0, p = 3, u = void 0; "trackChanges" !== l && (u = _('
    '))), o.showMoreButtons && (d = _('
    ').data("name", "".concat(l, "-").concat(y.id)), "trackChanges" !== l && "moreRich" !== l || !y.opts.trackChangesEnabled || d.addClass("fr-expanded")); for (var h = 0; h < c.buttons.length; h++) { c.buttonsVisible !== undefined && (p = c.buttonsVisible); var g = y.$tb.find('> .fr-command[data-cmd="' + c.buttons[h] + '"], > div.fr-btn-wrap > .fr-command[data-cmd="' + c.buttons[h] + '"]'), m = null; y.node.hasClass(g.next().get(0), "fr-dropdown-menu") && (m = g.next()), y.node.hasClass(g.next().get(0), "fr-options") && (g.removeClass("fr-hidden"), g.next().removeClass("fr-hidden"), g = g.parent()), g.removeClass("fr-hidden"), o.showMoreButtons && p <= f ? (d.append(g), m && d.append(m)) : (u.append(g), m && u.append(m)), f++ } if (o.showMoreButtons && p < f) { var v = y.$tb.find('.fr-command[data-cmd="'.concat(l, '"]')); if (0 < v.length) v.removeClass("fr-hidden fr-open"); else { var b = l, C = kt.COMMANDS[b]; C.more_btn = !0, v = _(y.button.build(b, C, !0)), y.button.addButtons(v) } u && u.append(v) } u && i.push(u), o.showMoreButtons && s.push(d) } } y.opts.toolbarBottom ? (y.$tb.append(s), y.$tb.find(".fr-newline").remove(), y.$tb.append('
    '), y.$tb.append(i)) : (y.$tb.append(i), y.$tb.find(".fr-newline").remove(), y.$tb.append('
    '), y.$tb.append(s)), y.$tb.removeClass("fr-toolbar-open"), y.$box.removeClass("fr-toolbar-open"), y.events.trigger("codeView.toggle") } A() } function n(e, t) { setTimeout(function () { if ((!e || e.which != kt.KEYCODE.ESC) && y.selection.inEditor() && y.core.hasFocus() && !y.popups.areVisible() && "false" != _(y.selection.blocks()[0]).closest("table").attr("contenteditable") && (y.opts.toolbarVisibleWithoutSelection || !y.selection.isCollapsed() && !y.keys.isIME() || t)) { if (y.$tb.data("instance", y), !1 === y.events.trigger("toolbar.show", [e])) return; y.$tb.show(), y.opts.toolbarContainer || y.position.forSelection(y.$tb), 1 < y.opts.zIndex ? y.$tb.css("z-index", y.opts.zIndex + 1) : y.$tb.css("z-index", null) } }, 0) } function a(e) { return (!e || "blur" !== e.type || document.activeElement !== y.el) && (!(!e || "keydown" !== e.type || !y.keys.ctrlKey(e)) || (!!y.button.getButtons(".fr-dropdown.fr-active").next().find(y.o_doc.activeElement).length || (y.helpers.isMobile() && y.opts.toolbarInline && (y.$tb.find(".fr-expanded").toggleClass("fr-expanded"), y.$tb.find(".fr-open").removeClass("fr-open"), y.$tb.removeClass("fr-toolbar-open"), A()), void(!1 !== y.events.trigger("toolbar.hide") && y.$tb.hide())))) } t[kt.XS] = e(y.opts.toolbarButtonsXS || y.opts.toolbarButtons || kt.TOOLBAR_BUTTONS_XS || kt.TOOLBAR_BUTTONS || []), t[kt.SM] = e(y.opts.toolbarButtonsSM || y.opts.toolbarButtons || kt.TOOLBAR_BUTTONS_SM || kt.TOOLBAR_BUTTONS || []), t[kt.MD] = e(y.opts.toolbarButtonsMD || y.opts.toolbarButtons || kt.TOOLBAR_BUTTONS_MD || kt.TOOLBAR_BUTTONS || []), t[kt.LG] = e(y.opts.toolbarButtons || kt.TOOLBAR_BUTTONS || []); var o = null; function i(e) { clearTimeout(o), e && e.which === kt.KEYCODE.ESC || (o = setTimeout(n, y.opts.typingTimer)) } function s() { y.events.on("window.mousedown", a), y.events.on("keydown", a), y.events.on("blur", a), y.events.$on(y.$tb, "transitionend", ".fr-more-toolbar", function () { y.position.forSelection(y.$tb) }), y.helpers.isMobile() || y.events.on("window.mouseup", n), y.helpers.isMobile() ? y.helpers.isIOS() || (y.events.on("window.touchend", n), y.browser.mozilla && setInterval(n, 200)) : y.events.on("window.keyup", i), y.events.on("keydown", function (e) { e && e.which === kt.KEYCODE.ESC && y.events.trigger("toolbar.esc") }), y.events.on("keydown", function (e) { if (e.which === kt.KEYCODE.ALT) return e.stopPropagation(), !1 }, !0), y.events.$on(y.$wp, "scroll.toolbar", n), y.events.on("commands.after", n), y.helpers.isMobile() && (y.events.$on(y.$doc, "selectionchange", i), y.events.$on(y.$doc, "orientationchange", n)) } function l() { y.$tb.html("").removeData().remove(), y.$tb = null, y.$second_tb && (y.$second_tb.html("").removeData().remove(), y.$second_tb = null) } function c() { y.$box.removeClass("fr-top fr-bottom fr-inline fr-basic"), y.$box.find(".fr-sticky-dummy").remove() } function d() { y.opts.theme && y.$tb.addClass("".concat(y.opts.theme, "-theme")), 1 < y.opts.zIndex && y.$tb.css("z-index", y.opts.zIndex + 1), "auto" !== y.opts.direction && y.$tb.removeClass("fr-ltr fr-rtl").addClass("fr-".concat(y.opts.direction)), y.helpers.isMobile() ? y.$tb.addClass("fr-mobile") : y.$tb.addClass("fr-desktop"), y.opts.toolbarContainer ? (y.opts.toolbarInline && (s(), a()), y.opts.toolbarBottom ? y.$tb.addClass("fr-bottom") : y.$tb.addClass("fr-top")) : function e() { y.opts.toolbarInline ? (y.$sc.append(y.$tb), y.$tb.data("container", y.$sc), y.$tb.addClass("fr-inline"), s(), y.opts.toolbarBottom = !1) : (y.opts.toolbarBottom ? (y.$box.append(y.$tb), y.$tb.addClass("fr-bottom"), y.$box.addClass("fr-bottom")) : (y.opts.toolbarBottom = !1, y.$box.prepend(y.$tb), y.$tb.addClass("fr-top"), y.$box.addClass("fr-top")), y.$tb.addClass("fr-basic"), y.opts.toolbarSticky && (y.opts.toolbarStickyOffset && (y.opts.toolbarBottom ? y.$tb.css("bottom", y.opts.toolbarStickyOffset) : y.$tb.css("top", y.opts.toolbarStickyOffset)), y.position.addSticky(y.$tb))) }(), function t() { var e = y.button.buildGroup(w()); y.$tb.append(e), A(), y.button.bindCommands(y.$tb) }(), function n() { y.events.$on(_(y.o_win), "resize", r), y.events.$on(_(y.o_win), "orientationchange", r), y.opts.toolbarButtons && -1 < JSON.stringify(y.opts.toolbarButtons).indexOf("trackChanges") && r() }(), y.accessibility.registerToolbar(y.$tb), y.events.$on(y.$tb, "".concat(y._mousedown, " ").concat(y._mouseup), function (e) { var t = e.originalEvent ? e.originalEvent.target || e.originalEvent.originalTarget : null; if (t && "INPUT" !== t.tagName && !y.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1 }, !0), y.events.$on(y.$tb, "transitionend", ".fr-more-toolbar", function () { y.$box.hasClass("fr-fullscreen") && (y.opts.height = y.o_win.innerHeight - (y.opts.toolbarInline ? 0 : y.$tb.outerHeight() + (y.$second_tb ? y.$second_tb.outerHeight() : 0)), y.size.refresh()) }) } var f = !1; return { _init: function p() { if (y.$sc = _(y.opts.scrollableContainer).first(), !y.$wp) return !1; y.opts.toolbarInline || y.opts.toolbarBottom || (y.$second_tb = _(y.doc.createElement("div")).attr("class", "fr-second-toolbar"), y.$box.append(y.$second_tb), (!1 !== y.ul || y.opts.attribution) && y.$second_tb.prepend(kt.POWERED_BY)), y.opts.toolbarContainer ? (y.shared.$tb ? (y.$tb = y.shared.$tb, y.opts.toolbarInline && s()) : (y.shared.$tb = _(y.doc.createElement("DIV")), y.shared.$tb.addClass("fr-toolbar"), y.$tb = y.shared.$tb, _(y.opts.toolbarContainer).append(y.$tb), d(), y.$tb.data("instance", y)), y.helpers.isMobile() && y.events.$on(y.$tb, "click", function () { y.popups.areVisible().length || y.id !== y.shared.selected_editor || y.$el.focus() }), y.opts.toolbarInline ? y.$box.addClass("fr-inline") : y.$box.addClass("fr-basic"), y.events.on("focus", function () { y.$tb.data("instance", y) }, !0), y.opts.toolbarInline = !1) : y.opts.toolbarInline ? (y.$box.addClass("fr-inline"), y.shared.$tb ? (y.$tb = y.shared.$tb, s()) : (y.shared.$tb = _(y.doc.createElement("DIV")), y.shared.$tb.addClass("fr-toolbar"), y.$tb = y.shared.$tb, d())) : (y.$box.addClass("fr-basic"), y.$tb = _(y.doc.createElement("DIV")), y.$tb.addClass("fr-toolbar"), d(), y.$tb.data("instance", y)), y.events.on("destroy", c, !0), y.events.on(y.opts.toolbarInline || y.opts.toolbarContainer ? "shared.destroy" : "destroy", l, !0), y.events.on("edit.on", function () { y.$tb.removeClass("fr-disabled").removeAttr("aria-disabled") }), y.events.on("edit.off", function () { y.$tb.addClass("fr-disabled").attr("aria-disabled", !0) }), function e() { y.events.on("shortcut", function (e, t, n) { var r; if (t && !n ? r = y.$tb.find('.fr-command[data-cmd="'.concat(t, '"]')) : t && n && (r = y.$tb.find('.fr-command[data-cmd="'.concat(t, '"][data-param1="').concat(n, '"]'))), r.length && (e.preventDefault(), e.stopPropagation(), r.parents(".fr-toolbar").data("instance", y), "keydown" === e.type)) return y.button.exec(r), !1 }) }() }, hide: a, show: function u() { if (!1 === y.events.trigger("toolbar.show")) return !1; y.$tb.show() }, showInline: n, disable: function h() { !f && y.$tb && (y.$tb.find(".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command").addClass("fr-disabled fr-no-refresh").attr("aria-disabled", !0), f = !0) }, enable: function g() { f && y.$tb && (y.$tb.find(".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command").removeClass("fr-disabled fr-no-refresh").attr("aria-disabled", !1), f = !1), y.button.bulkRefresh() }, setMoreToolbarsHeight: A } }; var c = ["scroll", "wheel", "touchmove", "touchstart", "touchend"], d = ["webkit", "moz", "ms", "o"], f = ["transitionend"], a = document.createElement("div").style, o = ["Webkit", "Moz", "ms", "O", "css", "style"], s = { visibility: "hidden", display: "block" }, r = ["focus", "blur", "click"], i = {}, l = function l(e, t) { return { altKey: e.altKey, bubbles: e.bubbles, cancelable: e.cancelable, changedTouches: e.changedTouches, ctrlKey: e.ctrlKey, detail: e.detail, eventPhase: e.eventPhase, metaKey: e.metaKey, pageX: e.pageX, pageY: e.pageY, shiftKey: e.shiftKey, view: e.view, "char": e["char"], key: e.key, keyCode: e.keyCode, button: e.button, buttons: e.buttons, clientX: e.clientX, clientY: e.clientY, offsetX: e.offsetX, offsetY: e.offsetY, pointerId: e.pointerId, pointerType: e.pointerType, screenX: e.screenX, screenY: e.screenY, targetTouches: e.targetTouches, toElement: e.toElement, touches: e.touches, type: e.type, which: e.which, target: e.target, currentTarget: t, originalEvent: e, stopPropagation: function () { e.stopPropagation() }, stopImmediatePropagation: function () { e.stopImmediatePropagation() }, preventDefault: function () { -1 === c.indexOf(e.type) && e.preventDefault() } } }, p = function p(e) { return e.ownerDocument && e.ownerDocument.body.contains(e) || "#document" === e.nodeName || "HTML" === e.nodeName || e === window }, u = function u(n, r) { return function (e) { var t = e.target; if (r) for (r = g(r); t && t !== this;) Element.prototype.matches.call(t, g(r)) && n.call(t, l(e, t)), t = t.parentNode; else p(t) && n.call(t, l(e, t)) } }, h = function h(e, t) { return new b(e, t) }, g = function g(e) { return e && "string" == typeof e ? e.replace(/^\s*>/g, ":scope >").replace(/,\s*>/g, ", :scope >") : e }, m = function m(e) { return "function" == typeof e && "number" != typeof e.nodeType }, v = h; h.fn = h.prototype = { constructor: h, length: 0, contains: function (e) { if (!e) return !1; if (Array.isArray(e)) { for (var t = 0; t < e.length; t++) if (this.contains(e[t]) && this != e[t]) return !0; return !1 } for (var n = 0; n < this.length; n++) for (var r = e; r;) { if (r == this[n] || r[0] && r[0].isEqualNode(this[n])) return !0; r = r.parentNode } return !1 }, findVisible: function (e) { for (var t = this.find(e), n = t.length - 1; 0 <= n; n--) v(t[n]).isVisible() || t.splice(n, 1); return t }, formatParams: function (t) { var e = "".concat(Object.keys(t).map(function (e) { return "".concat(e, "=").concat(encodeURIComponent(t[e])) }).join("&")); return e || "" }, ajax: function (t) { var n = new XMLHttpRequest, e = this.formatParams(t.data); for (var r in "GET" === t.method.toUpperCase() && (t.url = e ? t.url + "?" + e : t.url), n.open(t.method, t.url, !0), t.withCredentials && (n.withCredentials = !0), t.crossDomain && n.setRequestHeader("Access-Control-Allow-Origin", "*"), t.headers) Object.prototype.hasOwnProperty.call(t.headers, r) && n.setRequestHeader(r, t.headers[r]); Object.prototype.hasOwnProperty.call(t.headers, "Content-Type") || ("json" === t.dataType ? n.setRequestHeader("Content-Type", "application/json") : n.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")), n.onload = function () { if (200 == n.status) { var e = n.responseText; "json" === t.dataType && (e = JSON.parse(e)), t.done(e, n.status, n) } else t.fail(n) }, n.send(e) }, prevAll: function () { var e = v(); if (!this[0]) return e; for (var t = this[0]; t && t.previousSibling;) t = t.previousSibling, e.push(t); return e }, index: function (e) { return e ? "string" == typeof e ? [].indexOf.call(v(e), this[0]) : [].indexOf.call(this, e.length ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1 }, isVisible: function () { return !!this[0] && !!(this[0].offsetWidth || this[0].offsetHeight || this[0].getClientRects().length) }, toArray: function () { return [].slice.call(this) }, get: function (e) { return null == e ? [].slice.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { var t = h.merge(this.constructor(), e); return t.prevObject = this, t }, wrapAll: function (e) { var t; return this[0] && (m(e) && (e = e.call(this[0])), t = h(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) { if ("string" == typeof e) { for (var t = e.split(" "), n = 0; n < t.length && 0 === t[n].trim().length;) n++; if (n < t.length && (v(e).length && t[n].trim() === v(e)[0].tagName && (e = document.createElement(t[n].trim())), n++), "string" != typeof e) for (var r = v(e); n < t.length; n++) { t[n] = t[n].trim(); var a = t[n].split("="); r.attr(a[0], a[1].replace('"', "")) } } for (; this[0].firstChild && this[0].firstChild !== e && "string" != typeof e;) e.appendChild(this[0].firstChild) }, wrap: function (t) { var n = m(t); return this.each(function (e) { v(this).wrapAll(n ? t.call(this, e) : t) }) }, unwrap: function () { return this.parent().each(function () { this.nodeName && this.nodeName.toLowerCase() === name.toLowerCase() || h(this).replaceWith(this.childNodes) }) }, grep: function (e, t, n) { for (var r = [], a = 0, o = e.length, i = !n; a < o; a++) !t(e[a], a) !== i && r.push(e[a]); return r }, map: function (n) { return this.pushStack(h.map(this, function (e, t) { return n.call(e, t, e) })) }, slice: function () { return this.pushStack([].slice.apply(this, arguments)) }, each: function (e) { if (this.length) for (var t = 0; t < this.length && !1 !== e.call(this[t], t, this[t]); t++); return this }, 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]] : []) }, empty: function () { for (var e = 0; e < this.length; e++) this[e].innerHTML = "" }, contents: function () { for (var e = v(), t = 0; t < this.length; t++) for (var n = this[t].childNodes, r = 0; r < n.length; r++) e.push(n[r]); return e }, attr: function (e, t) { if ("object" === St(e)) { for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && null !== e[n] && this.attr(n, e[n]); return this } if (void 0 === t) return 0 === this.length || !this[0].getAttribute && "checked" !== e ? undefined : "checked" === e ? this[0].checked : "tagName" === e ? this[0].tagName : this[0].getAttribute(e); if ("checked" === e) for (var r = 0; r < this.length; r++) this[r].checked = t; else if ("tagName" === e) for (var a = 0; a < this.length; a++) this[a].tagName = t; else for (var o = 0; o < this.length; o++) this[o].setAttribute(e, t); return this }, removeAttr: function (e) { for (var t = 0; t < this.length; t++) this[t].removeAttribute && this[t].removeAttribute(e); return this }, hide: function () { return this.css("display", "none"), this }, show: function () { return this.css("display", "block"), this }, focus: function () { return this.length && this[0].focus(), this }, blur: function () { return this.length && this[0].blur(), this }, data: function (e, t) { if (void 0 !== t) { for (var n = 0; n < this.length; n++) "object" !== St(this[n]["data-" + e] = t) && "function" != typeof t && this[n].setAttribute && this[n].setAttribute("data-" + e, t); return this } if (void 0 !== t) return this.attr("data-" + e, t); if (0 === this.length) return undefined; for (var r = 0; r < this.length; r++) { var a = this[r]["data-" + e]; if (null == a && this[r].getAttribute && (a = this[r].getAttribute("data-" + e)), void 0 !== a && null != a) return a } return undefined }, removeData: function (e) { for (var t = 0; t < this.length; t++) this[t].removeAttribute && this[t].removeAttribute("data-" + e), this[t]["data-" + e] = null; return this }, getCorrectStyleName: function (e) { if (!i[e]) { var t; e in a && (t = e); for (var n = e[0].toUpperCase() + e.slice(1), r = o.length; r--;)(e = o[r] + n) in a && (t = e); i[e] = t } return i[e] }, css: function (e, t) { if (void 0 !== t) { if (0 === this.length) return this; ("string" != typeof t || "" === t.trim() || isNaN(t)) && "number" != typeof t || !/(margin)|(padding)|(height)|(width)|(top)|(left)|(right)|(bottom)/gi.test(e) || /(line-height)/gi.test(e) || (t += "px"); for (var n = 0; n < this.length; n++) e = v(this).getCorrectStyleName(e), this[n].style[e] = t; return this } if ("string" == typeof e) { if (0 === this.length) return undefined; var r = this[0].ownerDocument || document, a = r.defaultView || r.parentWindow; return e = v(this).getCorrectStyleName(e), a.getComputedStyle(this[0])[e] } for (var o in e) Object.prototype.hasOwnProperty.call(e, o) && this.css(o, e[o]); return this }, toggleClass: function (e, t) { if (1 < e.split(" ").length) { for (var n = e.split(" "), r = 0; r < n.length; r++) this.toggleClass(n[r], t); return this } for (var a = 0; a < this.length; a++) void 0 === t ? this[a].classList.contains(e) ? this[a].classList.remove(e) : this[a].classList.add(e) : t ? this[a].classList.contains(e) || this[a].classList.add(e) : this[a].classList.contains(e) && this[a].classList.remove(e); return this }, addClass: function (e) { if (0 === e.length) return this; if (1 < e.split(" ").length) { for (var t = e.split(" "), n = 0; n < t.length; n++) this.addClass(t[n]); return this } for (var r = 0; r < this.length; r++) this[r].classList.add(e); return this }, removeClass: function (e) { if (1 < e.split(" ").length) { for (var t = e.split(" "), n = 0; n < t.length; n++) t[n] = t[n].trim(), t[n].length && this.removeClass(t[n]); return this } for (var r = 0; r < this.length; r++) e.length && this[r].classList.remove(e); return this }, getClass: function (e) { return e.getAttribute && e.getAttribute("class") || "" }, stripAndCollapse: function (e) { return (e.match(/[^\x20\t\r\n\f]+/g) || []).join(" ") }, hasClass: function (e) { var t, n, r = 0; for (t = " " + e + " "; n = this[r++];) if (1 === n.nodeType && -1 < (" " + v(this).stripAndCollapse(v(this).getClass(n)) + " ").indexOf(t)) return !0; return !1 }, scrollTop: function (e) { if (void 0 === e) return 0 === this.length ? undefined : this[0] === document ? document.documentElement.scrollTop : this[0].scrollTop; for (var t = 0; t < this.length; t++) this[t] === document ? window.scrollTo(document.documentElement.scrollLeft, e) : this[t].scrollTop = e }, scrollLeft: function (e) { if (void 0 === e) return 0 === this.length ? undefined : this[0] === document ? document.documentElement.scrollLeft : this[0].scrollLeft; for (var t = 0; t < this.length; t++) this[t] === document ? window.scrollTo(e, document.documentElement.scrollTop) : this[t].scrollLeft = e }, on: function (e, t, n) { if (1 < e.split(" ").length) { for (var r = e.split(" "), a = 0; a < r.length; a++) if (-1 !== f.indexOf(e)) for (var o = 0; o < d.length; o++) this.on(d[o] + e[0].toUpperCase() + e.slice(1), t, n); else this.on(r[a], t, n); return this } n = "function" == typeof t ? u(t, null) : u(n, t); for (var i = 0; i < this.length; i++) { var s = v(this[i]); s.data("events") || s.data("events", []), s.data("events").push([e, n]); var l = e.split("."); l = l[0], 0 <= c.indexOf(l) ? s.get(0).addEventListener(l, n, { passive: !0 }) : s.get(0).addEventListener(l, n) } }, off: function (e) { if (1 < e.split(" ").length) { for (var t = e.split(" "), n = 0; n < t.length; n++) this.off(t[n]); return this } for (var r = 0; r < this.length; r++) { var a = v(this[r]); if (a.data("events")) { var o = e.split("."); o = o[0]; for (var i = a.data("events") || [], s = i.length - 1; 0 <= s; s--) { var l = i[s]; l[0] == e && (a.get(0).removeEventListener(o, l[1]), i.splice(s, 1)) } } } }, trigger: function (e) { for (var t = 0; t < this.length; t++) { var n = void 0; "function" == typeof Event ? n = 0 <= e.search(/^mouse/g) ? new MouseEvent(e, { view: window, cancelable: !0, bubbles: !0 }) : new Event(e) : 0 <= e.search(/^mouse/g) ? (n = document.createEvent("MouseEvents")).initMouseEvent(e, !0, !0, window, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null) : (n = document.createEvent("Event")).initEvent(e, !0, !0), 0 <= r.indexOf(e) && "function" == typeof this[t][e] ? this[t][e]() : this[t].dispatchEvent(n) } }, triggerHandler: function () {}, val: function (e) { if (void 0 === e) return this[0].value; for (var t = 0; t < this.length; t++) this[t].value = e; return this }, siblings: function () { return v(this[0]).parent().children().not(this) }, find: function (e) { var t = v(); if ("string" != typeof e) { for (var n = 0; n < e.length; n++) for (var r = 0; r < this.length; r++) if (this[r] !== e[n] && v(this[r]).contains(e[n])) { t.push(e[n]); break } return t } var a = function a(e) { return "object" === ("undefined" == typeof HTMLElement ? "undefined" : St(HTMLElement)) ? e instanceof HTMLElement : e && "object" === St(e) && null !== e && 1 === e.nodeType && "string" == typeof e.nodeName }; e = g(e); for (var o = 0; o < this.length; o++) if (this[o].querySelectorAll) { var i = []; if (e && "string" == typeof e) try { i = this[o].querySelectorAll(e) } catch (l) { i = this[o].children } else a(e) && (i = [e]); for (var s = 0; s < i.length; s++) t.push(i[s]) } return t }, children: function () { for (var e = v(), t = 0; t < this.length; t++) for (var n = this[t].children, r = 0; r < n.length; r++) e.push(n[r]); return e }, not: function (e) { if ("string" == typeof e) for (var t = this.length - 1; 0 <= t; t--) Element.prototype.matches.call(this[t], e) && this.splice(t, 1); else if (e instanceof h) { for (var n = this.length - 1; 0 <= n; n--) for (var r = 0; r < e.length; r++) if (this[n] === e[r]) { this.splice(n, 1); break } } else for (var a = this.length - 1; 0 <= a; a--) this[a] === e[0] && this.splice(a, 1); return this }, add: function (e) { for (var t = 0; t < e.length; t++) this.push(e[t]); return this }, closest: function (e) { for (var t = 0; t < this.length; t++) { var n = Element.prototype.closest.call(this[t], e); if (n) return v(n) } return v() }, html: function (e) { if (void 0 === e) return 0 === this.length ? undefined : this[0].innerHTML; if ("string" == typeof e) for (var t = 0; t < this.length; t++) { this[t].innerHTML = e; for (var n = this[t].children, r = this[t].ownerDocument || document, a = 0; a < n.length; a++) if ("SCRIPT" === n[a].tagName) { var o = r.createElement("script"); o.innerHTML = n[a].innerHTML, n[a].hasAttribute("async") && o.setAttribute("async", ""), o.src = n[a].src, n[a].hasAttribute("defer") && o.setAttribute("defer", ""), r.head.appendChild(o).parentNode.removeChild(o) } } else { this[0].innerHTML = "", this.append(e[0]); var i = this[0].ownerDocument || document; if ("SCRIPT" === e[0].tagName) { var s = i.createElement("script"); s.innerHTML = e[0].innerHTML, i.head.appendChild(s).parentNode.removeChild(s) } } return this }, text: function (e) { if (!e) return this.length ? this[0].textContent : ""; for (var t = 0; t < this.length; t++) this[t].textContent = e }, after: function e(t) { if (t) if ("string" == typeof t) for (var n = 0; n < this.length; n++) { var e = this[n]; if (e.nodeType != Node.ELEMENT_NODE) { var r = e.ownerDocument.createElement("SPAN"); v(e).after(r), v(r).after(t).remove() } else e.insertAdjacentHTML("afterend", t) } else { var a = this[0]; if (a.nextSibling) if (t instanceof h) for (var o = 0; o < t.length; o++) a.nextSibling.parentNode.insertBefore(t[o], a.nextSibling); else a.nextSibling.parentNode.insertBefore(t, a.nextSibling); else v(a.parentNode).append(t) } return this }, clone: function (e) { for (var t = v(), n = 0; n < this.length; n++) t.push(this[n].cloneNode(e)); return t }, replaceWith: function (e) { if ("string" == typeof e) for (var t = 0; t < this.length; t++) this[t].parentNode && (this[t].outerHTML = e); else if (e.length) for (var n = 0; n < this.length; n++) this.replaceWith(e[n]); else this.after(e).remove() }, insertBefore: function (e) { return v(e).before(this[0]), this }, before: function e(t) { if (t instanceof h) { for (var n = 0; n < t.length; n++) this.before(t[n]); return this } if (t) if ("string" == typeof t) for (var r = 0; r < this.length; r++) { var e = this[r]; if (e.nodeType != Node.ELEMENT_NODE) { var a = e.ownerDocument.createElement("SPAN"); v(e).before(a), v(a).before(t).remove() } else e.parentNode && e.insertAdjacentHTML("beforebegin", t) } else { var o = this[0]; if (o.parentNode) if (t instanceof h) for (var i = 0; i < t.length; i++) o.parentNode.insertBefore(t[i], o); else o.parentNode.insertBefore(t, o) } return this }, append: function (e) { if (0 == this.length) return this; if ("string" == typeof e) for (var t = 0; t < this.length; t++) { var n = this[t], r = n.ownerDocument.createElement("SPAN"); v(n).append(r), v(r).after(e).remove() } else if (e instanceof h || Array.isArray(e)) for (var a = 0; a < e.length; a++) this.append(e[a]); else "function" != typeof e && this[0].appendChild(e); return this }, prepend: function (e) { if (0 == this.length) return this; if ("string" == typeof e) for (var t = 0; t < this.length; t++) { var n = this[t], r = n.ownerDocument.createElement("SPAN"); v(n).prepend(r), v(r).before(e).remove() } else if (e instanceof h) for (var a = 0; a < e.length; a++) this.prepend(e[a]); else { var o = this[0]; o.firstChild ? o.firstChild ? o.insertBefore(e, o.firstChild) : o.appendChild(e) : v(o).append(e) } return this }, remove: function () { for (var e = 0; e < this.length; e++) this[e].parentNode && this[e].parentNode.removeChild(this[e]); return this }, prev: function () { return this.length && this[0].previousElementSibling ? v(this[0].previousElementSibling) : v() }, next: function () { return this.length && this[0].nextElementSibling ? v(this[0].nextElementSibling) : v() }, nextAllVisible: function () { return this.next() }, prevAllVisible: function () { return this.prev() }, outerHeight: function (e) { if (0 === this.length) return undefined; var t = this[0]; if (t === t.window) return t.innerHeight; var n = {}, r = this.isVisible(); if (!r) for (var a in s) n[a] = t.style[a], t.style[a] = s[a]; var o = t.offsetHeight; if (e && (o += parseInt(v(t).css("marginTop")) + parseInt(v(t).css("marginBottom"))), !r) for (var i in s) t.style[i] = n[i]; return o }, outerWidth: function (e) { if (0 === this.length) return undefined; var t = this[0]; if (t === t.window) return t.outerWidth; var n = {}, r = this.isVisible(); if (!r) for (var a in s) n[a] = t.style[a], t.style[a] = s[a]; var o = t.offsetWidth; if (e && (o += parseInt(v(t).css("marginLeft")) + parseInt(v(t).css("marginRight"))), !r) for (var i in s) t.style[i] = n[i]; return o }, width: function (e) { if (e === undefined) { if (this[0] instanceof HTMLDocument) return this[0].body.offsetWidth; if (this[0]) return this[0].offsetWidth } else this[0].style.width = e + "px" }, height: function (e) { var t = this[0]; if (e === undefined) { if (t instanceof HTMLDocument) { var n = t.documentElement; return Math.max(t.body.scrollHeight, n.scrollHeight, t.body.offsetHeight, n.offsetHeight, n.clientHeight) } return t.offsetHeight } t.style.height = e + "px" }, is: function (e) { return 0 !== this.length && ("string" == typeof e && this[0].matches ? this[0].matches(e) : e instanceof h ? this[0] == e[0] : this[0] == e) }, parent: function () { return 0 === this.length ? v() : v(this[0].parentNode) }, _matches: function (e, t) { var n = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector; return e && !t ? n : n.call(e, t) }, parents: function (e) { for (var t = v(), n = 0; n < this.length; n++) for (var r = this[n].parentNode; r && r != document && this._matches(r);) e ? this._matches(r, e) && t.push(r) : t.push(r), r = r.parentNode; return t }, parentsUntil: function (e, t) { var n = v(); e instanceof h && 0 < e.length && (e = e[0]); for (var r = 0; r < this.length; r++) for (var a = this[r].parentNode; a && a != document && a != e && this[r] != e && ("string" != typeof e || !Element.prototype.matches.call(a, e));) t ? Element.prototype.matches.call(a, t) && n.push(a) : n.push(a), a = a.parentNode; return n }, insertAfter: function (e) { var t = e.parent()[0]; t && t.insertBefore(this[0], e[0].nextElementSibling) }, filter: function (e) { var t = v(); if ("function" == typeof e) for (var n = 0; n < this.length; n++) e.call(this[n], this[n]) && t.push(this[n]); else if ("string" == typeof e) for (var r = 0; r < this.length; r++) this[r].matches(e) && t.push(this[r]); return t }, offset: function () { if (0 === this.length) return undefined; var e = this[0].getBoundingClientRect(), t = this[0].ownerDocument.defaultView; return { top: e.top + t.pageYOffset, left: e.left + t.pageXOffset } }, position: function () { return { left: this[0].offsetLeft, top: this[0].offsetTop } }, push: [].push, splice: [].splice }, h.extend = function (e) { e = e || {}; for (var t = 1; t < arguments.length; t++) if (arguments[t]) for (var n in arguments[t]) Object.prototype.hasOwnProperty.call(arguments[t], n) && (e[n] = arguments[t][n]); return e }, h.merge = function (e, t) { for (var n = +t.length, r = 0, a = e.length; r < n; r++) e[a++] = t[r]; return e.length = a, e }, h.map = function (e, t, n) { var r, a, o = 0, i = []; if (Array.isArray(e)) for (r = e.length; o < r; o++) null != (a = t(e[o], o, n)) && i.push(a); else for (o in e) null != (a = t(e[o], o, n)) && i.push(a); return [].concat.apply([], i) }; var b = function b(e, t) { if (!e) return this; if ("string" == typeof e && "<" === e[0]) { var n = document.createElement("DIV"); return n.innerHTML = e, v(n.firstElementChild) } if (t = t instanceof h ? t[0] : t, "string" != typeof e) return e instanceof h ? e : (this[0] = e, this.length = 1, this); e = g(e); for (var r = (t || document).querySelectorAll(e), a = 0; a < r.length; a++) this[a] = r[a]; return this.length = r.length, this }; b.prototype = h.prototype; var C = kt; function E() { this.doc = this.$el.get(0).ownerDocument, this.win = "defaultView" in this.doc ? this.doc.defaultView : this.doc.parentWindow, this.$doc = h(this.doc), this.$win = h(this.win), this.opts.pluginsEnabled || (this.opts.pluginsEnabled = Object.keys(C.PLUGINS)), this.opts.initOnClick ? (this.load(C.MODULES), this.$el.on("touchstart.init", function () { h(this).data("touched", !0) }), this.$el.on("touchmove.init", function () { h(this).removeData("touched") }), this.$el.on("mousedown.init touchend.init dragenter.init focus.init", function r(e) { if ("touchend" === e.type && !this.$el.data("touched")) return !0; if (1 === e.which || !e.which) { this.$el.off("mousedown.init touchstart.init touchmove.init touchend.init dragenter.init focus.init"), this.load(C.MODULES), this.load(C.PLUGINS); var t = e.originalEvent && e.originalEvent.originalTarget; if (t && "IMG" === t.tagName && h(t).trigger("mousedown"), "undefined" == typeof this.ul && this.destroy(), "touchend" === e.type && this.image && e.originalEvent && e.originalEvent.target && h(e.originalEvent.target).is("img")) { var n = this; setTimeout(function () { n.image.edit(h(e.originalEvent.target)) }, 100) } this.ready = !0, this.events.trigger("initialized") } }.bind(this)), this.events.trigger("initializationDelayed")) : (this.load(C.MODULES), this.load(C.PLUGINS), h(this.o_win).scrollTop(this.c_scroll), "undefined" == typeof this.ul && this.destroy(), this.ready = !0, this.events.trigger("initialized")) } if (C.Bootstrap = function (e, t, n) { this.id = ++C.ID, this.$ = h; var r = {}; "function" == typeof t && (n = t, t = {}), n && (t.events || (t.events = {}), t.events.initialized = n), t && t.documentReady && (r.toolbarButtons = [ ["fullscreen", "undo", "redo", "getPDF", "print"], ["bold", "italic", "underline", "textColor", "backgroundColor", "clearFormatting"], ["alignLeft", "alignCenter", "alignRight", "alignJustify"], ["formatOL", "formatUL", "indent", "outdent"], ["paragraphFormat"], ["fontFamily"], ["fontSize"], ["insertLink", "insertImage", "quote"] ], r.paragraphFormatSelection = !0, r.fontFamilySelection = !0, r.fontSizeSelection = !0, r.placeholderText = "", r.quickInsertEnabled = !1, r.charCounterCount = !1), this.opts = Object.assign( {}, Object.assign( {}, C.DEFAULTS, r, "object" === St(t) && t)); var a = JSON.stringify(this.opts); C.OPTS_MAPPING[a] = C.OPTS_MAPPING[a] || this.id, this.sid = C.OPTS_MAPPING[a], C.SHARED[this.sid] = C.SHARED[this.sid] || {}, this.shared = C.SHARED[this.sid], this.shared.count = (this.shared.count || 0) + 1, this.$oel = h(e), this.$oel.data("froala.editor", this), this.o_doc = e.ownerDocument, this.o_win = "defaultView" in this.o_doc ? this.o_doc.defaultView : this.o_doc.parentWindow, this.c_scroll = h(this.o_win).scrollTop(), this._init() }, C.Bootstrap.prototype._init = function () { var e = this.$oel.get(0).tagName; this.$oel.closest("label").length; var t = function () { "TEXTAREA" !== e && (this._original_html = this._original_html || this.$oel.html()), this.$box = this.$box || this.$oel, this.opts.fullPage && (this.opts.iframe = !0), this.opts.iframe ? (this.$iframe = h('', provider: "youtube" }, { test_regex: /^.*(?:vimeo.com)\/(?:channels(\/\w+\/)?|groups\/*\/videos\/\u200b\d+\/|video\/|)(\d+)(?:$|\/|\?)/, url_regex: /(?:https?:\/\/)?(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?(\/[a-zA-Z0-9_\-]+)?/i, url_text: "https://player.vimeo.com/video/$1", html: '', provider: "vimeo" }, { test_regex: /^.+(dailymotion.com|dai.ly)\/(video|hub)?\/?([^_]+)[^#]*(#video=([^_&]+))?/, url_regex: /(?:https?:\/\/)?(?:www\.)?(?:dailymotion\.com|dai\.ly)\/(?:video|hub)?\/?(.+)/g, url_text: "https://www.dailymotion.com/embed/video/$1", html: '', provider: "dailymotion" }, { test_regex: /^.+(screen.yahoo.com)\/[^_&]+/, url_regex: "", url_text: "", html: '', provider: "yahoo" }, { test_regex: /^.+(rutube.ru)\/[^_&]+/, url_regex: /(?:https?:\/\/)?(?:www\.)?(?:rutube\.ru)\/(?:video)?\/?(.+)/g, url_text: "https://rutube.ru/play/embed/$1", html: '', provider: "rutube" }, { test_regex: /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/, url_regex: /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/g, url_text: "https://play.vidyard.com/$1", html: '', provider: "vidyard" }], kt.VIDEO_EMBED_REGEX = /^\W*(((\s|\n)*<\/iframe>)|())\W*$/i, kt.IMAGE_EMBED_REGEX = /^\W*(((\s|\n)*))\W*$/i, kt.PLUGINS.filesManager = function (A) { var y, i, T, l, c, d, s, f, S = A.$, L = "https://i.froala.com/upload", p = !1, t = !1, k = new Map, x = new Map, _ = new Map, w = new Map, R = new Map, M = new Map, o = 0, a = [], u = -1, O = [], h = 0, g = ["file", "image", "imageTUI", "video"], N = 1, m = 2, I = 3, D = 4, B = 5, H = 6, $ = 10, P = ["video/avi", "video/mpeg", "video/x-ms-wmv"], v = {}; function b() { var e = A.popups.get("filesManager.insert"), t = e.find(".fr-files-by-url-layer input"); t.val(""), e.find(".fr-files-embed-layer textarea").val("").trigger("change"), t.trigger("change") } function C(e) { var t; A.hasOwnProperty("imageTUI") || (s = "fr-disabled"), M.forEach(function (e, t) { Z(t) }), E() ? (t = A.popups.get("filesManager.insert")) || (t = Fe()) : (t = A.popups.get("filesManager.insert")) || (t = function i() { var e = '
    '.concat(A.button.buildList(A.opts.fileInsertButtons), "
    "), t = "
    \n

    ".concat(A.language.translate(function a() { var e = "", t = function n() { var t = []; return g.forEach(function (e) { A.opts.pluginsEnabled.indexOf(e) < 0 && t.push(e.charAt(0).toUpperCase() + e.slice(1)) }), t }(); e = t.join(", "), 1 < t.length ? e += " plugin are" : e += " plugin is"; return e }() + " not enabled. Do you want to enable?"), "

    \n
    \n \n \n
    "), n = { buttons: e, upload_layer: t, by_url_layer: "", embed_layer: "", upload_progress_layer: "", progress_bar: "" }, r = A.popups.create("filesManager.insert", n); return Ne(r), r }()); var n = A.$tb.find('.fr-command[data-cmd="insertFiles"]'); if (J(), e || !t.hasClass("fr-active")) if (e || X(), A.popups.refresh("filesManager.insert"), A.popups.setContainer("filesManager.insert", A.$tb), n.isVisible()) { var r = A.button.getPosition(n, k.size), a = r.left, o = r.top; A.popups.show("filesManager.insert", a, o, n.outerHeight()) } else A.position.forSelection(t), A.popups.show("filesManager.insert"); A.popups.setPopupDimensions(t), E() && A.popups.setFileListHeight(t), t.find(".fr-upload-progress") && 0 == k.size && t.find(".fr-upload-progress").addClass("fr-none") } function E() { var t = !0; return g.forEach(function (e) { A.opts.pluginsEnabled.indexOf(e) < 0 && (t = !1) }), t } function F() { J() } function U() { if (l || function i() { var e; A.shared.$image_resizer ? (l = A.shared.$image_resizer, d = A.shared.$img_overlay, A.events.on("destroy", function () { S("body").first().append(l.removeClass("fr-active")) }, !0)) : (A.shared.$image_resizer = S(document.createElement("div")).attr("class", "fr-image-resizer"), l = A.shared.$image_resizer, A.events.$on(l, "mousedown", function (e) { e.stopPropagation() }, !0), A.opts.imageResize && (l.append(z("nw") + z("ne") + z("sw") + z("se")), A.shared.$img_overlay = S(document.createElement("div")).attr("class", "fr-image-overlay"), d = A.shared.$img_overlay, e = l.get(0).ownerDocument, S(e).find("body").first().append(d))); A.events.on("shared.destroy", function () { l.html("").removeData().remove(), l = null, A.opts.imageResize && (d.remove(), d = null) }, !0), A.helpers.isMobile() || A.events.$on(S(A.o_win), "resize", function () { y && !y.hasClass("fr-uploading") ? nt(!0) : y && (U(), replace(), Q(!1)) }); if (A.opts.imageResize) { e = l.get(0).ownerDocument, A.events.$on(l, A._mousedown, ".fr-handler", V), A.events.$on(S(e), A._mousemove, W), A.events.$on(S(e.defaultView || e.parentWindow), A._mouseup, G), A.events.$on(d, "mouseleave", G); var r = 1, a = null, o = 0; A.events.on("keydown", function (e) { if (y) { var t = -1 != navigator.userAgent.indexOf("Mac OS X") ? e.metaKey : e.ctrlKey, n = e.which; (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == kt.KEYCODE.EQUALS || A.browser.mozilla && n == kt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = je.call(this, e, 1, 1, r) : (n == kt.KEYCODE.HYPHEN || A.browser.mozilla && n == kt.KEYCODE.FF_HYPHEN) && t && !e.altKey ? r = je.call(this, e, 2, -1, r) : A.keys.ctrlKey(e) || n != kt.KEYCODE.ENTER || (y.before("
    "), _e(y)), a = n, o = e.timeStamp } }, !0), A.events.on("keyup", function () { r = 1 }) } }(), !y) return !1; var e = A.$wp || A.$sc; e.append(l), l.data("instance", A); var t = e.scrollTop() - ("static" != e.css("position") ? e.offset().top : 0), n = e.scrollLeft() - ("static" != e.css("position") ? e.offset().left : 0); n -= A.helpers.getPX(e.css("border-left-width")), t -= A.helpers.getPX(e.css("border-top-width")), A.$el.is("img") && A.$sc.is("body") && (n = t = 0); var r = lt(); ct() && (r = r.find(".fr-img-wrap")); var a = 0, o = 0; A.opts.iframe && (a = A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top")), o = A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-left"))), l.css("top", (A.opts.iframe ? r.offset().top + a : r.offset().top + t) - 1).css("left", (A.opts.iframe ? r.offset().left + o : r.offset().left + n) - 1).css("width", r.get(0).getBoundingClientRect().width).css("height", r.get(0).getBoundingClientRect().height).addClass("fr-active") } function z(e) { return '
    ') } function K(e) { ct() ? y.parents(".fr-img-caption").css("width", e) : y.css("width", e) } function V(e) { if (!A.core.sameInstance(l)) return !0; if (e.preventDefault(), e.stopPropagation(), A.$el.find("img.fr-error").left) return !1; A.undo.canDo() || A.undo.saveStep(); var t = e.pageX || e.originalEvent.touches[0].pageX; if ("mousedown" == e.type) { var n = A.$oel.get(0).ownerDocument, r = n.defaultView || n.parentWindow, a = !1; try { a = r.location != r.parent.location && !(r.$ && r.$.FE) } catch (s) {} a && r.frameElement && (t += A.helpers.getPX(S(r.frameElement).offset().left) + r.frameElement.clientLeft) }(c = S(this)).data("start-x", t), c.data("start-width", y.width()), c.data("start-height", y.height()); var o = y.width(); if (A.opts.imageResizeWithPercent) { var i = y.parentsUntil(A.$el, A.html.blockTagsQuery()).get(0) || A.el; o = (o / S(i).outerWidth() * 100).toFixed(2) + "%" } K(o), d.show(), A.popups.hideAll(), ot() } function W(e) { if (!A.core.sameInstance(l)) return !0; var t; if (c && y) { if (e.preventDefault(), A.$el.find("img.fr-error").left) return !1; var n = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null); if (!n) return !1; var r = n - c.data("start-x"), a = c.data("start-width"); if ((c.hasClass("fr-hnw") || c.hasClass("fr-hsw")) && (r = 0 - r), A.opts.imageResizeWithPercent) { var o = y.parentsUntil(A.$el, A.html.blockTagsQuery()).get(0) || A.el; a = ((a + r) / S(o).outerWidth() * 100).toFixed(2), A.opts.imageRoundPercent && (a = Math.round(a)), K("".concat(a, "%")), (t = ct() ? (A.helpers.getPX(y.parents(".fr-img-caption").css("width")) / S(o).outerWidth() * 100).toFixed(2) : (A.helpers.getPX(y.css("width")) / S(o).outerWidth() * 100).toFixed(2)) === a || A.opts.imageRoundPercent || K("".concat(t, "%")), y.css("height", "").removeAttr("height") } else a + r >= A.opts.imageMinWidth && (K(a + r), t = ct() ? A.helpers.getPX(y.parents(".fr-img-caption").css("width")) : A.helpers.getPX(y.css("width"))), t !== a + r && K(t), ((y.attr("style") || "").match(/(^height:)|(; *height:)/) || y.attr("height")) && (y.css("height", c.data("start-height") * y.width() / c.data("start-width")), y.removeAttr("height")); U(), A.events.trigger("image.resize", [st()]) } } function G(e) { if (!A.core.sameInstance(l)) return !0; if (c && y) { if (e && e.stopPropagation(), A.$el.find("img.fr-error").left) return !1; c = null, d.hide(), U(), A.undo.saveStep(), A.events.trigger("image.resizeEnd", [st()]) } else l.removeClass("fr-active") } function Y() { M.forEach(function (e, t) { var n = A.popups.get("filesManager.insert"); n.find(".fr-checkbox-file-" + t).get(0).disabled = !0, document.getElementById("fr-file-autoplay-button-" + t) && (document.getElementById("fr-file-autoplay-button-" + t).disabled = !0, document.getElementById("fr-file-autoplay-button-" + t).parentElement.classList.add("fr-checkbox-disabled"), document.getElementById("fr-file-autoplay-button-" + t).parentElement.classList.remove("fr-files-checkbox")), n.find(".fr-checkbox-" + t).get(0).classList.remove("fr-files-checkbox"), n.find(".fr-checkbox-" + t).get(0).classList.add("fr-checkbox-disabled") }) } function j(e, t, n, r) { A.edit.on(), y && y.addClass("fr-error"), v[e] ? (e != I && e != m && e != D || Ee(100, r, !0), M.set(r, v[e]), Y(), function a() { M.forEach(function (e, t) { A.popups.get("filesManager.insert"), document.getElementById("fr-file-edit-button-".concat(t)) && (document.getElementById("fr-file-edit-button-".concat(t)).classList.add("fr-disabled"), document.getElementById("fr-file-view-button-".concat(t)).classList.add("fr-disabled"), document.getElementById("fr-file-insert-button-".concat(t)).classList.add("fr-disabled")) }) }(), ne(A.language.translate(v[e]), r)) : ne(A.language.translate("Something went wrong. Please try again."), r), !y && n && qe(n), A.events.trigger("filesManager.error", [ { code: e, message: v[e] }, t, n]) } function q() { var e = A.popups.get("filesManager.insert"), t = e.find('.fr-command[data-cmd="insertAll"]'), n = e.find('.fr-command[data-cmd="deleteAll"]'), r = !0; R.forEach(function a(e, t, n) { R.get(t) && (r = !1) }), r ? t.addClass("fr-disabled") : t.removeClass("fr-disabled"), r ? n.addClass("fr-disabled") : n.removeClass("fr-disabled") } function Z(e) { x.get(e) && x.get(e).link && A.events.trigger("filesManager.removed", [x.get(e).link]); var t = A.popups.get("filesManager.insert"); t.find(".fr-file-" + e).get(0) !== undefined && (t.find(".fr-file-" + e).get(0).outerHTML = ""), x["delete"](e), k["delete"](e), R["delete"](e), q(), 0 == k.size && (h = 0), M["delete"](e), A.popups.setPopupDimensions(t, !0), A.opts.toolbarBottom ? C(!0) : A.popups.setPopupDimensions(t), t.find(".fr-upload-progress") && 0 == k.size && t.find(".fr-upload-progress").addClass("fr-none") } function X() { for (var e = A.popups.get("filesManager.insert"), t = e.find(".fr-insert-checkbox"), n = 0; n < t.length; n++) t.get(n).children.target.checked = !1, e.find(".fr-file-" + t.get(n).id.split("-").pop()).get(0).classList.add("fr-unchecked"); if (T) document.getElementById("fr-file-autoplay-button-".concat(T)) && (document.getElementById("fr-file-autoplay-button-".concat(T)).checked = !1), O = O.filter(function (e) { return e != T }); else { for (var r = e.find(".fr-file-autoplay-button"), a = 0; a < r.length; a++) r.get(a).checked = !1; O = [] } R = new Map, q() } function Q(e) { var t = A.popups.get("filesManager.insert"); if (t || (t = Fe()), t.find(".fr-layer.fr-active").removeClass("fr-active").addClass("fr-pactive"), t.find(".fr-files-progress-bar-layer").addClass("fr-active"), t.find(".fr-buttons").hide(), y) { var n = lt(); A.popups.setContainer("filesManager.insert", A.$sc); var r = n.offset().left, a = n.offset().top + n.height(); A.popups.show("filesManager.insert", r, a, n.outerHeight()) } void 0 === e && ee(A.language.translate("Uploading"), 0) } function J(e) { var t = A.popups.get("filesManager.insert"); if (t && (t.find(".fr-layer.fr-pactive").addClass("fr-active").removeClass("fr-pactive"), t.find(".fr-files-progress-bar-layer").removeClass("fr-active"), t.find(".fr-buttons").show(), e || A.$el.find("img.fr-error").length)) { if (A.events.focus(), A.$el.find("img.fr-error").length && (A.$el.find("img.fr-error").remove(), A.undo.saveStep(), A.undo.run(), A.undo.dropRedo()), !A.$wp && y) { var n = y; nt(!0), A.selection.setAfter(n.get(0)), A.selection.restore() } A.popups.hide("filesManager.insert") } } function ee(e, t) { var n = A.popups.get("filesManager.insert"); if (n) { var r = n.find(".fr-files-progress-bar-layer"); r.find("h3").text(e + (t ? " ".concat(t, "%") : "")), r.removeClass("fr-error"), t ? (r.find("div").removeClass("fr-indeterminate"), r.find("div > span").css("width", "".concat(t, "%"))) : r.find("div").addClass("fr-indeterminate") } } function te(e) { Q(); var t = A.popups.get("filesManager.insert").find(".fr-files-progress-bar-layer"); t.addClass("fr-error"); var n = t.find("h3"); n.text(e), A.events.disableBlur(), n.focus() } function ne(e, t) { var n = A.popups.get("filesManager.insert"), r = n.find(".fr-upload-progress-layer"), a = n.find(".fr-file-".concat(t)); r.addClass("fr-error"), a.find("h5").text(e) } v[N] = "File cannot be loaded from the passed link.", v[m] = "No link in upload response.", v[I] = "Error during file upload.", v[D] = "Parsing response failed.", v[B] = "File is too large.", v[H] = "File type is invalid.", v[7] = "Files can be uploaded only to same domain in IE 8 and IE 9.", v[8] = "File is corrupted.", v[9] = "Error during file loading.", v[$] = "File upload cancelled"; var n, re, ae, oe, ie, se, r, le, ce, de, fe = ""; function pe(e) { fe = e, n = document.getElementsByClassName(e), Array.prototype.map.call(n, function (e) { ! function r(e) { if (e.addEventListener("dragover", function (e) { e.preventDefault(), e.stopPropagation(), re = e.pageX, ae = e.pageY; var t = document.getElementById("filesList"); ae + 20 > t.getBoundingClientRect().bottom && ue(t, 0, 10), ae - 20 < t.getBoundingClientRect().top && ue(t, 0, -10) }, !1), A.helpers.isMobile()) { var t = e.getElementsByClassName("dot"); t[0].addEventListener("touchmove", function (e) { e.preventDefault(), e.stopPropagation(); for (var t = e.target; t && !t.classList.contains(fe);) t = t.parentElement; for (var n = document.elementFromPoint(e.targetTouches[0].clientX, e.targetTouches[0].clientY); n && !n.classList.contains(fe);) n = n.parentElement; var r = document.getElementsByClassName("fr-hovered-over-file"); Array.prototype.forEach.call(r, function (e) { e.classList.remove("fr-hovered-over-file") }), n && !t.classList.contains("fr-unchecked") && n.classList.add("fr-hovered-over-file"); var a = document.getElementById("filesList"); e.targetTouches[0].clientY + 5 > a.getBoundingClientRect().bottom && ue(a, 0, 5), e.targetTouches[0].clientY - 5 < a.getBoundingClientRect().top && ue(a, 0, -5) }, !1) } if (e.ondrag = he, e.ondragend = ge, A.helpers.isMobile()) { var n = e.getElementsByClassName("dot"); n[0].addEventListener("touchmove", he, !1), n[0].addEventListener("touchend", ge, !1) } }(e) }) } function ue(e, t, n) { e.scrollLeft += t, e.scrollTop += n } function he(e) { for (A.helpers.isMobile() && (ie = event.touches[0].clientX, se = event.touches[0].clientY), oe = e.target; !oe.classList.contains(fe);) oe = oe.parentElement; oe.classList.contains(fe) && !oe.classList.contains("fr-unchecked") ? A.helpers.isMobile() && oe.classList.add("drag-sort-active") : oe = undefined } function ge(e) { var t; if (oe !== undefined) { var n, r; if (A.helpers.isMobile()) for (n = ie, r = se, t = event.target; !t.classList.contains(fe);) t = t.parentElement; else n = event.clientX, r = event.clientY; A.helpers.isMobile() || !A.browser.safari && !A.browser.mozilla || (n = re, r = ae); for (var a = document.elementFromPoint(n, r); a && !a.classList.contains(fe);) a = a.parentElement; a && !a.classList.contains(fe) ? a = undefined : a && oe !== a && function s(e, t) { var n, r, a = e.parentNode, o = t.parentNode; if (!a || !o || a.isEqualNode(t) || o.isEqualNode(e)) return; for (var i = 0; i < a.children.length; i++) a.children[i].isEqualNode(e) && (n = i); for (var i = 0; i < o.children.length; i++) o.children[i].isEqualNode(t) && (r = i); a.isEqualNode(o) && n < r && r++; a.insertBefore(t, a.children[n]), o.insertBefore(e, o.children[r]) }(oe, a), A.helpers.isMobile() && (t.classList.remove("fr-hovered-over-file"), a.classList.remove("fr-hovered-over-file")) } } function me(e) { var r = A.popups.get("filesManager.insert"); r.find(".fr-upload-progress-layer").hasClass("fr-active") || r.find(".fr-upload-progress-layer").addClass("fr-active"), r.find(".fr-upload-progress").removeClass("fr-none"); var t = k.get(e), n = function i(e) { var t, n = { weekday: "long", year: "numeric", month: "long", day: "numeric" }; try { t = e.toLocaleDateString(A.opts.language ? A.opts.language : undefined, n) } catch (r) { t = e.toLocaleDateString(undefined, n) } return t + "" }(new Date), a = R.get(e) ? "" : "fr-unchecked ", o = "\n
    \n
    \n\n \n
    \n ').concat(A.helpers.isMobile() ? "
    \n
    ") : "", '\n
    \n \n ').concat('', '\n \n
    \n \n
    \n \n
    \n Image preview\n
    \n\n
    \n
    \n ").concat(function s(e, t, n) { null == t && (t = 100); null == n && (n = "..."); return e.length > t ? e.substring(0, t - n.length) + n : e }(t.name, 20), '\n ').concat(t.name, "\n \n
    \n
    \n
    ").concat(n, "\n
    \n \n
    \n ").concat(function l(e) { if (0 == e) return "0 Bytes"; var t = Math.floor(Math.log(e) / Math.log(1024)); return " | " + 1 * (e / Math.pow(1024, t)).toFixed(2) + " " + ["Bytes", "KB", "MB", "GB", "TB"][t] }(t.size), "\n
    \n
    \n\n
    \n
    \n
    \n
    \n \n
    \n\n
    ") + Ce(e) + "
    \n
    "; r.find(".fr-upload-progress-layer")[0].innerHTML = o + r.find(".fr-upload-progress-layer")[0].innerHTML, k.forEach(function c(e, t, n) { R.get(t) && r.find("input.fr-insert-attr.fr-checkbox-file-".concat(t))[0].setAttribute("checked", null) }), O.forEach(function (e) { document.getElementById("fr-file-autoplay-button-" + e).checked = !0 }), be(e, t), J(), A.opts.toolbarBottom ? C(!0) : A.popups.setPopupDimensions(r), pe("fr-file-list-item") } function ve(e) { switch (e) { case "application/msword": return A.icon.getFileIcon("docIcon"); case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": return A.icon.getFileIcon("docxIcon"); case "image/gif": return A.icon.getFileIcon("gifIcon"); case "image/jpeg": return A.icon.getFileIcon("jpegIcon"); case "image/jpeg": return A.icon.getFileIcon("jpgIcon"); case "type/text": return A.icon.getFileIcon("logIcon"); case "video/quicktime": return A.icon.getFileIcon("movIcon"); case "audio/mp3": case "audio/mpeg": return A.icon.getFileIcon("mp3Icon"); case "video/mp4": return A.icon.getFileIcon("mp4Icon"); case "audio/ogg": return A.icon.getFileIcon("oggIcon"); case "video/ogg": return A.icon.getFileIcon("ogvIcon"); case "application/pdf": return A.icon.getFileIcon("pdfIcon"); case "image/png": return A.icon.getFileIcon("pngIcon"); case "text/plain": return A.icon.getFileIcon("txtIcon"); case "video/webm": return A.icon.getFileIcon("webmIcon"); case "image/webp": return A.icon.getFileIcon("webpIcon"); case "video/x-ms-wmv": return A.icon.getFileIcon("wmvIcon"); case "application/vnd.ms-excel": return A.icon.getFileIcon("xlsIcon"); case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": return A.icon.getFileIcon("xlsxIcon"); case "application/x-zip-compressed": case "application/zip": return A.icon.getFileIcon("zipIcon"); default: return A.icon.getFileIcon("defaultIcon") } } function be(r, a, e) { var o = A.popups.get("filesManager.insert"), t = o.find(".fr-file-item-icon-" + r).get(0); if (De(ke(a)) && "image/gif" != ke(a) && "image/webp" != ke(a)) { "a" != t.children[0].localName && (t.innerHTML = "" + t.innerHTML + ""); o.find(".fr-file-item-icon-" + r).get(0).children[0].children[0]; var i = new FileReader; if (null != e && e) { var n = k.get(r); a.name = n.name, k.set(r, a) } if (i.onloadend = function () { o.find(".fr-file-item-icon-" + r).get(0).children[0].children[0].src = i.result; for (var e = atob(i.result.split(",")[1]), t = [], n = 0; n < e.length; n++) t.push(e.charCodeAt(n)); o.find(".fr-file-item-icon-" + r).get(0).children[0].href = window.URL.createObjectURL(new Blob([new Uint8Array(t)], { type: ke(a) })), o.find(".fr-file-item-icon-" + r).get(0).classList.add("file-item-thumbnail-hover") }, a) i.readAsDataURL(a); else { var s = ve(ke(a)); t.innerHTML = '\n '.concat(s.path, "\n ") } } else { var l = ve(ke(a)); t.innerHTML = '\n '.concat(l.path, "\n ") } } function Ce(e) { var t = ""; if (He(ke(k.get(e)))) { var n = "fr-files-checkbox", r = ""; Pe(ke(k.get(e))) || (n = "fr-checkbox-disabled", r = "disabled"); t = '\n
    \n
    \n \n \n\n ").concat('', " \n
    \n \n
    ") } var a = "application/msword", o = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", i = ""; return !$e(ke(k.get(e))) && Pe(ke(k.get(e))) || (s = "fr-disabled"), He(ke(k.get(e))) && (s = "fr-disabled"), Be(ke(k.get(e))) && (s = "fr-disabled", ke(k.get(e)) != a && ke(k.get(e)) != o || A.opts.googleOptions && !A.helpers.isMobile() && A.opts.googleOptions.API_KEY && A.opts.googleOptions.CLIENT_ID && (s = ""), "text/plain" != ke(k.get(e)) && ke(k.get(e)) != a && "application/pdf" != ke(k.get(e)) && ke(k.get(e)) != o && "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" != ke(k.get(e)) && "application/vnd.ms-excel" != ke(k.get(e)) && "type/text" != ke(k.get(e)) || (i = "")), "video/url" === ke(k.get(e)) && (s = "fr-disabled"), t += '
    \n \n\n \n \n \n\n \n \n
    \n
    \n \n
    \n\n
    \n\n
    \n ") } function Ee(e, t, n) { var r = A.popups.get("filesManager.insert"); if (!n && e <= 100) { r.find(".fr-checkbox-file-" + t).get(0).disabled = !0, r.find(".fr-checkbox-" + t).get(0).classList.remove("fr-files-checkbox"), r.find(".fr-checkbox-" + t).get(0).classList.add("fr-checkbox-disabled"); var a = r.find(".fr-file-progress-circle-" + t), o = r.find(".fr-file-upload-percent-" + t); return 50 < e ? a.get(0).setAttribute("class", "fr-file-progress-circle-" + t + " progress-circle p" + Math.floor(e) + " over50") : a.get(0).setAttribute("class", "fr-file-progress-circle-" + t + " progress-circle p" + Math.floor(e)), o.get(0).innerHTML = Math.floor(e) + "%", void ye(t, e, n) } n && (r.find(".fr-checkbox-file-" + t).get(0).disabled = !1, r.find(".fr-checkbox-" + t).get(0).classList.remove("fr-checkbox-disabled"), r.find(".fr-checkbox-" + t).get(0).classList.add("fr-files-checkbox"), r.find(".fr-file-item-right-" + t).get(0).innerHTML = Ce(t), ye(t, 100, n)) } function ye(e, t, n) { var r = A.popups.get("filesManager.insert"); r.find(".fr-progress-bar").removeClass("fr-none").addClass("fr-display-block"), r.find(".fr-upload-progress").hasClass("fr-height-set") && A.popups.setFileListHeight(r); var a = 0; w.set(e, t), w.forEach(function (e, t) { a += e }), a /= w.size, 100 == t && n && o++, r.find('.fr-command[data-cmd="filesUpload"]').addClass("fr-disabled"), r.find('.fr-command[data-cmd="filesByURL"]').addClass("fr-disabled"), r.find('.fr-command[data-cmd="filesEmbed"]').addClass("fr-disabled"), r.find(".fr-progress-bar").get(0).style.width = a + "%", o == w.size && (r.find(".fr-progress-bar").removeClass("fr-display-block").addClass("fr-none"), w = new Map, o = 0, r.find('.fr-command[data-cmd="filesUpload"]').removeClass("fr-disabled"), r.find('.fr-command[data-cmd="filesByURL"]').removeClass("fr-disabled"), r.find('.fr-command[data-cmd="filesEmbed"]').removeClass("fr-disabled")) } function Le(n, r) { J(), A.popups.get("filesManager.insert").find(".fr-upload-progress-layer").addClass("fr-active"), n.forEach(function (e, t) { De(ke(e)) && A.opts.imageUploadRemoteUrls && A.opts.imageCORSProxy && A.opts.imageUpload ? Oe(e, n, y, r[t]) : x.set(r[t], e) }) } function _e(e) { e && e.get && function n(e) { if ("false" == S(this).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable")) return !0; if (e && "touchend" == e.type && de) return !0; if (e && A.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1; for (var t = 0; t < kt.INSTANCES.length; t++) kt.INSTANCES[t] != A && kt.INSTANCES[t].events.trigger("image.hideResizer"); A.toolbar.disable(), e && (e.stopPropagation(), e.preventDefault()); A.helpers.isMobile() && (A.events.disableBlur(), A.$el.blur(), A.events.enableBlur()); A.opts.iframe && A.size.syncIframe(); y = S(this), U(), A.browser.msie ? (A.popups.areVisible() && A.events.disableBlur(), A.win.getSelection && (A.win.getSelection().removeAllRanges(), A.win.getSelection().addRange(A.doc.createRange()))) : A.selection.clear(); A.helpers.isIOS() && (A.events.disableBlur(), A.$el.blur()); A.button.bulkRefresh(), A.events.trigger("video.hideResizer") }.call(e.get(0)) } function we() { var e = S(this); e.removeClass("fr-uploading"), e.next().is("br") && e.next().remove(), (0 == a.length || 0 < a.length && a.length == u) && (f = e), "VIDEO" == e.get(0).tagName || "AUDIO" == e.get(0).tagName ? A.selection.setAfter(e.parent()) : A.selection.setAfter(e), A.undo.saveStep(), A.events.trigger("filesManager.loaded", [e]), Te(a) } function Ae() { var e, t = Array.prototype.slice.call(A.el.querySelectorAll("video, .fr-video > *")), n = []; for (e = 0; e < t.length; e++) n.push(t[e].getAttribute("src")), S(t[e]).toggleClass("fr-draggable", A.opts.videoMove), "" === t[e].getAttribute("class") && t[e].removeAttribute("class"), "" === t[e].getAttribute("style") && t[e].removeAttribute("style"); if (r) for (e = 0; e < r.length; e++) n.indexOf(r[e].getAttribute("src")) < 0 && A.events.trigger("video.removed", [S(r[e])]); r = t } function Te(e) { if (null != e) { if (0 == e.length) return void(null != f && ("VIDEO" == f.get(0).tagName ? A.video._editVideo(f.parent()) : "IMG" == f.get(0).tagName ? A.image.edit(f) : f.trigger("click"), A.toolbar.disable())); xe(e.shift(), e) } } function Se(e) { var t = !1; if (He(ke(x.get(e)))) A.trimVideoPlugin.trimVideo(k.get(e), e, k), t = !0; else if (De(ke(x.get(e)))) { var n = x.get(e).link, r = A.o_doc.createElement("img"); r.src = n, y = r, i = e, A.imageTUI.launch(A, !1, e), t = !0 } else if (Be(ke(x.get(e)))) { var a = { apiKey: A.opts.googleOptions.API_KEY, clientId: A.opts.googleOptions.CLIENT_ID, authorizeButton: "authorize_button-".concat(e), signoutButton: "signout_button", userArea: "user_area-".concat(e), fileInput: "file_input", fileIndex: e, file: k.get(e), fileContainer: "file_container", loadingText: "File is being uploaded...", events: { onInvalidFile: function (e) {}, onError: function (e) {} } }; ce = function d(p) { var o, e = ["https://www.googleapis.com/discovery/v1/apis/drive/v2/rest"], u = "id,title,mimeType,userPermission,editable,copyable,shared,fileSize", h = "-------314159265358979323846", g = "\r\n--" + h + "\r\n", m = "\r\n--" + h + "--", t = (document.getElementById(p.authorizeButton), document.getElementById(p.userArea)); p.events || (p.events = {}); function n() { gapi.client.init( { apiKey: p.apiKey, clientId: p.clientId, discoveryDocs: e, scope: "https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata" }).then(function () { gapi.auth2.getAuthInstance().isSignedIn.listen(r), r(gapi.auth2.getAuthInstance().isSignedIn.get()), function t(e) { !gapi.auth2.getAuthInstance().isSignedIn.get() || gapi.auth.getToken() !== undefined && gapi.auth.getToken().access_token === undefined ? Promise.resolve(gapi.auth2.getAuthInstance().signIn()).then(function () { i() }) : i() }() }, function (e) { p.events.onError(e) }) } function r(e) { e && (t.style.display = "block") } function a(e) { var t = gapi.auth.getToken().access_token, n = o, r = "https://docs.google.com/feeds/download/documents/export/Export?id=" + n + "&format=docx&access_token=" + t, a = new XMLHttpRequest; a.open("get", r), a.responseType = "arraybuffer", a.onload = function () { var e = new Blob([new Uint8Array(this.response)], { type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }), t = k.get(p.fileIndex); e.name = t.name, e.lastModified = t.lastModified, e.lastModifiedDate = t.lastModifiedDate, k.set(p.fileIndex, e), A.filesManager.upload(e, x, y, p.fileIndex), l() }, a.send() } function i(e) { ! function r(e) { for (var t = document.getElementsByClassName("fr-doc-edit-".concat(e)), n = 0; n < t.length; n++) t[n].setAttribute("disabled", !0), t[n].classList.add("fr-disabled") }(p.fileIndex); var t = p.file; t ? function n(c, d) { var f = new FileReader; f.readAsArrayBuffer(c), f.onload = function (e) { for (var t = { title: c.name, mimeType: "application/vnd.google-apps.document" }, n = "", r = new Uint8Array(f.result), a = r.byteLength, o = 0; o < a; o++) n += String.fromCharCode(r[o]); var i = btoa(n), s = g + "Content-Type: application/json; charset=UTF-8\r\n\r\n" + JSON.stringify(t) + g + "Content-Type: application/octet-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n" + i + m, l = gapi.client.request( { path: "/upload/drive/v2/files", method: "POST", params: { uploadType: "multipart", fields: u }, headers: { "Content-Type": 'multipart/related; boundary="' + h + '"', "Content-Length": s.Length }, body: s }); d || (d = function (e) {}), l.execute(function (e, t) { e.error ? p.events.onError(e.error) : d(e) }) } }(t, s) : p.events.onInvalidFile("File is not selected") } function s(e) { o = e.id; var t = "https://docs.google.com/document/d/" + e.id + "/edit", n = A.o_doc.body, r = A.o_doc.createElement("div"); r.setAttribute("id", "editDocContainer"), r.style.cssText = "position: fixed; top: 0;left: 0;padding: 0;width: 100%;height: 100%;background: rgba(255,255,255,1);z-index: 9998;display:block", r.innerHTML = '
    ', n.appendChild(r), document.getElementById("signout_button").onclick = a, document.getElementById("cancel_file_edit").onclick = l } function l() { document.getElementById("markSignOut").checked && gapi.auth2.getAuthInstance().signOut().then(function () { gapi.auth.getToken() && (gapi.auth.getToken().access_token = undefined) }); var e = document.getElementById("editDocContainer"); e.parentNode.removeChild(e), document.getElementById("user_area-".concat(p.fileIndex)) && (document.getElementById("user_area-".concat(p.fileIndex)).style.display = "none"), function r(e) { for (var t = document.getElementsByClassName("fr-doc-edit-".concat(e)), n = 0; n < t.length; n++) t[n].removeAttribute("disabled"), t[n].classList.remove("fr-disabled") }(p.fileIndex) } p.events.onInvalidFile = p.events.onInvalidFile || function (e) {}, p.events.onError = p.events.onError || function (e) {}; var c = {}; return c.handleClientLoad = function () { gapi.load("client:auth2", n) }, c }(a), function o(e, t) { var r = function r(e, t) { var n = document.createElement("script"); n.src = e, n.onload = function () { this.onload = function () {}, ce.handleClientLoad() }, n.onreadystatechange = function () { "complete" === this.readyState && this.onload() }, (document.getElementsByTagName("head")[0] || document.body).appendChild(n) }; ! function n() { 0 != e.length ? r(e.shift(), n) : t && t() }() }(["https://apis.google.com/js/api.js"], function () {}) } t && (p = !0) } function ke(e) { if ("" != e.type) return e.type; var n, r = /(?:\.([^.]+))?$/.exec(e.name)[1]; return [ [".doc", "application/msword"], [".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"], [".gif", "image/gif"], [".jpeg", "image/jpeg"], [".jpg", "image/jpeg"], [".txt", "text/plain"], [".log", "type/text"], [".mov", "video/quicktime"], [".mp3", "audio/mpeg"], [".mp4", "video/mp4"], [".ogg", "audio/ogg"], [".ogv", "video/ogg"], [".pdf", "application/pdf"], [".png", "image/png"], [".webm", "video/webm"], [".webp", "image/webp"], [".wmv", "video/x-ms-wmv"], [".xls", "application/vnd.ms-excel"], [".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"], [".zip", "application/x-zip-compressed"] ].forEach(function (e, t) { e[0] == ".".concat(r) && (n = e[1]) }), n } function xe(s, e) { if (Be(ke(x.get(s))) || !Pe(ke(x.get(s)))) { var t = x.get(s).link, n = x.get(s).text; !n && k.get(s) && k.get(s).name && (n = k.get(s).name); var r = x.get(s).response; A.edit.on(), A.events.focus(!0), A.selection.restore(), A.opts.fileUseSelectedText && A.selection.text().length && (n = A.selection.text()), A.html.insert('').concat(n, "")); var a = A.$el.find("#fr-inserted-file"); a.removeAttr("id"), A.undo.saveStep(), function L() { var e, t = Array.prototype.slice.call(A.el.querySelectorAll("a.fr-file")), n = []; for (e = 0; e < t.length; e++) n.push(t[e].getAttribute("href")); if (le) for (e = 0; e < le.length; e++) n.indexOf(le[e].getAttribute("href")) < 0 && A.events.trigger("file.unlink", [le[e]]); le = t }(), A.selection.clear(), A.selection.setAfter(a), A.events.trigger("file.inserted", [a, r]), Te(e) } if (De(ke(x.get(s))) && Pe(ke(x.get(s)))) { var i = x.get(s).link, o = x.get(s).sanitize, l = x.get(s).data, c = x.get(s).$existing_img, d = x.get(s).response; c && "string" == typeof c && (c = A.$(c)), A.edit.off(), ee(A.language.translate("Loading image")), o && (i = A.helpers.sanitizeURL(i)); var f = new Image; f.onload = function () { var e, t; if (c) { A.undo.canDo() || c.hasClass("fr-uploading") || A.undo.saveStep(); var n = c.data("fr-old-src"); c.data("fr-image-pasted") && (n = null), A.$wp ? ((e = c.clone().removeData("fr-old-src").removeClass("fr-uploading").removeAttr("data-fr-image-pasted")).off("load"), n && c.attr("src", n), c.replaceWith(e)) : e = c; for (var r = e.get(0).attributes, a = 0; a < r.length; a++) { var o = r[a]; 0 === o.nodeName.indexOf("data-") && e.removeAttr(o.nodeName) } if (void 0 !== l) for (t in l) l.hasOwnProperty(t) && "link" != t && e.attr("data-".concat(t), l[t]); e.on("load", we), e.attr("src", i), A.edit.on(), A.undo.saveStep(), A.events.disableBlur(), A.$el.blur(), A.events.trigger(n ? "image.replaced" : "image.inserted", [e, d]) } else e = function s(e, t, n) { var r, a = S(document.createElement("img")).attr("src", e); if (t && void 0 !== t) for (r in t) t.hasOwnProperty(r) && "link" != r && (" data-".concat(r, '="').concat(t[r], '"'), a.attr("data-".concat(r), t[r])); var o = A.opts.imageDefaultWidth; o && "auto" != o && (o = A.opts.imageResizeWithPercent ? "100%" : "".concat(o, "px")); a.attr("style", o ? "width: ".concat(o, ";") : ""), it(a, A.opts.imageDefaultDisplay, A.opts.imageDefaultAlign), a.on("load", n), a.on("error", n), A.edit.on(), A.events.focus(!0), A.selection.restore(), A.undo.saveStep(), A.opts.imageSplitHTML ? A.markers.split() : A.markers.insert(); A.html.wrap(); var i = A.$el.find(".fr-marker"); i.length ? (i.parent().is("hr") && i.parent().after(i), A.node.isLastSibling(i) && i.parent().hasClass("fr-deletable") && i.insertAfter(i.parent()), i.replaceWith(a)) : A.$el.append(a); return a }(i, l, we), A.undo.saveStep(), A.events.disableBlur(), A.$el.blur(), A.events.trigger("image.inserted", [e, d]) }, f.onerror = function () { j(N, null, null, s), Te(e) }, f.src = i } if ((He(ke(x.get(s))) || $e(ke(x.get(s)))) && Pe(ke(x.get(s)))) if (T = s, "video/url" == ke(x.get(s))) { var p = !1; if (document.getElementById("fr-file-autoplay-button-" + s) !== undefined && (p = document.getElementById("fr-file-autoplay-button-" + s).checked), p && x.get(s) !== undefined && -1 < x.get(s).video.indexOf("iframe") && x.get(s).video.indexOf("autoplay=1") < 0) { var u = x.get(s).video.substring(x.get(s).video.indexOf("src") + 3), h = "&"; (u = (u = u.substring(u.indexOf('"') + 1)).substring(0, u.indexOf('"'))).indexOf("?") < 0 && (h = "?"), x.get(s).video = x.get(s).video.replace(u, u += h + "autoplay=1") } else !p && x.get(s).video.indexOf(!1) && (-1 < x.get(s).video.indexOf("&autoplay=1") && (x.get(s).video = x.get(s).video.replace("&autoplay=1", "")), -1 < x.get(s).video.indexOf("?autoplay=1") && (x.get(s).video = x.get(s).video.replace("?autoplay=1", ""))); A.events.focus(!0), A.selection.restore(), A.html.insert(''.concat(x.get(s).video, ""), !1, A.opts.videoSplitHTML), A.popups.hide("filesManager.insert"); var g = A.$el.find(".fr-jiv"); g.removeClass("fr-jiv"), g.toggleClass("fr-rv", A.opts.videoResponsive), function _(e, t, n) { !A.opts.htmlUntouched && A.opts.useClasses ? (e.removeClass("fr-fvl fr-fvr fr-dvb fr-dvi"), e.addClass("fr-fv".concat(n[0], " fr-dv").concat(t[0]))) : "inline" == t ? (e.css( { display: "inline-block" }), "center" == n ? e.css( { "float": "none" }) : "left" == n ? e.css( { "float": "left" }) : e.css( { "float": "right" })) : (e.css( { display: "block", clear: "both" }), "left" == n ? e.css( { textAlign: "left" }) : "right" == n ? e.css( { textAlign: "right" }) : e.css( { textAlign: "center" })) }(g, A.opts.videoDefaultDisplay, A.opts.videoDefaultAlign), g.toggleClass("fr-draggable", A.opts.videoMove), A.events.trigger("video.inserted", [g]), we.call(g) } else { var m = x.get(s).link, v = x.get(s).sanitize, b = x.get(s).data, C = x.get(s).$existing_img, E = x.get(s).response; A.edit.off(), v && (m = A.helpers.sanitizeURL(m)), function w() { var e, t; if (C) { A.undo.canDo() || C.find("video").hasClass("fr-uploading") || A.undo.saveStep(); var n = C.find("video").data("fr-old-src"), r = C.data("fr-replaced"); C.data("fr-replaced", !1), A.$wp ? ((e = C.clone(!0)).find("video").removeData("fr-old-src").removeClass("fr-uploading"), e.find("video").off("canplay"), n && C.find("video").attr("src", n), C.replaceWith(e)) : e = C; for (var a = e.find("video").get(0).attributes, o = 0; o < a.length; o++) { var i = a[o]; 0 === i.nodeName.indexOf("data-") && e.find("video").removeAttr(i.nodeName) } if (void 0 !== b) for (t in b) b.hasOwnProperty(t) && "link" != t && e.find("video").attr("data-".concat(t), b[t]); e.find("video").on("canplay", we), e.find("video").attr("src", m), A.edit.on(), Ae(), A.undo.saveStep(), A.$el.blur(), A.events.trigger(r ? "video.replaced" : "video.inserted", [e, E]) } else e = function u(e, t, n, r, a) { var o, i = ""; if (t && void 0 !== t) for (o in t) t.hasOwnProperty(o) && "link" != o && (i += " data-".concat(o, '="').concat(t[o], '"')); var s, l = A.opts.videoDefaultWidth; l && "auto" != l && (l = "".concat(l, "px")); if ($e(r)) s = S(document.createElement("span")).attr("contenteditable", "false").attr("draggable", "true").attr("class", "fr-video fr-dv" + A.opts.videoDefaultDisplay[0] + ("center" != A.opts.videoDefaultAlign ? " fr-fv" + A.opts.videoDefaultAlign[0] : "")).html('"); else { var c = "", d = document.getElementById("fr-file-autoplay-button-" + a).checked; d && (c = "autoplay"), s = S(document.createElement("span")).attr("contenteditable", "false").attr("draggable", "true").attr("class", "fr-video fr-dv" + A.opts.videoDefaultDisplay[0] + ("center" != A.opts.videoDefaultAlign ? " fr-fv" + A.opts.videoDefaultAlign[0] : "")).html('") } s.toggleClass("fr-draggable", A.opts.videoMove), A.edit.on(), A.events.focus(!0), A.selection.restore(), A.undo.saveStep(), A.opts.videoSplitHTML ? A.markers.split() : A.markers.insert(); A.html.wrap(); var f = A.$el.find(".fr-marker"); A.node.isLastSibling(f) && f.parent().hasClass("fr-deletable") && f.insertAfter(f.parent()); f.replaceWith(s); var p = ""; p = $e(r) ? "audio" : "video", s.find(p).get(0).readyState > s.find(p).get(0).HAVE_FUTURE_DATA || A.helpers.isIOS() ? n.call(s.find(p).get(0)) : (s.find(p).on("canplaythrough load", n), s.find(p).on("error", n)); return s }(m, b, we, ke(x.get(s)), s), Ae(), A.undo.saveStep(), A.events.trigger("video.inserted", [e, E]) }() } A.popups.hide("filesManager.insert"), R["delete"](s); var y = A.popups.get("filesManager.insert"); y.find("input.fr-insert-attr.fr-checkbox-file-".concat(s))[0].checked = !1, y.find(".fr-file-" + s).get(0).classList.add("fr-unchecked"), q(), document.getElementById("fr-file-autoplay-button-" + s) && (document.getElementById("fr-file-autoplay-button-" + s).checked = !1), O = O.filter(function (e) { return e != s }) } function Re(e, t) { try { if (!1 === A.events.trigger("filesManager.uploaded", [e], !0)) return A.edit.on(), !1; var n = JSON.parse(e); return n.link ? n : (j(m, e, null, t), !1) } catch (r) { return j(D, e, null, t), !1 } } function Me(e, t) { try { var n = S(e).find("Location").text(), r = S(e).find("Key").text(); return !1 === A.events.trigger("filesManager.uploadedToS3", [n, r, e], !0) ? (A.edit.on(), !1) : n } catch (a) { return j(D, e, null, t), !1 } } function Oe(e, t, n, r) { if (-1 < P.indexOf(ke(e)) || !ke(e)) return j(H, null, null, r), !1; if (!1 === A.events.trigger("filesManager.beforeUpload", [t])) return !1; if (!(null !== A.opts.filesManagerUploadURL && A.opts.filesManagerUploadURL != L || A.opts.filesManagerUploadToS3 || A.opts.filesManagerUploadToAzure)) return function C(s, l, c) { var d = new FileReader; d.onload = function () { var e = d.result; if (d.result.indexOf("svg+xml") < 0) { for (var t = atob(d.result.split(",")[1]), n = [], r = 0; r < t.length; r++) n.push(t.charCodeAt(r)); if (e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], { type: ke(l) })), De(ke(l))) { var a = { link: e, sanitize: !1, data: null, $existing_img: c, response: null, type: ke(l) }; x.set(s, a) } if (Be(ke(l))) { var o = { link: e, text: l.name, response: null, type: ke(l) }; x.set(s, o) } if (He(ke(l)) || $e(ke(l))) { var i = { link: e, sanitize: !1, data: null, $existing_img: c, type: ke(l) }; x.set(s, i) } } }, d.readAsDataURL(l) }(r, e), !1; if (De(ke(e)) && (e.name || (e.name = (new Date).getTime() + "." + (ke(e) || "image/jpeg").replace(/image\//g, ""))), e.size > A.opts.filesManagerMaxSize) return j(B, null, null, r), !1; if (A.opts.filesManagerAllowedTypes.indexOf("*") < 0 && A.opts.filesManagerAllowedTypes.indexOf(ke(e)) < 0) return j(H, null, null, r), !1; var a; if (function E(e) { isNaN(e) || (A.popups.get("filesManager.insert").find(".fr-file-item-right-" + e).get(0).innerHTML = '
    \n \n\n \n\n
    \n 0%\n
    \n
    \n
    \n
    \n
    \n
    "), w.set(e, 0)) }(r), A.drag_support.formdata && (a = A.drag_support.formdata ? new FormData : null), a) { var o; if (!1 !== A.opts.filesManagerUploadToS3) for (o in a.append("key", A.opts.filesManagerUploadToS3.keyStart + (new Date).getTime() + "-" + (e.name || "untitled")), a.append("success_action_status", "201"), a.append("X-Requested-With", "xhr"), a.append("Content-Type", ke(e)), A.opts.filesManagerUploadToS3.params) A.opts.filesManagerUploadToS3.params.hasOwnProperty(o) && a.append(o, A.opts.filesManagerUploadToS3.params[o]); for (o in A.opts.filesManagerUploadParams) A.opts.filesManagerUploadParams.hasOwnProperty(o) && a.append(o, A.opts.filesManagerUploadParams[o]); a.append(A.opts.filesManagerUploadParam, e, e.name); var i, s, l = A.opts.filesManagerUploadURL; A.opts.filesManagerUploadToS3 && (l = A.opts.filesManagerUploadToS3.uploadURL ? A.opts.filesManagerUploadToS3.uploadURL : "https://".concat(A.opts.filesManagerUploadToS3.region, ".amazonaws.com/").concat(A.opts.filesManagerUploadToS3.bucket)), A.opts.filesManagerUploadToAzure && (l = A.opts.filesManagerUploadToAzure.uploadURL ? "".concat(A.opts.filesManagerUploadToAzure.uploadURL, "/").concat(e.name) : encodeURI("https://".concat(A.opts.filesManagerUploadToAzure.account, ".blob.core.windows.net/").concat(A.opts.filesManagerUploadToAzure.container, "/").concat(e.name)), i = l, A.opts.filesManagerUploadToAzure.SASToken && (l += A.opts.filesManagerUploadToAzure.SASToken), A.opts.filesManagerUploadMethod = "PUT"); var c = A.core.getXHR(l, A.opts.filesManagerUploadMethod); if (A.opts.filesManagerUploadToAzure) { var d = (new Date).toUTCString(); if (!A.opts.filesManagerUploadToAzure.SASToken && A.opts.filesManagerUploadToAzure.accessKey) { var f = A.opts.filesManagerUploadToAzure.account, p = A.opts.filesManagerUploadToAzure.container; if (A.opts.filesManagerUploadToAzure.uploadURL) { var u = A.opts.filesManagerUploadToAzure.uploadURL.split("/"); p = u.pop(), f = u.pop().split(".")[0] } var h = "x-ms-blob-type:BlockBlob\nx-ms-date:".concat(d, "\nx-ms-version:2019-07-07"), g = encodeURI("/" + f + "/" + p + "/" + e.name), m = A.opts.filesManagerUploadMethod + "\n\n\n" + e.size + "\n\n" + ke(e) + "\n\n\n\n\n\n\n" + h + "\n" + g, v = A.cryptoJSPlugin.cryptoJS.HmacSHA256(m, A.cryptoJSPlugin.cryptoJS.enc.Base64.parse(A.opts.filesManagerUploadToAzure.accessKey)).toString(A.cryptoJSPlugin.cryptoJS.enc.Base64), b = "SharedKey " + f + ":" + v; s = v, c.setRequestHeader("Authorization", b) } for (o in c.setRequestHeader("x-ms-version", "2019-07-07"), c.setRequestHeader("x-ms-date", d), c.setRequestHeader("Content-Type", ke(e)), c.setRequestHeader("x-ms-blob-type", "BlockBlob"), A.opts.filesManagerUploadParams) A.opts.filesManagerUploadParams.hasOwnProperty(o) && c.setRequestHeader(o, A.opts.filesManagerUploadParams[o]); for (o in A.opts.filesManagerUploadToAzure.params) A.opts.filesManagerUploadToAzure.params.hasOwnProperty(o) && c.setRequestHeader(o, A.opts.filesManagerUploadToAzure.params[o]) } c.onload = function () { Be(ke(e)) ? function h(e, t, n, r, a) { var o = this.status, i = this.response, s = this.responseXML, l = this.responseText; try { if (A.opts.filesManagerUploadToS3 || A.opts.filesManagerUploadToAzure) if (201 === o) { var c; if (A.opts.filesManagerUploadToAzure) { if (!1 === A.events.trigger("filesManager.uploadedToAzure", [this.responseURL, a, i], !0)) return A.edit.on(), !1; c = r } else c = Me(s, t); if (c) { var d = { link: c, text: e, response: i, type: n }; x.set(t, d) } } else j(D, i || s, null, t); else if (200 <= o && o < 300) { var f = Re(l, t); if (f) { var p = { link: f.link, text: e, response: i, type: n }; x.set(t, p) } } else j(I, i || l, null, t) } catch (u) { j(D, i || l, null, t) } }.call(c, e.name, r, ke(e), i, s) : function g(e, t, n, r, a) { var o = this.status, i = this.response, s = this.responseXML, l = this.responseText; try { if (A.opts.filesManagerUploadToS3 || A.opts.filesManagerUploadToAzure) if (201 == o) { var c; if (A.opts.filesManagerUploadToAzure) { if (!1 === A.events.trigger("filesManager.uploadedToAzure", [this.responseURL, a, i], !0)) return A.edit.on(), !1; c = r } else c = Me(s, t); if (c) { var d = { link: c, sanitize: !1, data: [], $existing_img: e, response: i || s, type: n }; x.set(t, d) } } else j(D, i || s, e, t); else if (200 <= o && o < 300) { var f = Re(l, t); if (f) { var p = { link: f.link, sanitize: !1, data: f, $existing_img: e, response: i || s, type: n }; x.set(t, p) } } else j(I, i || l, e, t) } catch (u) { j(D, i || l, e, t) } }.call(c, y, r, ke(e), i, s), M.has(r) || Ee(100, r, !0) }, c.onerror = function () { j(D, this.response || this.responseText || this.responseXML, null, r) }, c.upload.onprogress = function (e) { ! function n(e, t) { e.lengthComputable && Ee(e.loaded / e.total * 100 | 0, t, !1) }(e, r) }, c.onabort = function (e) { ! function n(e, t) { j($, t, y, e) }(r, e) }, c.send(A.opts.filesManagerUploadToAzure ? e : a), _.set(r, c) } } function Ne(l) { A.events.$on(l, "click", ".fr-upload-progress-layer", function (e) { if (A.helpers.isMobile()) return e.stopPropagation(), !1 }, !0), A.events.$on(l, "dragover dragenter", ".fr-upload-progress-layer", function (e) { e.preventDefault(); for (var t = 0; t < e.originalEvent.dataTransfer.types.length; t++) "Files" == e.originalEvent.dataTransfer.types[t] && (e.originalEvent.dataTransfer.dropEffect = "none"); return !1 }, !0), A.events.$on(l, "dragleave dragend", ".fr-upload-progress-layer", function (e) { return e.preventDefault(), !1 }, !0), A.events.$on(l, "dragover dragenter", ".fr-files-upload-layer", function (e) { return S(this).addClass("fr-drop"), (A.browser.msie || A.browser.edge) && e.preventDefault(), !1 }, !0), A.events.$on(l, "dragleave dragend", ".fr-files-upload-layer", function (e) { return S(this).removeClass("fr-drop"), (A.browser.msie || A.browser.edge) && e.preventDefault(), !1 }, !0), A.events.$on(l, "click", ".fr-insert-checkbox", function (e) { if (this.classList.contains("fr-checkbox-disabled")) return this.children.target.disabled = !0, void(this.children.target.checked = !1); var t = parseInt(this.id.split("-").pop()); R.set(t, this.children.target.checked); for (var n = l.find('.fr-command[data-cmd="insertAll"]'), r = l.find('.fr-command[data-cmd="deleteAll"]'), a = l.find('input.fr-file-insert-check[type="checkbox"]'), o = a.length, i = !0, s = 0; s < o; s++) 1 == a[s].checked && (i = !1); if (i ? n.addClass("fr-disabled") : n.removeClass("fr-disabled"), i ? r.addClass("fr-disabled") : r.removeClass("fr-disabled"), this.children.target.checked) l.find(".fr-file-" + this.id.split("-").pop()).get(0).setAttribute("draggable", "true"), l.find(".fr-file-" + this.id.split("-").pop()).get(0).classList.remove("fr-unchecked"); else { this.id.split("-").pop(); l.find(".fr-file-" + this.id.split("-").pop()).get(0).setAttribute("draggable", "false"), l.find(".fr-file-" + this.id.split("-").pop()).get(0).classList.add("fr-unchecked") } }), A.events.$on(l, "click", ".fr-file-insert-button", function (e) { this.classList.contains("fr-disabled") || xe(parseInt(this.id.split("-").pop())) }), A.events.$on(l, "click", ".fr-file-autoplay-button", function (e) { if (this.parentNode.classList.contains("fr-checkbox-disabled")) return this.disabled = !0, void(this.checked = !1); Ie(parseInt(this.id.split("-").pop())) }), A.events.$on(l, "click", ".fr-file-edit-button", function (e) { var t = parseInt(this.id.split("-").pop()); l.find(".fr-file-edit-button-".concat(t)).hasClass("fr-disabled") || Se(t) }), A.events.$on(l, "click", ".fr-file-view-button", function (e) { var t = parseInt(this.id.split("-").pop()); l.find(".fr-file-view-button-".concat(t)).hasClass("fr-disabled") || function v(e) { if (!Pe(ke(x.get(e)))) { var t = x.get(e).link, n = x.get(e).link; if (k.get(e) && k.get(e).name ? n = k.get(e).name : x.get(e).text && (n = x.get(e).text), 0 === t.indexOf("blob:") && A.browser.msie && window.navigator && window.navigator.msSaveBlob) window.navigator.msSaveBlob(k.get(e), n); else { var r = document.createElement("a"); r.href = t, r.download = n, r.click() } return !1 } var a = A.popups.get("filesManager.insert"); if (0 < a.find(".fr-file-view-image-" + e).length) a.find(".fr-file-view-image-" + e)[0].remove(); else { for (var o = a.find(".fr-file-view"), i = 0; i < o.length; i++) o.get(i).remove(); var s = a.find(".fr-file-view-" + e); if (De(ke(x.get(e)))) { var l = '
    \n
    \n
    ×
    \n \n
    \n
    "; s[0].innerHTML = l + s[0].innerHTML } else if (He(ke(x.get(e)))) { var c; if (x.get(e).hasOwnProperty("video")) { var d = x.get(e).video.substring(x.get(e).video.indexOf("src") + 3), f = d.substring(d.indexOf('"') + 1); f = f.substring(0, f.indexOf('"')), c = '
    \n
    \n
    ×
    \n \n
    \n
    ') } else c = '
    \n
    \n
    ×
    \n \n
    \n
    "; s[0].innerHTML = c + s[0].innerHTML } else if ($e(ke(x.get(e)))) { var p = '
    \n
    \n
    ×
    \n \n
    \n
    '); s[0].innerHTML = p + s[0].innerHTML } else if (Be(ke(x.get(e)))) { var u = x.get(e).link, h = x.get(e).text; if (u.endsWith(".pdf") || u.endsWith(".txt")) { var g = '
    \t\n
    \t\n
    ×
    \t\n \t\n
    \t\n
    '); s[0].innerHTML = g + s[0].innerHTML } else if (0 === u.indexOf("blob:") && A.browser.msie && window.navigator && window.navigator.msSaveBlob) window.navigator.msSaveBlob(k.get(e), h); else { var m = document.createElement("a"); m.href = u, m.download = h, m.click() } } } }(t) }), A.events.$on(l, "click", ".fr-file-delete-button", function (e) { Z(parseInt(this.id.split("-").pop())) }), A.events.$on(l, "click", ".fr-file-cancel-upload-button", function (e) { ! function n(e) { var t = A.popups.get("filesManager.insert"); t.find(".fr-file-item-right-" + e).get(0).innerHTML = Ce(e), _.get(e).abort(), ye(e, 100, !0), t.find(".fr-checkbox-file-" + e).get(0).disabled = !0 }(parseInt(this.id.split("-").pop())) }), A.events.$on(l, "click", ".fr-upload-delete-button", function (e) { ! function t(e) { 0 != _.get(e).readyState && (_.get(e).abort(), ye(e, 100, !0), _["delete"](e)), Z(e) }(parseInt(this.id.split("-").pop())) }), A.events.$on(l, "click", ".fr-file-view-close", function (e) { l.find(".fr-file-view-modal").get(0).outerHTML = "" }), A.events.$on(l, "click", ".fr-plugins-enable", function (e) { ! function t() { g.forEach(function (e) { A.opts.pluginsEnabled.indexOf(e) < 0 && A.opts.pluginsEnabled.push(e) }) }(), function n(e) { for (var t in e) if (!A[t]) { if (kt.PLUGINS[t] && A.opts.pluginsEnabled.indexOf(t) < 0) continue; A[t] = new e[t](A), A[t]._init && A[t]._init() } }(kt.PLUGINS), A.popups.get("filesManager.insert").get(0).outerHTML = "", Fe(), C(!0) }), A.events.$on(l, "click", ".fr-plugins-cancel", function (e) { A.popups.hide("filesManager.insert") }), A.events.$on(l, "drop", ".fr-upload-progress", function (e) { e.preventDefault(), e.stopPropagation() }), A.events.$on(l, "drop", ".fr-files-upload-layer", function (e) { e.preventDefault(), e.stopPropagation(), S(this).removeClass("fr-drop"); var t = e.originalEvent.dataTransfer; if (t && t.files) { var n = l.data("instance") || A; n.events.disableBlur(); for (var r = [], a = 0; a < t.files.length; a++) { var o = h; k.set(o, t.files[a]), me(o), R.set(o, !1), r.push(o), h++ } for (var i = 0; i < r.length; i++) n.filesManager.upload(k.get(r[i]), t.files, y, r[i]); n.events.enableBlur() } }, !0), A.helpers.isIOS() && A.events.$on(l, "touchstart", '.fr-files-upload-layer input[type="file"]', function () { S(this).trigger("click") }, !0), A.events.$on(l, "change", '.fr-files-upload-layer input[type="file"]', function () { if (this.files) { var e = l.data("instance") || A; e.events.disableBlur(), l.find("input:focus").blur(), e.events.enableBlur(); var t = []; if ("undefined" != typeof this.files && 0 < this.files.length) { for (var n = 0; n < this.files.length; n++) { var r = h; k.set(r, this.files[n]), me(r), R.set(r, !1), ++h, t.push(r) } for (var a = 0; a < t.length; a++) e.filesManager.upload(k.get(t[a]), this.files, y, t[a]) } } S(this).val("") }, !0) } function Ie(t) { document.getElementById("fr-file-autoplay-button-" + t).checked ? O.push(t) : O = O.filter(function (e) { return e != t }) } function De(e) { return e && "image" === e.split("/")[0] } function Be(e) { return e && "image" != e.split("/")[0] && e && "video" != e.split("/")[0] && e && "audio" != e.split("/")[0] } function He(e) { return e && "video" === e.split("/")[0] } function $e(e) { return e && "audio" === e.split("/")[0] } function Pe(e) { if ("audio/ogg" == e || "video/ogg" == e || "image/webp" == e || "video/webm" == e) { if (A.browser.msie || A.browser.edge || A.browser.safari) return !1; if (A.helpers.isMobile()) { if ("audio/ogg" == e || "video/ogg" == e) return !1; if (!A.helpers.isAndroid() && !A.browser.chrome) return !1 } } return !0 } function Fe(e) { if (e) return A.popups.onRefresh("filesManager.insert", b), A.popups.onHide("filesManager.insert", F), !0; var t, n, r = ""; A.opts.imageUpload || -1 === A.opts.filesInsertButtons.indexOf("filesUpload") || A.opts.imageInsertButtons.splice(A.opts.filesInsertButtons.indexOf("filesUpload"), 1); var a = A.button.buildList(A.opts.filesInsertButtons), o = A.button.buildList(A.opts.filesInsertButtons2); "" !== a && (r = '
    '.concat(a, '').concat(o, "
    ")); var i = A.opts.filesInsertButtons.indexOf("filesUpload"), s = A.opts.filesInsertButtons.indexOf("filesByURL"), l = A.opts.filesInsertButtons.indexOf("filesEmbed"), c = ""; 0 <= i && (t = " fr-active", 0 <= s && s < i && (t = ""), c = '
    Drag & Drop One or More Files
    OR
    Click Browse Files
    ')); var d = ""; 0 <= l && (t = " fr-active", (i < l && 0 <= i || s < l && 0 <= s) && (t = ""), d = '
    ")); var f = ""; 0 <= s && (t = " fr-active", 0 <= i && i < s && (t = ""), f = '
    ")); var p = { buttons: r, upload_layer: c, by_url_layer: f, embed_layer: d, upload_progress_layer: "
    "), progress_bar: '

    Uploading

    ' }; return 1 <= A.opts.imageInsertButtons.length && (n = A.popups.create("filesManager.insert", p)), A.$wp && A.events.$on(A.$wp, "scroll", function () { y && A.popups.isVisible("filesManager.insert") && replace() }), Ne(n), A.popups.setPopupDimensions(n), n } function Ue(e) { var t = e.split("/").pop(); if (t.split(".").length < 2) { var n = new Date; return t + "-" + n.getDate() + "/" + (n.getMonth() + 1) + "/" + n.getFullYear() } return t } function ze() { y && A.popups.get("image.alt").find("input").val(y.attr("alt") || "").trigger("change") } function Ke() { var e = A.popups.get("image.alt"); e || (e = Ve()), J(), A.popups.refresh("image.alt"), A.popups.setContainer("image.alt", A.$sc); var t = lt(); ct() && (t = t.find(".fr-img-wrap")); var n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.outerHeight(); A.popups.show("image.alt", n, r, t.outerHeight(), !0) } function Ve(e) { if (e) return A.popups.onRefresh("image.alt", ze), !0; var t = { buttons: '
    '.concat(A.button.buildList(A.opts.imageAltButtons), "
    "), alt_layer: '
    ") }, n = A.popups.create("image.alt", t); return A.$wp && A.events.$on(A.$wp, "scroll.image-alt", function () { y && A.popups.isVisible("image.alt") && Ke() }), n } function We() { var e = A.popups.get("image.size"); if (y) if (ct()) { var t = y.parent(); t.get(0).style.width || (t = y.parent().parent()), e.find('input[name="width"]').val(t.get(0).style.width).trigger("change"), e.find('input[name="height"]').val(t.get(0).style.height).trigger("change") } else e.find('input[name="width"]').val(y.get(0).style.width).trigger("change"), e.find('input[name="height"]').val(y.get(0).style.height).trigger("change") } function Ge() { var e = A.popups.get("image.size"); e || (e = Ye()), J(), A.popups.refresh("image.size"), A.popups.setContainer("image.size", A.$sc); var t = lt(); ct() && (t = t.find(".fr-img-wrap")); var n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.outerHeight(); A.popups.show("image.size", n, r, t.outerHeight(), !0) } function Ye(e) { if (e) return A.popups.onRefresh("image.size", We), !0; var t = { buttons: '
    '.concat(A.button.buildList(A.opts.imageSizeButtons), "
    "), size_layer: '
    ") }, n = A.popups.create("image.size", t); return A.$wp && A.events.$on(A.$wp, "scroll.image-size", function () { y && A.popups.isVisible("image.size") && Ge() }), n } function je(e, t, n, r) { return e.pageX = t, V.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), W.call(this, e), G.call(this, e), ++r } function qe(e) { (e = e || lt()) && !1 !== A.events.trigger("image.beforeRemove", [e]) && (A.popups.hideAll(), nt(!0), A.undo.canDo() || A.undo.saveStep(), e.get(0) == A.el ? e.removeAttr("src") : (e.get(0).parentNode && "A" == e.get(0).parentNode.tagName ? (A.selection.setBefore(e.get(0).parentNode) || A.selection.setAfter(e.get(0).parentNode) || e.parent().after(kt.MARKERS), S(e.get(0).parentNode).remove()) : (A.selection.setBefore(e.get(0)) || A.selection.setAfter(e.get(0)) || e.after(kt.MARKERS), e.remove()), A.html.fillEmptyBlocks(), A.selection.restore()), A.undo.saveStep()) } function Ze(e) { var t = e.which; if (y && (t == kt.KEYCODE.BACKSPACE || t == kt.KEYCODE.DELETE)) return e.preventDefault(), e.stopPropagation(), qe(), !1; if (y && t == kt.KEYCODE.ESC) { var n = y; return nt(!0), A.selection.setAfter(n.get(0)), A.selection.restore(), e.preventDefault(), !1 } if (!y || t != kt.KEYCODE.ARROW_LEFT && t != kt.KEYCODE.ARROW_RIGHT) return y && t === kt.KEYCODE.TAB ? (e.preventDefault(), e.stopPropagation(), nt(!0), !1) : y && t != kt.KEYCODE.F10 && !A.keys.isBrowserAction(e) ? (e.preventDefault(), e.stopPropagation(), !1) : void 0; var r = y.get(0); return nt(!0), t == kt.KEYCODE.ARROW_LEFT ? A.selection.setBefore(r) : A.selection.setAfter(r), A.selection.restore(), e.preventDefault(), !1 } function Xe(e) { if (e && "IMG" == e.tagName) { if (A.node.hasClass(e, "fr-uploading") || A.node.hasClass(e, "fr-error") ? e.parentNode.removeChild(e) : A.node.hasClass(e, "fr-draggable") && e.classList.remove("fr-draggable"), e.parentNode && e.parentNode.parentNode && A.node.hasClass(e.parentNode.parentNode, "fr-img-caption")) { var t = e.parentNode.parentNode; t.removeAttribute("contenteditable"), t.removeAttribute("draggable"), t.classList.remove("fr-draggable"); var n = e.nextSibling; n && n.removeAttribute("contenteditable") } } else if (e && e.nodeType == Node.ELEMENT_NODE) for (var r = e.querySelectorAll("img.fr-uploading, img.fr-error, img.fr-draggable"), a = 0; a < r.length; a++) Xe(r[a]) } function Qe(e) { var t = e.target.result, n = A.opts.imageDefaultWidth; n && "auto" != n && (n += A.opts.imageResizeWithPercent ? "%" : "px"), A.undo.saveStep(), A.html.insert('")); var r = A.$el.find('img[data-fr-image-pasted="true"]'); r && it(r, A.opts.imageDefaultDisplay, A.opts.imageDefaultAlign), A.events.trigger("paste.after") } function Je(e, t) { var n = new FileReader; n.onload = function r(e) { var t = A.opts.imageDefaultWidth; t && "auto" != t && (t += A.opts.imageResizeWithPercent ? "%" : "px"), A.html.insert('")); var n = A.$el.find('img[data-fr-image-pasted="true"]'); n && it(n, A.opts.imageDefaultDisplay, A.opts.imageDefaultAlign), A.events.trigger("paste.after") }(t), n.readAsDataURL(e, t) } function et(e) { if (e && e.clipboardData && e.clipboardData.items) { var t = (e.clipboardData || window.clipboardData).getData("text/html") || "", n = (new DOMParser).parseFromString(t, "text/html").querySelector("img"); if (n) { if (!n) return !1; var r = n.src, a = null; if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, "text/rtf") || e.clipboardData.getData("text/rtf")) a = e.clipboardData.items[0].getAsFile(); else for (var o = 0; o < e.clipboardData.items.length && !(a = e.clipboardData.items[o].getAsFile()); o++); if (a) return Je(a, r), !1 } else { var i = null; if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, "text/rtf") || e.clipboardData.getData("text/rtf")) i = e.clipboardData.items[0].getAsFile(); else for (var s = 0; s < e.clipboardData.items.length && !(i = e.clipboardData.items[s].getAsFile()); s++); if (i) return function l(e) { var t = new FileReader; t.onload = Qe, t.readAsDataURL(e) }(i), !1 } } } function tt(e) { return e = e.replace(/") : S(A.node.blockParent(e.get(0))).after("<".concat(A.html.defaultTag(), ">
    "))) }) })(), "IMG" == A.el.tagName && A.$el.addClass("fr-view"), A.helpers.isMobile() && (A.events.$on(A.$el, "touchstart", "IMG" == A.el.tagName ? null : 'img:not([contenteditable="false"])', function () { de = !1 }), A.events.$on(A.$el, "touchmove", function () { de = !0 })), A.$wp ? (A.events.on("window.keydown keydown", Ze, !0), A.events.on("keyup", function (e) { if (y && e.which == kt.KEYCODE.ENTER) return !1 }, !0), A.events.$on(A.$el, "keydown", function () { var e = A.selection.element(); (e.nodeType === Node.TEXT_NODE || "BR" == e.tagName && A.node.isLastSibling(e)) && (e = e.parentNode), A.node.hasClass(e, "fr-inner") || (A.node.hasClass(e, "fr-img-caption") || (e = S(e).parents(".fr-img-caption").get(0)), A.node.hasClass(e, "fr-img-caption") && (A.opts.trackChangesEnabled || S(e).after(kt.INVISIBLE_SPACE + kt.MARKERS), A.selection.restore())) })) : A.events.$on(A.$win, "keydown", Ze), A.events.on("toolbar.esc", function () { if (y) { if (A.$wp) A.events.disableBlur(), A.events.focus(); else { var e = y; nt(!0), A.selection.setAfter(e.get(0)), A.selection.restore() } return !1 } }, !0), A.events.on("toolbar.focusEditor", function () { if (y) return !1 }, !0), A.events.on("window.cut window.copy", function (e) { if (y && A.popups.isVisible("image.edit") && !A.popups.get("image.edit").find(":focus").length) { var t = lt(); ct() ? (t.before(kt.START_MARKER), t.after(kt.END_MARKER), A.selection.restore(), A.paste.saveCopiedText(t.get(0).outerHTML, t.text())) : A.paste.saveCopiedText(y.get(0).outerHTML, y.attr("alt")), "copy" == e.type ? setTimeout(function () { _e(y) }) : (nt(!0), A.undo.saveStep(), setTimeout(function () { A.undo.saveStep() }, 0)) } }, !0), A.browser.msie && A.events.on("keydown", function (e) { if (!A.selection.isCollapsed() || !y) return !0; var t = e.which; t == kt.KEYCODE.C && A.keys.ctrlKey(e) ? A.events.trigger("window.copy") : t == kt.KEYCODE.X && A.keys.ctrlKey(e) && A.events.trigger("window.cut") }), A.events.$on(S(A.o_win), "keydown", function (e) { var t = e.which; if (y && t == kt.KEYCODE.BACKSPACE) return e.preventDefault(), !1 }), A.events.$on(A.$win, "keydown", function (e) { var t = e.which; y && y.hasClass("fr-uploading") && t == kt.KEYCODE.ESC && y.trigger("abortUpload") }), A.events.on("destroy", function () { y && y.hasClass("fr-uploading") && y.trigger("abortUpload") }), A.events.on("paste.before", et), A.events.on("paste.beforeCleanup", tt), A.events.on("html.processGet", Xe), A.opts.imageOutputSize && A.events.on("html.beforeGet", function () { r = A.el.querySelectorAll("img"); for (var e = 0; e < r.length; e++) { var t = r[e].style.width || S(r[e]).width(), n = r[e].style.height || S(r[e]).height(); t && r[e].setAttribute("width", "".concat(t).replace(/px/, "")), n && r[e].setAttribute("height", "".concat(n).replace(/px/, "")) } }), A.opts.iframe && A.events.on("image.loaded", A.size.syncIframe), A.events.$on(S(A.o_win), "orientationchange.image", function () { setTimeout(function () { y && _e(y) }, 100) }), function a(e) { if (e) return A.$wp && A.events.$on(A.$wp, "scroll.image-edit", function () { y && A.popups.isVisible("image.edit") && A.events.disableBlur() }), !0; var t = ""; if (0 < A.opts.imageEditButtons.length) { var n = { buttons: t += '
    \n '.concat(A.button.buildList(A.opts.imageEditButtons), "\n
    ") }; return A.popups.create("image.edit", n) } return !1 }(!0), Fe(!0), Ye(!0), Ve(!0), A.events.on("node.remove", function (e) { if ("IMG" == e.get(0).tagName) return qe(e), !1 }), A.events.on("popups.hide.filesManager.insert", function (e) { A.filesManager.minimizePopup(T) }) }, showInsertPopup: C, showLayer: function ft(e) { var t, n, r = A.popups.get("filesManager.insert"); if (y || A.opts.toolbarInline) { if (y) { var a = lt(); ct() && (a = a.find(".fr-img-wrap")), n = a.offset().top + a.outerHeight(), t = a.offset().left } } else { var o = A.$tb.find('.fr-command[data-cmd="insertFiles"]'); t = o.offset().left, n = o.offset().top + (A.opts.toolbarBottom ? 10 : o.outerHeight() - 10) }!y && A.opts.toolbarInline && (n = r.offset().top - A.helpers.getPX(r.css("margin-top")), r.hasClass("fr-above") && (n += r.outerHeight())), r.find(".fr-layer").removeClass("fr-active"), r.find(".fr-".concat(e, "-layer")).addClass("fr-active"), r.find(".fr-upload-progress-layer").addClass("fr-active"), A.popups.show("filesManager.insert", t, n, y ? y.outerHeight() : 0), A.accessibility.focusPopup(r) }, refreshUploadButton: function pt(e) { var t = A.popups.get("filesManager.insert"); t && t.find(".fr-files-upload-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, refreshByURLButton: function ut(e) { var t = A.popups.get("filesManager.insert"); t && t.find(".fr-files-by-url-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, upload: Oe, insertByURL: function ht() { for (var e, t = A.popups.get("filesManager.insert").find(".fr-files-by-url-layer input"), n = t.val().trim().split(/[ ,]+/), r = [], a = 0, o = 0; o < n.length; o++) e = n[o], new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$", "i").test(e) && (r[a] = n[o], a++); if (0 != r.length) { if (0 < t.val().trim().length && 0 < r.length) { var s = [], l = [], c = h, d = r.length; r.forEach(function (e, n) { if (0 == e.trim().length) h == c + --d && Le(s, l); else { J(), Q(), ee(A.language.translate("Loading file(s)")); var r = e.trim(), t = function i(e) { if (void 0 === e) return e; var t = null; if (/^http/.test(e) || (e = "https://".concat(e)), A.helpers.isURL(e)) for (var n = 0; n < kt.VIDEO_PROVIDERS.length; n++) { var r = kt.VIDEO_PROVIDERS[n]; if (r.test_regex.test(e) && new RegExp(A.opts.videoAllowedProviders.join("|")).test(r.provider)) { t = e.replace(r.url_regex, r.url_text), t = r.html.replace(/\{url\}/, t); break } } return t }(r); if (t) { var a = { link: r, name: r, type: "video/url", size: 2, video: t }; k.set(c + n, a), me(c + n), J(), Q(), ee(A.language.translate("Loading file(s)")), x.set(c + n, a), ++h == c + d && Le(s, l) } else { var o = new XMLHttpRequest; o.onload = function () { if (200 == this.status) { var e = new Blob([this.response], { type: this.response.type || "" }); e.name = Ue(r), e.link = r, De(this.response.type) ? (e.sanitize = !0, e.existing_image = y) : Be(this.response.type) && (e.text = Ue(r)), s.push(e), l.push(c + n), k.set(c + n, e), me(c + n), (-1 < P.indexOf(ke(e)) || !ke(e)) && j(H, null, null, c + n) } else { var t = new Blob([this.response], { type: this.response.type || " " }); t.name = Ue(r), t.link = r, k.set(c + n, t), me(c + n), j(N, this.response, y, c + n) } J(), Q(), ee(A.language.translate("Loading file(s)")), ++h == c + d && Le(s, l) }, o.onerror = function () { var e = { link: r, name: Ue(r), size: 0, type: "" }; j(9, this.response, y, c + n); var t = h; k.set(t, e), me(t), J(), Q(), ee(A.language.translate("Loading file(s)")), ++h == c + d && Le(s, l) }, o.open("GET", "".concat(A.opts.imageCORSProxy, "/").concat(r), !0), o.responseType = "blob", o.send() } } }), t.val(""), t.blur() } } else te(A.language.translate("Url entered is invalid. Please try again.")) }, insertAllFiles: function gt() { a = []; var e = A.popups.get("filesManager.insert"); u = -1, f = null, e.find(".fr-insert-checkbox").toArray().forEach(function r(e, t, n) { e.children.target.checked && (a.push(parseInt(e.id.split("-").pop())), De(x.get(parseInt(e.id.split("-").pop())).type) && -1 == u && (u = t)) }), Te(a), q() }, deleteAllFiles: function e() { A.popups.get("filesManager.insert").find(".fr-insert-checkbox").toArray().forEach(function a(e, t, n) { if (e.children.target.checked) { var r = parseInt(e.id.split("-").pop()); _.has(r) && _["delete"](r), Z(r) } }), q() }, get: st, getEl: lt, insert: xe, showProgressBar: Q, remove: qe, hideProgressBar: J, applyStyle: function mt(e, t, n) { if (void 0 === t && (t = A.opts.imageStyles), void 0 === n && (n = A.opts.imageMultipleStyles), !y) return !1; var r = lt(); if (!n) { var a = Object.keys(t); a.splice(a.indexOf(e), 1), r.removeClass(a.join(" ")) } "object" == St(t[e]) ? (r.removeAttr("style"), r.css(t[e].style)) : r.toggleClass(e), _e(y) }, showAltPopup: Ke, showSizePopup: Ge, setAlt: function vt(e) { if (y) { var t = A.popups.get("image.alt"); y.attr("alt", e || t.find("input").val() || ""), t.find("input:focus").blur(), _e(y) } }, setSize: function bt(e, t) { if (y) { var n = A.popups.get("image.size"); e = e || n.find('input[name="width"]').val() || "", t = t || n.find('input[name="height"]').val() || ""; var r = /^[\d]+((px)|%)*$/g; y.removeAttr("width").removeAttr("height"), e.match(r) ? y.css("width", e) : y.css("width", ""), t.match(r) ? y.css("height", t) : y.css("height", ""), ct() && (y.parents(".fr-img-caption").removeAttr("width").removeAttr("height"), e.match(r) ? y.parents(".fr-img-caption").css("width", e) : y.parents(".fr-img-caption").css("width", ""), t.match(r) ? y.parents(".fr-img-caption").css("height", t) : y.parents(".fr-img-caption").css("height", "")), n && n.find("input:focus").blur(), _e(y) } }, toggleCaption: function Ct() { var e; if (y && !ct()) { (e = y).parent().is("a") && (e = y.parent()); var t, n, r = y.parents("ul") && 0 < y.parents("ul").length ? y.parents("ul") : y.parents("ol") && 0 < y.parents("ol").length ? y.parents("ol") : []; if (0 < r.length) { var a = r.find("li").length, o = y.parents("li"), i = document.createElement("li"); a - 1 === o.index() && (r.append(i), i.innerHTML = " ") } e.attr("style") && (n = -1 < (t = e.attr("style").split(":")).indexOf("width") ? t[t.indexOf("width") + 1].replace(";", "") : ""); var s = A.opts.imageResizeWithPercent ? (-1 < n.indexOf("px") ? null : n) || "100%" : y.width() + "px"; e.wrap('

     

    '), e.wrap(''), y.after('").concat(kt.START_MARKER).concat(A.language.translate("Image Caption")).concat(kt.END_MARKER, "")), y.removeAttr("class").removeAttr("style").removeAttr("width"), y.parents(".fr-img-caption").css("width", s), nt(!0), A.selection.restore() } else e = lt(), y.insertAfter(e), y.attr("class", e.attr("class").replace("fr-img-caption", "")).attr("style", e.attr("style")), e.remove(), _e(y) }, refreshEmbedButton: function Et(e) { var t = A.popups.get("filesManager.insert"); t && t.find(".fr-files-embed-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, insertEmbed: function yt(e) { void 0 === e && (e = A.popups.get("filesManager.insert").find(".fr-files-embed-layer textarea").val() || ""), 0 === e.length || !kt.VIDEO_EMBED_REGEX.test(e) && !kt.IMAGE_EMBED_REGEX.test(e) ? (te(A.language.translate("Something went wrong. Please try again.")), kt.VIDEO_EMBED_REGEX.test(e) && A.events.trigger("video.codeError", [e])) : function s(e, t) { var n, r; kt.VIDEO_EMBED_REGEX.test(e) ? (n = "video", r = A.opts.videoSplitHTML) : kt.IMAGE_EMBED_REGEX.test(e) && (n = "image", r = A.opts.imageSplitHTML), A.events.focus(!0), A.selection.restore(); var a = !1; y && (qe(), a = !0), A.html.insert('').concat(e, ""), !1, r), A.popups.hide("filesManager.insert"); var o = A.$el.find(".fr-jiv"); o.removeClass("fr-jiv"), "video" == n && (o.toggleClass("fr-rv", A.opts.videoResponsive), function i(e, t, n) { !A.opts.htmlUntouched && A.opts.useClasses ? (e.removeClass("fr-fvl fr-fvr fr-dvb fr-dvi"), e.addClass("fr-fv".concat(n[0], " fr-dv").concat(t[0]))) : "inline" == t ? (e.css( { display: "inline-block" }), "center" == n ? e.css( { "float": "none" }) : "left" == n ? e.css( { "float": "left" }) : e.css( { "float": "right" })) : (e.css( { display: "block", clear: "both" }), "left" == n ? e.css( { textAlign: "left" }) : "right" == n ? e.css( { textAlign: "right" }) : e.css( { textAlign: "center" })) }(o, A.opts.videoDefaultDisplay, A.opts.videoDefaultAlign), o.toggleClass("fr-draggable", A.opts.videoMove), A.events.trigger(a ? "video.replaced" : "video.inserted", [o])), "image" == n && (it(o, A.opts.imageDefaultDisplay, A.opts.imageDefaultAlign), o.find("img").removeClass("fr-dii"), o.find("img").addClass("fr-dib"), o.toggleClass("fr-draggable", A.opts.imageMove), A.events.trigger(a ? "image.replaced" : "image.inserted", [o])), t && (f = o, A.selection.clear(), A.toolbar.disable(), A.video._editVideo(f)) }(e) }, hasCaption: ct, exitEdit: nt, edit: _e, cancelFileInsert: function Lt() { this.file_manager_dialog_open = !1, _.forEach(function (e, t) { 4 != e.readyState && (e.abort(), Z(t)) }); var e = A.popups.get("filesManager.insert"); e.find(".fr-progress-bar").removeClass("fr-display-block").addClass("fr-none"), e.find('.fr-command[data-cmd="filesUpload"]').removeClass("fr-disabled"), e.find('.fr-command[data-cmd="filesByURL"]').removeClass("fr-disabled"), e.find('.fr-command[data-cmd="filesEmbed"]').removeClass("fr-disabled"), o = 0, _ = new Map, w = new Map, X(), A.popups.hide("filesManager.insert") }, minimizePopup: function _t(e) { this.file_manager_dialog_open = !1, A.popups.hide("filesManager.insert"), X() }, editImage: Se, saveImage: function wt(e) { var t = x.get(i); t.link = window.URL.createObjectURL(new Blob(e, { type: "image/png" })), x.set(i, t) }, _showErrorMessage: te, _showFileErrorMessage: ne, getFileThumbnail: be, deleteFile: Z, checkAutoplay: Ie, checkInsertAllState: q, _disableInsertCheckbox: Y, _getFileType: ke, isChildWindowOpen: function At() { return p }, setChildWindowState: function Tt(e) { e !== undefined && (p = e) }, resetAllFilesCheckbox: X } }, kt.DefineIcon("insertFiles", { NAME: "image", SVG_KEY: "fileManager" }), kt.RegisterShortcut(kt.KEYCODE.P, "insertFiles", null, "P"), kt.RegisterCommand("insertFiles", { title: "Insert Files", undo: !1, focus: !0, refreshAfterCallback: !1, popup: !0, callback: function () { this.popups.isVisible("filesManager.insert") ? (this.$el.find(".fr-marker").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("filesManager.insert")) : this.filesManager.showInsertPopup() }, plugin: "filesManager" }), kt.DefineIcon("cloudIcon", { NAME: "cloudIcon", SVG_KEY: "uploadFiles" }), kt.DefineIcon("filesUpload", { NAME: "uploadFiles", SVG_KEY: "uploadFiles" }), kt.RegisterCommand("filesUpload", { title: "Upload Files", undo: !1, focus: !1, toggle: !0, callback: function () { this.filesManager.showLayer("files-upload") }, refresh: function (e) { this.filesManager.refreshUploadButton(e) } }), kt.DefineIcon("filesByURL", { NAME: "link", SVG_KEY: "insertLink" }), kt.RegisterCommand("filesByURL", { title: "By URL", undo: !1, focus: !1, toggle: !0, callback: function () { this.filesManager.showLayer("files-by-url") }, refresh: function (e) { this.filesManager.refreshByURLButton(e) } }), kt.DefineIcon("filesEmbed", { NAME: "code", SVG_KEY: "codeView" }), kt.RegisterCommand("filesEmbed", { title: "Embedded Code", undo: !1, focus: !1, toggle: !0, callback: function () { this.filesManager.showLayer("files-embed") }, refresh: function (e) { this.filesManager.refreshEmbedButton(e) } }), kt.DefineIcon("insertAll", { NAME: "insertAll", SVG_KEY: "fileInsert" }), kt.RegisterCommand("insertAll", { title: "Insert", undo: !1, focus: !1, toggle: !0, disabled: !0, callback: function () { this.filesManager.insertAllFiles() } }), kt.DefineIcon("deleteAll", { NAME: "remove", SVG_KEY: "remove" }), kt.RegisterCommand("deleteAll", { title: "Delete", undo: !1, focus: !1, toggle: !0, disabled: !0, callback: function () { this.filesManager.deleteAllFiles() } }), kt.DefineIcon("cancel", { NAME: "cancel", SVG_KEY: "cancel" }), kt.RegisterCommand("cancel", { title: "Cancel", undo: !1, focus: !1, toggle: !0, callback: function () { this.filesManager.cancelFileInsert() }, refresh: function (e) {} }), kt.DefineIcon("minimize", { NAME: "minimize", SVG_KEY: "minimize" }), kt.RegisterCommand("minimize", { title: "Minimize", undo: !1, focus: !1, toggle: !0, callback: function () { this.filesManager.minimizePopup("image.insert", !0) }, refresh: function (e) { this.filesManager.refreshEmbedButton(e) } }), kt.RegisterCommand("filesInsertByURL", { title: "Insert Image", undo: !0, refreshAfterCallback: !1, callback: function () { this.filesManager.insertByURL() }, refresh: function (e) { e.text(this.language.translate("Add")) } }), kt.RegisterCommand("imageInsertByUpload", { title: "Insert", undo: !0, refreshAfterCallback: !1, callback: function (e, t) {}, refresh: function (e) {} }), kt.RegisterCommand("viewImage", { title: "View Image", undo: !0, refreshAfterCallback: !1, callback: function (e, t) {}, refresh: function (e) {} }), kt.RegisterCommand("insertEmbed", { undo: !0, focus: !0, callback: function () { this.filesManager.insertEmbed(), this.popups.get("filesManager.insert").find("textarea")[0].value = "", this.popups.get("filesManager.insert").find("textarea").removeClass("fr-not-empty") } }), kt.RegisterCommand("filesDismissError", { title: "OK", undo: !1, callback: function () { this.filesManager.hideProgressBar(!0) } }), kt.PLUGINS.cryptoJSPlugin = function (e) { var t, d, n, r, a, o, i, f, s, l, c, p, u, h, g, v, m, b, C, E, y, L, _, w, A, T, S, k, x, R, M, O, N, I, D, B, H, $, P, F, U, z, K, V, W, G, Y, j, q, Z, X, Q, J, ee, te, ne, re, ae, oe, ie, se, le, ce, de, fe, pe, ue, he, ge, me, ve = ve || function (d, e) { var t; if ("undefined" != typeof window && window.crypto && (t = window.crypto), !t && "undefined" != typeof window && window.msCrypto && (t = window.msCrypto), !t && "undefined" != typeof global && global.crypto && (t = global.crypto), !t && "function" == typeof require) try { t = require("crypto") } catch (g) {} var r = function r() { if (t) { if ("function" == typeof t.getRandomValues) try { return t.getRandomValues(new Uint32Array(1))[0] } catch (g) {} if ("function" == typeof t.randomBytes) try { return t.randomBytes(4).readInt32LE() } catch (g) {} } throw new Error("Native crypto module could not be used to get secure random number.") }, n = Object.create || function () { function n() {} return function (e) { var t; return n.prototype = e, t = new n, n.prototype = null, t } }(), a = {}, o = a.lib = {}, i = o.Base = { extend: function (e) { var t = n(this); return e && t.mixIn(e), t.hasOwnProperty("init") && this.init !== t.init || (t.init = function () { t.$super.init.apply(this, arguments) }), (t.init.prototype = t).$super = this, t }, create: function () { var e = this.extend(); return e.init.apply(e, arguments), e }, init: function () {}, mixIn: function (e) { for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); e.hasOwnProperty("toString") && (this.toString = e.toString) }, clone: function () { return this.init.prototype.extend(this) } }, f = o.WordArray = i.extend( { init: function (e, t) { e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length }, toString: function (e) { return (e || l).stringify(this) }, concat: function (e) { var t = this.words, n = e.words, r = this.sigBytes, a = e.sigBytes; if (this.clamp(), r % 4) for (var o = 0; o < a; o++) { var i = n[o >>> 2] >>> 24 - o % 4 * 8 & 255; t[r + o >>> 2] |= i << 24 - (r + o) % 4 * 8 } else for (o = 0; o < a; o += 4) t[r + o >>> 2] = n[o >>> 2]; return this.sigBytes += a, this }, clamp: function () { var e = this.words, t = this.sigBytes; e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = d.ceil(t / 4) }, clone: function e() { var e = i.clone.call(this); return e.words = this.words.slice(0), e }, random: function (e) { for (var t = [], n = 0; n < e; n += 4) t.push(r()); return new f.init(t, e) } }), s = a.enc = {}, l = s.Hex = { stringify: function (e) { for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a++) { var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255; r.push((o >>> 4).toString(16)), r.push((15 & o).toString(16)) } return r.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r += 2) n[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * 4; return new f.init(n, t / 2) } }, c = s.Latin1 = { stringify: function (e) { for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a++) { var o = t[a >>> 2] >>> 24 - a % 4 * 8 & 255; r.push(String.fromCharCode(o)) } return r.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8; return new f.init(n, t) } }, p = s.Utf8 = { stringify: function (e) { try { return decodeURIComponent(escape(c.stringify(e))) } catch (t) { throw new Error("Malformed UTF-8 data") } }, parse: function (e) { return c.parse(unescape(encodeURIComponent(e))) } }, u = o.BufferedBlockAlgorithm = i.extend( { reset: function () { this._data = new f.init, this._nDataBytes = 0 }, _append: function (e) { "string" == typeof e && (e = p.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes }, _process: function (e) { var t, n = this._data, r = n.words, a = n.sigBytes, o = this.blockSize, i = a / (4 * o), s = (i = e ? d.ceil(i) : d.max((0 | i) - this._minBufferSize, 0)) * o, l = d.min(4 * s, a); if (s) { for (var c = 0; c < s; c += o) this._doProcessBlock(r, c); t = r.splice(0, s), n.sigBytes -= l } return new f.init(t, l) }, clone: function e() { var e = i.clone.call(this); return e._data = this._data.clone(), e }, _minBufferSize: 0 }), h = (o.Hasher = u.extend( { cfg: i.extend(), init: function (e) { this.cfg = this.cfg.extend(e), this.reset() }, reset: function () { u.reset.call(this), this._doReset() }, update: function (e) { return this._append(e), this._process(), this }, finalize: function (e) { return e && this._append(e), this._doFinalize() }, blockSize: 16, _createHelper: function (n) { return function (e, t) { return new n.init(t).finalize(e) } }, _createHmacHelper: function (n) { return function (e, t) { return new h.HMAC.init(n, t).finalize(e) } } }), a.algo = {}); return a }(Math); return d = (t = ve).lib.WordArray, t.enc.Base64 = { stringify: function (e) { var t = e.words, n = e.sigBytes, r = this._map; e.clamp(); for (var a = [], o = 0; o < n; o += 3) for (var i = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, s = 0; s < 4 && o + .75 * s < n; s++) a.push(r.charAt(i >>> 6 * (3 - s) & 63)); var l = r.charAt(64); if (l) for (; a.length % 4;) a.push(l); return a.join("") }, parse: function (e) { var t = e.length, n = this._map, r = this._reverseMap; if (!r) { r = this._reverseMap = []; for (var a = 0; a < n.length; a++) r[n.charCodeAt(a)] = a } var o = n.charAt(64); if (o) { var i = e.indexOf(o); - 1 !== i && (t = i) } return function c(e, t, n) { for (var r = [], a = 0, o = 0; o < t; o++) if (o % 4) { var i = n[e.charCodeAt(o - 1)] << o % 4 * 2, s = n[e.charCodeAt(o)] >>> 6 - o % 4 * 2, l = i | s; r[a >>> 2] |= l << 24 - a % 4 * 8, a++ } return d.create(r, a) }(e, t, r) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }, function (d) { var e = ve, t = e.lib, n = t.WordArray, r = t.Hasher, a = e.algo, T = []; ! function () { for (var e = 0; e < 64; e++) T[e] = 4294967296 * d.abs(d.sin(e + 1)) | 0 }(); var o = a.MD5 = r.extend( { _doReset: function () { this._hash = new n.init([1732584193, 4023233417, 2562383102, 271733878]) }, _doProcessBlock: function (e, t) { for (var n = 0; n < 16; n++) { var r = t + n, a = e[r]; e[r] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } var o = this._hash.words, i = e[t + 0], s = e[t + 1], l = e[t + 2], c = e[t + 3], d = e[t + 4], f = e[t + 5], p = e[t + 6], u = e[t + 7], h = e[t + 8], g = e[t + 9], m = e[t + 10], v = e[t + 11], b = e[t + 12], C = e[t + 13], E = e[t + 14], y = e[t + 15], L = o[0], _ = o[1], w = o[2], A = o[3]; _ = R(_ = R(_ = R(_ = R(_ = x(_ = x(_ = x(_ = x(_ = k(_ = k(_ = k(_ = k(_ = S(_ = S(_ = S(_ = S(_, w = S(w, A = S(A, L = S(L, _, w, A, i, 7, T[0]), _, w, s, 12, T[1]), L, _, l, 17, T[2]), A, L, c, 22, T[3]), w = S(w, A = S(A, L = S(L, _, w, A, d, 7, T[4]), _, w, f, 12, T[5]), L, _, p, 17, T[6]), A, L, u, 22, T[7]), w = S(w, A = S(A, L = S(L, _, w, A, h, 7, T[8]), _, w, g, 12, T[9]), L, _, m, 17, T[10]), A, L, v, 22, T[11]), w = S(w, A = S(A, L = S(L, _, w, A, b, 7, T[12]), _, w, C, 12, T[13]), L, _, E, 17, T[14]), A, L, y, 22, T[15]), w = k(w, A = k(A, L = k(L, _, w, A, s, 5, T[16]), _, w, p, 9, T[17]), L, _, v, 14, T[18]), A, L, i, 20, T[19]), w = k(w, A = k(A, L = k(L, _, w, A, f, 5, T[20]), _, w, m, 9, T[21]), L, _, y, 14, T[22]), A, L, d, 20, T[23]), w = k(w, A = k(A, L = k(L, _, w, A, g, 5, T[24]), _, w, E, 9, T[25]), L, _, c, 14, T[26]), A, L, h, 20, T[27]), w = k(w, A = k(A, L = k(L, _, w, A, C, 5, T[28]), _, w, l, 9, T[29]), L, _, u, 14, T[30]), A, L, b, 20, T[31]), w = x(w, A = x(A, L = x(L, _, w, A, f, 4, T[32]), _, w, h, 11, T[33]), L, _, v, 16, T[34]), A, L, E, 23, T[35]), w = x(w, A = x(A, L = x(L, _, w, A, s, 4, T[36]), _, w, d, 11, T[37]), L, _, u, 16, T[38]), A, L, m, 23, T[39]), w = x(w, A = x(A, L = x(L, _, w, A, C, 4, T[40]), _, w, i, 11, T[41]), L, _, c, 16, T[42]), A, L, p, 23, T[43]), w = x(w, A = x(A, L = x(L, _, w, A, g, 4, T[44]), _, w, b, 11, T[45]), L, _, y, 16, T[46]), A, L, l, 23, T[47]), w = R(w, A = R(A, L = R(L, _, w, A, i, 6, T[48]), _, w, u, 10, T[49]), L, _, E, 15, T[50]), A, L, f, 21, T[51]), w = R(w, A = R(A, L = R(L, _, w, A, b, 6, T[52]), _, w, c, 10, T[53]), L, _, m, 15, T[54]), A, L, s, 21, T[55]), w = R(w, A = R(A, L = R(L, _, w, A, h, 6, T[56]), _, w, y, 10, T[57]), L, _, p, 15, T[58]), A, L, C, 21, T[59]), w = R(w, A = R(A, L = R(L, _, w, A, d, 6, T[60]), _, w, v, 10, T[61]), L, _, l, 15, T[62]), A, L, g, 21, T[63]), o[0] = o[0] + L | 0, o[1] = o[1] + _ | 0, o[2] = o[2] + w | 0, o[3] = o[3] + A | 0 }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; t[r >>> 5] |= 128 << 24 - r % 32; var a = d.floor(n / 4294967296), o = n; t[15 + (r + 64 >>> 9 << 4)] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), t[14 + (r + 64 >>> 9 << 4)] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e.sigBytes = 4 * (t.length + 1), this._process(); for (var i = this._hash, s = i.words, l = 0; l < 4; l++) { var c = s[l]; s[l] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8) } return i }, clone: function e() { var e = r.clone.call(this); return e._hash = this._hash.clone(), e } }); function S(e, t, n, r, a, o, i) { var s = e + (t & n | ~t & r) + a + i; return (s << o | s >>> 32 - o) + t } function k(e, t, n, r, a, o, i) { var s = e + (t & r | n & ~r) + a + i; return (s << o | s >>> 32 - o) + t } function x(e, t, n, r, a, o, i) { var s = e + (t ^ n ^ r) + a + i; return (s << o | s >>> 32 - o) + t } function R(e, t, n, r, a, o, i) { var s = e + (n ^ (t | ~r)) + a + i; return (s << o | s >>> 32 - o) + t } e.MD5 = r._createHelper(o), e.HmacMD5 = r._createHmacHelper(o) }(Math), r = (n = ve).lib, a = r.WordArray, o = r.Hasher, i = n.algo, f = [], s = i.SHA1 = o.extend( { _doReset: function () { this._hash = new a.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (e, t) { for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = 0; l < 80; l++) { if (l < 16) f[l] = 0 | e[t + l]; else { var c = f[l - 3] ^ f[l - 8] ^ f[l - 14] ^ f[l - 16]; f[l] = c << 1 | c >>> 31 } var d = (r << 5 | r >>> 27) + s + f[l]; d += l < 20 ? 1518500249 + (a & o | ~a & i) : l < 40 ? 1859775393 + (a ^ o ^ i) : l < 60 ? (a & o | a & i | o & i) - 1894007588 : (a ^ o ^ i) - 899497514, s = i, i = o, o = a << 30 | a >>> 2, a = r, r = d } n[0] = n[0] + r | 0, n[1] = n[1] + a | 0, n[2] = n[2] + o | 0, n[3] = n[3] + i | 0, n[4] = n[4] + s | 0 }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = Math.floor(n / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash }, clone: function e() { var e = o.clone.call(this); return e._hash = this._hash.clone(), e } }), n.SHA1 = o._createHelper(s), n.HmacSHA1 = o._createHmacHelper(s), function (a) { var e = ve, t = e.lib, n = t.WordArray, r = t.Hasher, o = e.algo, i = [], C = []; ! function () { function e(e) { for (var t = a.sqrt(e), n = 2; n <= t; n++) if (!(e % n)) return !1; return !0 } function t(e) { return 4294967296 * (e - (0 | e)) | 0 } for (var n = 2, r = 0; r < 64;) e(n) && (r < 8 && (i[r] = t(a.pow(n, .5))), C[r] = t(a.pow(n, 1 / 3)), r++), n++ }(); var E = [], s = o.SHA256 = r.extend( { _doReset: function () { this._hash = new n.init(i.slice(0)) }, _doProcessBlock: function (e, t) { for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = n[5], c = n[6], d = n[7], f = 0; f < 64; f++) { if (f < 16) E[f] = 0 | e[t + f]; else { var p = E[f - 15], u = (p << 25 | p >>> 7) ^ (p << 14 | p >>> 18) ^ p >>> 3, h = E[f - 2], g = (h << 15 | h >>> 17) ^ (h << 13 | h >>> 19) ^ h >>> 10; E[f] = u + E[f - 7] + g + E[f - 16] } var m = r & a ^ r & o ^ a & o, v = (r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22), b = d + ((s << 26 | s >>> 6) ^ (s << 21 | s >>> 11) ^ (s << 7 | s >>> 25)) + (s & l ^ ~s & c) + C[f] + E[f]; d = c, c = l, l = s, s = i + b | 0, i = o, o = a, a = r, r = b + (v + m) | 0 } n[0] = n[0] + r | 0, n[1] = n[1] + a | 0, n[2] = n[2] + o | 0, n[3] = n[3] + i | 0, n[4] = n[4] + s | 0, n[5] = n[5] + l | 0, n[6] = n[6] + c | 0, n[7] = n[7] + d | 0 }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = a.floor(n / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash }, clone: function e() { var e = r.clone.call(this); return e._hash = this._hash.clone(), e } }); e.SHA256 = r._createHelper(s), e.HmacSHA256 = r._createHmacHelper(s) }(Math), function () { var e = ve, a = e.lib.WordArray, t = e.enc; t.Utf16 = t.Utf16BE = { stringify: function (e) { for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a += 2) { var o = t[a >>> 2] >>> 16 - a % 4 * 8 & 65535; r.push(String.fromCharCode(o)) } return r.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 1] |= e.charCodeAt(r) << 16 - r % 2 * 16; return a.create(n, 2 * t) } }; function i(e) { return e << 8 & 4278255360 | e >>> 8 & 16711935 } t.Utf16LE = { stringify: function (e) { for (var t = e.words, n = e.sigBytes, r = [], a = 0; a < n; a += 2) { var o = i(t[a >>> 2] >>> 16 - a % 4 * 8 & 65535); r.push(String.fromCharCode(o)) } return r.join("") }, parse: function (e) { for (var t = e.length, n = [], r = 0; r < t; r++) n[r >>> 1] |= i(e.charCodeAt(r) << 16 - r % 2 * 16); return a.create(n, 2 * t) } } }(), function () { if ("function" == typeof ArrayBuffer) { var e = ve.lib.WordArray, a = e.init; (e.init = function (e) { if (e instanceof ArrayBuffer && (e = new Uint8Array(e)), (e instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && e instanceof Uint8ClampedArray || e instanceof Int16Array || e instanceof Uint16Array || e instanceof Int32Array || e instanceof Uint32Array || e instanceof Float32Array || e instanceof Float64Array) && (e = new Uint8Array(e.buffer, e.byteOffset, e.byteLength)), e instanceof Uint8Array) { for (var t = e.byteLength, n = [], r = 0; r < t; r++) n[r >>> 2] |= e[r] << 24 - r % 4 * 8; a.call(this, n, t) } else a.apply(this, arguments) }).prototype = e } }(), function (e) { var t = ve, n = t.lib, r = n.WordArray, a = n.Hasher, o = t.algo, _ = r.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), w = r.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), A = r.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), T = r.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), S = r.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), k = r.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), i = o.RIPEMD160 = a.extend( { _doReset: function () { this._hash = r.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]) }, _doProcessBlock: function (e, t) { for (var n = 0; n < 16; n++) { var r = t + n, a = e[r]; e[r] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8) } var o, i, s, l, c, d, f, p, u, h, g, m = this._hash.words, v = S.words, b = k.words, C = _.words, E = w.words, y = A.words, L = T.words; d = o = m[0], f = i = m[1], p = s = m[2], u = l = m[3], h = c = m[4]; for (n = 0; n < 80; n += 1) g = o + e[t + C[n]] | 0, g += n < 16 ? x(i, s, l) + v[0] : n < 32 ? R(i, s, l) + v[1] : n < 48 ? M(i, s, l) + v[2] : n < 64 ? O(i, s, l) + v[3] : N(i, s, l) + v[4], g = (g = I(g |= 0, y[n])) + c | 0, o = c, c = l, l = I(s, 10), s = i, i = g, g = d + e[t + E[n]] | 0, g += n < 16 ? N(f, p, u) + b[0] : n < 32 ? O(f, p, u) + b[1] : n < 48 ? M(f, p, u) + b[2] : n < 64 ? R(f, p, u) + b[3] : x(f, p, u) + b[4], g = (g = I(g |= 0, L[n])) + h | 0, d = h, h = u, u = I(p, 10), p = f, f = g; g = m[1] + s + u | 0, m[1] = m[2] + l + h | 0, m[2] = m[3] + c + d | 0, m[3] = m[4] + o + f | 0, m[4] = m[0] + i + p | 0, m[0] = g }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = 16711935 & (n << 8 | n >>> 24) | 4278255360 & (n << 24 | n >>> 8), e.sigBytes = 4 * (t.length + 1), this._process(); for (var a = this._hash, o = a.words, i = 0; i < 5; i++) { var s = o[i]; o[i] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8) } return a }, clone: function e() { var e = a.clone.call(this); return e._hash = this._hash.clone(), e } }); function x(e, t, n) { return e ^ t ^ n } function R(e, t, n) { return e & t | ~e & n } function M(e, t, n) { return (e | ~t) ^ n } function O(e, t, n) { return e & n | t & ~n } function N(e, t, n) { return e ^ (t | ~n) } function I(e, t) { return e << t | e >>> 32 - t } t.RIPEMD160 = a._createHelper(i), t.HmacRIPEMD160 = a._createHmacHelper(i) }(Math), c = (l = ve).lib.Base, p = l.enc.Utf8, l.algo.HMAC = c.extend( { init: function (e, t) { e = this._hasher = new e.init, "string" == typeof t && (t = p.parse(t)); var n = e.blockSize, r = 4 * n; t.sigBytes > r && (t = e.finalize(t)), t.clamp(); for (var a = this._oKey = t.clone(), o = this._iKey = t.clone(), i = a.words, s = o.words, l = 0; l < n; l++) i[l] ^= 1549556828, s[l] ^= 909522486; a.sigBytes = o.sigBytes = r, this.reset() }, reset: function () { var e = this._hasher; e.reset(), e.update(this._iKey) }, update: function (e) { return this._hasher.update(e), this }, finalize: function (e) { var t = this._hasher, n = t.finalize(e); return t.reset(), t.finalize(this._oKey.clone().concat(n)) } }), h = (u = ve).lib, g = h.Base, v = h.WordArray, m = u.algo, b = m.SHA1, C = m.HMAC, E = m.PBKDF2 = g.extend( { cfg: g.extend( { keySize: 4, hasher: b, iterations: 1 }), init: function (e) { this.cfg = this.cfg.extend(e) }, compute: function (e, t) { for (var n = this.cfg, r = C.create(n.hasher, e), a = v.create(), o = v.create([1]), i = a.words, s = o.words, l = n.keySize, c = n.iterations; i.length < l;) { var d = r.update(t).finalize(o); r.reset(); for (var f = d.words, p = f.length, u = d, h = 1; h < c; h++) { u = r.finalize(u), r.reset(); for (var g = u.words, m = 0; m < p; m++) f[m] ^= g[m] } a.concat(d), s[0]++ } return a.sigBytes = 4 * l, a } }), u.PBKDF2 = function (e, t, n) { return E.create(n).compute(e, t) }, L = (y = ve).lib, _ = L.Base, w = L.WordArray, A = y.algo, T = A.MD5, S = A.EvpKDF = _.extend( { cfg: _.extend( { keySize: 4, hasher: T, iterations: 1 }), init: function (e) { this.cfg = this.cfg.extend(e) }, compute: function (e, t) { for (var n, r = this.cfg, a = r.hasher.create(), o = w.create(), i = o.words, s = r.keySize, l = r.iterations; i.length < s;) { n && a.update(n), n = a.update(e).finalize(t), a.reset(); for (var c = 1; c < l; c++) n = a.finalize(n), a.reset(); o.concat(n) } return o.sigBytes = 4 * s, o } }), y.EvpKDF = function (e, t, n) { return S.create(n).compute(e, t) }, x = (k = ve).lib.WordArray, R = k.algo, M = R.SHA256, O = R.SHA224 = M.extend( { _doReset: function () { this._hash = new x.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]) }, _doFinalize: function () { var e = M._doFinalize.call(this); return e.sigBytes -= 4, e } }), k.SHA224 = M._createHelper(O), k.HmacSHA224 = M._createHmacHelper(O), I = (N = ve).lib, D = I.Base, B = I.WordArray, (H = N.x64 = {}).Word = D.extend( { init: function (e, t) { this.high = e, this.low = t } }), H.WordArray = D.extend( { init: function (e, t) { e = this.words = e || [], this.sigBytes = null != t ? t : 8 * e.length }, toX32: function () { for (var e = this.words, t = e.length, n = [], r = 0; r < t; r++) { var a = e[r]; n.push(a.high), n.push(a.low) } return B.create(n, this.sigBytes) }, clone: function e() { for (var e = D.clone.call(this), t = e.words = this.words.slice(0), n = t.length, r = 0; r < n; r++) t[r] = t[r].clone(); return e } }), function (p) { var e = ve, t = e.lib, u = t.WordArray, r = t.Hasher, d = e.x64.Word, n = e.algo, x = [], R = [], M = []; ! function () { for (var e = 1, t = 0, n = 0; n < 24; n++) { x[e + 5 * t] = (n + 1) * (n + 2) / 2 % 64; var r = (2 * e + 3 * t) % 5; e = t % 5, t = r } for (e = 0; e < 5; e++) for (t = 0; t < 5; t++) R[e + 5 * t] = t + (2 * e + 3 * t) % 5 * 5; for (var a = 1, o = 0; o < 24; o++) { for (var i = 0, s = 0, l = 0; l < 7; l++) { if (1 & a) { var c = (1 << l) - 1; c < 32 ? s ^= 1 << c : i ^= 1 << c - 32 } 128 & a ? a = a << 1 ^ 113 : a <<= 1 } M[o] = d.create(i, s) } }(); var O = []; ! function () { for (var e = 0; e < 25; e++) O[e] = d.create() }(); var a = n.SHA3 = r.extend( { cfg: r.cfg.extend( { outputLength: 512 }), _doReset: function () { for (var e = this._state = [], t = 0; t < 25; t++) e[t] = new d.init; this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32 }, _doProcessBlock: function (e, t) { for (var n = this._state, r = this.blockSize / 2, a = 0; a < r; a++) { var o = e[t + 2 * a], i = e[t + 2 * a + 1]; o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), i = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), (w = n[a]).high ^= i, w.low ^= o } for (var s = 0; s < 24; s++) { for (var l = 0; l < 5; l++) { for (var c = 0, d = 0, f = 0; f < 5; f++) { c ^= (w = n[l + 5 * f]).high, d ^= w.low } var p = O[l]; p.high = c, p.low = d } for (l = 0; l < 5; l++) { var u = O[(l + 4) % 5], h = O[(l + 1) % 5], g = h.high, m = h.low; for (c = u.high ^ (g << 1 | m >>> 31), d = u.low ^ (m << 1 | g >>> 31), f = 0; f < 5; f++) { (w = n[l + 5 * f]).high ^= c, w.low ^= d } } for (var v = 1; v < 25; v++) { var b = (w = n[v]).high, C = w.low, E = x[v]; d = E < 32 ? (c = b << E | C >>> 32 - E, C << E | b >>> 32 - E) : (c = C << E - 32 | b >>> 64 - E, b << E - 32 | C >>> 64 - E); var y = O[R[v]]; y.high = c, y.low = d } var L = O[0], _ = n[0]; L.high = _.high, L.low = _.low; for (l = 0; l < 5; l++) for (f = 0; f < 5; f++) { var w = n[v = l + 5 * f], A = O[v], T = O[(l + 1) % 5 + 5 * f], S = O[(l + 2) % 5 + 5 * f]; w.high = A.high ^ ~T.high & S.high, w.low = A.low ^ ~T.low & S.low } w = n[0]; var k = M[s]; w.high ^= k.high, w.low ^= k.low } }, _doFinalize: function () { var e = this._data, t = e.words, n = (this._nDataBytes, 8 * e.sigBytes), r = 32 * this.blockSize; t[n >>> 5] |= 1 << 24 - n % 32, t[(p.ceil((n + 1) / r) * r >>> 5) - 1] |= 128, e.sigBytes = 4 * t.length, this._process(); for (var a = this._state, o = this.cfg.outputLength / 8, i = o / 8, s = [], l = 0; l < i; l++) { var c = a[l], d = c.high, f = c.low; d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), f = 16711935 & (f << 8 | f >>> 24) | 4278255360 & (f << 24 | f >>> 8), s.push(f), s.push(d) } return new u.init(s, o) }, clone: function e() { for (var e = r.clone.call(this), t = e._state = this._state.slice(0), n = 0; n < 25; n++) t[n] = t[n].clone(); return e } }); e.SHA3 = r._createHelper(a), e.HmacSHA3 = r._createHmacHelper(a) }(Math), function () { var e = ve, t = e.lib.Hasher, n = e.x64, r = n.Word, a = n.WordArray, o = e.algo; function i() { return r.create.apply(r, arguments) } var _e = [i(1116352408, 3609767458), i(1899447441, 602891725), i(3049323471, 3964484399), i(3921009573, 2173295548), i(961987163, 4081628472), i(1508970993, 3053834265), i(2453635748, 2937671579), i(2870763221, 3664609560), i(3624381080, 2734883394), i(310598401, 1164996542), i(607225278, 1323610764), i(1426881987, 3590304994), i(1925078388, 4068182383), i(2162078206, 991336113), i(2614888103, 633803317), i(3248222580, 3479774868), i(3835390401, 2666613458), i(4022224774, 944711139), i(264347078, 2341262773), i(604807628, 2007800933), i(770255983, 1495990901), i(1249150122, 1856431235), i(1555081692, 3175218132), i(1996064986, 2198950837), i(2554220882, 3999719339), i(2821834349, 766784016), i(2952996808, 2566594879), i(3210313671, 3203337956), i(3336571891, 1034457026), i(3584528711, 2466948901), i(113926993, 3758326383), i(338241895, 168717936), i(666307205, 1188179964), i(773529912, 1546045734), i(1294757372, 1522805485), i(1396182291, 2643833823), i(1695183700, 2343527390), i(1986661051, 1014477480), i(2177026350, 1206759142), i(2456956037, 344077627), i(2730485921, 1290863460), i(2820302411, 3158454273), i(3259730800, 3505952657), i(3345764771, 106217008), i(3516065817, 3606008344), i(3600352804, 1432725776), i(4094571909, 1467031594), i(275423344, 851169720), i(430227734, 3100823752), i(506948616, 1363258195), i(659060556, 3750685593), i(883997877, 3785050280), i(958139571, 3318307427), i(1322822218, 3812723403), i(1537002063, 2003034995), i(1747873779, 3602036899), i(1955562222, 1575990012), i(2024104815, 1125592928), i(2227730452, 2716904306), i(2361852424, 442776044), i(2428436474, 593698344), i(2756734187, 3733110249), i(3204031479, 2999351573), i(3329325298, 3815920427), i(3391569614, 3928383900), i(3515267271, 566280711), i(3940187606, 3454069534), i(4118630271, 4000239992), i(116418474, 1914138554), i(174292421, 2731055270), i(289380356, 3203993006), i(460393269, 320620315), i(685471733, 587496836), i(852142971, 1086792851), i(1017036298, 365543100), i(1126000580, 2618297676), i(1288033470, 3409855158), i(1501505948, 4234509866), i(1607167915, 987167468), i(1816402316, 1246189591)], we = []; ! function () { for (var e = 0; e < 80; e++) we[e] = i() }(); var s = o.SHA512 = t.extend( { _doReset: function () { this._hash = new a.init([new r.init(1779033703, 4089235720), new r.init(3144134277, 2227873595), new r.init(1013904242, 4271175723), new r.init(2773480762, 1595750129), new r.init(1359893119, 2917565137), new r.init(2600822924, 725511199), new r.init(528734635, 4215389547), new r.init(1541459225, 327033209)]) }, _doProcessBlock: function (e, t) { for (var n = this._hash.words, r = n[0], a = n[1], o = n[2], i = n[3], s = n[4], l = n[5], c = n[6], d = n[7], f = r.high, p = r.low, u = a.high, h = a.low, g = o.high, m = o.low, v = i.high, b = i.low, C = s.high, E = s.low, y = l.high, L = l.low, _ = c.high, w = c.low, A = d.high, T = d.low, S = f, k = p, x = u, R = h, M = g, O = m, N = v, I = b, D = C, B = E, H = y, $ = L, P = _, F = w, U = A, z = T, K = 0; K < 80; K++) { var V, W, G = we[K]; if (K < 16) W = G.high = 0 | e[t + 2 * K], V = G.low = 0 | e[t + 2 * K + 1]; else { var Y = we[K - 15], j = Y.high, q = Y.low, Z = (j >>> 1 | q << 31) ^ (j >>> 8 | q << 24) ^ j >>> 7, X = (q >>> 1 | j << 31) ^ (q >>> 8 | j << 24) ^ (q >>> 7 | j << 25), Q = we[K - 2], J = Q.high, ee = Q.low, te = (J >>> 19 | ee << 13) ^ (J << 3 | ee >>> 29) ^ J >>> 6, ne = (ee >>> 19 | J << 13) ^ (ee << 3 | J >>> 29) ^ (ee >>> 6 | J << 26), re = we[K - 7], ae = re.high, oe = re.low, ie = we[K - 16], se = ie.high, le = ie.low; W = (W = (W = Z + ae + ((V = X + oe) >>> 0 < X >>> 0 ? 1 : 0)) + te + ((V += ne) >>> 0 < ne >>> 0 ? 1 : 0)) + se + ((V += le) >>> 0 < le >>> 0 ? 1 : 0), G.high = W, G.low = V } var ce, de = D & H ^ ~D & P, fe = B & $ ^ ~B & F, pe = S & x ^ S & M ^ x & M, ue = k & R ^ k & O ^ R & O, he = (S >>> 28 | k << 4) ^ (S << 30 | k >>> 2) ^ (S << 25 | k >>> 7), ge = (k >>> 28 | S << 4) ^ (k << 30 | S >>> 2) ^ (k << 25 | S >>> 7), me = (D >>> 14 | B << 18) ^ (D >>> 18 | B << 14) ^ (D << 23 | B >>> 9), ve = (B >>> 14 | D << 18) ^ (B >>> 18 | D << 14) ^ (B << 23 | D >>> 9), be = _e[K], Ce = be.high, Ee = be.low, ye = U + me + ((ce = z + ve) >>> 0 < z >>> 0 ? 1 : 0), Le = ge + ue; U = P, z = F, P = H, F = $, H = D, $ = B, D = N + (ye = (ye = (ye = ye + de + ((ce = ce + fe) >>> 0 < fe >>> 0 ? 1 : 0)) + Ce + ((ce = ce + Ee) >>> 0 < Ee >>> 0 ? 1 : 0)) + W + ((ce = ce + V) >>> 0 < V >>> 0 ? 1 : 0)) + ((B = I + ce | 0) >>> 0 < I >>> 0 ? 1 : 0) | 0, N = M, I = O, M = x, O = R, x = S, R = k, S = ye + (he + pe + (Le >>> 0 < ge >>> 0 ? 1 : 0)) + ((k = ce + Le | 0) >>> 0 < ce >>> 0 ? 1 : 0) | 0 } p = r.low = p + k, r.high = f + S + (p >>> 0 < k >>> 0 ? 1 : 0), h = a.low = h + R, a.high = u + x + (h >>> 0 < R >>> 0 ? 1 : 0), m = o.low = m + O, o.high = g + M + (m >>> 0 < O >>> 0 ? 1 : 0), b = i.low = b + I, i.high = v + N + (b >>> 0 < I >>> 0 ? 1 : 0), E = s.low = E + B, s.high = C + D + (E >>> 0 < B >>> 0 ? 1 : 0), L = l.low = L + $, l.high = y + H + (L >>> 0 < $ >>> 0 ? 1 : 0), w = c.low = w + F, c.high = _ + P + (w >>> 0 < F >>> 0 ? 1 : 0), T = d.low = T + z, d.high = A + U + (T >>> 0 < z >>> 0 ? 1 : 0) }, _doFinalize: function () { var e = this._data, t = e.words, n = 8 * this._nDataBytes, r = 8 * e.sigBytes; return t[r >>> 5] |= 128 << 24 - r % 32, t[30 + (r + 128 >>> 10 << 5)] = Math.floor(n / 4294967296), t[31 + (r + 128 >>> 10 << 5)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash.toX32() }, clone: function e() { var e = t.clone.call(this); return e._hash = this._hash.clone(), e }, blockSize: 32 }); e.SHA512 = t._createHelper(s), e.HmacSHA512 = t._createHmacHelper(s) }(), P = ($ = ve).x64, F = P.Word, U = P.WordArray, z = $.algo, K = z.SHA512, V = z.SHA384 = K.extend( { _doReset: function () { this._hash = new U.init([new F.init(3418070365, 3238371032), new F.init(1654270250, 914150663), new F.init(2438529370, 812702999), new F.init(355462360, 4144912697), new F.init(1731405415, 4290775857), new F.init(2394180231, 1750603025), new F.init(3675008525, 1694076839), new F.init(1203062813, 3204075428)]) }, _doFinalize: function () { var e = K._doFinalize.call(this); return e.sigBytes -= 16, e } }), $.SHA384 = K._createHelper(V), $.HmacSHA384 = K._createHmacHelper(V), ve.lib.Cipher || (G = (W = ve).lib, Y = G.Base, j = G.WordArray, q = G.BufferedBlockAlgorithm, (Z = W.enc).Utf8, X = Z.Base64, Q = W.algo.EvpKDF, J = G.Cipher = q.extend( { cfg: Y.extend(), createEncryptor: function (e, t) { return this.create(this._ENC_XFORM_MODE, e, t) }, createDecryptor: function (e, t) { return this.create(this._DEC_XFORM_MODE, e, t) }, init: function (e, t, n) { this.cfg = this.cfg.extend(n), this._xformMode = e, this._key = t, this.reset() }, reset: function () { q.reset.call(this), this._doReset() }, process: function (e) { return this._append(e), this._process() }, finalize: function (e) { return e && this._append(e), this._doFinalize() }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () { function a(e) { return "string" == typeof e ? le : ie } return function (r) { return { encrypt: function (e, t, n) { return a(t).encrypt(r, e, t, n) }, decrypt: function (e, t, n) { return a(t).decrypt(r, e, t, n) } } } }() }), G.StreamCipher = J.extend( { _doFinalize: function () { return this._process(!0) }, blockSize: 1 }), ee = W.mode = {}, te = G.BlockCipherMode = Y.extend( { createEncryptor: function (e, t) { return this.Encryptor.create(e, t) }, createDecryptor: function (e, t) { return this.Decryptor.create(e, t) }, init: function (e, t) { this._cipher = e, this._iv = t } }), ne = ee.CBC = function () { var e = te.extend(); function o(e, t, n) { var r, a = this._iv; a ? (r = a, this._iv = void 0) : r = this._prevBlock; for (var o = 0; o < n; o++) e[t + o] ^= r[o] } return e.Encryptor = e.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize; o.call(this, e, t, r), n.encryptBlock(e, t), this._prevBlock = e.slice(t, t + r) } }), e.Decryptor = e.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize, a = e.slice(t, t + r); n.decryptBlock(e, t), o.call(this, e, t, r), this._prevBlock = a } }), e }(), re = (W.pad = {}).Pkcs7 = { pad: function (e, t) { for (var n = 4 * t, r = n - e.sigBytes % n, a = r << 24 | r << 16 | r << 8 | r, o = [], i = 0; i < r; i += 4) o.push(a); var s = j.create(o, r); e.concat(s) }, unpad: function (e) { var t = 255 & e.words[e.sigBytes - 1 >>> 2]; e.sigBytes -= t } }, G.BlockCipher = J.extend( { cfg: J.cfg.extend( { mode: ne, padding: re }), reset: function () { var e; J.reset.call(this); var t = this.cfg, n = t.iv, r = t.mode; this._xformMode == this._ENC_XFORM_MODE ? e = r.createEncryptor : (e = r.createDecryptor, this._minBufferSize = 1), this._mode && this._mode.__creator == e ? this._mode.init(this, n && n.words) : (this._mode = e.call(r, this, n && n.words), this._mode.__creator = e) }, _doProcessBlock: function (e, t) { this._mode.processBlock(e, t) }, _doFinalize: function () { var e, t = this.cfg.padding; return this._xformMode == this._ENC_XFORM_MODE ? (t.pad(this._data, this.blockSize), e = this._process(!0)) : (e = this._process(!0), t.unpad(e)), e }, blockSize: 4 }), ae = G.CipherParams = Y.extend( { init: function (e) { this.mixIn(e) }, toString: function (e) { return (e || this.formatter).stringify(this) } }), oe = (W.format = {}).OpenSSL = { stringify: function (e) { var t = e.ciphertext, n = e.salt; return (n ? j.create([1398893684, 1701076831]).concat(n).concat(t) : t).toString(X) }, parse: function (e) { var t, n = X.parse(e), r = n.words; return 1398893684 == r[0] && 1701076831 == r[1] && (t = j.create(r.slice(2, 4)), r.splice(0, 4), n.sigBytes -= 16), ae.create( { ciphertext: n, salt: t }) } }, ie = G.SerializableCipher = Y.extend( { cfg: Y.extend( { format: oe }), encrypt: function (e, t, n, r) { r = this.cfg.extend(r); var a = e.createEncryptor(n, r), o = a.finalize(t), i = a.cfg; return ae.create( { ciphertext: o, key: n, iv: i.iv, algorithm: e, mode: i.mode, padding: i.padding, blockSize: e.blockSize, formatter: r.format }) }, decrypt: function (e, t, n, r) { return r = this.cfg.extend(r), t = this._parse(t, r.format), e.createDecryptor(n, r).finalize(t.ciphertext) }, _parse: function (e, t) { return "string" == typeof e ? t.parse(e, this) : e } }), se = (W.kdf = {}).OpenSSL = { execute: function (e, t, n, r) { r || (r = j.random(8)); var a = Q.create( { keySize: t + n }).compute(e, r), o = j.create(a.words.slice(t), 4 * n); return a.sigBytes = 4 * t, ae.create( { key: a, iv: o, salt: r }) } }, le = G.PasswordBasedCipher = ie.extend( { cfg: ie.cfg.extend( { kdf: se }), encrypt: function (e, t, n, r) { var a = (r = this.cfg.extend(r)).kdf.execute(n, e.keySize, e.ivSize); r.iv = a.iv; var o = ie.encrypt.call(this, e, t, a.key, r); return o.mixIn(a), o }, decrypt: function (e, t, n, r) { r = this.cfg.extend(r), t = this._parse(t, r.format); var a = r.kdf.execute(n, e.keySize, e.ivSize, t.salt); return r.iv = a.iv, ie.decrypt.call(this, e, t, a.key, r) } })), ve.mode.CFB = function () { var e = ve.lib.BlockCipherMode.extend(); function o(e, t, n, r) { var a, o = this._iv; o ? (a = o.slice(0), this._iv = undefined) : a = this._prevBlock, r.encryptBlock(a, 0); for (var i = 0; i < n; i++) e[t + i] ^= a[i] } return e.Encryptor = e.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize; o.call(this, e, t, r, n), this._prevBlock = e.slice(t, t + r) } }), e.Decryptor = e.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize, a = e.slice(t, t + r); o.call(this, e, t, r, n), this._prevBlock = a } }), e }(), ve.mode.ECB = ((ce = ve.lib.BlockCipherMode.extend()).Encryptor = ce.extend( { processBlock: function (e, t) { this._cipher.encryptBlock(e, t) } }), ce.Decryptor = ce.extend( { processBlock: function (e, t) { this._cipher.decryptBlock(e, t) } }), ce), ve.pad.AnsiX923 = { pad: function (e, t) { var n = e.sigBytes, r = 4 * t, a = r - n % r, o = n + a - 1; e.clamp(), e.words[o >>> 2] |= a << 24 - o % 4 * 8, e.sigBytes += a }, unpad: function (e) { var t = 255 & e.words[e.sigBytes - 1 >>> 2]; e.sigBytes -= t } }, ve.pad.Iso10126 = { pad: function (e, t) { var n = 4 * t, r = n - e.sigBytes % n; e.concat(ve.lib.WordArray.random(r - 1)).concat(ve.lib.WordArray.create([r << 24], 1)) }, unpad: function (e) { var t = 255 & e.words[e.sigBytes - 1 >>> 2]; e.sigBytes -= t } }, ve.pad.Iso97971 = { pad: function (e, t) { e.concat(ve.lib.WordArray.create([2147483648], 1)), ve.pad.ZeroPadding.pad(e, t) }, unpad: function (e) { ve.pad.ZeroPadding.unpad(e), e.sigBytes-- } }, ve.mode.OFB = (de = ve.lib.BlockCipherMode.extend(), fe = de.Encryptor = de.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize, a = this._iv, o = this._keystream; a && (o = this._keystream = a.slice(0), this._iv = undefined), n.encryptBlock(o, 0); for (var i = 0; i < r; i++) e[t + i] ^= o[i] } }), de.Decryptor = fe, de), ve.pad.NoPadding = { pad: function () {}, unpad: function () {} }, ue = (pe = ve).lib.CipherParams, he = pe.enc.Hex, pe.format.Hex = { stringify: function (e) { return e.ciphertext.toString(he) }, parse: function (e) { var t = he.parse(e); return ue.create( { ciphertext: t }) } }, function () { var e = ve, t = e.lib.BlockCipher, n = e.algo, c = [], d = [], f = [], p = [], u = [], h = [], g = [], m = [], v = [], b = []; ! function () { for (var e = [], t = 0; t < 256; t++) e[t] = t < 128 ? t << 1 : t << 1 ^ 283; var n = 0, r = 0; for (t = 0; t < 256; t++) { var a = r ^ r << 1 ^ r << 2 ^ r << 3 ^ r << 4; a = a >>> 8 ^ 255 & a ^ 99, c[n] = a; var o = e[d[a] = n], i = e[o], s = e[i], l = 257 * e[a] ^ 16843008 * a; f[n] = l << 24 | l >>> 8, p[n] = l << 16 | l >>> 16, u[n] = l << 8 | l >>> 24, h[n] = l; l = 16843009 * s ^ 65537 * i ^ 257 * o ^ 16843008 * n; g[a] = l << 24 | l >>> 8, m[a] = l << 16 | l >>> 16, v[a] = l << 8 | l >>> 24, b[a] = l, n ? (n = o ^ e[e[e[s ^ o]]], r ^= e[e[r]]) : n = r = 1 } }(); var C = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], r = n.AES = t.extend( { _doReset: function () { if (!this._nRounds || this._keyPriorReset !== this._key) { for (var e = this._keyPriorReset = this._key, t = e.words, n = e.sigBytes / 4, r = 4 * ((this._nRounds = n + 6) + 1), a = this._keySchedule = [], o = 0; o < r; o++) o < n ? a[o] = t[o] : (l = a[o - 1], o % n ? 6 < n && o % n == 4 && (l = c[l >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l]) : (l = c[(l = l << 8 | l >>> 24) >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l], l ^= C[o / n | 0] << 24), a[o] = a[o - n] ^ l); for (var i = this._invKeySchedule = [], s = 0; s < r; s++) { o = r - s; if (s % 4) var l = a[o]; else l = a[o - 4]; i[s] = s < 4 || o <= 4 ? l : g[c[l >>> 24]] ^ m[c[l >>> 16 & 255]] ^ v[c[l >>> 8 & 255]] ^ b[c[255 & l]] } } }, encryptBlock: function (e, t) { this._doCryptBlock(e, t, this._keySchedule, f, p, u, h, c) }, decryptBlock: function (e, t) { var n = e[t + 1]; e[t + 1] = e[t + 3], e[t + 3] = n, this._doCryptBlock(e, t, this._invKeySchedule, g, m, v, b, d); n = e[t + 1]; e[t + 1] = e[t + 3], e[t + 3] = n }, _doCryptBlock: function (e, t, n, r, a, o, i, s) { for (var l = this._nRounds, c = e[t] ^ n[0], d = e[t + 1] ^ n[1], f = e[t + 2] ^ n[2], p = e[t + 3] ^ n[3], u = 4, h = 1; h < l; h++) { var g = r[c >>> 24] ^ a[d >>> 16 & 255] ^ o[f >>> 8 & 255] ^ i[255 & p] ^ n[u++], m = r[d >>> 24] ^ a[f >>> 16 & 255] ^ o[p >>> 8 & 255] ^ i[255 & c] ^ n[u++], v = r[f >>> 24] ^ a[p >>> 16 & 255] ^ o[c >>> 8 & 255] ^ i[255 & d] ^ n[u++], b = r[p >>> 24] ^ a[c >>> 16 & 255] ^ o[d >>> 8 & 255] ^ i[255 & f] ^ n[u++]; c = g, d = m, f = v, p = b } g = (s[c >>> 24] << 24 | s[d >>> 16 & 255] << 16 | s[f >>> 8 & 255] << 8 | s[255 & p]) ^ n[u++], m = (s[d >>> 24] << 24 | s[f >>> 16 & 255] << 16 | s[p >>> 8 & 255] << 8 | s[255 & c]) ^ n[u++], v = (s[f >>> 24] << 24 | s[p >>> 16 & 255] << 16 | s[c >>> 8 & 255] << 8 | s[255 & d]) ^ n[u++], b = (s[p >>> 24] << 24 | s[c >>> 16 & 255] << 16 | s[d >>> 8 & 255] << 8 | s[255 & f]) ^ n[u++]; e[t] = g, e[t + 1] = m, e[t + 2] = v, e[t + 3] = b }, keySize: 8 }); e.AES = t._createHelper(r) }(), function () { var e = ve, t = e.lib, a = t.WordArray, n = t.BlockCipher, r = e.algo, c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], d = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], f = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], p = [ { 0: 8421888, 268435456: 32768, 536870912: 8421378, 805306368: 2, 1073741824: 512, 1342177280: 8421890, 1610612736: 8389122, 1879048192: 8388608, 2147483648: 514, 2415919104: 8389120, 2684354560: 33280, 2952790016: 8421376, 3221225472: 32770, 3489660928: 8388610, 3758096384: 0, 4026531840: 33282, 134217728: 0, 402653184: 8421890, 671088640: 33282, 939524096: 32768, 1207959552: 8421888, 1476395008: 512, 1744830464: 8421378, 2013265920: 2, 2281701376: 8389120, 2550136832: 33280, 2818572288: 8421376, 3087007744: 8389122, 3355443200: 8388610, 3623878656: 32770, 3892314112: 514, 4160749568: 8388608, 1: 32768, 268435457: 2, 536870913: 8421888, 805306369: 8388608, 1073741825: 8421378, 1342177281: 33280, 1610612737: 512, 1879048193: 8389122, 2147483649: 8421890, 2415919105: 8421376, 2684354561: 8388610, 2952790017: 33282, 3221225473: 514, 3489660929: 8389120, 3758096385: 32770, 4026531841: 0, 134217729: 8421890, 402653185: 8421376, 671088641: 8388608, 939524097: 512, 1207959553: 32768, 1476395009: 8388610, 1744830465: 2, 2013265921: 33282, 2281701377: 32770, 2550136833: 8389122, 2818572289: 514, 3087007745: 8421888, 3355443201: 8389120, 3623878657: 0, 3892314113: 33280, 4160749569: 8421378 }, { 0: 1074282512, 16777216: 16384, 33554432: 524288, 50331648: 1074266128, 67108864: 1073741840, 83886080: 1074282496, 100663296: 1073758208, 117440512: 16, 134217728: 540672, 150994944: 1073758224, 167772160: 1073741824, 184549376: 540688, 201326592: 524304, 218103808: 0, 234881024: 16400, 251658240: 1074266112, 8388608: 1073758208, 25165824: 540688, 41943040: 16, 58720256: 1073758224, 75497472: 1074282512, 92274688: 1073741824, 109051904: 524288, 125829120: 1074266128, 142606336: 524304, 159383552: 0, 176160768: 16384, 192937984: 1074266112, 209715200: 1073741840, 226492416: 540672, 243269632: 1074282496, 260046848: 16400, 268435456: 0, 285212672: 1074266128, 301989888: 1073758224, 318767104: 1074282496, 335544320: 1074266112, 352321536: 16, 369098752: 540688, 385875968: 16384, 402653184: 16400, 419430400: 524288, 436207616: 524304, 452984832: 1073741840, 469762048: 540672, 486539264: 1073758208, 503316480: 1073741824, 520093696: 1074282512, 276824064: 540688, 293601280: 524288, 310378496: 1074266112, 327155712: 16384, 343932928: 1073758208, 360710144: 1074282512, 377487360: 16, 394264576: 1073741824, 411041792: 1074282496, 427819008: 1073741840, 444596224: 1073758224, 461373440: 524304, 478150656: 0, 494927872: 16400, 511705088: 1074266128, 528482304: 540672 }, { 0: 260, 1048576: 0, 2097152: 67109120, 3145728: 65796, 4194304: 65540, 5242880: 67108868, 6291456: 67174660, 7340032: 67174400, 8388608: 67108864, 9437184: 67174656, 10485760: 65792, 11534336: 67174404, 12582912: 67109124, 13631488: 65536, 14680064: 4, 15728640: 256, 524288: 67174656, 1572864: 67174404, 2621440: 0, 3670016: 67109120, 4718592: 67108868, 5767168: 65536, 6815744: 65540, 7864320: 260, 8912896: 4, 9961472: 256, 11010048: 67174400, 12058624: 65796, 13107200: 65792, 14155776: 67109124, 15204352: 67174660, 16252928: 67108864, 16777216: 67174656, 17825792: 65540, 18874368: 65536, 19922944: 67109120, 20971520: 256, 22020096: 67174660, 23068672: 67108868, 24117248: 0, 25165824: 67109124, 26214400: 67108864, 27262976: 4, 28311552: 65792, 29360128: 67174400, 30408704: 260, 31457280: 65796, 32505856: 67174404, 17301504: 67108864, 18350080: 260, 19398656: 67174656, 20447232: 0, 21495808: 65540, 22544384: 67109120, 23592960: 256, 24641536: 67174404, 25690112: 65536, 26738688: 67174660, 27787264: 65796, 28835840: 67108868, 29884416: 67109124, 30932992: 67174400, 31981568: 4, 33030144: 65792 }, { 0: 2151682048, 65536: 2147487808, 131072: 4198464, 196608: 2151677952, 262144: 0, 327680: 4198400, 393216: 2147483712, 458752: 4194368, 524288: 2147483648, 589824: 4194304, 655360: 64, 720896: 2147487744, 786432: 2151678016, 851968: 4160, 917504: 4096, 983040: 2151682112, 32768: 2147487808, 98304: 64, 163840: 2151678016, 229376: 2147487744, 294912: 4198400, 360448: 2151682112, 425984: 0, 491520: 2151677952, 557056: 4096, 622592: 2151682048, 688128: 4194304, 753664: 4160, 819200: 2147483648, 884736: 4194368, 950272: 4198464, 1015808: 2147483712, 1048576: 4194368, 1114112: 4198400, 1179648: 2147483712, 1245184: 0, 1310720: 4160, 1376256: 2151678016, 1441792: 2151682048, 1507328: 2147487808, 1572864: 2151682112, 1638400: 2147483648, 1703936: 2151677952, 1769472: 4198464, 1835008: 2147487744, 1900544: 4194304, 1966080: 64, 2031616: 4096, 1081344: 2151677952, 1146880: 2151682112, 1212416: 0, 1277952: 4198400, 1343488: 4194368, 1409024: 2147483648, 1474560: 2147487808, 1540096: 64, 1605632: 2147483712, 1671168: 4096, 1736704: 2147487744, 1802240: 2151678016, 1867776: 4160, 1933312: 2151682048, 1998848: 4194304, 2064384: 4198464 }, { 0: 128, 4096: 17039360, 8192: 262144, 12288: 536870912, 16384: 537133184, 20480: 16777344, 24576: 553648256, 28672: 262272, 32768: 16777216, 36864: 537133056, 40960: 536871040, 45056: 553910400, 49152: 553910272, 53248: 0, 57344: 17039488, 61440: 553648128, 2048: 17039488, 6144: 553648256, 10240: 128, 14336: 17039360, 18432: 262144, 22528: 537133184, 26624: 553910272, 30720: 536870912, 34816: 537133056, 38912: 0, 43008: 553910400, 47104: 16777344, 51200: 536871040, 55296: 553648128, 59392: 16777216, 63488: 262272, 65536: 262144, 69632: 128, 73728: 536870912, 77824: 553648256, 81920: 16777344, 86016: 553910272, 90112: 537133184, 94208: 16777216, 98304: 553910400, 102400: 553648128, 106496: 17039360, 110592: 537133056, 114688: 262272, 118784: 536871040, 122880: 0, 126976: 17039488, 67584: 553648256, 71680: 16777216, 75776: 17039360, 79872: 537133184, 83968: 536870912, 88064: 17039488, 92160: 128, 96256: 553910272, 100352: 262272, 104448: 553910400, 108544: 0, 112640: 553648128, 116736: 16777344, 120832: 262144, 124928: 537133056, 129024: 536871040 }, { 0: 268435464, 256: 8192, 512: 270532608, 768: 270540808, 1024: 268443648, 1280: 2097152, 1536: 2097160, 1792: 268435456, 2048: 0, 2304: 268443656, 2560: 2105344, 2816: 8, 3072: 270532616, 3328: 2105352, 3584: 8200, 3840: 270540800, 128: 270532608, 384: 270540808, 640: 8, 896: 2097152, 1152: 2105352, 1408: 268435464, 1664: 268443648, 1920: 8200, 2176: 2097160, 2432: 8192, 2688: 268443656, 2944: 270532616, 3200: 0, 3456: 270540800, 3712: 2105344, 3968: 268435456, 4096: 268443648, 4352: 270532616, 4608: 270540808, 4864: 8200, 5120: 2097152, 5376: 268435456, 5632: 268435464, 5888: 2105344, 6144: 2105352, 6400: 0, 6656: 8, 6912: 270532608, 7168: 8192, 7424: 268443656, 7680: 270540800, 7936: 2097160, 4224: 8, 4480: 2105344, 4736: 2097152, 4992: 268435464, 5248: 268443648, 5504: 8200, 5760: 270540808, 6016: 270532608, 6272: 270540800, 6528: 270532616, 6784: 8192, 7040: 2105352, 7296: 2097160, 7552: 0, 7808: 268435456, 8064: 268443656 }, { 0: 1048576, 16: 33555457, 32: 1024, 48: 1049601, 64: 34604033, 80: 0, 96: 1, 112: 34603009, 128: 33555456, 144: 1048577, 160: 33554433, 176: 34604032, 192: 34603008, 208: 1025, 224: 1049600, 240: 33554432, 8: 34603009, 24: 0, 40: 33555457, 56: 34604032, 72: 1048576, 88: 33554433, 104: 33554432, 120: 1025, 136: 1049601, 152: 33555456, 168: 34603008, 184: 1048577, 200: 1024, 216: 34604033, 232: 1, 248: 1049600, 256: 33554432, 272: 1048576, 288: 33555457, 304: 34603009, 320: 1048577, 336: 33555456, 352: 34604032, 368: 1049601, 384: 1025, 400: 34604033, 416: 1049600, 432: 1, 448: 0, 464: 34603008, 480: 33554433, 496: 1024, 264: 1049600, 280: 33555457, 296: 34603009, 312: 1, 328: 33554432, 344: 1048576, 360: 1025, 376: 34604032, 392: 33554433, 408: 34603008, 424: 0, 440: 34604033, 456: 1049601, 472: 1024, 488: 33555456, 504: 1048577 }, { 0: 134219808, 1: 131072, 2: 134217728, 3: 32, 4: 131104, 5: 134350880, 6: 134350848, 7: 2048, 8: 134348800, 9: 134219776, 10: 133120, 11: 134348832, 12: 2080, 13: 0, 14: 134217760, 15: 133152, 2147483648: 2048, 2147483649: 134350880, 2147483650: 134219808, 2147483651: 134217728, 2147483652: 134348800, 2147483653: 133120, 2147483654: 133152, 2147483655: 32, 2147483656: 134217760, 2147483657: 2080, 2147483658: 131104, 2147483659: 134350848, 2147483660: 0, 2147483661: 134348832, 2147483662: 134219776, 2147483663: 131072, 16: 133152, 17: 134350848, 18: 32, 19: 2048, 20: 134219776, 21: 134217760, 22: 134348832, 23: 131072, 24: 0, 25: 131104, 26: 134348800, 27: 134219808, 28: 134350880, 29: 133120, 30: 2080, 31: 134217728, 2147483664: 131072, 2147483665: 2048, 2147483666: 134348832, 2147483667: 133152, 2147483668: 32, 2147483669: 134348800, 2147483670: 134217728, 2147483671: 134219808, 2147483672: 134350880, 2147483673: 134217760, 2147483674: 134219776, 2147483675: 0, 2147483676: 133120, 2147483677: 2080, 2147483678: 131104, 2147483679: 134350848 }], u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], o = r.DES = n.extend( { _doReset: function () { for (var e = this._key.words, t = [], n = 0; n < 56; n++) { var r = c[n] - 1; t[n] = e[r >>> 5] >>> 31 - r % 32 & 1 } for (var a = this._subKeys = [], o = 0; o < 16; o++) { var i = a[o] = [], s = f[o]; for (n = 0; n < 24; n++) i[n / 6 | 0] |= t[(d[n] - 1 + s) % 28] << 31 - n % 6, i[4 + (n / 6 | 0)] |= t[28 + (d[n + 24] - 1 + s) % 28] << 31 - n % 6; i[0] = i[0] << 1 | i[0] >>> 31; for (n = 1; n < 7; n++) i[n] = i[n] >>> 4 * (n - 1) + 3; i[7] = i[7] << 5 | i[7] >>> 27 } var l = this._invSubKeys = []; for (n = 0; n < 16; n++) l[n] = a[15 - n] }, encryptBlock: function (e, t) { this._doCryptBlock(e, t, this._subKeys) }, decryptBlock: function (e, t) { this._doCryptBlock(e, t, this._invSubKeys) }, _doCryptBlock: function (e, t, n) { this._lBlock = e[t], this._rBlock = e[t + 1], h.call(this, 4, 252645135), h.call(this, 16, 65535), g.call(this, 2, 858993459), g.call(this, 8, 16711935), h.call(this, 1, 1431655765); for (var r = 0; r < 16; r++) { for (var a = n[r], o = this._lBlock, i = this._rBlock, s = 0, l = 0; l < 8; l++) s |= p[l][((i ^ a[l]) & u[l]) >>> 0]; this._lBlock = i, this._rBlock = o ^ s } var c = this._lBlock; this._lBlock = this._rBlock, this._rBlock = c, h.call(this, 1, 1431655765), g.call(this, 8, 16711935), g.call(this, 2, 858993459), h.call(this, 16, 65535), h.call(this, 4, 252645135), e[t] = this._lBlock, e[t + 1] = this._rBlock }, keySize: 2, ivSize: 2, blockSize: 2 }); function h(e, t) { var n = (this._lBlock >>> e ^ this._rBlock) & t; this._rBlock ^= n, this._lBlock ^= n << e } function g(e, t) { var n = (this._rBlock >>> e ^ this._lBlock) & t; this._lBlock ^= n, this._rBlock ^= n << e } e.DES = n._createHelper(o); var i = r.TripleDES = n.extend( { _doReset: function () { var e = this._key.words; if (2 !== e.length && 4 !== e.length && e.length < 6) throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192."); var t = e.slice(0, 2), n = e.length < 4 ? e.slice(0, 2) : e.slice(2, 4), r = e.length < 6 ? e.slice(0, 2) : e.slice(4, 6); this._des1 = o.createEncryptor(a.create(t)), this._des2 = o.createEncryptor(a.create(n)), this._des3 = o.createEncryptor(a.create(r)) }, encryptBlock: function (e, t) { this._des1.encryptBlock(e, t), this._des2.decryptBlock(e, t), this._des3.encryptBlock(e, t) }, decryptBlock: function (e, t) { this._des3.decryptBlock(e, t), this._des2.encryptBlock(e, t), this._des1.decryptBlock(e, t) }, keySize: 6, ivSize: 2, blockSize: 2 }); e.TripleDES = n._createHelper(i) }(), function () { var e = ve, t = e.lib.StreamCipher, n = e.algo, r = n.RC4 = t.extend( { _doReset: function () { for (var e = this._key, t = e.words, n = e.sigBytes, r = this._S = [], a = 0; a < 256; a++) r[a] = a; a = 0; for (var o = 0; a < 256; a++) { var i = a % n, s = t[i >>> 2] >>> 24 - i % 4 * 8 & 255; o = (o + r[a] + s) % 256; var l = r[a]; r[a] = r[o], r[o] = l } this._i = this._j = 0 }, _doProcessBlock: function (e, t) { e[t] ^= a.call(this) }, keySize: 8, ivSize: 0 }); function a() { for (var e = this._S, t = this._i, n = this._j, r = 0, a = 0; a < 4; a++) { n = (n + e[t = (t + 1) % 256]) % 256; var o = e[t]; e[t] = e[n], e[n] = o, r |= e[(e[t] + e[n]) % 256] << 24 - 8 * a } return this._i = t, this._j = n, r } e.RC4 = t._createHelper(r); var o = n.RC4Drop = r.extend( { cfg: r.cfg.extend( { drop: 192 }), _doReset: function () { r._doReset.call(this); for (var e = this.cfg.drop; 0 < e; e--) a.call(this) } }); e.RC4Drop = t._createHelper(o) }(), ve.mode.CTRGladman = function () { var e = ve.lib.BlockCipherMode.extend(); function c(e) { if (255 == (e >> 24 & 255)) { var t = e >> 16 & 255, n = e >> 8 & 255, r = 255 & e; 255 === t ? (t = 0, 255 === n ? (n = 0, 255 === r ? r = 0 : ++r) : ++n) : ++t, e = 0, e += t << 16, e += n << 8, e += r } else e += 1 << 24; return e } var t = e.Encryptor = e.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize, a = this._iv, o = this._counter; a && (o = this._counter = a.slice(0), this._iv = undefined), function l(e) { return 0 === (e[0] = c(e[0])) && (e[1] = c(e[1])), e }(o); var i = o.slice(0); n.encryptBlock(i, 0); for (var s = 0; s < r; s++) e[t + s] ^= i[s] } }); return e.Decryptor = t, e }(), function () { var e = ve, t = e.lib.StreamCipher, n = e.algo, a = [], l = [], c = [], r = n.Rabbit = t.extend( { _doReset: function () { for (var e = this._key.words, t = this.cfg.iv, n = 0; n < 4; n++) e[n] = 16711935 & (e[n] << 8 | e[n] >>> 24) | 4278255360 & (e[n] << 24 | e[n] >>> 8); var r = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16], a = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]]; for (n = this._b = 0; n < 4; n++) p.call(this); for (n = 0; n < 8; n++) a[n] ^= r[n + 4 & 7]; if (t) { var o = t.words, i = o[0], s = o[1], l = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), c = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), d = l >>> 16 | 4294901760 & c, f = c << 16 | 65535 & l; a[0] ^= l, a[1] ^= d, a[2] ^= c, a[3] ^= f, a[4] ^= l, a[5] ^= d, a[6] ^= c, a[7] ^= f; for (n = 0; n < 4; n++) p.call(this) } }, _doProcessBlock: function (e, t) { var n = this._X; p.call(this), a[0] = n[0] ^ n[5] >>> 16 ^ n[3] << 16, a[1] = n[2] ^ n[7] >>> 16 ^ n[5] << 16, a[2] = n[4] ^ n[1] >>> 16 ^ n[7] << 16, a[3] = n[6] ^ n[3] >>> 16 ^ n[1] << 16; for (var r = 0; r < 4; r++) a[r] = 16711935 & (a[r] << 8 | a[r] >>> 24) | 4278255360 & (a[r] << 24 | a[r] >>> 8), e[t + r] ^= a[r] }, blockSize: 4, ivSize: 2 }); function p() { for (var e = this._X, t = this._C, n = 0; n < 8; n++) l[n] = t[n]; t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < l[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < l[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < l[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < l[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < l[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < l[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < l[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < l[7] >>> 0 ? 1 : 0; for (n = 0; n < 8; n++) { var r = e[n] + t[n], a = 65535 & r, o = r >>> 16, i = ((a * a >>> 17) + a * o >>> 15) + o * o, s = ((4294901760 & r) * r | 0) + ((65535 & r) * r | 0); c[n] = i ^ s } e[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, e[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, e[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, e[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, e[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, e[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, e[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, e[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } e.Rabbit = t._createHelper(r) }(), ve.mode.CTR = (ge = ve.lib.BlockCipherMode.extend(), me = ge.Encryptor = ge.extend( { processBlock: function (e, t) { var n = this._cipher, r = n.blockSize, a = this._iv, o = this._counter; a && (o = this._counter = a.slice(0), this._iv = undefined); var i = o.slice(0); n.encryptBlock(i, 0), o[r - 1] = o[r - 1] + 1 | 0; for (var s = 0; s < r; s++) e[t + s] ^= i[s] } }), ge.Decryptor = me, ge), function () { var e = ve, t = e.lib.StreamCipher, n = e.algo, a = [], l = [], c = [], r = n.RabbitLegacy = t.extend( { _doReset: function () { for (var e = this._key.words, t = this.cfg.iv, n = this._X = [e[0], e[3] << 16 | e[2] >>> 16, e[1], e[0] << 16 | e[3] >>> 16, e[2], e[1] << 16 | e[0] >>> 16, e[3], e[2] << 16 | e[1] >>> 16], r = this._C = [e[2] << 16 | e[2] >>> 16, 4294901760 & e[0] | 65535 & e[1], e[3] << 16 | e[3] >>> 16, 4294901760 & e[1] | 65535 & e[2], e[0] << 16 | e[0] >>> 16, 4294901760 & e[2] | 65535 & e[3], e[1] << 16 | e[1] >>> 16, 4294901760 & e[3] | 65535 & e[0]], a = this._b = 0; a < 4; a++) p.call(this); for (a = 0; a < 8; a++) r[a] ^= n[a + 4 & 7]; if (t) { var o = t.words, i = o[0], s = o[1], l = 16711935 & (i << 8 | i >>> 24) | 4278255360 & (i << 24 | i >>> 8), c = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), d = l >>> 16 | 4294901760 & c, f = c << 16 | 65535 & l; r[0] ^= l, r[1] ^= d, r[2] ^= c, r[3] ^= f, r[4] ^= l, r[5] ^= d, r[6] ^= c, r[7] ^= f; for (a = 0; a < 4; a++) p.call(this) } }, _doProcessBlock: function (e, t) { var n = this._X; p.call(this), a[0] = n[0] ^ n[5] >>> 16 ^ n[3] << 16, a[1] = n[2] ^ n[7] >>> 16 ^ n[5] << 16, a[2] = n[4] ^ n[1] >>> 16 ^ n[7] << 16, a[3] = n[6] ^ n[3] >>> 16 ^ n[1] << 16; for (var r = 0; r < 4; r++) a[r] = 16711935 & (a[r] << 8 | a[r] >>> 24) | 4278255360 & (a[r] << 24 | a[r] >>> 8), e[t + r] ^= a[r] }, blockSize: 4, ivSize: 2 }); function p() { for (var e = this._X, t = this._C, n = 0; n < 8; n++) l[n] = t[n]; t[0] = t[0] + 1295307597 + this._b | 0, t[1] = t[1] + 3545052371 + (t[0] >>> 0 < l[0] >>> 0 ? 1 : 0) | 0, t[2] = t[2] + 886263092 + (t[1] >>> 0 < l[1] >>> 0 ? 1 : 0) | 0, t[3] = t[3] + 1295307597 + (t[2] >>> 0 < l[2] >>> 0 ? 1 : 0) | 0, t[4] = t[4] + 3545052371 + (t[3] >>> 0 < l[3] >>> 0 ? 1 : 0) | 0, t[5] = t[5] + 886263092 + (t[4] >>> 0 < l[4] >>> 0 ? 1 : 0) | 0, t[6] = t[6] + 1295307597 + (t[5] >>> 0 < l[5] >>> 0 ? 1 : 0) | 0, t[7] = t[7] + 3545052371 + (t[6] >>> 0 < l[6] >>> 0 ? 1 : 0) | 0, this._b = t[7] >>> 0 < l[7] >>> 0 ? 1 : 0; for (n = 0; n < 8; n++) { var r = e[n] + t[n], a = 65535 & r, o = r >>> 16, i = ((a * a >>> 17) + a * o >>> 15) + o * o, s = ((4294901760 & r) * r | 0) + ((65535 & r) * r | 0); c[n] = i ^ s } e[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, e[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, e[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, e[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, e[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, e[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, e[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, e[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0 } e.RabbitLegacy = t._createHelper(r) }(), ve.pad.ZeroPadding = { pad: function (e, t) { var n = 4 * t; e.clamp(), e.sigBytes += n - (e.sigBytes % n || n) }, unpad: function (e) { var t = e.words, n = e.sigBytes - 1; for (n = e.sigBytes - 1; 0 <= n; n--) if (t[n >>> 2] >>> 24 - n % 4 * 8 & 255) { e.sigBytes = n + 1; break } } }, { init: function be() {}, cryptoJS: ve } }, Object.assign(kt.DEFAULTS, { fontFamily: { "Arial,Helvetica,sans-serif": "Arial", "Georgia,serif": "Georgia", "Impact,Charcoal,sans-serif": "Impact", "Tahoma,Geneva,sans-serif": "Tahoma", "Times New Roman,Times,serif,-webkit-standard": "Times New Roman", "Verdana,Geneva,sans-serif": "Verdana" }, fontFamilySelection: !1, fontFamilyDefaultSelection: "Font Family" }), kt.PLUGINS.fontFamily = function (a) { var o = a.$; function i(e) { var t = e.replace(/(sans-serif|serif|monospace|cursive|fantasy)/gi, "").replace(/"|'| /g, "").split(","); return o(this).grep(t, function (e) { return 0 < e.length }) } function s(e, t) { for (var n = 0; n < e.length; n++) for (var r = 0; r < t.length; r++) if (e[n].toLowerCase() === t[r].toLowerCase()) return [n, r]; return null } function n() { var e = i(o(a.selection.element()).css("font-family")), t = []; for (var n in a.opts.fontFamily) if (a.opts.fontFamily.hasOwnProperty(n)) { var r = s(e, i(n)); r && t.push([n, r]) } return 0 === t.length ? null : (t.sort(function (e, t) { var n = e[1][0] - t[1][0]; return 0 === n ? e[1][1] - t[1][1] : n }), t[0][0]) } return { apply: function t(e) { a.format.applyStyle("font-family", e) }, refreshOnShow: function r(e, t) { t.find(".fr-command.fr-active").removeClass("fr-active").attr("aria-selected", !1), t.find('.fr-command[data-param1="'.concat(n(), '"]')).addClass("fr-active").attr("aria-selected", !0) }, refresh: function l(e) { if (a.opts.fontFamilySelection) { var t = o(a.selection.element()).css("font-family").replace(/(sans-serif|serif|monospace|cursive|fantasy)/gi, "").replace(/"|'|/g, "").split(","); e.find("> span").text(a.opts.fontFamily[n()] || t[0] || a.language.translate(a.opts.fontFamilyDefaultSelection)) } } } }, kt.RegisterCommand("fontFamily", { type: "dropdown", displaySelection: function (e) { return e.opts.fontFamilySelection }, defaultSelection: function (e) { return e.opts.fontFamilyDefaultSelection }, displaySelectionWidth: 120, html: function () { var e = '" }, title: "Font Family", callback: function (e, t) { this.fontFamily.apply(t) }, refresh: function (e) { this.fontFamily.refresh(e) }, refreshOnShow: function (e, t) { this.fontFamily.refreshOnShow(e, t) }, plugin: "fontFamily" }), kt.DefineIcon("fontFamily", { NAME: "font", SVG_KEY: "fontFamily" }), Object.assign(kt.DEFAULTS, { fontSize: ["8", "9", "10", "11", "12", "14", "18", "24", "30", "36", "48", "60", "72", "96"], fontSizeSelection: !1, fontSizeDefaultSelection: "12", fontSizeUnit: "px" }), kt.PLUGINS.fontSize = function (r) { var a = r.$; return { apply: function t(e) { r.format.applyStyle("font-size", e) }, refreshOnShow: function o(e, t) { var n = a(r.selection.element()).css("font-size"); "pt" === r.opts.fontSizeUnit && (n = "".concat(Math.round(72 * parseFloat(n, 10) / 96), "pt")), t.find(".fr-command.fr-active").removeClass("fr-active").attr("aria-selected", !1), t.find('.fr-command[data-param1="'.concat(n, '"]')).addClass("fr-active").attr("aria-selected", !0) }, refresh: function n(e) { if (r.opts.fontSizeSelection) { var t = r.helpers.getPX(a(r.selection.element()).css("font-size")); "pt" === r.opts.fontSizeUnit && (t = "".concat(Math.round(72 * parseFloat(t, 10) / 96), "pt")), e.find("> span").text(t) } } } }, kt.RegisterCommand("fontSize", { type: "dropdown", title: "Font Size", displaySelection: function (e) { return e.opts.fontSizeSelection }, displaySelectionWidth: 30, defaultSelection: function (e) { return e.opts.fontSizeDefaultSelection }, html: function () { for (var e = '" }, callback: function (e, t) { this.fontSize.apply(t) }, refresh: function (e) { this.fontSize.refresh(e) }, refreshOnShow: function (e, t) { this.fontSize.refreshOnShow(e, t) }, plugin: "fontSize" }), kt.DefineIcon("fontSize", { NAME: "text-height", SVG_KEY: "fontSize" }), Object.assign(kt.POPUP_TEMPLATES, { "forms.edit": "[_BUTTONS_]", "forms.update": "[_BUTTONS_][_TEXT_LAYER_]" }), Object.assign(kt.DEFAULTS, { formEditButtons: ["inputStyle", "inputEdit"], formStyles: { "fr-rounded": "Rounded", "fr-large": "Large" }, formMultipleStyles: !0, formUpdateButtons: ["inputBack", "|"] }), kt.PLUGINS.forms = function (i) { var s, l = i.$; function t(e) { i.selection.clear(), l(this).data("mousedown", !0) } function n(e) { l(this).data("mousedown") && (e.stopPropagation(), l(this).removeData("mousedown"), d(s = this)), e.preventDefault() } function r() { i.$el.find("input, textarea, button").removeData("mousedown") } function a() { l(this).removeData("mousedown") } function c() { return s || null } function d(e) { if (-1 == ["checkbox", "radio"].indexOf(e.type)) { var t = i.popups.get("forms.edit"); t || (t = function o() { var e = ""; 0 < i.opts.formEditButtons.length && (e = '
    '.concat(i.button.buildList(i.opts.formEditButtons), "
    ")); var t = { buttons: e }, n = i.popups.create("forms.edit", t); return i.$wp && i.events.$on(i.$wp, "scroll.link-edit", function () { c() && i.popups.isVisible("forms.edit") && d(c()) }), n }()); var n = l(s = e); i.popups.refresh("forms.edit"), i.popups.setContainer("forms.edit", i.$sc); var r = n.offset().left + n.outerWidth() / 2, a = n.offset().top + n.outerHeight(); i.popups.show("forms.edit", r, a, n.outerHeight()) } } function o() { var e = i.popups.get("forms.update"), t = c(); if (t) { var n = l(t); n.is("button") ? e.find('input[type="text"][name="text"]').val(n.text()) : n.is("input[type=button]") || n.is("input[type=submit]") || n.is("input[type=reset]") ? e.find('input[type="text"][name="text"]').val(n.val()) : e.find('input[type="text"][name="text"]').val(n.attr("placeholder")) } e.find('input[type="text"][name="text"]').trigger("change") } function f() { s = null } function p(e) { if (e) return i.popups.onRefresh("forms.update", o), i.popups.onHide("forms.update", f), !0; var t = ""; 1 <= i.opts.formUpdateButtons.length && (t = '
    '.concat(i.button.buildList(i.opts.formUpdateButtons), "
    ")); var n = 0, r = { buttons: t, text_layer: '
    \n
    \n
    ") }; return i.popups.create("forms.update", r) } return { _init: function u() { ! function e() { i.events.$on(i.$el, i._mousedown, "input, textarea, button", t), i.events.$on(i.$el, i._mouseup, "input, textarea, button", n), i.events.$on(i.$el, "touchmove", "input, textarea, button", a), i.events.$on(i.$el, i._mouseup, r), i.events.$on(i.$win, i._mouseup, r), p(!0) }(), i.events.$on(i.$el, "submit", "form", function (e) { return e.preventDefault(), !1 }) }, updateInput: function h() { var e = i.popups.get("forms.update"), t = c(); if (t) { var n = l(t), r = e.find('input[type="text"][name="text"]').val() || ""; n.is("button") ? r.length ? n.text(r) : n.text("​") : -1 != ["button", "submit", "reset"].indexOf(t.type) ? n.attr("value", r) : n.attr("placeholder", r), i.popups.hide("forms.update"), d(t) } }, getInput: c, applyStyle: function g(e, t, n) { void 0 === t && (t = i.opts.formStyles), void 0 === n && (n = i.opts.formMultipleStyles); var r = c(); if (!r) return !1; if (!n) { var a = Object.keys(t); a.splice(a.indexOf(e), 1), l(r).removeClass(a.join(" ")) } l(r).toggleClass(e) }, showUpdatePopup: function m() { var e = c(); if (e) { var t = l(e), n = i.popups.get("forms.update"); n || (n = p()), i.popups.isVisible("forms.update") || i.popups.refresh("forms.update"), i.popups.setContainer("forms.update", i.$sc); var r = t.offset().left + t.outerWidth() / 2, a = t.offset().top + t.outerHeight(); i.popups.show("forms.update", r, a, t.outerHeight()) } }, showEditPopup: d, back: function v() { i.events.disableBlur(), i.selection.restore(), i.events.enableBlur(); var e = c(); e && i.$wp && ("BUTTON" === e.tagName && i.selection.restore(), d(e)) } } }, kt.RegisterCommand("updateInput", { undo: !1, focus: !1, title: "Update", callback: function () { this.forms.updateInput() } }), kt.DefineIcon("inputStyle", { NAME: "magic", SVG_KEY: "inlineStyle" }), kt.RegisterCommand("inputStyle", { title: "Style", type: "dropdown", html: function () { var e = '" }, callback: function (e, t) { var n = this.forms.getInput(); n && (this.forms.applyStyle(t), this.forms.showEditPopup(n)) }, refreshOnShow: function (e, t) { var n = this.$, r = this.forms.getInput(); if (r) { var a = n(r); t.find(".fr-command").each(function () { var e = n(this).data("param1"); n(this).toggleClass("fr-active", a.hasClass(e)) }) } } }), kt.DefineIcon("inputEdit", { NAME: "edit", SVG_KEY: "edit" }), kt.RegisterCommand("inputEdit", { title: "Edit Button", undo: !1, refreshAfterCallback: !1, callback: function () { this.forms.showUpdatePopup() } }), kt.DefineIcon("inputBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("inputBack", { title: "Back", undo: !1, focus: !1, back: !0, refreshAfterCallback: !1, callback: function () { this.forms.back() } }), kt.RegisterCommand("updateInput", { undo: !1, focus: !1, title: "Update", callback: function () { this.forms.updateInput() } }), kt.PLUGINS.fullscreen = function (a) { var t, n, r, o, i = a.$, s = function s() { return a.$box.hasClass("fr-fullscreen") }; function l() { if (a.helpers.isIOS() && a.core.hasFocus()) return a.$el.blur(), setTimeout(d, 250), !1; t = a.helpers.scrollTop(), a.$box.toggleClass("fr-fullscreen"), i("body").first().toggleClass("fr-fullscreen"), a.helpers.isMobile() && (a.opts.toolbarBottom ? a.$tb[0].removeAttribute("style") : (a.$tb.data("parent", a.$tb.parent()), a.$box.prepend(a.$tb), a.$tb.data("sticky-dummy") && a.$tb.after(a.$tb.data("sticky-dummy")))), n = a.opts.height, r = a.opts.heightMax, o = a.opts.z_index, a.opts.height = a.o_win.innerHeight - (a.opts.toolbarInline ? 0 : a.$tb.outerHeight() + (a.$second_tb ? a.$second_tb.outerHeight() : 0)), a.opts.zIndex = 2147483641, a.opts.heightMax = null, a.size.refresh(), a.opts.toolbarInline && a.toolbar.showInline(); for (var e = a.$box.parent(); !e.first().is("body");) e.addClass("fr-fullscreen-wrapper"), e = e.parent(); a.opts.toolbarContainer && a.$box.prepend(a.$tb), a.events.trigger("charCounter.update"), a.events.trigger("codeView.update"), a.$win.trigger("scroll") } function c() { if (a.helpers.isIOS() && a.core.hasFocus()) return a.$el.blur(), setTimeout(d, 250), !1; a.$box.toggleClass("fr-fullscreen"), i("body").first().toggleClass("fr-fullscreen"), a.$tb.data("parent") && a.$tb.data("parent").prepend(a.$tb), a.$tb.data("sticky-dummy") && a.$tb.after(a.$tb.data("sticky-dummy")), a.opts.height = n, a.opts.heightMax = r, a.opts.zIndex = o, a.size.refresh(), i(a.o_win).scrollTop(t), a.opts.toolbarInline && a.toolbar.showInline(), a.events.trigger("charCounter.update"), a.opts.toolbarSticky && a.opts.toolbarStickyOffset && (a.opts.toolbarBottom ? a.$tb.css("bottom", a.opts.toolbarStickyOffset).data("bottom", a.opts.toolbarStickyOffset) : a.$tb.css("top", a.opts.toolbarStickyOffset).data("top", a.opts.toolbarStickyOffset)); for (var e = a.$box.parent(); !e.first().is("body");) e.removeClass("fr-fullscreen-wrapper"), e = e.parent(); a.opts.toolbarContainer && i(a.opts.toolbarContainer).append(a.$tb), i(a.o_win).trigger("scroll"), a.events.trigger("codeView.update") } function d() { s() ? c() : l(), f(a.$tb.find('.fr-command[data-cmd="fullscreen"]')); var e = a.$tb.find('.fr-command[data-cmd="moreText"]'), t = a.$tb.find('.fr-command[data-cmd="moreParagraph"]'), n = a.$tb.find('.fr-command[data-cmd="moreRich"]'), r = a.$tb.find('.fr-command[data-cmd="moreMisc"]'); e.length && a.refresh.moreText(e), t.length && a.refresh.moreParagraph(t), n.length && a.refresh.moreRich(n), r.length && a.refresh.moreMisc(r) } function f(e) { var t = s(); e.toggleClass("fr-active", t).attr("aria-pressed", t), e.find("> *").not(".fr-sr-only").replaceWith(t ? a.icon.create("fullscreenCompress") : a.icon.create("fullscreen")) } return { _init: function e() { if (!a.$wp) return !1; a.events.$on(i(a.o_win), "resize", function () { s() && (c(), l()) }), a.events.on("toolbar.hide", function () { if (s() && a.helpers.isMobile()) return !1 }), a.events.on("position.refresh", function () { if (a.helpers.isIOS()) return !s() }), a.events.on("destroy", function () { s() && c() }, !0) }, toggle: d, refresh: f, isActive: s } }, kt.RegisterCommand("fullscreen", { title: "Fullscreen", undo: !1, focus: !1, accessibilityFocus: !0, forcedRefresh: !0, toggle: !0, callback: function () { this.fullscreen.toggle() }, refresh: function (e) { this.fullscreen.refresh(e) }, plugin: "fullscreen" }), kt.DefineIcon("fullscreen", { NAME: "expand", SVG_KEY: "fullscreen" }), kt.DefineIcon("fullscreenCompress", { NAME: "compress", SVG_KEY: "exitFullscreen" }), Object.assign(kt.DEFAULTS, { helpSets: [ { title: "Inline Editor", commands: [ { val: "OSkeyE", desc: "Show the editor" }] }, { title: "Common actions", commands: [ { val: "OSkeyC", desc: "Copy" }, { val: "OSkeyX", desc: "Cut" }, { val: "OSkeyV", desc: "Paste" }, { val: "OSkeyZ", desc: "Undo" }, { val: "OSkeyShift+Z", desc: "Redo" }, { val: "OSkeyK", desc: "Insert Link" }, { val: "OSkeyP", desc: "Insert Image" }] }, { title: "Basic Formatting", commands: [ { val: "OSkeyA", desc: "Select All" }, { val: "OSkeyB", desc: "Bold" }, { val: "OSkeyI", desc: "Italic" }, { val: "OSkeyU", desc: "Underline" }, { val: "OSkeyS", desc: "Strikethrough" }, { val: "OSkey]", desc: "Increase Indent" }, { val: "OSkey[", desc: "Decrease Indent" }] }, { title: "Quote", commands: [ { val: "OSkey'", desc: "Increase quote level" }, { val: "OSkeyShift+'", desc: "Decrease quote level" }] }, { title: "Image / Video", commands: [ { val: "OSkey+", desc: "Resize larger" }, { val: "OSkey-", desc: "Resize smaller" }] }, { title: "Table", commands: [ { val: "Alt+Space", desc: "Select table cell" }, { val: "Shift+Left/Right arrow", desc: "Extend selection one cell" }, { val: "Shift+Up/Down arrow", desc: "Extend selection one row" }] }, { title: "Navigation", commands: [ { val: "OSkey/", desc: "Shortcuts" }, { val: "Alt+F10", desc: "Focus popup / toolbar" }, { val: "Esc", desc: "Return focus to previous position" }] }] }), kt.PLUGINS.help = function (s) { var r, a = s.$, o = "help"; return { _init: function e() {}, show: function l() { if (!r) { var e = "

    ".concat(s.language.translate("Shortcuts"), "

    "), t = function i() { for (var e = '
    ', t = 0; t < s.opts.helpSets.length; t++) { var n = s.opts.helpSets[t], r = ""; r += ""), r += ""; for (var a = 0; a < n.commands.length; a++) { var o = n.commands[a]; r += "", r += ""), r += ""), r += "" } e += r += "
    ".concat(s.language.translate(n.title), "
    ".concat(s.language.translate(o.desc), "".concat(o.val.replace("OSkey", s.helpers.isMac() ? "⌘" : "Ctrl+"), "
    " } return e += "
    " }(), n = s.modals.create(o, e, t); r = n.$modal, s.events.$on(a(s.o_win), "resize", function () { s.modals.resize(o) }) } s.modals.show(o), s.modals.resize(o) }, hide: function t() { s.modals.hide(o) } } }, kt.DefineIcon("help", { NAME: "question", SVG_KEY: "help" }), kt.RegisterShortcut(kt.KEYCODE.SLASH, "help", null, "/"), kt.RegisterCommand("help", { title: "Help", icon: "help", undo: !1, focus: !1, modal: !0, callback: function () { this.help.show() }, plugin: "help", showOnMobile: !1 }), Object.assign(kt.POPUP_TEMPLATES, { "image.insert": "[_BUTTONS_][_UPLOAD_LAYER_][_BY_URL_LAYER_][_PROGRESS_BAR_]", "image.edit": "[_BUTTONS_]", "image.alt": "[_BUTTONS_][_ALT_LAYER_]", "image.size": "[_BUTTONS_][_SIZE_LAYER_]" }), Object.assign(kt.DEFAULTS, { imageInsertButtons: ["imageBack", "|", "imageUpload", "imageByURL"], imageEditButtons: ["imageReplace", "imageAlign", "imageCaption", "imageRemove", "imageLink", "linkOpen", "linkEdit", "linkRemove", "-", "imageDisplay", "imageStyle", "imageAlt", "imageSize"], imageAltButtons: ["imageBack", "|"], imageSizeButtons: ["imageBack", "|"], imageUpload: !0, imageUploadURL: null, imageCORSProxy: "https://cors-anywhere.froala.com", imageUploadRemoteUrls: !0, imageUploadParam: "file", imageUploadParams: {}, imageUploadToS3: !1, imageUploadToAzure: !1, imageUploadMethod: "POST", imageMaxSize: 10485760, imageAllowedTypes: ["jpeg", "jpg", "png", "gif", "webp"], imageResize: !0, imageResizeWithPercent: !1, imageRoundPercent: !1, imageDefaultWidth: 300, imageDefaultAlign: "center", imageDefaultDisplay: "block", imageSplitHTML: !1, imageStyles: { "fr-rounded": "Rounded", "fr-bordered": "Bordered", "fr-shadow": "Shadow" }, imageMove: !0, imageMultipleStyles: !0, imageTextNear: !0, imagePaste: !0, imagePasteProcess: !1, imageMinWidth: 16, imageOutputSize: !1, imageDefaultMargin: 5, imageAddNewLine: !1 }), kt.PLUGINS.image = function (y) { var L, l, c, d, s, n, _ = y.$, w = "https://i.froala.com/upload", t = !1, r = 1, p = 2, u = 3, h = 4, A = 5, T = 6, a = {}; function f() { var e = y.popups.get("image.insert").find(".fr-image-by-url-layer input"); e.val(""), L && e.val(L.attr("src")), e.trigger("change") } function o() { var e = y.popups.get("image.edit"); if (e || (e = M()), e) { var t = ye(); Le() && (t = t.find(".fr-img-wrap")), y.popups.setContainer("image.edit", y.$sc), y.popups.refresh("image.edit"); var n = t.offset().left + t.outerWidth() / 2, r = (function a(e) { for (var t = 0; e;) { if ("BODY" == e.tagName) { var n = e.scrollTop || document.documentElement.scrollTop; t += e.offsetTop - n + e.clientTop } else t += e.offsetTop - e.scrollTop + e.clientTop; e = e.offsetParent } return { y: t } }(L[0]).y + t.outerHeight()) / 2.5; t.offset().top < 0 || !y.opts.height || y.helpers.isMobile() || y.opts.iframe ? r = t.offset().top + t.outerHeight() : Le() && y.opts.height && (r = t.offset().top + t.outerHeight() / 4), L.hasClass("fr-uploading") ? O() : y.popups.show("image.edit", n, r, t.outerHeight(), !0) } } function g() { N() } function i(e) { 0 < e.parents(".fr-img-caption").length && (e = e.parents(".fr-img-caption").first()); var t = e.hasClass("fr-dib") ? "block" : e.hasClass("fr-dii") ? "inline" : null, n = e.hasClass("fr-fil") ? "left" : e.hasClass("fr-fir") ? "right" : me(e); ge(e, t, n), e.removeClass("fr-dib fr-dii fr-fir fr-fil") } function m() { for (var e, t = "IMG" == y.el.tagName ? [y.el] : y.el.querySelectorAll("img"), n = 0; n < t.length; n++) { var r = _(t[n]); !y.opts.htmlUntouched && y.opts.useClasses ? ((y.opts.imageDefaultAlign || y.opts.imageDefaultDisplay) && (0 < (e = r).parents(".fr-img-caption").length && (e = e.parents(".fr-img-caption").first()), e.hasClass("fr-dii") || e.hasClass("fr-dib") || (e.addClass("fr-fi".concat(me(e)[0])), e.addClass("fr-di".concat(ve(e)[0])), e.css("margin", ""), e.css("float", ""), e.css("display", ""), e.css("z-index", ""), e.css("position", ""), e.css("overflow", ""), e.css("vertical-align", ""))), y.opts.imageTextNear || (0 < r.parents(".fr-img-caption").length ? r.parents(".fr-img-caption").first().removeClass("fr-dii").addClass("fr-dib") : r.removeClass("fr-dii").addClass("fr-dib"))) : y.opts.htmlUntouched || y.opts.useClasses || (y.opts.imageDefaultAlign || y.opts.imageDefaultDisplay) && i(r), y.opts.iframe && r.on("load", y.size.syncIframe) } } function v(e) { void 0 === e && (e = !0); var t, n = Array.prototype.slice.call(y.el.querySelectorAll("img")), r = []; for (t = 0; t < n.length; t++) if (r.push(n[t].getAttribute("src")), _(n[t]).toggleClass("fr-draggable", y.opts.imageMove), "" === n[t].getAttribute("class") && n[t].removeAttribute("class"), "" === n[t].getAttribute("style") && n[t].removeAttribute("style"), n[t].parentNode && n[t].parentNode.parentNode && y.node.hasClass(n[t].parentNode.parentNode, "fr-img-caption")) { var a = n[t].parentNode.parentNode; y.browser.mozilla || a.setAttribute("contenteditable", !1), a.setAttribute("draggable", !1), a.classList.add("fr-draggable"); var o = n[t].nextSibling; o && !y.browser.mozilla && o.setAttribute("contenteditable", !0) } if (s) for (t = 0; t < s.length; t++) r.indexOf(s[t].getAttribute("src")) < 0 && y.events.trigger("image.removed", [_(s[t])]); if (s && e) { var i = []; for (t = 0; t < s.length; t++) i.push(s[t].getAttribute("src")); for (t = 0; t < n.length; t++) i.indexOf(n[t].getAttribute("src")) < 0 && y.events.trigger("image.loaded", [_(n[t])]) } s = n } function S() { if (l || function i() { var e; y.shared.$image_resizer ? (l = y.shared.$image_resizer, d = y.shared.$img_overlay, y.events.on("destroy", function () { _("body").first().append(l.removeClass("fr-active")) }, !0)) : (y.shared.$image_resizer = _(document.createElement("div")).attr("class", "fr-image-resizer"), l = y.shared.$image_resizer, y.events.$on(l, "mousedown", function (e) { e.stopPropagation() }, !0), y.opts.imageResize && (l.append(b("nw") + b("ne") + b("sw") + b("se")), y.shared.$img_overlay = _(document.createElement("div")).attr("class", "fr-image-overlay"), d = y.shared.$img_overlay, e = l.get(0).ownerDocument, _(e).find("body").first().append(d))); y.events.on("shared.destroy", function () { l.html("").removeData().remove(), l = null, y.opts.imageResize && (d.remove(), d = null) }, !0), y.helpers.isMobile() || y.events.$on(_(y.o_win), "resize", function () { L && !L.hasClass("fr-uploading") ? fe(!0) : L && (S(), be(), O(!1)) }); if (y.opts.imageResize) { e = l.get(0).ownerDocument, y.events.$on(l, y._mousedown, ".fr-handler", E), y.events.$on(_(e), y._mousemove, k), y.events.$on(_(e.defaultView || e.parentWindow), y._mouseup, x), y.events.$on(d, "mouseleave", x); var r = 1, a = null, o = 0; y.events.on("keydown", function (e) { if (L) { var t = -1 != navigator.userAgent.indexOf("Mac OS X") ? e.metaKey : e.ctrlKey, n = e.which; (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == kt.KEYCODE.EQUALS || y.browser.mozilla && n == kt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = ee.call(this, e, 1, 1, r) : (n == kt.KEYCODE.HYPHEN || y.browser.mozilla && n == kt.KEYCODE.FF_HYPHEN) && t && !e.altKey ? r = ee.call(this, e, 2, -1, r) : y.keys.ctrlKey(e) || n != kt.KEYCODE.ENTER || (L.before("
    "), B(L)), a = n, o = e.timeStamp } }, !0), y.events.on("keyup", function () { r = 1 }) } }(), !L) return !1; var e = y.$wp || y.$sc; e.append(l), l.data("instance", y); var t = e.scrollTop() - ("static" != e.css("position") ? e.offset().top : 0), n = e.scrollLeft() - ("static" != e.css("position") ? e.offset().left : 0); n -= y.helpers.getPX(e.css("border-left-width")), t -= y.helpers.getPX(e.css("border-top-width")), y.$el.is("img") && y.$sc.is("body") && (n = t = 0); var r = ye(); Le() && (r = r.find(".fr-img-wrap")); var a = 0, o = 0; y.opts.iframe && (a = y.helpers.getPX(y.$wp.find(".fr-iframe").css("padding-top")), o = y.helpers.getPX(y.$wp.find(".fr-iframe").css("padding-left"))), l.css("top", (y.opts.iframe ? r.offset().top + a : r.offset().top + t) - 1).css("left", (y.opts.iframe ? r.offset().left + o : r.offset().left + n) - 1).css("width", r.get(0).getBoundingClientRect().width).css("height", r.get(0).getBoundingClientRect().height).addClass("fr-active") } function b(e) { return '
    ') } function C(e) { Le() ? L.parents(".fr-img-caption").css("width", e) : L.css("width", e) } function E(e) { if (!y.core.sameInstance(l)) return !0; if (e.preventDefault(), e.stopPropagation(), y.$el.find("img.fr-error").left) return !1; y.undo.canDo() || y.undo.saveStep(); var t = e.pageX || e.originalEvent.touches[0].pageX; if ("mousedown" == e.type) { var n = y.$oel.get(0).ownerDocument, r = n.defaultView || n.parentWindow, a = !1; try { a = r.location != r.parent.location && !(r.$ && r.$.FE) } catch (s) {} a && r.frameElement && (t += y.helpers.getPX(_(r.frameElement).offset().left) + r.frameElement.clientLeft) }(c = _(this)).data("start-x", t), c.data("start-width", L.width()), c.data("start-height", L.height()); var o = L.width(); if (y.opts.imageResizeWithPercent) { var i = L.parentsUntil(y.$el, y.html.blockTagsQuery()).get(0) || y.el; o = (o / _(i).outerWidth() * 100).toFixed(2) + "%" } C(o), d.show(), y.popups.hideAll(), he() } function k(e) { if (!y.core.sameInstance(l)) return !0; var t; if (c && L) { if (e.preventDefault(), y.$el.find("img.fr-error").left) return !1; var n = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null); if (!n) return !1; var r = n - c.data("start-x"), a = c.data("start-width"); if ((c.hasClass("fr-hnw") || c.hasClass("fr-hsw")) && (r = 0 - r), y.opts.imageResizeWithPercent) { var o = L.parentsUntil(y.$el, y.html.blockTagsQuery()).get(0) || y.el; a = ((a + r) / _(o).outerWidth() * 100).toFixed(2), y.opts.imageRoundPercent && (a = Math.round(a)), C("".concat(a, "%")), (t = Le() ? (y.helpers.getPX(L.parents(".fr-img-caption").css("width")) / _(o).outerWidth() * 100).toFixed(2) : (y.helpers.getPX(L.css("width")) / _(o).outerWidth() * 100).toFixed(2)) === a || y.opts.imageRoundPercent || C("".concat(t, "%")), L.css("height", "").removeAttr("height") } else a + r >= y.opts.imageMinWidth && (C(a + r), t = Le() ? y.helpers.getPX(L.parents(".fr-img-caption").css("width")) : y.helpers.getPX(L.css("width"))), t !== a + r && C(t), ((L.attr("style") || "").match(/(^height:)|(; *height:)/) || L.attr("height")) && (L.css("height", c.data("start-height") * L.width() / c.data("start-width")), L.removeAttr("height")); S(), y.events.trigger("image.resize", [Ee()]) } } function x(e) { if (!y.core.sameInstance(l)) return !0; if (c && L) { if (e && e.stopPropagation(), y.$el.find("img.fr-error").left) return !1; c = null, d.hide(), S(), o(), y.undo.saveStep(), y.events.trigger("image.resizeEnd", [Ee()]) } else l.removeClass("fr-active") } function R(e, t, n) { y.edit.on(), L && L.addClass("fr-error"), a[e] ? D(y.language.translate(a[e])) : D(y.language.translate("Something went wrong. Please try again.")), !L && n && te(n), y.events.trigger("image.error", [ { code: e, message: a[e] }, t, n]) } function M(e) { if (e) return y.$wp && y.events.$on(y.$wp, "scroll.image-edit", function () { L && y.popups.isVisible("image.edit") && (y.events.disableBlur(), o()) }), !0; var t = ""; if (0 < y.opts.imageEditButtons.length) { var n = { buttons: t += '
    \n '.concat(y.button.buildList(y.opts.imageEditButtons), "\n
    ") }; return y.popups.create("image.edit", n) } return !1 } function O(e) { var t = y.popups.get("image.insert"); if (t || (t = Y()), t.find(".fr-layer.fr-active").removeClass("fr-active").addClass("fr-pactive"), t.find(".fr-image-progress-bar-layer").addClass("fr-active"), t.find(".fr-buttons").hide(), L) { var n = ye(); y.popups.setContainer("image.insert", y.$sc); var r = n.offset().left, a = n.offset().top + n.height(); y.popups.show("image.insert", r, a, n.outerHeight()) } void 0 === e && I(y.language.translate("Uploading"), 0) } function N(e) { var t = y.popups.get("image.insert"); if (t && (t.find(".fr-layer.fr-pactive").addClass("fr-active").removeClass("fr-pactive"), t.find(".fr-image-progress-bar-layer").removeClass("fr-active"), t.find(".fr-buttons").show(), e || y.$el.find("img.fr-error").length)) { if (y.events.focus(), y.$el.find("img.fr-error").length && (y.$el.find("img.fr-error").remove(), y.undo.saveStep(), y.undo.run(), y.undo.dropRedo()), !y.$wp && L) { var n = L; fe(!0), y.selection.setAfter(n.get(0)), y.selection.restore() } y.popups.hide("image.insert") } } function I(e, t) { var n = y.popups.get("image.insert"); if (n) { var r = n.find(".fr-image-progress-bar-layer"); r.find("h3").text(e + (t ? " ".concat(t, "%") : "")), r.removeClass("fr-error"), t ? (r.find("div").removeClass("fr-indeterminate"), r.find("div > span").css("width", "".concat(t, "%"))) : r.find("div").addClass("fr-indeterminate") } } function D(e) { O(); var t = y.popups.get("image.insert").find(".fr-image-progress-bar-layer"); t.addClass("fr-error"); var n = t.find("h3"); n.text(e), y.events.disableBlur(), n.focus() } function B(e) { de.call(e.get(0)) } function H() { var e = _(this); y.popups.hide("image.insert"), e.removeClass("fr-uploading"), e.next().is("br") && e.next().remove(), B(e), y.events.trigger("image.loaded", [e]) } function $(i, e, s, l, c) { l && "string" == typeof l && (l = y.$(l)), y.edit.off(), I(y.language.translate("Loading image")), e && (i = y.helpers.sanitizeURL(i)); var t = new Image; t.onload = function () { var e, t; if (l) { y.undo.canDo() || l.hasClass("fr-uploading") || y.undo.saveStep(); var n = l.data("fr-old-src"); l.data("fr-image-pasted") && (n = null), y.$wp ? ((e = l.clone().removeData("fr-old-src").removeClass("fr-uploading").removeAttr("data-fr-image-pasted")).off("load"), n && l.attr("src", n), !y.opts.trackChangesEnabled || l[0].parentNode && "SPAN" === l[0].parentNode.tagName && l[0].parentNode.hasAttribute("data-tracking") || y.track_changes.replaceSpecialItem(l), l.replaceWith(e)) : e = l; for (var r = e.get(0).attributes, a = 0; a < r.length; a++) { var o = r[a]; 0 === o.nodeName.indexOf("data-") ? e.removeAttr(o.nodeName) : s && s.hasOwnProperty(o.nodeName) && e.removeAttr(o.nodeName) } if (void 0 !== s) for (t in s) s.hasOwnProperty(t) && "link" != t && e.attr("".concat(t), s[t]); e.on("load", H), e.attr("src", i), y.edit.on(), v(!1), y.undo.saveStep(), y.events.disableBlur(), y.$el.blur(), y.events.trigger(n ? "image.replaced" : "image.inserted", [e, c]) } else(e = z(i, s, H)) && (v(!1), y.undo.saveStep(), y.events.disableBlur(), y.$el.blur(), y.events.trigger("image.inserted", [e, c])) }, t.onerror = function () { R(r) }, O(y.language.translate("Loading image")), t.src = i } function P(e, t, n) { I(y.language.translate("Loading image")); var r = this.status, a = this.response, o = this.responseXML, i = this.responseText; try { if (y.opts.imageUploadToS3 || y.opts.imageUploadToAzure) if (201 == r) { var s; if (y.opts.imageUploadToAzure) { if (!1 === y.events.trigger("image.uploadedToAzure", [this.responseURL, n, a], !0)) return y.edit.on(), !1; s = t } else s = function c(e) { try { var t = _(e).find("Location").text(), n = _(e).find("Key").text(); return !1 === y.events.trigger("image.uploadedToS3", [t, n, e], !0) ? (y.edit.on(), !1) : t } catch (r) { return R(h, e), !1 } }(o); s && $(s, !1, [], e, a || o) } else R(h, a || o, e); else if (200 <= r && r < 300) { var l = function d(e) { try { if (!1 === y.events.trigger("image.uploaded", [e], !0)) return y.edit.on(), !1; var t = JSON.parse(e); return t.link ? t : (R(p, e), !1) } catch (n) { return R(h, e), !1 } }(i); l && $(l.link, !1, l, e, a || i) } else R(u, a || i, e) } catch (f) { R(h, a || i, e) } } function F() { R(h, this.response || this.responseText || this.responseXML) } function U(e) { if (e.lengthComputable) { var t = e.loaded / e.total * 100 | 0; I(y.language.translate("Uploading"), t) } } function z(e, t, n) { var r, a = _(document.createElement("img")).attr("src", e); if (t && void 0 !== t) for (r in t) t.hasOwnProperty(r) && "link" != r && (" data-".concat(r, '="').concat(t[r], '"'), a.attr("".concat(r), t[r])); var o = y.opts.imageDefaultWidth; o && "auto" != o && (o = y.opts.imageResizeWithPercent ? "100%" : "".concat(o, "px")), a.attr("style", o ? "width: ".concat(o, ";") : ""), ge(a, y.opts.imageDefaultDisplay, y.opts.imageDefaultAlign), a.on("load", n), a.on("error", n), y.edit.on(), y.events.focus(!0), y.selection.restore(), y.undo.saveStep(), y.opts.imageSplitHTML ? y.markers.split() : y.markers.insert(), y.html.wrap(); var i = y.$el.find(".fr-marker"); if (i.length) i.parent().is("hr") && i.parent().after(i), y.node.isLastSibling(i) && i.parent().hasClass("fr-deletable") && i.insertAfter(i.parent()), i.replaceWith(a); else { if (y.opts.trackChangesEnabled) return N(!0), !1; y.$el.append(a) } return y.selection.clear(), a } function K() { y.edit.on(), N(!0) } function V(e, t) { if (void 0 !== e && 0 < e.length) { if (!1 === y.events.trigger("image.beforeUpload", [e, t])) return !1; var n, r = e[0]; if (!(null !== y.opts.imageUploadURL && y.opts.imageUploadURL != w || y.opts.imageUploadToS3 || y.opts.imageUploadToAzure)) return function C(a, o) { var i = new FileReader; i.onload = function () { var e = i.result; if (i.result.indexOf("svg+xml") < 0) { for (var t = atob(i.result.split(",")[1]), n = [], r = 0; r < t.length; r++) n.push(t.charCodeAt(r)); e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], { type: a.type })), o && o.data("fr-old-src", o.attr("src")), y.image.insert(e, !1, null, o) } else y.image.insert(e, null, null, y.image.get()) }, O(), i.readAsDataURL(a) }(r, t || L), !1; if (r.name || (r.name = (new Date).getTime() + "." + (r.type || "image/jpeg").replace(/image\//g, "")), r.size > y.opts.imageMaxSize) return R(A), !1; if (y.opts.imageAllowedTypes.indexOf(r.type.replace(/image\//g, "")) < 0) return R(T), !1; if (y.drag_support.formdata && (n = y.drag_support.formdata ? new FormData : null), n) { var a; if (!1 !== y.opts.imageUploadToS3) for (a in n.append("key", y.opts.imageUploadToS3.keyStart + (new Date).getTime() + "-" + (r.name || "untitled")), n.append("success_action_status", "201"), n.append("X-Requested-With", "xhr"), n.append("Content-Type", r.type), y.opts.imageUploadToS3.params) y.opts.imageUploadToS3.params.hasOwnProperty(a) && n.append(a, y.opts.imageUploadToS3.params[a]); for (a in y.opts.imageUploadParams) y.opts.imageUploadParams.hasOwnProperty(a) && n.append(a, y.opts.imageUploadParams[a]); n.append(y.opts.imageUploadParam, r, r.name); var o, i, s = y.opts.imageUploadURL, l = y.opts.imageUploadMethod; y.opts.imageUploadToS3 && (s = y.opts.imageUploadToS3.uploadURL ? y.opts.imageUploadToS3.uploadURL : "https://".concat(y.opts.imageUploadToS3.region, ".amazonaws.com/").concat(y.opts.imageUploadToS3.bucket)), y.opts.imageUploadToAzure && (o = s = y.opts.imageUploadToAzure.uploadURL ? "".concat(y.opts.imageUploadToAzure.uploadURL, "/").concat(r.name) : encodeURI("https://".concat(y.opts.imageUploadToAzure.account, ".blob.core.windows.net/").concat(y.opts.imageUploadToAzure.container, "/").concat(r.name)), y.opts.imageUploadToAzure.SASToken && (s += y.opts.imageUploadToAzure.SASToken), l = "PUT"); var c = y.core.getXHR(s, l); if (y.opts.imageUploadToAzure) { var d = (new Date).toUTCString(); if (!y.opts.imageUploadToAzure.SASToken && y.opts.imageUploadToAzure.accessKey) { var f = y.opts.imageUploadToAzure.account, p = y.opts.imageUploadToAzure.container; if (y.opts.imageUploadToAzure.uploadURL) { var u = y.opts.imageUploadToAzure.uploadURL.split("/"); p = u.pop(), f = u.pop().split(".")[0] } var h = "x-ms-blob-type:BlockBlob\nx-ms-date:".concat(d, "\nx-ms-version:2019-07-07"), g = encodeURI("/" + f + "/" + p + "/" + r.name), m = l + "\n\n\n" + r.size + "\n\n" + r.type + "\n\n\n\n\n\n\n" + h + "\n" + g, v = y.cryptoJSPlugin.cryptoJS.HmacSHA256(m, y.cryptoJSPlugin.cryptoJS.enc.Base64.parse(y.opts.imageUploadToAzure.accessKey)).toString(y.cryptoJSPlugin.cryptoJS.enc.Base64), b = "SharedKey " + f + ":" + v; i = v, c.setRequestHeader("Authorization", b) } for (a in c.setRequestHeader("x-ms-version", "2019-07-07"), c.setRequestHeader("x-ms-date", d), c.setRequestHeader("Content-Type", r.type), c.setRequestHeader("x-ms-blob-type", "BlockBlob"), y.opts.imageUploadParams) y.opts.imageUploadParams.hasOwnProperty(a) && c.setRequestHeader(a, y.opts.imageUploadParams[a]); for (a in y.opts.imageUploadToAzure.params) y.opts.imageUploadToAzure.params.hasOwnProperty(a) && c.setRequestHeader(a, y.opts.imageUploadToAzure.params[a]) }! function E(t, n, r, a, o, i) { function s() { var e = _(this); e.off("load"), e.addClass("fr-uploading"), e.next().is("br") && e.next().remove(), y.placeholder.refresh(), B(e), S(), O(), y.edit.off(), t.onload = function () { P.call(t, e, o, i) }, t.onerror = F, t.upload.onprogress = U, t.onabort = K, _(e.off("abortUpload")).on("abortUpload", function () { 4 != t.readyState && (t.abort(), a ? (a.attr("src", a.data("fr-old-src")), a.removeClass("fr-uploading")) : e.remove(), fe(!0)) }), t.send(y.opts.imageUploadToAzure ? r : n) } var l = new FileReader; l.onload = function () { var e = l.result; if (l.result.indexOf("svg+xml") < 0) { for (var t = atob(l.result.split(",")[1]), n = [], r = 0; r < t.length; r++) n.push(t.charCodeAt(r)); e = window.URL.createObjectURL(new Blob([new Uint8Array(n)], { type: "image/jpeg" })) } a ? (a.on("load", s), a.on("error", function () { s(), _(this).off("error") }), y.edit.on(), y.undo.saveStep(), a.data("fr-old-src", a.attr("src")), a.attr("src", e)) : z(e, null, s) }, l.readAsDataURL(r) }(c, n, r, t || L, o, i) } } } function W(e) { if (e.is("img") && 0 < e.parents(".fr-img-caption").length) return e.parents(".fr-img-caption") } function G(e) { var t = e.originalEvent.dataTransfer; if (t && t.files && t.files.length) { var n = t.files[0]; if (n && n.type && -1 !== n.type.indexOf("image") && 0 <= y.opts.imageAllowedTypes.indexOf(n.type.replace(/image\//g, ""))) { if (!y.opts.imageUpload) return e.preventDefault(), e.stopPropagation(), !1; y.markers.remove(), y.markers.insertAtPoint(e.originalEvent), y.$el.find(".fr-marker").replaceWith(kt.MARKERS), 0 === y.$el.find(".fr-marker").length && y.selection.setAtEnd(y.el), y.popups.hideAll(); var r = y.popups.get("image.insert"); r || (r = Y()), y.popups.setContainer("image.insert", y.$sc); var a = e.originalEvent.pageX, o = e.originalEvent.pageY; if (y.opts.iframe) { var i = y.helpers.getPX(y.$wp.find(".fr-iframe").css("padding-top")), s = y.helpers.getPX(y.$wp.find(".fr-iframe").css("padding-left")); o += y.$iframe.offset().top + i, a += y.$iframe.offset().left + s } return y.popups.show("image.insert", a, o), O(), 0 <= y.opts.imageAllowedTypes.indexOf(n.type.replace(/image\//g, "")) ? (fe(!0), V(t.files)) : R(T), e.preventDefault(), e.stopPropagation(), !1 } } } function Y(e) { if (e) return y.popups.onRefresh("image.insert", f), y.popups.onHide("image.insert", g), !0; var t, n, r = ""; y.opts.imageUpload || -1 === y.opts.imageInsertButtons.indexOf("imageUpload") || y.opts.imageInsertButtons.splice(y.opts.imageInsertButtons.indexOf("imageUpload"), 1); var a = y.button.buildList(y.opts.imageInsertButtons); "" !== a && (r = '
    '.concat(a, "
    ")); var o = y.opts.imageInsertButtons.indexOf("imageUpload"), i = y.opts.imageInsertButtons.indexOf("imageByURL"), s = ""; 0 <= o && (t = " fr-active", 0 <= i && i < o && (t = ""), s = '
    ').concat(y.language.translate("Drop image"), "
    (").concat(y.language.translate("or click"), ')
    ')); var l = ""; 0 <= i && (t = " fr-active", 0 <= o && o < i && (t = ""), l = '
    ")); var c = { buttons: r, upload_layer: s, by_url_layer: l, progress_bar: '

    Uploading

    ' }; return 1 <= y.opts.imageInsertButtons.length && (n = y.popups.create("image.insert", c)), y.$wp && y.events.$on(y.$wp, "scroll", function () { L && y.popups.isVisible("image.insert") && be() }), function d(r) { y.events.$on(r, "dragover dragenter", ".fr-image-upload-layer", function (e) { return _(this).addClass("fr-drop"), (y.browser.msie || y.browser.edge) && e.preventDefault(), !1 }, !0), y.events.$on(r, "dragleave dragend", ".fr-image-upload-layer", function (e) { return _(this).removeClass("fr-drop"), (y.browser.msie || y.browser.edge) && e.preventDefault(), !1 }, !0), y.events.$on(r, "drop", ".fr-image-upload-layer", function (e) { e.preventDefault(), e.stopPropagation(), _(this).removeClass("fr-drop"); var t = e.originalEvent.dataTransfer; if (t && t.files) { var n = r.data("instance") || y; n.events.disableBlur(), n.image.upload(t.files), n.events.enableBlur() } }, !0), y.helpers.isIOS() && y.events.$on(r, "touchstart", '.fr-image-upload-layer input[type="file"]', function () { _(this).trigger("click") }, !0), y.events.$on(r, "change", '.fr-image-upload-layer input[type="file"]', function () { if (this.files) { var e = r.data("instance") || y; e.events.disableBlur(), r.find("input:focus").blur(), e.events.enableBlur(), e.image.upload(this.files, L) } _(this).val("") }, !0) }(n), n } function j() { L && y.popups.get("image.alt").find("input").val(L.attr("alt") || "").trigger("change") } function q() { var e = y.popups.get("image.alt"); e || (e = Z()), N(), y.popups.refresh("image.alt"), y.popups.setContainer("image.alt", y.$sc); var t = ye(); Le() && (t = t.find(".fr-img-wrap")); var n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.outerHeight(); y.popups.show("image.alt", n, r, t.outerHeight(), !0) } function Z(e) { if (e) return y.popups.onRefresh("image.alt", j), !0; var t = { buttons: '
    '.concat(y.button.buildList(y.opts.imageAltButtons), "
    "), alt_layer: '
    ") }, n = y.popups.create("image.alt", t); return y.$wp && y.events.$on(y.$wp, "scroll.image-alt", function () { L && y.popups.isVisible("image.alt") && q() }), n } function X() { var e = y.popups.get("image.size"), t = L.get(0).style.height ? L.get(0).style.height : "auto", n = L.get(0).style.width ? L.get(0).style.width : "auto"; if (L) if (Le()) { var r = L.parent(); r.get(0).style.width || (r = L.parent().parent()), e.find('input[name="width"]').val(n).trigger("change"), e.find('input[name="height"]').val(t).trigger("change") } else e.find('input[name="width"]').val(n).trigger("change"), e.find('input[name="height"]').val(t).trigger("change") } function Q() { var e = y.popups.get("image.size"); e || (e = J()), N(), y.popups.refresh("image.size"), y.popups.setContainer("image.size", y.$sc); var t = ye(); Le() && (t = t.find(".fr-img-wrap")); var n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.outerHeight(); y.popups.show("image.size", n, r, t.outerHeight(), !0) } function J(e) { if (e) return y.popups.onRefresh("image.size", X), !0; var t = { buttons: '
    '.concat(y.button.buildList(y.opts.imageSizeButtons), "
    "), size_layer: '
    ") }, n = y.popups.create("image.size", t); return y.$wp && y.events.$on(y.$wp, "scroll.image-size", function () { L && y.popups.isVisible("image.size") && Q() }), n } function ee(e, t, n, r) { return e.pageX = t, E.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), k.call(this, e), x.call(this, e), ++r } function te(e) { if (e = e || ye(), y.opts.trackChangesEnabled && !y.helpers.isMobile() && (!e[0].parentNode || "SPAN" !== e[0].parentNode.tagName || !e[0].parentNode.hasAttribute("data-tracking"))) return y.track_changes.removeSpecialItem(e), y.popups.hideAll(), void fe(!0); e && !1 !== y.events.trigger("image.beforeRemove", [e]) && (y.popups.hideAll(), Ce(), fe(!0), y.undo.canDo() || y.undo.saveStep(), e.get(0) == y.el ? e.removeAttr("src") : (e.get(0).parentNode && "A" == e.get(0).parentNode.tagName ? (y.selection.setBefore(e.get(0).parentNode) || y.selection.setAfter(e.get(0).parentNode) || e.parent().after(kt.MARKERS), _(e.get(0).parentNode).remove()) : (y.selection.setBefore(e.get(0)) || y.selection.setAfter(e.get(0)) || e.after(kt.MARKERS), e.remove()), y.html.fillEmptyBlocks(), y.selection.restore()), y.undo.saveStep()) } function ne(e) { var t = e.which; if (L && (t == kt.KEYCODE.BACKSPACE || t == kt.KEYCODE.DELETE)) return e.preventDefault(), e.stopPropagation(), te(), !1; if (L && t == kt.KEYCODE.ESC) { var n = L; return fe(!0), y.selection.setAfter(n.get(0)), y.selection.restore(), e.preventDefault(), !1 } if (!L || t != kt.KEYCODE.ARROW_LEFT && t != kt.KEYCODE.ARROW_RIGHT) return L && t === kt.KEYCODE.TAB ? (e.preventDefault(), e.stopPropagation(), fe(!0), !1) : L && t != kt.KEYCODE.F10 && !y.keys.isBrowserAction(e) ? (e.preventDefault(), e.stopPropagation(), !1) : void 0; var r = L.get(0); return fe(!0), t == kt.KEYCODE.ARROW_LEFT ? y.selection.setBefore(r) : y.selection.setAfter(r), y.selection.restore(), e.preventDefault(), !1 } function re(e) { if (e && "IMG" == e.tagName) { if (y.node.hasClass(e, "fr-uploading") || y.node.hasClass(e, "fr-error") ? e.parentNode.removeChild(e) : y.node.hasClass(e, "fr-draggable") && e.classList.remove("fr-draggable"), e.parentNode && e.parentNode.parentNode && y.node.hasClass(e.parentNode.parentNode, "fr-img-caption")) { var t = e.parentNode.parentNode; t.removeAttribute("contenteditable"), t.removeAttribute("draggable"), t.classList.remove("fr-draggable"); var n = e.nextSibling; n && n.removeAttribute("contenteditable") } } else if (e && e.nodeType == Node.ELEMENT_NODE) for (var r = e.querySelectorAll("img.fr-uploading, img.fr-error, img.fr-draggable"), a = 0; a < r.length; a++) re(r[a]) } function ae(e) { if (!1 === y.events.trigger("image.beforePasteUpload", [e])) return !1; L = _(e), S(), o(), be(), O(), L.on("load", function () { var t = []; S(), _(y.popups.get("image.insert").get(0)).find("div.fr-active.fr-error").length < 1 && O(), _(this).data("events").filter(function (e) { "load" === e[0] && t.push(e) }), t.length <= 1 && _(this).off("load") }); for (var t = _(e).attr("src").split(","), n = atob(t[1]), r = [], a = 0; a < n.length; a++) r.push(n.charCodeAt(a)); V([new Blob([new Uint8Array(r)], { type: t[0].replace(/data\:/g, "") })], L) } function oe() { y.opts.imagePaste ? y.$el.find("img[data-fr-image-pasted]").each(function (e, r) { if (y.opts.imagePasteProcess) { var t = y.opts.imageDefaultWidth; t && "auto" != t && (t += y.opts.imageResizeWithPercent ? "%" : "px"), _(r).css("width", t).removeClass("fr-dii fr-dib fr-fir fr-fil"), ge(_(r), y.opts.imageDefaultDisplay, y.opts.imageDefaultAlign) } if (0 === r.src.indexOf("data:")) ae(r); else if (0 === r.src.indexOf("blob:") || 0 === r.src.indexOf("http") && y.opts.imageUploadRemoteUrls && y.opts.imageCORSProxy) { var n = new Image; n.crossOrigin = "Anonymous", n.onload = function () { var e, t = y.o_doc.createElement("CANVAS"), n = t.getContext("2d"); t.height = this.naturalHeight, t.width = this.naturalWidth, n.drawImage(this, 0, 0), setTimeout(function () { ae(r) }, 0), e = 2e3 < this.naturalWidth || 1500 < this.naturalHeight ? "jpeg" : "png", r.src = t.toDataURL("image/".concat(e)) }, n.src = (0 === r.src.indexOf("blob:") ? "" : "".concat(y.opts.imageCORSProxy, "/")) + r.src } else 0 !== r.src.indexOf("http") || 0 === r.src.indexOf("https://mail.google.com/mail") ? (y.selection.save(), _(r).remove(), y.selection.restore()) : _(r).removeAttr("data-fr-image-pasted") }) : y.$el.find("img[data-fr-image-pasted]").remove() } function ie(e) { var t = e.target.result, n = y.opts.imageDefaultWidth; n && "auto" != n && (n += y.opts.imageResizeWithPercent ? "%" : "px"), y.undo.saveStep(), y.html.insert('")); var r = y.$el.find('img[data-fr-image-pasted="true"]'); r && ge(r, y.opts.imageDefaultDisplay, y.opts.imageDefaultAlign), y.events.trigger("paste.after") } function se(e, t) { var n = new FileReader; n.onload = function r(e) { var t = y.opts.imageDefaultWidth; t && "auto" != t && (t += y.opts.imageResizeWithPercent ? "%" : "px"), y.html.insert('")); var n = y.$el.find('img[data-fr-image-pasted="true"]'); n && ge(n, y.opts.imageDefaultDisplay, y.opts.imageDefaultAlign), y.events.trigger("paste.after") }(t), n.readAsDataURL(e, t) } function le(e) { if (e && e.clipboardData && e.clipboardData.items) { var t = (e.clipboardData || window.clipboardData).getData("text/html") || "", n = (new DOMParser).parseFromString(t, "text/html").querySelector("img"); if (n) { if (!n) return !1; var r = n.src, a = null; if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, "text/rtf") || e.clipboardData.getData("text/rtf")) a = e.clipboardData.items[0].getAsFile(); else for (var o = 0; o < e.clipboardData.items.length && !(a = e.clipboardData.items[o].getAsFile()); o++); if (a) return se(a, r), !1 } else { var i = null; if (e.clipboardData.types && -1 != [].indexOf.call(e.clipboardData.types, "text/rtf") || e.clipboardData.getData("text/rtf")) i = e.clipboardData.items[0].getAsFile(); else for (var s = 0; s < e.clipboardData.items.length && !(i = e.clipboardData.items[s].getAsFile()); s++); if (i) return function l(e) { var t = new FileReader; t.onload = ie, t.readAsDataURL(e) }(i), !1 } } } function ce(e) { return e = e.replace(/") : _(y.node.blockParent(e.get(0))).after("<".concat(y.html.defaultTag(), ">
    "))) }) })(), "IMG" == y.el.tagName && y.$el.addClass("fr-view"), y.events.$on(y.$el, y.helpers.isMobile() && !y.helpers.isWindowsPhone() ? "touchend" : "click", "IMG" == y.el.tagName ? null : 'img:not([contenteditable="false"])', de), y.helpers.isMobile() && (y.events.$on(y.$el, "touchstart", "IMG" == y.el.tagName ? null : 'img:not([contenteditable="false"])', function () { n = !1 }), y.events.$on(y.$el, "touchmove", function () { n = !0 })), y.$wp ? (y.events.on("window.keydown keydown", ne, !0), y.events.on("keyup", function (e) { if (L && e.which == kt.KEYCODE.ENTER) return !1 }, !0), y.events.$on(y.$el, "keydown", function () { var e = y.selection.element(); (e.nodeType === Node.TEXT_NODE || "BR" == e.tagName && y.node.isLastSibling(e)) && (e = e.parentNode), y.node.hasClass(e, "fr-inner") || (y.node.hasClass(e, "fr-img-caption") || (e = _(e).parents(".fr-img-caption").get(0)), y.node.hasClass(e, "fr-img-caption") && (y.opts.trackChangesEnabled || _(e).after(kt.INVISIBLE_SPACE + kt.MARKERS), y.selection.restore())) })) : y.events.$on(y.$win, "keydown", ne), y.events.on("toolbar.esc", function () { if (L) { if (y.$wp) y.events.disableBlur(), y.events.focus(); else { var e = L; fe(!0), y.selection.setAfter(e.get(0)), y.selection.restore() } return !1 } }, !0), y.events.on("toolbar.focusEditor", function () { if (L) return !1 }, !0), y.events.on("window.cut window.copy", function (e) { if (L && y.popups.isVisible("image.edit") && !y.popups.get("image.edit").find(":focus").length) { var t = ye(); Le() ? (t.before(kt.START_MARKER), t.after(kt.END_MARKER), y.selection.restore(), y.paste.saveCopiedText(t.get(0).outerHTML, t.text())) : (Ce(), y.paste.saveCopiedText(L.get(0).outerHTML, L.attr("alt"))), "copy" == e.type ? setTimeout(function () { B(L) }) : (fe(!0), y.undo.saveStep(), setTimeout(function () { y.undo.saveStep() }, 0)) } }, !0), y.browser.msie && y.events.on("keydown", function (e) { if (!y.selection.isCollapsed() || !L) return !0; var t = e.which; t == kt.KEYCODE.C && y.keys.ctrlKey(e) ? y.events.trigger("window.copy") : t == kt.KEYCODE.X && y.keys.ctrlKey(e) && y.events.trigger("window.cut") }), y.events.$on(_(y.o_win), "keydown", function (e) { var t = e.which; if (L && t == kt.KEYCODE.BACKSPACE) return e.preventDefault(), !1 }), y.events.$on(y.$win, "keydown", function (e) { var t = e.which; L && L.hasClass("fr-uploading") && t == kt.KEYCODE.ESC && L.trigger("abortUpload") }), y.events.on("destroy", function () { L && L.hasClass("fr-uploading") && L.trigger("abortUpload") }), y.events.on("paste.before", le), y.events.on("paste.beforeCleanup", ce), y.events.on("paste.after", oe), y.events.on("html.set", m), y.events.on("html.inserted", m), m(), y.events.on("destroy", function () { s = [] }), y.events.on("html.processGet", re), y.opts.imageOutputSize && y.events.on("html.beforeGet", function () { r = y.el.querySelectorAll("img"); for (var e = 0; e < r.length; e++) { var t = r[e].style.width || _(r[e]).width(), n = r[e].style.height || _(r[e]).height(); t && r[e].setAttribute("width", "".concat(t).replace(/px/, "")), n && r[e].setAttribute("height", "".concat(n).replace(/px/, "")) } }), y.opts.iframe && y.events.on("image.loaded", y.size.syncIframe), y.$wp && (v(), y.events.on("contentChanged", v)), y.events.$on(_(y.o_win), "orientationchange.image", function () { setTimeout(function () { L && B(L) }, 100) }), M(!0), Y(!0), J(!0), Z(!0), y.events.on("node.remove", function (e) { if ("IMG" == e.get(0).tagName) return te(e), !1 }) }, showInsertPopup: function Ae() { var e = y.$tb.find('.fr-command[data-cmd="insertImage"]'), t = y.popups.get("image.insert"); if (t || (t = Y()), N(), !t.hasClass("fr-active")) if (y.popups.refresh("image.insert"), y.popups.setContainer("image.insert", y.$tb), e.isVisible()) { var n = y.button.getPosition(e), r = n.left, a = n.top; y.popups.show("image.insert", r, a, e.outerHeight()) } else y.position.forSelection(t), y.popups.show("image.insert") }, showLayer: function Te(e) { var t, n, r = y.popups.get("image.insert"); if (L || y.opts.toolbarInline) { if (L) { var a = ye(); Le() && (a = a.find(".fr-img-wrap")), n = a.offset().top + a.outerHeight(), t = a.offset().left } } else { var o = y.$tb.find('.fr-command[data-cmd="insertImage"]'); t = o.offset().left, n = o.offset().top + (y.opts.toolbarBottom ? 10 : o.outerHeight() - 10) }!L && y.opts.toolbarInline && (n = r.offset().top - y.helpers.getPX(r.css("margin-top")), r.hasClass("fr-above") && (n += r.outerHeight())), r.find(".fr-layer").removeClass("fr-active"), r.find(".fr-".concat(e, "-layer")).addClass("fr-active"), y.popups.show("image.insert", t, n, L ? L.outerHeight() : 0), y.accessibility.focusPopup(r) }, refreshUploadButton: function Se(e) { var t = y.popups.get("image.insert"); t && t.find(".fr-image-upload-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, refreshByURLButton: function ke(e) { var t = y.popups.get("image.insert"); t && t.find(".fr-image-by-url-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, upload: V, insertByURL: function xe() { var e = y.popups.get("image.insert").find(".fr-image-by-url-layer input"); if (0 < e.val().length) { O(), I(y.language.translate("Loading image")); var t = e.val().trim(); if (y.opts.imageUploadRemoteUrls && y.opts.imageCORSProxy && y.opts.imageUpload) { var n = new XMLHttpRequest; n.onload = function () { 200 == this.status ? V([new Blob([this.response], { type: this.response.type || "image/png" })], L) : R(r) }, n.onerror = function () { $(t, !0, [], L) }, n.open("GET", "".concat(y.opts.imageCORSProxy, "/").concat(t), !0), n.responseType = "blob", n.send() } else $(t, !0, [], L); e.val(""), e.blur() } }, align: function Re(e) { var t = ye(); t.removeClass("fr-fir fr-fil"), !y.opts.htmlUntouched && y.opts.useClasses ? "left" == e ? t.addClass("fr-fil") : "right" == e && t.addClass("fr-fir") : ge(t, ve(), e), Ce(), S(), o(), y.selection.clear() }, refreshAlign: function Me(e) { L && e.find("> *").first().replaceWith(y.icon.create("image-align-".concat(me()))) }, refreshAlignOnShow: function Oe(e, t) { L && t.find('.fr-command[data-param1="'.concat(me(), '"]')).addClass("fr-active").attr("aria-selected", !0) }, display: function Ne(e) { var t = ye(); t.removeClass("fr-dii fr-dib"), !y.opts.htmlUntouched && y.opts.useClasses ? "inline" == e ? t.addClass("fr-dii") : "block" == e && t.addClass("fr-dib") : ge(t, e, me()), Ce(), S(), o(), y.selection.clear() }, refreshDisplayOnShow: function Ie(e, t) { L && t.find('.fr-command[data-param1="'.concat(ve(), '"]')).addClass("fr-active").attr("aria-selected", !0) }, replace: be, back: function e() { L ? (y.events.disableBlur(), _(".fr-popup input:focus").blur(), B(L)) : (y.events.disableBlur(), y.selection.restore(), y.events.enableBlur(), y.popups.hide("image.insert"), y.toolbar.showInline()) }, get: Ee, getEl: ye, insert: $, showProgressBar: O, remove: te, hideProgressBar: N, applyStyle: function De(e, t, n) { if (void 0 === t && (t = y.opts.imageStyles), void 0 === n && (n = y.opts.imageMultipleStyles), !L) return !1; var r = ye(); if (!n) { var a = Object.keys(t); a.splice(a.indexOf(e), 1), r.removeClass(a.join(" ")) } "object" == St(t[e]) ? (r.removeAttr("style"), r.css(t[e].style)) : r.toggleClass(e), B(L) }, showAltPopup: q, showSizePopup: Q, setAlt: function Be(e) { if (L) { var t = y.popups.get("image.alt"); L.attr("alt", e || t.find("input").val() || ""), t.find("input:focus").blur(), B(L) } }, setSize: function He(e, t) { if (L) { var n = y.popups.get("image.size"); e = e || n.find('input[name="width"]').val() || "", t = t || n.find('input[name="height"]').val() || ""; var r = /^[\d]+((px)|%)*$/g; L.removeAttr("width").removeAttr("height"), e.match(r) ? L.css("width", e) : L.css("width", ""), t.match(r) ? L.css("height", t) : L.css("height", ""), Le() && (L.parents(".fr-img-caption").removeAttr("width").removeAttr("height"), e.match(r) ? L.parents(".fr-img-caption").css("width", e) : L.parents(".fr-img-caption").css("width", ""), t.match(r) ? L.parents(".fr-img-caption").css("height", t) : L.parents(".fr-img-caption").css("height", "")), n && n.find("input:focus").blur(), B(L) } }, toggleCaption: function $e() { var e; if (L && !Le()) { ((e = L).parent().is("a") || L.parent().is("p")) && (e = L.parent()); var t, n, r = L.parents("ul") && 0 < L.parents("ul").length ? L.parents("ul") : L.parents("ol") && 0 < L.parents("ol").length ? L.parents("ol") : []; if (0 < r.length) { var a = r.find("li").length, o = L.parents("li"), i = document.createElement("li"); a - 1 === o.index() && (r.append(i), i.innerHTML = " ") } e.attr("style") ? n = -1 < (t = e.attr("style").split(":")).indexOf("width") ? t[t.indexOf("width") + 1].replace(";", "") : "" : e.attr("width") && (n = e.attr("width")); var s = y.opts.imageResizeWithPercent ? (-1 < n.indexOf("px") ? null : n) || "100%" : L.width() + "px"; e.wrap('
    '), e.wrap(''), L.after('").concat(kt.START_MARKER).concat(y.language.translate("Image Caption")).concat(kt.END_MARKER, "")), L.parents(".fr-img-caption").css("width", s), 1 < L.parents(".fr-img-space-wrap").length && (_e(document.querySelector(".fr-img-space-wrap")), _e(document.querySelector(".fr-img-space-wrap2"))), fe(!0), y.selection.restore() } else { if (e = ye(), L.insertBefore(e), null !== e[0].querySelector("a")) { for (var l, c = e[0].querySelector("a"), d = document.createElement("a"), f = 0, p = c.attributes, u = p.length; f < u; f++) l = p[f], d.setAttribute(l.nodeName, l.nodeValue); L.wrap(d) } L.attr("class", e.attr("class").replace("fr-img-caption", "")).attr("style", e.attr("style")), e.remove(), 1 < L.parents(".fr-img-space-wrap").length && (_e(document.querySelector(".fr-img-space-wrap")), _e(document.querySelector(".fr-img-space-wrap2"))), B(L) } }, hasCaption: Le, exitEdit: fe, edit: B } }, kt.DefineIcon("insertImage", { NAME: "image", SVG_KEY: "insertImage" }), kt.RegisterShortcut(kt.KEYCODE.P, "insertImage", null, "P"), kt.RegisterCommand("insertImage", { title: "Insert Image", undo: !1, focus: !0, refreshAfterCallback: !1, popup: !0, callback: function () { this.popups.isVisible("image.insert") ? (this.$el.find(".fr-marker").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("image.insert")) : this.image.showInsertPopup() }, plugin: "image" }), kt.DefineIcon("imageUpload", { NAME: "upload", SVG_KEY: "upload" }), kt.RegisterCommand("imageUpload", { title: "Upload Image", undo: !1, focus: !1, toggle: !0, callback: function () { this.image.showLayer("image-upload") }, refresh: function (e) { this.image.refreshUploadButton(e) } }), kt.DefineIcon("imageByURL", { NAME: "link", SVG_KEY: "insertLink" }), kt.RegisterCommand("imageByURL", { title: "By URL", undo: !1, focus: !1, toggle: !0, callback: function () { this.image.showLayer("image-by-url") }, refresh: function (e) { this.image.refreshByURLButton(e) } }), kt.RegisterCommand("imageInsertByURL", { title: "Insert Image", undo: !0, refreshAfterCallback: !1, callback: function () { this.image.insertByURL() }, refresh: function (e) { this.image.get() ? e.text(this.language.translate("Replace")) : e.text(this.language.translate("Insert")) } }), kt.DefineIcon("imageDisplay", { NAME: "star", SVG_KEY: "imageDisplay" }), kt.RegisterCommand("imageDisplay", { title: "Display", type: "dropdown", options: { inline: "Inline", block: "Break Text" }, callback: function (e, t) { this.image.display(t) }, refresh: function (e) { this.opts.imageTextNear || e.addClass("fr-hidden") }, refreshOnShow: function (e, t) { this.image.refreshDisplayOnShow(e, t) } }), kt.DefineIcon("image-align", { NAME: "align-left", SVG_KEY: "alignLeft" }), kt.DefineIcon("image-align-left", { NAME: "align-left", SVG_KEY: "alignLeft" }), kt.DefineIcon("image-align-right", { NAME: "align-right", SVG_KEY: "alignRight" }), kt.DefineIcon("image-align-center", { NAME: "align-justify", SVG_KEY: "alignCenter" }), kt.DefineIcon("imageAlign", { NAME: "align-justify", SVG_KEY: "alignJustify" }), kt.RegisterCommand("imageAlign", { type: "dropdown", title: "Align", options: { left: "Align Left", center: "None", right: "Align Right" }, html: function () { var e = '" }, callback: function (e, t) { this.image.align(t) }, refresh: function (e) { this.image.refreshAlign(e) }, refreshOnShow: function (e, t) { this.image.refreshAlignOnShow(e, t) } }), kt.DefineIcon("imageReplace", { NAME: "exchange", FA5NAME: "exchange-alt", SVG_KEY: "replaceImage" }), kt.RegisterCommand("imageReplace", { title: "Replace", undo: !1, focus: !1, popup: !0, refreshAfterCallback: !1, callback: function () { this.image.replace() } }), kt.DefineIcon("imageRemove", { NAME: "trash", SVG_KEY: "remove" }), kt.RegisterCommand("imageRemove", { title: "Remove", callback: function () { this.image.remove() } }), kt.DefineIcon("imageBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("imageBack", { title: "Back", undo: !1, focus: !1, back: !0, callback: function () { this.image.back() }, refresh: function (e) { this.$; this.image.get() || this.opts.toolbarInline ? (e.removeClass("fr-hidden"), e.next(".fr-separator").removeClass("fr-hidden")) : (e.addClass("fr-hidden"), e.next(".fr-separator").addClass("fr-hidden")) } }), kt.RegisterCommand("imageDismissError", { title: "OK", undo: !1, callback: function () { this.image.hideProgressBar(!0) } }), kt.DefineIcon("imageStyle", { NAME: "magic", SVG_KEY: "imageClass" }), kt.RegisterCommand("imageStyle", { title: "Style", type: "dropdown", html: function () { var e = '" }, callback: function (e, t) { this.image.applyStyle(t) }, refreshOnShow: function (e, t) { var n = this.$, r = this.image.getEl(); r && t.find(".fr-command").each(function () { var e = n(this).data("param1"), t = r.hasClass(e); n(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } }), kt.DefineIcon("imageAlt", { NAME: "info", SVG_KEY: "imageAltText" }), kt.RegisterCommand("imageAlt", { undo: !1, focus: !1, popup: !0, title: "Alternative Text", callback: function () { this.image.showAltPopup() } }), kt.RegisterCommand("imageSetAlt", { undo: !0, focus: !1, title: "Update", refreshAfterCallback: !1, callback: function () { this.image.setAlt() } }), kt.DefineIcon("imageSize", { NAME: "arrows-alt", SVG_KEY: "imageSize" }), kt.RegisterCommand("imageSize", { undo: !1, focus: !1, popup: !0, title: "Change Size", callback: function () { this.image.showSizePopup() } }), kt.RegisterCommand("imageSetSize", { undo: !0, focus: !1, title: "Update", refreshAfterCallback: !1, callback: function () { this.image.setSize() } }), kt.DefineIcon("imageCaption", { NAME: "commenting", FA5NAME: "comment-alt", SVG_KEY: "imageCaption" }), kt.RegisterCommand("imageCaption", { undo: !0, focus: !1, title: "Image Caption", refreshAfterCallback: !0, callback: function () { this.image.toggleCaption() }, refresh: function (e) { this.image.get() && e.toggleClass("fr-active", this.image.hasCaption()) } }), Object.assign(kt.DEFAULTS, { imageManagerLoadURL: "https://i.froala.com/load-files", imageManagerLoadMethod: "get", imageManagerLoadParams: {}, imageManagerPreloader: null, imageManagerDeleteURL: "", imageManagerDeleteMethod: "post", imageManagerDeleteParams: {}, imageManagerPageSize: 12, imageManagerScrollOffset: 20, imageManagerToggleTags: !0 }), kt.PLUGINS.imageManager = function (s) { var l, c, o, i, d, f, p, u, h, g, m, v = s.$, b = "image_manager", e = 10, C = 11, E = 12, y = 13, L = 14, _ = 15, n = 21, r = 22, a = {}; function w() { var e = v(window).outerWidth(); return e < 768 ? 2 : e < 1200 ? 3 : 4 } function A() { d.empty(); for (var e = 0; e < m; e++) d.append('
    ') } function T() { if (h < p.length && o[0].scrollTop >= o[0].scrollHeight - s.opts.imageManagerScrollOffset - o.outerHeight()) { u++; for (var e = s.opts.imageManagerPageSize * (u - 1); e < Math.min(p.length, s.opts.imageManagerPageSize * u); e++) t(p[e]) } } function t(a) { var o = new Image, i = v(document.createElement("div")).attr("class", "fr-image-container fr-empty fr-image-" + g++).attr("data-loading", s.language.translate("Loading") + "..").attr("data-deleting", s.language.translate("Deleting") + ".."); R(!1), o.onload = function () { i.height(Math.floor(i.width() / o.width * o.height)); var n = v(document.createElement("img")); if (a.thumb) n.attr("src", a.thumb); else { if (I(L, a), !a.url) return I(_, a), !1; n.attr("src", a.url) } if (a.url && n.attr("data-url", a.url), a.tag) if (c.find(".fr-modal-more.fr-not-available").removeClass("fr-not-available"), c.find(".fr-modal-tags").show(), 0 <= a.tag.indexOf(",")) { for (var e = a.tag.split(","), t = 0; t < e.length; t++) e[t] = e[t].trim(), 0 === f.find('a[title="'.concat(e[t], '"]')).length && f.append('').concat(e[t], "")); n.attr("data-tag", e.join()) } else 0 === f.find('a[title="'.concat(a.tag.trim(), '"]')).length && f.append('').concat(a.tag.trim(), "")), n.attr("data-tag", a.tag.trim()); for (var r in a.name && n.attr("alt", a.name), a) a.hasOwnProperty(r) && "thumb" !== r && "url" !== r && "tag" !== r && n.attr("data-".concat(r), a[r]); i.append(n).append(v(s.icon.create("imageManagerDelete")).addClass("fr-delete-img").attr("title", s.language.translate("Delete"))).append(v(s.icon.create("imageManagerInsert")).addClass("fr-insert-img").attr("title", s.language.translate("Insert"))), f.find(".fr-selected-tag").each(function (e, t) { $(n, t.text) || i.hide() }), n.on("load", function () { i.removeClass("fr-empty"), i.height("auto"), h++, x(k(parseInt(n.parent().attr("class").match(/fr-image-(\d+)/)[1], 10) + 1)), R(!1), h % s.opts.imageManagerPageSize == 0 && T() }), s.events.trigger("imageManager.imageLoaded", [n]) }, o.onerror = function () { h++, i.remove(), x(k(parseInt(i.attr("class").match(/fr-image-(\d+)/)[1], 10) + 1)), I(e, a), h % s.opts.imageManagerPageSize == 0 && T() }, o.src = a.thumb || a.url, S().append(i) } function S() { var r, a; return d.find(".fr-list-column").each(function (e, t) { var n = v(t); 0 === e ? (a = n.outerHeight(), r = n) : n.outerHeight() < a && (a = n.outerHeight(), r = n) }), r } function k(e) { e === undefined && (e = 0); for (var t = [], n = g - 1; e <= n; n--) { var r = d.find(".fr-image-".concat(n)); r.length && (t.push(r), v(document.createElement("div")).attr("id", "fr-image-hidden-container").append(r), d.find(".fr-image-".concat(n)).remove()) } return t } function x(e) { for (var t = e.length - 1; 0 <= t; t--) S().append(e[t]) } function R(e) { if (e === undefined && (e = !0), !l.isVisible()) return !0; var t = w(); if (t !== m) { m = t; var n = k(); A(), x(n) } s.modals.resize(b), e && T() } function M(e) { for (var t, n = e[0].attributes, r = n.length, a = {}; r--;) n[r] && "src" !== (t = n[r].name) && (a[t] = n[r].value); return a } function O(e) { var t = v(e.currentTarget).siblings("img"), n = l.data("instance") || s, r = l.data("current-image"); if (s.modals.hide(b), n.image.showProgressBar(), r) r.data("fr-old-src", r.attr("src")), r.trigger("click"); else { n.events.focus(!0), n.selection.restore(); var a = n.position.getBoundingRect(), o = a.left + a.width / 2 + v(s.doc).scrollLeft(), i = a.top + a.height + v(s.doc).scrollTop(); n.popups.setContainer("image.insert", s.$sc), n.popups.show("image.insert", o, i) } n.image.insert(t.data("url"), !1, M(t), r) } function N(e) { var o = v(e.currentTarget).siblings("img"), t = s.language.translate("Are you sure? Image will be deleted."); confirm(t) && (s.opts.imageManagerDeleteURL ? !1 !== s.events.trigger("imageManager.beforeDeleteImage", [o]) && (o.parent().addClass("fr-image-deleting"), v(this).ajax( { method: s.opts.imageManagerDeleteMethod, url: s.opts.imageManagerDeleteURL, data: Object.assign(Object.assign( { src: o.attr("src") }, M(o)), s.opts.imageManagerDeleteParams), crossDomain: s.opts.requestWithCORS, withCredentials: s.opts.requestWithCredentials, headers: s.opts.requestHeaders, done: function (e, t, n) { s.events.trigger("imageManager.imageDeleted", [e]); var r = k(parseInt(o.parent().attr("class").match(/fr-image-(\d+)/)[1], 10) + 1); o.parent().remove(), x(r), function a() { l.find("#fr-modal-tags > a").each(function () { 0 === l.find('#fr-image-list [data-tag*="'.concat(v(this).text(), '"]')).length && v(this).removeClass("fr-selected-tag").hide() }), B() }(), R(!0) }, fail: function (e) { I(n, e.response || e.responseText) } })) : I(r)) } function I(e, t) { 10 <= e && e < 20 ? i.hide() : 20 <= e && e < 30 && v(".fr-image-deleting").removeClass("fr-image-deleting"), s.events.trigger("imageManager.error", [ { code: e, message: a[e] }, t]) } function D() { var e = c.find(".fr-modal-head-line").outerHeight(), t = f.outerHeight(); c.toggleClass("fr-show-tags"), c.hasClass("fr-show-tags") ? (c.css("height", e + t), o.css("marginTop", e + t), f.find("a").css("opacity", 1)) : (c.css("height", e), o.css("marginTop", e), f.find("a").css("opacity", 0)) } function B() { var e = f.find(".fr-selected-tag"); 0 < e.length ? (d.find("img").parents().show(), e.each(function (e, r) { d.find("img").each(function (e, t) { var n = v(t); $(n, r.text) || n.parent().hide() }) })) : d.find("img").parents().show(), x(k()), T() } function H(e) { e.preventDefault(); var t = v(e.currentTarget); t.toggleClass("fr-selected-tag"), s.opts.imageManagerToggleTags && t.siblings("a").removeClass("fr-selected-tag"), B() } function $(e, t) { for (var n = (e.attr("data-tag") || "").split(","), r = 0; r < n.length; r++) if (n[r] === t) return !0; return !1 } return a[e] = "Image cannot be loaded from the passed link.", a[C] = "Error during load images request.", a[E] = "Missing imageManagerLoadURL option.", a[y] = "Parsing load response failed.", a[L] = "Missing image thumb.", a[_] = "Missing image URL.", a[n] = "Error during delete image request.", a[r] = "Missing imageManagerDeleteURL option.", { require: ["image"], _init: function P() { if (!s.$wp && "IMG" !== s.el.tagName) return !1 }, show: function F() { if (!l) { var e, t = '

    ').concat(s.language.translate("Manage Images"), '

    \n
    '); e = s.opts.imageManagerPreloader ? '') : '"), e += '
    '; var n = s.modals.create(b, t, e); l = n.$modal, c = n.$head, o = n.$body } l.data("current-image", s.image.get()), s.modals.show(b), i || function r() { i = l.find("#fr-preloader"), d = l.find("#fr-image-list"), f = l.find("#fr-modal-tags"), m = w(), A(), c.css("height", c.find(".fr-modal-head-line").outerHeight()), s.events.$on(v(s.o_win), "resize", function () { R(!!p) }), s.events.bindClick(d, ".fr-insert-img", O), s.events.bindClick(d, ".fr-delete-img", N), s.helpers.isMobile() && (s.events.bindClick(d, "div.fr-image-container", function (e) { l.find(".fr-mobile-selected").removeClass("fr-mobile-selected"), v(e.currentTarget).addClass("fr-mobile-selected") }), l.on(s._mousedown, function () { l.find(".fr-mobile-selected").removeClass("fr-mobile-selected") })), l.on(s._mousedown + " " + s._mouseup, function (e) { e.stopPropagation() }), l.on(s._mousedown, "*", function () { s.events.disableBlur() }), o.on("scroll", T), s.events.bindClick(l, "button#fr-modal-more-".concat(s.sid), D), s.events.bindClick(f, "a", H) }(), function a() { i.show(), d.find(".fr-list-column").empty(), s.opts.imageManagerLoadURL ? v(this).ajax( { url: s.opts.imageManagerLoadURL, method: s.opts.imageManagerLoadMethod, data: s.opts.imageManagerLoadParams, crossDomain: s.opts.requestWithCORS, withCredentials: s.opts.requestWithCredentials, headers: s.opts.requestHeaders, done: function (e, t, n) { s.events.trigger("imageManager.imagesLoaded", [e]), function r(e, t) { try { d.find(".fr-list-column").empty(), g = h = u = 0, p = JSON.parse(e), T() } catch (n) { I(y, t) } }(e, n.response), i.hide() }, fail: function (e) { I(C, e.response || e.responseText) } }) : I(E) }() }, hide: function U() { s.modals.hide(b) } } }, !kt.PLUGINS.image) throw new Error("Image manager plugin requires image plugin."); function y(e) { var t = { omitExtraWLInCodeBlocks: { defaultValue: !1, describe: "Omit the default extra whiteline added to code blocks", type: "boolean" }, noHeaderId: { defaultValue: !1, describe: "Turn on/off generated header id", type: "boolean" }, prefixHeaderId: { defaultValue: !1, describe: "Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix", type: "string" }, rawPrefixHeaderId: { defaultValue: !1, describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)', type: "boolean" }, ghCompatibleHeaderId: { defaultValue: !1, describe: "Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)", type: "boolean" }, rawHeaderId: { defaultValue: !1, describe: "Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids", type: "boolean" }, headerLevelStart: { defaultValue: !1, describe: "The header blocks level start", type: "integer" }, parseImgDimensions: { defaultValue: !1, describe: "Turn on/off image dimension parsing", type: "boolean" }, simplifiedAutoLink: { defaultValue: !1, describe: "Turn on/off GFM autolink style", type: "boolean" }, excludeTrailingPunctuationFromURLs: { defaultValue: !1, describe: "Excludes trailing punctuation from links generated with autoLinking", type: "boolean" }, literalMidWordUnderscores: { defaultValue: !1, describe: "Parse midword underscores as literal underscores", type: "boolean" }, literalMidWordAsterisks: { defaultValue: !1, describe: "Parse midword asterisks as literal asterisks", type: "boolean" }, strikethrough: { defaultValue: !1, describe: "Turn on/off strikethrough support", type: "boolean" }, tables: { defaultValue: !1, describe: "Turn on/off tables support", type: "boolean" }, tablesHeaderId: { defaultValue: !1, describe: "Add an id to table headers", type: "boolean" }, ghCodeBlocks: { defaultValue: !0, describe: "Turn on/off GFM fenced code blocks support", type: "boolean" }, tasklists: { defaultValue: !1, describe: "Turn on/off GFM tasklist support", type: "boolean" }, smoothLivePreview: { defaultValue: !1, describe: "Prevents weird effects in live previews due to incomplete input", type: "boolean" }, smartIndentationFix: { defaultValue: !1, description: "Tries to smartly fix indentation in es6 strings", type: "boolean" }, disableForced4SpacesIndentedSublists: { defaultValue: !1, description: "Disables the requirement of indenting nested sublists by 4 spaces", type: "boolean" }, simpleLineBreaks: { defaultValue: !1, description: "Parses simple line breaks as
    (GFM Style)", type: "boolean" }, requireSpaceBeforeHeadingText: { defaultValue: !1, description: "Makes adding a space between `#` and the header text mandatory (GFM Style)", type: "boolean" }, ghMentions: { defaultValue: !1, description: "Enables github @mentions", type: "boolean" }, ghMentionsLink: { defaultValue: "https://github.com/{u}", description: "Changes the link generated by @mentions. Only applies if ghMentions option is enabled.", type: "string" }, encodeEmails: { defaultValue: !0, description: "Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities", type: "boolean" }, openLinksInNewWindow: { defaultValue: !1, description: "Open all links in new windows", type: "boolean" }, backslashEscapesHTMLTags: { defaultValue: !1, description: "Support for HTML Tag escaping. ex:
    foo
    ", type: "boolean" }, emoji: { defaultValue: !1, description: "Enable emoji support. Ex: `this is a :smile: emoji`", type: "boolean" }, underline: { defaultValue: !1, description: "Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``", type: "boolean" }, completeHTMLDocument: { defaultValue: !1, description: "Outputs a complete html document, including ``, `` and `` tags", type: "boolean" }, metadata: { defaultValue: !1, description: "Enable support for document metadata (defined at the top of the document between `\xab\xab\xab` and `\xbb\xbb\xbb` or between `---` and `---`).", type: "boolean" }, splitAdjacentBlockquotes: { defaultValue: !1, description: "Split adjacent blockquote blocks", type: "boolean" } }; if (!1 === e) return JSON.parse(JSON.stringify(t)); var n = {}; for (var r in t) t.hasOwnProperty(r) && (n[r] = t[r].defaultValue); return n } kt.DEFAULTS.imageInsertButtons.push("imageManager"), kt.RegisterCommand("imageManager", { title: "Browse", undo: !1, focus: !1, modal: !0, callback: function () { this.imageManager.show() }, plugin: "imageManager" }), kt.DefineIcon("imageManager", { NAME: "folder", SVG_KEY: "imageManager" }), kt.DefineIcon("imageManagerInsert", { NAME: "plus", SVG_KEY: "add" }), kt.DefineIcon("imageManagerDelete", { NAME: "trash", SVG_KEY: "remove" }), Object.assign(kt.DEFAULTS, { inlineClasses: { "fr-class-code": "Code", "fr-class-highlighted": "Highlighted", "fr-class-transparency": "Transparent" } }), kt.PLUGINS.inlineClass = function (n) { var r = n.$; return { apply: function t(e) { n.format.toggle("span", { "class": e }) }, refreshOnShow: function a(e, t) { t.find(".fr-command").each(function () { var e = r(this).data("param1"), t = n.format.is("span", { "class": e }); r(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } } }, kt.RegisterCommand("inlineClass", { type: "dropdown", title: "Inline Class", html: function () { var e = '" }, callback: function (e, t) { this.inlineClass.apply(t) }, refreshOnShow: function (e, t) { this.inlineClass.refreshOnShow(e, t) }, plugin: "inlineClass" }), kt.DefineIcon("inlineClass", { NAME: "tag", SVG_KEY: "inlineClass" }), Object.assign(kt.DEFAULTS, { inlineStyles: { "Big Red": "font-size: 20px; color: red;", "Small Blue": "font-size: 14px; color: blue;" } }), kt.PLUGINS.inlineStyle = function (a) { return { apply: function o(e) { for (var t = e.split(";"), n = 0; n < t.length; n++) { var r = t[n].split(":"); t[n].length && 2 == r.length && a.format.applyStyle(r[0].trim(), r[1].trim()) } } } }, kt.RegisterCommand("inlineStyle", { type: "dropdown", html: function () { var e = '" }, title: "Inline Style", callback: function (e, t) { this.inlineStyle.apply(t) }, plugin: "inlineStyle" }), kt.DefineIcon("inlineStyle", { NAME: "paint-brush", SVG_KEY: "inlineStyle" }), Object.assign(kt.DEFAULTS, { lineBreakerTags: ["table", "hr", "form", "dl", "span.fr-video", ".fr-embedly", "img"], lineBreakerOffset: 15, lineBreakerHorizontalOffset: 10 }), kt.PLUGINS.lineBreaker = function (h) { var g, t, a, m = h.$; function l(e, t) { var n, r, a, o, i, s, l, c; if (null == e) i = (o = t.parent()).offset().top, n = (l = t.offset().top) - Math.min((l - i) / 2, h.opts.lineBreakerOffset), a = o.outerWidth(), r = o.offset().left; else if (null == t)(s = (o = e.parent()).offset().top + o.outerHeight()) < (c = e.offset().top + e.outerHeight()) && (s = (o = m(o).parent()).offset().top + o.outerHeight()), n = c + Math.min(Math.abs(s - c) / 2, h.opts.lineBreakerOffset), a = o.outerWidth(), r = o.offset().left; else { o = e.parent(); var d = e.offset().top + e.height(), f = t.offset().top; if (f < d) return !1; n = (d + f) / 2, a = o.outerWidth(), r = o.offset().left } if (h.opts.iframe) { var p = h.helpers.getPX(h.$wp.find(".fr-iframe").css("padding-top")), u = h.helpers.getPX(h.$wp.find(".fr-iframe").css("padding-left")); r += h.$iframe.offset().left - h.helpers.scrollLeft() + u, n += h.$iframe.offset().top - h.helpers.scrollTop() + p } h.$box.append(g), g.css("top", n - h.win.pageYOffset), g.css("left", r - h.win.pageXOffset), g.css("width", a), g.data("tag1", e), g.data("tag2", t), g.addClass("fr-visible").data("instance", h) } function c(e) { if (e) { var t = m(e); if (0 === h.$el.find(t).length) return null; if (e.nodeType != Node.TEXT_NODE && t.is(h.opts.lineBreakerTags.join(","))) return t; if (0 < t.parents(h.opts.lineBreakerTags.join(",")).length) return e = t.parents(h.opts.lineBreakerTags.join(",")).get(0), 0 !== h.$el.find(m(e)).length && m(e).is(h.opts.lineBreakerTags.join(",")) ? m(e) : null } return null } function o(e, t) { var n = h.doc.elementFromPoint(e, t); return n && !m(n).closest(".fr-line-breaker").length && !h.node.isElement(n) && n != h.$wp.get(0) && function r(e) { if ("undefined" != typeof e.inFroalaWrapper) return e.inFroalaWrapper; for (var t = e; e.parentNode && e.parentNode !== h.$wp.get(0);) e = e.parentNode; return t.inFroalaWrapper = e.parentNode == h.$wp.get(0), t.inFroalaWrapper }(n) ? n : null } function i(e, t, n) { for (var r = n, a = null; r <= h.opts.lineBreakerOffset && !a;)(a = o(e, t - r)) || (a = o(e, t + r)), r += n; return a } function d(e, t, n) { for (var r = null, a = 100; !r && e > h.$box.offset().left && e < h.$box.offset().left + h.$box.outerWidth() && 0 < a;)(r = o(e, t)) || (r = i(e, t, 5)), "left" == n ? e -= h.opts.lineBreakerHorizontalOffset : e += h.opts.lineBreakerHorizontalOffset, a -= h.opts.lineBreakerHorizontalOffset; return r } function n(e) { var t = a = null, n = null, r = h.doc.elementFromPoint(e.pageX - h.win.pageXOffset, e.pageY - h.win.pageYOffset); (t = r && ("HTML" == r.tagName || "BODY" == r.tagName || h.node.isElement(r) || 0 <= (r.getAttribute("class") || "").indexOf("fr-line-breaker")) ? ((n = i(e.pageX - h.win.pageXOffset, e.pageY - h.win.pageYOffset, 1)) || (n = d(e.pageX - h.win.pageXOffset - h.opts.lineBreakerHorizontalOffset, e.pageY - h.win.pageYOffset, "left")), n || (n = d(e.pageX - h.win.pageXOffset + h.opts.lineBreakerHorizontalOffset, e.pageY - h.win.pageYOffset, "right")), c(n)) : c(r)) ? function s(e, t) { var n, r, a = e.offset().top, o = e.offset().top + e.outerHeight(); if (Math.abs(o - t) <= h.opts.lineBreakerOffset || Math.abs(t - a) <= h.opts.lineBreakerOffset) if (Math.abs(o - t) < Math.abs(t - a)) { var i = null; for ((r = e.get(0)).nextSibling && (i = r.nextSibling.offsetParent ? r.nextSibling : null); i && i.nodeType == Node.TEXT_NODE && 0 === i.textContent.length;) i = i.nextSibling; if (!i) return l(e, null), !0; if (n = c(i)) return l(e, n), !0 } else { if (!(r = e.get(0)).previousSibling) return l(null, e), !0; if (n = c(r.previousSibling)) return l(n, e), !0 } g.removeClass("fr-visible").removeData("instance") }(t, e.pageY) : h.core.sameInstance(g) && g.removeClass("fr-visible").removeData("instance") } function r(e) { return !(g.hasClass("fr-visible") && !h.core.sameInstance(g)) && (h.popups.areVisible() || h.el.querySelector(".fr-selected-cell") ? (g.removeClass("fr-visible"), !0) : void(!1 !== t || h.edit.isDisabled() || (a && clearTimeout(a), a = setTimeout(n, 30, e)))) } function s() { a && clearTimeout(a), g && g.hasClass("fr-visible") && g.removeClass("fr-visible").removeData("instance") } var f = function f() { t = !0, s() }, p = function p() { t = !1 }; function u(e) { e.preventDefault(); var t = g.data("instance") || h; g.removeClass("fr-visible").removeData("instance"); var n = g.data("tag1"), r = g.data("tag2"), a = h.html.defaultTag(); null == n ? a && "TD" != r.parent().get(0).tagName && 0 === r.parents(a).length ? r.before("<".concat(a, ">").concat(kt.MARKERS, "
    ")) : r.before("".concat(kt.MARKERS, "
    ")) : a && "TD" != n.parent().get(0).tagName && 0 === n.parents(a).length ? n.after("<".concat(a, ">").concat(kt.MARKERS, "
    ")) : n.after("".concat(kt.MARKERS, "
    ")), t.selection.restore(), h.toolbar.enable() } return { _init: function v() { if (!h.$wp) return !1; ! function e() { h.shared.$line_breaker || (h.shared.$line_breaker = m(document.createElement("div")).attr("class", "fr-line-breaker").html(''))), g = h.shared.$line_breaker, h.events.on("shared.destroy", function () { g.html("").removeData().remove(), g = null }, !0), h.events.on("destroy", function () { g.removeData("instance").removeClass("fr-visible"), m("body").first().append(g), clearTimeout(a) }, !0), h.events.$on(g, "mousemove", function (e) { e.stopPropagation() }, !0), h.events.bindClick(g, "a", u) }(), t = !1, h.events.$on(h.$win, "mousemove", r), h.events.$on(m(h.win), "scroll", s), h.events.on("popups.show.table.edit", s), h.events.on("commands.after", s), h.events.$on(m(h.win), "mousedown", f), h.events.$on(m(h.win), "mouseup", p) } } }, Object.assign(kt.DEFAULTS, { lineHeights: { Default: "", Single: "1", 1.15: "1.15", 1.5: "1.5", Double: "2" } }), kt.PLUGINS.lineHeight = function (r) { var s = r.$; return { _init: function e() {}, apply: function a(e) { r.selection.save(), r.html.wrap(!0, !0, !0, !0), r.selection.restore(); var t = r.selection.blocks(); t.length && s(t[0]).parent().is("td") && r.format.applyStyle("line-height", e.toString()), r.selection.save(); for (var n = 0; n < t.length; n++) s(t[n]).css("line-height", e), "" === s(t[n]).attr("style") && s(t[n]).removeAttr("style"); r.html.unwrap(), r.selection.restore() }, refreshOnShow: function o(e, t) { var n = r.selection.blocks(); if (n.length) { var i = s(n[0]); t.find(".fr-command").each(function () { var e = s(this).data("param1"), t = i.attr("style"), n = 0 <= (t || "").indexOf("line-height: " + e + ";"); if (t) { var r = t.substring(t.indexOf("line-height")), a = r.substr(0, r.indexOf(";")), o = a && a.split(":")[1]; o && o.length || "Default" !== i.text() || (n = !0) } t && -1 !== t.indexOf("line-height") || "" !== e || (n = !0), s(this).toggleClass("fr-active", n).attr("aria-selected", n) }) } } } }, kt.RegisterCommand("lineHeight", { type: "dropdown", html: function () { var e = '" }, title: "Line Height", callback: function (e, t) { this.lineHeight.apply(t) }, refreshOnShow: function (e, t) { this.lineHeight.refreshOnShow(e, t) }, plugin: "lineHeight" }), kt.DefineIcon("lineHeight", { NAME: "arrows-v", FA5NAME: "arrows-alt-v", SVG_KEY: "lineHeight" }), Object.assign(kt.POPUP_TEMPLATES, { "link.edit": "[_BUTTONS_]", "link.insert": "[_BUTTONS_][_INPUT_LAYER_]" }), Object.assign(kt.DEFAULTS, { linkEditButtons: ["linkOpen", "linkStyle", "linkEdit", "linkRemove"], linkInsertButtons: ["linkBack", "|", "linkList"], linkAttributes: {}, linkAutoPrefix: "http://", linkStyles: { "fr-green": "Green", "fr-strong": "Thick" }, linkMultipleStyles: !0, linkConvertEmailAddress: !0, linkAlwaysBlank: !1, linkAlwaysNoFollow: !1, linkNoOpener: !0, linkNoReferrer: !0, linkList: [ { text: "Froala", href: "https://froala.com", target: "_blank" }, { text: "Google", href: "https://google.com", target: "_blank" }, { displayText: "Facebook", href: "https://facebook.com" }], linkText: !0 }), kt.PLUGINS.link = function (m) { var v = m.$; function b() { var e = m.image ? m.image.get() : null; if (e || !m.$wp) return "A" == m.el.tagName ? m.el : e && e.get(0).parentNode && "A" == e.get(0).parentNode.tagName ? e.get(0).parentNode : void 0; var t = m.selection.ranges(0).commonAncestorContainer; try { t && (t.contains && t.contains(m.el) || !m.el.contains(t) || m.el == t) && (t = null) } catch (a) { t = null } if (t && "A" === t.tagName) return t; var n = m.selection.element(), r = m.selection.endElement(); "A" == n.tagName || m.node.isElement(n) || (n = v(n).parentsUntil(m.$el, "a").first().get(0)), "A" == r.tagName || m.node.isElement(r) || (r = v(r).parentsUntil(m.$el, "a").first().get(0)); try { r && (r.contains && r.contains(m.el) || !m.el.contains(r) || m.el == r) && (r = null) } catch (a) { r = null } try { n && (n.contains && n.contains(m.el) || !m.el.contains(n) || m.el == n) && (n = null) } catch (a) { n = null } return r && r == n && "A" == r.tagName ? (m.browser.msie || m.helpers.isMobile()) && (m.selection.info(n).atEnd || m.selection.info(n).atStart) ? null : n : null } function C() { var e, t, n, r, a = m.image ? m.image.get() : null, o = []; if (a) "A" == a.get(0).parentNode.tagName && o.push(a.get(0).parentNode); else if (m.win.getSelection) { var i = m.win.getSelection(); if (i.getRangeAt && i.rangeCount) { r = m.doc.createRange(); for (var s = 0; s < i.rangeCount; ++s) if ((t = (e = i.getRangeAt(s)).commonAncestorContainer) && 1 != t.nodeType && (t = t.parentNode), t && "a" == t.nodeName.toLowerCase()) o.push(t); else { n = t.getElementsByTagName("a"); for (var l = 0; l < n.length; ++l) r.selectNodeContents(n[l]), r.compareBoundaryPoints(e.END_TO_START, e) < 1 && -1 < r.compareBoundaryPoints(e.START_TO_END, e) && o.push(n[l]) } } } else if (m.doc.selection && "Control" != m.doc.selection.type) if ("a" == (t = (e = m.doc.selection.createRange()).parentElement()).nodeName.toLowerCase()) o.push(t); else { n = t.getElementsByTagName("a"), r = m.doc.body.createTextRange(); for (var c = 0; c < n.length; ++c) r.moveToElementText(n[c]), -1 < r.compareEndPoints("StartToEnd", e) && r.compareEndPoints("EndToStart", e) < 1 && o.push(n[c]) } return o } function E(a) { if (m.core.hasFocus()) { if (o(), a && "keyup" === a.type && (a.altKey || a.which == kt.KEYCODE.ALT)) return !0; setTimeout(function () { if (!a || a && (1 == a.which || "mouseup" != a.type)) { var e = b(), t = m.image ? m.image.get() : null; if (e && !t) { if (m.image) { var n = m.node.contents(e); if (1 == n.length && "IMG" == n[0].tagName) { var r = m.selection.ranges(0); return 0 === r.startOffset && 0 === r.endOffset ? v(e).before(kt.MARKERS) : v(e).after(kt.MARKERS), m.selection.restore(), !1 } } a && a.stopPropagation(), i(e) } } }, m.helpers.isIOS() ? 100 : 0) } } function i(e) { var t = m.popups.get("link.edit"); t || (t = function o() { var e = ""; 1 <= m.opts.linkEditButtons.length && ("A" == m.el.tagName && 0 <= m.opts.linkEditButtons.indexOf("linkRemove") && m.opts.linkEditButtons.splice(m.opts.linkEditButtons.indexOf("linkRemove"), 1), e = '
    '.concat(m.button.buildList(m.opts.linkEditButtons), "
    ")); var t = { buttons: e }, n = m.popups.create("link.edit", t); m.$wp && m.events.$on(m.$wp, "scroll.link-edit", function () { b() && m.popups.isVisible("link.edit") && i(b()) }); return n }()); var n = v(e); m.popups.isVisible("link.edit") || m.popups.refresh("link.edit"), m.popups.setContainer("link.edit", m.$sc); var r = n.offset().left + n.outerWidth() / 2, a = n.offset().top + n.outerHeight(); m.popups.show("link.edit", r, a, n.outerHeight(), !0) } function o() { m.popups.hide("link.edit") } function l() { var e = m.popups.get("link.insert"), t = b(); if (t) { var n, r, a = v(t), o = e.find('input.fr-link-attr[type="text"]'), i = e.find('input.fr-link-attr[type="checkbox"]'); for (n = 0; n < o.length; n++)(r = v(o[n])).val(a.attr(r.attr("name") || "")); for (i.attr("checked", !1), n = 0; n < i.length; n++) r = v(i[n]), a.attr(r.attr("name")) == r.data("checked") && r.attr("checked", !0); e.find('input.fr-link-attr[type="text"][name="text"]').val(a.text()) } else e.find('input.fr-link-attr[type="text"]').val(""), e.find('input.fr-link-attr[type="checkbox"]').attr("checked", !1), e.find('input.fr-link-attr[type="text"][name="text"]').val(m.selection.text()); e.find("input.fr-link-attr").trigger("change"), (m.image ? m.image.get() : null) ? e.find('.fr-link-attr[name="text"]').parent().hide() : e.find('.fr-link-attr[name="text"]').parent().show() } function s(e) { if (e) return m.popups.onRefresh("link.insert", l), !0; var t = ""; 1 <= m.opts.linkInsertButtons.length && (t = '
    '.concat(m.button.buildList(m.opts.linkInsertButtons), "
    ")); var n = "", r = 0; for (var a in n = '") }, s = m.popups.create("link.insert", i); return m.$wp && m.events.$on(m.$wp, "scroll.link-insert", function () { (m.image ? m.image.get() : null) && m.popups.isVisible("link.insert") && f(), m.popups.isVisible("link.insert") && d() }), s } function c(e, t, n) { if (m.opts.trackChangesEnabled) { if (m.edit.on(), m.events.focus(!0), m.undo.saveStep(), m.markers.insert(), m.html.wrap(), !m.$el.find(".fr-marker").length) return void m.popups.hide("link.insert"); m.markers.remove() } if (void 0 === n && (n = {}), !1 === m.events.trigger("link.beforeInsert", [e, t, n])) return !1; var r = m.image ? m.image.get() : null; r || "A" == m.el.tagName ? "A" == m.el.tagName && m.$el.focus() : (m.selection.restore(), m.popups.hide("link.insert")); var a = e; m.opts.linkConvertEmailAddress && m.helpers.isEmail(e) && !/^mailto:.*/i.test(e) && (e = "mailto:".concat(e)); if ("" === m.opts.linkAutoPrefix || new RegExp("^(" + kt.LinkProtocols.join("|") + "):.", "i").test(e) || /^data:image.*/i.test(e) || /^(https?:|ftps?:|file:|)\/\//i.test(e) || /^([A-Za-z]:(\\){1,2}|[A-Za-z]:((\\){1,2}[^\\]+)+)(\\)?$/i.test(e) || ["/", "{", "[", "#", "(", "."].indexOf((e || "")[0]) < 0 && (e = m.opts.linkAutoPrefix + e), e = m.helpers.sanitizeURL(e), m.opts.linkAlwaysBlank && (n.target = "_blank"), m.opts.linkAlwaysNoFollow && (n.rel = "nofollow"), m.helpers.isEmail(a) && (n.target = null, n.rel = null), "_blank" == n.target ? (m.opts.linkNoOpener && (n.rel ? n.rel += " noopener" : n.rel = "noopener"), m.opts.linkNoReferrer && (n.rel ? n.rel += " noreferrer" : n.rel = "noreferrer")) : null == n.target && (n.rel ? n.rel = n.rel.replace(/noopener/, "").replace(/noreferrer/, "") : n.rel = null), t = t || "", e === m.opts.linkAutoPrefix) return m.popups.get("link.insert").find('input[name="href"]').addClass("fr-error"), m.events.trigger("link.bad", [a]), !1; var o, i = b(); if (i) { if ((o = v(i)).attr("href", e), 0 < t.length && o.text() != t && !r) { if (m.opts.trackChangesEnabled) { var s = v(o.get(0).outerHTML); s.insertBefore(o.parent()); var l = m.track_changes.wrapLinkInTracking(s, m.track_changes.getPendingChanges().length - 1), c = m.track_changes.wrapInDelete(l); o.parent().append(c) } for (var d = o.get(0); 1 === d.childNodes.length && d.childNodes[0].nodeType == Node.ELEMENT_NODE;) d = d.childNodes[0]; v(d).text(t) } for (var f in r || o.prepend(kt.START_MARKER).append(kt.END_MARKER), n) n[f] ? o.attr(f, n[f]) : o.removeAttr(f); r || m.selection.restore() } else { r ? (r.wrap('')), m.image.hasCaption() && r.parent().append(r.parents(".fr-img-caption").find(".fr-inner"))) : (m.format.remove("a"), m.selection.isCollapsed() ? (t = 0 === t.length ? a : t, m.html.insert('').concat(kt.START_MARKER).concat(t.replace(/&/g, "&").replace(/", ">")).concat(kt.END_MARKER, "")), m.selection.restore()) : 0 < t.length && t != m.selection.text().replace(/\n/g, "") ? (m.selection.remove(), m.html.insert('').concat(kt.START_MARKER).concat(t.replace(/&/g, "&")).concat(kt.END_MARKER, "")), m.selection.restore()) : (! function g() { if (!m.selection.isCollapsed()) { m.selection.save(); for (var e = m.$el.find(".fr-marker").addClass("fr-unprocessed").toArray(); e.length;) { var t = v(e.pop()); t.removeClass("fr-unprocessed"); var n = m.node.deepestParent(t.get(0)); if (n) { for (var r = t.get(0), a = "", o = ""; r = r.parentNode, m.node.isBlock(r) || (a += m.node.closeTagString(r), o = m.node.openTagString(r) + o), r != n;); var i = m.node.openTagString(t.get(0)) + t.html() + m.node.closeTagString(t.get(0)); t.replaceWith(''); var s = n.outerHTML; s = (s = s.replace(/<\/span>/g, a + i + o)).replace(o + a, ""), n.outerHTML = s } e = m.$el.find(".fr-marker.fr-unprocessed").toArray() } m.html.cleanEmptyTags(), m.selection.restore() } }(), m.format.apply("a", { href: e }))); for (var p = C(), u = 0; u < p.length; u++)(o = v(p[u])).attr(n), o.removeAttr("_moz_dirty"); 1 == p.length && m.$wp && !r && (v(p[0]).prepend(kt.START_MARKER).append(kt.END_MARKER), m.selection.restore()) } if (r) { var h = m.popups.get("link.insert"); h && h.find("input:focus").blur(), m.image.edit(r) } else E() } function d() { o(); var e = b(); if (e) { var t = m.popups.get("link.insert"); t || (t = s()), m.popups.isVisible("link.insert") || (m.popups.refresh("link.insert"), m.selection.save(), m.helpers.isMobile() && (m.events.disableBlur(), m.$el.blur(), m.events.enableBlur())), m.popups.setContainer("link.insert", m.$sc); var n = (m.image ? m.image.get() : null) || v(e), r = n.offset().left + n.outerWidth() / 2, a = n.offset().top + n.outerHeight(); m.popups.show("link.insert", r, a, n.outerHeight(), !0) } } function f() { var e = m.image ? m.image.getEl() : null; if (e) { var t = m.popups.get("link.insert"); m.image.hasCaption() && (e = e.find(".fr-img-wrap")), t || (t = s()), l(), m.popups.setContainer("link.insert", m.$sc); var n = e.offset().left + e.outerWidth() / 2, r = e.offset().top + e.outerHeight(); m.popups.show("link.insert", n, r, e.outerHeight(), !0) } } return { _init: function e() { m.events.on("keyup", function (e) { e.which != kt.KEYCODE.ESC && E(e) }), m.events.on("window.mouseup", E), m.events.$on(m.$el, "click", "a", function (e) { m.edit.isDisabled() && e.preventDefault() }), m.helpers.isMobile() && m.events.$on(m.$doc, "selectionchange", E), s(!0), "A" == m.el.tagName && m.$el.addClass("fr-view"), m.events.on("toolbar.esc", function () { if (m.popups.isVisible("link.edit")) return m.events.disableBlur(), m.events.focus(), !1 }, !0) }, remove: function r() { var e = b(), t = m.image ? m.image.get() : null; if (!1 === m.events.trigger("link.beforeRemove", [e])) return !1; if (t && e) if (m.image.hasCaption()) { t.addClass("img-link-caption"), v(e).replaceWith(v(e).html()); var n = document.querySelectorAll("img.img-link-caption"); m.image.edit(v(n[0])), v(n[0]).removeClass("img-link-caption") } else t.unwrap(), m.image.edit(t); else e && (m.selection.save(), v(e).replaceWith(v(e).html()), m.selection.restore(), o()) }, showInsertPopup: function p() { var e = m.$tb.find('.fr-command[data-cmd="insertLink"]'), t = m.popups.get("link.insert"); if (t || (t = s()), !t.hasClass("fr-active")) if (m.popups.refresh("link.insert"), m.popups.setContainer("link.insert", m.$tb || m.$sc), e.isVisible()) { var n = m.button.getPosition(e), r = n.left, a = n.top; m.popups.show("link.insert", r, a, e.outerHeight()) } else m.position.forSelection(t), m.popups.show("link.insert") }, usePredefined: function u(e) { var t, n, r = m.opts.linkList[e], a = m.popups.get("link.insert"), o = a.find('input.fr-link-attr[type="text"]'), i = a.find('input.fr-link-attr[type="checkbox"]'); for (r.rel && (a.rel = r.rel), n = 0; n < o.length; n++) r[(t = v(o[n])).attr("name")] ? (t.val(r[t.attr("name")]), t.toggleClass("fr-not-empty", !0)) : "text" != t.attr("name") && t.val(""); for (n = 0; n < i.length; n++)(t = v(i[n])).attr("checked", t.data("checked") == r[t.attr("name")]); m.accessibility.focusPopup(a) }, insertCallback: function h() { var e, t, n = m.popups.get("link.insert"), r = n.find('input.fr-link-attr[type="text"]'), a = n.find('input.fr-link-attr[type="checkbox"]'), o = (r.filter('[name="href"]').val() || "").trim(), i = m.opts.linkText ? r.filter('[name="text"]').val() : "", s = {}; for (t = 0; t < r.length; t++) e = v(r[t]), ["href", "text"].indexOf(e.attr("name")) < 0 && (s[e.attr("name")] = e.val()); for (t = 0; t < a.length; t++)(e = v(a[t])).is(":checked") ? s[e.attr("name")] = e.data("checked") : s[e.attr("name")] = e.data("unchecked") || null; n.rel && (s.rel = n.rel); var l = m.helpers.scrollTop(); c(o, i, s), v(m.o_win).scrollTop(l) }, insert: c, update: d, get: b, allSelected: C, back: function t() { m.image && m.image.get() ? m.image.back() : (m.events.disableBlur(), m.selection.restore(), m.events.enableBlur(), b() && m.$wp ? (m.selection.restore(), o(), E()) : "A" == m.el.tagName ? (m.$el.focus(), E()) : (m.popups.hide("link.insert"), m.toolbar.showInline())) }, imageLink: f, applyStyle: function g(e, t, n) { void 0 === n && (n = m.opts.linkMultipleStyles), void 0 === t && (t = m.opts.linkStyles); var r = b(); if (!r) return !1; if (!n) { var a = Object.keys(t); a.splice(a.indexOf(e), 1), v(r).removeClass(a.join(" ")) } v(r).toggleClass(e), E() } } }, kt.DefineIcon("insertLink", { NAME: "link", SVG_KEY: "insertLink" }), kt.RegisterShortcut(kt.KEYCODE.K, "insertLink", null, "K"), kt.RegisterCommand("insertLink", { title: "Insert Link", undo: !1, focus: !0, refreshOnCallback: !1, popup: !0, callback: function () { this.popups.isVisible("link.insert") ? (this.$el.find(".fr-marker").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("link.insert")) : this.link.showInsertPopup() }, plugin: "link" }), kt.DefineIcon("linkOpen", { NAME: "external-link", FA5NAME: "external-link-alt", SVG_KEY: "openLink" }), kt.RegisterCommand("linkOpen", { title: "Open Link", undo: !1, refresh: function (e) { this.link.get() ? e.removeClass("fr-hidden") : e.addClass("fr-hidden") }, callback: function () { var e = this.link.get(); e && (-1 !== e.href.indexOf("mailto:") ? this.o_win.open(e.href).close() : (e.target || (e.target = "_self"), this.browser.msie || this.browser.edge ? this.o_win.open(e.href, e.target) : this.o_win.open(e.href, e.target, "noopener")), this.popups.hide("link.edit")) }, plugin: "link" }), kt.DefineIcon("linkEdit", { NAME: "edit", SVG_KEY: "edit" }), kt.RegisterCommand("linkEdit", { title: "Edit Link", undo: !1, refreshAfterCallback: !1, popup: !0, callback: function () { this.link.update() }, refresh: function (e) { this.link.get() ? e.removeClass("fr-hidden") : e.addClass("fr-hidden") }, plugin: "link" }), kt.DefineIcon("linkRemove", { NAME: "unlink", SVG_KEY: "unlink" }), kt.RegisterCommand("linkRemove", { title: "Unlink", callback: function () { this.link.remove() }, refresh: function (e) { this.link.get() ? e.removeClass("fr-hidden") : e.addClass("fr-hidden") }, plugin: "link" }), kt.DefineIcon("linkBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("linkBack", { title: "Back", undo: !1, focus: !1, back: !0, refreshAfterCallback: !1, callback: function () { this.link.back() }, refresh: function (e) { var t = this.link.get() && this.doc.hasFocus(); (this.image ? this.image.get() : null) || t || this.opts.toolbarInline ? (e.removeClass("fr-hidden"), e.next(".fr-separator").removeClass("fr-hidden")) : (e.addClass("fr-hidden"), e.next(".fr-separator").addClass("fr-hidden")) }, plugin: "link" }), kt.DefineIcon("linkList", { NAME: "search", SVG_KEY: "search" }), kt.RegisterCommand("linkList", { title: "Choose Link", type: "dropdown", focus: !1, undo: !1, refreshAfterCallback: !1, html: function () { for (var e = '" }, callback: function (e, t) { this.link.usePredefined(t) }, plugin: "link" }), kt.RegisterCommand("linkInsert", { focus: !1, refreshAfterCallback: !1, callback: function () { this.link.insertCallback() }, refresh: function (e) { this.link.get() ? e.text(this.language.translate("Update")) : e.text(this.language.translate("Insert")) }, plugin: "link" }), kt.DefineIcon("imageLink", { NAME: "link", SVG_KEY: "insertLink" }), kt.RegisterCommand("imageLink", { title: "Insert Link", undo: !1, focus: !1, popup: !0, callback: function () { this.link.imageLink() }, refresh: function (e) { var t; this.link.get() ? ((t = e.prev()).hasClass("fr-separator") && t.removeClass("fr-hidden"), e.addClass("fr-hidden")) : ((t = e.prev()).hasClass("fr-separator") && t.addClass("fr-hidden"), e.removeClass("fr-hidden")) }, plugin: "link" }), kt.DefineIcon("linkStyle", { NAME: "magic", SVG_KEY: "linkStyles" }), kt.RegisterCommand("linkStyle", { title: "Style", type: "dropdown", html: function () { var e = '" }, callback: function (e, t) { this.link.applyStyle(t) }, refreshOnShow: function (e, t) { var n = this.$, r = this.link.get(); if (r) { var a = n(r); t.find(".fr-command").each(function () { var e = n(this).data("param1"), t = a.hasClass(e); n(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } }, refresh: function (e) { this.link.get() ? e.removeClass("fr-hidden") : e.addClass("fr-hidden") }, plugin: "link" }), Object.assign(kt.DEFAULTS, { listAdvancedTypes: !0 }), kt.PLUGINS.lists = function (f) { var p = f.$; function u(e) { return '') } function h(e) { return '') } function o(e, t) { ! function c(e, t) { for (var n = [], r = 0; r < e.length; r++) { var a = e[r].parentNode; "LI" == e[r].tagName && a.tagName != t && n.indexOf(a) < 0 && n.push(a) } for (var o = n.length - 1; 0 <= o; o--) { var i = p(n[o]); i.replaceWith("<".concat(t.toLowerCase(), " ").concat(f.node.attributes(i.get(0)), ">").concat(i.html(), "")) } }(e, t); var n, r = f.html.defaultTag(), a = null; e.length && (n = "rtl" == f.opts.direction || "rtl" == p(e[0]).css("direction") ? "margin-right" : "margin-left"); for (var o = 0; o < e.length; o++) if ("TD" != e[o].tagName && "TH" != e[o].tagName && "LI" != e[o].tagName) { var i = f.helpers.getPX(p(e[o]).css(n)) || 0; (e[o].style.marginLeft = null) === a && (a = i); var s = 0 < a ? "<".concat(t, ' style="').concat(n, ": ").concat(a, 'px ">') : "<".concat(t, ">"), l = ""); for (i -= a; 0 < i / f.opts.indentMargin;) s += ""), l += l, i -= f.opts.indentMargin; r && e[o].tagName.toLowerCase() == r ? p(e[o]).replaceWith("".concat(s, "").concat(p(e[o]).html(), "").concat(l)) : p(e[o]).wrap("".concat(s, "
  • ").concat(l)) } f.clean.lists() } function i(e) { var t, n; for (t = e.length - 1; 0 <= t; t--) for (n = t - 1; 0 <= n; n--) if (p(e[n]).find(e[t]).length || e[n] == e[t]) { e.splice(t, 1); break } var r = []; for (t = 0; t < e.length; t++) { var a = p(e[t]), o = e[t].parentNode, i = a.attr("class"); if (a.before(h(o.tagName)), "LI" == o.parentNode.tagName) a.before(h("LI")), a.after(u("LI")); else { var s = ""; i && (s += ' class="'.concat(i, '"')); var l = "rtl" == f.opts.direction || "rtl" == a.css("direction") ? "margin-right" : "margin-left"; f.helpers.getPX(p(o).css(l)) && 0 <= (p(o).attr("style") || "").indexOf("".concat(l, ":")) && (s += ' style="'.concat(l, ":").concat(f.helpers.getPX(p(o).css(l)), 'px;"')), f.html.defaultTag() && 0 === a.find(f.html.blockTagsQuery()).length && a.wrapInner(f.html.defaultTag() + s), f.node.isEmpty(a.get(0), !0) || 0 !== a.find(f.html.blockTagsQuery()).length || a.append("
    "), a.append(u("LI")), a.prepend(h("LI")) } a.after(u(o.tagName)), "LI" == o.parentNode.tagName && (o = o.parentNode.parentNode), r.indexOf(o) < 0 && r.push(o) } for (t = 0; t < r.length; t++) { var c = p(r[t]), d = c.html(); d = (d = d.replace(/<\/span>/g, "")).replace(/<\/span>/g, "<$1>"), c.replaceWith(f.node.openTagString(c.get(0)) + d + f.node.closeTagString(c.get(0))) } f.$el.find("li:empty").remove(), f.$el.find("ul:empty, ol:empty").remove(), f.clean.lists(), f.$el.find("ul:empty, ol:empty").remove(), f.html.wrap() } function l(e) { f.selection.save(); for (var t = 0; t < e.length; t++) { var n = e[t].previousSibling; if (n) { var r = p(e[t]).find("> ul, > ol").last().get(0); if (r) { var a = p(document.createElement("li")); p(r).prepend(a); for (var o = f.node.contents(e[t])[0]; o && !f.node.isList(o);) { var i = o.nextSibling; a.append(o), o = i } p(n).append(p(r)), p(e[t]).remove() } else { var s = p(n).find("> ul, > ol").last().get(0); if (s) p(s).append(p(e[t])); else { var l = p("<".concat(e[t].parentNode.tagName, ">")); p(n).append(l), l.append(p(e[t])) } } } } f.clean.lists(), f.selection.restore() } function c(e) { f.selection.save(), i(e), f.selection.restore() } function e(e) { if ("indent" == e || "outdent" == e) { var t = !1, n = f.selection.blocks(), r = [], a = n[0].previousSibling || n[0].parentElement; if ("outdent" == e) { if ("UL" != a.parentNode.tagName && "OL" != a.parentNode.tagName && "LI" != a.parentNode.tagName) return; if (!n[0].previousSibling && "none" == a.parentNode.style.listStyleType) return void function i(e) { for (f.selection.save(); 0 < e.childNodes.length;) e.parentNode.parentNode.append(e.childNodes[0]); f.clean.lists(), f.selection.restore() }(a) } else { if ("UL" != a.parentNode.tagName && "OL" != a.parentNode.tagName && "LI" != a.parentNode.tagName) return; if (!n[0].previousSibling || "LI" != n[0].previousSibling.tagName) return void function s(e) { f.selection.save(); for (var t = "OL" == e.tagName ? document.createElement("ol") : document.createElement("ul"); 0 < e.childNodes.length;) t.append(e.childNodes[0]); var n = document.createElement("li"); t.style.listStyleType = "none", t.append(n), e.append(t), f.clean.lists(), f.selection.restore() }(a) } for (var o = 0; o < n.length; o++) "LI" == n[o].tagName ? (t = !0, r.push(n[o])) : "LI" == n[o].parentNode.tagName && (t = !0, r.push(n[o].parentNode)); t && ("indent" == e ? l(r) : c(r)) } } return { _init: function t() { f.events.on("commands.after", e), f.events.on("keydown", function (e) { if (e.which == kt.KEYCODE.TAB) { for (var t = f.selection.blocks(), n = [], r = 0; r < t.length; r++) "LI" == t[r].tagName ? n.push(t[r]) : "LI" == t[r].parentNode.tagName && n.push(t[r].parentNode); if (1 < n.length || n.length && (f.selection.info(n[0]).atStart || f.node.isEmpty(n[0]))) return e.preventDefault(), e.stopPropagation(), e.shiftKey ? c(n) : l(n), !1 } }, !0) }, format: function s(e, t) { var n, r; for (f.html.syncInputs(), f.selection.save(), f.html.wrap(!0, !0, !0, !0), f.selection.restore(), r = f.selection.blocks(!0), n = 0; n < r.length; n++) "LI" != r[n].tagName && "LI" == r[n].parentNode.tagName && (r[n] = r[n].parentNode); if (f.selection.save(), function a(e, t) { for (var n = !0, r = 0; r < e.length; r++) { if ("LI" != e[r].tagName) return !1; e[r].parentNode.tagName != t && (n = !1) } return n }(r, e) ? t || i(r) : o(r, e), f.html.unwrap(), f.selection.restore(), t = t || "default") { for (r = f.selection.blocks(), n = 0; n < r.length; n++) "LI" != r[n].tagName && "LI" == r[n].parentNode.tagName && (r[n] = r[n].parentNode); for (n = 0; n < r.length; n++) "LI" == r[n].tagName && (p(r[n].parentNode).css("list-style-type", "default" === t ? "" : t), 0 === (p(r[n].parentNode).attr("style") || "").length && p(r[n].parentNode).removeAttr("style")) } }, refresh: function a(e, t) { var n = p(f.selection.element()); if (n.get(0) != f.el) { var r = n.get(0); (r = "LI" != r.tagName && r.firstElementChild && "LI" != r.firstElementChild.tagName ? n.parents("li").get(0) : "LI" == r.tagName || r.firstElementChild ? r.firstElementChild && "LI" == r.firstElementChild.tagName ? n.get(0).firstChild : n.get(0) : n.parents("li").get(0)) && r.parentNode.tagName == t && f.el.contains(r.parentNode) && e.addClass("fr-active") } } } }, kt.DefineIcon("formatOLSimple", { NAME: "list-ol", SVG_KEY: "orderedList" }), kt.RegisterCommand("formatOLSimple", { title: "Ordered List", type: "button", options: { "default": "Default", circle: "Circle", disc: "Disc", square: "Square" }, refresh: function (e) { this.lists.refresh(e, "OL") }, callback: function (e, t) { this.lists.format("OL", t) }, plugin: "lists" }), kt.RegisterCommand("formatUL", { title: "Unordered List", type: "button", hasOptions: function () { return this.opts.listAdvancedTypes }, options: { "default": "Default", circle: "Circle", disc: "Disc", square: "Square" }, refresh: function (e) { this.lists.refresh(e, "UL") }, callback: function (e, t) { this.lists.format("UL", t) }, plugin: "lists" }), kt.RegisterCommand("formatOL", { title: "Ordered List", hasOptions: function () { return this.opts.listAdvancedTypes }, options: { "default": "Default", "lower-alpha": "Lower Alpha", "lower-greek": "Lower Greek", "lower-roman": "Lower Roman", "upper-alpha": "Upper Alpha", "upper-roman": "Upper Roman" }, refresh: function (e) { this.lists.refresh(e, "OL") }, callback: function (e, t) { this.lists.format("OL", t) }, plugin: "lists" }), kt.DefineIcon("formatUL", { NAME: "list-ul", SVG_KEY: "unorderedList" }), kt.DefineIcon("formatOL", { NAME: "list-ol", SVG_KEY: "orderedList" }), Object.assign(kt.DEFAULTS, { paragraphFormat: { N: "Normal", H1: "Heading 1", H2: "Heading 2", H3: "Heading 3", H4: "Heading 4", PRE: "Code" }, paragraphFormatSelection: !1, paragraphDefaultSelection: "Paragraph Format" }), kt.PLUGINS.paragraphFormat = function (u) { var h = u.$; function g(e, t) { var n = u.html.defaultTag(); if (t && t.toLowerCase() != n) if (0 < e.find("ul, ol").length) { var r = h("<" + t + ">"); e.prepend(r); for (var a = u.node.contents(e.get(0))[0]; a && ["UL", "OL"].indexOf(a.tagName) < 0;) { var o = a.nextSibling; r.append(a), a = o } } else e.html("<" + t + ">" + e.html() + "") } return { apply: function m(e) { "N" == e && (e = u.html.defaultTag()), u.selection.save(), u.html.wrap(!0, !0, !u.opts.paragraphFormat.BLOCKQUOTE, !0, !0), u.selection.restore(); var t, n, r, a, o, i, s, l, c = u.selection.blocks(); u.selection.save(), u.$el.find("pre").attr("skip", !0); for (var d = 0; d < c.length; d++) if (c[d].tagName != e && !u.node.isList(c[d])) { var f = h(c[d]); if ("LI" == c[d].tagName) g(f, e); else if ("LI" == c[d].parentNode.tagName && c[d]) i = f, s = e, l = u.html.defaultTag(), s && s.toLowerCase() != l || (s = 'div class="fr-temp-div"'), i.replaceWith(h("<" + s + ">").html(i.html())); else if (0 <= ["TD", "TH"].indexOf(c[d].parentNode.tagName)) r = f, a = e, o = u.html.defaultTag(), a || (a = 'div class="fr-temp-div"' + (u.node.isEmpty(r.get(0), !0) ? ' data-empty="true"' : "")), a.toLowerCase() == o ? (u.node.isEmpty(r.get(0), !0) || r.append("
    "), r.replaceWith(r.html())) : r.replaceWith(h("<" + a + ">").html(r.html())); else { if ("PRE" === e && null === f[0].nextSibling) { var p = h("
    "); f[0].after(p[0]) } t = f, (n = e) || (n = 'div class="fr-temp-div"' + (u.node.isEmpty(t.get(0), !0) ? ' data-empty="true"' : "")), "H1" != n && "H2" != n && "H3" != n && "H4" != n && "H5" != n || !u.node.attributes(t.get(0)).includes("font-size:") ? t.replaceWith(h("<" + n + " " + u.node.attributes(t.get(0)) + ">").html(t.html()).removeAttr("data-empty")) : t.replaceWith(h("<" + n + " " + u.node.attributes(t.get(0)).replace(/font-size:[0-9]+px;?/, "") + ">").html(t.html()).removeAttr("data-empty")) } } u.$el.find('pre:not([skip="true"]) + pre:not([skip="true"])').each(function () { h(this).prev().append("
    " + h(this).html()), h(this).remove() }), u.$el.find("pre").removeAttr("skip"), u.html.unwrap(), u.selection.restore() }, refreshOnShow: function i(e, t) { var n = u.selection.blocks(); if (n.length) { var r = n[0], a = "N", o = u.html.defaultTag(); r.tagName.toLowerCase() != o && r != u.el && (a = r.tagName), t.find('.fr-command[data-param1="' + a + '"]').addClass("fr-active").attr("aria-selected", !0) } else t.find('.fr-command[data-param1="N"]').addClass("fr-active").attr("aria-selected", !0) }, refresh: function o(e) { if (u.opts.paragraphFormatSelection) { var t = u.selection.blocks(); if (t.length) { var n = t[0], r = "N", a = u.html.defaultTag(); n.tagName.toLowerCase() != a && n != u.el && (r = n.tagName), 0 <= ["LI", "TD", "TH"].indexOf(r) && (r = "N"), e.find(">span").text(u.language.translate(u.opts.paragraphFormat[r])) } else e.find(">span").text(u.language.translate(u.opts.paragraphFormat.N)) } } } }, kt.RegisterCommand("paragraphFormat", { type: "dropdown", displaySelection: function (e) { return e.opts.paragraphFormatSelection }, defaultSelection: function (e) { return e.language.translate(e.opts.paragraphDefaultSelection) }, displaySelectionWidth: 80, html: function () { var e = '" }, title: "Paragraph Format", callback: function (e, t) { this.paragraphFormat.apply(t) }, refresh: function (e) { this.paragraphFormat.refresh(e) }, refreshOnShow: function (e, t) { this.paragraphFormat.refreshOnShow(e, t) }, plugin: "paragraphFormat" }), kt.DefineIcon("paragraphFormat", { NAME: "paragraph", SVG_KEY: "paragraphFormat" }), Object.assign(kt.DEFAULTS, { paragraphStyles: { "fr-text-gray": "Gray", "fr-text-bordered": "Bordered", "fr-text-spaced": "Spaced", "fr-text-uppercase": "Uppercase" }, paragraphMultipleStyles: !0 }), kt.PLUGINS.paragraphStyle = function (l) { var c = l.$; return { _init: function e() {}, apply: function d(e, t, n) { void 0 === t && (t = l.opts.paragraphStyles), void 0 === n && (n = l.opts.paragraphMultipleStyles); var r = ""; n || ((r = Object.keys(t)).splice(r.indexOf(e), 1), r = r.join(" ")), l.selection.save(), l.html.wrap(!0, !0, !0, !0), l.selection.restore(); var a = l.selection.blocks(); l.selection.save(); for (var o = c(a[0]).hasClass(e), i = 0; i < a.length; i++) c(a[i]).removeClass(r).toggleClass(e, !o), c(a[i]).hasClass("fr-temp-div") && c(a[i]).removeClass("fr-temp-div"), "" === c(a[i]).attr("class") && c(a[i]).removeAttr("class"); if (1 === a.length && "fr-text-bordered" === e && null === a[0].nextSibling) { var s = c("
    "); a[0].after(s[0]) } l.html.unwrap(), l.selection.restore() }, refreshOnShow: function a(e, t) { var n = l.selection.blocks(); if (n.length) { var r = c(n[0]); t.find(".fr-command").each(function () { var e = c(this).data("param1"), t = r.hasClass(e); c(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } } } }, kt.RegisterCommand("paragraphStyle", { type: "dropdown", html: function () { var e = '" }, title: "Paragraph Style", callback: function (e, t) { this.paragraphStyle.apply(t) }, refreshOnShow: function (e, t) { this.paragraphStyle.refreshOnShow(e, t) }, plugin: "paragraphStyle" }), kt.DefineIcon("paragraphStyle", { NAME: "magic", SVG_KEY: "paragraphStyle" }), Object.assign(kt.DEFAULTS, { html2pdf: window.html2pdf }), kt.PLUGINS.print = function (l) { return { run: function e() { ! function s(e) { var t = l.html.get(), n = null; l.shared.print_iframe ? n = l.shared.print_iframe : ((n = document.createElement("iframe")).name = "fr-print", n.style.position = "fixed", n.style.top = "0", n.style.left = "-9999px", n.style.height = "100%", n.style.width = "0", n.style.overflow = "hidden", n.style["z-index"] = "2147483647", n.style.tabIndex = "-1", l.events.on("shared.destroy", function () { n.remove() }), l.shared.print_iframe = n); try { document.body.removeChild(n) } catch (i) {} document.body.appendChild(n); var r = function r() { e(), n.removeEventListener("load", r) }; n.addEventListener("load", r); var a = n.contentWindow; a.document.open(), a.document.write("" + document.title + ""), Array.prototype.forEach.call(document.querySelectorAll("style"), function (e) { e = e.cloneNode(!0), a.document.write(e.outerHTML) }); var o = document.querySelectorAll("link[rel=stylesheet]"); Array.prototype.forEach.call(o, function (e) { var t = document.createElement("link"); t.rel = e.rel, t.href = e.href, t.media = "print", t.type = "text/css", t.media = "all", a.document.write(t.outerHTML) }), a.document.write('
    '), a.document.write(t), a.document.write("
    "), a.document.close() }(function () { setTimeout(function () { l.events.disableBlur(), window.frames["fr-print"].focus(), window.frames["fr-print"].print(), l.$win.get(0).focus(), l.events.disableBlur(), l.events.focus() }, 0) }) }, toPDF: function t() { l.opts.html2pdf && (l.$el.css("text-align", "left"), l.opts.html2pdf().set( { margin: [10, 20], html2canvas: { useCORS: !0 } }).from(l.el).save(), setTimeout(function () { l.$el.css("text-align", "") }, 100)) } } }, kt.DefineIcon("print", { NAME: "print", SVG_KEY: "print" }), kt.RegisterCommand("print", { title: "Print", undo: !1, focus: !1, plugin: "print", callback: function () { this.print.run() } }), kt.DefineIcon("getPDF", { NAME: "file-pdf-o", FA5NAME: "file-pdf", SVG_KEY: "pdfExport" }), kt.RegisterCommand("getPDF", { title: "Download PDF", type: "button", focus: !1, undo: !1, callback: function () { this.print.toPDF() } }), Object.assign(kt.DEFAULTS, { quickInsertButtons: ["image", "video", "embedly", "table", "ul", "ol", "hr"], quickInsertTags: ["p", "div", "h1", "h2", "h3", "h4", "h5", "h6", "pre", "blockquote"], quickInsertEnabled: !0 }), kt.QUICK_INSERT_BUTTONS = {}, kt.DefineIcon("quickInsert", { SVG_KEY: "add", template: "svg" }), kt.RegisterQuickInsertButton = function (e, t) { kt.QUICK_INSERT_BUTTONS[e] = Object.assign( { undo: !0 }, t) }, kt.RegisterQuickInsertButton("image", { icon: "insertImage", requiredPlugin: "image", title: "Insert Image", undo: !1, callback: function () { var e = this, t = e.$; e.shared.$qi_image_input || (e.shared.$qi_image_input = t(document.createElement("input")).attr("accept", "image/" + e.opts.imageAllowedTypes.join(", image/").toLowerCase()).attr("name", "quickInsertImage".concat(this.id)).attr("style", "display: none;").attr("type", "file"), t("body").first().append(e.shared.$qi_image_input), e.events.$on(e.shared.$qi_image_input, "change", function () { var e = t(this).data("inst"); this.files && (e.quickInsert.hide(), e.image.upload(this.files)), t(this).val("") }, !0)), e.$qi_image_input = e.shared.$qi_image_input, e.helpers.isMobile() && e.selection.save(), e.events.disableBlur(), e.$qi_image_input.data("inst", e)[0].click() } }), kt.RegisterQuickInsertButton("video", { icon: "insertVideo", requiredPlugin: "video", title: "Insert Video", undo: !1, callback: function () { var e = prompt(this.language.translate("Paste the URL of the video you want to insert.")); e && this.video.insertByURL(e) } }), kt.RegisterQuickInsertButton("embedly", { icon: "embedly", requiredPlugin: "embedly", title: "Embed URL", undo: !1, callback: function () { var e = prompt(this.language.translate("Paste the URL of any web content you want to insert.")); e && this.embedly.add(e) } }), kt.RegisterQuickInsertButton("table", { icon: "insertTable", requiredPlugin: "table", title: "Insert Table", callback: function () { this.table.insert(2, 2) } }), kt.RegisterQuickInsertButton("ol", { icon: "formatOL", requiredPlugin: "lists", title: "Ordered List", callback: function () { this.lists.format("OL") } }), kt.RegisterQuickInsertButton("ul", { icon: "formatUL", requiredPlugin: "lists", title: "Unordered List", callback: function () { this.lists.format("UL") } }), kt.RegisterQuickInsertButton("hr", { icon: "insertHR", title: "Insert Horizontal Line", callback: function () { this.commands.insertHR() } }), kt.PLUGINS.quickInsert = function (i) { var s, l, c = i.$, d = !1; function n(e) { var t, n, r; (t = e.offset().top - i.$box.offset().top, n = (i.$iframe && i.$iframe.offset().left || 0) + e.offset().left - e.position().left - 4 < s.outerWidth() ? e.offset().left + s.outerWidth() : 0 - s.outerWidth(), i.opts.enter != kt.ENTER_BR) ? r = (s.outerHeight() - e.outerHeight()) / 2: (c(document.createElement("span")).html(kt.INVISIBLE_SPACE).insertAfter(e), r = (s.outerHeight() - e.next().outerHeight()) / 2, e.next().remove()); if (i.opts.iframe) { var a = i.helpers.getPX(i.$wp.find(".fr-iframe").css("padding-top")); t += i.$iframe.offset().top + a } s.hasClass("fr-on") && 0 <= t && l.css("top", t - r), 0 <= t && t - Math.abs(r) <= i.$box.outerHeight() - e.outerHeight() ? (s.hasClass("fr-hidden") && (s.hasClass("fr-on") && f(), s.removeClass("fr-hidden")), s.css("top", t - r)) : s.hasClass("fr-visible") && !i.opts.toolbarInline && (s.addClass("fr-hidden"), p()), s.css("left", n) } function a(e) { i.markdown && i.markdown.isEnabled() || (s || function t() { i.shared.$quick_insert || (i.shared.$quick_insert = c(document.createElement("div")).attr("class", "fr-quick-insert").html('').concat(i.icon.create("quickInsert"), ""))); s = i.shared.$quick_insert, i.tooltip.bind(i.$box, ".fr-quick-insert > a.fr-floating-btn"), i.events.on("destroy", function () { c("body").first().append(s.removeClass("fr-on")), l && (p(), c("body").first().append(l.css("left", -9999).css("top", -9999))) }, !0), i.events.on("shared.destroy", function () { s.html("").removeData().remove(), s = null, l && (l.html("").removeData().remove(), l = null) }, !0), i.events.on("commands.before", o), i.events.on("commands.after", function () { i.popups.areVisible() || r() }), i.events.bindClick(i.$box, ".fr-quick-insert > a", f), i.events.bindClick(i.$box, ".fr-qi-helper > a.fr-btn", function (e) { var t = c(e.currentTarget).data("cmd"); if (!1 === i.events.trigger("quickInsert.commands.before", [t])) return !1; kt.QUICK_INSERT_BUTTONS[t].callback.apply(i, [e.currentTarget]), kt.QUICK_INSERT_BUTTONS[t].undo && i.undo.saveStep(), i.events.trigger("quickInsert.commands.after", [t]), i.quickInsert.hide() }), i.events.$on(i.$wp, "scroll", u), i.events.$on(i.$tb, "transitionend", ".fr-more-toolbar", u) }(), s.hasClass("fr-on") && p(), i.$box.append(s), n(e), s.data("tag", e), s.addClass("fr-visible")) } function r() { if (i.core.hasFocus()) { var e = i.selection.element(); if (i.opts.enter == kt.ENTER_BR || i.node.isBlock(e) || (e = i.node.blockParent(e)), i.opts.enter == kt.ENTER_BR && !i.node.isBlock(e)) { var t = i.node.deepestParent(e); t && (e = t) } var n = function n() { return i.opts.enter != kt.ENTER_BR && i.node.isEmpty(e) && 0 <= i.opts.quickInsertTags.indexOf(e.tagName.toLowerCase()) }, r = function r() { return i.opts.enter == kt.ENTER_BR && ("BR" == e.tagName && (!e.previousSibling || "BR" == e.previousSibling.tagName || i.node.isBlock(e.previousSibling)) || i.node.isEmpty(e) && (!e.previousSibling || "BR" == e.previousSibling.tagName || i.node.isBlock(e.previousSibling)) && (!e.nextSibling || "BR" == e.nextSibling.tagName || i.node.isBlock(e.nextSibling))) }; e && (n() || r()) ? s && s.data("tag").is(c(e)) && s.hasClass("fr-on") ? p() : i.selection.isCollapsed() && a(c(e)) : o() } } function o() { s && !d && (s.hasClass("fr-on") && p(), s.removeClass("fr-visible fr-on"), s.css("left", -9999).css("top", -9999)) } function f(e) { if (e && e.preventDefault(), s.hasClass("fr-on") && !s.hasClass("fr-hidden")) p(); else { if (!i.shared.$qi_helper) { for (var t = i.opts.quickInsertButtons, n = '
    ', r = 0, a = 0; a < t.length; a++) { var o = kt.QUICK_INSERT_BUTTONS[t[a]]; o && (!o.requiredPlugin || kt.PLUGINS[o.requiredPlugin] && 0 <= i.opts.pluginsEnabled.indexOf(o.requiredPlugin)) && (n += '').concat(i.icon.create(o.icon), "")) } n += "
    ", i.shared.$qi_helper = c(n), i.tooltip.bind(i.shared.$qi_helper, "a.fr-btn"), i.events.$on(i.shared.$qi_helper, "mousedown", function (e) { e.preventDefault() }, !0) } l = i.shared.$qi_helper, i.$box.append(l), d = !0, setTimeout(function () { d = !1, l.css("top", parseFloat(s.css("top"))), l.css("left", parseFloat(s.css("left")) + s.outerWidth()), l.find("a").addClass("fr-size-1"), s.addClass("fr-on") }, 10) } } function p() { var n = i.$box.find(".fr-qi-helper"); n.length && function () { for (var t = n.find("a"), e = 0; e < t.length; e++) ! function (e) { setTimeout(function () { n.children().eq(t.length - 1 - e).removeClass("fr-size-1") }, 25 * e) }(e); setTimeout(function () { n.css("left", -9999), s && !s.hasClass("fr-hidden") && s.removeClass("fr-on") }, 25 * e) }() } function u() { s.hasClass("fr-visible") && n(s.data("tag")) } return { _init: function e() { if (!i.$wp || !i.opts.quickInsertEnabled) return !1; i.popups.onShow("image.edit", o), i.events.on("mouseup", r), i.helpers.isMobile() && i.events.$on(c(i.o_doc), "selectionchange", r), i.events.on("blur", o), i.events.on("keyup", r), i.events.on("keydown", function () { setTimeout(function () { r() }, 0) }) }, hide: o } }, kt.PLUGINS.quote = function (o) { var i = o.$; function s(e) { for (; e.parentNode && e.parentNode != o.el;) e = e.parentNode; return e } return { apply: function t(e) { o.selection.save(), o.html.wrap(!0, !0, !0, !0), o.selection.restore(), "increase" == e ? function r() { o.html.unwrap(); var e, t = o.selection.blocks(); for (e = 0; e < t.length; e++) t[e] = s(t[e]); o.selection.save(); var n = i(document.createElement("blockquote")); for (n.insertBefore(t[0]), e = 0; e < t.length; e++) n.append(t[e]); o.opts.trackChangesEnabled && o.track_changes.addQuote(n), o.selection.isCollapsed() || o.selection.restore() }() : "decrease" == e && function a() { var e = o.opts.trackChangesEnabled; o.html.unwrap(); var t, n = o.selection.blocks(); for (t = 0; t < n.length; t++) "BLOCKQUOTE" != n[t].tagName && (n[t] = e && i(n[t]).parentsUntil(o.$el, "[data-track-id^=pending]").get(0) || i(n[t]).parentsUntil(o.$el, "BLOCKQUOTE").get(0)); for (o.selection.save(), t = 0; t < n.length; t++) n[t] && (e ? o.track_changes.removeQuote(i(n[t]), t) : i(n[t]).replaceWith(n[t].innerHTML)); o.selection.isCollapsed() || o.selection.restore() }() } } }, kt.RegisterShortcut(kt.KEYCODE.SINGLE_QUOTE, "quote", "increase", "'"), kt.RegisterShortcut(kt.KEYCODE.SINGLE_QUOTE, "quote", "decrease", "'", !0), kt.RegisterCommand("quote", { title: "Quote", type: "dropdown", html: function () { var e = '" }, callback: function (e, t) { this.quote.apply(t) }, plugin: "quote" }), kt.DefineIcon("quote", { NAME: "quote-left", SVG_KEY: "blockquote" }), Object.assign(kt.DEFAULTS, { saveInterval: 1e4, saveURL: null, saveParams: {}, saveParam: "body", saveMethod: "POST" }), kt.PLUGINS.save = function (s) { var l = s.$, r = null, c = null, t = !1, d = 1, f = 2, n = {}; function p(e, t) { s.events.trigger("save.error", [ { code: e, message: n[e] }, t]) } function a(e) { void 0 === e && (e = s.html.get()); var r = e, t = s.events.trigger("save.before", [e]); if (!1 === t) return !1; if ("string" == typeof t && (e = t), s.opts.saveURL) { var n = {}; for (var a in s.opts.saveParams) if (s.opts.saveParams.hasOwnProperty(a)) { var o = s.opts.saveParams[a]; n[a] = "function" == typeof o ? o.call(this) : o } var i = {}; i[s.opts.saveParam] = e, l(this).ajax( { method: s.opts.saveMethod, url: s.opts.saveURL, data: Object.assign(i, n), crossDomain: s.opts.requestWithCORS, withCredentials: s.opts.requestWithCredentials, headers: s.opts.requestHeaders, done: function (e, t, n) { c = r, s.events.trigger("save.after", [e]) }, fail: function (e) { p(f, e.response || e.responseText) } }) } else p(d) } function o() { clearTimeout(r), r = setTimeout(function () { var e = s.html.get(); (c != e || t) && (t = !1, a(c = e)) }, 0) } return n[d] = "Missing saveURL option.", n[f] = "Something went wrong during save.", { _init: function i() { if (s.opts.letteringClass) for (var e = s.opts.letteringClass, t = s.$el.find(".".concat(e)).length, n = 0; n < t; n++) s.$el.find(".".concat(e))[n].innerHTML = s.$el.find(".".concat(e))[n].innerText.replace(/([\w'-]+|[?.",])/g, "$1"); s.opts.saveInterval && (c = s.html.get(), s.events.on("contentChanged", function () { setTimeout(o, s.opts.saveInterval) }), s.events.on("keydown destroy", function () { clearTimeout(r) })) }, save: a, reset: function e() { o(), t = !1 }, force: function u() { t = !0 } } }, kt.DefineIcon("save", { NAME: "floppy-o", FA5NAME: "save" }), kt.RegisterCommand("save", { title: "Save", undo: !1, focus: !1, refreshAfterCallback: !1, callback: function () { this.save.save() }, plugin: "save" }), Object.assign(kt.DEFAULTS, { specialCharactersSets: [ { title: "Latin", "char": "¡", list: [ { "char": "¡", desc: "INVERTED EXCLAMATION MARK" }, { "char": "¢", desc: "CENT SIGN" }, { "char": "£", desc: "POUND SIGN" }, { "char": "¤", desc: "CURRENCY SIGN" }, { "char": "¥", desc: "YEN SIGN" }, { "char": "¦", desc: "BROKEN BAR" }, { "char": "§", desc: "SECTION SIGN" }, { "char": "¨", desc: "DIAERESIS" }, { "char": "©", desc: "COPYRIGHT SIGN" }, { "char": "™", desc: "TRADEMARK SIGN" }, { "char": "ª", desc: "FEMININE ORDINAL INDICATOR" }, { "char": "«", desc: "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK" }, { "char": "¬", desc: "NOT SIGN" }, { "char": "®", desc: "REGISTERED SIGN" }, { "char": "¯", desc: "MACRON" }, { "char": "°", desc: "DEGREE SIGN" }, { "char": "±", desc: "PLUS-MINUS SIGN" }, { "char": "²", desc: "SUPERSCRIPT TWO" }, { "char": "³", desc: "SUPERSCRIPT THREE" }, { "char": "´", desc: "ACUTE ACCENT" }, { "char": "µ", desc: "MICRO SIGN" }, { "char": "¶", desc: "PILCROW SIGN" }, { "char": "·", desc: "MIDDLE DOT" }, { "char": "¸", desc: "CEDILLA" }, { "char": "¹", desc: "SUPERSCRIPT ONE" }, { "char": "º", desc: "MASCULINE ORDINAL INDICATOR" }, { "char": "»", desc: "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" }, { "char": "¼", desc: "VULGAR FRACTION ONE QUARTER" }, { "char": "½", desc: "VULGAR FRACTION ONE HALF" }, { "char": "¾", desc: "VULGAR FRACTION THREE QUARTERS" }, { "char": "¿", desc: "INVERTED QUESTION MARK" }, { "char": "À", desc: "LATIN CAPITAL LETTER A WITH GRAVE" }, { "char": "Á", desc: "LATIN CAPITAL LETTER A WITH ACUTE" }, { "char": "Â", desc: "LATIN CAPITAL LETTER A WITH CIRCUMFLEX" }, { "char": "Ã", desc: "LATIN CAPITAL LETTER A WITH TILDE" }, { "char": "Ä", desc: "LATIN CAPITAL LETTER A WITH DIAERESIS " }, { "char": "Å", desc: "LATIN CAPITAL LETTER A WITH RING ABOVE" }, { "char": "Æ", desc: "LATIN CAPITAL LETTER AE" }, { "char": "Ç", desc: "LATIN CAPITAL LETTER C WITH CEDILLA" }, { "char": "È", desc: "LATIN CAPITAL LETTER E WITH GRAVE" }, { "char": "É", desc: "LATIN CAPITAL LETTER E WITH ACUTE" }, { "char": "Ê", desc: "LATIN CAPITAL LETTER E WITH CIRCUMFLEX" }, { "char": "Ë", desc: "LATIN CAPITAL LETTER E WITH DIAERESIS" }, { "char": "Ì", desc: "LATIN CAPITAL LETTER I WITH GRAVE" }, { "char": "Í", desc: "LATIN CAPITAL LETTER I WITH ACUTE" }, { "char": "Î", desc: "LATIN CAPITAL LETTER I WITH CIRCUMFLEX" }, { "char": "Ï", desc: "LATIN CAPITAL LETTER I WITH DIAERESIS" }, { "char": "Ð", desc: "LATIN CAPITAL LETTER ETH" }, { "char": "Ñ", desc: "LATIN CAPITAL LETTER N WITH TILDE" }, { "char": "Ò", desc: "LATIN CAPITAL LETTER O WITH GRAVE" }, { "char": "Ó", desc: "LATIN CAPITAL LETTER O WITH ACUTE" }, { "char": "Ô", desc: "LATIN CAPITAL LETTER O WITH CIRCUMFLEX" }, { "char": "Õ", desc: "LATIN CAPITAL LETTER O WITH TILDE" }, { "char": "Ö", desc: "LATIN CAPITAL LETTER O WITH DIAERESIS" }, { "char": "×", desc: "MULTIPLICATION SIGN" }, { "char": "Ø", desc: "LATIN CAPITAL LETTER O WITH STROKE" }, { "char": "Ù", desc: "LATIN CAPITAL LETTER U WITH GRAVE" }, { "char": "Ú", desc: "LATIN CAPITAL LETTER U WITH ACUTE" }, { "char": "Û", desc: "LATIN CAPITAL LETTER U WITH CIRCUMFLEX" }, { "char": "Ü", desc: "LATIN CAPITAL LETTER U WITH DIAERESIS" }, { "char": "Ý", desc: "LATIN CAPITAL LETTER Y WITH ACUTE" }, { "char": "Þ", desc: "LATIN CAPITAL LETTER THORN" }, { "char": "ß", desc: "LATIN SMALL LETTER SHARP S" }, { "char": "à", desc: "LATIN SMALL LETTER A WITH GRAVE" }, { "char": "á", desc: "LATIN SMALL LETTER A WITH ACUTE " }, { "char": "â", desc: "LATIN SMALL LETTER A WITH CIRCUMFLEX" }, { "char": "ã", desc: "LATIN SMALL LETTER A WITH TILDE" }, { "char": "ä", desc: "LATIN SMALL LETTER A WITH DIAERESIS" }, { "char": "å", desc: "LATIN SMALL LETTER A WITH RING ABOVE" }, { "char": "æ", desc: "LATIN SMALL LETTER AE" }, { "char": "ç", desc: "LATIN SMALL LETTER C WITH CEDILLA" }, { "char": "è", desc: "LATIN SMALL LETTER E WITH GRAVE" }, { "char": "é", desc: "LATIN SMALL LETTER E WITH ACUTE" }, { "char": "ê", desc: "LATIN SMALL LETTER E WITH CIRCUMFLEX" }, { "char": "ë", desc: "LATIN SMALL LETTER E WITH DIAERESIS" }, { "char": "ì", desc: "LATIN SMALL LETTER I WITH GRAVE" }, { "char": "í", desc: "LATIN SMALL LETTER I WITH ACUTE" }, { "char": "î", desc: "LATIN SMALL LETTER I WITH CIRCUMFLEX" }, { "char": "ï", desc: "LATIN SMALL LETTER I WITH DIAERESIS" }, { "char": "ð", desc: "LATIN SMALL LETTER ETH" }, { "char": "ñ", desc: "LATIN SMALL LETTER N WITH TILDE" }, { "char": "ò", desc: "LATIN SMALL LETTER O WITH GRAVE" }, { "char": "ó", desc: "LATIN SMALL LETTER O WITH ACUTE" }, { "char": "ô", desc: "LATIN SMALL LETTER O WITH CIRCUMFLEX" }, { "char": "õ", desc: "LATIN SMALL LETTER O WITH TILDE" }, { "char": "ö", desc: "LATIN SMALL LETTER O WITH DIAERESIS" }, { "char": "÷", desc: "DIVISION SIGN" }, { "char": "ø", desc: "LATIN SMALL LETTER O WITH STROKE" }, { "char": "ù", desc: "LATIN SMALL LETTER U WITH GRAVE" }, { "char": "ú", desc: "LATIN SMALL LETTER U WITH ACUTE" }, { "char": "û", desc: "LATIN SMALL LETTER U WITH CIRCUMFLEX" }, { "char": "ü", desc: "LATIN SMALL LETTER U WITH DIAERESIS" }, { "char": "ý", desc: "LATIN SMALL LETTER Y WITH ACUTE" }, { "char": "þ", desc: "LATIN SMALL LETTER THORN" }, { "char": "ÿ", desc: "LATIN SMALL LETTER Y WITH DIAERESIS" }] }, { title: "Greek", "char": "Α", list: [ { "char": "Α", desc: "GREEK CAPITAL LETTER ALPHA" }, { "char": "Β", desc: "GREEK CAPITAL LETTER BETA" }, { "char": "Γ", desc: "GREEK CAPITAL LETTER GAMMA" }, { "char": "Δ", desc: "GREEK CAPITAL LETTER DELTA" }, { "char": "Ε", desc: "GREEK CAPITAL LETTER EPSILON" }, { "char": "Ζ", desc: "GREEK CAPITAL LETTER ZETA" }, { "char": "Η", desc: "GREEK CAPITAL LETTER ETA" }, { "char": "Θ", desc: "GREEK CAPITAL LETTER THETA" }, { "char": "Ι", desc: "GREEK CAPITAL LETTER IOTA" }, { "char": "Κ", desc: "GREEK CAPITAL LETTER KAPPA" }, { "char": "Λ", desc: "GREEK CAPITAL LETTER LAMBDA" }, { "char": "Μ", desc: "GREEK CAPITAL LETTER MU" }, { "char": "Ν", desc: "GREEK CAPITAL LETTER NU" }, { "char": "Ξ", desc: "GREEK CAPITAL LETTER XI" }, { "char": "Ο", desc: "GREEK CAPITAL LETTER OMICRON" }, { "char": "Π", desc: "GREEK CAPITAL LETTER PI" }, { "char": "Ρ", desc: "GREEK CAPITAL LETTER RHO" }, { "char": "Σ", desc: "GREEK CAPITAL LETTER SIGMA" }, { "char": "Τ", desc: "GREEK CAPITAL LETTER TAU" }, { "char": "Υ", desc: "GREEK CAPITAL LETTER UPSILON" }, { "char": "Φ", desc: "GREEK CAPITAL LETTER PHI" }, { "char": "Χ", desc: "GREEK CAPITAL LETTER CHI" }, { "char": "Ψ", desc: "GREEK CAPITAL LETTER PSI" }, { "char": "Ω", desc: "GREEK CAPITAL LETTER OMEGA" }, { "char": "α", desc: "GREEK SMALL LETTER ALPHA" }, { "char": "β", desc: "GREEK SMALL LETTER BETA" }, { "char": "γ", desc: "GREEK SMALL LETTER GAMMA" }, { "char": "δ", desc: "GREEK SMALL LETTER DELTA" }, { "char": "ε", desc: "GREEK SMALL LETTER EPSILON" }, { "char": "ζ", desc: "GREEK SMALL LETTER ZETA" }, { "char": "η", desc: "GREEK SMALL LETTER ETA" }, { "char": "θ", desc: "GREEK SMALL LETTER THETA" }, { "char": "ι", desc: "GREEK SMALL LETTER IOTA" }, { "char": "κ", desc: "GREEK SMALL LETTER KAPPA" }, { "char": "λ", desc: "GREEK SMALL LETTER LAMBDA" }, { "char": "μ", desc: "GREEK SMALL LETTER MU" }, { "char": "ν", desc: "GREEK SMALL LETTER NU" }, { "char": "ξ", desc: "GREEK SMALL LETTER XI" }, { "char": "ο", desc: "GREEK SMALL LETTER OMICRON" }, { "char": "π", desc: "GREEK SMALL LETTER PI" }, { "char": "ρ", desc: "GREEK SMALL LETTER RHO" }, { "char": "ς", desc: "GREEK SMALL LETTER FINAL SIGMA" }, { "char": "σ", desc: "GREEK SMALL LETTER SIGMA" }, { "char": "τ", desc: "GREEK SMALL LETTER TAU" }, { "char": "υ", desc: "GREEK SMALL LETTER UPSILON" }, { "char": "φ", desc: "GREEK SMALL LETTER PHI" }, { "char": "χ", desc: "GREEK SMALL LETTER CHI" }, { "char": "ψ", desc: "GREEK SMALL LETTER PSI" }, { "char": "ω", desc: "GREEK SMALL LETTER OMEGA" }, { "char": "ϑ", desc: "GREEK THETA SYMBOL" }, { "char": "ϒ", desc: "GREEK UPSILON WITH HOOK SYMBOL" }, { "char": "ϕ", desc: "GREEK PHI SYMBOL" }, { "char": "ϖ", desc: "GREEK PI SYMBOL" }, { "char": "Ϝ", desc: "GREEK LETTER DIGAMMA" }, { "char": "ϝ", desc: "GREEK SMALL LETTER DIGAMMA" }, { "char": "ϰ", desc: "GREEK KAPPA SYMBOL" }, { "char": "ϱ", desc: "GREEK RHO SYMBOL" }, { "char": "ϵ", desc: "GREEK LUNATE EPSILON SYMBOL" }, { "char": "϶", desc: "GREEK REVERSED LUNATE EPSILON SYMBOL" }] }, { title: "Cyrillic", "char": "Ѐ", list: [ { "char": "Ѐ", desc: "CYRILLIC CAPITAL LETTER IE WITH GRAVE" }, { "char": "Ё", desc: "CYRILLIC CAPITAL LETTER IO" }, { "char": "Ђ", desc: "CYRILLIC CAPITAL LETTER DJE" }, { "char": "Ѓ", desc: "CYRILLIC CAPITAL LETTER GJE" }, { "char": "Є", desc: "CYRILLIC CAPITAL LETTER UKRAINIAN IE" }, { "char": "Ѕ", desc: "CYRILLIC CAPITAL LETTER DZE" }, { "char": "І", desc: "CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I" }, { "char": "Ї", desc: "CYRILLIC CAPITAL LETTER YI" }, { "char": "Ј", desc: "CYRILLIC CAPITAL LETTER JE" }, { "char": "Љ", desc: "CYRILLIC CAPITAL LETTER LJE" }, { "char": "Њ", desc: "CYRILLIC CAPITAL LETTER NJE" }, { "char": "Ћ", desc: "CYRILLIC CAPITAL LETTER TSHE" }, { "char": "Ќ", desc: "CYRILLIC CAPITAL LETTER KJE" }, { "char": "Ѝ", desc: "CYRILLIC CAPITAL LETTER I WITH GRAVE" }, { "char": "Ў", desc: "CYRILLIC CAPITAL LETTER SHORT U" }, { "char": "Џ", desc: "CYRILLIC CAPITAL LETTER DZHE" }, { "char": "А", desc: "CYRILLIC CAPITAL LETTER A" }, { "char": "Б", desc: "CYRILLIC CAPITAL LETTER BE" }, { "char": "В", desc: "CYRILLIC CAPITAL LETTER VE" }, { "char": "Г", desc: "CYRILLIC CAPITAL LETTER GHE" }, { "char": "Д", desc: "CYRILLIC CAPITAL LETTER DE" }, { "char": "Е", desc: "CYRILLIC CAPITAL LETTER IE" }, { "char": "Ж", desc: "CYRILLIC CAPITAL LETTER ZHE" }, { "char": "З", desc: "CYRILLIC CAPITAL LETTER ZE" }, { "char": "И", desc: "CYRILLIC CAPITAL LETTER I" }, { "char": "Й", desc: "CYRILLIC CAPITAL LETTER SHORT I" }, { "char": "К", desc: "CYRILLIC CAPITAL LETTER KA" }, { "char": "Л", desc: "CYRILLIC CAPITAL LETTER EL" }, { "char": "М", desc: "CYRILLIC CAPITAL LETTER EM" }, { "char": "Н", desc: "CYRILLIC CAPITAL LETTER EN" }, { "char": "О", desc: "CYRILLIC CAPITAL LETTER O" }, { "char": "П", desc: "CYRILLIC CAPITAL LETTER PE" }, { "char": "Р", desc: "CYRILLIC CAPITAL LETTER ER" }, { "char": "С", desc: "CYRILLIC CAPITAL LETTER ES" }, { "char": "Т", desc: "CYRILLIC CAPITAL LETTER TE" }, { "char": "У", desc: "CYRILLIC CAPITAL LETTER U" }, { "char": "Ф", desc: "CYRILLIC CAPITAL LETTER EF" }, { "char": "Х", desc: "CYRILLIC CAPITAL LETTER HA" }, { "char": "Ц", desc: "CYRILLIC CAPITAL LETTER TSE" }, { "char": "Ч", desc: "CYRILLIC CAPITAL LETTER CHE" }, { "char": "Ш", desc: "CYRILLIC CAPITAL LETTER SHA" }, { "char": "Щ", desc: "CYRILLIC CAPITAL LETTER SHCHA" }, { "char": "Ъ", desc: "CYRILLIC CAPITAL LETTER HARD SIGN" }, { "char": "Ы", desc: "CYRILLIC CAPITAL LETTER YERU" }, { "char": "Ь", desc: "CYRILLIC CAPITAL LETTER SOFT SIGN" }, { "char": "Э", desc: "CYRILLIC CAPITAL LETTER E" }, { "char": "Ю", desc: "CYRILLIC CAPITAL LETTER YU" }, { "char": "Я", desc: "CYRILLIC CAPITAL LETTER YA" }, { "char": "а", desc: "CYRILLIC SMALL LETTER A" }, { "char": "б", desc: "CYRILLIC SMALL LETTER BE" }, { "char": "в", desc: "CYRILLIC SMALL LETTER VE" }, { "char": "г", desc: "CYRILLIC SMALL LETTER GHE" }, { "char": "д", desc: "CYRILLIC SMALL LETTER DE" }, { "char": "е", desc: "CYRILLIC SMALL LETTER IE" }, { "char": "ж", desc: "CYRILLIC SMALL LETTER ZHE" }, { "char": "з", desc: "CYRILLIC SMALL LETTER ZE" }, { "char": "и", desc: "CYRILLIC SMALL LETTER I" }, { "char": "й", desc: "CYRILLIC SMALL LETTER SHORT I" }, { "char": "к", desc: "CYRILLIC SMALL LETTER KA" }, { "char": "л", desc: "CYRILLIC SMALL LETTER EL" }, { "char": "м", desc: "CYRILLIC SMALL LETTER EM" }, { "char": "н", desc: "CYRILLIC SMALL LETTER EN" }, { "char": "о", desc: "CYRILLIC SMALL LETTER O" }, { "char": "п", desc: "CYRILLIC SMALL LETTER PE" }, { "char": "р", desc: "CYRILLIC SMALL LETTER ER" }, { "char": "с", desc: "CYRILLIC SMALL LETTER ES" }, { "char": "т", desc: "CYRILLIC SMALL LETTER TE" }, { "char": "у", desc: "CYRILLIC SMALL LETTER U" }, { "char": "ф", desc: "CYRILLIC SMALL LETTER EF" }, { "char": "х", desc: "CYRILLIC SMALL LETTER HA" }, { "char": "ц", desc: "CYRILLIC SMALL LETTER TSE" }, { "char": "ч", desc: "CYRILLIC SMALL LETTER CHE" }, { "char": "ш", desc: "CYRILLIC SMALL LETTER SHA" }, { "char": "щ", desc: "CYRILLIC SMALL LETTER SHCHA" }, { "char": "ъ", desc: "CYRILLIC SMALL LETTER HARD SIGN" }, { "char": "ы", desc: "CYRILLIC SMALL LETTER YERU" }, { "char": "ь", desc: "CYRILLIC SMALL LETTER SOFT SIGN" }, { "char": "э", desc: "CYRILLIC SMALL LETTER E" }, { "char": "ю", desc: "CYRILLIC SMALL LETTER YU" }, { "char": "я", desc: "CYRILLIC SMALL LETTER YA" }, { "char": "ѐ", desc: "CYRILLIC SMALL LETTER IE WITH GRAVE" }, { "char": "ё", desc: "CYRILLIC SMALL LETTER IO" }, { "char": "ђ", desc: "CYRILLIC SMALL LETTER DJE" }, { "char": "ѓ", desc: "CYRILLIC SMALL LETTER GJE" }, { "char": "є", desc: "CYRILLIC SMALL LETTER UKRAINIAN IE" }, { "char": "ѕ", desc: "CYRILLIC SMALL LETTER DZE" }, { "char": "і", desc: "CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I" }, { "char": "ї", desc: "CYRILLIC SMALL LETTER YI" }, { "char": "ј", desc: "CYRILLIC SMALL LETTER JE" }, { "char": "љ", desc: "CYRILLIC SMALL LETTER LJE" }, { "char": "њ", desc: "CYRILLIC SMALL LETTER NJE" }, { "char": "ћ", desc: "CYRILLIC SMALL LETTER TSHE" }, { "char": "ќ", desc: "CYRILLIC SMALL LETTER KJE" }, { "char": "ѝ", desc: "CYRILLIC SMALL LETTER I WITH GRAVE" }, { "char": "ў", desc: "CYRILLIC SMALL LETTER SHORT U" }, { "char": "џ", desc: "CYRILLIC SMALL LETTER DZHE" }] }, { title: "Punctuation", "char": "–", list: [ { "char": "–", desc: "EN DASH" }, { "char": "—", desc: "EM DASH" }, { "char": "‘", desc: "LEFT SINGLE QUOTATION MARK" }, { "char": "’", desc: "RIGHT SINGLE QUOTATION MARK" }, { "char": "‚", desc: "SINGLE LOW-9 QUOTATION MARK" }, { "char": "“", desc: "LEFT DOUBLE QUOTATION MARK" }, { "char": "”", desc: "RIGHT DOUBLE QUOTATION MARK" }, { "char": "„", desc: "DOUBLE LOW-9 QUOTATION MARK" }, { "char": "†", desc: "DAGGER" }, { "char": "‡", desc: "DOUBLE DAGGER" }, { "char": "•", desc: "BULLET" }, { "char": "…", desc: "HORIZONTAL ELLIPSIS" }, { "char": "‰", desc: "PER MILLE SIGN" }, { "char": "′", desc: "PRIME" }, { "char": "″", desc: "DOUBLE PRIME" }, { "char": "‹", desc: "SINGLE LEFT-POINTING ANGLE QUOTATION MARK" }, { "char": "›", desc: "SINGLE RIGHT-POINTING ANGLE QUOTATION MARK" }, { "char": "‾", desc: "OVERLINE" }, { "char": "⁄", desc: "FRACTION SLASH" }] }, { title: "Currency", "char": "₠", list: [ { "char": "₠", desc: "EURO-CURRENCY SIGN" }, { "char": "₡", desc: "COLON SIGN" }, { "char": "₢", desc: "CRUZEIRO SIGN" }, { "char": "₣", desc: "FRENCH FRANC SIGN" }, { "char": "₤", desc: "LIRA SIGN" }, { "char": "₥", desc: "MILL SIGN" }, { "char": "₦", desc: "NAIRA SIGN" }, { "char": "₧", desc: "PESETA SIGN" }, { "char": "₨", desc: "RUPEE SIGN" }, { "char": "₩", desc: "WON SIGN" }, { "char": "₪", desc: "NEW SHEQEL SIGN" }, { "char": "₫", desc: "DONG SIGN" }, { "char": "€", desc: "EURO SIGN" }, { "char": "₭", desc: "KIP SIGN" }, { "char": "₮", desc: "TUGRIK SIGN" }, { "char": "₯", desc: "DRACHMA SIGN" }, { "char": "₰", desc: "GERMAN PENNY SYMBOL" }, { "char": "₱", desc: "PESO SIGN" }, { "char": "₲", desc: "GUARANI SIGN" }, { "char": "₳", desc: "AUSTRAL SIGN" }, { "char": "₴", desc: "HRYVNIA SIGN" }, { "char": "₵", desc: "CEDI SIGN" }, { "char": "₶", desc: "LIVRE TOURNOIS SIGN" }, { "char": "₷", desc: "SPESMILO SIGN" }, { "char": "₸", desc: "TENGE SIGN" }, { "char": "₹", desc: "INDIAN RUPEE SIGN" }] }, { title: "Arrows", "char": "←", list: [ { "char": "←", desc: "LEFTWARDS ARROW" }, { "char": "↑", desc: "UPWARDS ARROW" }, { "char": "→", desc: "RIGHTWARDS ARROW" }, { "char": "↓", desc: "DOWNWARDS ARROW" }, { "char": "↔", desc: "LEFT RIGHT ARROW" }, { "char": "↕", desc: "UP DOWN ARROW" }, { "char": "↖", desc: "NORTH WEST ARROW" }, { "char": "↗", desc: "NORTH EAST ARROW" }, { "char": "↘", desc: "SOUTH EAST ARROW" }, { "char": "↙", desc: "SOUTH WEST ARROW" }, { "char": "↚", desc: "LEFTWARDS ARROW WITH STROKE" }, { "char": "↛", desc: "RIGHTWARDS ARROW WITH STROKE" }, { "char": "↜", desc: "LEFTWARDS WAVE ARROW" }, { "char": "↝", desc: "RIGHTWARDS WAVE ARROW" }, { "char": "↞", desc: "LEFTWARDS TWO HEADED ARROW" }, { "char": "↟", desc: "UPWARDS TWO HEADED ARROW" }, { "char": "↠", desc: "RIGHTWARDS TWO HEADED ARROW" }, { "char": "↡", desc: "DOWNWARDS TWO HEADED ARROW" }, { "char": "↢", desc: "LEFTWARDS ARROW WITH TAIL" }, { "char": "↣", desc: "RIGHTWARDS ARROW WITH TAIL" }, { "char": "↤", desc: "LEFTWARDS ARROW FROM BAR" }, { "char": "↥", desc: "UPWARDS ARROW FROM BAR" }, { "char": "↦", desc: "RIGHTWARDS ARROW FROM BAR" }, { "char": "↧", desc: "DOWNWARDS ARROW FROM BAR" }, { "char": "↨", desc: "UP DOWN ARROW WITH BASE" }, { "char": "↩", desc: "LEFTWARDS ARROW WITH HOOK" }, { "char": "↪", desc: "RIGHTWARDS ARROW WITH HOOK" }, { "char": "↫", desc: "LEFTWARDS ARROW WITH LOOP" }, { "char": "↬", desc: "RIGHTWARDS ARROW WITH LOOP" }, { "char": "↭", desc: "LEFT RIGHT WAVE ARROW" }, { "char": "↮", desc: "LEFT RIGHT ARROW WITH STROKE" }, { "char": "↯", desc: "DOWNWARDS ZIGZAG ARROW" }, { "char": "↰", desc: "UPWARDS ARROW WITH TIP LEFTWARDS" }, { "char": "↱", desc: "UPWARDS ARROW WITH TIP RIGHTWARDS" }, { "char": "↲", desc: "DOWNWARDS ARROW WITH TIP LEFTWARDS" }, { "char": "↳", desc: "DOWNWARDS ARROW WITH TIP RIGHTWARDS" }, { "char": "↴", desc: "RIGHTWARDS ARROW WITH CORNER DOWNWARDS" }, { "char": "↵", desc: "DOWNWARDS ARROW WITH CORNER LEFTWARDS" }, { "char": "↶", desc: "ANTICLOCKWISE TOP SEMICIRCLE ARROW" }, { "char": "↷", desc: "CLOCKWISE TOP SEMICIRCLE ARROW" }, { "char": "↸", desc: "NORTH WEST ARROW TO LONG BAR" }, { "char": "↹", desc: "LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR" }, { "char": "↺", desc: "ANTICLOCKWISE OPEN CIRCLE ARROW" }, { "char": "↻", desc: "CLOCKWISE OPEN CIRCLE ARROW" }, { "char": "↼", desc: "LEFTWARDS HARPOON WITH BARB UPWARDS" }, { "char": "↽", desc: "LEFTWARDS HARPOON WITH BARB DOWNWARDS" }, { "char": "↾", desc: "UPWARDS HARPOON WITH BARB RIGHTWARDS" }, { "char": "↿", desc: "UPWARDS HARPOON WITH BARB LEFTWARDS" }, { "char": "⇀", desc: "RIGHTWARDS HARPOON WITH BARB UPWARDS" }, { "char": "⇁", desc: "RIGHTWARDS HARPOON WITH BARB DOWNWARDS" }, { "char": "⇂", desc: "DOWNWARDS HARPOON WITH BARB RIGHTWARDS" }, { "char": "⇃", desc: "DOWNWARDS HARPOON WITH BARB LEFTWARDS" }, { "char": "⇄", desc: "RIGHTWARDS ARROW OVER LEFTWARDS ARROW" }, { "char": "⇅", desc: "UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW" }, { "char": "⇆", desc: "LEFTWARDS ARROW OVER RIGHTWARDS ARROW" }, { "char": "⇇", desc: "LEFTWARDS PAIRED ARROWS" }, { "char": "⇈", desc: "UPWARDS PAIRED ARROWS" }, { "char": "⇉", desc: "RIGHTWARDS PAIRED ARROWS" }, { "char": "⇊", desc: "DOWNWARDS PAIRED ARROWS" }, { "char": "⇋", desc: "LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON" }, { "char": "⇌", desc: "RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON" }, { "char": "⇍", desc: "LEFTWARDS DOUBLE ARROW WITH STROKE" }, { "char": "⇎", desc: "LEFT RIGHT DOUBLE ARROW WITH STROKE" }, { "char": "⇏", desc: "RIGHTWARDS DOUBLE ARROW WITH STROKE" }, { "char": "⇐", desc: "LEFTWARDS DOUBLE ARROW" }, { "char": "⇑", desc: "UPWARDS DOUBLE ARROW" }, { "char": "⇒", desc: "RIGHTWARDS DOUBLE ARROW" }, { "char": "⇓", desc: "DOWNWARDS DOUBLE ARROW" }, { "char": "⇔", desc: "LEFT RIGHT DOUBLE ARROW" }, { "char": "⇕", desc: "UP DOWN DOUBLE ARROW" }, { "char": "⇖", desc: "NORTH WEST DOUBLE ARROW" }, { "char": "⇗", desc: "NORTH EAST DOUBLE ARROW" }, { "char": "⇘", desc: "SOUTH EAST DOUBLE ARROW" }, { "char": "⇙", desc: "SOUTH WEST DOUBLE ARROW" }, { "char": "⇚", desc: "LEFTWARDS TRIPLE ARROW" }, { "char": "⇛", desc: "RIGHTWARDS TRIPLE ARROW" }, { "char": "⇜", desc: "LEFTWARDS SQUIGGLE ARROW" }, { "char": "⇝", desc: "RIGHTWARDS SQUIGGLE ARROW" }, { "char": "⇞", desc: "UPWARDS ARROW WITH DOUBLE STROKE" }, { "char": "⇟", desc: "DOWNWARDS ARROW WITH DOUBLE STROKE" }, { "char": "⇠", desc: "LEFTWARDS DASHED ARROW" }, { "char": "⇡", desc: "UPWARDS DASHED ARROW" }, { "char": "⇢", desc: "RIGHTWARDS DASHED ARROW" }, { "char": "⇣", desc: "DOWNWARDS DASHED ARROW" }, { "char": "⇤", desc: "LEFTWARDS ARROW TO BAR" }, { "char": "⇥", desc: "RIGHTWARDS ARROW TO BAR" }, { "char": "⇦", desc: "LEFTWARDS WHITE ARROW" }, { "char": "⇧", desc: "UPWARDS WHITE ARROW" }, { "char": "⇨", desc: "RIGHTWARDS WHITE ARROW" }, { "char": "⇩", desc: "DOWNWARDS WHITE ARROW" }, { "char": "⇪", desc: "UPWARDS WHITE ARROW FROM BAR" }, { "char": "⇫", desc: "UPWARDS WHITE ARROW ON PEDESTAL" }, { "char": "⇬", desc: "UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR" }, { "char": "⇭", desc: "UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR" }, { "char": "⇮", desc: "UPWARDS WHITE DOUBLE ARROW" }, { "char": "⇯", desc: "UPWARDS WHITE DOUBLE ARROW ON PEDESTAL" }, { "char": "⇰", desc: "RIGHTWARDS WHITE ARROW FROM WALL" }, { "char": "⇱", desc: "NORTH WEST ARROW TO CORNER" }, { "char": "⇲", desc: "SOUTH EAST ARROW TO CORNER" }, { "char": "⇳", desc: "UP DOWN WHITE ARROW" }, { "char": "⇴", desc: "RIGHT ARROW WITH SMALL CIRCLE" }, { "char": "⇵", desc: "DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW" }, { "char": "⇶", desc: "THREE RIGHTWARDS ARROWS" }, { "char": "⇷", desc: "LEFTWARDS ARROW WITH VERTICAL STROKE" }, { "char": "⇸", desc: "RIGHTWARDS ARROW WITH VERTICAL STROKE" }, { "char": "⇹", desc: "LEFT RIGHT ARROW WITH VERTICAL STROKE" }, { "char": "⇺", desc: "LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE" }, { "char": "⇻", desc: "RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE" }, { "char": "⇼", desc: "LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE" }, { "char": "⇽", desc: "LEFTWARDS OPEN-HEADED ARROW" }, { "char": "⇾", desc: "RIGHTWARDS OPEN-HEADED ARROW" }, { "char": "⇿", desc: "LEFT RIGHT OPEN-HEADED ARROW" }] }, { title: "Math", "char": "∀", list: [ { "char": "∀", desc: "FOR ALL" }, { "char": "∂", desc: "PARTIAL DIFFERENTIAL" }, { "char": "∃", desc: "THERE EXISTS" }, { "char": "∅", desc: "EMPTY SET" }, { "char": "∇", desc: "NABLA" }, { "char": "∈", desc: "ELEMENT OF" }, { "char": "∉", desc: "NOT AN ELEMENT OF" }, { "char": "∋", desc: "CONTAINS AS MEMBER" }, { "char": "∏", desc: "N-ARY PRODUCT" }, { "char": "∑", desc: "N-ARY SUMMATION" }, { "char": "−", desc: "MINUS SIGN" }, { "char": "∗", desc: "ASTERISK OPERATOR" }, { "char": "√", desc: "SQUARE ROOT" }, { "char": "∝", desc: "PROPORTIONAL TO" }, { "char": "∞", desc: "INFINITY" }, { "char": "∠", desc: "ANGLE" }, { "char": "∧", desc: "LOGICAL AND" }, { "char": "∨", desc: "LOGICAL OR" }, { "char": "∩", desc: "INTERSECTION" }, { "char": "∪", desc: "UNION" }, { "char": "∫", desc: "INTEGRAL" }, { "char": "∴", desc: "THEREFORE" }, { "char": "∼", desc: "TILDE OPERATOR" }, { "char": "≅", desc: "APPROXIMATELY EQUAL TO" }, { "char": "≈", desc: "ALMOST EQUAL TO" }, { "char": "≠", desc: "NOT EQUAL TO" }, { "char": "≡", desc: "IDENTICAL TO" }, { "char": "≤", desc: "LESS-THAN OR EQUAL TO" }, { "char": "≥", desc: "GREATER-THAN OR EQUAL TO" }, { "char": "⊂", desc: "SUBSET OF" }, { "char": "⊃", desc: "SUPERSET OF" }, { "char": "⊄", desc: "NOT A SUBSET OF" }, { "char": "⊆", desc: "SUBSET OF OR EQUAL TO" }, { "char": "⊇", desc: "SUPERSET OF OR EQUAL TO" }, { "char": "⊕", desc: "CIRCLED PLUS" }, { "char": "⊗", desc: "CIRCLED TIMES" }, { "char": "⊥", desc: "UP TACK" }] }, { title: "Misc", "char": "♠", list: [ { "char": "♠", desc: "BLACK SPADE SUIT" }, { "char": "♣", desc: "BLACK CLUB SUIT" }, { "char": "♥", desc: "BLACK HEART SUIT" }, { "char": "♦", desc: "BLACK DIAMOND SUIT" }, { "char": "♩", desc: "QUARTER NOTE" }, { "char": "♪", desc: "EIGHTH NOTE" }, { "char": "♫", desc: "BEAMED EIGHTH NOTES" }, { "char": "♬", desc: "BEAMED SIXTEENTH NOTES" }, { "char": "♭", desc: "MUSIC FLAT SIGN" }, { "char": "♮", desc: "MUSIC NATURAL SIGN" }, { "char": "☀", desc: "BLACK SUN WITH RAYS" }, { "char": "☁", desc: "CLOUD" }, { "char": "☂", desc: "UMBRELLA" }, { "char": "☃", desc: "SNOWMAN" }, { "char": "☕", desc: "HOT BEVERAGE" }, { "char": "☘", desc: "SHAMROCK" }, { "char": "☯", desc: "YIN YANG" }, { "char": "✔", desc: "HEAVY CHECK MARK" }, { "char": "✖", desc: "HEAVY MULTIPLICATION X" }, { "char": "❄", desc: "SNOWFLAKE" }, { "char": "❛", desc: "HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT" }, { "char": "❜", desc: "HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT" }, { "char": "❝", desc: "HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT" }, { "char": "❞", desc: "HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT" }, { "char": "❤", desc: "HEAVY BLACK HEART" }] }], specialCharButtons: ["specialCharBack", "|"] }), Object.assign(kt.POPUP_TEMPLATES, { specialCharacters: "[_BUTTONS_][_CUSTOM_LAYER_]" }), kt.PLUGINS.specialCharacters = function (g) { var m = g.$, n = g.opts.specialCharactersSets[0], a = g.opts.specialCharactersSets, i = ""; function s() { return '\n
    \n '.concat(function t(e, n) { var r = ""; return e.forEach(function (e) { var t = { elementClass: e.title === n.title ? "fr-active fr-active-tab" : "", title: e.title, dataParam1: e.title, desc: e["char"] }; r += '") }), r }(a, n), '\n
    \n
    \n ').concat(function r(e) { var n = ""; return e.list.forEach(function (e) { var t = { dataParam1: e["char"], title: e.desc, splCharValue: e["char"] }; n += '').concat(t.splCharValue, "") }), n }(n), "\n
    ") } return { setSpecialCharacterCategory: function r(t) { n = a.filter(function (e) { return e.title === t })[0], function e() { g.popups.get("specialCharacters").html(i + s()) }() }, showSpecialCharsPopup: function l() { var e = g.popups.get("specialCharacters"); if (e || (e = function o() { g.opts.toolbarInline && 0 < g.opts.specialCharButtons.length && (i = '
    '.concat(g.button.buildList(g.opts.specialCharButtons), "
    ")); var e = { buttons: i, custom_layer: s() }, t = g.popups.create("specialCharacters", e); return function n(h) { g.events.on("popup.tab", function (e) { var t = m(e.currentTarget); if (!g.popups.isVisible("specialCharacters") || !t.is("span, a")) return !0; var n, r, a, o = e.which; if (kt.KEYCODE.TAB == o) { if (t.is("span.fr-icon") && e.shiftKey || t.is("a") && !e.shiftKey) { var i = h.find(".fr-buttons"); n = !g.accessibility.focusToolbar(i, !!e.shiftKey) } if (!1 !== n) { var s = h.find("span.fr-icon:focus").first().concat(h.findVisible(" span.fr-icon").first().concat(h.find("a"))); t.is("span.fr-icon") && (s = s.not("span.fr-icon:not(:focus)")), r = s.index(t), r = e.shiftKey ? ((r - 1) % s.length + s.length) % s.length : (r + 1) % s.length, a = s.get(r), g.events.disableBlur(), a.focus(), n = !1 } } else if (kt.KEYCODE.ARROW_UP == o || kt.KEYCODE.ARROW_DOWN == o || kt.KEYCODE.ARROW_LEFT == o || kt.KEYCODE.ARROW_RIGHT == o) { if (t.is("span.fr-icon")) { var l = t.parent().find("span.fr-icon"); r = l.index(t); var c = Math.floor(l.length / 11), d = r % 11, f = Math.floor(r / 11), p = 11 * f + d, u = 11 * c; kt.KEYCODE.ARROW_UP == o ? p = ((p - 11) % u + u) % u : kt.KEYCODE.ARROW_DOWN == o ? p = (p + 11) % u : kt.KEYCODE.ARROW_LEFT == o ? p = ((p - 1) % u + u) % u : kt.KEYCODE.ARROW_RIGHT == o && (p = (p + 1) % u), a = m(l.get(p)), g.events.disableBlur(), a.focus(), n = !1 } } else kt.KEYCODE.ENTER == o && (t.is("a") ? t[0].click() : g.button.exec(t), n = !1); return !1 === n && (e.preventDefault(), e.stopPropagation()), n }, !0) }(t), t }()), !e.hasClass("fr-active")) { g.popups.refresh("specialCharacters"), g.popups.setContainer("specialCharacters", g.$tb); var t = g.$tb.find('.fr-command[data-cmd="specialCharacters"]'), n = g.button.getPosition(t), r = n.left, a = n.top; g.popups.show("specialCharacters", r, a, outerHeight) } }, back: function e() { g.popups.hide("specialCharacters"), g.toolbar.showInline() } } }, kt.DefineIcon("specialCharacters", { NAME: "dollar-sign", SVG_KEY: "symbols" }), kt.RegisterCommand("specialCharacters", { title: "Special Characters", icon: "specialCharacters", undo: !1, focus: !1, popup: !0, refreshAfterCallback: !1, plugin: "specialCharacters", showOnMobile: !0, callback: function () { this.popups.isVisible("specialCharacters") ? (this.$el.find(".fr-marker") && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("specialCharacters")) : this.specialCharacters.showSpecialCharsPopup() } }), kt.RegisterCommand("insertSpecialCharacter", { callback: function (e, t) { this.undo.saveStep(), this.html.insert(t), this.undo.saveStep(), this.popups.hide("specialCharacters") } }), kt.RegisterCommand("setSpecialCharacterCategory", { undo: !1, focus: !1, callback: function (e, t) { this.specialCharacters.setSpecialCharacterCategory(t) } }), kt.DefineIcon("specialCharBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("specialCharBack", { title: "Back", undo: !1, focus: !1, back: !0, refreshAfterCallback: !1, callback: function () { this.specialCharacters.back() } }), Object.assign(kt.POPUP_TEMPLATES, { "table.insert": "[_BUTTONS_][_ROWS_COLUMNS_]", "table.edit": "[_BUTTONS_]", "table.colors": "[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]" }), Object.assign(kt.DEFAULTS, { tableInsertMaxSize: 10, tableEditButtons: ["tableHeader", "tableRemove", "tableRows", "tableColumns", "tableStyle", "-", "tableCells", "tableCellBackground", "tableCellVerticalAlign", "tableCellHorizontalAlign", "tableCellStyle"], tableInsertButtons: ["tableBack", "|"], tableResizer: !0, tableDefaultWidth: "100%", tableResizerOffset: 5, tableResizingLimit: 30, tableColorsButtons: ["tableBack", "|"], tableColors: ["#61BD6D", "#1ABC9C", "#54ACD2", "#2C82C9", "#9365B8", "#475577", "#CCCCCC", "#41A85F", "#00A885", "#3D8EB9", "#2969B0", "#553982", "#28324E", "#000000", "#F7DA64", "#FBA026", "#EB6B56", "#E25041", "#A38F84", "#EFEFEF", "#FFFFFF", "#FAC51C", "#F37934", "#D14841", "#B8312F", "#7C706B", "#D1D5D8", "REMOVE"], tableColorsStep: 7, tableCellStyles: { "fr-highlighted": "Highlighted", "fr-thick": "Thick" }, tableStyles: { "fr-dashed-borders": "Dashed Borders", "fr-alternate-rows": "Alternate Rows" }, tableCellMultipleStyles: !0, tableMultipleStyles: !0, tableInsertHelper: !0, tableInsertHelperOffset: 15 }), kt.PLUGINS.table = function (L) { var _, c, a, o, r, i, w, A = L.$; function u() { var e = T(); if (e) { var t = L.popups.get("table.edit"); if (t || (t = p()), t) { L.popups.setContainer("table.edit", L.$sc); var n = M(e), r = n.left + (n.right - n.left) / 2, a = n.bottom; L.popups.show("table.edit", r, a, n.bottom - n.top, !0), L.edit.isDisabled() && (1 < Q().length && L.toolbar.disable(), L.$el.removeClass("fr-no-selection"), L.edit.on(), L.button.bulkRefresh(), L.selection.setAtEnd(L.$el.find(".fr-selected-cell").last().get(0)), L.selection.restore()) } } } function s() { var e = T(); if (e) { var t = L.popups.get("table.colors"); t || (t = function i() { var e = ""; 0 < L.opts.tableColorsButtons.length && (e = '
    '.concat(L.button.buildList(L.opts.tableColorsButtons), "
    ")); var t = ""; L.opts.colorsHEXInput && (t = '
    ")); var n = { buttons: e, colors: function a() { for (var e = '
    ', t = 0; t < L.opts.tableColors.length; t++) 0 !== t && t % L.opts.tableColorsStep == 0 && (e += "
    "), "REMOVE" != L.opts.tableColors[t] ? e += '').concat(L.language.translate("Color"), " ").concat(L.opts.tableColors[t], "   ") : e += '').concat(L.icon.create("tableColorRemove"), '').concat(L.language.translate("Clear Formatting"), ""); return e += "
    " }(), custom_color: t }, r = L.popups.create("table.colors", n); return L.events.$on(L.$wp, "scroll.table-colors", function () { L.popups.isVisible("table.colors") && s() }), function o(h) { L.events.on("popup.tab", function (e) { var t = A(e.currentTarget); if (!L.popups.isVisible("table.colors") || !t.is("span")) return !0; var n = e.which, r = !0; if (kt.KEYCODE.TAB == n) { var a = h.find(".fr-buttons"); r = !L.accessibility.focusToolbar(a, !!e.shiftKey) } else if (kt.KEYCODE.ARROW_UP == n || kt.KEYCODE.ARROW_DOWN == n || kt.KEYCODE.ARROW_LEFT == n || kt.KEYCODE.ARROW_RIGHT == n) { var o = t.parent().find("span.fr-command"), i = o.index(t), s = L.opts.colorsStep, l = Math.floor(o.length / s), c = i % s, d = Math.floor(i / s), f = d * s + c, p = l * s; kt.KEYCODE.ARROW_UP == n ? f = ((f - s) % p + p) % p : kt.KEYCODE.ARROW_DOWN == n ? f = (f + s) % p : kt.KEYCODE.ARROW_LEFT == n ? f = ((f - 1) % p + p) % p : kt.KEYCODE.ARROW_RIGHT == n && (f = (f + 1) % p); var u = A(o.get(f)); L.events.disableBlur(), u.focus(), r = !1 } else kt.KEYCODE.ENTER == n && (L.button.exec(t), r = !1); return !1 === r && (e.preventDefault(), e.stopPropagation()), r }, !0) }(r), r }()), L.popups.setContainer("table.colors", L.$sc); var n = M(e), r = (n.left + n.right) / 2, a = n.bottom; ! function o() { var e = L.popups.get("table.colors"), t = L.$el.find(".fr-selected-cell").first(), n = L.helpers.RGBToHex(t.css("background-color")), r = e.find(".fr-table-colors-hex-layer input"); e.find(".fr-selected-color").removeClass("fr-selected-color fr-active-item"), e.find('span[data-param1="'.concat(n, '"]')).addClass("fr-selected-color fr-active-item"), r.val(n).trigger("change") }(), L.popups.show("table.colors", r, a, n.bottom - n.top, !0) } } function l() { 0 === Q().length && L.toolbar.enable() } function d(e) { if (e) return L.popups.onHide("table.insert", function () { L.popups.get("table.insert").find('.fr-table-size .fr-select-table-size > span[data-row="1"][data-col="1"]').trigger("mouseover") }), !0; var t = ""; 0 < L.opts.tableInsertButtons.length && (t = '
    '.concat(L.button.buildList(L.opts.tableInsertButtons), "
    ")); var n = { buttons: t, rows_columns: function o() { for (var e = '
    1 × 1
    ', t = 1; t <= L.opts.tableInsertMaxSize; t++) { for (var n = 1; n <= L.opts.tableInsertMaxSize; n++) { var r = "inline-block"; 2 < t && !L.helpers.isMobile() && (r = "none"); var a = "fr-table-cell "; 1 == t && 1 == n && (a += " hover"), e += '').concat(t, " × ").concat(n, "   ") } e += '
    ' } return e += "
    " }() }, r = L.popups.create("table.insert", n); return L.events.$on(r, "mouseover", ".fr-table-size .fr-select-table-size .fr-table-cell", function (e) { f(A(e.currentTarget)) }, !0), function a(e) { L.events.$on(e, "focus", "[tabIndex]", function (e) { var t = A(e.currentTarget); f(t) }), L.events.on("popup.tab", function (e) { var t = A(e.currentTarget); if (!L.popups.isVisible("table.insert") || !t.is("span, a")) return !0; var n, r = e.which; if (kt.KEYCODE.ARROW_UP == r || kt.KEYCODE.ARROW_DOWN == r || kt.KEYCODE.ARROW_LEFT == r || kt.KEYCODE.ARROW_RIGHT == r) { if (t.is("span.fr-table-cell")) { var a = t.parent().find("span.fr-table-cell"), o = a.index(t), i = L.opts.tableInsertMaxSize, s = o % i, l = Math.floor(o / i); kt.KEYCODE.ARROW_UP == r ? l = Math.max(0, l - 1) : kt.KEYCODE.ARROW_DOWN == r ? l = Math.min(L.opts.tableInsertMaxSize - 1, l + 1) : kt.KEYCODE.ARROW_LEFT == r ? s = Math.max(0, s - 1) : kt.KEYCODE.ARROW_RIGHT == r && (s = Math.min(L.opts.tableInsertMaxSize - 1, s + 1)); var c = l * i + s, d = A(a.get(c)); f(d), L.events.disableBlur(), d.focus(), n = !1 } } else kt.KEYCODE.ENTER == r && (L.button.exec(t), n = !1); return !1 === n && (e.preventDefault(), e.stopPropagation()), n }, !0) }(r), r } function f(e) { var t = e.data("row"); null !== t && (t = parseInt(t)); var n = e.data("col"); null !== n && (n = parseInt(n)); var r = e.parent(); r.siblings(".fr-table-size-info").html("".concat(t, " × ").concat(n)), r.find("> span").removeClass("hover fr-active-item"); for (var a = 1; a <= L.opts.tableInsertMaxSize; a++) for (var o = 0; o <= L.opts.tableInsertMaxSize; o++) { var i = r.find('> span[data-row="'.concat(a, '"][data-col="').concat(o, '"]')); a <= t && o <= n ? i.addClass("hover") : a <= t + 1 || a <= 2 && !L.helpers.isMobile() ? i.css("display", "inline-block") : 2 < a && !L.helpers.isMobile() && i.css("display", "none") } e.addClass("fr-active-item") } function p(e) { if (e) return L.popups.onHide("table.edit", l), !0; if (0 < L.opts.tableEditButtons.length) { var t = { buttons: '
    '.concat(L.button.buildList(L.opts.tableEditButtons), "
    ") }, n = L.popups.create("table.edit", t); return L.events.$on(L.$wp, "scroll.table-edit", function () { L.popups.isVisible("table.edit") && u() }), n } return !1 } function h() { if (0 < Q().length) { var e = J(); L.selection.setBefore(e.get(0)) || L.selection.setAfter(e.get(0)), L.selection.restore(), L.popups.hide("table.edit"), L.opts.trackChangesEnabled ? (L.track_changes.removedTable(e), y()) : e.remove(), L.toolbar.enable() } } function g(e) { var t = J(); if (0 < t.length) { if (0 < L.$el.find("th.fr-selected-cell").length && "above" == e) return; var n, r, a, o = T(), i = R(o); if (null == i) return; r = "above" == e ? i.min_i : i.max_i; var s = ""; for (n = 0; n < o[r].length; n++) { if ("below" == e && r < o.length - 1 && o[r][n] == o[r + 1][n] || "above" == e && 0 < r && o[r][n] == o[r - 1][n]) { if (0 === n || 0 < n && o[r][n] != o[r][n - 1]) { var l = A(o[r][n]); l.attr("rowspan", parseInt(l.attr("rowspan"), 10) + 1) } } else s += '
    ' } s += "", a = 0 < L.$el.find("th.fr-selected-cell").length && "below" == e ? A(t.find("tbody").not(t.find("> table tbody"))) : A(t.find("tr").not(t.find("> table tr")).get(r)), "below" == e ? "TBODY" == a.attr("tagName") ? a.prepend(s) : a[0].parentNode && a[0].insertAdjacentHTML("afterend", s) : "above" == e && (a.before(s), L.popups.isVisible("table.edit") && u()) } } function m(e, t, n) { var r, a, o, i, s, l = 0, c = T(n); if (e < (t = Math.min(t, c[0].length - 1))) for (a = e; a <= t; a++) if (!(e < a && c[0][a] == c[0][a - 1]) && 1 < (i = Math.min(parseInt(c[0][a].getAttribute("colspan"), 10) || 1, t - e + 1)) && c[0][a] == c[0][a + 1]) for (l = i - 1, r = 1; r < c.length; r++) if (c[r][a] != c[r - 1][a]) { for (o = a; o < a + i; o++) if (1 < (s = parseInt(c[r][o].getAttribute("colspan"), 10) || 1) && c[r][o] == c[r][o + 1]) o += l = Math.min(l, s - 1); else if (!(l = Math.max(0, l - 1))) break; if (!l) break } l && b(c, l, "colspan", 0, c.length - 1, e, t) } function v(e, t, n) { var r, a, o, i, s, l = 0, c = T(n); if (e < (t = Math.min(t, c.length - 1))) for (r = e; r <= t; r++) if (!(e < r && c[r][0] == c[r - 1][0]) && c[r][0] !== undefined && 1 < (i = Math.min(parseInt(c[r][0].getAttribute("rowspan"), 10) || 1, t - e + 1)) && c[r][0] == c[r + 1][0]) for (l = i - 1, a = 1; a < c[0].length; a++) if (c[r][a] != c[r][a - 1]) { for (o = r; o < r + i; o++) if (1 < (s = parseInt(c[o][a].getAttribute("rowspan"), 10) || 1) && c[o][a] == c[o + 1][a]) o += l = Math.min(l, s - 1); else if (!(l = Math.max(0, l - 1))) break; if (!l) break } l && b(c, l, "rowspan", e, t, 0, c[0].length - 1) } function b(e, t, n, r, a, o, i) { var s, l, c; for (s = r; s <= a; s++) for (l = o; l <= i; l++) r < s && e[s][l] == e[s - 1][l] || o < l && e[s][l] == e[s][l - 1] || e[s][l] !== undefined && 1 < (c = parseInt(e[s][l].getAttribute(n), 10) || 1) && (1 < c - t ? e[s][l].setAttribute(n, c - t) : e[s][l].removeAttribute(n)) } function C(e, t, n, r, a) { v(e, t, a), m(n, r, a) } function t(e) { var t = L.$el.find(".fr-selected-cell"); "REMOVE" != e ? t.css("background-color", L.helpers.HEXtoRGB(e)) : t.css("background-color", ""), u() } function T(e) { var c = []; if (null == (e = e || null) && 0 < Q().length && (e = J()), e) { for (var t = e.find("tr:empty"), n = t.length - 1; 0 <= n; n--) A(t[n]).remove(); e.findVisible("tr").not(e.find("> table tr")).each(function (s, e) { var t = A(e), l = 0; t.find("> th, > td").each(function (e, t) { for (var n = A(t), r = parseInt(n.attr("colspan"), 10) || 1, a = parseInt(n.attr("rowspan"), 10) || 1, o = s; o < s + a; o++) for (var i = l; i < l + r; i++) c[o] || (c[o] = []), c[o][i] ? l++ : c[o][i] = t; l += r }) }) } return c } function S(e, t) { for (var n = 0; n < t.length; n++) for (var r = 0; r < t[n].length; r++) if (t[n][r] == e) return { row: n, col: r } } function k(e, t, n) { for (var r = e + 1, a = t + 1; r < n.length;) { if (n[r][t] != n[e][t]) { r--; break } r++ } for (r == n.length && r--; a < n[e].length;) { if (n[e][a] != n[e][t]) { a--; break } a++ } return a == n[e].length && a--, { row: r, col: a } } function E() { L.el.querySelector(".fr-cell-fixed") && L.el.querySelector(".fr-cell-fixed").classList.remove("fr-cell-fixed"), L.el.querySelector(".fr-cell-handler") && L.el.querySelector(".fr-cell-handler").classList.remove("fr-cell-handler") } function y() { var e = L.$el.find(".fr-selected-cell"); 0 < e.length && e.each(function () { var e = A(this); e.removeClass("fr-selected-cell"), "" === e.attr("class") && e.removeAttr("class") }), E() } function x() { L.events.disableBlur(), L.selection.clear(), L.$el.addClass("fr-no-selection"), L.$el.blur(), L.events.enableBlur() } function R(e) { var t = L.$el.find(".fr-selected-cell"); if (0 < t.length) { var n, r = e.length, a = 0, o = e[0].length, i = 0; for (n = 0; n < t.length; n++) { var s = S(t[n], e), l = k(s.row, s.col, e); r = Math.min(s.row, r), a = Math.max(l.row, a), o = Math.min(s.col, o), i = Math.max(l.col, i) } return { min_i: r, max_i: a, min_j: o, max_j: i } } return null } function M(e) { var t = R(e); if (null != t) { var n = A(e[t.min_i][t.min_j]), r = A(e[t.min_i][t.max_j]), a = A(e[t.max_i][t.min_j]); return { left: n.length && n.offset().left, right: r.length && r.offset().left + r.outerWidth(), top: n.length && n.offset().top, bottom: a.length && a.offset().top + a.outerHeight() } } } function O(e, t) { if (A(e).is(t)) y(), A(e).addClass("fr-selected-cell"); else { x(), L.edit.off(); var n = T(), r = S(e, n), a = S(t, n), o = function u(e, t, n, r, a) { var o, i, s, l, c = e, d = t, f = n, p = r; for (o = c; o <= d; o++)(1 < (parseInt(A(a[o][f]).attr("rowspan"), 10) || 1) || 1 < (parseInt(A(a[o][f]).attr("colspan"), 10) || 1)) && (l = k((s = S(a[o][f], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)), (1 < (parseInt(A(a[o][p]).attr("rowspan"), 10) || 1) || 1 < (parseInt(A(a[o][p]).attr("colspan"), 10) || 1)) && (l = k((s = S(a[o][p], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)); for (i = f; i <= p; i++)(1 < (parseInt(A(a[c][i]).attr("rowspan"), 10) || 1) || 1 < (parseInt(A(a[c][i]).attr("colspan"), 10) || 1)) && (l = k((s = S(a[c][i], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)), (1 < (parseInt(A(a[d][i]).attr("rowspan"), 10) || 1) || 1 < (parseInt(A(a[d][i]).attr("colspan"), 10) || 1)) && (l = k((s = S(a[d][i], a)).row, s.col, a), c = Math.min(s.row, c), d = Math.max(l.row, d), f = Math.min(s.col, f), p = Math.max(l.col, p)); return c == e && d == t && f == n && p == r ? { min_i: e, max_i: t, min_j: n, max_j: r } : u(c, d, f, p, a) }(Math.min(r.row, a.row), Math.max(r.row, a.row), Math.min(r.col, a.col), Math.max(r.col, a.col), n); y(), e.classList.add("fr-cell-fixed"), t.classList.add("fr-cell-handler"); for (var i = o.min_i; i <= o.max_i; i++) for (var s = o.min_j; s <= o.max_j; s++) A(e).closest("table").is(A(n[i][s]).closest("table")) && A(n[i][s]).addClass("fr-selected-cell") } } function N(e) { var t = null, n = A(e.target); return "TD" == e.target.tagName || "TH" == e.target.tagName ? t = e.target : 0 < n.closest("th", n.closest("thead")[0]).length ? t = n.closest("th", n.closest("thead")[0]).get(0) : 0 < n.closest("td", n.closest("tr")[0]).length && (t = n.closest("td", n.closest("tr")[0]).get(0)), -1 === L.$el.html.toString().search(t) ? null : t } function I() { y(), L.popups.hide("table.edit") } function e(e) { var t = N(e); if ("false" == A(t).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable")) return !0; if (0 < Q().length && !t && I(), !L.edit.isDisabled() || L.popups.isVisible("table.edit")) if (1 != e.which || 1 == e.which && L.helpers.isMac() && e.ctrlKey)(3 == e.which || 1 == e.which && L.helpers.isMac() && e.ctrlKey) && t && I(); else if (o = !0, t) { 0 < Q().length && !e.shiftKey && I(), e.stopPropagation(), L.events.trigger("image.hideResizer"), L.events.trigger("video.hideResizer"), a = !0; var n = t.tagName.toLowerCase(); e.shiftKey && 0 < L.$el.find("".concat(n, ".fr-selected-cell")).length ? A(L.$el.find("".concat(n, ".fr-selected-cell")).closest("table")).is(A(t).closest("table")) ? O(r, t) : x() : ((L.keys.ctrlKey(e) || e.shiftKey) && "TD" === e.currentTarget.tagName && (1 < Q().length || 0 === A(t).find(L.selection.element()).length && !A(t).is(L.selection.element())) && x(), r = t, 0 < L.opts.tableEditButtons.length && O(r, r)) } } function n(e) { if (!L.edit.isDisabled() && L.popups.areVisible()) return !0; if (a || L.$tb.is(e.target) || L.$tb.is(A(e.target).closest(".fr-toolbar")) || (0 < Q().length && L.toolbar.enable(), y()), !(1 != e.which || 1 == e.which && L.helpers.isMac() && e.ctrlKey)) { if (o = !1, a) a = !1, N(e) || 1 != Q().length ? 0 < Q().length ? L.selection.isCollapsed() ? u() : (y(), L.edit.on()) : Q().length || (L.$el.removeClass("fr-no-selection"), L.edit.on()) : y(); if (w) { w = !1, _.removeClass("fr-moving"), L.$el.removeClass("fr-no-selection"), L.edit.on(); var t = parseFloat(_.css("left")) + L.opts.tableResizerOffset + L.$wp.offset().left; L.opts.iframe && (t -= L.$iframe.offset().left), _.data("release-position", t), _.removeData("max-left"), _.removeData("max-right"), function E() { var e = _.data("origin"), t = _.data("release-position"); if (e !== t) { var n = _.data("first"), r = _.data("second"), a = _.data("table"), o = a.outerWidth(); if (L.undo.canDo() || L.undo.saveStep(), null != n && null != r) { var i, s, l, c = T(a), d = [], f = [], p = [], u = []; for (i = 0; i < c.length; i++) s = A(c[i][n]), l = A(c[i][r]), d[i] = s.outerWidth(), p[i] = l.outerWidth(), f[i] = d[i] / o * 100, u[i] = p[i] / o * 100; for (i = 0; i < c.length; i++) if (s = A(c[i][n]), l = A(c[i][r]), c[i][n] != c[i][r]) { var h = (f[i] * (d[i] + t - e) / d[i]).toFixed(4); s.css("width", h + "%"), l.css("width", (f[i] + u[i] - h).toFixed(4) + "%") } } else { var g, m = a.parent(), v = o / m.width() * 100, b = (parseInt(a.css("margin-left"), 10) || 0) / m.width() * 100, C = (parseInt(a.css("margin-right"), 10) || 0) / m.width() * 100; "rtl" == L.opts.direction && 0 === r || "rtl" != L.opts.direction && 0 !== r ? (g = (o + t - e) / o * v, a.css("margin-right", "calc(100% - ".concat(Math.round(g).toFixed(4), "% - ").concat(Math.round(b).toFixed(4), "%)"))) : ("rtl" == L.opts.direction && 0 !== r || "rtl" != L.opts.direction && 0 === r) && (g = (o - t + e) / o * v, a.css("margin-left", "calc(100% - ".concat(Math.round(g).toFixed(4), "% - ").concat(Math.round(C).toFixed(4), "%)"))), a.css("width", "".concat(Math.round(g).toFixed(4), "%")) } L.selection.restore(), L.undo.saveStep(), L.events.trigger("table.resized", [a.get(0)]) } _.removeData("origin"), _.removeData("release-position"), _.removeData("first"), _.removeData("second"), _.removeData("table") }(), P() } } } function D(e) { if (!(A(e.currentTarget).is(A(e.originalEvent.relatedTarget)) || e.currentTarget.contains(e.originalEvent.relatedTarget) || e.originalEvent.relatedTarget && e.originalEvent.relatedTarget.contains(e.currentTarget)) && (L.events.$on(A("input"), "click", ee), !0 === a && 0 < L.opts.tableEditButtons.length)) { if (A(e.currentTarget).closest("table").is(J())) { if ("TD" == e.currentTarget.tagName && 0 === L.$el.find("th.fr-selected-cell").length) return void O(r, e.currentTarget); if ("TH" == e.currentTarget.tagName && 0 === L.$el.find("td.fr-selected-cell").length) return void O(r, e.currentTarget) } x() } } function B(e, t, n, r) { for (var a, o = t; o != L.el && "TD" != o.tagName && "TH" != o.tagName && ("up" == r ? a = o.previousElementSibling : "down" == r && (a = o.nextElementSibling), !a);) o = o.parentNode; "TD" == o.tagName || "TH" == o.tagName ? function i(e, t) { for (var n = e; n && "TABLE" != n.tagName && n.parentNode != L.el;) n = n.parentNode; if (n && "TABLE" == n.tagName) { var r = T(A(n)); "up" == t ? H(S(e, r), n, r) : "down" == t && $(S(e, r), n, r) } }(o, r) : a && ("up" == r && L.selection.setAtEnd(a), "down" == r && L.selection.setAtStart(a)) } function H(e, t, n) { 0 < A(".tribute-container").length && "none" != A(".tribute-container").css("display") || (0 < e.row ? L.selection.setAtEnd(n[e.row - 1][e.col]) : B(0, t, 0, "up")) } function $(e, t, n) { if (!(0 < A(".tribute-container").length && "none" != A(".tribute-container").css("display"))) { var r = parseInt(n[e.row][e.col].getAttribute("rowspan"), 10) || 1; e.row < n.length - r ? L.selection.setAtStart(n[e.row + r][e.col]) : B(0, t, 0, "down") } } function P() { _ && (_.find("div").css("opacity", 0), _.css("top", 0), _.css("left", 0), _.css("height", 0), _.find("div").css("height", 0), _.hide()) } function F() { c && c.removeClass("fr-visible").css("left", "-9999px") } function U(e, t) { var n = A(t), r = n.closest("table"), a = r.parent(); if (t && "TD" != t.tagName && "TH" != t.tagName && (0 < n.closest("td").length ? t = n.closest("td") : 0 < n.closest("th").length && (t = n.closest("th"))), !t || "TD" != t.tagName && "TH" != t.tagName) _ && n.get(0) != _.get(0) && n.parent().get(0) != _.get(0) && L.core.sameInstance(_) && P(); else { if (n = A(t), 0 === L.$el.find(n).length) return !1; var o = n.offset().left - 1, i = o + n.outerWidth(); if (Math.abs(e.pageX - o) <= L.opts.tableResizerOffset || Math.abs(i - e.pageX) <= L.opts.tableResizerOffset) { var s, l, c, d, f, p = T(r), u = S(t, p), h = k(u.row, u.col, p), g = r.offset().top, m = r.outerHeight() - 1; "rtl" != L.opts.direction ? e.pageX - o <= L.opts.tableResizerOffset ? (c = o, 0 < u.col ? (d = o - G(u.col - 1, p) + L.opts.tableResizingLimit, f = o + G(u.col, p) - L.opts.tableResizingLimit, s = u.col - 1, l = u.col) : (s = null, l = 0, d = r.offset().left - 1 - parseInt(r.css("margin-left"), 10), f = r.offset().left - 1 + r.width() - p[0].length * L.opts.tableResizingLimit)) : i - e.pageX <= L.opts.tableResizerOffset && (c = i, h.col < p[h.row].length && p[h.row][h.col + 1] ? (d = i - G(h.col, p) + L.opts.tableResizingLimit, f = i + G(h.col + 1, p) - L.opts.tableResizingLimit, s = h.col, l = h.col + 1) : (s = h.col, l = null, d = r.offset().left - 1 + p[0].length * L.opts.tableResizingLimit, f = a.offset().left - 1 + a.width() + parseFloat(a.css("padding-left")))) : i - e.pageX <= L.opts.tableResizerOffset ? (c = i, 0 < u.col ? (d = i - G(u.col, p) + L.opts.tableResizingLimit, f = i + G(u.col - 1, p) - L.opts.tableResizingLimit, s = u.col, l = u.col - 1) : (s = null, l = 0, d = r.offset().left + p[0].length * L.opts.tableResizingLimit, f = a.offset().left - 1 + a.width() + parseFloat(a.css("padding-left")))) : e.pageX - o <= L.opts.tableResizerOffset && (c = o, h.col < p[h.row].length && p[h.row][h.col + 1] ? (d = o - G(h.col + 1, p) + L.opts.tableResizingLimit, f = o + G(h.col, p) - L.opts.tableResizingLimit, s = h.col + 1, l = h.col) : (s = h.col, l = null, d = a.offset().left + parseFloat(a.css("padding-left")), f = r.offset().left - 1 + r.width() - p[0].length * L.opts.tableResizingLimit)), _ || function y() { L.shared.$table_resizer || (L.shared.$table_resizer = A(document.createElement("div")).attr("class", "fr-table-resizer").html("
    ")), _ = L.shared.$table_resizer, L.events.$on(_, "mousedown", function (e) { return !L.core.sameInstance(_) || (0 < Q().length && I(), 1 == e.which ? (L.selection.save(), w = !0, _.addClass("fr-moving"), x(), L.edit.off(), _.find("div").css("opacity", 1), !1) : void 0) }), L.events.$on(_, "mousemove", function (e) { if (!L.core.sameInstance(_)) return !0; w && (L.opts.iframe && (e.pageX -= L.$iframe.offset().left), j(e)) }), L.events.on("shared.destroy", function () { _.html("").removeData().remove(), _ = null }, !0), L.events.on("destroy", function () { L.$el.find(".fr-selected-cell").removeClass("fr-selected-cell"), A("body").first().append(_.hide()) }, !0) }(), _.data("table", r), _.data("first", s), _.data("second", l), _.data("instance", L), L.$wp.append(_); var v = c - L.win.pageXOffset - L.opts.tableResizerOffset - L.$wp.offset().left, b = g - L.$wp.offset().top + L.$wp.scrollTop(); if (L.opts.iframe) { var C = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-top")), E = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-left")); v += L.$iframe.offset().left + E, b += L.$iframe.offset().top + C, d += L.$iframe.offset().left, f += L.$iframe.offset().left } _.data("max-left", d), _.data("max-right", f), _.data("origin", c - L.win.pageXOffset), _.css("top", b), _.css("left", v), _.css("height", m), _.find("div").css("height", m), _.css("padding-left", L.opts.tableResizerOffset), _.css("padding-right", L.opts.tableResizerOffset), _.show() } else L.core.sameInstance(_) && P() } } function z(e, t) { if (L.$box.find(".fr-line-breaker").isVisible()) return !1; c || Z(), L.$box.append(c), c.data("instance", L); var n, r = A(t).find("tr").first(), a = e.pageX, o = 0, i = 0; if (L.opts.iframe) { var s = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-top")), l = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-left")); o += L.$iframe.offset().left - L.helpers.scrollLeft() + l, i += L.$iframe.offset().top - L.helpers.scrollTop() + s } r.find("th, td").each(function () { var e = A(this); return e.offset().left <= a && a < e.offset().left + e.outerWidth() / 2 ? (n = parseInt(c.find("a").css("width"), 10), c.css("top", i + e.offset().top - L.$box.offset().top - n - 5), c.css("left", o + e.offset().left - L.$box.offset().left - n / 2), c.data("selected-cell", e), c.data("position", "before"), c.addClass("fr-visible"), !1) : e.offset().left + e.outerWidth() / 2 <= a && a < e.offset().left + e.outerWidth() ? (n = parseInt(c.find("a").css("width"), 10), c.css("top", i + e.offset().top - L.$box.offset().top - n - 5), c.css("left", o + e.offset().left - L.$box.offset().left + e.outerWidth() - n / 2), c.data("selected-cell", e), c.data("position", "after"), c.addClass("fr-visible"), !1) : void 0 }) } function K(e, t) { if (L.$box.find(".fr-line-breaker").isVisible()) return !1; c || Z(), L.$box.append(c), c.data("instance", L); var n, r = A(t), a = e.pageY, o = 0, i = 0; if (L.opts.iframe) { var s = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-top")), l = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-left")); o += L.$iframe.offset().left - L.helpers.scrollLeft() + l, i += L.$iframe.offset().top - L.helpers.scrollTop() + s } r.find("tr").each(function () { var e = A(this); n = parseInt(c.find("a").css("width"), 10); var t = o + e.offset().left - L.$box.offset().left; return t = 0 !== L.$box.offset().left ? t - n - 5 : t + n - 5, e.offset().top <= a && a < e.offset().top + e.outerHeight() / 2 ? (c.css("top", i + e.offset().top - L.$box.offset().top - n / 2), c.css("left", t), c.data("selected-cell", e.find("td").first()), c.data("position", "above"), c.addClass("fr-visible"), !1) : e.offset().top + e.outerHeight() / 2 <= a && a < e.offset().top + e.outerHeight() ? (c.css("top", i + e.offset().top - L.$box.offset().top + e.outerHeight() - n / 2), c.css("left", t), c.data("selected-cell", e.find("td").first()), c.data("position", "below"), c.addClass("fr-visible"), !1) : void 0 }) } function V(e) { i = null; var t = L.doc.elementFromPoint(e.pageX - L.win.pageXOffset, e.pageY - L.win.pageYOffset); L.opts.tableResizer && (!L.popups.areVisible() || L.popups.areVisible() && L.popups.isVisible("table.edit")) && U(e, t), !L.opts.tableInsertHelper || L.popups.areVisible() || L.$tb.hasClass("fr-inline") && L.$tb.isVisible() || function o(e, t) { if (0 === Q().length) { var n, r, a; if (t && ("HTML" == t.tagName || "BODY" == t.tagName || L.node.isElement(t))) for (n = 1; n <= L.opts.tableInsertHelperOffset; n++) { if (r = L.doc.elementFromPoint(e.pageX - L.win.pageXOffset, e.pageY - L.win.pageYOffset + n), A(r).hasClass("fr-tooltip")) return !0; if (r && ("TH" == r.tagName || "TD" == r.tagName || "TABLE" == r.tagName) && (A(r).parents(".fr-wrapper").length || L.opts.iframe) && "false" != A(r).closest("table").attr("contenteditable")) return z(e, A(r).closest("table")), !0; if (a = L.doc.elementFromPoint(e.pageX - L.win.pageXOffset + n, e.pageY - L.win.pageYOffset), A(a).hasClass("fr-tooltip")) return !0; if (a && ("TH" == a.tagName || "TD" == a.tagName || "TABLE" == a.tagName) && (A(a).parents(".fr-wrapper").length || L.opts.iframe) && "false" != A(a).closest("table").attr("contenteditable")) return K(e, A(a).closest("table")), !0 } L.core.sameInstance(c) && F() } }(e, t) } function W() { if (w) { var e = _.data("table").offset().top - L.win.pageYOffset; if (L.opts.iframe) { var t = L.helpers.getPX(L.$wp.find(".fr-iframe").css("padding-top")); e += L.$iframe.offset().top - L.helpers.scrollTop() + t } _.css("top", e) } } function G(e, t) { var n, r = A(t[0][e]).outerWidth(); for (n = 1; n < t.length; n++) r = Math.min(r, A(t[n][e]).outerWidth()); return r } function Y(e, t, n) { var r, a = 0; for (r = e; r <= t; r++) a += G(r, n); return a } function j(e) { if (1 < Q().length && o && x(), !1 === o && !1 === a && !1 === w) i && clearTimeout(i), L.edit.isDisabled() && !L.popups.isVisible("table.edit") || (i = setTimeout(V, 30, e)); else if (w) { var t = e.pageX - L.win.pageXOffset; L.opts.iframe && (t += L.$iframe.offset().left); var n = _.data("max-left"), r = _.data("max-right"); n <= t && t <= r ? _.css("left", t - L.opts.tableResizerOffset - L.$wp.offset().left) : t < n && parseFloat(_.css("left"), 10) > n - L.opts.tableResizerOffset ? _.css("left", n - L.opts.tableResizerOffset - L.$wp.offset().left) : r < t && parseFloat(_.css("left"), 10) < r - L.opts.tableResizerOffset && _.css("left", r - L.opts.tableResizerOffset - L.$wp.offset().left) } else o && F() } function q(e) { L.node.isEmpty(e.get(0)) ? e.prepend(kt.MARKERS) : e.prepend(kt.START_MARKER).append(kt.END_MARKER) } function Z() { L.shared.$ti_helper || (L.shared.$ti_helper = A(document.createElement("div")).attr("class", "fr-insert-helper").html('')), L.events.bindClick(L.shared.$ti_helper, "a", function () { var e = c.data("selected-cell"), t = c.data("position"), n = c.data("instance") || L; "before" == t ? (L.undo.saveStep(), e.addClass("fr-selected-cell"), n.table.insertColumn(t), e.removeClass("fr-selected-cell"), L.undo.saveStep()) : "after" == t ? (L.undo.saveStep(), e.addClass("fr-selected-cell"), n.table.insertColumn(t), e.removeClass("fr-selected-cell"), L.undo.saveStep()) : "above" == t ? (L.undo.saveStep(), e.addClass("fr-selected-cell"), n.table.insertRow(t), e.removeClass("fr-selected-cell"), L.undo.saveStep()) : "below" == t && (L.undo.saveStep(), e.addClass("fr-selected-cell"), n.table.insertRow(t), e.removeClass("fr-selected-cell"), L.undo.saveStep()), F() }), L.events.on("shared.destroy", function () { L.shared.$ti_helper.html("").removeData().remove(), L.shared.$ti_helper = null }, !0), L.events.$on(L.shared.$ti_helper, "mousemove", function (e) { e.stopPropagation() }, !0), L.events.$on(A(L.o_win), "scroll", function () { F() }, !0), L.events.$on(L.$wp, "scroll", function () { F() }, !0)), c = L.shared.$ti_helper, L.events.on("destroy", function () { c = null }), L.tooltip.bind(L.$box, ".fr-insert-helper > a.fr-floating-btn") } function X() { r = null, clearTimeout(i) } function Q() { return L.el.querySelectorAll(".fr-selected-cell") } function J() { var e = Q(); if (e.length) { for (var t = e[0]; t && "TABLE" != t.tagName && t.parentNode != L.el;) t = t.parentNode; return t && "TABLE" == t.tagName ? A(t) : A([]) } return A([]) } function ee(e) { a = !1 } return { _init: function te() { if (!L.$wp) return !1; if (L.helpers.isMobile() && (L.events.$on(L.$el, "mousedown", e), L.events.$on(L.$win, "mouseup", n)), !L.helpers.isMobile()) { w = a = o = !1, L.events.$on(L.$el, "mousedown", e), L.popups.onShow("image.edit", function () { y(), a = o = !1 }), L.popups.onShow("link.edit", function () { y(), a = o = !1 }), L.events.on("commands.mousedown", function (e) { 0 < e.parents(".fr-toolbar").length && y() }), L.events.$on(L.$el, "mouseover", "th, td", D), L.events.$on(L.$win, "mouseup", n), L.opts.iframe && L.events.$on(A(L.o_win), "mouseup", n), L.events.$on(L.$win, "mousemove", j), L.events.$on(A(L.o_win), "scroll", W), L.events.on("contentChanged", function () { 0 < Q().length && (u(), L.$el.find("img").on("load.selected-cells", function () { A(this).off("load.selected-cells"), 0 < Q().length && u() })) }), L.events.$on(A(L.o_win), "resize", function () { y() }), L.events.on("toolbar.esc", function () { if (0 < Q().length) return L.events.disableBlur(), L.events.focus(), !1 }, !0), L.events.$on(A(L.o_win), "keydown", function () { o && a && (a = o = !1, L.$el.removeClass("fr-no-selection"), L.edit.on(), L.selection.setAtEnd(L.$el.find(".fr-selected-cell").last().get(0)), L.selection.restore(), y()) }), L.events.$on(L.$el, "keydown", function (e) { e.shiftKey ? !1 === function i(e) { var t = Q(); if (null != t && 0 < t.length) { var n, r = T(), a = e.which, o = S(1 == t.length ? n = t[0] : (n = L.el.querySelector(".fr-cell-fixed"), L.el.querySelector(".fr-cell-handler")), r); if (kt.KEYCODE.ARROW_RIGHT == a) { if (o.col < r[0].length - 1) return O(n, r[o.row][o.col + 1]), !1 } else if (kt.KEYCODE.ARROW_DOWN == a) { if (o.row < r.length - 1) return O(n, r[o.row + 1][o.col]), !1 } else if (kt.KEYCODE.ARROW_LEFT == a) { if (0 < o.col) return O(n, r[o.row][o.col - 1]), !1 } else if (kt.KEYCODE.ARROW_UP == a && 0 < o.row) return O(n, r[o.row - 1][o.col]), !1 } }(e) && setTimeout(function () { u() }, 0) : function s(e) { var t = e.which, n = L.selection.blocks(); if (n.length && ("TD" == (n = n[0]).tagName || "TH" == n.tagName)) { for (var r = n; r && "TABLE" != r.tagName && r.parentNode != L.el;) r = r.parentNode; if (r && "TABLE" == r.tagName && (kt.KEYCODE.ARROW_LEFT == t || kt.KEYCODE.ARROW_UP == t || kt.KEYCODE.ARROW_RIGHT == t || kt.KEYCODE.ARROW_DOWN == t) && (0 < Q().length && I(), L.browser.webkit && (kt.KEYCODE.ARROW_UP == t || kt.KEYCODE.ARROW_DOWN == t))) { var a = L.selection.ranges(0).startContainer; if (a.nodeType == Node.TEXT_NODE && (kt.KEYCODE.ARROW_UP == t && (a.previousSibling && "BR" !== a.previousSibling.tagName || a.previousSibling && "BR" === a.previousSibling.tagName && a.previousSibling.previousSibling) || kt.KEYCODE.ARROW_DOWN == t && (a.nextSibling && "BR" !== a.nextSibling.tagName || a.nextSibling && "BR" === a.nextSibling.tagName && a.nextSibling.nextSibling))) return; e.preventDefault(), e.stopPropagation(); var o = T(A(r)), i = S(n, o); return kt.KEYCODE.ARROW_UP == t ? H(i, r, o) : kt.KEYCODE.ARROW_DOWN == t && $(i, r, o), L.selection.restore(), !1 } } }(e) }), L.events.on("keydown", function (e) { if (!1 === function r(e) { if (e.which == kt.KEYCODE.TAB) { var t; if (0 < Q().length) t = L.$el.find(".fr-selected-cell").last(); else { var n = L.selection.element(); "TD" == n.tagName || "TH" == n.tagName ? t = A(n) : n != L.el && (0 < A(n).parentsUntil(L.$el, "td").length ? t = A(n).parents("td").first() : 0 < A(n).parentsUntil(L.$el, "th").length && (t = A(n).parents("th").first())) } if (t) return e.preventDefault(), !!(0 === L.selection.get().focusOffset && 0 < A(L.selection.element()).parentsUntil(L.$el, "ol, ul").length && (0 < A(L.selection.element()).closest("li").prev().length || A(L.selection.element()).is("li") && 0 < A(L.selection.element()).prev().length)) || (I(), e.shiftKey ? 0 < t.prev().length ? q(t.prev()) : 0 < t.closest("tr").length && 0 < t.closest("tr").prev().length ? q(t.closest("tr").prev().find("td").last()) : 0 < t.closest("tbody").length && 0 < t.closest("table").find("thead tr").length && q(t.closest("table").find("thead tr th").last()) : 0 < t.next().length ? q(t.next()) : 0 < t.closest("tr").length && 0 < t.closest("tr").next().length ? q(t.closest("tr").next().find("td").first()) : 0 < t.closest("thead").length && 0 < t.closest("table").find("tbody tr").length ? q(t.closest("table").find("tbody tr td").first()) : (t.addClass("fr-selected-cell"), g("below"), y(), q(t.closest("tr").next().find("td").first())), L.selection.restore(), !1) } }(e)) return !1; var t = Q(); if (0 < t.length) { if (0 < t.length && L.keys.ctrlKey(e) && e.which == kt.KEYCODE.A) return y(), L.popups.isVisible("table.edit") && L.popups.hide("table.edit"), t = [], !0; if (e.which == kt.KEYCODE.ESC && L.popups.isVisible("table.edit")) return y(), L.popups.hide("table.edit"), e.preventDefault(), e.stopPropagation(), e.stopImmediatePropagation(), !(t = []); if (1 < t.length && (e.which == kt.KEYCODE.BACKSPACE || e.which == kt.KEYCODE.DELETE)) { L.undo.saveStep(); for (var n = 0; n < t.length; n++) A(t[n]).html("
    "), n == t.length - 1 && A(t[n]).prepend(kt.MARKERS); return L.selection.restore(), L.undo.saveStep(), !(t = []) } if (1 < t.length && e.which != kt.KEYCODE.F10 && !L.keys.isBrowserAction(e)) return e.preventDefault(), !(t = []) } else if (!(t = []) === function a(e) { if (e.altKey && e.which == kt.KEYCODE.SPACE) { var t, n = L.selection.element(); if ("TD" == n.tagName || "TH" == n.tagName ? t = n : 0 < A(n).closest("td").length ? t = A(n).closest("td").get(0) : 0 < A(n).closest("th").length && (t = A(n).closest("th").get(0)), t) return e.preventDefault(), O(t, t), u(), !1 } }(e)) return !1 }, !0); var t = []; L.events.on("html.beforeGet", function () { t = Q(); for (var e = 0; e < t.length; e++) t[e].className = (t[e].className || "").replace(/fr-selected-cell/g, "") }), L.events.on("html.afterGet", function () { for (var e = 0; e < t.length; e++) t[e].className = (t[e].className ? t[e].className.trim() + " " : "") + "fr-selected-cell"; t = [] }), d(!0), p(!0) } L.events.on("destroy", X) }, insert: function ne(e, t) { var n, r, a = "', o = 100 / t; for (n = 0; n < e; n++) { for (a += "", r = 0; r < t; r++) a += "", 0 === n && 0 === r && (a += kt.MARKERS), a += "
    "; a += "
    " } if (a += "
    ", L.opts.trackChangesEnabled) { L.edit.on(), L.events.focus(!0), L.selection.restore(), L.undo.saveStep(), L.markers.insert(), L.html.wrap(); var i = L.$el.find(".fr-marker"); L.node.isLastSibling(i) && i.parent().hasClass("fr-deletable") && i.insertAfter(i.parent()), i.replaceWith(a), L.selection.clear() } else L.html.insert(a); L.selection.restore(); var s = L.$el.find(".fr-inserted-table"); s.removeClass("fr-inserted-table"), L.events.trigger("table.inserted", [s.get(0)]) }, remove: h, insertRow: g, deleteRow: function re() { var e = J(); if (0 < e.length) { var t, n, r, a = T(), o = R(a); if (null == o) return; if (0 === o.min_i && o.max_i == a.length - 1) h(); else { for (t = o.max_i; t >= o.min_i; t--) { for (r = A(e.find("tr").not(e.find("> table tr")).get(t)), n = 0; n < a[t].length; n++) if (0 === n || a[t][n] != a[t][n - 1]) { var i = A(a[t][n]); if (1 < parseInt(i.attr("rowspan"), 10)) { var s = parseInt(i.attr("rowspan"), 10) - 1; 1 == s ? i.removeAttr("rowspan") : i.attr("rowspan", s) } if (t < a.length - 1 && a[t][n] == a[t + 1][n] && (0 === t || a[t][n] != a[t - 1][n])) { for (var l = a[t][n], c = n; 0 < c && a[t][c] == a[t][c - 1];) c--; 0 === c ? A(e.find("tr").not(e.find("> table tr")).get(t + 1)).prepend(l) : A(a[t + 1][c - 1])[0].parentNode && A(a[t + 1][c - 1])[0].insertAdjacentElement("afterend", l) } } var d = r.parent(); r.remove(), 0 === d.find("tr").length && d.remove(), a = T(e) } C(0, a.length - 1, 0, a[0].length - 1, e), 0 < o.min_i ? L.selection.setAtEnd(a[o.min_i - 1][0]) : L.selection.setAtEnd(a[0][0]), L.selection.restore(), L.popups.hide("table.edit") } } }, insertColumn: function ae(l) { var e = J(); if (0 < e.length) { var c, d = T(), t = R(d); c = "before" == l ? t.min_j : t.max_j; var n, f = 100 / d[0].length, p = 100 / (d[0].length + 1); e.find("th, td").each(function () { (n = A(this)).data("old-width", n.outerWidth() / e.outerWidth() * 100) }), e.find("tr").not(e.find("> table tr")).each(function (e) { for (var t, n = A(this), r = 0, a = 0; r - 1 < c;) { if (!(t = n.find("> th, > td").get(a))) { t = null; break } t == d[e][r] ? (r += parseInt(A(t).attr("colspan"), 10) || 1, a++) : (r += parseInt(A(d[e][r]).attr("colspan"), 10) || 1, "after" == l && (t = 0 === a ? -1 : n.find("> th, > td").get(a - 1))) } var o, i = A(t); if ("after" == l && c < r - 1 || "before" == l && 0 < c && d[e][c] == d[e][c - 1]) { if (0 === e || 0 < e && d[e][c] != d[e - 1][c]) { var s = parseInt(i.attr("colspan"), 10) + 1; i.attr("colspan", s), i.css("width", (i.data("old-width") * p / f + p).toFixed(4) + "%"), i.removeData("old-width") } } else o = 0 < n.find("th").length ? '
    ') : '
    '), -1 == t ? n.prepend(o) : null == t ? n.append(o) : "before" == l ? i.before(o) : "after" == l && i[0].parentNode && i[0].insertAdjacentHTML("afterend", o) }), e.find("th, td").each(function () { (n = A(this)).data("old-width") && (n.css("width", (n.data("old-width") * p / f).toFixed(4) + "%"), n.removeData("old-width")) }), L.popups.isVisible("table.edit") && u() } }, deleteColumn: function oe() { var e = J(); if (0 < e.length) { var t, n, r, a = T(), o = R(a); if (null == o) return; if (0 === o.min_j && o.max_j == a[0].length - 1) h(); else { var i = 0; for (t = 0; t < a.length; t++) for (n = 0; n < a[0].length; n++)(r = A(a[t][n])).hasClass("fr-selected-cell") || (r.data("old-width", r.outerWidth() / e.outerWidth() * 100), (n < o.min_j || n > o.max_j) && (i += r.outerWidth() / e.outerWidth() * 100)); for (i /= a.length, n = o.max_j; n >= o.min_j; n--) for (t = 0; t < a.length; t++) if (0 === t || a[t][n] != a[t - 1][n]) if (r = A(a[t][n]), 1 < (parseInt(r.attr("colspan"), 10) || 1)) { var s = parseInt(r.attr("colspan"), 10) - 1; 1 == s ? r.removeAttr("colspan") : r.attr("colspan", s), r.css("width", (100 * (r.data("old-width") - G(n, a)) / i).toFixed(4) + "%"), r.removeData("old-width") } else { var l = A(r.parent().get(0)); r.remove(), 0 === l.find("> th, > td").length && (0 === l.prev().length || 0 === l.next().length || l.prev().find("> th[rowspan], > td[rowspan]").length < l.prev().find("> th, > td").length) && l.remove() } C(0, a.length - 1, 0, a[0].length - 1, e), 0 < o.min_j ? L.selection.setAtEnd(a[o.min_i][o.min_j - 1]) : L.selection.setAtEnd(a[o.min_i][0]), L.selection.restore(), L.popups.hide("table.edit"), e.find("th, td").each(function () { (r = A(this)).data("old-width") && (r.css("width", (100 * r.data("old-width") / i).toFixed(4) + "%"), r.removeData("old-width")) }) } } }, mergeCells: function ie() { if (1 < Q().length && (0 === L.$el.find("th.fr-selected-cell").length || 0 === L.$el.find("td.fr-selected-cell").length)) { E(); var e, t, n = R(T()); if (null == n) return; var r = L.$el.find(".fr-selected-cell"), a = A(r[0]), o = a.parent().find(".fr-selected-cell"), i = a.closest("table"), s = a.html(), l = 0; for (e = 0; e < o.length; e++) l += A(o[e]).outerWidth(); for (a.css("width", Math.min(100, l / i.outerWidth() * 100).toFixed(4) + "%"), n.min_j < n.max_j && a.attr("colspan", n.max_j - n.min_j + 1), n.min_i < n.max_i && a.attr("rowspan", n.max_i - n.min_i + 1), e = 1; e < r.length; e++) "
    " != (t = A(r[e])).html() && "" !== t.html() && (s += "
    ".concat(t.html())), t.remove(); a.html(s), L.selection.setAtEnd(a.get(0)), L.selection.restore(), L.toolbar.enable(), v(n.min_i, n.max_i, i); var c = i.find("tr:empty"); for (e = c.length - 1; 0 <= e; e--) A(c[e]).remove(); m(n.min_j, n.max_j, i), u() } }, splitCellVertically: function se() { if (1 == Q().length) { var e = L.$el.find(".fr-selected-cell"), t = parseInt(e.attr("colspan"), 10) || 1, n = e.parent().outerWidth(), r = e.outerWidth(), a = e.clone().html("
    "), o = T(), i = S(e.get(0), o); if (1 < t) { var s = Math.ceil(t / 2); r = Y(i.col, i.col + s - 1, o) / n * 100; var l = Y(i.col + s, i.col + t - 1, o) / n * 100; 1 < s ? e.attr("colspan", s) : e.removeAttr("colspan"), 1 < t - s ? a.attr("colspan", t - s) : a.removeAttr("colspan"), e.css("width", r.toFixed(4) + "%"), a.css("width", l.toFixed(4) + "%") } else { var c; for (c = 0; c < o.length; c++) if (0 === c || o[c][i.col] != o[c - 1][i.col]) { var d = A(o[c][i.col]); if (!d.is(e)) { var f = (parseInt(d.attr("colspan"), 10) || 1) + 1; d.attr("colspan", f) } } r = r / n * 100 / 2, e.css("width", "".concat(r.toFixed(4), "%")), a.css("width", "".concat(r.toFixed(4), "%")) } e[0].parentNode && e[0].insertAdjacentElement("afterend", a[0]), y(), L.popups.hide("table.edit") } }, splitCellHorizontally: function le() { if (1 == Q().length) { var e = L.$el.find(".fr-selected-cell"), t = e.parent(), n = e.closest("table"), r = parseInt(e.attr("rowspan"), 10), a = T(), o = S(e.get(0), a), i = e.clone().html("
    "); if (1 < r) { var s = Math.ceil(r / 2); 1 < s ? e.attr("rowspan", s) : e.removeAttr("rowspan"), 1 < r - s ? i.attr("rowspan", r - s) : i.removeAttr("rowspan"); for (var l = o.row + s, c = 0 === o.col ? o.col : o.col - 1; 0 <= c && (a[l][c] == a[l][c - 1] || 0 < l && a[l][c] == a[l - 1][c]);) c--; - 1 == c ? A(n.find("tr").not(n.find("> table tr")).get(l)).prepend(i) : A(a[l][c])[0].parentNode && A(a[l][c])[0].insertAdjacentElement("afterend", i[0]) } else { var d, f = A(document.createElement("tr")).append(i); for (d = 0; d < a[0].length; d++) if (0 === d || a[o.row][d] != a[o.row][d - 1]) { var p = A(a[o.row][d]); p.is(e) || p.attr("rowspan", (parseInt(p.attr("rowspan"), 10) || 1) + 1) } t[0].parentNode && t[0].insertAdjacentElement("afterend", f[0]) } y(), L.popups.hide("table.edit") } }, addHeader: function ce() { var e = J(); if (0 < e.length && 0 === e.find("th").length) { var t, n = "", r = 0; for (e.find("tr").first().find("> td").each(function () { var e = A(this); r += parseInt(e.attr("colspan"), 10) || 1 }), t = 0; t < r; t++) n += "
    "; n += "", e.prepend(n), u() } }, removeHeader: function de() { var e = J(), t = e.find("thead"); if (0 < t.length) if (0 === e.find("tbody tr").length) h(); else if (t.remove(), 0 < Q().length) u(); else { L.popups.hide("table.edit"); var n = e.find("tbody tr").first().find("td").first().get(0); n && (L.selection.setAtEnd(n), L.selection.restore()) } }, setBackground: t, showInsertPopup: function fe() { var e = L.$tb.find('.fr-command[data-cmd="insertTable"]'), t = L.popups.get("table.insert"); if (t || (t = d()), !t.hasClass("fr-active")) { L.popups.refresh("table.insert"), L.popups.setContainer("table.insert", L.$tb); var n = L.button.getPosition(e), r = n.left, a = n.top; L.popups.show("table.insert", r, a, e.outerHeight()) } }, showEditPopup: u, showColorsPopup: s, back: function pe() { 0 < Q().length ? u() : (L.popups.hide("table.insert"), L.toolbar.showInline()) }, verticalAlign: function ue(e) { L.$el.find(".fr-selected-cell").css("vertical-align", e) }, horizontalAlign: function he(e) { L.$el.find(".fr-selected-cell").css("text-align", e) }, applyStyle: function ge(e, t, n, r) { if (0 < t.length) { if (!n) { var a = Object.keys(r); a.splice(a.indexOf(e), 1), t.removeClass(a.join(" ")) } t.toggleClass(e) } }, selectedTable: J, selectedCells: Q, customColor: function me() { var e = L.popups.get("table.colors").find(".fr-table-colors-hex-layer input"); e.length && t(e.val()) }, selectCells: O } }, kt.DefineIcon("insertTable", { NAME: "table", SVG_KEY: "insertTable" }), kt.RegisterCommand("insertTable", { title: "Insert Table", undo: !1, focus: !0, refreshOnCallback: !1, popup: !0, callback: function () { this.popups.isVisible("table.insert") ? (this.$el.find(".fr-marker").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("table.insert")) : this.table.showInsertPopup() }, plugin: "table" }), kt.RegisterCommand("tableInsert", { callback: function (e, t, n) { this.table.insert(t, n), this.popups.hide("table.insert") } }), kt.DefineIcon("tableHeader", { NAME: "header", FA5NAME: "heading", SVG_KEY: "tableHeader" }), kt.RegisterCommand("tableHeader", { title: "Table Header", focus: !1, toggle: !0, callback: function () { this.popups.get("table.edit").find('.fr-command[data-cmd="tableHeader"]').hasClass("fr-active") ? this.table.removeHeader() : this.table.addHeader() }, refresh: function (e) { var t = this.table.selectedTable(); 0 < t.length && (0 === t.find("th").length ? e.removeClass("fr-active").attr("aria-pressed", !1) : e.addClass("fr-active").attr("aria-pressed", !0)) } }), kt.DefineIcon("tableRows", { NAME: "bars", SVG_KEY: "row" }), kt.RegisterCommand("tableRows", { type: "dropdown", focus: !1, title: "Row", options: { above: "Insert row above", below: "Insert row below", "delete": "Delete row" }, html: function () { var e = '" }, callback: function (e, t) { "above" == t || "below" == t ? this.table.insertRow(t) : this.table.deleteRow() } }), kt.DefineIcon("tableColumns", { NAME: "bars fa-rotate-90", SVG_KEY: "columns" }), kt.RegisterCommand("tableColumns", { type: "dropdown", focus: !1, title: "Column", options: { before: "Insert column before", after: "Insert column after", "delete": "Delete column" }, html: function () { var e = '" }, callback: function (e, t) { "before" == t || "after" == t ? this.table.insertColumn(t) : this.table.deleteColumn() } }), kt.DefineIcon("tableCells", { NAME: "square-o", FA5NAME: "square", SVG_KEY: "cellOptions" }), kt.RegisterCommand("tableCells", { type: "dropdown", focus: !1, title: "Cell", options: { merge: "Merge cells", "vertical-split": "Vertical split", "horizontal-split": "Horizontal split" }, html: function () { var e = '" }, callback: function (e, t) { "merge" == t ? this.table.mergeCells() : "vertical-split" == t ? this.table.splitCellVertically() : this.table.splitCellHorizontally() }, refreshOnShow: function (e, t) { 1 < this.$el.find(".fr-selected-cell").length ? (t.find('a[data-param1="vertical-split"]').addClass("fr-disabled").attr("aria-disabled", !0), t.find('a[data-param1="horizontal-split"]').addClass("fr-disabled").attr("aria-disabled", !0), t.find('a[data-param1="merge"]').removeClass("fr-disabled").attr("aria-disabled", !1)) : (t.find('a[data-param1="merge"]').addClass("fr-disabled").attr("aria-disabled", !0), t.find('a[data-param1="vertical-split"]').removeClass("fr-disabled").attr("aria-disabled", !1), t.find('a[data-param1="horizontal-split"]').removeClass("fr-disabled").attr("aria-disabled", !1)) } }), kt.DefineIcon("tableRemove", { NAME: "trash", SVG_KEY: "removeTable" }), kt.RegisterCommand("tableRemove", { title: "Remove Table", focus: !1, callback: function () { this.table.remove() } }), kt.DefineIcon("tableStyle", { NAME: "paint-brush", SVG_KEY: "tableStyle" }), kt.RegisterCommand("tableStyle", { title: "Table Style", type: "dropdown", focus: !1, html: function () { var e = '" }, callback: function (e, t) { this.table.applyStyle(t, this.$el.find(".fr-selected-cell").closest("table"), this.opts.tableMultipleStyles, this.opts.tableStyles) }, refreshOnShow: function (e, t) { var n = this.$, r = this.$el.find(".fr-selected-cell").closest("table"); r && t.find(".fr-command").each(function () { var e = n(this).data("param1"), t = r.hasClass(e); n(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } }), kt.DefineIcon("tableCellBackground", { NAME: "tint", SVG_KEY: "cellBackground" }), kt.RegisterCommand("tableCellBackground", { title: "Cell Background", focus: !1, popup: !0, callback: function () { this.table.showColorsPopup() } }), kt.RegisterCommand("tableCellBackgroundColor", { undo: !0, focus: !1, callback: function (e, t) { this.table.setBackground(t) } }), kt.DefineIcon("tableBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("tableBack", { title: "Back", undo: !1, focus: !1, back: !0, callback: function () { this.table.back() }, refresh: function (e) { 0 !== this.table.selectedCells().length || this.opts.toolbarInline ? (e.removeClass("fr-hidden"), e.next(".fr-separator").removeClass("fr-hidden")) : (e.addClass("fr-hidden"), e.next(".fr-separator").addClass("fr-hidden")) } }), kt.DefineIcon("tableCellVerticalAlign", { NAME: "arrows-v", FA5NAME: "arrows-alt-v", SVG_KEY: "verticalAlignMiddle" }), kt.RegisterCommand("tableCellVerticalAlign", { type: "dropdown", focus: !1, title: "Vertical Align", options: { Top: "Align Top", Middle: "Align Middle", Bottom: "Align Bottom" }, html: function () { var e = '" }, callback: function (e, t) { this.table.verticalAlign(t) }, refreshOnShow: function (e, t) { t.find('.fr-command[data-param1="' + this.$el.find(".fr-selected-cell").css("vertical-align") + '"]').addClass("fr-active").attr("aria-selected", !0) } }), kt.DefineIcon("tableCellHorizontalAlign", { NAME: "align-left", SVG_KEY: "alignLeft" }), kt.DefineIcon("align-left", { NAME: "align-left", SVG_KEY: "alignLeft" }), kt.DefineIcon("align-right", { NAME: "align-right", SVG_KEY: "alignRight" }), kt.DefineIcon("align-center", { NAME: "align-center", SVG_KEY: "alignCenter" }), kt.DefineIcon("align-justify", { NAME: "align-justify", SVG_KEY: "alignJustify" }), kt.RegisterCommand("tableCellHorizontalAlign", { type: "dropdown", focus: !1, title: "Horizontal Align", options: { left: "Align Left", center: "Align Center", right: "Align Right", justify: "Align Justify" }, html: function () { var e = '" }, callback: function (e, t) { this.table.horizontalAlign(t) }, refresh: function (e) { var t = this.table.selectedCells(), n = this.$; t.length && e.find("> *").first().replaceWith(this.icon.create("align-".concat(this.helpers.getAlignment(n(t[0]))))) }, refreshOnShow: function (e, t) { t.find('.fr-command[data-param1="' + this.helpers.getAlignment(this.$el.find(".fr-selected-cell").first()) + '"]').addClass("fr-active").attr("aria-selected", !0) } }), kt.DefineIcon("tableCellStyle", { NAME: "magic", SVG_KEY: "cellStyle" }), kt.RegisterCommand("tableCellStyle", { title: "Cell Style", type: "dropdown", focus: !1, html: function () { var e = '" }, callback: function (e, t) { this.table.applyStyle(t, this.$el.find(".fr-selected-cell"), this.opts.tableCellMultipleStyles, this.opts.tableCellStyles) }, refreshOnShow: function (e, t) { var n = this.$, r = this.$el.find(".fr-selected-cell").first(); r && t.find(".fr-command").each(function () { var e = n(this).data("param1"), t = r.hasClass(e); n(this).toggleClass("fr-active", t).attr("aria-selected", t) }) } }), kt.RegisterCommand("tableCellBackgroundCustomColor", { title: "OK", undo: !0, callback: function () { this.table.customColor() } }), kt.DefineIcon("tableColorRemove", { NAME: "eraser", SVG_KEY: "remove" }), kt.URLRegEx = "(^| |\\u00A0)(".concat(kt.LinkRegEx, "|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\\.[a-z0-9+-_]{1,}))$"), kt.PLUGINS.url = function (i) { var s = i.$, o = null; function t(e, t, n) { for (var r = ""; n.length && "." == n[n.length - 1];) r += ".", n = n.substring(0, n.length - 1); var a = n; if (i.opts.linkConvertEmailAddress) i.helpers.isEmail(a) && !/^mailto:.*/i.test(a) && (a = "mailto:".concat(a)); else if (i.helpers.isEmail(a)) return t + n; return /^((http|https|ftp|ftps|mailto|tel|sms|notes|data)\:)/i.test(a) || (a = "//".concat(a)), (t || "") + "').concat(n.replace(/&/g, "&").replace(/&/g, "&").replace(//g, ">"), "").concat(r) } var l = function l() { return new RegExp(kt.URLRegEx, "gi") }; function c(e) { return i.opts.linkAlwaysNoFollow && (o = "nofollow"), i.opts.linkAlwaysBlank && (i.opts.linkNoOpener && (o ? o += " noopener" : o = "noopener"), i.opts.linkNoReferrer && (o ? o += " noreferrer" : o = "noreferrer")), e.replace(l(), t) } function d(e) { var t = e.split(" "); return t[t.length - 1] } function n() { var e = i.selection.ranges(0), t = e.startContainer; if (!t || t.nodeType !== Node.TEXT_NODE || e.startOffset !== (t.textContent || "").length) return !1; if (function o(e) { return !!e && ("A" === e.tagName || !(!e.parentNode || e.parentNode == i.el) && o(e.parentNode)) }(t)) return !1; if (l().test(d(t.textContent))) { s(t).before(c(t.textContent)); var n = s(t.parentNode).find("a[data-fr-linked]"); n.removeAttr("data-fr-linked"), t.parentNode.removeChild(t), i.events.trigger("url.linked", [n.get(0)]) } else if (t.textContent.split(" ").length <= 2 && t.previousSibling && "A" === t.previousSibling.tagName) { var r = t.previousSibling.innerText + t.textContent; if (l().test(d(r))) { var a = (new DOMParser).parseFromString(c(r), "text/html").body.childNodes; t.parentNode.replaceChild(a[0], t.previousSibling), a.length && s(t).before(a[0]), t.parentNode.removeChild(t) } } } return { _init: function e() { i.events.on("keypress", function (e) { !i.selection.isCollapsed() || ")" != e.key && "(" != e.key || n() }, !0), i.events.on("keydown", function (e) { var t = e.which; !i.selection.isCollapsed() || t != kt.KEYCODE.ENTER && t != kt.KEYCODE.SPACE || n() }, !0), i.events.on("paste.beforeCleanup", function (e) { if (i.helpers.isURL(e)) { var t = null; return i.opts.linkAlwaysBlank && (i.opts.linkNoOpener && (t ? t += " noopener" : t = "noopener"), i.opts.linkNoReferrer && (t ? t += " noreferrer" : t = "noreferrer")), "').concat(e, "") } }) } } }, Object.assign(kt.POPUP_TEMPLATES, { "video.insert": "[_BUTTONS_][_BY_URL_LAYER_][_EMBED_LAYER_][_UPLOAD_LAYER_][_PROGRESS_BAR_]", "video.edit": "[_BUTTONS_]", "video.size": "[_BUTTONS_][_SIZE_LAYER_]" }), Object.assign(kt.DEFAULTS, { videoAllowedTypes: ["mp4", "webm", "ogg", "mp3", "mpeg", "url"], videoAllowedProviders: [".*"], videoDefaultAlign: "center", videoDefaultDisplay: "block", videoDefaultWidth: 600, videoEditButtons: ["videoReplace", "videoRemove", "videoDisplay", "videoAlign", "videoSize", "autoplay"], videoInsertButtons: ["videoBack", "|", "videoByURL", "videoEmbed", "videoUpload"], videoMaxSize: 52428800, videoMove: !0, videoResize: !0, videoResponsive: !1, videoSizeButtons: ["videoBack", "|"], videoSplitHTML: !1, videoTextNear: !0, videoUpload: !0, videoUploadMethod: "POST", videoUploadParam: "file", videoUploadParams: {}, videoUploadToS3: !1, videoUploadToAzure: !1, videoUploadURL: null }), kt.VIDEO_PROVIDERS = [ { test_regex: /^.*((youtu.be)|(youtube.com))\/((v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))?\??v?=?([^#\&\?]*).*/, url_regex: /(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/)?([0-9a-zA-Z_\-]+)(.+)?/g, url_text: "https://www.youtube.com/embed/$1?$2", html: '', provider: "youtube" }, { test_regex: /^.*(?:vimeo.com)\/(?:channels(\/\w+\/)?|groups\/*\/videos\/\u200b\d+\/|video\/|)(\d+)(?:$|\/|\?)/, url_regex: /(?:https?:\/\/)?(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?(\/[a-zA-Z0-9_\-]+)?/i, url_text: "https://player.vimeo.com/video/$1", html: '', provider: "vimeo" }, { test_regex: /^.+(dailymotion.com|dai.ly)\/(video|hub)?\/?([^_]+)[^#]*(#video=([^_&]+))?/, url_regex: /(?:https?:\/\/)?(?:www\.)?(?:dailymotion\.com|dai\.ly)\/(?:video|hub)?\/?(.+)/g, url_text: "https://www.dailymotion.com/embed/video/$1", html: '', provider: "dailymotion" }, { test_regex: /^.+(screen.yahoo.com)\/[^_&]+/, url_regex: "", url_text: "", html: '', provider: "yahoo" }, { test_regex: /^.+(rutube.ru)\/[^_&]+/, url_regex: /(?:https?:\/\/)?(?:www\.)?(?:rutube\.ru)\/(?:video)?\/?(.+)/g, url_text: "https://rutube.ru/play/embed/$1", html: '', provider: "rutube" }, { test_regex: /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/, url_regex: /^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/g, url_text: "https://play.vidyard.com/$1", html: '', provider: "vidyard" }], kt.VIDEO_EMBED_REGEX = /^\W*(((\s|\n)*<\/iframe>)|())\W*$/i, kt.PLUGINS.video = function (E) { var s, d, f, y, r, n, L = E.$, _ = "https://i.froala.com/upload", p = 2, u = 3, h = 4, w = 5, A = 6, a = {}; function g() { var e = E.popups.get("video.insert"); e.find(".fr-video-by-url-layer input").val("").trigger("change"); var t = e.find(".fr-video-embed-layer textarea"); t.val("").trigger("change"), (t = e.find(".fr-video-upload-layer input")).val("").trigger("change") } function o() { var e = E.popups.get("video.edit"); if (e || (e = function i() { var e = ""; if (0 < E.opts.videoEditButtons.length) { E.opts.videoResponsive && (-1 < E.opts.videoEditButtons.indexOf("videoSize") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf("videoSize"), 1), -1 < E.opts.videoEditButtons.indexOf("videoDisplay") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf("videoDisplay"), 1), -1 < E.opts.videoEditButtons.indexOf("videoAlign") && E.opts.videoEditButtons.splice(E.opts.videoEditButtons.indexOf("videoAlign"), 1)); var t = { buttons: e += '
    \n '.concat(E.button.buildList(E.opts.videoEditButtons), " \n
    ") }, n = E.popups.create("video.edit", t); return E.events.$on(E.$wp, "scroll.video-edit", function () { y && E.popups.isVisible("video.edit") && (E.events.disableBlur(), C(y)) }), n } return !1 }()), e) { E.popups.setContainer("video.edit", E.$sc), E.popups.refresh("video.edit"); var t = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")), n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.outerHeight(), a = t.get(0).src ? t.get(0).src : t.get(0).currentSrc, o = !(!(a = (a = a.split("."))[a.length - 1]).includes("pdf") && !a.includes("txt")); t.hasClass("fr-file") || o || y.find("audio").get(0) ? (document.getElementById("autoplay-".concat(E.id)) && (document.getElementById("autoplay-".concat(E.id)).style.display = "none"), document.getElementById("videoReplace-".concat(E.id)) && (document.getElementById("videoReplace-".concat(E.id)).style.display = "none")) : (document.getElementById("autoplay-".concat(E.id)) && (document.getElementById("autoplay-".concat(E.id)).style.display = ""), document.getElementById("videoReplace-".concat(E.id)) && (document.getElementById("videoReplace-".concat(E.id)).style.display = "")), E.popups.show("video.edit", n, r, t.outerHeight(), !0) } } function i(e) { if (e) return E.popups.onRefresh("video.insert", g), E.popups.onHide("video.insert", X), !0; var t = ""; E.opts.videoUpload || -1 === E.opts.videoInsertButtons.indexOf("videoUpload") || E.opts.videoInsertButtons.splice(E.opts.videoInsertButtons.indexOf("videoUpload"), 1); var n = E.button.buildList(E.opts.videoInsertButtons); "" !== n && (t = '
    ' + n + "
    "); var r, a = "", o = E.opts.videoInsertButtons.indexOf("videoUpload"), i = E.opts.videoInsertButtons.indexOf("videoByURL"), s = E.opts.videoInsertButtons.indexOf("videoEmbed"); if (0 <= i) { r = " fr-active", (o < i && 0 <= o || s < i && 0 <= s) && (r = ""); a = '
    ').concat('', '
    ") } var l = ""; 0 <= s && (r = " fr-active", (o < s && 0 <= o || i < s && 0 <= i) && (r = ""), l = '
    ")); var c = ""; 0 <= o && (r = " fr-active", (s < o && 0 <= s || i < o && 0 <= i) && (r = ""), c = '
    ').concat(E.language.translate("Drop video"), "
    (").concat(E.language.translate("or click"), ')
    ')); var d = { buttons: t, by_url_layer: a, embed_layer: l, upload_layer: c, progress_bar: '

    Uploading

    ' }, f = E.popups.create("video.insert", d); return function p(r) { E.events.$on(r, "dragover dragenter", ".fr-video-upload-layer", function () { return L(this).addClass("fr-drop"), !1 }, !0), E.events.$on(r, "dragleave dragend", ".fr-video-upload-layer", function () { return L(this).removeClass("fr-drop"), !1 }, !0), E.events.$on(r, "drop", ".fr-video-upload-layer", function (e) { e.preventDefault(), e.stopPropagation(), L(this).removeClass("fr-drop"); var t = e.originalEvent.dataTransfer; if (t && t.files) { var n = r.data("instance") || E; n.events.disableBlur(), n.video.upload(t.files), n.events.enableBlur() } }, !0), E.helpers.isIOS() && E.events.$on(r, "touchstart", '.fr-video-upload-layer input[type="file"]', function () { L(this).trigger("click") }, !0); E.events.$on(r, "change", '.fr-video-upload-layer input[type="file"]', function () { if (this.files) { var e = r.data("instance") || E; e.events.disableBlur(), r.find("input:focus").blur(), e.events.enableBlur(), e.video.upload(this.files) } L(this).val("") }, !0) }(f), f } function l(e) { E.events.focus(!0), E.selection.restore(); var t = !1; if (y && (Z(), t = !0), E.opts.trackChangesEnabled) { E.edit.on(), E.events.focus(!0), E.selection.restore(), E.undo.saveStep(), E.markers.insert(), E.html.wrap(); var n = E.$el.find(".fr-marker"); E.node.isLastSibling(n) && n.parent().hasClass("fr-deletable") && n.insertAfter(n.parent()), n.replaceWith(''.concat(e, "")), E.selection.clear() } else E.html.insert(''.concat(e, ""), !1, E.opts.videoSplitHTML); E.popups.hide("video.insert"); var r = E.$el.find(".fr-jiv"); r.removeClass("fr-jiv"), r.toggleClass("fr-rv", E.opts.videoResponsive), Q(r, E.opts.videoDefaultDisplay, E.opts.videoDefaultAlign), r.toggleClass("fr-draggable", E.opts.videoMove), E.events.trigger(t ? "video.replaced" : "video.inserted", [r]) } function m() { var e = L(this); E.popups.hide("video.insert"), e.removeClass("fr-uploading"), e.parent().next().is("br") && e.parent().next().remove(), C(e.parent()), E.events.trigger("video.loaded", [e.parent()]) } function T(s, e, l, c, d) { E.edit.off(), v("Loading video"), e && (s = E.helpers.sanitizeURL(s)); var f = function f() { var e, t; if (c) { E.undo.canDo() || c.find("video").hasClass("fr-uploading") || E.undo.saveStep(); var n = c.find("video").data("fr-old-src"), r = c.data("fr-replaced"); if (c.data("fr-replaced", !1), 0 < c.find("iframe").length) c.remove(), e = O(s, l, m); else { E.$wp ? ((e = c.clone(!0)).find("video").removeData("fr-old-src").removeClass("fr-uploading"), e.find("video").off("canplay"), n && c.find("video").attr("src", n), c.replaceWith(e)) : e = c; for (var a = e.find("video").get(0).attributes, o = 0; o < a.length; o++) { var i = a[o]; 0 === i.nodeName.indexOf("data-") && e.find("video").removeAttr(i.nodeName) } if (void 0 !== l) for (t in l) l.hasOwnProperty(t) && "link" != t && e.find("video").attr("data-".concat(t), l[t]); e.find("video").on("canplay", m), e.find("video").attr("src", s) } E.edit.on(), $(), E.undo.saveStep(), E.$el.blur(), E.events.trigger(r ? "video.replaced" : "video.inserted", [e, d]) } else e = O(s, l, m), $(), E.undo.saveStep(), E.events.trigger("video.inserted", [e, d]) }; S("Loading video"), f() } function S(e) { var t = E.popups.get("video.insert"); if (t || (t = i()), t.find(".fr-layer.fr-active").removeClass("fr-active").addClass("fr-pactive"), t.find(".fr-video-progress-bar-layer").addClass("fr-active"), t.find(".fr-buttons").hide(), y) { var n = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")); E.popups.setContainer("video.insert", E.$sc); var r = n.offset().left, a = n.offset().top + n.height(); E.popups.show("video.insert", r, a, n.outerHeight()) } void 0 === e && v(E.language.translate("Uploading"), 0) } function c(e) { var t = E.popups.get("video.insert"); if (t && (t.find(".fr-layer.fr-pactive").addClass("fr-active").removeClass("fr-pactive"), t.find(".fr-video-progress-bar-layer").removeClass("fr-active"), t.find(".fr-buttons").show(), e || E.$el.find("video.fr-error").length)) { if (E.events.focus(), E.$el.find("video.fr-error").length && (E.$el.find("video.fr-error").parent().remove(), E.undo.saveStep(), E.undo.run(), E.undo.dropRedo()), !E.$wp && y) { var n = y; F(!0), E.selection.setAfter(n.find("video").get(0)), E.selection.restore() } E.popups.hide("video.insert") } } function v(e, t) { var n = E.popups.get("video.insert"); if (n) { var r = n.find(".fr-video-progress-bar-layer"); r.find("h3").text(e + (t ? " ".concat(t, "%") : "")), r.removeClass("fr-error"), t ? (r.find("div").removeClass("fr-indeterminate"), r.find("div > span").css("width", "".concat(t, "%"))) : r.find("div").addClass("fr-indeterminate") } } function b(e) { S(); var t = E.popups.get("video.insert").find(".fr-video-progress-bar-layer"); t.addClass("fr-error"); var n = t.find("h3"); n.text(e), E.events.disableBlur(), n.focus() } function C(e) { t.call(e.get(0)) } function k(e, t, n) { v("Loading video"); var r = this.status, a = this.response, o = this.responseXML, i = this.responseText; try { if (E.opts.videoUploadToS3 || E.opts.videoUploadToAzure) if (201 == r) { var s; if (E.opts.videoUploadToAzure) { if (!1 === E.events.trigger("video.uploadedToAzure", [this.responseURL, n, a], !0)) return E.edit.on(), !1; s = t } else s = function c(e) { try { var t = L(e).find("Location").text(), n = L(e).find("Key").text(); return !1 === E.events.trigger("video.uploadedToS3", [t, n, e], !0) ? (E.edit.on(), !1) : t } catch (r) { return W(h, e), !1 } }(o); s && T(s, !1, [], e, a || o) } else W(h, a || o); else if (200 <= r && r < 300) { var l = function d(e) { try { if (!1 === E.events.trigger("video.uploaded", [e], !0)) return E.edit.on(), !1; var t = JSON.parse(e); return t.link ? t : (W(p, e), !1) } catch (n) { return W(h, e), !1 } }(i); l && T(l.link, !1, l, e, a || i) } else W(u, a || i) } catch (f) { W(h, a || i) } } function x() { W(h, this.response || this.responseText || this.responseXML) } function R(e) { if (e.lengthComputable) { var t = e.loaded / e.total * 100 | 0; v(E.language.translate("Uploading"), t) } } function M() { E.edit.on(), c(!0) } function O(e, t, n) { var r, a = ""; if (t && void 0 !== t) for (r in t) t.hasOwnProperty(r) && "link" != r && (a += " data-".concat(r, '="').concat(t[r], '"')); var o = E.opts.videoDefaultWidth; o && "auto" != o && (o = "".concat(o, "px")), E.helpers.isMobile() && E.browser.safari && (a += " autoplay playsinline"); var i = L(document.createElement("span")).attr("contenteditable", "false").attr("draggable", "true").attr("class", "fr-video fr-dv" + E.opts.videoDefaultDisplay[0] + ("center" != E.opts.videoDefaultAlign ? " fr-fv" + E.opts.videoDefaultAlign[0] : "")).html('"); i.toggleClass("fr-draggable", E.opts.videoMove), E.edit.on(), E.events.focus(!0), E.selection.restore(), E.undo.saveStep(), E.opts.videoSplitHTML ? E.markers.split() : E.markers.insert(), E.html.wrap(); var s = E.$el.find(".fr-marker"); return E.node.isLastSibling(s) && s.parent().hasClass("fr-deletable") && s.insertAfter(s.parent()), s.replaceWith(i), E.selection.clear(), i.find("video").get(0).readyState > i.find("video").get(0).HAVE_FUTURE_DATA || E.helpers.isIOS() ? n.call(i.find("video").get(0)) : i.find("video").on("canplaythrough load", n), i } function N(e) { if (!E.core.sameInstance(f)) return !0; e.preventDefault(), e.stopPropagation(); var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null), n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null); if (!t || !n) return !1; if ("mousedown" == e.type) { var r = E.$oel.get(0).ownerDocument, a = r.defaultView || r.parentWindow, o = !1; try { o = a.location != a.parent.location && !(a.$ && a.$.FE) } catch (i) {} o && a.frameElement && (t += E.helpers.getPX(L(a.frameElement).offset().left) + a.frameElement.clientLeft, n = e.clientY + E.helpers.getPX(L(a.frameElement).offset().top) + a.frameElement.clientTop) } E.undo.canDo() || E.undo.saveStep(), (d = L(this)).data("start-x", t), d.data("start-y", n), s.show(), E.popups.hideAll(), z() } function I(e) { if (!E.core.sameInstance(f)) return !0; if (d) { e.preventDefault(); var t = e.pageX || (e.originalEvent.touches ? e.originalEvent.touches[0].pageX : null), n = e.pageY || (e.originalEvent.touches ? e.originalEvent.touches[0].pageY : null); if (!t || !n) return !1; var r = d.data("start-x"), a = d.data("start-y"); d.data("start-x", t), d.data("start-y", n); var o = t - r, i = n - a, s = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")), l = s.width(), c = s.height(); (d.hasClass("fr-hnw") || d.hasClass("fr-hsw")) && (o = 0 - o), (d.hasClass("fr-hnw") || d.hasClass("fr-hne")) && (i = 0 - i), s.css("width", l + o), s.css("height", c + i), s.removeAttr("width"), s.removeAttr("height"), P() } } function D(e) { if (!E.core.sameInstance(f)) return !0; d && y && (e && e.stopPropagation(), d = null, s.hide(), P(), o(), E.undo.saveStep()) } function B(e) { return '
    ') } function H(e, t, n, r) { return e.pageX = t, e.pageY = t, N.call(this, e), e.pageX = e.pageX + n * Math.floor(Math.pow(1.1, r)), e.pageY = e.pageY + n * Math.floor(Math.pow(1.1, r)), I.call(this, e), D.call(this, e), ++r } function $() { var e, t = Array.prototype.slice.call(E.el.querySelectorAll("video, .fr-video > *")), n = []; for (e = 0; e < t.length; e++) n.push(t[e].getAttribute("src")), L(t[e]).toggleClass("fr-draggable", E.opts.videoMove), "" === t[e].getAttribute("class") && t[e].removeAttribute("class"), "" === t[e].getAttribute("style") && t[e].removeAttribute("style"); if (r) for (e = 0; e < r.length; e++) n.indexOf(r[e].getAttribute("src")) < 0 && E.events.trigger("video.removed", [L(r[e])]); r = t } function P() { f || function i() { var e; if (E.shared.$video_resizer ? (f = E.shared.$video_resizer, s = E.shared.$vid_overlay, E.events.on("destroy", function () { L("body").first().append(f.removeClass("fr-active")) }, !0)) : (E.shared.$video_resizer = L(document.createElement("div")).attr("class", "fr-video-resizer"), f = E.shared.$video_resizer, E.events.$on(f, "mousedown", function (e) { e.stopPropagation() }, !0), E.opts.videoResize && (f.append(B("nw") + B("ne") + B("sw") + B("se")), E.shared.$vid_overlay = L(document.createElement("div")).attr("class", "fr-video-overlay"), s = E.shared.$vid_overlay, e = f.get(0).ownerDocument, L(e).find("body").first().append(s))), E.events.on("shared.destroy", function () { f.html("").removeData().remove(), f = null, E.opts.videoResize && (s.remove(), s = null) }, !0), E.helpers.isMobile() || E.events.$on(L(E.o_win), "resize.video", function () { F(!0) }), E.opts.videoResize) { e = f.get(0).ownerDocument, E.events.$on(f, E._mousedown, ".fr-handler", N), E.events.$on(L(e), E._mousemove, I), E.events.$on(L(e.defaultView || e.parentWindow), E._mouseup, D), E.events.$on(s, "mouseleave", D); var r = 1, a = null, o = 0; E.events.on("keydown", function (e) { if (y) { var t = -1 != navigator.userAgent.indexOf("Mac OS X") ? e.metaKey : e.ctrlKey, n = e.which; (n !== a || 200 < e.timeStamp - o) && (r = 1), (n == kt.KEYCODE.EQUALS || E.browser.mozilla && n == kt.KEYCODE.FF_EQUALS) && t && !e.altKey ? r = H.call(this, e, 1, 1, r) : (n == kt.KEYCODE.HYPHEN || E.browser.mozilla && n == kt.KEYCODE.FF_HYPHEN) && t && !e.altKey && (r = H.call(this, e, 2, -1, r)), a = n, o = e.timeStamp } }), E.events.on("keyup", function () { r = 1 }) } }(), (E.$wp || E.$sc).append(f), f.data("instance", E); var e = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")), t = 0, n = 0; E.opts.iframe && (n = E.helpers.getPX(E.$wp.find(".fr-iframe").css("padding-top")), t = E.helpers.getPX(E.$wp.find(".fr-iframe").css("padding-left"))), f.css("top", (E.opts.iframe ? e.offset().top + n - 1 : e.offset().top - E.$wp.offset().top - 1) + E.$wp.scrollTop()).css("left", (E.opts.iframe ? e.offset().left + t - 1 : e.offset().left - E.$wp.offset().left - 1) + E.$wp.scrollLeft()).css("width", e.get(0).getBoundingClientRect().width).css("height", e.get(0).getBoundingClientRect().height).addClass("fr-active") } function t(e) { if (e && "touchend" == e.type && n) return !0; if (e && E.edit.isDisabled()) return e.stopPropagation(), e.preventDefault(), !1; if (E.edit.isDisabled()) return !1; for (var t = 0; t < kt.INSTANCES.length; t++) kt.INSTANCES[t] != E && kt.INSTANCES[t].events.trigger("video.hideResizer"); E.toolbar.disable(), E.helpers.isMobile() && (E.events.disableBlur(), E.$el.blur(), E.events.enableBlur()), E.$el.find(".fr-video.fr-active").removeClass("fr-active"), (y = L(this)).addClass("fr-active"), E.opts.iframe && E.size.syncIframe(), te(), P(), o(), E.selection.clear(), E.button.bulkRefresh(), E.events.trigger("image.hideResizer") } function F(e) { y && (function t() { return E.shared.vid_exit_flag }() || !0 === e) && (f.removeClass("fr-active"), E.toolbar.enable(), y.removeClass("fr-active"), y = null, z()) } function U() { E.shared.vid_exit_flag = !0 } function z() { E.shared.vid_exit_flag = !1 } function K(e) { var t = e.originalEvent.dataTransfer; if (t && t.files && t.files.length) { var n = t.files[0]; if (n && n.type && -1 !== n.type.indexOf("video")) { if (!E.opts.videoUpload) return e.preventDefault(), e.stopPropagation(), !1; E.markers.remove(), E.markers.insertAtPoint(e.originalEvent), E.$el.find(".fr-marker").replaceWith(kt.MARKERS), E.popups.hideAll(); var r = E.popups.get("video.insert"); return r || (r = i()), E.popups.setContainer("video.insert", E.$sc), E.popups.show("video.insert", e.originalEvent.pageX, e.originalEvent.pageY), S(), 0 <= E.opts.videoAllowedTypes.indexOf(n.type.replace(/video\//g, "")) ? V(t.files) : W(A), e.preventDefault(), e.stopPropagation(), !1 } } } function V(e) { if (void 0 !== e && 0 < e.length) { if (!1 === E.events.trigger("video.beforeUpload", [e])) return !1; var t, n = e[0]; if (!(null !== E.opts.videoUploadURL && E.opts.videoUploadURL != _ || E.opts.videoUploadToS3 || E.opts.videoUploadToAzure)) return function C(r) { y && y.find("iframe") && y.find("iframe").length && Z(); var a = new FileReader; a.onload = function () { a.result; for (var e = atob(a.result.split(",")[1]), t = [], n = 0; n < e.length; n++) t.push(e.charCodeAt(n)); T(window.URL.createObjectURL(new Blob([new Uint8Array(t)], { type: r.type })), !1, null, y) }, S(), a.readAsDataURL(r) }(n), !1; if (n.size > E.opts.videoMaxSize) return W(w), !1; if (E.opts.videoAllowedTypes.indexOf(n.type.replace(/video\//g, "")) < 0) return W(A), !1; if (E.drag_support.formdata && (t = E.drag_support.formdata ? new FormData : null), t) { var r; if (!1 !== E.opts.videoUploadToS3) for (r in t.append("key", E.opts.videoUploadToS3.keyStart + (new Date).getTime() + "-" + (n.name || "untitled")), t.append("success_action_status", "201"), t.append("X-Requested-With", "xhr"), t.append("Content-Type", n.type), E.opts.videoUploadToS3.params) E.opts.videoUploadToS3.params.hasOwnProperty(r) && t.append(r, E.opts.videoUploadToS3.params[r]); for (r in E.opts.videoUploadParams) E.opts.videoUploadParams.hasOwnProperty(r) && t.append(r, E.opts.videoUploadParams[r]); t.append(E.opts.videoUploadParam, n); var a, o, i = E.opts.videoUploadURL; E.opts.videoUploadToS3 && (i = E.opts.videoUploadToS3.uploadURL ? E.opts.videoUploadToS3.uploadURL : "https://".concat(E.opts.videoUploadToS3.region, ".amazonaws.com/").concat(E.opts.videoUploadToS3.bucket)); var s = E.opts.videoUploadMethod; E.opts.videoUploadToAzure && (i = E.opts.videoUploadToAzure.uploadURL ? "".concat(E.opts.videoUploadToAzure.uploadURL, "/").concat(n.name) : encodeURI("https://".concat(E.opts.videoUploadToAzure.account, ".blob.core.windows.net/").concat(E.opts.videoUploadToAzure.container, "/").concat(n.name)), a = i, E.opts.videoUploadToAzure.SASToken && (i += E.opts.videoUploadToAzure.SASToken), s = "PUT"); var l = E.core.getXHR(i, s); if (E.opts.videoUploadToAzure) { var c = (new Date).toUTCString(); if (!E.opts.videoUploadToAzure.SASToken && E.opts.videoUploadToAzure.accessKey) { var d = E.opts.videoUploadToAzure.account, f = E.opts.videoUploadToAzure.container; if (E.opts.videoUploadToAzure.uploadURL) { var p = E.opts.videoUploadToAzure.uploadURL.split("/"); f = p.pop(), d = p.pop().split(".")[0] } var u = "x-ms-blob-type:BlockBlob\nx-ms-date:".concat(c, "\nx-ms-version:2019-07-07"), h = encodeURI("/" + d + "/" + f + "/" + n.name), g = s + "\n\n\n" + n.size + "\n\n" + n.type + "\n\n\n\n\n\n\n" + u + "\n" + h, m = E.cryptoJSPlugin.cryptoJS.HmacSHA256(g, E.cryptoJSPlugin.cryptoJS.enc.Base64.parse(E.opts.videoUploadToAzure.accessKey)).toString(E.cryptoJSPlugin.cryptoJS.enc.Base64), v = "SharedKey " + d + ":" + m; o = m, l.setRequestHeader("Authorization", v) } for (r in l.setRequestHeader("x-ms-version", "2019-07-07"), l.setRequestHeader("x-ms-date", c), l.setRequestHeader("Content-Type", n.type), l.setRequestHeader("x-ms-blob-type", "BlockBlob"), E.opts.videoUploadParams) E.opts.videoUploadParams.hasOwnProperty(r) && l.setRequestHeader(r, E.opts.videoUploadParams[r]); for (r in E.opts.videoUploadToAzure.params) E.opts.videoUploadToAzure.params.hasOwnProperty(r) && l.setRequestHeader(r, E.opts.videoUploadToAzure.params[r]) } l.onload = function () { k.call(l, y, a, o) }, l.onerror = x, l.upload.onprogress = R, l.onabort = M, S(), E.events.disableBlur(), E.edit.off(), E.events.enableBlur(); var b = E.popups.get("video.insert"); b && L(b.off("abortUpload")).on("abortUpload", function () { 4 != l.readyState && l.abort() }), l.send(E.opts.videoUploadToAzure ? n : t) } } } function W(e, t) { E.edit.on(), y && y.find("video").addClass("fr-error"), b(E.language.translate("Something went wrong. Please try again.")), E.events.trigger("video.error", [ { code: e, message: a[e] }, t]) } function G() { if (y) { var e = E.popups.get("video.size"), t = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")); e.find('input[name="width"]').val(t.get(0).style.width || t.attr("width")).trigger("change"), e.find('input[name="height"]').val(t.get(0).style.height || t.attr("height")).trigger("change") } } function Y(e) { if (e) return E.popups.onRefresh("video.size", G), !0; var t = { buttons: '
    '.concat(E.button.buildList(E.opts.videoSizeButtons), "
    "), size_layer: '
    ") }, n = E.popups.create("video.size", t); return E.events.$on(E.$wp, "scroll", function () { y && E.popups.isVisible("video.size") && (E.events.disableBlur(), C(y)) }), n } function j(e) { if (void 0 === e && (e = y), e) { if (e.hasClass("fr-fvl")) return "left"; if (e.hasClass("fr-fvr")) return "right"; if (e.hasClass("fr-dvb") || e.hasClass("fr-dvi")) return "center"; if ("block" == e.css("display")) { if ("left" == e.css("text-algin")) return "left"; if ("right" == e.css("text-align")) return "right" } else { if ("left" == e.css("float")) return "left"; if ("right" == e.css("float")) return "right" } } return "center" } function q(e) { void 0 === e && (e = y); var t = e.css("float"); return e.css("float", "none"), "block" == e.css("display") ? (e.css("float", ""), e.css("float") != t && e.css("float", t), "block") : (e.css("float", ""), e.css("float") != t && e.css("float", t), "inline") } function Z() { if (y && !1 !== E.events.trigger("video.beforeRemove", [y])) { var e = y; if (E.popups.hideAll(), F(!0), E.opts.trackChangesEnabled && (!e[0].parentNode || "SPAN" !== e[0].parentNode.tagName || !e[0].parentNode.hasAttribute("data-tracking"))) return void E.track_changes.removeSpecialItem(e); E.selection.setBefore(e.get(0)) || E.selection.setAfter(e.get(0)), e.remove(), E.selection.restore(), E.html.fillEmptyBlocks() } } function X() { c() } function Q(e, t, n) { !E.opts.htmlUntouched && E.opts.useClasses ? (e.removeClass("fr-fvl fr-fvr fr-dvb fr-dvi"), e.addClass("fr-fv".concat(n[0], " fr-dv").concat(t[0]))) : "inline" == t ? (e.css( { display: "inline-block" }), "center" == n ? e.css( { "float": "none" }) : "left" == n ? e.css( { "float": "left" }) : e.css( { "float": "right" })) : (e.css( { display: "block", clear: "both" }), "left" == n ? e.css( { textAlign: "left" }) : "right" == n ? e.css( { textAlign: "right" }) : e.css( { textAlign: "center" })) } function J() { var e = E.$el.find("video").filter(function () { return 0 === L(this).parents("span.fr-video").length }); if (0 != e.length) { e.wrap(L(document.createElement("span")).attr("class", "fr-video fr-deletable").attr("contenteditable", "false")), E.$el.find("embed, iframe").filter(function () { if (E.browser.safari && this.getAttribute("src") && this.setAttribute("src", this.src), 0 < L(this).parents("span.fr-video").length) return !1; for (var e = L(this).attr("src"), t = 0; t < kt.VIDEO_PROVIDERS.length; t++) { var n = kt.VIDEO_PROVIDERS[t]; if (n.test_regex.test(e) && new RegExp(E.opts.videoAllowedProviders.join("|")).test(n.provider)) return !0 } return !1 }).map(function () { return 0 === L(this).parents("object").length ? this : L(this).parents("object").get(0) }).wrap(L(document.createElement("span")).attr("class", "fr-video").attr("contenteditable", "false")); for (var t, n, r, a, o = E.$el.find("span.fr-video, video"), i = 0; i < o.length; i++) { var s = L(o[i]); !E.opts.htmlUntouched && E.opts.useClasses ? ((a = s).hasClass("fr-dvi") || a.hasClass("fr-dvb") || (a.addClass("fr-fv".concat(j(a)[0])), a.addClass("fr-dv".concat(q(a)[0]))), E.opts.videoTextNear || s.removeClass("fr-dvi").addClass("fr-dvb")) : E.opts.htmlUntouched || E.opts.useClasses || (void 0, n = (t = s).hasClass("fr-dvb") ? "block" : t.hasClass("fr-dvi") ? "inline" : null, r = t.hasClass("fr-fvl") ? "left" : t.hasClass("fr-fvr") ? "right" : j(t), Q(t, n, r), t.removeClass("fr-dvb fr-dvi fr-fvr fr-fvl")) } o.toggleClass("fr-draggable", E.opts.videoMove) } } function ee(e) { document.getElementById("autoplay-".concat(E.id)).style.cssText = "background:".concat(e) } function te() { if (y) { E.selection.clear(); var e = E.doc.createRange(); e.selectNode(y.get(0)), E.selection.get().addRange(e) } } return a[1] = "Video cannot be loaded from the passed link.", a[p] = "No link in upload response.", a[u] = "Error during file upload.", a[h] = "Parsing response failed.", a[w] = "File is too large.", a[A] = "Video file type is invalid.", a[7] = "Files can be uploaded only to same domain in IE 8 and IE 9.", E.shared.vid_exit_flag = !1, { _init: function ne() { E.opts.videoResponsive && (E.opts.videoResize = !1), function e() { E.events.on("drop", K, !0), E.events.on("mousedown window.mousedown", U), E.events.on("window.touchmove", z), E.events.on("mouseup window.mouseup", F), E.events.on("commands.mousedown", function (e) { 0 < e.parents(".fr-toolbar").length && F() }), E.events.on("video.hideResizer commands.undo commands.redo element.dropped", function () { F(!0) }) }(), E.helpers.isMobile() && (E.events.$on(E.$el, "touchstart", "span.fr-video", function () { n = !1 }), E.events.$on(E.$el, "touchmove", function () { n = !0 })), E.events.on("html.set", J), J(), E.events.$on(E.$el, "mousedown", "span.fr-video", function (e) { e.stopPropagation(), (E.browser.msie || E.browser.edge) && (e.target.innerText || (e.target.dragDrop(), t.call(this, e))) }), E.events.$on(E.$el, "click touchend", "span.fr-video", function (e) { if (e.target.innerText.length || "false" == L(this).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable")) return !0; t.call(this, e) }), E.events.on("keydown", function (e) { var t = e.which; return !y || t != kt.KEYCODE.BACKSPACE && t != kt.KEYCODE.DELETE ? y && t == kt.KEYCODE.ESC ? (F(!0), e.preventDefault(), !1) : y && t != kt.KEYCODE.F10 && !E.keys.isBrowserAction(e) ? (e.preventDefault(), !1) : void 0 : (e.preventDefault(), Z(), E.undo.saveStep(), !1) }, !0), E.events.on("toolbar.esc", function () { if (y) return E.events.disableBlur(), E.events.focus(), !1 }, !0), E.events.on("toolbar.focusEditor", function () { if (y) return !1 }, !0), E.events.on("keydown", function () { E.$el.find("span.fr-video:empty").remove() }), E.$wp && ($(), E.events.on("contentChanged", $)), i(!0), Y(!0) }, showInsertPopup: function re() { var e = E.$tb.find('.fr-command[data-cmd="insertVideo"]'), t = E.popups.get("video.insert"); if (t || (t = i()), c(), !t.hasClass("fr-active")) if (E.popups.refresh("video.insert"), E.popups.setContainer("video.insert", E.$tb), e.isVisible()) { var n = E.button.getPosition(e), r = n.left, a = n.top; E.popups.show("video.insert", r, a, e.outerHeight()) } else E.position.forSelection(t), E.popups.show("video.insert") }, showLayer: function ae(e) { var t, n, r = E.popups.get("video.insert"); if (!y && !E.opts.toolbarInline) { var a = E.$tb.find('.fr-command[data-cmd="insertVideo"]'); t = a.offset().left, n = a.offset().top + (E.opts.toolbarBottom ? 10 : a.outerHeight() - 10) } E.opts.toolbarInline && (n = r.offset().top - E.helpers.getPX(r.css("margin-top")), r.hasClass("fr-above") && (n += r.outerHeight())), r.find(".fr-layer").removeClass("fr-active"), r.find(".fr-".concat(e, "-layer")).addClass("fr-active"), E.popups.show("video.insert", t, n, 0), E.accessibility.focusPopup(r) }, refreshByURLButton: function oe(e) { var t = E.popups.get("video.insert"); t && t.find(".fr-video-by-url-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, refreshEmbedButton: function ie(e) { var t = E.popups.get("video.insert"); t && t.find(".fr-video-embed-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, refreshUploadButton: function se(e) { var t = E.popups.get("video.insert"); t && t.find(".fr-video-upload-layer").hasClass("fr-active") && e.addClass("fr-active").attr("aria-pressed", !0) }, upload: V, insertByURL: function le(e) { var t = !!document.getElementById("videoPluginAutoplay") && document.getElementById("videoPluginAutoplay").checked; void 0 === e && (e = (E.popups.get("video.insert").find('.fr-video-by-url-layer input[type="text"]').val() || "").trim()); var n = null; if (/^http/.test(e) || (e = "https://".concat(e)), E.helpers.isURL(e)) for (var r = 0; r < kt.VIDEO_PROVIDERS.length; r++) { var a = kt.VIDEO_PROVIDERS[r], o = "autoplay=1"; if (a.html.includes("autoplay=1") && document.getElementById("videoPluginAutoplay").checked) a.html = a.html, document.getElementById("videoPluginAutoplay").checked = !1; else if (t) { var i = a.html.indexOf("{url}") + 5; a.html = [a.html.slice(0, i), o, a.html.slice(i)].join(""), t = !1, document.getElementById("videoPluginAutoplay").checked = !1 } else(a = kt.VIDEO_PROVIDERS[r]).html = a.html.replace(o, ""); if (a.test_regex.test(e) && new RegExp(E.opts.videoAllowedProviders.join("|")).test(a.provider)) { n = e.replace(a.url_regex, a.url_text), n = a.html.replace(/\{url\}/, n); break } } n ? l(n) : (b(E.language.translate("Something went wrong. Please try again.")), E.events.trigger("video.linkError", [e])) }, insertEmbed: function ce(e) { void 0 === e && (e = E.popups.get("video.insert").find(".fr-video-embed-layer textarea").val() || ""), 0 !== e.length && kt.VIDEO_EMBED_REGEX.test(e) ? l(e) : (b(E.language.translate("Something went wrong. Please try again.")), E.events.trigger("video.codeError", [e])) }, insert: l, align: function de(e) { y.removeClass("fr-fvr fr-fvl"), !E.opts.htmlUntouched && E.opts.useClasses ? "left" == e ? y.addClass("fr-fvl") : "right" == e && y.addClass("fr-fvr") : Q(y, q(), e), te(), P(), o(), E.selection.clear() }, refreshAlign: function fe(e) { if (!y) return !1; e.find(">*").first().replaceWith(E.icon.create("video-align-".concat(j()))) }, refreshAlignOnShow: function pe(e, t) { y && t.find('.fr-command[data-param1="'.concat(j(), '"]')).addClass("fr-active").attr("aria-selected", !0) }, display: function ue(e) { y.removeClass("fr-dvi fr-dvb"), !E.opts.htmlUntouched && E.opts.useClasses ? "inline" == e ? y.addClass("fr-dvi") : "block" == e && y.addClass("fr-dvb") : Q(y, e, j()), te(), P(), o(), E.selection.clear() }, refreshDisplayOnShow: function he(e, t) { y && t.find('.fr-command[data-param1="'.concat(q(), '"]')).addClass("fr-active").attr("aria-selected", !0) }, remove: Z, hideProgressBar: c, showSizePopup: function ge() { var e = E.popups.get("video.size"); e || (e = Y()), c(), E.popups.refresh("video.size"), E.popups.setContainer("video.size", E.$sc); var t = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")), n = t.offset().left + t.outerWidth() / 2, r = t.offset().top + t.height(); E.popups.show("video.size", n, r, t.height(), !0) }, replace: function me() { var e = E.popups.get("video.insert"); e || (e = i()), E.popups.isVisible("video.insert") || (c(), E.popups.refresh("video.insert"), E.popups.setContainer("video.insert", E.$sc)); var t = y.offset().left + y.outerWidth() / 2, n = y.offset().top + y.height(); E.popups.show("video.insert", t, n, y.outerHeight(), !0) }, back: function e() { y ? (E.events.disableBlur(), y[0].click()) : (E.events.disableBlur(), E.selection.restore(), E.events.enableBlur(), E.popups.hide("video.insert"), E.toolbar.showInline()) }, setSize: function ve(e, t) { if (y) { var n = E.popups.get("video.size"), r = y.find("iframe, embed, ".concat(y.find("iframe, embed, audio").get(0) ? "audio" : "video")); r.css("width", e || n.find('input[name="width"]').val()), r.css("height", t || n.find('input[name="height"]').val()), r.get(0).style.width && r.removeAttr("width"), r.get(0).style.height && r.removeAttr("height"), n.find("input:focus").blur(), setTimeout(function () { y.trigger("click") }, E.helpers.isAndroid() ? 50 : 0) } }, get: function be() { return y }, showProgressBar: S, _editVideo: C, setAutoplay: function Ce() { var e; if (y.find("iframe, embed, audio").get(0))(e = y.find("iframe, embed, audio")).get(0).src.includes("autoplay=1") ? (ee("#FFFFFF"), e.get(0).src = e.get(0).src.replace("&autoplay=1", "")) : (ee("#D6D6D6"), e.get(0).src = e.get(0).src + "&autoplay=1"); else if ((e = y.find("iframe, embed, video")).get(0).outerHTML.includes("autoplay")) ee("#FFFFFF"), e.get(0).outerHTML = e.get(0).outerHTML.replace("autoplay", ""); else { ee("#D6D6D6"); var t = e.get(0).outerHTML.indexOf("class") - 1; e.get(0).outerHTML = [e.get(0).outerHTML.slice(0, t), "autoplay", e.get(0).outerHTML.slice(t)].join("") } } } }, kt.RegisterCommand("insertVideo", { title: "Insert Video", undo: !1, focus: !0, refreshAfterCallback: !1, popup: !0, callback: function () { this.popups.isVisible("video.insert") ? (this.$el.find(".fr-marker").length && (this.events.disableBlur(), this.selection.restore()), this.popups.hide("video.insert")) : this.video.showInsertPopup() }, plugin: "video" }), kt.DefineIcon("insertVideo", { NAME: "video-camera", FA5NAME: "camera", SVG_KEY: "insertVideo" }), kt.DefineIcon("videoByURL", { NAME: "link", SVG_KEY: "insertLink" }), kt.RegisterCommand("videoByURL", { title: "By URL", undo: !1, focus: !1, toggle: !0, callback: function () { this.video.showLayer("video-by-url") }, refresh: function (e) { this.video.refreshByURLButton(e) } }), kt.DefineIcon("videoEmbed", { NAME: "code", SVG_KEY: "codeView" }), kt.RegisterCommand("videoEmbed", { title: "Embedded Code", undo: !1, focus: !1, toggle: !0, callback: function () { this.video.showLayer("video-embed") }, refresh: function (e) { this.video.refreshEmbedButton(e) } }), kt.DefineIcon("videoUpload", { NAME: "upload", SVG_KEY: "upload" }), kt.RegisterCommand("videoUpload", { title: "Upload Video", undo: !1, focus: !1, toggle: !0, callback: function () { this.video.showLayer("video-upload") }, refresh: function (e) { this.video.refreshUploadButton(e) } }), kt.RegisterCommand("videoInsertByURL", { undo: !0, focus: !0, callback: function () { this.video.insertByURL() } }), kt.RegisterCommand("videoInsertEmbed", { undo: !0, focus: !0, callback: function () { this.video.insertEmbed() } }), kt.DefineIcon("videoDisplay", { NAME: "star", SVG_KEY: "star" }), kt.RegisterCommand("videoDisplay", { title: "Display", type: "dropdown", options: { inline: "Inline", block: "Break Text" }, callback: function (e, t) { this.video.display(t) }, refresh: function (e) { this.opts.videoTextNear || e.addClass("fr-hidden") }, refreshOnShow: function (e, t) { this.video.refreshDisplayOnShow(e, t) } }), kt.DefineIcon("video-align", { NAME: "align-left", SVG_KEY: "align Left" }), kt.DefineIcon("video-align-left", { NAME: "align-left", SVG_KEY: "alignLeft" }), kt.DefineIcon("video-align-right", { NAME: "align-right", SVG_KEY: "alignRight" }), kt.DefineIcon("video-align-center", { NAME: "align-justify", SVG_KEY: "alignJustify" }), kt.DefineIcon("videoAlign", { NAME: "align-center", SVG_KEY: "alignCenter" }), kt.RegisterCommand("videoAlign", { type: "dropdown", title: "Align", options: { left: "Align Left", center: "None", right: "Align Right" }, html: function () { var e = '" }, callback: function (e, t) { this.video.align(t) }, refresh: function (e) { this.video.refreshAlign(e) }, refreshOnShow: function (e, t) { this.video.refreshAlignOnShow(e, t) } }), kt.DefineIcon("videoReplace", { NAME: "exchange", FA5NAME: "exchange-alt", SVG_KEY: "replaceImage" }), kt.RegisterCommand("videoReplace", { title: "Replace", undo: !1, focus: !1, popup: !0, refreshAfterCallback: !1, callback: function () { this.video.replace() } }), kt.DefineIcon("videoRemove", { NAME: "trash", SVG_KEY: "remove" }), kt.RegisterCommand("videoRemove", { title: "Remove", callback: function () { this.video.remove() } }), kt.DefineIcon("autoplay", { NAME: "autoplay", SVG_KEY: "autoplay" }), kt.RegisterCommand("autoplay", { undo: !1, focus: !1, popup: !0, title: "Autoplay", callback: function () { this.video.setAutoplay() } }), kt.DefineIcon("videoSize", { NAME: "arrows-alt", SVG_KEY: "imageSize" }), kt.RegisterCommand("videoSize", { undo: !1, focus: !1, popup: !0, title: "Change Size", callback: function () { this.video.showSizePopup() } }), kt.DefineIcon("videoBack", { NAME: "arrow-left", SVG_KEY: "back" }), kt.RegisterCommand("videoBack", { title: "Back", undo: !1, focus: !1, back: !0, callback: function () { this.video.back() }, refresh: function (e) { this.video.get() || this.opts.toolbarInline ? (e.removeClass("fr-hidden"), e.next(".fr-separator").removeClass("fr-hidden")) : (e.addClass("fr-hidden"), e.next(".fr-separator").addClass("fr-hidden")) } }), kt.RegisterCommand("videoDismissError", { title: "OK", undo: !1, callback: function () { this.video.hideProgressBar(!0) } }), kt.RegisterCommand("videoSetSize", { undo: !0, focus: !1, title: "Update", refreshAfterCallback: !1, callback: function () { this.video.setSize() } }), Object.assign(kt.DEFAULTS, { wordDeniedTags: [], wordDeniedAttrs: [], wordAllowedStyleProps: ["font-family", "font-size", "background", "color", "width", "text-align", "vertical-align", "background-color", "padding", "margin", "height", "margin-top", "margin-left", "margin-right", "margin-bottom", "text-decoration", "font-weight", "font-style", "text-indent", "border", "border-.*", "line-height", "list-style-type"], wordPasteModal: !0, wordPasteKeepFormatting: !0 }), kt.PLUGINS.wordPaste = function (L) { var i, a, c = L.$, s = "word_paste", p = {}; function t(e) { var t = L.opts.wordAllowedStyleProps; e || (L.opts.wordAllowedStyleProps = []), 0 === a.indexOf("") && (a = "" + a + "
    "), a = o(a = a.replace(/([\r\n\u00a0 ]*)<\/span>/g, function (e, t) { for (var n = "", r = 0; r++ < t.length;) n += " "; return n }), L.paste.getRtfClipboard()); var n = L.doc.createElement("DIV"); n.innerHTML = a, L.html.cleanBlankSpaces(n), a = n.innerHTML, a = (a = L.paste.cleanEmptyTagsAndDivs(a)).replace(/\u200b/g, ""), function r() { L.modals.hide(s) }(), L.paste.clean(a, !0, !0), L.opts.wordAllowedStyleProps = t } function _(e) { e.parentNode && e.parentNode.removeChild(e) } function u(e, t) { if (t(e)) for (var n = e.firstChild; n;) { var r = n, a = n.previousSibling; n = n.nextSibling, u(r, t), r.previousSibling || r.nextSibling || r.parentNode || !n || a === n.previousSibling || !n.parentNode ? r.previousSibling || r.nextSibling || r.parentNode || !n || n.previousSibling || n.nextSibling || n.parentNode || (a ? n = a.nextSibling ? a.nextSibling.nextSibling : null : e.firstChild && (n = e.firstChild.nextSibling)) : n = a ? a.nextSibling : e.firstChild } } function R(e) { if (!e.getAttribute("style") || !/mso-list:[\s]*l/gi.test(e.getAttribute("style").replace(/\n/gi, ""))) return !1; try { if (!e.querySelector('[style="mso-list:Ignore"]')) return !!(e.outerHTML && 0 <= e.outerHTML.indexOf("")) } catch (t) { return !1 } return !0 } function M(e) { return e.getAttribute("style").replace(/\n/gi, "").replace(/.*level([0-9]+?).*/gi, "$1") } function O(e, r) { var t = e.cloneNode(!0); if (-1 !== ["H1", "H2", "H3", "H4", "H5", "H6"].indexOf(e.tagName)) { var n = document.createElement(e.tagName.toLowerCase()); n.setAttribute("style", e.getAttribute("style")), n.innerHTML = t.innerHTML, t.innerHTML = n.outerHTML } u(t, function (e) { if (e.nodeType == Node.COMMENT_NODE && (L.browser.msie || L.browser.safari || L.browser.edge)) try { if ("[if !supportLists]" === e.data) { for (e = e.nextSibling; e && e.nodeType !== Node.COMMENT_NODE;) { var t = e.nextSibling; e.parentNode.removeChild(e), e = t } e && e.nodeType == Node.COMMENT_NODE && e.parentNode.removeChild(e) } } catch (n) {} return e.nodeType === Node.ELEMENT_NODE && ("mso-list:\nIgnore" === e.getAttribute("style") && e.setAttribute("style", "mso-list:Ignore"), "mso-list:Ignore" === e.getAttribute("style") && e.parentNode.removeChild(e), e.setAttribute("style", function a(e) { var n = "", r = e.getAttribute("style"); r && ["line-height", "font-family", "font-size", "color", "background"].forEach(function (e) { var t = r.match(new RegExp(e + ":.*(;|)")); t && (n += t[0] + ";") }); return n }(e)), m(e, r)), !0 }); var a = t.innerHTML; return a = a.replace(//gi, "") } function w(e) { var t = e.getAttribute("align"); t && (e.style["text-align"] = t, e.removeAttribute("align")) } function A(e) { return e.replace(/\n|\r|\n\r|"/g, "") } function T(e, t, n) { if (t) { var r = e.getAttribute("style"); r && ";" !== r.slice(-1) && (r += ";"), t && ";" !== t.slice(-1) && (t += ";"), t = t.replace(/\n/gi, ""); var a = null; a = n ? (r || "") + t : t + (r || ""), e.setAttribute("style", a) } } var h = null; function d(e, t, n) { for (var r = e.split(n), a = 1; a < r.length; a++) { var o = r[a]; if (1 < (o = o.split("shplid")).length) { o = o[1]; for (var i = "", s = 0; s < o.length && "\\" !== o[s] && "{" !== o[s] && " " !== o[s] && "\r" !== o[s] && "\n" !== o[s];) i += o[s], s++; var l = o.split("bliptag"); if (l && l.length < 2) continue; var c = null; if (-1 !== l[0].indexOf("pngblip") ? c = "image/png" : -1 !== l[0].indexOf("jpegblip") && (c = "image/jpeg"), !c) continue; var d = l[1].split("}"); if (d && d.length < 2) continue; var f = void 0; if (2 < d.length && -1 !== d[0].indexOf("blipuid")) f = d[1].split(" "); else { if ((f = d[0].split(" ")) && f.length < 2) continue; f.shift() } var p = f.join(""); h[t + i] = { image_hex: p, image_type: c } } } } function g(e, t) { if (t) { var n; if ("IMG" === e.tagName) { var r = e.getAttribute("src"); if (!r || -1 === r.indexOf("file://")) return; if (0 === r.indexOf("file://") && L.helpers.isURL(e.getAttribute("alt"))) return void e.setAttribute("src", e.getAttribute("alt")); (n = p[e.getAttribute("v:shapes")]) || (n = e.getAttribute("v:shapes"), e.parentNode && e.parentNode.parentNode && 0 <= e.parentNode.parentNode.innerHTML.indexOf("msEquation") && (n = null)) } else n = e.parentNode.getAttribute("o:spid"); if (e.removeAttribute("height"), n) { ! function s(e) { h = {}, d(e, "i", "\\shppict"), d(e, "s", "\\shp{") }(t); var a = h[n.substring(7)]; if (a) { var o = function l(e) { for (var t = e.match(/[0-9a-f]{2}/gi), n = [], r = 0; r < t.length; r++) n.push(String.fromCharCode(parseInt(t[r], 16))); var a = n.join(""); return btoa(a) }(a.image_hex), i = "data:" + a.image_type + ";base64," + o; "IMG" === e.tagName ? (e.src = i, e.setAttribute("data-fr-image-pasted", !0)) : c(e.parentNode).before('').remove() } } } } function m(e, t) { var n = e.tagName, r = n.toLowerCase(); if (-1 !== ["SCRIPT", "APPLET", "EMBED", "NOFRAMES", "NOSCRIPT"].indexOf(n)) return _(e), !1; for (var a = ["META", "LINK", "XML", "ST1:", "O:", "W:", "FONT"], o = 0; o < a.length; o++) if (-1 !== n.indexOf(a[o])) return e.innerHTML && (e.outerHTML = e.innerHTML), _(e), !1; for (var i = ["I", "U"], s = 0; s < i.length; s++) if (n === i[s]) return e.innerHTML && (e.outerHTML = e.innerHTML), _(e), !1; if ("TD" !== n) { var l = e.getAttribute("class") || "MsoNormal"; if (t && l) { for (var c = (l = A(l)).split(" "), d = 0; d < c.length; d++) { var f = [], p = "." + c[d]; f.push(p), p = r + p, f.push(p); for (var u = 0; u < f.length; u++) t[f[u]] && T(e, t[f[u]]) } e.removeAttribute("class") } t && t[r] && T(e, t[r]) } if (-1 !== ["P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE"].indexOf(n)) { var h = e.getAttribute("class"); if (h && (t && t[n.toLowerCase() + "." + h] && T(e, t[n.toLowerCase() + "." + h]), -1 !== h.toLowerCase().indexOf("mso"))) { var g = A(h); (g = g.replace(/[0-9a-z-_]*mso[0-9a-z-_]*/gi, "")) ? e.setAttribute("class", g): e.removeAttribute("class") } var m = e.getAttribute("style"); if (m) { var v = m.match(/text-align:.+?[; "]{1,1}/gi); v && v[v.length - 1].replace(/(text-align:.+?[; "]{1,1})/gi, "$1") } w(e) } if ("TR" === n && function y(e, t) { L.node.clearAttributes(e); for (var n = e.firstElementChild, r = 0, a = !1, o = null; n;) { n.firstElementChild && -1 !== n.firstElementChild.tagName.indexOf("W:") && (n.innerHTML = n.firstElementChild.innerHTML), (o = n.getAttribute("width")) || a || (a = !0), r += parseInt(o, 10), (!n.firstChild || n.firstChild && n.firstChild.data === kt.UNICODE_NBSP) && (n.firstChild && _(n.firstChild), n.innerHTML = "
    "); for (var i = n.firstElementChild, s = 1 === n.children.length; i;) "P" !== i.tagName || R(i) || s && w(i), i = i.nextElementSibling; if (t) { var l = n.getAttribute("class"); if (l) { var c = (l = A(l)).match(/xl[0-9]+/gi); if (c) { var d = "." + c[0]; t[d] && T(n, t[d]) } } t.td && T(n, t.td) } var f = n.getAttribute("style"); f && (f = A(f)) && ";" !== f.slice(-1) && (f += ";"); var p = n.getAttribute("valign"); if (!p && f) { var u = f.match(/vertical-align:.+?[; "]{1,1}/gi); u && (p = u[u.length - 1].replace(/vertical-align:(.+?)[; "]{1,1}/gi, "$1")) } var h = null; if (f) { var g = f.match(/text-align:.+?[; "]{1,1}/gi); g && (h = g[g.length - 1].replace(/text-align:(.+?)[; "]{1,1}/gi, "$1")), "general" === h && (h = null) } var m = null; if (f) { var v = f.match(/background:.+?[; "]{1,1}/gi); v && (m = v[v.length - 1].replace(/background:(.+?)[; "]{1,1}/gi, "$1")) } var b = n.getAttribute("colspan"), C = n.getAttribute("rowspan"); b && n.setAttribute("colspan", b), C && n.setAttribute("rowspan", C), p && (n.style["vertical-align"] = p), h && (n.style["text-align"] = h), m && (n.style["background-color"] = m), o && n.setAttribute("width", o), n = n.nextElementSibling } for (n = e.firstElementChild; n;) o = n.getAttribute("width"), a ? n.removeAttribute("width") : n.setAttribute("width", 100 * parseInt(o, 10) / r + "%"), n = n.nextElementSibling }(e, t), "A" !== n || e.attributes.getNamedItem("href") || e.attributes.getNamedItem("name") || !e.innerHTML || (e.outerHTML = e.innerHTML), "A" == n && e.getAttribute("href") && e.querySelector("img")) for (var b = e.querySelectorAll("span"), C = 0; C < b.length; C++) b[C].innerText || (b[C].outerHTML = b[C].innerHTML); if ("TD" !== n && "TH" !== n || e.innerHTML || (e.innerHTML = "
    "), "TABLE" === n && (e.style.width = e.style.width), e.getAttribute("lang") && e.removeAttribute("lang"), e.getAttribute("style") && -1 !== e.getAttribute("style").toLowerCase().indexOf("mso")) { var E = A(e.getAttribute("style")); (E = E.replace(/[0-9a-z-_]*mso[0-9a-z-_]*:.+?(;{1,1}|$)/gi, "")) ? e.setAttribute("style", E): e.removeAttribute("style") } return !0 } function o(e, t) { 0 <= e.indexOf("]*(]*>[.\s\S\w\W<>]*<\/html>)[.\s\S\w\W<>]*/i, "$1")), function d(e) { for (var t = e.split("v:shape"), n = 1; n < t.length; n++) { var r = t[n], a = r.split(' id="')[1]; if (a && 1 < a.length) { a = a.split('"')[0]; var o = r.split(' o:spid="')[1]; o && 1 < o.length && (o = o.split('"')[0], p[a] = o) } } }(e); var n = (new DOMParser).parseFromString(e, "text/html"), r = n.head, a = n.body, l = function f(e) { var t = {}, n = e.getElementsByTagName("style"); if (n.length) { var r = n[0].innerHTML.match(/[\S ]+\s+{[\s\S]+?}/gi); if (r) for (var a = 0; a < r.length; a++) { var o = r[a], i = o.replace(/([\S ]+\s+){[\s\S]+?}/gi, "$1"), s = o.replace(/[\S ]+\s+{([\s\S]+?)}/gi, "$1"); i = i.replace(/^[\s]|[\s]$/gm, ""), s = s.replace(/^[\s]|[\s]$/gm, ""), i = i.replace(/\n|\r|\n\r/g, ""), s = s.replace(/\n|\r|\n\r/g, ""); for (var l = i.split(", "), c = 0; c < l.length; c++) t[l[c]] = s } } return t }(r); u(a, function (e) { if (e.nodeType === Node.TEXT_NODE && /\n|\u00a0|\r/.test(e.data)) { if (!/\S| /.test(e.data) && !/[\u00a0]+/.test(e.data)) return e.data === kt.UNICODE_NBSP ? (e.data = "​", !0) : 1 === e.data.length && 10 === e.data.charCodeAt(0) ? (e.data = " ", !0) : (_(e), !1); e.data = e.data.replace(/\n|\r/gi, " ") } return !0 }), u(a, function (e) { return e.nodeType !== Node.ELEMENT_NODE || "V:IMAGEDATA" !== e.tagName && "IMG" !== e.tagName || g(e, t), !0 }); for (var o = a.querySelectorAll("ul > ul, ul > ol, ol > ul, ol > ol"), i = o.length - 1; 0 <= i; i--) o[i].previousElementSibling && "LI" === o[i].previousElementSibling.tagName && o[i].previousElementSibling.appendChild(o[i]); u(a, function (e) { if (e.nodeType === Node.TEXT_NODE) return e.data = e.data.replace(/
    (\n|\r)/gi, "
    "), !1; if (e.nodeType === Node.ELEMENT_NODE) { if (R(e)) { var t = e.parentNode, n = e.previousSibling, r = function x(e, t, n, r) { var a, o, i = /[0-9a-zA-Z]./gi, s = !1, l = navigator.userAgent.toLowerCase(); - 1 != l.indexOf("safari") && (l = -1 < l.indexOf("chrome") ? 1 : "safari"), e.innerHTML.includes("mso-list:\nIgnore") && (e.innerHTML = e.innerHTML.replace(/mso-list:\nIgnore/gi, "mso-list:Ignore")); var c, d, f, p, u = e.querySelector('span[style="mso-list:Ignore"]'); null == u && "safari" == l && (u = e.querySelector('span[lang="PT-BR"]')); var h; u && (s = s || i.test(u.textContent)), null !== u && (h = u.textContent.trim().split(".")[0]), f = 1 == s ? ("1" == (h = u.textContent.trim().split(".")[0]) ? p = "decimal;" : "i" == h ? p = "lower-roman;" : "I" == h ? p = "upper-roman;" : "o" == h ? p = "circle;" : h.match(/^v$/) || (h.match(/^[a-z]$/) || h.match(/^[a-z]\)$/) ? p = "lower-alpha;" : (h.match(/^[A-Z]$/) || h.match(/^[A-Z]\)$/)) && (p = "upper-alpha;")), p = "list-style-type: " + p, "ol") : (null != u && (h = u.textContent.trim().split(".")[0]), "\xa7" == h ? p = "square;" : "\xb7" == h && (p = "disc;"), p = "list-style-type: " + p, "ul"); var g, m = ""; u == undefined || u.textContent == undefined || isNaN(parseInt(u.textContent.trim().split(".")[1], 10)) || (m = ' class="decimal_type" '); var v, b = M(e), C = e.style.marginLeft; if (C.includes("in") ? (v = "in", C = parseFloat(C) - .5) : C.includes("pt") && (v = "px", C = parseFloat(C) - 10), 1 == b) if (g = p ? "<" + f + ' style = "' + p + "; margin-left:" + C + v + ';">' : "<" + f + ' style="margin-left:' + C + v + ';">', "list-style-type: upper-alpha;" == p) { var E = h.charCodeAt(0) - 64; g = p ? "<" + f + m + ' start="' + E + '" style = "' + p + " margin-left:" + C + v + ';">' : "<" + f + ">" } else if ("list-style-type: lower-alpha;" == p) { var y = h.charCodeAt(0) - 96; g = p ? "<" + f + m + ' start="' + y + '" style = "' + p + "margin-left:" + C + v + ';">' : "<" + f + ">" } else g = p ? "<" + f + m + ' style = "' + p + ";margin-left:" + C + v + ';">' : "<" + f + ' style="margin-left:' + C + v + ';">'; else if ("list-style-type: upper-alpha;" == p) { var L = h.charCodeAt(0) - 64; g = p ? "<" + f + m + ' style = "' + p + ' start="' + L + '">' : "<" + f + ">" } else if ("list-style-type: lower-alpha;" == p) { var _ = h.charCodeAt(0) - 96; g = p ? "<" + f + m + ' style = "' + p + ' start="' + _ + '">' : "<" + f + ">" } else g = p ? "<" + f + m + ' style = "' + p + '">' : "<" + f + ">"; for (var w = !1; e;) { if (!R(e)) { if (e.outerHTML && 0 < e.outerHTML.indexOf("mso-bookmark") && 0 == (e.textContent || "").length) { e = e.nextElementSibling; continue } break } var A = M(e); if ((n = n || A) < A) g += (d = x(e, t, A, e.style.marginLeft)).el.outerHTML, e = d.currentNode; else { if (A < n) break; e.firstElementChild && e.firstElementChild.firstElementChild && e.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0), o && o.firstElementChild && o.firstElementChild.firstElementChild && o.firstElementChild.firstElementChild.firstChild && (i.lastIndex = 0, a = i.test(o.firstElementChild.firstElementChild.firstChild.data || o.firstElementChild.firstElementChild.firstChild.firstChild && o.firstElementChild.firstElementChild.firstChild.firstChild.data || "")); var T = !1; (!r && !e.style.marginLeft || r && e.style.marginLeft && r === e.style.marginLeft) && (T = !0), r = e.style.marginLeft, T || a === undefined ? (c = O(e, t), e.nextSibling && e.nextSibling.innerText != undefined && e.nextSibling.innerText != undefined && !g.includes('class="decimal_type"') && (isNaN(parseInt(e.nextSibling.innerText.trim().split(".")[1], 10)) || (g = g.substring(3, 0) + ' class="decimal_type"' + g.substring(3, g.length))), g += "
  • " + c + "
  • ") : (1 == A && (g += "", w = !0, o = null), g += (d = x(e, t, A, e.style.marginLeft)).el.outerHTML, e = d.currentNode); var S = e && e.nextElementSibling; if (S && (o = S.previousElementSibling), e && !R(e)) { if (e.outerHTML && 0 < e.outerHTML.indexOf("mso-bookmark") && 0 == (e.textContent || "").length) { e = e.nextElementSibling; continue } break } e && e.parentNode && e.parentNode.removeChild(e), e = S } } w || (g += ""); var k = document.createElement("div"); return k.innerHTML = g, { el: k, currentNode: e } }(e, l).el, a = null; return (a = n ? n.nextSibling : t.firstChild) ? t.insertBefore(r, a) : t.appendChild(r), !1 } return "FONT" === e.tagName && l["." + e.getAttribute("class")] && (e = function s(e, t) { for (var n = document.createElement(t), r = 0; r < e.attributes.length; r++) { var a = e.attributes[r].name; n.setAttribute(a, e.getAttribute(a)) } return n.innerHTML = e.innerHTML, e.parentNode.replaceChild(n, e), n }(e, "span")), m(e, l) } if (e.nodeType !== Node.COMMENT_NODE) return !0; if (-1 < e.data.indexOf("[if !supportLineBreakNewLine]")) for (var o = e.nextSibling; o;)(o = e.nextSibling) && _(o), o.data && -1 < o.data.indexOf("[endif]") && (o = null); if (-1 < e.data.indexOf("[if supportFields]") && -1 < e.data.indexOf("FORMCHECKBOX")) { var i = document.createElement("input"); i.type = "checkbox", e.parentNode.insertBefore(i, e.nextSibling) } return _(e), !1 }), u(a, function (e) { if (e.nodeType === Node.ELEMENT_NODE) { var t = e.tagName; if (!e.innerHTML && -1 === ["BR", "IMG", "INPUT"].indexOf(t)) { for (var n = e.parentNode; n && (_(e), !(e = n).innerHTML) && "TD" !== e.parentNode.tagName;) n = e.parentNode; return !1 }! function d(e) { var t = e.getAttribute("style"); if (t) { (t = A(t)) && ";" !== t.slice(-1) && (t += ";"); var n = t.match(/(^|\S+?):.+?;{1,1}/gi); if (n) { for (var r = {}, a = 0; a < n.length; a++) { var o = n[a].split(":"); 2 === o.length && ("text-align" === o[0] && "SPAN" === e.tagName || (r[o[0]] = o[1])) } var i = ""; for (var s in r) if (r.hasOwnProperty(s)) { if ("font-size" === s && "pt;" === r[s].slice(-3)) { var l = null; try { l = parseFloat(r[s].slice(0, -3), 10) } catch (c) { l = null } l && (l = Math.round(1.33 * l), r[s] = l + "px;") } i += s + ":" + r[s] } i && e.setAttribute("style", i) } } }(e) } return !0 }), u(a, function (e) { if (e && "A" === e.nodeName && "" === e.href) { for (var t = document.createDocumentFragment(); e.firstChild;) t.appendChild(e.firstChild); e.parentNode.replaceChild(t, e) } return !0 }), u(a, function (e) { return !e || "B" !== e.nodeName || (e.outerHTML = e.innerHTML, _(e), !1) }); var s = a.outerHTML, c = L.opts.htmlAllowedStyleProps; return L.opts.htmlAllowedStyleProps = L.opts.wordAllowedStyleProps, s = L.clean.html(s, L.opts.wordDeniedTags, L.opts.wordDeniedAttrs, !1), L.opts.htmlAllowedStyleProps = c, s } return { _init: function e() { L.events.on("paste.wordPaste", function (e) { return a = e, L.opts.wordPasteModal ? function o() { if (!i) { var e = '

    ' + L.language.translate("Word Paste Detected") + "

    ", t = function a() { var e = '
    '; return e += '

    ' + L.language.translate("The pasted content is coming from a Microsoft Word document. Do you want to keep the format or clean it up?") + "

    ", e += '
    ", e += "
    " }(), n = L.modals.create(s, e, t), r = n.$body; i = n.$modal, n.$modal.addClass("fr-middle"), L.events.bindClick(r, "button.fr-remove-word", function () { var e = i.data("instance") || L; e.wordPaste.clean() }), L.events.bindClick(r, "button.fr-keep-word", function () { var e = i.data("instance") || L; e.wordPaste.clean(!0) }), L.events.$on(c(L.o_win), "resize", function () { L.modals.resize(s) }) } L.modals.show(s), L.modals.resize(s) }() : t(L.opts.wordPasteKeepFormatting), !1 }) }, clean: t, _wordClean: o } }; var L = {}, n = {}, _ = {}, w = y(!0), A = "vanilla", T = { github: { omitExtraWLInCodeBlocks: !0, simplifiedAutoLink: !0, excludeTrailingPunctuationFromURLs: !0, literalMidWordUnderscores: !0, strikethrough: !0, tables: !0, tablesHeaderId: !0, ghCodeBlocks: !0, tasklists: !0, disableForced4SpacesIndentedSublists: !0, simpleLineBreaks: !0, requireSpaceBeforeHeadingText: !0, ghCompatibleHeaderId: !0, ghMentions: !0, backslashEscapesHTMLTags: !0, emoji: !0, splitAdjacentBlockquotes: !0 }, original: { noHeaderId: !0, ghCodeBlocks: !1 }, ghost: { omitExtraWLInCodeBlocks: !0, parseImgDimensions: !0, simplifiedAutoLink: !0, excludeTrailingPunctuationFromURLs: !0, literalMidWordUnderscores: !0, strikethrough: !0, tables: !0, tablesHeaderId: !0, ghCodeBlocks: !0, tasklists: !0, smoothLivePreview: !0, simpleLineBreaks: !0, requireSpaceBeforeHeadingText: !0, ghMentions: !1, encodeEmails: !0 }, vanilla: y(!0), allOn: function H() { var e = y(!0), t = {}; for (var n in e) e.hasOwnProperty(n) && (t[n] = !0); return t }() }; function S(e, t) { var n = t ? "Error in " + t + " extension->" : "Error in unnamed extension", r = { valid: !0, error: "" }; L.helper.isArray(e) || (e = [e]); for (var a = 0; a < e.length; ++a) { var o = n + " sub-extension " + a + ": ", i = e[a]; if ("object" !== St(i)) return r.valid = !1, r.error = o + "must be an object, but " + St(i) + " given", r; if (!L.helper.isString(i.type)) return r.valid = !1, r.error = o + 'property "type" must be a string, but ' + St(i.type) + " given", r; var s = i.type = i.type.toLowerCase(); if ("language" === s && (s = i.type = "lang"), "html" === s && (s = i.type = "output"), "lang" !== s && "output" !== s && "listener" !== s) return r.valid = !1, r.error = o + "type " + s + ' is not recognized. Valid values: "lang/language", "output/html" or "listener"', r; if ("listener" === s) { if (L.helper.isUndefined(i.listeners)) return r.valid = !1, r.error = o + '. Extensions of type "listener" must have a property called "listeners"', r } else if (L.helper.isUndefined(i.filter) && L.helper.isUndefined(i.regex)) return r.valid = !1, r.error = o + s + ' extensions must define either a "regex" property or a "filter" method', r; if (i.listeners) { if ("object" !== St(i.listeners)) return r.valid = !1, r.error = o + '"listeners" property must be an object but ' + St(i.listeners) + " given", r; for (var l in i.listeners) if (i.listeners.hasOwnProperty(l) && "function" != typeof i.listeners[l]) return r.valid = !1, r.error = o + '"listeners" property must be an hash of [event name]: [callback]. listeners.' + l + " must be a function but " + St(i.listeners[l]) + " given", r } if (i.filter) { if ("function" != typeof i.filter) return r.valid = !1, r.error = o + '"filter" must be a function, but ' + St(i.filter) + " given", r } else if (i.regex) { if (L.helper.isString(i.regex) && (i.regex = new RegExp(i.regex, "g")), !(i.regex instanceof RegExp)) return r.valid = !1, r.error = o + '"regex" property must either be a string or a RegExp object, but ' + St(i.regex) + " given", r; if (L.helper.isUndefined(i.replace)) return r.valid = !1, r.error = o + '"regex" extensions must implement a replace string or function', r } } return r } function k(e, t) { return "\xa8E" + t.charCodeAt(0) + "E" } L.helper = {}, L.extensions = {}, L.setOption = function (e, t) { return w[e] = t, this }, L.getOption = function (e) { return w[e] }, L.getOptions = function () { return w }, L.resetOptions = function () { w = y(!0) }, L.setFlavor = function (e) { if (!T.hasOwnProperty(e)) throw Error(e + " flavor was not found"); L.resetOptions(); var t = T[e]; for (var n in A = e, t) t.hasOwnProperty(n) && (w[n] = t[n]) }, L.getFlavor = function () { return A }, L.getFlavorOptions = function (e) { if (T.hasOwnProperty(e)) return T[e] }, L.getDefaultOptions = function (e) { return y(e) }, L.subParser = function (e, t) { if (L.helper.isString(e)) { if (void 0 === t) { if (n.hasOwnProperty(e)) return n[e]; throw Error("SubParser named " + e + " not registered!") } n[e] = t } }, L.extension = function (e, t) { if (!L.helper.isString(e)) throw Error("Extension 'name' must be a string"); if (e = L.helper.stdExtName(e), L.helper.isUndefined(t)) { if (!_.hasOwnProperty(e)) throw Error("Extension named " + e + " is not registered!"); return _[e] } "function" == typeof t && (t = t()), L.helper.isArray(t) || (t = [t]); var n = S(t, e); if (!n.valid) throw Error(n.error); _[e] = t }, L.getAllExtensions = function () { return _ }, L.removeExtension = function (e) { delete _[e] }, L.resetExtensions = function () { _ = {} }, L.validateExtension = function (e) { var t = S(e, null); return !!t.valid }, L.hasOwnProperty("helper") || (L.helper = {}), L.helper.isString = function (e) { return "string" == typeof e || e instanceof String }, L.helper.isFunction = function (e) { return e && "[object Function]" === {}.toString.call(e) }, L.helper.isArray = function (e) { return Array.isArray(e) }, L.helper.isUndefined = function (e) { return void 0 === e }, L.helper.forEach = function (e, t) { if (L.helper.isUndefined(e)) throw new Error("obj param is required"); if (L.helper.isUndefined(t)) throw new Error("callback param is required"); if (!L.helper.isFunction(t)) throw new Error("callback param must be a function/closure"); if ("function" == typeof e.forEach) e.forEach(t); else if (L.helper.isArray(e)) for (var n = 0; n < e.length; n++) t(e[n], n, e); else { if ("object" !== St(e)) throw new Error("obj does not seem to be an array or an iterable object"); for (var r in e) e.hasOwnProperty(r) && t(e[r], r, e) } }, L.helper.stdExtName = function (e) { return e.replace(/[_?*+\/\\.^-]/g, "").replace(/\s/g, "").toLowerCase() }, L.helper.escapeCharactersCallback = k, L.helper.escapeCharacters = function (e, t, n) { var r = "([" + t.replace(/([\[\]\\])/g, "\\$1") + "])"; n && (r = "\\\\" + r); var a = new RegExp(r, "g"); return e = e.replace(a, k) }, L.helper.unescapeHTMLEntities = function (e) { return e.replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&") }; var x = function x(e, t, n, r) { var a, o, i, s, l, c = r || "", d = -1 < c.indexOf("g"), f = new RegExp(t + "|" + n, "g" + c.replace(/g/g, "")), p = new RegExp(t, c.replace(/g/g, "")), u = []; do { for (a = 0; i = f.exec(e);) if (p.test(i[0])) a++ || (s = (o = f.lastIndex) - i[0].length); else if (a && !--a) { l = i.index + i[0].length; var h = { left: { start: s, end: o }, match: { start: o, end: i.index }, right: { start: i.index, end: l }, wholeMatch: { start: s, end: l } }; if (u.push(h), !d) return u } } while (a && (f.lastIndex = o)); return u }; L.helper.matchRecursiveRegExp = function (e, t, n, r) { for (var a = x(e, t, n, r), o = [], i = 0; i < a.length; ++i) o.push([e.slice(a[i].wholeMatch.start, a[i].wholeMatch.end), e.slice(a[i].match.start, a[i].match.end), e.slice(a[i].left.start, a[i].left.end), e.slice(a[i].right.start, a[i].right.end)]); return o }, L.helper.replaceRecursiveRegExp = function (e, t, n, r, a) { if (!L.helper.isFunction(t)) { var o = t; t = function t() { return o } } var i = x(e, n, r, a), s = e, l = i.length; if (0 < l) { var c = []; 0 !== i[0].wholeMatch.start && c.push(e.slice(0, i[0].wholeMatch.start)); for (var d = 0; d < l; ++d) c.push(t(e.slice(i[d].wholeMatch.start, i[d].wholeMatch.end), e.slice(i[d].match.start, i[d].match.end), e.slice(i[d].left.start, i[d].left.end), e.slice(i[d].right.start, i[d].right.end))), d < l - 1 && c.push(e.slice(i[d].wholeMatch.end, i[d + 1].wholeMatch.start)); i[l - 1].wholeMatch.end < e.length && c.push(e.slice(i[l - 1].wholeMatch.end)), s = c.join("") } return s }, L.helper.regexIndexOf = function (e, t, n) { if (!L.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"; if (t instanceof RegExp == !1) throw "InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp"; var r = e.substring(n || 0).search(t); return 0 <= r ? r + (n || 0) : r }, L.helper.splitAtIndex = function (e, t) { if (!L.helper.isString(e)) throw "InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string"; return [e.substring(0, t), e.substring(t)] }, L.helper.encodeEmailAddress = function (e) { var n = [function (e) { return "&#" + e.charCodeAt(0) + ";" }, function (e) { return "&#x" + e.charCodeAt(0).toString(16) + ";" }, function (e) { return e }]; return e = e.replace(/./g, function (e) { if ("@" === e) e = n[Math.floor(2 * Math.random())](e); else { var t = Math.random(); e = .9 < t ? n[2](e) : .45 < t ? n[1](e) : n[0](e) } return e }) }, L.helper.padEnd = function (e, t, n) { return t >>= 0, n = String(n || " "), e.length > t ? String(e) : ((t -= e.length) > n.length && (n += n.repeat(t / n.length)), String(e) + n.slice(0, t)) }, "undefined" == typeof console && (console = { warn: function (e) { alert(e) }, log: function (e) { alert(e) }, error: function (e) { throw e } }), L.helper.regexes = { asteriskDashAndColon: /([*_:~])/g }, L.helper.emojis = { "+1": "👍", "-1": "👎", 100: "💯", 1234: "🔢", "1st_place_medal": "🥇", "2nd_place_medal": "🥈", "3rd_place_medal": "🥉", "8ball": "🎱", a: "🅰️", ab: "🆎", abc: "🔤", abcd: "🔡", accept: "🉑", aerial_tramway: "🚡", airplane: "✈️", alarm_clock: "⏰", alembic: "⚗️", alien: "👽", ambulance: "🚑", amphora: "🏺", anchor: "⚓️", angel: "👼", anger: "💢", angry: "😠", anguished: "😧", ant: "🐜", apple: "🍎", aquarius: "♒️", aries: "♈️", arrow_backward: "◀️", arrow_double_down: "⏬", arrow_double_up: "⏫", arrow_down: "⬇️", arrow_down_small: "🔽", arrow_forward: "▶️", arrow_heading_down: "⤵️", arrow_heading_up: "⤴️", arrow_left: "⬅️", arrow_lower_left: "↙️", arrow_lower_right: "↘️", arrow_right: "➡️", arrow_right_hook: "↪️", arrow_up: "⬆️", arrow_up_down: "↕️", arrow_up_small: "🔼", arrow_upper_left: "↖️", arrow_upper_right: "↗️", arrows_clockwise: "🔃", arrows_counterclockwise: "🔄", art: "🎨", articulated_lorry: "🚛", artificial_satellite: "🛰", astonished: "😲", athletic_shoe: "👟", atm: "🏧", atom_symbol: "⚛️", avocado: "🥑", b: "🅱️", baby: "👶", baby_bottle: "🍼", baby_chick: "🐤", baby_symbol: "🚼", back: "🔙", bacon: "🥓", badminton: "🏸", baggage_claim: "🛄", baguette_bread: "🥖", balance_scale: "⚖️", balloon: "🎈", ballot_box: "🗳", ballot_box_with_check: "☑️", bamboo: "🎍", banana: "🍌", bangbang: "‼️", bank: "🏦", bar_chart: "📊", barber: "💈", baseball: "⚾️", basketball: "🏀", basketball_man: "⛹️", basketball_woman: "⛹️‍♀️", bat: "🦇", bath: "🛀", bathtub: "🛁", battery: "🔋", beach_umbrella: "🏖", bear: "🐻", bed: "🛏", bee: "🐝", beer: "🍺", beers: "🍻", beetle: "🐞", beginner: "🔰", bell: "🔔", bellhop_bell: "🛎", bento: "🍱", biking_man: "🚴", bike: "🚲", biking_woman: "🚴‍♀️", bikini: "👙", biohazard: "☣️", bird: "🐦", birthday: "🎂", black_circle: "⚫️", black_flag: "🏴", black_heart: "🖤", black_joker: "🃏", black_large_square: "⬛️", black_medium_small_square: "◾️", black_medium_square: "◼️", black_nib: "✒️", black_small_square: "▪️", black_square_button: "🔲", blonde_man: "👱", blonde_woman: "👱‍♀️", blossom: "🌼", blowfish: "🐡", blue_book: "📘", blue_car: "🚙", blue_heart: "💙", blush: "😊", boar: "🐗", boat: "⛵️", bomb: "💣", book: "📖", bookmark: "🔖", bookmark_tabs: "📑", books: "📚", boom: "💥", boot: "👢", bouquet: "💐", bowing_man: "🙇", bow_and_arrow: "🏹", bowing_woman: "🙇‍♀️", bowling: "🎳", boxing_glove: "🥊", boy: "👦", bread: "🍞", bride_with_veil: "👰", bridge_at_night: "🌉", briefcase: "💼", broken_heart: "💔", bug: "🐛", building_construction: "🏗", bulb: "💡", bullettrain_front: "🚅", bullettrain_side: "🚄", burrito: "🌯", bus: "🚌", business_suit_levitating: "🕴", busstop: "🚏", bust_in_silhouette: "👤", busts_in_silhouette: "👥", butterfly: "🦋", cactus: "🌵", cake: "🍰", calendar: "📆", call_me_hand: "🤙", calling: "📲", camel: "🐫", camera: "📷", camera_flash: "📸", camping: "🏕", cancer: "♋️", candle: "🕯", candy: "🍬", canoe: "🛶", capital_abcd: "🔠", capricorn: "♑️", car: "🚗", card_file_box: "🗃", card_index: "📇", card_index_dividers: "🗂", carousel_horse: "🎠", carrot: "🥕", cat: "🐱", cat2: "🐈", cd: "💿", chains: "⛓", champagne: "🍾", chart: "💹", chart_with_downwards_trend: "📉", chart_with_upwards_trend: "📈", checkered_flag: "🏁", cheese: "🧀", cherries: "🍒", cherry_blossom: "🌸", chestnut: "🌰", chicken: "🐔", children_crossing: "🚸", chipmunk: "🐿", chocolate_bar: "🍫", christmas_tree: "🎄", church: "⛪️", cinema: "🎦", circus_tent: "🎪", city_sunrise: "🌇", city_sunset: "🌆", cityscape: "🏙", cl: "🆑", clamp: "🗜", clap: "👏", clapper: "🎬", classical_building: "🏛", clinking_glasses: "🥂", clipboard: "📋", clock1: "🕐", clock10: "🕙", clock1030: "🕥", clock11: "🕚", clock1130: "🕦", clock12: "🕛", clock1230: "🕧", clock130: "🕜", clock2: "🕑", clock230: "🕝", clock3: "🕒", clock330: "🕞", clock4: "🕓", clock430: "🕟", clock5: "🕔", clock530: "🕠", clock6: "🕕", clock630: "🕡", clock7: "🕖", clock730: "🕢", clock8: "🕗", clock830: "🕣", clock9: "🕘", clock930: "🕤", closed_book: "📕", closed_lock_with_key: "🔐", closed_umbrella: "🌂", cloud: "☁️", cloud_with_lightning: "🌩", cloud_with_lightning_and_rain: "⛈", cloud_with_rain: "🌧", cloud_with_snow: "🌨", clown_face: "🤡", clubs: "♣️", cocktail: "🍸", coffee: "☕️", coffin: "⚰️", cold_sweat: "😰", comet: "☄️", computer: "💻", computer_mouse: "🖱", confetti_ball: "🎊", confounded: "😖", confused: "😕", congratulations: "㊗️", construction: "🚧", construction_worker_man: "👷", construction_worker_woman: "👷‍♀️", control_knobs: "🎛", convenience_store: "🏪", cookie: "🍪", cool: "🆒", policeman: "👮", copyright: "\xa9\ufe0f", corn: "🌽", couch_and_lamp: "🛋", couple: "👫", couple_with_heart_woman_man: "💑", couple_with_heart_man_man: "👨‍❤️‍👨", couple_with_heart_woman_woman: "👩‍❤️‍👩", couplekiss_man_man: "👨‍❤️‍💋‍👨", couplekiss_man_woman: "💏", couplekiss_woman_woman: "👩‍❤️‍💋‍👩", cow: "🐮", cow2: "🐄", cowboy_hat_face: "🤠", crab: "🦀", crayon: "🖍", credit_card: "💳", crescent_moon: "🌙", cricket: "🏏", crocodile: "🐊", croissant: "🥐", crossed_fingers: "🤞", crossed_flags: "🎌", crossed_swords: "⚔️", crown: "👑", cry: "😢", crying_cat_face: "😿", crystal_ball: "🔮", cucumber: "🥒", cupid: "💘", curly_loop: "➰", currency_exchange: "💱", curry: "🍛", custard: "🍮", customs: "🛃", cyclone: "🌀", dagger: "🗡", dancer: "💃", dancing_women: "👯", dancing_men: "👯‍♂️", dango: "🍡", dark_sunglasses: "🕶", dart: "🎯", dash: "💨", date: "📅", deciduous_tree: "🌳", deer: "🦌", department_store: "🏬", derelict_house: "🏚", desert: "🏜", desert_island: "🏝", desktop_computer: "🖥", male_detective: "🕵️", diamond_shape_with_a_dot_inside: "💠", diamonds: "♦️", disappointed: "😞", disappointed_relieved: "😥", dizzy: "💫", dizzy_face: "😵", do_not_litter: "🚯", dog: "🐶", dog2: "🐕", dollar: "💵", dolls: "🎎", dolphin: "🐬", door: "🚪", doughnut: "🍩", dove: "🕊", dragon: "🐉", dragon_face: "🐲", dress: "👗", dromedary_camel: "🐪", drooling_face: "🤤", droplet: "💧", drum: "🥁", duck: "🦆", dvd: "📀", "e-mail": "📧", eagle: "🦅", ear: "👂", ear_of_rice: "🌾", earth_africa: "🌍", earth_americas: "🌎", earth_asia: "🌏", egg: "🥚", eggplant: "🍆", eight_pointed_black_star: "✴️", eight_spoked_asterisk: "✳️", electric_plug: "🔌", elephant: "🐘", email: "✉️", end: "🔚", envelope_with_arrow: "📩", euro: "💶", european_castle: "🏰", european_post_office: "🏤", evergreen_tree: "🌲", exclamation: "❗️", expressionless: "😑", eye: "👁", eye_speech_bubble: "👁‍🗨", eyeglasses: "👓", eyes: "👀", face_with_head_bandage: "🤕", face_with_thermometer: "🤒", fist_oncoming: "👊", factory: "🏭", fallen_leaf: "🍂", family_man_woman_boy: "👪", family_man_boy: "👨‍👦", family_man_boy_boy: "👨‍👦‍👦", family_man_girl: "👨‍👧", family_man_girl_boy: "👨‍👧‍👦", family_man_girl_girl: "👨‍👧‍👧", family_man_man_boy: "👨‍👨‍👦", family_man_man_boy_boy: "👨‍👨‍👦‍👦", family_man_man_girl: "👨‍👨‍👧", family_man_man_girl_boy: "👨‍👨‍👧‍👦", family_man_man_girl_girl: "👨‍👨‍👧‍👧", family_man_woman_boy_boy: "👨‍👩‍👦‍👦", family_man_woman_girl: "👨‍👩‍👧", family_man_woman_girl_boy: "👨‍👩‍👧‍👦", family_man_woman_girl_girl: "👨‍👩‍👧‍👧", family_woman_boy: "👩‍👦", family_woman_boy_boy: "👩‍👦‍👦", family_woman_girl: "👩‍👧", family_woman_girl_boy: "👩‍👧‍👦", family_woman_girl_girl: "👩‍👧‍👧", family_woman_woman_boy: "👩‍👩‍👦", family_woman_woman_boy_boy: "👩‍👩‍👦‍👦", family_woman_woman_girl: "👩‍👩‍👧", family_woman_woman_girl_boy: "👩‍👩‍👧‍👦", family_woman_woman_girl_girl: "👩‍👩‍👧‍👧", fast_forward: "⏩", fax: "📠", fearful: "😨", feet: "🐾", female_detective: "🕵️‍♀️", ferris_wheel: "🎡", ferry: "⛴", field_hockey: "🏑", file_cabinet: "🗄", file_folder: "📁", film_projector: "📽", film_strip: "🎞", fire: "🔥", fire_engine: "🚒", fireworks: "🎆", first_quarter_moon: "🌓", first_quarter_moon_with_face: "🌛", fish: "🐟", fish_cake: "🍥", fishing_pole_and_fish: "🎣", fist_raised: "✊", fist_left: "🤛", fist_right: "🤜", flags: "🎏", flashlight: "🔦", fleur_de_lis: "⚜️", flight_arrival: "🛬", flight_departure: "🛫", floppy_disk: "💾", flower_playing_cards: "🎴", flushed: "😳", fog: "🌫", foggy: "🌁", football: "🏈", footprints: "👣", fork_and_knife: "🍴", fountain: "⛲️", fountain_pen: "🖋", four_leaf_clover: "🍀", fox_face: "🦊", framed_picture: "🖼", free: "🆓", fried_egg: "🍳", fried_shrimp: "🍤", fries: "🍟", frog: "🐸", frowning: "😦", frowning_face: "☹️", frowning_man: "🙍‍♂️", frowning_woman: "🙍", middle_finger: "🖕", fuelpump: "⛽️", full_moon: "🌕", full_moon_with_face: "🌝", funeral_urn: "⚱️", game_die: "🎲", gear: "⚙️", gem: "💎", gemini: "♊️", ghost: "👻", gift: "🎁", gift_heart: "💝", girl: "👧", globe_with_meridians: "🌐", goal_net: "🥅", goat: "🐐", golf: "⛳️", golfing_man: "🏌️", golfing_woman: "🏌️‍♀️", gorilla: "🦍", grapes: "🍇", green_apple: "🍏", green_book: "📗", green_heart: "💚", green_salad: "🥗", grey_exclamation: "❕", grey_question: "❔", grimacing: "😬", grin: "😁", grinning: "😀", guardsman: "💂", guardswoman: "💂‍♀️", guitar: "🎸", gun: "🔫", haircut_woman: "💇", haircut_man: "💇‍♂️", hamburger: "🍔", hammer: "🔨", hammer_and_pick: "⚒", hammer_and_wrench: "🛠", hamster: "🐹", hand: "✋", handbag: "👜", handshake: "🤝", hankey: "💩", hatched_chick: "🐥", hatching_chick: "🐣", headphones: "🎧", hear_no_evil: "🙉", heart: "❤️", heart_decoration: "💟", heart_eyes: "😍", heart_eyes_cat: "😻", heartbeat: "💓", heartpulse: "💗", hearts: "♥️", heavy_check_mark: "✔️", heavy_division_sign: "➗", heavy_dollar_sign: "💲", heavy_heart_exclamation: "❣️", heavy_minus_sign: "➖", heavy_multiplication_x: "✖️", heavy_plus_sign: "➕", helicopter: "🚁", herb: "🌿", hibiscus: "🌺", high_brightness: "🔆", high_heel: "👠", hocho: "🔪", hole: "🕳", honey_pot: "🍯", horse: "🐴", horse_racing: "🏇", hospital: "🏥", hot_pepper: "🌶", hotdog: "🌭", hotel: "🏨", hotsprings: "♨️", hourglass: "⌛️", hourglass_flowing_sand: "⏳", house: "🏠", house_with_garden: "🏡", houses: "🏘", hugs: "🤗", hushed: "😯", ice_cream: "🍨", ice_hockey: "🏒", ice_skate: "⛸", icecream: "🍦", id: "🆔", ideograph_advantage: "🉐", imp: "👿", inbox_tray: "📥", incoming_envelope: "📨", tipping_hand_woman: "💁", information_source: "ℹ️", innocent: "😇", interrobang: "⁉️", iphone: "📱", izakaya_lantern: "🏮", jack_o_lantern: "🎃", japan: "🗾", japanese_castle: "🏯", japanese_goblin: "👺", japanese_ogre: "👹", jeans: "👖", joy: "😂", joy_cat: "😹", joystick: "🕹", kaaba: "🕋", key: "🔑", keyboard: "⌨️", keycap_ten: "🔟", kick_scooter: "🛴", kimono: "👘", kiss: "💋", kissing: "😗", kissing_cat: "😽", kissing_closed_eyes: "😚", kissing_heart: "😘", kissing_smiling_eyes: "😙", kiwi_fruit: "🥝", koala: "🐨", koko: "🈁", label: "🏷", large_blue_circle: "🔵", large_blue_diamond: "🔷", large_orange_diamond: "🔶", last_quarter_moon: "🌗", last_quarter_moon_with_face: "🌜", latin_cross: "✝️", laughing: "😆", leaves: "🍃", ledger: "📒", left_luggage: "🛅", left_right_arrow: "↔️", leftwards_arrow_with_hook: "↩️", lemon: "🍋", leo: "♌️", leopard: "🐆", level_slider: "🎚", libra: "♎️", light_rail: "🚈", link: "🔗", lion: "🦁", lips: "👄", lipstick: "💄", lizard: "🦎", lock: "🔒", lock_with_ink_pen: "🔏", lollipop: "🍭", loop: "➿", loud_sound: "🔊", loudspeaker: "📢", love_hotel: "🏩", love_letter: "💌", low_brightness: "🔅", lying_face: "🤥", m: "Ⓜ️", mag: "🔍", mag_right: "🔎", mahjong: "🀄️", mailbox: "📫", mailbox_closed: "📪", mailbox_with_mail: "📬", mailbox_with_no_mail: "📭", man: "👨", man_artist: "👨‍🎨", man_astronaut: "👨‍🚀", man_cartwheeling: "🤸‍♂️", man_cook: "👨‍🍳", man_dancing: "🕺", man_facepalming: "🤦‍♂️", man_factory_worker: "👨‍🏭", man_farmer: "👨‍🌾", man_firefighter: "👨‍🚒", man_health_worker: "👨‍⚕️", man_in_tuxedo: "🤵", man_judge: "👨‍⚖️", man_juggling: "🤹‍♂️", man_mechanic: "👨‍🔧", man_office_worker: "👨‍💼", man_pilot: "👨‍✈️", man_playing_handball: "🤾‍♂️", man_playing_water_polo: "🤽‍♂️", man_scientist: "👨‍🔬", man_shrugging: "🤷‍♂️", man_singer: "👨‍🎤", man_student: "👨‍🎓", man_teacher: "👨‍🏫", man_technologist: "👨‍💻", man_with_gua_pi_mao: "👲", man_with_turban: "👳", tangerine: "🍊", mans_shoe: "👞", mantelpiece_clock: "🕰", maple_leaf: "🍁", martial_arts_uniform: "🥋", mask: "😷", massage_woman: "💆", massage_man: "💆‍♂️", meat_on_bone: "🍖", medal_military: "🎖", medal_sports: "🏅", mega: "📣", melon: "🍈", memo: "📝", men_wrestling: "🤼‍♂️", menorah: "🕎", mens: "🚹", metal: "🤘", metro: "🚇", microphone: "🎤", microscope: "🔬", milk_glass: "🥛", milky_way: "🌌", minibus: "🚐", minidisc: "💽", mobile_phone_off: "📴", money_mouth_face: "🤑", money_with_wings: "💸", moneybag: "💰", monkey: "🐒", monkey_face: "🐵", monorail: "🚝", moon: "🌔", mortar_board: "🎓", mosque: "🕌", motor_boat: "🛥", motor_scooter: "🛵", motorcycle: "🏍", motorway: "🛣", mount_fuji: "🗻", mountain: "⛰", mountain_biking_man: "🚵", mountain_biking_woman: "🚵‍♀️", mountain_cableway: "🚠", mountain_railway: "🚞", mountain_snow: "🏔", mouse: "🐭", mouse2: "🐁", movie_camera: "🎥", moyai: "🗿", mrs_claus: "🤶", muscle: "💪", mushroom: "🍄", musical_keyboard: "🎹", musical_note: "🎵", musical_score: "🎼", mute: "🔇", nail_care: "💅", name_badge: "📛", national_park: "🏞", nauseated_face: "🤢", necktie: "👔", negative_squared_cross_mark: "❎", nerd_face: "🤓", neutral_face: "😐", "new": "🆕", new_moon: "🌑", new_moon_with_face: "🌚", newspaper: "📰", newspaper_roll: "🗞", next_track_button: "⏭", ng: "🆖", no_good_man: "🙅‍♂️", no_good_woman: "🙅", night_with_stars: "🌃", no_bell: "🔕", no_bicycles: "🚳", no_entry: "⛔️", no_entry_sign: "🚫", no_mobile_phones: "📵", no_mouth: "😶", no_pedestrians: "🚷", no_smoking: "🚭", "non-potable_water": "🚱", nose: "👃", notebook: "📓", notebook_with_decorative_cover: "📔", notes: "🎶", nut_and_bolt: "🔩", o: "⭕️", o2: "🅾️", ocean: "🌊", octopus: "🐙", oden: "🍢", office: "🏢", oil_drum: "🛢", ok: "🆗", ok_hand: "👌", ok_man: "🙆‍♂️", ok_woman: "🙆", old_key: "🗝", older_man: "👴", older_woman: "👵", om: "🕉", on: "🔛", oncoming_automobile: "🚘", oncoming_bus: "🚍", oncoming_police_car: "🚔", oncoming_taxi: "🚖", open_file_folder: "📂", open_hands: "👐", open_mouth: "😮", open_umbrella: "☂️", ophiuchus: "⛎", orange_book: "📙", orthodox_cross: "☦️", outbox_tray: "📤", owl: "🦉", ox: "🐂", "package": "📦", page_facing_up: "📄", page_with_curl: "📃", pager: "📟", paintbrush: "🖌", palm_tree: "🌴", pancakes: "🥞", panda_face: "🐼", paperclip: "📎", paperclips: "🖇", parasol_on_ground: "⛱", parking: "🅿️", part_alternation_mark: "〽️", partly_sunny: "⛅️", passenger_ship: "🛳", passport_control: "🛂", pause_button: "⏸", peace_symbol: "☮️", peach: "🍑", peanuts: "🥜", pear: "🍐", pen: "🖊", pencil2: "✏️", penguin: "🐧", pensive: "😔", performing_arts: "🎭", persevere: "😣", person_fencing: "🤺", pouting_woman: "🙎", phone: "☎️", pick: "⛏", pig: "🐷", pig2: "🐖", pig_nose: "🐽", pill: "💊", pineapple: "🍍", ping_pong: "🏓", pisces: "♓️", pizza: "🍕", place_of_worship: "🛐", plate_with_cutlery: "🍽", play_or_pause_button: "⏯", point_down: "👇", point_left: "👈", point_right: "👉", point_up: "☝️", point_up_2: "👆", police_car: "🚓", policewoman: "👮‍♀️", poodle: "🐩", popcorn: "🍿", post_office: "🏣", postal_horn: "📯", postbox: "📮", potable_water: "🚰", potato: "🥔", pouch: "👝", poultry_leg: "🍗", pound: "💷", rage: "😡", pouting_cat: "😾", pouting_man: "🙎‍♂️", pray: "🙏", prayer_beads: "📿", pregnant_woman: "🤰", previous_track_button: "⏮", prince: "🤴", princess: "👸", printer: "🖨", purple_heart: "💜", purse: "👛", pushpin: "📌", put_litter_in_its_place: "🚮", question: "❓", rabbit: "🐰", rabbit2: "🐇", racehorse: "🐎", racing_car: "🏎", radio: "📻", radio_button: "🔘", radioactive: "☢️", railway_car: "🚃", railway_track: "🛤", rainbow: "🌈", rainbow_flag: "🏳️‍🌈", raised_back_of_hand: "🤚", raised_hand_with_fingers_splayed: "🖐", raised_hands: "🙌", raising_hand_woman: "🙋", raising_hand_man: "🙋‍♂️", ram: "🐏", ramen: "🍜", rat: "🐀", record_button: "⏺", recycle: "♻️", red_circle: "🔴", registered: "\xae\ufe0f", relaxed: "☺️", relieved: "😌", reminder_ribbon: "🎗", repeat: "🔁", repeat_one: "🔂", rescue_worker_helmet: "⛑", restroom: "🚻", revolving_hearts: "💞", rewind: "⏪", rhinoceros: "🦏", ribbon: "🎀", rice: "🍚", rice_ball: "🍙", rice_cracker: "🍘", rice_scene: "🎑", right_anger_bubble: "🗯", ring: "💍", robot: "🤖", rocket: "🚀", rofl: "🤣", roll_eyes: "🙄", roller_coaster: "🎢", rooster: "🐓", rose: "🌹", rosette: "🏵", rotating_light: "🚨", round_pushpin: "📍", rowing_man: "🚣", rowing_woman: "🚣‍♀️", rugby_football: "🏉", running_man: "🏃", running_shirt_with_sash: "🎽", running_woman: "🏃‍♀️", sa: "🈂️", sagittarius: "♐️", sake: "🍶", sandal: "👡", santa: "🎅", satellite: "📡", saxophone: "🎷", school: "🏫", school_satchel: "🎒", scissors: "✂️", scorpion: "🦂", scorpius: "♏️", scream: "😱", scream_cat: "🙀", scroll: "📜", seat: "💺", secret: "㊙️", see_no_evil: "🙈", seedling: "🌱", selfie: "🤳", shallow_pan_of_food: "🥘", shamrock: "☘️", shark: "🦈", shaved_ice: "🍧", sheep: "🐑", shell: "🐚", shield: "🛡", shinto_shrine: "⛩", ship: "🚢", shirt: "👕", shopping: "🛍", shopping_cart: "🛒", shower: "🚿", shrimp: "🦐", signal_strength: "📶", six_pointed_star: "🔯", ski: "🎿", skier: "⛷", skull: "💀", skull_and_crossbones: "☠️", sleeping: "😴", sleeping_bed: "🛌", sleepy: "😪", slightly_frowning_face: "🙁", slightly_smiling_face: "🙂", slot_machine: "🎰", small_airplane: "🛩", small_blue_diamond: "🔹", small_orange_diamond: "🔸", small_red_triangle: "🔺", small_red_triangle_down: "🔻", smile: "😄", smile_cat: "😸", smiley: "😃", smiley_cat: "😺", smiling_imp: "😈", smirk: "😏", smirk_cat: "😼", smoking: "🚬", snail: "🐌", snake: "🐍", sneezing_face: "🤧", snowboarder: "🏂", snowflake: "❄️", snowman: "⛄️", snowman_with_snow: "☃️", sob: "😭", soccer: "⚽️", soon: "🔜", sos: "🆘", sound: "🔉", space_invader: "👾", spades: "♠️", spaghetti: "🍝", sparkle: "❇️", sparkler: "🎇", sparkles: "✨", sparkling_heart: "💖", speak_no_evil: "🙊", speaker: "🔈", speaking_head: "🗣", speech_balloon: "💬", speedboat: "🚤", spider: "🕷", spider_web: "🕸", spiral_calendar: "🗓", spiral_notepad: "🗒", spoon: "🥄", squid: "🦑", stadium: "🏟", star: "⭐️", star2: "🌟", star_and_crescent: "☪️", star_of_david: "✡️", stars: "🌠", station: "🚉", statue_of_liberty: "🗽", steam_locomotive: "🚂", stew: "🍲", stop_button: "⏹", stop_sign: "🛑", stopwatch: "⏱", straight_ruler: "📏", strawberry: "🍓", stuck_out_tongue: "😛", stuck_out_tongue_closed_eyes: "😝", stuck_out_tongue_winking_eye: "😜", studio_microphone: "🎙", stuffed_flatbread: "🥙", sun_behind_large_cloud: "🌥", sun_behind_rain_cloud: "🌦", sun_behind_small_cloud: "🌤", sun_with_face: "🌞", sunflower: "🌻", sunglasses: "😎", sunny: "☀️", sunrise: "🌅", sunrise_over_mountains: "🌄", surfing_man: "🏄", surfing_woman: "🏄‍♀️", sushi: "🍣", suspension_railway: "🚟", sweat: "😓", sweat_drops: "💦", sweat_smile: "😅", sweet_potato: "🍠", swimming_man: "🏊", swimming_woman: "🏊‍♀️", symbols: "🔣", synagogue: "🕍", syringe: "💉", taco: "🌮", tada: "🎉", tanabata_tree: "🎋", taurus: "♉️", taxi: "🚕", tea: "🍵", telephone_receiver: "📞", telescope: "🔭", tennis: "🎾", tent: "⛺️", thermometer: "🌡", thinking: "🤔", thought_balloon: "💭", ticket: "🎫", tickets: "🎟", tiger: "🐯", tiger2: "🐅", timer_clock: "⏲", tipping_hand_man: "💁‍♂️", tired_face: "😫", tm: "™️", toilet: "🚽", tokyo_tower: "🗼", tomato: "🍅", tongue: "👅", top: "🔝", tophat: "🎩", tornado: "🌪", trackball: "🖲", tractor: "🚜", traffic_light: "🚥", train: "🚋", train2: "🚆", tram: "🚊", triangular_flag_on_post: "🚩", triangular_ruler: "📐", trident: "🔱", triumph: "😤", trolleybus: "🚎", trophy: "🏆", tropical_drink: "🍹", tropical_fish: "🐠", truck: "🚚", trumpet: "🎺", tulip: "🌷", tumbler_glass: "🥃", turkey: "🦃", turtle: "🐢", tv: "📺", twisted_rightwards_arrows: "🔀", two_hearts: "💕", two_men_holding_hands: "👬", two_women_holding_hands: "👭", u5272: "🈹", u5408: "🈴", u55b6: "🈺", u6307: "🈯️", u6708: "🈷️", u6709: "🈶", u6e80: "🈵", u7121: "🈚️", u7533: "🈸", u7981: "🈲", u7a7a: "🈳", umbrella: "☔️", unamused: "😒", underage: "🔞", unicorn: "🦄", unlock: "🔓", up: "🆙", upside_down_face: "🙃", v: "✌️", vertical_traffic_light: "🚦", vhs: "📼", vibration_mode: "📳", video_camera: "📹", video_game: "🎮", violin: "🎻", virgo: "♍️", volcano: "🌋", volleyball: "🏐", vs: "🆚", vulcan_salute: "🖖", walking_man: "🚶", walking_woman: "🚶‍♀️", waning_crescent_moon: "🌘", waning_gibbous_moon: "🌖", warning: "⚠️", wastebasket: "🗑", watch: "⌚️", water_buffalo: "🐃", watermelon: "🍉", wave: "👋", wavy_dash: "〰️", waxing_crescent_moon: "🌒", wc: "🚾", weary: "😩", wedding: "💒", weight_lifting_man: "🏋️", weight_lifting_woman: "🏋️‍♀️", whale: "🐳", whale2: "🐋", wheel_of_dharma: "☸️", wheelchair: "♿️", white_check_mark: "✅", white_circle: "⚪️", white_flag: "🏳️", white_flower: "💮", white_large_square: "⬜️", white_medium_small_square: "◽️", white_medium_square: "◻️", white_small_square: "▫️", white_square_button: "🔳", wilted_flower: "🥀", wind_chime: "🎐", wind_face: "🌬", wine_glass: "🍷", wink: "😉", wolf: "🐺", woman: "👩", woman_artist: "👩‍🎨", woman_astronaut: "👩‍🚀", woman_cartwheeling: "🤸‍♀️", woman_cook: "👩‍🍳", woman_facepalming: "🤦‍♀️", woman_factory_worker: "👩‍🏭", woman_farmer: "👩‍🌾", woman_firefighter: "👩‍🚒", woman_health_worker: "👩‍⚕️", woman_judge: "👩‍⚖️", woman_juggling: "🤹‍♀️", woman_mechanic: "👩‍🔧", woman_office_worker: "👩‍💼", woman_pilot: "👩‍✈️", woman_playing_handball: "🤾‍♀️", woman_playing_water_polo: "🤽‍♀️", woman_scientist: "👩‍🔬", woman_shrugging: "🤷‍♀️", woman_singer: "👩‍🎤", woman_student: "👩‍🎓", woman_teacher: "👩‍🏫", woman_technologist: "👩‍💻", woman_with_turban: "👳‍♀️", womans_clothes: "👚", womans_hat: "👒", women_wrestling: "🤼‍♀️", womens: "🚺", world_map: "🗺", worried: "😟", wrench: "🔧", writing_hand: "✍️", x: "❌", yellow_heart: "💛", yen: "💴", yin_yang: "☯️", yum: "😋", zap: "⚡️", zipper_mouth_face: "🤐", zzz: "💤", octocat: ':octocat:', showdown: "S" }, L.Converter = function (n) { var a = {}, i = [], s = [], l = {}, r = A, o = { parsed: {}, raw: "", format: "" }; function c(e, t) { if (t = t || null, L.helper.isString(e)) { if (t = e = L.helper.stdExtName(e), L.extensions[e]) return void function o(e, t) { "function" == typeof e && (e = e(new L.Converter)); L.helper.isArray(e) || (e = [e]); var n = S(e, t); if (!n.valid) throw Error(n.error); for (var r = 0; r < e.length; ++r) switch (e[r].type) { case "lang": i.push(e[r]); break; case "output": s.push(e[r]); break; default: throw Error("Extension loader error: Type unrecognized!!!") } }(L.extensions[e], e); if (L.helper.isUndefined(_[e])) throw Error('Extension "' + e + '" could not be loaded. It was either not found or is not a valid extension.'); e = _[e] } "function" == typeof e && (e = e()), L.helper.isArray(e) || (e = [e]); var n = S(e, t); if (!n.valid) throw Error(n.error); for (var r = 0; r < e.length; ++r) { switch (e[r].type) { case "lang": i.push(e[r]); break; case "output": s.push(e[r]) } if (e[r].hasOwnProperty("listeners")) for (var a in e[r].listeners) e[r].listeners.hasOwnProperty(a) && d(a, e[r].listeners[a]) } } function d(e, t) { if (!L.helper.isString(e)) throw Error("Invalid argument in converter.listen() method: name must be a string, but " + St(e) + " given"); if ("function" != typeof t) throw Error("Invalid argument in converter.listen() method: callback must be a function, but " + St(t) + " given"); l.hasOwnProperty(e) || (l[e] = []), l[e].push(t) }! function f() { for (var e in n = n || {}, w) w.hasOwnProperty(e) && (a[e] = w[e]); { if ("object" !== St(n)) throw Error("Converter expects the passed parameter to be an object, but " + St(n) + " was passed instead."); for (var t in n) n.hasOwnProperty(t) && (a[t] = n[t]) } a.extensions && L.helper.forEach(a.extensions, c) }(), this._dispatch = function (e, t, n, r) { if (l.hasOwnProperty(e)) for (var a = 0; a < l[e].length; ++a) { var o = l[e][a](e, t, this, n, r); o && void 0 !== o && (t = o) } return t }, this.listen = function (e, t) { return d(e, t), this }, this.makeHtml = function (t) { if (!t) return t; var n = { gHtmlBlocks: [], gHtmlMdBlocks: [], gHtmlSpans: [], gUrls: {}, gTitles: {}, gDimensions: {}, gListLevel: 0, hashLinkCounts: {}, langExtensions: i, outputModifiers: s, converter: this, ghCodeBlocks: [], metadata: { parsed: {}, raw: "", format: "" } }; return t = (t = (t = (t = (t = t.replace(/\xa8/g, "\xa8T")).replace(/\$/g, "\xa8D")).replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/\u00A0/g, " "), a.smartIndentationFix && (t = function r(e) { var t = e.match(/^\s*/)[0].length, n = new RegExp("^\\s{0," + t + "}", "gm"); return e.replace(n, "") }(t)), t = "\n\n" + t + "\n\n", t = (t = L.subParser("detab")(t, a, n)).replace(/^[ \t]+$/gm, ""), L.helper.forEach(i, function (e) { t = L.subParser("runExtension")(e, t, a, n) }), t = L.subParser("metadata")(t, a, n), t = L.subParser("hashPreCodeTags")(t, a, n), t = L.subParser("githubCodeBlocks")(t, a, n), t = L.subParser("hashHTMLBlocks")(t, a, n), t = L.subParser("hashCodeTags")(t, a, n), t = L.subParser("stripLinkDefinitions")(t, a, n), t = L.subParser("blockGamut")(t, a, n), t = L.subParser("unhashHTMLSpans")(t, a, n), t = (t = (t = L.subParser("unescapeSpecialChars")(t, a, n)).replace(/\xa8D/g, "$$")).replace(/\xa8T/g, "\xa8"), t = L.subParser("completeHTMLDocument")(t, a, n), L.helper.forEach(s, function (e) { t = L.subParser("runExtension")(e, t, a, n) }), o = n.metadata, t }, this.makeMarkdown = this.makeMd = function (e, t) { if (e = (e = (e = e.replace(/\r\n/g, "\n")).replace(/\r/g, "\n")).replace(/>[ \t]+\xa8NBSP;<"), !t) { if (!window || !window.document) throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM"); t = window.document } var n = t.createElement("div"); n.innerHTML = e; var r = { preList: function c(e) { for (var t = e.querySelectorAll("pre"), n = [], r = 0; r < t.length; ++r) if (1 === t[r].childElementCount && "code" === t[r].firstChild.tagName.toLowerCase()) { var a = t[r].firstChild.innerHTML.trim(), o = t[r].firstChild.getAttribute("data-language") || ""; if ("" === o) for (var i = t[r].firstChild.className.split(" "), s = 0; s < i.length; ++s) { var l = i[s].match(/^language-(.+)$/); if (null !== l) { o = l[1]; break } } a = L.helper.unescapeHTMLEntities(a), n.push(a), t[r].outerHTML = '' } else n.push(t[r].innerHTML), t[r].innerHTML = "", t[r].setAttribute("prenum", r.toString()); return n }(n) }; ! function s(e) { for (var t = 0; t < e.childNodes.length; ++t) { var n = e.childNodes[t]; 3 === n.nodeType ? /\S/.test(n.nodeValue) ? (n.nodeValue = n.nodeValue.split("\n").join(" "), n.nodeValue = n.nodeValue.replace(/(\s)+/g, "$1")) : (e.removeChild(n), --t) : 1 === n.nodeType && s(n) } }(n); for (var a = n.childNodes, o = "", i = 0; i < a.length; i++) o += L.subParser("makeMarkdown.node")(a[i], r); return o }, this.setOption = function (e, t) { a[e] = t }, this.getOption = function (e) { return a[e] }, this.getOptions = function () { return a }, this.addExtension = function (e, t) { c(e, t = t || null) }, this.useExtension = function (e) { c(e) }, this.setFlavor = function (e) { if (!T.hasOwnProperty(e)) throw Error(e + " flavor was not found"); var t = T[e]; for (var n in r = e, t) t.hasOwnProperty(n) && (a[n] = t[n]) }, this.getFlavor = function () { return r }, this.removeExtension = function (e) { L.helper.isArray(e) || (e = [e]); for (var t = 0; t < e.length; ++t) { for (var n = e[t], r = 0; r < i.length; ++r) i[r] === n && i[r].splice(r, 1); for (; 0 < s.length; ++r) s[0] === n && s[0].splice(r, 1) } }, this.getAllExtensions = function () { return { language: i, output: s } }, this.getMetadata = function (e) { return e ? o.raw : o.parsed }, this.getMetadataFormat = function () { return o.format }, this._setMetadataPair = function (e, t) { o.parsed[e] = t }, this._setMetadataFormat = function (e) { o.format = e }, this._setMetadataRaw = function (e) { o.raw = e } }, L.subParser("anchors", function (e, l, c) { var d = function d(e, t, n, r, a, o, i) { if (L.helper.isUndefined(i) && (i = ""), n = n.toLowerCase(), -1 < e.search(/\(? ?(['"].*['"])?\)$/m)) r = ""; else if (!r) { if (n || (n = t.toLowerCase().replace(/ ?\n/g, " ")), r = "#" + n, L.helper.isUndefined(c.gUrls[n])) return e; r = c.gUrls[n], L.helper.isUndefined(c.gTitles[n]) || (i = c.gTitles[n]) } var s = '" }; return e = (e = (e = (e = (e = c.converter._dispatch("anchors.before", e, l, c)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g, d)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, d)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]??(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g, d)).replace(/\[([^\[\]]+)]()()()()()/g, d), l.ghMentions && (e = e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim, function (e, t, n, r, a) { if ("\\" === n) return t + r; if (!L.helper.isString(l.ghMentionsLink)) throw new Error("ghMentionsLink option must be a string"); var o = l.ghMentionsLink.replace(/\{u}/g, a), i = ""; return l.openLinksInNewWindow && (i = ' rel="noopener noreferrer" target="\xa8E95Eblank"'), t + '" + r + "" })), e = c.converter._dispatch("anchors.after", e, l, c) }); var R = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi, M = /([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi, O = /()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi, N = /(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim, I = /<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi, D = function D(p) { return function (e, t, n, r, a, o, i) { var s = n = n.replace(L.helper.regexes.asteriskDashAndColon, L.helper.escapeCharactersCallback), l = "", c = "", d = t || "", f = i || ""; return /^www\./i.test(n) && (n = n.replace(/^www\./i, "http://www.")), p.excludeTrailingPunctuationFromURLs && o && (l = o), p.openLinksInNewWindow && (c = ' rel="noopener noreferrer" target="\xa8E95Eblank"'), d + '" + s + "" + l + f } }, B = function B(a, o) { return function (e, t, n) { var r = "mailto:"; return t = t || "", n = L.subParser("unescapeSpecialChars")(n, a, o), a.encodeEmails ? (r = L.helper.encodeEmailAddress(r + n), n = L.helper.encodeEmailAddress(n)) : r += n, t + '' + n + "" } }; return L.subParser("autoLinks", function (e, t, n) { return e = (e = (e = n.converter._dispatch("autoLinks.before", e, t, n)).replace(O, D(t))).replace(I, B(t, n)), e = n.converter._dispatch("autoLinks.after", e, t, n) }), L.subParser("simplifiedAutoLinks", function (e, t, n) { return t.simplifiedAutoLink ? (e = n.converter._dispatch("simplifiedAutoLinks.before", e, t, n), e = (e = t.excludeTrailingPunctuationFromURLs ? e.replace(M, D(t)) : e.replace(R, D(t))).replace(N, B(t, n)), e = n.converter._dispatch("simplifiedAutoLinks.after", e, t, n)) : e }), L.subParser("blockGamut", function (e, t, n) { return e = n.converter._dispatch("blockGamut.before", e, t, n), e = L.subParser("blockQuotes")(e, t, n), e = L.subParser("headers")(e, t, n), e = L.subParser("horizontalRule")(e, t, n), e = L.subParser("lists")(e, t, n), e = L.subParser("codeBlocks")(e, t, n), e = L.subParser("tables")(e, t, n), e = L.subParser("hashHTMLBlocks")(e, t, n), e = L.subParser("paragraphs")(e, t, n), e = n.converter._dispatch("blockGamut.after", e, t, n) }), L.subParser("blockQuotes", function (e, t, n) { e = n.converter._dispatch("blockQuotes.before", e, t, n), e += "\n\n"; var r = /(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm; return t.splitAdjacentBlockquotes && (r = /^ {0,3}>[\s\S]*?(?:\n\n)/gm), e = e.replace(r, function (e) { return e = (e = (e = e.replace(/^[ \t]*>[ \t]?/gm, "")).replace(/\xa80/g, "")).replace(/^[ \t]+$/gm, ""), e = L.subParser("githubCodeBlocks")(e, t, n), e = (e = (e = L.subParser("blockGamut")(e, t, n)).replace(/(^|\n)/g, "$1 ")).replace(/(\s*
    [^\r]+?<\/pre>)/gm, function (e, t)
    			{
    				var n = t;
    				return n = (n = n.replace(/^ {2}/gm, "\xa80")).replace(/\xa80/g, "")
    			}), L.subParser("hashBlock")("
    \n" + e + "\n
    ", t, n) }), e = n.converter._dispatch("blockQuotes.after", e, t, n) }), L.subParser("codeBlocks", function (e, i, s) { e = s.converter._dispatch("codeBlocks.before", e, i, s); return e = (e = (e += "\xa80").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=\xa80))/g, function (e, t, n) { var r = t, a = n, o = "\n"; return r = L.subParser("outdent")(r, i, s), r = L.subParser("encodeCode")(r, i, s), r = (r = (r = L.subParser("detab")(r, i, s)).replace(/^\n+/g, "")).replace(/\n+$/g, ""), i.omitExtraWLInCodeBlocks && (o = ""), r = "
    " + r + o + "
    ", L.subParser("hashBlock")(r, i, s) + a })).replace(/\xa80/, ""), e = s.converter._dispatch("codeBlocks.after", e, i, s) }), L.subParser("codeSpans", function (e, o, i) { return void 0 === (e = i.converter._dispatch("codeSpans.before", e, o, i)) && (e = ""), e = e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm, function (e, t, n, r) { var a = r; return a = (a = a.replace(/^([ \t]*)/g, "")).replace(/[ \t]*$/g, ""), a = t + "" + (a = L.subParser("encodeCode")(a, o, i)) + "", a = L.subParser("hashHTMLSpans")(a, o, i) }), e = i.converter._dispatch("codeSpans.after", e, o, i) }), L.subParser("completeHTMLDocument", function (e, t, n) { if (!t.completeHTMLDocument) return e; e = n.converter._dispatch("completeHTMLDocument.before", e, t, n); var r = "html", a = "\n", o = "", i = '\n', s = "", l = ""; for (var c in "undefined" != typeof n.metadata.parsed.doctype && (a = "\n", "html" !== (r = n.metadata.parsed.doctype.toString().toLowerCase()) && "html5" !== r || (i = '')), n.metadata.parsed) if (n.metadata.parsed.hasOwnProperty(c)) switch (c.toLowerCase()) { case "doctype": break; case "title": o = "" + n.metadata.parsed.title + "\n"; break; case "charset": i = "html" === r || "html5" === r ? '\n' : '\n'; break; case "language": case "lang": s = ' lang="' + n.metadata.parsed[c] + '"', l += '\n'; break; default: l += '\n' } return e = a + "\n\n" + o + i + l + "\n\n" + e.trim() + "\n\n", e = n.converter._dispatch("completeHTMLDocument.after", e, t, n) }), L.subParser("detab", function (e, t, n) { return e = (e = (e = (e = (e = (e = n.converter._dispatch("detab.before", e, t, n)).replace(/\t(?=\t)/g, " ")).replace(/\t/g, "\xa8A\xa8B")).replace(/\xa8B(.+?)\xa8A/g, function (e, t) { for (var n = t, r = 4 - n.length % 4, a = 0; a < r; a++) n += " "; return n })).replace(/\xa8A/g, " ")).replace(/\xa8B/g, ""), e = n.converter._dispatch("detab.after", e, t, n) }), L.subParser("ellipsis", function (e, t, n) { return e = (e = n.converter._dispatch("ellipsis.before", e, t, n)).replace(/\.\.\./g, "…"), e = n.converter._dispatch("ellipsis.after", e, t, n) }), L.subParser("emoji", function (e, t, n) { if (!t.emoji) return e; return e = (e = n.converter._dispatch("emoji.before", e, t, n)).replace(/:([\S]+?):/g, function (e, t) { return L.helper.emojis.hasOwnProperty(t) ? L.helper.emojis[t] : e }), e = n.converter._dispatch("emoji.after", e, t, n) }), L.subParser("encodeAmpsAndAngles", function (e, t, n) { return e = (e = (e = (e = (e = n.converter._dispatch("encodeAmpsAndAngles.before", e, t, n)).replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g, "&")).replace(/<(?![a-z\/?$!])/gi, "<")).replace(//g, ">"), e = n.converter._dispatch("encodeAmpsAndAngles.after", e, t, n) }), L.subParser("encodeBackslashEscapes", function (e, t, n) { return e = (e = (e = n.converter._dispatch("encodeBackslashEscapes.before", e, t, n)).replace(/\\(\\)/g, L.helper.escapeCharactersCallback)).replace(/\\([`*_{}\[\]()>#+.!~=|-])/g, L.helper.escapeCharactersCallback), e = n.converter._dispatch("encodeBackslashEscapes.after", e, t, n) }), L.subParser("encodeCode", function (e, t, n) { return e = (e = n.converter._dispatch("encodeCode.before", e, t, n)).replace(/&/g, "&").replace(//g, ">").replace(/([*_{}\[\]\\=~-])/g, L.helper.escapeCharactersCallback), e = n.converter._dispatch("encodeCode.after", e, t, n) }), L.subParser("escapeSpecialCharsWithinTagAttributes", function (e, t, n) { return e = (e = (e = n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before", e, t, n)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi, function (e) { return e.replace(/(.)<\/?code>(?=.)/g, "$1`").replace(/([\\`*_~=|])/g, L.helper.escapeCharactersCallback) })).replace(/-]|-[^>])(?:[^-]|-[^-])*)--)>/gi, function (e) { return e.replace(/([\\`*_~=|])/g, L.helper.escapeCharactersCallback) }), e = n.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after", e, t, n) }), L.subParser("githubCodeBlocks", function (e, o, i) { return o.ghCodeBlocks ? (e = i.converter._dispatch("githubCodeBlocks.before", e, o, i), e = (e = (e += "\xa80").replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g, function (e, t, n, r) { var a = o.omitExtraWLInCodeBlocks ? "" : "\n"; return r = L.subParser("encodeCode")(r, o, i), r = "
    " + (r = (r = (r = L.subParser("detab")(r, o, i)).replace(/^\n+/g, "")).replace(/\n+$/g, "")) + a + "
    ", r = L.subParser("hashBlock")(r, o, i), "\n\n\xa8G" + (i.ghCodeBlocks.push( { text: e, codeblock: r }) - 1) + "G\n\n" })).replace(/\xa80/, ""), i.converter._dispatch("githubCodeBlocks.after", e, o, i)) : e }), L.subParser("hashBlock", function (e, t, n) { return e = (e = n.converter._dispatch("hashBlock.before", e, t, n)).replace(/(^\n+|\n+$)/g, ""), e = "\n\n\xa8K" + (n.gHtmlBlocks.push(e) - 1) + "K\n\n", e = n.converter._dispatch("hashBlock.after", e, t, n) }), L.subParser("hashCodeTags", function (e, o, i) { e = i.converter._dispatch("hashCodeTags.before", e, o, i); var s = function s(e, t, n, r) { var a = n + L.subParser("encodeCode")(t, o, i) + r; return "\xa8C" + (i.gHtmlSpans.push(a) - 1) + "C" }; return e = L.helper.replaceRecursiveRegExp(e, s, "]*>", "", "gim"), e = i.converter._dispatch("hashCodeTags.after", e, o, i) }), L.subParser("hashElement", function (e, t, r) { return function (e, t) { var n = t; return n = (n = (n = n.replace(/\n\n/g, "\n")).replace(/^\n/, "")).replace(/\n+$/g, ""), n = "\n\n\xa8K" + (r.gHtmlBlocks.push(n) - 1) + "K\n\n" } }), L.subParser("hashHTMLBlocks", function (e, t, o) { e = o.converter._dispatch("hashHTMLBlocks.before", e, t, o); var n = ["pre", "div", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "table", "dl", "ol", "ul", "script", "noscript", "form", "fieldset", "iframe", "math", "style", "section", "header", "footer", "nav", "article", "aside", "address", "audio", "canvas", "figure", "hgroup", "output", "video", "p"], i = function i(e, t, n, r) { var a = e; return -1 !== n.search(/\bmarkdown\b/) && (a = n + o.converter.makeHtml(t) + r), "\n\n\xa8K" + (o.gHtmlBlocks.push(a) - 1) + "K\n\n" }; t.backslashEscapesHTMLTags && (e = e.replace(/\\<(\/?[^>]+?)>/g, function (e, t) { return "<" + t + ">" })); for (var r = 0; r < n.length; ++r) for (var a, s = new RegExp("^ {0,3}(<" + n[r] + "\\b[^>]*>)", "im"), l = "<" + n[r] + "\\b[^>]*>", c = ""; - 1 !== (a = L.helper.regexIndexOf(e, s));) { var d = L.helper.splitAtIndex(e, a), f = L.helper.replaceRecursiveRegExp(d[1], i, l, c, "im"); if (f === d[1]) break; e = d[0].concat(f) } return e = e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g, L.subParser("hashElement")(e, t, o)), e = (e = L.helper.replaceRecursiveRegExp(e, function (e) { return "\n\n\xa8K" + (o.gHtmlBlocks.push(e) - 1) + "K\n\n" }, "^ {0,3}", "gm")).replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g, L.subParser("hashElement")(e, t, o)), e = o.converter._dispatch("hashHTMLBlocks.after", e, t, o) }), L.subParser("hashHTMLSpans", function (e, t, n) { function r(e) { return "\xa8C" + (n.gHtmlSpans.push(e) - 1) + "C" } return e = (e = (e = (e = (e = n.converter._dispatch("hashHTMLSpans.before", e, t, n)).replace(/<[^>]+?\/>/gi, function (e) { return r(e) })).replace(/<([^>]+?)>[\s\S]*?<\/\1>/g, function (e) { return r(e) })).replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g, function (e) { return r(e) })).replace(/<[^>]+?>/gi, function (e) { return r(e) }), e = n.converter._dispatch("hashHTMLSpans.after", e, t, n) }), L.subParser("unhashHTMLSpans", function (e, t, n) { e = n.converter._dispatch("unhashHTMLSpans.before", e, t, n); for (var r = 0; r < n.gHtmlSpans.length; ++r) { for (var a = n.gHtmlSpans[r], o = 0; /\xa8C(\d+)C/.test(a);) { var i = RegExp.$1; if (a = a.replace("\xa8C" + i + "C", n.gHtmlSpans[i]), 10 === o) break; ++o } e = e.replace("\xa8C" + r + "C", a) } return e = n.converter._dispatch("unhashHTMLSpans.after", e, t, n) }), L.subParser("hashPreCodeTags", function (e, o, i) { e = i.converter._dispatch("hashPreCodeTags.before", e, o, i); var s = function s(e, t, n, r) { var a = n + L.subParser("encodeCode")(t, o, i) + r; return "\n\n\xa8G" + (i.ghCodeBlocks.push( { text: e, codeblock: a }) - 1) + "G\n\n" }; return e = L.helper.replaceRecursiveRegExp(e, s, "^ {0,3}]*>\\s*]*>", "^ {0,3}\\s*
    ", "gim"), e = i.converter._dispatch("hashPreCodeTags.after", e, o, i) }), L.subParser("headers", function (e, l, c) { e = c.converter._dispatch("headers.before", e, l, c); var d = isNaN(parseInt(l.headerLevelStart)) ? 1 : parseInt(l.headerLevelStart), t = l.smoothLivePreview ? /^(.+)[ \t]*\n={2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n=+[ \t]*\n+/gm, n = l.smoothLivePreview ? /^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm : /^(.+)[ \t]*\n-+[ \t]*\n+/gm; e = (e = e.replace(t, function (e, t) { var n = L.subParser("spanGamut")(t, l, c), r = l.noHeaderId ? "" : ' id="' + f(t) + '"', a = "" + n + ""; return L.subParser("hashBlock")(a, l, c) })).replace(n, function (e, t) { var n = L.subParser("spanGamut")(t, l, c), r = l.noHeaderId ? "" : ' id="' + f(t) + '"', a = d + 1, o = "" + n + ""; return L.subParser("hashBlock")(o, l, c) }); var r = l.requireSpaceBeforeHeadingText ? /^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm : /^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm; function f(e) { var t, n; if (l.customizedHeaderId) { var r = e.match(/\{([^{]+?)}\s*$/); r && r[1] && (e = r[1]) } return t = e, n = L.helper.isString(l.prefixHeaderId) ? l.prefixHeaderId : !0 === l.prefixHeaderId ? "section-" : "", l.rawPrefixHeaderId || (t = n + t), t = l.ghCompatibleHeaderId ? t.replace(/ /g, "-").replace(/&/g, "").replace(/\xa8T/g, "").replace(/\xa8D/g, "").replace(/[&+$,\/:;=?@"#{}|^\xa8~\[\]`\\*)(%.!'<>]/g, "").toLowerCase() : l.rawHeaderId ? t.replace(/ /g, "-").replace(/&/g, "&").replace(/\xa8T/g, "\xa8").replace(/\xa8D/g, "$").replace(/["']/g, "-").toLowerCase() : t.replace(/[^\w]/g, "").toLowerCase(), l.rawPrefixHeaderId && (t = n + t), c.hashLinkCounts[t] ? t = t + "-" + c.hashLinkCounts[t]++ : c.hashLinkCounts[t] = 1, t } return e = e.replace(r, function (e, t, n) { var r = n; l.customizedHeaderId && (r = n.replace(/\s?\{([^{]+?)}\s*$/, "")); var a = L.subParser("spanGamut")(r, l, c), o = l.noHeaderId ? "" : ' id="' + f(n) + '"', i = d - 1 + t.length, s = "" + a + ""; return L.subParser("hashBlock")(s, l, c) }), e = c.converter._dispatch("headers.after", e, l, c) }), L.subParser("horizontalRule", function (e, t, n) { e = n.converter._dispatch("horizontalRule.before", e, t, n); var r = L.subParser("hashBlock")("
    ", t, n); return e = (e = (e = e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, r)).replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm, r)).replace(/^ {0,2}( ?_){3,}[ \t]*$/gm, r), e = n.converter._dispatch("horizontalRule.after", e, t, n) }), L.subParser("images", function (e, t, p) { function l(e, t, n, r, a, o, i, s) { var l = p.gUrls, c = p.gTitles, d = p.gDimensions; if (n = n.toLowerCase(), s || (s = ""), -1 < e.search(/\(? ?(['"].*['"])?\)$/m)) r = ""; else if ("" === r || null === r) { if ("" !== n && null !== n || (n = t.toLowerCase().replace(/ ?\n/g, " ")), r = "#" + n, L.helper.isUndefined(l[n])) return e; r = l[n], L.helper.isUndefined(c[n]) || (s = c[n]), L.helper.isUndefined(d[n]) || (a = d[n].width, o = d[n].height) } t = t.replace(/"/g, """).replace(L.helper.regexes.asteriskDashAndColon, L.helper.escapeCharactersCallback); var f = '' + t + '?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, function c(e, t, n, r, a, o, i, s) { return l(e, t, n, r = r.replace(/\s/g, ""), a, o, 0, s) })).replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g, l)).replace(/!\[([^\]]*?)][ \t]*()\([ \t]??(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g, l)).replace(/!\[([^\[\]]+)]()()()()()/g, l), e = p.converter._dispatch("images.after", e, t, p) }), L.subParser("italicsAndBold", function (e, t, n) { function r(e, t, n) { return t + e + n } return e = n.converter._dispatch("italicsAndBold.before", e, t, n), e = t.literalMidWordUnderscores ? (e = (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, t) { return r(t, "", "") })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, t) { return r(t, "", "") })).replace(/\b_(\S[\s\S]*?)_\b/g, function (e, t) { return r(t, "", "") }) : (e = (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e })).replace(/__(\S[\s\S]*?)__/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e })).replace(/_([^\s_][\s\S]*?)_/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e }), e = t.literalMidWordAsterisks ? (e = (e = e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g, function (e, t, n) { return r(n, t + "", "") })).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g, function (e, t, n) { return r(n, t + "", "") })).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g, function (e, t, n) { return r(n, t + "", "") }) : (e = (e = e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e })).replace(/\*\*(\S[\s\S]*?)\*\*/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e })).replace(/\*([^\s*][\s\S]*?)\*/g, function (e, t) { return /\S$/.test(t) ? r(t, "", "") : e }), e = n.converter._dispatch("italicsAndBold.after", e, t, n) }), L.subParser("lists", function (e, p, d) { function u(e, t) { d.gListLevel++, e = e.replace(/\n{2,}$/, "\n"); var n = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(\xa80| {0,3}([*+-]|\d+[.])[ \t]+))/gm, c = /\n[ \t]*\n(?!\xa80)/.test(e += "\xa80"); return p.disableForced4SpacesIndentedSublists && (n = /(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(\xa80|\2([*+-]|\d+[.])[ \t]+))/gm), e = (e = e.replace(n, function (e, t, n, r, a, o, i) { i = i && "" !== i.trim(); var s = L.subParser("outdent")(a, p, d), l = ""; return o && p.tasklists && (l = ' class="task-list-item" style="list-style-type: none;"', s = s.replace(/^[ \t]*\[(x|X| )?]/m, function () { var e = '" + (s = (s = t || -1 < s.search(/\n{2,}/) ? (s = L.subParser("githubCodeBlocks")(s, p, d), L.subParser("blockGamut")(s, p, d)) : (s = (s = L.subParser("lists")(s, p, d)).replace(/\n$/, ""), s = (s = L.subParser("hashHTMLBlocks")(s, p, d)).replace(/\n\n+/g, "\n\n"), c ? L.subParser("paragraphs")(s, p, d) : L.subParser("spanGamut")(s, p, d))).replace("\xa8A", "")) + "\n" })).replace(/\xa80/g, ""), d.gListLevel--, t && (e = e.replace(/\s+$/, "")), e } function h(e, t) { if ("ol" === t) { var n = e.match(/^ *(\d+)\./); if (n && "1" !== n[1]) return ' start="' + n[1] + '"' } return "" } function a(r, a, o) { var i = p.disableForced4SpacesIndentedSublists ? /^ ?\d+\.[ \t]/gm : /^ {0,3}\d+\.[ \t]/gm, s = p.disableForced4SpacesIndentedSublists ? /^ ?[*+-][ \t]/gm : /^ {0,3}[*+-][ \t]/gm, l = "ul" === a ? i : s, c = "", d = "ul" === a ? " style='list-style: disc !important;padding: 0px 0px 0px 40px !important;'" : " style='list-style: decimal !important;padding: 0px 0px 0px 40px !important;'"; if (-1 !== r.search(l)) ! function f(e) { var t = e.search(l), n = h(r, a); - 1 !== t ? (c += "\n\n<" + a + d + n + ">\n" + u(e.slice(0, t), !!o) + "\n", l = "ul" === (a = "ul" === a ? "ol" : "ul") ? i : s, f(e.slice(t))) : c += "\n\n<" + a + d + n + ">\n" + u(e, !!o) + "\n" }(r); else { var e = h(r, a); c = "\n\n<" + a + d + e + ">\n" + u(r, !!o) + "\n" } return c } return e = d.converter._dispatch("lists.before", e, p, d), e += "\xa80", e = (e = d.gListLevel ? e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(\xa80|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (e, t, n) { return a(t, -1 < n.search(/[*+-]/g) ? "ul" : "ol", !0) }) : e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(\xa80|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm, function (e, t, n, r) { return a(n, -1 < r.search(/[*+-]/g) ? "ul" : "ol", !1) })).replace(/\xa80/, ""), e = d.converter._dispatch("lists.after", e, p, d) }), L.subParser("metadata", function (e, t, r) { if (!t.metadata) return e; function a(e) { (e = (e = (r.metadata.raw = e).replace(/&/g, "&").replace(/"/g, """)).replace(/\n {4}/g, " ")).replace(/^([\S ]+): +([\s\S]+?)$/gm, function (e, t, n) { return r.metadata.parsed[t] = n, "" }) } return e = (e = (e = (e = r.converter._dispatch("metadata.before", e, t, r)).replace(/^\s*\xab\xab\xab+(\S*?)\n([\s\S]+?)\n\xbb\xbb\xbb+\n/, function (e, t, n) { return a(n), "\xa8M" })).replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/, function (e, t, n) { return t && (r.metadata.format = t), a(n), "\xa8M" })).replace(/\xa8M/g, ""), e = r.converter._dispatch("metadata.after", e, t, r) }), L.subParser("outdent", function (e, t, n) { return e = (e = (e = n.converter._dispatch("outdent.before", e, t, n)).replace(/^(\t|[ ]{1,4})/gm, "\xa80")).replace(/\xa80/g, ""), e = n.converter._dispatch("outdent.after", e, t, n) }), L.subParser("paragraphs", function (e, t, n) { for (var r = (e = (e = (e = n.converter._dispatch("paragraphs.before", e, t, n)).replace(/^\n+/g, "")).replace(/\n+$/g, "")).split(/\n{2,}/g), a = [], o = r.length, i = 0; i < o; i++) { var s = r[i]; 0 <= s.search(/\xa8(K|G)(\d+)\1/g) ? a.push(s) : 0 <= s.search(/\S/) && (s = (s = L.subParser("spanGamut")(s, t, n)).replace(/^([ \t]*)/g, "

    "), s += "

    ", a.push(s)) } for (o = a.length, i = 0; i < o; i++) { for (var l = "", c = a[i], d = !1; /\xa8(K|G)(\d+)\1/.test(c);) { var f = RegExp.$1, p = RegExp.$2; l = (l = "K" === f ? n.gHtmlBlocks[p] : d ? L.subParser("encodeCode")(n.ghCodeBlocks[p].text, t, n) : n.ghCodeBlocks[p].codeblock).replace(/\$/g, "$$$$"), c = c.replace(/(\n\n)?\xa8(K|G)\d+\2(\n\n)?/, l), /^]*>\s*]*>/.test(c) && (d = !0) } a[i] = c } return e = (e = (e = a.join("\n")).replace(/^\n+/g, "")).replace(/\n+$/g, ""), n.converter._dispatch("paragraphs.after", e, t, n) }), L.subParser("runExtension", function (e, t, n, r) { if (e.filter) t = e.filter(t, r.converter, n); else if (e.regex) { var a = e.regex; a instanceof RegExp || (a = new RegExp(a, "g")), t = t.replace(a, e.replace) } return t }), L.subParser("spanGamut", function (e, t, n) { return e = n.converter._dispatch("spanGamut.before", e, t, n), e = L.subParser("codeSpans")(e, t, n), e = L.subParser("escapeSpecialCharsWithinTagAttributes")(e, t, n), e = L.subParser("encodeBackslashEscapes")(e, t, n), e = L.subParser("images")(e, t, n), e = L.subParser("anchors")(e, t, n), e = L.subParser("autoLinks")(e, t, n), e = L.subParser("simplifiedAutoLinks")(e, t, n), e = L.subParser("emoji")(e, t, n), e = L.subParser("underline")(e, t, n), e = L.subParser("italicsAndBold")(e, t, n), e = L.subParser("strikethrough")(e, t, n), e = L.subParser("ellipsis")(e, t, n), e = L.subParser("hashHTMLSpans")(e, t, n), e = L.subParser("encodeAmpsAndAngles")(e, t, n), t.simpleLineBreaks ? /\n\n\xa8K/.test(e) || (e = e.replace(/\n+/g, "
    \n")) : e = e.replace(/ +\n/g, "
    \n"), e = n.converter._dispatch("spanGamut.after", e, t, n) }), L.subParser("strikethrough", function (e, r, a) { return r.strikethrough && (e = (e = a.converter._dispatch("strikethrough.before", e, r, a)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g, function (e, t) { return function n(e) { return r.simplifiedAutoLink && (e = L.subParser("simplifiedAutoLinks")(e, r, a)), "" + e + "" }(t) }), e = a.converter._dispatch("strikethrough.after", e, r, a)), e }), L.subParser("stripLinkDefinitions", function (e, s, l) { var c = function c(e, t, n, r, a, o, i) { return t = t.toLowerCase(), n.match(/^data:.+?\/.+?;base64,/) ? l.gUrls[t] = n.replace(/\s/g, "") : l.gUrls[t] = L.subParser("encodeAmpsAndAngles")(n, s, l), o ? o + i : (i && (l.gTitles[t] = i.replace(/"|'/g, """)), s.parseImgDimensions && r && a && (l.gDimensions[t] = { width: r, height: a }), "") }; return e = (e = (e = (e += "\xa80").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=\xa80)|(?=\n\[))/gm, c)).replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=\xa80))/gm, c)).replace(/\xa80/, "") }), L.subParser("tables", function (e, v, b) { if (!v.tables) return e; function t(e) { var t, n = e.split("\n"); for (t = 0; t < n.length; ++t) /^ {0,3}\|/.test(n[t]) && (n[t] = n[t].replace(/^ {0,3}\|/, "")), /\|[ \t]*$/.test(n[t]) && (n[t] = n[t].replace(/\|[ \t]*$/, "")), n[t] = L.subParser("codeSpans")(n[t], v, b); var r, a, o, i, s, l = n[0].split("|").map(function (e) { return e.trim() }), c = n[1].split("|").map(function (e) { return e.trim() }), d = [], f = [], p = [], u = []; for (n.shift(), n.shift(), t = 0; t < n.length; ++t) "" !== n[t].trim() && d.push(n[t].split("|").map(function (e) { return e.trim() })); if (l.length < c.length) return e; for (t = 0; t < c.length; ++t) p.push((r = c[t], /^:[ \t]*--*$/.test(r) ? ' style="text-align:left;"' : /^--*[ \t]*:[ \t]*$/.test(r) ? ' style="text-align:right;"' : /^:[ \t]*--*[ \t]*:$/.test(r) ? ' style="text-align:center;"' : "")); for (t = 0; t < l.length; ++t) L.helper.isUndefined(p[t]) && (p[t] = ""), f.push((a = l[t], o = p[t], i = void 0, i = "", a = a.trim(), (v.tablesHeaderId || v.tableHeaderId) && (i = ' id="' + a.replace(/ /g, "_").toLowerCase() + '"'), "" + (a = L.subParser("spanGamut")(a, v, b)) + "\n")); for (t = 0; t < d.length; ++t) { for (var h = [], g = 0; g < f.length; ++g) L.helper.isUndefined(d[t][g]), h.push((s = d[t][g], "" + L.subParser("spanGamut")(s, v, b) + "\n")); u.push(h) } return function m(e, t) { for (var n = "\n\n\n", r = e.length, a = 0; a < r; ++a) n += e[a]; for (n += "\n\n\n", a = 0; a < t.length; ++a) { n += "\n"; for (var o = 0; o < r; ++o) n += t[a][o]; n += "\n" } return n += "\n
    \n" }(f, u) } return e = (e = (e = (e = b.converter._dispatch("tables.before", e, v, b)).replace(/\\(\|)/g, L.helper.escapeCharactersCallback)).replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|\xa80)/gm, t)).replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|\xa80)/gm, t), e = b.converter._dispatch("tables.after", e, v, b) }), L.subParser("underline", function (e, t, n) { return t.underline ? (e = n.converter._dispatch("underline.before", e, t, n), e = (e = t.literalMidWordUnderscores ? (e = e.replace(/\b___(\S[\s\S]*?)___\b/g, function (e, t) { return "" + t + "" })).replace(/\b__(\S[\s\S]*?)__\b/g, function (e, t) { return "" + t + "" }) : (e = e.replace(/___(\S[\s\S]*?)___/g, function (e, t) { return /\S$/.test(t) ? "" + t + "" : e })).replace(/__(\S[\s\S]*?)__/g, function (e, t) { return /\S$/.test(t) ? "" + t + "" : e })).replace(/(_)/g, L.helper.escapeCharactersCallback), e = n.converter._dispatch("underline.after", e, t, n)) : e }), L.subParser("unescapeSpecialChars", function (e, t, n) { return e = (e = n.converter._dispatch("unescapeSpecialChars.before", e, t, n)).replace(/\xa8E(\d+)E/g, function (e, t) { var n = parseInt(t); return String.fromCharCode(n) }), e = n.converter._dispatch("unescapeSpecialChars.after", e, t, n) }), L.subParser("makeMarkdown.blockquote", function (e, t) { var n = ""; if (e.hasChildNodes()) for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) { var i = L.subParser("makeMarkdown.node")(r[o], t); "" !== i && (n += i) } return n = "> " + (n = n.trim()).split("\n").join("\n> ") }), L.subParser("makeMarkdown.codeBlock", function (e, t) { var n = e.getAttribute("language"), r = e.getAttribute("precodenum"); return "```" + n + "\n" + t.preList[r] + "\n```" }), L.subParser("makeMarkdown.codeSpan", function (e) { return "`" + e.innerHTML + "`" }), L.subParser("makeMarkdown.emphasis", function (e, t) { var n = ""; if (e.hasChildNodes()) { n += "*"; for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); n += "*" } return n }), L.subParser("makeMarkdown.header", function (e, t, n) { var r = new Array(n + 1).join("#"), a = ""; if (e.hasChildNodes()) { a = r + " "; for (var o = e.childNodes, i = o.length, s = 0; s < i; ++s) a += L.subParser("makeMarkdown.node")(o[s], t) } return a }), L.subParser("makeMarkdown.hr", function () { return "---" }), L.subParser("makeMarkdown.image", function (e) { var t = ""; return e.hasAttribute("src") && (t += "![" + e.getAttribute("alt") + "](", t += "<" + e.getAttribute("src") + ">", e.hasAttribute("width") && e.hasAttribute("height") && (t += " =" + e.getAttribute("width") + "x" + e.getAttribute("height")), e.hasAttribute("title") && (t += ' "' + e.getAttribute("title") + '"'), t += ")"), t }), L.subParser("makeMarkdown.links", function (e, t) { var n = ""; if (e.hasChildNodes() && e.hasAttribute("href")) { var r = e.childNodes, a = r.length; n = "["; for (var o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); n += "](", n += "<" + e.getAttribute("href") + ">", e.hasAttribute("title") && (n += ' "' + e.getAttribute("title") + '"'), n += ")" } return n }), L.subParser("makeMarkdown.list", function (e, t, n) { var r = ""; if (!e.hasChildNodes()) return ""; for (var a = e.childNodes, o = a.length, i = e.getAttribute("start") || 1, s = 0; s < o; ++s) if ("undefined" != typeof a[s].tagName && "li" === a[s].tagName.toLowerCase()) { r += ("ol" === n ? i.toString() + ". " : "- ") + L.subParser("makeMarkdown.listItem")(a[s], t), ++i } return (r += "\n\n").trim() }), L.subParser("makeMarkdown.listItem", function (e, t) { for (var n = "", r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); return /\n$/.test(n) ? n = n.split("\n").join("\n ").replace(/^ {4}$/gm, "").replace(/\n\n+/g, "\n\n") : n += "\n", n }), L.subParser("makeMarkdown.node", function (e, t, n) { n = n || !1; var r = ""; if (3 === e.nodeType) return L.subParser("makeMarkdown.txt")(e, t); if (8 === e.nodeType) return "\n\n"; if (1 !== e.nodeType) return ""; switch (e.tagName.toLowerCase()) { case "h1": n || (r = L.subParser("makeMarkdown.header")(e, t, 1) + "\n\n"); break; case "h2": n || (r = L.subParser("makeMarkdown.header")(e, t, 2) + "\n\n"); break; case "h3": n || (r = L.subParser("makeMarkdown.header")(e, t, 3) + "\n\n"); break; case "h4": n || (r = L.subParser("makeMarkdown.header")(e, t, 4) + "\n\n"); break; case "h5": n || (r = L.subParser("makeMarkdown.header")(e, t, 5) + "\n\n"); break; case "h6": n || (r = L.subParser("makeMarkdown.header")(e, t, 6) + "\n\n"); break; case "p": n || (r = L.subParser("makeMarkdown.paragraph")(e, t) + "\n\n"); break; case "blockquote": n || (r = L.subParser("makeMarkdown.blockquote")(e, t) + "\n\n"); break; case "hr": n || (r = L.subParser("makeMarkdown.hr")(e, t) + "\n\n"); break; case "ol": n || (r = L.subParser("makeMarkdown.list")(e, t, "ol") + "\n\n"); break; case "ul": n || (r = L.subParser("makeMarkdown.list")(e, t, "ul") + "\n\n"); break; case "precode": n || (r = L.subParser("makeMarkdown.codeBlock")(e, t) + "\n\n"); break; case "pre": n || (r = L.subParser("makeMarkdown.pre")(e, t) + "\n\n"); break; case "table": n || (r = L.subParser("makeMarkdown.table")(e, t) + "\n\n"); break; case "code": r = L.subParser("makeMarkdown.codeSpan")(e, t); break; case "em": case "i": r = L.subParser("makeMarkdown.emphasis")(e, t); break; case "strong": case "b": r = L.subParser("makeMarkdown.strong")(e, t); break; case "del": r = L.subParser("makeMarkdown.strikethrough")(e, t); break; case "a": r = L.subParser("makeMarkdown.links")(e, t); break; case "img": r = L.subParser("makeMarkdown.image")(e, t); break; default: r = e.outerHTML + "\n\n" } return r }), L.subParser("makeMarkdown.paragraph", function (e, t) { var n = ""; if (e.hasChildNodes()) for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); return n = n.trim() }), L.subParser("makeMarkdown.pre", function (e, t) { var n = e.getAttribute("prenum"); return "
    " + t.preList[n] + "
    " }), L.subParser("makeMarkdown.strikethrough", function (e, t) { var n = ""; if (e.hasChildNodes()) { n += "~~"; for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); n += "~~" } return n }), L.subParser("makeMarkdown.strong", function (e, t) { var n = ""; if (e.hasChildNodes()) { n += "**"; for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t); n += "**" } return n }), L.subParser("makeMarkdown.table", function (e, t) { var n, r, a = "", o = [ [], [] ], i = e.querySelectorAll("thead>tr>th"), s = e.querySelectorAll("tbody>tr"); for (n = 0; n < i.length; ++n) { var l = L.subParser("makeMarkdown.tableCell")(i[n], t), c = "---"; if (i[n].hasAttribute("style")) switch (i[n].getAttribute("style").toLowerCase().replace(/\s/g, "")) { case "text-align:left;": c = ":---"; break; case "text-align:right;": c = "---:"; break; case "text-align:center;": c = ":---:" } o[0][n] = l.trim(), o[1][n] = c } for (n = 0; n < s.length; ++n) { var d = o.push([]) - 1, f = s[n].getElementsByTagName("td"); for (r = 0; r < i.length; ++r) { var p = " "; "undefined" != typeof f[r] && (p = L.subParser("makeMarkdown.tableCell")(f[r], t)), o[d].push(p) } } var u = 3; for (n = 0; n < o.length; ++n) for (r = 0; r < o[n].length; ++r) { var h = o[n][r].length; u < h && (u = h) } for (n = 0; n < o.length; ++n) { for (r = 0; r < o[n].length; ++r) 1 === n ? ":" === o[n][r].slice(-1) ? o[n][r] = L.helper.padEnd(o[n][r].slice(-1), u - 1, "-") + ":" : o[n][r] = L.helper.padEnd(o[n][r], u, "-") : o[n][r] = L.helper.padEnd(o[n][r], u); a += "| " + o[n].join(" | ") + " |\n" } return a.trim() }), L.subParser("makeMarkdown.tableCell", function (e, t) { var n = ""; if (!e.hasChildNodes()) return ""; for (var r = e.childNodes, a = r.length, o = 0; o < a; ++o) n += L.subParser("makeMarkdown.node")(r[o], t, !0); return n.trim() }), L.subParser("makeMarkdown.txt", function (e) { var t = e.nodeValue; return t = (t = t.replace(/ +/g, " ")).replace(/\xa8NBSP;/g, " "), t = (t = (t = (t = (t = (t = (t = (t = (t = L.helper.unescapeHTMLEntities(t)).replace(/([*_~|`])/g, "\\$1")).replace(/^(\s*)>/g, "\\$1>")).replace(/^#/gm, "\\#")).replace(/^(\s*)([-=]{3,})(\s*)$/, "$1\\$2$3")).replace(/^( {0,3}\d+)\./gm, "$1\\.")).replace(/^( {0,3})([+-])/gm, "$1\\$2")).replace(/]([\s]*)\(/g, "\\]$1\\(")).replace(/^ {0,3}\[([\S \t]*?)]:/gm, "\\[$1]:") }), kt.PLUGINS.markdown = function (o) { var i, l, n, r, s, c = o.$, a = !1, d = "", f = ""; function p(e) { e = function u(e) { var t = e, n = e.match(/(\[\^(.+?)\])[^:]/g), r = e.match(/(\[\^(.+?)\]:)/g); if (n && r) { n.forEach(function (e, t, n) { n[t] = n[t].substring(0, n[t].length - 1) }), n = n.filter(function (e, t) { return n.indexOf(e) === t }), r = r.filter(function (e, t) { return r.indexOf(e) === t }); for (var a = 1, o = 0; o < n.length; o++) { var i = ""; if (1 == a && (i = '
      '), -1 < r.indexOf(n[o] + ":")) { for (var s = -1 < (t = (t = t.split(r[o]).join("{ftnt-plc}")).replace(r[o].substring(0, r[o].length - 1), '').concat(a, ""))).indexOf(n[o]) ? 1 : 0, l = 0; s && (l++, t = t.replace(r[o].substring(0, r[o].length - 1), '').concat(a, ":").concat(l, "")), s = -1 < t.indexOf(n[o]) ? 1 : 0);); var c = (t = t.split("{ftnt-plc}").join(r[o])).indexOf(r[o]), d = t, f = d.substring(c, d.length - 1); if (f = f.split("\n")[0], t = t.replace(f, ""), -1 < f.indexOf(": ")) { f = f.split(": ")[1], f += ''); for (var p = l; 0 != l;) f += ''), l--; f += "

      ", t = t + i + '
    1. ') + f, a++ } } } 1 != a && (t += "

    ") } return e = t }(e = function s(e) { for (var t = /^[A-Za-z0-9]/g, n = /^:[ ]{1}(.+?)+/g, r = e.split("\n"), a = r, o = r.length - 1, i = 1; i < o; i++) null !== r[i].match(n) && (null !== r[i - 1].match(t) && i < o - 1 && null !== r[i + 1].match(n) ? (a[i - 1] = "
    " + r[i - 1] + "
    ", a[i] = "
    " + r[i].substring(2) + "
    ") : null !== r[i - 1].match(t) && (i < o - 1 && null === r[i + 1].match(n) || i == o - 1) ? (a[i - 1] = "
    " + r[i - 1] + "
    ", a[i] = "
    " + r[i].substring(2) + "
    ") : i < o - 1 && null !== r[i + 1].match(n) ? a[i] = "
    " + r[i].substring(2) + "
    " : a[i] = "
    " + r[i].substring(2) + "
    "); return e = a.join("\n") }(e = function t(e) { var r = e.indexOf("```"), a = 0; - 1 < r && (a = -1 < (a = e.substring(r + 1).indexOf("```")) ? a + 3 : a); return e = e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm, function (e, t, n) { return r < n && n < a ? "---" : "
    \n" }) }(e = function n(e) { return -1 < (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = e.split("

    ").join("

    \n")).split("
    ").join("\n")).replace(/(<([^>]+)>)/gi, "")).replace(/>/gi, ">")).replace(/</gi, "<")).split(""").join('"')).split("&").join("&")).split("'").join("'")).split(" ").join(" ")).replace(/\|+\n[^\|]/g, function (e) { return e.replace("\n", "\n\n") })).indexOf("Powered by Froala Editor") && (e = e.replace("Powered by Froala Editor", "")), e }(e)))), e = r.makeHtml(e), o.$wp.find(l)[0].innerHTML = e } return { _init: function t() { if (function e() { o.events.on("contentChanged", function () { a && p(o.html.get(!1, !1)) }, !0), o.events.$on(c(o.o_win), "resize", function () { a && (l[0].style.width = o.$wp[0].clientWidth - o.$el[0].clientWidth + 2 + "px") }) }(), r = new L.Converter( { strikethrough: !0, tables: !0, tablesHeaderId: !0, simpleLineBreaks: !0, ghCodeBlocks: !0, tasklists: !0, customizedHeaderId: !0, requireSpaceBeforeHeadingText: !0, underline: !0 }), n = o.$tb.find('.fr-command[data-cmd="markdown"]'), !o.$wp) return !1 }, refresh: function u(e) { var t = a; e.toggleClass("fr-active", t).attr("aria-pressed", t) }, toggle: function h() { a ? function e() { f = o.html.get(!0, !0), o.opts.pastePlain = !1, o.$el.removeClass("fr-markdown-editor"), o.$wp.append(s[0].firstChild), c(s).remove(), o.$wp.find(i).remove(), o.$wp.find(l).remove(), o.$wp[0].lastChild.after(o.$placeholder[0]), o.$el.removeAttr("style"), o.$tb.find(".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command").not(n).removeClass("fr-disabled").attr("aria-disabled", !1), o.html.set(d) }() : function t() { var a; d = o.html.get(!0, !0), o.html.set(f), o.opts.pastePlain = !0, o.$el.addClass("fr-markdown-editor"), s = c('
    '), o.$wp.append(s), s[0].appendChild(o.$el[0]), i = c('
    '), c(s).append(i[0]), l = c('
    '), c(s).append(l[0]), c(s).after(o.$placeholder[0]), o.$tb.find(".fr-btn-grp > .fr-command, .fr-more-toolbar > .fr-command, .fr-btn-grp > .fr-btn-wrap > .fr-command, .fr-more-toolbar > .fr-btn-wrap > .fr-command").not(n).filter(function () { return "fullscreen" !== c(this).data("cmd") && "moreMisc" !== c(this).data("cmd") }).addClass("fr-disabled").attr("aria-disabled", !0), c(i).on("mousedown touchstart", function (e) { a = { e: e, offsetLeft: i[0].offsetLeft, offsetTop: i[0].offsetTop, firstWidth: o.$el[0].offsetWidth, secondWidth: l[0].offsetWidth }; var n = function n(e) { o.selection.clear(); var t = { x: e.clientX - a.e.clientX, y: e.clientY - a.e.clientY }; t.x = Math.min(Math.max(t.x, -a.firstWidth), a.secondWidth), a.firstWidth + t.x < 125 || a.secondWidth - t.x < 125 || (i[0].style.left = a.offsetLeft + t.x + "px", o.$el[0].style.width = a.firstWidth + t.x + "px", l[0].style.width = a.secondWidth - t.x + "px") }, r = function r(e) { o.selection.clear(); var t = { x: e.changedTouches[0].clientX - a.e.changedTouches[0].clientX, y: e.changedTouches[0].clientY - a.e.changedTouches[0].clientY }; t.x = Math.min(Math.max(t.x, -a.firstWidth), a.secondWidth), a.firstWidth + t.x < 100 || a.secondWidth - t.x < 100 || (i[0].style.left = a.offsetLeft + t.x + "px", o.$el[0].style.width = a.firstWidth + t.x + "px", l[0].style.width = a.secondWidth - t.x + "px") }, t = function t() { document.onmousemove = document.onmouseup = null, document.ontouchmove = document.ontouchend = null }; document.onmousemove = n, document.ontouchmove = r, document.onmouseup = t, document.ontouchend = t }), p(f) }(), a = !a }, isEnabled: function e() { return a } } }, kt.DefineIcon("markdown", { NAME: "markdown", SVG_KEY: "markdown" }), kt.RegisterCommand("markdown", { title: "Markdown", undo: !1, focus: !1, toggle: !0, forcedRefresh: !0, accessibilityFocus: !0, callback: function () { this.markdown.toggle() }, refresh: function (e) { this.markdown.refresh(e) }, plugin: "markdown" }), kt });