/**
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
* Licensed under the LGPL or a commercial license.
* For LGPL see License.txt in the project root for license information.
* For commercial licenses see https://www.tiny.cloud/
*
* Version: 5.6.2 (2020-12-08)
*/
! function () {
"use strict";
var r = function (e) {
if (null === e) return "null";
if (e === undefined) return "undefined";
var t = typeof e;
return "object" == t && (Array.prototype.isPrototypeOf(e) || e.constructor && "Array" === e.constructor.name) ? "array" : "object" == t && (String.prototype.isPrototypeOf(e) || e.constructor && "String" === e.constructor.name) ? "string" : t
},
t = function (e) {
return {
eq: e
}
},
s = t(function (e, t) {
return e === t
}),
i = function (o) {
return t(function (e, t) {
if (e.length !== t.length) return !1;
for (var n = e.length, r = 0; r < n; r++)
if (!o.eq(e[r], t[r])) return !1;
return !0
})
},
c = function (e, r) {
return n = i(e), o = function (e) {
return t = e, n = r, Array.prototype.slice.call(t).sort(n);
var t, n
}, t(function (e, t) {
return n.eq(o(e), o(t))
});
var n, o
},
u = function (u) {
return t(function (e, t) {
var n = Object.keys(e),
r = Object.keys(t);
if (!c(s).eq(n, r)) return !1;
for (var o = n.length, i = 0; i < o; i++) {
var a = n[i];
if (!u.eq(e[a], t[a])) return !1
}
return !0
})
},
l = t(function (e, t) {
if (e === t) return !0;
var n = r(e);
return n === r(t) && (-1 !== ["undefined", "boolean", "number", "string", "function", "xml", "null"].indexOf(n) ? e === t : "array" === n ? i(l).eq(e, t) : "object" === n && u(l).eq(e, t))
}),
V = function () {},
a = function (n, r) {
return function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
return n(r.apply(null, e))
}
},
E = function (e) {
return function () {
return e
}
},
o = function (e) {
return e
};
function N(r) {
for (var o = [], e = 1; e < arguments.length; e++) o[e - 1] = arguments[e];
return function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
var n = o.concat(e);
return r.apply(null, n)
}
}
var e, n, f, d = function (t) {
return function (e) {
return !t(e)
}
},
m = function (e) {
return function () {
throw new Error(e)
}
},
b = function (e) {
e()
},
C = E(!1),
k = E(!0),
p = function () {
return g
},
g = (e = function (e) {
return e.isNone()
}, {
fold: function (e, t) {
return e()
},
is: C,
isSome: C,
isNone: k,
getOr: f = function (e) {
return e
},
getOrThunk: n = function (e) {
return e()
},
getOrDie: function (e) {
throw new Error(e || "error: getOrDie called on none.")
},
getOrNull: E(null),
getOrUndefined: E(undefined),
or: f,
orThunk: n,
map: p,
each: V,
bind: p,
exists: C,
forall: k,
filter: p,
equals: e,
equals_: e,
toArray: function () {
return []
},
toString: E("none()")
}),
h = function (n) {
var e = E(n),
t = function () {
return o
},
r = function (e) {
return e(n)
},
o = {
fold: function (e, t) {
return t(n)
},
is: function (e) {
return n === e
},
isSome: k,
isNone: C,
getOr: e,
getOrThunk: e,
getOrDie: e,
getOrNull: e,
getOrUndefined: e,
or: t,
orThunk: t,
map: function (e) {
return h(e(n))
},
each: function (e) {
e(n)
},
bind: r,
exists: r,
forall: r,
filter: function (e) {
return e(n) ? o : g
},
toArray: function () {
return [n]
},
toString: function () {
return "some(" + n + ")"
},
equals: function (e) {
return e.is(n)
},
equals_: function (e, t) {
return e.fold(C, function (e) {
return t(n, e)
})
}
};
return o
},
U = {
some: h,
none: p,
from: function (e) {
return null === e || e === undefined ? g : h(e)
}
},
v = function (r) {
return function (e) {
return n = typeof (t = e), (null === t ? "null" : "object" == n && (Array.prototype.isPrototypeOf(t) || t.constructor && "Array" === t.constructor.name) ? "array" : "object" == n && (String.prototype.isPrototypeOf(t) || t.constructor && "String" === t.constructor.name) ? "string" : n) === r;
var t, n
}
},
y = function (t) {
return function (e) {
return typeof e === t
}
},
w = function (t) {
return function (e) {
return t === e
}
},
q = v("string"),
_ = v("object"),
S = v("array"),
x = w(null),
A = y("boolean"),
R = w(undefined),
$ = function (e) {
return null === e || e === undefined
},
D = function (e) {
return !$(e)
},
T = y("function"),
O = y("number"),
B = Array.prototype.slice,
P = Array.prototype.indexOf,
L = Array.prototype.push,
I = function (e, t) {
return P.call(e, t)
},
M = function (e, t) {
return -1 < I(e, t)
},
F = function (e, t) {
for (var n = 0, r = e.length; n < r; n++) {
if (t(e[n], n)) return !0
}
return !1
},
z = function (e, t) {
for (var n = e.length, r = new Array(n), o = 0; o < n; o++) {
var i = e[o];
r[o] = t(i, o)
}
return r
},
W = function (e, t) {
for (var n = 0, r = e.length; n < r; n++) {
t(e[n], n)
}
},
j = function (e, t) {
for (var n = e.length - 1; 0 <= n; n--) {
t(e[n], n)
}
},
H = function (e, t) {
for (var n = [], r = 0, o = e.length; r < o; r++) {
var i = e[r];
t(i, r) && n.push(i)
}
return n
},
K = function (e, t, n) {
return j(e, function (e) {
n = t(n, e)
}), n
},
X = function (e, t, n) {
return W(e, function (e) {
n = t(n, e)
}), n
},
Y = function (e, t) {
return function (e, t, n) {
for (var r = 0, o = e.length; r < o; r++) {
var i = e[r];
if (t(i, r)) return U.some(i);
if (n(i, r)) break
}
return U.none()
}(e, t, C)
},
G = function (e, t) {
for (var n = 0, r = e.length; n < r; n++) {
if (t(e[n], n)) return U.some(n)
}
return U.none()
},
J = function (e, t) {
return function (e) {
for (var t = [], n = 0, r = e.length; n < r; ++n) {
if (!S(e[n])) throw new Error("Arr.flatten item " + n + " was not an array, input: " + e);
L.apply(t, e[n])
}
return t
}(z(e, t))
},
Q = function (e, t) {
for (var n = 0, r = e.length; n < r; ++n) {
if (!0 !== t(e[n], n)) return !1
}
return !0
},
Z = function (e) {
var t = B.call(e, 0);
return t.reverse(), t
},
ee = function (e, t) {
return H(e, function (e) {
return !M(t, e)
})
},
te = function (e, t) {
return 0 <= t && t < e.length ? U.some(e[t]) : U.none()
},
ne = function (e) {
return te(e, 0)
},
re = function (e) {
return te(e, e.length - 1)
},
oe = T(Array.from) ? Array.from : function (e) {
return B.call(e)
},
ie = Object.keys,
ae = Object.hasOwnProperty,
ue = function (e, t) {
for (var n = ie(e), r = 0, o = n.length; r < o; r++) {
var i = n[r];
t(e[i], i)
}
},
se = function (e, n) {
return ce(e, function (e, t) {
return {
k: t,
v: n(e, t)
}
})
},
ce = function (e, r) {
var o = {};
return ue(e, function (e, t) {
var n = r(e, t);
o[n.k] = n.v
}), o
},
le = function (n) {
return function (e, t) {
n[t] = e
}
},
fe = function (e, n, r, o) {
return ue(e, function (e, t) {
(n(e, t) ? r : o)(e, t)
}), {}
},
de = function (e, t) {
var n = {},
r = {};
return fe(e, t, le(n), le(r)), {
t: n,
f: r
}
},
me = function (e, t) {
var n = {};
return fe(e, t, le(n), V), n
},
pe = function (e) {
return n = function (e) {
return e
}, r = [], ue(e, function (e, t) {
r.push(n(e, t))
}), r;
var n, r
},
ge = function (e, t) {
return he(e, t) ? U.from(e[t]) : U.none()
},
he = function (e, t) {
return ae.call(e, t)
},
ve = function (e, t) {
return he(e, t) && e[t] !== undefined && null !== e[t]
},
ye = Array.isArray,
be = function (e, t, n) {
var r, o;
if (!e) return !1;
if (n = n || e, e.length !== undefined) {
for (r = 0, o = e.length; r < o; r++)
if (!1 === t.call(n, e[r], r, e)) return !1
} else
for (r in e)
if (e.hasOwnProperty(r) && !1 === t.call(n, e[r], r, e)) return !1;
return !0
},
Ce = function (n, r) {
var o = [];
return be(n, function (e, t) {
o.push(r(e, t, n))
}), o
},
we = function (n, r) {
var o = [];
return be(n, function (e, t) {
r && !r(e, t, n) || o.push(e)
}), o
},
xe = function (e, t) {
if (e)
for (var n = 0, r = e.length; n < r; n++)
if (e[n] === t) return n;
return -1
},
Se = function (e, t, n, r) {
for (var o = R(n) ? e[0] : n, i = 0; i < e.length; i++) o = t.call(r, o, e[i], i);
return o
},
Ne = function (e, t, n) {
for (var r = 0, o = e.length; r < o; r++)
if (t.call(n, e[r], r, e)) return r;
return -1
},
Ee = function (e) {
return e[e.length - 1]
},
ke = function () {
return (ke = Object.assign || function (e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
return e
}).apply(this, arguments)
};
function _e() {
for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length;
for (var r = Array(e), o = 0, t = 0; t < n; t++)
for (var i = arguments[t], a = 0, u = i.length; a < u; a++, o++) r[o] = i[a];
return r
}
var Ae, Re, Te, De, Oe, Be, Pe, Le = function (e, t) {
var n = function (e, t) {
for (var n = 0; n < e.length; n++) {
var r = e[n];
if (r.test(t)) return r
}
return undefined
}(e, t);
if (!n) return {
major: 0,
minor: 0
};
var r = function (e) {
return Number(t.replace(n, "$" + e))
};
return Me(r(1), r(2))
},
Ie = function () {
return Me(0, 0)
},
Me = function (e, t) {
return {
major: e,
minor: t
}
},
Fe = {
nu: Me,
detect: function (e, t) {
var n = String(t).toLowerCase();
return 0 === e.length ? Ie() : Le(e, n)
},
unknown: Ie
},
Ue = function (e, t) {
var n = String(t).toLowerCase();
return Y(e, function (e) {
return e.search(n)
})
},
ze = function (e, n) {
return Ue(e, n).map(function (e) {
var t = Fe.detect(e.versionRegexes, n);
return {
current: e.name,
version: t
}
})
},
je = function (e, n) {
return Ue(e, n).map(function (e) {
var t = Fe.detect(e.versionRegexes, n);
return {
current: e.name,
version: t
}
})
},
He = function (e, t) {
return -1 !== e.indexOf(t)
},
Ve = function (e, t) {
return n = e, o = 0, "" === (r = t) || n.length >= r.length && n.substr(o, o + r.length) === r;
var n, r, o
},
qe = function (t) {
return function (e) {
return e.replace(t, "")
}
},
$e = qe(/^\s+|\s+$/g),
We = qe(/^\s+/g),
Ke = qe(/\s+$/g),
Xe = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/,
Ye = function (t) {
return function (e) {
return He(e, t)
}
},
Ge = [{
name: "Edge",
versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],
search: function (e) {
return He(e, "edge/") && He(e, "chrome") && He(e, "safari") && He(e, "applewebkit")
}
}, {
name: "Chrome",
versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/, Xe],
search: function (e) {
return He(e, "chrome") && !He(e, "chromeframe")
}
}, {
name: "IE",
versionRegexes: [/.*?msie\ ?([0-9]+)\.([0-9]+).*/, /.*?rv:([0-9]+)\.([0-9]+).*/],
search: function (e) {
return He(e, "msie") || He(e, "trident")
}
}, {
name: "Opera",
versionRegexes: [Xe, /.*?opera\/([0-9]+)\.([0-9]+).*/],
search: Ye("opera")
}, {
name: "Firefox",
versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],
search: Ye("firefox")
}, {
name: "Safari",
versionRegexes: [Xe, /.*?cpu os ([0-9]+)_([0-9]+).*/],
search: function (e) {
return (He(e, "safari") || He(e, "mobile/")) && He(e, "applewebkit")
}
}],
Je = [{
name: "Windows",
search: Ye("win"),
versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]
}, {
name: "iOS",
search: function (e) {
return He(e, "iphone") || He(e, "ipad")
},
versionRegexes: [/.*?version\/\ ?([0-9]+)\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]
}, {
name: "Android",
search: Ye("android"),
versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/]
}, {
name: "OSX",
search: Ye("mac os x"),
versionRegexes: [/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]
}, {
name: "Linux",
search: Ye("linux"),
versionRegexes: []
}, {
name: "Solaris",
search: Ye("sunos"),
versionRegexes: []
}, {
name: "FreeBSD",
search: Ye("freebsd"),
versionRegexes: []
}, {
name: "ChromeOS",
search: Ye("cros"),
versionRegexes: [/.*?chrome\/([0-9]+)\.([0-9]+).*/]
}],
Qe = {
browsers: E(Ge),
oses: E(Je)
},
Ze = "Firefox",
et = function (e) {
var t = e.current,
n = e.version,
r = function (e) {
return function () {
return t === e
}
};
return {
current: t,
version: n,
isEdge: r("Edge"),
isChrome: r("Chrome"),
isIE: r("IE"),
isOpera: r("Opera"),
isFirefox: r(Ze),
isSafari: r("Safari")
}
},
tt = {
unknown: function () {
return et({
current: undefined,
version: Fe.unknown()
})
},
nu: et,
edge: E("Edge"),
chrome: E("Chrome"),
ie: E("IE"),
opera: E("Opera"),
firefox: E(Ze),
safari: E("Safari")
},
nt = "Windows",
rt = "Android",
ot = "Solaris",
it = "FreeBSD",
at = "ChromeOS",
ut = function (e) {
var t = e.current,
n = e.version,
r = function (e) {
return function () {
return t === e
}
};
return {
current: t,
version: n,
isWindows: r(nt),
isiOS: r("iOS"),
isAndroid: r(rt),
isOSX: r("OSX"),
isLinux: r("Linux"),
isSolaris: r(ot),
isFreeBSD: r(it),
isChromeOS: r(at)
}
},
st = {
unknown: function () {
return ut({
current: undefined,
version: Fe.unknown()
})
},
nu: ut,
windows: E(nt),
ios: E("iOS"),
android: E(rt),
linux: E("Linux"),
osx: E("OSX"),
solaris: E(ot),
freebsd: E(it),
chromeos: E(at)
},
ct = function (e, t) {
var n, r, o, i, a, u, s, c, l, f, d, m, p = Qe.browsers(),
g = Qe.oses(),
h = ze(p, e).fold(tt.unknown, tt.nu),
v = je(g, e).fold(st.unknown, st.nu);
return {
browser: h,
os: v,
deviceType: (r = h, o = e, i = t, a = (n = v).isiOS() && !0 === /ipad/i.test(o), u = n.isiOS() && !a, s = n.isiOS() || n.isAndroid(), c = s || i("(pointer:coarse)"), l = a || !u && s && i("(min-device-width:768px)"), f = u || s && !l, d = r.isSafari() && n.isiOS() && !1 === /safari/i.test(o), m = !f && !l && !d, {
isiPad: E(a),
isiPhone: E(u),
isTablet: E(l),
isPhone: E(f),
isTouch: E(c),
isAndroid: n.isAndroid,
isiOS: n.isiOS,
isWebView: E(d),
isDesktop: E(m)
})
}
},
lt = function (e) {
return window.matchMedia(e).matches
},
ft = (Te = !(Ae = function () {
return ct(navigator.userAgent, lt)
}), function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
return Te || (Te = !0, Re = Ae.apply(null, e)), Re
}),
dt = function () {
return ft()
},
mt = navigator.userAgent,
pt = dt(),
gt = pt.browser,
ht = pt.os,
vt = pt.deviceType,
yt = /WebKit/.test(mt) && !gt.isEdge(),
bt = "FormData" in window && "FileReader" in window && "URL" in window && !!URL.createObjectURL,
Ct = -1 !== mt.indexOf("Windows Phone"),
wt = {
opera: gt.isOpera(),
webkit: yt,
ie: !(!gt.isIE() && !gt.isEdge()) && gt.version.major,
gecko: gt.isFirefox(),
mac: ht.isOSX() || ht.isiOS(),
iOS: vt.isiPad() || vt.isiPhone(),
android: ht.isAndroid(),
contentEditable: !0,
transparentSrc: "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",
caretAfter: !0,
range: window.getSelection && "Range" in window,
documentMode: gt.isIE() ? document.documentMode || 7 : 10,
fileApi: bt,
ceFalse: !0,
cacheSuffix: null,
container: null,
experimentalShadowDom: !1,
canHaveCSP: !gt.isIE(),
desktop: vt.isDesktop(),
windowsPhone: Ct,
browser: {
current: gt.current,
version: gt.version,
isChrome: gt.isChrome,
isEdge: gt.isEdge,
isFirefox: gt.isFirefox,
isIE: gt.isIE,
isOpera: gt.isOpera,
isSafari: gt.isSafari
},
os: {
current: ht.current,
version: ht.version,
isAndroid: ht.isAndroid,
isChromeOS: ht.isChromeOS,
isFreeBSD: ht.isFreeBSD,
isiOS: ht.isiOS,
isLinux: ht.isLinux,
isOSX: ht.isOSX,
isSolaris: ht.isSolaris,
isWindows: ht.isWindows
},
deviceType: {
isDesktop: vt.isDesktop,
isiPad: vt.isiPad,
isiPhone: vt.isiPhone,
isPhone: vt.isPhone,
isTablet: vt.isTablet,
isTouch: vt.isTouch,
isWebView: vt.isWebView
}
},
xt = /^\s*|\s*$/g,
St = function (e) {
return null === e || e === undefined ? "" : ("" + e).replace(xt, "")
},
Nt = function (e, t) {
return t ? !("array" !== t || !ye(e)) || typeof e === t : e !== undefined
},
Et = function (e, n, r, o) {
o = o || this, e && (r && (e = e[r]), be(e, function (e, t) {
return !1 !== n.call(o, e, t, r) && void Et(e, n, r, o)
}))
},
kt = {
trim: St,
isArray: ye,
is: Nt,
toArray: function (e) {
if (ye(e)) return e;
for (var t = [], n = 0, r = e.length; n < r; n++) t[n] = e[n];
return t
},
makeMap: function (e, t, n) {
var r;
for (t = t || ",", "string" == typeof (e = e || []) && (e = e.split(t)), n = n || {}, r = e.length; r--;) n[e[r]] = {};
return n
},
each: be,
map: Ce,
grep: we,
inArray: xe,
hasOwn: function (e, t) {
return Object.prototype.hasOwnProperty.call(e, t)
},
extend: function (e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
for (var r = 0; r < t.length; r++) {
var o, i = t[r];
for (var a in i) {
!i.hasOwnProperty(a) || (o = i[a]) !== undefined && (e[a] = o)
}
}
return e
},
create: function (e, t, n) {
var r, o, i, a = this,
u = 0,
s = (e = /^((static) )?([\w.]+)(:([\w.]+))?/.exec(e))[3].match(/(^|\.)(\w+)$/i)[2],
c = a.createNS(e[3].replace(/\.\w+$/, ""), n);
if (!c[s]) {
if ("static" === e[2]) return c[s] = t, void(this.onCreate && this.onCreate(e[2], e[3], c[s]));
t[s] || (t[s] = function () {}, u = 1), c[s] = t[s], a.extend(c[s].prototype, t), e[5] && (r = a.resolve(e[5]).prototype, o = e[5].match(/\.(\w+)$/i)[1], i = c[s], c[s] = u ? function () {
return r[o].apply(this, arguments)
} : function () {
return this.parent = r[o], i.apply(this, arguments)
}, c[s].prototype[s] = c[s], a.each(r, function (e, t) {
c[s].prototype[t] = r[t]
}), a.each(t, function (e, t) {
r[t] ? c[s].prototype[t] = function () {
return this.parent = r[t], e.apply(this, arguments)
} : t !== s && (c[s].prototype[t] = e)
})), a.each(t["static"], function (e, t) {
c[s][t] = e
})
}
},
walk: Et,
createNS: function (e, t) {
var n, r;
for (t = t || window, e = e.split("."), n = 0; n < e.length; n++) t[r = e[n]] || (t[r] = {}), t = t[r];
return t
},
resolve: function (e, t) {
var n, r;
for (t = t || window, n = 0, r = (e = e.split(".")).length; n < r && (t = t[e[n]]); n++);
return t
},
explode: function (e, t) {
return !e || Nt(e, "array") ? e : Ce(e.split(t || ","), St)
},
_addCacheSuffix: function (e) {
var t = wt.cacheSuffix;
return t && (e += (-1 === e.indexOf("?") ? "?" : "&") + t), e
}
},
_t = function (e) {
if (null === e || e === undefined) throw new Error("Node cannot be null or undefined");
return {
dom: e
}
},
At = {
fromHtml: function (e, t) {
var n = (t || document).createElement("div");
if (n.innerHTML = e, !n.hasChildNodes() || 1 < n.childNodes.length) throw console.error("HTML does not have a single root node", e), new Error("HTML must have a single root node");
return _t(n.childNodes[0])
},
fromTag: function (e, t) {
var n = (t || document).createElement(e);
return _t(n)
},
fromText: function (e, t) {
var n = (t || document).createTextNode(e);
return _t(n)
},
fromDom: _t,
fromPoint: function (e, t, n) {
return U.from(e.dom.elementFromPoint(t, n)).map(_t)
}
},
Rt = function (e, t) {
for (var n = [], r = function (e) {
return n.push(e), t(e)
}, o = t(e);
(o = o.bind(r)).isSome(););
return n
},
Tt = function (e, t) {
var n = e.dom;
if (1 !== n.nodeType) return !1;
var r = n;
if (r.matches !== undefined) return r.matches(t);
if (r.msMatchesSelector !== undefined) return r.msMatchesSelector(t);
if (r.webkitMatchesSelector !== undefined) return r.webkitMatchesSelector(t);
if (r.mozMatchesSelector !== undefined) return r.mozMatchesSelector(t);
throw new Error("Browser lacks native selectors")
},
Dt = function (e) {
return 1 !== e.nodeType && 9 !== e.nodeType && 11 !== e.nodeType || 0 === e.childElementCount
},
Ot = function (e, t) {
return e.dom === t.dom
},
Bt = function (e, t) {
return n = e.dom, r = t.dom, o = n, i = r, a = Node.DOCUMENT_POSITION_CONTAINED_BY, 0 != (o.compareDocumentPosition(i) & a);
var n, r, o, i, a
},
Pt = function (e, t) {
return dt().browser.isIE() ? Bt(e, t) : (n = t, r = e.dom, o = n.dom, r !== o && r.contains(o));
var n, r, o
},
Lt = ("undefined" != typeof window || Function("return this;")(), function (e) {
return e.dom.nodeName.toLowerCase()
}),
It = function (e) {
return e.dom.nodeType
},
Mt = function (t) {
return function (e) {
return It(e) === t
}
},
Ft = Mt(1),
Ut = Mt(3),
zt = Mt(9),
jt = Mt(11),
Ht = function (e) {
return At.fromDom(e.dom.ownerDocument)
},
Vt = function (e) {
return zt(e) ? e : Ht(e)
},
qt = function (e) {
return At.fromDom(Vt(e).dom.defaultView)
},
$t = function (e) {
return U.from(e.dom.parentNode).map(At.fromDom)
},
Wt = function (e) {
return U.from(e.dom.previousSibling).map(At.fromDom)
},
Kt = function (e) {
return U.from(e.dom.nextSibling).map(At.fromDom)
},
Xt = function (e) {
return Z(Rt(e, Wt))
},
Yt = function (e) {
return Rt(e, Kt)
},
Gt = function (e) {
return z(e.dom.childNodes, At.fromDom)
},
Jt = function (e, t) {
var n = e.dom.childNodes;
return U.from(n[t]).map(At.fromDom)
},
Qt = function (e) {
return Jt(e, 0)
},
Zt = function (e) {
return Jt(e, e.dom.childNodes.length - 1)
},
en = function (e) {
return jt(e)
},
tn = T(Element.prototype.attachShadow) && T(Node.prototype.getRootNode),
nn = E(tn),
rn = tn ? function (e) {
return At.fromDom(e.dom.getRootNode())
} : Vt,
on = function (e) {
return en(e) ? e : function (e) {
var t = e.dom.head;
if (null === t || t === undefined) throw new Error("Head is not available yet");
return At.fromDom(t)
}(Vt(e))
},
an = function (e) {
return At.fromDom(e.dom.host)
},
un = function (e) {
return D(e.dom.shadowRoot)
},
sn = function (t, n) {
$t(t).each(function (e) {
e.dom.insertBefore(n.dom, t.dom)
})
},
cn = function (e, t) {
Kt(e).fold(function () {
$t(e).each(function (e) {
fn(e, t)
})
}, function (e) {
sn(e, t)
})
},
ln = function (t, n) {
Qt(t).fold(function () {
fn(t, n)
}, function (e) {
t.dom.insertBefore(n.dom, e.dom)
})
},
fn = function (e, t) {
e.dom.appendChild(t.dom)
},
dn = function (t, e) {
W(e, function (e) {
fn(t, e)
})
},
mn = function (e) {
e.dom.textContent = "", W(Gt(e), function (e) {
pn(e)
})
},
pn = function (e) {
var t = e.dom;
null !== t.parentNode && t.parentNode.removeChild(t)
},
gn = function (e) {
var t, n = Gt(e);
0 < n.length && (t = e, W(n, function (e) {
sn(t, e)
})), pn(e)
},
hn = function (e) {
var t = Ut(e) ? e.dom.parentNode : e.dom;
if (t === undefined || null === t || null === t.ownerDocument) return !1;
var n, r, o, i, a = t.ownerDocument;
return o = At.fromDom(t), i = rn(o), (en(i) ? U.some(i) : U.none()).fold(function () {
return a.body.contains(t)
}, (n = hn, r = an, function (e) {
return n(r(e))
}))
},
vn = function (n, r) {
return {
left: n,
top: r,
translate: function (e, t) {
return vn(n + e, r + t)
}
}
},
yn = vn,
bn = function (e, t) {
return e !== undefined ? e : t !== undefined ? t : 0
},
Cn = function (e) {
var t, n = e.dom,
r = n.ownerDocument.body;
return r === n ? yn(r.offsetLeft, r.offsetTop) : hn(e) ? (t = n.getBoundingClientRect(), yn(t.left, t.top)) : yn(0, 0)
},
wn = function (e) {
var t = e !== undefined ? e.dom : document,
n = t.body.scrollLeft || t.documentElement.scrollLeft,
r = t.body.scrollTop || t.documentElement.scrollTop;
return yn(n, r)
},
xn = function (e, t, n) {
var r = (n !== undefined ? n.dom : document).defaultView;
r && r.scrollTo(e, t)
},
Sn = function (e, t) {
dt().browser.isSafari() && T(e.dom.scrollIntoViewIfNeeded) ? e.dom.scrollIntoViewIfNeeded(!1) : e.dom.scrollIntoView(t)
},
Nn = function (e, t, n, r) {
return {
x: e,
y: t,
width: n,
height: r,
right: e + n,
bottom: t + r
}
},
En = function (e) {
var t, n, r = e === undefined ? window : e,
o = r.document,
i = wn(At.fromDom(o));
return n = (t = r) === undefined ? window : t, U.from(n.visualViewport).fold(function () {
var e = r.document.documentElement,
t = e.clientWidth,
n = e.clientHeight;
return Nn(i.left, i.top, t, n)
}, function (e) {
return Nn(Math.max(e.pageLeft, i.left), Math.max(e.pageTop, i.top), e.width, e.height)
})
},
kn = function (t) {
return function (e) {
return !!e && e.nodeType === t
}
},
_n = function (e) {
return !!e && !Object.getPrototypeOf(e)
},
An = kn(1),
Rn = function (e) {
var n = e.map(function (e) {
return e.toLowerCase()
});
return function (e) {
if (e && e.nodeName) {
var t = e.nodeName.toLowerCase();
return M(n, t)
}
return !1
}
},
Tn = function (r, e) {
var o = e.toLowerCase().split(" ");
return function (e) {
var t;
if (An(e))
for (t = 0; t < o.length; t++) {
var n = e.ownerDocument.defaultView.getComputedStyle(e, null);
if ((n ? n.getPropertyValue(r) : null) === o[t]) return !0
}
return !1
}
},
Dn = function (t) {
return function (e) {
return An(e) && e.hasAttribute(t)
}
},
On = function (e) {
return An(e) && e.hasAttribute("data-mce-bogus")
},
Bn = function (e) {
return An(e) && "TABLE" === e.tagName
},
Pn = function (t) {
return function (e) {
if (An(e)) {
if (e.contentEditable === t) return !0;
if (e.getAttribute("data-mce-contenteditable") === t) return !0
}
return !1
}
},
Ln = Rn(["textarea", "input"]),
In = kn(3),
Mn = kn(8),
Fn = kn(9),
Un = kn(11),
zn = Rn(["br"]),
jn = Rn(["img"]),
Hn = Pn("true"),
Vn = Pn("false"),
qn = Rn(["td", "th"]),
$n = Rn(["video", "audio", "object", "embed"]),
Wn = function (e) {
return e.style !== undefined && T(e.style.getPropertyValue)
},
Kn = function (e, t, n) {
if (!(q(n) || A(n) || O(n))) throw console.error("Invalid call to Attribute.set. Key ", t, ":: Value ", n, ":: Element ", e), new Error("Attribute value was not simple");
e.setAttribute(t, n + "")
},
Xn = function (e, t, n) {
Kn(e.dom, t, n)
},
Yn = function (e, t) {
var n = e.dom;
ue(t, function (e, t) {
Kn(n, t, e)
})
},
Gn = function (e, t) {
var n = e.dom.getAttribute(t);
return null === n ? undefined : n
},
Jn = function (e, t) {
return U.from(Gn(e, t))
},
Qn = function (e, t) {
e.dom.removeAttribute(t)
},
Zn = function (e, t) {
var n = e.dom;
ue(t, function (e, t) {
! function (e, t, n) {
if (!q(n)) throw console.error("Invalid call to CSS.set. Property ", t, ":: Value ", n, ":: Element ", e), new Error("CSS value must be a string: " + n);
Wn(e) && e.style.setProperty(t, n)
}(n, t, e)
})
},
er = function (e, t) {
var n = e.dom,
r = window.getComputedStyle(n).getPropertyValue(t);
return "" !== r || hn(e) ? r : tr(n, t)
},
tr = function (e, t) {
return Wn(e) ? e.style.getPropertyValue(t) : ""
},
nr = function (e, t) {
var n = e.dom,
r = tr(n, t);
return U.from(r).filter(function (e) {
return 0 < e.length
})
},
rr = function (e) {
var t = {},
n = e.dom;
if (Wn(n))
for (var r = 0; r < n.style.length; r++) {
var o = n.style.item(r);
t[o] = n.style[o]
}
return t
},
or = dt().browser,
ir = function (e) {
return Y(e, Ft)
},
ar = function (e, t) {
return e.children && M(e.children, t)
},
ur = function (e, t, n) {
var r, o, i, a = 0,
u = 0,
s = e.ownerDocument;
if (n = n || e, t) {
if (n === e && t.getBoundingClientRect && "static" === er(At.fromDom(e), "position")) return {
x: a = (o = t.getBoundingClientRect()).left + (s.documentElement.scrollLeft || e.scrollLeft) - s.documentElement.clientLeft,
y: u = o.top + (s.documentElement.scrollTop || e.scrollTop) - s.documentElement.clientTop
};
for (r = t; r && r !== n && r.nodeType && !ar(r, n);) a += r.offsetLeft || 0, u += r.offsetTop || 0, r = r.offsetParent;
for (r = t.parentNode; r && r !== n && r.nodeType && !ar(r, n);) a -= r.scrollLeft || 0, u -= r.scrollTop || 0, r = r.parentNode;
u += (i = At.fromDom(t), or.isFirefox() && "table" === Lt(i) ? ir(Gt(i)).filter(function (e) {
return "caption" === Lt(e)
}).bind(function (o) {
return ir(Yt(o)).map(function (e) {
var t = e.dom.offsetTop,
n = o.dom.offsetTop,
r = o.dom.offsetHeight;
return t <= n ? -r : 0
})
}).getOr(0) : 0)
}
return {
x: a,
y: u
}
},
sr = {},
cr = {
exports: sr
};
De = undefined, Oe = sr, Be = cr, Pe = undefined,
function (e) {
"object" == typeof Oe && void 0 !== Be ? Be.exports = e() : "function" == typeof De && De.amd ? De([], e) : ("undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this).EphoxContactWrapper = e()
}(function () {
return function l(i, a, u) {
function s(t, e) {
if (!a[t]) {
if (!i[t]) {
var n = "function" == typeof Pe && Pe;
if (!e && n) return n(t, !0);
if (c) return c(t, !0);
var r = new Error("Cannot find module '" + t + "'");
throw r.code = "MODULE_NOT_FOUND", r
}
var o = a[t] = {
exports: {}
};
i[t][0].call(o.exports, function (e) {
return s(i[t][1][e] || e)
}, o, o.exports, l, i, a, u)
}
return a[t].exports
}
for (var c = "function" == typeof Pe && Pe, e = 0; e < u.length; e++) s(u[e]);
return s
}({
1: [function (e, t, n) {
var r, o, i = t.exports = {};
function a() {
throw new Error("setTimeout has not been defined")
}
function u() {
throw new Error("clearTimeout has not been defined")
}
function s(e) {
if (r === setTimeout) return setTimeout(e, 0);
if ((r === a || !r) && setTimeout) return r = setTimeout, setTimeout(e, 0);
try {
return r(e, 0)
} catch (t) {
try {
return r.call(null, e, 0)
} catch (t) {
return r.call(this, e, 0)
}
}
}! function () {
try {
r = "function" == typeof setTimeout ? setTimeout : a
} catch (e) {
r = a
}
try {
o = "function" == typeof clearTimeout ? clearTimeout : u
} catch (e) {
o = u
}
}();
var c, l = [],
f = !1,
d = -1;
function m() {
f && c && (f = !1, c.length ? l = c.concat(l) : d = -1, l.length && p())
}
function p() {
if (!f) {
var e = s(m);
f = !0;
for (var t = l.length; t;) {
for (c = l, l = []; ++d < t;) c && c[d].run();
d = -1, t = l.length
}
c = null, f = !1,
function (e) {
if (o === clearTimeout) return clearTimeout(e);
if ((o === u || !o) && clearTimeout) return o = clearTimeout, clearTimeout(e);
try {
o(e)
} catch (t) {
try {
return o.call(null, e)
} catch (t) {
return o.call(this, e)
}
}
}(e)
}
}
function g(e, t) {
this.fun = e, this.array = t
}
function h() {}
i.nextTick = function (e) {
var t = new Array(arguments.length - 1);
if (1 < arguments.length)
for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
l.push(new g(e, t)), 1 !== l.length || f || s(p)
}, g.prototype.run = function () {
this.fun.apply(null, this.array)
}, i.title = "browser", i.browser = !0, i.env = {}, i.argv = [], i.version = "", i.versions = {}, i.on = h, i.addListener = h, i.once = h, i.off = h, i.removeListener = h, i.removeAllListeners = h, i.emit = h, i.prependListener = h, i.prependOnceListener = h, i.listeners = function (e) {
return []
}, i.binding = function (e) {
throw new Error("process.binding is not supported")
}, i.cwd = function () {
return "/"
}, i.chdir = function (e) {
throw new Error("process.chdir is not supported")
}, i.umask = function () {
return 0
}
}, {}],
2: [function (e, f, t) {
(function (t) {
function r() {}
function a(e) {
if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
if ("function" != typeof e) throw new TypeError("not a function");
this._state = 0, this._handled = !1, this._value = undefined, this._deferreds = [], l(e, this)
}
function o(r, o) {
for (; 3 === r._state;) r = r._value;
0 !== r._state ? (r._handled = !0, a._immediateFn(function () {
var e, t = 1 === r._state ? o.onFulfilled : o.onRejected;
if (null !== t) {
try {
e = t(r._value)
} catch (n) {
return void u(o.promise, n)
}
i(o.promise, e)
} else(1 === r._state ? i : u)(o.promise, r._value)
})) : r._deferreds.push(o)
}
function i(e, t) {
try {
if (t === e) throw new TypeError("A promise cannot be resolved with itself.");
if (t && ("object" == typeof t || "function" == typeof t)) {
var n = t.then;
if (t instanceof a) return e._state = 3, e._value = t, void s(e);
if ("function" == typeof n) return void l((r = n, o = t, function () {
r.apply(o, arguments)
}), e)
}
e._state = 1, e._value = t, s(e)
} catch (i) {
u(e, i)
}
var r, o
}
function u(e, t) {
e._state = 2, e._value = t, s(e)
}
function s(e) {
2 === e._state && 0 === e._deferreds.length && a._immediateFn(function () {
e._handled || a._unhandledRejectionFn(e._value)
});
for (var t = 0, n = e._deferreds.length; t < n; t++) o(e, e._deferreds[t]);
e._deferreds = null
}
function c(e, t, n) {
this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.promise = n
}
function l(e, t) {
var n = !1;
try {
e(function (e) {
n || (n = !0, i(t, e))
}, function (e) {
n || (n = !0, u(t, e))
})
} catch (r) {
if (n) return;
n = !0, u(t, r)
}
}
var e, n;
e = this, n = setTimeout, a.prototype["catch"] = function (e) {
return this.then(null, e)
}, a.prototype.then = function (e, t) {
var n = new this.constructor(r);
return o(this, new c(e, t, n)), n
}, a.all = function (e) {
var s = Array.prototype.slice.call(e);
return new a(function (o, i) {
if (0 === s.length) return o([]);
var a = s.length;
for (var e = 0; e < s.length; e++) ! function u(t, e) {
try {
if (e && ("object" == typeof e || "function" == typeof e)) {
var n = e.then;
if ("function" == typeof n) return void n.call(e, function (e) {
u(t, e)
}, i)
}
s[t] = e, 0 == --a && o(s)
} catch (r) {
i(r)
}
}(e, s[e])
})
}, a.resolve = function (t) {
return t && "object" == typeof t && t.constructor === a ? t : new a(function (e) {
e(t)
})
}, a.reject = function (n) {
return new a(function (e, t) {
t(n)
})
}, a.race = function (o) {
return new a(function (e, t) {
for (var n = 0, r = o.length; n < r; n++) o[n].then(e, t)
})
}, a._immediateFn = "function" == typeof t ? function (e) {
t(e)
} : function (e) {
n(e, 0)
}, a._unhandledRejectionFn = function (e) {
"undefined" != typeof console && console && console.warn("Possible Unhandled Promise Rejection:", e)
}, a._setImmediateFn = function (e) {
a._immediateFn = e
}, a._setUnhandledRejectionFn = function (e) {
a._unhandledRejectionFn = e
}, void 0 !== f && f.exports ? f.exports = a : e.Promise || (e.Promise = a)
}).call(this, e("timers").setImmediate)
}, {
timers: 3
}],
3: [function (s, e, c) {
(function (e, t) {
var r = s("process/browser.js").nextTick,
n = Function.prototype.apply,
o = Array.prototype.slice,
i = {},
a = 0;
function u(e, t) {
this._id = e, this._clearFn = t
}
c.setTimeout = function () {
return new u(n.call(setTimeout, window, arguments), clearTimeout)
}, c.setInterval = function () {
return new u(n.call(setInterval, window, arguments), clearInterval)
}, c.clearTimeout = c.clearInterval = function (e) {
e.close()
}, u.prototype.unref = u.prototype.ref = function () {}, u.prototype.close = function () {
this._clearFn.call(window, this._id)
}, c.enroll = function (e, t) {
clearTimeout(e._idleTimeoutId), e._idleTimeout = t
}, c.unenroll = function (e) {
clearTimeout(e._idleTimeoutId), e._idleTimeout = -1
}, c._unrefActive = c.active = function (e) {
clearTimeout(e._idleTimeoutId);
var t = e._idleTimeout;
0 <= t && (e._idleTimeoutId = setTimeout(function () {
e._onTimeout && e._onTimeout()
}, t))
}, c.setImmediate = "function" == typeof e ? e : function (e) {
var t = a++,
n = !(arguments.length < 2) && o.call(arguments, 1);
return i[t] = !0, r(function () {
i[t] && (n ? e.apply(null, n) : e.call(null), c.clearImmediate(t))
}), t
}, c.clearImmediate = "function" == typeof t ? t : function (e) {
delete i[e]
}
}).call(this, s("timers").setImmediate, s("timers").clearImmediate)
}, {
"process/browser.js": 1,
timers: 3
}],
4: [function (e, t, n) {
var r = e("promise-polyfill"),
o = "undefined" != typeof window ? window : Function("return this;")();
t.exports = {
boltExport: o.Promise || r
}
}, {
"promise-polyfill": 2
}]
}, {}, [4])(4)
});
var lr = cr.exports.boltExport,
fr = function (e) {
var n = U.none(),
t = [],
r = function (e) {
o() ? a(e) : t.push(e)
},
o = function () {
return n.isSome()
},
i = function (e) {
W(e, a)
},
a = function (t) {
n.each(function (e) {
setTimeout(function () {
t(e)
}, 0)
})
};
return e(function (e) {
o() || (n = U.some(e), i(t), t = [])
}), {
get: r,
map: function (n) {
return fr(function (t) {
r(function (e) {
t(n(e))
})
})
},
isReady: o
}
},
dr = {
nu: fr,
pure: function (t) {
return fr(function (e) {
e(t)
})
}
},
mr = function (e) {
setTimeout(function () {
throw e
}, 0)
},
pr = function (n) {
var e = function (e) {
n().then(e, mr)
};
return {
map: function (e) {
return pr(function () {
return n().then(e)
})
},
bind: function (t) {
return pr(function () {
return n().then(function (e) {
return t(e).toPromise()
})
})
},
anonBind: function (e) {
return pr(function () {
return n().then(function () {
return e.toPromise()
})
})
},
toLazy: function () {
return dr.nu(e)
},
toCached: function () {
var e = null;
return pr(function () {
return null === e && (e = n()), e
})
},
toPromise: n,
get: e
}
},
gr = function (e) {
return pr(function () {
return new lr(e)
})
},
hr = function (a, e) {
return e(function (r) {
var o = [],
i = 0;
0 === a.length ? r([]) : W(a, function (e, t) {
var n;
e.get((n = t, function (e) {
o[n] = e, ++i >= a.length && r(o)
}))
})
})
},
vr = function (n) {
return {
is: function (e) {
return n === e
},
isValue: k,
isError: C,
getOr: E(n),
getOrThunk: E(n),
getOrDie: E(n),
or: function (e) {
return vr(n)
},
orThunk: function (e) {
return vr(n)
},
fold: function (e, t) {
return t(n)
},
map: function (e) {
return vr(e(n))
},
mapError: function (e) {
return vr(n)
},
each: function (e) {
e(n)
},
bind: function (e) {
return e(n)
},
exists: function (e) {
return e(n)
},
forall: function (e) {
return e(n)
},
toOptional: function () {
return U.some(n)
}
}
},
yr = function (n) {
return {
is: C,
isValue: C,
isError: k,
getOr: o,
getOrThunk: function (e) {
return e()
},
getOrDie: function () {
return m(String(n))()
},
or: function (e) {
return e
},
orThunk: function (e) {
return e()
},
fold: function (e, t) {
return e(n)
},
map: function (e) {
return yr(n)
},
mapError: function (e) {
return yr(e(n))
},
each: V,
bind: function (e) {
return yr(n)
},
exists: C,
forall: k,
toOptional: U.none
}
},
br = {
value: vr,
error: yr,
fromOption: function (e, t) {
return e.fold(function () {
return yr(t)
}, vr)
}
},
Cr = function (a) {
if (!S(a)) throw new Error("cases must be an array");
if (0 === a.length) throw new Error("there must be at least one case");
var u = [],
n = {};
return W(a, function (e, r) {
var t = ie(e);
if (1 !== t.length) throw new Error("one and only one name per case");
var o = t[0],
i = e[o];
if (n[o] !== undefined) throw new Error("duplicate key detected:" + o);
if ("cata" === o) throw new Error("cannot have a case named cata (sorry)");
if (!S(i)) throw new Error("case arguments must be an array");
u.push(o), n[o] = function () {
var e = arguments.length;
if (e !== i.length) throw new Error("Wrong number of arguments to case " + o + ". Expected " + i.length + " (" + i + "), got " + e);
for (var n = new Array(e), t = 0; t < n.length; t++) n[t] = arguments[t];
return {
fold: function () {
if (arguments.length !== a.length) throw new Error("Wrong number of arguments to fold. Expected " + a.length + ", got " + arguments.length);
return arguments[r].apply(null, n)
},
match: function (e) {
var t = ie(e);
if (u.length !== t.length) throw new Error("Wrong number of arguments to match. Expected: " + u.join(",") + "\nActual: " + t.join(","));
if (!Q(u, function (e) {
return M(t, e)
})) throw new Error("Not all branches were specified when using match. Specified: " + t.join(", ") + "\nRequired: " + u.join(", "));
return e[o].apply(null, n)
},
log: function (e) {
console.log(e, {
constructors: u,
constructor: o,
params: n
})
}
}
}
}), n
},
wr = (Cr([{
bothErrors: ["error1", "error2"]
}, {
firstError: ["error1", "value2"]
}, {
secondError: ["value1", "error2"]
}, {
bothValues: ["value1", "value2"]
}]), function (e) {
return e.fold(o, o)
});
function xr(e, t, n, r, o) {
return e(n, r) ? U.some(n) : T(o) && o(n) ? U.none() : t(n, r, o)
}
var Sr, Nr, Er, kr, _r = function (e, t, n) {
for (var r = e.dom, o = T(n) ? n : C; r.parentNode;) {
r = r.parentNode;
var i = At.fromDom(r);
if (t(i)) return U.some(i);
if (o(i)) break
}
return U.none()
},
Ar = function (e, t, n) {
return xr(function (e, t) {
return t(e)
}, _r, e, t, n)
},
Rr = function (e, t) {
return Y(e.dom.childNodes, function (e) {
return t(At.fromDom(e))
}).map(At.fromDom)
},
Tr = function (e, t, n) {
return _r(e, function (e) {
return Tt(e, t)
}, n)
},
Dr = function (e, t) {
return n = t, o = (r = e) === undefined ? document : r.dom, Dt(o) ? U.none() : U.from(o.querySelector(n)).map(At.fromDom);
var n, r, o
},
Or = function (e, t, n) {
return xr(Tt, Tr, e, t, n)
},
Br = window.Promise ? window.Promise : (Sr = Array.isArray || function (e) {
return "[object Array]" === Object.prototype.toString.call(e)
}, Er = (Nr = function (e) {
if ("object" != typeof this) throw new TypeError("Promises must be constructed via new");
if ("function" != typeof e) throw new TypeError("not a function");
this._state = null, this._value = null, this._deferreds = [], zr(e, Pr(Ir, this), Pr(Mr, this))
}).immediateFn || "function" == typeof setImmediate && setImmediate || function (e) {
setTimeout(e, 1)
}, Nr.prototype["catch"] = function (e) {
return this.then(null, e)
}, Nr.prototype.then = function (n, r) {
var o = this;
return new Nr(function (e, t) {
Lr.call(o, new Ur(n, r, e, t))
})
}, Nr.all = function () {
var s = Array.prototype.slice.call(1 === arguments.length && Sr(arguments[0]) ? arguments[0] : arguments);
return new Nr(function (o, i) {
if (0 === s.length) return o([]);
for (var a = s.length, e = 0; e < s.length; e++) ! function u(t, e) {
try {
if (e && ("object" == typeof e || "function" == typeof e)) {
var n = e.then;
if ("function" == typeof n) return void n.call(e, function (e) {
u(t, e)
}, i)
}
s[t] = e, 0 == --a && o(s)
} catch (r) {
i(r)
}
}(e, s[e])
})
}, Nr.resolve = function (t) {
return t && "object" == typeof t && t.constructor === Nr ? t : new Nr(function (e) {
e(t)
})
}, Nr.reject = function (n) {
return new Nr(function (e, t) {
t(n)
})
}, Nr.race = function (o) {
return new Nr(function (e, t) {
for (var n = 0, r = o.length; n < r; n++) o[n].then(e, t)
})
}, Nr);
function Pr(e, t) {
return function () {
e.apply(t, arguments)
}
}
function Lr(r) {
var o = this;
null !== this._state ? Er(function () {
var e, t = o._state ? r.onFulfilled : r.onRejected;
if (null !== t) {
try {
e = t(o._value)
} catch (n) {
return void r.reject(n)
}
r.resolve(e)
} else(o._state ? r.resolve : r.reject)(o._value)
}) : this._deferreds.push(r)
}
function Ir(e) {
try {
if (e === this) throw new TypeError("A promise cannot be resolved with itself.");
if (e && ("object" == typeof e || "function" == typeof e)) {
var t = e.then;
if ("function" == typeof t) return void zr(Pr(t, e), Pr(Ir, this), Pr(Mr, this))
}
this._state = !0, this._value = e, Fr.call(this)
} catch (n) {
Mr.call(this, n)
}
}
function Mr(e) {
this._state = !1, this._value = e, Fr.call(this)
}
function Fr() {
for (var e = 0, t = this._deferreds.length; e < t; e++) Lr.call(this, this._deferreds[e]);
this._deferreds = null
}
function Ur(e, t, n, r) {
this.onFulfilled = "function" == typeof e ? e : null, this.onRejected = "function" == typeof t ? t : null, this.resolve = n, this.reject = r
}
function zr(e, t, n) {
var r = !1;
try {
e(function (e) {
r || (r = !0, t(e))
}, function (e) {
r || (r = !0, n(e))
})
} catch (o) {
if (r) return;
r = !0, n(o)
}
}
var jr = function (e, t) {
return "number" != typeof t && (t = 0), setTimeout(e, t)
},
Hr = function (e, t) {
return "number" != typeof t && (t = 1), setInterval(e, t)
},
Vr = function (n, r) {
var o, e = function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
clearTimeout(o), o = jr(function () {
n.apply(this, e)
}, r)
};
return e.stop = function () {
clearTimeout(o)
}, e
},
qr = {
requestAnimationFrame: function (e, t) {
kr ? kr.then(e) : kr = new Br(function (e) {
! function (e, t) {
for (var n = window.requestAnimationFrame, r = ["ms", "moz", "webkit"], o = 0; o < r.length && !n; o++) n = window[r[o] + "RequestAnimationFrame"];
(n = n || function (e) {
window.setTimeout(e, 0)
})(e, t)
}(e, t = t || document.body)
}).then(e)
},
setTimeout: jr,
setInterval: Hr,
setEditorTimeout: function (e, t, n) {
return jr(function () {
e.removed || t()
}, n)
},
setEditorInterval: function (e, t, n) {
var r = Hr(function () {
e.removed ? clearInterval(r) : t()
}, n);
return r
},
debounce: Vr,
throttle: Vr,
clearInterval: function (e) {
return clearInterval(e)
},
clearTimeout: function (e) {
return clearTimeout(e)
}
};
function $r(m, p) {
void 0 === p && (p = {});
var g = 0,
h = {},
v = At.fromDom(m),
y = Vt(v),
b = p.maxLoadTime || 5e3,
n = function (e, t, n) {
var r, o = kt._addCacheSuffix(e),
i = ge(h, o).getOrThunk(function () {
return {
id: "mce-u" + g++,
passed: [],
failed: [],
count: 0
}
});
(h[o] = i).count++;
var a, u, s, c = function (e, t) {
for (var n = e.length; n--;) e[n]();
i.status = t, i.passed = [], i.failed = [], r && (r.onload = null, r.onerror = null, r = null)
},
l = function () {
return c(i.passed, 2)
},
f = function () {
return c(i.failed, 3)
},
d = function () {
var e;
e = d,
function () {
for (var e = m.styleSheets, t = e.length; t--;) {
var n = e[t].ownerNode;
if (n && n.id === r.id) return l(), 1
}
}() || (Date.now() - u < b ? qr.setTimeout(e) : f())
};
t && i.passed.push(t), n && i.failed.push(n), 1 !== i.status && (2 !== i.status ? 3 !== i.status ? (i.status = 1, a = At.fromTag("link", y.dom), Yn(a, {
rel: "stylesheet",
type: "text/css",
id: i.id
}), u = Date.now(), p.contentCssCors && Xn(a, "crossOrigin", "anonymous"), p.referrerPolicy && Xn(a, "referrerpolicy", p.referrerPolicy), (r = a.dom).onload = d, r.onerror = f, s = a, fn(on(v), s), Xn(a, "href", o)) : f() : l())
},
o = function (t) {
return gr(function (e) {
n(t, a(e, E(br.value(t))), a(e, E(br.error(t))))
})
},
t = function (e) {
var r = kt._addCacheSuffix(e);
ge(h, r).each(function (e) {
var t, n;
0 == --e.count && (delete h[r], t = e.id, n = on(v), Dr(n, "#" + t).each(pn))
})
};
return {
load: n,
loadAll: function (e, n, r) {
var t;
t = z(e, o), hr(t, gr).get(function (e) {
var t = function (e, t) {
for (var n = [], r = [], o = 0, i = e.length; o < i; o++) {
var a = e[o];
(t(a, o) ? n : r).push(a)
}
return {
pass: n,
fail: r
}
}(e, function (e) {
return e.isValue()
});
0 < t.fail.length ? r(t.fail.map(wr)) : n(t.pass.map(wr))
})
},
unload: t,
unloadAll: function (e) {
W(e, function (e) {
t(e)
})
},
_setReferrerPolicy: function (e) {
p.referrerPolicy = e
}
}
}
var Wr, Kr = (Wr = new WeakMap, {
forElement: function (e, t) {
var n = rn(e).dom;
return U.from(Wr.get(n)).getOrThunk(function () {
var e = $r(n, t);
return Wr.set(n, e), e
})
}
}),
Xr = (Yr.prototype.current = function () {
return this.node
}, Yr.prototype.next = function (e) {
return this.node = this.findSibling(this.node, "firstChild", "nextSibling", e), this.node
}, Yr.prototype.prev = function (e) {
return this.node = this.findSibling(this.node, "lastChild", "previousSibling", e), this.node
}, Yr.prototype.prev2 = function (e) {
return this.node = this.findPreviousNode(this.node, "lastChild", "previousSibling", e), this.node
}, Yr.prototype.findSibling = function (e, t, n, r) {
var o, i;
if (e) {
if (!r && e[t]) return e[t];
if (e !== this.rootNode) {
if (o = e[n]) return o;
for (i = e.parentNode; i && i !== this.rootNode; i = i.parentNode)
if (o = i[n]) return o
}
}
}, Yr.prototype.findPreviousNode = function (e, t, n, r) {
var o, i, a;
if (e) {
if (o = e[n], this.rootNode && o === this.rootNode) return;
if (o) {
if (!r)
for (a = o[t]; a; a = a[t])
if (!a[t]) return a;
return o
}
if ((i = e.parentNode) && i !== this.rootNode) return i
}
}, Yr);
function Yr(e, t) {
this.node = e, this.rootNode = t, this.current = this.current.bind(this), this.next = this.next.bind(this), this.prev = this.prev.bind(this), this.prev2 = this.prev2.bind(this)
}
var Gr, Jr, Qr = function (t) {
var n;
return function (e) {
return (n = n || function (e, t) {
for (var n = {}, r = 0, o = e.length; r < o; r++) {
var i = e[r];
n[String(i)] = t(i, r)
}
return n
}(t, k)).hasOwnProperty(Lt(e))
}
},
Zr = Qr(["h1", "h2", "h3", "h4", "h5", "h6"]),
eo = Qr(["article", "aside", "details", "div", "dt", "figcaption", "footer", "form", "fieldset", "header", "hgroup", "html", "main", "nav", "section", "summary", "body", "p", "dl", "multicol", "dd", "figure", "address", "center", "blockquote", "h1", "h2", "h3", "h4", "h5", "h6", "listing", "xmp", "pre", "plaintext", "menu", "dir", "ul", "ol", "li", "hr", "table", "tbody", "thead", "tfoot", "th", "tr", "td", "caption"]),
to = function (e) {
return Ft(e) && !eo(e)
},
no = function (e) {
return Ft(e) && "br" === Lt(e)
},
ro = Qr(["h1", "h2", "h3", "h4", "h5", "h6", "p", "div", "address", "pre", "form", "blockquote", "center", "dir", "fieldset", "header", "footer", "article", "section", "hgroup", "aside", "nav", "figure"]),
oo = Qr(["ul", "ol", "dl"]),
io = Qr(["li", "dd", "dt"]),
ao = Qr(["thead", "tbody", "tfoot"]),
uo = Qr(["td", "th"]),
so = Qr(["pre", "script", "textarea", "style"]),
co = "\ufeff",
lo = "\xa0",
fo = co,
mo = function (e) {
return e === co
},
po = function (e) {
return e.replace(/\uFEFF/g, "")
},
go = An,
ho = In,
vo = function (e) {
return ho(e) && (e = e.parentNode), go(e) && e.hasAttribute("data-mce-caret")
},
yo = function (e) {
return ho(e) && mo(e.data)
},
bo = function (e) {
return vo(e) || yo(e)
},
Co = function (e) {
return e.firstChild !== e.lastChild || !zn(e.firstChild)
},
wo = function (e) {
var t = e.container();
return !!In(t) && (t.data.charAt(e.offset()) === fo || e.isAtStart() && yo(t.previousSibling))
},
xo = function (e) {
var t = e.container();
return !!In(t) && (t.data.charAt(e.offset() - 1) === fo || e.isAtEnd() && yo(t.nextSibling))
},
So = function (e, t, n) {
var r, o = t.ownerDocument.createElement(e);
o.setAttribute("data-mce-caret", n ? "before" : "after"), o.setAttribute("data-mce-bogus", "all"), o.appendChild(((r = document.createElement("br")).setAttribute("data-mce-bogus", "1"), r));
var i = t.parentNode;
return n ? i.insertBefore(o, t) : t.nextSibling ? i.insertBefore(o, t.nextSibling) : i.appendChild(o), o
},
No = function (e) {
return ho(e) && e.data[0] === fo
},
Eo = function (e) {
return ho(e) && e.data[e.data.length - 1] === fo
},
ko = function (e) {
return e && e.hasAttribute("data-mce-caret") ? (t = e.getElementsByTagName("br"), n = t[t.length - 1], On(n) && n.parentNode.removeChild(n), e.removeAttribute("data-mce-caret"), e.removeAttribute("data-mce-bogus"), e.removeAttribute("style"), e.removeAttribute("_moz_abspos"), e) : null;
var t, n
},
_o = Hn,
Ao = Vn,
Ro = zn,
To = In,
Do = Rn(["script", "style", "textarea"]),
Oo = Rn(["img", "input", "textarea", "hr", "iframe", "video", "audio", "object", "embed"]),
Bo = Rn(["table"]),
Po = bo,
Lo = function (e) {
return !Po(e) && (To(e) ? !Do(e.parentNode) : Oo(e) || Ro(e) || Bo(e) || Io(e))
},
Io = function (e) {
return !1 === (An(t = e) && "true" === t.getAttribute("unselectable")) && Ao(e);
var t
},
Mo = function (e, t) {
return Lo(e) && function (e, t) {
for (e = e.parentNode; e && e !== t; e = e.parentNode) {
if (Io(e)) return !1;
if (_o(e)) return !0
}
return !0
}(e, t)
},
Fo = /^[ \t\r\n]*$/,
Uo = function (e) {
return Fo.test(e)
},
zo = function (e, t) {
var n, r, o, i = At.fromDom(t),
a = At.fromDom(e);
return n = a, r = "pre,code", o = N(Ot, i), Tr(n, r, o).isSome()
},
jo = function (e, t) {
return Lo(e) && !1 === (o = t, In(r = e) && Uo(r.data) && !1 === zo(r, o)) || An(n = e) && "A" === n.nodeName && !n.hasAttribute("href") && (n.hasAttribute("name") || n.hasAttribute("id")) || Ho(e);
var n, r, o
},
Ho = Dn("data-mce-bookmark"),
Vo = Dn("data-mce-bogus"),
qo = (Gr = "data-mce-bogus", Jr = "all", function (e) {
return An(e) && e.getAttribute(Gr) === Jr
}),
$o = function (e, t) {
return void 0 === t && (t = !0),
function (e, t) {
var n, r = 0;
if (jo(e, e)) return !1;
if (!(n = e.firstChild)) return !0;
var o = new Xr(n, e);
do {
if (t) {
if (qo(n)) {
n = o.next(!0);
continue
}
if (Vo(n)) {
n = o.next();
continue
}
}
if (zn(n)) r++, n = o.next();
else {
if (jo(n, e)) return !1;
n = o.next()
}
} while (n);
return r <= 1
}(e.dom, t)
},
Wo = function (e, t) {
return D(e) && (jo(e, t) || to(At.fromDom(e)))
},
Ko = function (e) {
return "span" === e.nodeName.toLowerCase() && "bookmark" === e.getAttribute("data-mce-type")
},
Xo = function (e, t) {
return In(e) && 0 < e.data.length && (o = new Xr(n = e, r = t).prev(!1), i = new Xr(n, r).next(!1), a = R(o) || Wo(o, r), u = R(i) || Wo(i, r), a && u);
var n, r, o, i, a, u
},
Yo = function (e, t, n) {
var r = n || t;
if (An(t) && Ko(t)) return t;
for (var o, i, a, u = t.childNodes, s = u.length - 1; 0 <= s; s--) Yo(e, u[s], r);
return !An(t) || 1 === (o = t.childNodes).length && Ko(o[0]) && t.parentNode.insertBefore(o[0], t), Un(a = t) || Fn(a) || jo(t, r) || An(i = t) && 0 < i.childNodes.length || Xo(t, r) || e.remove(t), t
},
Go = kt.makeMap,
Jo = /[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
Qo = /[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,
Zo = /[<>&\"\']/g,
ei = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi,
ti = {
128: "\u20ac",
130: "\u201a",
131: "\u0192",
132: "\u201e",
133: "\u2026",
134: "\u2020",
135: "\u2021",
136: "\u02c6",
137: "\u2030",
138: "\u0160",
139: "\u2039",
140: "\u0152",
142: "\u017d",
145: "\u2018",
146: "\u2019",
147: "\u201c",
148: "\u201d",
149: "\u2022",
150: "\u2013",
151: "\u2014",
152: "\u02dc",
153: "\u2122",
154: "\u0161",
155: "\u203a",
156: "\u0153",
158: "\u017e",
159: "\u0178"
},
ni = {
'"': """,
"'": "'",
"<": "<",
">": ">",
"&": "&",
"`": "`"
},
ri = {
"<": "<",
">": ">",
"&": "&",
""": '"',
"'": "'"
},
oi = function (e, t) {
var n, r, o, i = {};
if (e) {
for (e = e.split(","), t = t || 10, n = 0; n < e.length; n += 2) r = String.fromCharCode(parseInt(e[n], t)), ni[r] || (o = "&" + e[n + 1] + ";", i[r] = o, i[o] = r);
return i
}
},
ii = oi("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro", 32),
ai = function (e, t) {
return e.replace(t ? Jo : Qo, function (e) {
return ni[e] || e
})
},
ui = function (e, t) {
return e.replace(t ? Jo : Qo, function (e) {
return 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : ni[e] || "&#" + e.charCodeAt(0) + ";"
})
},
si = function (e, t, n) {
return n = n || ii, e.replace(t ? Jo : Qo, function (e) {
return ni[e] || n[e] || e
})
},
ci = {
encodeRaw: ai,
encodeAllRaw: function (e) {
return ("" + e).replace(Zo, function (e) {
return ni[e] || e
})
},
encodeNumeric: ui,
encodeNamed: si,
getEncodeFunc: function (e, t) {
var n = oi(t) || ii,
r = Go(e.replace(/\+/g, ","));
return r.named && r.numeric ? function (e, t) {
return e.replace(t ? Jo : Qo, function (e) {
return ni[e] !== undefined ? ni[e] : n[e] !== undefined ? n[e] : 1 < e.length ? "&#" + (1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320) + 65536) + ";" : "&#" + e.charCodeAt(0) + ";"
})
} : r.named ? t ? function (e, t) {
return si(e, t, n)
} : si : r.numeric ? ui : ai
},
decode: function (e) {
return e.replace(ei, function (e, t) {
return t ? 65535 < (t = "x" === t.charAt(0).toLowerCase() ? parseInt(t.substr(1), 16) : parseInt(t, 10)) ? (t -= 65536, String.fromCharCode(55296 + (t >> 10), 56320 + (1023 & t))) : ti[t] || String.fromCharCode(t) : ri[e] || ii[e] || (n = e, (r = At.fromTag("div").dom).innerHTML = n, r.textContent || r.innerText || n);
var n, r
})
}
},
li = {},
fi = {},
di = kt.makeMap,
mi = kt.each,
pi = kt.extend,
gi = kt.explode,
hi = kt.inArray,
vi = function (e, t) {
return (e = kt.trim(e)) ? e.split(t || " ") : []
},
yi = function (e) {
var s, t, n, r, o, i, c = {},
a = function (e, t, n) {
var r, o, i = function (e, t) {
for (var n = {}, r = 0, o = e.length; r < o; r++) n[e[r]] = t || {};
return n
};
t = t || "", "string" == typeof (n = n || []) && (n = vi(n));
for (var a = vi(e), u = a.length; u--;) o = {
attributes: i(r = vi([s, t].join(" "))),
attributesOrder: r,
children: i(n, fi)
}, c[a[u]] = o
},
u = function (e, t) {
for (var n, r, o, i = vi(e), a = i.length, u = vi(t); a--;)
for (n = c[i[a]], r = 0, o = u.length; r < o; r++) n.attributes[u[r]] = {}, n.attributesOrder.push(u[r])
};
return li[e] ? li[e] : (s = "id accesskey class dir lang style tabindex title role", t = "address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul", n = "a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment", "html4" !== e && (s += " contenteditable contextmenu draggable dropzone hidden spellcheck translate", t += " article aside details dialog figure main header footer hgroup section nav", n += " audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"), "html5-strict" !== e && (s += " xml:lang", n = [n, i = "acronym applet basefont big font strike tt"].join(" "), mi(vi(i), function (e) {
a(e, "", n)
}), t = [t, o = "center dir isindex noframes"].join(" "), r = [t, n].join(" "), mi(vi(o), function (e) {
a(e, "", r)
})), r = r || [t, n].join(" "), a("html", "manifest", "head body"), a("head", "", "base command link meta noscript script style title"), a("title hr noscript br"), a("base", "href target"), a("link", "href rel media hreflang type sizes hreflang"), a("meta", "name http-equiv content charset"), a("style", "media type scoped"), a("script", "src async defer type charset"), a("body", "onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload", r), a("address dt dd div caption", "", r), a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn", "", n), a("blockquote", "cite", r), a("ol", "reversed start type", "li"), a("ul", "", "li"), a("li", "value", r), a("dl", "", "dt dd"), a("a", "href target rel media hreflang type", n), a("q", "cite", n), a("ins del", "cite datetime", r), a("img", "src sizes srcset alt usemap ismap width height"), a("iframe", "src name width height", r), a("embed", "src type width height"), a("object", "data type typemustmatch name usemap form width height", [r, "param"].join(" ")), a("param", "name value"), a("map", "name", [r, "area"].join(" ")), a("area", "alt coords shape href target rel media hreflang type"), a("table", "border", "caption colgroup thead tfoot tbody tr" + ("html4" === e ? " col" : "")), a("colgroup", "span", "col"), a("col", "span"), a("tbody thead tfoot", "", "tr"), a("tr", "", "td th"), a("td", "colspan rowspan headers", r), a("th", "colspan rowspan headers scope abbr", r), a("form", "accept-charset action autocomplete enctype method name novalidate target", r), a("fieldset", "disabled form name", [r, "legend"].join(" ")), a("label", "form for", n), a("input", "accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"), a("button", "disabled form formaction formenctype formmethod formnovalidate formtarget name type value", "html4" === e ? r : n), a("select", "disabled form multiple name required size", "option optgroup"), a("optgroup", "disabled label", "option"), a("option", "disabled label selected value"), a("textarea", "cols dirname disabled form maxlength name readonly required rows wrap"), a("menu", "type label", [r, "li"].join(" ")), a("noscript", "", r), "html4" !== e && (a("wbr"), a("ruby", "", [n, "rt rp"].join(" ")), a("figcaption", "", r), a("mark rt rp summary bdi", "", n), a("canvas", "width height", r), a("video", "src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered", [r, "track source"].join(" ")), a("audio", "src crossorigin preload autoplay mediagroup loop muted controls buffered volume", [r, "track source"].join(" ")), a("picture", "", "img source"), a("source", "src srcset type media sizes"), a("track", "kind src srclang label default"), a("datalist", "", [n, "option"].join(" ")), a("article section nav aside main header footer", "", r), a("hgroup", "", "h1 h2 h3 h4 h5 h6"), a("figure", "", [r, "figcaption"].join(" ")), a("time", "datetime", n), a("dialog", "open", r), a("command", "type label icon disabled checked radiogroup command"), a("output", "for form name", n), a("progress", "value max", n), a("meter", "value min max low high optimum", n), a("details", "open", [r, "summary"].join(" ")), a("keygen", "autofocus challenge disabled form keytype name")), "html5-strict" !== e && (u("script", "language xml:space"), u("style", "xml:space"), u("object", "declare classid code codebase codetype archive standby align border hspace vspace"), u("embed", "align name hspace vspace"), u("param", "valuetype type"), u("a", "charset name rev shape coords"), u("br", "clear"), u("applet", "codebase archive code object alt name width height align hspace vspace"), u("img", "name longdesc align border hspace vspace"), u("iframe", "longdesc frameborder marginwidth marginheight scrolling align"), u("font basefont", "size color face"), u("input", "usemap align"), u("select"), u("textarea"), u("h1 h2 h3 h4 h5 h6 div p legend caption", "align"), u("ul", "type compact"), u("li", "type"), u("ol dl menu dir", "compact"), u("pre", "width xml:space"), u("hr", "align noshade size width"), u("isindex", "prompt"), u("table", "summary width frame rules cellspacing cellpadding align bgcolor"), u("col", "width align char charoff valign"), u("colgroup", "width align char charoff valign"), u("thead", "align char charoff valign"), u("tr", "align char charoff valign bgcolor"), u("th", "axis align char charoff valign nowrap bgcolor width height"), u("form", "accept"), u("td", "abbr axis scope align char charoff valign nowrap bgcolor width height"), u("tfoot", "align char charoff valign"), u("tbody", "align char charoff valign"), u("area", "nohref"), u("body", "background bgcolor text link vlink alink")), "html4" !== e && (u("input button select textarea", "autofocus"), u("input textarea", "placeholder"), u("a", "download"), u("link script img", "crossorigin"), u("img", "loading"), u("iframe", "sandbox seamless allowfullscreen loading")), mi(vi("a form meter progress dfn"), function (e) {
c[e] && delete c[e].children[e]
}), delete c.caption.children.table, delete c.script, li[e] = c)
},
bi = function (e, n) {
var r;
return e && (r = {}, "string" == typeof e && (e = {
"*": e
}), mi(e, function (e, t) {
r[t] = r[t.toUpperCase()] = ("map" === n ? di : gi)(e, /[, ]/)
})), r
};
function Ci(i) {
var S = {},
u = {},
N = [],
s = {},
t = {},
e = function (e, t, n) {
var r = i[e];
return r ? r = di(r, /[, ]/, di(r.toUpperCase(), /[, ]/)) : (r = li[e]) || (r = di(t, " ", di(t.toUpperCase(), " ")), r = pi(r, n), li[e] = r), r
},
n = yi((i = i || {}).schema);
!1 === i.verify_html && (i.valid_elements = "*[*]");
var r = bi(i.valid_styles),
o = bi(i.invalid_styles, "map"),
a = bi(i.valid_classes, "map"),
c = e("whitespace_elements", "pre script noscript style textarea video audio iframe object code"),
l = e("self_closing_elements", "colgroup dd dt li option p td tfoot th thead tr"),
f = e("short_ended_elements", "area base basefont br col frame hr img input isindex link meta param embed source wbr track"),
d = e("boolean_attributes", "checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),
m = "td th iframe video audio object script code",
p = e("non_empty_elements", m + " pre", f),
g = e("move_caret_before_on_enter_elements", m + " table", f),
h = e("text_block_elements", "h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside main nav figure"),
v = e("block_elements", "hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption details summary", h),
y = e("text_inline_elements", "span strong b em i font strike u var cite dfn code mark q sup sub samp");
mi((i.special || "script noscript iframe noframes noembed title style textarea xmp").split(" "), function (e) {
t[e] = new RegExp("</" + e + "[^>]*>", "gi")
});
var E = function (e) {
return new RegExp("^" + e.replace(/([?+*])/g, ".$1") + "$")
},
b = function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d, m, p, g, h, v, y, b = /^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)])?$/,
C = /^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,
w = /[*?+]/;
if (e) {
var x = vi(e, ",");
for (S["@"] && (h = S["@"].attributes, v = S["@"].attributesOrder), t = 0, n = x.length; t < n; t++)
if (i = b.exec(x[t])) {
if (p = i[1], c = i[2], g = i[3], s = i[5], a = {
attributes: d = {},
attributesOrder: m = []
}, "#" === p && (a.paddEmpty = !0), "-" === p && (a.removeEmpty = !0), "!" === i[4] && (a.removeEmptyAttrs = !0), h && (ue(h, function (e, t) {
d[t] = e
}), m.push.apply(m, v)), s)
for (r = 0, o = (s = vi(s, "|")).length; r < o; r++)
if (i = C.exec(s[r])) {
if (u = {}, f = i[1], l = i[2].replace(/[\\:]:/g, ":"), p = i[3], y = i[4], "!" === f && (a.attributesRequired = a.attributesRequired || [], a.attributesRequired.push(l), u.required = !0), "-" === f) {
delete d[l], m.splice(hi(m, l), 1);
continue
}
p && ("=" === p && (a.attributesDefault = a.attributesDefault || [], a.attributesDefault.push({
name: l,
value: y
}), u.defaultValue = y), ":" === p && (a.attributesForced = a.attributesForced || [], a.attributesForced.push({
name: l,
value: y
}), u.forcedValue = y), "<" === p && (u.validValues = di(y, "?"))), w.test(l) ? (a.attributePatterns = a.attributePatterns || [], u.pattern = E(l), a.attributePatterns.push(u)) : (d[l] || m.push(l), d[l] = u)
} h || "@" !== c || (h = d, v = m), g && (a.outputName = c, S[g] = a), w.test(c) ? (a.pattern = E(c), N.push(a)) : S[c] = a
}
}
},
C = function (e) {
S = {}, N = [], b(e), mi(n, function (e, t) {
u[t] = e.children
})
},
w = function (e) {
var a = /^(~)?(.+)$/;
e && (li.text_block_elements = li.block_elements = null, mi(vi(e, ","), function (e) {
var t, n = a.exec(e),
r = "~" === n[1],
o = r ? "span" : "div",
i = n[2];
u[i] = u[o], s[i] = o, r || (v[i.toUpperCase()] = {}, v[i] = {}), S[i] || (t = S[o], delete(t = pi({}, t)).removeEmptyAttrs, delete t.removeEmpty, S[i] = t), mi(u, function (e, t) {
e[o] && (u[t] = e = pi({}, u[t]), e[i] = e[o])
})
}))
},
x = function (e) {
var o = /^([+\-]?)([A-Za-z0-9_\-.\u00b7\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u037d\u037f-\u1fff\u200c-\u200d\u203f-\u2040\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd]+)\[([^\]]+)]$/;
li[i.schema] = null, e && mi(vi(e, ","), function (e) {
var t, n, r = o.exec(e);
r && (n = r[1], t = n ? u[r[2]] : u[r[2]] = {
"#comment": {}
}, t = u[r[2]], mi(vi(r[3], "|"), function (e) {
"-" === n ? delete t[e] : t[e] = {}
}))
})
},
k = function (e) {
var t, n = S[e];
if (n) return n;
for (t = N.length; t--;)
if ((n = N[t]).pattern.test(e)) return n
};
i.valid_elements ? C(i.valid_elements) : (mi(n, function (e, t) {
S[t] = {
attributes: e.attributes,
attributesOrder: e.attributesOrder
}, u[t] = e.children
}), "html5" !== i.schema && mi(vi("strong/b em/i"), function (e) {
var t = vi(e, "/");
S[t[1]].outputName = t[0]
}), mi(vi("ol ul sub sup blockquote span font a table tbody strong em b i"), function (e) {
S[e] && (S[e].removeEmpty = !0)
}), mi(vi("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"), function (e) {
S[e].paddEmpty = !0
}), mi(vi("span"), function (e) {
S[e].removeEmptyAttrs = !0
})), w(i.custom_elements), x(i.valid_children), b(i.extended_valid_elements), x("+ol[ul|ol],+ul[ul|ol]"), mi({
dd: "dl",
dt: "dl",
li: "ul ol",
td: "tr",
th: "tr",
tr: "tbody thead tfoot",
tbody: "table",
thead: "table",
tfoot: "table",
legend: "fieldset",
area: "map",
param: "video audio object"
}, function (e, t) {
S[t] && (S[t].parentsRequired = vi(e))
}), i.invalid_elements && mi(gi(i.invalid_elements), function (e) {
S[e] && delete S[e]
}), k("span") || b("span[!data-mce-type|*]");
return {
children: u,
elements: S,
getValidStyles: function () {
return r
},
getValidClasses: function () {
return a
},
getBlockElements: function () {
return v
},
getInvalidStyles: function () {
return o
},
getShortEndedElements: function () {
return f
},
getTextBlockElements: function () {
return h
},
getTextInlineElements: function () {
return y
},
getBoolAttrs: function () {
return d
},
getElementRule: k,
getSelfClosingElements: function () {
return l
},
getNonEmptyElements: function () {
return p
},
getMoveCaretBeforeOnEnterElements: function () {
return g
},
getWhiteSpaceElements: function () {
return c
},
getSpecialElements: function () {
return t
},
isValidChild: function (e, t) {
var n = u[e.toLowerCase()];
return !(!n || !n[t.toLowerCase()])
},
isValid: function (e, t) {
var n, r, o = k(e);
if (o) {
if (!t) return !0;
if (o.attributes[t]) return !0;
if (n = o.attributePatterns)
for (r = n.length; r--;)
if (n[r].pattern.test(e)) return !0
}
return !1
},
getCustomElements: function () {
return s
},
addValidElements: b,
setValidElements: C,
addCustomElements: w,
addValidChildren: x
}
}
var wi = function (e, t, n, r) {
var o = function (e) {
return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e
};
return "#" + o(t) + o(n) + o(r)
},
xi = function (b, e) {
var s, c, C = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,
w = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,
x = /\s*([^:]+):\s*([^;]+);?/g,
S = /\s+$/,
N = {},
E = co;
b = b || {}, e && (s = e.getValidStyles(), c = e.getInvalidStyles());
for (var t = ("\\\" \\' \\; \\: ; : " + E).split(" "), k = 0; k < t.length; k++) N[t[k]] = E + k, N[E + k] = t[k];
return {
toHex: function (e) {
return e.replace(C, wi)
},
parse: function (e) {
var t, n, r, o, i, a, u, s, c = {},
l = b.url_converter,
f = b.url_converter_scope || this,
d = function (e, t, n) {
var r = c[e + "-top" + t];
if (r) {
var o = c[e + "-right" + t];
if (o) {
var i = c[e + "-bottom" + t];
if (i) {
var a = c[e + "-left" + t];
if (a) {
var u = [r, o, i, a];
for (k = u.length - 1; k-- && u[k] === u[k + 1];); - 1 < k && n || (c[e + t] = -1 === k ? u[0] : u.join(" "), delete c[e + "-top" + t], delete c[e + "-right" + t], delete c[e + "-bottom" + t], delete c[e + "-left" + t])
}
}
}
}
},
m = function (e) {
var t, n = c[e];
if (n) {
for (t = (n = n.split(" ")).length; t--;)
if (n[t] !== n[0]) return !1;
return c[e] = n[0], !0
}
},
p = function (e) {
return o = !0, N[e]
},
g = function (e, t) {
return o && (e = e.replace(/\uFEFF[0-9]/g, function (e) {
return N[e]
})), t || (e = e.replace(/\\([\'\";:])/g, "$1")), e
},
h = function (e) {
return String.fromCharCode(parseInt(e.slice(1), 16))
},
v = function (e) {
return e.replace(/\\[0-9a-f]+/gi, h)
},
y = function (e, t, n, r, o, i) {
if (o = o || i) return "'" + (o = g(o)).replace(/\'/g, "\\'") + "'";
if (t = g(t || n || r), !b.allow_script_urls) {
var a = t.replace(/[\s\r\n]+/g, "");
if (/(java|vb)script:/i.test(a)) return "";
if (!b.allow_svg_data_urls && /^data:image\/svg/i.test(a)) return ""
}
return l && (t = l.call(f, t, "style")), "url('" + t.replace(/\'/g, "\\'") + "')"
};
if (e) {
for (e = (e = e.replace(/[\u0000-\u001F]/g, "")).replace(/\\[\"\';:\uFEFF]/g, p).replace(/\"[^\"]+\"|\'[^\']+\'/g, function (e) {
return e.replace(/[;:]/g, p)
}); t = x.exec(e);)
if (x.lastIndex = t.index + t[0].length, n = t[1].replace(S, "").toLowerCase(), r = t[2].replace(S, ""), n && r) {
if (n = v(n), r = v(r), -1 !== n.indexOf(E) || -1 !== n.indexOf('"')) continue;
if (!b.allow_script_urls && ("behavior" === n || /expression\s*\(|\/\*|\*\//.test(r))) continue;
"font-weight" === n && "700" === r ? r = "bold" : "color" !== n && "background-color" !== n || (r = r.toLowerCase()), r = (r = r.replace(C, wi)).replace(w, y), c[n] = o ? g(r, !0) : r
} d("border", "", !0), d("border", "-width"), d("border", "-color"), d("border", "-style"), d("padding", ""), d("margin", ""), i = "border", u = "border-style", s = "border-color", m(a = "border-width") && m(u) && m(s) && (c[i] = c[a] + " " + c[u] + " " + c[s], delete c[a], delete c[u], delete c[s]), "medium none" === c.border && delete c.border, "none" === c["border-image"] && delete c["border-image"]
}
return c
},
serialize: function (i, a) {
var u = "",
e = function (e) {
var t, n = s[e];
if (n)
for (var r = 0, o = n.length; r < o; r++) e = n[r], (t = i[e]) && (u += (0 < u.length ? " " : "") + e + ": " + t + ";")
};
return a && s ? (e("*"), e(a)) : ue(i, function (e, t) {
var n, r, o;
!e || c && (n = t, r = a, (o = c["*"]) && o[n] || (o = c[r]) && o[n]) || (u += (0 < u.length ? " " : "") + t + ": " + e + ";")
}), u
}
}
},
Si = /^(?:mouse|contextmenu)|click/,
Ni = {
keyLocation: 1,
layerX: 1,
layerY: 1,
returnValue: 1,
webkitMovementX: 1,
webkitMovementY: 1,
keyIdentifier: 1,
mozPressure: 1
},
Ei = function () {
return !1
},
ki = function () {
return !0
},
_i = function (e, t, n, r) {
e.addEventListener ? e.addEventListener(t, n, r || !1) : e.attachEvent && e.attachEvent("on" + t, n)
},
Ai = function (e, t, n, r) {
e.removeEventListener ? e.removeEventListener(t, n, r || !1) : e.detachEvent && e.detachEvent("on" + t, n)
},
Ri = function (e, t) {
var n, r, o, i, a, u, s = t || {};
for (n in e) Ni[n] || (s[n] = e[n]);
return s.target || (s.target = s.srcElement || document), s.composedPath && (s.composedPath = function () {
return e.composedPath()
}), e && (a = e, Si.test(a.type)) && e.pageX === undefined && e.clientX !== undefined && (o = (r = s.target.ownerDocument || document).documentElement, i = r.body, s.pageX = e.clientX + (o && o.scrollLeft || i && i.scrollLeft || 0) - (o && o.clientLeft || i && i.clientLeft || 0), s.pageY = e.clientY + (o && o.scrollTop || i && i.scrollTop || 0) - (o && o.clientTop || i && i.clientTop || 0)), s.preventDefault = function () {
s.isDefaultPrevented = ki, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
}, s.stopPropagation = function () {
s.isPropagationStopped = ki, e && (e.stopPropagation ? e.stopPropagation() : e.cancelBubble = !0)
}, !(s.stopImmediatePropagation = function () {
s.isImmediatePropagationStopped = ki, s.stopPropagation()
}) == ((u = s).isDefaultPrevented === ki || u.isDefaultPrevented === Ei) && (s.isDefaultPrevented = Ei, s.isPropagationStopped = Ei, s.isImmediatePropagationStopped = Ei), "undefined" == typeof s.metaKey && (s.metaKey = !1), s
},
Ti = (Di.prototype.bind = function (e, t, n, r) {
var o, i, a, u, s, c, l = this,
f = window,
d = function (e) {
l.executeHandlers(Ri(e || f.event), o)
};
if (e && 3 !== e.nodeType && 8 !== e.nodeType) {
e[l.expando] ? o = e[l.expando] : (o = l.count++, e[l.expando] = o, l.events[o] = {}), r = r || e;
for (var m = t.split(" "), p = m.length; p--;) s = d, u = c = !1, "DOMContentLoaded" === (a = m[p]) && (a = "ready"), l.domLoaded && "ready" === a && "complete" === e.readyState ? n.call(r, Ri({
type: a
})) : (l.hasMouseEnterLeave || (u = l.mouseEnterLeave[a]) && (s = function (e) {
var t = e.currentTarget,
n = e.relatedTarget;
if (n && t.contains) n = t.contains(n);
else
for (; n && n !== t;) n = n.parentNode;
n || ((e = Ri(e || f.event)).type = "mouseout" === e.type ? "mouseleave" : "mouseenter", e.target = t, l.executeHandlers(e, o))
}), l.hasFocusIn || "focusin" !== a && "focusout" !== a || (c = !0, u = "focusin" === a ? "focus" : "blur", s = function (e) {
(e = Ri(e || f.event)).type = "focus" === e.type ? "focusin" : "focusout", l.executeHandlers(e, o)
}), (i = l.events[o][a]) ? "ready" === a && l.domLoaded ? n(Ri({
type: a
})) : i.push({
func: n,
scope: r
}) : (l.events[o][a] = i = [{
func: n,
scope: r
}], i.fakeName = u, i.capture = c, i.nativeHandler = s, "ready" === a ? function (e, t, n) {
var r, o = e.document,
i = {
type: "ready"
};
n.domLoaded ? t(i) : (r = function () {
Ai(e, "DOMContentLoaded", r), Ai(e, "load", r), n.domLoaded || (n.domLoaded = !0, t(i)), e = null
}, "complete" === o.readyState || "interactive" === o.readyState && o.body ? r() : _i(e, "DOMContentLoaded", r), n.domLoaded || _i(e, "load", r))
}(e, s, l) : _i(e, u || a, s, c)));
return e = i = null, n
}
}, Di.prototype.unbind = function (n, e, t) {
var r, o, i;
if (!n || 3 === n.nodeType || 8 === n.nodeType) return this;
var a = n[this.expando];
if (a) {
if (i = this.events[a], e) {
for (var u, s, c, l, f = e.split(" "), d = f.length; d--;)
if (l = i[o = f[d]]) {
if (t)
for (r = l.length; r--;) l[r].func === t && (u = l.nativeHandler, s = l.fakeName, c = l.capture, (l = l.slice(0, r).concat(l.slice(r + 1))).nativeHandler = u, l.fakeName = s, l.capture = c, i[o] = l);
t && 0 !== l.length || (delete i[o], Ai(n, l.fakeName || o, l.nativeHandler, l.capture))
}
} else ue(i, function (e, t) {
Ai(n, e.fakeName || t, e.nativeHandler, e.capture)
}), i = {};
for (o in i)
if (he(i, o)) return this;
delete this.events[a];
try {
delete n[this.expando]
} catch (m) {
n[this.expando] = null
}
}
return this
}, Di.prototype.fire = function (e, t, n) {
var r;
if (!e || 3 === e.nodeType || 8 === e.nodeType) return this;
var o = Ri(null, n);
for (o.type = t, o.target = e;
(r = e[this.expando]) && this.executeHandlers(o, r), (e = e.parentNode || e.ownerDocument || e.defaultView || e.parentWindow) && !o.isPropagationStopped(););
return this
}, Di.prototype.clean = function (e) {
var t, n;
if (!e || 3 === e.nodeType || 8 === e.nodeType) return this;
if (e[this.expando] && this.unbind(e), e.getElementsByTagName || (e = e.document), e && e.getElementsByTagName)
for (this.unbind(e), t = (n = e.getElementsByTagName("*")).length; t--;)(e = n[t])[this.expando] && this.unbind(e);
return this
}, Di.prototype.destroy = function () {
this.events = {}
}, Di.prototype.cancel = function (e) {
return e && (e.preventDefault(), e.stopImmediatePropagation()), !1
}, Di.prototype.executeHandlers = function (e, t) {
var n = this.events[t],
r = n && n[e.type];
if (r)
for (var o = 0, i = r.length; o < i; o++) {
var a = r[o];
if (a && !1 === a.func.call(a.scope, e) && e.preventDefault(), e.isImmediatePropagationStopped()) return
}
}, Di.Event = new Di, Di);
function Di() {
this.domLoaded = !1, this.events = {}, this.count = 1, this.expando = "mce-data-" + (+new Date).toString(32), this.hasMouseEnterLeave = "onmouseenter" in document.documentElement, this.hasFocusIn = "onfocusin" in document.documentElement, this.count = 1
}
var Oi, Bi, Pi, Li, Ii, Mi, Fi, Ui, zi, ji, Hi, Vi, qi, $i, Wi, Ki, Xi, Yi = "sizzle" + -new Date,
Gi = window.document,
Ji = 0,
Qi = 0,
Zi = Da(),
ea = Da(),
ta = Da(),
na = function (e, t) {
return e === t && (ji = !0), 0
},
ra = typeof undefined,
oa = {}.hasOwnProperty,
ia = [],
aa = ia.pop,
ua = ia.push,
sa = ia.push,
ca = ia.slice,
la = ia.indexOf || function (e) {
for (var t = 0, n = this.length; t < n; t++)
if (this[t] === e) return t;
return -1
},
fa = "[\\x20\\t\\r\\n\\f]",
da = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
ma = "\\[" + fa + "*(" + da + ")(?:" + fa + "*([*^$|!~]?=)" + fa + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + da + "))|)" + fa + "*\\]",
pa = ":(" + da + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ma + ")*)|.*)\\)|)",
ga = new RegExp("^" + fa + "+|((?:^|[^\\\\])(?:\\\\.)*)" + fa + "+$", "g"),
ha = new RegExp("^" + fa + "*," + fa + "*"),
va = new RegExp("^" + fa + "*([>+~]|" + fa + ")" + fa + "*"),
ya = new RegExp("=" + fa + "*([^\\]'\"]*?)" + fa + "*\\]", "g"),
ba = new RegExp(pa),
Ca = new RegExp("^" + da + "$"),
wa = {
ID: new RegExp("^#(" + da + ")"),
CLASS: new RegExp("^\\.(" + da + ")"),
TAG: new RegExp("^(" + da + "|[*])"),
ATTR: new RegExp("^" + ma),
PSEUDO: new RegExp("^" + pa),
CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + fa + "*(even|odd|(([+-]|)(\\d*)n|)" + fa + "*(?:([+-]|)" + fa + "*(\\d+)|))" + fa + "*\\)|)", "i"),
bool: new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$", "i"),
needsContext: new RegExp("^" + fa + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + fa + "*((?:-\\d)?\\d*)" + fa + "*\\)|)(?=[^-]|$)", "i")
},
xa = /^(?:input|select|textarea|button)$/i,
Sa = /^h\d$/i,
Na = /^[^{]+\{\s*\[native \w/,
Ea = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
ka = /[+~]/,
_a = /'|\\/g,
Aa = new RegExp("\\\\([\\da-f]{1,6}" + fa + "?|(" + fa + ")|.)", "ig"),
Ra = function (e, t, n) {
var r = "0x" + t - 65536;
return r != r || n ? t : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
};
try {
sa.apply(ia = ca.call(Gi.childNodes), Gi.childNodes), ia[Gi.childNodes.length].nodeType
} catch (Ok) {
sa = {
apply: ia.length ? function (e, t) {
ua.apply(e, ca.call(t))
} : function (e, t) {
for (var n = e.length, r = 0; e[n++] = t[r++];);
e.length = n - 1
}
}
}
var Ta = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d, m;
if ((t ? t.ownerDocument || t : Gi) !== Vi && Hi(t), n = n || [], !e || "string" != typeof e) return n;
if (1 !== (u = (t = t || Vi).nodeType) && 9 !== u) return [];
if ($i && !r) {
if (o = Ea.exec(e))
if (a = o[1]) {
if (9 === u) {
if (!(i = t.getElementById(a)) || !i.parentNode) return n;
if (i.id === a) return n.push(i), n
} else if (t.ownerDocument && (i = t.ownerDocument.getElementById(a)) && Xi(t, i) && i.id === a) return n.push(i), n
} else {
if (o[2]) return sa.apply(n, t.getElementsByTagName(e)), n;
if ((a = o[3]) && Oi.getElementsByClassName) return sa.apply(n, t.getElementsByClassName(a)), n
} if (Oi.qsa && (!Wi || !Wi.test(e))) {
if (f = l = Yi, d = t, m = 9 === u && e, 1 === u && "object" !== t.nodeName.toLowerCase()) {
for (c = Ii(e), (l = t.getAttribute("id")) ? f = l.replace(_a, "\\$&") : t.setAttribute("id", f), f = "[id='" + f + "'] ", s = c.length; s--;) c[s] = f + Ma(c[s]);
d = ka.test(e) && La(t.parentNode) || t, m = c.join(",")
}
if (m) try {
return sa.apply(n, d.querySelectorAll(m)), n
} catch (p) {} finally {
l || t.removeAttribute("id")
}
}
}
return Fi(e.replace(ga, "$1"), t, n, r)
};
function Da() {
var n = [];
function r(e, t) {
return n.push(e + " ") > Bi.cacheLength && delete r[n.shift()], r[e + " "] = t
}
return r
}
function Oa(e) {
return e[Yi] = !0, e
}
function Ba(e, t) {
var n = t && e,
r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31);
if (r) return r;
if (n)
for (; n = n.nextSibling;)
if (n === t) return -1;
return e ? 1 : -1
}
function Pa(a) {
return Oa(function (i) {
return i = +i, Oa(function (e, t) {
for (var n, r = a([], e.length, i), o = r.length; o--;) e[n = r[o]] && (e[n] = !(t[n] = e[n]))
})
})
}
function La(e) {
return e && typeof e.getElementsByTagName != ra && e
}
function Ia() {}
function Ma(e) {
for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
return r
}
function Fa(a, e, t) {
var u = e.dir,
s = t && "parentNode" === u,
c = Qi++;
return e.first ? function (e, t, n) {
for (; e = e[u];)
if (1 === e.nodeType || s) return a(e, t, n)
} : function (e, t, n) {
var r, o, i = [Ji, c];
if (n) {
for (; e = e[u];)
if ((1 === e.nodeType || s) && a(e, t, n)) return !0
} else
for (; e = e[u];)
if (1 === e.nodeType || s) {
if ((r = (o = e[Yi] || (e[Yi] = {}))[u]) && r[0] === Ji && r[1] === c) return i[2] = r[2];
if ((o[u] = i)[2] = a(e, t, n)) return !0
}
}
}
function Ua(o) {
return 1 < o.length ? function (e, t, n) {
for (var r = o.length; r--;)
if (!o[r](e, t, n)) return !1;
return !0
} : o[0]
}
function za(e, t, n, r, o) {
for (var i, a = [], u = 0, s = e.length, c = null != t; u < s; u++)(i = e[u]) && (n && !n(i, r, o) || (a.push(i), c && t.push(u)));
return a
}
function ja(m, p, g, h, v, e) {
return h && !h[Yi] && (h = ja(h)), v && !v[Yi] && (v = ja(v, e)), Oa(function (e, t, n, r) {
var o, i, a, u = [],
s = [],
c = t.length,
l = e || function (e, t, n) {
for (var r = 0, o = t.length; r < o; r++) Ta(e, t[r], n);
return n
}(p || "*", n.nodeType ? [n] : n, []),
f = !m || !e && p ? l : za(l, u, m, n, r),
d = g ? v || (e ? m : c || h) ? [] : t : f;
if (g && g(f, d, n, r), h)
for (o = za(d, s), h(o, [], n, r), i = o.length; i--;)(a = o[i]) && (d[s[i]] = !(f[s[i]] = a));
if (e) {
if (v || m) {
if (v) {
for (o = [], i = d.length; i--;)(a = d[i]) && o.push(f[i] = a);
v(null, d = [], o, r)
}
for (i = d.length; i--;)(a = d[i]) && -1 < (o = v ? la.call(e, a) : u[i]) && (e[o] = !(t[o] = a))
}
} else d = za(d === t ? d.splice(c, d.length) : d), v ? v(null, t, d, r) : sa.apply(t, d)
})
}
Oi = Ta.support = {}, Li = Ta.isXML = function (e) {
var t = e && (e.ownerDocument || e).documentElement;
return !!t && "HTML" !== t.nodeName
}, Hi = Ta.setDocument = function (e) {
var t, s = e ? e.ownerDocument || e : Gi,
n = s.defaultView;
return s !== Vi && 9 === s.nodeType && s.documentElement ? (qi = (Vi = s).documentElement, $i = !Li(s), n && n !== function (e) {
try {
return e.top
} catch (t) {}
return null
}(n) && (n.addEventListener ? n.addEventListener("unload", function () {
Hi()
}, !1) : n.attachEvent && n.attachEvent("onunload", function () {
Hi()
})), Oi.attributes = !0, Oi.getElementsByTagName = !0, Oi.getElementsByClassName = Na.test(s.getElementsByClassName), Oi.getById = !0, Bi.find.ID = function (e, t) {
if (typeof t.getElementById != ra && $i) {
var n = t.getElementById(e);
return n && n.parentNode ? [n] : []
}
}, Bi.filter.ID = function (e) {
var t = e.replace(Aa, Ra);
return function (e) {
return e.getAttribute("id") === t
}
}, Bi.find.TAG = Oi.getElementsByTagName ? function (e, t) {
if (typeof t.getElementsByTagName != ra) return t.getElementsByTagName(e)
} : function (e, t) {
var n, r = [],
o = 0,
i = t.getElementsByTagName(e);
if ("*" !== e) return i;
for (; n = i[o++];) 1 === n.nodeType && r.push(n);
return r
}, Bi.find.CLASS = Oi.getElementsByClassName && function (e, t) {
if ($i) return t.getElementsByClassName(e)
}, Ki = [], Wi = [], Oi.disconnectedMatch = !0, Wi = Wi.length && new RegExp(Wi.join("|")), Ki = Ki.length && new RegExp(Ki.join("|")), t = Na.test(qi.compareDocumentPosition), Xi = t || Na.test(qi.contains) ? function (e, t) {
var n = 9 === e.nodeType ? e.documentElement : e,
r = t && t.parentNode;
return e === r || !(!r || 1 !== r.nodeType || !(n.contains ? n.contains(r) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)))
} : function (e, t) {
if (t)
for (; t = t.parentNode;)
if (t === e) return !0;
return !1
}, na = t ? function (e, t) {
if (e === t) return ji = !0, 0;
var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
return n || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !Oi.sortDetached && t.compareDocumentPosition(e) === n ? e === s || e.ownerDocument === Gi && Xi(Gi, e) ? -1 : t === s || t.ownerDocument === Gi && Xi(Gi, t) ? 1 : zi ? la.call(zi, e) - la.call(zi, t) : 0 : 4 & n ? -1 : 1)
} : function (e, t) {
if (e === t) return ji = !0, 0;
var n, r = 0,
o = e.parentNode,
i = t.parentNode,
a = [e],
u = [t];
if (!o || !i) return e === s ? -1 : t === s ? 1 : o ? -1 : i ? 1 : zi ? la.call(zi, e) - la.call(zi, t) : 0;
if (o === i) return Ba(e, t);
for (n = e; n = n.parentNode;) a.unshift(n);
for (n = t; n = n.parentNode;) u.unshift(n);
for (; a[r] === u[r];) r++;
return r ? Ba(a[r], u[r]) : a[r] === Gi ? -1 : u[r] === Gi ? 1 : 0
}, s) : Vi
}, Ta.matches = function (e, t) {
return Ta(e, null, null, t)
}, Ta.matchesSelector = function (e, t) {
if ((e.ownerDocument || e) !== Vi && Hi(e), t = t.replace(ya, "='$1']"), Oi.matchesSelector && $i && (!Ki || !Ki.test(t)) && (!Wi || !Wi.test(t))) try {
var n = (void 0).call(e, t);
if (n || Oi.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
} catch (Ok) {}
return 0 < Ta(t, Vi, null, [e]).length
}, Ta.contains = function (e, t) {
return (e.ownerDocument || e) !== Vi && Hi(e), Xi(e, t)
}, Ta.attr = function (e, t) {
(e.ownerDocument || e) !== Vi && Hi(e);
var n = Bi.attrHandle[t.toLowerCase()],
r = n && oa.call(Bi.attrHandle, t.toLowerCase()) ? n(e, t, !$i) : undefined;
return r !== undefined ? r : Oi.attributes || !$i ? e.getAttribute(t) : (r = e.getAttributeNode(t)) && r.specified ? r.value : null
}, Ta.error = function (e) {
throw new Error("Syntax error, unrecognized expression: " + e)
}, Ta.uniqueSort = function (e) {
var t, n = [],
r = 0,
o = 0;
if (ji = !Oi.detectDuplicates, zi = !Oi.sortStable && e.slice(0), e.sort(na), ji) {
for (; t = e[o++];) t === e[o] && (r = n.push(o));
for (; r--;) e.splice(n[r], 1)
}
return zi = null, e
}, Pi = Ta.getText = function (e) {
var t, n = "",
r = 0,
o = e.nodeType;
if (o) {
if (1 === o || 9 === o || 11 === o) {
if ("string" == typeof e.textContent) return e.textContent;
for (e = e.firstChild; e; e = e.nextSibling) n += Pi(e)
} else if (3 === o || 4 === o) return e.nodeValue
} else
for (; t = e[r++];) n += Pi(t);
return n
}, (Bi = Ta.selectors = {
cacheLength: 50,
createPseudo: Oa,
match: wa,
attrHandle: {},
find: {},
relative: {
">": {
dir: "parentNode",
first: !0
},
" ": {
dir: "parentNode"
},
"+": {
dir: "previousSibling",
first: !0
},
"~": {
dir: "previousSibling"
}
},
preFilter: {
ATTR: function (e) {
return e[1] = e[1].replace(Aa, Ra), e[3] = (e[3] || e[4] || e[5] || "").replace(Aa, Ra), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
},
CHILD: function (e) {
return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || Ta.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && Ta.error(e[0]), e
},
PSEUDO: function (e) {
var t, n = !e[6] && e[2];
return wa.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && ba.test(n) && (t = Ii(n, !0)) && (t = n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
}
},
filter: {
TAG: function (e) {
var t = e.replace(Aa, Ra).toLowerCase();
return "*" === e ? function () {
return !0
} : function (e) {
return e.nodeName && e.nodeName.toLowerCase() === t
}
},
CLASS: function (e) {
var t = Zi[e + " "];
return t || (t = new RegExp("(^|" + fa + ")" + e + "(" + fa + "|$)")) && Zi(e, function (e) {
return t.test("string" == typeof e.className && e.className || typeof e.getAttribute != ra && e.getAttribute("class") || "")
})
},
ATTR: function (n, r, o) {
return function (e) {
var t = Ta.attr(e, n);
return null == t ? "!=" === r : !r || (t += "", "=" === r ? t === o : "!=" === r ? t !== o : "^=" === r ? o && 0 === t.indexOf(o) : "*=" === r ? o && -1 < t.indexOf(o) : "$=" === r ? o && t.slice(-o.length) === o : "~=" === r ? -1 < (" " + t + " ").indexOf(o) : "|=" === r && (t === o || t.slice(0, o.length + 1) === o + "-"))
}
},
CHILD: function (m, e, t, p, g) {
var h = "nth" !== m.slice(0, 3),
v = "last" !== m.slice(-4),
y = "of-type" === e;
return 1 === p && 0 === g ? function (e) {
return !!e.parentNode
} : function (e, t, n) {
var r, o, i, a, u, s, c = h != v ? "nextSibling" : "previousSibling",
l = e.parentNode,
f = y && e.nodeName.toLowerCase(),
d = !n && !y;
if (l) {
if (h) {
for (; c;) {
for (i = e; i = i[c];)
if (y ? i.nodeName.toLowerCase() === f : 1 === i.nodeType) return !1;
s = c = "only" === m && !s && "nextSibling"
}
return !0
}
if (s = [v ? l.firstChild : l.lastChild], v && d) {
for (u = (r = (o = l[Yi] || (l[Yi] = {}))[m] || [])[0] === Ji && r[1], a = r[0] === Ji && r[2], i = u && l.childNodes[u]; i = ++u && i && i[c] || (a = u = 0) || s.pop();)
if (1 === i.nodeType && ++a && i === e) {
o[m] = [Ji, u, a];
break
}
} else if (d && (r = (e[Yi] || (e[Yi] = {}))[m]) && r[0] === Ji) a = r[1];
else
for (;
(i = ++u && i && i[c] || (a = u = 0) || s.pop()) && ((y ? i.nodeName.toLowerCase() !== f : 1 !== i.nodeType) || !++a || (d && ((i[Yi] || (i[Yi] = {}))[m] = [Ji, a]), i !== e)););
return (a -= g) === p || a % p == 0 && 0 <= a / p
}
}
},
PSEUDO: function (e, i) {
var t, a = Bi.pseudos[e] || Bi.setFilters[e.toLowerCase()] || Ta.error("unsupported pseudo: " + e);
return a[Yi] ? a(i) : 1 < a.length ? (t = [e, e, "", i], Bi.setFilters.hasOwnProperty(e.toLowerCase()) ? Oa(function (e, t) {
for (var n, r = a(e, i), o = r.length; o--;) e[n = la.call(e, r[o])] = !(t[n] = r[o])
}) : function (e) {
return a(e, 0, t)
}) : a
}
},
pseudos: {
not: Oa(function (e) {
var r = [],
o = [],
u = Mi(e.replace(ga, "$1"));
return u[Yi] ? Oa(function (e, t, n, r) {
for (var o, i = u(e, null, r, []), a = e.length; a--;)(o = i[a]) && (e[a] = !(t[a] = o))
}) : function (e, t, n) {
return r[0] = e, u(r, null, n, o), !o.pop()
}
}),
has: Oa(function (t) {
return function (e) {
return 0 < Ta(t, e).length
}
}),
contains: Oa(function (t) {
return t = t.replace(Aa, Ra),
function (e) {
return -1 < (e.textContent || e.innerText || Pi(e)).indexOf(t)
}
}),
lang: Oa(function (n) {
return Ca.test(n || "") || Ta.error("unsupported lang: " + n), n = n.replace(Aa, Ra).toLowerCase(),
function (e) {
var t;
do {
if (t = $i ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
} while ((e = e.parentNode) && 1 === e.nodeType);
return !1
}
}),
target: function (e) {
var t = window.location && window.location.hash;
return t && t.slice(1) === e.id
},
root: function (e) {
return e === qi
},
focus: function (e) {
return e === Vi.activeElement && (!Vi.hasFocus || Vi.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
},
enabled: function (e) {
return !1 === e.disabled
},
disabled: function (e) {
return !0 === e.disabled
},
checked: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && !!e.checked || "option" === t && !!e.selected
},
selected: function (e) {
return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
},
empty: function (e) {
for (e = e.firstChild; e; e = e.nextSibling)
if (e.nodeType < 6) return !1;
return !0
},
parent: function (e) {
return !Bi.pseudos.empty(e)
},
header: function (e) {
return Sa.test(e.nodeName)
},
input: function (e) {
return xa.test(e.nodeName)
},
button: function (e) {
var t = e.nodeName.toLowerCase();
return "input" === t && "button" === e.type || "button" === t
},
text: function (e) {
var t;
return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
},
first: Pa(function () {
return [0]
}),
last: Pa(function (e, t) {
return [t - 1]
}),
eq: Pa(function (e, t, n) {
return [n < 0 ? n + t : n]
}),
even: Pa(function (e, t) {
for (var n = 0; n < t; n += 2) e.push(n);
return e
}),
odd: Pa(function (e, t) {
for (var n = 1; n < t; n += 2) e.push(n);
return e
}),
lt: Pa(function (e, t, n) {
for (var r = n < 0 ? n + t : n; 0 <= --r;) e.push(r);
return e
}),
gt: Pa(function (e, t, n) {
for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
return e
})
}
}).pseudos.nth = Bi.pseudos.eq, W(["radio", "checkbox", "file", "password", "image"], function (e) {
var t;
Bi.pseudos[e] = (t = e, function (e) {
return "input" === e.nodeName.toLowerCase() && e.type === t
})
}), W(["submit", "reset"], function (e) {
var n;
Bi.pseudos[e] = (n = e, function (e) {
var t = e.nodeName.toLowerCase();
return ("input" === t || "button" === t) && e.type === n
})
}), Ia.prototype = Bi.filters = Bi.pseudos, Bi.setFilters = new Ia, Ii = Ta.tokenize = function (e, t) {
var n, r, o, i, a, u, s, c = ea[e + " "];
if (c) return t ? 0 : c.slice(0);
for (a = e, u = [], s = Bi.preFilter; a;) {
for (i in n && !(r = ha.exec(a)) || (r && (a = a.slice(r[0].length) || a), u.push(o = [])), n = !1, (r = va.exec(a)) && (n = r.shift(), o.push({
value: n,
type: r[0].replace(ga, " ")
}), a = a.slice(n.length)), Bi.filter) Bi.filter.hasOwnProperty(i) && (!(r = wa[i].exec(a)) || s[i] && !(r = s[i](r)) || (n = r.shift(), o.push({
value: n,
type: i,
matches: r
}), a = a.slice(n.length)));
if (!n) break
}
return t ? a.length : a ? Ta.error(e) : ea(e, u).slice(0)
}, Mi = Ta.compile = function (e, t) {
var n, h, v, y, b, r, o = [],
i = [],
a = ta[e + " "];
if (!a) {
for (n = (t = t || Ii(e)).length; n--;)(a = function f(e) {
for (var r, t, n, o = e.length, i = Bi.relative[e[0].type], a = i || Bi.relative[" "], u = i ? 1 : 0, s = Fa(function (e) {
return e === r
}, a, !0), c = Fa(function (e) {
return -1 < la.call(r, e)
}, a, !0), l = [function (e, t, n) {
return !i && (n || t !== Ui) || ((r = t).nodeType ? s : c)(e, t, n)
}]; u < o; u++)
if (t = Bi.relative[e[u].type]) l = [Fa(Ua(l), t)];
else {
if ((t = Bi.filter[e[u].type].apply(null, e[u].matches))[Yi]) {
for (n = ++u; n < o && !Bi.relative[e[n].type]; n++);
return ja(1 < u && Ua(l), 1 < u && Ma(e.slice(0, u - 1).concat({
value: " " === e[u - 2].type ? "*" : ""
})).replace(ga, "$1"), t, u < n && f(e.slice(u, n)), n < o && f(e = e.slice(n)), n < o && Ma(e))
}
l.push(t)
} return Ua(l)
}(t[n]))[Yi] ? o.push(a) : i.push(a);
(a = ta(e, (h = i, y = 0 < (v = o).length, b = 0 < h.length, r = function (e, t, n, r, o) {
var i, a, u, s = 0,
c = "0",
l = e && [],
f = [],
d = Ui,
m = e || b && Bi.find.TAG("*", o),
p = Ji += null == d ? 1 : Math.random() || .1,
g = m.length;
for (o && (Ui = t !== Vi && t); c !== g && null != (i = m[c]); c++) {
if (b && i) {
for (a = 0; u = h[a++];)
if (u(i, t, n)) {
r.push(i);
break
} o && (Ji = p)
}
y && ((i = !u && i) && s--, e && l.push(i))
}
if (s += c, y && c !== s) {
for (a = 0; u = v[a++];) u(l, f, t, n);
if (e) {
if (0 < s)
for (; c--;) l[c] || f[c] || (f[c] = aa.call(r));
f = za(f)
}
sa.apply(r, f), o && !e && 0 < f.length && 1 < s + v.length && Ta.uniqueSort(r)
}
return o && (Ji = p, Ui = d), l
}, y ? Oa(r) : r))).selector = e
}
return a
}, Fi = Ta.select = function (e, t, n, r) {
var o, i, a, u, s, c = "function" == typeof e && e,
l = !r && Ii(e = c.selector || e);
if (n = n || [], 1 === l.length) {
if (2 < (i = l[0] = l[0].slice(0)).length && "ID" === (a = i[0]).type && Oi.getById && 9 === t.nodeType && $i && Bi.relative[i[1].type]) {
if (!(t = (Bi.find.ID(a.matches[0].replace(Aa, Ra), t) || [])[0])) return n;
c && (t = t.parentNode), e = e.slice(i.shift().value.length)
}
for (o = wa.needsContext.test(e) ? 0 : i.length; o-- && (a = i[o], !Bi.relative[u = a.type]);)
if ((s = Bi.find[u]) && (r = s(a.matches[0].replace(Aa, Ra), ka.test(i[0].type) && La(t.parentNode) || t))) {
if (i.splice(o, 1), !(e = r.length && Ma(i))) return sa.apply(n, r), n;
break
}
}
return (c || Mi(e, l))(r, t, !$i, n, ka.test(e) && La(t.parentNode) || t), n
}, Oi.sortStable = Yi.split("").sort(na).join("") === Yi, Oi.detectDuplicates = !!ji, Hi(), Oi.sortDetached = !0;
var Ha = document,
Va = Array.prototype.push,
qa = Array.prototype.slice,
$a = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
Wa = Ti.Event,
Ka = kt.makeMap("children,contents,next,prev"),
Xa = function (e) {
return void 0 !== e
},
Ya = function (e) {
return "string" == typeof e
},
Ga = function (e, t) {
var n, r = (t = t || Ha).createElement("div"),
o = t.createDocumentFragment();
for (r.innerHTML = e; n = r.firstChild;) o.appendChild(n);
return o
},
Ja = function (e, t, n, r) {
var o;
if (Ya(t)) t = Ga(t, fu(e[0]));
else if (t.length && !t.nodeType) {
if (t = hu.makeArray(t), r)
for (o = t.length - 1; 0 <= o; o--) Ja(e, t[o], n, r);
else
for (o = 0; o < t.length; o++) Ja(e, t[o], n, r);
return e
}
if (t.nodeType)
for (o = e.length; o--;) n.call(e[o], t);
return e
},
Qa = function (e, t) {
return e && t && -1 !== (" " + e.className + " ").indexOf(" " + t + " ")
},
Za = function (e, t, n) {
var r, o;
return t = hu(t)[0], e.each(function () {
n && r === this.parentNode || (r = this.parentNode, o = t.cloneNode(!1), this.parentNode.insertBefore(o, this)), o.appendChild(this)
}), e
},
eu = kt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom", " "),
tu = kt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected", " "),
nu = {
"for": "htmlFor",
"class": "className",
readonly: "readOnly"
},
ru = {
"float": "cssFloat"
},
ou = {},
iu = {},
au = function (e, t) {
return new hu.fn.init(e, t)
},
uu = /^\s*|\s*$/g,
su = function (e) {
return null === e || e === undefined ? "" : ("" + e).replace(uu, "")
},
cu = function (e, t) {
var n, r, o, i;
if (e)
if ((n = e.length) === undefined) {
for (r in e)
if (e.hasOwnProperty(r) && (i = e[r], !1 === t.call(i, r, i))) break
} else
for (o = 0; o < n && (i = e[o], !1 !== t.call(i, o, i)); o++);
return e
},
lu = function (e, n) {
var r = [];
return cu(e, function (e, t) {
n(t, e) && r.push(t)
}), r
},
fu = function (e) {
return e ? 9 === e.nodeType ? e : e.ownerDocument : Ha
};
au.fn = au.prototype = {
constructor: au,
selector: "",
context: null,
length: 0,
init: function (e, t) {
var n, r, o = this;
if (!e) return o;
if (e.nodeType) return o.context = o[0] = e, o.length = 1, o;
if (t && t.nodeType) o.context = t;
else {
if (t) return hu(e).attr(t);
o.context = t = document
}
if (Ya(e)) {
if (!(n = "<" === (o.selector = e).charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : $a.exec(e))) return hu(t).find(e);
if (n[1])
for (r = Ga(e, fu(t)).firstChild; r;) Va.call(o, r), r = r.nextSibling;
else {
if (!(r = fu(t).getElementById(n[2]))) return o;
if (r.id !== n[2]) return o.find(e);
o.length = 1, o[0] = r
}
} else this.add(e, !1);
return o
},
toArray: function () {
return kt.toArray(this)
},
add: function (e, t) {
var n, r;
if (Ya(e)) return this.add(hu(e));
if (!1 !== t)
for (n = hu.unique(this.toArray().concat(hu.makeArray(e))), this.length = n.length, r = 0; r < n.length; r++) this[r] = n[r];
else Va.apply(this, hu.makeArray(e));
return this
},
attr: function (t, n) {
var e, r = this;
if ("object" == typeof t) cu(t, function (e, t) {
r.attr(e, t)
});
else {
if (!Xa(n)) {
if (r[0] && 1 === r[0].nodeType) {
if ((e = ou[t]) && e.get) return e.get(r[0], t);
if (tu[t]) return r.prop(t) ? t : undefined;
null === (n = r[0].getAttribute(t, 2)) && (n = undefined)
}
return n
}
this.each(function () {
var e;
if (1 === this.nodeType) {
if ((e = ou[t]) && e.set) return void e.set(this, n);
null === n ? this.removeAttribute(t, 2) : this.setAttribute(t, n, 2)
}
})
}
return r
},
removeAttr: function (e) {
return this.attr(e, null)
},
prop: function (e, t) {
var n = this;
if ("object" == typeof (e = nu[e] || e)) cu(e, function (e, t) {
n.prop(e, t)
});
else {
if (!Xa(t)) return n[0] && n[0].nodeType && e in n[0] ? n[0][e] : t;
this.each(function () {
1 === this.nodeType && (this[e] = t)
})
}
return n
},
css: function (n, r) {
var e, o, i = this,
t = function (e) {
return e.replace(/-(\D)/g, function (e, t) {
return t.toUpperCase()
})
},
a = function (e) {
return e.replace(/[A-Z]/g, function (e) {
return "-" + e
})
};
if ("object" == typeof n) cu(n, function (e, t) {
i.css(e, t)
});
else if (Xa(r)) n = t(n), "number" != typeof r || eu[n] || (r = r.toString() + "px"), i.each(function () {
var e = this.style;
if ((o = iu[n]) && o.set) o.set(this, r);
else {
try {
this.style[ru[n] || n] = r
} catch (t) {}
null !== r && "" !== r || (e.removeProperty ? e.removeProperty(a(n)) : e.removeAttribute(n))
}
});
else {
if (e = i[0], (o = iu[n]) && o.get) return o.get(e);
if (!e.ownerDocument.defaultView) return e.currentStyle ? e.currentStyle[t(n)] : "";
try {
return e.ownerDocument.defaultView.getComputedStyle(e, null).getPropertyValue(a(n))
} catch (u) {
return undefined
}
}
return i
},
remove: function () {
for (var e, t = this.length; t--;) e = this[t], Wa.clean(e), e.parentNode && e.parentNode.removeChild(e);
return this
},
empty: function () {
for (var e, t = this.length; t--;)
for (e = this[t]; e.firstChild;) e.removeChild(e.firstChild);
return this
},
html: function (e) {
var t;
if (Xa(e)) {
t = this.length;
try {
for (; t--;) this[t].innerHTML = e
} catch (n) {
hu(this[t]).empty().append(e)
}
return this
}
return this[0] ? this[0].innerHTML : ""
},
text: function (e) {
var t;
if (Xa(e)) {
for (t = this.length; t--;) "innerText" in this[t] ? this[t].innerText = e : this[0].textContent = e;
return this
}
return this[0] ? this[0].innerText || this[0].textContent : ""
},
append: function () {
return Ja(this, arguments, function (e) {
(1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.appendChild(e)
})
},
prepend: function () {
return Ja(this, arguments, function (e) {
(1 === this.nodeType || this.host && 1 === this.host.nodeType) && this.insertBefore(e, this.firstChild)
}, !0)
},
before: function () {
return this[0] && this[0].parentNode ? Ja(this, arguments, function (e) {
this.parentNode.insertBefore(e, this)
}) : this
},
after: function () {
return this[0] && this[0].parentNode ? Ja(this, arguments, function (e) {
this.parentNode.insertBefore(e, this.nextSibling)
}, !0) : this
},
appendTo: function (e) {
return hu(e).append(this), this
},
prependTo: function (e) {
return hu(e).prepend(this), this
},
replaceWith: function (e) {
return this.before(e).remove()
},
wrap: function (e) {
return Za(this, e)
},
wrapAll: function (e) {
return Za(this, e, !0)
},
wrapInner: function (e) {
return this.each(function () {
hu(this).contents().wrapAll(e)
}), this
},
unwrap: function () {
return this.parent().each(function () {
hu(this).replaceWith(this.childNodes)
})
},
clone: function () {
var e = [];
return this.each(function () {
e.push(this.cloneNode(!0))
}), hu(e)
},
addClass: function (e) {
return this.toggleClass(e, !0)
},
removeClass: function (e) {
return this.toggleClass(e, !1)
},
toggleClass: function (o, i) {
var e = this;
return "string" != typeof o || (-1 !== o.indexOf(" ") ? cu(o.split(" "), function () {
e.toggleClass(this, i)
}) : e.each(function (e, t) {
var n, r = Qa(t, o);
r !== i && (n = t.className, r ? t.className = su((" " + n + " ").replace(" " + o + " ", " ")) : t.className += n ? " " + o : o)
})), e
},
hasClass: function (e) {
return Qa(this[0], e)
},
each: function (e) {
return cu(this, e)
},
on: function (e, t) {
return this.each(function () {
Wa.bind(this, e, t)
})
},
off: function (e, t) {
return this.each(function () {
Wa.unbind(this, e, t)
})
},
trigger: function (e) {
return this.each(function () {
"object" == typeof e ? Wa.fire(this, e.type, e) : Wa.fire(this, e)
})
},
show: function () {
return this.css("display", "")
},
hide: function () {
return this.css("display", "none")
},
slice: function () {
return new hu(qa.apply(this, arguments))
},
eq: function (e) {
return -1 === e ? this.slice(e) : this.slice(e, +e + 1)
},
first: function () {
return this.eq(0)
},
last: function () {
return this.eq(-1)
},
find: function (e) {
for (var t = [], n = 0, r = this.length; n < r; n++) hu.find(e, this[n], t);
return hu(t)
},
filter: function (n) {
return hu("function" == typeof n ? lu(this.toArray(), function (e, t) {
return n(t, e)
}) : hu.filter(n, this.toArray()))
},
closest: function (n) {
var r = [];
return n instanceof hu && (n = n[0]), this.each(function (e, t) {
for (; t;) {
if ("string" == typeof n && hu(t).is(n)) {
r.push(t);
break
}
if (t === n) {
r.push(t);
break
}
t = t.parentNode
}
}), hu(r)
},
offset: function (e) {
var t, n, r, o, i = 0,
a = 0;
return e ? this.css(e) : ((t = this[0]) && (r = (n = t.ownerDocument).documentElement, t.getBoundingClientRect && (i = (o = t.getBoundingClientRect()).left + (r.scrollLeft || n.body.scrollLeft) - r.clientLeft, a = o.top + (r.scrollTop || n.body.scrollTop) - r.clientTop)), {
left: i,
top: a
})
},
push: Va,
sort: Array.prototype.sort,
splice: Array.prototype.splice
}, kt.extend(au, {
extend: kt.extend,
makeArray: function (e) {
return (t = e) && t === t.window || e.nodeType ? [e] : kt.toArray(e);
var t
},
inArray: function (e, t) {
var n;
if (t.indexOf) return t.indexOf(e);
for (n = t.length; n--;)
if (t[n] === e) return n;
return -1
},
isArray: kt.isArray,
each: cu,
trim: su,
grep: lu,
find: Ta,
expr: Ta.selectors,
unique: Ta.uniqueSort,
text: Ta.getText,
contains: Ta.contains,
filter: function (e, t, n) {
var r = t.length;
for (n && (e = ":not(" + e + ")"); r--;) 1 !== t[r].nodeType && t.splice(r, 1);
return t = 1 === t.length ? hu.find.matchesSelector(t[0], e) ? [t[0]] : [] : hu.find.matches(e, t)
}
});
var du = function (e, t, n) {
var r = [],
o = e[t];
for ("string" != typeof n && n instanceof hu && (n = n[0]); o && 9 !== o.nodeType;) {
if (n !== undefined) {
if (o === n) break;
if ("string" == typeof n && hu(o).is(n)) break
}
1 === o.nodeType && r.push(o), o = o[t]
}
return r
},
mu = function (e, t, n, r) {
var o = [];
for (r instanceof hu && (r = r[0]); e; e = e[t])
if (!n || e.nodeType === n) {
if (r !== undefined) {
if (e === r) break;
if ("string" == typeof r && hu(e).is(r)) break
}
o.push(e)
} return o
},
pu = function (e, t, n) {
for (e = e[t]; e; e = e[t])
if (e.nodeType === n) return e;
return null
};
cu({
parent: function (e) {
var t = e.parentNode;
return t && 11 !== t.nodeType ? t : null
},
parents: function (e) {
return du(e, "parentNode")
},
next: function (e) {
return pu(e, "nextSibling", 1)
},
prev: function (e) {
return pu(e, "previousSibling", 1)
},
children: function (e) {
return mu(e.firstChild, "nextSibling", 1)
},
contents: function (e) {
return kt.toArray(("iframe" === e.nodeName ? e.contentDocument || e.contentWindow.document : e).childNodes)
}
}, function (r, o) {
au.fn[r] = function (t) {
var n = [];
this.each(function () {
var e = o.call(n, this, t, n);
e && (hu.isArray(e) ? n.push.apply(n, e) : n.push(e))
}), 1 < this.length && (Ka[r] || (n = hu.unique(n)), 0 === r.indexOf("parents") && (n = n.reverse()));
var e = hu(n);
return t ? e.filter(t) : e
}
}), cu({
parentsUntil: function (e, t) {
return du(e, "parentNode", t)
},
nextUntil: function (e, t) {
return mu(e, "nextSibling", 1, t).slice(1)
},
prevUntil: function (e, t) {
return mu(e, "previousSibling", 1, t).slice(1)
}
}, function (o, i) {
au.fn[o] = function (t, e) {
var n = [];
this.each(function () {
var e = i.call(n, this, t, n);
e && (hu.isArray(e) ? n.push.apply(n, e) : n.push(e))
}), 1 < this.length && (n = hu.unique(n), 0 !== o.indexOf("parents") && "prevUntil" !== o || (n = n.reverse()));
var r = hu(n);
return e ? r.filter(e) : r
}
}), au.fn.is = function (e) {
return !!e && 0 < this.filter(e).length
}, au.fn.init.prototype = au.fn, au.overrideDefaults = function (n) {
var r, o = function (e, t) {
return r = r || n(), 0 === arguments.length && (e = r.element), t = t || r.context, new o.fn.init(e, t)
};
return hu.extend(o, this), o
}, au.attrHooks = ou, au.cssHooks = iu;
var gu, hu = au,
vu = kt.each,
yu = kt.grep,
bu = wt.ie,
Cu = /^([a-z0-9],?)+$/i,
wu = function (n, r, o) {
var i = r.keep_values,
e = {
set: function (e, t, n) {
r.url_converter && (t = r.url_converter.call(r.url_converter_scope || o(), t, n, e[0])), e.attr("data-mce-" + n, t).attr(n, t)
},
get: function (e, t) {
return e.attr("data-mce-" + t) || e.attr(t)
}
},
t = {
style: {
set: function (e, t) {
null === t || "object" != typeof t ? (i && e.attr("data-mce-style", t), null !== t && "string" == typeof t ? (e.removeAttr("style"), e.css(n.parse(t))) : e.attr("style", t)) : e.css(t)
},
get: function (e) {
var t = e.attr("data-mce-style") || e.attr("style");
return t = n.serialize(n.parse(t), e[0].nodeName)
}
}
};
return i && (t.href = t.src = e), t
},
xu = function (e, t) {
var n = t.attr("style"),
r = (r = e.serialize(e.parse(n), t[0].nodeName)) || null;
t.attr("data-mce-style", r)
},
Su = function (e, t) {
var n, r, o = 0;
if (e)
for (n = e.nodeType, e = e.previousSibling; e; e = e.previousSibling) r = e.nodeType, (!t || 3 !== r || r !== n && e.nodeValue.length) && (o++, n = r);
return o
};
function Nu(a, u) {
var s = this;
void 0 === u && (u = {});
var r = {},
c = window,
n = {},
t = 0,
o = Kr.forElement(At.fromDom(a), {
contentCssCors: u.contentCssCors,
referrerPolicy: u.referrerPolicy
}),
l = [],
f = u.schema ? u.schema : Ci({}),
i = xi({
url_converter: u.url_converter,
url_converter_scope: u.url_converter_scope
}, u.schema),
d = u.ownEvents ? new Ti : Ti.Event,
m = f.getBlockElements(),
p = hu.overrideDefaults(function () {
return {
context: a,
element: j.getRoot()
}
}),
g = function (e) {
return e && a && q(e) ? a.getElementById(e) : e
},
h = function (e) {
return p("string" == typeof e ? g(e) : e)
},
v = function (e, t, n) {
var r, o, i = h(e);
return i.length && (o = (r = H[t]) && r.get ? r.get(i, t) : i.attr(t)), void 0 === o && (o = n || ""), o
},
y = function (e) {
var t = g(e);
return t ? t.attributes : []
},
b = function (e, t, n) {
"" === n && (n = null);
var r, o = h(e),
i = o.attr(t);
o.length && ((r = H[t]) && r.set ? r.set(o, n, t) : o.attr(t, n), i !== n && u.onSetAttrib && u.onSetAttrib({
attrElm: o,
attrName: t,
attrValue: n
}))
},
C = function () {
return u.root_element || a.body
},
w = function (e, t) {
return ur(a.body, g(e), t)
},
x = function (e, t, n) {
var r = h(e);
return n ? r.css(t) : ("float" === (t = t.replace(/-(\D)/g, function (e, t) {
return t.toUpperCase()
})) && (t = wt.browser.isIE() ? "styleFloat" : "cssFloat"), r[0] && r[0].style ? r[0].style[t] : undefined)
},
S = function (e) {
var t, n;
return e = g(e), t = x(e, "width"), n = x(e, "height"), -1 === t.indexOf("px") && (t = 0), -1 === n.indexOf("px") && (n = 0), {
w: parseInt(t, 10) || e.offsetWidth || e.clientWidth,
h: parseInt(n, 10) || e.offsetHeight || e.clientHeight
}
},
N = function (e, t) {
if (!e) return !1;
if (!Array.isArray(e)) {
if ("*" === t) return 1 === e.nodeType;
if (Cu.test(t)) {
for (var n = t.toLowerCase().split(/,/), r = e.nodeName.toLowerCase(), o = n.length - 1; 0 <= o; o--)
if (n[o] === r) return !0;
return !1
}
if (e.nodeType && 1 !== e.nodeType) return !1
}
var i = Array.isArray(e) ? e : [e];
return 0 < Ta(t, i[0].ownerDocument || i[0], null, i).length
},
E = function (e, t, n, r) {
var o, i = [],
a = g(e);
for (r = r === undefined, n = n || ("BODY" !== C().nodeName ? C().parentNode : null), kt.is(t, "string") && (t = "*" === (o = t) ? function (e) {
return 1 === e.nodeType
} : function (e) {
return N(e, o)
}); a && !(a === n || $(a.nodeType) || Fn(a) || Un(a));) {
if (!t || "function" == typeof t && t(a)) {
if (!r) return [a];
i.push(a)
}
a = a.parentNode
}
return r ? i : null
},
k = function (e, t, n) {
var r = t;
if (e)
for ("string" == typeof t && (r = function (e) {
return N(e, t)
}), e = e[n]; e; e = e[n])
if ("function" == typeof r && r(e)) return e;
return null
},
_ = function (e, n, r) {
var o, t = "string" == typeof e ? g(e) : e;
if (!t) return !1;
if (kt.isArray(t) && (t.length || 0 === t.length)) return o = [], vu(t, function (e, t) {
e && o.push(n.call(r, "string" == typeof e ? g(e) : e, t))
}), o;
var i = r || s;
return n.call(i, t)
},
A = function (e, t) {
h(e).each(function (e, n) {
vu(t, function (e, t) {
b(n, t, e)
})
})
},
R = function (e, r) {
var t = h(e);
bu ? t.each(function (e, t) {
if (!1 !== t.canHaveHTML) {
for (; t.firstChild;) t.removeChild(t.firstChild);
try {
t.innerHTML = "<br>" + r, t.removeChild(t.firstChild)
} catch (n) {
hu("<div></div>").html("<br>" + r).contents().slice(1).appendTo(t)
}
return r
}
}) : t.html(r)
},
T = function (e, n, r, o, i) {
return _(e, function (e) {
var t = "string" == typeof n ? a.createElement(n) : n;
return A(t, r), o && ("string" != typeof o && o.nodeType ? t.appendChild(o) : "string" == typeof o && R(t, o)), i ? t : e.appendChild(t)
})
},
D = function (e, t, n) {
return T(a.createElement(e), e, t, n, !0)
},
e = ci.decode,
O = ci.encodeAllRaw,
B = function (e, t) {
var n = h(e);
return t ? n.each(function () {
for (var e; e = this.firstChild;) 3 === e.nodeType && 0 === e.data.length ? this.removeChild(e) : this.parentNode.insertBefore(e, this)
}).remove() : n.remove(), 1 < n.length ? n.toArray() : n[0]
},
P = function (e, t, n) {
h(e).toggleClass(t, n).each(function () {
"" === this.className && hu(this).attr("class", null)
})
},
L = function (t, e, n) {
return _(e, function (e) {
return kt.is(e, "array") && (t = t.cloneNode(!0)), n && vu(yu(e.childNodes), function (e) {
t.appendChild(e)
}), e.parentNode.replaceChild(t, e)
})
},
I = function (e) {
if (An(e)) {
var t = "a" === e.nodeName.toLowerCase() && !v(e, "href") && v(e, "id");
if (v(e, "name") || v(e, "data-mce-bookmark") || t) return !0
}
return !1
},
M = function () {
return a.createRange()
},
F = function (e, t, n, r) {
if (kt.isArray(e)) {
for (var o = e.length, i = []; o--;) i[o] = F(e[o], t, n, r);
return i
}
return !u.collect || e !== a && e !== c || l.push([e, t, n, r]), d.bind(e, t, n, r || j)
},
U = function (e, t, n) {
if (kt.isArray(e)) {
for (var r = e.length, o = []; r--;) o[r] = U(e[r], t, n);
return o
}
if (0 < l.length && (e === a || e === c))
for (r = l.length; r--;) {
var i = l[r];
e !== i[0] || t && t !== i[1] || n && n !== i[2] || d.unbind(i[0], i[1], i[2])
}
return d.unbind(e, t, n)
},
z = function (e) {
if (e && An(e)) {
var t = e.getAttribute("data-mce-contenteditable");
return t && "inherit" !== t ? t : "inherit" !== e.contentEditable ? e.contentEditable : null
}
return null
},
j = {
doc: a,
settings: u,
win: c,
files: n,
stdMode: !0,
boxModel: !0,
styleSheetLoader: o,
boundEvents: l,
styles: i,
schema: f,
events: d,
isBlock: function (e) {
if ("string" == typeof e) return !!m[e];
if (e) {
var t = e.nodeType;
if (t) return !(1 !== t || !m[e.nodeName])
}
return !1
},
$: p,
$$: h,
root: null,
clone: function (t, e) {
if (!bu || 1 !== t.nodeType || e) return t.cloneNode(e);
var n = a.createElement(t.nodeName);
return vu(y(t), function (e) {
b(n, e.nodeName, v(t, e.nodeName))
}), n
},
getRoot: C,
getViewPort: function (e) {
var t = En(e);
return {
x: t.x,
y: t.y,
w: t.width,
h: t.height
}
},
getRect: function (e) {
e = g(e);
var t = w(e),
n = S(e);
return {
x: t.x,
y: t.y,
w: n.w,
h: n.h
}
},
getSize: S,
getParent: function (e, t, n) {
var r = E(e, t, n, !1);
return r && 0 < r.length ? r[0] : null
},
getParents: E,
get: g,
getNext: function (e, t) {
return k(e, t, "nextSibling")
},
getPrev: function (e, t) {
return k(e, t, "previousSibling")
},
select: function (e, t) {
return Ta(e, g(t) || u.root_element || a, [])
},
is: N,
add: T,
create: D,
createHTML: function (e, t, n) {
var r, o = "";
for (r in o += "<" + e, t) t.hasOwnProperty(r) && null !== t[r] && "undefined" != typeof t[r] && (o += " " + r + '="' + O(t[r]) + '"');
return void 0 !== n ? o + ">" + n + "</" + e + ">" : o + " />"
},
createFragment: function (e) {
var t, n = a.createElement("div"),
r = a.createDocumentFragment();
for (r.appendChild(n), e && (n.innerHTML = e); t = n.firstChild;) r.appendChild(t);
return r.removeChild(n), r
},
remove: B,
setStyle: function (e, t, n) {
var r = q(t) ? h(e).css(t, n) : h(e).css(t);
u.update_styles && xu(i, r)
},
getStyle: x,
setStyles: function (e, t) {
var n = h(e).css(t);
u.update_styles && xu(i, n)
},
removeAllAttribs: function (e) {
return _(e, function (e) {
for (var t = e.attributes, n = t.length - 1; 0 <= n; n--) e.removeAttributeNode(t.item(n))
})
},
setAttrib: b,
setAttribs: A,
getAttrib: v,
getPos: w,
parseStyle: function (e) {
return i.parse(e)
},
serializeStyle: function (e, t) {
return i.serialize(e, t)
},
addStyle: function (e) {
var t, n;
if (j !== Nu.DOM && a === document) {
if (r[e]) return;
r[e] = !0
}(n = a.getElementById("mceDefaultStyles")) || ((n = a.createElement("style")).id = "mceDefaultStyles", n.type = "text/css", (t = a.getElementsByTagName("head")[0]).firstChild ? t.insertBefore(n, t.firstChild) : t.appendChild(n)), n.styleSheet ? n.styleSheet.cssText += e : n.appendChild(a.createTextNode(e))
},
loadCSS: function (e) {
W((e = e || "").split(","), function (e) {
n[e] = !0, o.load(e, V)
})
},
addClass: function (e, t) {
h(e).addClass(t)
},
removeClass: function (e, t) {
P(e, t, !1)
},
hasClass: function (e, t) {
return h(e).hasClass(t)
},
toggleClass: P,
show: function (e) {
h(e).show()
},
hide: function (e) {
h(e).hide()
},
isHidden: function (e) {
return "none" === h(e).css("display")
},
uniqueId: function (e) {
return (e || "mce_") + t++
},
setHTML: R,
getOuterHTML: function (e) {
var t = "string" == typeof e ? g(e) : e;
return An(t) ? t.outerHTML : hu("<div></div>").append(hu(t).clone()).html()
},
setOuterHTML: function (e, t) {
h(e).each(function () {
try {
if ("outerHTML" in this) return void(this.outerHTML = t)
} catch (e) {}
B(hu(this).html(t), !0)
})
},
decode: e,
encode: O,
insertAfter: function (e, t) {
var r = g(t);
return _(e, function (e) {
var t = r.parentNode,
n = r.nextSibling;
return n ? t.insertBefore(e, n) : t.appendChild(e), e
})
},
replace: L,
rename: function (t, e) {
var n;
return t.nodeName !== e.toUpperCase() && (n = D(e), vu(y(t), function (e) {
b(n, e.nodeName, v(t, e.nodeName))
}), L(n, t, !0)), n || t
},
findCommonAncestor: function (e, t) {
for (var n, r = e; r;) {
for (n = t; n && r !== n;) n = n.parentNode;
if (r === n) break;
r = r.parentNode
}
return !r && e.ownerDocument ? e.ownerDocument.documentElement : r
},
toHex: function (e) {
return i.toHex(kt.trim(e))
},
run: _,
getAttribs: y,
isEmpty: function (e, t) {
var n, r, o = 0;
if (I(e)) return !1;
if (e = e.firstChild) {
var i = new Xr(e, e.parentNode),
a = f ? f.getWhiteSpaceElements() : {};
t = t || (f ? f.getNonEmptyElements() : null);
do {
if (n = e.nodeType, An(e)) {
var u = e.getAttribute("data-mce-bogus");
if (u) {
e = i.next("all" === u);
continue
}
if (r = e.nodeName.toLowerCase(), t && t[r]) {
if ("br" !== r) return !1;
o++, e = i.next();
continue
}
if (I(e)) return !1
}
if (8 === n) return !1;
if (3 === n && !Uo(e.nodeValue)) return !1;
if (3 === n && e.parentNode && a[e.parentNode.nodeName] && Uo(e.nodeValue)) return !1;
e = i.next()
} while (e)
}
return o <= 1
},
createRng: M,
nodeIndex: Su,
split: function (e, t, n) {
var r, o, i, a = M();
if (e && t) return a.setStart(e.parentNode, Su(e)), a.setEnd(t.parentNode, Su(t)), r = a.extractContents(), (a = M()).setStart(t.parentNode, Su(t) + 1), a.setEnd(e.parentNode, Su(e) + 1), o = a.extractContents(), (i = e.parentNode).insertBefore(Yo(j, r), e), n ? i.insertBefore(n, e) : i.insertBefore(t, e), i.insertBefore(Yo(j, o), e), B(e), n || t
},
bind: F,
unbind: U,
fire: function (e, t, n) {
return d.fire(e, t, n)
},
getContentEditable: z,
getContentEditableParent: function (e) {
for (var t = C(), n = null; e && e !== t && null === (n = z(e)); e = e.parentNode);
return n
},
destroy: function () {
if (0 < l.length)
for (var e = l.length; e--;) {
var t = l[e];
d.unbind(t[0], t[1], t[2])
}
ue(n, function (e, t) {
o.unload(t), delete n[t]
}), Ta.setDocument && Ta.setDocument()
},
isChildOf: function (e, t) {
for (; e;) {
if (t === e) return !0;
e = e.parentNode
}
return !1
},
dumpRng: function (e) {
return "startContainer: " + e.startContainer.nodeName + ", startOffset: " + e.startOffset + ", endContainer: " + e.endContainer.nodeName + ", endOffset: " + e.endOffset
}
},
H = wu(i, u, function () {
return j
});
return j
}(gu = Nu = Nu || {}).DOM = gu(document), gu.nodeIndex = Su;
var Eu = Nu,
ku = Eu.DOM,
_u = kt.each,
Au = kt.grep,
Ru = (Tu.prototype._setReferrerPolicy = function (e) {
this.settings.referrerPolicy = e
}, Tu.prototype.loadScript = function (e, t, n) {
var r = ku,
o = function () {
r.remove(i), a && (a.onerror = a.onload = a = null)
},
i = r.uniqueId(),
a = document.createElement("script");
a.id = i, a.type = "text/javascript", a.src = kt._addCacheSuffix(e), this.settings.referrerPolicy && r.setAttrib(a, "referrerpolicy", this.settings.referrerPolicy), a.onload = function () {
o(), t()
}, a.onerror = function () {
o(), T(n) ? n() : "undefined" != typeof console && console.log && console.log("Failed to load script: " + e)
}, (document.getElementsByTagName("head")[0] || document.body).appendChild(a)
}, Tu.prototype.isDone = function (e) {
return 2 === this.states[e]
}, Tu.prototype.markDone = function (e) {
this.states[e] = 2
}, Tu.prototype.add = function (e, t, n, r) {
var o = this.states[e];
this.queue.push(e), o === undefined && (this.states[e] = 0), t && (this.scriptLoadedCallbacks[e] || (this.scriptLoadedCallbacks[e] = []), this.scriptLoadedCallbacks[e].push({
success: t,
failure: r,
scope: n || this
}))
}, Tu.prototype.load = function (e, t, n, r) {
return this.add(e, t, n, r)
}, Tu.prototype.remove = function (e) {
delete this.states[e], delete this.scriptLoadedCallbacks[e]
}, Tu.prototype.loadQueue = function (e, t, n) {
this.loadScripts(this.queue, e, t, n)
}, Tu.prototype.loadScripts = function (n, e, t, r) {
var o = this,
i = [],
a = function (t, e) {
_u(o.scriptLoadedCallbacks[e], function (e) {
T(e[t]) && e[t].call(e.scope)
}), o.scriptLoadedCallbacks[e] = undefined
};
o.queueLoadedCallbacks.push({
success: e,
failure: r,
scope: t || this
});
var u = function () {
var e, t = Au(n);
n.length = 0, _u(t, function (e) {
2 !== o.states[e] ? 3 !== o.states[e] ? 1 !== o.states[e] && (o.states[e] = 1, o.loading++, o.loadScript(e, function () {
o.states[e] = 2, o.loading--, a("success", e), u()
}, function () {
o.states[e] = 3, o.loading--, i.push(e), a("failure", e), u()
})) : a("failure", e) : a("success", e)
}), o.loading || (e = o.queueLoadedCallbacks.slice(0), o.queueLoadedCallbacks.length = 0, _u(e, function (e) {
0 === i.length ? T(e.success) && e.success.call(e.scope) : T(e.failure) && e.failure.call(e.scope, i)
}))
};
u()
}, Tu.ScriptLoader = new Tu, Tu);
function Tu(e) {
void 0 === e && (e = {}), this.states = {}, this.queue = [], this.scriptLoadedCallbacks = {}, this.queueLoadedCallbacks = [], this.loading = 0, this.settings = e
}
var Du, Ou = function (e) {
var t = e;
return {
get: function () {
return t
},
set: function (e) {
t = e
}
}
},
Bu = {},
Pu = Ou("en"),
Lu = function () {
return ge(Bu, Pu.get())
},
Iu = {
getData: function () {
return se(Bu, function (e) {
return ke({}, e)
})
},
setCode: function (e) {
e && Pu.set(e)
},
getCode: function () {
return Pu.get()
},
add: function (e, t) {
var n = Bu[e];
n || (Bu[e] = n = {}), ue(t, function (e, t) {
n[t.toLowerCase()] = e
})
},
translate: function (e) {
var t, n, r = Lu().getOr({}),
o = function (e) {
return T(e) ? Object.prototype.toString.call(e) : i(e) ? "" : "" + e
},
i = function (e) {
return "" === e || null === e || e === undefined
},
a = function (e) {
var t = o(e);
return ge(r, t.toLowerCase()).map(o).getOr(t)
},
u = function (e) {
return e.replace(/{context:\w+}$/, "")
};
if (i(e)) return "";
if (_(t = e) && he(t, "raw")) return o(e.raw);
if (S(n = e) && 1 < n.length) {
var s = e.slice(1);
return u(a(e[0]).replace(/\{([0-9]+)\}/g, function (e, t) {
return he(s, t) ? o(s[t]) : e
}))
}
return u(a(e))
},
isRtl: function () {
return Lu().bind(function (e) {
return ge(e, "_dir")
}).exists(function (e) {
return "rtl" === e
})
},
hasCode: function (e) {
return he(Bu, e)
}
};
function Mu() {
var r = this,
o = [],
s = {},
c = {},
i = [],
l = function (t, n) {
var e = H(i, function (e) {
return e.name === t && e.state === n
});
W(e, function (e) {
return e.callback()
})
},
f = function (e) {
var t;
return c[e] && (t = c[e].dependencies), t || []
},
d = function (e, t) {
return "object" == typeof t ? t : "string" == typeof e ? {
prefix: "",
resource: t,
suffix: ""
} : {
prefix: e.prefix,
resource: t,
suffix: e.suffix
}
},
m = function (o, i, a, u, e) {
var t, n;
s[o] || (0 !== (t = "string" == typeof i ? i : i.prefix + i.resource + i.suffix).indexOf("/") && -1 === t.indexOf("://") && (t = Mu.baseURL + "/" + t), s[o] = t.substring(0, t.lastIndexOf("/")), n = function () {
var n, e, t, r;
l(o, "loaded"), n = i, e = a, t = u, r = f(o), W(r, function (e) {
var t = d(n, e);
m(t.resource, t, undefined, undefined)
}), e && (t ? e.call(t) : e.call(Ru))
}, c[o] ? n() : Ru.ScriptLoader.add(t, n, u, e))
},
e = function (e, t, n) {
void 0 === n && (n = "added"), he(c, e) && "added" === n || he(s, e) && "loaded" === n ? t() : i.push({
name: e,
state: n,
callback: t
})
};
return {
items: o,
urls: s,
lookup: c,
_listeners: i,
get: function (e) {
return c[e] ? c[e].instance : undefined
},
dependencies: f,
requireLangPack: function (t, n) {
!1 !== Mu.languageLoad && e(t, function () {
var e = Iu.getCode();
!e || n && -1 === ("," + (n || "") + ",").indexOf("," + e + ",") || Ru.ScriptLoader.add(s[t] + "/langs/" + e + ".js")
}, "loaded")
},
add: function (e, t, n) {
var r = t;
return o.push(r), c[e] = {
instance: r,
dependencies: n
}, l(e, "added"), r
},
remove: function (e) {
delete s[e], delete c[e]
},
createUrl: d,
addComponents: function (e, t) {
var n = r.urls[e];
W(t, function (e) {
Ru.ScriptLoader.add(n + "/" + e)
})
},
load: m,
waitFor: e
}
}(Du = Mu = Mu || {}).PluginManager = Du(), Du.ThemeManager = Du();
var Fu, Uu = Mu,
zu = function (n, r) {
var o = null;
return {
cancel: function () {
null !== o && (clearTimeout(o), o = null)
},
throttle: function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
null === o && (o = setTimeout(function () {
n.apply(null, e), o = null
}, r))
}
}
},
ju = function (n, r) {
var o = null;
return {
cancel: function () {
null !== o && (clearTimeout(o), o = null)
},
throttle: function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
null !== o && clearTimeout(o), o = setTimeout(function () {
n.apply(null, e), o = null
}, r)
}
}
},
Hu = function (e, t) {
var n = Gn(e, t);
return n === undefined || "" === n ? [] : n.split(" ")
},
Vu = function (e) {
return e.dom.classList !== undefined
},
qu = function (e, t) {
return o = t, i = Hu(n = e, r = "class").concat([o]), Xn(n, r, i.join(" ")), !0;
var n, r, o, i
},
$u = function (e, t) {
return o = t, 0 < (i = H(Hu(n = e, r = "class"), function (e) {
return e !== o
})).length ? Xn(n, r, i.join(" ")) : Qn(n, r), !1;
var n, r, o, i
},
Wu = function (e, t) {
Vu(e) ? e.dom.classList.add(t) : qu(e, t)
},
Ku = function (e) {
0 === (Vu(e) ? e.dom.classList : Hu(e, "class")).length && Qn(e, "class")
},
Xu = function (e, t) {
return Vu(e) && e.dom.classList.contains(t)
},
Yu = function (e, t) {
var n = [];
return W(Gt(e), function (e) {
t(e) && (n = n.concat([e])), n = n.concat(Yu(e, t))
}), n
},
Gu = function (e, t) {
return n = t, o = (r = e) === undefined ? document : r.dom, Dt(o) ? [] : z(o.querySelectorAll(n), At.fromDom);
var n, r, o
},
Ju = E("mce-annotation"),
Qu = E("data-mce-annotation"),
Zu = E("data-mce-annotation-uid"),
es = function (r, e) {
var t = r.selection.getRng(),
n = At.fromDom(t.startContainer),
o = At.fromDom(r.getBody()),
i = e.fold(function () {
return "." + Ju()
}, function (e) {
return "[" + Qu() + '="' + e + '"]'
}),
a = Jt(n, t.startOffset).getOr(n),
u = Or(a, i, function (e) {
return Ot(e, o)
}),
s = function (e, t) {
return n = t, (r = e.dom) && r.hasAttribute && r.hasAttribute(n) ? U.some(Gn(e, t)) : U.none();
var n, r
};
return u.bind(function (e) {
return s(e, "" + Zu()).bind(function (n) {
return s(e, "" + Qu()).map(function (e) {
var t = ts(r, n);
return {
uid: n,
name: e,
elements: t
}
})
})
})
},
ts = function (e, t) {
var n = At.fromDom(e.getBody());
return Gu(n, "[" + Zu() + '="' + t + '"]')
},
ns = function (i, e) {
var a = Ou({}),
c = function (e, t) {
u(e, function (e) {
return t(e), e
})
},
u = function (e, t) {
var n = a.get(),
r = t(n.hasOwnProperty(e) ? n[e] : {
listeners: [],
previous: Ou(U.none())
});
n[e] = r, a.set(n)
},
t = ju(function () {
var e, t, n, r = a.get(),
o = (e = ie(r), (n = B.call(e, 0)).sort(t), n);
W(o, function (e) {
u(e, function (u) {
var s = u.previous.get();
return es(i, U.some(e)).fold(function () {
var t;
s.isSome() && (c(t = e, function (e) {
W(e.listeners, function (e) {
return e(!1, t)
})
}), u.previous.set(U.none()))
}, function (e) {
var t, n, r, o = e.uid,
i = e.name,
a = e.elements;
s.is(o) || (n = o, r = a, c(t = i, function (e) {
W(e.listeners, function (e) {
return e(!0, t, {
uid: n,
nodes: z(r, function (e) {
return e.dom
})
})
})
}), u.previous.set(U.some(o)))
}), {
previous: u.previous,
listeners: u.listeners
}
})
})
}, 30);
i.on("remove", function () {
t.cancel()
}), i.on("NodeChange", function () {
t.throttle()
});
return {
addListener: function (e, t) {
u(e, function (e) {
return {
previous: e.previous,
listeners: e.listeners.concat([t])
}
})
}
}
},
rs = function (e, n) {
e.on("init", function () {
e.serializer.addNodeFilter("span", function (e) {
W(e, function (t) {
var e;
e = t, U.from(e.attr(Qu())).bind(n.lookup).each(function (e) {
!1 === e.persistent && t.unwrap()
})
})
})
})
},
os = 0,
is = function (e) {
var t = (new Date).getTime();
return e + "_" + Math.floor(1e9 * Math.random()) + ++os + String(t)
},
as = function (e, t) {
var n, r, o = Ht(e).dom,
i = At.fromDom(o.createDocumentFragment()),
a = (n = t, (r = (o || document).createElement("div")).innerHTML = n, Gt(At.fromDom(r)));
dn(i, a), mn(e), fn(e, i)
},
us = function (e, t) {
return At.fromDom(e.dom.cloneNode(t))
},
ss = function (e) {
return us(e, !1)
},
cs = function (e) {
return us(e, !0)
},
ls = function (e, t, n) {
void 0 === n && (n = C);
var r = new Xr(e, t),
o = function (e) {
for (var t;
(t = r[e]()) && !In(t) && !n(t););
return U.from(t).filter(In)
};
return {
current: function () {
return U.from(r.current()).filter(In)
},
next: function () {
return o("next")
},
prev: function () {
return o("prev")
},
prev2: function () {
return o("prev2")
}
}
},
fs = function (t, e) {
var i = e || function (e) {
return t.isBlock(e) || zn(e) || Vn(e)
},
a = function (e, t, n, r) {
if (In(e)) {
var o = r(e, t, e.data);
if (-1 !== o) return U.some({
container: e,
offset: o
})
}
return n().bind(function (e) {
return a(e.container, e.offset, n, r)
})
};
return {
backwards: function (e, t, n, r) {
var o = ls(e, r, i);
return a(e, t, function () {
return o.prev().map(function (e) {
return {
container: e,
offset: e.length
}
})
}, n).getOrNull()
},
forwards: function (e, t, n, r) {
var o = ls(e, r, i);
return a(e, t, function () {
return o.next().map(function (e) {
return {
container: e,
offset: 0
}
})
}, n).getOrNull()
}
}
},
ds = function (e, t, n) {
return e.isSome() && t.isSome() ? U.some(n(e.getOrDie(), t.getOrDie())) : U.none()
},
ms = Math.round,
ps = function (e) {
return e ? {
left: ms(e.left),
top: ms(e.top),
bottom: ms(e.bottom),
right: ms(e.right),
width: ms(e.width),
height: ms(e.height)
} : {
left: 0,
top: 0,
bottom: 0,
right: 0,
width: 0,
height: 0
}
},
gs = function (e, t) {
return e = ps(e), t || (e.left = e.left + e.width), e.right = e.left, e.width = 0, e
},
hs = function (e, t, n) {
return 0 <= e && e <= Math.min(t.height, n.height) / 2
},
vs = function (e, t) {
var n = Math.min(t.height / 2, e.height / 2);
return e.bottom - n < t.top || !(e.top > t.bottom) && hs(t.top - e.bottom, e, t)
},
ys = function (e, t) {
return e.top > t.bottom || !(e.bottom < t.top) && hs(t.bottom - e.top, e, t)
},
bs = function (e, t, n) {
return t >= e.left && t <= e.right && n >= e.top && n <= e.bottom
},
Cs = function (e) {
var t = e.startContainer,
n = e.startOffset;
return t.hasChildNodes() && e.endOffset === n + 1 ? t.childNodes[n] : null
},
ws = function (e, t) {
return 1 === e.nodeType && e.hasChildNodes() && (t >= e.childNodes.length && (t = e.childNodes.length - 1), e = e.childNodes[t]), e
},
xs = new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),
Ss = function (e) {
return "string" == typeof e && 768 <= e.charCodeAt(0) && xs.test(e)
},
Ns = An,
Es = Lo,
ks = Tn("display", "block table"),
_s = Tn("float", "left right"),
As = function () {
for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e];
return function (e) {
for (var t = 0; t < n.length; t++)
if (!n[t](e)) return !1;
return !0
}
}(Ns, Es, d(_s)),
Rs = d(Tn("white-space", "pre pre-line pre-wrap")),
Ts = In,
Ds = zn,
Os = Eu.nodeIndex,
Bs = ws,
Ps = function (e) {
return "createRange" in e ? e.createRange() : Eu.DOM.createRng()
},
Ls = function (e) {
return e && /[\r\n\t ]/.test(e)
},
Is = function (e) {
return !!e.setStart && !!e.setEnd
},
Ms = function (e) {
var t, n = e.startContainer,
r = e.startOffset;
return !!(Ls(e.toString()) && Rs(n.parentNode) && In(n) && (t = n.data, Ls(t[r - 1]) || Ls(t[r + 1])))
},
Fs = function (e) {
return 0 === e.left && 0 === e.right && 0 === e.top && 0 === e.bottom
},
Us = function (e) {
var t = e.getClientRects(),
n = 0 < t.length ? ps(t[0]) : ps(e.getBoundingClientRect());
return !Is(e) && Ds(e) && Fs(n) ? function (e) {
var t = e.ownerDocument,
n = Ps(t),
r = t.createTextNode(lo),
o = e.parentNode;
o.insertBefore(r, e), n.setStart(r, 0), n.setEnd(r, 1);
var i = ps(n.getBoundingClientRect());
return o.removeChild(r), i
}(e) : Fs(n) && Is(e) ? function (e) {
var t = e.startContainer,
n = e.endContainer,
r = e.startOffset,
o = e.endOffset;
if (t === n && In(n) && 0 === r && 1 === o) {
var i = e.cloneRange();
return i.setEndAfter(n), Us(i)
}
return null
}(e) : n
},
zs = function (e, t) {
var n = gs(e, t);
return n.width = 1, n.right = n.left + 1, n
},
js = function (e) {
var t, n, r = [],
o = function (e) {
var t, n;
0 !== e.height && (0 < r.length && (t = e, n = r[r.length - 1], t.left === n.left && t.top === n.top && t.bottom === n.bottom && t.right === n.right) || r.push(e))
},
i = function (e, t) {
var n = Ps(e.ownerDocument);
if (t < e.data.length) {
if (Ss(e.data[t])) return r;
if (Ss(e.data[t - 1]) && (n.setStart(e, t), n.setEnd(e, t + 1), !Ms(n))) return o(zs(Us(n), !1)), r
}
0 < t && (n.setStart(e, t - 1), n.setEnd(e, t), Ms(n) || o(zs(Us(n), !1))), t < e.data.length && (n.setStart(e, t), n.setEnd(e, t + 1), Ms(n) || o(zs(Us(n), !0)))
};
if (Ts(e.container())) return i(e.container(), e.offset()), r;
if (Ns(e.container()))
if (e.isAtEnd()) n = Bs(e.container(), e.offset()), Ts(n) && i(n, n.data.length), As(n) && !Ds(n) && o(zs(Us(n), !1));
else {
if (n = Bs(e.container(), e.offset()), Ts(n) && i(n, 0), As(n) && e.isAtEnd()) return o(zs(Us(n), !1)), r;
t = Bs(e.container(), e.offset() - 1), As(t) && !Ds(t) && (!ks(t) && !ks(n) && As(n) || o(zs(Us(t), !1))), As(n) && o(zs(Us(n), !0))
} return r
};
function Hs(t, n, e) {
var r = function () {
return e = e || js(Hs(t, n))
};
return {
container: E(t),
offset: E(n),
toRange: function () {
var e = Ps(t.ownerDocument);
return e.setStart(t, n), e.setEnd(t, n), e
},
getClientRects: r,
isVisible: function () {
return 0 < r().length
},
isAtStart: function () {
return Ts(t), 0 === n
},
isAtEnd: function () {
return Ts(t) ? n >= t.data.length : n >= t.childNodes.length
},
isEqual: function (e) {
return e && t === e.container() && n === e.offset()
},
getNode: function (e) {
return Bs(t, e ? n - 1 : n)
}
}
}(Fu = Hs = Hs || {}).fromRangeStart = function (e) {
return Fu(e.startContainer, e.startOffset)
}, Fu.fromRangeEnd = function (e) {
return Fu(e.endContainer, e.endOffset)
}, Fu.after = function (e) {
return Fu(e.parentNode, Os(e) + 1)
}, Fu.before = function (e) {
return Fu(e.parentNode, Os(e))
}, Fu.isAbove = function (e, t) {
return ds(ne(t.getClientRects()), re(e.getClientRects()), vs).getOr(!1)
}, Fu.isBelow = function (e, t) {
return ds(re(t.getClientRects()), ne(e.getClientRects()), ys).getOr(!1)
}, Fu.isAtStart = function (e) {
return !!e && e.isAtStart()
}, Fu.isAtEnd = function (e) {
return !!e && e.isAtEnd()
}, Fu.isTextPosition = function (e) {
return !!e && In(e.container())
}, Fu.isElementPosition = function (e) {
return !1 === Fu.isTextPosition(e)
};
var Vs, qs, $s = Hs,
Ws = function (e, t) {
In(t) && 0 === t.data.length && e.remove(t)
},
Ks = function (e, t, n) {
var r, o, i, a, u, s, c;
Un(n) ? (i = e, a = t, u = n, s = U.from(u.firstChild), c = U.from(u.lastChild), a.insertNode(u), s.each(function (e) {
return Ws(i, e.previousSibling)
}), c.each(function (e) {
return Ws(i, e.nextSibling)
})) : (r = e, o = n, t.insertNode(o), Ws(r, o.previousSibling), Ws(r, o.nextSibling))
},
Xs = In,
Ys = On,
Gs = Eu.nodeIndex,
Js = function (e) {
var t = e.parentNode;
return Ys(t) ? Js(t) : t
},
Qs = function (e) {
return e ? Se(e.childNodes, function (e, t) {
return Ys(t) && "BR" !== t.nodeName ? e = e.concat(Qs(t)) : e.push(t), e
}, []) : []
},
Zs = function (t) {
return function (e) {
return t === e
}
},
ec = function (e) {
var t = Xs(e) ? "text()" : e.nodeName.toLowerCase();
return t + "[" + function (e) {
var r = Qs(Js(e)),
t = Ne(r, Zs(e), e);
r = r.slice(0, t + 1);
var n = Se(r, function (e, t, n) {
return Xs(t) && Xs(r[n - 1]) && e++, e
}, 0);
return r = we(r, Rn([e.nodeName])), (t = Ne(r, Zs(e), e)) - n
}(e) + "]"
},
tc = function (e, t) {
var n, r, o, i = [],
a = t.container(),
u = t.offset();
return Xs(a) ? n = function (e, t) {
for (;
(e = e.previousSibling) && Xs(e);) t += e.data.length;
return t
}(a, u) : (u >= (r = a.childNodes).length ? (n = "after", u = r.length - 1) : n = "before", a = r[u]), i.push(ec(a)), o = function (e, t, n) {
var r = [];
for (t = t.parentNode; t !== e && (!n || !n(t)); t = t.parentNode) r.push(t);
return r
}(e, a), o = we(o, d(On)), (i = i.concat(Ce(o, ec))).reverse().join("/") + "," + n
},
nc = function (e, t) {
if (!t) return null;
var n = t.split(","),
r = n[0].split("/"),
o = 1 < n.length ? n[1] : "before",
i = Se(r, function (e, t) {
var n, r, o, i, a = /([\w\-\(\)]+)\[([0-9]+)\]/.exec(t);
return a ? ("text()" === a[1] && (a[1] = "#text"), n = e, r = a[1], o = parseInt(a[2], 10), i = Qs(n), i = we(i, function (e, t) {
return !Xs(e) || !Xs(i[t - 1])
}), (i = we(i, Rn([r])))[o]) : null
}, e);
return i ? Xs(i) ? function (e, t) {
for (var n, r = e, o = 0; Xs(r);) {
if (n = r.data.length, o <= t && t <= o + n) {
e = r, t -= o;
break
}
if (!Xs(r.nextSibling)) {
e = r, t = n;
break
}
o += n, r = r.nextSibling
}
return Xs(e) && t > e.data.length && (t = e.data.length), $s(e, t)
}(i, parseInt(o, 10)) : (o = "after" === o ? Gs(i) + 1 : Gs(i), $s(i.parentNode, o)) : null
},
rc = Vn,
oc = function (e, t, n, r, o) {
var i, a = r[o ? "startContainer" : "endContainer"],
u = r[o ? "startOffset" : "endOffset"],
s = [],
c = 0,
l = e.getRoot();
for (In(a) ? s.push(n ? function (e, t, n) {
for (var r = e(t.data.slice(0, n)).length, o = t.previousSibling; o && In(o); o = o.previousSibling) r += e(o.data).length;
return r
}(t, a, u) : u) : (u >= (i = a.childNodes).length && i.length && (c = 1, u = Math.max(0, i.length - 1)), s.push(e.nodeIndex(i[u], n) + c)); a && a !== l; a = a.parentNode) s.push(e.nodeIndex(a, n));
return s
},
ic = function (e, t, n) {
var r = 0;
return kt.each(e.select(t), function (e) {
if ("all" !== e.getAttribute("data-mce-bogus")) return e !== n && void r++
}), r
},
ac = function (e, t) {
var n, r = t ? "start" : "end",
o = e[r + "Container"],
i = e[r + "Offset"];
An(o) && "TR" === o.nodeName && (o = (n = o.childNodes)[Math.min(t ? i : i - 1, n.length - 1)]) && (i = t ? 0 : o.childNodes.length, e["set" + (t ? "Start" : "End")](o, i))
},
uc = function (e) {
return ac(e, !0), ac(e, !1), e
},
sc = function (e, t) {
var n;
if (An(e) && (e = ws(e, t), rc(e))) return e;
if (bo(e)) {
if (In(e) && vo(e) && (e = e.parentNode), n = e.previousSibling, rc(n)) return n;
if (n = e.nextSibling, rc(n)) return n
}
},
cc = function (e, t, n) {
var r = n.getNode(),
o = r ? r.nodeName : null,
i = n.getRng();
if (rc(r) || "IMG" === o) return {
name: o,
index: ic(n.dom, o, r)
};
var a, u, s, c, l, f, d, m = sc((a = i).startContainer, a.startOffset) || sc(a.endContainer, a.endOffset);
return m ? {
name: o = m.tagName,
index: ic(n.dom, o, m)
} : (u = e, c = t, l = i, f = (s = n).dom, (d = {}).start = oc(f, u, c, l, !0), s.isCollapsed() || (d.end = oc(f, u, c, l, !1)), d)
},
lc = function (e, t, n) {
var r = {
"data-mce-type": "bookmark",
id: t,
style: "overflow:hidden;line-height:0px"
};
return n ? e.create("span", r, "") : e.create("span", r)
},
fc = function (e, t) {
var n = e.dom,
r = e.getRng(),
o = n.uniqueId(),
i = e.isCollapsed(),
a = e.getNode(),
u = a.nodeName;
if ("IMG" === u) return {
name: u,
index: ic(n, u, a)
};
var s, c = uc(r.cloneRange());
i || (c.collapse(!1), s = lc(n, o + "_end", t), Ks(n, c, s)), (r = uc(r)).collapse(!0);
var l = lc(n, o + "_start", t);
return Ks(n, r, l), e.moveToBookmark({
id: o,
keep: !0
}), {
id: o
}
},
dc = function (e, t, n) {
return 2 === t ? cc(po, n, e) : 3 === t ? (o = (r = e).getRng(), {
start: tc(r.dom.getRoot(), $s.fromRangeStart(o)),
end: tc(r.dom.getRoot(), $s.fromRangeEnd(o))
}) : t ? {
rng: e.getRng()
} : fc(e, !1);
var r, o
},
mc = N(cc, o, !0),
pc = Eu.DOM,
gc = function (e, t, n) {
var r = e.getParam(t, n);
if (-1 === r.indexOf("=")) return r;
var o = e.getParam(t, "", "hash");
return o.hasOwnProperty(e.id) ? o[e.id] : n
},
hc = function (e) {
return e.getParam("content_security_policy", "")
},
vc = function (e) {
if (e.getParam("force_p_newlines", !1)) return "p";
var t = e.getParam("forced_root_block", "p");
return !1 === t ? "" : !0 === t ? "p" : t
},
yc = function (e) {
return e.getParam("forced_root_block_attrs", {})
},
bc = function (e) {
return e.getParam("automatic_uploads", !0, "boolean")
},
Cc = function (e) {
return e.getParam("icons", "", "string")
},
wc = function (e) {
return e.getParam("referrer_policy", "", "string")
},
xc = function (e) {
return e.getParam("language", "en", "string")
},
Sc = function (e) {
return e.getParam("indent_use_margin", !1)
},
Nc = function (e) {
var t = e.getParam("object_resizing");
return !1 !== t && !wt.iOS && (q(t) ? t : "table,img,figure.image,div")
},
Ec = function (e) {
return e.getParam("event_root")
},
kc = function (e) {
return e.getParam("theme")
},
_c = function (e) {
return !1 !== e.getParam("inline_boundaries")
},
Ac = function (e) {
return e.getParam("plugins", "", "string")
},
Rc = An,
Tc = In,
Dc = function (e) {
var t = e.parentNode;
t && t.removeChild(e)
},
Oc = function (e) {
var t = po(e);
return {
count: e.length - t.length,
text: t
}
},
Bc = function (e) {
for (var t; - 1 !== (t = e.data.lastIndexOf(fo));) e.deleteData(t, 1)
},
Pc = function (e, t) {
return Fc(e), t
},
Lc = function (e, t) {
var n, r, o = t.container(),
i = (n = oe(o.childNodes), (-1 === (r = I(n, e)) ? U.none() : U.some(r)).map(function (e) {
return e < t.offset() ? $s(o, t.offset() - 1) : t
}).getOr(t));
return Fc(e), i
},
Ic = function (e, t) {
return Tc(e) && t.container() === e ? (r = t, o = Oc((n = e).data.substr(0, r.offset())), i = Oc(n.data.substr(r.offset())), 0 < (o.text + i.text).length ? (Bc(n), $s(n, r.offset() - o.count)) : r) : Pc(e, t);
var n, r, o, i
},
Mc = function (e, t) {
return $s.isTextPosition(t) ? Ic(e, t) : (n = e, ((r = t).container() === n.parentNode ? Lc : Pc)(n, r));
var n, r
},
Fc = function (e) {
Rc(e) && bo(e) && (Co(e) ? e.removeAttribute("data-mce-caret") : Dc(e)), Tc(e) && (Bc(e), 0 === e.data.length && Dc(e))
},
Uc = dt().browser,
zc = Vn,
jc = $n,
Hc = qn,
Vc = function (e, t, n) {
var r, o, i, a, u = gs(t.getBoundingClientRect(), n),
s = "BODY" === e.tagName ? (r = e.ownerDocument.documentElement, o = e.scrollLeft || r.scrollLeft, e.scrollTop || r.scrollTop) : (a = e.getBoundingClientRect(), o = e.scrollLeft - a.left, e.scrollTop - a.top);
return u.left += o, u.right += o, u.top += s, u.bottom += s, u.width = 1, 0 < (i = t.offsetWidth - t.clientWidth) && (n && (i *= -1), u.left += i, u.right += i), u
},
qc = function (e, i, a, t) {
var n, u, s = Ou(U.none()),
r = vc(e),
c = 0 < r.length ? r : "p",
l = function () {
! function (e) {
for (var t = Gu(At.fromDom(e), "*[contentEditable=false],video,audio,embed,object"), n = 0; n < t.length; n++) {
var r, o = t[n].dom,
i = o.previousSibling;
Eo(i) && (1 === (r = i.data).length ? i.parentNode.removeChild(i) : i.deleteData(r.length - 1, 1)), i = o.nextSibling, No(i) && (1 === (r = i.data).length ? i.parentNode.removeChild(i) : i.deleteData(0, 1))
}
}(i), u && (Fc(u), u = null), s.get().each(function (e) {
hu(e.caret).remove(), s.set(U.none())
}), n && (qr.clearInterval(n), n = null)
},
f = function () {
n = qr.setInterval(function () {
t() ? hu("div.mce-visual-caret", i).toggleClass("mce-visual-caret-hidden") : hu("div.mce-visual-caret", i).addClass("mce-visual-caret-hidden")
}, 500)
};
return {
show: function (t, e) {
var n, r;
if (l(), Hc(e)) return null;
if (!a(e)) return u = function (e, t) {
var n, r = e.ownerDocument.createTextNode(fo),
o = e.parentNode;
if (t) {
if (n = e.previousSibling, ho(n)) {
if (bo(n)) return n;
if (Eo(n)) return n.splitText(n.data.length - 1)
}
o.insertBefore(r, e)
} else {
if (n = e.nextSibling, ho(n)) {
if (bo(n)) return n;
if (No(n)) return n.splitText(1), n
}
e.nextSibling ? o.insertBefore(r, e.nextSibling) : o.appendChild(r)
}
return r
}(e, t), r = e.ownerDocument.createRange(), Wc(u.nextSibling) ? (r.setStart(u, 0), r.setEnd(u, 0)) : (r.setStart(u, 1), r.setEnd(u, 1)), r;
u = So(c, e, t), n = Vc(i, e, t), hu(u).css("top", n.top);
var o = hu('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(i)[0];
return s.set(U.some({
caret: o,
element: e,
before: t
})), s.get().each(function (e) {
t && hu(e.caret).addClass("mce-visual-caret-before")
}), f(), (r = e.ownerDocument.createRange()).setStart(u, 0), r.setEnd(u, 0), r
},
hide: l,
getCss: function () {
return ".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"
},
reposition: function () {
s.get().each(function (e) {
var t = Vc(i, e.element, e.before);
hu(e.caret).css(ke({}, t))
})
},
destroy: function () {
return qr.clearInterval(n)
}
}
},
$c = function () {
return Uc.isIE() || Uc.isEdge() || Uc.isFirefox()
},
Wc = function (e) {
return zc(e) || jc(e)
},
Kc = function (e) {
return Wc(e) || Bn(e) && $c()
},
Xc = Vn,
Yc = $n,
Gc = Tn("display", "block table table-cell table-caption list-item"),
Jc = bo,
Qc = vo,
Zc = An,
el = Lo,
tl = function (e, t) {
for (var n; n = e(t);)
if (!Qc(n)) return n;
return null
},
nl = function (e, t, n, r, o) {
var i = new Xr(e, r),
a = Xc(e) || Qc(e);
if (t < 0) {
if (a && n(e = tl(i.prev, !0))) return e;
for (; e = tl(i.prev, o);)
if (n(e)) return e
}
if (0 < t) {
if (a && n(e = tl(i.next, !0))) return e;
for (; e = tl(i.next, o);)
if (n(e)) return e
}
return null
},
rl = function (e, t) {
for (; e && e !== t;) {
if (Gc(e)) return e;
e = e.parentNode
}
return null
},
ol = function (e, t, n) {
return rl(e.container(), n) === rl(t.container(), n)
},
il = function (e, t) {
if (!t) return null;
var n = t.container(),
r = t.offset();
return Zc(n) ? n.childNodes[r + e] : null
},
al = function (e, t) {
var n = t.ownerDocument.createRange();
return e ? (n.setStartBefore(t), n.setEndBefore(t)) : (n.setStartAfter(t), n.setEndAfter(t)), n
},
ul = function (e, t, n) {
for (var r, o, i, a = e ? "previousSibling" : "nextSibling"; n && n !== t;) {
if (r = n[a], Jc(r) && (r = r[a]), Xc(r) || Yc(r)) {
if (i = n, rl(r, o = t) === rl(i, o)) return r;
break
}
if (el(r)) break;
n = n.parentNode
}
return null
},
sl = N(al, !0),
cl = N(al, !1),
ll = function (e, t, n) {
var r, o, i = N(ul, !0, t),
a = N(ul, !1, t),
u = n.startContainer,
s = n.startOffset;
if (vo(u)) {
if (Zc(u) || (u = u.parentNode), "before" === (o = u.getAttribute("data-mce-caret")) && (r = u.nextSibling, Kc(r))) return sl(r);
if ("after" === o && (r = u.previousSibling, Kc(r))) return cl(r)
}
if (!n.collapsed) return n;
if (In(u)) {
if (Jc(u)) {
if (1 === e) {
if (r = a(u)) return sl(r);
if (r = i(u)) return cl(r)
}
if (-1 === e) {
if (r = i(u)) return cl(r);
if (r = a(u)) return sl(r)
}
return n
}
if (Eo(u) && s >= u.data.length - 1) return 1 === e && (r = a(u)) ? sl(r) : n;
if (No(u) && s <= 1) return -1 === e && (r = i(u)) ? cl(r) : n;
if (s === u.data.length) return (r = a(u)) ? sl(r) : n;
if (0 === s) return (r = i(u)) ? cl(r) : n
}
return n
},
fl = function (e, t) {
return U.from(il(e ? 0 : -1, t)).filter(Xc)
},
dl = function (e, t, n) {
var r = ll(e, t, n);
return -1 === e ? Hs.fromRangeStart(r) : Hs.fromRangeEnd(r)
},
ml = function (e) {
return U.from(e.getNode()).map(At.fromDom)
},
pl = function (e, t) {
for (; t = e(t);)
if (t.isVisible()) return t;
return t
},
gl = function (e, t) {
var n = ol(e, t);
return !(n || !zn(e.getNode())) || n
};
(qs = Vs = Vs || {})[qs.Backwards = -1] = "Backwards", qs[qs.Forwards = 1] = "Forwards";
var hl, vl = Vn,
yl = In,
bl = An,
Cl = zn,
wl = Lo,
xl = function (e) {
return Oo(e) || !!Io(t = e) && !0 !== X(oe(t.getElementsByTagName("*")), function (e, t) {
return e || _o(t)
}, !1);
var t
},
Sl = Mo,
Nl = function (e, t) {
return e.hasChildNodes() && t < e.childNodes.length ? e.childNodes[t] : null
},
El = function (e, t) {
if (0 < e) {
if (wl(t.previousSibling) && !yl(t.previousSibling)) return $s.before(t);
if (yl(t)) return $s(t, 0)
}
if (e < 0) {
if (wl(t.nextSibling) && !yl(t.nextSibling)) return $s.after(t);
if (yl(t)) return $s(t, t.data.length)
}
return !(e < 0) || Cl(t) ? $s.before(t) : $s.after(t)
},
kl = function (e, t, n) {
var r, o, i, a;
if (!bl(n) || !t) return null;
if (t.isEqual($s.after(n)) && n.lastChild) {
if (a = $s.after(n.lastChild), e < 0 && wl(n.lastChild) && bl(n.lastChild)) return Cl(n.lastChild) ? $s.before(n.lastChild) : a
} else a = t;
var u, s, c, l = a.container(),
f = a.offset();
if (yl(l)) {
if (e < 0 && 0 < f) return $s(l, --f);
if (0 < e && f < l.length) return $s(l, ++f);
r = l
} else {
if (e < 0 && 0 < f && (o = Nl(l, f - 1), wl(o))) return !xl(o) && (i = nl(o, e, Sl, o)) ? yl(i) ? $s(i, i.data.length) : $s.after(i) : yl(o) ? $s(o, o.data.length) : $s.before(o);
if (0 < e && f < l.childNodes.length && (o = Nl(l, f), wl(o))) return Cl(o) ? (u = n, (c = (s = o).nextSibling) && wl(c) ? yl(c) ? $s(c, 0) : $s.before(c) : kl(Vs.Forwards, $s.after(s), u)) : !xl(o) && (i = nl(o, e, Sl, o)) ? yl(i) ? $s(i, 0) : $s.before(i) : yl(o) ? $s(o, 0) : $s.after(o);
r = o || a.getNode()
}
if ((0 < e && a.isAtEnd() || e < 0 && a.isAtStart()) && (r = nl(r, e, k, n, !0), Sl(r, n))) return El(e, r);
o = nl(r, e, Sl, n);
var d = Ee(H(function (e, t) {
for (var n = []; e && e !== t;) n.push(e), e = e.parentNode;
return n
}(l, n), vl));
return !d || o && d.contains(o) ? o ? El(e, o) : null : a = 0 < e ? $s.after(d) : $s.before(d)
},
_l = function (t) {
return {
next: function (e) {
return kl(Vs.Forwards, e, t)
},
prev: function (e) {
return kl(Vs.Backwards, e, t)
}
}
},
Al = function (e) {
return $s.isTextPosition(e) ? 0 === e.offset() : Lo(e.getNode())
},
Rl = function (e) {
if ($s.isTextPosition(e)) {
var t = e.container();
return e.offset() === t.data.length
}
return Lo(e.getNode(!0))
},
Tl = function (e, t) {
return !$s.isTextPosition(e) && !$s.isTextPosition(t) && e.getNode() === t.getNode(!0)
},
Dl = function (e, t, n) {
return e ? !Tl(t, n) && (r = t, !(!$s.isTextPosition(r) && zn(r.getNode()))) && Rl(t) && Al(n) : !Tl(n, t) && Al(t) && Rl(n);
var r
},
Ol = function (e, t, n) {
var r = _l(t);
return U.from(e ? r.next(n) : r.prev(n))
},
Bl = function (t, n, r) {
return Ol(t, n, r).bind(function (e) {
return ol(r, e, n) && Dl(t, r, e) ? Ol(t, n, e) : U.some(e)
})
},
Pl = function (t, n, e, r) {
return Bl(t, n, e).bind(function (e) {
return r(e) ? Pl(t, n, e, r) : U.some(e)
})
},
Ll = function (e, t) {
var n, r, o, i, a, u = e ? t.firstChild : t.lastChild;
return In(u) ? U.some($s(u, e ? 0 : u.data.length)) : u ? Lo(u) ? U.some(e ? $s.before(u) : zn(a = u) ? $s.before(a) : $s.after(a)) : (r = t, o = u, i = (n = e) ? $s.before(o) : $s.after(o), Ol(n, r, i)) : U.none()
},
Il = N(Ol, !0),
Ml = N(Ol, !1),
Fl = N(Ll, !0),
Ul = N(Ll, !1),
zl = "_mce_caret",
jl = function (e) {
return An(e) && e.id === zl
},
Hl = function (e, t) {
for (; t && t !== e;) {
if (t.id === zl) return t;
t = t.parentNode
}
return null
},
Vl = function (e, t) {
return An(t) && e.isBlock(t) && !t.innerHTML && !wt.ie && (t.innerHTML = '<br data-mce-bogus="1" />'), t
},
ql = function (e, t, n) {
return !(!1 !== t.hasChildNodes() || !Hl(e, t)) && (o = n, i = (r = t).ownerDocument.createTextNode(fo), r.appendChild(i), o.setStart(i, 0), o.setEnd(i, 0), !0);
var r, o, i
},
$l = function (e, t, n, r) {
var o, i, a, u, s = n[t ? "start" : "end"],
c = e.getRoot();
if (s) {
for (a = s[0], i = c, o = s.length - 1; 1 <= o; o--) {
if (u = i.childNodes, ql(c, i, r)) return !0;
if (s[o] > u.length - 1) return !!ql(c, i, r) || function (e, t) {
return Ul(e).fold(function () {
return !1
}, function (e) {
return t.setStart(e.container(), e.offset()), t.setEnd(e.container(), e.offset()), !0
})
}(i, r);
i = u[s[o]]
}
3 === i.nodeType && (a = Math.min(s[0], i.nodeValue.length)), 1 === i.nodeType && (a = Math.min(s[0], i.childNodes.length)), t ? r.setStart(i, a) : r.setEnd(i, a)
}
return !0
},
Wl = function (e) {
return In(e) && 0 < e.data.length
},
Kl = function (e, t, n) {
var r, o, i, a, u, s, c = e.get(n.id + "_" + t),
l = n.keep;
if (c) {
if (r = c.parentNode, s = (u = (o = "start" === t ? l ? c.hasChildNodes() ? (r = c.firstChild, 1) : Wl(c.nextSibling) ? (r = c.nextSibling, 0) : Wl(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c) + 1) : e.nodeIndex(c) : l ? c.hasChildNodes() ? (r = c.firstChild, 1) : Wl(c.previousSibling) ? (r = c.previousSibling, c.previousSibling.data.length) : (r = c.parentNode, e.nodeIndex(c)) : e.nodeIndex(c), r), o), !l) {
for (a = c.previousSibling, i = c.nextSibling, kt.each(kt.grep(c.childNodes), function (e) {
In(e) && (e.nodeValue = e.nodeValue.replace(/\uFEFF/g, ""))
}); c = e.get(n.id + "_" + t);) e.remove(c, !0);
a && i && a.nodeType === i.nodeType && In(a) && !wt.opera && (o = a.nodeValue.length, a.appendData(i.nodeValue), e.remove(i), u = a, s = o)
}
return U.some($s(u, s))
}
return U.none()
},
Xl = function (e, t) {
var n, r, o, i, a, u, s, c, l, f, d, m, p, g, h = e.dom;
if (t) {
if (g = t, kt.isArray(g.start)) return m = t, p = (d = h).createRng(), $l(d, !0, m, p) && $l(d, !1, m, p) ? U.some(p) : U.none();
if ("string" == typeof t.start) return U.some((c = t, l = (s = h).createRng(), f = nc(s.getRoot(), c.start), l.setStart(f.container(), f.offset()), f = nc(s.getRoot(), c.end), l.setEnd(f.container(), f.offset()), l));
if (t.hasOwnProperty("id")) return a = Kl(o = h, "start", i = t), u = Kl(o, "end", i), ds(a, u.or(a), function (e, t) {
var n = o.createRng();
return n.setStart(Vl(o, e.container()), e.offset()), n.setEnd(Vl(o, t.container()), t.offset()), n
});
if (t.hasOwnProperty("name")) return n = h, r = t, U.from(n.select(r.name)[r.index]).map(function (e) {
var t = n.createRng();
return t.selectNode(e), t
});
if (t.hasOwnProperty("rng")) return U.some(t.rng)
}
return U.none()
},
Yl = dc,
Gl = function (t, e) {
Xl(t, e).each(function (e) {
t.setRng(e)
})
},
Jl = function (e) {
return An(e) && "SPAN" === e.tagName && "bookmark" === e.getAttribute("data-mce-type")
},
Ql = (hl = lo, function (e) {
return hl === e
}),
Zl = function (e) {
return "" !== e && -1 !== " \f\n\r\t\x0B".indexOf(e)
},
ef = function (e) {
return !Zl(e) && !Ql(e)
},
tf = function (e) {
return !!e.nodeType
},
nf = function (e, t, n) {
var r, o, i, a, u = n.startOffset,
s = n.startContainer;
if ((n.startContainer !== n.endContainer || !(a = n.startContainer.childNodes[n.startOffset]) || !/^(IMG)$/.test(a.nodeName)) && 1 === s.nodeType)
for (u < (i = s.childNodes).length ? (s = i[u], r = new Xr(s, e.getParent(s, e.isBlock))) : (s = i[i.length - 1], (r = new Xr(s, e.getParent(s, e.isBlock))).next(!0)), o = r.current(); o; o = r.next())
if (3 === o.nodeType && !uf(o)) return n.setStart(o, 0), void t.setRng(n)
},
rf = function (e, t, n) {
if (e) {
var r = t ? "nextSibling" : "previousSibling";
for (e = n ? e : e[r]; e; e = e[r])
if (1 === e.nodeType || !uf(e)) return e
}
},
of = function (e, t) {
return tf(t) && (t = t.nodeName), !!e.schema.getTextBlockElements()[t.toLowerCase()]
},
af = function (e, t, n) {
return e.schema.isValidChild(t, n)
},
uf = function (e, t) {
if (void 0 === t && (t = !1), D(e) && In(e)) {
var n = t ? e.data.replace(/ /g, "\xa0") : e.data;
return Uo(n)
}
return !1
},
sf = function (e, n) {
return "string" != typeof e ? e = e(n) : n && (e = e.replace(/%(\w+)/g, function (e, t) {
return n[t] || e
})), e
},
cf = function (e, t) {
return e = "" + ((e = e || "").nodeName || e), t = "" + ((t = t || "").nodeName || t), e.toLowerCase() === t.toLowerCase()
},
lf = function (e, t, n) {
return "color" !== n && "backgroundColor" !== n || (t = e.toHex(t)), "fontWeight" === n && 700 === t && (t = "bold"), "fontFamily" === n && (t = t.replace(/[\'\"]/g, "").replace(/,\s+/g, ",")), "" + t
},
ff = function (e, t, n) {
return lf(e, e.getStyle(t, n), n)
},
df = function (t, e) {
var n;
return t.getParent(e, function (e) {
return (n = t.getStyle(e, "text-decoration")) && "none" !== n
}), n
},
mf = function (e, t, n) {
return e.getParents(t, n, e.getRoot())
},
pf = function (t, e, n) {
var r = ["inline", "block", "selector", "attributes", "styles", "classes"],
a = function (e) {
return me(e, function (e, t) {
return F(r, function (e) {
return e === t
})
})
};
return F(t.formatter.get(e), function (e) {
var i = a(e);
return F(t.formatter.get(n), function (e) {
var t, n, r, o = a(e);
return t = i, n = o, void 0 === r && (r = l), u(r).eq(t, n)
})
})
},
gf = function (e) {
return ve(e, "block")
},
hf = function (e) {
return ve(e, "selector")
},
vf = function (e) {
return ve(e, "inline")
},
yf = Jl,
bf = mf,
Cf = uf,
wf = of ,
xf = function (e, t) {
for (var n = t; n;) {
if (An(n) && e.getContentEditable(n)) return "false" === e.getContentEditable(n) ? n : t;
n = n.parentNode
}
return t
},
Sf = function (e, t, n, r) {
for (var o = t.data, i = n; e ? 0 <= i : i < o.length; e ? i-- : i++)
if (r(o.charAt(i))) return e ? i + 1 : i;
return -1
},
Nf = function (e, t, n) {
return Sf(e, t, n, function (e) {
return Ql(e) || Zl(e)
})
},
Ef = function (e, t, n) {
return Sf(e, t, n, ef)
},
kf = function (i, e, t, n, a, r) {
var u, s = i.getParent(t, i.isBlock) || e,
o = function (e, t, n) {
var r = fs(i),
o = a ? r.backwards : r.forwards;
return U.from(o(e, t, function (e, t) {
return yf(e.parentNode) ? -1 : n(a, u = e, t)
}, s))
};
return o(t, n, Nf).bind(function (e) {
return r ? o(e.container, e.offset + (a ? -1 : 0), Ef) : U.some(e)
}).orThunk(function () {
return u ? U.some({
container: u,
offset: a ? 0 : u.length
}) : U.none()
})
},
_f = function (e, t, n, r, o) {
In(r) && 0 === r.nodeValue.length && r[o] && (r = r[o]);
for (var i = bf(e, r), a = 0; a < i.length; a++)
for (var u = 0; u < t.length; u++) {
var s = t[u];
if (!("collapsed" in s && s.collapsed !== n.collapsed) && e.is(i[a], s.selector)) return i[a]
}
return r
},
Af = function (t, e, n, r) {
var o, i, a = t.dom,
u = a.getRoot();
if (e[0].wrapper || (i = a.getParent(n, e[0].block, u)), i || (o = a.getParent(n, "LI,TD,TH"), i = a.getParent(In(n) ? n.parentNode : n, function (e) {
return e !== u && wf(t, e)
}, o)), i && e[0].wrapper && (i = bf(a, i, "ul,ol").reverse()[0] || i), !i)
for (i = n; i[r] && !a.isBlock(i[r]) && (i = i[r], !cf(i, "br")););
return i || n
},
Rf = function (e, t, n, r) {
var o = n.parentNode;
return !D(n[r]) && (!(o !== t && !$(o) && !e.isBlock(o)) || Rf(e, t, o, r))
},
Tf = function (e, t, n, r, o) {
var i, a, u = n,
s = o ? "previousSibling" : "nextSibling",
c = e.getRoot();
if (In(n) && !Cf(n) && (o ? 0 < r : r < n.data.length)) return n;
for (;;) {
if (!t[0].block_expand && e.isBlock(u)) return u;
for (i = u[s]; i; i = i[s]) {
var l = In(i) && !Rf(e, c, i, s);
if (!yf(i) && (!zn(a = i) || !a.getAttribute("data-mce-bogus") || a.nextSibling) && !Cf(i, l)) return u
}
if (u === c || u.parentNode === c) {
n = u;
break
}
u = u.parentNode
}
return n
},
Df = function (e) {
return yf(e.parentNode) || yf(e)
},
Of = function (e, t, n, r) {
void 0 === r && (r = !1);
var o = t.startContainer,
i = t.startOffset,
a = t.endContainer,
u = t.endOffset,
s = e.dom;
return An(o) && o.hasChildNodes() && (o = ws(o, i), In(o) && (i = 0)), An(a) && a.hasChildNodes() && (a = ws(a, t.collapsed ? u : u - 1), In(a) && (u = a.nodeValue.length)), o = xf(s, o), a = xf(s, a), Df(o) && (o = yf(o) ? o : o.parentNode, o = t.collapsed ? o.previousSibling || o : o.nextSibling || o, In(o) && (i = t.collapsed ? o.length : 0)), Df(a) && (a = yf(a) ? a : a.parentNode, a = t.collapsed ? a.nextSibling || a : a.previousSibling || a, In(a) && (u = t.collapsed ? 0 : a.length)), t.collapsed && (kf(s, e.getBody(), o, i, !0, r).each(function (e) {
var t = e.container,
n = e.offset;
o = t, i = n
}), kf(s, e.getBody(), a, u, !1, r).each(function (e) {
var t = e.container,
n = e.offset;
a = t, u = n
})), (n[0].inline || n[0].block_expand) && (n[0].inline && In(o) && 0 !== i || (o = Tf(s, n, o, i, !0)), n[0].inline && In(a) && u !== a.nodeValue.length || (a = Tf(s, n, a, u, !1))), n[0].selector && !1 !== n[0].expand && !n[0].inline && (o = _f(s, n, t, o, "previousSibling"), a = _f(s, n, t, a, "nextSibling")), (n[0].block || n[0].selector) && (o = Af(e, n, o, "previousSibling"), a = Af(e, n, a, "nextSibling"), n[0].block && (s.isBlock(o) || (o = Tf(s, n, o, i, !0)), s.isBlock(a) || (a = Tf(s, n, a, u, !1)))), An(o) && (i = s.nodeIndex(o), o = o.parentNode), An(a) && (u = s.nodeIndex(a) + 1, a = a.parentNode), {
startContainer: o,
startOffset: i,
endContainer: a,
endOffset: u
}
},
Bf = function (e, t) {
var n = e.childNodes;
return t >= n.length ? t = n.length - 1 : t < 0 && (t = 0), n[t] || e
},
Pf = function (e, t, u) {
var n = t.startContainer,
r = t.startOffset,
o = t.endContainer,
i = t.endOffset,
s = function (e) {
var t = e[0];
return 3 === t.nodeType && t === n && r >= t.nodeValue.length && e.splice(0, 1), t = e[e.length - 1], 0 === i && 0 < e.length && t === o && 3 === t.nodeType && e.splice(e.length - 1, 1), e
},
c = function (e, t, n) {
for (var r = []; e && e !== n; e = e[t]) r.push(e);
return r
},
a = function (e, t) {
do {
if (e.parentNode === t) return e;
e = e.parentNode
} while (e)
},
l = function (e, t, n) {
for (var r = n ? "nextSibling" : "previousSibling", o = e, i = o.parentNode; o && o !== t; o = i) {
i = o.parentNode;
var a = c(o === e ? o : o[r], r);
a.length && (n || a.reverse(), u(s(a)))
}
};
if (1 === n.nodeType && n.hasChildNodes() && (n = Bf(n, r)), 1 === o.nodeType && o.hasChildNodes() && (o = Bf(o, i - 1)), n === o) return u(s([n]));
for (var f = e.findCommonAncestor(n, o), d = n; d; d = d.parentNode) {
if (d === o) return l(n, f, !0);
if (d === f) break
}
for (d = o; d; d = d.parentNode) {
if (d === n) return l(o, f);
if (d === f) break
}
var m = a(n, f) || n,
p = a(o, f) || o;
l(n, m, !0);
var g = c(m === n ? m : m.nextSibling, "nextSibling", p === o ? p.nextSibling : p);
g.length && u(s(g)), l(o, p)
},
Lf = function (e) {
var t = [];
if (e)
for (var n = 0; n < e.rangeCount; n++) t.push(e.getRangeAt(n));
return t
},
If = function (e) {
return H(J(e, function (e) {
var t = Cs(e);
return t ? [At.fromDom(t)] : []
}), uo)
},
Mf = function (e, t) {
var n = Gu(t, "td[data-mce-selected],th[data-mce-selected]");
return 0 < n.length ? n : If(e)
},
Ff = function (e) {
return Mf(Lf(e.selection.getSel()), At.fromDom(e.getBody()))
},
Uf = function (t) {
return Qt(t).fold(E([t]), function (e) {
return [t].concat(Uf(e))
})
},
zf = function (t) {
return Zt(t).fold(E([t]), function (e) {
return "br" === Lt(e) ? Wt(e).map(function (e) {
return [t].concat(zf(e))
}).getOr([]) : [t].concat(zf(e))
})
},
jf = function (o, e) {
return ds((a = (i = e).startContainer, u = i.startOffset, In(a) ? 0 === u ? U.some(At.fromDom(a)) : U.none() : U.from(a.childNodes[u]).map(At.fromDom)), (n = (t = e).endContainer, r = t.endOffset, In(n) ? r === n.data.length ? U.some(At.fromDom(n)) : U.none() : U.from(n.childNodes[r - 1]).map(At.fromDom)), function (e, t) {
var n = Y(Uf(o), N(Ot, e)),
r = Y(zf(o), N(Ot, t));
return n.isSome() && r.isSome()
}).getOr(!1);
var t, n, r, i, a, u
},
Hf = function (e, t, n, r) {
var o = n,
i = new Xr(n, o),
a = me(e.schema.getMoveCaretBeforeOnEnterElements(), function (e, t) {
return !M(["td", "th", "table"], t.toLowerCase())
});
do {
if (In(n) && 0 !== kt.trim(n.nodeValue).length) return void(r ? t.setStart(n, 0) : t.setEnd(n, n.nodeValue.length));
if (a[n.nodeName]) return void(r ? t.setStartBefore(n) : "BR" === n.nodeName ? t.setEndBefore(n) : t.setEndAfter(n))
} while (n = r ? i.next() : i.prev());
"BODY" === o.nodeName && (r ? t.setStart(o, 0) : t.setEnd(o, o.childNodes.length))
},
Vf = function (e) {
var t = e.selection.getSel();
return t && 0 < t.rangeCount
},
qf = function (r, o) {
var e = Ff(r);
0 < e.length ? W(e, function (e) {
var t = e.dom,
n = r.dom.createRng();
n.setStartBefore(t), n.setEndAfter(t), o(n, !0)
}) : o(r.selection.getRng(), !1)
},
$f = function (e, t, n) {
var r = fc(e, t);
n(r), e.moveToBookmark(r)
};
var Wf, Kf, Xf, Yf = (Wf = Ut, Kf = "text", {
get: function (e) {
if (!Wf(e)) throw new Error("Can only get " + Kf + " value of a " + Kf + " node");
return Xf(e).getOr("")
},
getOption: Xf = function (e) {
return Wf(e) ? U.from(e.dom.nodeValue) : U.none()
},
set: function (e, t) {
if (!Wf(e)) throw new Error("Can only set raw " + Kf + " value of a " + Kf + " node");
e.dom.nodeValue = t
}
}),
Gf = function (e) {
return Yf.get(e)
},
Jf = function (r, o, i, a) {
return $t(o).fold(function () {
return "skipping"
}, function (e) {
return "br" === a || Ut(n = o) && Gf(n) === fo ? "valid" : Ft(t = o) && Xu(t, Ju()) ? "existing" : jl(o.dom) ? "caret" : af(r, i, a) && af(r, Lt(e), i) ? "valid" : "invalid-child";
var t, n
})
},
Qf = function (e, t, n, r) {
var o = t.uid,
i = void 0 === o ? is("mce-annotation") : o,
a = function (e, t) {
var n = {};
for (var r in e) Object.prototype.hasOwnProperty.call(e, r) && t.indexOf(r) < 0 && (n[r] = e[r]);
if (null != e && "function" == typeof Object.getOwnPropertySymbols)
for (var o = 0, r = Object.getOwnPropertySymbols(e); o < r.length; o++) t.indexOf(r[o]) < 0 && Object.prototype.propertyIsEnumerable.call(e, r[o]) && (n[r[o]] = e[r[o]]);
return n
}(t, ["uid"]),
u = At.fromTag("span", e);
Wu(u, Ju()), Xn(u, "" + Zu(), i), Xn(u, "" + Qu(), n);
var s, c = r(i, a),
l = c.attributes,
f = void 0 === l ? {} : l,
d = c.classes,
m = void 0 === d ? [] : d;
return Yn(u, f), s = u, W(m, function (e) {
Wu(s, e)
}), u
},
Zf = function (i, e, t, n, r) {
var a = [],
u = Qf(i.getDoc(), r, t, n),
s = Ou(U.none()),
c = function () {
s.set(U.none())
},
l = function (e) {
W(e, o)
},
o = function (e) {
var t, n;
switch (Jf(i, e, "span", Lt(e))) {
case "invalid-child":
c();
var r = Gt(e);
l(r), c();
break;
case "valid":
var o = s.get().getOrThunk(function () {
var e = ss(u);
return a.push(e), s.set(U.some(e)), e
});
sn(t = e, n = o), fn(n, t)
}
};
return Pf(i.dom, e, function (e) {
var t;
c(), t = z(e, At.fromDom), l(t)
}), a
},
ed = function (u, s, c, l) {
u.undoManager.transact(function () {
var e, t, n, r, o = u.selection,
i = o.getRng(),
a = 0 < Ff(u).length;
i.collapsed && !a && (n = Of(e = u, t = i, [{
inline: !0
}]), t.setStart(n.startContainer, n.startOffset), t.setEnd(n.endContainer, n.endOffset), e.selection.setRng(t)), o.getRng().collapsed && !a ? (r = Qf(u.getDoc(), l, s, c.decorate), as(r, lo), o.getRng().insertNode(r.dom), o.select(r.dom)) : $f(o, !1, function () {
qf(u, function (e) {
Zf(u, e, s, c.decorate, l)
})
})
})
},
td = function (u) {
var n, r = (n = {}, {
register: function (e, t) {
n[e] = {
name: e,
settings: t
}
},
lookup: function (e) {
return n.hasOwnProperty(e) ? U.from(n[e]).map(function (e) {
return e.settings
}) : U.none()
}
});
rs(u, r);
var o = ns(u);
return {
register: function (e, t) {
r.register(e, t)
},
annotate: function (t, n) {
r.lookup(t).each(function (e) {
ed(u, t, e, n)
})
},
annotationChanged: function (e, t) {
o.addListener(e, t)
},
remove: function (e) {
es(u, U.some(e)).each(function (e) {
var t = e.elements;
W(t, gn)
})
},
getAll: function (e) {
var t, n, r, o, i, a = (t = u, n = e, r = At.fromDom(t.getBody()), o = Gu(r, "[" + Qu() + '="' + n + '"]'), i = {}, W(o, function (e) {
var t = Gn(e, Zu()),
n = i.hasOwnProperty(t) ? i[t] : [];
i[t] = n.concat([e])
}), i);
return se(a, function (e) {
return z(e, function (e) {
return e.dom
})
})
}
}
};
function nd(e) {
return {
getBookmark: N(Yl, e),
moveToBookmark: N(Gl, e)
}
}(nd = nd || {}).isBookmarkNode = Jl;
var rd, od = nd,
id = function (e, t) {
for (; t && t !== e;) {
if (Hn(t) || Vn(t)) return t;
t = t.parentNode
}
return null
},
ad = function (t, n, e) {
if (e.collapsed) return !1;
if (wt.browser.isIE() && e.startOffset === e.endOffset - 1 && e.startContainer === e.endContainer) {
var r = e.startContainer.childNodes[e.startOffset];
if (An(r)) return F(r.getClientRects(), function (e) {
return bs(e, t, n)
})
}
return F(e.getClientRects(), function (e) {
return bs(e, t, n)
})
},
ud = {
BACKSPACE: 8,
DELETE: 46,
DOWN: 40,
ENTER: 13,
LEFT: 37,
RIGHT: 39,
SPACEBAR: 32,
TAB: 9,
UP: 38,
END: 35,
HOME: 36,
modifierPressed: function (e) {
return e.shiftKey || e.ctrlKey || e.altKey || this.metaKeyPressed(e)
},
metaKeyPressed: function (e) {
return wt.mac ? e.metaKey : e.ctrlKey && !e.altKey
}
},
sd = Vn,
cd = function (r, l) {
var f, d, m, p, g, h, v, y, b, C, w, x, S, N, E = l.dom,
s = kt.each,
c = l.getDoc(),
k = document,
_ = Math.abs,
A = Math.round,
R = l.getBody(),
T = {
nw: [0, 0, -1, -1],
ne: [1, 0, 1, -1],
se: [1, 1, 1, 1],
sw: [0, 1, -1, 1]
},
D = function (e) {
return e && ("IMG" === e.nodeName || l.dom.is(e, "figure.image"))
},
n = function (e) {
var t = e.target;
! function (e, t) {
if ("longpress" !== e.type && 0 !== e.type.indexOf("touch")) return D(e.target) && !ad(e.clientX, e.clientY, t);
var n = e.touches[0];
return D(e.target) && !ad(n.clientX, n.clientY, t)
}(e, l.selection.getRng()) || e.isDefaultPrevented() || l.selection.select(t)
},
O = function (e) {
return l.dom.is(e, "figure.image") ? e.querySelector("img") : e
},
B = function (e) {
var t = Nc(l);
return !!t && ("false" !== e.getAttribute("data-mce-resize") && (e !== l.getBody() && Tt(At.fromDom(e), t)))
},
P = function (e, t, n) {
E.setStyles(O(e), {
width: t,
height: n
})
},
L = function (e) {
var t, n, r, o, i, a, u, s = e.screenX - g,
c = e.screenY - h;
w = s * p[2] + v, x = c * p[3] + y, w = w < 5 ? 5 : w, x = x < 5 ? 5 : x, (D(f) && !1 !== l.getParam("resize_img_proportional", !0, "boolean") ? !ud.modifierPressed(e) : ud.modifierPressed(e)) && (_(s) > _(c) ? (x = A(w * b), w = A(x / b)) : (w = A(x / b), x = A(w * b))), P(d, w, x), t = 0 < (t = p.startPos.x + s) ? t : 0, n = 0 < (n = p.startPos.y + c) ? n : 0, E.setStyles(m, {
left: t,
top: n,
display: "block"
}), m.innerHTML = w + " × " + x, p[2] < 0 && d.clientWidth <= w && E.setStyle(d, "left", void 0 + (v - w)), p[3] < 0 && d.clientHeight <= x && E.setStyle(d, "top", void 0 + (y - x)), (s = R.scrollWidth - S) + (c = R.scrollHeight - N) !== 0 && E.setStyles(m, {
left: t - s,
top: n - c
}), C || (r = l, o = f, i = v, a = y, u = "corner-" + p.name, r.fire("ObjectResizeStart", {
target: o,
width: i,
height: a,
origin: u
}), C = !0)
},
I = function () {
var e = C;
C = !1;
var t, n, r, o, i, a = function (e, t) {
t && (f.style[e] || !l.schema.isValid(f.nodeName.toLowerCase(), e) ? E.setStyle(O(f), e, t) : E.setAttrib(O(f), e, "" + t))
};
e && (a("width", w), a("height", x)), E.unbind(c, "mousemove", L), E.unbind(c, "mouseup", I), k !== c && (E.unbind(k, "mousemove", L), E.unbind(k, "mouseup", I)), E.remove(d), E.remove(m), u(f), e && (t = l, n = f, r = w, o = x, i = "corner-" + p.name, t.fire("ObjectResized", {
target: n,
width: r,
height: o,
origin: i
}), E.setAttrib(f, "style", E.getAttrib(f, "style"))), l.nodeChanged()
},
u = function (e) {
M(), F();
var t = E.getPos(e, R),
o = t.x,
i = t.y,
n = e.getBoundingClientRect(),
a = n.width || n.right - n.left,
u = n.height || n.bottom - n.top;
f !== e && (f = e, w = x = 0);
var r = l.fire("ObjectSelected", {
target: e
});
B(e) && !r.isDefaultPrevented() ? s(T, function (n, r) {
var e = E.get("mceResizeHandle" + r);
e && E.remove(e), e = E.add(R, "div", {
id: "mceResizeHandle" + r,
"data-mce-bogus": "all",
"class": "mce-resizehandle",
unselectable: !0,
style: "cursor:" + r + "-resize; margin:0; padding:0"
}), 11 === wt.ie && (e.contentEditable = !1), E.bind(e, "mousedown", function (e) {
var t;
e.stopImmediatePropagation(), e.preventDefault(), g = (t = e).screenX, h = t.screenY, v = O(f).clientWidth, y = O(f).clientHeight, b = y / v, (p = n).name = r, p.startPos = {
x: a * n[0] + o,
y: u * n[1] + i
}, S = R.scrollWidth, N = R.scrollHeight, d = f.cloneNode(!0), E.addClass(d, "mce-clonedresizable"), E.setAttrib(d, "data-mce-bogus", "all"), d.contentEditable = !1, d.unSelectabe = !0, E.setStyles(d, {
left: o,
top: i,
margin: 0
}), P(d, a, u), d.removeAttribute("data-mce-selected"), R.appendChild(d), E.bind(c, "mousemove", L), E.bind(c, "mouseup", I), k !== c && (E.bind(k, "mousemove", L), E.bind(k, "mouseup", I)), m = E.add(R, "div", {
"class": "mce-resize-helper",
"data-mce-bogus": "all"
}, v + " × " + y)
}), n.elm = e, E.setStyles(e, {
left: a * n[0] + o - e.offsetWidth / 2,
top: u * n[1] + i - e.offsetHeight / 2
})
}) : M(), f.setAttribute("data-mce-selected", "1")
},
M = function () {
F(), f && f.removeAttribute("data-mce-selected"), ue(T, function (e, t) {
var n = E.get("mceResizeHandle" + t);
n && (E.unbind(n), E.remove(n))
})
},
o = function (e) {
var t, n = function (e, t) {
if (e)
do {
if (e === t) return !0
} while (e = e.parentNode)
};
C || l.removed || (s(E.select("img[data-mce-selected],hr[data-mce-selected]"), function (e) {
e.removeAttribute("data-mce-selected")
}), t = "mousedown" === e.type ? e.target : r.getNode(), n(t = E.$(t).closest("table,img,figure.image,hr")[0], R) && (a(), n(r.getStart(!0), t) && n(r.getEnd(!0), t)) ? u(t) : M())
},
i = function (e) {
return sd(id(l.getBody(), e))
},
F = function () {
ue(T, function (e) {
e.elm && (E.unbind(e.elm), delete e.elm)
})
},
a = function () {
try {
l.getDoc().execCommand("enableObjectResizing", !1, "false")
} catch (e) {}
};
l.on("init", function () {
var e;
a(), (wt.browser.isIE() || wt.browser.isEdge()) && (l.on("mousedown click", function (e) {
var t = e.target,
n = t.nodeName;
C || !/^(TABLE|IMG|HR)$/.test(n) || i(t) || (2 !== e.button && l.selection.select(t, "TABLE" === n), "mousedown" === e.type && l.nodeChanged())
}), e = function (e) {
var t = function (e) {
qr.setEditorTimeout(l, function () {
return l.selection.select(e)
})
};
if (i(e.target) || $n(e.target)) return e.preventDefault(), void t(e.target);
/^(TABLE|IMG|HR)$/.test(e.target.nodeName) && (e.preventDefault(), "IMG" === e.target.tagName && t(e.target))
}, E.bind(R, "mscontrolselect", e), l.on("remove", function () {
return E.unbind(R, "mscontrolselect", e)
}));
var t = qr.throttle(function (e) {
l.composing || o(e)
});
l.on("nodechange ResizeEditor ResizeWindow ResizeContent drop FullscreenStateChanged", t), l.on("keyup compositionend", function (e) {
f && "TABLE" === f.nodeName && t(e)
}), l.on("hide blur", M), l.on("contextmenu longpress", n, !0)
}), l.on("remove", F);
return {
isResizable: B,
showResizeRect: u,
hideResizeRect: M,
updateResizeRect: o,
destroy: function () {
f = d = null
}
}
},
ld = function (e) {
return Hn(e) || Vn(e)
},
fd = function (e, t, n) {
var r, o, i, a, u, s = n;
if (s.caretPositionFromPoint)(o = s.caretPositionFromPoint(e, t)) && ((r = n.createRange()).setStart(o.offsetNode, o.offset), r.collapse(!0));
else if (n.caretRangeFromPoint) r = n.caretRangeFromPoint(e, t);
else if (s.body.createTextRange) {
r = s.body.createTextRange();
try {
r.moveToPoint(e, t), r.collapse(!0)
} catch (c) {
r = function (e, n, t) {
var r, o = t.elementFromPoint(e, n),
i = t.body.createTextRange();
if (o && "HTML" !== o.tagName || (o = t.body), i.moveToElementText(o), 0 < (r = (r = kt.toArray(i.getClientRects())).sort(function (e, t) {
return (e = Math.abs(Math.max(e.top - n, e.bottom - n))) - (t = Math.abs(Math.max(t.top - n, t.bottom - n)))
})).length) {
n = (r[0].bottom + r[0].top) / 2;
try {
return i.moveToPoint(e, n), i.collapse(!0), i
} catch (a) {}
}
return null
}(e, t, n)
}
return i = r, a = n.body, u = i && i.parentElement ? i.parentElement() : null, Vn(function (e, t, n) {
for (; e && e !== t;) {
if (n(e)) return e;
e = e.parentNode
}
return null
}(u, a, ld)) ? null : i
}
return r
},
dd = function (e, t) {
return e && t && e.startContainer === t.startContainer && e.startOffset === t.startOffset && e.endContainer === t.endContainer && e.endOffset === t.endOffset
},
md = function (e, t, n) {
return null !== function (e, t, n) {
for (; e && e !== t;) {
if (n(e)) return e;
e = e.parentNode
}
return null
}(e, t, n)
},
pd = function (e) {
return e && "TABLE" === e.nodeName
},
gd = function (e, t, n) {
for (var r = new Xr(t, e.getParent(t.parentNode, e.isBlock) || e.getRoot()); t = r[n ? "prev" : "next"]();)
if (zn(t)) return !0
},
hd = function (e, t, n, r, o) {
var i, a, u = e.getRoot(),
s = e.schema.getNonEmptyElements(),
c = e.getParent(o.parentNode, e.isBlock) || u;
if (r && zn(o) && t && e.isEmpty(c)) return U.some(Hs(o.parentNode, e.nodeIndex(o)));
for (var l, f, d = new Xr(o, c); a = d[r ? "prev" : "next"]();) {
if ("false" === e.getContentEditableParent(a) || (f = u, bo(l = a) && !1 === md(l, f, jl))) return U.none();
if (In(a) && 0 < a.nodeValue.length) return !1 === function (e, t, n) {
return md(e, t, function (e) {
return e.nodeName === n
})
}(a, u, "A") ? U.some(Hs(a, r ? a.nodeValue.length : 0)) : U.none();
if (e.isBlock(a) || s[a.nodeName.toLowerCase()]) return U.none();
i = a
}
return n && i ? U.some(Hs(i, 0)) : U.none()
},
vd = function (e, t, n, r) {
var o, i, a, u, s = e.getRoot(),
c = !1,
l = r[(n ? "start" : "end") + "Container"],
f = r[(n ? "start" : "end") + "Offset"],
d = An(l) && f === l.childNodes.length,
m = e.schema.getNonEmptyElements(),
p = n;
if (bo(l)) return U.none();
if (An(l) && f > l.childNodes.length - 1 && (p = !1), Fn(l) && (l = s, f = 0), l === s) {
if (p && (o = l.childNodes[0 < f ? f - 1 : 0])) {
if (bo(o)) return U.none();
if (m[o.nodeName] || pd(o)) return U.none()
}
if (l.hasChildNodes()) {
if (f = Math.min(!p && 0 < f ? f - 1 : f, l.childNodes.length - 1), l = l.childNodes[f], f = In(l) && d ? l.data.length : 0, !t && l === s.lastChild && pd(l)) return U.none();
if (function (e, t) {
for (; t && t !== e;) {
if (Vn(t)) return !0;
t = t.parentNode
}
return !1
}(s, l) || bo(l)) return U.none();
if (l.hasChildNodes() && !1 === pd(l)) {
var g = new Xr(o = l, s);
do {
if (Vn(o) || bo(o)) {
c = !1;
break
}
if (In(o) && 0 < o.nodeValue.length) {
f = p ? 0 : o.nodeValue.length, l = o, c = !0;
break
}
if (m[o.nodeName.toLowerCase()] && (!(i = o) || !/^(TD|TH|CAPTION)$/.test(i.nodeName))) {
f = e.nodeIndex(o), l = o.parentNode, p || f++, c = !0;
break
}
} while (o = p ? g.next() : g.prev())
}
}
}
return t && (In(l) && 0 === f && hd(e, d, t, !0, l).each(function (e) {
l = e.container(), f = e.offset(), c = !0
}), An(l) && (!(o = (o = l.childNodes[f]) || l.childNodes[f - 1]) || !zn(o) || (u = "A", (a = o).previousSibling && a.previousSibling.nodeName === u) || gd(e, o, !1) || gd(e, o, !0) || hd(e, d, t, !0, o).each(function (e) {
l = e.container(), f = e.offset(), c = !0
}))), p && !t && In(l) && f === l.nodeValue.length && hd(e, d, t, !1, l).each(function (e) {
l = e.container(), f = e.offset(), c = !0
}), c ? U.some(Hs(l, f)) : U.none()
},
yd = function (e, t) {
var n = t.collapsed,
r = t.cloneRange(),
o = Hs.fromRangeStart(t);
return vd(e, n, !0, r).each(function (e) {
n && Hs.isAbove(o, e) || r.setStart(e.container(), e.offset())
}), n || vd(e, n, !1, r).each(function (e) {
r.setEnd(e.container(), e.offset())
}), n && r.collapse(!0), dd(t, r) ? U.none() : U.some(r)
},
bd = function (e, t) {
return e.splitText(t)
},
Cd = function (e) {
var t = e.startContainer,
n = e.startOffset,
r = e.endContainer,
o = e.endOffset;
return t === r && In(t) ? 0 < n && n < t.nodeValue.length && (t = (r = bd(t, n)).previousSibling, n < o ? (t = r = bd(r, o -= n).previousSibling, o = r.nodeValue.length, n = 0) : o = 0) : (In(t) && 0 < n && n < t.nodeValue.length && (t = bd(t, n), n = 0), In(r) && 0 < o && o < r.nodeValue.length && (o = (r = bd(r, o).previousSibling).nodeValue.length)), {
startContainer: t,
startOffset: n,
endContainer: r,
endOffset: o
}
};
function wd(n) {
return {
walk: function (e, t) {
return Pf(n, e, t)
},
split: Cd,
normalize: function (t) {
return yd(n, t).fold(C, function (e) {
return t.setStart(e.startContainer, e.startOffset), t.setEnd(e.endContainer, e.endOffset), !0
})
}
}
}(rd = wd = wd || {}).compareRanges = dd, rd.getCaretRangeFromPoint = fd, rd.getSelectedNode = Cs, rd.getNode = ws;
var xd = wd;
var Sd, Nd, Ed, kd, _d, Ad = (Sd = "height", Nd = function (e) {
var t = e.dom;
return hn(e) ? t.getBoundingClientRect().height : t.offsetHeight
}, {
set: function (e, t) {
if (!O(t) && !t.match(/^[0-9]+$/)) throw new Error(Sd + ".set accepts only positive integer values. Value was " + t);
var n = e.dom;
Wn(n) && (n.style[Sd] = t + "px")
},
get: Ed = function (e) {
var t = Nd(e);
if (t <= 0 || null === t) {
var n = er(e, Sd);
return parseFloat(n) || 0
}
return t
},
getOuter: Ed,
aggregate: kd = function (o, e) {
return X(e, function (e, t) {
var n = er(o, t),
r = n === undefined ? 0 : parseInt(n, 10);
return isNaN(r) ? e : e + r
}, 0)
},
max: function (e, t, n) {
var r = kd(e, n);
return r < t ? t - r : 0
}
}),
Rd = function (r, e) {
return r.view(e).fold(E([]), function (e) {
var t = r.owner(e),
n = Rd(r, t);
return [e].concat(n)
})
},
Td = /* */ Object.freeze({
__proto__: null,
view: function (e) {
var t;
return (e.dom === document ? U.none() : U.from(null === (t = e.dom.defaultView) || void 0 === t ? void 0 : t.frameElement)).map(At.fromDom)
},
owner: Vt
}),
Dd = function (e) {
var t, n, r, o = At.fromDom(document),
i = wn(o),
a = (t = e, r = (n = Td).owner(t), Rd(n, r)),
u = Cn(e),
s = K(a, function (e, t) {
var n = Cn(t);
return {
left: e.left + n.left,
top: e.top + n.top
}
}, {
left: 0,
top: 0
});
return yn(s.left + u.left + i.left, s.top + u.top + i.top)
},
Od = function (e) {
return "textarea" === Lt(e)
},
Bd = function (e, t) {
var n, r = function (e) {
var t = e.dom.ownerDocument,
n = t.body,
r = t.defaultView,
o = t.documentElement;
if (n === e.dom) return yn(n.offsetLeft, n.offsetTop);
var i = bn(null == r ? void 0 : r.pageYOffset, o.scrollTop),
a = bn(null == r ? void 0 : r.pageXOffset, o.scrollLeft),
u = bn(o.clientTop, n.clientTop),
s = bn(o.clientLeft, n.clientLeft);
return Cn(e).translate(a - s, i - u)
}(e),
o = (n = e, Ad.get(n));
return {
element: e,
bottom: r.top + o,
height: o,
pos: r,
cleanup: t
}
},
Pd = function (e, t) {
var n = function (e, t) {
var n = Gt(e);
if (0 === n.length || Od(e)) return {
element: e,
offset: t
};
if (t < n.length && !Od(n[t])) return {
element: n[t],
offset: 0
};
var r = n[n.length - 1];
return Od(r) ? {
element: e,
offset: t
} : "img" === Lt(r) ? {
element: r,
offset: 1
} : Ut(r) ? {
element: r,
offset: Gf(r).length
} : {
element: r,
offset: Gt(r).length
}
}(e, t),
r = At.fromHtml('<span data-mce-bogus="all">\ufeff</span>');
return sn(n.element, r), Bd(r, function () {
return pn(r)
})
},
Ld = function (n, r, o, i) {
Ud(n, function (e, t) {
return Md(n, r, o, i)
}, o)
},
Id = function (e, t, n, r, o) {
var i, a, u = {
elm: r.element.dom,
alignToTop: o
};
i = u, e.fire("ScrollIntoView", i).isDefaultPrevented() || (n(t, wn(t).top, r, o), a = u, e.fire("AfterScrollIntoView", a))
},
Md = function (e, t, n, r) {
var o = At.fromDom(e.getBody()),
i = At.fromDom(e.getDoc());
o.dom.offsetWidth;
var a = Pd(At.fromDom(n.startContainer), n.startOffset);
Id(e, i, t, a, r), a.cleanup()
},
Fd = function (e, t, n, r) {
var o, i = At.fromDom(e.getDoc());
Id(e, i, n, (o = t, Bd(At.fromDom(o), V)), r)
},
Ud = function (e, t, n) {
var r = n.startContainer,
o = n.startOffset,
i = n.endContainer,
a = n.endOffset;
t(At.fromDom(r), At.fromDom(i));
var u = e.dom.createRng();
u.setStart(r, o), u.setEnd(i, a), e.selection.setRng(n)
},
zd = function (e, t, n, r) {
var o, i = e.pos;
n ? xn(i.left, i.top, r) : (o = i.top - t + e.height, xn(i.left, o, r))
},
jd = function (e, t, n, r, o) {
var i = n + t,
a = r.pos.top,
u = r.bottom,
s = n <= u - a;
a < t ? zd(r, n, !1 !== o, e) : i < a ? zd(r, n, s ? !1 !== o : !0 === o, e) : i < u && !s && zd(r, n, !0 === o, e)
},
Hd = function (e, t, n, r) {
var o = e.dom.defaultView.innerHeight;
jd(e, t, o, n, r)
},
Vd = function (e, t, n, r) {
var o = e.dom.defaultView.innerHeight;
jd(e, t, o, n, r);
var i = Dd(n.element),
a = En(window);
i.top < a.y ? Sn(n.element, !1 !== r) : i.top > a.bottom && Sn(n.element, !0 === r)
},
qd = function (e, t, n) {
return Ld(e, Hd, t, n)
},
$d = function (e, t, n) {
return Fd(e, t, Hd, n)
},
Wd = function (e, t, n) {
return Ld(e, Vd, t, n)
},
Kd = function (e, t, n) {
return Fd(e, t, Vd, n)
},
Xd = function (e, t, n) {
(e.inline ? qd : Wd)(e, t, n)
},
Yd = function (e) {
var t = rn(e).dom;
return e.dom === t.activeElement
},
Gd = function (e) {
return void 0 === e && (e = At.fromDom(document)), U.from(e.dom.activeElement).map(At.fromDom)
},
Jd = function (e, t, n, r) {
return {
start: e,
soffset: t,
finish: n,
foffset: r
}
},
Qd = Cr([{
before: ["element"]
}, {
on: ["element", "offset"]
}, {
after: ["element"]
}]),
Zd = (Qd.before, Qd.on, Qd.after, function (e) {
return e.fold(o, o, o)
}),
em = Cr([{
domRange: ["rng"]
}, {
relative: ["startSitu", "finishSitu"]
}, {
exact: ["start", "soffset", "finish", "foffset"]
}]),
tm = {
domRange: em.domRange,
relative: em.relative,
exact: em.exact,
exactFromRange: function (e) {
return em.exact(e.start, e.soffset, e.finish, e.foffset)
},
getWin: function (e) {
var t = e.match({
domRange: function (e) {
return At.fromDom(e.startContainer)
},
relative: function (e, t) {
return Zd(e)
},
exact: function (e, t, n, r) {
return e
}
});
return qt(t)
},
range: Jd
},
nm = dt().browser,
rm = function (e, t) {
var n = Ut(t) ? Gf(t).length : Gt(t).length + 1;
return n < e ? n : e < 0 ? 0 : e
},
om = function (e) {
return tm.range(e.start, rm(e.soffset, e.start), e.finish, rm(e.foffset, e.finish))
},
im = function (e, t) {
return !_n(t.dom) && (Pt(e, t) || Ot(e, t))
},
am = function (t) {
return function (e) {
return im(t, e.start) && im(t, e.finish)
}
},
um = function (e) {
return !0 === e.inline || nm.isIE()
},
sm = function (e) {
return tm.range(At.fromDom(e.startContainer), e.startOffset, At.fromDom(e.endContainer), e.endOffset)
},
cm = function (e) {
var t, n, r = qt(e);
return t = r.dom, ((n = t.getSelection()) && 0 !== n.rangeCount ? U.from(n.getRangeAt(0)) : U.none()).map(sm).filter(am(e))
},
lm = function (e) {
var t = document.createRange();
try {
return t.setStart(e.start.dom, e.soffset), t.setEnd(e.finish.dom, e.foffset), U.some(t)
} catch (n) {
return U.none()
}
},
fm = function (e) {
var t = um(e) ? cm(At.fromDom(e.getBody())) : U.none();
e.bookmark = t.isSome() ? t : e.bookmark
},
dm = function (r) {
return (r.bookmark ? r.bookmark : U.none()).bind(function (e) {
return t = At.fromDom(r.getBody()), n = e, U.from(n).filter(am(t)).map(om);
var t, n
}).bind(lm)
},
mm = {
isEditorUIElement: function (e) {
var t = e.className.toString();
return -1 !== t.indexOf("tox-") || -1 !== t.indexOf("mce-")
}
},
pm = function (n, e) {
var t, r;
dt().browser.isIE() ? (r = n).on("focusout", function () {
fm(r)
}) : (t = e, n.on("mouseup touchend", function (e) {
t.throttle()
})), n.on("keyup NodeChange", function (e) {
var t;
"nodechange" === (t = e).type && t.selectionChange || fm(n)
})
},
gm = function (r) {
var o = zu(function () {
fm(r)
}, 0);
r.on("init", function () {
var e, t, n;
r.inline && (e = r, t = o, n = function () {
t.throttle()
}, Eu.DOM.bind(document, "mouseup", n), e.on("remove", function () {
Eu.DOM.unbind(document, "mouseup", n)
})), pm(r, o)
}), r.on("remove", function () {
o.cancel()
})
},
hm = Eu.DOM,
vm = function (t, e) {
var n = t.getParam("custom_ui_selector", "", "string");
return null !== hm.getParent(e, function (e) {
return mm.isEditorUIElement(e) || !!n && t.dom.is(e, n)
})
},
ym = function (n, e) {
var t = e.editor;
gm(t), t.on("focusin", function () {
var e = n.focusedEditor;
e !== this && (e && e.fire("blur", {
focusedEditor: this
}), n.setActive(this), (n.focusedEditor = this).fire("focus", {
blurredEditor: e
}), this.focus(!0))
}), t.on("focusout", function () {
var t = this;
qr.setEditorTimeout(t, function () {
var e = n.focusedEditor;
vm(t, function (e) {
try {
var t = rn(At.fromDom(e.getElement()));
return Gd(t).fold(function () {
return document.body
}, function (e) {
return e.dom
})
} catch (n) {
return document.body
}
}(t)) || e !== t || (t.fire("blur", {
focusedEditor: null
}), n.focusedEditor = null)
})
}), _d || (_d = function (e) {
var t = n.activeEditor;
t && function (e) {
if (nn() && D(e.target)) {
var t = At.fromDom(e.target);
if (Ft(t) && un(t) && e.composed && e.composedPath) {
var n = e.composedPath();
if (n) return ne(n)
}
}
return U.from(e.target)
}(e).each(function (e) {
e.ownerDocument === document && (e === document.body || vm(t, e) || n.focusedEditor !== t || (t.fire("blur", {
focusedEditor: null
}), n.focusedEditor = null))
})
}, hm.bind(document, "focusin", _d))
},
bm = function (e, t) {
e.focusedEditor === t.editor && (e.focusedEditor = null), e.activeEditor || (hm.unbind(document, "focusin", _d), _d = null)
},
Cm = function (t, e) {
return ((n = e).collapsed ? U.from(ws(n.startContainer, n.startOffset)).map(At.fromDom) : U.none()).bind(function (e) {
return ao(e) ? U.some(e) : !1 === Pt(t, e) ? U.some(t) : U.none()
});
var n
},
wm = function (t, e) {
Cm(At.fromDom(t.getBody()), e).bind(function (e) {
return Fl(e.dom)
}).fold(function () {
t.selection.normalize()
}, function (e) {
return t.selection.setRng(e.toRange())
})
},
xm = function (e) {
if (e.setActive) try {
e.setActive()
} catch (t) {
e.focus()
} else e.focus()
},
Sm = function (e) {
return Yd(e) || Gd(rn(t = e)).filter(function (e) {
return t.dom.contains(e.dom)
}).isSome();
var t
},
Nm = function (r) {
return Gd().filter(function (e) {
return t = e.dom, !((n = t.classList) !== undefined && (n.contains("tox-edit-area") || n.contains("tox-edit-area__iframe") || n.contains("mce-content-body"))) && vm(r, e.dom);
var t, n
}).isSome()
},
Em = function (e) {
return e.inline ? (n = e.getBody()) && Sm(At.fromDom(n)) : (t = e).iframeElement && Yd(At.fromDom(t.iframeElement));
var t, n
},
km = function (t) {
var e = t.selection,
n = t.getBody(),
r = e.getRng();
t.quirks.refreshContentEditable(), t.bookmark !== undefined && !1 === Em(t) && dm(t).each(function (e) {
t.selection.setRng(e), r = e
});
var o, i, a = (o = t, i = e.getNode(), o.dom.getParent(i, function (e) {
return "true" === o.dom.getContentEditable(e)
}));
if (t.$.contains(n, a)) return xm(a), wm(t, r), void _m(t);
t.inline || (wt.opera || xm(n), t.getWin().focus()), (wt.gecko || t.inline) && (xm(n), wm(t, r)), _m(t)
},
_m = function (e) {
return e.editorManager.setActive(e)
},
Am = function (e, t, n, r, o) {
var i = n ? t.startContainer : t.endContainer,
a = n ? t.startOffset : t.endOffset;
return U.from(i).map(At.fromDom).map(function (e) {
return r && t.collapsed ? e : Jt(e, o(e, a)).getOr(e)
}).bind(function (e) {
return Ft(e) ? U.some(e) : $t(e).filter(Ft)
}).map(function (e) {
return e.dom
}).getOr(e)
},
Rm = function (e, t, n) {
return Am(e, t, !0, n, function (e, t) {
return Math.min(e.dom.childNodes.length, t)
})
},
Tm = function (e, t, n) {
return Am(e, t, !1, n, function (e, t) {
return 0 < t ? t - 1 : t
})
},
Dm = function (e, t) {
for (var n = e; e && In(e) && 0 === e.length;) e = t ? e.nextSibling : e.previousSibling;
return e || n
},
Om = function (n, e) {
return z(e, function (e) {
var t = n.fire("GetSelectionRange", {
range: e
});
return t.range !== e ? t.range : e
})
},
Bm = function (e) {
return T(e) ? e : C
},
Pm = function (e, t, n) {
var r = t(e),
o = Bm(n);
return r.orThunk(function () {
return o(e) ? U.none() : function (e, t, n) {
for (var r = e.dom, o = Bm(n); r.parentNode;) {
r = r.parentNode;
var i = At.fromDom(r),
a = t(i);
if (a.isSome()) return a;
if (o(i)) break
}
return U.none()
}(e, t, o)
})
},
Lm = cf,
Im = function (e, t, n) {
var r = e.formatter.get(n);
if (r)
for (var o = 0; o < r.length; o++)
if (!1 === r[o].inherit && e.dom.is(t, r[o].selector)) return !0;
return !1
},
Mm = function (t, e, n, r) {
var o = t.dom.getRoot();
return e !== o && (e = t.dom.getParent(e, function (e) {
return !!Im(t, e, n) || (e.parentNode === o || !!zm(t, e, n, r, !0))
}), zm(t, e, n, r))
},
Fm = function (e, t, n) {
return !!Lm(t, n.inline) || (!!Lm(t, n.block) || (n.selector ? 1 === t.nodeType && e.is(t, n.selector) : void 0))
},
Um = function (e, t, n, r, o, i) {
var a, u, s, c = n[r];
if (n.onmatch) return n.onmatch(t, n, r);
if (c)
if ("undefined" == typeof c.length) {
for (a in c)
if (c.hasOwnProperty(a)) {
if (u = "attributes" === r ? e.getAttrib(t, a) : ff(e, t, a), o && !u && !n.exact) return;
if ((!o || n.exact) && !Lm(u, lf(e, sf(c[a], i), a))) return
}
} else
for (s = 0; s < c.length; s++)
if ("attributes" === r ? e.getAttrib(t, c[s]) : ff(e, t, c[s])) return n;
return n
},
zm = function (e, t, n, r, o) {
var i, a, u, s, c = e.formatter.get(n),
l = e.dom;
if (c && t)
for (a = 0; a < c.length; a++)
if (i = c[a], Fm(e.dom, t, i) && Um(l, t, i, "attributes", o, r) && Um(l, t, i, "styles", o, r)) {
if (s = i.classes)
for (u = 0; u < s.length; u++)
if (!e.dom.hasClass(t, s[u])) return;
return i
}
},
jm = function (e, t, n, r) {
if (r) return Mm(e, r, t, n);
if (r = e.selection.getNode(), Mm(e, r, t, n)) return !0;
var o = e.selection.getStart();
return !(o === r || !Mm(e, o, t, n))
},
Hm = function (r, t) {
var n = function (e) {
return Ot(e, At.fromDom(r.getBody()))
};
return U.from(r.selection.getStart(!0)).bind(function (e) {
return Pm(At.fromDom(e), function (n) {
return function (e, t) {
for (var n = 0; n < e.length; n++) {
var r = t(e[n], n);
if (r.isSome()) return r
}
return U.none()
}(t, function (e) {
return t = e, zm(r, n.dom, t) ? U.some(t) : U.none();
var t
})
}, n)
}).getOrNull()
},
Vm = function (o, i, e) {
return X(e, function (e, t) {
var n, r = (n = t, F(o.formatter.get(n), function (t) {
var n = function (e) {
return 1 < e.length && "%" === e.charAt(0)
};
return F(["styles", "attributes"], function (e) {
return ge(t, e).exists(function (e) {
var t = S(e) ? e : pe(e);
return F(t, n)
})
})
}));
return o.formatter.matchNode(i, t, {}, r) ? e.concat([t]) : e
}, [])
},
qm = {
"#text": 3,
"#comment": 8,
"#cdata": 4,
"#pi": 7,
"#doctype": 10,
"#document-fragment": 11
},
$m = function (e, t, n) {
var r = n ? "lastChild" : "firstChild",
o = n ? "prev" : "next";
if (e[r]) return e[r];
if (e !== t) {
var i = e[o];
if (i) return i;
for (var a = e.parent; a && a !== t; a = a.parent)
if (i = a[o]) return i
}
},
Wm = function (e) {
var t = "a" === e.name && !e.attr("href") && e.attr("id");
return e.attr("name") || e.attr("id") && !e.firstChild || e.attr("data-mce-bookmark") || t
},
Km = (Xm.create = function (e, t) {
var n = new Xm(e, qm[e] || 1);
return t && ue(t, function (e, t) {
n.attr(t, e)
}), n
}, Xm.prototype.replace = function (e) {
return e.parent && e.remove(), this.insert(e, this), this.remove(), this
}, Xm.prototype.attr = function (e, t) {
var n, r = this;
if ("string" != typeof e) return e !== undefined && null !== e && ue(e, function (e, t) {
r.attr(t, e)
}), r;
if (n = r.attributes) {
if (t === undefined) return n.map[e];
if (null === t) {
if (e in n.map) {
delete n.map[e];
for (var o = n.length; o--;)
if (n[o].name === e) return n.splice(o, 1), r
}
return r
}
if (e in n.map) {
for (o = n.length; o--;)
if (n[o].name === e) {
n[o].value = t;
break
}
} else n.push({
name: e,
value: t
});
return n.map[e] = t, r
}
}, Xm.prototype.clone = function () {
var e, t = new Xm(this.name, this.type);
if (e = this.attributes) {
var n = [];
n.map = {};
for (var r = 0, o = e.length; r < o; r++) {
var i = e[r];
"id" !== i.name && (n[n.length] = {
name: i.name,
value: i.value
}, n.map[i.name] = i.value)
}
t.attributes = n
}
return t.value = this.value, t.shortEnded = this.shortEnded, t
}, Xm.prototype.wrap = function (e) {
return this.parent.insert(e, this), e.append(this), this
}, Xm.prototype.unwrap = function () {
for (var e = this.firstChild; e;) {
var t = e.next;
this.insert(e, this, !0), e = t
}
this.remove()
}, Xm.prototype.remove = function () {
var e = this.parent,
t = this.next,
n = this.prev;
return e && (e.firstChild === this ? (e.firstChild = t) && (t.prev = null) : n.next = t, e.lastChild === this ? (e.lastChild = n) && (n.next = null) : t.prev = n, this.parent = this.next = this.prev = null), this
}, Xm.prototype.append = function (e) {
e.parent && e.remove();
var t = this.lastChild;
return t ? ((t.next = e).prev = t, this.lastChild = e) : this.lastChild = this.firstChild = e, e.parent = this, e
}, Xm.prototype.insert = function (e, t, n) {
e.parent && e.remove();
var r = t.parent || this;
return n ? (t === r.firstChild ? r.firstChild = e : t.prev.next = e, e.prev = t.prev, (e.next = t).prev = e) : (t === r.lastChild ? r.lastChild = e : t.next.prev = e, e.next = t.next, (e.prev = t).next = e), e.parent = r, e
}, Xm.prototype.getAll = function (e) {
for (var t = [], n = this.firstChild; n; n = $m(n, this)) n.name === e && t.push(n);
return t
}, Xm.prototype.empty = function () {
if (this.firstChild) {
for (var e = [], t = this.firstChild; t; t = $m(t, this)) e.push(t);
for (var n = e.length; n--;)(t = e[n]).parent = t.firstChild = t.lastChild = t.next = t.prev = null
}
return this.firstChild = this.lastChild = null, this
}, Xm.prototype.isEmpty = function (e, t, n) {
void 0 === t && (t = {});
var r = this.firstChild;
if (Wm(this)) return !1;
if (r)
do {
if (1 === r.type) {
if (r.attr("data-mce-bogus")) continue;
if (e[r.name]) return !1;
if (Wm(r)) return !1
}
if (8 === r.type) return !1;
if (3 === r.type && ! function (e) {
if (Uo(e.value)) {
var t = e.parent;
return !t || "span" === t.name && !t.attr("style") || !/^[ ]+$/.test(e.value)
}
}(r)) return !1;
if (3 === r.type && r.parent && t[r.parent.name] && Uo(r.value)) return !1;
if (n && n(r)) return !1
} while (r = $m(r, this));
return !0
}, Xm.prototype.walk = function (e) {
return $m(this, null, e)
}, Xm);
function Xm(e, t) {
this.name = e, 1 === (this.type = t) && (this.attributes = [], this.attributes.map = {})
}
var Ym = kt.makeMap,
Gm = function (e) {
var u = [],
s = (e = e || {}).indent,
c = Ym(e.indent_before || ""),
l = Ym(e.indent_after || ""),
f = ci.getEncodeFunc(e.entity_encoding || "raw", e.entities),
d = "html" === e.element_format;
return {
start: function (e, t, n) {
var r, o, i, a;
if (s && c[e] && 0 < u.length && 0 < (a = u[u.length - 1]).length && "\n" !== a && u.push("\n"), u.push("<", e), t)
for (r = 0, o = t.length; r < o; r++) i = t[r], u.push(" ", i.name, '="', f(i.value, !0), '"');
u[u.length] = !n || d ? ">" : " />", n && s && l[e] && 0 < u.length && 0 < (a = u[u.length - 1]).length && "\n" !== a && u.push("\n")
},
end: function (e) {
var t;
u.push("</", e, ">"), s && l[e] && 0 < u.length && 0 < (t = u[u.length - 1]).length && "\n" !== t && u.push("\n")
},
text: function (e, t) {
0 < e.length && (u[u.length] = t ? e : f(e))
},
cdata: function (e) {
u.push("<![CDATA[", e, "]]>")
},
comment: function (e) {
u.push("\x3c!--", e, "--\x3e")
},
pi: function (e, t) {
t ? u.push("<?", e, " ", f(t), "?>") : u.push("<?", e, "?>"), s && u.push("\n")
},
doctype: function (e) {
u.push("<!DOCTYPE", e, ">", s ? "\n" : "")
},
reset: function () {
u.length = 0
},
getContent: function () {
return u.join("").replace(/\n$/, "")
}
}
},
Jm = function (t, p) {
void 0 === p && (p = Ci());
var g = Gm(t);
(t = t || {}).validate = !("validate" in t) || t.validate;
return {
serialize: function (e) {
var f = t.validate,
d = {
3: function (e) {
g.text(e.value, e.raw)
},
8: function (e) {
g.comment(e.value)
},
7: function (e) {
g.pi(e.name, e.value)
},
10: function (e) {
g.doctype(e.value)
},
4: function (e) {
g.cdata(e.value)
},
11: function (e) {
if (e = e.firstChild)
for (; m(e), e = e.next;);
}
};
g.reset();
var m = function (e) {
var t, n, r, o, i, a, u, s, c, l = d[e.type];
if (l) l(e);
else {
if (t = e.name, n = e.shortEnded, r = e.attributes, f && r && 1 < r.length && ((a = []).map = {}, c = p.getElementRule(e.name))) {
for (u = 0, s = c.attributesOrder.length; u < s; u++)(o = c.attributesOrder[u]) in r.map && (i = r.map[o], a.map[o] = i, a.push({
name: o,
value: i
}));
for (u = 0, s = r.length; u < s; u++)(o = r[u].name) in a.map || (i = r.map[o], a.map[o] = i, a.push({
name: o,
value: i
}));
r = a
}
if (g.start(e.name, r, n), !n) {
if (e = e.firstChild)
for (; m(e), e = e.next;);
g.end(t)
}
}
};
return 1 !== e.type || t.inner ? d[11](e) : m(e), g.getContent()
}
}
},
Qm = function (e, t) {
return e.replace(new RegExp(t.prefix + "_[0-9]+", "g"), function (e) {
return ge(t.uris, e).getOr(e)
})
},
Zm = ["img", "video"],
ep = function (e, t, n) {
return !e.allow_html_data_urls && (/^data:image\//i.test(t) ? (r = e.allow_svg_data_urls, o = n, !($(r) ? M(Zm, o) : r) && /^data:image\/svg\+xml/i.test(t)) : /^data:/i.test(t));
var r, o
},
tp = function (e, t, n) {
var r, o, i = 1,
a = e.getShortEndedElements(),
u = /<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g;
for (u.lastIndex = r = n; o = u.exec(t);) {
if (r = u.lastIndex, "/" === o[1]) i--;
else if (!o[1]) {
if (o[2] in a) continue;
i++
}
if (0 === i) break
}
return r
};
function np(W, K) {
void 0 === K && (K = Ci());
var e = function () {};
!1 !== (W = W || {}).fix_self_closing && (W.fix_self_closing = !0);
var X = W.comment ? W.comment : e,
Y = W.cdata ? W.cdata : e,
G = W.text ? W.text : e,
J = W.start ? W.start : e,
Q = W.end ? W.end : e,
Z = W.pi ? W.pi : e,
ee = W.doctype ? W.doctype : e,
n = function (f, e) {
void 0 === e && (e = "html");
for (var t, i, n, d, r, o, a, m, u, s, c, l, p, g, h, v, y, b, C, w = f.html, x = 0, S = [], N = 0, E = ci.decode, k = kt.makeMap("src,href,data,background,formaction,poster,xlink:href"), _ = /((java|vb)script|mhtml):/i, A = "html" === e ? 0 : 1, R = function (e) {
for (var t, n = S.length; n-- && S[n].name !== e;);
if (0 <= n) {
for (t = S.length - 1; n <= t; t--)(e = S[t]).valid && Q(e.name);
S.length = n
}
}, T = function (e, t) {
return G(Qm(e, f), t)
}, D = function (e) {
"" !== e && (">" === e.charAt(0) && (e = " " + e), W.allow_conditional_comments || "[if" !== e.substr(0, 3).toLowerCase() || (e = " " + e), X(Qm(e, f)))
}, O = function (e, t) {
var n = e || "",
r = !Ve(n, "--"),
o = function (e, t, n) {
void 0 === n && (n = 0);
var r = e.toLowerCase();
if (-1 !== r.indexOf("[if ", n) && (u = n, /^\s*\[if [\w\W]+\]>.*<!\[endif\](--!?)?>/.test(r.substr(u)))) {
var o = r.indexOf("[endif]", n);
return r.indexOf(">", o)
}
if (t) {
var i = r.indexOf(">", n);
return -1 !== i ? i : r.length
}
var a = /--!?>/;
a.lastIndex = n;
var u, s = a.exec(e);
return s ? s.index + s[0].length : r.length
}(w, r, t);
return e = w.substr(t, o - t), D(r ? n + e : e), o + 1
}, B = function (e, t, n, r, o) {
var i, a, u, s;
if (t = t.toLowerCase(), u = t in F ? t : E(n || r || o || ""), n = ge(f.uris, u).getOr(u), U && !m && !1 == (0 === (s = t).indexOf("data-") || 0 === s.indexOf("aria-"))) {
if (!(i = g[t]) && h) {
for (a = h.length; a-- && !(i = h[a]).pattern.test(t);); - 1 === a && (i = null)
}
if (!i) return;
if (i.validValues && !(n in i.validValues)) return
}
if (k[t] && !W.allow_script_urls) {
var c = n.replace(/[\s\u0000-\u001F]+/g, "");
try {
c = decodeURIComponent(c)
} catch (l) {
c = unescape(c)
}
if (_.test(c)) return;
if (ep(W, c, e)) return
}
m && (t in k || 0 === t.indexOf("on")) || (d.map[t] = n, d.push({
name: t,
value: n
}))
}, P = new RegExp("<(?:(?:!--([\\w\\W]*?)--!?>)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:![Dd][Oo][Cc][Tt][Yy][Pp][Ee]([\\w\\W]*?)>)|(?:!(--)?)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))", "g"), L = /([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g, I = K.getShortEndedElements(), M = W.self_closing_elements || K.getSelfClosingElements(), F = K.getBoolAttrs(), U = W.validate, z = W.remove_internals, j = W.fix_self_closing, H = K.getSpecialElements(), V = w + ">"; t = P.exec(V);) {
var q = t[0];
if (x < t.index && T(E(w.substr(x, t.index - x))), i = t[7]) ":" === (i = i.toLowerCase()).charAt(0) && (i = i.substr(1)), R(i);
else if (i = t[8]) {
if (t.index + q.length > w.length) {
T(E(w.substr(t.index))), x = t.index + q.length;
continue
}
":" === (i = i.toLowerCase()).charAt(0) && (i = i.substr(1)), u = i in I, j && M[i] && 0 < S.length && S[S.length - 1].name === i && R(i);
var $ = function (e, t) {
var n = e.exec(t);
if (n) {
var r = n[1],
o = n[2];
return "string" == typeof r && "data-mce-bogus" === r.toLowerCase() ? o : null
}
return null
}(L, t[9]);
if (null !== $) {
if ("all" === $) {
x = tp(K, w, P.lastIndex), P.lastIndex = x;
continue
}
c = !1
}
if (!U || (s = K.getElementRule(i))) {
if (c = !0, U && (g = s.attributes, h = s.attributePatterns), (p = t[9]) ? ((m = -1 !== p.indexOf("data-mce-type")) && z && (c = !1), (d = []).map = {}, p.replace(L, function (e, t, n, r, o) {
return B(i, t, n, r, o), ""
})) : (d = []).map = {}, U && !m) {
if (v = s.attributesRequired, y = s.attributesDefault, b = s.attributesForced, s.removeEmptyAttrs && !d.length && (c = !1), b)
for (r = b.length; r--;) a = (l = b[r]).name, "{$uid}" === (C = l.value) && (C = "mce_" + N++), d.map[a] = C, d.push({
name: a,
value: C
});
if (y)
for (r = y.length; r--;)(a = (l = y[r]).name) in d.map || ("{$uid}" === (C = l.value) && (C = "mce_" + N++), d.map[a] = C, d.push({
name: a,
value: C
}));
if (v) {
for (r = v.length; r-- && !(v[r] in d.map);); - 1 === r && (c = !1)
}
if (l = d.map["data-mce-bogus"]) {
if ("all" === l) {
x = tp(K, w, P.lastIndex), P.lastIndex = x;
continue
}
c = !1
}
}
c && J(i, d, u)
} else c = !1;
if (n = H[i]) {
n.lastIndex = x = t.index + q.length, x = (t = n.exec(w)) ? (c && (o = w.substr(x, t.index - x)), t.index + t[0].length) : (o = w.substr(x), w.length), c && (0 < o.length && T(o, !0), Q(i)), P.lastIndex = x;
continue
}
u || (p && p.indexOf("/") === p.length - 1 ? c && Q(i) : S.push({
name: i,
valid: c
}))
} else if (i = t[1]) D(i);
else if (i = t[2]) {
if (!(1 == A || W.preserve_cdata || 0 < S.length && K.isValidChild(S[S.length - 1].name, "#cdata"))) {
x = O("", t.index + 2), P.lastIndex = x;
continue
}
Y(i)
} else if (i = t[3]) ee(i);
else {
if ((i = t[4]) || "<!" === q) {
x = O(i, t.index + q.length), P.lastIndex = x;
continue
}
if (i = t[5]) {
if (1 != A) {
x = O("?", t.index + 2), P.lastIndex = x;
continue
}
Z(i, t[6])
}
}
x = t.index + q.length
}
for (x < w.length && T(E(w.substr(x))), r = S.length - 1; 0 <= r; r--)(i = S[r]).valid && Q(i.name)
};
return {
parse: function (e, t) {
void 0 === t && (t = "html"), n(function (e) {
for (var t, n = /data:[^;]+;base64,([a-z0-9\+\/=]+)/gi, r = [], o = {}, i = is("img"), a = 0, u = 0; t = n.exec(e);) {
var s = t[0],
c = i + "_" + u++;
o[c] = s, a < t.index && r.push(e.substr(a, t.index - a)), r.push(c), a = t.index + s.length
}
return 0 === a ? {
prefix: i,
uris: o,
html: e
} : (a < e.length && r.push(e.substr(a)), {
prefix: i,
uris: o,
html: r.join("")
})
}(e), t)
}
}
}(np = np || {}).findEndTag = tp;
var rp, op, ip = np,
ap = function (e, t) {
var n, r, o, i, a, u, s, c = t,
l = /<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,
f = e.schema;
a = e.getTempAttrs(), u = c, s = new RegExp(["\\s?(" + a.join("|") + ')="[^"]+"'].join("|"), "gi"), c = u.replace(s, "");
for (var d = f.getShortEndedElements(); i = l.exec(c);) r = l.lastIndex, o = i[0].length, n = d[i[1]] ? r : ip.findEndTag(f, c, r), c = c.substring(0, r - o) + c.substring(n), l.lastIndex = r - o;
return po(c)
},
up = ap,
sp = function (e, t, n, r) {
var o, i, a, u, s;
return t.format = n, t.get = !0, t.getInner = !0, t.no_events || e.fire("BeforeGetContent", t), o = "raw" === t.format ? kt.trim(up(e.serializer, r.innerHTML)) : "text" === t.format ? e.dom.isEmpty(r) ? "" : po(r.innerText || r.textContent) : "tree" === t.format ? e.serializer.serialize(r, t) : (a = (i = e).serializer.serialize(r, t), u = vc(i), s = new RegExp("^(<" + u + "[^>]*>( | |\\s|\xa0|<br \\/>|)<\\/" + u + ">[\r\n]*|<br \\/>[\r\n]*)$"), a.replace(s, "")), M(["text", "tree"], t.format) || so(At.fromDom(r)) ? t.content = o : t.content = kt.trim(o), t.no_events || e.fire("GetContent", t), t.content
},
cp = kt.each,
lp = function (o) {
this.compare = function (e, t) {
if (e.nodeName !== t.nodeName) return !1;
var n = function (n) {
var r = {};
return cp(o.getAttribs(n), function (e) {
var t = e.nodeName.toLowerCase();
0 !== t.indexOf("_") && "style" !== t && 0 !== t.indexOf("data-") && (r[t] = o.getAttrib(n, t))
}), r
},
r = function (e, t) {
var n, r;
for (r in e)
if (e.hasOwnProperty(r)) {
if (void 0 === (n = t[r])) return !1;
if (e[r] !== n) return !1;
delete t[r]
} for (r in t)
if (t.hasOwnProperty(r)) return !1;
return !0
};
return !!r(n(e), n(t)) && (!!r(o.parseStyle(o.getAttrib(e, "style")), o.parseStyle(o.getAttrib(t, "style"))) && (!Jl(e) && !Jl(t)))
}
},
fp = function (n, r, o) {
return U.from(o.container()).filter(In).exists(function (e) {
var t = n ? 0 : -1;
return r(e.data.charAt(o.offset() + t))
})
},
dp = N(fp, !0, Zl),
mp = N(fp, !1, Zl),
pp = function (e) {
var t = e.container();
return In(t) && (0 === t.data.length || mo(t.data) && od.isBookmarkNode(t.parentNode))
},
gp = function (t, n) {
return function (e) {
return U.from(il(t ? 0 : -1, e)).filter(n).isSome()
}
},
hp = function (e) {
return jn(e) && "block" === er(At.fromDom(e), "display")
},
vp = function (e) {
return Vn(e) && !(An(t = e) && "all" === t.getAttribute("data-mce-bogus"));
var t
},
yp = gp(!0, hp),
bp = gp(!1, hp),
Cp = gp(!0, $n),
wp = gp(!1, $n),
xp = gp(!0, Bn),
Sp = gp(!1, Bn),
Np = gp(!0, vp),
Ep = gp(!1, vp),
kp = function (e) {
var t = Gu(e, "br"),
n = H(function (e) {
for (var t = [], n = e.dom; n;) t.push(At.fromDom(n)), n = n.lastChild;
return t
}(e).slice(-1), no);
t.length === n.length && W(n, pn)
},
_p = function (e) {
mn(e), fn(e, At.fromHtml('<br data-mce-bogus="1">'))
},
Ap = function (n) {
Zt(n).each(function (t) {
Wt(t).each(function (e) {
eo(n) && no(t) && eo(e) && pn(t)
})
})
},
Rp = function (e, t, n) {
return Pt(t, e) ? function (e, t) {
for (var n = T(t) ? t : C, r = e.dom, o = []; null !== r.parentNode && r.parentNode !== undefined;) {
var i = r.parentNode,
a = At.fromDom(i);
if (o.push(a), !0 === n(a)) break;
r = i
}
return o
}(e, function (e) {
return n(e) || Ot(e, t)
}).slice(0, -1) : []
},
Tp = function (e, t) {
return Rp(e, t, C)
},
Dp = function (e, t) {
return [e].concat(Tp(e, t))
},
Op = function (e, t, n) {
return Pl(e, t, n, pp)
},
Bp = function (e, t) {
return Y(Dp(At.fromDom(t.container()), e), eo)
},
Pp = function (e, n, r) {
return Op(e, n.dom, r).forall(function (t) {
return Bp(n, r).fold(function () {
return !1 === ol(t, r, n.dom)
}, function (e) {
return !1 === ol(t, r, n.dom) && Pt(e, At.fromDom(t.container()))
})
})
},
Lp = function (t, n, r) {
return Bp(n, r).fold(function () {
return Op(t, n.dom, r).forall(function (e) {
return !1 === ol(e, r, n.dom)
})
}, function (e) {
return Op(t, e.dom, r).isNone()
})
},
Ip = N(Lp, !1),
Mp = N(Lp, !0),
Fp = N(Pp, !1),
Up = N(Pp, !0),
zp = function (e) {
return ml(e).exists(no)
},
jp = function (e, t, n) {
var r = H(Dp(At.fromDom(n.container()), t), eo),
o = ne(r).getOr(t);
return Ol(e, o.dom, n).filter(zp)
},
Hp = function (e, t) {
return ml(t).exists(no) || jp(!0, e, t).isSome()
},
Vp = function (e, t) {
return n = t, U.from(n.getNode(!0)).map(At.fromDom).exists(no) || jp(!1, e, t).isSome();
var n
},
qp = N(jp, !1),
$p = N(jp, !0),
Wp = function (e) {
return Hs.isTextPosition(e) && !e.isAtStart() && !e.isAtEnd()
},
Kp = function (e, t) {
var n = H(Dp(At.fromDom(t.container()), e), eo);
return ne(n).getOr(e)
},
Xp = function (e, t) {
return Wp(t) ? mp(t) : mp(t) || Ml(Kp(e, t).dom, t).exists(mp)
},
Yp = function (e, t) {
return Wp(t) ? dp(t) : dp(t) || Il(Kp(e, t).dom, t).exists(dp)
},
Gp = function (e) {
return ml(e).bind(function (e) {
return Ar(e, Ft)
}).exists(function (e) {
return t = er(e, "white-space"), M(["pre", "pre-wrap"], t);
var t
})
},
Jp = function (e, t) {
return r = t, Ml(e.dom, r).isNone() || (n = t, Il(e.dom, n).isNone()) || Ip(e, t) || Mp(e, t) || Vp(e, t) || Hp(e, t);
var n, r
},
Qp = function (e, t) {
return !Gp(t) && (Ip(e, t) || Fp(e, t) || Vp(e, t) || Xp(e, t))
},
Zp = function (e, t) {
return !Gp(t) && (Mp(e, t) || Up(e, t) || Hp(e, t) || Yp(e, t))
},
eg = function (e, t) {
return Qp(e, t) || Zp(e, (r = (n = t).container(), o = n.offset(), In(r) && o < r.data.length ? Hs(r, o + 1) : n));
var n, r, o
},
tg = function (e, t) {
return Ql(e.charAt(t))
},
ng = function (e) {
var t = e.container();
return In(t) && He(t.data, lo)
},
rg = function (e) {
var n, t = e.data,
r = (n = t.split(""), z(n, function (e, t) {
return Ql(e) && 0 < t && t < n.length - 1 && ef(n[t - 1]) && ef(n[t + 1]) ? " " : e
}).join(""));
return r !== t && (e.data = r, !0)
},
og = function (l, e) {
return U.some(e).filter(ng).bind(function (e) {
var t, n, r, o, i, a, u, s, c = e.container();
return (i = l, u = (a = c).data, s = Hs(a, 0), !(!tg(u, 0) || eg(i, s) || (a.data = " " + u.slice(1), 0)) || rg(c) || (t = l, r = (n = c).data, o = Hs(n, r.length - 1), !(!tg(r, r.length - 1) || eg(t, o) || (n.data = r.slice(0, -1) + " ", 0)))) ? U.some(e) : U.none()
})
},
ig = function (t) {
var e = At.fromDom(t.getBody());
t.selection.isCollapsed() && og(e, Hs.fromRangeStart(t.selection.getRng())).each(function (e) {
t.selection.setRng(e.toRange())
})
},
ag = function (e, t, n) {
var r, o, i, a, u, s, c, l;
0 !== n && (r = At.fromDom(e), o = _r(r, eo).getOr(r), i = e.data.slice(t, t + n), a = t + n >= e.data.length && Zp(o, $s(e, e.data.length)), u = 0 === t && Qp(o, $s(e, 0)), e.replaceData(t, n, (c = u, l = a, X(s = i, function (e, t) {
return Zl(t) || Ql(t) ? e.previousCharIsSpace || "" === e.str && c || e.str.length === s.length - 1 && l ? {
previousCharIsSpace: !1,
str: e.str + lo
} : {
previousCharIsSpace: !0,
str: e.str + " "
} : {
previousCharIsSpace: !1,
str: e.str + t
}
}, {
previousCharIsSpace: !1,
str: ""
}).str)))
},
ug = function (e, t) {
var n = e.data.slice(t),
r = n.length - We(n).length;
return ag(e, t, r)
},
sg = function (e, t) {
var n = e.data.slice(0, t),
r = n.length - Ke(n).length;
return ag(e, t - r, r)
},
cg = function (e, t, n, r) {
void 0 === r && (r = !0);
var o = Ke(e.data).length,
i = r ? e : t,
a = r ? t : e;
return r ? i.appendData(a.data) : i.insertData(0, a.data), pn(At.fromDom(a)), n && ug(i, o), i
},
lg = function (e, t) {
return r = e, o = (n = t).container(), i = n.offset(), !1 === $s.isTextPosition(n) && o === r.parentNode && i > $s.before(r).offset() ? $s(t.container(), t.offset() - 1) : t;
var n, r, o, i
},
fg = function (e) {
return Lo(e.previousSibling) ? U.some((t = e.previousSibling, In(t) ? $s(t, t.data.length) : $s.after(t))) : e.previousSibling ? Ul(e.previousSibling) : U.none();
var t
},
dg = function (e) {
return Lo(e.nextSibling) ? U.some((t = e.nextSibling, In(t) ? $s(t, 0) : $s.before(t))) : e.nextSibling ? Fl(e.nextSibling) : U.none();
var t
},
mg = function (r, o) {
return fg(o).orThunk(function () {
return dg(o)
}).orThunk(function () {
return e = r, t = o, n = $s.before(t.previousSibling ? t.previousSibling : t.parentNode), Ml(e, n).fold(function () {
return Il(e, $s.after(t))
}, U.some);
var e, t, n
})
},
pg = function (n, r) {
return dg(r).orThunk(function () {
return fg(r)
}).orThunk(function () {
return t = r, Il(e = n, $s.after(t)).fold(function () {
return Ml(e, $s.before(t))
}, U.some);
var e, t
})
},
gg = function (e, t, n) {
return (e ? pg : mg)(t, n).map(N(lg, n))
},
hg = function (t, n, e) {
e.fold(function () {
t.focus()
}, function (e) {
t.selection.setRng(e.toRange(), n)
})
},
vg = function (e, t) {
return t && he(e.schema.getBlockElements(), Lt(t))
},
yg = function (e) {
if ($o(e)) {
var t = At.fromHtml('<br data-mce-bogus="1">');
return mn(e), fn(e, t), U.some($s.before(t.dom))
}
return U.none()
},
bg = function (e, t, a) {
var n, r, o, i, u = Wt(e).filter(Ut),
s = Kt(e).filter(Ut);
return pn(e), r = s, o = t, i = function (e, t, n) {
var r = e.dom,
o = t.dom,
i = r.data.length;
return cg(r, o, a), n.container() === o ? $s(r, i) : n
}, ((n = u).isSome() && r.isSome() && o.isSome() ? U.some(i(n.getOrDie(), r.getOrDie(), o.getOrDie())) : U.none()).orThunk(function () {
return a && (u.each(function (e) {
return sg(e.dom, e.dom.length)
}), s.each(function (e) {
return ug(e.dom, 0)
})), t
})
},
Cg = function (t, n, e, r) {
void 0 === r && (r = !0);
var o, i, a = gg(n, t.getBody(), e.dom),
u = _r(e, N(vg, t), (o = t.getBody(), function (e) {
return e.dom === o
})),
s = bg(e, a, (i = e, he(t.schema.getTextInlineElements(), Lt(i))));
t.dom.isEmpty(t.getBody()) ? (t.setContent(""), t.selection.setCursorLocation()) : u.bind(yg).fold(function () {
r && hg(t, n, s)
}, function (e) {
r && hg(t, n, U.some(e))
})
},
wg = function (e, t) {
return {
start: e,
end: t
}
},
xg = Cr([{
removeTable: ["element"]
}, {
emptyCells: ["cells"]
}, {
deleteCellSelection: ["rng", "cell"]
}]),
Sg = function (e, t) {
return Or(At.fromDom(e), "td,th", t)
},
Ng = function (e, t) {
return Tr(e, "table", t)
},
Eg = function (e) {
return !Ot(e.start, e.end)
},
kg = function (e, t) {
return Ng(e.start, t).bind(function (r) {
return Ng(e.end, t).bind(function (e) {
return t = Ot(r, e), n = r, t ? U.some(n) : U.none();
var t, n
})
})
},
_g = function (e) {
return Gu(e, "td,th")
},
Ag = function (r, e) {
var t = Sg(e.startContainer, r),
n = Sg(e.endContainer, r);
return e.collapsed ? U.none() : ds(t, n, wg).fold(function () {
return t.fold(function () {
return n.bind(function (t) {
return Ng(t, r).bind(function (e) {
return ne(_g(e)).map(function (e) {
return wg(e, t)
})
})
})
}, function (t) {
return Ng(t, r).bind(function (e) {
return re(_g(e)).map(function (e) {
return wg(t, e)
})
})
})
}, function (e) {
return Rg(r, e) ? U.none() : (n = r, Ng((t = e).start, n).bind(function (e) {
return re(_g(e)).map(function (e) {
return wg(t.start, e)
})
}));
var t, n
})
},
Rg = function (e, t) {
return kg(t, e).isSome()
},
Tg = function (e, t, n) {
return e.filter(function (e) {
return Eg(e) && Rg(n, e)
}).orThunk(function () {
return Ag(n, t)
}).bind(function (e) {
return kg(t = e, n).map(function (e) {
return {
rng: t,
table: e,
cells: _g(e)
}
});
var t
})
},
Dg = function (e, t) {
return G(e, function (e) {
return Ot(e, t)
})
},
Og = function (e, r, o) {
return e.filter(function (e) {
return n = o, !Eg(t = e) && kg(t, n).exists(function (e) {
var t = e.dom.rows;
return 1 === t.length && 1 === t[0].cells.length
}) && jf(e.start, r);
var t, n
}).map(function (e) {
return e.start
})
},
Bg = function (n) {
return ds(Dg((r = n).cells, r.rng.start), Dg(r.cells, r.rng.end), function (e, t) {
return r.cells.slice(e, t + 1)
}).map(function (e) {
var t = n.cells;
return e.length === t.length ? xg.removeTable(n.table) : xg.emptyCells(e)
});
var r
},
Pg = function (e, t) {
var n, r, o, i, a, u = (n = e, function (e) {
return Ot(n, e)
}),
s = (o = u, i = Sg((r = t).startContainer, o), a = Sg(r.endContainer, o), ds(i, a, wg));
return Og(s, t, u).map(function (e) {
return xg.deleteCellSelection(t, e)
}).orThunk(function () {
return Tg(s, t, u).bind(Bg)
})
},
Lg = function (e) {
var t;
return (8 === It(t = e) || "#comment" === Lt(t) ? Wt : Zt)(e).bind(Lg).orThunk(function () {
return U.some(e)
})
},
Ig = function (e, t) {
return W(t, _p), e.selection.setCursorLocation(t[0].dom, 0), !0
},
Mg = function (e, t, n) {
t.deleteContents();
var r, o, i = Lg(n).getOr(n),
a = At.fromDom(e.dom.getParent(i.dom, e.dom.isBlock));
return $o(a) && (_p(a), e.selection.setCursorLocation(a.dom, 0)), Ot(n, a) || (r = $t(a).is(n) ? [] : $t(o = a).map(Gt).map(function (e) {
return H(e, function (e) {
return !Ot(o, e)
})
}).getOr([]), W(r.concat(Gt(n)), function (e) {
Ot(e, a) || Pt(e, a) || pn(e)
})), !0
},
Fg = function (e, t) {
return Cg(e, !1, t), !0
},
Ug = function (n, e, r, t) {
return jg(e, t).fold(function () {
return t = n, Pg(e, r).map(function (e) {
return e.fold(N(Fg, t), N(Ig, t), N(Mg, t))
});
var t
}, function (e) {
return Hg(n, e)
}).getOr(!1)
},
zg = function (e, t) {
return Y(Dp(t, e), uo)
},
jg = function (e, t) {
return Y(Dp(t, e), function (e) {
return "caption" === Lt(e)
})
},
Hg = function (e, t) {
return _p(t), e.selection.setCursorLocation(t.dom, 0), U.some(!0)
},
Vg = function (u, s, c, l, f) {
return Bl(c, u.getBody(), f).bind(function (e) {
return o = c, i = f, a = e, Fl((r = l).dom).bind(function (t) {
return Ul(r.dom).map(function (e) {
return o ? i.isEqual(t) && a.isEqual(e) : i.isEqual(e) && a.isEqual(t)
})
}).getOr(!0) ? Hg(u, l) : (t = l, n = e, jg(s, At.fromDom(n.getNode())).map(function (e) {
return !1 === Ot(e, t)
}));
var t, n, r, o, i, a
}).or(U.some(!0))
},
qg = function (o, i, a, e) {
var u = $s.fromRangeStart(o.selection.getRng());
return zg(a, e).bind(function (e) {
return $o(e) ? Hg(o, e) : (t = a, n = e, r = u, Bl(i, o.getBody(), r).bind(function (e) {
return zg(t, At.fromDom(e.getNode())).map(function (e) {
return !1 === Ot(e, n)
})
}));
var t, n, r
}).getOr(!1)
},
$g = function (e, t) {
return (e ? xp : Sp)(t)
},
Wg = function (a, u, r) {
var s = At.fromDom(a.getBody());
return jg(s, r).fold(function () {
return qg(a, u, s, r) || (e = a, t = u, n = $s.fromRangeStart(e.selection.getRng()), $g(t, n) || Ol(t, e.getBody(), n).exists(function (e) {
return $g(t, e)
}));
var e, t, n
}, function (e) {
return t = a, n = u, r = s, o = e, i = $s.fromRangeStart(t.selection.getRng()), ($o(o) ? Hg(t, o) : Vg(t, r, n, o, i)).getOr(!1);
var t, n, r, o, i
})
},
Kg = function (e, t) {
var n, r, o, i, a, u = At.fromDom(e.selection.getStart(!0)),
s = Ff(e);
return e.selection.isCollapsed() && 0 === s.length ? Wg(e, t, u) : (n = e, r = u, o = At.fromDom(n.getBody()), i = n.selection.getRng(), 0 !== (a = Ff(n)).length ? Ig(n, a) : Ug(n, o, i, r))
},
Xg = function (a) {
var u = $s.fromRangeStart(a),
s = $s.fromRangeEnd(a),
c = a.commonAncestorContainer;
return Ol(!1, c, s).map(function (e) {
return !ol(u, s, c) && ol(u, e, c) ? (t = u.container(), n = u.offset(), r = e.container(), o = e.offset(), (i = document.createRange()).setStart(t, n), i.setEnd(r, o), i) : a;
var t, n, r, o, i
}).getOr(a)
},
Yg = function (e) {
return e.collapsed ? e : Xg(e)
},
Gg = function (e, t) {
var n, r;
return e.getBlockElements()[t.name] && ((r = t).firstChild && r.firstChild === r.lastChild) && ("br" === (n = t.firstChild).name || n.value === lo)
},
Jg = function (e, t) {
var n, r, o, i = t.firstChild,
a = t.lastChild;
return i && "meta" === i.name && (i = i.next), a && "mce_marker" === a.attr("id") && (a = a.prev), r = a, o = (n = e).getNonEmptyElements(), r && (r.isEmpty(o) || Gg(n, r)) && (a = a.prev), !(!i || i !== a) && ("ul" === i.name || "ol" === i.name)
},
Qg = function (e) {
return e && e.firstChild && e.firstChild === e.lastChild && ((t = e.firstChild).data === lo || zn(t));
var t
},
Zg = function (e) {
return 0 < e.length && (!(t = e[e.length - 1]).firstChild || Qg(t)) ? e.slice(0, -1) : e;
var t
},
eh = function (e, t) {
var n = e.getParent(t, e.isBlock);
return n && "LI" === n.nodeName ? n : null
},
th = function (e, t) {
var n = $s.after(e),
r = _l(t).prev(n);
return r ? r.toRange() : null
},
nh = function (t, e, n) {
var r, o, i, a, u = t.parentNode;
return kt.each(e, function (e) {
u.insertBefore(e, t)
}), r = t, o = n, i = $s.before(r), (a = _l(o).next(i)) ? a.toRange() : null
},
rh = function (e, o, i, t) {
var n, r, a, u, s, c, l, f, d, m, p, g, h, v, y, b, C, w, x, S, N = (n = o, r = t, c = e.serialize(r), l = n.createFragment(c), u = (a = l).firstChild, s = a.lastChild, u && "META" === u.nodeName && u.parentNode.removeChild(u), s && "mce_marker" === s.id && s.parentNode.removeChild(s), a),
E = eh(o, i.startContainer),
k = Zg((f = N.firstChild, kt.grep(f.childNodes, function (e) {
return "LI" === e.nodeName
}))),
_ = o.getRoot(),
A = function (e) {
var t = $s.fromRangeStart(i),
n = _l(o.getRoot()),
r = 1 === e ? n.prev(t) : n.next(t);
return !r || eh(o, r.getNode()) !== E
};
return A(1) ? nh(E, k, _) : A(2) ? (d = E, m = k, p = _, o.insertAfter(m.reverse(), d), th(m[0], p)) : (h = k, v = _, y = g = E, C = (b = i).cloneRange(), w = b.cloneRange(), C.setStartBefore(y), w.setEndAfter(y), x = [C.cloneContents(), w.cloneContents()], (S = g.parentNode).insertBefore(x[0], g), kt.each(h, function (e) {
S.insertBefore(e, g)
}), S.insertBefore(x[1], g), S.removeChild(g), th(h[h.length - 1], v))
},
oh = qn,
ih = function (e) {
var t = e.dom,
n = Yg(e.selection.getRng());
e.selection.setRng(n);
var r, o, i, a = t.getParent(n.startContainer, oh);
r = t, o = n, null !== (i = a) && i === r.getParent(o.endContainer, oh) && jf(At.fromDom(i), o) ? Mg(e, n, At.fromDom(a)) : e.getDoc().execCommand("Delete", !1, null)
},
ah = function (e, t, n) {
var r, o, i, a, u, s, c, l, f, d = e.selection,
m = e.dom;
/^ | $/.test(t) && (s = m, c = d.getRng(), l = t, f = At.fromDom(s.getRoot()), l = Qp(f, $s.fromRangeStart(c)) ? l.replace(/^ /, " ") : l.replace(/^ /, " "), t = l = Zp(f, $s.fromRangeEnd(c)) ? l.replace(/( | )(<br( \/)>)?$/, " ") : l.replace(/ (<br( \/)?>)?$/, " "));
var p = e.parser,
g = n.merge,
h = Jm({
validate: e.getParam("validate")
}, e.schema),
v = '<span id="mce_marker" data-mce-type="bookmark"></span>',
y = {
content: t,
format: "html",
selection: !0,
paste: n.paste
};
if ((y = e.fire("BeforeSetContent", y)).isDefaultPrevented()) e.fire("SetContent", {
content: y.content,
format: "html",
selection: !0,
paste: n.paste
});
else {
-1 === (t = y.content).indexOf("{$caret}") && (t += "{$caret}"), t = t.replace(/\{\$caret\}/, v);
var b, C, w = (a = d.getRng()).startContainer || (a.parentElement ? a.parentElement() : null),
x = e.getBody();
w === x && d.isCollapsed() && m.isBlock(x.firstChild) && (b = e, (C = x.firstChild) && !b.schema.getShortEndedElements()[C.nodeName]) && m.isEmpty(x.firstChild) && ((a = m.createRng()).setStart(x.firstChild, 0), a.setEnd(x.firstChild, 0), d.setRng(a)), d.isCollapsed() || ih(e);
var S, N, E, k, _, A, R, T, D, O, B, P, L, I, M = {
context: (r = d.getNode()).nodeName.toLowerCase(),
data: n.data,
insert: !0
},
F = p.parse(t, M);
if (!0 === n.paste && Jg(e.schema, F) && eh(m, r)) return a = rh(h, m, d.getRng(), F), d.setRng(a), void e.fire("SetContent", y);
if (! function (e) {
for (var t = e; t = t.walk();) 1 === t.type && t.attr("data-mce-fragment", "1")
}(F), "mce_marker" === (u = F.lastChild).attr("id"))
for (u = (i = u).prev; u; u = u.walk(!0))
if (3 === u.type || !m.isBlock(u.name)) {
e.schema.isValidChild(u.parent.name, "span") && u.parent.insert(i, u, "br" === u.name);
break
} if (e._selectionOverrides.showBlockCaretContainer(r), M.invalid) {
for (e.selection.setContent(v), r = d.getNode(), o = e.getBody(), 9 === r.nodeType ? r = u = o : u = r; u !== o;) u = (r = u).parentNode;
t = r === o ? o.innerHTML : m.getOuterHTML(r), t = h.serialize(p.parse(t.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i, function () {
return h.serialize(F)
}))), r === o ? m.setHTML(o, t) : m.setOuterHTML(r, t)
} else t = h.serialize(F), S = e, N = t, "all" === (E = r).getAttribute("data-mce-bogus") ? E.parentNode.insertBefore(S.dom.createFragment(N), E) : (k = E.firstChild, _ = E.lastChild, !k || k === _ && "BR" === k.nodeName ? S.dom.setHTML(E, N) : S.selection.setContent(N));
R = g, O = (A = e).schema.getTextInlineElements(), B = A.dom, R && (T = A.getBody(), D = new lp(B), kt.each(B.select("*[data-mce-fragment]"), function (e) {
for (var t = e.parentNode; t && t !== T; t = t.parentNode) O[e.nodeName.toLowerCase()] && D.compare(t, e) && B.remove(e, !0)
})),
function (n, e) {
var t, r, o = n.dom,
i = n.selection;
if (e) {
i.scrollIntoView(e);
var a = function (e) {
for (var t = n.getBody(); e && e !== t; e = e.parentNode)
if ("false" === o.getContentEditable(e)) return e;
return null
}(e);
if (a) return o.remove(e), i.select(a);
var u = o.createRng(),
s = e.previousSibling;
s && 3 === s.nodeType ? (u.setStart(s, s.nodeValue.length), wt.ie || (r = e.nextSibling) && 3 === r.nodeType && (s.appendData(r.data), r.parentNode.removeChild(r))) : (u.setStartBefore(e), u.setEndBefore(e));
var c = o.getParent(e, o.isBlock);
o.remove(e), c && o.isEmpty(c) && (n.$(c).empty(), u.setStart(c, 0), u.setEnd(c, 0), oh(c) || c.getAttribute("data-mce-fragment") || !(t = function (e) {
var t = $s.fromRangeStart(e);
if (t = _l(n.getBody()).next(t)) return t.toRange()
}(u)) ? o.add(c, o.create("br", {
"data-mce-bogus": "1"
})) : (u = t, o.remove(c))), i.setRng(u)
}
}(e, m.get("mce_marker")), P = e.getBody(), kt.each(P.getElementsByTagName("*"), function (e) {
e.removeAttribute("data-mce-fragment")
}), L = m, I = d.getStart(), U.from(L.getParent(I, "td,th")).map(At.fromDom).each(Ap), e.fire("SetContent", y), e.addVisual()
}
},
uh = function (e, t) {
t(e), e.firstChild && uh(e.firstChild, t), e.next && uh(e.next, t)
},
sh = function (e, t, n) {
var r = function (e, n, t) {
var r = {},
o = {},
i = [];
for (var a in t.firstChild && uh(t.firstChild, function (t) {
W(e, function (e) {
e.name === t.name && (r[e.name] ? r[e.name].nodes.push(t) : r[e.name] = {
filter: e,
nodes: [t]
})
}), W(n, function (e) {
"string" == typeof t.attr(e.name) && (o[e.name] ? o[e.name].nodes.push(t) : o[e.name] = {
filter: e,
nodes: [t]
})
})
}), r) r.hasOwnProperty(a) && i.push(r[a]);
for (var u in o) o.hasOwnProperty(u) && i.push(o[u]);
return i
}(e, t, n);
W(r, function (t) {
W(t.filter.callbacks, function (e) {
e(t.nodes, t.filter.name, {})
})
})
},
ch = function (e) {
return e instanceof Km
},
lh = function (e, t) {
var r;
e.dom.setHTML(e.getBody(), t), Em(r = e) && Fl(r.getBody()).each(function (e) {
var t = e.getNode(),
n = Bn(t) ? Fl(t).getOr(e) : e;
r.selection.setRng(n.toRange())
})
},
fh = function (u, s, c) {
return c.format = c.format ? c.format : "html", c.set = !0, c.content = ch(s) ? "" : s, c.no_events || u.fire("BeforeSetContent", c), ch(s) || (s = c.content), U.from(u.getBody()).fold(E(s), function (e) {
return ch(s) ? function (e, t, n, r) {
sh(e.parser.getNodeFilters(), e.parser.getAttributeFilters(), n);
var o = Jm({
validate: e.validate
}, e.schema).serialize(n);
return r.content = so(At.fromDom(t)) ? o : kt.trim(o), lh(e, r.content), r.no_events || e.fire("SetContent", r), n
}(u, e, s, c) : (t = u, n = e, o = c, 0 === (r = s).length || /^\s+$/.test(r) ? (a = '<br data-mce-bogus="1">', "TABLE" === n.nodeName ? r = "<tr><td>" + a + "</td></tr>" : /^(UL|OL)$/.test(n.nodeName) && (r = "<li>" + a + "</li>"), r = (i = vc(t)) && t.schema.isValidChild(n.nodeName.toLowerCase(), i.toLowerCase()) ? (r = a, t.dom.createHTML(i, yc(t), r)) : r || '<br data-mce-bogus="1">', lh(t, r), t.fire("SetContent", o)) : ("raw" !== o.format && (r = Jm({
validate: t.validate
}, t.schema).serialize(t.parser.parse(r, {
isRootContent: !0,
insert: !0
}))), o.content = so(At.fromDom(n)) ? r : kt.trim(r), lh(t, o.content), o.no_events || t.fire("SetContent", o)), o.content);
var t, n, r, o, i, a
})
},
dh = function (e, t) {
return r = t, ((o = (n = e).dom).parentNode ? Rr(At.fromDom(o.parentNode), function (e) {
return !Ot(n, e) && r(e)
}) : U.none()).isSome();
var n, r, o
},
mh = fo,
ph = "_mce_caret",
gh = function (e) {
return 0 < function (e) {
for (var t = []; e;) {
if (3 === e.nodeType && e.nodeValue !== mh || 1 < e.childNodes.length) return [];
1 === e.nodeType && t.push(e), e = e.firstChild
}
return t
}(e).length
},
hh = function (e) {
if (e) {
var t = new Xr(e, e);
for (e = t.current(); e; e = t.next())
if (In(e)) return e
}
return null
},
vh = function (e) {
var t = At.fromTag("span");
return Yn(t, {
id: ph,
"data-mce-bogus": "1",
"data-mce-type": "format-caret"
}), e && fn(t, At.fromText(mh)), t
},
yh = function (e, t, n) {
void 0 === n && (n = !0);
var r, o, i, a, u, s, c, l, f = e.dom,
d = e.selection;
gh(t) ? Cg(e, !1, At.fromDom(t), n) : (r = d.getRng(), o = f.getParent(t, f.isBlock), i = r.startContainer, a = r.startOffset, u = r.endContainer, s = r.endOffset, (l = hh(t)) && l.nodeValue.charAt(0) === mh && l.deleteData(0, 1), c = l, f.remove(t, !0), i === c && 0 < a && r.setStart(c, a - 1), u === c && 0 < s && r.setEnd(c, s - 1), o && f.isEmpty(o) && _p(At.fromDom(o)), d.setRng(r))
},
bh = function (e, t, n) {
void 0 === n && (n = !0);
var r = e.dom,
o = e.selection;
if (t) yh(e, t, n);
else if (!(t = Hl(e.getBody(), o.getStart())))
for (; t = r.get(ph);) yh(e, t, !1)
},
Ch = function (e, t) {
return e.appendChild(t), t
},
wh = function (e, t) {
var n = K(e, function (e, t) {
return Ch(e, t.cloneNode(!1))
}, t);
return Ch(n, n.ownerDocument.createTextNode(mh))
},
xh = function (e, t, n, r) {
var o, i, a, u, s, c, l, f, d, m, p, g, h, v = e.dom,
y = e.selection,
b = [],
C = y.getRng(),
w = C.startContainer,
x = C.startOffset,
S = w;
for (3 === w.nodeType && (x !== w.nodeValue.length && (o = !0), S = S.parentNode); S;) {
if (zm(e, S, t, n, r)) {
i = S;
break
}
S.nextSibling && (o = !0), b.push(S), S = S.parentNode
}
i && (o ? (a = y.getBookmark(), C.collapse(!0), u = Of(e, C, e.formatter.get(t), !0), u = Cd(u), e.formatter.remove(t, n, u, r), y.moveToBookmark(a)) : (s = Hl(e.getBody(), i), c = vh(!1).dom, m = c, p = null !== s ? s : i, g = (d = e).dom, (h = g.getParent(p, N( of , d))) && g.isEmpty(h) ? p.parentNode.replaceChild(m, p) : (kp(At.fromDom(p)), g.isEmpty(p) ? p.parentNode.replaceChild(m, p) : g.insertAfter(m, p)), l = function (t, e, n, r, o, i) {
var a = t.formatter,
u = t.dom,
s = H(ie(a.get()), function (e) {
return e !== r && !He(e, "removeformat")
}),
c = Vm(t, n, s);
if (0 < H(c, function (e) {
return !pf(t, e, r)
}).length) {
var l = n.cloneNode(!1);
return u.add(e, l), a.remove(r, o, l, i), u.remove(l), U.some(l)
}
return U.none()
}(e, c, i, t, n, r), f = wh(b.concat(l.toArray()), c), yh(e, s, !1), y.setCursorLocation(f, 1), v.isEmpty(i) && v.remove(i)))
},
Sh = function (i) {
i.on("mouseup keydown", function (e) {
var t, n, r, o;
t = i, n = e.keyCode, r = t.selection, o = t.getBody(), bh(t, null, !1), 8 !== n && 46 !== n || !r.isCollapsed() || r.getStart().innerHTML !== mh || bh(t, Hl(o, r.getStart())), 37 !== n && 39 !== n || bh(t, Hl(o, r.getStart()))
})
},
Nh = function (e, t) {
return e.schema.getTextInlineElements().hasOwnProperty(Lt(t)) && !jl(t.dom) && !On(t.dom)
},
Eh = {},
kh = we,
_h = be;
op = function (e) {
var t, n = e.selection.getRng(),
r = Rn(["pre"]);
n.collapsed || (t = e.selection.getSelectedBlocks(), _h(kh(kh(t, r), function (e) {
return r(e.previousSibling) && -1 !== xe(t, e.previousSibling)
}), function (e) {
var t, n;
t = e.previousSibling, hu(n = e).remove(), hu(t).append("<br><br>").append(n.childNodes)
}))
}, Eh[rp = "pre"] || (Eh[rp] = []), Eh[rp].push(op);
var Ah = kt.each,
Rh = function (e) {
return An(e) && !Jl(e) && !jl(e) && !On(e)
},
Th = function (e, t) {
for (var n = e; n; n = n[t]) {
if (In(n) && 0 !== n.nodeValue.length) return e;
if (An(n) && !Jl(n)) return n
}
return e
},
Dh = function (e, t, n) {
var r, o, i = new lp(e);
if (t && n && (t = Th(t, "previousSibling"), n = Th(n, "nextSibling"), i.compare(t, n))) {
for (r = t.nextSibling; r && r !== n;) r = (o = r).nextSibling, t.appendChild(o);
return e.remove(n), kt.each(kt.grep(n.childNodes), function (e) {
t.appendChild(e)
}), t
}
return n
},
Oh = function (e, t, n, r) {
var o;
r && !1 !== t.merge_siblings && (o = Dh(e, rf(r), r), Dh(e, o, rf(o, !0)))
},
Bh = function (e, t, n) {
Ah(e.childNodes, function (e) {
Rh(e) && (t(e) && n(e), e.hasChildNodes() && Bh(e, t, n))
})
},
Ph = function (t, n) {
return function (e) {
return !(!e || !ff(t, e, n))
}
},
Lh = function (r, o, i) {
return function (e) {
var t, n;
r.setStyle(e, o, i), "" === e.getAttribute("style") && e.removeAttribute("style"), t = r, "SPAN" === (n = e).nodeName && 0 === t.getAttribs(n).length && t.remove(n, !0)
}
},
Ih = Cr([{
keep: []
}, {
rename: ["name"]
}, {
removed: []
}]),
Mh = /^(src|href|style)$/,
Fh = kt.each,
Uh = cf,
zh = function (e, t, n) {
return e.isChildOf(t, n) && t !== n && !e.isBlock(n)
},
jh = function (e, t, n) {
var r, o = t[n ? "startContainer" : "endContainer"],
i = t[n ? "startOffset" : "endOffset"];
return An(o) && (r = o.childNodes.length - 1, !n && i && i--, o = o.childNodes[r < i ? r : i]), In(o) && n && i >= o.nodeValue.length && (o = new Xr(o, e.getBody()).next() || o), In(o) && !n && 0 === i && (o = new Xr(o, e.getBody()).prev() || o), o
},
Hh = function (e, t) {
var n = t ? "firstChild" : "lastChild";
if (/^(TR|TH|TD)$/.test(e.nodeName) && e[n]) {
var r = e[n];
return "TR" === e.nodeName && r[n] || r
}
return e
},
Vh = function (e, t, n, r) {
var o = e.create(n, r);
return t.parentNode.insertBefore(o, t), o.appendChild(t), o
},
qh = function (e, t, n, r, o) {
var i = At.fromDom(t),
a = At.fromDom(e.create(r, o)),
u = (n ? Yt : Xt)(i);
return dn(a, u), n ? (sn(i, a), ln(a, i)) : (cn(i, a), fn(a, i)), a.dom
},
$h = function (e, t, n, r) {
return !(t = rf(t, n, r)) || "BR" === t.nodeName || e.isBlock(t)
},
Wh = function (e, r, o, t, i) {
var n, a, u, s, c, l = e.dom;
if (u = l, !(Uh(s = t, (c = r).inline) || Uh(s, c.block) || c.selector && (An(s) && u.is(s, c.selector)) || (a = t, r.links && "A" === a.nodeName))) return Ih.keep();
var f, d, m, p, g, h, v, y = t;
if (r.inline && "all" === r.remove && S(r.preserve_attributes)) {
var b = H(l.getAttribs(y), function (e) {
return M(r.preserve_attributes, e.name.toLowerCase())
});
if (l.removeAllAttribs(y), W(b, function (e) {
return l.setAttrib(y, e.name, e.value)
}), 0 < b.length) return Ih.rename("span")
}
if ("all" !== r.remove) {
Fh(r.styles, function (e, t) {
e = lf(l, sf(e, o), t + ""), O(t) && (t = e, i = null), !r.remove_similar && i && !Uh(ff(l, i, t), e) || l.setStyle(y, t, ""), n = !0
}), n && "" === l.getAttrib(y, "style") && (y.removeAttribute("style"), y.removeAttribute("data-mce-style")), Fh(r.attributes, function (e, t) {
var n;
if (e = sf(e, o), O(t) && (t = e, i = null), r.remove_similar || !i || Uh(l.getAttrib(i, t), e)) {
if ("class" === t && (e = l.getAttrib(y, t)) && (n = "", W(e.split(/\s+/), function (e) {
/mce\-\w+/.test(e) && (n += (n ? " " : "") + e)
}), n)) return void l.setAttrib(y, t, n);
"class" === t && y.removeAttribute("className"), Mh.test(t) && y.removeAttribute("data-mce-" + t), y.removeAttribute(t)
}
}), Fh(r.classes, function (e) {
e = sf(e, o), i && !l.hasClass(i, e) || l.removeClass(y, e)
});
for (var C = l.getAttribs(y), w = 0; w < C.length; w++) {
var x = C[w].nodeName;
if (0 !== x.indexOf("_") && 0 !== x.indexOf("data-")) return Ih.keep()
}
}
return "none" !== r.remove ? (f = e, m = r, g = (d = y).parentNode, h = f.dom, v = vc(f), m.block && (v ? g === h.getRoot() && (m.list_block && Uh(d, m.list_block) || W(oe(d.childNodes), function (e) {
af(f, v, e.nodeName.toLowerCase()) ? p ? p.appendChild(e) : (p = Vh(h, e, v), h.setAttribs(p, f.settings.forced_root_block_attrs)) : p = 0
})) : h.isBlock(d) && !h.isBlock(g) && ($h(h, d, !1) || $h(h, d.firstChild, !0, !0) || d.insertBefore(h.create("br"), d.firstChild), $h(h, d, !0) || $h(h, d.lastChild, !1, !0) || d.appendChild(h.create("br")))), m.selector && m.inline && !Uh(m.inline, d) || h.remove(d, !0), Ih.removed()) : Ih.keep()
},
Kh = function (t, e, n, r, o) {
return Wh(t, e, n, r, o).fold(C, function (e) {
return t.dom.rename(r, e), !0
}, k)
},
Xh = function (e, t, n, r, o, i, a, u) {
var s, c, l, f = e.dom;
if (n) {
for (var d = n.parentNode, m = r.parentNode; m && m !== d; m = m.parentNode) {
s = f.clone(m, !1);
for (var p = 0; p < t.length && null !== (s = function (t, e, n, r) {
return Wh(t, e, n, r, r).fold(E(r), function (e) {
return t.dom.createFragment().appendChild(r), t.dom.rename(r, e)
}, E(null))
}(e, t[p], u, s)); p++);
s && (c && s.appendChild(c), l = l || s, c = s)
}!i || a.mixed && f.isBlock(n) || (r = f.split(n, r)), c && (o.parentNode.insertBefore(c, o), l.appendChild(o), a.inline && Oh(f, a, 0, c))
}
return r
},
Yh = function (s, c, l, e, f) {
var t, d = s.formatter.get(c),
m = d[0],
i = !0,
a = s.dom,
n = s.selection,
u = function (e) {
var n, t, r, o, i, a, u = (t = e, r = c, o = l, i = f, W(mf((n = s).dom, t.parentNode).reverse(), function (e) {
var t;
a || "_start" === e.id || "_end" === e.id || (t = zm(n, e, r, o, i)) && !1 !== t.split && (a = e)
}), a);
return Xh(s, d, u, e, e, !0, m, l)
},
p = function (e) {
var t, n;
An(e) && a.getContentEditable(e) && (t = i, i = "true" === a.getContentEditable(e), n = !0);
var r = oe(e.childNodes);
if (i && !n)
for (var o = 0; o < d.length && !Kh(s, d[o], l, e, e); o++);
if (m.deep && r.length) {
for (o = 0; o < r.length; o++) p(r[o]);
n && (i = t)
}
},
g = function (e) {
var t, n = a.get(e ? "_start" : "_end"),
r = n[e ? "firstChild" : "lastChild"];
return Jl(t = r) && An(t) && ("_start" === t.id || "_end" === t.id) && (r = r[e ? "firstChild" : "lastChild"]), In(r) && 0 === r.data.length && (r = e ? n.previousSibling || n.nextSibling : n.nextSibling || n.previousSibling), a.remove(n, !0), r
},
r = function (e) {
var t, n, r = Of(s, e, d, e.collapsed);
if (m.split) {
if (r = Cd(r), (t = jh(s, r, !0)) !== (n = jh(s, r))) {
if (t = Hh(t, !0), n = Hh(n, !1), zh(a, t, n)) {
var o = U.from(t.firstChild).getOr(t);
return u(qh(a, o, !0, "span", {
id: "_start",
"data-mce-type": "bookmark"
})), void g(!0)
}
if (zh(a, n, t)) {
o = U.from(n.lastChild).getOr(n);
return u(qh(a, o, !1, "span", {
id: "_end",
"data-mce-type": "bookmark"
})), void g(!1)
}
t = Vh(a, t, "span", {
id: "_start",
"data-mce-type": "bookmark"
}), n = Vh(a, n, "span", {
id: "_end",
"data-mce-type": "bookmark"
});
var i = a.createRng();
i.setStartAfter(t), i.setEndBefore(n), Pf(a, i, function (e) {
W(e, function (e) {
Jl(e) || Jl(e.parentNode) || u(e)
})
}), u(t), u(n), t = g(!0), n = g()
} else t = n = u(t);
r.startContainer = t.parentNode ? t.parentNode : t, r.startOffset = a.nodeIndex(t), r.endContainer = n.parentNode ? n.parentNode : n, r.endOffset = a.nodeIndex(n) + 1
}
Pf(a, r, function (e) {
W(e, function (t) {
p(t);
W(["underline", "line-through", "overline"], function (e) {
An(t) && s.dom.getStyle(t, "text-decoration") === e && t.parentNode && df(a, t.parentNode) === e && Kh(s, {
deep: !1,
exact: !0,
inline: "span",
styles: {
textDecoration: e
}
}, null, t)
})
})
})
};
if (e) tf(e) ? ((t = a.createRng()).setStartBefore(e), t.setEndAfter(e), r(t)) : r(e);
else if ("false" !== a.getContentEditable(n.getNode())) n.isCollapsed() && m.inline && !Ff(s).length ? xh(s, c, l, f) : ($f(n, !0, function () {
qf(s, r)
}), m.inline && jm(s, c, l, n.getStart()) && nf(a, n, n.getRng()), s.nodeChanged());
else {
e = n.getNode();
for (var o = 0; o < d.length && (!d[o].ceFalseOverride || !Kh(s, d[o], l, e, e)); o++);
}
},
Gh = kt.each,
Jh = function (i, e, a, u) {
Gh(e, function (t) {
var r, e, n, o;
Gh(i.dom.select(t.inline, u), function (e) {
Rh(e) && Kh(i, t, a, e, t.exact ? e : null)
}), r = i.dom, n = u, (e = t).clear_child_styles && (o = e.links ? "*:not(a)" : "*", Ah(r.select(o, n), function (n) {
Rh(n) && Ah(e.styles, function (e, t) {
r.setStyle(n, t, "")
})
}))
})
},
Qh = kt.each,
Zh = ve,
ev = function (E, k, _, r) {
var e, t, n, o, A = E.formatter.get(k),
R = A[0],
i = !r && E.selection.isCollapsed(),
a = E.dom,
u = E.selection,
T = function (n, e) {
var t;
e = e || R, n && (e.onformat && e.onformat(n, e, _, r), Qh(e.styles, function (e, t) {
a.setStyle(n, t, sf(e, _))
}), !e.styles || (t = a.getAttrib(n, "style")) && a.setAttrib(n, "data-mce-style", t), Qh(e.attributes, function (e, t) {
a.setAttrib(n, t, sf(e, _))
}), Qh(e.classes, function (e) {
e = sf(e, _), a.hasClass(n, e) || a.addClass(n, e)
}))
},
m = function (e, t) {
var n = !1;
return !!hf(R) && (Qh(e, function (e) {
if (!("collapsed" in e && e.collapsed !== i)) return a.is(t, e.selector) && !jl(t) ? (T(t, e), !(n = !0)) : void 0
}), n)
},
s = function (S, e, t, c) {
var N = [],
l = !0,
f = R.inline || R.block,
d = S.create(f);
T(d), Pf(S, e, function (e) {
var u, s = function (e) {
var t = !1,
n = l,
r = e.nodeName.toLowerCase(),
o = e.parentNode.nodeName.toLowerCase();
if (An(e) && S.getContentEditable(e) && (n = l, l = "true" === S.getContentEditable(e), t = !0), zn(e) && ! function (e, t, n, r) {
if (e.getParam("format_empty_lines", !1, "boolean") && vf(t)) {
var o = ke(ke({}, e.schema.getTextBlockElements()), {
td: {},
th: {},
li: {},
dt: {},
dd: {},
figcaption: {},
caption: {},
details: {},
summary: {}
}),
i = dh(At.fromDom(n), function (e) {
return jl(e.dom)
});
return ve(o, r) && $o(At.fromDom(n.parentNode), !1) && !i
}
return !1
}(E, R, e, o)) return u = null, void(gf(R) && S.remove(e));
if (R.wrapper && zm(E, e, k, _)) u = null;
else {
if (l && !t && gf(R) && !R.wrapper && of (E, r) && af(E, o, f)) {
var i = S.rename(e, f);
return T(i), N.push(i), void(u = null)
}
if (hf(R)) {
var a = m(A, e);
if (!Zh(R, "inline") || a) return void(u = null)
}!l || t || !af(E, f, r) || !af(E, o, f) || !c && 3 === e.nodeType && 1 === e.nodeValue.length && 65279 === e.nodeValue.charCodeAt(0) || jl(e) || Zh(R, "inline") && S.isBlock(e) ? (u = null, Qh(kt.grep(e.childNodes), s), t && (l = n), u = null) : (u || (u = S.clone(d, !1), e.parentNode.insertBefore(u, e), N.push(u)), u.appendChild(e))
}
};
Qh(e, s)
}), !0 === R.links && Qh(N, function (e) {
var t = function (e) {
"A" === e.nodeName && T(e, R), Qh(kt.grep(e.childNodes), t)
};
t(e)
}), Qh(N, function (e) {
var n, t, r, o, i, a, u, s, c, l, f, d, m, p, g, h, v, y, b, C, w = function (e) {
var n = !1;
return Qh(e.childNodes, function (e) {
if ((t = e) && 1 === t.nodeType && !Jl(t) && !jl(t) && !On(t)) return n = e, !1;
var t
}), n
},
x = (n = 0, Qh(e.childNodes, function (e) {
var t;
D(t = e) && In(t) && 0 === t.length || Jl(e) || n++
}), n);
!(1 < N.length) && S.isBlock(e) || 0 !== x ? (vf(R) || R.wrapper) && (R.exact || 1 !== x || ((C = w(y = e)) && !Jl(C) && Fm(S, C, R) && (b = S.clone(C, !1), T(b), S.replace(b, y, !0), S.remove(C, !0)), e = b || y), Jh(E, A, _, e), p = R, g = k, h = _, zm(m = E, (v = e).parentNode, g, h) && Kh(m, p, h, v) || p.merge_with_parents && m.dom.getParent(v.parentNode, function (e) {
if (zm(m, e, g, h)) return Kh(m, p, h, v), !0
}), c = S, f = _, d = e, (l = R).styles && l.styles.backgroundColor && Bh(d, Ph(c, "fontSize"), Lh(c, "backgroundColor", sf(l.styles.backgroundColor, f))), i = S, u = e, s = function (e) {
var t;
1 === e.nodeType && e.parentNode && 1 === e.parentNode.nodeType && (t = df(i, e.parentNode), i.getStyle(e, "color") && t ? i.setStyle(e, "text-decoration", t) : i.getStyle(e, "text-decoration") === t && i.setStyle(e, "text-decoration", null))
}, (a = R).styles && (a.styles.color || a.styles.textDecoration) && (kt.walk(u, s, "childNodes"), s(u)), t = S, o = e, "sub" !== (r = R).inline && "sup" !== r.inline || (Bh(o, Ph(t, "fontSize"), Lh(t, "fontSize", "")), t.remove(t.select("sup" === r.inline ? "sub" : "sup", o), !0)), Oh(S, R, 0, e)) : S.remove(e, !0)
})
};
if ("false" !== a.getContentEditable(u.getNode())) {
R && (r ? tf(r) ? m(A, r) || ((e = a.createRng()).setStartBefore(r), e.setEndAfter(r), s(a, Of(E, e, A), 0, !0)) : s(a, r, 0, !0) : i && vf(R) && !Ff(E).length ? function (e, t, n) {
var r, o = e.selection,
i = o.getRng(),
a = i.startOffset,
u = i.startContainer.nodeValue,
s = Hl(e.getBody(), o.getStart());
s && (r = hh(s));
var c, l, f, d, m = /[^\s\u00a0\u00ad\u200b\ufeff]/;
u && 0 < a && a < u.length && m.test(u.charAt(a)) && m.test(u.charAt(a - 1)) ? (c = o.getBookmark(), i.collapse(!0), l = Of(e, i, e.formatter.get(t)), l = Cd(l), e.formatter.apply(t, n, l), o.moveToBookmark(c)) : (s && r.nodeValue === mh || (f = e.getDoc(), d = vh(!0).dom, r = (s = f.importNode(d, !0)).firstChild, i.insertNode(s), a = 1), e.formatter.apply(t, n, s), o.setCursorLocation(r, a))
}(E, k, _) : (t = u.getNode(), n = A[0], E.settings.forced_root_block || !n.defaultBlock || a.getParent(t, a.isBlock) || ev(E, n.defaultBlock), u.setRng(Yg(u.getRng())), $f(u, !0, function (e) {
qf(E, function (e, t) {
var n = t ? e : Of(E, e, A);
s(a, n)
})
}), nf(a, u, u.getRng()), E.nodeChanged()), o = E, _h(Eh[k], function (e) {
e(o)
}))
} else {
r = u.getNode();
for (var c = 0, l = A.length; c < l; c++) {
var f = A[c];
if (f.ceFalseOverride && hf(f) && a.is(r, f.selector)) return void T(r, f)
}
}
},
tv = function (r, e, t, n) {
var o = ie(t.get()),
i = {},
a = {},
u = H(mf(r.dom, e), function (e) {
return 1 === e.nodeType && !e.getAttribute("data-mce-bogus")
});
ue(n, function (e, n) {
kt.each(u, function (t) {
return r.formatter.matchNode(t, n, {}, e.similar) ? (-1 === o.indexOf(n) && (W(e.callbacks, function (e) {
e(!0, {
node: t,
format: n,
parents: u
})
}), i[n] = e.callbacks), a[n] = e.callbacks, !1) : !Im(r, t, n) && void 0
})
});
var s = nv(t.get(), a, e, u);
t.set(ke(ke({}, i), s))
},
nv = function (e, n, r, o) {
return de(e, function (e, t) {
return !!he(n, t) || (W(e, function (e) {
e(!1, {
node: r,
format: t,
parents: o
})
}), !1)
}).t
},
rv = function (e, o, i, a, t) {
var n, r, u, s, c, l, f, d;
return null === o.get() && (r = e, u = Ou({}), (n = o).set({}), r.on("NodeChange", function (e) {
tv(r, e.element, u, n.get())
})), c = i, l = a, f = t, d = (s = o).get(), W(c.split(","), function (e) {
d[e] || (d[e] = {
similar: f,
callbacks: []
}), d[e].callbacks.push(l)
}), s.set(d), {
unbind: function () {
return t = i, n = a, r = (e = o).get(), W(t.split(","), function (e) {
r[e].callbacks = H(r[e].callbacks, function (e) {
return e !== n
}), 0 === r[e].callbacks.length && delete r[e]
}), void e.set(r);
var e, t, n, r
}
}
},
ov = function (e, t) {
var n = (t || document).createDocumentFragment();
return W(e, function (e) {
n.appendChild(e.dom)
}), At.fromDom(n)
},
iv = function (e, t, n) {
return {
element: e,
width: t,
rows: n
}
},
av = function (e, t) {
return {
element: e,
cells: t
}
},
uv = function (e, t) {
var n = parseInt(Gn(e, t), 10);
return isNaN(n) ? 1 : n
},
sv = function (e) {
return X(e, function (e, t) {
return t.cells.length > e ? t.cells.length : e
}, 0)
},
cv = function (e, t) {
for (var n = e.rows, r = 0; r < n.length; r++)
for (var o = n[r].cells, i = 0; i < o.length; i++)
if (Ot(o[i], t)) return U.some({
x: i,
y: r
});
return U.none()
},
lv = function (e, t, n, r, o) {
for (var i = [], a = e.rows, u = n; u <= o; u++) {
var s = a[u].cells,
c = t < r ? s.slice(t, r + 1) : s.slice(r, t + 1);
i.push(av(a[u].element, c))
}
return i
},
fv = function (e) {
var o = iv(ss(e), 0, []);
return W(Gu(e, "tr"), function (n, r) {
W(Gu(n, "td,th"), function (e, t) {
! function (e, t, n, r, o) {
for (var i = uv(o, "rowspan"), a = uv(o, "colspan"), u = e.rows, s = n; s < n + i; s++) {
u[s] || (u[s] = av(cs(r), []));
for (var c = t; c < t + a; c++) {
u[s].cells[c] = s === n && c === t ? o : ss(o)
}
}
}(o, function (e, t, n) {
for (; r = t, o = n, ((i = e.rows)[o] ? i[o].cells : [])[r];) t++;
var r, o, i;
return t
}(o, t, r), r, n, e)
})
}), iv(o.element, sv(o.rows), o.rows)
},
dv = function (e) {
return n = z((t = e).rows, function (e) {
var t = z(e.cells, function (e) {
var t = cs(e);
return Qn(t, "colspan"), Qn(t, "rowspan"), t
}),
n = ss(e.element);
return dn(n, t), n
}), r = ss(t.element), o = At.fromTag("tbody"), dn(o, n), fn(r, o), r;
var t, n, r, o
},
mv = function (l, e, t) {
return cv(l, e).bind(function (c) {
return cv(l, t).map(function (e) {
return t = l, r = e, o = (n = c).x, i = n.y, a = r.x, u = r.y, s = i < u ? lv(t, o, i, a, u) : lv(t, o, u, a, i), iv(t.element, sv(s), s);
var t, n, r, o, i, a, u, s
})
})
},
pv = function (t, n) {
return Y(t, function (e) {
return "li" === Lt(e) && jf(e, n)
}).fold(E([]), function (e) {
return Y(t, function (e) {
return "ul" === Lt(e) || "ol" === Lt(e)
}).map(function (e) {
var t = At.fromTag(Lt(e)),
n = me(rr(e), function (e, t) {
return Ve(t, "list-style")
});
return Zn(t, n), [At.fromTag("li"), t]
}).getOr([])
})
},
gv = function (e, t) {
var n, r = At.fromDom(t.commonAncestorContainer),
o = Dp(r, e),
i = H(o, function (e) {
return to(e) || Zr(e)
}),
a = pv(o, t),
u = i.concat(a.length ? a : io(n = r) ? $t(n).filter(oo).fold(E([]), function (e) {
return [n, e]
}) : oo(n) ? [n] : []);
return z(u, ss)
},
hv = function () {
return ov([])
},
vv = function (e, t) {
return n = At.fromDom(t.cloneContents()), r = gv(e, t), o = X(r, function (e, t) {
return fn(t, e), t
}, n), 0 < r.length ? ov([o]) : o;
var n, r, o
},
yv = function (e, o) {
return t = e, n = o[0], Tr(n, "table", N(Ot, t)).bind(function (e) {
var t = o[0],
n = o[o.length - 1],
r = fv(e);
return mv(r, t, n).map(function (e) {
return ov([dv(e)])
})
}).getOrThunk(hv);
var t, n
},
bv = function (e, t) {
var n, r, o = Mf(t, e);
return 0 < o.length ? yv(e, o) : (n = e, 0 < (r = t).length && r[0].collapsed ? hv() : vv(n, r[0]))
},
Cv = function (e, t) {
return 0 <= t && t < e.length && Zl(e.charAt(t))
},
wv = function (e, t) {
var n = po(e.innerText);
return t ? n.replace(/^[ \f\n\r\t\v]+/, "") : n
},
xv = function (f) {
return U.from(f.selection.getRng()).map(function (e) {
var t = U.from(f.dom.getParent(e.commonAncestorContainer, f.dom.isBlock)),
n = f.getBody(),
r = t.map(function (e) {
return e.nodeName
}).getOr("div").toLowerCase(),
o = wt.browser.isIE() && "pre" !== r,
i = f.dom.add(n, r, {
"data-mce-bogus": "all",
style: "overflow: hidden; opacity: 0;"
}, e.cloneContents()),
a = wv(i, o),
u = po(i.textContent);
if (f.dom.remove(i), Cv(u, 0) || Cv(u, u.length - 1)) {
var s = t.getOr(n),
c = wv(s, o),
l = c.indexOf(a);
return -1 === l ? a : (Cv(c, l - 1) ? " " : "") + a + (Cv(c, l + a.length) ? " " : "")
}
return a
}).getOr("")
},
Sv = function (e, t, n) {
if (void 0 === n && (n = {}), n.get = !0, n.format = t, n.selection = !0, (n = e.fire("BeforeGetContent", n)).isDefaultPrevented()) return e.fire("GetContent", n), n.content;
if ("text" === n.format) return xv(e);
n.getInner = !0;
var r, o, i, a, u, s, c, l = (o = n, i = (r = e).selection.getRng(), a = r.dom.create("body"), u = r.selection.getSel(), s = Om(r, Lf(u)), (c = o.contextual ? bv(At.fromDom(r.getBody()), s).dom : i.cloneContents()) && a.appendChild(c), r.selection.serializer.serialize(a, o));
return "tree" === n.format ? l : (n.content = e.selection.isCollapsed() ? "" : l, e.fire("GetContent", n), n.content)
},
Nv = function (e) {
return An(e) ? e.outerHTML : In(e) ? ci.encodeRaw(e.data, !1) : Mn(e) ? "\x3c!--" + e.data + "--\x3e" : ""
},
Ev = function (e, t, n) {
var r, o = function (e) {
var t, n = document.createElement("div"),
r = document.createDocumentFragment();
for (e && (n.innerHTML = e); t = n.firstChild;) r.appendChild(t);
return r
}(t);
e.hasChildNodes() && n < e.childNodes.length ? (r = e.childNodes[n]).parentNode.insertBefore(o, r) : e.appendChild(o)
},
kv = function (e, o) {
var i = 0;
W(e, function (e) {
var t, n, r;
0 === e[0] ? i++ : 1 === e[0] ? (Ev(o, e[1], i), i++) : 2 === e[0] && (n = i, (t = o).hasChildNodes() && n < t.childNodes.length && (r = t.childNodes[n]).parentNode.removeChild(r))
})
},
_v = function (e, t) {
var p, g, n, h, v, c, y, l, r, o = z(oe(t.childNodes), Nv);
return kv((g = e, n = (p = o).length + g.length + 2, h = new Array(n), v = new Array(n), c = function (e, t, n, r, o) {
var i = l(e, t, n, r);
if (null === i || i.start === t && i.diag === t - r || i.end === e && i.diag === e - n)
for (var a = e, u = n; a < t || u < r;) a < t && u < r && p[a] === g[u] ? (o.push([0, p[a]]), ++a, ++u) : r - n < t - e ? (o.push([2, p[a]]), ++a) : (o.push([1, g[u]]), ++u);
else {
c(e, i.start, n, i.start - i.diag, o);
for (var s = i.start; s < i.end; ++s) o.push([0, p[s]]);
c(i.end, t, i.end - i.diag, r, o)
}
}, y = function (e, t, n, r) {
for (var o = e; o - t < r && o < n && p[o] === g[o - t];) ++o;
return {
start: e,
end: o,
diag: t
}
}, l = function (e, t, n, r) {
var o = t - e,
i = r - n;
if (0 == o || 0 == i) return null;
var a, u, s, c, l, f = o - i,
d = i + o,
m = (d % 2 == 0 ? d : 1 + d) / 2;
for (h[1 + m] = e, v[1 + m] = t + 1, a = 0; a <= m; ++a) {
for (u = -a; u <= a; u += 2) {
for (s = u + m, u === -a || u !== a && h[s - 1] < h[s + 1] ? h[s] = h[s + 1] : h[s] = h[s - 1] + 1, l = (c = h[s]) - e + n - u; c < t && l < r && p[c] === g[l];) h[s] = ++c, ++l;
if (f % 2 != 0 && f - a <= u && u <= f + a && v[s - f] <= h[s]) return y(v[s - f], u + e - n, t, r)
}
for (u = f - a; u <= f + a; u += 2) {
for (s = u + m - f, u === f - a || u !== f + a && v[s + 1] <= v[s - 1] ? v[s] = v[s + 1] - 1 : v[s] = v[s - 1], l = (c = v[s] - 1) - e + n - u; e <= c && n <= l && p[c] === g[l];) v[s] = c--, l--;
if (f % 2 == 0 && -a <= u && u <= a && v[s] <= h[s + f]) return y(v[s], u + e - n, t, r)
}
}
}, r = [], c(0, p.length, 0, g.length, r), r), t), t
},
Av = Ou(U.none()),
Rv = function (n) {
var e, t = (e = n.getBody(), H(z(oe(e.childNodes), Nv), function (e) {
return 0 < e.length
})),
r = J(t, function (e) {
var t = ap(n.serializer, e);
return 0 < t.length ? [t] : []
}),
o = r.join("");
return -1 !== o.indexOf("</iframe>") ? {
type: "fragmented",
fragments: r,
content: "",
bookmark: null,
beforeBookmark: null
} : {
type: "complete",
fragments: null,
content: o,
bookmark: null,
beforeBookmark: null
}
},
Tv = function (e, t, n) {
"fragmented" === t.type ? _v(t.fragments, e.getBody()) : e.setContent(t.content, {
format: "raw"
}), e.selection.moveToBookmark(n ? t.beforeBookmark : t.bookmark)
},
Dv = function (e) {
return "fragmented" === e.type ? e.fragments.join("") : e.content
},
Ov = function (e) {
var t = At.fromTag("body", Av.get().getOrThunk(function () {
var e = document.implementation.createHTMLDocument("undo");
return Av.set(U.some(e)), e
}));
return as(t, Dv(e)), W(Gu(t, "*[data-mce-bogus]"), gn), t.dom.innerHTML
},
Bv = function (e, t) {
return !(!e || !t) && (r = t, Dv(e) === Dv(r) || (n = t, Ov(e) === Ov(n)));
var n, r
},
Pv = function (e) {
return 0 === e.get()
},
Lv = function (e, t, n) {
Pv(n) && (e.typing = t)
},
Iv = function (e, t) {
e.typing && (Lv(e, !1, t), e.add())
},
Mv = function (e) {
return e instanceof Km
},
Fv = function (e, t) {
sh(e.serializer.getNodeFilters(), e.serializer.getAttributeFilters(), t)
},
Uv = function () {
return {
type: "complete",
fragments: [],
content: "",
bookmark: null,
beforeBookmark: null
}
},
zv = function (f) {
return {
undoManager: {
beforeChange: function (e, t) {
return n = f, r = t, void(Pv(e) && r.set(U.some(mc(n.selection))));
var n, r
},
addUndoLevel: function (e, t, n, r, o, i) {
return function (e, t, n, r, o, i, a) {
var u = Rv(e);
if (i = i || {}, i = kt.extend(i, u), !1 === Pv(r) || e.removed) return null;
var s = t.data[n.get()];
if (e.fire("BeforeAddUndo", {
level: i,
lastLevel: s,
originalEvent: a
}).isDefaultPrevented()) return null;
if (s && Bv(s, i)) return null;
t.data[n.get()] && o.get().each(function (e) {
t.data[n.get()].beforeBookmark = e
});
var c = e.getParam("custom_undo_redo_levels", 0, "number");
if (c && t.data.length > c) {
for (var l = 0; l < t.data.length - 1; l++) t.data[l] = t.data[l + 1];
t.data.length--, n.set(t.data.length)
}
i.bookmark = mc(e.selection), n.get() < t.data.length - 1 && (t.data.length = n.get() + 1), t.data.push(i), n.set(t.data.length - 1);
var f = {
level: i,
lastLevel: s,
originalEvent: a
};
return 0 < n.get() ? (e.setDirty(!0), e.fire("AddUndo", f), e.fire("change", f)) : e.fire("AddUndo", f), i
}(f, e, t, n, r, o, i)
},
undo: function (e, t, n) {
return r = f, i = t, a = n, (o = e).typing && (o.add(), o.typing = !1, Lv(o, !1, i)), 0 < a.get() && (a.set(a.get() - 1), u = o.data[a.get()], Tv(r, u, !0), r.setDirty(!0), r.fire("Undo", {
level: u
})), u;
var r, o, i, a, u
},
redo: function (e, t) {
return n = f, o = t, (r = e).get() < o.length - 1 && (r.set(r.get() + 1), i = o[r.get()], Tv(n, i, !1), n.setDirty(!0), n.fire("Redo", {
level: i
})), i;
var n, r, o, i
},
clear: function (e, t) {
return n = f, o = t, (r = e).data = [], o.set(0), r.typing = !1, void n.fire("ClearUndos");
var n, r, o
},
reset: function (e) {
return (t = e).clear(), void t.add();
var t
},
hasUndo: function (e, t) {
return n = f, r = e, 0 < t.get() || r.typing && r.data[0] && !Bv(Rv(n), r.data[0]);
var n, r
},
hasRedo: function (e, t) {
return n = e, t.get() < n.data.length - 1 && !n.typing;
var n
},
transact: function (e, t, n) {
return o = n, Iv(r = e, t), r.beforeChange(), r.ignore(o), r.add();
var r, o
},
ignore: function (e, t) {
try {
e.set(e.get() + 1), t()
} finally {
e.set(e.get() - 1)
}
},
extra: function (e, t, n, r) {
return o = f, a = t, u = n, s = r, void((i = e).transact(u) && (c = i.data[a.get()].bookmark, l = i.data[a.get() - 1], Tv(o, l, !0), i.transact(s) && (i.data[a.get() - 1].beforeBookmark = c)));
var o, i, a, u, s, c, l
}
},
formatter: {
match: function (e, t, n) {
return jm(f, e, t, n)
},
matchAll: function (e, t) {
return o = e, i = t, a = [], u = {}, n = (r = f).selection.getStart(), r.dom.getParent(n, function (e) {
for (var t = 0; t < o.length; t++) {
var n = o[t];
!u[n] && zm(r, e, n, i) && (u[n] = !0, a.push(n))
}
}, r.dom.getRoot()), a;
var r, o, i, a, u, n
},
matchNode: function (e, t, n, r) {
return zm(f, e, t, n, r)
},
canApply: function (e) {
return function (e, t) {
var n, r, o, i, a, u = e.formatter.get(t),
s = e.dom;
if (u)
for (n = e.selection.getStart(), r = mf(s, n), i = u.length - 1; 0 <= i; i--) {
if (!(a = u[i].selector) || u[i].defaultBlock) return !0;
for (o = r.length - 1; 0 <= o; o--)
if (s.is(r[o], a)) return !0
}
return !1
}(f, e)
},
closest: function (e) {
return Hm(f, e)
},
apply: function (e, t, n) {
return ev(f, e, t, n)
},
remove: function (e, t, n, r) {
return Yh(f, e, t, n, r)
},
toggle: function (e, t, n) {
return o = e, i = t, a = n, u = (r = f).formatter.get(o), void(!jm(r, o, i, a) || "toggle" in u[0] && !u[0].toggle ? ev : Yh)(r, o, i, a);
var r, o, i, a, u
},
formatChanged: function (e, t, n, r) {
return rv(f, e, t, n, r)
}
},
editor: {
getContent: function (e, t) {
return n = f, r = e, o = t, U.from(n.getBody()).fold(E("tree" === r.format ? new Km("body", 11) : ""), function (e) {
return sp(n, r, o, e)
});
var n, r, o
},
setContent: function (e, t) {
return fh(f, e, t)
},
insertContent: function (e, t) {
return ah(f, e, t)
},
addVisual: function (e) {
return t = e, a = (i = f).dom, n = D(t) ? t : i.getBody(), R(i.hasVisual) && (i.hasVisual = i.getParam("visual", !0, "boolean")), W(a.select("table,a", n), function (e) {
switch (e.nodeName) {
case "TABLE":
var t = i.getParam("visual_table_class", "mce-item-table", "string"),
n = a.getAttrib(e, "border");
n && "0" !== n || !i.hasVisual ? a.removeClass(e, t) : a.addClass(e, t);
break;
case "A":
var r, o;
a.getAttrib(e, "href") || (r = a.getAttrib(e, "name") || e.id, o = i.getParam("visual_anchor_class", "mce-item-anchor", "string"), r && i.hasVisual ? a.addClass(e, o) : a.removeClass(e, o))
}
}), void i.fire("VisualAid", {
element: t,
hasVisual: i.hasVisual
});
var i, t, a, n
}
},
selection: {
getContent: function (e, t) {
return Sv(f, e, t)
}
},
raw: {
getModel: function () {
return U.none()
}
}
}
},
jv = function (i, a) {
var o = function (e) {
return _(e) ? e : {}
},
e = m("Unimplemented feature for rtc");
return {
undoManager: {
beforeChange: V,
addUndoLevel: e,
undo: function () {
return a.undo(), Uv()
},
redo: function () {
return a.redo(), Uv()
},
clear: e,
reset: e,
hasUndo: function () {
return a.hasUndo()
},
hasRedo: function () {
return a.hasRedo()
},
transact: function (e, t, n) {
return a.transact(n), Uv()
},
ignore: e,
extra: e
},
formatter: {
match: function (e, t, n) {
return a.matchFormat(e, o(t))
},
matchAll: e,
matchNode: e,
canApply: function (e) {
return a.canApplyFormat(e)
},
closest: function (e) {
return a.closestFormat(e)
},
apply: function (e, t, n) {
return a.applyFormat(e, o(t))
},
remove: function (e, t, n, r) {
return a.removeFormat(e, o(t))
},
toggle: function (e, t, n) {
return a.toggleFormat(e, o(t))
},
formatChanged: function (e, t, n, r) {
return a.formatChanged(t, n, r)
}
},
editor: {
getContent: function (e, t) {
if ("html" !== t && "tree" !== t) return zv(i).editor.getContent(e, t);
var n = a.getContent(),
r = Jm({
inner: !0
});
return Fv(i, n), "tree" === t ? n : r.serialize(n)
},
setContent: function (e, t) {
var n = Mv(e) ? e : i.parser.parse(e, {
isRootContent: !0,
insert: !0
});
return a.setContent(n), e
},
insertContent: function (e, t) {
var n, r = (n = i, U.from(n.selection.getStart(!0)).map(function (e) {
return e.nodeName.toLowerCase()
}).fold(function () {
return {}
}, function (e) {
return {
context: e
}
})),
o = Mv(e) ? e : i.parser.parse(e, ke(ke({}, r), {
insert: !0
}));
a.insertContent(o)
},
addVisual: function (e) {}
},
selection: {
getContent: function (e, t) {
if ("html" !== e && "tree" !== e) return zv(i).selection.getContent(e, t);
var n = a.getSelectedContent(),
r = Jm({});
return Fv(i, n), "tree" === e ? n : r.serialize(n)
}
},
raw: {
getModel: function () {
return U.some(a.getRawModel())
}
}
}
},
Hv = function (e) {
return he(e.plugins, "rtc")
},
Vv = function (e) {
return e.rtcInstance ? e.rtcInstance : zv(e)
},
qv = function (e) {
var t = e.rtcInstance;
if (t) return t;
throw new Error("Failed to get RTC instance not yet initialized.")
},
$v = function (e, t) {
void 0 === t && (t = {});
var n, r, o = t.format ? t.format : "html";
return n = o, r = t, qv(e).selection.getContent(n, r)
},
Wv = function (e) {
return 0 === e.dom.length ? (pn(e), U.none()) : U.some(e)
},
Kv = function (e, t, s, c) {
e.bind(function (u) {
return (c ? sg : ug)(u.dom, c ? u.dom.length : 0), t.filter(Ut).map(function (e) {
return t = e, n = s, r = c, o = u.dom, i = t.dom, a = r ? o.length : i.length, void(r ? (cg(o, i, !1, !r), n.setStart(i, a)) : (cg(i, o, !1, !r), n.setEnd(i, a)));
var t, n, r, o, i, a
})
}).orThunk(function () {
var e;
return (e = c, t.filter(function (e) {
return od.isBookmarkNode(e.dom)
}).bind(e ? Kt : Wt).or(t).filter(Ut)).map(function (e) {
return r = c, void $t(n = e).each(function (e) {
var t = n.dom;
r && Qp(e, $s(t, 0)) ? ug(t, 0) : !r && Zp(e, $s(t, t.length)) && sg(t, t.length)
});
var n, r
})
})
},
Xv = function (e, t, n) {
void 0 === n && (n = {});
var r, o, i = (r = t, ke(ke({
format: "html"
}, n), {
set: !0,
selection: !0,
content: r
}));
i.no_events || !(i = e.fire("BeforeSetContent", i)).isDefaultPrevented() ? (n.content = function (e, t) {
if ("raw" === t.format) return t.content;
var n = e.selection.getRng(),
r = e.dom.getParent(n.commonAncestorContainer, e.dom.isBlock),
o = r ? {
context: r.nodeName.toLowerCase()
} : {},
i = e.parser.parse(t.content, ke(ke({
isRootContent: !0,
forced_root_block: !1
}, o), t));
return Jm({
validate: e.validate
}, e.schema).serialize(i)
}(e, i), function (e, t) {
var n = U.from(t.firstChild).map(At.fromDom),
r = U.from(t.lastChild).map(At.fromDom);
e.deleteContents(), e.insertNode(t);
var o = n.bind(Wt).filter(Ut).bind(Wv),
i = r.bind(Kt).filter(Ut).bind(Wv);
Kv(o, n, e, !0), Kv(i, r, e, !1), e.collapse(!1)
}(o = e.selection.getRng(), o.createContextualFragment(n.content)), e.selection.setRng(o), Xd(e, o), i.no_events || e.fire("SetContent", i)) : e.fire("SetContent", i)
},
Yv = function (e, t, n) {
var r;
e && e.hasOwnProperty(t) && (0 === (r = H(e[t], function (e) {
return e !== n
})).length ? delete e[t] : e[t] = r)
};
var Gv = function (e) {
return !!e.select
},
Jv = function (e) {
return !(!e || !e.ownerDocument) && Pt(At.fromDom(e.ownerDocument), At.fromDom(e))
},
Qv = function (u, s, e, c) {
var l, f, i, n, a, d, r = function (e, t) {
return a || (a = {}, d = {}, n.on("NodeChange", function (e) {
var n = e.element,
r = i.getParents(n, null, i.getRoot()),
o = {};
kt.each(a, function (e, n) {
kt.each(r, function (t) {
if (i.is(t, n)) return d[n] || (kt.each(e, function (e) {
e(!0, {
node: t,
selector: n,
parents: r
})
}), d[n] = e), o[n] = e, !1
})
}), kt.each(d, function (e, t) {
o[t] || (delete d[t], kt.each(e, function (e) {
e(!1, {
node: n,
selector: t,
parents: r
})
}))
})
})), a[e] || (a[e] = []), a[e].push(t), {
unbind: function () {
Yv(a, e, t), Yv(d, e, t)
}
}
},
t = function (e, t) {
return Xv(c, e, t)
},
o = function (e) {
var t = p();
t.collapse(!!e), g(t)
},
m = function () {
return s.getSelection ? s.getSelection() : s.document.selection
},
p = function () {
var e, t, n, r = function (e, t, n) {
try {
return t.compareBoundaryPoints(e, n)
} catch (r) {
return -1
}
};
if (!s) return null;
var o = s.document;
if (null == o) return null;
if (c.bookmark !== undefined && !1 === Em(c)) {
var i = dm(c);
if (i.isSome()) return i.map(function (e) {
return Om(c, [e])[0]
}).getOr(o.createRange())
}
try {
(e = m()) && !_n(e.anchorNode) && (t = 0 < e.rangeCount ? e.getRangeAt(0) : e.createRange ? e.createRange() : o.createRange(), t = Om(c, [t])[0])
} catch (a) {}
return (t = t || (o.createRange ? o.createRange() : o.body.createTextRange())).setStart && 9 === t.startContainer.nodeType && t.collapsed && (n = u.getRoot(), t.setStart(n, 0), t.setEnd(n, 0)), l && f && (0 === r(t.START_TO_START, t, l) && 0 === r(t.END_TO_END, t, l) ? t = f : f = l = null), t
},
g = function (e, t) {
var n;
if ((r = e) && (Gv(r) || Jv(r.startContainer) && Jv(r.endContainer))) {
var r, o = Gv(e) ? e : null;
if (o) {
f = null;
try {
o.select()
} catch (a) {}
} else {
var i = m();
if (e = c.fire("SetSelectionRange", {
range: e,
forward: t
}).range, i) {
f = e;
try {
i.removeAllRanges(), i.addRange(e)
} catch (a) {}!1 === t && i.extend && (i.collapse(e.endContainer, e.endOffset), i.extend(e.startContainer, e.startOffset)), l = 0 < i.rangeCount ? i.getRangeAt(0) : null
}
e.collapsed || e.startContainer !== e.endContainer || !i.setBaseAndExtent || wt.ie || e.endOffset - e.startOffset < 2 && e.startContainer.hasChildNodes() && (n = e.startContainer.childNodes[e.startOffset]) && "IMG" === n.tagName && (i.setBaseAndExtent(e.startContainer, e.startOffset, e.endContainer, e.endOffset), i.anchorNode === e.startContainer && i.focusNode === e.endContainer || i.setBaseAndExtent(n, 0, n, 1)), c.fire("AfterSetSelectionRange", {
range: e,
forward: t
})
}
}
},
h = function () {
var e = m(),
t = null == e ? void 0 : e.anchorNode,
n = null == e ? void 0 : e.focusNode;
if (!e || !t || !n || _n(t) || _n(n)) return !0;
var r = u.createRng();
r.setStart(t, e.anchorOffset), r.collapse(!0);
var o = u.createRng();
return o.setStart(n, e.focusOffset), o.collapse(!0), r.compareBoundaryPoints(r.START_TO_START, o) <= 0
},
v = {
bookmarkManager: null,
controlSelection: null,
dom: i = u,
win: s,
serializer: e,
editor: n = c,
collapse: o,
setCursorLocation: function (e, t) {
var n = u.createRng();
e ? (n.setStart(e, t), n.setEnd(e, t), g(n), o(!1)) : (Hf(u, n, c.getBody(), !0), g(n))
},
getContent: function (e) {
return $v(c, e)
},
setContent: t,
getBookmark: function (e, t) {
return y.getBookmark(e, t)
},
moveToBookmark: function (e) {
return y.moveToBookmark(e)
},
select: function (e, t) {
var r, n, o;
return r = u, n = e, o = t, U.from(n).map(function (e) {
var t = r.nodeIndex(e),
n = r.createRng();
return n.setStart(e.parentNode, t), n.setEnd(e.parentNode, t + 1), o && (Hf(r, n, e, !0), Hf(r, n, e, !1)), n
}).each(g), e
},
isCollapsed: function () {
var e = p(),
t = m();
return !(!e || e.item) && (e.compareEndPoints ? 0 === e.compareEndPoints("StartToEnd", e) : !t || e.collapsed)
},
isForward: h,
setNode: function (e) {
return t(u.getOuterHTML(e)), e
},
getNode: function () {
return function (e, t) {
var n, r;
if (!t) return e;
n = t.startContainer, r = t.endContainer;
var o = t.startOffset,
i = t.endOffset,
a = t.commonAncestorContainer;
return !t.collapsed && (n === r && i - o < 2 && n.hasChildNodes() && (a = n.childNodes[o]), 3 === n.nodeType && 3 === r.nodeType && (n = n.length === o ? Dm(n.nextSibling, !0) : n.parentNode, r = 0 === i ? Dm(r.previousSibling, !1) : r.parentNode, n && n === r)) ? n : a && 3 === a.nodeType ? a.parentNode : a
}(c.getBody(), p())
},
getSel: m,
setRng: g,
getRng: p,
getStart: function (e) {
return Rm(c.getBody(), p(), e)
},
getEnd: function (e) {
return Tm(c.getBody(), p(), e)
},
getSelectedBlocks: function (e, t) {
return function (e, t, n, r) {
var o, i = [],
a = e.getRoot();
if (n = e.getParent(n || Rm(a, t, t.collapsed), e.isBlock), r = e.getParent(r || Tm(a, t, t.collapsed), e.isBlock), n && n !== a && i.push(n), n && r && n !== r)
for (var u = new Xr(o = n, a);
(o = u.next()) && o !== r;) e.isBlock(o) && i.push(o);
return r && n !== r && r !== a && i.push(r), i
}(u, p(), e, t)
},
normalize: function () {
var e = p(),
t = m();
if (1 < Lf(t).length || !Vf(c)) return e;
var n = yd(u, e);
return n.each(function (e) {
g(e, h())
}), n.getOr(e)
},
selectorChanged: function (e, t) {
return r(e, t), v
},
selectorChangedWithUnbind: r,
getScrollContainer: function () {
for (var e, t = u.getRoot(); t && "BODY" !== t.nodeName;) {
if (t.scrollHeight > t.clientHeight) {
e = t;
break
}
t = t.parentNode
}
return e
},
scrollIntoView: function (e, t) {
return r = e, o = t, void((n = c).inline ? $d : Kd)(n, r, o);
var n, r, o
},
placeCaretAt: function (e, t) {
return g(fd(e, t, c.getDoc()))
},
getBoundingClientRect: function () {
var e = p();
return e.collapsed ? $s.fromRangeStart(e).getClientRects()[0] : e.getBoundingClientRect()
},
destroy: function () {
s = l = f = null, b.destroy()
}
},
y = od(v),
b = cd(v, c);
return v.bookmarkManager = y, v.controlSelection = b, v
},
Zv = function (e, a, u) {
e.addNodeFilter("font", function (e) {
W(e, function (e) {
var t, n = a.parse(e.attr("style")),
r = e.attr("color"),
o = e.attr("face"),
i = e.attr("size");
r && (n.color = r), o && (n["font-family"] = o), i && (n["font-size"] = u[parseInt(e.attr("size"), 10) - 1]), e.name = "span", e.attr("style", a.serialize(n)), t = e, W(["color", "face", "size"], function (e) {
t.attr(e, null)
})
})
})
},
ey = function (e, t) {
var n, r = xi();
t.convert_fonts_to_spans && Zv(e, r, kt.explode(t.font_size_legacy_values)), n = r, e.addNodeFilter("strike", function (e) {
W(e, function (e) {
var t = n.parse(e.attr("style"));
t["text-decoration"] = "line-through", e.name = "span", e.attr("style", n.serialize(t))
})
})
},
ty = function (e) {
var t, n = decodeURIComponent(e).split(","),
r = /data:([^;]+)/.exec(n[0]);
return r && (t = r[1]), {
type: t,
data: n[1]
}
},
ny = function (e, t) {
var n;
try {
n = atob(t)
} catch (Ok) {
return U.none()
}
for (var r = new Uint8Array(n.length), o = 0; o < r.length; o++) r[o] = n.charCodeAt(o);
return U.some(new Blob([r], {
type: e
}))
},
ry = function (e) {
return 0 === e.indexOf("blob:") ? (i = e, new Br(function (e, t) {
var n = function () {
t("Cannot convert " + i + " to Blob. Resource might not exist or is inaccessible.")
};
try {
var r = new XMLHttpRequest;
r.open("GET", i, !0), r.responseType = "blob", r.onload = function () {
200 === this.status ? e(this.response) : n()
}, r.onerror = n, r.send()
} catch (o) {
n()
}
})) : 0 === e.indexOf("data:") ? (o = e, new Br(function (e) {
var t = ty(o),
n = t.type,
r = t.data;
ny(n, r).fold(function () {
return e(new Blob([]))
}, e)
})) : null;
var i, o
},
oy = 0,
iy = function (e) {
return (e || "blobid") + oy++
},
ay = function (r, o, i, t) {
var e, n, a, u, s;
0 !== o.src.indexOf("blob:") ? (n = (e = ty(o.src)).data, a = e.type, u = n, (s = r.getByData(u, a)) ? i({
image: o,
blobInfo: s
}) : ry(o.src).then(function (e) {
s = r.create(iy(), e, u), r.add(s), i({
image: o,
blobInfo: s
})
}, function (e) {
t(e)
})) : (s = r.getByUri(o.src)) ? i({
image: o,
blobInfo: s
}) : ry(o.src).then(function (t) {
var n;
n = t, new Br(function (e) {
var t = new FileReader;
t.onloadend = function () {
e(t.result)
}, t.readAsDataURL(n)
}).then(function (e) {
u = ty(e).data, s = r.create(iy(), t, u), r.add(s), i({
image: o,
blobInfo: s
})
})
}, function (e) {
t(e)
})
};
function uy(i, a) {
var u = {};
return {
findAll: function (e, n) {
n = n || k;
var t, r = H((t = e) ? oe(t.getElementsByTagName("img")) : [], function (e) {
var t = e.src;
return !!wt.fileApi && (!e.hasAttribute("data-mce-bogus") && (!e.hasAttribute("data-mce-placeholder") && (!(!t || t === wt.transparentSrc) && (0 === t.indexOf("blob:") ? !i.isUploaded(t) && n(e) : 0 === t.indexOf("data:") && n(e)))))
}),
o = z(r, function (n) {
if (u[n.src] !== undefined) return new Br(function (t) {
u[n.src].then(function (e) {
return "string" == typeof e ? e : void t({
image: n,
blobInfo: e.blobInfo
})
})
});
var e = new Br(function (e, t) {
ay(a, n, e, t)
}).then(function (e) {
return delete u[e.image.src], e
})["catch"](function (e) {
return delete u[n.src], e
});
return u[n.src] = e
});
return Br.all(o)
}
}
}
var sy, cy, ly = function (e, t, n, r) {
(e.padd_empty_with_br || t.insert) && n[r.name] ? r.empty().append(new Km("br", 1)).shortEnded = !0 : r.empty().append(new Km("#text", 3)).value = lo
},
fy = function (e, t) {
return e && e.firstChild && e.firstChild === e.lastChild && e.firstChild.name === t
},
dy = function (r, e, t, n) {
return n.isEmpty(e, t, function (e) {
return t = e, (n = r.getElementRule(t.name)) && n.paddEmpty;
var t, n
})
},
my = function (e, o) {
var i = o.blob_cache,
t = function (t) {
var e, n, r = t.attr("src");
(e = t).attr("src") === wt.transparentSrc || e.attr("data-mce-placeholder") || t.attr("data-mce-bogus") || ((n = /data:([^;]+);base64,([a-z0-9\+\/=]+)/i.exec(r)) ? U.some({
type: n[1],
data: decodeURIComponent(n[2])
}) : U.none()).filter(function () {
return function (e, t) {
if (t.images_dataimg_filter) {
var n = new Image;
return n.src = e.attr("src"), ue(e.attributes.map, function (e, t) {
n.setAttribute(t, e)
}), t.images_dataimg_filter(n)
}
return !0
}(t, o)
}).bind(function (e) {
var t = e.type,
n = e.data;
return U.from(i.getByData(n, t)).orThunk(function () {
return ny(t, n).map(function (e) {
var t = i.create(iy(), e, n);
return i.add(t), t
})
})
}).each(function (e) {
t.attr("src", e.blobUri())
})
};
i && e.addAttributeFilter("src", function (e) {
return W(e, t)
})
},
py = function (e, g) {
var h = e.schema;
g.remove_trailing_brs && e.addNodeFilter("br", function (e, t, n) {
var r, o, i, a, u, s, c, l, f = e.length,
d = kt.extend({}, h.getBlockElements()),
m = h.getNonEmptyElements(),
p = h.getWhiteSpaceElements();
for (d.body = 1, r = 0; r < f; r++)
if (i = (o = e[r]).parent, d[o.parent.name] && o === i.lastChild) {
for (u = o.prev; u;) {
if ("span" !== (s = u.name) || "bookmark" !== u.attr("data-mce-type")) {
"br" === s && (o = null);
break
}
u = u.prev
}
o && (o.remove(), dy(h, m, p, i) && (c = h.getElementRule(i.name)) && (c.removeEmpty ? i.remove() : c.paddEmpty && ly(g, n, d, i)))
} else {
for (a = o; i && i.firstChild === a && i.lastChild === a && !d[(a = i).name];) i = i.parent;
a === i && !0 !== g.padd_empty_with_br && ((l = new Km("#text", 3)).value = lo, o.replace(l))
}
}), e.addAttributeFilter("href", function (e) {
var t, n, r = e.length;
if (!g.allow_unsafe_link_target)
for (; r--;) {
var o = e[r];
"a" === o.name && "_blank" === o.attr("target") && o.attr("rel", (t = o.attr("rel"), n = t ? kt.trim(t) : "", /\b(noopener)\b/g.test(n) ? n : n.split(" ").filter(function (e) {
return 0 < e.length
}).concat(["noopener"]).sort().join(" ")))
}
}), g.allow_html_in_named_anchor || e.addAttributeFilter("id,name", function (e) {
for (var t, n, r, o, i = e.length; i--;)
if ("a" === (o = e[i]).name && o.firstChild && !o.attr("href"))
for (r = o.parent, t = o.lastChild; n = t.prev, r.insert(t, o), t = n;);
}), g.fix_list_elements && e.addNodeFilter("ul,ol", function (e) {
for (var t, n, r, o = e.length; o--;) {
"ul" !== (r = (n = e[o]).parent).name && "ol" !== r.name || (n.prev && "li" === n.prev.name ? n.prev.append(n) : ((t = new Km("li", 1)).attr("style", "list-style-type: none"), n.wrap(t)))
}
}), g.validate && h.getValidClasses() && e.addAttributeFilter("class", function (e) {
for (var t, n, r, o, i, a, u, s = e.length, c = h.getValidClasses(); s--;) {
for (n = (t = e[s]).attr("class").split(" "), i = "", r = 0; r < n.length; r++) o = n[r], u = !1, (a = c["*"]) && a[o] && (u = !0), a = c[t.name], !u && a && a[o] && (u = !0), u && (i && (i += " "), i += o);
i.length || (i = null), t.attr("class", i)
}
}), my(e, g)
},
gy = kt.makeMap,
hy = kt.each,
vy = kt.explode,
yy = kt.extend,
by = function (A, R) {
void 0 === R && (R = Ci());
var T = {},
D = [],
O = {},
B = {};
(A = A || {}).validate = !("validate" in A) || A.validate, A.root_name = A.root_name || "body";
var e, t, P = function (e) {
var t, n, r = e.name;
r in T && ((n = O[r]) ? n.push(e) : O[r] = [e]), t = D.length;
for (; t--;)(r = D[t].name) in e.attributes.map && ((n = B[r]) ? n.push(e) : B[r] = [e]);
return e
},
n = {
schema: R,
addAttributeFilter: function (e, n) {
hy(vy(e), function (e) {
for (var t = 0; t < D.length; t++)
if (D[t].name === e) return void D[t].callbacks.push(n);
D.push({
name: e,
callbacks: [n]
})
})
},
getAttributeFilters: function () {
return [].concat(D)
},
addNodeFilter: function (e, n) {
hy(vy(e), function (e) {
var t = T[e];
t || (T[e] = t = []), t.push(n)
})
},
getNodeFilters: function () {
var e = [];
for (var t in T) T.hasOwnProperty(t) && e.push({
name: t,
callbacks: T[t]
});
return e
},
filterNode: P,
parse: function (e, u) {
var t, n, r, o, i, s, a, c, l = [];
u = u || {}, O = {}, B = {};
var f, d = yy(gy("script,style,head,html,body,title,meta,param"), R.getBlockElements()),
m = R.getNonEmptyElements(),
p = R.children,
g = A.validate,
h = "forced_root_block" in u ? u.forced_root_block : A.forced_root_block,
v = !1 === (f = h) ? "" : !0 === f ? "p" : f,
y = R.getWhiteSpaceElements(),
b = /^[ \t\r\n]+/,
C = /[ \t\r\n]+$/,
w = /[ \t\r\n]+/g,
x = /^[ \t\r\n]+$/,
S = y.hasOwnProperty(u.context) || y.hasOwnProperty(A.root_name),
N = function (e, t) {
var n, r = new Km(e, t);
return e in T && ((n = O[e]) ? n.push(r) : O[e] = [r]), r
},
E = function (e) {
for (var t, n, r, o = R.getBlockElements(), i = e.prev; i && 3 === i.type;) {
if (0 < (n = i.value.replace(C, "")).length) return void(i.value = n);
if (t = i.next) {
if (3 === t.type && t.value.length) {
i = i.prev;
continue
}
if (!o[t.name] && "script" !== t.name && "style" !== t.name) {
i = i.prev;
continue
}
}
r = i.prev, i.remove(), i = r
}
},
k = ip({
validate: g,
allow_html_data_urls: A.allow_html_data_urls,
allow_svg_data_urls: A.allow_svg_data_urls,
allow_script_urls: A.allow_script_urls,
allow_conditional_comments: A.allow_conditional_comments,
preserve_cdata: A.preserve_cdata,
self_closing_elements: function (e) {
var t, n = {};
for (t in e) "li" !== t && "p" !== t && (n[t] = e[t]);
return n
}(R.getSelfClosingElements()),
cdata: function (e) {
c.append(N("#cdata", 4)).value = e
},
text: function (e, t) {
var n, r, o;
S || (e = e.replace(w, " "), r = c.lastChild, o = d, r && (o[r.name] || "br" === r.name) && (e = e.replace(b, ""))), 0 !== e.length && ((n = N("#text", 3)).raw = !!t, c.append(n).value = e)
},
comment: function (e) {
c.append(N("#comment", 8)).value = e
},
pi: function (e, t) {
c.append(N(e, 7)).value = t, E(c)
},
doctype: function (e) {
c.append(N("#doctype", 10)).value = e, E(c)
},
start: function (e, t, n) {
var r, o, i, a, u = g ? R.getElementRule(e) : {};
if (u) {
for ((r = N(u.outputName || e, 1)).attributes = t, r.shortEnded = n, c.append(r), (a = p[c.name]) && p[r.name] && !a[r.name] && l.push(r), o = D.length; o--;)(i = D[o].name) in t.map && ((s = B[i]) ? s.push(r) : B[i] = [r]);
d[e] && E(r), n || (c = r), !S && y[e] && (S = !0)
}
},
end: function (e) {
var t, n, r, o, i, a = g ? R.getElementRule(e) : {};
if (a) {
if (d[e] && !S) {
if ((t = c.firstChild) && 3 === t.type)
if (0 < (n = t.value.replace(b, "")).length) t.value = n, t = t.next;
else
for (r = t.next, t.remove(), t = r; t && 3 === t.type;) n = t.value, r = t.next, 0 !== n.length && !x.test(n) || (t.remove(), t = r), t = r;
if ((t = c.lastChild) && 3 === t.type)
if (0 < (n = t.value.replace(C, "")).length) t.value = n, t = t.prev;
else
for (r = t.prev, t.remove(), t = r; t && 3 === t.type;) n = t.value, r = t.prev, 0 !== n.length && !x.test(n) || (t.remove(), t = r), t = r
}
if (S && y[e] && (S = !1), a.removeEmpty && dy(R, m, y, c)) return o = c.parent, d[c.name] ? c.empty().remove() : c.unwrap(), void(c = o);
a.paddEmpty && (fy(i = c, "#text") && i.firstChild.value === lo || dy(R, m, y, c)) && ly(A, u, d, c), c = c.parent
}
}
}, R),
_ = c = new Km(u.context || A.root_name, 11);
if (k.parse(e, u.format), g && l.length && (u.context ? u.invalid = !0 : function (e) {
for (var t, n, r, o, i, a, u, s, c, l, f = gy("tr,td,th,tbody,thead,tfoot,table"), d = R.getNonEmptyElements(), m = R.getWhiteSpaceElements(), p = R.getTextBlockElements(), g = R.getSpecialElements(), h = 0; h < e.length; h++)
if ((t = e[h]).parent && !t.fixed)
if (p[t.name] && "li" === t.parent.name) {
for (c = t.next; c && p[c.name];) c.name = "li", c.fixed = !0, t.parent.insert(c, t.parent), c = c.next;
t.unwrap(t)
} else {
for (r = [t], n = t.parent; n && !R.isValidChild(n.name, t.name) && !f[n.name]; n = n.parent) r.push(n);
if (n && 1 < r.length) {
for (r.reverse(), o = i = P(r[0].clone()), s = 0; s < r.length - 1; s++) {
for (R.isValidChild(i.name, r[s].name) ? (a = P(r[s].clone()), i.append(a)) : a = i, u = r[s].firstChild; u && u !== r[s + 1];) l = u.next, a.append(u), u = l;
i = a
}
dy(R, d, m, o) ? n.insert(t, r[0], !0) : (n.insert(o, r[0], !0), n.insert(t, o)), n = r[0], (dy(R, d, m, n) || fy(n, "br")) && n.empty().remove()
} else if (t.parent) {
if ("li" === t.name) {
if ((c = t.prev) && ("ul" === c.name || "ol" === c.name)) {
c.append(t);
continue
}
if ((c = t.next) && ("ul" === c.name || "ol" === c.name)) {
c.insert(t, c.firstChild, !0);
continue
}
t.wrap(P(new Km("ul", 1)));
continue
}
R.isValidChild(t.parent.name, "div") && R.isValidChild("div", t.name) ? t.wrap(P(new Km("div", 1))) : g[t.name] ? t.empty().remove() : t.unwrap()
}
}
}(l)), v && ("body" === _.name || u.isRootContent) && function () {
var e, t, n = _.firstChild,
r = function (e) {
e && ((n = e.firstChild) && 3 === n.type && (n.value = n.value.replace(b, "")), (n = e.lastChild) && 3 === n.type && (n.value = n.value.replace(C, "")))
};
if (R.isValidChild(_.name, v.toLowerCase())) {
for (; n;) e = n.next, 3 === n.type || 1 === n.type && "p" !== n.name && !d[n.name] && !n.attr("data-mce-type") ? (t || ((t = N(v, 1)).attr(A.forced_root_block_attrs), _.insert(t, n)), t.append(n)) : (r(t), t = null), n = e;
r(t)
}
}(), !u.invalid) {
for (a in O)
if (O.hasOwnProperty(a)) {
for (s = T[a], o = (t = O[a]).length; o--;) t[o].parent || t.splice(o, 1);
for (n = 0, r = s.length; n < r; n++) s[n](t, a, u)
} for (n = 0, r = D.length; n < r; n++)
if ((s = D[n]).name in B) {
for (o = (t = B[s.name]).length; o--;) t[o].parent || t.splice(o, 1);
for (o = 0, i = s.callbacks.length; o < i; o++) s.callbacks[o](t, s.name, u)
}
}
return _
}
};
return py(n, A), e = n, (t = A).inline_styles && ey(e, t), n
},
Cy = function (e, t, n) {
return o = n, (r = e) && r.hasEventListeners("PreProcess") && !o.no_events ? function (e, t, n) {
var r, o, i = e.dom;
t = t.cloneNode(!0);
var a, u, s = document.implementation;
return s.createHTMLDocument && (r = s.createHTMLDocument(""), kt.each("BODY" === t.nodeName ? t.childNodes : [t], function (e) {
r.body.appendChild(r.importNode(e, !0))
}), t = "BODY" !== t.nodeName ? r.body.firstChild : r.body, o = i.doc, i.doc = r), a = e, u = ke(ke({}, n), {
node: t
}), a.fire("PreProcess", u), o && (i.doc = o), t
}(e, t, n) : t;
var r, o
},
wy = function (e, t, n) {
-1 === kt.inArray(t, n) && (e.addAttributeFilter(n, function (e, t) {
for (var n = e.length; n--;) e[n].attr(t, null)
}), t.push(n))
},
xy = function (e, t, n, r, o) {
var i, a, u, s, c, l, f = (i = r, Jm(t, n).serialize(i));
return a = e, s = f, (u = o).no_events || !a ? s : (c = a, l = ke(ke({}, u), {
content: s
}), c.fire("PostProcess", l).content)
},
Sy = function (y, b) {
var e = ["data-mce-selected"],
C = b && b.dom ? b.dom : Eu.DOM,
w = b && b.schema ? b.schema : Ci(y);
y.entity_encoding = y.entity_encoding || "named", y.remove_trailing_brs = !("remove_trailing_brs" in y) || y.remove_trailing_brs;
var t, s, c, x = by(y, w);
s = y, c = C, (t = x).addAttributeFilter("data-mce-tabindex", function (e, t) {
for (var n, r = e.length; r--;)(n = e[r]).attr("tabindex", n.attr("data-mce-tabindex")), n.attr(t, null)
}), t.addAttributeFilter("src,href,style", function (e, t) {
for (var n, r, o = e.length, i = "data-mce-" + t, a = s.url_converter, u = s.url_converter_scope; o--;)(r = (n = e[o]).attr(i)) !== undefined ? (n.attr(t, 0 < r.length ? r : null), n.attr(i, null)) : (r = n.attr(t), "style" === t ? r = c.serializeStyle(c.parseStyle(r), n.name) : a && (r = a.call(u, r, t, n.name)), n.attr(t, 0 < r.length ? r : null))
}), t.addAttributeFilter("class", function (e) {
for (var t, n, r = e.length; r--;)(n = (t = e[r]).attr("class")) && (n = t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g, ""), t.attr("class", 0 < n.length ? n : null))
}), t.addAttributeFilter("data-mce-type", function (e, t, n) {
for (var r, o = e.length; o--;) {
"bookmark" !== (r = e[o]).attr("data-mce-type") || n.cleanup || (U.from(r.firstChild).exists(function (e) {
return !mo(e.value)
}) ? r.unwrap() : r.remove())
}
}), t.addNodeFilter("noscript", function (e) {
for (var t, n = e.length; n--;)(t = e[n].firstChild) && (t.value = ci.decode(t.value))
}), t.addNodeFilter("script,style", function (e, t) {
for (var n, r, o, i = e.length, a = function (e) {
return e.replace(/(<!--\[CDATA\[|\]\]-->)/g, "\n").replace(/^[\r\n]*|[\r\n]*$/g, "").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi, "").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g, "")
}; i--;) r = (n = e[i]).firstChild ? n.firstChild.value : "", "script" === t ? ((o = n.attr("type")) && n.attr("type", "mce-no/type" === o ? null : o.replace(/^mce\-/, "")), "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "// <![CDATA[\n" + a(r) + "\n// ]]>")) : "xhtml" === s.element_format && 0 < r.length && (n.firstChild.value = "\x3c!--\n" + a(r) + "\n--\x3e")
}), t.addNodeFilter("#comment", function (e) {
for (var t, n = e.length; n--;) t = e[n], s.preserve_cdata && 0 === t.value.indexOf("[CDATA[") ? (t.name = "#cdata", t.type = 4, t.value = c.decode(t.value.replace(/^\[CDATA\[|\]\]$/g, ""))) : 0 === t.value.indexOf("mce:protected ") && (t.name = "#text", t.type = 3, t.raw = !0, t.value = unescape(t.value).substr(14))
}), t.addNodeFilter("xml:namespace,input", function (e, t) {
for (var n, r = e.length; r--;) 7 === (n = e[r]).type ? n.remove() : 1 === n.type && ("input" !== t || n.attr("type") || n.attr("type", "text"))
}), t.addAttributeFilter("data-mce-type", function (e) {
W(e, function (e) {
"format-caret" === e.attr("data-mce-type") && (e.isEmpty(t.schema.getNonEmptyElements()) ? e.remove() : e.unwrap())
})
}), t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize,data-mce-placeholder", function (e, t) {
for (var n = e.length; n--;) e[n].attr(t, null)
});
return {
schema: w,
addNodeFilter: x.addNodeFilter,
addAttributeFilter: x.addAttributeFilter,
serialize: function (e, t) {
void 0 === t && (t = {});
var n, r, o, i, a, u, s, c, l, f, d, m, p = ke({
format: "html"
}, t),
g = Cy(b, e, p),
h = (n = C, r = g, i = po((o = p).getInner ? r.innerHTML : n.getOuterHTML(r)), o.selection || so(At.fromDom(r)) ? i : kt.trim(i)),
v = (a = x, u = h, d = (s = p).selection ? ke({
forced_root_block: !1
}, s) : s, m = a.parse(u, d), l = function (e) {
return e && "br" === e.name
}, f = m.lastChild, !l(f) || l(c = f.prev) && (f.remove(), c.remove()), m);
return "tree" === p.format ? v : xy(b, y, w, v, p)
},
addRules: function (e) {
w.addValidElements(e)
},
setRules: function (e) {
w.setValidElements(e)
},
addTempAttr: N(wy, x, e),
getTempAttrs: function () {
return e
},
getNodeFilters: x.getNodeFilters,
getAttributeFilters: x.getAttributeFilters
}
},
Ny = function (e, t) {
var n = Sy(e, t);
return {
schema: n.schema,
addNodeFilter: n.addNodeFilter,
addAttributeFilter: n.addAttributeFilter,
serialize: n.serialize,
addRules: n.addRules,
setRules: n.setRules,
addTempAttr: n.addTempAttr,
getTempAttrs: n.getTempAttrs,
getNodeFilters: n.getNodeFilters,
getAttributeFilters: n.getAttributeFilters
}
},
Ey = function (e, t) {
void 0 === t && (t = {});
var n, r, o = t.format ? t.format : "html";
return n = t, r = o, Vv(e).editor.getContent(n, r)
},
ky = function (e, t, n) {
return void 0 === n && (n = {}), r = t, o = n, Vv(e).editor.setContent(r, o);
var r, o
},
_y = Eu.DOM,
Ay = function (e) {
return U.from(e).each(function (e) {
return e.destroy()
})
},
Ry = function (e) {
var t, n, r, o, i;
e.removed || (t = e._selectionOverrides, n = e.editorUpload, r = e.getBody(), o = e.getElement(), r && e.save({
is_removing: !0
}), e.removed = !0, e.unbindAllNativeEvents(), e.hasHiddenInput && o && _y.remove(o.nextSibling), e.fire("remove"), e.editorManager.remove(e), !e.inline && r && (i = e, _y.setStyle(i.id, "display", i.orgDisplay)), e.fire("detach"), _y.remove(e.getContainer()), Ay(t), Ay(n), e.destroy())
},
Ty = function (e, t) {
var n, r, o, i = e.selection,
a = e.dom;
e.destroyed || (t || e.removed ? (t || (e.editorManager.off("beforeunload", e._beforeUnload), e.theme && e.theme.destroy && e.theme.destroy(), Ay(i), Ay(a)), (r = (n = e).formElement) && (r._mceOldSubmit && (r.submit = r._mceOldSubmit, r._mceOldSubmit = null), _y.unbind(r, "submit reset", n.formEventDelegate)), (o = e).contentAreaContainer = o.formElement = o.container = o.editorContainer = null, o.bodyElement = o.contentDocument = o.contentWindow = null, o.iframeElement = o.targetElm = null, o.selection && (o.selection = o.selection.win = o.selection.dom = o.selection.dom.doc = null), e.destroyed = !0) : e.remove())
},
Dy = Object.prototype.hasOwnProperty,
Oy = (sy = function (e, t) {
return _(e) && _(t) ? Oy(e, t) : t
}, function () {
for (var e = new Array(arguments.length), t = 0; t < e.length; t++) e[t] = arguments[t];
if (0 === e.length) throw new Error("Can't merge zero objects");
for (var n = {}, r = 0; r < e.length; r++) {
var o = e[r];
for (var i in o) Dy.call(o, i) && (n[i] = sy(n[i], o[i]))
}
return n
}),
By = dt().deviceType,
Py = By.isTouch(),
Ly = By.isPhone(),
Iy = By.isTablet(),
My = ["lists", "autolink", "autosave"],
Fy = {
table_grid: !1,
object_resizing: !1,
resize: !1
},
Uy = function (e) {
var t = S(e) ? e.join(" ") : e,
n = z(q(t) ? t.split(" ") : [], $e);
return H(n, function (e) {
return 0 < e.length
})
},
zy = function (n, e) {
var t, r, o = de(e, function (e, t) {
return M(n, t)
});
return t = o.t, r = o.f, {
sections: E(t),
settings: E(r)
}
},
jy = function (e, t) {
return e.sections().hasOwnProperty(t)
},
Hy = function (e, t) {
return ge(e, "toolbar_mode").orThunk(function () {
return ge(e, "toolbar_drawer").map(function (e) {
return !1 === e ? "wrap" : e
})
}).getOr(t)
},
Vy = function (e, t, n, r) {
return e && (a = i = "mobile", u = (o = t).sections(), jy(o, i) && u[i].theme === a) ? H(r, N(M, My)) : e && jy(t, "mobile") ? r : n;
var o, i, a, u
},
qy = function (e, t, n, r) {
var o, i, a, u = Uy(n.forced_plugins),
s = Uy(r.plugins),
c = jy(o = t, i = "mobile") ? o.sections()[i] : {},
l = c.plugins ? Uy(c.plugins) : s,
f = Vy(e, t, s, l),
d = (a = f, [].concat(Uy(u)).concat(Uy(a)));
if (wt.browser.isIE() && M(d, "rtc")) throw new Error("RTC plugin is not supported on IE 11.");
return kt.extend(r, {
plugins: d.join(" ")
})
},
$y = function (e, t, n, r, o) {
var i, a, u, s, c, l, f, d = e ? {
mobile: (i = o.mobile || {}, a = t, u = {
resize: !1,
toolbar_mode: Hy(i, "scrolling"),
toolbar_sticky: !1
}, ke(ke(ke({}, Fy), u), a ? {
menubar: !1
} : {}))
} : {},
m = zy(["mobile"], Oy(d, o)),
p = kt.extend(n, r, m.settings(), (f = m, e && jy(f, "mobile") ? function (e, t, n) {
void 0 === n && (n = {});
var r = e.sections(),
o = r.hasOwnProperty(t) ? r[t] : {};
return kt.extend({}, n, o)
}(m, "mobile") : {}), {
validate: !0,
external_plugins: (s = r, c = m.settings(), l = c.external_plugins ? c.external_plugins : {}, s && s.external_plugins ? kt.extend({}, s.external_plugins, l) : l)
});
return qy(e, m, r, p)
},
Wy = function (e, t, n, r, o) {
var i, a, u, s, c = (i = n, a = Py, u = e, s = {
id: t,
theme: "silver",
toolbar_mode: Hy(o, "floating"),
plugins: "",
document_base_url: i,
add_form_submit_trigger: !0,
submit_patch: !0,
add_unload_trigger: !0,
convert_urls: !0,
relative_urls: !0,
remove_script_host: !0,
object_resizing: !0,
doctype: "<!DOCTYPE html>",
visual: !0,
font_size_legacy_values: "xx-small,small,medium,large,x-large,xx-large,300%",
forced_root_block: "p",
hidden_input: !0,
inline_styles: !0,
convert_fonts_to_spans: !0,
indent: !0,
indent_before: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",
indent_after: "p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",
entity_encoding: "named",
url_converter: u.convertURL,
url_converter_scope: u
}, ke(ke({}, s), a ? Fy : {}));
return $y(Ly || Iy, Ly, c, r, o)
},
Ky = function (e, t, n) {
return U.from(t.settings[n]).filter(e)
},
Xy = function (e, t, n, r) {
var o, i, a, u = t in e.settings ? e.settings[t] : n;
return "hash" === r ? (a = {}, "string" == typeof (i = u) ? W(0 < i.indexOf("=") ? i.split(/[;,](?![^=;,]*(?:[;,]|$))/) : i.split(","), function (e) {
var t = e.split("=");
1 < t.length ? a[kt.trim(t[0])] = kt.trim(t[1]) : a[kt.trim(t[0])] = kt.trim(t[0])
}) : a = i, a) : "string" === r ? Ky(q, e, t).getOr(n) : "number" === r ? Ky(O, e, t).getOr(n) : "boolean" === r ? Ky(A, e, t).getOr(n) : "object" === r ? Ky(_, e, t).getOr(n) : "array" === r ? Ky(S, e, t).getOr(n) : "string[]" === r ? Ky((o = q, function (e) {
return S(e) && Q(e, o)
}), e, t).getOr(n) : "function" === r ? Ky(T, e, t).getOr(n) : u
},
Yy = (cy = {}, {
add: function (e, t) {
cy[e] = t
},
get: function (e) {
return cy[e] ? cy[e] : {
icons: {}
}
},
has: function (e) {
return he(cy, e)
}
}),
Gy = function (e, t) {
return t.dom[e]
},
Jy = function (e, t) {
return parseInt(er(t, e), 10)
},
Qy = N(Gy, "clientWidth"),
Zy = N(Gy, "clientHeight"),
eb = N(Jy, "margin-top"),
tb = N(Jy, "margin-left"),
nb = function (e, t, n) {
var r, o, i, a, u, s, c, l, f, d, m, p = At.fromDom(e.getBody()),
g = e.inline ? p : (r = p, At.fromDom(Vt(r).dom.documentElement)),
h = (o = e.inline, a = t, u = n, s = (i = g).dom.getBoundingClientRect(), {
x: a - (o ? s.left + i.dom.clientLeft + tb(i) : 0),
y: u - (o ? s.top + i.dom.clientTop + eb(i) : 0)
});
return l = h.x, f = h.y, d = Qy(c = g), m = Zy(c), 0 <= l && 0 <= f && l <= d && f <= m
},
rb = function (e) {
var t, n = e.inline ? e.getBody() : e.getContentAreaContainer();
return t = n, U.from(t).map(At.fromDom).map(hn).getOr(!1)
};
function ob(n) {
var t, o = [],
i = function () {
var e, t = n.theme;
return t && t.getNotificationManagerImpl ? t.getNotificationManagerImpl() : {
open: e = function () {
throw new Error("Theme did not provide a NotificationManager implementation.")
},
close: e,
reposition: e,
getArgs: e
}
},
a = function () {
return U.from(o[0])
},
u = function () {
0 < o.length && i().reposition(o)
},
s = function (t) {
G(o, function (e) {
return e === t
}).each(function (e) {
o.splice(e, 1)
})
},
r = function (r, e) {
if (void 0 === e && (e = !0), !n.removed && rb(n)) return e && n.fire("BeforeOpenNotification", {
notification: r
}), Y(o, function (e) {
return t = i().getArgs(e), n = r, !(t.type !== n.type || t.text !== n.text || t.progressBar || t.timeout || n.progressBar || n.timeout);
var t, n
}).getOrThunk(function () {
n.editorManager.setActive(n);
var e, t = i().open(r, function () {
s(t), u(), a().fold(function () {
return n.focus()
}, function (e) {
return At.fromDom(e.getEl()).dom.focus()
})
});
return e = t, o.push(e), u(), n.fire("OpenNotification", ke({}, t)), t
})
};
return (t = n).on("SkinLoaded", function () {
// var e = t.getParam("service_message");
// e && r({
// text: e,
// type: "warning",
// timeout: 0
// }, !1)
}), t.on("ResizeEditor ResizeWindow NodeChange", function () {
qr.requestAnimationFrame(u)
}), t.on("remove", function () {
W(o.slice(), function (e) {
i().close(e)
})
}), {
open: r,
close: function () {
a().each(function (e) {
i().close(e), s(e), u()
})
},
getNotifications: function () {
return o
}
}
}
var ib = Uu.PluginManager,
ab = Uu.ThemeManager;
var ub = function (n) {
var r = [],
o = function () {
var e, t = n.theme;
return t && t.getWindowManagerImpl ? t.getWindowManagerImpl() : {
open: e = function () {
throw new Error("Theme did not provide a WindowManager implementation.")
},
openUrl: e,
alert: e,
confirm: e,
close: e,
getParams: e,
setParams: e
}
},
i = function (e, t) {
return function () {
return t ? t.apply(e, arguments) : undefined
}
},
a = function (e) {
var t;
r.push(e), t = e, n.fire("OpenWindow", {
dialog: t
})
},
u = function (t) {
var e;
e = t, n.fire("CloseWindow", {
dialog: e
}), 0 === (r = H(r, function (e) {
return e !== t
})).length && n.focus()
},
s = function (e) {
n.editorManager.setActive(n), fm(n);
var t = e();
return a(t), t
};
return n.on("remove", function () {
W(r, function (e) {
o().close(e)
})
}), {
open: function (e, t) {
return s(function () {
return o().open(e, t, u)
})
},
openUrl: function (e) {
return s(function () {
return o().openUrl(e, u)
})
},
alert: function (e, t, n) {
o().alert(e, i(n || this, t))
},
confirm: function (e, t, n) {
o().confirm(e, i(n || this, t))
},
close: function () {
U.from(r[r.length - 1]).each(function (e) {
o().close(e), u(e)
})
}
}
},
sb = function (e, t) {
e.notificationManager.open({
type: "error",
text: t
})
},
cb = function (e, t) {
e._skinLoaded ? sb(e, t) : e.on("SkinLoaded", function () {
sb(e, t)
})
},
lb = function (e, t, n) {
var r, o;
r = t, o = {
message: n
}, e.fire(r, o), console.error(n)
},
fb = function (e, t, n) {
return n ? "Failed to load " + e + ": " + n + " from url " + t : "Failed to load " + e + " url: " + t
},
db = function (e, t, n) {
lb(e, "PluginLoadError", fb("plugin", t, n))
},
mb = function (e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
var r = window.console;
r && (r.error ? r.error.apply(r, _e([e], t)) : r.log.apply(r, _e([e], t)))
},
pb = function (t) {
var e, n, r = (n = (e = t).getParam("content_css"), q(n) ? z(n.split(","), $e) : S(n) ? n : !1 === n || e.inline ? [] : ["default"]),
o = t.editorManager.baseURL + "/skins/content",
i = "content" + t.editorManager.suffix + ".css",
a = !0 === t.inline;
return z(r, function (e) {
return /^[a-z0-9\-]+$/i.test(e) && !a ? o + "/" + e + "/" + i : t.documentBaseURI.toAbsolute(e)
})
};
function gb(u, s) {
var o = {},
n = function (e, r, o, t) {
var i = new XMLHttpRequest;
i.open("POST", s.url), i.withCredentials = s.credentials, i.upload.onprogress = function (e) {
t(e.loaded / e.total * 100)
}, i.onerror = function () {
o("Image upload failed due to a XHR Transport error. Code: " + i.status)
}, i.onload = function () {
var e, t, n;
i.status < 200 || 300 <= i.status ? o("HTTP Error: " + i.status) : (e = JSON.parse(i.responseText)) && "string" == typeof e.location ? r((t = s.basePath, n = e.location, t ? t.replace(/\/$/, "") + "/" + n.replace(/^\//, "") : n)) : o("Invalid JSON: " + i.responseText)
};
var n = new FormData;
n.append("file", e.blob(), e.filename()), i.send(n)
},
c = function (e, t) {
return {
url: t,
blobInfo: e,
status: !0
}
},
l = function (e, t, n) {
return {
url: "",
blobInfo: e,
status: !1,
error: {
message: t,
options: n
}
}
},
f = function (e, t) {
kt.each(o[e], function (e) {
e(t)
}), delete o[e]
},
r = function (e, r) {
return e = kt.grep(e, function (e) {
return !u.isUploaded(e.blobUri())
}), Br.all(kt.map(e, function (e) {
return u.isPending(e.blobUri()) ? (t = e.blobUri(), new Br(function (e) {
o[t] = o[t] || [], o[t].push(e)
})) : (i = e, n = s.handler, a = r, u.markPending(i.blobUri()), new Br(function (r) {
var t;
try {
var o = function () {
t && t.close()
};
n(i, function (e) {
o(), u.markUploaded(i.blobUri(), e), f(i.blobUri(), c(i, e)), r(c(i, e))
}, function (e, t) {
var n = t || {};
o(), u.removeFailed(i.blobUri()), f(i.blobUri(), l(i, e, n)), r(l(i, e, n))
}, function (e) {
e < 0 || 100 < e || (t = t || a()).progressBar.value(e)
})
} catch (e) {
r(l(i, e.message, {}))
}
}));
var i, n, a, t
}))
};
return !1 === T(s.handler) && (s.handler = n), {
upload: function (e, t) {
return s.url || s.handler !== n ? r(e, t) : new Br(function (e) {
e([])
})
}
}
}
var hb = 0,
vb = function (e) {
return e + hb++ + (t = function () {
return Math.round(4294967295 * Math.random()).toString(36)
}, "s" + (new Date).getTime().toString(36) + t() + t() + t());
var t
},
yb = function (s) {
var n, i, e, t, r, o, a, u, c, l = (n = [], i = function (e) {
if (!e.blob || !e.base64) throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");
var t = e.id || vb("blobid"),
n = e.name || t,
r = e.blob;
return {
id: E(t),
name: E(n),
filename: E(e.filename || n + "." + ({
"image/jpeg": "jpg",
"image/jpg": "jpg",
"image/gif": "gif",
"image/png": "png",
"image/apng": "apng",
"image/avif": "avif",
"image/svg+xml": "svg",
"image/webp": "webp",
"image/bmp": "bmp",
"image/tiff": "tiff"
} [r.type.toLowerCase()] || "dat")),
blob: E(r),
base64: E(e.base64),
blobUri: E(e.blobUri || URL.createObjectURL(r)),
uri: E(e.uri)
}
}, {
create: function (e, t, n, r, o) {
if (q(e)) return i({
id: e,
name: r,
filename: o,
blob: t,
base64: n
});
if (_(e)) return i(e);
throw new Error("Unknown input type")
},
add: function (e) {
t(e.id()) || n.push(e)
},
get: t = function (t) {
return e(function (e) {
return e.id() === t
})
},
getByUri: function (t) {
return e(function (e) {
return e.blobUri() === t
})
},
getByData: function (t, n) {
return e(function (e) {
return e.base64() === t && e.blob().type === n
})
},
findFirst: e = function (e) {
return Y(n, e).getOrUndefined()
},
removeByUri: function (t) {
n = H(n, function (e) {
return e.blobUri() !== t || (URL.revokeObjectURL(e.blobUri()), !1)
})
},
destroy: function () {
W(n, function (e) {
URL.revokeObjectURL(e.blobUri())
}), n = []
}
}),
f = (a = {}, u = function (e, t) {
return {
status: e,
resultUri: t
}
}, {
hasBlobUri: c = function (e) {
return e in a
},
getResultUri: function (e) {
var t = a[e];
return t ? t.resultUri : null
},
isPending: function (e) {
return !!c(e) && 1 === a[e].status
},
isUploaded: function (e) {
return !!c(e) && 2 === a[e].status
},
markPending: function (e) {
a[e] = u(1, null)
},
markUploaded: function (e, t) {
a[e] = u(2, t)
},
removeFailed: function (e) {
delete a[e]
},
destroy: function () {
a = {}
}
}),
d = [],
m = function (n) {
var r = Ou(null);
n.on("change AddUndo", function (e) {
r.set(ke({}, e.level))
});
return {
fireIfChanged: function () {
var t = n.undoManager.data;
re(t).filter(function (e) {
return !Bv(r.get(), e)
}).each(function (e) {
n.setDirty(!0), n.fire("change", {
level: e,
lastLevel: te(t, t.length - 2).getOrNull()
})
})
}
}
}(s),
p = function (t) {
return function (e) {
return s.selection ? t(e) : []
}
},
g = function (e, t, n) {
for (var r = 0; - 1 !== (r = e.indexOf(t, r)) && (e = e.substring(0, r) + n + e.substr(r + t.length), r += n.length - t.length + 1), -1 !== r;);
return e
},
h = function (e, t, n) {
var r = 'src="' + n + '"' + (n === wt.transparentSrc ? ' data-mce-placeholder="1"' : "");
return e = g(e, 'src="' + t + '"', r), e = g(e, 'data-mce-src="' + t + '"', 'data-mce-src="' + n + '"')
},
v = function (t, n) {
W(s.undoManager.data, function (e) {
"fragmented" === e.type ? e.fragments = z(e.fragments, function (e) {
return h(e, t, n)
}) : e.content = h(e.content, t, n)
})
},
y = function () {
return s.notificationManager.open({
text: s.translate("Image uploading..."),
type: "info",
timeout: -1,
progressBar: !0
})
},
b = function (e, t) {
var n, r = s.convertURL(t, "src");
v(e.src, t), s.$(e).attr({
src: s.getParam("images_reuse_filename", !1, "boolean") ? (n = t) + (-1 === n.indexOf("?") ? "?" : "&") + (new Date).getTime() : t,
"data-mce-src": r
})
},
C = function (n) {
return r = r || gb(f, {
url: s.getParam("images_upload_url", "", "string"),
basePath: s.getParam("images_upload_base_path", "", "string"),
credentials: s.getParam("images_upload_credentials", !1, "boolean"),
handler: s.getParam("images_upload_handler", null, "function")
}), S().then(p(function (u) {
var e = z(u, function (e) {
return e.blobInfo
});
return r.upload(e, y).then(p(function (e) {
var a = [],
t = z(e, function (e, t) {
var n, r, o = u[t].blobInfo,
i = u[t].image;
return e.status && s.getParam("images_replace_blob_uris", !0, "boolean") ? (l.removeByUri(i.src), b(i, e.url)) : e.error && (e.error.options.remove && (v(i.getAttribute("src"), wt.transparentSrc), a.push(i)), n = s, r = e.error.message, cb(n, Iu.translate(["Failed to upload image: {0}", r]))), {
element: i,
status: e.status,
uploadUri: e.url,
blobInfo: o
}
});
return 0 < t.length && m.fireIfChanged(), 0 < a.length && (Hv(s) ? console.error("Removing images on failed uploads is currently unsupported for RTC") : s.undoManager.transact(function () {
W(a, function (e) {
s.dom.remove(e), l.removeByUri(e.src)
})
})), n && n(t), t
}))
}))
},
w = function (e) {
if (bc(s)) return C(e)
},
x = function (t) {
return !1 !== Q(d, function (e) {
return e(t)
}) && (0 !== t.getAttribute("src").indexOf("data:") || s.getParam("images_dataimg_filter", k, "function")(t))
},
S = function () {
return (o = o || uy(f, l)).findAll(s.getBody(), x).then(p(function (e) {
return e = H(e, function (e) {
return "string" != typeof e || (cb(s, e), !1)
}), W(e, function (e) {
v(e.image.src, e.blobInfo.blobUri()), e.image.src = e.blobInfo.blobUri(), e.image.removeAttribute("data-mce-src")
}), e
}))
},
N = function (e) {
return e.replace(/src="(blob:[^"]+)"/g, function (e, n) {
var t = f.getResultUri(n);
if (t) return 'src="' + t + '"';
var r = l.getByUri(n);
return (r = r || X(s.editorManager.get(), function (e, t) {
return e || t.editorUpload && t.editorUpload.blobCache.getByUri(n)
}, null)) ? 'src="data:' + r.blob().type + ";base64," + r.base64() + '"' : e
})
};
return s.on("SetContent", function () {
(bc(s) ? w : S)()
}), s.on("RawSaveContent", function (e) {
e.content = N(e.content)
}), s.on("GetContent", function (e) {
e.source_view || "raw" === e.format || "tree" === e.format || (e.content = N(e.content))
}), s.on("PostRender", function () {
s.parser.addNodeFilter("img", function (e) {
W(e, function (e) {
var t, n = e.attr("src");
l.getByUri(n) || (t = f.getResultUri(n)) && e.attr("src", t)
})
})
}), {
blobCache: l,
addFilter: function (e) {
d.push(e)
},
uploadImages: C,
uploadImagesAuto: w,
scanForImages: S,
destroy: function () {
l.destroy(), f.destroy(), o = r = null
}
}
};
function bb(e) {
var r, t, n = {},
o = function (e, t) {
e && ("string" != typeof e ? kt.each(e, function (e, t) {
o(t, e)
}) : (S(t) || (t = [t]), kt.each(t, function (e) {
"undefined" == typeof e.deep && (e.deep = !e.selector), "undefined" == typeof e.split && (e.split = !e.selector || e.inline), "undefined" == typeof e.remove && e.selector && !e.inline && (e.remove = "none"), e.selector && e.inline && (e.mixed = !0, e.block_expand = !0), "string" == typeof e.classes && (e.classes = e.classes.split(/\s+/))
}), n[e] = t))
};
return o((r = e.dom, t = {
valigntop: [{
selector: "td,th",
styles: {
verticalAlign: "top"
}
}],
valignmiddle: [{
selector: "td,th",
styles: {
verticalAlign: "middle"
}
}],
valignbottom: [{
selector: "td,th",
styles: {
verticalAlign: "bottom"
}
}],
alignleft: [{
selector: "figure.image",
collapsed: !1,
classes: "align-left",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {
textAlign: "left"
},
inherit: !1,
preview: !1,
defaultBlock: "div"
}, {
selector: "img,table",
collapsed: !1,
styles: {
"float": "left"
},
preview: "font-family font-size"
}],
aligncenter: [{
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {
textAlign: "center"
},
inherit: !1,
preview: "font-family font-size",
defaultBlock: "div"
}, {
selector: "figure.image",
collapsed: !1,
classes: "align-center",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "img",
collapsed: !1,
styles: {
display: "block",
marginLeft: "auto",
marginRight: "auto"
},
preview: !1
}, {
selector: "table",
collapsed: !1,
styles: {
marginLeft: "auto",
marginRight: "auto"
},
preview: "font-family font-size"
}],
alignright: [{
selector: "figure.image",
collapsed: !1,
classes: "align-right",
ceFalseOverride: !0,
preview: "font-family font-size"
}, {
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {
textAlign: "right"
},
inherit: !1,
preview: "font-family font-size",
defaultBlock: "div"
}, {
selector: "img,table",
collapsed: !1,
styles: {
"float": "right"
},
preview: "font-family font-size"
}],
alignjustify: [{
selector: "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",
styles: {
textAlign: "justify"
},
inherit: !1,
defaultBlock: "div",
preview: "font-family font-size"
}],
bold: [{
inline: "strong",
remove: "all",
preserve_attributes: ["class", "style"]
}, {
inline: "span",
styles: {
fontWeight: "bold"
}
}, {
inline: "b",
remove: "all",
preserve_attributes: ["class", "style"]
}],
italic: [{
inline: "em",
remove: "all",
preserve_attributes: ["class", "style"]
}, {
inline: "span",
styles: {
fontStyle: "italic"
}
}, {
inline: "i",
remove: "all",
preserve_attributes: ["class", "style"]
}],
underline: [{
inline: "span",
styles: {
textDecoration: "underline"
},
exact: !0
}, {
inline: "u",
remove: "all",
preserve_attributes: ["class", "style"]
}],
strikethrough: [{
inline: "span",
styles: {
textDecoration: "line-through"
},
exact: !0
}, {
inline: "strike",
remove: "all",
preserve_attributes: ["class", "style"]
}, {
inline: "s",
remove: "all",
preserve_attributes: ["class", "style"]
}],
forecolor: {
inline: "span",
styles: {
color: "%value"
},
links: !0,
remove_similar: !0,
clear_child_styles: !0
},
hilitecolor: {
inline: "span",
styles: {
backgroundColor: "%value"
},
links: !0,
remove_similar: !0,
clear_child_styles: !0
},
fontname: {
inline: "span",
toggle: !1,
styles: {
fontFamily: "%value"
},
clear_child_styles: !0
},
fontsize: {
inline: "span",
toggle: !1,
styles: {
fontSize: "%value"
},
clear_child_styles: !0
},
lineheight: {
selector: "h1,h2,h3,h4,h5,h6,p,li,td,th,div",
defaultBlock: "p",
styles: {
lineHeight: "%value"
}
},
fontsize_class: {
inline: "span",
attributes: {
"class": "%value"
}
},
blockquote: {
block: "blockquote",
wrapper: !0,
remove: "all"
},
subscript: {
inline: "sub"
},
superscript: {
inline: "sup"
},
code: {
inline: "code"
},
link: {
inline: "a",
selector: "a",
remove: "all",
split: !0,
deep: !0,
onmatch: function (e, t, n) {
return An(e) && e.hasAttribute("href")
},
onformat: function (n, e, t) {
kt.each(t, function (e, t) {
r.setAttrib(n, t, e)
})
}
},
removeformat: [{
selector: "b,strong,em,i,font,u,strike,s,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",
remove: "all",
split: !0,
expand: !1,
block_expand: !0,
deep: !0
}, {
selector: "span",
attributes: ["style", "class"],
remove: "empty",
split: !0,
expand: !1,
deep: !0
}, {
selector: "*",
attributes: ["style", "class"],
split: !1,
expand: !1,
deep: !0
}]
}, kt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/), function (e) {
t[e] = {
block: e,
remove: "all"
}
}), t)), o(e.getParam("formats")), {
get: function (e) {
return e ? n[e] : n
},
has: function (e) {
return he(n, e)
},
register: o,
unregister: function (e) {
return e && n[e] && delete n[e], n
}
}
}
var Cb, wb, xb = kt.each,
Sb = Eu.DOM,
Nb = function (e, t) {
var n, o, r, m = t && t.schema || Ci({}),
p = function (e) {
o = "string" == typeof e ? {
name: e,
classes: [],
attrs: {}
} : e;
var t, n, r = Sb.create(o.name);
return t = r, (n = o).classes.length && Sb.addClass(t, n.classes.join(" ")), Sb.setAttribs(t, n.attrs), r
},
g = function (n, e, t) {
var r, o, i, a, u, s, c, l = 0 < e.length && e[0],
f = l && l.name,
d = (a = f, u = "string" != typeof (i = n) ? i.nodeName.toLowerCase() : i, s = m.getElementRule(u), !(!(c = s && s.parentsRequired) || !c.length) && (a && -1 !== kt.inArray(c, a) ? a : c[0]));
if (d) f === d ? (o = e[0], e = e.slice(1)) : o = d;
else if (l) o = e[0], e = e.slice(1);
else if (!t) return n;
return o && (r = p(o)).appendChild(n), t && (r || (r = Sb.create("div")).appendChild(n), kt.each(t, function (e) {
var t = p(e);
r.insertBefore(t, n)
})), g(r, e, o && o.siblings)
};
return e && e.length ? (o = e[0], n = p(o), (r = Sb.create("div")).appendChild(g(n, e.slice(1), o.siblings)), r) : ""
},
Eb = function (e) {
var t, a = {
classes: [],
attrs: {}
};
return "*" !== (e = a.selector = kt.trim(e)) && (t = e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g, function (e, t, n, r, o) {
switch (t) {
case "#":
a.attrs.id = n;
break;
case ".":
a.classes.push(n);
break;
case ":":
-1 !== kt.inArray("checked disabled enabled read-only required".split(" "), n) && (a.attrs[n] = n)
}
var i;
return "[" !== r || (i = o.match(/([\w\-]+)(?:\=\"([^\"]+))?/)) && (a.attrs[i[1]] = i[2]), ""
})), a.name = t || "div", a
},
kb = function (n, e) {
var t, r, o, i = "",
a = (o = n.getParam("preview_styles", "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"), q(o) ? o : "");
if ("" === a) return "";
var u = function (e) {
return e.replace(/%(\w+)/g, "")
};
if ("string" == typeof e) {
if (!(e = n.formatter.get(e))) return;
e = e[0]
}
if ("preview" in e) {
var s = ge(e, "preview");
if (s.is(!1)) return "";
a = s.getOr(a)
}
t = e.block || e.inline || "span";
var c, l = (c = e.selector) && "string" == typeof c ? (c = (c = c.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g, "$1"), kt.map(c.split(/(?:>|\s+(?![^\[\]]+\]))/), function (e) {
var t = kt.map(e.split(/(?:~\+|~|\+)/), Eb),
n = t.pop();
return t.length && (n.siblings = t), n
}).reverse()) : [],
f = l.length ? (l[0].name || (l[0].name = t), t = e.selector, Nb(l, n)) : Nb([t], n),
d = Sb.select(t, f)[0] || f.firstChild;
return xb(e.styles, function (e, t) {
var n = u(e);
n && Sb.setStyle(d, t, n)
}), xb(e.attributes, function (e, t) {
var n = u(e);
n && Sb.setAttrib(d, t, n)
}), xb(e.classes, function (e) {
var t = u(e);
Sb.hasClass(d, t) || Sb.addClass(d, t)
}), n.fire("PreviewFormats"), Sb.setStyles(f, {
position: "absolute",
left: -65535
}), n.getBody().appendChild(f), r = Sb.getStyle(n.getBody(), "fontSize", !0), r = /px$/.test(r) ? parseInt(r, 10) : 0, xb(a.split(" "), function (e) {
var t = Sb.getStyle(d, e, !0);
if (!("background-color" === e && /transparent|rgba\s*\([^)]+,\s*0\)/.test(t) && (t = Sb.getStyle(n.getBody(), e, !0), "#ffffff" === Sb.toHex(t).toLowerCase()) || "color" === e && "#000000" === Sb.toHex(t).toLowerCase())) {
if ("font-size" === e && /em|%$/.test(t)) {
if (0 === r) return;
t = parseFloat(t) / (/%$/.test(t) ? 100 : 1) * r + "px"
}
"border" === e && t && (i += "padding:0 2px;"), i += e + ":" + t + ";"
}
}), n.fire("AfterPreviewFormats"), Sb.remove(f), i
},
_b = function (s) {
var e = bb(s),
u = Ou(null);
return function (e) {
e.addShortcut("meta+b", "", "Bold"), e.addShortcut("meta+i", "", "Italic"), e.addShortcut("meta+u", "", "Underline");
for (var t = 1; t <= 6; t++) e.addShortcut("access+" + t, "", ["FormatBlock", !1, "h" + t]);
e.addShortcut("access+7", "", ["FormatBlock", !1, "p"]), e.addShortcut("access+8", "", ["FormatBlock", !1, "div"]), e.addShortcut("access+9", "", ["FormatBlock", !1, "address"])
}(s), Sh(s), {
get: e.get,
has: e.has,
register: e.register,
unregister: e.unregister,
apply: function (e, t, n) {
var r, o, i;
r = e, o = t, i = n, qv(s).formatter.apply(r, o, i)
},
remove: function (e, t, n, r) {
var o, i, a, u;
o = e, i = t, a = n, u = r, qv(s).formatter.remove(o, i, a, u)
},
toggle: function (e, t, n) {
var r, o, i;
r = e, o = t, i = n, qv(s).formatter.toggle(r, o, i)
},
match: function (e, t, n) {
return r = e, o = t, i = n, qv(s).formatter.match(r, o, i);
var r, o, i
},
closest: function (e) {
return t = e, qv(s).formatter.closest(t);
var t
},
matchAll: function (e, t) {
return n = e, r = t, qv(s).formatter.matchAll(n, r);
var n, r
},
matchNode: function (e, t, n, r) {
return o = e, i = t, a = n, u = r, qv(s).formatter.matchNode(o, i, a, u);
var o, i, a, u
},
canApply: function (e) {
return t = e, qv(s).formatter.canApply(t);
var t
},
formatChanged: function (e, t, n) {
return r = u, o = e, i = t, void 0 === (a = n) && (a = !1), qv(s).formatter.formatChanged(r, o, i, a);
var r, o, i, a
},
getCssText: N(kb, s)
}
},
Ab = function (n, r, o) {
var i = Ou(!1),
a = function (e) {
Lv(r, !1, o), r.add({}, e)
};
n.on("init", function () {
r.add()
}), n.on("BeforeExecCommand", function (e) {
var t = e.command.toLowerCase();
"undo" !== t && "redo" !== t && "mcerepaint" !== t && (Iv(r, o), r.beforeChange())
}), n.on("ExecCommand", function (e) {
var t = e.command.toLowerCase();
"undo" !== t && "redo" !== t && "mcerepaint" !== t && a(e)
}), n.on("ObjectResizeStart cut", function () {
r.beforeChange()
}), n.on("SaveContent ObjectResized blur", a), n.on("dragend", a), n.on("keyup", function (e) {
var t = e.keyCode;
e.isDefaultPrevented() || ((33 <= t && t <= 36 || 37 <= t && t <= 40 || 45 === t || e.ctrlKey) && (a(), n.nodeChanged()), 46 !== t && 8 !== t || n.nodeChanged(), i.get() && r.typing && !1 === Bv(Rv(n), r.data[0]) && (!1 === n.isDirty() && (n.setDirty(!0), n.fire("change", {
level: r.data[0],
lastLevel: null
})), n.fire("TypingUndo"), i.set(!1), n.nodeChanged()))
}), n.on("keydown", function (e) {
var t, n = e.keyCode;
e.isDefaultPrevented() || (33 <= n && n <= 36 || 37 <= n && n <= 40 || 45 === n ? r.typing && a(e) : (t = e.ctrlKey && !e.altKey || e.metaKey, !(n < 16 || 20 < n) || 224 === n || 91 === n || r.typing || t || (r.beforeChange(), Lv(r, !0, o), r.add({}, e), i.set(!0))))
}), n.on("mousedown", function (e) {
r.typing && a(e)
});
n.on("input", function (e) {
var t, n;
e.inputType && ("insertReplacementText" === e.inputType || "insertText" === (n = e).inputType && null === n.data || ("insertFromPaste" === (t = e).inputType || "insertFromDrop" === t.inputType)) && a(e)
}), n.on("AddUndo Undo Redo ClearUndos", function (e) {
e.isDefaultPrevented() || n.nodeChanged()
})
},
Rb = function (s) {
var e, c = Ou(U.none()),
l = Ou(0),
f = Ou(0),
d = {
data: [],
typing: !1,
beforeChange: function () {
var e, t;
e = l, t = c, qv(s).undoManager.beforeChange(e, t)
},
add: function (e, t) {
return n = d, r = f, o = l, i = c, a = e, u = t, qv(s).undoManager.addUndoLevel(n, r, o, i, a, u);
var n, r, o, i, a, u
},
undo: function () {
return e = d, t = l, n = f, qv(s).undoManager.undo(e, t, n);
var e, t, n
},
redo: function () {
return e = s, t = f, n = d.data, qv(e).undoManager.redo(t, n);
var e, t, n
},
clear: function () {
var e, t;
e = d, t = f, qv(s).undoManager.clear(e, t)
},
reset: function () {
var e;
e = d, qv(s).undoManager.reset(e)
},
hasUndo: function () {
return e = d, t = f, qv(s).undoManager.hasUndo(e, t);
var e, t
},
hasRedo: function () {
return e = d, t = f, qv(s).undoManager.hasRedo(e, t);
var e, t
},
transact: function (e) {
return t = d, n = l, r = e, qv(s).undoManager.transact(t, n, r);
var t, n, r
},
ignore: function (e) {
var t, n;
t = l, n = e, qv(s).undoManager.ignore(t, n)
},
extra: function (e, t) {
var n, r, o, i;
n = d, r = f, o = e, i = t, qv(s).undoManager.extra(n, r, o, i)
}
};
return Hv(s) || Ab(s, d, l), (e = s).addShortcut("meta+z", "", "Undo"), e.addShortcut("meta+y,meta+shift+z", "", "Redo"), d
},
Tb = [9, 27, ud.HOME, ud.END, 19, 20, 44, 144, 145, 33, 34, 45, 16, 17, 18, 91, 92, 93, ud.DOWN, ud.UP, ud.LEFT, ud.RIGHT].concat(wt.browser.isFirefox() ? [224] : []),
Db = "data-mce-placeholder",
Ob = function (e) {
return "keydown" === e.type || "keyup" === e.type
},
Bb = function (e) {
var t = e.keyCode;
return t === ud.BACKSPACE || t === ud.DELETE
},
Pb = function (a) {
var e, u = a.dom,
s = vc(a),
c = (e = a).getParam("placeholder", pc.getAttrib(e.getElement(), "placeholder"), "string"),
l = function (e, t) {
var n, r, o, i;
! function (e) {
if (Ob(e)) {
var t = e.keyCode;
return !Bb(e) && (ud.metaKeyPressed(e) || e.altKey || 112 <= t && t <= 123 || M(Tb, t))
}
return !1
}(e) && (n = a.getBody(), r = !(Ob(o = e) && !(Bb(o) || "keyup" === o.type && 229 === o.keyCode)) && function (e, t, n) {
if ($o(At.fromDom(t), !1)) {
var r = "" === n,
o = t.firstElementChild;
return !o || !e.getStyle(t.firstElementChild, "padding-left") && !e.getStyle(t.firstElementChild, "padding-right") && (r ? !e.isBlock(o) : n === o.nodeName.toLowerCase())
}
return !1
}(u, n, s), "" !== u.getAttrib(n, Db) === r && !t || (u.setAttrib(n, Db, r ? c : null), u.setAttrib(n, "aria-placeholder", r ? c : null), i = r, a.fire("PlaceholderToggle", {
state: i
}), a.on(r ? "keydown" : "keyup", l), a.off(r ? "keyup" : "keydown", l)))
};
c && a.on("init", function (e) {
l(e, !0), a.on("change SetContent ExecCommand", l), a.on("paste", function (e) {
return qr.setEditorTimeout(a, function () {
return l(e)
})
})
})
},
Lb = /[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,
Ib = function (e, t) {
return Tt(At.fromDom(t), e.getParam("inline_boundaries_selector", "a[href],code,.mce-annotation", "string"))
},
Mb = function (e) {
return "rtl" === Eu.DOM.getStyle(e, "direction", !0) || (t = e.textContent, Lb.test(t));
var t
},
Fb = function (e, t, n) {
var r, o, i, a = (r = e, o = t, i = n, H(Eu.DOM.getParents(i.container(), "*", o), r));
return U.from(a[a.length - 1])
},
Ub = function (e, t) {
if (!t) return t;
var n = t.container(),
r = t.offset();
return e ? yo(n) ? In(n.nextSibling) ? $s(n.nextSibling, 0) : $s.after(n) : wo(t) ? $s(n, r + 1) : t : yo(n) ? In(n.previousSibling) ? $s(n.previousSibling, n.previousSibling.data.length) : $s.before(n) : xo(t) ? $s(n, r - 1) : t
},
zb = N(Ub, !0),
jb = N(Ub, !1),
Hb = function (e, t) {
return Pt(e, t) ? Ar(t, function (e) {
return ro(e) || io(e)
}, (n = e, function (e) {
return Ot(n, At.fromDom(e.dom.parentNode))
})) : U.none();
var n
},
Vb = function (e) {
var t, n, r;
e.dom.isEmpty(e.getBody()) && (e.setContent(""), n = (t = e).getBody(), r = n.firstChild && t.dom.isBlock(n.firstChild) ? n.firstChild : n, t.selection.setCursorLocation(r, 0))
},
qb = function (e, t) {
return {
from: e,
to: t
}
},
$b = function (e, t) {
var n = At.fromDom(e),
r = At.fromDom(t.container());
return Hb(n, r).map(function (e) {
return {
block: e,
position: t
}
})
},
Wb = function (o, i, e) {
var t = $b(o, $s.fromRangeStart(e)),
n = t.bind(function (e) {
return Ol(i, o, e.position).bind(function (e) {
return $b(o, e).map(function (e) {
return t = o, n = i, zn((r = e).position.getNode()) && !1 === $o(r.block) ? Ll(!1, r.block.dom).bind(function (e) {
return e.isEqual(r.position) ? Ol(n, t, e).bind(function (e) {
return $b(t, e)
}) : U.some(r)
}).getOr(r) : r;
var t, n, r
})
})
});
return ds(t, n, qb).filter(function (e) {
return !1 === Ot((r = e).from.block, r.to.block) && $t((n = e).from.block).bind(function (t) {
return $t(n.to.block).filter(function (e) {
return Ot(t, e)
})
}).isSome() && (!1 === Vn((t = e).from.block.dom) && !1 === Vn(t.to.block.dom));
var t, n, r
})
},
Kb = function (e) {
var t, n = (t = Gt(e), G(t, eo).fold(function () {
return t
}, function (e) {
return t.slice(0, e)
}));
return W(n, pn), n
},
Xb = function (e, t) {
var n = Dp(t, e);
return Y(n.reverse(), function (e) {
return $o(e)
}).each(pn)
},
Yb = function (e, t, n, r) {
if ($o(n)) return _p(n), Fl(n.dom);
0 === H(Xt(r), function (e) {
return !$o(e)
}).length && $o(t) && sn(r, At.fromTag("br"));
var o = Ml(n.dom, $s.before(r.dom));
return W(Kb(t), function (e) {
sn(r, e)
}), Xb(e, t), o
},
Gb = function (e, t, n) {
if ($o(n)) return pn(n), $o(t) && _p(t), Fl(t.dom);
var r = Ul(n.dom);
return W(Kb(t), function (e) {
fn(n, e)
}), Xb(e, t), r
},
Jb = function (e, t) {
return Pt(t, e) ? (n = Dp(e, t), U.from(n[n.length - 1])) : U.none();
var n
},
Qb = function (e, t) {
Ll(e, t.dom).map(function (e) {
return e.getNode()
}).map(At.fromDom).filter(no).each(pn)
},
Zb = function (e, t, n) {
return Qb(!0, t), Qb(!1, n), Jb(t, n).fold(N(Gb, e, t, n), N(Yb, e, t, n))
},
eC = function (e, t, n, r) {
return t ? Zb(e, r, n) : Zb(e, n, r)
},
tC = function (t, n) {
var e, r, o, i = At.fromDom(t.getBody()),
a = (e = i.dom, r = n, ((o = t.selection.getRng()).collapsed ? Wb(e, r, o) : U.none()).bind(function (e) {
return eC(i, n, e.from.block, e.to.block)
}));
return a.each(function (e) {
t.selection.setRng(e.toRange())
}), a.isSome()
},
nC = function (e, t) {
var n = At.fromDom(t),
r = N(Ot, e);
return _r(n, uo, r).isSome()
},
rC = function (e, t) {
var n, r, o = Ml(e.dom, $s.fromRangeStart(t)).isNone(),
i = Il(e.dom, $s.fromRangeEnd(t)).isNone();
return !(nC(n = e, (r = t).startContainer) || nC(n, r.endContainer)) && o && i
},
oC = function (e) {
var n, r, o, t, i = At.fromDom(e.getBody()),
a = e.selection.getRng();
return rC(i, a) ? ((t = e).setContent(""), t.selection.setCursorLocation(), !0) : (n = i, r = e.selection, o = r.getRng(), ds(Hb(n, At.fromDom(o.startContainer)), Hb(n, At.fromDom(o.endContainer)), function (e, t) {
return !1 === Ot(e, t) && (o.deleteContents(), eC(n, !0, e, t).each(function (e) {
r.setRng(e.toRange())
}), !0)
}).getOr(!1))
},
iC = function (e, t) {
return !e.selection.isCollapsed() && oC(e)
},
aC = Hn,
uC = Vn,
sC = function (e, t, n, r, o) {
return U.from(t._selectionOverrides.showCaret(e, n, r, o))
},
cC = function (e, t) {
var n, r;
return e.fire("BeforeObjectSelected", {
target: t
}).isDefaultPrevented() ? U.none() : U.some(((r = (n = t).ownerDocument.createRange()).selectNode(n), r))
},
lC = function (e, t, n) {
var r = ll(1, e.getBody(), t),
o = $s.fromRangeStart(r),
i = o.getNode();
if (Wc(i)) return sC(1, e, i, !o.isAtEnd(), !1);
var a = o.getNode(!0);
if (Wc(a)) return sC(1, e, a, !1, !1);
var u = e.dom.getParent(o.getNode(), function (e) {
return uC(e) || aC(e)
});
return Wc(u) ? sC(1, e, u, !1, n) : U.none()
},
fC = function (e, t, n) {
return t.collapsed ? lC(e, t, n).getOr(t) : t
},
dC = function (e) {
return Np(e) || Cp(e)
},
mC = function (e) {
return Ep(e) || wp(e)
},
pC = function (n, r, e, t, o, i) {
var a, u;
return sC(t, n, i.getNode(!o), o, !0).each(function (e) {
var t;
r.collapsed ? (t = r.cloneRange(), o ? t.setEnd(e.startContainer, e.startOffset) : t.setStart(e.endContainer, e.endOffset), t.deleteContents()) : r.deleteContents(), n.selection.setRng(e)
}), a = n.dom, In(u = e) && 0 === u.data.length && a.remove(u), !0
},
gC = function (e, t) {
var n = e.selection.getRng();
if (!In(n.commonAncestorContainer)) return !1;
var r = t ? Vs.Forwards : Vs.Backwards,
o = _l(e.getBody()),
i = N(pl, t ? o.next : o.prev),
a = t ? dC : mC,
u = dl(r, e.getBody(), n),
s = Ub(t, i(u));
if (!s || !gl(u, s)) return !1;
if (a(s)) return pC(e, n, u.getNode(), r, t, s);
var c = i(s);
return !!(c && a(c) && gl(s, c)) && pC(e, n, u.getNode(), r, t, c)
},
hC = Cr([{
remove: ["element"]
}, {
moveToElement: ["element"]
}, {
moveToPosition: ["position"]
}]),
vC = function (e, t, n, r) {
var o = r.getNode(!1 === t);
return Hb(At.fromDom(e), At.fromDom(n.getNode())).map(function (e) {
return $o(e) ? hC.remove(e.dom) : hC.moveToElement(o)
}).orThunk(function () {
return U.some(hC.moveToElement(o))
})
},
yC = function (u, s, c) {
return Ol(s, u, c).bind(function (e) {
return a = e.getNode(), uo(At.fromDom(a)) || io(At.fromDom(a)) ? U.none() : (t = u, o = e, i = function (e) {
return to(At.fromDom(e)) && !ol(r, o, t)
}, fl(!(n = s), r = c).fold(function () {
return fl(n, o).fold(C, i)
}, i) ? U.none() : s && Vn(e.getNode()) || !1 === s && Vn(e.getNode(!0)) ? vC(u, s, c, e) : s && Ep(c) || !1 === s && Np(c) ? U.some(hC.moveToPosition(e)) : U.none());
var t, n, r, o, i, a
})
},
bC = function (r, e, o) {
return i = e, a = o.getNode(!1 === i), u = i ? "after" : "before", An(a) && a.getAttribute("data-mce-caret") === u ? (t = e, n = o.getNode(!1 === e), (t && Vn(n.nextSibling) ? U.some(hC.moveToElement(n.nextSibling)) : !1 === t && Vn(n.previousSibling) ? U.some(hC.moveToElement(n.previousSibling)) : U.none()).fold(function () {
return yC(r, e, o)
}, U.some)) : yC(r, e, o).bind(function (e) {
return t = r, n = o, e.fold(function (e) {
return U.some(hC.remove(e))
}, function (e) {
return U.some(hC.moveToElement(e))
}, function (e) {
return ol(n, e, t) ? U.none() : U.some(hC.moveToPosition(e))
});
var t, n
});
var t, n, i, a, u
},
CC = function (e, t) {
return U.from(id(e.getBody(), t))
},
wC = function (a, u) {
var e = a.selection.getNode();
return CC(a, e).filter(Vn).fold(function () {
return e = a.getBody(), t = u, n = a.selection.getRng(), r = ll(t ? 1 : -1, e, n), o = $s.fromRangeStart(r), i = At.fromDom(e), (!1 === t && Ep(o) ? U.some(hC.remove(o.getNode(!0))) : t && Np(o) ? U.some(hC.remove(o.getNode())) : !1 === t && Np(o) && Vp(i, o) ? qp(i, o).map(function (e) {
return hC.remove(e.getNode())
}) : t && Ep(o) && Hp(i, o) ? $p(i, o).map(function (e) {
return hC.remove(e.getNode())
}) : bC(e, t, o)).exists(function (e) {
return e.fold(function (e) {
return o._selectionOverrides.hideFakeCaret(), Cg(o, i, At.fromDom(e)), !0
}, (r = i = u, function (e) {
var t = r ? $s.before(e) : $s.after(e);
return n.selection.setRng(t.toRange()), !0
}), (t = n = o = a, function (e) {
return t.selection.setRng(e.toRange()), !0
}));
var t, n, r, o, i
});
var e, t, n, r, o, i
}, k)
},
xC = function (t, n) {
var e = t.selection.getNode();
return !!Vn(e) && CC(t, e.parentNode).filter(Vn).fold(function () {
var e;
return e = At.fromDom(t.getBody()), W(Gu(e, ".mce-offscreen-selection"), pn), Cg(t, n, At.fromDom(t.selection.getNode())), Vb(t), !0
}, function () {
return !0
})
},
SC = function (e) {
var t, n = e.dom,
r = e.selection,
o = id(e.getBody(), r.getNode());
return Hn(o) && n.isBlock(o) && n.isEmpty(o) && (t = n.create("br", {
"data-mce-bogus": "1"
}), n.setHTML(o, ""), o.appendChild(t), r.setRng($s.before(t).toRange())), !0
},
NC = function (e, t) {
return (e.selection.isCollapsed() ? wC : xC)(e, t)
},
EC = function (e, t) {
return !!e.selection.isCollapsed() && (n = e, r = t, o = $s.fromRangeStart(n.selection.getRng()), Ol(r, n.getBody(), o).filter(function (e) {
return (r ? yp : bp)(e)
}).bind(function (e) {
return U.from(il(r ? 0 : -1, e))
}).exists(function (e) {
return n.selection.select(e), !0
}));
var n, r, o
},
kC = In,
_C = function (e) {
return kC(e) && e.data[0] === fo
},
AC = function (e) {
return kC(e) && e.data[e.data.length - 1] === fo
},
RC = function (e) {
return e.ownerDocument.createTextNode(fo)
},
TC = function (e, t) {
return (e ? function (e) {
if (kC(e.previousSibling)) return AC(e.previousSibling) || e.previousSibling.appendData(fo), e.previousSibling;
if (kC(e)) return _C(e) || e.insertData(0, fo), e;
var t = RC(e);
return e.parentNode.insertBefore(t, e), t
} : function (e) {
if (kC(e.nextSibling)) return _C(e.nextSibling) || e.nextSibling.insertData(0, fo), e.nextSibling;
if (kC(e)) return AC(e) || e.appendData(fo), e;
var t = RC(e);
return e.nextSibling ? e.parentNode.insertBefore(t, e.nextSibling) : e.parentNode.appendChild(t), t
})(t)
},
DC = N(TC, !0),
OC = N(TC, !1),
BC = function (e, t) {
return In(e.container()) ? TC(t, e.container()) : TC(t, e.getNode())
},
PC = function (e, t) {
var n = t.get();
return n && e.container() === n && yo(n)
},
LC = function (n, e) {
return e.fold(function (e) {
Fc(n.get());
var t = DC(e);
return n.set(t), U.some($s(t, t.length - 1))
}, function (e) {
return Fl(e).map(function (e) {
if (PC(e, n)) return $s(n.get(), 1);
Fc(n.get());
var t = BC(e, !0);
return n.set(t), $s(t, 1)
})
}, function (e) {
return Ul(e).map(function (e) {
if (PC(e, n)) return $s(n.get(), n.get().length - 1);
Fc(n.get());
var t = BC(e, !1);
return n.set(t), $s(t, t.length - 1)
})
}, function (e) {
Fc(n.get());
var t = OC(e);
return n.set(t), U.some($s(t, 1))
})
},
IC = function (e, t) {
for (var n = 0; n < e.length; n++) {
var r = e[n].apply(null, t);
if (r.isSome()) return r
}
return U.none()
},
MC = Cr([{
before: ["element"]
}, {
start: ["element"]
}, {
end: ["element"]
}, {
after: ["element"]
}]),
FC = function (e, t) {
var n = rl(t, e);
return n || e
},
UC = function (e, t, n) {
var r = zb(n),
o = FC(t, r.container());
return Fb(e, o, r).fold(function () {
return Il(o, r).bind(N(Fb, e, o)).map(function (e) {
return MC.before(e)
})
}, U.none)
},
zC = function (e, t) {
return null === Hl(e, t)
},
jC = function (e, t, n) {
return Fb(e, t, n).filter(N(zC, t))
},
HC = function (e, t, n) {
var r = jb(n);
return jC(e, t, r).bind(function (e) {
return Ml(e, r).isNone() ? U.some(MC.start(e)) : U.none()
})
},
VC = function (e, t, n) {
var r = zb(n);
return jC(e, t, r).bind(function (e) {
return Il(e, r).isNone() ? U.some(MC.end(e)) : U.none()
})
},
qC = function (e, t, n) {
var r = jb(n),
o = FC(t, r.container());
return Fb(e, o, r).fold(function () {
return Ml(o, r).bind(N(Fb, e, o)).map(function (e) {
return MC.after(e)
})
}, U.none)
},
$C = function (e) {
return !1 === Mb(KC(e))
},
WC = function (e, t, n) {
return IC([UC, HC, VC, qC], [e, t, n]).filter($C)
},
KC = function (e) {
return e.fold(o, o, o, o)
},
XC = function (e) {
return e.fold(E("before"), E("start"), E("end"), E("after"))
},
YC = function (e) {
return e.fold(MC.before, MC.before, MC.after, MC.after)
},
GC = function (e) {
return e.fold(MC.start, MC.start, MC.end, MC.end)
},
JC = function (a, e, u, t, n, s) {
return ds(Fb(e, u, t), Fb(e, u, n), function (e, t) {
return e !== t && (r = t, o = rl(e, n = u), i = rl(r, n), o && o === i) ? MC.after(a ? e : t) : s;
var n, r, o, i
}).getOr(s)
},
QC = function (e, r) {
return e.fold(k, function (e) {
return n = r, !(XC(t = e) === XC(n) && KC(t) === KC(n));
var t, n
})
},
ZC = function (e, t) {
return e ? t.fold(a(U.some, MC.start), U.none, a(U.some, MC.after), U.none) : t.fold(U.none, a(U.some, MC.before), U.none, a(U.some, MC.end))
},
ew = function (e, a, u, s) {
var t = Ub(e, s),
c = WC(a, u, t);
return WC(a, u, t).bind(N(ZC, e)).orThunk(function () {
return n = a, r = u, o = c, i = Ub(t = e, s), Ol(t, r, i).map(N(Ub, t)).fold(function () {
return o.map(YC)
}, function (e) {
return WC(n, r, e).map(N(JC, t, n, r, i, e)).filter(N(QC, o))
}).filter($C);
var t, n, r, o, i
})
},
tw = (N(ew, !1), N(ew, !0), function (e, t, n) {
var r = e ? 1 : -1;
return t.setRng($s(n.container(), n.offset() + r).toRange()), t.getSel().modify("move", e ? "forward" : "backward", "word"), !0
}),
nw = function (e, t) {
var n = t.selection.getRng(),
r = e ? $s.fromRangeEnd(n) : $s.fromRangeStart(n);
return !!T(t.selection.getSel().modify) && (e && wo(r) ? tw(!0, t.selection, r) : !(e || !xo(r)) && tw(!1, t.selection, r))
},
rw = function (e, t) {
var n = e.dom.createRng();
n.setStart(t.container(), t.offset()), n.setEnd(t.container(), t.offset()), e.selection.setRng(n)
},
ow = function (e, t) {
e ? t.setAttribute("data-mce-selected", "inline-boundary") : t.removeAttribute("data-mce-selected")
},
iw = function (t, e, n) {
return LC(e, n).map(function (e) {
return rw(t, e), n
})
},
aw = function (e, t) {
var n, r;
e.selection.isCollapsed() && !0 !== e.composing && t.get() && (n = $s.fromRangeStart(e.selection.getRng()), $s.isTextPosition(n) && !1 === (wo(r = n) || xo(r)) && (rw(e, Mc(t.get(), n)), t.set(null)))
},
uw = function (e, t, n) {
return !!_c(e) && (o = t, i = n, a = (r = e).getBody(), u = $s.fromRangeStart(r.selection.getRng()), s = N(Ib, r), ew(i, s, a, u).bind(function (e) {
return iw(r, o, e)
}).isSome());
var r, o, i, a, u, s
},
sw = function (e, t, n) {
return !!_c(t) && nw(e, t)
},
cw = function (d) {
var m = Ou(null),
p = N(Ib, d);
return d.on("NodeChange", function (e) {
var n, r, o, t, i, a, u, s, c, l, f;
!_c(d) || wt.browser.isIE() && e.initial || (a = p, u = d.dom, s = e.parents, c = z(Gu(At.fromDom(u.getRoot()), '*[data-mce-selected="inline-boundary"]'), function (e) {
return e.dom
}), l = H(c, a), f = H(s, a), W(ee(l, f), N(ow, !1)), W(ee(f, l), N(ow, !0)), aw(d, m), n = p, r = d, o = m, t = e.parents, r.selection.isCollapsed() && (i = H(t, n), W(i, function (e) {
var t = $s.fromRangeStart(r.selection.getRng());
WC(n, r.getBody(), t).bind(function (e) {
return iw(r, o, e)
})
})))
}), m
},
lw = N(sw, !0),
fw = N(sw, !1),
dw = function (t, n) {
return function (e) {
return LC(n, e).exists(function (e) {
return rw(t, e), !0
})
}
},
mw = function (r, o, i, a) {
var u = r.getBody(),
s = N(Ib, r);
r.undoManager.ignore(function () {
var e, t, n;
r.selection.setRng((e = i, t = a, (n = document.createRange()).setStart(e.container(), e.offset()), n.setEnd(t.container(), t.offset()), n)), r.execCommand("Delete"), WC(s, u, $s.fromRangeStart(r.selection.getRng())).map(GC).map(dw(r, o))
}), r.nodeChanged()
},
pw = function (n, r, i, o) {
var e, t, a = (e = n.getBody(), t = o.container(), rl(t, e) || e),
u = N(Ib, n),
s = WC(u, a, o);
return s.bind(function (e) {
return i ? e.fold(E(U.some(GC(e))), U.none, E(U.some(YC(e))), U.none) : e.fold(U.none, E(U.some(YC(e))), U.none, E(U.some(GC(e))))
}).map(dw(n, r)).getOrThunk(function () {
var t = Bl(i, a, o),
e = t.bind(function (e) {
return WC(u, a, e)
});
return ds(s, e, function () {
return Fb(u, a, o).exists(function (e) {
return !!ds(Fl(o = e), Ul(o), function (e, t) {
var n = Ub(!0, e),
r = Ub(!1, t);
return Il(o, n).forall(function (e) {
return e.isEqual(r)
})
}).getOr(!0) && (Cg(n, i, At.fromDom(e)), !0);
var o
})
}).orThunk(function () {
return e.bind(function (e) {
return t.map(function (e) {
return i ? mw(n, r, o, e) : mw(n, r, e, o), !0
})
})
}).getOr(!1)
})
},
gw = function (e, t, n) {
if (e.selection.isCollapsed() && _c(e)) {
var r = $s.fromRangeStart(e.selection.getRng());
return pw(e, t, n, r)
}
return !1
},
hw = function (e) {
return 1 === Gt(e).length
},
vw = function (e, t, n, r) {
var o, i, a, u, s, c = N(Nh, t),
l = z(H(r, c), function (e) {
return e.dom
});
0 === l.length ? Cg(t, e, n) : (i = n.dom, a = l, u = vh(!1), s = wh(a, u.dom), sn(At.fromDom(i), u), pn(At.fromDom(i)), o = $s(s, 0), t.selection.setRng(o.toRange()))
},
yw = function (r, o) {
var t, e = At.fromDom(r.getBody()),
n = At.fromDom(r.selection.getStart()),
s = H((t = Dp(n, e), G(t, eo).fold(E(t), function (e) {
return t.slice(0, e)
})), hw);
return re(s).exists(function (e) {
var t, i, a, u, n = $s.fromRangeStart(r.selection.getRng());
return i = o, a = n, u = e.dom, !(!ds(Fl(u), Ul(u), function (e, t) {
var n = Ub(!0, e),
r = Ub(!1, t),
o = Ub(!1, a);
return i ? Il(u, o).exists(function (e) {
return e.isEqual(r) && a.isEqual(n)
}) : Ml(u, o).exists(function (e) {
return e.isEqual(n) && a.isEqual(r)
})
}).getOr(!0) || jl((t = e).dom) && gh(t.dom)) && (vw(o, r, e, s), !0)
})
},
bw = function (e, t) {
return !!e.selection.isCollapsed() && yw(e, t)
},
Cw = function (e, t, n) {
return e._selectionOverrides.hideFakeCaret(), Cg(e, t, At.fromDom(n)), !0
},
ww = function (e, t) {
return e.selection.isCollapsed() ? (i = e, u = (a = t) ? Cp : wp, s = a ? Vs.Forwards : Vs.Backwards, c = dl(s, i.getBody(), i.selection.getRng()), u(c) ? Cw(i, a, c.getNode(!a)) : U.from(Ub(a, c)).filter(function (e) {
return u(e) && gl(c, e)
}).exists(function (e) {
return Cw(i, a, e.getNode(!a))
})) : (r = t, o = (n = e).selection.getNode(), !!$n(o) && Cw(n, r, o));
var n, r, o, i, a, u, s, c
},
xw = function (e) {
var t = parseInt(e, 10);
return isNaN(t) ? 0 : t
},
Sw = function (e, t) {
return (e || "table" === Lt(t) ? "margin" : "padding") + ("rtl" === er(t, "direction") ? "-right" : "-left")
},
Nw = function (e) {
var r, t = kw(e);
return !e.mode.isReadOnly() && (1 < t.length || (r = e, Q(t, function (e) {
var t = Sw(Sc(r), e),
n = nr(e, t).map(xw).getOr(0);
return "false" !== r.dom.getContentEditable(e.dom) && 0 < n
})))
},
Ew = function (e) {
return oo(e) || io(e)
},
kw = function (e) {
return H(z(e.selection.getSelectedBlocks(), At.fromDom), function (e) {
return !Ew(e) && !$t(e).map(Ew).getOr(!1) && Ar(e, function (e) {
return Hn(e.dom) || Vn(e.dom)
}).exists(function (e) {
return Hn(e.dom)
})
})
},
_w = function (e, c) {
var l = e.dom,
t = e.selection,
n = e.formatter,
r = e.getParam("indentation", "40px", "string"),
f = /[a-z%]+$/i.exec(r)[0],
d = parseInt(r, 10),
m = Sc(e),
o = vc(e);
e.queryCommandState("InsertUnorderedList") || e.queryCommandState("InsertOrderedList") || "" !== o || l.getParent(t.getNode(), l.isBlock) || n.apply("div"), W(kw(e), function (e) {
var t, n, r, o, i, a, u, s;
t = l, n = c, r = m, o = d, i = f, a = e.dom, s = Sw(r, At.fromDom(a)), "outdent" === n ? (u = Math.max(0, xw(a.style[s]) - o), t.setStyle(a, s, u ? u + i : "")) : (u = xw(a.style[s]) + o + i, t.setStyle(a, s, u))
})
},
Aw = function (e, t) {
if (e.selection.isCollapsed() && Nw(e)) {
var n = e.dom,
r = e.selection.getRng(),
o = $s.fromRangeStart(r),
i = n.getParent(r.startContainer, n.isBlock);
if (null !== i && Ip(At.fromDom(i), o)) return _w(e, "outdent"), !0
}
return !1
},
Rw = function (e, t) {
e.getDoc().execCommand(t, !1, null)
},
Tw = function (n, r) {
n.addCommand("delete", function () {
var e, t;
t = r, Aw(e = n) || NC(e, !1) || gC(e, !1) || gw(e, t, !1) || tC(e, !1) || Kg(e) || EC(e, !1) || ww(e, !1) || iC(e) || bw(e, !1) || (Rw(e, "Delete"), Vb(e))
}), n.addCommand("forwardDelete", function () {
var e, t;
t = r, NC(e = n, !0) || gC(e, !0) || gw(e, t, !0) || tC(e, !0) || Kg(e) || EC(e, !0) || ww(e, !0) || iC(e) || bw(e, !0) || Rw(e, "ForwardDelete")
})
},
Dw = function (e) {
return e.touches === undefined || 1 !== e.touches.length ? U.none() : U.some(e.touches[0])
},
Ow = function (a) {
var u = Ou(U.none()),
s = Ou(!1),
r = ju(function (e) {
a.fire("longpress", ke(ke({}, e), {
type: "longpress"
})), s.set(!0)
}, 400);
a.on("touchstart", function (n) {
Dw(n).each(function (e) {
r.cancel();
var t = {
x: e.clientX,
y: e.clientY,
target: n.target
};
r.throttle(n), s.set(!1), u.set(U.some(t))
})
}, !0), a.on("touchmove", function (e) {
r.cancel(), Dw(e).each(function (i) {
u.get().each(function (e) {
var t, n, r, o;
t = i, n = e, r = Math.abs(t.clientX - n.x), o = Math.abs(t.clientY - n.y), (5 < r || 5 < o) && (u.set(U.none()), s.set(!1), a.fire("longpresscancel"))
})
})
}, !0), a.on("touchend touchcancel", function (t) {
r.cancel(), "touchcancel" !== t.type && u.get().filter(function (e) {
return e.target.isEqualNode(t.target)
}).each(function () {
s.get() ? t.preventDefault() : a.fire("tap", ke(ke({}, t), {
type: "tap"
}))
})
}, !0)
},
Bw = function (e, t) {
return e.hasOwnProperty(t.nodeName)
},
Pw = function (e) {
var t, n, r, o = e.dom,
i = e.selection,
a = e.schema,
u = a.getBlockElements(),
s = i.getStart(),
c = e.getBody(),
l = vc(e);
if (s && An(s) && l) {
var f = c.nodeName.toLowerCase();
if (a.isValidChild(f, l.toLowerCase()) && (d = u, m = c, p = s, !F(Tp(At.fromDom(p), At.fromDom(m)), function (e) {
return Bw(d, e.dom)
}))) {
for (var d, m, p, g, h, v = i.getRng(), y = v.startContainer, b = v.startOffset, C = v.endContainer, w = v.endOffset, x = Em(e), s = c.firstChild; s;)
if (g = u, In(h = s) || An(h) && !Bw(g, h) && !Jl(h)) {
if (function (e, t) {
if (In(t)) {
if (0 === t.nodeValue.length) return !0;
if (/^\s+$/.test(t.nodeValue) && (!t.nextSibling || Bw(e, t.nextSibling))) return !0
}
return !1
}(u, s)) {
s = (n = s).nextSibling, o.remove(n);
continue
}
t || (t = o.create(l, yc(e)), s.parentNode.insertBefore(t, s), r = !0), s = (n = s).nextSibling, t.appendChild(n)
} else t = null, s = s.nextSibling;
r && x && (v.setStart(y, b), v.setEnd(C, w), i.setRng(v), e.nodeChanged())
}
}
},
Lw = function (e, t) {
var n;
t.hasAttribute("data-mce-caret") && (ko(t), (n = e).selection.setRng(n.selection.getRng()), e.selection.scrollIntoView(t))
},
Iw = function (e, t) {
var n, r = (n = e, Dr(At.fromDom(n.getBody()), "*[data-mce-caret]").fold(E(null), function (e) {
return e.dom
}));
if (r) return "compositionstart" === t.type ? (t.preventDefault(), t.stopPropagation(), void Lw(e, r)) : void(Co(r) && (Lw(e, r), e.undoManager.add()))
};
(wb = Cb = Cb || {})[wb.Br = 0] = "Br", wb[wb.Block = 1] = "Block", wb[wb.Wrap = 2] = "Wrap", wb[wb.Eol = 3] = "Eol";
var Mw, Fw, Uw = function (e, t) {
return e === Vs.Backwards ? Z(t) : t
},
zw = function (e, t, n, r) {
for (var o, i, a, u, s, c, l = _l(n), f = r, d = []; f && (s = l, c = f, o = t === Vs.Forwards ? s.next(c) : s.prev(c));) {
if (zn(o.getNode(!1))) return t === Vs.Forwards ? {
positions: Uw(t, d).concat([o]),
breakType: Cb.Br,
breakAt: U.some(o)
} : {
positions: Uw(t, d),
breakType: Cb.Br,
breakAt: U.some(o)
};
if (o.isVisible()) {
if (e(f, o)) {
var m = (i = t, a = f, zn((u = o).getNode(i === Vs.Forwards)) ? Cb.Br : !1 === ol(a, u) ? Cb.Block : Cb.Wrap);
return {
positions: Uw(t, d),
breakType: m,
breakAt: U.some(o)
}
}
d.push(o), f = o
} else f = o
}
return {
positions: Uw(t, d),
breakType: Cb.Eol,
breakAt: U.none()
}
},
jw = function (n, r, o, e) {
return r(o, e).breakAt.map(function (e) {
var t = r(o, e).positions;
return n === Vs.Backwards ? t.concat(e) : [e].concat(t)
}).getOr([])
},
Hw = function (e, i) {
return X(e, function (e, o) {
return e.fold(function () {
return U.some(o)
}, function (r) {
return ds(ne(r.getClientRects()), ne(o.getClientRects()), function (e, t) {
var n = Math.abs(i - e.left);
return Math.abs(i - t.left) <= n ? o : r
}).or(e)
})
}, U.none())
},
Vw = function (t, e) {
return ne(e.getClientRects()).bind(function (e) {
return Hw(t, e.left)
})
},
qw = N(zw, Hs.isAbove, -1),
$w = N(zw, Hs.isBelow, 1),
Ww = N(jw, -1, qw),
Kw = N(jw, 1, $w),
Xw = function (t) {
var e = function (e) {
return z(e, function (e) {
return (e = ps(e)).node = t, e
})
};
if (An(t)) return e(t.getClientRects());
if (In(t)) {
var n = t.ownerDocument.createRange();
return n.setStart(t, 0), n.setEnd(t, t.data.length), e(n.getClientRects())
}
},
Yw = function (e) {
return J(e, Xw)
};
(Fw = Mw = Mw || {})[Fw.Up = -1] = "Up", Fw[Fw.Down = 1] = "Down";
var Gw = function (o, i, a, e, u, t) {
var s = 0,
c = [],
n = function (e) {
var t, n, r = Yw([e]);
for (-1 === o && (r = r.reverse()), t = 0; t < r.length; t++)
if (n = r[t], !a(n, l)) {
if (0 < c.length && i(n, Ee(c)) && s++, n.line = s, u(n)) return !0;
c.push(n)
}
},
l = Ee(t.getClientRects());
if (!l) return c;
var r = t.getNode();
return n(r),
function (e, t, n, r) {
for (; r = nl(r, e, Mo, t);)
if (n(r)) return
}(o, e, n, r), c
},
Jw = N(Gw, Mw.Up, vs, ys),
Qw = N(Gw, Mw.Down, ys, vs),
Zw = function (n) {
return function (e) {
return t = n, e.line > t;
var t
}
},
ex = function (n) {
return function (e) {
return t = n, e.line === t;
var t
}
},
tx = Vn,
nx = nl,
rx = function (e, t) {
return Math.abs(e.left - t)
},
ox = function (e, t) {
return Math.abs(e.right - t)
},
ix = function (e, t) {
return e >= t.left && e <= t.right
},
ax = function (e, t) {
return e >= t.top && e <= t.bottom
},
ux = function (e, o) {
return Se(e, function (e, t) {
var n = Math.min(rx(e, o), ox(e, o)),
r = Math.min(rx(t, o), ox(t, o));
return ix(o, t) || !ix(o, e) && (r === n && tx(t.node) || r < n) ? t : e
})
},
sx = function (e, t, n, r, o) {
var i = nx(r, e, Mo, t, !o);
do {
if (!i || n(i)) return
} while (i = nx(i, e, Mo, t))
},
cx = function (e, t, n) {
var r, o, i = Yw(H(oe(e.getElementsByTagName("*")), Kc)),
a = H(i, N(ax, n));
if (u = ux(a, t)) {
var u, s = !Bn(u.node) && !$n(u.node);
if ((u = ux(function (e, r, t) {
void 0 === t && (t = !0);
var o = [],
n = function (t, e) {
var n = H(Yw([e]), function (e) {
return !t(e, r)
});
return o = o.concat(n), 0 === n.length
};
return o.push(r), sx(Mw.Up, e, N(n, vs), r.node, t), sx(Mw.Down, e, N(n, ys), r.node, t), o
}(e, u, s), t)) && Kc(u.node)) return o = t, {
node: (r = u).node,
before: rx(r, o) < ox(r, o)
}
}
return null
},
lx = function (e, t) {
e.selection.setRng(t), Xd(e, e.selection.getRng())
},
fx = function (e, t, n) {
return U.some(fC(e, t, n))
},
dx = function (e, t, n, r, o, i) {
var a = t === Vs.Forwards,
u = _l(e.getBody()),
s = N(pl, a ? u.next : u.prev),
c = a ? r : o;
if (!n.collapsed) {
var l = Cs(n);
if (i(l)) return sC(t, e, l, t === Vs.Backwards, !1)
}
var f = dl(t, e.getBody(), n);
if (c(f)) return cC(e, f.getNode(!a));
var d = Ub(a, s(f)),
m = vo(n.startContainer);
if (!d) return m ? U.some(n) : U.none();
if (c(d)) return sC(t, e, d.getNode(!a), a, !1);
var p = s(d);
return p && c(p) && gl(d, p) ? sC(t, e, p.getNode(!a), a, !1) : m ? fx(e, d.toRange(), !1) : U.none()
},
mx = function (t, e, n, r, o, i) {
var a = dl(e, t.getBody(), n),
u = Ee(a.getClientRects()),
s = e === Mw.Down;
if (!u) return U.none();
var c, l = (s ? Qw : Jw)(t.getBody(), Zw(1), a),
f = H(l, ex(1)),
d = u.left,
m = ux(f, d);
if (m && i(m.node)) {
var p = Math.abs(d - m.left),
g = Math.abs(d - m.right);
return sC(e, t, m.node, p < g, !1)
}
if (c = r(a) ? a.getNode() : o(a) ? a.getNode(!0) : Cs(n)) {
var h = function (e, t, n, r) {
var o, i, a, u, s = _l(t),
c = [],
l = 0,
f = function (e) {
return Ee(e.getClientRects())
},
d = 1 === e ? (o = s.next, i = ys, a = vs, $s.after(r)) : (o = s.prev, i = vs, a = ys, $s.before(r)),
m = f(d);
do {
if (d.isVisible() && !a(u = f(d), m)) {
if (0 < c.length && i(u, Ee(c)) && l++, (u = ps(u)).position = d, u.line = l, n(u)) return c;
c.push(u)
}
} while (d = o(d));
return c
}(e, t.getBody(), Zw(1), c),
v = ux(H(h, ex(1)), d);
if (v) return fx(t, v.position.toRange(), !1);
if (v = Ee(H(h, ex(0)))) return fx(t, v.position.toRange(), !1)
}
return 0 === f.length ? px(t, s).filter(s ? o : r).map(function (e) {
return fC(t, e.toRange(), !1)
}) : U.none()
},
px = function (e, t) {
var n = e.selection.getRng(),
r = e.getBody();
if (t) {
var o = $s.fromRangeEnd(n),
i = $w(r, o);
return re(i.positions)
}
o = $s.fromRangeStart(n), i = qw(r, o);
return ne(i.positions)
},
gx = function (t, e, n) {
return px(t, e).filter(n).exists(function (e) {
return t.selection.setRng(e.toRange()), !0
})
},
hx = Vn,
vx = function (e, t, n) {
var r, o, i = _l(e.getBody()),
a = N(pl, 1 === t ? i.next : i.prev);
if (n.collapsed && "" !== vc(e)) {
var u, s = e.dom.getParent(n.startContainer, "PRE");
if (!s) return;
a($s.fromRangeStart(n)) || (o = (r = e).dom.create(vc(r)), (!wt.ie || 11 <= wt.ie) && (o.innerHTML = '<br data-mce-bogus="1">'), u = o, 1 === t ? e.$(s).after(u) : e.$(s).before(u), e.selection.select(u, !0), e.selection.collapse())
}
},
yx = function (e, t) {
var n = t ? Vs.Forwards : Vs.Backwards,
r = e.selection.getRng();
return dx(e, n, r, Np, Ep, hx).orThunk(function () {
return vx(e, n, r), U.none()
})
},
bx = function (e, t) {
var n = t ? 1 : -1,
r = e.selection.getRng();
return mx(e, n, r, function (e) {
return Np(e) || xp(e)
}, function (e) {
return Ep(e) || Sp(e)
}, hx).orThunk(function () {
return vx(e, n, r), U.none()
})
},
Cx = function (t, e) {
return yx(t, e).exists(function (e) {
return lx(t, e), !0
})
},
wx = function (t, e) {
return bx(t, e).exists(function (e) {
return lx(t, e), !0
})
},
xx = function (e, t) {
return gx(e, t, t ? Ep : Np)
},
Sx = function (e) {
return M(["figcaption"], Lt(e))
},
Nx = function (e) {
var t = document.createRange();
return t.setStartBefore(e.dom), t.setEndBefore(e.dom), t
},
Ex = function (e, t, n) {
(n ? fn : ln)(e, t)
},
kx = function (e, t, n, r) {
return "" === t ? (l = e, f = r, d = At.fromTag("br"), Ex(l, d, f), Nx(d)) : (o = e, i = r, a = t, u = n, s = At.fromTag(a), c = At.fromTag("br"), Yn(s, u), fn(s, c), Ex(o, s, i), Nx(c));
var o, i, a, u, s, c, l, f, d
},
_x = function (e, t, n) {
return t ? (o = e.dom, $w(o, n).breakAt.isNone()) : (r = e.dom, qw(r, n).breakAt.isNone());
var r, o
},
Ax = function (t, n) {
var e, r, o = At.fromDom(t.getBody()),
i = $s.fromRangeStart(t.selection.getRng()),
a = vc(t),
u = yc(t);
return e = i, r = N(Ot, o), Ar(At.fromDom(e.container()), eo, r).filter(Sx).exists(function () {
if (_x(o, n, i)) {
var e = kx(o, a, u, n);
return t.selection.setRng(e), !0
}
return !1
})
},
Rx = function (e, t) {
return !!e.selection.isCollapsed() && Ax(e, t)
},
Tx = function (e, r) {
return J(z(e, function (e) {
return ke({
shiftKey: !1,
altKey: !1,
ctrlKey: !1,
metaKey: !1,
keyCode: 0,
action: V
}, e)
}), function (e) {
return t = e, (n = r).keyCode === t.keyCode && n.shiftKey === t.shiftKey && n.altKey === t.altKey && n.ctrlKey === t.ctrlKey && n.metaKey === t.metaKey ? [e] : [];
var t, n
})
},
Dx = function (e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
return function () {
return e.apply(null, t)
}
},
Ox = function (e, t) {
return Y(Tx(e, t), function (e) {
return e.action()
})
},
Bx = function (t, e) {
var n = e ? Vs.Forwards : Vs.Backwards,
r = t.selection.getRng();
return dx(t, n, r, Cp, wp, $n).exists(function (e) {
return lx(t, e), !0
})
},
Px = function (t, e) {
var n = e ? 1 : -1,
r = t.selection.getRng();
return mx(t, n, r, Cp, wp, $n).exists(function (e) {
return lx(t, e), !0
})
},
Lx = function (e, t) {
return gx(e, t, t ? wp : Cp)
},
Ix = function (o, e) {
return J(e, function (e) {
var t, n, r = (t = ps(e.getBoundingClientRect()), n = -1, {
left: t.left - n,
top: t.top - n,
right: t.right + 2 * n,
bottom: t.bottom + 2 * n,
width: t.width + n,
height: t.height + n
});
return [{
x: r.left,
y: o(r),
cell: e
}, {
x: r.right,
y: o(r),
cell: e
}]
})
},
Mx = function (e, t, n, r, o) {
var i, a, u = Gu(At.fromDom(n), "td,th,caption").map(function (e) {
return e.dom
}),
s = H(Ix(e, u), function (e) {
return t(e, o)
});
return i = r, a = o, X(s, function (e, r) {
return e.fold(function () {
return U.some(r)
}, function (e) {
var t = Math.sqrt(Math.abs(e.x - i) + Math.abs(e.y - a)),
n = Math.sqrt(Math.abs(r.x - i) + Math.abs(r.y - a));
return U.some(n < t ? r : e)
})
}, U.none()).map(function (e) {
return e.cell
})
},
Fx = N(Mx, function (e) {
return e.bottom
}, function (e, t) {
return e.y < t
}),
Ux = N(Mx, function (e) {
return e.top
}, function (e, t) {
return e.y > t
}),
zx = function (t, n) {
return ne(n.getClientRects()).bind(function (e) {
return Fx(t, e.left, e.top)
}).bind(function (e) {
return Vw(Ul(t = e).map(function (e) {
return qw(t, e).positions.concat(e)
}).getOr([]), n);
var t
})
},
jx = function (t, n) {
return re(n.getClientRects()).bind(function (e) {
return Ux(t, e.left, e.top)
}).bind(function (e) {
return Vw(Fl(t = e).map(function (e) {
return [e].concat($w(t, e).positions)
}).getOr([]), n);
var t
})
},
Hx = function (e, t, n) {
var r, o, i, a, u = e(t, n);
return (a = u).breakType === Cb.Wrap && 0 === a.positions.length || !zn(n.getNode()) && ((i = u).breakType === Cb.Br && 1 === i.positions.length) ? (r = e, o = t, !u.breakAt.exists(function (e) {
return r(o, e).breakAt.isSome()
})) : u.breakAt.isNone()
},
Vx = N(Hx, qw),
qx = N(Hx, $w),
$x = function (t, e, n, r) {
var o, i, a, u, s = t.selection.getRng(),
c = e ? 1 : -1;
return !(!$c() || (o = e, i = s, a = n, u = $s.fromRangeStart(i), !Ll(!o, a).exists(function (e) {
return e.isEqual(u)
}))) && (sC(c, t, n, !e, !1).each(function (e) {
lx(t, e)
}), !0)
},
Wx = function (e, t) {
var n = t.getNode(e);
return An(n) && "TABLE" === n.nodeName ? U.some(n) : U.none()
},
Kx = function (u, s, c) {
var e = Wx(!!s, c),
t = !1 === s;
e.fold(function () {
return lx(u, c.toRange())
}, function (a) {
return Ll(t, u.getBody()).filter(function (e) {
return e.isEqual(c)
}).fold(function () {
return lx(u, c.toRange())
}, function (e) {
return n = s, o = a, t = c, void((i = vc(r = u)) ? r.undoManager.transact(function () {
var e = At.fromTag(i);
Yn(e, yc(r)), fn(e, At.fromTag("br")), (n ? cn : sn)(At.fromDom(o), e);
var t = r.dom.createRng();
t.setStart(e.dom, 0), t.setEnd(e.dom, 0), lx(r, t)
}) : lx(r, t.toRange()));
var n, r, o, t, i
})
})
},
Xx = function (e, t, n, r) {
var o, i, a, u, s, c, l = e.selection.getRng(),
f = $s.fromRangeStart(l),
d = e.getBody();
if (!t && Vx(r, f)) {
var m = (u = d, zx(s = n, c = f).orThunk(function () {
return ne(c.getClientRects()).bind(function (e) {
return Hw(Ww(u, $s.before(s)), e.left)
})
}).getOr($s.before(s)));
return Kx(e, t, m), !0
}
if (t && qx(r, f)) {
m = (o = d, jx(i = n, a = f).orThunk(function () {
return ne(a.getClientRects()).bind(function (e) {
return Hw(Kw(o, $s.after(i)), e.left)
})
}).getOr($s.after(i)));
return Kx(e, t, m), !0
}
return !1
},
Yx = function (n, r, o) {
return U.from(n.dom.getParent(n.selection.getNode(), "td,th")).bind(function (t) {
return U.from(n.dom.getParent(t, "table")).map(function (e) {
return o(n, r, e, t)
})
}).getOr(!1)
},
Gx = function (e, t) {
return Yx(e, t, $x)
},
Jx = function (e, t) {
return Yx(e, t, Xx)
},
Qx = function (i, a) {
i.on("keydown", function (e) {
var t, n, r, o;
!1 === e.isDefaultPrevented() && (t = i, n = a, r = e, o = dt().os, Ox([{
keyCode: ud.RIGHT,
action: Dx(Cx, t, !0)
}, {
keyCode: ud.LEFT,
action: Dx(Cx, t, !1)
}, {
keyCode: ud.UP,
action: Dx(wx, t, !1)
}, {
keyCode: ud.DOWN,
action: Dx(wx, t, !0)
}, {
keyCode: ud.RIGHT,
action: Dx(Gx, t, !0)
}, {
keyCode: ud.LEFT,
action: Dx(Gx, t, !1)
}, {
keyCode: ud.UP,
action: Dx(Jx, t, !1)
}, {
keyCode: ud.DOWN,
action: Dx(Jx, t, !0)
}, {
keyCode: ud.RIGHT,
action: Dx(Bx, t, !0)
}, {
keyCode: ud.LEFT,
action: Dx(Bx, t, !1)
}, {
keyCode: ud.UP,
action: Dx(Px, t, !1)
}, {
keyCode: ud.DOWN,
action: Dx(Px, t, !0)
}, {
keyCode: ud.RIGHT,
action: Dx(uw, t, n, !0)
}, {
keyCode: ud.LEFT,
action: Dx(uw, t, n, !1)
}, {
keyCode: ud.RIGHT,
ctrlKey: !o.isOSX(),
altKey: o.isOSX(),
action: Dx(lw, t, n)
}, {
keyCode: ud.LEFT,
ctrlKey: !o.isOSX(),
altKey: o.isOSX(),
action: Dx(fw, t, n)
}, {
keyCode: ud.UP,
action: Dx(Rx, t, !1)
}, {
keyCode: ud.DOWN,
action: Dx(Rx, t, !0)
}], r).each(function (e) {
r.preventDefault()
}))
})
},
Zx = function (o, i) {
o.on("keydown", function (e) {
var t, n, r;
!1 === e.isDefaultPrevented() && (t = o, n = i, r = e, Ox([{
keyCode: ud.BACKSPACE,
action: Dx(Aw, t, !1)
}, {
keyCode: ud.BACKSPACE,
action: Dx(NC, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(NC, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(gC, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(gC, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(gw, t, n, !1)
}, {
keyCode: ud.DELETE,
action: Dx(gw, t, n, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(Kg, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(Kg, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(EC, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(EC, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(ww, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(ww, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(iC, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(iC, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(tC, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(tC, t, !0)
}, {
keyCode: ud.BACKSPACE,
action: Dx(bw, t, !1)
}, {
keyCode: ud.DELETE,
action: Dx(bw, t, !0)
}], r).each(function (e) {
r.preventDefault()
}))
}), o.on("keyup", function (e) {
var t, n;
!1 === e.isDefaultPrevented() && (t = o, n = e, Ox([{
keyCode: ud.BACKSPACE,
action: Dx(SC, t)
}, {
keyCode: ud.DELETE,
action: Dx(SC, t)
}], n))
})
},
eS = function (e, t) {
var n, r, o = t,
i = e.dom,
a = e.schema.getMoveCaretBeforeOnEnterElements();
if (t) {
!/^(LI|DT|DD)$/.test(t.nodeName) || (r = function (e) {
for (; e;) {
if (1 === e.nodeType || 3 === e.nodeType && e.data && /[\r\n\s]/.test(e.data)) return e;
e = e.nextSibling
}
}(t.firstChild)) && /^(UL|OL|DL)$/.test(r.nodeName) && t.insertBefore(i.doc.createTextNode(lo), t.firstChild);
var u = i.createRng();
if (t.normalize(), t.hasChildNodes()) {
for (var s = new Xr(t, t); n = s.current();) {
if (In(n)) {
u.setStart(n, 0), u.setEnd(n, 0);
break
}
if (a[n.nodeName.toLowerCase()]) {
u.setStartBefore(n), u.setEndBefore(n);
break
}
o = n, n = s.next()
}
n || (u.setStart(o, 0), u.setEnd(o, 0))
} else zn(t) ? t.nextSibling && i.isBlock(t.nextSibling) ? (u.setStartBefore(t), u.setEndBefore(t)) : (u.setStartAfter(t), u.setEndAfter(t)) : (u.setStart(t, 0), u.setEnd(t, 0));
e.selection.setRng(u), Xd(e, u)
}
},
tS = function (e) {
return U.from(e.dom.getParent(e.selection.getStart(!0), e.dom.isBlock))
},
nS = function (e, t) {
return e && e.parentNode && e.parentNode.nodeName === t
},
rS = function (e) {
return e && /^(OL|UL|LI)$/.test(e.nodeName)
},
oS = function (e) {
var t = e.parentNode;
return /^(LI|DT|DD)$/.test(t.nodeName) ? t : e
},
iS = function (e, t, n) {
for (var r = e[n ? "firstChild" : "lastChild"]; r && !An(r);) r = r[n ? "nextSibling" : "previousSibling"];
return r === t
},
aS = function (e, t, n, r, o) {
var i, a, u, s, c, l, f = e.dom,
d = e.selection.getRng();
n !== e.getBody() && (rS(i = n) && rS(i.parentNode) && (o = "LI"), a = o ? t(o) : f.create("BR"), iS(n, r, !0) && iS(n, r, !1) ? nS(n, "LI") ? f.insertAfter(a, oS(n)) : f.replace(a, n) : iS(n, r, !0) ? nS(n, "LI") ? (f.insertAfter(a, oS(n)), a.appendChild(f.doc.createTextNode(" ")), a.appendChild(n)) : n.parentNode.insertBefore(a, n) : iS(n, r, !1) ? f.insertAfter(a, oS(n)) : (n = oS(n), (u = d.cloneRange()).setStartAfter(r), u.setEndAfter(n), s = u.extractContents(), "LI" === o && (l = "LI", (c = s).firstChild && c.firstChild.nodeName === l) ? (a = s.firstChild, f.insertAfter(s, n)) : (f.insertAfter(s, n), f.insertAfter(a, n))), f.remove(r), eS(e, a))
},
uS = function (e) {
e.innerHTML = '<br data-mce-bogus="1">'
},
sS = function (e, t) {
return e.nodeName === t || e.previousSibling && e.previousSibling.nodeName === t
},
cS = function (e, t) {
return t && e.isBlock(t) && !/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName) && !/^(fixed|absolute)/i.test(t.style.position) && "true" !== e.getContentEditable(t)
},
lS = function (e, t, n) {
return !1 === In(t) ? n : e ? 1 === n && t.data.charAt(n - 1) === fo ? 0 : n : n === t.data.length - 1 && t.data.charAt(n) === fo ? t.data.length : n
},
fS = function (e, t) {
for (var n, r = e.getRoot(), o = t; o !== r && "false" !== e.getContentEditable(o);) "true" === e.getContentEditable(o) && (n = o), o = o.parentNode;
return o !== r ? n : r
},
dS = function (e, t) {
var n = vc(e);
n && n.toLowerCase() === t.tagName.toLowerCase() && function (e, o, t) {
var i = e.dom;
U.from(t.style).map(i.parseStyle).each(function (e) {
var t = rr(At.fromDom(o)),
n = ke(ke({}, t), e);
i.setStyles(o, n)
});
var n = U.from(t["class"]).map(function (e) {
return e.split(/\s+/)
}),
r = U.from(o.className).map(function (e) {
return H(e.split(/\s+/), function (e) {
return "" !== e
})
});
ds(n, r, function (t, e) {
var n = H(e, function (e) {
return !M(t, e)
}),
r = _e(t, n);
i.setAttrib(o, "class", r.join(" "))
});
var a = ["style", "class"],
u = me(t, function (e, t) {
return !M(a, t)
});
i.setAttribs(o, u)
}(e, t, yc(e))
},
mS = function (a, e) {
var t, u, i, s, n, r, o, c, l, f = a.dom,
d = a.schema,
m = d.getNonEmptyElements(),
p = a.selection.getRng(),
g = function (e) {
var t, n = u,
r = d.getTextInlineElements(),
o = e || "TABLE" === c || "HR" === c ? f.create(e || N) : s.cloneNode(!1),
i = o;
if (!1 === a.getParam("keep_styles", !0)) f.setAttrib(o, "style", null), f.setAttrib(o, "class", null);
else
do {
if (r[n.nodeName]) {
if (jl(n) || Jl(n)) continue;
t = n.cloneNode(!1), f.setAttrib(t, "id", ""), o.hasChildNodes() ? t.appendChild(o.firstChild) : i = t, o.appendChild(t)
}
} while ((n = n.parentNode) && n !== E);
return dS(a, o), uS(i), o
},
h = function (e) {
var t, n, r = lS(e, u, i);
if (In(u) && (e ? 0 < r : r < u.nodeValue.length)) return !1;
if (u.parentNode === s && l && !e) return !0;
if (e && An(u) && u === s.firstChild) return !0;
if (sS(u, "TABLE") || sS(u, "HR")) return l && !e || !l && e;
var o = new Xr(u, s);
for (In(u) && (e && 0 === r ? o.prev() : e || r !== u.nodeValue.length || o.next()); t = o.current();) {
if (An(t)) {
if (!t.getAttribute("data-mce-bogus") && (n = t.nodeName.toLowerCase(), m[n] && "br" !== n)) return !1
} else if (In(t) && !Uo(t.nodeValue)) return !1;
e ? o.prev() : o.next()
}
return !0
},
v = function () {
n = /^(H[1-6]|PRE|FIGURE)$/.test(c) && "HGROUP" !== C ? g(N) : g(), a.getParam("end_container_on_empty_block", !1) && cS(f, o) && f.isEmpty(s) ? n = f.split(o, s) : f.insertAfter(n, s), eS(a, n)
};
yd(f, p).each(function (e) {
p.setStart(e.startContainer, e.startOffset), p.setEnd(e.endContainer, e.endOffset)
}), u = p.startContainer, i = p.startOffset, N = vc(a);
var y = !(!e || !e.shiftKey),
b = !(!e || !e.ctrlKey);
An(u) && u.hasChildNodes() && (l = i > u.childNodes.length - 1, u = u.childNodes[Math.min(i, u.childNodes.length - 1)] || u, i = l && In(u) ? u.nodeValue.length : 0);
var C, w, x, S, N, E = fS(f, u);
E && ((N && !y || !N && y) && (u = function (e, t, n, r, o) {
var i, a, u, s, c, l, f = t || "P",
d = e.dom,
m = fS(d, r),
p = d.getParent(r, d.isBlock);
if (!p || !cS(d, p)) {
if (c = (p = p || m) === e.getBody() || (l = p) && /^(TD|TH|CAPTION)$/.test(l.nodeName) ? p.nodeName.toLowerCase() : p.parentNode.nodeName.toLowerCase(), !p.hasChildNodes()) return i = d.create(f), dS(e, i), p.appendChild(i), n.setStart(i, 0), n.setEnd(i, 0), i;
for (u = r; u.parentNode !== p;) u = u.parentNode;
for (; u && !d.isBlock(u);) u = (a = u).previousSibling;
if (a && e.schema.isValidChild(c, f.toLowerCase())) {
for (i = d.create(f), dS(e, i), a.parentNode.insertBefore(i, a), u = a; u && !d.isBlock(u);) s = u.nextSibling, i.appendChild(u), u = s;
n.setStart(r, o), n.setEnd(r, o)
}
}
return r
}(a, N, p, u, i)), s = f.getParent(u, f.isBlock), o = s ? f.getParent(s.parentNode, f.isBlock) : null, c = s ? s.nodeName.toUpperCase() : "", "LI" !== (C = o ? o.nodeName.toUpperCase() : "") || b || (o = (s = o).parentNode, c = C), /^(LI|DT|DD)$/.test(c) && f.isEmpty(s) ? aS(a, g, o, s, N) : N && s === a.getBody() || (N = N || "P", vo(s) ? (n = ko(s), f.isEmpty(s) && uS(s), dS(a, n), eS(a, n)) : h() ? v() : h(!0) ? (n = s.parentNode.insertBefore(g(), s), eS(a, sS(s, "HR") ? n : s)) : ((S = (x = p).cloneRange()).setStart(x.startContainer, lS(!0, x.startContainer, x.startOffset)), S.setEnd(x.endContainer, lS(!1, x.endContainer, x.endOffset)), (t = S.cloneRange()).setEndAfter(s), r = t.extractContents(), w = r, W(Yu(At.fromDom(w), Ut), function (e) {
var t = e.dom;
t.nodeValue = po(t.nodeValue)
}), function (e) {
for (; In(e) && (e.nodeValue = e.nodeValue.replace(/^[\r\n]+/, "")), e = e.firstChild;);
}(r), n = r.firstChild, f.insertAfter(r, s), function (e, t, n) {
var r, o, i, a = n,
u = [];
if (a) {
for (; a = a.firstChild;) {
if (e.isBlock(a)) return;
An(a) && !t[a.nodeName.toLowerCase()] && u.push(a)
}
for (r = u.length; r--;) !(a = u[r]).hasChildNodes() || a.firstChild === a.lastChild && "" === a.firstChild.nodeValue ? e.remove(a) : (o = e, (i = a) && "A" === i.nodeName && o.isEmpty(i) && e.remove(a))
}
}(f, m, n), function (e, t) {
t.normalize();
var n = t.lastChild;
n && !/^(left|right)$/gi.test(e.getStyle(n, "float", !0)) || e.add(t, "br")
}(f, s), f.isEmpty(s) && uS(s), n.normalize(), f.isEmpty(n) ? (f.remove(n), v()) : (dS(a, n), eS(a, n))), f.setAttrib(n, "id", ""), a.fire("NewBlock", {
newBlock: n
})))
},
pS = function (e, t, n) {
var r = e.create("span", {}, " ");
n.parentNode.insertBefore(r, n), t.scrollIntoView(r), e.remove(r)
},
gS = function (e, t, n, r) {
var o = e.createRng();
r ? (o.setStartBefore(n), o.setEndBefore(n)) : (o.setStartAfter(n), o.setEndAfter(n)), t.setRng(o)
},
hS = function (e, t) {
var n, r, o = e.selection,
i = e.dom,
a = o.getRng();
yd(i, a).each(function (e) {
a.setStart(e.startContainer, e.startOffset), a.setEnd(e.endContainer, e.endOffset)
});
var u, s = a.startOffset,
c = a.startContainer;
1 === c.nodeType && c.hasChildNodes() && (u = s > c.childNodes.length - 1, c = c.childNodes[Math.min(s, c.childNodes.length - 1)] || c, s = u && 3 === c.nodeType ? c.nodeValue.length : 0);
var l = i.getParent(c, i.isBlock),
f = l ? i.getParent(l.parentNode, i.isBlock) : null,
d = f ? f.nodeName.toUpperCase() : "",
m = !(!t || !t.ctrlKey);
"LI" !== d || m || (l = f), c && 3 === c.nodeType && s >= c.nodeValue.length && ! function (e, t, n) {
for (var r, o = new Xr(t, n), i = e.getNonEmptyElements(); r = o.next();)
if (i[r.nodeName.toLowerCase()] || 0 < r.length) return !0
}(e.schema, c, l) && (n = i.create("br"), a.insertNode(n), a.setStartAfter(n), a.setEndAfter(n), r = !0), n = i.create("br"), Ks(i, a, n), pS(i, o, n), gS(i, o, n, r), e.undoManager.add()
},
vS = function (e, t) {
var n = At.fromTag("br");
sn(At.fromDom(t), n), e.undoManager.add()
},
yS = function (e, t) {
bS(e.getBody(), t) || cn(At.fromDom(t), At.fromTag("br"));
var n = At.fromTag("br");
cn(At.fromDom(t), n), pS(e.dom, e.selection, n.dom), gS(e.dom, e.selection, n.dom, !1), e.undoManager.add()
},
bS = function (e, t) {
return n = $s.after(t), !!zn(n.getNode()) || Il(e, $s.after(t)).map(function (e) {
return zn(e.getNode())
}).getOr(!1);
var n
},
CS = function (e) {
return e && "A" === e.nodeName && "href" in e
},
wS = function (e) {
return e.fold(C, CS, CS, C)
},
xS = function (e, t) {
t.fold(V, N(vS, e), N(yS, e), V)
},
SS = function (e, t) {
var n, r, o, i = (r = N(Ib, n = e), o = $s.fromRangeStart(n.selection.getRng()), WC(r, n.getBody(), o).filter(wS));
i.isSome() ? i.each(N(xS, e)) : hS(e, t)
},
NS = function (e, t) {
return tS(e).filter(function (e) {
return 0 < t.length && Tt(At.fromDom(e), t)
}).isSome()
},
ES = Cr([{
br: []
}, {
block: []
}, {
none: []
}]),
kS = function (e, t) {
return NS(n = e, n.getParam("no_newline_selector", ""));
var n
},
_S = function (n) {
return function (e, t) {
return "" === vc(e) === n
}
},
AS = function (n) {
return function (e, t) {
return tS(e).filter(function (e) {
return io(At.fromDom(e))
}).isSome() === n
}
},
RS = function (n, r) {
return function (e, t) {
return tS(e).fold(E(""), function (e) {
return e.nodeName.toUpperCase()
}) === n.toUpperCase() === r
}
},
TS = function (e) {
return RS("pre", e)
},
DS = function (n) {
return function (e, t) {
return e.getParam("br_in_pre", !0) === n
}
},
OS = function (e, t) {
return NS(n = e, n.getParam("br_newline_selector", ".mce-toc h2,figcaption,caption"));
var n
},
BS = function (e, t) {
return t
},
PS = function (e) {
var t = vc(e),
n = function (e, t) {
for (var n, r = e.getRoot(), o = t; o !== r && "false" !== e.getContentEditable(o);) "true" === e.getContentEditable(o) && (n = o), o = o.parentNode;
return o !== r ? n : r
}(e.dom, e.selection.getStart());
return n && e.schema.isValidChild(n.nodeName, t || "P")
},
LS = function (e, t) {
return function (n, r) {
return X(e, function (e, t) {
return e && t(n, r)
}, !0) ? U.some(t) : U.none()
}
},
IS = function (e, t) {
return IC([LS([kS], ES.none()), LS([RS("summary", !0)], ES.br()), LS([TS(!0), DS(!1), BS], ES.br()), LS([TS(!0), DS(!1)], ES.block()), LS([TS(!0), DS(!0), BS], ES.block()), LS([TS(!0), DS(!0)], ES.br()), LS([AS(!0), BS], ES.br()), LS([AS(!0)], ES.block()), LS([_S(!0), BS, PS], ES.block()), LS([_S(!0)], ES.br()), LS([OS], ES.br()), LS([_S(!1), BS], ES.br()), LS([PS], ES.block())], [e, !(!t || !t.shiftKey)]).getOr(ES.none())
},
MS = function (e, t) {
IS(e, t).fold(function () {
SS(e, t)
}, function () {
mS(e, t)
}, V)
},
FS = function (o) {
o.on("keydown", function (e) {
var t, n, r;
e.keyCode === ud.ENTER && (t = o, (n = e).isDefaultPrevented() || (n.preventDefault(), (r = t.undoManager).typing && (r.typing = !1, r.add()), t.undoManager.transact(function () {
!1 === t.selection.isCollapsed() && t.execCommand("Delete"), MS(t, n)
})))
})
},
US = function (r) {
r.on("keydown", function (e) {
var t, n;
!1 === e.isDefaultPrevented() && (t = r, n = e, Ox([{
keyCode: ud.END,
action: Dx(xx, t, !0)
}, {
keyCode: ud.HOME,
action: Dx(xx, t, !1)
}, {
keyCode: ud.END,
action: Dx(Lx, t, !0)
}, {
keyCode: ud.HOME,
action: Dx(Lx, t, !1)
}], n).each(function (e) {
n.preventDefault()
}))
})
},
zS = dt().browser,
jS = function (t) {
var e, n;
e = t, n = zu(function () {
e.composing || ig(e)
}, 0), zS.isIE() && (e.on("keypress", function (e) {
n.throttle()
}), e.on("remove", function (e) {
n.cancel()
})), t.on("input", function (e) {
!1 === e.isComposing && ig(t)
})
},
HS = function (n, r) {
var e = r.container(),
t = r.offset();
return In(e) ? (e.insertData(t, n), U.some(Hs(e, t + n.length))) : ml(r).map(function (e) {
var t = At.fromText(n);
return (r.isAtEnd() ? cn : sn)(e, t), Hs(t.dom, n.length)
})
},
VS = N(HS, lo),
qS = N(HS, " "),
$S = function (r, o) {
return function (e) {
return t = r, (!Gp(n = e) && (Jp(t, n) || Xp(t, n) || Yp(t, n)) ? VS : qS)(o);
var t, n
}
},
WS = function (e) {
var t, n, r = $s.fromRangeStart(e.selection.getRng()),
o = At.fromDom(e.getBody());
if (e.selection.isCollapsed()) {
var i = N(Ib, e),
a = $s.fromRangeStart(e.selection.getRng());
return WC(i, e.getBody(), a).bind((n = o, function (e) {
return e.fold(function (e) {
return Ml(n.dom, $s.before(e))
}, function (e) {
return Fl(e)
}, function (e) {
return Ul(e)
}, function (e) {
return Il(n.dom, $s.after(e))
})
})).bind($S(o, r)).exists((t = e, function (e) {
return t.selection.setRng(e.toRange()), t.nodeChanged(), !0
}))
}
return !1
},
KS = function (r) {
r.on("keydown", function (e) {
var t, n;
!1 === e.isDefaultPrevented() && (t = r, n = e, Ox([{
keyCode: ud.SPACEBAR,
action: Dx(WS, t)
}], n).each(function (e) {
n.preventDefault()
}))
})
},
XS = function (e) {
var t, n = cw(e);
return (t = e).on("keyup compositionstart", N(Iw, t)), Qx(e, n), Zx(e, n), FS(e), KS(e), jS(e), US(e), n
},
YS = (GS.prototype.nodeChanged = function (e) {
var t, n, r, o = this.editor.selection;
this.editor.initialized && o && !this.editor.getParam("disable_nodechange") && !this.editor.mode.isReadOnly() && (r = this.editor.getBody(), (t = o.getStart(!0) || r).ownerDocument === this.editor.getDoc() && this.editor.dom.isChildOf(t, r) || (t = r), n = [], this.editor.dom.getParent(t, function (e) {
return e === r || void n.push(e)
}), (e = e || {}).element = t, e.parents = n, this.editor.fire("NodeChange", e))
}, GS.prototype.isSameElementPath = function (e) {
var t, n = this.editor.$(e).parentsUntil(this.editor.getBody()).add(e);
if (n.length === this.lastPath.length) {
for (t = n.length; 0 <= t && n[t] === this.lastPath[t]; t--);
if (-1 === t) return this.lastPath = n, !0
}
return this.lastPath = n, !1
}, GS);
function GS(r) {
var o;
this.lastPath = [], this.editor = r;
var t = this;
"onselectionchange" in r.getDoc() || r.on("NodeChange click mouseup keyup focus", function (e) {
var t = r.selection.getRng(),
n = {
startContainer: t.startContainer,
startOffset: t.startOffset,
endContainer: t.endContainer,
endOffset: t.endOffset
};
"nodechange" !== e.type && dd(n, o) || r.fire("SelectionChange"), o = n
}), r.on("contextmenu", function () {
r.fire("SelectionChange")
}), r.on("SelectionChange", function () {
var e = r.selection.getStart(!0);
!e || !wt.range && r.selection.isCollapsed() || Vf(r) && !t.isSameElementPath(e) && r.dom.isChildOf(e, r.getBody()) && r.nodeChanged({
selectionChange: !0
})
}), r.on("mouseup", function (e) {
!e.isDefaultPrevented() && Vf(r) && ("IMG" === r.selection.getNode().nodeName ? qr.setEditorTimeout(r, function () {
r.nodeChanged()
}) : r.nodeChanged())
})
}
var JS = function (e) {
var t, n;
(t = e).on("click", function (e) {
t.dom.getParent(e.target, "details") && e.preventDefault()
}), (n = e).parser.addNodeFilter("details", function (e) {
W(e, function (e) {
e.attr("data-mce-open", e.attr("open")), e.attr("open", "open")
})
}), n.serializer.addNodeFilter("details", function (e) {
W(e, function (e) {
var t = e.attr("data-mce-open");
e.attr("open", q(t) ? t : null), e.attr("data-mce-open", null)
})
})
},
QS = function (e) {
return An(e) && ro(At.fromDom(e))
},
ZS = function (a) {
a.on("click", function (e) {
var t, n, r, o, i;
3 <= e.detail && (r = (t = a).selection.getRng(), o = Hs.fromRangeStart(r), i = Hs.fromRangeEnd(r), Hs.isElementPosition(o) && (n = o.container(), QS(n) && Fl(n).each(function (e) {
return r.setStart(e.container(), e.offset())
})), Hs.isElementPosition(i) && (n = o.container(), QS(n) && Ul(n).each(function (e) {
return r.setEnd(e.container(), e.offset())
})), t.selection.setRng(Yg(r)))
})
},
eN = function (e) {
var t = e.getBoundingClientRect(),
n = e.ownerDocument,
r = n.documentElement,
o = n.defaultView;
return {
top: t.top + o.pageYOffset - r.clientTop,
left: t.left + o.pageXOffset - r.clientLeft
}
},
tN = function (e, t) {
return n = (u = e).inline ? eN(u.getBody()) : {
left: 0,
top: 0
}, a = (i = e).getBody(), r = i.inline ? {
left: a.scrollLeft,
top: a.scrollTop
} : {
left: 0,
top: 0
}, {
pageX: (o = function (e, t) {
if (t.target.ownerDocument === e.getDoc()) return {
left: t.pageX,
top: t.pageY
};
var n, r, o, i, a, u = eN(e.getContentAreaContainer()),
s = (r = (n = e).getBody(), o = n.getDoc().documentElement, i = {
left: r.scrollLeft,
top: r.scrollTop
}, a = {
left: r.scrollLeft || o.scrollLeft,
top: r.scrollTop || o.scrollTop
}, n.inline ? i : a);
return {
left: t.pageX - u.left + s.left,
top: t.pageY - u.top + s.top
}
}(e, t)).left - n.left + r.left,
pageY: o.top - n.top + r.top
};
var n, r, o, i, a, u
},
nN = Vn,
rN = Hn,
oN = function (e) {
e && e.parentNode && e.parentNode.removeChild(e)
},
iN = function (u, s) {
return function (e) {
var t, n, r, o, i, a;
0 === e.button && (t = Y(s.dom.getParents(e.target), function () {
for (var n = [], e = 0; e < arguments.length; e++) n[e] = arguments[e];
return function (e) {
for (var t = 0; t < n.length; t++)
if (n[t](e)) return !0;
return !1
}
}(nN, rN)).getOr(null), i = s.getBody(), nN(a = t) && a !== i && (n = s.dom.getPos(t), r = s.getBody(), o = s.getDoc().documentElement, u.set({
element: t,
dragging: !1,
screenX: e.screenX,
screenY: e.screenY,
maxX: (s.inline ? r.scrollWidth : o.offsetWidth) - 2,
maxY: (s.inline ? r.scrollHeight : o.offsetHeight) - 2,
relX: e.pageX - n.x,
relY: e.pageY - n.y,
width: t.offsetWidth,
height: t.offsetHeight,
ghost: function (e, t, n, r) {
var o = e.dom,
i = t.cloneNode(!0);
o.setStyles(i, {
width: n,
height: r
}), o.setAttrib(i, "data-mce-selected", null);
var a = o.create("div", {
"class": "mce-drag-container",
"data-mce-bogus": "all",
unselectable: "on",
contenteditable: "false"
});
return o.setStyles(a, {
position: "absolute",
opacity: .5,
overflow: "hidden",
border: 0,
padding: 0,
margin: 0,
width: n,
height: r
}), o.setStyles(i, {
margin: 0,
boxSizing: "border-box"
}), a.appendChild(i), a
}(s, t, t.offsetWidth, t.offsetHeight)
})))
}
},
aN = function (e, h) {
var v = qr.throttle(function (e, t) {
h._selectionOverrides.hideFakeCaret(), h.selection.placeCaretAt(e, t)
}, 0);
return h.on("remove", v.stop),
function (g) {
return e.on(function (e) {
var t, n, r, o, i, a, u, s, c, l, f, d, m, p = Math.max(Math.abs(g.screenX - e.screenX), Math.abs(g.screenY - e.screenY));
if (!e.dragging && 10 < p) {
if (h.fire("dragstart", {
target: e.element
}).isDefaultPrevented()) return;
e.dragging = !0, h.focus()
}
e.dragging && (d = e, t = {
pageX: (m = tN(h, g)).pageX - d.relX,
pageY: m.pageY + 5
}, l = e.ghost, f = h.getBody(), l.parentNode !== f && f.appendChild(l), n = e.ghost, r = t, o = e.width, i = e.height, a = e.maxX, u = e.maxY, c = s = 0, n.style.left = r.pageX + "px", n.style.top = r.pageY + "px", r.pageX + o > a && (s = r.pageX + o - a), r.pageY + i > u && (c = r.pageY + i - u), n.style.width = o - s + "px", n.style.height = i - c + "px", v(g.clientX, g.clientY))
})
}
},
uN = function (e, l) {
return function (c) {
e.on(function (e) {
var t, n, r, o, i, a, u, s;
e.dragging && (u = (o = l).selection, s = u.getSel().getRangeAt(0).startContainer, i = 3 === s.nodeType ? s.parentNode : s, a = e.element, i === a || o.dom.isChildOf(i, a) || nN(i) || (n = e.element, (r = n.cloneNode(!0)).removeAttribute("data-mce-selected"), t = r, l.fire("drop", {
clientX: c.clientX,
clientY: c.clientY
}).isDefaultPrevented() || l.undoManager.transact(function () {
oN(e.element), l.insertContent(l.dom.getOuterHTML(t)), l._selectionOverrides.hideFakeCaret()
})))
}), sN(e)
}
},
sN = function (e) {
e.on(function (e) {
oN(e.ghost)
}), e.clear()
},
cN = function (e) {
var t, n, r, o = (t = Ou(U.none()), {
clear: function () {
return t.set(U.none())
},
set: function (e) {
return t.set(U.some(e))
},
isSet: function () {
return t.get().isSome()
},
on: function (e) {
return t.get().each(e)
}
}),
i = Eu.DOM,
a = document,
u = iN(o, e),
s = aN(o, e),
c = uN(o, e),
l = (n = o, function () {
n.on(function (e) {
e.dragging && r.fire("dragend")
}), sN(n)
});
(r = e).on("mousedown", u), e.on("mousemove", s), e.on("mouseup", c), i.bind(a, "mousemove", s), i.bind(a, "mouseup", l), e.on("remove", function () {
i.unbind(a, "mousemove", s), i.unbind(a, "mouseup", l)
})
},
lN = function (e) {
var n, i, a, u, t;
cN(e), (n = e).on("drop", function (e) {
var t = "undefined" != typeof e.clientX ? n.getDoc().elementFromPoint(e.clientX, e.clientY) : null;
!nN(t) && "false" !== n.dom.getContentEditableParent(t) || e.preventDefault()
}), e.getParam("block_unsupported_drop", !0, "boolean") && (a = function (e) {
var t;
e.defaultPrevented || (t = e.dataTransfer) && (M(t.types, "Files") || 0 < t.files.length) && (e.preventDefault(), "drop" === e.type && cb(i, "Dropped file type is not supported"))
}, u = function (e) {
vm(i, e.target) && a(e)
}, t = function () {
var t = Eu.DOM,
n = i.dom,
r = document,
o = i.inline ? i.getBody() : i.getDoc(),
e = ["drop", "dragover"];
W(e, function (e) {
t.bind(r, e, u), n.bind(o, e, a)
}), i.on("remove", function () {
W(e, function (e) {
t.unbind(r, e, u), n.unbind(o, e, a)
})
})
}, (i = e).on("init", function () {
qr.setEditorTimeout(i, t, 0)
}))
},
fN = Hn,
dN = Vn,
mN = function (e, t) {
return id(e.getBody(), t)
},
pN = function (u) {
var s, c = u.selection,
l = u.dom,
f = l.isBlock,
d = u.getBody(),
m = qc(u, d, f, function () {
return Em(u)
}),
p = "sel-" + l.uniqueId(),
i = "data-mce-selected",
g = function (e) {
return e !== d && (dN(e) || $n(e)) && l.isChildOf(e, d)
},
h = function (e) {
e && c.setRng(e)
},
r = c.getRng,
v = function (e, t, n, r) {
return void 0 === r && (r = !0), u.fire("ShowCaret", {
target: t,
direction: e,
before: n
}).isDefaultPrevented() ? null : (r && c.scrollIntoView(t, -1 === e), m.show(n, t))
},
t = function (e) {
return bo(e) || No(e) || Eo(e)
},
y = function (e) {
return t(e.startContainer) || t(e.endContainer)
},
b = function (e) {
var t = u.schema.getShortEndedElements(),
n = l.createRng(),
r = e.startContainer,
o = e.startOffset,
i = e.endContainer,
a = e.endOffset;
return he(t, r.nodeName.toLowerCase()) ? 0 === o ? n.setStartBefore(r) : n.setStartAfter(r) : n.setStart(r, o), he(t, i.nodeName.toLowerCase()) ? 0 === a ? n.setEndBefore(i) : n.setEndAfter(i) : n.setEnd(i, a), n
},
C = function (e) {
var t = e.cloneNode(!0),
n = u.fire("ObjectSelected", {
target: e,
targetClone: t
});
if (n.isDefaultPrevented()) return null;
var r = function (e, t, n) {
var r = u.$,
o = Dr(At.fromDom(u.getBody()), "#" + p).fold(function () {
return r([])
}, function (e) {
return r([e.dom])
});
0 === o.length && (o = r('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id", p)).appendTo(u.getBody());
var i = l.createRng();
t === n && wt.ie ? (o.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(t), i.setStartAfter(o[0].firstChild.firstChild), i.setEndAfter(t)) : (o.empty().append(lo).append(t).append(lo), i.setStart(o[0].firstChild, 1), i.setEnd(o[0].lastChild, 0)), o.css({
top: l.getPos(e, u.getBody()).y
}), o[0].focus();
var a = c.getSel();
return a.removeAllRanges(), a.addRange(i), i
}(e, n.targetClone, t),
o = At.fromDom(e);
return W(Gu(At.fromDom(u.getBody()), "*[data-mce-selected]"), function (e) {
Ot(o, e) || Qn(e, i)
}), l.getAttrib(e, i) || e.setAttribute(i, "1"), s = e, S(), r
},
w = function (e, t) {
if (!e) return null;
if (e.collapsed) {
if (!y(e)) {
var n = t ? 1 : -1,
r = dl(n, d, e),
o = r.getNode(!t);
if (Kc(o)) return v(n, o, !!t && !r.isAtEnd(), !1);
var i = r.getNode(t);
if (Kc(i)) return v(n, i, !t && !r.isAtEnd(), !1)
}
return null
}
var a = e.startContainer,
u = e.startOffset,
s = e.endOffset;
if (3 === a.nodeType && 0 === u && dN(a.parentNode) && (a = a.parentNode, u = l.nodeIndex(a), a = a.parentNode), 1 !== a.nodeType) return null;
if (s === u + 1 && a === e.endContainer) {
var c = a.childNodes[u];
if (g(c)) return C(c)
}
return null
},
x = function () {
s && s.removeAttribute(i), Dr(At.fromDom(u.getBody()), "#" + p).each(pn), s = null
},
S = function () {
m.hide()
};
return wt.ceFalse && function () {
u.on("mouseup", function (e) {
var t = r();
t.collapsed && nb(u, e.clientX, e.clientY) && lC(u, t, !1).each(h)
}), u.on("click", function (e) {
var t = mN(u, e.target);
t && (dN(t) && (e.preventDefault(), u.focus()), fN(t) && l.isChildOf(t, c.getNode()) && x())
}), u.on("blur NewBlock", x), u.on("ResizeWindow FullscreenStateChanged", m.reposition);
var a = function (e) {
var t = _l(e);
if (!e.firstChild) return !1;
var n, r = $s.before(e.firstChild),
o = t.next(r);
return o && !(Np(n = o) || Ep(n) || Cp(n) || wp(n))
},
i = function (e, t) {
var n, r, o = l.getParent(e, f),
i = l.getParent(t, f);
return !(!o || e === i || !l.isChildOf(o, i) || !1 !== dN(mN(u, o))) || o && (n = o, r = i, !(l.getParent(n, f) === l.getParent(r, f))) && a(o)
};
u.on("tap", function (e) {
var t = e.target,
n = mN(u, t);
dN(n) ? (e.preventDefault(), cC(u, n).each(w)) : g(t) && cC(u, t).each(w)
}, !0), u.on("mousedown", function (e) {
var t, n, r, o = e.target;
o !== d && "HTML" !== o.nodeName && !l.isChildOf(o, d) || !1 === nb(u, e.clientX, e.clientY) || ((t = mN(u, o)) ? dN(t) ? (e.preventDefault(), cC(u, t).each(w)) : (x(), fN(t) && e.shiftKey || ad(e.clientX, e.clientY, c.getRng()) || (S(), c.placeCaretAt(e.clientX, e.clientY))) : g(o) ? cC(u, o).each(w) : !1 === Kc(o) && (x(), S(), (n = cx(d, e.clientX, e.clientY)) && (i(o, n.node) || (e.preventDefault(), r = v(1, n.node, n.before, !1), u.getBody().focus(), h(r)))))
}), u.on("keypress", function (e) {
ud.modifierPressed(e) || dN(c.getNode()) && e.preventDefault()
}), u.on("GetSelectionRange", function (e) {
var t = e.range;
if (s) {
if (!s.parentNode) return void(s = null);
(t = t.cloneRange()).selectNode(s), e.range = t
}
}), u.on("SetSelectionRange", function (e) {
e.range = b(e.range);
var t = w(e.range, e.forward);
t && (e.range = t)
});
var n, e, o;
u.on("AfterSetSelectionRange", function (e) {
var t, n = e.range,
r = n.startContainer.parentNode;
y(n) || "mcepastebin" === r.id || S(), t = r, l.hasClass(t, "mce-offscreen-selection") || x()
}), u.on("copy", function (e) {
var t, n, r = e.clipboardData;
e.isDefaultPrevented() || !e.clipboardData || wt.ie || (t = (n = l.get(p)) ? n.getElementsByTagName("*")[0] : n) && (e.preventDefault(), r.clearData(), r.setData("text/html", t.outerHTML), r.setData("text/plain", t.outerText || t.innerText))
}), lN(u), e = zu(function () {
var e, t;
n.removed || !n.getBody().contains(document.activeElement) || (e = n.selection.getRng()).collapsed && (t = fC(n, e, !1), n.selection.setRng(t))
}, 0), (n = u).on("focus", function () {
e.throttle()
}), n.on("blur", function () {
e.cancel()
}), (o = u).on("init", function () {
o.on("focusin", function (e) {
var t, n, r = e.target;
$n(r) && (t = id(o.getBody(), r), n = Vn(t) ? t : r, o.selection.getNode() !== n && cC(o, n).each(function (e) {
return o.selection.setRng(e)
}))
})
})
}(), {
showCaret: v,
showBlockCaretContainer: function (e) {
e.hasAttribute("data-mce-caret") && (ko(e), h(r()), c.scrollIntoView(e))
},
hideFakeCaret: S,
destroy: function () {
m.destroy(), s = null
}
}
},
gN = function (u) {
var s, n, r, o = kt.each,
c = ud.BACKSPACE,
l = ud.DELETE,
f = u.dom,
d = u.selection,
e = u.parser,
t = wt.gecko,
i = wt.ie,
a = wt.webkit,
m = "data:text/mce-internal,",
p = i ? "Text" : "URL",
g = function (e, t) {
try {
u.getDoc().execCommand(e, !1, t)
} catch (n) {}
},
h = function (e) {
return e.isDefaultPrevented()
},
v = function () {
u.shortcuts.add("meta+a", null, "SelectAll")
},
y = function () {
u.on("keydown", function (e) {
if (!h(e) && e.keyCode === c && d.isCollapsed() && 0 === d.getRng().startOffset) {
var t = d.getNode().previousSibling;
if (t && t.nodeName && "table" === t.nodeName.toLowerCase()) return e.preventDefault(), !1
}
})
},
b = function () {
u.inline || (u.contentStyles.push("body {min-height: 150px}"), u.on("click", function (e) {
var t;
if ("HTML" === e.target.nodeName) {
if (11 < wt.ie) return void u.getBody().focus();
t = u.selection.getRng(), u.getBody().focus(), u.selection.setRng(t), u.selection.normalize(), u.nodeChanged()
}
}))
};
return u.on("keydown", function (e) {
var t;
if (!h(e) && e.keyCode === ud.BACKSPACE) {
var n = (t = d.getRng()).startContainer,
r = t.startOffset,
o = f.getRoot(),
i = n;
if (t.collapsed && 0 === r) {
for (; i && i.parentNode && i.parentNode.firstChild === i && i.parentNode !== o;) i = i.parentNode;
"BLOCKQUOTE" === i.tagName && (u.formatter.toggle("blockquote", null, i), (t = f.createRng()).setStart(n, 0), t.setEnd(n, 0), d.setRng(t))
}
}
}), s = function (e) {
var t = f.create("body"),
n = e.cloneContents();
return t.appendChild(n), d.serializer.serialize(t, {
format: "html"
})
}, u.on("keydown", function (e) {
var t, n, r, o, i, a = e.keyCode;
if (!h(e) && (a === l || a === c)) {
if (t = u.selection.isCollapsed(), n = u.getBody(), t && !f.isEmpty(n)) return;
if (!t && (r = u.selection.getRng(), o = s(r), (i = f.createRng()).selectNode(u.getBody()), o !== s(i))) return;
e.preventDefault(), u.setContent(""), n.firstChild && f.isBlock(n.firstChild) ? u.selection.setCursorLocation(n.firstChild, 0) : u.selection.setCursorLocation(n, 0), u.nodeChanged()
}
}), wt.windowsPhone || u.on("keyup focusin mouseup", function (e) {
ud.modifierPressed(e) || d.normalize()
}, !0), a && (u.inline || f.bind(u.getDoc(), "mousedown mouseup", function (e) {
var t;
if (e.target === u.getDoc().documentElement)
if (t = d.getRng(), u.getBody().focus(), "mousedown" === e.type) {
if (bo(t.startContainer)) return;
d.placeCaretAt(e.clientX, e.clientY)
} else d.setRng(t)
}), u.on("click", function (e) {
var t = e.target;
/^(IMG|HR)$/.test(t.nodeName) && "false" !== f.getContentEditableParent(t) && (e.preventDefault(), u.selection.select(t), u.nodeChanged()), "A" === t.nodeName && f.hasClass(t, "mce-item-anchor") && (e.preventDefault(), d.select(t))
}), vc(u) && u.on("init", function () {
g("DefaultParagraphSeparator", vc(u))
}), u.on("init", function () {
u.dom.bind(u.getBody(), "submit", function (e) {
e.preventDefault()
})
}), y(), e.addNodeFilter("br", function (e) {
for (var t = e.length; t--;) "Apple-interchange-newline" === e[t].attr("class") && e[t].remove()
}), wt.iOS ? (u.inline || u.on("keydown", function () {
document.activeElement === document.body && u.getWin().focus()
}), b(), u.on("click", function (e) {
var t = e.target;
do {
if ("A" === t.tagName) return void e.preventDefault()
} while (t = t.parentNode)
}), u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")) : v()), 11 <= wt.ie && (b(), y()), wt.ie && (v(), g("AutoUrlDetect", !1), u.on("dragstart", function (e) {
var t, n, r;
(t = e).dataTransfer && (u.selection.isCollapsed() && "IMG" === t.target.tagName && d.select(t.target), 0 < (n = u.selection.getContent()).length && (r = m + escape(u.id) + "," + escape(n), t.dataTransfer.setData(p, r)))
}), u.on("drop", function (e) {
var t, n, r, o, i, a;
h(e) || (t = (i = e).dataTransfer && (a = i.dataTransfer.getData(p)) && 0 <= a.indexOf(m) ? (a = a.substr(m.length).split(","), {
id: unescape(a[0]),
html: unescape(a[1])
}) : null) && t.id !== u.id && (e.preventDefault(), n = fd(e.x, e.y, u.getDoc()), d.setRng(n), r = t.html, o = !0, u.queryCommandSupported("mceInsertClipboardContent") ? u.execCommand("mceInsertClipboardContent", !1, {
content: r,
internal: o
}) : u.execCommand("mceInsertContent", !1, r))
})), t && (u.on("keydown", function (e) {
if (!h(e) && e.keyCode === c) {
if (!u.getBody().getElementsByTagName("hr").length) return;
if (d.isCollapsed() && 0 === d.getRng().startOffset) {
var t = d.getNode(),
n = t.previousSibling;
if ("HR" === t.nodeName) return f.remove(t), void e.preventDefault();
n && n.nodeName && "hr" === n.nodeName.toLowerCase() && (f.remove(n), e.preventDefault())
}
}
}), Range.prototype.getClientRects || u.on("mousedown", function (e) {
var t;
h(e) || "HTML" !== e.target.nodeName || ((t = u.getBody()).blur(), qr.setEditorTimeout(u, function () {
t.focus()
}))
}), n = function () {
var e = f.getAttribs(d.getStart().cloneNode(!1));
return function () {
var t = d.getStart();
t !== u.getBody() && (f.setAttrib(t, "style", null), o(e, function (e) {
t.setAttributeNode(e.cloneNode(!0))
}))
}
}, r = function () {
return !d.isCollapsed() && f.getParent(d.getStart(), f.isBlock) !== f.getParent(d.getEnd(), f.isBlock)
}, u.on("keypress", function (e) {
var t;
if (!h(e) && (8 === e.keyCode || 46 === e.keyCode) && r()) return t = n(), u.getDoc().execCommand("delete", !1, null), t(), e.preventDefault(), !1
}), f.bind(u.getDoc(), "cut", function (e) {
var t;
!h(e) && r() && (t = n(), qr.setEditorTimeout(u, function () {
t()
}))
}), u.getParam("readonly") || u.on("BeforeExecCommand mousedown", function () {
g("StyleWithCSS", !1), g("enableInlineTableEditing", !1), Nc(u) || g("enableObjectResizing", !1)
}), u.on("SetContent ExecCommand", function (e) {
"setcontent" !== e.type && "mceInsertLink" !== e.command || o(f.select("a"), function (e) {
var t = e.parentNode,
n = f.getRoot();
if (t.lastChild === e) {
for (; t && !f.isBlock(t);) {
if (t.parentNode.lastChild !== t || t === n) return;
t = t.parentNode
}
f.add(t, "br", {
"data-mce-bogus": 1
})
}
})
}), u.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"), wt.mac && u.on("keydown", function (e) {
!ud.metaKeyPressed(e) || e.shiftKey || 37 !== e.keyCode && 39 !== e.keyCode || (e.preventDefault(), u.selection.getSel().modify("move", 37 === e.keyCode ? "backward" : "forward", "lineboundary"))
}), y()), {
refreshContentEditable: function () {},
isHidden: function () {
if (!t || u.removed) return !1;
var e = u.selection.getSel();
return !e || !e.rangeCount || 0 === e.rangeCount
}
}
},
hN = Eu.DOM,
vN = function (e) {
return me(e, function (e) {
return !1 === R(e)
})
},
yN = function (e) {
var t, n = e.settings,
r = e.editorUpload.blobCache;
return vN({
allow_conditional_comments: n.allow_conditional_comments,
allow_html_data_urls: n.allow_html_data_urls,
allow_svg_data_urls: n.allow_svg_data_urls,
allow_html_in_named_anchor: n.allow_html_in_named_anchor,
allow_script_urls: n.allow_script_urls,
allow_unsafe_link_target: n.allow_unsafe_link_target,
convert_fonts_to_spans: n.convert_fonts_to_spans,
fix_list_elements: n.fix_list_elements,
font_size_legacy_values: n.font_size_legacy_values,
forced_root_block: n.forced_root_block,
forced_root_block_attrs: n.forced_root_block_attrs,
padd_empty_with_br: n.padd_empty_with_br,
preserve_cdata: n.preserve_cdata,
remove_trailing_brs: n.remove_trailing_brs,
inline_styles: n.inline_styles,
root_name: (t = e).inline ? t.getElement().nodeName.toLowerCase() : undefined,
validate: !0,
blob_cache: r,
images_dataimg_filter: n.images_dataimg_filter
})
},
bN = function (u) {
var e = u.dom.getRoot();
u.inline || Vf(u) && u.selection.getStart(!0) !== e || Fl(e).each(function (e) {
var t, n, r, o, i = e.getNode(),
a = Bn(i) ? Fl(i).getOr(e) : e;
wt.browser.isIE() ? (t = u, n = a.toRange(), r = At.fromDom(t.getBody()), o = (um(t) ? U.from(n) : U.none()).map(sm).filter(am(r)), t.bookmark = o.isSome() ? o : t.bookmark) : u.selection.setRng(a.toRange())
})
},
CN = function (e) {
var t;
e.bindPendingEventDelegates(), e.initialized = !0, e.fire("Init"), e.focus(!0), bN(e), e.nodeChanged({
initial: !0
}), e.execCallback("init_instance_callback", e), (t = e).settings.auto_focus && qr.setEditorTimeout(t, function () {
var e = !0 === t.settings.auto_focus ? t : t.editorManager.get(t.settings.auto_focus);
e.destroyed || e.focus()
}, 100)
},
wN = function (t, e) {
var n = t.settings,
r = t.getDoc(),
o = t.getBody();
n.browser_spellcheck || n.gecko_spellcheck || (r.body.spellcheck = !1, hN.setAttrib(o, "spellcheck", "false")), t.quirks = gN(t), t.fire("PostRender");
var i, a, u, s, c, l, f, d, m, p, g, h = t.getParam("directionality", Iu.isRtl() ? "rtl" : undefined);
h !== undefined && (o.dir = h), n.protect && t.on("BeforeSetContent", function (t) {
kt.each(n.protect, function (e) {
t.content = t.content.replace(e, function (e) {
return "\x3c!--mce:protected " + escape(e) + "--\x3e"
})
})
}), t.on("SetContent", function () {
t.addVisual(t.getBody())
}), !1 === e && t.load({
initial: !0,
format: "html"
}), t.startContent = t.getContent({
format: "raw"
}), t.on("compositionstart compositionend", function (e) {
t.composing = "compositionstart" === e.type
}), 0 < t.contentStyles.length && (i = "", kt.each(t.contentStyles, function (e) {
i += e + "\r\n"
}), t.dom.addStyle(i)), u = (a = t).contentCSS, c = (s = a).inline ? s.ui.styleSheetLoader : s.dom.styleSheetLoader, l = function () {
a.on("remove", function () {
return c.unloadAll(u)
}), CN(a)
}, c.loadAll(u, l, l), n.content_style && (f = t, d = n.content_style, m = At.fromDom(f.getBody()), p = on(rn(m)), g = At.fromTag("style"), Xn(g, "type", "text/css"), fn(g, At.fromText(d)), fn(p, g), f.on("remove", function () {
pn(g)
}))
},
xN = function (t, e) {
var n = t.settings,
r = t.getElement(),
o = t.getDoc();
n.inline || (t.getElement().style.visibility = t.orgVisibility), e || t.inline || (o.open(), o.write(t.iframeHTML), o.close()), t.inline && (hN.addClass(r, "mce-content-body"), t.contentDocument = o = document, t.contentWindow = window, t.bodyElement = r, t.contentAreaContainer = r);
var u, i, a, s, c = t.getBody();
c.disabled = !0, t.readonly = !!n.readonly, t.readonly || (t.inline && "static" === hN.getStyle(c, "position", !0) && (c.style.position = "relative"), c.contentEditable = t.getParam("content_editable_state", !0)), c.disabled = !1, t.editorUpload = yb(t), t.schema = Ci(n), t.dom = Eu(o, {
keep_values: !0,
url_converter: t.convertURL,
url_converter_scope: t,
hex_colors: n.force_hex_style_colors,
update_styles: !0,
root_element: t.inline ? t.getBody() : null,
collect: function () {
return t.inline
},
schema: t.schema,
contentCssCors: t.getParam("content_css_cors", !1, "boolean"),
referrerPolicy: wc(t),
onSetAttrib: function (e) {
t.fire("SetAttrib", e)
}
}), t.parser = ((i = by(yN(u = t), u.schema)).addAttributeFilter("src,href,style,tabindex", function (e, t) {
for (var n, r, o = e.length, i = u.dom, a = "data-mce-" + t; o--;)
if ((r = (n = e[o]).attr(t)) && !n.attr(a)) {
if (0 === r.indexOf("data:") || 0 === r.indexOf("blob:")) continue;
"style" === t ? ((r = i.serializeStyle(i.parseStyle(r), n.name)).length || (r = null), n.attr(a, r), n.attr(t, r)) : "tabindex" === t ? (n.attr(a, r), n.attr(t, null)) : n.attr(a, u.convertURL(r, t, n.name))
}
}), i.addNodeFilter("script", function (e) {
for (var t = e.length; t--;) {
var n = e[t],
r = n.attr("type") || "no/type";
0 !== r.indexOf("mce-") && n.attr("type", "mce-" + r)
}
}), u.settings.preserve_cdata && i.addNodeFilter("#cdata", function (e) {
for (var t = e.length; t--;) {
var n = e[t];
n.type = 8, n.name = "#comment", n.value = "[CDATA[" + u.dom.encode(n.value) + "]]"
}
}), i.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div", function (e) {
for (var t = e.length, n = u.schema.getNonEmptyElements(); t--;) {
var r = e[t];
r.isEmpty(n) && 0 === r.getAll("br").length && (r.append(new Km("br", 1)).shortEnded = !0)
}
}), i), t.serializer = Ny((s = (a = t).settings, ke(ke({}, yN(a)), vN({
url_converter: s.url_converter,
url_converter_scope: s.url_converter_scope,
element_format: s.element_format,
entities: s.entities,
entity_encoding: s.entity_encoding,
indent: s.indent,
indent_after: s.indent_after,
indent_before: s.indent_before,
block_elements: s.block_elements,
boolean_attributes: s.boolean_attributes,
custom_elements: s.custom_elements,
extended_valid_elements: s.extended_valid_elements,
invalid_elements: s.invalid_elements,
invalid_styles: s.invalid_styles,
move_caret_before_on_enter_elements: s.move_caret_before_on_enter_elements,
non_empty_elements: s.non_empty_elements,
schema: s.schema,
self_closing_elements: s.self_closing_elements,
short_ended_elements: s.short_ended_elements,
special: s.special,
text_block_elements: s.text_block_elements,
text_inline_elements: s.text_inline_elements,
valid_children: s.valid_children,
valid_classes: s.valid_classes,
valid_elements: s.valid_elements,
valid_styles: s.valid_styles,
verify_html: s.verify_html,
whitespace_elements: s.whitespace_elements
}))), t), t.selection = Qv(t.dom, t.getWin(), t.serializer, t), t.annotator = td(t), t.formatter = _b(t), t.undoManager = Rb(t), t._nodeChangeDispatcher = new YS(t), t._selectionOverrides = pN(t), Ow(t), JS(t), Hv(t) || ZS(t);
var l, f, d, m, p = Hv(l = t) ? Ou(null) : XS(l);
Tw(t, p), vc(f = t) && f.on("NodeChange", N(Pw, f)), Pb(t), t.fire("PreInit"), ge((m = d = t).plugins, "rtc").fold(function () {
return m.rtcInstance = zv(d), U.none()
}, function (e) {
return U.some(e.setup().then(function (e) {
return m.rtcInstance = jv(d, e), e.isRemote
}))
}).fold(function () {
wN(t, !1)
}, function (e) {
t.setProgressState(!0), e.then(function (e) {
t.setProgressState(!1), wN(t, e)
})
})
},
SN = Eu.DOM,
NN = function (e) {
var t = e.getParam("doctype", "<!DOCTYPE html>") + "<html><head>";
e.getParam("document_base_url", "") !== e.documentBaseUrl && (t += '<base href="' + e.documentBaseURI.getURI() + '" />'), t += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
var n = gc(e, "body_id", "tinymce"),
r = gc(e, "body_class", "");
return hc(e) && (t += '<meta http-equiv="Content-Security-Policy" content="' + hc(e) + '" />'), t += '</head><body id="' + n + '" class="mce-content-body ' + r + '" data-id="' + e.id + '"><br></body></html>'
},
EN = function (e, t) {
var n, r, o, i, a = e.editorManager.translate("Rich Text Area. Press ALT-0 for help."),
u = (n = e.id, r = a, t.height, o = e.getParam("iframe_attrs", {}), i = At.fromTag("iframe"), Yn(i, o), Yn(i, {
id: n + "_ifr",
frameBorder: "0",
allowTransparency: "true",
title: r
}), Wu(i, "tox-edit-area__iframe"), i.dom);
u.onload = function () {
u.onload = null, e.fire("load")
};
var s = function (e, t) {
if (document.domain !== window.location.hostname && wt.browser.isIE()) {
var n = vb("mce");
e[n] = function () {
xN(e)
};
var r = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.tinymce.get("' + e.id + '");document.write(ed.iframeHTML);document.close();ed.' + n + "(true);})()";
return SN.setAttrib(t, "src", r), !0
}
return !1
}(e, u);
return e.contentAreaContainer = t.iframeContainer, e.iframeElement = u, e.iframeHTML = NN(e), SN.add(t.iframeContainer, u), s
},
kN = Eu.DOM,
_N = function (t, n, e) {
var r = ib.get(e),
o = ib.urls[e] || t.documentBaseUrl.replace(/\/$/, "");
if (e = kt.trim(e), r && -1 === kt.inArray(n, e)) {
if (kt.each(ib.dependencies(e), function (e) {
_N(t, n, e)
}), t.plugins[e]) return;
try {
var i = new r(t, o, t.$);
(t.plugins[e] = i).init && (i.init(t, o), n.push(e))
} catch (Ok) {
! function (e, t, n) {
var r = Iu.translate(["Failed to initialize plugin: {0}", t]);
mb(r, n), cb(e, r)
}(t, e, Ok)
}
}
},
AN = function (e) {
return e.replace(/^\-/, "")
},
RN = function (e) {
return {
editorContainer: e,
iframeContainer: e,
api: {}
}
},
TN = function (e) {
var t, n, r = e.getElement();
return e.inline ? RN(null) : (t = r, n = kN.create("div"), kN.insertAfter(n, t), RN(n))
},
DN = function (e) {
var t, n, r, o = e.getElement();
return e.orgDisplay = o.style.display, q(kc(e)) ? e.theme.renderUI() : T(kc(e)) ? (n = (t = e).getElement(), (r = kc(t)(t, n)).editorContainer.nodeType && (r.editorContainer.id = r.editorContainer.id || t.id + "_parent"), r.iframeContainer && r.iframeContainer.nodeType && (r.iframeContainer.id = r.iframeContainer.id || t.id + "_iframecontainer"), r.height = r.iframeHeight ? r.iframeHeight : n.offsetHeight, r) : TN(e)
},
ON = function (e) {
var n, t, r, o, i, a, u, s, c;
e.fire("ScriptsLoaded"), n = e, t = kt.trim(Cc(n)), r = n.ui.registry.getAll().icons, o = ke(ke({}, Yy.get("default").icons), Yy.get(t).icons), ue(o, function (e, t) {
he(r, t) || n.ui.registry.addIcon(t, e)
}), u = kc(i = e), q(u) ? (i.settings.theme = AN(u), a = ab.get(u), i.theme = new a(i, ab.urls[u]), i.theme.init && i.theme.init(i, ab.urls[u] || i.documentBaseUrl.replace(/\/$/, ""), i.$)) : i.theme = {}, s = e, c = [], kt.each(Ac(s).split(/[ ,]/), function (e) {
_N(s, c, AN(e))
});
var l, f, d, m = DN(e);
l = e, f = U.from(m.api).getOr({}), d = {
show: U.from(f.show).getOr(V),
hide: U.from(f.hide).getOr(V),
disable: U.from(f.disable).getOr(V),
isDisabled: U.from(f.isDisabled).getOr(C),
enable: function () {
l.mode.isReadOnly() || U.from(f.enable).map(b)
}
}, l.ui = ke(ke({}, l.ui), d);
var p, g, h, v, y = {
editorContainer: m.editorContainer,
iframeContainer: m.iframeContainer
};
return e.editorContainer = y.editorContainer ? y.editorContainer : null, (p = e).contentCSS = p.contentCSS.concat(pb(p)), e.inline ? xN(e) : (v = EN(g = e, h = y), h.editorContainer && (SN.get(h.editorContainer).style.display = g.orgDisplay, g.hidden = SN.isHidden(h.editorContainer)), g.getElement().style.display = "none", SN.setAttrib(g.id, "aria-hidden", "true"), void(v || xN(g)))
},
BN = Eu.DOM,
PN = function (e) {
return "-" === e.charAt(0)
},
LN = function (e, t) {
var n, r = xc(t),
o = t.getParam("language_url", "", "string");
!1 === Iu.hasCode(r) && "en" !== r && (n = "" !== o ? o : t.editorManager.baseURL + "/langs/" + r + ".js", e.add(n, V, undefined, function () {
lb(t, "LanguageLoadError", fb("language", n, r))
}))
},
IN = function (t, e, n) {
return U.from(e).filter(function (e) {
return 0 < e.length && !Yy.has(e)
}).map(function (e) {
return {
url: t.editorManager.baseURL + "/icons/" + e + "/icons" + n + ".js",
name: U.some(e)
}
})
},
MN = function (e, o, t) {
var n, r = IN(o, "default", t),
i = (n = o, U.from(n.getParam("icons_url", "", "string")).filter(function (e) {
return 0 < e.length
}).map(function (e) {
return {
url: e,
name: U.none()
}
}).orThunk(function () {
return IN(o, Cc(o), "")
}));
W(function (e) {
for (var t = [], n = function (e) {
t.push(e)
}, r = 0; r < e.length; r++) e[r].each(n);
return t
}([r, i]), function (r) {
e.add(r.url, V, undefined, function () {
var e, t, n;
e = o, t = r.url, n = r.name.getOrUndefined(), lb(e, "IconsLoadError", fb("icons", t, n))
})
})
},
FN = function (e, t) {
var n, r, o, i, a, u, s = Ru.ScriptLoader;
n = s, o = t, i = function () {
var r, o;
LN(s, e), MN(s, e, t), r = e, o = t, kt.each(r.getParam("external_plugins"), function (e, t) {
ib.load(t, e, V, undefined, function () {
db(r, e, t)
}), r.settings.plugins += " " + t
}), kt.each(Ac(r).split(/[ ,]/), function (e) {
var t, n;
(e = kt.trim(e)) && !ib.urls[e] && (PN(e) ? (e = e.substr(1, e.length), t = ib.dependencies(e), kt.each(t, function (e) {
var t = {
prefix: "plugins/",
resource: e,
suffix: "/plugin" + o + ".js"
},
n = ib.createUrl(t, e);
ib.load(n.resource, n, V, undefined, function () {
db(r, n.prefix + n.resource + n.suffix, n.resource)
})
})) : (n = {
prefix: "plugins/",
resource: e,
suffix: "/plugin" + o + ".js"
}, ib.load(e, n, V, undefined, function () {
db(r, n.prefix + n.resource + n.suffix, e)
})))
}), s.loadQueue(function () {
e.removed || ON(e)
}, e, function () {
e.removed || ON(e)
})
}, u = kc(r = e), q(u) ? (PN(u) || ab.urls.hasOwnProperty(u) || ((a = r.getParam("theme_url")) ? ab.load(u, r.documentBaseURI.toAbsolute(a)) : ab.load(u, "themes/" + u + "/theme" + o + ".js")), n.loadQueue(function () {
ab.waitFor(u, i)
})) : i()
},
UN = function (t) {
var e = t.id;
Iu.setCode(xc(t));
var n, r, o, i, a, u = function () {
BN.unbind(window, "ready", u), t.render()
};
Ti.Event.domLoaded ? t.getElement() && wt.contentEditable && (n = At.fromDom(t.getElement()), r = X(n.dom.attributes, function (e, t) {
return e[t.name] = t.value, e
}, {}), t.on("remove", function () {
j(n.dom.attributes, function (e) {
return Qn(n, e.name), 0
}), Yn(n, r)
}), t.ui.styleSheetLoader = (o = n, i = t, Kr.forElement(o, {
contentCssCors: i.getParam("content_css_cors"),
referrerPolicy: wc(i)
})), t.getParam("inline") ? t.inline = !0 : (t.orgVisibility = t.getElement().style.visibility, t.getElement().style.visibility = "hidden"), (a = t.getElement().form || BN.getParent(e, "form")) && (t.formElement = a, t.getParam("hidden_input") && !Ln(t.getElement()) && (BN.insertAfter(BN.create("input", {
type: "hidden",
name: e
}), e), t.hasHiddenInput = !0), t.formEventDelegate = function (e) {
t.fire(e.type, e)
}, BN.bind(a, "submit reset", t.formEventDelegate), t.on("reset", function () {
t.resetContent()
}), !t.getParam("submit_patch") || a.submit.nodeType || a.submit.length || a._mceOldSubmit || (a._mceOldSubmit = a.submit, a.submit = function () {
return t.editorManager.triggerSave(), t.setDirty(!1), a._mceOldSubmit(a)
})), t.windowManager = ub(t), t.notificationManager = ob(t), "xml" === t.getParam("encoding") && t.on("GetContent", function (e) {
e.save && (e.content = BN.encode(e.content))
}), t.getParam("add_form_submit_trigger") && t.on("submit", function () {
t.initialized && t.save()
}), t.getParam("add_unload_trigger") && (t._beforeUnload = function () {
!t.initialized || t.destroyed || t.isHidden() || t.save({
format: "raw",
no_events: !0,
set_dirty: !1
})
}, t.editorManager.on("BeforeUnload", t._beforeUnload)), t.editorManager.add(t), FN(t, t.suffix)) : BN.bind(window, "ready", u)
},
zN = function (e, t) {
return n = t, qv(e).editor.addVisual(n);
var n
},
jN = {
"font-size": "size",
"font-family": "face"
},
HN = function (n, t, e) {
return Pm(At.fromDom(e), function (e) {
return nr(t = e, n).orThunk(function () {
return "font" === Lt(t) ? ge(jN, n).bind(function (e) {
return Jn(t, e)
}) : U.none()
});
var t
}, function (e) {
return Ot(At.fromDom(t), e)
})
},
VN = function (o) {
return function (r, e) {
return U.from(e).map(At.fromDom).filter(Ft).bind(function (e) {
return HN(o, r, e.dom).or((t = o, n = e.dom, U.from(Eu.DOM.getStyle(n, t, !0))));
var t, n
}).getOr("")
}
},
qN = VN("font-size"),
$N = a(function (e) {
return e.replace(/[\'\"\\]/g, "").replace(/,\s+/g, ",")
}, VN("font-family")),
WN = function (e) {
return Fl(e.getBody()).map(function (e) {
var t = e.container();
return In(t) ? t.parentNode : t
})
},
KN = function (e, t) {
return n = e, U.from(n.selection.getRng()).bind(function (e) {
var t = n.getBody();
return e.startContainer === t && 0 === e.startOffset ? U.none() : U.from(n.selection.getStart(!0))
}).orThunk(N(WN, e)).map(At.fromDom).filter(Ft).map(t);
var n
},
XN = function (e, t) {
if (/^[0-9.]+$/.test(t)) {
var n = parseInt(t, 10);
if (1 <= n && n <= 7) {
var r = (a = e, kt.explode(a.getParam("font_size_style_values", "xx-small,x-small,small,medium,large,x-large,xx-large"))),
o = (i = e, kt.explode(i.getParam("font_size_classes", "")));
return o ? o[n - 1] || t : r[n - 1] || t
}
return t
}
return t;
var i, a
},
YN = function (e, t) {
var n, r = XN(e, t);
e.formatter.toggle("fontname", {
value: (n = r.split(/\s*,\s*/), z(n, function (e) {
return -1 === e.indexOf(" ") || Ve(e, '"') || Ve(e, "'") ? e : "'" + e + "'"
}).join(","))
}), e.nodeChanged()
},
GN = function (e, t) {
var n, r, o, i, a = "string" != typeof (n = t) ? (r = kt.extend({
paste: n.paste,
data: {
paste: n.paste
}
}, n), {
content: n.content,
details: r
}) : {
content: n,
details: {}
};
o = a.content, i = a.details, Vv(e).editor.insertContent(o, i)
},
JN = kt.each,
QN = kt.map,
ZN = kt.inArray,
eE = (tE.prototype.execCommand = function (t, n, r, e) {
var o, i, a = !1,
u = this;
if (!u.editor.removed) {
if (/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t) || e && e.skip_focus ? (i = u.editor, dm(i).each(function (e) {
return i.selection.setRng(e)
})) : u.editor.focus(), (e = u.editor.fire("BeforeExecCommand", {
command: t,
ui: n,
value: r
})).isDefaultPrevented()) return !1;
var s = t.toLowerCase();
if (o = u.commands.exec[s]) return o(s, n, r), u.editor.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !0;
if (JN(this.editor.plugins, function (e) {
if (e.execCommand && e.execCommand(t, n, r)) return u.editor.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !(a = !0)
}), a) return a;
if (u.editor.theme && u.editor.theme.execCommand && u.editor.theme.execCommand(t, n, r)) return u.editor.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !0;
try {
a = u.editor.getDoc().execCommand(t, n, r)
} catch (c) {}
return !!a && (u.editor.fire("ExecCommand", {
command: t,
ui: n,
value: r
}), !0)
}
}, tE.prototype.queryCommandState = function (e) {
var t;
if (!this.editor.quirks.isHidden() && !this.editor.removed) {
if (e = e.toLowerCase(), t = this.commands.state[e]) return t(e);
try {
return this.editor.getDoc().queryCommandState(e)
} catch (n) {}
return !1
}
}, tE.prototype.queryCommandValue = function (e) {
var t;
if (!this.editor.quirks.isHidden() && !this.editor.removed) {
if (e = e.toLowerCase(), t = this.commands.value[e]) return t(e);
try {
return this.editor.getDoc().queryCommandValue(e)
} catch (n) {}
}
}, tE.prototype.addCommands = function (e, n) {
void 0 === n && (n = "exec");
var r = this;
JN(e, function (t, e) {
JN(e.toLowerCase().split(","), function (e) {
r.commands[n][e] = t
})
})
}, tE.prototype.addCommand = function (e, o, i) {
var a = this;
e = e.toLowerCase(), this.commands.exec[e] = function (e, t, n, r) {
return o.call(i || a.editor, t, n, r)
}
}, tE.prototype.queryCommandSupported = function (e) {
if (e = e.toLowerCase(), this.commands.exec[e]) return !0;
try {
return this.editor.getDoc().queryCommandSupported(e)
} catch (t) {}
return !1
}, tE.prototype.addQueryStateHandler = function (e, t, n) {
var r = this;
e = e.toLowerCase(), this.commands.state[e] = function () {
return t.call(n || r.editor)
}
}, tE.prototype.addQueryValueHandler = function (e, t, n) {
var r = this;
e = e.toLowerCase(), this.commands.value[e] = function () {
return t.call(n || r.editor)
}
}, tE.prototype.hasCustomCommand = function (e) {
return e = e.toLowerCase(), !!this.commands.exec[e]
}, tE.prototype.execNativeCommand = function (e, t, n) {
return t === undefined && (t = !1), n === undefined && (n = null), this.editor.getDoc().execCommand(e, t, n)
}, tE.prototype.isFormatMatch = function (e) {
return this.editor.formatter.match(e)
}, tE.prototype.toggleFormat = function (e, t) {
this.editor.formatter.toggle(e, t ? {
value: t
} : undefined), this.editor.nodeChanged()
}, tE.prototype.storeSelection = function (e) {
this.selectionBookmark = this.editor.selection.getBookmark(e)
}, tE.prototype.restoreSelection = function () {
this.editor.selection.moveToBookmark(this.selectionBookmark)
}, tE.prototype.setupCommands = function (i) {
var a = this;
this.addCommands({
"mceResetDesignMode,mceBeginUndoLevel": function () {},
"mceEndUndoLevel,mceAddUndoLevel": function () {
i.undoManager.add()
},
"Cut,Copy,Paste": function (e) {
var t, n, r = i.getDoc();
try {
a.execNativeCommand(e)
} catch (o) {
t = !0
}
"paste" !== e || r.queryCommandEnabled(e) || (t = !0), !t && r.queryCommandSupported(e) || (n = i.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."), wt.mac && (n = n.replace(/Ctrl\+/g, "\u2318+")), i.notificationManager.open({
text: n,
type: "error"
}))
},
unlink: function () {
var e;
i.selection.isCollapsed() ? (e = i.dom.getParent(i.selection.getStart(), "a")) && i.dom.remove(e, !0) : i.formatter.remove("link")
},
"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone": function (e) {
var t = e.substring(7);
"full" === t && (t = "justify"), JN("left,center,right,justify".split(","), function (e) {
t !== e && i.formatter.remove("align" + e)
}), "none" !== t && a.toggleFormat("align" + t)
},
"InsertUnorderedList,InsertOrderedList": function (e) {
var t;
a.execNativeCommand(e);
var n = i.dom.getParent(i.selection.getNode(), "ol,ul");
n && (t = n.parentNode, /^(H[1-6]|P|ADDRESS|PRE)$/.test(t.nodeName) && (a.storeSelection(), i.dom.split(t, n), a.restoreSelection()))
},
"Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) {
a.toggleFormat(e)
},
"ForeColor,HiliteColor": function (e, t, n) {
a.toggleFormat(e, n)
},
FontName: function (e, t, n) {
YN(i, n)
},
FontSize: function (e, t, n) {
var r, o;
o = n, (r = i).formatter.toggle("fontsize", {
value: XN(r, o)
}), r.nodeChanged()
},
LineHeight: function (e, t, n) {
var r, o;
o = n, (r = i).undoManager.transact(function () {
r.formatter.toggle("lineheight", {
value: String(o)
}), r.nodeChanged()
})
},
RemoveFormat: function (e) {
i.formatter.remove(e)
},
mceBlockQuote: function () {
a.toggleFormat("blockquote")
},
FormatBlock: function (e, t, n) {
return a.toggleFormat(n || "p")
},
mceCleanup: function () {
var e = i.selection.getBookmark();
i.setContent(i.getContent()), i.selection.moveToBookmark(e)
},
mceRemoveNode: function (e, t, n) {
var r = n || i.selection.getNode();
r !== i.getBody() && (a.storeSelection(), i.dom.remove(r, !0), a.restoreSelection())
},
mceSelectNodeDepth: function (e, t, n) {
var r = 0;
i.dom.getParent(i.selection.getNode(), function (e) {
if (1 === e.nodeType && r++ === n) return i.selection.select(e), !1
}, i.getBody())
},
mceSelectNode: function (e, t, n) {
i.selection.select(n)
},
mceInsertContent: function (e, t, n) {
GN(i, n)
},
mceInsertRawHTML: function (e, t, n) {
i.selection.setContent("tiny_mce_marker");
var r = i.getContent();
i.setContent(r.replace(/tiny_mce_marker/g, function () {
return n
}))
},
mceInsertNewLine: function (e, t, n) {
MS(i, n)
},
mceToggleFormat: function (e, t, n) {
a.toggleFormat(n)
},
mceSetContent: function (e, t, n) {
i.setContent(n)
},
"Indent,Outdent": function (e) {
_w(i, e)
},
mceRepaint: function () {},
InsertHorizontalRule: function () {
i.execCommand("mceInsertContent", !1, "<hr />")
},
mceToggleVisualAid: function () {
i.hasVisual = !i.hasVisual, i.addVisual()
},
mceReplaceContent: function (e, t, n) {
i.execCommand("mceInsertContent", !1, n.replace(/\{\$selection\}/g, i.selection.getContent({
format: "text"
})))
},
mceInsertLink: function (e, t, n) {
"string" == typeof n && (n = {
href: n
});
var r = i.dom.getParent(i.selection.getNode(), "a");
n.href = n.href.replace(/ /g, "%20"), r && n.href || i.formatter.remove("link"), n.href && i.formatter.apply("link", n, r)
},
selectAll: function () {
var e, t = i.dom.getParent(i.selection.getStart(), Hn);
t && ((e = i.dom.createRng()).selectNodeContents(t), i.selection.setRng(e))
},
mceNewDocument: function () {
i.setContent("")
},
InsertLineBreak: function (e, t, n) {
return SS(i, n), !0
}
});
var e = function (r) {
return function () {
var e = i.selection,
t = e.isCollapsed() ? [i.dom.getParent(e.getNode(), i.dom.isBlock)] : e.getSelectedBlocks(),
n = QN(t, function (e) {
return !!i.formatter.matchNode(e, r)
});
return -1 !== ZN(n, !0)
}
};
a.addCommands({
JustifyLeft: e("alignleft"),
JustifyCenter: e("aligncenter"),
JustifyRight: e("alignright"),
JustifyFull: e("alignjustify"),
"Bold,Italic,Underline,Strikethrough,Superscript,Subscript": function (e) {
return a.isFormatMatch(e)
},
mceBlockQuote: function () {
return a.isFormatMatch("blockquote")
},
Outdent: function () {
return Nw(i)
},
"InsertUnorderedList,InsertOrderedList": function (e) {
var t = i.dom.getParent(i.selection.getNode(), "ul,ol");
return t && ("insertunorderedlist" === e && "UL" === t.tagName || "insertorderedlist" === e && "OL" === t.tagName)
}
}, "state"), a.addCommands({
Undo: function () {
i.undoManager.undo()
},
Redo: function () {
i.undoManager.redo()
}
}), a.addQueryValueHandler("FontName", function () {
return KN(t = i, function (e) {
return $N(t.getBody(), e.dom)
}).getOr("");
var t
}, this), a.addQueryValueHandler("FontSize", function () {
return KN(t = i, function (e) {
return qN(t.getBody(), e.dom)
}).getOr("");
var t
}, this), a.addQueryValueHandler("LineHeight", function () {
return KN(t = i, function (n) {
var e = At.fromDom(t.getBody());
return Pm(n, function (e) {
return nr(e, "line-height")
}, N(Ot, e)).getOrThunk(function () {
var e = parseFloat(er(n, "line-height")),
t = parseFloat(er(n, "font-size"));
return String(e / t)
})
}).getOr("");
var t
}, this)
}, tE);
function tE(e) {
this.commands = {
state: {},
exec: {},
value: {}
}, this.editor = e, this.setupCommands(e)
}
var nE = "data-mce-contenteditable",
rE = function (e, t, n) {
var r, o;
Xu(e, t) && !1 === n ? (o = t, Vu(r = e) ? r.dom.classList.remove(o) : $u(r, o), Ku(r)) : n && Wu(e, t)
},
oE = function (e, t, n) {
try {
e.getDoc().execCommand(t, !1, String(n))
} catch (r) {}
},
iE = function (e, t) {
e.dom.contentEditable = t ? "true" : "false"
},
aE = function (e, t) {
var n, r, o, i = At.fromDom(e.getBody());
rE(i, "mce-content-readonly", t), t ? (e.selection.controlSelection.hideResizeRect(), e._selectionOverrides.hideFakeCaret(), o = e, U.from(o.selection.getNode()).each(function (e) {
e.removeAttribute("data-mce-selected")
}), e.readonly = !0, iE(i, !1), W(Gu(i, '*[contenteditable="true"]'), function (e) {
Xn(e, nE, "true"), iE(e, !1)
})) : (e.readonly = !1, iE(i, !0), W(Gu(i, "*[" + nE + '="true"]'), function (e) {
Qn(e, nE), iE(e, !0)
}), oE(e, "StyleWithCSS", !1), oE(e, "enableInlineTableEditing", !1), oE(e, "enableObjectResizing", !1), (Em(r = e) || Nm(r)) && e.focus(), (n = e).selection.setRng(n.selection.getRng()), e.nodeChanged())
},
uE = function (e) {
return e.readonly
},
sE = function (t) {
t.parser.addAttributeFilter("contenteditable", function (e) {
uE(t) && W(e, function (e) {
e.attr(nE, e.attr("contenteditable")), e.attr("contenteditable", "false")
})
}), t.serializer.addAttributeFilter(nE, function (e) {
uE(t) && W(e, function (e) {
e.attr("contenteditable", e.attr(nE))
})
}), t.serializer.addTempAttr(nE)
},
cE = function (a, u) {
var e, t;
"click" !== u.type || ud.metaKeyPressed(u) || (e = At.fromDom(u.target), t = a, Or(e, "a", function (e) {
return Ot(e, At.fromDom(t.getBody()))
}).bind(function (e) {
return Jn(e, "href")
}).each(function (e) {
var t, n, r, o, i;
u.preventDefault(), /^#/.test(e) ? (t = a.dom.select(e + ',[name="' + (Ve(n = e, r = "#") ? (o = n, i = r.length, o.substring(i)) : n) + '"]')).length && a.selection.scrollIntoView(t[0], !0) : window.open(e, "_blank", "rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes")
}))
},
lE = kt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel", " "),
fE = (dE.isNative = function (e) {
return !!lE[e.toLowerCase()]
}, dE.prototype.fire = function (e, t) {
var n = e.toLowerCase(),
r = t || {};
r.type = n, r.target || (r.target = this.scope), r.preventDefault || (r.preventDefault = function () {
r.isDefaultPrevented = k
}, r.stopPropagation = function () {
r.isPropagationStopped = k
}, r.stopImmediatePropagation = function () {
r.isImmediatePropagationStopped = k
}, r.isDefaultPrevented = C, r.isPropagationStopped = C, r.isImmediatePropagationStopped = C), this.settings.beforeFire && this.settings.beforeFire(r);
var o = this.bindings[n];
if (o)
for (var i = 0, a = o.length; i < a; i++) {
var u = o[i];
if (u.once && this.off(n, u.func), r.isImmediatePropagationStopped()) return r.stopPropagation(), r;
if (!1 === u.func.call(this.scope, r)) return r.preventDefault(), r
}
return r
}, dE.prototype.on = function (e, t, n, r) {
if (!1 === t && (t = C), t) {
var o = {
func: t
};
r && kt.extend(o, r);
for (var i = e.toLowerCase().split(" "), a = i.length; a--;) {
var u = i[a],
s = this.bindings[u];
s || (s = this.bindings[u] = [], this.toggleEvent(u, !0)), n ? s.unshift(o) : s.push(o)
}
}
return this
}, dE.prototype.off = function (e, t) {
var n = this;
if (e)
for (var r = e.toLowerCase().split(" "), o = r.length; o--;) {
var i = r[o],
a = this.bindings[i];
if (!i) return ue(this.bindings, function (e, t) {
n.toggleEvent(t, !1), delete n.bindings[t]
}), this;
if (a) {
if (t)
for (var u = a.length; u--;) a[u].func === t && (a = a.slice(0, u).concat(a.slice(u + 1)), this.bindings[i] = a);
else a.length = 0;
a.length || (this.toggleEvent(e, !1), delete this.bindings[i])
}
} else ue(this.bindings, function (e, t) {
n.toggleEvent(t, !1)
}), this.bindings = {};
return this
}, dE.prototype.once = function (e, t, n) {
return this.on(e, t, n, {
once: !0
})
}, dE.prototype.has = function (e) {
return e = e.toLowerCase(), !(!this.bindings[e] || 0 === this.bindings[e].length)
}, dE);
function dE(e) {
this.bindings = {}, this.settings = e || {}, this.scope = this.settings.scope || this, this.toggleEvent = this.settings.toggleEvent || C
}
var mE, pE = function (n) {
return n._eventDispatcher || (n._eventDispatcher = new fE({
scope: n,
toggleEvent: function (e, t) {
fE.isNative(e) && n.toggleNativeEvent && n.toggleNativeEvent(e, t)
}
})), n._eventDispatcher
},
gE = {
fire: function (e, t, n) {
if (this.removed && "remove" !== e && "detach" !== e) return t;
var r = pE(this).fire(e, t);
if (!1 !== n && this.parent)
for (var o = this.parent(); o && !r.isPropagationStopped();) o.fire(e, r, !1), o = o.parent();
return r
},
on: function (e, t, n) {
return pE(this).on(e, t, n)
},
off: function (e, t) {
return pE(this).off(e, t)
},
once: function (e, t) {
return pE(this).once(e, t)
},
hasEventListeners: function (e) {
return pE(this).has(e)
}
},
hE = Eu.DOM,
vE = function (e, t) {
if ("selectionchange" === t) return e.getDoc();
if (!e.inline && /^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)) return e.getDoc().documentElement;
var n = Ec(e);
return n ? (e.eventRoot || (e.eventRoot = hE.select(n)[0]), e.eventRoot) : e.getBody()
},
yE = function (e, t, n) {
var r;
(r = e).hidden || uE(r) ? uE(e) && cE(e, n) : e.fire(t, n)
},
bE = function (i, a) {
var e;
if (i.delegates || (i.delegates = {}), !i.delegates[a] && !i.removed) {
var t = vE(i, a);
if (Ec(i)) {
if (mE || (mE = {}, i.editorManager.on("removeEditor", function () {
i.editorManager.activeEditor || mE && (ue(mE, function (e, t) {
i.dom.unbind(vE(i, t))
}), mE = null)
})), mE[a]) return;
e = function (e) {
for (var t = e.target, n = i.editorManager.get(), r = n.length; r--;) {
var o = n[r].getBody();
o !== t && !hE.isChildOf(t, o) || yE(n[r], a, e)
}
}, mE[a] = e, hE.bind(t, a, e)
} else e = function (e) {
yE(i, a, e)
}, hE.bind(t, a, e), i.delegates[a] = e
}
},
CE = ke(ke({}, gE), {
bindPendingEventDelegates: function () {
var t = this;
kt.each(t._pendingNativeEvents, function (e) {
bE(t, e)
})
},
toggleNativeEvent: function (e, t) {
var n = this;
"focus" !== e && "blur" !== e && (t ? n.initialized ? bE(n, e) : n._pendingNativeEvents ? n._pendingNativeEvents.push(e) : n._pendingNativeEvents = [e] : n.initialized && (n.dom.unbind(vE(n, e), e, n.delegates[e]), delete n.delegates[e]))
},
unbindAllNativeEvents: function () {
var n = this,
e = n.getBody(),
t = n.dom;
n.delegates && (ue(n.delegates, function (e, t) {
n.dom.unbind(vE(n, t), t, e)
}), delete n.delegates), !n.inline && e && t && (e.onload = null, t.unbind(n.getWin()), t.unbind(n.getDoc())), t && (t.unbind(e), t.unbind(n.getContainer()))
}
}),
wE = ["design", "readonly"],
xE = function (e, t, n, r) {
var o, i = n[t.get()],
a = n[r];
try {
a.activate()
} catch (Ok) {
return void console.error("problem while activating editor mode " + r + ":", Ok)
}
i.deactivate(), i.editorReadOnly !== a.editorReadOnly && aE(e, a.editorReadOnly), t.set(r), o = r, e.fire("SwitchMode", {
mode: o
})
},
SE = function (t) {
var e, n, r = Ou("design"),
o = Ou({
design: {
activate: V,
deactivate: V,
editorReadOnly: !1
},
readonly: {
activate: V,
deactivate: V,
editorReadOnly: !0
}
});
return (e = t).serializer ? sE(e) : e.on("PreInit", function () {
sE(e)
}), (n = t).on("ShowCaret", function (e) {
uE(n) && e.preventDefault()
}), n.on("ObjectSelected", function (e) {
uE(n) && e.preventDefault()
}), {
isReadOnly: function () {
return uE(t)
},
set: function (e) {
return function (e, t, n, r) {
if (r !== n.get()) {
if (!he(t, r)) throw new Error("Editor mode '" + r + "' is invalid");
e.initialized ? xE(e, n, t, r) : e.on("init", function () {
return xE(e, n, t, r)
})
}
}(t, o.get(), r, e)
},
get: function () {
return r.get()
},
register: function (e, t) {
o.set(function (e, t, n) {
var r;
if (M(wE, t)) throw new Error("Cannot override default mode " + t);
return ke(ke({}, e), ((r = {})[t] = ke(ke({}, n), {
deactivate: function () {
try {
n.deactivate()
} catch (Ok) {
console.error("problem while deactivating editor mode " + t + ":", Ok)
}
}
}), r))
}(o.get(), e, t))
}
}
},
NE = kt.each,
EE = kt.explode,
kE = {
f1: 112,
f2: 113,
f3: 114,
f4: 115,
f5: 116,
f6: 117,
f7: 118,
f8: 119,
f9: 120,
f10: 121,
f11: 122,
f12: 123
},
_E = kt.makeMap("alt,ctrl,shift,meta,access"),
AE = (RE.prototype.add = function (e, n, t, r) {
var o = this,
i = o.normalizeCommandFunc(t);
return NE(EE(kt.trim(e)), function (e) {
var t = o.createShortcut(e, n, i, r);
o.shortcuts[t.id] = t
}), !0
}, RE.prototype.remove = function (e) {
var t = this.createShortcut(e);
return !!this.shortcuts[t.id] && (delete this.shortcuts[t.id], !0)
}, RE.prototype.normalizeCommandFunc = function (e) {
var t = this,
n = e;
return "string" == typeof n ? function () {
t.editor.execCommand(n, !1, null)
} : kt.isArray(n) ? function () {
t.editor.execCommand(n[0], n[1], n[2])
} : n
}, RE.prototype.parseShortcut = function (e) {
var t, n = {};
NE(EE(e.toLowerCase(), "+"), function (e) {
e in _E ? n[e] = !0 : /^[0-9]{2,}$/.test(e) ? n.keyCode = parseInt(e, 10) : (n.charCode = e.charCodeAt(0), n.keyCode = kE[e] || e.toUpperCase().charCodeAt(0))
});
var r = [n.keyCode];
for (t in _E) n[t] ? r.push(t) : n[t] = !1;
return n.id = r.join(","), n.access && (n.alt = !0, wt.mac ? n.ctrl = !0 : n.shift = !0), n.meta && (wt.mac ? n.meta = !0 : (n.ctrl = !0, n.meta = !1)), n
}, RE.prototype.createShortcut = function (e, t, n, r) {
var o = kt.map(EE(e, ">"), this.parseShortcut);
return o[o.length - 1] = kt.extend(o[o.length - 1], {
func: n,
scope: r || this.editor
}), kt.extend(o[0], {
desc: this.editor.translate(t),
subpatterns: o.slice(1)
})
}, RE.prototype.hasModifier = function (e) {
return e.altKey || e.ctrlKey || e.metaKey
}, RE.prototype.isFunctionKey = function (e) {
return "keydown" === e.type && 112 <= e.keyCode && e.keyCode <= 123
}, RE.prototype.matchShortcut = function (e, t) {
return !!t && t.ctrl === e.ctrlKey && t.meta === e.metaKey && t.alt === e.altKey && t.shift === e.shiftKey && !!(e.keyCode === t.keyCode || e.charCode && e.charCode === t.charCode) && (e.preventDefault(), !0)
}, RE.prototype.executeShortcutAction = function (e) {
return e.func ? e.func.call(e.scope) : null
}, RE);
function RE(e) {
this.shortcuts = {}, this.pendingPatterns = [], this.editor = e;
var n = this;
e.on("keyup keypress keydown", function (t) {
!n.hasModifier(t) && !n.isFunctionKey(t) || t.isDefaultPrevented() || (NE(n.shortcuts, function (e) {
if (n.matchShortcut(t, e)) return n.pendingPatterns = e.subpatterns.slice(0), "keydown" === t.type && n.executeShortcutAction(e), !0
}), n.matchShortcut(t, n.pendingPatterns[0]) && (1 === n.pendingPatterns.length && "keydown" === t.type && n.executeShortcutAction(n.pendingPatterns[0]), n.pendingPatterns.shift()))
})
}
var TE = function () {
var e, t, n, r, o, i, a, u, s = (t = {}, n = {}, r = {}, o = {}, i = {}, a = {}, {
addButton: (u = function (n, r) {
return function (e, t) {
return n[e.toLowerCase()] = ke(ke({}, t), {
type: r
})
}
})(e = {}, "button"),
addGroupToolbarButton: u(e, "grouptoolbarbutton"),
addToggleButton: u(e, "togglebutton"),
addMenuButton: u(e, "menubutton"),
addSplitButton: u(e, "splitbutton"),
addMenuItem: u(t, "menuitem"),
addNestedMenuItem: u(t, "nestedmenuitem"),
addToggleMenuItem: u(t, "togglemenuitem"),
addAutocompleter: u(n, "autocompleter"),
addContextMenu: u(o, "contextmenu"),
addContextToolbar: u(i, "contexttoolbar"),
addContextForm: u(i, "contextform"),
addSidebar: u(a, "sidebar"),
addIcon: function (e, t) {
return r[e.toLowerCase()] = t
},
getAll: function () {
return {
buttons: e,
menuItems: t,
icons: r,
popups: n,
contextMenus: o,
contextToolbars: i,
sidebars: a
}
}
});
return {
addAutocompleter: s.addAutocompleter,
addButton: s.addButton,
addContextForm: s.addContextForm,
addContextMenu: s.addContextMenu,
addContextToolbar: s.addContextToolbar,
addIcon: s.addIcon,
addMenuButton: s.addMenuButton,
addMenuItem: s.addMenuItem,
addNestedMenuItem: s.addNestedMenuItem,
addSidebar: s.addSidebar,
addSplitButton: s.addSplitButton,
addToggleButton: s.addToggleButton,
addGroupToolbarButton: s.addGroupToolbarButton,
addToggleMenuItem: s.addToggleMenuItem,
getAll: s.getAll
}
},
DE = kt.each,
OE = kt.trim,
BE = "source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),
PE = {
ftp: 21,
http: 80,
https: 443,
mailto: 25
},
LE = (IE.parseDataUri = function (e) {
var t, n = decodeURIComponent(e).split(","),
r = /data:([^;]+)/.exec(n[0]);
return r && (t = r[1]), {
type: t,
data: n[1]
}
}, IE.getDocumentBaseUrl = function (e) {
var t = 0 !== e.protocol.indexOf("http") && "file:" !== e.protocol ? e.href : e.protocol + "//" + e.host + e.pathname;
return /^[^:]+:\/\/\/?[^\/]+\//.test(t) && (t = t.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(t) || (t += "/")), t
}, IE.prototype.setPath = function (e) {
var t = /^(.*?)\/?(\w+)?$/.exec(e);
this.path = t[0], this.directory = t[1], this.file = t[2], this.source = "", this.getURI()
}, IE.prototype.toRelative = function (e) {
var t;
if ("./" === e) return e;
var n = new IE(e, {
base_uri: this
});
if ("mce_host" !== n.host && this.host !== n.host && n.host || this.port !== n.port || this.protocol !== n.protocol && "" !== n.protocol) return n.getURI();
var r = this.getURI(),
o = n.getURI();
return r === o || "/" === r.charAt(r.length - 1) && r.substr(0, r.length - 1) === o ? r : (t = this.toRelPath(this.path, n.path), n.query && (t += "?" + n.query), n.anchor && (t += "#" + n.anchor), t)
}, IE.prototype.toAbsolute = function (e, t) {
var n = new IE(e, {
base_uri: this
});
return n.getURI(t && this.isSameOrigin(n))
}, IE.prototype.isSameOrigin = function (e) {
if (this.host == e.host && this.protocol == e.protocol) {
if (this.port == e.port) return !0;
var t = PE[this.protocol];
if (t && (this.port || t) == (e.port || t)) return !0
}
return !1
}, IE.prototype.toRelPath = function (e, t) {
var n, r, o = 0,
i = "",
a = e.substring(0, e.lastIndexOf("/")).split("/"),
u = t.split("/");
if (a.length >= u.length)
for (n = 0, r = a.length; n < r; n++)
if (n >= u.length || a[n] !== u[n]) {
o = n + 1;
break
} if (a.length < u.length)
for (n = 0, r = u.length; n < r; n++)
if (n >= a.length || a[n] !== u[n]) {
o = n + 1;
break
} if (1 === o) return t;
for (n = 0, r = a.length - (o - 1); n < r; n++) i += "../";
for (n = o - 1, r = u.length; n < r; n++) i += n !== o - 1 ? "/" + u[n] : u[n];
return i
}, IE.prototype.toAbsPath = function (e, t) {
var n, r, o = 0,
i = [],
a = /\/$/.test(t) ? "/" : "",
u = e.split("/"),
s = t.split("/");
for (DE(u, function (e) {
e && i.push(e)
}), u = i, n = s.length - 1, i = []; 0 <= n; n--) 0 !== s[n].length && "." !== s[n] && (".." !== s[n] ? 0 < o ? o-- : i.push(s[n]) : o++);
return 0 !== (r = (n = u.length - o) <= 0 ? Z(i).join("/") : u.slice(0, n).join("/") + "/" + Z(i).join("/")).indexOf("/") && (r = "/" + r), a && r.lastIndexOf("/") !== r.length - 1 && (r += a), r
}, IE.prototype.getURI = function (e) {
var t;
return void 0 === e && (e = !1), this.source && !e || (t = "", e || (this.protocol ? t += this.protocol + "://" : t += "//", this.userInfo && (t += this.userInfo + "@"), this.host && (t += this.host), this.port && (t += ":" + this.port)), this.path && (t += this.path), this.query && (t += "?" + this.query), this.anchor && (t += "#" + this.anchor), this.source = t), this.source
}, IE);
function IE(e, t) {
e = OE(e), this.settings = t || {};
var n, r, o, i, a = this.settings.base_uri,
u = this;
/^([\w\-]+):([^\/]{2})/i.test(e) || /^\s*#/.test(e) ? u.source = e : (n = 0 === e.indexOf("//"), 0 !== e.indexOf("/") || n || (e = (a && a.protocol || "http") + "://mce_host" + e), /^[\w\-]*:?\/\//.test(e) || (r = this.settings.base_uri ? this.settings.base_uri.path : new IE(document.location.href).directory, e = this.settings.base_uri && "" == this.settings.base_uri.protocol ? "//mce_host" + u.toAbsPath(r, e) : (o = /([^#?]*)([#?]?.*)/.exec(e), (a && a.protocol || "http") + "://mce_host" + u.toAbsPath(r, o[1]) + o[2])), e = e.replace(/@@/g, "(mce_at)"), i = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e), DE(BE, function (e, t) {
var n = (n = i[t]) && n.replace(/\(mce_at\)/g, "@@");
u[e] = n
}), a && (u.protocol || (u.protocol = a.protocol), u.userInfo || (u.userInfo = a.userInfo), u.port || "mce_host" !== u.host || (u.port = a.port), u.host && "mce_host" !== u.host || (u.host = a.host), u.source = ""), n && (u.protocol = ""))
}
var ME = Eu.DOM,
FE = kt.extend,
UE = kt.each,
zE = kt.resolve,
jE = wt.ie,
HE = (VE.prototype.render = function () {
UN(this)
}, VE.prototype.focus = function (e) {
var t, n;
n = e, (t = this).removed || (n ? _m : km)(t)
}, VE.prototype.hasFocus = function () {
return Em(this)
}, VE.prototype.execCallback = function (e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
var r, o = this.settings[e];
if (o) return this.callbackLookup && (r = this.callbackLookup[e]) && (o = r.func, r = r.scope), "string" == typeof o && (r = (r = o.replace(/\.\w+$/, "")) ? zE(r) : 0, o = zE(o), this.callbackLookup = this.callbackLookup || {}, this.callbackLookup[e] = {
func: o,
scope: r
}), o.apply(r || this, t)
}, VE.prototype.translate = function (e) {
return Iu.translate(e)
}, VE.prototype.getParam = function (e, t, n) {
return Xy(this, e, t, n)
}, VE.prototype.hasPlugin = function (e, t) {
return !(!M(Ac(this).split(/[ ,]/), e) || t && ib.get(e) === undefined)
}, VE.prototype.nodeChanged = function (e) {
this._nodeChangeDispatcher.nodeChanged(e)
}, VE.prototype.addCommand = function (e, t, n) {
this.editorCommands.addCommand(e, t, n)
}, VE.prototype.addQueryStateHandler = function (e, t, n) {
this.editorCommands.addQueryStateHandler(e, t, n)
}, VE.prototype.addQueryValueHandler = function (e, t, n) {
this.editorCommands.addQueryValueHandler(e, t, n)
}, VE.prototype.addShortcut = function (e, t, n, r) {
this.shortcuts.add(e, t, n, r)
}, VE.prototype.execCommand = function (e, t, n, r) {
return this.editorCommands.execCommand(e, t, n, r)
}, VE.prototype.queryCommandState = function (e) {
return this.editorCommands.queryCommandState(e)
}, VE.prototype.queryCommandValue = function (e) {
return this.editorCommands.queryCommandValue(e)
}, VE.prototype.queryCommandSupported = function (e) {
return this.editorCommands.queryCommandSupported(e)
}, VE.prototype.show = function () {
this.hidden && (this.hidden = !1, this.inline ? this.getBody().contentEditable = "true" : (ME.show(this.getContainer()), ME.hide(this.id)), this.load(), this.fire("show"))
}, VE.prototype.hide = function () {
var e = this,
t = e.getDoc();
e.hidden || (jE && t && !e.inline && t.execCommand("SelectAll"), e.save(), e.inline ? (e.getBody().contentEditable = "false", e === e.editorManager.focusedEditor && (e.editorManager.focusedEditor = null)) : (ME.hide(e.getContainer()), ME.setStyle(e.id, "display", e.orgDisplay)), e.hidden = !0, e.fire("hide"))
}, VE.prototype.isHidden = function () {
return !!this.hidden
}, VE.prototype.setProgressState = function (e, t) {
this.fire("ProgressState", {
state: e,
time: t
})
}, VE.prototype.load = function (e) {
var t = this.getElement();
if (this.removed) return "";
if (t) {
(e = e || {}).load = !0;
var n = Ln(t) ? t.value : t.innerHTML,
r = this.setContent(n, e);
return e.element = t, e.no_events || this.fire("LoadContent", e), e.element = t = null, r
}
}, VE.prototype.save = function (e) {
var t, n, r = this,
o = r.getElement();
if (o && r.initialized && !r.removed) return (e = e || {}).save = !0, e.element = o, e.content = r.getContent(e), e.no_events || r.fire("SaveContent", e), "raw" === e.format && r.fire("RawSaveContent", e), t = e.content, Ln(o) ? o.value = t : (!e.is_removing && r.inline || (o.innerHTML = t), (n = ME.getParent(r.id, "form")) && UE(n.elements, function (e) {
if (e.name === r.id) return e.value = t, !1
})), e.element = o = null, !1 !== e.set_dirty && r.setDirty(!1), t
}, VE.prototype.setContent = function (e, t) {
return ky(this, e, t)
}, VE.prototype.getContent = function (e) {
return Ey(this, e)
}, VE.prototype.insertContent = function (e, t) {
t && (e = FE({
content: e
}, t)), this.execCommand("mceInsertContent", !1, e)
}, VE.prototype.resetContent = function (e) {
e === undefined ? ky(this, this.startContent, {
format: "raw"
}) : ky(this, e), this.undoManager.reset(), this.setDirty(!1), this.nodeChanged()
}, VE.prototype.isDirty = function () {
return !this.isNotDirty
}, VE.prototype.setDirty = function (e) {
var t = !this.isNotDirty;
this.isNotDirty = !e, e && e !== t && this.fire("dirty")
}, VE.prototype.getContainer = function () {
return this.container || (this.container = ME.get(this.editorContainer || this.id + "_parent")), this.container
}, VE.prototype.getContentAreaContainer = function () {
return this.contentAreaContainer
}, VE.prototype.getElement = function () {
return this.targetElm || (this.targetElm = ME.get(this.id)), this.targetElm
}, VE.prototype.getWin = function () {
var e;
return this.contentWindow || (e = this.iframeElement) && (this.contentWindow = e.contentWindow), this.contentWindow
}, VE.prototype.getDoc = function () {
var e;
return this.contentDocument || (e = this.getWin()) && (this.contentDocument = e.document), this.contentDocument
}, VE.prototype.getBody = function () {
var e = this.getDoc();
return this.bodyElement || (e ? e.body : null)
}, VE.prototype.convertURL = function (e, t, n) {
var r = this.settings;
return r.urlconverter_callback ? this.execCallback("urlconverter_callback", e, n, !0, t) : !r.convert_urls || n && "LINK" === n.nodeName || 0 === e.indexOf("file:") || 0 === e.length ? e : r.relative_urls ? this.documentBaseURI.toRelative(e) : e = this.documentBaseURI.toAbsolute(e, r.remove_script_host)
}, VE.prototype.addVisual = function (e) {
zN(this, e)
}, VE.prototype.remove = function () {
Ry(this)
}, VE.prototype.destroy = function (e) {
Ty(this, e)
}, VE.prototype.uploadImages = function (e) {
return this.editorUpload.uploadImages(e)
}, VE.prototype._scanForImages = function () {
return this.editorUpload.scanForImages()
}, VE.prototype.addButton = function () {
throw new Error("editor.addButton has been removed in tinymce 5x, use editor.ui.registry.addButton or editor.ui.registry.addToggleButton or editor.ui.registry.addSplitButton instead")
}, VE.prototype.addSidebar = function () {
throw new Error("editor.addSidebar has been removed in tinymce 5x, use editor.ui.registry.addSidebar instead")
}, VE.prototype.addMenuItem = function () {
throw new Error("editor.addMenuItem has been removed in tinymce 5x, use editor.ui.registry.addMenuItem instead")
}, VE.prototype.addContextToolbar = function () {
throw new Error("editor.addContextToolbar has been removed in tinymce 5x, use editor.ui.registry.addContextToolbar instead")
}, VE);
function VE(e, t, n) {
var r = this;
this.plugins = {}, this.contentCSS = [], this.contentStyles = [], this.loadedCSS = {}, this.isNotDirty = !1, this.editorManager = n, this.documentBaseUrl = n.documentBaseURL, FE(this, CE), this.settings = Wy(this, e, this.documentBaseUrl, n.defaultSettings, t), this.settings.suffix && (n.suffix = this.settings.suffix), this.suffix = n.suffix, this.settings.base_url && n._setBaseUrl(this.settings.base_url), this.baseUri = n.baseURI, this.settings.referrer_policy && (Ru.ScriptLoader._setReferrerPolicy(this.settings.referrer_policy), Eu.DOM.styleSheetLoader._setReferrerPolicy(this.settings.referrer_policy)), Uu.languageLoad = this.settings.language_load, Uu.baseURL = n.baseURL, this.id = e, this.setDirty(!1), this.documentBaseURI = new LE(this.settings.document_base_url, {
base_uri: this.baseUri
}), this.baseURI = this.baseUri, this.inline = !!this.settings.inline, this.shortcuts = new AE(this), this.editorCommands = new eE(this), this.settings.cache_suffix && (wt.cacheSuffix = this.settings.cache_suffix.replace(/^[\?\&]+/, "")), this.ui = {
registry: TE(),
styleSheetLoader: undefined,
show: V,
hide: V,
enable: V,
disable: V,
isDisabled: C
};
var o = SE(this);
this.mode = o, this.setMode = o.set, n.fire("SetupEditor", {
editor: this
}), this.execCallback("setup", this), this.$ = hu.overrideDefaults(function () {
return {
context: r.inline ? r.getBody() : r.getDoc(),
element: r.getBody()
}
})
}
var qE, $E = Eu.DOM,
WE = kt.explode,
KE = kt.each,
XE = kt.extend,
YE = 0,
GE = !1,
JE = [],
QE = [],
ZE = function (t) {
var n = t.type;
KE(rk.get(), function (e) {
switch (n) {
case "scroll":
e.fire("ScrollWindow", t);
break;
case "resize":
e.fire("ResizeWindow", t)
}
})
},
ek = function (e) {
e !== GE && (e ? hu(window).on("resize scroll", ZE) : hu(window).off("resize scroll", ZE), GE = e)
},
tk = function (t) {
var e = QE;
delete JE[t.id];
for (var n = 0; n < JE.length; n++)
if (JE[n] === t) {
JE.splice(n, 1);
break
} return QE = H(QE, function (e) {
return t !== e
}), rk.activeEditor === t && (rk.activeEditor = 0 < QE.length ? QE[0] : null), rk.focusedEditor === t && (rk.focusedEditor = null), e.length !== QE.length
},
nk = "CSS1Compat" !== document.compatMode,
rk = ke(ke({}, gE), {
baseURI: null,
baseURL: null,
defaultSettings: {},
documentBaseURL: null,
suffix: null,
$: hu,
majorVersion: "5",
minorVersion: "6.2",
releaseDate: "2020-12-08",
editors: JE,
i18n: Iu,
activeEditor: null,
focusedEditor: null,
settings: {},
setup: function () {
var e, t = "",
n = LE.getDocumentBaseUrl(document.location);
/^[^:]+:\/\/\/?[^\/]+\//.test(n) && (n = n.replace(/[\?#].*$/, "").replace(/[\/\\][^\/]+$/, ""), /[\/\\]$/.test(n) || (n += "/"));
var r, o = window.tinymce || window.tinyMCEPreInit;
if (o) e = o.base || o.baseURL, t = o.suffix;
else {
for (var i, a = document.getElementsByTagName("script"), u = 0; u < a.length; u++) {
if ("" !== (i = a[u].src || "")) {
var s = i.substring(i.lastIndexOf("/"));
if (/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(i)) {
-1 !== s.indexOf(".min") && (t = ".min"), e = i.substring(0, i.lastIndexOf("/"));
break
}
}
}!e && document.currentScript && (-1 !== (i = document.currentScript.src).indexOf(".min") && (t = ".min"), e = i.substring(0, i.lastIndexOf("/")))
}
this.baseURL = new LE(n).toAbsolute(e), this.documentBaseURL = n, this.baseURI = new LE(this.baseURL), this.suffix = t, (r = this).on("AddEditor", N(ym, r)), r.on("RemoveEditor", N(bm, r))
},
overrideDefaults: function (e) {
var t = e.base_url;
t && this._setBaseUrl(t);
var n = e.suffix;
e.suffix && (this.suffix = n);
var r = (this.defaultSettings = e).plugin_base_urls;
r !== undefined && ue(r, function (e, t) {
Uu.PluginManager.urls[t] = e
})
},
init: function (r) {
var n, u = this,
s = kt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu", " "),
c = function (e) {
var t = e.id;
return t || (t = ge(e, "name").filter(function (e) {
return !$E.get(e)
}).getOrThunk($E.uniqueId), e.setAttribute("id", t)), t
},
l = function (e, t) {
return t.constructor === RegExp ? t.test(e.className) : $E.hasClass(e, t)
},
f = function (e) {
n = e
},
e = function () {
var o, i = 0,
a = [],
n = function (e, t, n) {
var r = new HE(e, t, u);
a.push(r), r.on("init", function () {
++i === o.length && f(a)
}), r.targetElm = r.targetElm || n, r.render()
};
$E.unbind(window, "ready", e),
function (e) {
var t = r[e];
if (t) t.apply(u, Array.prototype.slice.call(arguments, 2))
}("onpageload"), o = hu.unique(function (t) {
var n = [];
if (wt.browser.isIE() && wt.browser.version.major < 11) return mb("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"), [];
if (nk) return mb("Failed to initialize the editor as the document is not in standards mode. TinyMCE requires standards mode."), [];
if (t.types) return KE(t.types, function (e) {
n = n.concat($E.select(e.selector))
}), n;
if (t.selector) return $E.select(t.selector);
if (t.target) return [t.target];
switch (t.mode) {
case "exact":
var e = t.elements || "";
0 < e.length && KE(WE(e), function (t) {
var e = $E.get(t);
e ? n.push(e) : KE(document.forms, function (e) {
KE(e.elements, function (e) {
e.name === t && (t = "mce_editor_" + YE++, $E.setAttrib(e, "id", t), n.push(e))
})
})
});
break;
case "textareas":
case "specific_textareas":
KE($E.select("textarea"), function (e) {
t.editor_deselector && l(e, t.editor_deselector) || t.editor_selector && !l(e, t.editor_selector) || n.push(e)
})
}
return n
}(r)), r.types ? KE(r.types, function (t) {
kt.each(o, function (e) {
return !$E.is(e, t.selector) || (n(c(e), XE({}, r, t), e), !1)
})
}) : (kt.each(o, function (e) {
var t;
(t = u.get(e.id)) && t.initialized && !(t.getContainer() || t.getBody()).parentNode && (tk(t), t.unbindAllNativeEvents(), t.destroy(!0), t.removed = !0, t = null)
}), 0 === (o = kt.grep(o, function (e) {
return !u.get(e.id)
})).length ? f([]) : KE(o, function (e) {
var t;
t = e, r.inline && t.tagName.toLowerCase() in s ? mb("Could not initialize inline editor on invalid inline target element", e) : n(c(e), r, e)
}))
};
return u.settings = r, $E.bind(window, "ready", e), new Br(function (t) {
n ? t(n) : f = function (e) {
t(e)
}
})
},
get: function (t) {
return 0 === arguments.length ? QE.slice(0) : q(t) ? Y(QE, function (e) {
return e.id === t
}).getOr(null) : O(t) && QE[t] ? QE[t] : null
},
add: function (e) {
var n = this;
return JE[e.id] === e || (null === n.get(e.id) && ("length" !== e.id && (JE[e.id] = e), JE.push(e), QE.push(e)), ek(!0), n.activeEditor = e, n.fire("AddEditor", {
editor: e
}), qE || (qE = function (e) {
var t = n.fire("BeforeUnload");
if (t.returnValue) return e.preventDefault(), e.returnValue = t.returnValue, t.returnValue
}, window.addEventListener("beforeunload", qE))), e
},
createEditor: function (e, t) {
return this.add(new HE(e, t, this))
},
remove: function (e) {
var t, n, r = this;
if (e) {
if (!q(e)) return n = e, x(r.get(n.id)) ? null : (tk(n) && r.fire("RemoveEditor", {
editor: n
}), 0 === QE.length && window.removeEventListener("beforeunload", qE), n.remove(), ek(0 < QE.length), n);
KE($E.select(e), function (e) {
(n = r.get(e.id)) && r.remove(n)
})
} else
for (t = QE.length - 1; 0 <= t; t--) r.remove(QE[t])
},
execCommand: function (e, t, n) {
var r = this.get(n);
switch (e) {
case "mceAddEditor":
return this.get(n) || new HE(n, this.settings, this).render(), !0;
case "mceRemoveEditor":
return r && r.remove(), !0;
case "mceToggleEditor":
return r ? (r.isHidden() ? r.show() : r.hide(), !0) : (this.execCommand("mceAddEditor", 0, n), !0)
}
return !!this.activeEditor && this.activeEditor.execCommand(e, t, n)
},
triggerSave: function () {
KE(QE, function (e) {
e.save()
})
},
addI18n: function (e, t) {
Iu.add(e, t)
},
translate: function (e) {
return Iu.translate(e)
},
setActive: function (e) {
var t = this.activeEditor;
this.activeEditor !== e && (t && t.fire("deactivate", {
relatedTarget: e
}), e.fire("activate", {
relatedTarget: t
})), this.activeEditor = e
},
_setBaseUrl: function (e) {
this.baseURL = new LE(this.documentBaseURL).toAbsolute(e.replace(/\/+$/, "")), this.baseURI = new LE(this.baseURL)
}
});
rk.setup();
var ok, ik, ak, uk, sk = Math.min,
ck = Math.max,
lk = Math.round,
fk = function (e, t, n) {
var r = t.x,
o = t.y,
i = e.w,
a = e.h,
u = t.w,
s = t.h,
c = (n || "").split("");
return "b" === c[0] && (o += s), "r" === c[1] && (r += u), "c" === c[0] && (o += lk(s / 2)), "c" === c[1] && (r += lk(u / 2)), "b" === c[3] && (o -= a), "r" === c[4] && (r -= i), "c" === c[3] && (o -= lk(a / 2)), "c" === c[4] && (r -= lk(i / 2)), dk(r, o, i, a)
},
dk = function (e, t, n, r) {
return {
x: e,
y: t,
w: n,
h: r
}
},
mk = {
inflate: function (e, t, n) {
return dk(e.x - t, e.y - n, e.w + 2 * t, e.h + 2 * n)
},
relativePosition: fk,
findBestRelativePosition: function (e, t, n, r) {
for (var o, i = 0; i < r.length; i++)
if ((o = fk(e, t, r[i])).x >= n.x && o.x + o.w <= n.w + n.x && o.y >= n.y && o.y + o.h <= n.h + n.y) return r[i];
return null
},
intersect: function (e, t) {
var n = ck(e.x, t.x),
r = ck(e.y, t.y),
o = sk(e.x + e.w, t.x + t.w),
i = sk(e.y + e.h, t.y + t.h);
return o - n < 0 || i - r < 0 ? null : dk(n, r, o - n, i - r)
},
clamp: function (e, t, n) {
var r = e.x,
o = e.y,
i = e.x + e.w,
a = e.y + e.h,
u = t.x + t.w,
s = t.y + t.h,
c = ck(0, t.x - r),
l = ck(0, t.y - o),
f = ck(0, i - u),
d = ck(0, a - s);
return r += c, o += l, n && (i += c, a += l, r -= f, o -= d), dk(r, o, (i -= f) - r, (a -= d) - o)
},
create: dk,
fromClientRect: function (e) {
return dk(e.left, e.top, e.width, e.height)
}
},
pk = (ok = {}, ik = {}, {
load: function (r, o) {
var i = 'Script at URL "' + o + '" failed to load',
a = 'Script at URL "' + o + "\" did not call `tinymce.Resource.add('" + r + "', data)` within 1 second";
if (ok[r] !== undefined) return ok[r];
var e = new Br(function (e, t) {
var n = function (e, t, n) {
void 0 === n && (n = 1e3);
var r = !1,
o = null,
i = function (n) {
return function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
r || (r = !0, null !== o && (clearTimeout(o), o = null), n.apply(null, e))
}
},
a = i(e),
u = i(t);
return {
start: function () {
for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t];
r || null !== o || (o = setTimeout(function () {
return u.apply(null, e)
}, n))
},
resolve: a,
reject: u
}
}(e, t);
ik[r] = n.resolve, Ru.ScriptLoader.loadScript(o, function () {
return n.start(a)
}, function () {
return n.reject(i)
})
});
return ok[r] = e
},
add: function (e, t) {
ik[e] !== undefined && (ik[e](t), delete ik[e]), ok[e] = Br.resolve(t)
}
}),
gk = kt.each,
hk = kt.extend,
vk = function () {};
vk.extend = ak = function (n) {
var o = this.prototype,
r = function () {
var e, t, n;
if (!uk && (this.init && this.init.apply(this, arguments), t = this.Mixins))
for (e = t.length; e--;)(n = t[e]).init && n.init.apply(this, arguments)
},
t = function () {
return this
};
uk = !0;
var i = new this;
return uk = !1, n.Mixins && (gk(n.Mixins, function (e) {
for (var t in e) "init" !== t && (n[t] = e[t])
}), o.Mixins && (n.Mixins = o.Mixins.concat(n.Mixins))), n.Methods && gk(n.Methods.split(","), function (e) {
n[e] = t
}), n.Properties && gk(n.Properties.split(","), function (e) {
var t = "_" + e;
n[e] = function (e) {
return e !== undefined ? (this[t] = e, this) : this[t]
}
}), n.Statics && gk(n.Statics, function (e, t) {
r[t] = e
}), n.Defaults && o.Defaults && (n.Defaults = hk({}, o.Defaults, n.Defaults)), ue(n, function (e, t) {
var n, r;
"function" == typeof e && o[t] ? i[t] = (n = t, r = e, function () {
var e = this._super;
this._super = o[n];
var t = r.apply(this, arguments);
return this._super = e, t
}) : i[t] = e
}), r.prototype = i, (r.constructor = r).extend = ak, r
};
var yk = Math.min,
bk = Math.max,
Ck = Math.round,
wk = {
serialize: function (e) {
var t = JSON.stringify(e);
return q(t) ? t.replace(/[\u0080-\uFFFF]/g, function (e) {
var t = e.charCodeAt(0).toString(16);
return "\\u" + "0000".substring(t.length) + t
}) : t
},
parse: function (e) {
try {
return JSON.parse(e)
} catch (t) {}
}
},
xk = {
callbacks: {},
count: 0,
send: function (t) {
var n = this,
r = Eu.DOM,
o = t.count !== undefined ? t.count : n.count,
i = "tinymce_jsonp_" + o;
n.callbacks[o] = function (e) {
r.remove(i), delete n.callbacks[o], t.callback(e)
}, r.add(r.doc.body, "script", {
id: i,
src: t.url,
type: "text/javascript"
}), n.count++
}
},
Sk = ke(ke({}, gE), {
send: function (e) {
var t, n = 0,
r = function () {
!e.async || 4 === t.readyState || 1e4 < n++ ? (e.success && n < 1e4 && 200 === t.status ? e.success.call(e.success_scope, "" + t.responseText, t, e) : e.error && e.error.call(e.error_scope, 1e4 < n ? "TIMED_OUT" : "GENERAL", t, e), t = null) : qr.setTimeout(r, 10)
};
if (e.scope = e.scope || this, e.success_scope = e.success_scope || e.scope, e.error_scope = e.error_scope || e.scope, e.async = !1 !== e.async, e.data = e.data || "", Sk.fire("beforeInitialize", {
settings: e
}), (t = new XMLHttpRequest).overrideMimeType && t.overrideMimeType(e.content_type), t.open(e.type || (e.data ? "POST" : "GET"), e.url, e.async), e.crossDomain && (t.withCredentials = !0), e.content_type && t.setRequestHeader("Content-Type", e.content_type), e.requestheaders && kt.each(e.requestheaders, function (e) {
t.setRequestHeader(e.key, e.value)
}), t.setRequestHeader("X-Requested-With", "XMLHttpRequest"), (t = Sk.fire("beforeSend", {
xhr: t,
settings: e
}).xhr).send(e.data), !e.async) return r();
qr.setTimeout(r, 10)
}
}),
Nk = kt.extend,
Ek = (kk.sendRPC = function (e) {
return (new kk).send(e)
}, kk.prototype.send = function (e) {
var n = e.error,
r = e.success,
o = Nk(this.settings, e);
o.success = function (e, t) {
void 0 === (e = wk.parse(e)) && (e = {
error: "JSON Parse error."
}), e.error ? n.call(o.error_scope || o.scope, e.error, t) : r.call(o.success_scope || o.scope, e.result)
}, o.error = function (e, t) {
n && n.call(o.error_scope || o.scope, e, t)
}, o.data = wk.serialize({
id: e.id || "c" + this.count++,
method: e.method,
params: e.params
}), o.content_type = "application/json", Sk.send(o)
}, kk);
function kk(e) {
this.settings = Nk({}, e), this.count = 0
}
try {
var _k, Ak = "__storage_test__";
(_k = window.localStorage).setItem(Ak, Ak), _k.removeItem(Ak)
} catch (Ok) {
_k = function () {
return n = {}, r = [], e = {
getItem: function (e) {
var t = n[e];
return t || null
},
setItem: function (e, t) {
r.push(e), n[e] = String(t)
},
key: function (e) {
return r[e]
},
removeItem: function (t) {
r = r.filter(function (e) {
return e === t
}), delete n[t]
},
clear: function () {
r = [], n = {}
},
length: 0
}, Object.defineProperty(e, "length", {
get: function () {
return r.length
},
configurable: !1,
enumerable: !1
}), e;
var n, r, e
}()
}
var Rk, Tk = {
geom: {
Rect: mk
},
util: {
Promise: Br,
Delay: qr,
Tools: kt,
VK: ud,
URI: LE,
Class: vk,
EventDispatcher: fE,
Observable: gE,
I18n: Iu,
XHR: Sk,
JSON: wk,
JSONRequest: Ek,
JSONP: xk,
LocalStorage: _k,
Color: function (e) {
var n = {},
u = 0,
s = 0,
c = 0,
t = function (e) {
var t;
return "object" == typeof e ? "r" in e ? (u = e.r, s = e.g, c = e.b) : "v" in e && function (e, t, n) {
if (e = (parseInt(e, 10) || 0) % 360, t = parseInt(t, 10) / 100, n = parseInt(n, 10) / 100, t = bk(0, yk(t, 1)), n = bk(0, yk(n, 1)), 0 !== t) {
var r = e / 60,
o = n * t,
i = o * (1 - Math.abs(r % 2 - 1)),
a = n - o;
switch (Math.floor(r)) {
case 0:
u = o, s = i, c = 0;
break;
case 1:
u = i, s = o, c = 0;
break;
case 2:
u = 0, s = o, c = i;
break;
case 3:
u = 0, s = i, c = o;
break;
case 4:
u = i, s = 0, c = o;
break;
case 5:
u = o, s = 0, c = i;
break;
default:
u = s = c = 0
}
u = Ck(255 * (u + a)), s = Ck(255 * (s + a)), c = Ck(255 * (c + a))
} else u = s = c = Ck(255 * n)
}(e.h, e.s, e.v) : (t = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e)) ? (u = parseInt(t[1], 10), s = parseInt(t[2], 10), c = parseInt(t[3], 10)) : (t = /#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e)) ? (u = parseInt(t[1], 16), s = parseInt(t[2], 16), c = parseInt(t[3], 16)) : (t = /#([0-F])([0-F])([0-F])/gi.exec(e)) && (u = parseInt(t[1] + t[1], 16), s = parseInt(t[2] + t[2], 16), c = parseInt(t[3] + t[3], 16)), u = u < 0 ? 0 : 255 < u ? 255 : u, s = s < 0 ? 0 : 255 < s ? 255 : s, c = c < 0 ? 0 : 255 < c ? 255 : c, n
};
return e && t(e), n.toRgb = function () {
return {
r: u,
g: s,
b: c
}
}, n.toHsv = function () {
return e = u, t = s, n = c, o = 0, i = yk(e /= 255, yk(t /= 255, n /= 255)), a = bk(e, bk(t, n)), i === a ? {
h: 0,
s: 0,
v: 100 * (o = i)
} : (r = (a - i) / a, {
h: Ck(60 * ((e === i ? 3 : n === i ? 1 : 5) - (e === i ? t - n : n === i ? e - t : n - e) / ((o = a) - i))),
s: Ck(100 * r),
v: Ck(100 * o)
});
var e, t, n, r, o, i, a
}, n.toHex = function () {
var e = function (e) {
return 1 < (e = parseInt(e, 10).toString(16)).length ? e : "0" + e
};
return "#" + e(u) + e(s) + e(c)
}, n.parse = t, n
}
},
dom: {
EventUtils: Ti,
Sizzle: Ta,
DomQuery: hu,
TreeWalker: Xr,
TextSeeker: fs,
DOMUtils: Eu,
ScriptLoader: Ru,
RangeUtils: xd,
Serializer: Ny,
StyleSheetLoader: $r,
ControlSelection: cd,
BookmarkManager: od,
Selection: Qv,
Event: Ti.Event
},
html: {
Styles: xi,
Entities: ci,
Node: Km,
Schema: Ci,
SaxParser: ip,
DomParser: by,
Writer: Gm,
Serializer: Jm
},
Env: wt,
AddOnManager: Uu,
Annotator: td,
Formatter: _b,
UndoManager: Rb,
EditorCommands: eE,
WindowManager: ub,
NotificationManager: ob,
EditorObservable: CE,
Shortcuts: AE,
Editor: HE,
FocusManager: mm,
EditorManager: rk,
DOM: Eu.DOM,
ScriptLoader: Ru.ScriptLoader,
PluginManager: ib,
ThemeManager: ab,
IconManager: Yy,
Resource: pk,
trim: kt.trim,
isArray: kt.isArray,
is: kt.is,
toArray: kt.toArray,
makeMap: kt.makeMap,
each: kt.each,
map: kt.map,
grep: kt.grep,
inArray: kt.inArray,
extend: kt.extend,
create: kt.create,
walk: kt.walk,
createNS: kt.createNS,
resolve: kt.resolve,
explode: kt.explode,
_addCacheSuffix: kt._addCacheSuffix,
isOpera: wt.opera,
isWebKit: wt.webkit,
isIE: wt.ie,
isGecko: wt.gecko,
isMac: wt.mac
},
Dk = kt.extend(rk, Tk);
Rk = Dk, window.tinymce = Rk, window.tinyMCE = Rk,
function (e) {
if ("object" == typeof module) try {
module.exports = e
} catch (t) {}
}(Dk)
}();