5920 lines
171 KiB
JavaScript
5920 lines
171 KiB
JavaScript
import {
|
||
d as pe,
|
||
r as Gu,
|
||
a as Qu,
|
||
ad as Oe,
|
||
k as K,
|
||
w as _e,
|
||
K as b,
|
||
x as g,
|
||
y as E,
|
||
H as C,
|
||
L as F,
|
||
M as z,
|
||
F as M,
|
||
G as P,
|
||
a7 as Z,
|
||
Q as cu,
|
||
R as ou,
|
||
J as U,
|
||
ae as je,
|
||
af as Ue,
|
||
j as Ze,
|
||
I as He,
|
||
V as Ve,
|
||
X as Ge,
|
||
a6 as Qe,
|
||
U as We,
|
||
} from "./frappe-ui-LT4YqXtx.js";
|
||
import { _ as Je, C as Ye } from "./CourseOutline-AirCiy-C.js";
|
||
import { _ as Xe } from "./UserAvatar-A3tEMZXD.js";
|
||
import { a as Pu, t as Ke, c as u0 } from "./index-6k1S_EjG.js";
|
||
import { _ as e0, C as t0 } from "./Discussions-3EqlwpPS.js";
|
||
import "./file-text-w2g11TfY.js";
|
||
/**
|
||
* @license lucide-vue-next v0.309.0 - ISC
|
||
*
|
||
* This source code is licensed under the ISC license.
|
||
* See the LICENSE file in the root directory of this source tree.
|
||
*/ const r0 = Pu("CheckCircleIcon", [
|
||
["path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14", key: "g774vq" }],
|
||
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }],
|
||
]);
|
||
/**
|
||
* @license lucide-vue-next v0.309.0 - ISC
|
||
*
|
||
* This source code is licensed under the ISC license.
|
||
* See the LICENSE file in the root directory of this source tree.
|
||
*/ const Wu = Pu("MinusCircleIcon", [
|
||
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
||
["path", { d: "M8 12h8", key: "1wcyev" }],
|
||
]);
|
||
/**
|
||
* @license lucide-vue-next v0.309.0 - ISC
|
||
*
|
||
* This source code is licensed under the ISC license.
|
||
* See the LICENSE file in the root directory of this source tree.
|
||
*/ const n0 = Pu("XCircleIcon", [
|
||
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
||
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
||
["path", { d: "m9 9 6 6", key: "z0biqf" }],
|
||
]),
|
||
Ju = {};
|
||
function c0(u) {
|
||
let e = Ju[u];
|
||
if (e) return e;
|
||
e = Ju[u] = [];
|
||
for (let t = 0; t < 128; t++) {
|
||
const n = String.fromCharCode(t);
|
||
e.push(n);
|
||
}
|
||
for (let t = 0; t < u.length; t++) {
|
||
const n = u.charCodeAt(t);
|
||
e[n] = "%" + ("0" + n.toString(16).toUpperCase()).slice(-2);
|
||
}
|
||
return e;
|
||
}
|
||
function tu(u, e) {
|
||
typeof e != "string" && (e = tu.defaultChars);
|
||
const t = c0(e);
|
||
return u.replace(/(%[a-f0-9]{2})+/gi, function (n) {
|
||
let c = "";
|
||
for (let r = 0, i = n.length; r < i; r += 3) {
|
||
const o = parseInt(n.slice(r + 1, r + 3), 16);
|
||
if (o < 128) {
|
||
c += t[o];
|
||
continue;
|
||
}
|
||
if ((o & 224) === 192 && r + 3 < i) {
|
||
const a = parseInt(n.slice(r + 4, r + 6), 16);
|
||
if ((a & 192) === 128) {
|
||
const s = ((o << 6) & 1984) | (a & 63);
|
||
s < 128 ? (c += "<22><>") : (c += String.fromCharCode(s)),
|
||
(r += 3);
|
||
continue;
|
||
}
|
||
}
|
||
if ((o & 240) === 224 && r + 6 < i) {
|
||
const a = parseInt(n.slice(r + 4, r + 6), 16),
|
||
s = parseInt(n.slice(r + 7, r + 9), 16);
|
||
if ((a & 192) === 128 && (s & 192) === 128) {
|
||
const l =
|
||
((o << 12) & 61440) | ((a << 6) & 4032) | (s & 63);
|
||
l < 2048 || (l >= 55296 && l <= 57343)
|
||
? (c += "<22><><EFBFBD>")
|
||
: (c += String.fromCharCode(l)),
|
||
(r += 6);
|
||
continue;
|
||
}
|
||
}
|
||
if ((o & 248) === 240 && r + 9 < i) {
|
||
const a = parseInt(n.slice(r + 4, r + 6), 16),
|
||
s = parseInt(n.slice(r + 7, r + 9), 16),
|
||
l = parseInt(n.slice(r + 10, r + 12), 16);
|
||
if (
|
||
(a & 192) === 128 &&
|
||
(s & 192) === 128 &&
|
||
(l & 192) === 128
|
||
) {
|
||
let f =
|
||
((o << 18) & 1835008) |
|
||
((a << 12) & 258048) |
|
||
((s << 6) & 4032) |
|
||
(l & 63);
|
||
f < 65536 || f > 1114111
|
||
? (c += "<22><><EFBFBD><EFBFBD>")
|
||
: ((f -= 65536),
|
||
(c += String.fromCharCode(
|
||
55296 + (f >> 10),
|
||
56320 + (f & 1023)
|
||
))),
|
||
(r += 9);
|
||
continue;
|
||
}
|
||
}
|
||
c += "<22>";
|
||
}
|
||
return c;
|
||
});
|
||
}
|
||
tu.defaultChars = ";/?:@&=+$,#";
|
||
tu.componentChars = "";
|
||
const Yu = {};
|
||
function o0(u) {
|
||
let e = Yu[u];
|
||
if (e) return e;
|
||
e = Yu[u] = [];
|
||
for (let t = 0; t < 128; t++) {
|
||
const n = String.fromCharCode(t);
|
||
/^[0-9a-z]$/i.test(n)
|
||
? e.push(n)
|
||
: e.push("%" + ("0" + t.toString(16).toUpperCase()).slice(-2));
|
||
}
|
||
for (let t = 0; t < u.length; t++) e[u.charCodeAt(t)] = u[t];
|
||
return e;
|
||
}
|
||
function du(u, e, t) {
|
||
typeof e != "string" && ((t = e), (e = du.defaultChars)),
|
||
typeof t == "undefined" && (t = !0);
|
||
const n = o0(e);
|
||
let c = "";
|
||
for (let r = 0, i = u.length; r < i; r++) {
|
||
const o = u.charCodeAt(r);
|
||
if (
|
||
t &&
|
||
o === 37 &&
|
||
r + 2 < i &&
|
||
/^[0-9a-f]{2}$/i.test(u.slice(r + 1, r + 3))
|
||
) {
|
||
(c += u.slice(r, r + 3)), (r += 2);
|
||
continue;
|
||
}
|
||
if (o < 128) {
|
||
c += n[o];
|
||
continue;
|
||
}
|
||
if (o >= 55296 && o <= 57343) {
|
||
if (o >= 55296 && o <= 56319 && r + 1 < i) {
|
||
const a = u.charCodeAt(r + 1);
|
||
if (a >= 56320 && a <= 57343) {
|
||
(c += encodeURIComponent(u[r] + u[r + 1])), r++;
|
||
continue;
|
||
}
|
||
}
|
||
c += "%EF%BF%BD";
|
||
continue;
|
||
}
|
||
c += encodeURIComponent(u[r]);
|
||
}
|
||
return c;
|
||
}
|
||
du.defaultChars = ";/?:@&=+$,-_.!~*'()#";
|
||
du.componentChars = "-_.!~*'()";
|
||
function Bu(u) {
|
||
let e = "";
|
||
return (
|
||
(e += u.protocol || ""),
|
||
(e += u.slashes ? "//" : ""),
|
||
(e += u.auth ? u.auth + "@" : ""),
|
||
u.hostname && u.hostname.indexOf(":") !== -1
|
||
? (e += "[" + u.hostname + "]")
|
||
: (e += u.hostname || ""),
|
||
(e += u.port ? ":" + u.port : ""),
|
||
(e += u.pathname || ""),
|
||
(e += u.search || ""),
|
||
(e += u.hash || ""),
|
||
e
|
||
);
|
||
}
|
||
function ku() {
|
||
(this.protocol = null),
|
||
(this.slashes = null),
|
||
(this.auth = null),
|
||
(this.port = null),
|
||
(this.hostname = null),
|
||
(this.hash = null),
|
||
(this.search = null),
|
||
(this.pathname = null);
|
||
}
|
||
const i0 = /^([a-z0-9.+-]+:)/i,
|
||
a0 = /:[0-9]*$/,
|
||
s0 = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
|
||
l0 = [
|
||
"<",
|
||
">",
|
||
'"',
|
||
"`",
|
||
" ",
|
||
"\r",
|
||
`
|
||
`,
|
||
" ",
|
||
],
|
||
f0 = ["{", "}", "|", "\\", "^", "`"].concat(l0),
|
||
d0 = ["'"].concat(f0),
|
||
Xu = ["%", "/", "?", ";", "#"].concat(d0),
|
||
Ku = ["/", "?", "#"],
|
||
h0 = 255,
|
||
ue = /^[+a-z0-9A-Z_-]{0,63}$/,
|
||
b0 = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
|
||
ee = { javascript: !0, "javascript:": !0 },
|
||
te = {
|
||
http: !0,
|
||
https: !0,
|
||
ftp: !0,
|
||
gopher: !0,
|
||
file: !0,
|
||
"http:": !0,
|
||
"https:": !0,
|
||
"ftp:": !0,
|
||
"gopher:": !0,
|
||
"file:": !0,
|
||
};
|
||
function $u(u, e) {
|
||
if (u && u instanceof ku) return u;
|
||
const t = new ku();
|
||
return t.parse(u, e), t;
|
||
}
|
||
ku.prototype.parse = function (u, e) {
|
||
let t,
|
||
n,
|
||
c,
|
||
r = u;
|
||
if (((r = r.trim()), !e && u.split("#").length === 1)) {
|
||
const s = s0.exec(r);
|
||
if (s)
|
||
return (this.pathname = s[1]), s[2] && (this.search = s[2]), this;
|
||
}
|
||
let i = i0.exec(r);
|
||
if (
|
||
(i &&
|
||
((i = i[0]),
|
||
(t = i.toLowerCase()),
|
||
(this.protocol = i),
|
||
(r = r.substr(i.length))),
|
||
(e || i || r.match(/^\/\/[^@\/]+@[^@\/]+/)) &&
|
||
((c = r.substr(0, 2) === "//"),
|
||
c && !(i && ee[i]) && ((r = r.substr(2)), (this.slashes = !0))),
|
||
!ee[i] && (c || (i && !te[i])))
|
||
) {
|
||
let s = -1;
|
||
for (let d = 0; d < Ku.length; d++)
|
||
(n = r.indexOf(Ku[d])), n !== -1 && (s === -1 || n < s) && (s = n);
|
||
let l, f;
|
||
s === -1 ? (f = r.lastIndexOf("@")) : (f = r.lastIndexOf("@", s)),
|
||
f !== -1 &&
|
||
((l = r.slice(0, f)), (r = r.slice(f + 1)), (this.auth = l)),
|
||
(s = -1);
|
||
for (let d = 0; d < Xu.length; d++)
|
||
(n = r.indexOf(Xu[d])), n !== -1 && (s === -1 || n < s) && (s = n);
|
||
s === -1 && (s = r.length), r[s - 1] === ":" && s--;
|
||
const p = r.slice(0, s);
|
||
(r = r.slice(s)),
|
||
this.parseHost(p),
|
||
(this.hostname = this.hostname || "");
|
||
const h =
|
||
this.hostname[0] === "[" &&
|
||
this.hostname[this.hostname.length - 1] === "]";
|
||
if (!h) {
|
||
const d = this.hostname.split(/\./);
|
||
for (let _ = 0, y = d.length; _ < y; _++) {
|
||
const D = d[_];
|
||
if (D && !D.match(ue)) {
|
||
let A = "";
|
||
for (let k = 0, w = D.length; k < w; k++)
|
||
D.charCodeAt(k) > 127 ? (A += "x") : (A += D[k]);
|
||
if (!A.match(ue)) {
|
||
const k = d.slice(0, _),
|
||
w = d.slice(_ + 1),
|
||
m = D.match(b0);
|
||
m && (k.push(m[1]), w.unshift(m[2])),
|
||
w.length && (r = w.join(".") + r),
|
||
(this.hostname = k.join("."));
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
this.hostname.length > h0 && (this.hostname = ""),
|
||
h &&
|
||
(this.hostname = this.hostname.substr(
|
||
1,
|
||
this.hostname.length - 2
|
||
));
|
||
}
|
||
const o = r.indexOf("#");
|
||
o !== -1 && ((this.hash = r.substr(o)), (r = r.slice(0, o)));
|
||
const a = r.indexOf("?");
|
||
return (
|
||
a !== -1 && ((this.search = r.substr(a)), (r = r.slice(0, a))),
|
||
r && (this.pathname = r),
|
||
te[t] && this.hostname && !this.pathname && (this.pathname = ""),
|
||
this
|
||
);
|
||
};
|
||
ku.prototype.parseHost = function (u) {
|
||
let e = a0.exec(u);
|
||
e &&
|
||
((e = e[0]),
|
||
e !== ":" && (this.port = e.substr(1)),
|
||
(u = u.substr(0, u.length - e.length))),
|
||
u && (this.hostname = u);
|
||
};
|
||
const p0 = Object.freeze(
|
||
Object.defineProperty(
|
||
{ __proto__: null, decode: tu, encode: du, format: Bu, parse: $u },
|
||
Symbol.toStringTag,
|
||
{ value: "Module" }
|
||
)
|
||
),
|
||
me =
|
||
/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,
|
||
xe = /[\0-\x1F\x7F-\x9F]/,
|
||
_0 =
|
||
/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,
|
||
Ou =
|
||
/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,
|
||
ke = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,
|
||
m0 = Object.freeze(
|
||
Object.defineProperty(
|
||
{ __proto__: null, Any: me, Cc: xe, Cf: _0, P: Ou, Z: ke },
|
||
Symbol.toStringTag,
|
||
{ value: "Module" }
|
||
)
|
||
),
|
||
x0 = new Uint16Array(
|
||
'ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'
|
||
.split("")
|
||
.map((u) => u.charCodeAt(0))
|
||
),
|
||
k0 = new Uint16Array(
|
||
"Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢"
|
||
.split("")
|
||
.map((u) => u.charCodeAt(0))
|
||
);
|
||
var Fu;
|
||
const g0 = new Map([
|
||
[0, 65533],
|
||
[128, 8364],
|
||
[130, 8218],
|
||
[131, 402],
|
||
[132, 8222],
|
||
[133, 8230],
|
||
[134, 8224],
|
||
[135, 8225],
|
||
[136, 710],
|
||
[137, 8240],
|
||
[138, 352],
|
||
[139, 8249],
|
||
[140, 338],
|
||
[142, 381],
|
||
[145, 8216],
|
||
[146, 8217],
|
||
[147, 8220],
|
||
[148, 8221],
|
||
[149, 8226],
|
||
[150, 8211],
|
||
[151, 8212],
|
||
[152, 732],
|
||
[153, 8482],
|
||
[154, 353],
|
||
[155, 8250],
|
||
[156, 339],
|
||
[158, 382],
|
||
[159, 376],
|
||
]),
|
||
y0 =
|
||
(Fu = String.fromCodePoint) !== null && Fu !== void 0
|
||
? Fu
|
||
: function (u) {
|
||
let e = "";
|
||
return (
|
||
u > 65535 &&
|
||
((u -= 65536),
|
||
(e += String.fromCharCode(
|
||
((u >>> 10) & 1023) | 55296
|
||
)),
|
||
(u = 56320 | (u & 1023))),
|
||
(e += String.fromCharCode(u)),
|
||
e
|
||
);
|
||
};
|
||
function C0(u) {
|
||
var e;
|
||
return (u >= 55296 && u <= 57343) || u > 1114111
|
||
? 65533
|
||
: (e = g0.get(u)) !== null && e !== void 0
|
||
? e
|
||
: u;
|
||
}
|
||
var I;
|
||
(function (u) {
|
||
(u[(u.NUM = 35)] = "NUM"),
|
||
(u[(u.SEMI = 59)] = "SEMI"),
|
||
(u[(u.EQUALS = 61)] = "EQUALS"),
|
||
(u[(u.ZERO = 48)] = "ZERO"),
|
||
(u[(u.NINE = 57)] = "NINE"),
|
||
(u[(u.LOWER_A = 97)] = "LOWER_A"),
|
||
(u[(u.LOWER_F = 102)] = "LOWER_F"),
|
||
(u[(u.LOWER_X = 120)] = "LOWER_X"),
|
||
(u[(u.LOWER_Z = 122)] = "LOWER_Z"),
|
||
(u[(u.UPPER_A = 65)] = "UPPER_A"),
|
||
(u[(u.UPPER_F = 70)] = "UPPER_F"),
|
||
(u[(u.UPPER_Z = 90)] = "UPPER_Z");
|
||
})(I || (I = {}));
|
||
const A0 = 32;
|
||
var Y;
|
||
(function (u) {
|
||
(u[(u.VALUE_LENGTH = 49152)] = "VALUE_LENGTH"),
|
||
(u[(u.BRANCH_LENGTH = 16256)] = "BRANCH_LENGTH"),
|
||
(u[(u.JUMP_TABLE = 127)] = "JUMP_TABLE");
|
||
})(Y || (Y = {}));
|
||
function Nu(u) {
|
||
return u >= I.ZERO && u <= I.NINE;
|
||
}
|
||
function E0(u) {
|
||
return (
|
||
(u >= I.UPPER_A && u <= I.UPPER_F) || (u >= I.LOWER_A && u <= I.LOWER_F)
|
||
);
|
||
}
|
||
function w0(u) {
|
||
return (
|
||
(u >= I.UPPER_A && u <= I.UPPER_Z) ||
|
||
(u >= I.LOWER_A && u <= I.LOWER_Z) ||
|
||
Nu(u)
|
||
);
|
||
}
|
||
function D0(u) {
|
||
return u === I.EQUALS || w0(u);
|
||
}
|
||
var T;
|
||
(function (u) {
|
||
(u[(u.EntityStart = 0)] = "EntityStart"),
|
||
(u[(u.NumericStart = 1)] = "NumericStart"),
|
||
(u[(u.NumericDecimal = 2)] = "NumericDecimal"),
|
||
(u[(u.NumericHex = 3)] = "NumericHex"),
|
||
(u[(u.NamedEntity = 4)] = "NamedEntity");
|
||
})(T || (T = {}));
|
||
var J;
|
||
(function (u) {
|
||
(u[(u.Legacy = 0)] = "Legacy"),
|
||
(u[(u.Strict = 1)] = "Strict"),
|
||
(u[(u.Attribute = 2)] = "Attribute");
|
||
})(J || (J = {}));
|
||
class v0 {
|
||
constructor(e, t, n) {
|
||
(this.decodeTree = e),
|
||
(this.emitCodePoint = t),
|
||
(this.errors = n),
|
||
(this.state = T.EntityStart),
|
||
(this.consumed = 1),
|
||
(this.result = 0),
|
||
(this.treeIndex = 0),
|
||
(this.excess = 1),
|
||
(this.decodeMode = J.Strict);
|
||
}
|
||
startEntity(e) {
|
||
(this.decodeMode = e),
|
||
(this.state = T.EntityStart),
|
||
(this.result = 0),
|
||
(this.treeIndex = 0),
|
||
(this.excess = 1),
|
||
(this.consumed = 1);
|
||
}
|
||
write(e, t) {
|
||
switch (this.state) {
|
||
case T.EntityStart:
|
||
return e.charCodeAt(t) === I.NUM
|
||
? ((this.state = T.NumericStart),
|
||
(this.consumed += 1),
|
||
this.stateNumericStart(e, t + 1))
|
||
: ((this.state = T.NamedEntity),
|
||
this.stateNamedEntity(e, t));
|
||
case T.NumericStart:
|
||
return this.stateNumericStart(e, t);
|
||
case T.NumericDecimal:
|
||
return this.stateNumericDecimal(e, t);
|
||
case T.NumericHex:
|
||
return this.stateNumericHex(e, t);
|
||
case T.NamedEntity:
|
||
return this.stateNamedEntity(e, t);
|
||
}
|
||
}
|
||
stateNumericStart(e, t) {
|
||
return t >= e.length
|
||
? -1
|
||
: (e.charCodeAt(t) | A0) === I.LOWER_X
|
||
? ((this.state = T.NumericHex),
|
||
(this.consumed += 1),
|
||
this.stateNumericHex(e, t + 1))
|
||
: ((this.state = T.NumericDecimal), this.stateNumericDecimal(e, t));
|
||
}
|
||
addToNumericResult(e, t, n, c) {
|
||
if (t !== n) {
|
||
const r = n - t;
|
||
(this.result =
|
||
this.result * Math.pow(c, r) + parseInt(e.substr(t, r), c)),
|
||
(this.consumed += r);
|
||
}
|
||
}
|
||
stateNumericHex(e, t) {
|
||
const n = t;
|
||
for (; t < e.length; ) {
|
||
const c = e.charCodeAt(t);
|
||
if (Nu(c) || E0(c)) t += 1;
|
||
else
|
||
return (
|
||
this.addToNumericResult(e, n, t, 16),
|
||
this.emitNumericEntity(c, 3)
|
||
);
|
||
}
|
||
return this.addToNumericResult(e, n, t, 16), -1;
|
||
}
|
||
stateNumericDecimal(e, t) {
|
||
const n = t;
|
||
for (; t < e.length; ) {
|
||
const c = e.charCodeAt(t);
|
||
if (Nu(c)) t += 1;
|
||
else
|
||
return (
|
||
this.addToNumericResult(e, n, t, 10),
|
||
this.emitNumericEntity(c, 2)
|
||
);
|
||
}
|
||
return this.addToNumericResult(e, n, t, 10), -1;
|
||
}
|
||
emitNumericEntity(e, t) {
|
||
var n;
|
||
if (this.consumed <= t)
|
||
return (
|
||
(n = this.errors) === null ||
|
||
n === void 0 ||
|
||
n.absenceOfDigitsInNumericCharacterReference(this.consumed),
|
||
0
|
||
);
|
||
if (e === I.SEMI) this.consumed += 1;
|
||
else if (this.decodeMode === J.Strict) return 0;
|
||
return (
|
||
this.emitCodePoint(C0(this.result), this.consumed),
|
||
this.errors &&
|
||
(e !== I.SEMI &&
|
||
this.errors.missingSemicolonAfterCharacterReference(),
|
||
this.errors.validateNumericCharacterReference(this.result)),
|
||
this.consumed
|
||
);
|
||
}
|
||
stateNamedEntity(e, t) {
|
||
const { decodeTree: n } = this;
|
||
let c = n[this.treeIndex],
|
||
r = (c & Y.VALUE_LENGTH) >> 14;
|
||
for (; t < e.length; t++, this.excess++) {
|
||
const i = e.charCodeAt(t);
|
||
if (
|
||
((this.treeIndex = F0(
|
||
n,
|
||
c,
|
||
this.treeIndex + Math.max(1, r),
|
||
i
|
||
)),
|
||
this.treeIndex < 0)
|
||
)
|
||
return this.result === 0 ||
|
||
(this.decodeMode === J.Attribute && (r === 0 || D0(i)))
|
||
? 0
|
||
: this.emitNotTerminatedNamedEntity();
|
||
if (
|
||
((c = n[this.treeIndex]),
|
||
(r = (c & Y.VALUE_LENGTH) >> 14),
|
||
r !== 0)
|
||
) {
|
||
if (i === I.SEMI)
|
||
return this.emitNamedEntityData(
|
||
this.treeIndex,
|
||
r,
|
||
this.consumed + this.excess
|
||
);
|
||
this.decodeMode !== J.Strict &&
|
||
((this.result = this.treeIndex),
|
||
(this.consumed += this.excess),
|
||
(this.excess = 0));
|
||
}
|
||
}
|
||
return -1;
|
||
}
|
||
emitNotTerminatedNamedEntity() {
|
||
var e;
|
||
const { result: t, decodeTree: n } = this,
|
||
c = (n[t] & Y.VALUE_LENGTH) >> 14;
|
||
return (
|
||
this.emitNamedEntityData(t, c, this.consumed),
|
||
(e = this.errors) === null ||
|
||
e === void 0 ||
|
||
e.missingSemicolonAfterCharacterReference(),
|
||
this.consumed
|
||
);
|
||
}
|
||
emitNamedEntityData(e, t, n) {
|
||
const { decodeTree: c } = this;
|
||
return (
|
||
this.emitCodePoint(t === 1 ? c[e] & ~Y.VALUE_LENGTH : c[e + 1], n),
|
||
t === 3 && this.emitCodePoint(c[e + 2], n),
|
||
n
|
||
);
|
||
}
|
||
end() {
|
||
var e;
|
||
switch (this.state) {
|
||
case T.NamedEntity:
|
||
return this.result !== 0 &&
|
||
(this.decodeMode !== J.Attribute ||
|
||
this.result === this.treeIndex)
|
||
? this.emitNotTerminatedNamedEntity()
|
||
: 0;
|
||
case T.NumericDecimal:
|
||
return this.emitNumericEntity(0, 2);
|
||
case T.NumericHex:
|
||
return this.emitNumericEntity(0, 3);
|
||
case T.NumericStart:
|
||
return (
|
||
(e = this.errors) === null ||
|
||
e === void 0 ||
|
||
e.absenceOfDigitsInNumericCharacterReference(
|
||
this.consumed
|
||
),
|
||
0
|
||
);
|
||
case T.EntityStart:
|
||
return 0;
|
||
}
|
||
}
|
||
}
|
||
function ge(u) {
|
||
let e = "";
|
||
const t = new v0(u, (n) => (e += y0(n)));
|
||
return function (c, r) {
|
||
let i = 0,
|
||
o = 0;
|
||
for (; (o = c.indexOf("&", o)) >= 0; ) {
|
||
(e += c.slice(i, o)), t.startEntity(r);
|
||
const s = t.write(c, o + 1);
|
||
if (s < 0) {
|
||
i = o + t.end();
|
||
break;
|
||
}
|
||
(i = o + s), (o = s === 0 ? i + 1 : i);
|
||
}
|
||
const a = e + c.slice(i);
|
||
return (e = ""), a;
|
||
};
|
||
}
|
||
function F0(u, e, t, n) {
|
||
const c = (e & Y.BRANCH_LENGTH) >> 7,
|
||
r = e & Y.JUMP_TABLE;
|
||
if (c === 0) return r !== 0 && n === r ? t : -1;
|
||
if (r) {
|
||
const a = n - r;
|
||
return a < 0 || a >= c ? -1 : u[t + a] - 1;
|
||
}
|
||
let i = t,
|
||
o = i + c - 1;
|
||
for (; i <= o; ) {
|
||
const a = (i + o) >>> 1,
|
||
s = u[a];
|
||
if (s < n) i = a + 1;
|
||
else if (s > n) o = a - 1;
|
||
else return u[a + c];
|
||
}
|
||
return -1;
|
||
}
|
||
const S0 = ge(x0);
|
||
ge(k0);
|
||
function ye(u, e = J.Legacy) {
|
||
return S0(u, e);
|
||
}
|
||
function z0(u) {
|
||
return Object.prototype.toString.call(u);
|
||
}
|
||
function ju(u) {
|
||
return z0(u) === "[object String]";
|
||
}
|
||
const q0 = Object.prototype.hasOwnProperty;
|
||
function T0(u, e) {
|
||
return q0.call(u, e);
|
||
}
|
||
function Cu(u) {
|
||
return (
|
||
Array.prototype.slice.call(arguments, 1).forEach(function (t) {
|
||
if (t) {
|
||
if (typeof t != "object")
|
||
throw new TypeError(t + "must be object");
|
||
Object.keys(t).forEach(function (n) {
|
||
u[n] = t[n];
|
||
});
|
||
}
|
||
}),
|
||
u
|
||
);
|
||
}
|
||
function Ce(u, e, t) {
|
||
return [].concat(u.slice(0, e), t, u.slice(e + 1));
|
||
}
|
||
function Uu(u) {
|
||
return !(
|
||
(u >= 55296 && u <= 57343) ||
|
||
(u >= 64976 && u <= 65007) ||
|
||
(u & 65535) === 65535 ||
|
||
(u & 65535) === 65534 ||
|
||
(u >= 0 && u <= 8) ||
|
||
u === 11 ||
|
||
(u >= 14 && u <= 31) ||
|
||
(u >= 127 && u <= 159) ||
|
||
u > 1114111
|
||
);
|
||
}
|
||
function gu(u) {
|
||
if (u > 65535) {
|
||
u -= 65536;
|
||
const e = 55296 + (u >> 10),
|
||
t = 56320 + (u & 1023);
|
||
return String.fromCharCode(e, t);
|
||
}
|
||
return String.fromCharCode(u);
|
||
}
|
||
const Ae = /\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,
|
||
I0 = /&([a-z#][a-z0-9]{1,31});/gi,
|
||
M0 = new RegExp(Ae.source + "|" + I0.source, "gi"),
|
||
N0 = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;
|
||
function L0(u, e) {
|
||
if (e.charCodeAt(0) === 35 && N0.test(e)) {
|
||
const n =
|
||
e[1].toLowerCase() === "x"
|
||
? parseInt(e.slice(2), 16)
|
||
: parseInt(e.slice(1), 10);
|
||
return Uu(n) ? gu(n) : u;
|
||
}
|
||
const t = ye(u);
|
||
return t !== u ? t : u;
|
||
}
|
||
function R0(u) {
|
||
return u.indexOf("\\") < 0 ? u : u.replace(Ae, "$1");
|
||
}
|
||
function iu(u) {
|
||
return u.indexOf("\\") < 0 && u.indexOf("&") < 0
|
||
? u
|
||
: u.replace(M0, function (e, t, n) {
|
||
return t || L0(e, n);
|
||
});
|
||
}
|
||
const P0 = /[&<>"]/,
|
||
B0 = /[&<>"]/g,
|
||
$0 = { "&": "&", "<": "<", ">": ">", '"': """ };
|
||
function O0(u) {
|
||
return $0[u];
|
||
}
|
||
function X(u) {
|
||
return P0.test(u) ? u.replace(B0, O0) : u;
|
||
}
|
||
const j0 = /[.?*+^$[\]\\(){}|-]/g;
|
||
function U0(u) {
|
||
return u.replace(j0, "\\$&");
|
||
}
|
||
function S(u) {
|
||
switch (u) {
|
||
case 9:
|
||
case 32:
|
||
return !0;
|
||
}
|
||
return !1;
|
||
}
|
||
function au(u) {
|
||
if (u >= 8192 && u <= 8202) return !0;
|
||
switch (u) {
|
||
case 9:
|
||
case 10:
|
||
case 11:
|
||
case 12:
|
||
case 13:
|
||
case 32:
|
||
case 160:
|
||
case 5760:
|
||
case 8239:
|
||
case 8287:
|
||
case 12288:
|
||
return !0;
|
||
}
|
||
return !1;
|
||
}
|
||
function su(u) {
|
||
return Ou.test(u);
|
||
}
|
||
function lu(u) {
|
||
switch (u) {
|
||
case 33:
|
||
case 34:
|
||
case 35:
|
||
case 36:
|
||
case 37:
|
||
case 38:
|
||
case 39:
|
||
case 40:
|
||
case 41:
|
||
case 42:
|
||
case 43:
|
||
case 44:
|
||
case 45:
|
||
case 46:
|
||
case 47:
|
||
case 58:
|
||
case 59:
|
||
case 60:
|
||
case 61:
|
||
case 62:
|
||
case 63:
|
||
case 64:
|
||
case 91:
|
||
case 92:
|
||
case 93:
|
||
case 94:
|
||
case 95:
|
||
case 96:
|
||
case 123:
|
||
case 124:
|
||
case 125:
|
||
case 126:
|
||
return !0;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
function Au(u) {
|
||
return (
|
||
(u = u.trim().replace(/\s+/g, " ")),
|
||
"ẞ".toLowerCase() === "Ṿ" && (u = u.replace(/ẞ/g, "ß")),
|
||
u.toLowerCase().toUpperCase()
|
||
);
|
||
}
|
||
const Z0 = { mdurl: p0, ucmicro: m0 },
|
||
H0 = Object.freeze(
|
||
Object.defineProperty(
|
||
{
|
||
__proto__: null,
|
||
arrayReplaceAt: Ce,
|
||
assign: Cu,
|
||
escapeHtml: X,
|
||
escapeRE: U0,
|
||
fromCodePoint: gu,
|
||
has: T0,
|
||
isMdAsciiPunct: lu,
|
||
isPunctChar: su,
|
||
isSpace: S,
|
||
isString: ju,
|
||
isValidEntityCode: Uu,
|
||
isWhiteSpace: au,
|
||
lib: Z0,
|
||
normalizeReference: Au,
|
||
unescapeAll: iu,
|
||
unescapeMd: R0,
|
||
},
|
||
Symbol.toStringTag,
|
||
{ value: "Module" }
|
||
)
|
||
);
|
||
function V0(u, e, t) {
|
||
let n, c, r, i;
|
||
const o = u.posMax,
|
||
a = u.pos;
|
||
for (u.pos = e + 1, n = 1; u.pos < o; ) {
|
||
if (((r = u.src.charCodeAt(u.pos)), r === 93 && (n--, n === 0))) {
|
||
c = !0;
|
||
break;
|
||
}
|
||
if (((i = u.pos), u.md.inline.skipToken(u), r === 91)) {
|
||
if (i === u.pos - 1) n++;
|
||
else if (t) return (u.pos = a), -1;
|
||
}
|
||
}
|
||
let s = -1;
|
||
return c && (s = u.pos), (u.pos = a), s;
|
||
}
|
||
function G0(u, e, t) {
|
||
let n,
|
||
c = e;
|
||
const r = { ok: !1, pos: 0, lines: 0, str: "" };
|
||
if (u.charCodeAt(c) === 60) {
|
||
for (c++; c < t; ) {
|
||
if (((n = u.charCodeAt(c)), n === 10 || n === 60)) return r;
|
||
if (n === 62)
|
||
return (
|
||
(r.pos = c + 1),
|
||
(r.str = iu(u.slice(e + 1, c))),
|
||
(r.ok = !0),
|
||
r
|
||
);
|
||
if (n === 92 && c + 1 < t) {
|
||
c += 2;
|
||
continue;
|
||
}
|
||
c++;
|
||
}
|
||
return r;
|
||
}
|
||
let i = 0;
|
||
for (
|
||
;
|
||
c < t && ((n = u.charCodeAt(c)), !(n === 32 || n < 32 || n === 127));
|
||
|
||
) {
|
||
if (n === 92 && c + 1 < t) {
|
||
if (u.charCodeAt(c + 1) === 32) break;
|
||
c += 2;
|
||
continue;
|
||
}
|
||
if (n === 40 && (i++, i > 32)) return r;
|
||
if (n === 41) {
|
||
if (i === 0) break;
|
||
i--;
|
||
}
|
||
c++;
|
||
}
|
||
return (
|
||
e === c ||
|
||
i !== 0 ||
|
||
((r.str = iu(u.slice(e, c))), (r.pos = c), (r.ok = !0)),
|
||
r
|
||
);
|
||
}
|
||
function Q0(u, e, t) {
|
||
let n,
|
||
c,
|
||
r = 0,
|
||
i = e;
|
||
const o = { ok: !1, pos: 0, lines: 0, str: "" };
|
||
if (i >= t || ((c = u.charCodeAt(i)), c !== 34 && c !== 39 && c !== 40))
|
||
return o;
|
||
for (i++, c === 40 && (c = 41); i < t; ) {
|
||
if (((n = u.charCodeAt(i)), n === c))
|
||
return (
|
||
(o.pos = i + 1),
|
||
(o.lines = r),
|
||
(o.str = iu(u.slice(e + 1, i))),
|
||
(o.ok = !0),
|
||
o
|
||
);
|
||
if (n === 40 && c === 41) return o;
|
||
n === 10
|
||
? r++
|
||
: n === 92 && i + 1 < t && (i++, u.charCodeAt(i) === 10 && r++),
|
||
i++;
|
||
}
|
||
return o;
|
||
}
|
||
const W0 = Object.freeze(
|
||
Object.defineProperty(
|
||
{
|
||
__proto__: null,
|
||
parseLinkDestination: G0,
|
||
parseLinkLabel: V0,
|
||
parseLinkTitle: Q0,
|
||
},
|
||
Symbol.toStringTag,
|
||
{ value: "Module" }
|
||
)
|
||
),
|
||
G = {};
|
||
G.code_inline = function (u, e, t, n, c) {
|
||
const r = u[e];
|
||
return "<code" + c.renderAttrs(r) + ">" + X(r.content) + "</code>";
|
||
};
|
||
G.code_block = function (u, e, t, n, c) {
|
||
const r = u[e];
|
||
return (
|
||
"<pre" +
|
||
c.renderAttrs(r) +
|
||
"><code>" +
|
||
X(u[e].content) +
|
||
`</code></pre>
|
||
`
|
||
);
|
||
};
|
||
G.fence = function (u, e, t, n, c) {
|
||
const r = u[e],
|
||
i = r.info ? iu(r.info).trim() : "";
|
||
let o = "",
|
||
a = "";
|
||
if (i) {
|
||
const l = i.split(/(\s+)/g);
|
||
(o = l[0]), (a = l.slice(2).join(""));
|
||
}
|
||
let s;
|
||
if (
|
||
(t.highlight
|
||
? (s = t.highlight(r.content, o, a) || X(r.content))
|
||
: (s = X(r.content)),
|
||
s.indexOf("<pre") === 0)
|
||
)
|
||
return (
|
||
s +
|
||
`
|
||
`
|
||
);
|
||
if (i) {
|
||
const l = r.attrIndex("class"),
|
||
f = r.attrs ? r.attrs.slice() : [];
|
||
l < 0
|
||
? f.push(["class", t.langPrefix + o])
|
||
: ((f[l] = f[l].slice()), (f[l][1] += " " + t.langPrefix + o));
|
||
const p = { attrs: f };
|
||
return `<pre><code${c.renderAttrs(p)}>${s}</code></pre>
|
||
`;
|
||
}
|
||
return `<pre><code${c.renderAttrs(r)}>${s}</code></pre>
|
||
`;
|
||
};
|
||
G.image = function (u, e, t, n, c) {
|
||
const r = u[e];
|
||
return (
|
||
(r.attrs[r.attrIndex("alt")][1] = c.renderInlineAsText(
|
||
r.children,
|
||
t,
|
||
n
|
||
)),
|
||
c.renderToken(u, e, t)
|
||
);
|
||
};
|
||
G.hardbreak = function (u, e, t) {
|
||
return t.xhtmlOut
|
||
? `<br />
|
||
`
|
||
: `<br>
|
||
`;
|
||
};
|
||
G.softbreak = function (u, e, t) {
|
||
return t.breaks
|
||
? t.xhtmlOut
|
||
? `<br />
|
||
`
|
||
: `<br>
|
||
`
|
||
: `
|
||
`;
|
||
};
|
||
G.text = function (u, e) {
|
||
return X(u[e].content);
|
||
};
|
||
G.html_block = function (u, e) {
|
||
return u[e].content;
|
||
};
|
||
G.html_inline = function (u, e) {
|
||
return u[e].content;
|
||
};
|
||
function ru() {
|
||
this.rules = Cu({}, G);
|
||
}
|
||
ru.prototype.renderAttrs = function (e) {
|
||
let t, n, c;
|
||
if (!e.attrs) return "";
|
||
for (c = "", t = 0, n = e.attrs.length; t < n; t++)
|
||
c += " " + X(e.attrs[t][0]) + '="' + X(e.attrs[t][1]) + '"';
|
||
return c;
|
||
};
|
||
ru.prototype.renderToken = function (e, t, n) {
|
||
const c = e[t];
|
||
let r = "";
|
||
if (c.hidden) return "";
|
||
c.block &&
|
||
c.nesting !== -1 &&
|
||
t &&
|
||
e[t - 1].hidden &&
|
||
(r += `
|
||
`),
|
||
(r += (c.nesting === -1 ? "</" : "<") + c.tag),
|
||
(r += this.renderAttrs(c)),
|
||
c.nesting === 0 && n.xhtmlOut && (r += " /");
|
||
let i = !1;
|
||
if (c.block && ((i = !0), c.nesting === 1 && t + 1 < e.length)) {
|
||
const o = e[t + 1];
|
||
(o.type === "inline" ||
|
||
o.hidden ||
|
||
(o.nesting === -1 && o.tag === c.tag)) &&
|
||
(i = !1);
|
||
}
|
||
return (
|
||
(r += i
|
||
? `>
|
||
`
|
||
: ">"),
|
||
r
|
||
);
|
||
};
|
||
ru.prototype.renderInline = function (u, e, t) {
|
||
let n = "";
|
||
const c = this.rules;
|
||
for (let r = 0, i = u.length; r < i; r++) {
|
||
const o = u[r].type;
|
||
typeof c[o] != "undefined"
|
||
? (n += c[o](u, r, e, t, this))
|
||
: (n += this.renderToken(u, r, e));
|
||
}
|
||
return n;
|
||
};
|
||
ru.prototype.renderInlineAsText = function (u, e, t) {
|
||
let n = "";
|
||
for (let c = 0, r = u.length; c < r; c++)
|
||
switch (u[c].type) {
|
||
case "text":
|
||
n += u[c].content;
|
||
break;
|
||
case "image":
|
||
n += this.renderInlineAsText(u[c].children, e, t);
|
||
break;
|
||
case "html_inline":
|
||
case "html_block":
|
||
n += u[c].content;
|
||
break;
|
||
case "softbreak":
|
||
case "hardbreak":
|
||
n += `
|
||
`;
|
||
break;
|
||
}
|
||
return n;
|
||
};
|
||
ru.prototype.render = function (u, e, t) {
|
||
let n = "";
|
||
const c = this.rules;
|
||
for (let r = 0, i = u.length; r < i; r++) {
|
||
const o = u[r].type;
|
||
o === "inline"
|
||
? (n += this.renderInline(u[r].children, e, t))
|
||
: typeof c[o] != "undefined"
|
||
? (n += c[o](u, r, e, t, this))
|
||
: (n += this.renderToken(u, r, e, t));
|
||
}
|
||
return n;
|
||
};
|
||
function R() {
|
||
(this.__rules__ = []), (this.__cache__ = null);
|
||
}
|
||
R.prototype.__find__ = function (u) {
|
||
for (let e = 0; e < this.__rules__.length; e++)
|
||
if (this.__rules__[e].name === u) return e;
|
||
return -1;
|
||
};
|
||
R.prototype.__compile__ = function () {
|
||
const u = this,
|
||
e = [""];
|
||
u.__rules__.forEach(function (t) {
|
||
t.enabled &&
|
||
t.alt.forEach(function (n) {
|
||
e.indexOf(n) < 0 && e.push(n);
|
||
});
|
||
}),
|
||
(u.__cache__ = {}),
|
||
e.forEach(function (t) {
|
||
(u.__cache__[t] = []),
|
||
u.__rules__.forEach(function (n) {
|
||
n.enabled &&
|
||
((t && n.alt.indexOf(t) < 0) ||
|
||
u.__cache__[t].push(n.fn));
|
||
});
|
||
});
|
||
};
|
||
R.prototype.at = function (u, e, t) {
|
||
const n = this.__find__(u),
|
||
c = t || {};
|
||
if (n === -1) throw new Error("Parser rule not found: " + u);
|
||
(this.__rules__[n].fn = e),
|
||
(this.__rules__[n].alt = c.alt || []),
|
||
(this.__cache__ = null);
|
||
};
|
||
R.prototype.before = function (u, e, t, n) {
|
||
const c = this.__find__(u),
|
||
r = n || {};
|
||
if (c === -1) throw new Error("Parser rule not found: " + u);
|
||
this.__rules__.splice(c, 0, {
|
||
name: e,
|
||
enabled: !0,
|
||
fn: t,
|
||
alt: r.alt || [],
|
||
}),
|
||
(this.__cache__ = null);
|
||
};
|
||
R.prototype.after = function (u, e, t, n) {
|
||
const c = this.__find__(u),
|
||
r = n || {};
|
||
if (c === -1) throw new Error("Parser rule not found: " + u);
|
||
this.__rules__.splice(c + 1, 0, {
|
||
name: e,
|
||
enabled: !0,
|
||
fn: t,
|
||
alt: r.alt || [],
|
||
}),
|
||
(this.__cache__ = null);
|
||
};
|
||
R.prototype.push = function (u, e, t) {
|
||
const n = t || {};
|
||
this.__rules__.push({ name: u, enabled: !0, fn: e, alt: n.alt || [] }),
|
||
(this.__cache__ = null);
|
||
};
|
||
R.prototype.enable = function (u, e) {
|
||
Array.isArray(u) || (u = [u]);
|
||
const t = [];
|
||
return (
|
||
u.forEach(function (n) {
|
||
const c = this.__find__(n);
|
||
if (c < 0) {
|
||
if (e) return;
|
||
throw new Error("Rules manager: invalid rule name " + n);
|
||
}
|
||
(this.__rules__[c].enabled = !0), t.push(n);
|
||
}, this),
|
||
(this.__cache__ = null),
|
||
t
|
||
);
|
||
};
|
||
R.prototype.enableOnly = function (u, e) {
|
||
Array.isArray(u) || (u = [u]),
|
||
this.__rules__.forEach(function (t) {
|
||
t.enabled = !1;
|
||
}),
|
||
this.enable(u, e);
|
||
};
|
||
R.prototype.disable = function (u, e) {
|
||
Array.isArray(u) || (u = [u]);
|
||
const t = [];
|
||
return (
|
||
u.forEach(function (n) {
|
||
const c = this.__find__(n);
|
||
if (c < 0) {
|
||
if (e) return;
|
||
throw new Error("Rules manager: invalid rule name " + n);
|
||
}
|
||
(this.__rules__[c].enabled = !1), t.push(n);
|
||
}, this),
|
||
(this.__cache__ = null),
|
||
t
|
||
);
|
||
};
|
||
R.prototype.getRules = function (u) {
|
||
return (
|
||
this.__cache__ === null && this.__compile__(), this.__cache__[u] || []
|
||
);
|
||
};
|
||
function j(u, e, t) {
|
||
(this.type = u),
|
||
(this.tag = e),
|
||
(this.attrs = null),
|
||
(this.map = null),
|
||
(this.nesting = t),
|
||
(this.level = 0),
|
||
(this.children = null),
|
||
(this.content = ""),
|
||
(this.markup = ""),
|
||
(this.info = ""),
|
||
(this.meta = null),
|
||
(this.block = !1),
|
||
(this.hidden = !1);
|
||
}
|
||
j.prototype.attrIndex = function (e) {
|
||
if (!this.attrs) return -1;
|
||
const t = this.attrs;
|
||
for (let n = 0, c = t.length; n < c; n++) if (t[n][0] === e) return n;
|
||
return -1;
|
||
};
|
||
j.prototype.attrPush = function (e) {
|
||
this.attrs ? this.attrs.push(e) : (this.attrs = [e]);
|
||
};
|
||
j.prototype.attrSet = function (e, t) {
|
||
const n = this.attrIndex(e),
|
||
c = [e, t];
|
||
n < 0 ? this.attrPush(c) : (this.attrs[n] = c);
|
||
};
|
||
j.prototype.attrGet = function (e) {
|
||
const t = this.attrIndex(e);
|
||
let n = null;
|
||
return t >= 0 && (n = this.attrs[t][1]), n;
|
||
};
|
||
j.prototype.attrJoin = function (e, t) {
|
||
const n = this.attrIndex(e);
|
||
n < 0
|
||
? this.attrPush([e, t])
|
||
: (this.attrs[n][1] = this.attrs[n][1] + " " + t);
|
||
};
|
||
function Ee(u, e, t) {
|
||
(this.src = u),
|
||
(this.env = t),
|
||
(this.tokens = []),
|
||
(this.inlineMode = !1),
|
||
(this.md = e);
|
||
}
|
||
Ee.prototype.Token = j;
|
||
const J0 = /\r\n?|\n/g,
|
||
Y0 = /\0/g;
|
||
function X0(u) {
|
||
let e;
|
||
(e = u.src.replace(
|
||
J0,
|
||
`
|
||
`
|
||
)),
|
||
(e = e.replace(Y0, "<22>")),
|
||
(u.src = e);
|
||
}
|
||
function K0(u) {
|
||
let e;
|
||
u.inlineMode
|
||
? ((e = new u.Token("inline", "", 0)),
|
||
(e.content = u.src),
|
||
(e.map = [0, 1]),
|
||
(e.children = []),
|
||
u.tokens.push(e))
|
||
: u.md.block.parse(u.src, u.md, u.env, u.tokens);
|
||
}
|
||
function ut(u) {
|
||
const e = u.tokens;
|
||
for (let t = 0, n = e.length; t < n; t++) {
|
||
const c = e[t];
|
||
c.type === "inline" &&
|
||
u.md.inline.parse(c.content, u.md, u.env, c.children);
|
||
}
|
||
}
|
||
function et(u) {
|
||
return /^<a[>\s]/i.test(u);
|
||
}
|
||
function tt(u) {
|
||
return /^<\/a\s*>/i.test(u);
|
||
}
|
||
function rt(u) {
|
||
const e = u.tokens;
|
||
if (u.md.options.linkify)
|
||
for (let t = 0, n = e.length; t < n; t++) {
|
||
if (e[t].type !== "inline" || !u.md.linkify.pretest(e[t].content))
|
||
continue;
|
||
let c = e[t].children,
|
||
r = 0;
|
||
for (let i = c.length - 1; i >= 0; i--) {
|
||
const o = c[i];
|
||
if (o.type === "link_close") {
|
||
for (
|
||
i--;
|
||
c[i].level !== o.level && c[i].type !== "link_open";
|
||
|
||
)
|
||
i--;
|
||
continue;
|
||
}
|
||
if (
|
||
(o.type === "html_inline" &&
|
||
(et(o.content) && r > 0 && r--, tt(o.content) && r++),
|
||
!(r > 0) &&
|
||
o.type === "text" &&
|
||
u.md.linkify.test(o.content))
|
||
) {
|
||
const a = o.content;
|
||
let s = u.md.linkify.match(a);
|
||
const l = [];
|
||
let f = o.level,
|
||
p = 0;
|
||
s.length > 0 &&
|
||
s[0].index === 0 &&
|
||
i > 0 &&
|
||
c[i - 1].type === "text_special" &&
|
||
(s = s.slice(1));
|
||
for (let h = 0; h < s.length; h++) {
|
||
const d = s[h].url,
|
||
_ = u.md.normalizeLink(d);
|
||
if (!u.md.validateLink(_)) continue;
|
||
let y = s[h].text;
|
||
s[h].schema
|
||
? s[h].schema === "mailto:" && !/^mailto:/i.test(y)
|
||
? (y = u.md
|
||
.normalizeLinkText("mailto:" + y)
|
||
.replace(/^mailto:/, ""))
|
||
: (y = u.md.normalizeLinkText(y))
|
||
: (y = u.md
|
||
.normalizeLinkText("http://" + y)
|
||
.replace(/^http:\/\//, ""));
|
||
const D = s[h].index;
|
||
if (D > p) {
|
||
const m = new u.Token("text", "", 0);
|
||
(m.content = a.slice(p, D)),
|
||
(m.level = f),
|
||
l.push(m);
|
||
}
|
||
const A = new u.Token("link_open", "a", 1);
|
||
(A.attrs = [["href", _]]),
|
||
(A.level = f++),
|
||
(A.markup = "linkify"),
|
||
(A.info = "auto"),
|
||
l.push(A);
|
||
const k = new u.Token("text", "", 0);
|
||
(k.content = y), (k.level = f), l.push(k);
|
||
const w = new u.Token("link_close", "a", -1);
|
||
(w.level = --f),
|
||
(w.markup = "linkify"),
|
||
(w.info = "auto"),
|
||
l.push(w),
|
||
(p = s[h].lastIndex);
|
||
}
|
||
if (p < a.length) {
|
||
const h = new u.Token("text", "", 0);
|
||
(h.content = a.slice(p)), (h.level = f), l.push(h);
|
||
}
|
||
e[t].children = c = Ce(c, i, l);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
const we = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/,
|
||
nt = /\((c|tm|r)\)/i,
|
||
ct = /\((c|tm|r)\)/gi,
|
||
ot = { c: "©", r: "®", tm: "™" };
|
||
function it(u, e) {
|
||
return ot[e.toLowerCase()];
|
||
}
|
||
function at(u) {
|
||
let e = 0;
|
||
for (let t = u.length - 1; t >= 0; t--) {
|
||
const n = u[t];
|
||
n.type === "text" && !e && (n.content = n.content.replace(ct, it)),
|
||
n.type === "link_open" && n.info === "auto" && e--,
|
||
n.type === "link_close" && n.info === "auto" && e++;
|
||
}
|
||
}
|
||
function st(u) {
|
||
let e = 0;
|
||
for (let t = u.length - 1; t >= 0; t--) {
|
||
const n = u[t];
|
||
n.type === "text" &&
|
||
!e &&
|
||
we.test(n.content) &&
|
||
(n.content = n.content
|
||
.replace(/\+-/g, "±")
|
||
.replace(/\.{2,}/g, "…")
|
||
.replace(/([?!])…/g, "$1..")
|
||
.replace(/([?!]){4,}/g, "$1$1$1")
|
||
.replace(/,{2,}/g, ",")
|
||
.replace(/(^|[^-])---(?=[^-]|$)/gm, "$1—")
|
||
.replace(/(^|\s)--(?=\s|$)/gm, "$1–")
|
||
.replace(/(^|[^-\s])--(?=[^-\s]|$)/gm, "$1–")),
|
||
n.type === "link_open" && n.info === "auto" && e--,
|
||
n.type === "link_close" && n.info === "auto" && e++;
|
||
}
|
||
}
|
||
function lt(u) {
|
||
let e;
|
||
if (u.md.options.typographer)
|
||
for (e = u.tokens.length - 1; e >= 0; e--)
|
||
u.tokens[e].type === "inline" &&
|
||
(nt.test(u.tokens[e].content) && at(u.tokens[e].children),
|
||
we.test(u.tokens[e].content) && st(u.tokens[e].children));
|
||
}
|
||
const ft = /['"]/,
|
||
re = /['"]/g,
|
||
ne = "’";
|
||
function mu(u, e, t) {
|
||
return u.slice(0, e) + t + u.slice(e + 1);
|
||
}
|
||
function dt(u, e) {
|
||
let t;
|
||
const n = [];
|
||
for (let c = 0; c < u.length; c++) {
|
||
const r = u[c],
|
||
i = u[c].level;
|
||
for (t = n.length - 1; t >= 0 && !(n[t].level <= i); t--);
|
||
if (((n.length = t + 1), r.type !== "text")) continue;
|
||
let o = r.content,
|
||
a = 0,
|
||
s = o.length;
|
||
u: for (; a < s; ) {
|
||
re.lastIndex = a;
|
||
const l = re.exec(o);
|
||
if (!l) break;
|
||
let f = !0,
|
||
p = !0;
|
||
a = l.index + 1;
|
||
const h = l[0] === "'";
|
||
let d = 32;
|
||
if (l.index - 1 >= 0) d = o.charCodeAt(l.index - 1);
|
||
else
|
||
for (
|
||
t = c - 1;
|
||
t >= 0 &&
|
||
!(u[t].type === "softbreak" || u[t].type === "hardbreak");
|
||
t--
|
||
)
|
||
if (u[t].content) {
|
||
d = u[t].content.charCodeAt(u[t].content.length - 1);
|
||
break;
|
||
}
|
||
let _ = 32;
|
||
if (a < s) _ = o.charCodeAt(a);
|
||
else
|
||
for (
|
||
t = c + 1;
|
||
t < u.length &&
|
||
!(u[t].type === "softbreak" || u[t].type === "hardbreak");
|
||
t++
|
||
)
|
||
if (u[t].content) {
|
||
_ = u[t].content.charCodeAt(0);
|
||
break;
|
||
}
|
||
const y = lu(d) || su(String.fromCharCode(d)),
|
||
D = lu(_) || su(String.fromCharCode(_)),
|
||
A = au(d),
|
||
k = au(_);
|
||
if (
|
||
(k ? (f = !1) : D && (A || y || (f = !1)),
|
||
A ? (p = !1) : y && (k || D || (p = !1)),
|
||
_ === 34 && l[0] === '"' && d >= 48 && d <= 57 && (p = f = !1),
|
||
f && p && ((f = y), (p = D)),
|
||
!f && !p)
|
||
) {
|
||
h && (r.content = mu(r.content, l.index, ne));
|
||
continue;
|
||
}
|
||
if (p)
|
||
for (t = n.length - 1; t >= 0; t--) {
|
||
let w = n[t];
|
||
if (n[t].level < i) break;
|
||
if (w.single === h && n[t].level === i) {
|
||
w = n[t];
|
||
let m, x;
|
||
h
|
||
? ((m = e.md.options.quotes[2]),
|
||
(x = e.md.options.quotes[3]))
|
||
: ((m = e.md.options.quotes[0]),
|
||
(x = e.md.options.quotes[1])),
|
||
(r.content = mu(r.content, l.index, x)),
|
||
(u[w.token].content = mu(
|
||
u[w.token].content,
|
||
w.pos,
|
||
m
|
||
)),
|
||
(a += x.length - 1),
|
||
w.token === c && (a += m.length - 1),
|
||
(o = r.content),
|
||
(s = o.length),
|
||
(n.length = t);
|
||
continue u;
|
||
}
|
||
}
|
||
f
|
||
? n.push({ token: c, pos: l.index, single: h, level: i })
|
||
: p && h && (r.content = mu(r.content, l.index, ne));
|
||
}
|
||
}
|
||
}
|
||
function ht(u) {
|
||
if (u.md.options.typographer)
|
||
for (let e = u.tokens.length - 1; e >= 0; e--)
|
||
u.tokens[e].type !== "inline" ||
|
||
!ft.test(u.tokens[e].content) ||
|
||
dt(u.tokens[e].children, u);
|
||
}
|
||
function bt(u) {
|
||
let e, t;
|
||
const n = u.tokens,
|
||
c = n.length;
|
||
for (let r = 0; r < c; r++) {
|
||
if (n[r].type !== "inline") continue;
|
||
const i = n[r].children,
|
||
o = i.length;
|
||
for (e = 0; e < o; e++)
|
||
i[e].type === "text_special" && (i[e].type = "text");
|
||
for (e = t = 0; e < o; e++)
|
||
i[e].type === "text" && e + 1 < o && i[e + 1].type === "text"
|
||
? (i[e + 1].content = i[e].content + i[e + 1].content)
|
||
: (e !== t && (i[t] = i[e]), t++);
|
||
e !== t && (i.length = t);
|
||
}
|
||
}
|
||
const Su = [
|
||
["normalize", X0],
|
||
["block", K0],
|
||
["inline", ut],
|
||
["linkify", rt],
|
||
["replacements", lt],
|
||
["smartquotes", ht],
|
||
["text_join", bt],
|
||
];
|
||
function Zu() {
|
||
this.ruler = new R();
|
||
for (let u = 0; u < Su.length; u++) this.ruler.push(Su[u][0], Su[u][1]);
|
||
}
|
||
Zu.prototype.process = function (u) {
|
||
const e = this.ruler.getRules("");
|
||
for (let t = 0, n = e.length; t < n; t++) e[t](u);
|
||
};
|
||
Zu.prototype.State = Ee;
|
||
function Q(u, e, t, n) {
|
||
(this.src = u),
|
||
(this.md = e),
|
||
(this.env = t),
|
||
(this.tokens = n),
|
||
(this.bMarks = []),
|
||
(this.eMarks = []),
|
||
(this.tShift = []),
|
||
(this.sCount = []),
|
||
(this.bsCount = []),
|
||
(this.blkIndent = 0),
|
||
(this.line = 0),
|
||
(this.lineMax = 0),
|
||
(this.tight = !1),
|
||
(this.ddIndent = -1),
|
||
(this.listIndent = -1),
|
||
(this.parentType = "root"),
|
||
(this.level = 0);
|
||
const c = this.src;
|
||
for (let r = 0, i = 0, o = 0, a = 0, s = c.length, l = !1; i < s; i++) {
|
||
const f = c.charCodeAt(i);
|
||
if (!l)
|
||
if (S(f)) {
|
||
o++, f === 9 ? (a += 4 - (a % 4)) : a++;
|
||
continue;
|
||
} else l = !0;
|
||
(f === 10 || i === s - 1) &&
|
||
(f !== 10 && i++,
|
||
this.bMarks.push(r),
|
||
this.eMarks.push(i),
|
||
this.tShift.push(o),
|
||
this.sCount.push(a),
|
||
this.bsCount.push(0),
|
||
(l = !1),
|
||
(o = 0),
|
||
(a = 0),
|
||
(r = i + 1));
|
||
}
|
||
this.bMarks.push(c.length),
|
||
this.eMarks.push(c.length),
|
||
this.tShift.push(0),
|
||
this.sCount.push(0),
|
||
this.bsCount.push(0),
|
||
(this.lineMax = this.bMarks.length - 1);
|
||
}
|
||
Q.prototype.push = function (u, e, t) {
|
||
const n = new j(u, e, t);
|
||
return (
|
||
(n.block = !0),
|
||
t < 0 && this.level--,
|
||
(n.level = this.level),
|
||
t > 0 && this.level++,
|
||
this.tokens.push(n),
|
||
n
|
||
);
|
||
};
|
||
Q.prototype.isEmpty = function (e) {
|
||
return this.bMarks[e] + this.tShift[e] >= this.eMarks[e];
|
||
};
|
||
Q.prototype.skipEmptyLines = function (e) {
|
||
for (
|
||
let t = this.lineMax;
|
||
e < t && !(this.bMarks[e] + this.tShift[e] < this.eMarks[e]);
|
||
e++
|
||
);
|
||
return e;
|
||
};
|
||
Q.prototype.skipSpaces = function (e) {
|
||
for (let t = this.src.length; e < t; e++) {
|
||
const n = this.src.charCodeAt(e);
|
||
if (!S(n)) break;
|
||
}
|
||
return e;
|
||
};
|
||
Q.prototype.skipSpacesBack = function (e, t) {
|
||
if (e <= t) return e;
|
||
for (; e > t; ) if (!S(this.src.charCodeAt(--e))) return e + 1;
|
||
return e;
|
||
};
|
||
Q.prototype.skipChars = function (e, t) {
|
||
for (let n = this.src.length; e < n && this.src.charCodeAt(e) === t; e++);
|
||
return e;
|
||
};
|
||
Q.prototype.skipCharsBack = function (e, t, n) {
|
||
if (e <= n) return e;
|
||
for (; e > n; ) if (t !== this.src.charCodeAt(--e)) return e + 1;
|
||
return e;
|
||
};
|
||
Q.prototype.getLines = function (e, t, n, c) {
|
||
if (e >= t) return "";
|
||
const r = new Array(t - e);
|
||
for (let i = 0, o = e; o < t; o++, i++) {
|
||
let a = 0;
|
||
const s = this.bMarks[o];
|
||
let l = s,
|
||
f;
|
||
for (
|
||
o + 1 < t || c ? (f = this.eMarks[o] + 1) : (f = this.eMarks[o]);
|
||
l < f && a < n;
|
||
|
||
) {
|
||
const p = this.src.charCodeAt(l);
|
||
if (S(p)) p === 9 ? (a += 4 - ((a + this.bsCount[o]) % 4)) : a++;
|
||
else if (l - s < this.tShift[o]) a++;
|
||
else break;
|
||
l++;
|
||
}
|
||
a > n
|
||
? (r[i] = new Array(a - n + 1).join(" ") + this.src.slice(l, f))
|
||
: (r[i] = this.src.slice(l, f));
|
||
}
|
||
return r.join("");
|
||
};
|
||
Q.prototype.Token = j;
|
||
function zu(u, e) {
|
||
const t = u.bMarks[e] + u.tShift[e],
|
||
n = u.eMarks[e];
|
||
return u.src.slice(t, n);
|
||
}
|
||
function ce(u) {
|
||
const e = [],
|
||
t = u.length;
|
||
let n = 0,
|
||
c = u.charCodeAt(n),
|
||
r = !1,
|
||
i = 0,
|
||
o = "";
|
||
for (; n < t; )
|
||
c === 124 &&
|
||
(r
|
||
? ((o += u.substring(i, n - 1)), (i = n))
|
||
: (e.push(o + u.substring(i, n)), (o = ""), (i = n + 1))),
|
||
(r = c === 92),
|
||
n++,
|
||
(c = u.charCodeAt(n));
|
||
return e.push(o + u.substring(i)), e;
|
||
}
|
||
function pt(u, e, t, n) {
|
||
if (e + 2 > t) return !1;
|
||
let c = e + 1;
|
||
if (u.sCount[c] < u.blkIndent || u.sCount[c] - u.blkIndent >= 4) return !1;
|
||
let r = u.bMarks[c] + u.tShift[c];
|
||
if (r >= u.eMarks[c]) return !1;
|
||
const i = u.src.charCodeAt(r++);
|
||
if ((i !== 124 && i !== 45 && i !== 58) || r >= u.eMarks[c]) return !1;
|
||
const o = u.src.charCodeAt(r++);
|
||
if ((o !== 124 && o !== 45 && o !== 58 && !S(o)) || (i === 45 && S(o)))
|
||
return !1;
|
||
for (; r < u.eMarks[c]; ) {
|
||
const k = u.src.charCodeAt(r);
|
||
if (k !== 124 && k !== 45 && k !== 58 && !S(k)) return !1;
|
||
r++;
|
||
}
|
||
let a = zu(u, e + 1),
|
||
s = a.split("|");
|
||
const l = [];
|
||
for (let k = 0; k < s.length; k++) {
|
||
const w = s[k].trim();
|
||
if (!w) {
|
||
if (k === 0 || k === s.length - 1) continue;
|
||
return !1;
|
||
}
|
||
if (!/^:?-+:?$/.test(w)) return !1;
|
||
w.charCodeAt(w.length - 1) === 58
|
||
? l.push(w.charCodeAt(0) === 58 ? "center" : "right")
|
||
: w.charCodeAt(0) === 58
|
||
? l.push("left")
|
||
: l.push("");
|
||
}
|
||
if (
|
||
((a = zu(u, e).trim()),
|
||
a.indexOf("|") === -1 || u.sCount[e] - u.blkIndent >= 4)
|
||
)
|
||
return !1;
|
||
(s = ce(a)),
|
||
s.length && s[0] === "" && s.shift(),
|
||
s.length && s[s.length - 1] === "" && s.pop();
|
||
const f = s.length;
|
||
if (f === 0 || f !== l.length) return !1;
|
||
if (n) return !0;
|
||
const p = u.parentType;
|
||
u.parentType = "table";
|
||
const h = u.md.block.ruler.getRules("blockquote"),
|
||
d = u.push("table_open", "table", 1),
|
||
_ = [e, 0];
|
||
d.map = _;
|
||
const y = u.push("thead_open", "thead", 1);
|
||
y.map = [e, e + 1];
|
||
const D = u.push("tr_open", "tr", 1);
|
||
D.map = [e, e + 1];
|
||
for (let k = 0; k < s.length; k++) {
|
||
const w = u.push("th_open", "th", 1);
|
||
l[k] && (w.attrs = [["style", "text-align:" + l[k]]]);
|
||
const m = u.push("inline", "", 0);
|
||
(m.content = s[k].trim()),
|
||
(m.children = []),
|
||
u.push("th_close", "th", -1);
|
||
}
|
||
u.push("tr_close", "tr", -1), u.push("thead_close", "thead", -1);
|
||
let A;
|
||
for (c = e + 2; c < t && !(u.sCount[c] < u.blkIndent); c++) {
|
||
let k = !1;
|
||
for (let m = 0, x = h.length; m < x; m++)
|
||
if (h[m](u, c, t, !0)) {
|
||
k = !0;
|
||
break;
|
||
}
|
||
if (k || ((a = zu(u, c).trim()), !a) || u.sCount[c] - u.blkIndent >= 4)
|
||
break;
|
||
if (
|
||
((s = ce(a)),
|
||
s.length && s[0] === "" && s.shift(),
|
||
s.length && s[s.length - 1] === "" && s.pop(),
|
||
c === e + 2)
|
||
) {
|
||
const m = u.push("tbody_open", "tbody", 1);
|
||
m.map = A = [e + 2, 0];
|
||
}
|
||
const w = u.push("tr_open", "tr", 1);
|
||
w.map = [c, c + 1];
|
||
for (let m = 0; m < f; m++) {
|
||
const x = u.push("td_open", "td", 1);
|
||
l[m] && (x.attrs = [["style", "text-align:" + l[m]]]);
|
||
const v = u.push("inline", "", 0);
|
||
(v.content = s[m] ? s[m].trim() : ""),
|
||
(v.children = []),
|
||
u.push("td_close", "td", -1);
|
||
}
|
||
u.push("tr_close", "tr", -1);
|
||
}
|
||
return (
|
||
A && (u.push("tbody_close", "tbody", -1), (A[1] = c)),
|
||
u.push("table_close", "table", -1),
|
||
(_[1] = c),
|
||
(u.parentType = p),
|
||
(u.line = c),
|
||
!0
|
||
);
|
||
}
|
||
function _t(u, e, t) {
|
||
if (u.sCount[e] - u.blkIndent < 4) return !1;
|
||
let n = e + 1,
|
||
c = n;
|
||
for (; n < t; ) {
|
||
if (u.isEmpty(n)) {
|
||
n++;
|
||
continue;
|
||
}
|
||
if (u.sCount[n] - u.blkIndent >= 4) {
|
||
n++, (c = n);
|
||
continue;
|
||
}
|
||
break;
|
||
}
|
||
u.line = c;
|
||
const r = u.push("code_block", "code", 0);
|
||
return (
|
||
(r.content =
|
||
u.getLines(e, c, 4 + u.blkIndent, !1) +
|
||
`
|
||
`),
|
||
(r.map = [e, u.line]),
|
||
!0
|
||
);
|
||
}
|
||
function mt(u, e, t, n) {
|
||
let c = u.bMarks[e] + u.tShift[e],
|
||
r = u.eMarks[e];
|
||
if (u.sCount[e] - u.blkIndent >= 4 || c + 3 > r) return !1;
|
||
const i = u.src.charCodeAt(c);
|
||
if (i !== 126 && i !== 96) return !1;
|
||
let o = c;
|
||
c = u.skipChars(c, i);
|
||
let a = c - o;
|
||
if (a < 3) return !1;
|
||
const s = u.src.slice(o, c),
|
||
l = u.src.slice(c, r);
|
||
if (i === 96 && l.indexOf(String.fromCharCode(i)) >= 0) return !1;
|
||
if (n) return !0;
|
||
let f = e,
|
||
p = !1;
|
||
for (
|
||
;
|
||
f++,
|
||
!(
|
||
f >= t ||
|
||
((c = o = u.bMarks[f] + u.tShift[f]),
|
||
(r = u.eMarks[f]),
|
||
c < r && u.sCount[f] < u.blkIndent)
|
||
);
|
||
|
||
)
|
||
if (
|
||
u.src.charCodeAt(c) === i &&
|
||
!(u.sCount[f] - u.blkIndent >= 4) &&
|
||
((c = u.skipChars(c, i)),
|
||
!(c - o < a) && ((c = u.skipSpaces(c)), !(c < r)))
|
||
) {
|
||
p = !0;
|
||
break;
|
||
}
|
||
(a = u.sCount[e]), (u.line = f + (p ? 1 : 0));
|
||
const h = u.push("fence", "code", 0);
|
||
return (
|
||
(h.info = l),
|
||
(h.content = u.getLines(e + 1, f, a, !0)),
|
||
(h.markup = s),
|
||
(h.map = [e, u.line]),
|
||
!0
|
||
);
|
||
}
|
||
function xt(u, e, t, n) {
|
||
let c = u.bMarks[e] + u.tShift[e],
|
||
r = u.eMarks[e];
|
||
const i = u.lineMax;
|
||
if (u.sCount[e] - u.blkIndent >= 4 || u.src.charCodeAt(c) !== 62) return !1;
|
||
if (n) return !0;
|
||
const o = [],
|
||
a = [],
|
||
s = [],
|
||
l = [],
|
||
f = u.md.block.ruler.getRules("blockquote"),
|
||
p = u.parentType;
|
||
u.parentType = "blockquote";
|
||
let h = !1,
|
||
d;
|
||
for (d = e; d < t; d++) {
|
||
const k = u.sCount[d] < u.blkIndent;
|
||
if (((c = u.bMarks[d] + u.tShift[d]), (r = u.eMarks[d]), c >= r)) break;
|
||
if (u.src.charCodeAt(c++) === 62 && !k) {
|
||
let m = u.sCount[d] + 1,
|
||
x,
|
||
v;
|
||
u.src.charCodeAt(c) === 32
|
||
? (c++, m++, (v = !1), (x = !0))
|
||
: u.src.charCodeAt(c) === 9
|
||
? ((x = !0),
|
||
(u.bsCount[d] + m) % 4 === 3
|
||
? (c++, m++, (v = !1))
|
||
: (v = !0))
|
||
: (x = !1);
|
||
let q = m;
|
||
for (o.push(u.bMarks[d]), u.bMarks[d] = c; c < r; ) {
|
||
const N = u.src.charCodeAt(c);
|
||
if (S(N))
|
||
N === 9
|
||
? (q += 4 - ((q + u.bsCount[d] + (v ? 1 : 0)) % 4))
|
||
: q++;
|
||
else break;
|
||
c++;
|
||
}
|
||
(h = c >= r),
|
||
a.push(u.bsCount[d]),
|
||
(u.bsCount[d] = u.sCount[d] + 1 + (x ? 1 : 0)),
|
||
s.push(u.sCount[d]),
|
||
(u.sCount[d] = q - m),
|
||
l.push(u.tShift[d]),
|
||
(u.tShift[d] = c - u.bMarks[d]);
|
||
continue;
|
||
}
|
||
if (h) break;
|
||
let w = !1;
|
||
for (let m = 0, x = f.length; m < x; m++)
|
||
if (f[m](u, d, t, !0)) {
|
||
w = !0;
|
||
break;
|
||
}
|
||
if (w) {
|
||
(u.lineMax = d),
|
||
u.blkIndent !== 0 &&
|
||
(o.push(u.bMarks[d]),
|
||
a.push(u.bsCount[d]),
|
||
l.push(u.tShift[d]),
|
||
s.push(u.sCount[d]),
|
||
(u.sCount[d] -= u.blkIndent));
|
||
break;
|
||
}
|
||
o.push(u.bMarks[d]),
|
||
a.push(u.bsCount[d]),
|
||
l.push(u.tShift[d]),
|
||
s.push(u.sCount[d]),
|
||
(u.sCount[d] = -1);
|
||
}
|
||
const _ = u.blkIndent;
|
||
u.blkIndent = 0;
|
||
const y = u.push("blockquote_open", "blockquote", 1);
|
||
y.markup = ">";
|
||
const D = [e, 0];
|
||
(y.map = D), u.md.block.tokenize(u, e, d);
|
||
const A = u.push("blockquote_close", "blockquote", -1);
|
||
(A.markup = ">"), (u.lineMax = i), (u.parentType = p), (D[1] = u.line);
|
||
for (let k = 0; k < l.length; k++)
|
||
(u.bMarks[k + e] = o[k]),
|
||
(u.tShift[k + e] = l[k]),
|
||
(u.sCount[k + e] = s[k]),
|
||
(u.bsCount[k + e] = a[k]);
|
||
return (u.blkIndent = _), !0;
|
||
}
|
||
function kt(u, e, t, n) {
|
||
const c = u.eMarks[e];
|
||
if (u.sCount[e] - u.blkIndent >= 4) return !1;
|
||
let r = u.bMarks[e] + u.tShift[e];
|
||
const i = u.src.charCodeAt(r++);
|
||
if (i !== 42 && i !== 45 && i !== 95) return !1;
|
||
let o = 1;
|
||
for (; r < c; ) {
|
||
const s = u.src.charCodeAt(r++);
|
||
if (s !== i && !S(s)) return !1;
|
||
s === i && o++;
|
||
}
|
||
if (o < 3) return !1;
|
||
if (n) return !0;
|
||
u.line = e + 1;
|
||
const a = u.push("hr", "hr", 0);
|
||
return (
|
||
(a.map = [e, u.line]),
|
||
(a.markup = Array(o + 1).join(String.fromCharCode(i))),
|
||
!0
|
||
);
|
||
}
|
||
function oe(u, e) {
|
||
const t = u.eMarks[e];
|
||
let n = u.bMarks[e] + u.tShift[e];
|
||
const c = u.src.charCodeAt(n++);
|
||
if (c !== 42 && c !== 45 && c !== 43) return -1;
|
||
if (n < t) {
|
||
const r = u.src.charCodeAt(n);
|
||
if (!S(r)) return -1;
|
||
}
|
||
return n;
|
||
}
|
||
function ie(u, e) {
|
||
const t = u.bMarks[e] + u.tShift[e],
|
||
n = u.eMarks[e];
|
||
let c = t;
|
||
if (c + 1 >= n) return -1;
|
||
let r = u.src.charCodeAt(c++);
|
||
if (r < 48 || r > 57) return -1;
|
||
for (;;) {
|
||
if (c >= n) return -1;
|
||
if (((r = u.src.charCodeAt(c++)), r >= 48 && r <= 57)) {
|
||
if (c - t >= 10) return -1;
|
||
continue;
|
||
}
|
||
if (r === 41 || r === 46) break;
|
||
return -1;
|
||
}
|
||
return c < n && ((r = u.src.charCodeAt(c)), !S(r)) ? -1 : c;
|
||
}
|
||
function gt(u, e) {
|
||
const t = u.level + 2;
|
||
for (let n = e + 2, c = u.tokens.length - 2; n < c; n++)
|
||
u.tokens[n].level === t &&
|
||
u.tokens[n].type === "paragraph_open" &&
|
||
((u.tokens[n + 2].hidden = !0),
|
||
(u.tokens[n].hidden = !0),
|
||
(n += 2));
|
||
}
|
||
function yt(u, e, t, n) {
|
||
let c,
|
||
r,
|
||
i,
|
||
o,
|
||
a = e,
|
||
s = !0;
|
||
if (
|
||
u.sCount[a] - u.blkIndent >= 4 ||
|
||
(u.listIndent >= 0 &&
|
||
u.sCount[a] - u.listIndent >= 4 &&
|
||
u.sCount[a] < u.blkIndent)
|
||
)
|
||
return !1;
|
||
let l = !1;
|
||
n && u.parentType === "paragraph" && u.sCount[a] >= u.blkIndent && (l = !0);
|
||
let f, p, h;
|
||
if ((h = ie(u, a)) >= 0) {
|
||
if (
|
||
((f = !0),
|
||
(i = u.bMarks[a] + u.tShift[a]),
|
||
(p = Number(u.src.slice(i, h - 1))),
|
||
l && p !== 1)
|
||
)
|
||
return !1;
|
||
} else if ((h = oe(u, a)) >= 0) f = !1;
|
||
else return !1;
|
||
if (l && u.skipSpaces(h) >= u.eMarks[a]) return !1;
|
||
if (n) return !0;
|
||
const d = u.src.charCodeAt(h - 1),
|
||
_ = u.tokens.length;
|
||
f
|
||
? ((o = u.push("ordered_list_open", "ol", 1)),
|
||
p !== 1 && (o.attrs = [["start", p]]))
|
||
: (o = u.push("bullet_list_open", "ul", 1));
|
||
const y = [a, 0];
|
||
(o.map = y), (o.markup = String.fromCharCode(d));
|
||
let D = !1;
|
||
const A = u.md.block.ruler.getRules("list"),
|
||
k = u.parentType;
|
||
for (u.parentType = "list"; a < t; ) {
|
||
(r = h), (c = u.eMarks[a]);
|
||
const w = u.sCount[a] + h - (u.bMarks[a] + u.tShift[a]);
|
||
let m = w;
|
||
for (; r < c; ) {
|
||
const O = u.src.charCodeAt(r);
|
||
if (O === 9) m += 4 - ((m + u.bsCount[a]) % 4);
|
||
else if (O === 32) m++;
|
||
else break;
|
||
r++;
|
||
}
|
||
const x = r;
|
||
let v;
|
||
x >= c ? (v = 1) : (v = m - w), v > 4 && (v = 1);
|
||
const q = w + v;
|
||
(o = u.push("list_item_open", "li", 1)),
|
||
(o.markup = String.fromCharCode(d));
|
||
const N = [a, 0];
|
||
(o.map = N), f && (o.info = u.src.slice(i, h - 1));
|
||
const pu = u.tight,
|
||
_u = u.tShift[a],
|
||
nu = u.sCount[a],
|
||
Du = u.listIndent;
|
||
if (
|
||
((u.listIndent = u.blkIndent),
|
||
(u.blkIndent = q),
|
||
(u.tight = !0),
|
||
(u.tShift[a] = x - u.bMarks[a]),
|
||
(u.sCount[a] = m),
|
||
x >= c && u.isEmpty(a + 1)
|
||
? (u.line = Math.min(u.line + 2, t))
|
||
: u.md.block.tokenize(u, a, t, !0),
|
||
(!u.tight || D) && (s = !1),
|
||
(D = u.line - a > 1 && u.isEmpty(u.line - 1)),
|
||
(u.blkIndent = u.listIndent),
|
||
(u.listIndent = Du),
|
||
(u.tShift[a] = _u),
|
||
(u.sCount[a] = nu),
|
||
(u.tight = pu),
|
||
(o = u.push("list_item_close", "li", -1)),
|
||
(o.markup = String.fromCharCode(d)),
|
||
(a = u.line),
|
||
(N[1] = a),
|
||
a >= t ||
|
||
u.sCount[a] < u.blkIndent ||
|
||
u.sCount[a] - u.blkIndent >= 4)
|
||
)
|
||
break;
|
||
let L = !1;
|
||
for (let O = 0, vu = A.length; O < vu; O++)
|
||
if (A[O](u, a, t, !0)) {
|
||
L = !0;
|
||
break;
|
||
}
|
||
if (L) break;
|
||
if (f) {
|
||
if (((h = ie(u, a)), h < 0)) break;
|
||
i = u.bMarks[a] + u.tShift[a];
|
||
} else if (((h = oe(u, a)), h < 0)) break;
|
||
if (d !== u.src.charCodeAt(h - 1)) break;
|
||
}
|
||
return (
|
||
f
|
||
? (o = u.push("ordered_list_close", "ol", -1))
|
||
: (o = u.push("bullet_list_close", "ul", -1)),
|
||
(o.markup = String.fromCharCode(d)),
|
||
(y[1] = a),
|
||
(u.line = a),
|
||
(u.parentType = k),
|
||
s && gt(u, _),
|
||
!0
|
||
);
|
||
}
|
||
function Ct(u, e, t, n) {
|
||
let c = 0,
|
||
r = u.bMarks[e] + u.tShift[e],
|
||
i = u.eMarks[e],
|
||
o = e + 1;
|
||
if (u.sCount[e] - u.blkIndent >= 4 || u.src.charCodeAt(r) !== 91) return !1;
|
||
for (; ++r < i; )
|
||
if (u.src.charCodeAt(r) === 93 && u.src.charCodeAt(r - 1) !== 92) {
|
||
if (r + 1 === i || u.src.charCodeAt(r + 1) !== 58) return !1;
|
||
break;
|
||
}
|
||
const a = u.lineMax,
|
||
s = u.md.block.ruler.getRules("reference"),
|
||
l = u.parentType;
|
||
for (u.parentType = "reference"; o < a && !u.isEmpty(o); o++) {
|
||
if (u.sCount[o] - u.blkIndent > 3 || u.sCount[o] < 0) continue;
|
||
let m = !1;
|
||
for (let x = 0, v = s.length; x < v; x++)
|
||
if (s[x](u, o, a, !0)) {
|
||
m = !0;
|
||
break;
|
||
}
|
||
if (m) break;
|
||
}
|
||
const f = u.getLines(e, o, u.blkIndent, !1).trim();
|
||
i = f.length;
|
||
let p = -1;
|
||
for (r = 1; r < i; r++) {
|
||
const m = f.charCodeAt(r);
|
||
if (m === 91) return !1;
|
||
if (m === 93) {
|
||
p = r;
|
||
break;
|
||
} else
|
||
m === 10
|
||
? c++
|
||
: m === 92 && (r++, r < i && f.charCodeAt(r) === 10 && c++);
|
||
}
|
||
if (p < 0 || f.charCodeAt(p + 1) !== 58) return !1;
|
||
for (r = p + 2; r < i; r++) {
|
||
const m = f.charCodeAt(r);
|
||
if (m === 10) c++;
|
||
else if (!S(m)) break;
|
||
}
|
||
const h = u.md.helpers.parseLinkDestination(f, r, i);
|
||
if (!h.ok) return !1;
|
||
const d = u.md.normalizeLink(h.str);
|
||
if (!u.md.validateLink(d)) return !1;
|
||
(r = h.pos), (c += h.lines);
|
||
const _ = r,
|
||
y = c,
|
||
D = r;
|
||
for (; r < i; r++) {
|
||
const m = f.charCodeAt(r);
|
||
if (m === 10) c++;
|
||
else if (!S(m)) break;
|
||
}
|
||
const A = u.md.helpers.parseLinkTitle(f, r, i);
|
||
let k;
|
||
for (
|
||
r < i && D !== r && A.ok
|
||
? ((k = A.str), (r = A.pos), (c += A.lines))
|
||
: ((k = ""), (r = _), (c = y));
|
||
r < i;
|
||
|
||
) {
|
||
const m = f.charCodeAt(r);
|
||
if (!S(m)) break;
|
||
r++;
|
||
}
|
||
if (r < i && f.charCodeAt(r) !== 10 && k)
|
||
for (k = "", r = _, c = y; r < i; ) {
|
||
const m = f.charCodeAt(r);
|
||
if (!S(m)) break;
|
||
r++;
|
||
}
|
||
if (r < i && f.charCodeAt(r) !== 10) return !1;
|
||
const w = Au(f.slice(1, p));
|
||
return w
|
||
? (n ||
|
||
(typeof u.env.references == "undefined" &&
|
||
(u.env.references = {}),
|
||
typeof u.env.references[w] == "undefined" &&
|
||
(u.env.references[w] = { title: k, href: d }),
|
||
(u.parentType = l),
|
||
(u.line = e + c + 1)),
|
||
!0)
|
||
: !1;
|
||
}
|
||
const At = [
|
||
"address",
|
||
"article",
|
||
"aside",
|
||
"base",
|
||
"basefont",
|
||
"blockquote",
|
||
"body",
|
||
"caption",
|
||
"center",
|
||
"col",
|
||
"colgroup",
|
||
"dd",
|
||
"details",
|
||
"dialog",
|
||
"dir",
|
||
"div",
|
||
"dl",
|
||
"dt",
|
||
"fieldset",
|
||
"figcaption",
|
||
"figure",
|
||
"footer",
|
||
"form",
|
||
"frame",
|
||
"frameset",
|
||
"h1",
|
||
"h2",
|
||
"h3",
|
||
"h4",
|
||
"h5",
|
||
"h6",
|
||
"head",
|
||
"header",
|
||
"hr",
|
||
"html",
|
||
"iframe",
|
||
"legend",
|
||
"li",
|
||
"link",
|
||
"main",
|
||
"menu",
|
||
"menuitem",
|
||
"nav",
|
||
"noframes",
|
||
"ol",
|
||
"optgroup",
|
||
"option",
|
||
"p",
|
||
"param",
|
||
"section",
|
||
"source",
|
||
"summary",
|
||
"table",
|
||
"tbody",
|
||
"td",
|
||
"tfoot",
|
||
"th",
|
||
"thead",
|
||
"title",
|
||
"tr",
|
||
"track",
|
||
"ul",
|
||
],
|
||
Et = "[a-zA-Z_:][a-zA-Z0-9:._-]*",
|
||
wt = "[^\"'=<>`\\x00-\\x20]+",
|
||
Dt = "'[^']*'",
|
||
vt = '"[^"]*"',
|
||
Ft = "(?:" + wt + "|" + Dt + "|" + vt + ")",
|
||
St = "(?:\\s+" + Et + "(?:\\s*=\\s*" + Ft + ")?)",
|
||
De = "<[A-Za-z][A-Za-z0-9\\-]*" + St + "*\\s*\\/?>",
|
||
ve = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",
|
||
zt = "<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",
|
||
qt = "<[?][\\s\\S]*?[?]>",
|
||
Tt = "<![A-Z]+\\s+[^>]*>",
|
||
It = "<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",
|
||
Mt = new RegExp(
|
||
"^(?:" + De + "|" + ve + "|" + zt + "|" + qt + "|" + Tt + "|" + It + ")"
|
||
),
|
||
Nt = new RegExp("^(?:" + De + "|" + ve + ")"),
|
||
uu = [
|
||
[
|
||
/^<(script|pre|style|textarea)(?=(\s|>|$))/i,
|
||
/<\/(script|pre|style|textarea)>/i,
|
||
!0,
|
||
],
|
||
[/^<!--/, /-->/, !0],
|
||
[/^<\?/, /\?>/, !0],
|
||
[/^<![A-Z]/, />/, !0],
|
||
[/^<!\[CDATA\[/, /\]\]>/, !0],
|
||
[
|
||
new RegExp("^</?(" + At.join("|") + ")(?=(\\s|/?>|$))", "i"),
|
||
/^$/,
|
||
!0,
|
||
],
|
||
[new RegExp(Nt.source + "\\s*$"), /^$/, !1],
|
||
];
|
||
function Lt(u, e, t, n) {
|
||
let c = u.bMarks[e] + u.tShift[e],
|
||
r = u.eMarks[e];
|
||
if (
|
||
u.sCount[e] - u.blkIndent >= 4 ||
|
||
!u.md.options.html ||
|
||
u.src.charCodeAt(c) !== 60
|
||
)
|
||
return !1;
|
||
let i = u.src.slice(c, r),
|
||
o = 0;
|
||
for (; o < uu.length && !uu[o][0].test(i); o++);
|
||
if (o === uu.length) return !1;
|
||
if (n) return uu[o][2];
|
||
let a = e + 1;
|
||
if (!uu[o][1].test(i)) {
|
||
for (; a < t && !(u.sCount[a] < u.blkIndent); a++)
|
||
if (
|
||
((c = u.bMarks[a] + u.tShift[a]),
|
||
(r = u.eMarks[a]),
|
||
(i = u.src.slice(c, r)),
|
||
uu[o][1].test(i))
|
||
) {
|
||
i.length !== 0 && a++;
|
||
break;
|
||
}
|
||
}
|
||
u.line = a;
|
||
const s = u.push("html_block", "", 0);
|
||
return (
|
||
(s.map = [e, a]), (s.content = u.getLines(e, a, u.blkIndent, !0)), !0
|
||
);
|
||
}
|
||
function Rt(u, e, t, n) {
|
||
let c = u.bMarks[e] + u.tShift[e],
|
||
r = u.eMarks[e];
|
||
if (u.sCount[e] - u.blkIndent >= 4) return !1;
|
||
let i = u.src.charCodeAt(c);
|
||
if (i !== 35 || c >= r) return !1;
|
||
let o = 1;
|
||
for (i = u.src.charCodeAt(++c); i === 35 && c < r && o <= 6; )
|
||
o++, (i = u.src.charCodeAt(++c));
|
||
if (o > 6 || (c < r && !S(i))) return !1;
|
||
if (n) return !0;
|
||
r = u.skipSpacesBack(r, c);
|
||
const a = u.skipCharsBack(r, 35, c);
|
||
a > c && S(u.src.charCodeAt(a - 1)) && (r = a), (u.line = e + 1);
|
||
const s = u.push("heading_open", "h" + String(o), 1);
|
||
(s.markup = "########".slice(0, o)), (s.map = [e, u.line]);
|
||
const l = u.push("inline", "", 0);
|
||
(l.content = u.src.slice(c, r).trim()),
|
||
(l.map = [e, u.line]),
|
||
(l.children = []);
|
||
const f = u.push("heading_close", "h" + String(o), -1);
|
||
return (f.markup = "########".slice(0, o)), !0;
|
||
}
|
||
function Pt(u, e, t) {
|
||
const n = u.md.block.ruler.getRules("paragraph");
|
||
if (u.sCount[e] - u.blkIndent >= 4) return !1;
|
||
const c = u.parentType;
|
||
u.parentType = "paragraph";
|
||
let r = 0,
|
||
i,
|
||
o = e + 1;
|
||
for (; o < t && !u.isEmpty(o); o++) {
|
||
if (u.sCount[o] - u.blkIndent > 3) continue;
|
||
if (u.sCount[o] >= u.blkIndent) {
|
||
let h = u.bMarks[o] + u.tShift[o];
|
||
const d = u.eMarks[o];
|
||
if (
|
||
h < d &&
|
||
((i = u.src.charCodeAt(h)),
|
||
(i === 45 || i === 61) &&
|
||
((h = u.skipChars(h, i)), (h = u.skipSpaces(h)), h >= d))
|
||
) {
|
||
r = i === 61 ? 1 : 2;
|
||
break;
|
||
}
|
||
}
|
||
if (u.sCount[o] < 0) continue;
|
||
let p = !1;
|
||
for (let h = 0, d = n.length; h < d; h++)
|
||
if (n[h](u, o, t, !0)) {
|
||
p = !0;
|
||
break;
|
||
}
|
||
if (p) break;
|
||
}
|
||
if (!r) return !1;
|
||
const a = u.getLines(e, o, u.blkIndent, !1).trim();
|
||
u.line = o + 1;
|
||
const s = u.push("heading_open", "h" + String(r), 1);
|
||
(s.markup = String.fromCharCode(i)), (s.map = [e, u.line]);
|
||
const l = u.push("inline", "", 0);
|
||
(l.content = a), (l.map = [e, u.line - 1]), (l.children = []);
|
||
const f = u.push("heading_close", "h" + String(r), -1);
|
||
return (f.markup = String.fromCharCode(i)), (u.parentType = c), !0;
|
||
}
|
||
function Bt(u, e, t) {
|
||
const n = u.md.block.ruler.getRules("paragraph"),
|
||
c = u.parentType;
|
||
let r = e + 1;
|
||
for (u.parentType = "paragraph"; r < t && !u.isEmpty(r); r++) {
|
||
if (u.sCount[r] - u.blkIndent > 3 || u.sCount[r] < 0) continue;
|
||
let s = !1;
|
||
for (let l = 0, f = n.length; l < f; l++)
|
||
if (n[l](u, r, t, !0)) {
|
||
s = !0;
|
||
break;
|
||
}
|
||
if (s) break;
|
||
}
|
||
const i = u.getLines(e, r, u.blkIndent, !1).trim();
|
||
u.line = r;
|
||
const o = u.push("paragraph_open", "p", 1);
|
||
o.map = [e, u.line];
|
||
const a = u.push("inline", "", 0);
|
||
return (
|
||
(a.content = i),
|
||
(a.map = [e, u.line]),
|
||
(a.children = []),
|
||
u.push("paragraph_close", "p", -1),
|
||
(u.parentType = c),
|
||
!0
|
||
);
|
||
}
|
||
const xu = [
|
||
["table", pt, ["paragraph", "reference"]],
|
||
["code", _t],
|
||
["fence", mt, ["paragraph", "reference", "blockquote", "list"]],
|
||
["blockquote", xt, ["paragraph", "reference", "blockquote", "list"]],
|
||
["hr", kt, ["paragraph", "reference", "blockquote", "list"]],
|
||
["list", yt, ["paragraph", "reference", "blockquote"]],
|
||
["reference", Ct],
|
||
["html_block", Lt, ["paragraph", "reference", "blockquote"]],
|
||
["heading", Rt, ["paragraph", "reference", "blockquote"]],
|
||
["lheading", Pt],
|
||
["paragraph", Bt],
|
||
];
|
||
function Eu() {
|
||
this.ruler = new R();
|
||
for (let u = 0; u < xu.length; u++)
|
||
this.ruler.push(xu[u][0], xu[u][1], { alt: (xu[u][2] || []).slice() });
|
||
}
|
||
Eu.prototype.tokenize = function (u, e, t) {
|
||
const n = this.ruler.getRules(""),
|
||
c = n.length,
|
||
r = u.md.options.maxNesting;
|
||
let i = e,
|
||
o = !1;
|
||
for (
|
||
;
|
||
i < t &&
|
||
((u.line = i = u.skipEmptyLines(i)),
|
||
!(i >= t || u.sCount[i] < u.blkIndent));
|
||
|
||
) {
|
||
if (u.level >= r) {
|
||
u.line = t;
|
||
break;
|
||
}
|
||
const a = u.line;
|
||
let s = !1;
|
||
for (let l = 0; l < c; l++)
|
||
if (((s = n[l](u, i, t, !1)), s)) {
|
||
if (a >= u.line)
|
||
throw new Error("block rule didn't increment state.line");
|
||
break;
|
||
}
|
||
if (!s) throw new Error("none of the block rules matched");
|
||
(u.tight = !o),
|
||
u.isEmpty(u.line - 1) && (o = !0),
|
||
(i = u.line),
|
||
i < t && u.isEmpty(i) && ((o = !0), i++, (u.line = i));
|
||
}
|
||
};
|
||
Eu.prototype.parse = function (u, e, t, n) {
|
||
if (!u) return;
|
||
const c = new this.State(u, e, t, n);
|
||
this.tokenize(c, c.line, c.lineMax);
|
||
};
|
||
Eu.prototype.State = Q;
|
||
function hu(u, e, t, n) {
|
||
(this.src = u),
|
||
(this.env = t),
|
||
(this.md = e),
|
||
(this.tokens = n),
|
||
(this.tokens_meta = Array(n.length)),
|
||
(this.pos = 0),
|
||
(this.posMax = this.src.length),
|
||
(this.level = 0),
|
||
(this.pending = ""),
|
||
(this.pendingLevel = 0),
|
||
(this.cache = {}),
|
||
(this.delimiters = []),
|
||
(this._prev_delimiters = []),
|
||
(this.backticks = {}),
|
||
(this.backticksScanned = !1),
|
||
(this.linkLevel = 0);
|
||
}
|
||
hu.prototype.pushPending = function () {
|
||
const u = new j("text", "", 0);
|
||
return (
|
||
(u.content = this.pending),
|
||
(u.level = this.pendingLevel),
|
||
this.tokens.push(u),
|
||
(this.pending = ""),
|
||
u
|
||
);
|
||
};
|
||
hu.prototype.push = function (u, e, t) {
|
||
this.pending && this.pushPending();
|
||
const n = new j(u, e, t);
|
||
let c = null;
|
||
return (
|
||
t < 0 &&
|
||
(this.level--, (this.delimiters = this._prev_delimiters.pop())),
|
||
(n.level = this.level),
|
||
t > 0 &&
|
||
(this.level++,
|
||
this._prev_delimiters.push(this.delimiters),
|
||
(this.delimiters = []),
|
||
(c = { delimiters: this.delimiters })),
|
||
(this.pendingLevel = this.level),
|
||
this.tokens.push(n),
|
||
this.tokens_meta.push(c),
|
||
n
|
||
);
|
||
};
|
||
hu.prototype.scanDelims = function (u, e) {
|
||
let t,
|
||
n,
|
||
c = !0,
|
||
r = !0;
|
||
const i = this.posMax,
|
||
o = this.src.charCodeAt(u),
|
||
a = u > 0 ? this.src.charCodeAt(u - 1) : 32;
|
||
let s = u;
|
||
for (; s < i && this.src.charCodeAt(s) === o; ) s++;
|
||
const l = s - u,
|
||
f = s < i ? this.src.charCodeAt(s) : 32,
|
||
p = lu(a) || su(String.fromCharCode(a)),
|
||
h = lu(f) || su(String.fromCharCode(f)),
|
||
d = au(a),
|
||
_ = au(f);
|
||
return (
|
||
_ ? (c = !1) : h && (d || p || (c = !1)),
|
||
d ? (r = !1) : p && (_ || h || (r = !1)),
|
||
e ? ((t = c), (n = r)) : ((t = c && (!r || p)), (n = r && (!c || h))),
|
||
{ can_open: t, can_close: n, length: l }
|
||
);
|
||
};
|
||
hu.prototype.Token = j;
|
||
function $t(u) {
|
||
switch (u) {
|
||
case 10:
|
||
case 33:
|
||
case 35:
|
||
case 36:
|
||
case 37:
|
||
case 38:
|
||
case 42:
|
||
case 43:
|
||
case 45:
|
||
case 58:
|
||
case 60:
|
||
case 61:
|
||
case 62:
|
||
case 64:
|
||
case 91:
|
||
case 92:
|
||
case 93:
|
||
case 94:
|
||
case 95:
|
||
case 96:
|
||
case 123:
|
||
case 125:
|
||
case 126:
|
||
return !0;
|
||
default:
|
||
return !1;
|
||
}
|
||
}
|
||
function Ot(u, e) {
|
||
let t = u.pos;
|
||
for (; t < u.posMax && !$t(u.src.charCodeAt(t)); ) t++;
|
||
return t === u.pos
|
||
? !1
|
||
: (e || (u.pending += u.src.slice(u.pos, t)), (u.pos = t), !0);
|
||
}
|
||
const jt = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;
|
||
function Ut(u, e) {
|
||
if (!u.md.options.linkify || u.linkLevel > 0) return !1;
|
||
const t = u.pos,
|
||
n = u.posMax;
|
||
if (
|
||
t + 3 > n ||
|
||
u.src.charCodeAt(t) !== 58 ||
|
||
u.src.charCodeAt(t + 1) !== 47 ||
|
||
u.src.charCodeAt(t + 2) !== 47
|
||
)
|
||
return !1;
|
||
const c = u.pending.match(jt);
|
||
if (!c) return !1;
|
||
const r = c[1],
|
||
i = u.md.linkify.matchAtStart(u.src.slice(t - r.length));
|
||
if (!i) return !1;
|
||
let o = i.url;
|
||
if (o.length <= r.length) return !1;
|
||
o = o.replace(/\*+$/, "");
|
||
const a = u.md.normalizeLink(o);
|
||
if (!u.md.validateLink(a)) return !1;
|
||
if (!e) {
|
||
u.pending = u.pending.slice(0, -r.length);
|
||
const s = u.push("link_open", "a", 1);
|
||
(s.attrs = [["href", a]]), (s.markup = "linkify"), (s.info = "auto");
|
||
const l = u.push("text", "", 0);
|
||
l.content = u.md.normalizeLinkText(o);
|
||
const f = u.push("link_close", "a", -1);
|
||
(f.markup = "linkify"), (f.info = "auto");
|
||
}
|
||
return (u.pos += o.length - r.length), !0;
|
||
}
|
||
function Zt(u, e) {
|
||
let t = u.pos;
|
||
if (u.src.charCodeAt(t) !== 10) return !1;
|
||
const n = u.pending.length - 1,
|
||
c = u.posMax;
|
||
if (!e)
|
||
if (n >= 0 && u.pending.charCodeAt(n) === 32)
|
||
if (n >= 1 && u.pending.charCodeAt(n - 1) === 32) {
|
||
let r = n - 1;
|
||
for (; r >= 1 && u.pending.charCodeAt(r - 1) === 32; ) r--;
|
||
(u.pending = u.pending.slice(0, r)),
|
||
u.push("hardbreak", "br", 0);
|
||
} else
|
||
(u.pending = u.pending.slice(0, -1)),
|
||
u.push("softbreak", "br", 0);
|
||
else u.push("softbreak", "br", 0);
|
||
for (t++; t < c && S(u.src.charCodeAt(t)); ) t++;
|
||
return (u.pos = t), !0;
|
||
}
|
||
const Hu = [];
|
||
for (let u = 0; u < 256; u++) Hu.push(0);
|
||
"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function (u) {
|
||
Hu[u.charCodeAt(0)] = 1;
|
||
});
|
||
function Ht(u, e) {
|
||
let t = u.pos;
|
||
const n = u.posMax;
|
||
if (u.src.charCodeAt(t) !== 92 || (t++, t >= n)) return !1;
|
||
let c = u.src.charCodeAt(t);
|
||
if (c === 10) {
|
||
for (
|
||
e || u.push("hardbreak", "br", 0), t++;
|
||
t < n && ((c = u.src.charCodeAt(t)), !!S(c));
|
||
|
||
)
|
||
t++;
|
||
return (u.pos = t), !0;
|
||
}
|
||
let r = u.src[t];
|
||
if (c >= 55296 && c <= 56319 && t + 1 < n) {
|
||
const o = u.src.charCodeAt(t + 1);
|
||
o >= 56320 && o <= 57343 && ((r += u.src[t + 1]), t++);
|
||
}
|
||
const i = "\\" + r;
|
||
if (!e) {
|
||
const o = u.push("text_special", "", 0);
|
||
c < 256 && Hu[c] !== 0 ? (o.content = r) : (o.content = i),
|
||
(o.markup = i),
|
||
(o.info = "escape");
|
||
}
|
||
return (u.pos = t + 1), !0;
|
||
}
|
||
function Vt(u, e) {
|
||
let t = u.pos;
|
||
if (u.src.charCodeAt(t) !== 96) return !1;
|
||
const c = t;
|
||
t++;
|
||
const r = u.posMax;
|
||
for (; t < r && u.src.charCodeAt(t) === 96; ) t++;
|
||
const i = u.src.slice(c, t),
|
||
o = i.length;
|
||
if (u.backticksScanned && (u.backticks[o] || 0) <= c)
|
||
return e || (u.pending += i), (u.pos += o), !0;
|
||
let a = t,
|
||
s;
|
||
for (; (s = u.src.indexOf("`", a)) !== -1; ) {
|
||
for (a = s + 1; a < r && u.src.charCodeAt(a) === 96; ) a++;
|
||
const l = a - s;
|
||
if (l === o) {
|
||
if (!e) {
|
||
const f = u.push("code_inline", "code", 0);
|
||
(f.markup = i),
|
||
(f.content = u.src
|
||
.slice(t, s)
|
||
.replace(/\n/g, " ")
|
||
.replace(/^ (.+) $/, "$1"));
|
||
}
|
||
return (u.pos = a), !0;
|
||
}
|
||
u.backticks[l] = s;
|
||
}
|
||
return (u.backticksScanned = !0), e || (u.pending += i), (u.pos += o), !0;
|
||
}
|
||
function Gt(u, e) {
|
||
const t = u.pos,
|
||
n = u.src.charCodeAt(t);
|
||
if (e || n !== 126) return !1;
|
||
const c = u.scanDelims(u.pos, !0);
|
||
let r = c.length;
|
||
const i = String.fromCharCode(n);
|
||
if (r < 2) return !1;
|
||
let o;
|
||
r % 2 && ((o = u.push("text", "", 0)), (o.content = i), r--);
|
||
for (let a = 0; a < r; a += 2)
|
||
(o = u.push("text", "", 0)),
|
||
(o.content = i + i),
|
||
u.delimiters.push({
|
||
marker: n,
|
||
length: 0,
|
||
token: u.tokens.length - 1,
|
||
end: -1,
|
||
open: c.can_open,
|
||
close: c.can_close,
|
||
});
|
||
return (u.pos += c.length), !0;
|
||
}
|
||
function ae(u, e) {
|
||
let t;
|
||
const n = [],
|
||
c = e.length;
|
||
for (let r = 0; r < c; r++) {
|
||
const i = e[r];
|
||
if (i.marker !== 126 || i.end === -1) continue;
|
||
const o = e[i.end];
|
||
(t = u.tokens[i.token]),
|
||
(t.type = "s_open"),
|
||
(t.tag = "s"),
|
||
(t.nesting = 1),
|
||
(t.markup = "~~"),
|
||
(t.content = ""),
|
||
(t = u.tokens[o.token]),
|
||
(t.type = "s_close"),
|
||
(t.tag = "s"),
|
||
(t.nesting = -1),
|
||
(t.markup = "~~"),
|
||
(t.content = ""),
|
||
u.tokens[o.token - 1].type === "text" &&
|
||
u.tokens[o.token - 1].content === "~" &&
|
||
n.push(o.token - 1);
|
||
}
|
||
for (; n.length; ) {
|
||
const r = n.pop();
|
||
let i = r + 1;
|
||
for (; i < u.tokens.length && u.tokens[i].type === "s_close"; ) i++;
|
||
i--,
|
||
r !== i &&
|
||
((t = u.tokens[i]),
|
||
(u.tokens[i] = u.tokens[r]),
|
||
(u.tokens[r] = t));
|
||
}
|
||
}
|
||
function Qt(u) {
|
||
const e = u.tokens_meta,
|
||
t = u.tokens_meta.length;
|
||
ae(u, u.delimiters);
|
||
for (let n = 0; n < t; n++)
|
||
e[n] && e[n].delimiters && ae(u, e[n].delimiters);
|
||
}
|
||
const Fe = { tokenize: Gt, postProcess: Qt };
|
||
function Wt(u, e) {
|
||
const t = u.pos,
|
||
n = u.src.charCodeAt(t);
|
||
if (e || (n !== 95 && n !== 42)) return !1;
|
||
const c = u.scanDelims(u.pos, n === 42);
|
||
for (let r = 0; r < c.length; r++) {
|
||
const i = u.push("text", "", 0);
|
||
(i.content = String.fromCharCode(n)),
|
||
u.delimiters.push({
|
||
marker: n,
|
||
length: c.length,
|
||
token: u.tokens.length - 1,
|
||
end: -1,
|
||
open: c.can_open,
|
||
close: c.can_close,
|
||
});
|
||
}
|
||
return (u.pos += c.length), !0;
|
||
}
|
||
function se(u, e) {
|
||
const t = e.length;
|
||
for (let n = t - 1; n >= 0; n--) {
|
||
const c = e[n];
|
||
if ((c.marker !== 95 && c.marker !== 42) || c.end === -1) continue;
|
||
const r = e[c.end],
|
||
i =
|
||
n > 0 &&
|
||
e[n - 1].end === c.end + 1 &&
|
||
e[n - 1].marker === c.marker &&
|
||
e[n - 1].token === c.token - 1 &&
|
||
e[c.end + 1].token === r.token + 1,
|
||
o = String.fromCharCode(c.marker),
|
||
a = u.tokens[c.token];
|
||
(a.type = i ? "strong_open" : "em_open"),
|
||
(a.tag = i ? "strong" : "em"),
|
||
(a.nesting = 1),
|
||
(a.markup = i ? o + o : o),
|
||
(a.content = "");
|
||
const s = u.tokens[r.token];
|
||
(s.type = i ? "strong_close" : "em_close"),
|
||
(s.tag = i ? "strong" : "em"),
|
||
(s.nesting = -1),
|
||
(s.markup = i ? o + o : o),
|
||
(s.content = ""),
|
||
i &&
|
||
((u.tokens[e[n - 1].token].content = ""),
|
||
(u.tokens[e[c.end + 1].token].content = ""),
|
||
n--);
|
||
}
|
||
}
|
||
function Jt(u) {
|
||
const e = u.tokens_meta,
|
||
t = u.tokens_meta.length;
|
||
se(u, u.delimiters);
|
||
for (let n = 0; n < t; n++)
|
||
e[n] && e[n].delimiters && se(u, e[n].delimiters);
|
||
}
|
||
const Se = { tokenize: Wt, postProcess: Jt };
|
||
function Yt(u, e) {
|
||
let t,
|
||
n,
|
||
c,
|
||
r,
|
||
i = "",
|
||
o = "",
|
||
a = u.pos,
|
||
s = !0;
|
||
if (u.src.charCodeAt(u.pos) !== 91) return !1;
|
||
const l = u.pos,
|
||
f = u.posMax,
|
||
p = u.pos + 1,
|
||
h = u.md.helpers.parseLinkLabel(u, u.pos, !0);
|
||
if (h < 0) return !1;
|
||
let d = h + 1;
|
||
if (d < f && u.src.charCodeAt(d) === 40) {
|
||
for (
|
||
s = !1, d++;
|
||
d < f && ((t = u.src.charCodeAt(d)), !(!S(t) && t !== 10));
|
||
d++
|
||
);
|
||
if (d >= f) return !1;
|
||
if (
|
||
((a = d),
|
||
(c = u.md.helpers.parseLinkDestination(u.src, d, u.posMax)),
|
||
c.ok)
|
||
) {
|
||
for (
|
||
i = u.md.normalizeLink(c.str),
|
||
u.md.validateLink(i) ? (d = c.pos) : (i = ""),
|
||
a = d;
|
||
d < f && ((t = u.src.charCodeAt(d)), !(!S(t) && t !== 10));
|
||
d++
|
||
);
|
||
if (
|
||
((c = u.md.helpers.parseLinkTitle(u.src, d, u.posMax)),
|
||
d < f && a !== d && c.ok)
|
||
)
|
||
for (
|
||
o = c.str, d = c.pos;
|
||
d < f && ((t = u.src.charCodeAt(d)), !(!S(t) && t !== 10));
|
||
d++
|
||
);
|
||
}
|
||
(d >= f || u.src.charCodeAt(d) !== 41) && (s = !0), d++;
|
||
}
|
||
if (s) {
|
||
if (typeof u.env.references == "undefined") return !1;
|
||
if (
|
||
(d < f && u.src.charCodeAt(d) === 91
|
||
? ((a = d + 1),
|
||
(d = u.md.helpers.parseLinkLabel(u, d)),
|
||
d >= 0 ? (n = u.src.slice(a, d++)) : (d = h + 1))
|
||
: (d = h + 1),
|
||
n || (n = u.src.slice(p, h)),
|
||
(r = u.env.references[Au(n)]),
|
||
!r)
|
||
)
|
||
return (u.pos = l), !1;
|
||
(i = r.href), (o = r.title);
|
||
}
|
||
if (!e) {
|
||
(u.pos = p), (u.posMax = h);
|
||
const _ = u.push("link_open", "a", 1),
|
||
y = [["href", i]];
|
||
(_.attrs = y),
|
||
o && y.push(["title", o]),
|
||
u.linkLevel++,
|
||
u.md.inline.tokenize(u),
|
||
u.linkLevel--,
|
||
u.push("link_close", "a", -1);
|
||
}
|
||
return (u.pos = d), (u.posMax = f), !0;
|
||
}
|
||
function Xt(u, e) {
|
||
let t,
|
||
n,
|
||
c,
|
||
r,
|
||
i,
|
||
o,
|
||
a,
|
||
s,
|
||
l = "";
|
||
const f = u.pos,
|
||
p = u.posMax;
|
||
if (u.src.charCodeAt(u.pos) !== 33 || u.src.charCodeAt(u.pos + 1) !== 91)
|
||
return !1;
|
||
const h = u.pos + 2,
|
||
d = u.md.helpers.parseLinkLabel(u, u.pos + 1, !1);
|
||
if (d < 0) return !1;
|
||
if (((r = d + 1), r < p && u.src.charCodeAt(r) === 40)) {
|
||
for (
|
||
r++;
|
||
r < p && ((t = u.src.charCodeAt(r)), !(!S(t) && t !== 10));
|
||
r++
|
||
);
|
||
if (r >= p) return !1;
|
||
for (
|
||
s = r,
|
||
o = u.md.helpers.parseLinkDestination(u.src, r, u.posMax),
|
||
o.ok &&
|
||
((l = u.md.normalizeLink(o.str)),
|
||
u.md.validateLink(l) ? (r = o.pos) : (l = "")),
|
||
s = r;
|
||
r < p && ((t = u.src.charCodeAt(r)), !(!S(t) && t !== 10));
|
||
r++
|
||
);
|
||
if (
|
||
((o = u.md.helpers.parseLinkTitle(u.src, r, u.posMax)),
|
||
r < p && s !== r && o.ok)
|
||
)
|
||
for (
|
||
a = o.str, r = o.pos;
|
||
r < p && ((t = u.src.charCodeAt(r)), !(!S(t) && t !== 10));
|
||
r++
|
||
);
|
||
else a = "";
|
||
if (r >= p || u.src.charCodeAt(r) !== 41) return (u.pos = f), !1;
|
||
r++;
|
||
} else {
|
||
if (typeof u.env.references == "undefined") return !1;
|
||
if (
|
||
(r < p && u.src.charCodeAt(r) === 91
|
||
? ((s = r + 1),
|
||
(r = u.md.helpers.parseLinkLabel(u, r)),
|
||
r >= 0 ? (c = u.src.slice(s, r++)) : (r = d + 1))
|
||
: (r = d + 1),
|
||
c || (c = u.src.slice(h, d)),
|
||
(i = u.env.references[Au(c)]),
|
||
!i)
|
||
)
|
||
return (u.pos = f), !1;
|
||
(l = i.href), (a = i.title);
|
||
}
|
||
if (!e) {
|
||
n = u.src.slice(h, d);
|
||
const _ = [];
|
||
u.md.inline.parse(n, u.md, u.env, _);
|
||
const y = u.push("image", "img", 0),
|
||
D = [
|
||
["src", l],
|
||
["alt", ""],
|
||
];
|
||
(y.attrs = D),
|
||
(y.children = _),
|
||
(y.content = n),
|
||
a && D.push(["title", a]);
|
||
}
|
||
return (u.pos = r), (u.posMax = p), !0;
|
||
}
|
||
const Kt =
|
||
/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,
|
||
ur = /^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;
|
||
function er(u, e) {
|
||
let t = u.pos;
|
||
if (u.src.charCodeAt(t) !== 60) return !1;
|
||
const n = u.pos,
|
||
c = u.posMax;
|
||
for (;;) {
|
||
if (++t >= c) return !1;
|
||
const i = u.src.charCodeAt(t);
|
||
if (i === 60) return !1;
|
||
if (i === 62) break;
|
||
}
|
||
const r = u.src.slice(n + 1, t);
|
||
if (ur.test(r)) {
|
||
const i = u.md.normalizeLink(r);
|
||
if (!u.md.validateLink(i)) return !1;
|
||
if (!e) {
|
||
const o = u.push("link_open", "a", 1);
|
||
(o.attrs = [["href", i]]),
|
||
(o.markup = "autolink"),
|
||
(o.info = "auto");
|
||
const a = u.push("text", "", 0);
|
||
a.content = u.md.normalizeLinkText(r);
|
||
const s = u.push("link_close", "a", -1);
|
||
(s.markup = "autolink"), (s.info = "auto");
|
||
}
|
||
return (u.pos += r.length + 2), !0;
|
||
}
|
||
if (Kt.test(r)) {
|
||
const i = u.md.normalizeLink("mailto:" + r);
|
||
if (!u.md.validateLink(i)) return !1;
|
||
if (!e) {
|
||
const o = u.push("link_open", "a", 1);
|
||
(o.attrs = [["href", i]]),
|
||
(o.markup = "autolink"),
|
||
(o.info = "auto");
|
||
const a = u.push("text", "", 0);
|
||
a.content = u.md.normalizeLinkText(r);
|
||
const s = u.push("link_close", "a", -1);
|
||
(s.markup = "autolink"), (s.info = "auto");
|
||
}
|
||
return (u.pos += r.length + 2), !0;
|
||
}
|
||
return !1;
|
||
}
|
||
function tr(u) {
|
||
return /^<a[>\s]/i.test(u);
|
||
}
|
||
function rr(u) {
|
||
return /^<\/a\s*>/i.test(u);
|
||
}
|
||
function nr(u) {
|
||
const e = u | 32;
|
||
return e >= 97 && e <= 122;
|
||
}
|
||
function cr(u, e) {
|
||
if (!u.md.options.html) return !1;
|
||
const t = u.posMax,
|
||
n = u.pos;
|
||
if (u.src.charCodeAt(n) !== 60 || n + 2 >= t) return !1;
|
||
const c = u.src.charCodeAt(n + 1);
|
||
if (c !== 33 && c !== 63 && c !== 47 && !nr(c)) return !1;
|
||
const r = u.src.slice(n).match(Mt);
|
||
if (!r) return !1;
|
||
if (!e) {
|
||
const i = u.push("html_inline", "", 0);
|
||
(i.content = r[0]),
|
||
tr(i.content) && u.linkLevel++,
|
||
rr(i.content) && u.linkLevel--;
|
||
}
|
||
return (u.pos += r[0].length), !0;
|
||
}
|
||
const or = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,
|
||
ir = /^&([a-z][a-z0-9]{1,31});/i;
|
||
function ar(u, e) {
|
||
const t = u.pos,
|
||
n = u.posMax;
|
||
if (u.src.charCodeAt(t) !== 38 || t + 1 >= n) return !1;
|
||
if (u.src.charCodeAt(t + 1) === 35) {
|
||
const r = u.src.slice(t).match(or);
|
||
if (r) {
|
||
if (!e) {
|
||
const i =
|
||
r[1][0].toLowerCase() === "x"
|
||
? parseInt(r[1].slice(1), 16)
|
||
: parseInt(r[1], 10),
|
||
o = u.push("text_special", "", 0);
|
||
(o.content = Uu(i) ? gu(i) : gu(65533)),
|
||
(o.markup = r[0]),
|
||
(o.info = "entity");
|
||
}
|
||
return (u.pos += r[0].length), !0;
|
||
}
|
||
} else {
|
||
const r = u.src.slice(t).match(ir);
|
||
if (r) {
|
||
const i = ye(r[0]);
|
||
if (i !== r[0]) {
|
||
if (!e) {
|
||
const o = u.push("text_special", "", 0);
|
||
(o.content = i), (o.markup = r[0]), (o.info = "entity");
|
||
}
|
||
return (u.pos += r[0].length), !0;
|
||
}
|
||
}
|
||
}
|
||
return !1;
|
||
}
|
||
function le(u) {
|
||
const e = {},
|
||
t = u.length;
|
||
if (!t) return;
|
||
let n = 0,
|
||
c = -2;
|
||
const r = [];
|
||
for (let i = 0; i < t; i++) {
|
||
const o = u[i];
|
||
if (
|
||
(r.push(0),
|
||
(u[n].marker !== o.marker || c !== o.token - 1) && (n = i),
|
||
(c = o.token),
|
||
(o.length = o.length || 0),
|
||
!o.close)
|
||
)
|
||
continue;
|
||
e.hasOwnProperty(o.marker) || (e[o.marker] = [-1, -1, -1, -1, -1, -1]);
|
||
const a = e[o.marker][(o.open ? 3 : 0) + (o.length % 3)];
|
||
let s = n - r[n] - 1,
|
||
l = s;
|
||
for (; s > a; s -= r[s] + 1) {
|
||
const f = u[s];
|
||
if (f.marker === o.marker && f.open && f.end < 0) {
|
||
let p = !1;
|
||
if (
|
||
((f.close || o.open) &&
|
||
(f.length + o.length) % 3 === 0 &&
|
||
(f.length % 3 !== 0 || o.length % 3 !== 0) &&
|
||
(p = !0),
|
||
!p)
|
||
) {
|
||
const h = s > 0 && !u[s - 1].open ? r[s - 1] + 1 : 0;
|
||
(r[i] = i - s + h),
|
||
(r[s] = h),
|
||
(o.open = !1),
|
||
(f.end = i),
|
||
(f.close = !1),
|
||
(l = -1),
|
||
(c = -2);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
l !== -1 && (e[o.marker][(o.open ? 3 : 0) + ((o.length || 0) % 3)] = l);
|
||
}
|
||
}
|
||
function sr(u) {
|
||
const e = u.tokens_meta,
|
||
t = u.tokens_meta.length;
|
||
le(u.delimiters);
|
||
for (let n = 0; n < t; n++) e[n] && e[n].delimiters && le(e[n].delimiters);
|
||
}
|
||
function lr(u) {
|
||
let e,
|
||
t,
|
||
n = 0;
|
||
const c = u.tokens,
|
||
r = u.tokens.length;
|
||
for (e = t = 0; e < r; e++)
|
||
c[e].nesting < 0 && n--,
|
||
(c[e].level = n),
|
||
c[e].nesting > 0 && n++,
|
||
c[e].type === "text" && e + 1 < r && c[e + 1].type === "text"
|
||
? (c[e + 1].content = c[e].content + c[e + 1].content)
|
||
: (e !== t && (c[t] = c[e]), t++);
|
||
e !== t && (c.length = t);
|
||
}
|
||
const qu = [
|
||
["text", Ot],
|
||
["linkify", Ut],
|
||
["newline", Zt],
|
||
["escape", Ht],
|
||
["backticks", Vt],
|
||
["strikethrough", Fe.tokenize],
|
||
["emphasis", Se.tokenize],
|
||
["link", Yt],
|
||
["image", Xt],
|
||
["autolink", er],
|
||
["html_inline", cr],
|
||
["entity", ar],
|
||
],
|
||
Tu = [
|
||
["balance_pairs", sr],
|
||
["strikethrough", Fe.postProcess],
|
||
["emphasis", Se.postProcess],
|
||
["fragments_join", lr],
|
||
];
|
||
function bu() {
|
||
this.ruler = new R();
|
||
for (let u = 0; u < qu.length; u++) this.ruler.push(qu[u][0], qu[u][1]);
|
||
this.ruler2 = new R();
|
||
for (let u = 0; u < Tu.length; u++) this.ruler2.push(Tu[u][0], Tu[u][1]);
|
||
}
|
||
bu.prototype.skipToken = function (u) {
|
||
const e = u.pos,
|
||
t = this.ruler.getRules(""),
|
||
n = t.length,
|
||
c = u.md.options.maxNesting,
|
||
r = u.cache;
|
||
if (typeof r[e] != "undefined") {
|
||
u.pos = r[e];
|
||
return;
|
||
}
|
||
let i = !1;
|
||
if (u.level < c) {
|
||
for (let o = 0; o < n; o++)
|
||
if ((u.level++, (i = t[o](u, !0)), u.level--, i)) {
|
||
if (e >= u.pos)
|
||
throw new Error("inline rule didn't increment state.pos");
|
||
break;
|
||
}
|
||
} else u.pos = u.posMax;
|
||
i || u.pos++, (r[e] = u.pos);
|
||
};
|
||
bu.prototype.tokenize = function (u) {
|
||
const e = this.ruler.getRules(""),
|
||
t = e.length,
|
||
n = u.posMax,
|
||
c = u.md.options.maxNesting;
|
||
for (; u.pos < n; ) {
|
||
const r = u.pos;
|
||
let i = !1;
|
||
if (u.level < c) {
|
||
for (let o = 0; o < t; o++)
|
||
if (((i = e[o](u, !1)), i)) {
|
||
if (r >= u.pos)
|
||
throw new Error(
|
||
"inline rule didn't increment state.pos"
|
||
);
|
||
break;
|
||
}
|
||
}
|
||
if (i) {
|
||
if (u.pos >= n) break;
|
||
continue;
|
||
}
|
||
u.pending += u.src[u.pos++];
|
||
}
|
||
u.pending && u.pushPending();
|
||
};
|
||
bu.prototype.parse = function (u, e, t, n) {
|
||
const c = new this.State(u, e, t, n);
|
||
this.tokenize(c);
|
||
const r = this.ruler2.getRules(""),
|
||
i = r.length;
|
||
for (let o = 0; o < i; o++) r[o](c);
|
||
};
|
||
bu.prototype.State = hu;
|
||
function fr(u) {
|
||
const e = {};
|
||
(u = u || {}),
|
||
(e.src_Any = me.source),
|
||
(e.src_Cc = xe.source),
|
||
(e.src_Z = ke.source),
|
||
(e.src_P = Ou.source),
|
||
(e.src_ZPCc = [e.src_Z, e.src_P, e.src_Cc].join("|")),
|
||
(e.src_ZCc = [e.src_Z, e.src_Cc].join("|"));
|
||
const t = "[><|]";
|
||
return (
|
||
(e.src_pseudo_letter =
|
||
"(?:(?!" + t + "|" + e.src_ZPCc + ")" + e.src_Any + ")"),
|
||
(e.src_ip4 =
|
||
"(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"),
|
||
(e.src_auth = "(?:(?:(?!" + e.src_ZCc + "|[@/\\[\\]()]).)+@)?"),
|
||
(e.src_port =
|
||
"(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?"),
|
||
(e.src_host_terminator =
|
||
"(?=$|" +
|
||
t +
|
||
"|" +
|
||
e.src_ZPCc +
|
||
")(?!" +
|
||
(u["---"] ? "-(?!--)|" : "-|") +
|
||
"_|:\\d|\\.-|\\.(?!$|" +
|
||
e.src_ZPCc +
|
||
"))"),
|
||
(e.src_path =
|
||
"(?:[/?#](?:(?!" +
|
||
e.src_ZCc +
|
||
"|" +
|
||
t +
|
||
`|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!` +
|
||
e.src_ZCc +
|
||
"|\\]).)*\\]|\\((?:(?!" +
|
||
e.src_ZCc +
|
||
"|[)]).)*\\)|\\{(?:(?!" +
|
||
e.src_ZCc +
|
||
'|[}]).)*\\}|\\"(?:(?!' +
|
||
e.src_ZCc +
|
||
`|["]).)+\\"|\\'(?:(?!` +
|
||
e.src_ZCc +
|
||
"|[']).)+\\'|\\'(?=" +
|
||
e.src_pseudo_letter +
|
||
"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!" +
|
||
e.src_ZCc +
|
||
"|[.]|$)|" +
|
||
(u["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") +
|
||
",(?!" +
|
||
e.src_ZCc +
|
||
"|$)|;(?!" +
|
||
e.src_ZCc +
|
||
"|$)|\\!+(?!" +
|
||
e.src_ZCc +
|
||
"|[!]|$)|\\?(?!" +
|
||
e.src_ZCc +
|
||
"|[?]|$))+|\\/)?"),
|
||
(e.src_email_name =
|
||
'[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*'),
|
||
(e.src_xn = "xn--[a-z0-9\\-]{1,59}"),
|
||
(e.src_domain_root =
|
||
"(?:" + e.src_xn + "|" + e.src_pseudo_letter + "{1,63})"),
|
||
(e.src_domain =
|
||
"(?:" +
|
||
e.src_xn +
|
||
"|(?:" +
|
||
e.src_pseudo_letter +
|
||
")|(?:" +
|
||
e.src_pseudo_letter +
|
||
"(?:-|" +
|
||
e.src_pseudo_letter +
|
||
"){0,61}" +
|
||
e.src_pseudo_letter +
|
||
"))"),
|
||
(e.src_host =
|
||
"(?:(?:(?:(?:" + e.src_domain + ")\\.)*" + e.src_domain + "))"),
|
||
(e.tpl_host_fuzzy =
|
||
"(?:" +
|
||
e.src_ip4 +
|
||
"|(?:(?:(?:" +
|
||
e.src_domain +
|
||
")\\.)+(?:%TLDS%)))"),
|
||
(e.tpl_host_no_ip_fuzzy =
|
||
"(?:(?:(?:" + e.src_domain + ")\\.)+(?:%TLDS%))"),
|
||
(e.src_host_strict = e.src_host + e.src_host_terminator),
|
||
(e.tpl_host_fuzzy_strict = e.tpl_host_fuzzy + e.src_host_terminator),
|
||
(e.src_host_port_strict =
|
||
e.src_host + e.src_port + e.src_host_terminator),
|
||
(e.tpl_host_port_fuzzy_strict =
|
||
e.tpl_host_fuzzy + e.src_port + e.src_host_terminator),
|
||
(e.tpl_host_port_no_ip_fuzzy_strict =
|
||
e.tpl_host_no_ip_fuzzy + e.src_port + e.src_host_terminator),
|
||
(e.tpl_host_fuzzy_test =
|
||
"localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:" +
|
||
e.src_ZPCc +
|
||
"|>|$))"),
|
||
(e.tpl_email_fuzzy =
|
||
"(^|" +
|
||
t +
|
||
'|"|\\(|' +
|
||
e.src_ZCc +
|
||
")(" +
|
||
e.src_email_name +
|
||
"@" +
|
||
e.tpl_host_fuzzy_strict +
|
||
")"),
|
||
(e.tpl_link_fuzzy =
|
||
"(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" +
|
||
e.src_ZPCc +
|
||
"))((?![$+<=>^`||])" +
|
||
e.tpl_host_port_fuzzy_strict +
|
||
e.src_path +
|
||
")"),
|
||
(e.tpl_link_no_ip_fuzzy =
|
||
"(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" +
|
||
e.src_ZPCc +
|
||
"))((?![$+<=>^`||])" +
|
||
e.tpl_host_port_no_ip_fuzzy_strict +
|
||
e.src_path +
|
||
")"),
|
||
e
|
||
);
|
||
}
|
||
function Lu(u) {
|
||
return (
|
||
Array.prototype.slice.call(arguments, 1).forEach(function (t) {
|
||
t &&
|
||
Object.keys(t).forEach(function (n) {
|
||
u[n] = t[n];
|
||
});
|
||
}),
|
||
u
|
||
);
|
||
}
|
||
function wu(u) {
|
||
return Object.prototype.toString.call(u);
|
||
}
|
||
function dr(u) {
|
||
return wu(u) === "[object String]";
|
||
}
|
||
function hr(u) {
|
||
return wu(u) === "[object Object]";
|
||
}
|
||
function br(u) {
|
||
return wu(u) === "[object RegExp]";
|
||
}
|
||
function fe(u) {
|
||
return wu(u) === "[object Function]";
|
||
}
|
||
function pr(u) {
|
||
return u.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&");
|
||
}
|
||
const ze = { fuzzyLink: !0, fuzzyEmail: !0, fuzzyIP: !1 };
|
||
function _r(u) {
|
||
return Object.keys(u || {}).reduce(function (e, t) {
|
||
return e || ze.hasOwnProperty(t);
|
||
}, !1);
|
||
}
|
||
const mr = {
|
||
"http:": {
|
||
validate: function (u, e, t) {
|
||
const n = u.slice(e);
|
||
return (
|
||
t.re.http ||
|
||
(t.re.http = new RegExp(
|
||
"^\\/\\/" +
|
||
t.re.src_auth +
|
||
t.re.src_host_port_strict +
|
||
t.re.src_path,
|
||
"i"
|
||
)),
|
||
t.re.http.test(n) ? n.match(t.re.http)[0].length : 0
|
||
);
|
||
},
|
||
},
|
||
"https:": "http:",
|
||
"ftp:": "http:",
|
||
"//": {
|
||
validate: function (u, e, t) {
|
||
const n = u.slice(e);
|
||
return (
|
||
t.re.no_http ||
|
||
(t.re.no_http = new RegExp(
|
||
"^" +
|
||
t.re.src_auth +
|
||
"(?:localhost|(?:(?:" +
|
||
t.re.src_domain +
|
||
")\\.)+" +
|
||
t.re.src_domain_root +
|
||
")" +
|
||
t.re.src_port +
|
||
t.re.src_host_terminator +
|
||
t.re.src_path,
|
||
"i"
|
||
)),
|
||
t.re.no_http.test(n)
|
||
? (e >= 3 && u[e - 3] === ":") ||
|
||
(e >= 3 && u[e - 3] === "/")
|
||
? 0
|
||
: n.match(t.re.no_http)[0].length
|
||
: 0
|
||
);
|
||
},
|
||
},
|
||
"mailto:": {
|
||
validate: function (u, e, t) {
|
||
const n = u.slice(e);
|
||
return (
|
||
t.re.mailto ||
|
||
(t.re.mailto = new RegExp(
|
||
"^" +
|
||
t.re.src_email_name +
|
||
"@" +
|
||
t.re.src_host_strict,
|
||
"i"
|
||
)),
|
||
t.re.mailto.test(n) ? n.match(t.re.mailto)[0].length : 0
|
||
);
|
||
},
|
||
},
|
||
},
|
||
xr =
|
||
"a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]",
|
||
kr =
|
||
"biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split(
|
||
"|"
|
||
);
|
||
function gr(u) {
|
||
(u.__index__ = -1), (u.__text_cache__ = "");
|
||
}
|
||
function yr(u) {
|
||
return function (e, t) {
|
||
const n = e.slice(t);
|
||
return u.test(n) ? n.match(u)[0].length : 0;
|
||
};
|
||
}
|
||
function de() {
|
||
return function (u, e) {
|
||
e.normalize(u);
|
||
};
|
||
}
|
||
function yu(u) {
|
||
const e = (u.re = fr(u.__opts__)),
|
||
t = u.__tlds__.slice();
|
||
u.onCompile(),
|
||
u.__tlds_replaced__ || t.push(xr),
|
||
t.push(e.src_xn),
|
||
(e.src_tlds = t.join("|"));
|
||
function n(o) {
|
||
return o.replace("%TLDS%", e.src_tlds);
|
||
}
|
||
(e.email_fuzzy = RegExp(n(e.tpl_email_fuzzy), "i")),
|
||
(e.link_fuzzy = RegExp(n(e.tpl_link_fuzzy), "i")),
|
||
(e.link_no_ip_fuzzy = RegExp(n(e.tpl_link_no_ip_fuzzy), "i")),
|
||
(e.host_fuzzy_test = RegExp(n(e.tpl_host_fuzzy_test), "i"));
|
||
const c = [];
|
||
u.__compiled__ = {};
|
||
function r(o, a) {
|
||
throw new Error('(LinkifyIt) Invalid schema "' + o + '": ' + a);
|
||
}
|
||
Object.keys(u.__schemas__).forEach(function (o) {
|
||
const a = u.__schemas__[o];
|
||
if (a === null) return;
|
||
const s = { validate: null, link: null };
|
||
if (((u.__compiled__[o] = s), hr(a))) {
|
||
br(a.validate)
|
||
? (s.validate = yr(a.validate))
|
||
: fe(a.validate)
|
||
? (s.validate = a.validate)
|
||
: r(o, a),
|
||
fe(a.normalize)
|
||
? (s.normalize = a.normalize)
|
||
: a.normalize
|
||
? r(o, a)
|
||
: (s.normalize = de());
|
||
return;
|
||
}
|
||
if (dr(a)) {
|
||
c.push(o);
|
||
return;
|
||
}
|
||
r(o, a);
|
||
}),
|
||
c.forEach(function (o) {
|
||
u.__compiled__[u.__schemas__[o]] &&
|
||
((u.__compiled__[o].validate =
|
||
u.__compiled__[u.__schemas__[o]].validate),
|
||
(u.__compiled__[o].normalize =
|
||
u.__compiled__[u.__schemas__[o]].normalize));
|
||
}),
|
||
(u.__compiled__[""] = { validate: null, normalize: de() });
|
||
const i = Object.keys(u.__compiled__)
|
||
.filter(function (o) {
|
||
return o.length > 0 && u.__compiled__[o];
|
||
})
|
||
.map(pr)
|
||
.join("|");
|
||
(u.re.schema_test = RegExp(
|
||
"(^|(?!_)(?:[><|]|" + e.src_ZPCc + "))(" + i + ")",
|
||
"i"
|
||
)),
|
||
(u.re.schema_search = RegExp(
|
||
"(^|(?!_)(?:[><|]|" + e.src_ZPCc + "))(" + i + ")",
|
||
"ig"
|
||
)),
|
||
(u.re.schema_at_start = RegExp("^" + u.re.schema_search.source, "i")),
|
||
(u.re.pretest = RegExp(
|
||
"(" +
|
||
u.re.schema_test.source +
|
||
")|(" +
|
||
u.re.host_fuzzy_test.source +
|
||
")|@",
|
||
"i"
|
||
)),
|
||
gr(u);
|
||
}
|
||
function Cr(u, e) {
|
||
const t = u.__index__,
|
||
n = u.__last_index__,
|
||
c = u.__text_cache__.slice(t, n);
|
||
(this.schema = u.__schema__.toLowerCase()),
|
||
(this.index = t + e),
|
||
(this.lastIndex = n + e),
|
||
(this.raw = c),
|
||
(this.text = c),
|
||
(this.url = c);
|
||
}
|
||
function Ru(u, e) {
|
||
const t = new Cr(u, e);
|
||
return u.__compiled__[t.schema].normalize(t, u), t;
|
||
}
|
||
function B(u, e) {
|
||
if (!(this instanceof B)) return new B(u, e);
|
||
e || (_r(u) && ((e = u), (u = {}))),
|
||
(this.__opts__ = Lu({}, ze, e)),
|
||
(this.__index__ = -1),
|
||
(this.__last_index__ = -1),
|
||
(this.__schema__ = ""),
|
||
(this.__text_cache__ = ""),
|
||
(this.__schemas__ = Lu({}, mr, u)),
|
||
(this.__compiled__ = {}),
|
||
(this.__tlds__ = kr),
|
||
(this.__tlds_replaced__ = !1),
|
||
(this.re = {}),
|
||
yu(this);
|
||
}
|
||
B.prototype.add = function (e, t) {
|
||
return (this.__schemas__[e] = t), yu(this), this;
|
||
};
|
||
B.prototype.set = function (e) {
|
||
return (this.__opts__ = Lu(this.__opts__, e)), this;
|
||
};
|
||
B.prototype.test = function (e) {
|
||
if (((this.__text_cache__ = e), (this.__index__ = -1), !e.length))
|
||
return !1;
|
||
let t, n, c, r, i, o, a, s, l;
|
||
if (this.re.schema_test.test(e)) {
|
||
for (
|
||
a = this.re.schema_search, a.lastIndex = 0;
|
||
(t = a.exec(e)) !== null;
|
||
|
||
)
|
||
if (((r = this.testSchemaAt(e, t[2], a.lastIndex)), r)) {
|
||
(this.__schema__ = t[2]),
|
||
(this.__index__ = t.index + t[1].length),
|
||
(this.__last_index__ = t.index + t[0].length + r);
|
||
break;
|
||
}
|
||
}
|
||
return (
|
||
this.__opts__.fuzzyLink &&
|
||
this.__compiled__["http:"] &&
|
||
((s = e.search(this.re.host_fuzzy_test)),
|
||
s >= 0 &&
|
||
(this.__index__ < 0 || s < this.__index__) &&
|
||
(n = e.match(
|
||
this.__opts__.fuzzyIP
|
||
? this.re.link_fuzzy
|
||
: this.re.link_no_ip_fuzzy
|
||
)) !== null &&
|
||
((i = n.index + n[1].length),
|
||
(this.__index__ < 0 || i < this.__index__) &&
|
||
((this.__schema__ = ""),
|
||
(this.__index__ = i),
|
||
(this.__last_index__ = n.index + n[0].length)))),
|
||
this.__opts__.fuzzyEmail &&
|
||
this.__compiled__["mailto:"] &&
|
||
((l = e.indexOf("@")),
|
||
l >= 0 &&
|
||
(c = e.match(this.re.email_fuzzy)) !== null &&
|
||
((i = c.index + c[1].length),
|
||
(o = c.index + c[0].length),
|
||
(this.__index__ < 0 ||
|
||
i < this.__index__ ||
|
||
(i === this.__index__ && o > this.__last_index__)) &&
|
||
((this.__schema__ = "mailto:"),
|
||
(this.__index__ = i),
|
||
(this.__last_index__ = o)))),
|
||
this.__index__ >= 0
|
||
);
|
||
};
|
||
B.prototype.pretest = function (e) {
|
||
return this.re.pretest.test(e);
|
||
};
|
||
B.prototype.testSchemaAt = function (e, t, n) {
|
||
return this.__compiled__[t.toLowerCase()]
|
||
? this.__compiled__[t.toLowerCase()].validate(e, n, this)
|
||
: 0;
|
||
};
|
||
B.prototype.match = function (e) {
|
||
const t = [];
|
||
let n = 0;
|
||
this.__index__ >= 0 &&
|
||
this.__text_cache__ === e &&
|
||
(t.push(Ru(this, n)), (n = this.__last_index__));
|
||
let c = n ? e.slice(n) : e;
|
||
for (; this.test(c); )
|
||
t.push(Ru(this, n)),
|
||
(c = c.slice(this.__last_index__)),
|
||
(n += this.__last_index__);
|
||
return t.length ? t : null;
|
||
};
|
||
B.prototype.matchAtStart = function (e) {
|
||
if (((this.__text_cache__ = e), (this.__index__ = -1), !e.length))
|
||
return null;
|
||
const t = this.re.schema_at_start.exec(e);
|
||
if (!t) return null;
|
||
const n = this.testSchemaAt(e, t[2], t[0].length);
|
||
return n
|
||
? ((this.__schema__ = t[2]),
|
||
(this.__index__ = t.index + t[1].length),
|
||
(this.__last_index__ = t.index + t[0].length + n),
|
||
Ru(this, 0))
|
||
: null;
|
||
};
|
||
B.prototype.tlds = function (e, t) {
|
||
return (
|
||
(e = Array.isArray(e) ? e : [e]),
|
||
t
|
||
? ((this.__tlds__ = this.__tlds__
|
||
.concat(e)
|
||
.sort()
|
||
.filter(function (n, c, r) {
|
||
return n !== r[c - 1];
|
||
})
|
||
.reverse()),
|
||
yu(this),
|
||
this)
|
||
: ((this.__tlds__ = e.slice()),
|
||
(this.__tlds_replaced__ = !0),
|
||
yu(this),
|
||
this)
|
||
);
|
||
};
|
||
B.prototype.normalize = function (e) {
|
||
e.schema || (e.url = "http://" + e.url),
|
||
e.schema === "mailto:" &&
|
||
!/^mailto:/i.test(e.url) &&
|
||
(e.url = "mailto:" + e.url);
|
||
};
|
||
B.prototype.onCompile = function () {};
|
||
const eu = 2147483647,
|
||
H = 36,
|
||
Vu = 1,
|
||
fu = 26,
|
||
Ar = 38,
|
||
Er = 700,
|
||
qe = 72,
|
||
Te = 128,
|
||
Ie = "-",
|
||
wr = /^xn--/,
|
||
Dr = /[^\0-\x7F]/,
|
||
vr = /[\x2E\u3002\uFF0E\uFF61]/g,
|
||
Fr = {
|
||
overflow: "Overflow: input needs wider integers to process",
|
||
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
|
||
"invalid-input": "Invalid input",
|
||
},
|
||
Iu = H - Vu,
|
||
V = Math.floor,
|
||
Mu = String.fromCharCode;
|
||
function W(u) {
|
||
throw new RangeError(Fr[u]);
|
||
}
|
||
function Sr(u, e) {
|
||
const t = [];
|
||
let n = u.length;
|
||
for (; n--; ) t[n] = e(u[n]);
|
||
return t;
|
||
}
|
||
function Me(u, e) {
|
||
const t = u.split("@");
|
||
let n = "";
|
||
t.length > 1 && ((n = t[0] + "@"), (u = t[1])), (u = u.replace(vr, "."));
|
||
const c = u.split("."),
|
||
r = Sr(c, e).join(".");
|
||
return n + r;
|
||
}
|
||
function Ne(u) {
|
||
const e = [];
|
||
let t = 0;
|
||
const n = u.length;
|
||
for (; t < n; ) {
|
||
const c = u.charCodeAt(t++);
|
||
if (c >= 55296 && c <= 56319 && t < n) {
|
||
const r = u.charCodeAt(t++);
|
||
(r & 64512) == 56320
|
||
? e.push(((c & 1023) << 10) + (r & 1023) + 65536)
|
||
: (e.push(c), t--);
|
||
} else e.push(c);
|
||
}
|
||
return e;
|
||
}
|
||
const zr = (u) => String.fromCodePoint(...u),
|
||
qr = function (u) {
|
||
return u >= 48 && u < 58
|
||
? 26 + (u - 48)
|
||
: u >= 65 && u < 91
|
||
? u - 65
|
||
: u >= 97 && u < 123
|
||
? u - 97
|
||
: H;
|
||
},
|
||
he = function (u, e) {
|
||
return u + 22 + 75 * (u < 26) - ((e != 0) << 5);
|
||
},
|
||
Le = function (u, e, t) {
|
||
let n = 0;
|
||
for (
|
||
u = t ? V(u / Er) : u >> 1, u += V(u / e);
|
||
u > (Iu * fu) >> 1;
|
||
n += H
|
||
)
|
||
u = V(u / Iu);
|
||
return V(n + ((Iu + 1) * u) / (u + Ar));
|
||
},
|
||
Re = function (u) {
|
||
const e = [],
|
||
t = u.length;
|
||
let n = 0,
|
||
c = Te,
|
||
r = qe,
|
||
i = u.lastIndexOf(Ie);
|
||
i < 0 && (i = 0);
|
||
for (let o = 0; o < i; ++o)
|
||
u.charCodeAt(o) >= 128 && W("not-basic"), e.push(u.charCodeAt(o));
|
||
for (let o = i > 0 ? i + 1 : 0; o < t; ) {
|
||
const a = n;
|
||
for (let l = 1, f = H; ; f += H) {
|
||
o >= t && W("invalid-input");
|
||
const p = qr(u.charCodeAt(o++));
|
||
p >= H && W("invalid-input"),
|
||
p > V((eu - n) / l) && W("overflow"),
|
||
(n += p * l);
|
||
const h = f <= r ? Vu : f >= r + fu ? fu : f - r;
|
||
if (p < h) break;
|
||
const d = H - h;
|
||
l > V(eu / d) && W("overflow"), (l *= d);
|
||
}
|
||
const s = e.length + 1;
|
||
(r = Le(n - a, s, a == 0)),
|
||
V(n / s) > eu - c && W("overflow"),
|
||
(c += V(n / s)),
|
||
(n %= s),
|
||
e.splice(n++, 0, c);
|
||
}
|
||
return String.fromCodePoint(...e);
|
||
},
|
||
Pe = function (u) {
|
||
const e = [];
|
||
u = Ne(u);
|
||
const t = u.length;
|
||
let n = Te,
|
||
c = 0,
|
||
r = qe;
|
||
for (const a of u) a < 128 && e.push(Mu(a));
|
||
const i = e.length;
|
||
let o = i;
|
||
for (i && e.push(Ie); o < t; ) {
|
||
let a = eu;
|
||
for (const l of u) l >= n && l < a && (a = l);
|
||
const s = o + 1;
|
||
a - n > V((eu - c) / s) && W("overflow"),
|
||
(c += (a - n) * s),
|
||
(n = a);
|
||
for (const l of u)
|
||
if ((l < n && ++c > eu && W("overflow"), l === n)) {
|
||
let f = c;
|
||
for (let p = H; ; p += H) {
|
||
const h = p <= r ? Vu : p >= r + fu ? fu : p - r;
|
||
if (f < h) break;
|
||
const d = f - h,
|
||
_ = H - h;
|
||
e.push(Mu(he(h + (d % _), 0))), (f = V(d / _));
|
||
}
|
||
e.push(Mu(he(f, 0))), (r = Le(c, s, o === i)), (c = 0), ++o;
|
||
}
|
||
++c, ++n;
|
||
}
|
||
return e.join("");
|
||
},
|
||
Tr = function (u) {
|
||
return Me(u, function (e) {
|
||
return wr.test(e) ? Re(e.slice(4).toLowerCase()) : e;
|
||
});
|
||
},
|
||
Ir = function (u) {
|
||
return Me(u, function (e) {
|
||
return Dr.test(e) ? "xn--" + Pe(e) : e;
|
||
});
|
||
},
|
||
Be = {
|
||
version: "2.3.1",
|
||
ucs2: { decode: Ne, encode: zr },
|
||
decode: Re,
|
||
encode: Pe,
|
||
toASCII: Ir,
|
||
toUnicode: Tr,
|
||
},
|
||
Mr = {
|
||
options: {
|
||
html: !1,
|
||
xhtmlOut: !1,
|
||
breaks: !1,
|
||
langPrefix: "language-",
|
||
linkify: !1,
|
||
typographer: !1,
|
||
quotes: "“”‘’",
|
||
highlight: null,
|
||
maxNesting: 100,
|
||
},
|
||
components: { core: {}, block: {}, inline: {} },
|
||
},
|
||
Nr = {
|
||
options: {
|
||
html: !1,
|
||
xhtmlOut: !1,
|
||
breaks: !1,
|
||
langPrefix: "language-",
|
||
linkify: !1,
|
||
typographer: !1,
|
||
quotes: "“”‘’",
|
||
highlight: null,
|
||
maxNesting: 20,
|
||
},
|
||
components: {
|
||
core: { rules: ["normalize", "block", "inline", "text_join"] },
|
||
block: { rules: ["paragraph"] },
|
||
inline: {
|
||
rules: ["text"],
|
||
rules2: ["balance_pairs", "fragments_join"],
|
||
},
|
||
},
|
||
},
|
||
Lr = {
|
||
options: {
|
||
html: !0,
|
||
xhtmlOut: !0,
|
||
breaks: !1,
|
||
langPrefix: "language-",
|
||
linkify: !1,
|
||
typographer: !1,
|
||
quotes: "“”‘’",
|
||
highlight: null,
|
||
maxNesting: 20,
|
||
},
|
||
components: {
|
||
core: { rules: ["normalize", "block", "inline", "text_join"] },
|
||
block: {
|
||
rules: [
|
||
"blockquote",
|
||
"code",
|
||
"fence",
|
||
"heading",
|
||
"hr",
|
||
"html_block",
|
||
"lheading",
|
||
"list",
|
||
"reference",
|
||
"paragraph",
|
||
],
|
||
},
|
||
inline: {
|
||
rules: [
|
||
"autolink",
|
||
"backticks",
|
||
"emphasis",
|
||
"entity",
|
||
"escape",
|
||
"html_inline",
|
||
"image",
|
||
"link",
|
||
"newline",
|
||
"text",
|
||
],
|
||
rules2: ["balance_pairs", "emphasis", "fragments_join"],
|
||
},
|
||
},
|
||
},
|
||
Rr = { default: Mr, zero: Nr, commonmark: Lr },
|
||
Pr = /^(vbscript|javascript|file|data):/,
|
||
Br = /^data:image\/(gif|png|jpeg|webp);/;
|
||
function $r(u) {
|
||
const e = u.trim().toLowerCase();
|
||
return Pr.test(e) ? Br.test(e) : !0;
|
||
}
|
||
const $e = ["http:", "https:", "mailto:"];
|
||
function Or(u) {
|
||
const e = $u(u, !0);
|
||
if (e.hostname && (!e.protocol || $e.indexOf(e.protocol) >= 0))
|
||
try {
|
||
e.hostname = Be.toASCII(e.hostname);
|
||
} catch (t) {}
|
||
return du(Bu(e));
|
||
}
|
||
function jr(u) {
|
||
const e = $u(u, !0);
|
||
if (e.hostname && (!e.protocol || $e.indexOf(e.protocol) >= 0))
|
||
try {
|
||
e.hostname = Be.toUnicode(e.hostname);
|
||
} catch (t) {}
|
||
return tu(Bu(e), tu.defaultChars + "%");
|
||
}
|
||
function $(u, e) {
|
||
if (!(this instanceof $)) return new $(u, e);
|
||
e || ju(u) || ((e = u || {}), (u = "default")),
|
||
(this.inline = new bu()),
|
||
(this.block = new Eu()),
|
||
(this.core = new Zu()),
|
||
(this.renderer = new ru()),
|
||
(this.linkify = new B()),
|
||
(this.validateLink = $r),
|
||
(this.normalizeLink = Or),
|
||
(this.normalizeLinkText = jr),
|
||
(this.utils = H0),
|
||
(this.helpers = Cu({}, W0)),
|
||
(this.options = {}),
|
||
this.configure(u),
|
||
e && this.set(e);
|
||
}
|
||
$.prototype.set = function (u) {
|
||
return Cu(this.options, u), this;
|
||
};
|
||
$.prototype.configure = function (u) {
|
||
const e = this;
|
||
if (ju(u)) {
|
||
const t = u;
|
||
if (((u = Rr[t]), !u))
|
||
throw new Error(
|
||
'Wrong `markdown-it` preset "' + t + '", check name'
|
||
);
|
||
}
|
||
if (!u) throw new Error("Wrong `markdown-it` preset, can't be empty");
|
||
return (
|
||
u.options && e.set(u.options),
|
||
u.components &&
|
||
Object.keys(u.components).forEach(function (t) {
|
||
u.components[t].rules &&
|
||
e[t].ruler.enableOnly(u.components[t].rules),
|
||
u.components[t].rules2 &&
|
||
e[t].ruler2.enableOnly(u.components[t].rules2);
|
||
}),
|
||
this
|
||
);
|
||
};
|
||
$.prototype.enable = function (u, e) {
|
||
let t = [];
|
||
Array.isArray(u) || (u = [u]),
|
||
["core", "block", "inline"].forEach(function (c) {
|
||
t = t.concat(this[c].ruler.enable(u, !0));
|
||
}, this),
|
||
(t = t.concat(this.inline.ruler2.enable(u, !0)));
|
||
const n = u.filter(function (c) {
|
||
return t.indexOf(c) < 0;
|
||
});
|
||
if (n.length && !e)
|
||
throw new Error("MarkdownIt. Failed to enable unknown rule(s): " + n);
|
||
return this;
|
||
};
|
||
$.prototype.disable = function (u, e) {
|
||
let t = [];
|
||
Array.isArray(u) || (u = [u]),
|
||
["core", "block", "inline"].forEach(function (c) {
|
||
t = t.concat(this[c].ruler.disable(u, !0));
|
||
}, this),
|
||
(t = t.concat(this.inline.ruler2.disable(u, !0)));
|
||
const n = u.filter(function (c) {
|
||
return t.indexOf(c) < 0;
|
||
});
|
||
if (n.length && !e)
|
||
throw new Error("MarkdownIt. Failed to disable unknown rule(s): " + n);
|
||
return this;
|
||
};
|
||
$.prototype.use = function (u) {
|
||
const e = [this].concat(Array.prototype.slice.call(arguments, 1));
|
||
return u.apply(u, e), this;
|
||
};
|
||
$.prototype.parse = function (u, e) {
|
||
if (typeof u != "string") throw new Error("Input data should be a String");
|
||
const t = new this.core.State(u, this, e);
|
||
return this.core.process(t), t.tokens;
|
||
};
|
||
$.prototype.render = function (u, e) {
|
||
return (
|
||
(e = e || {}), this.renderer.render(this.parse(u, e), this.options, e)
|
||
);
|
||
};
|
||
$.prototype.parseInline = function (u, e) {
|
||
const t = new this.core.State(u, this, e);
|
||
return (t.inlineMode = !0), this.core.process(t), t.tokens;
|
||
};
|
||
$.prototype.renderInline = function (u, e) {
|
||
return (
|
||
(e = e || {}),
|
||
this.renderer.render(this.parseInline(u, e), this.options, e)
|
||
);
|
||
};
|
||
const Ur = { key: 0 },
|
||
Zr = {
|
||
class: "bg-blue-100 py-2 px-2 mb-4 rounded-md text-sm text-blue-800",
|
||
},
|
||
Hr = { class: "leading-relaxed" },
|
||
Vr = { key: 0, class: "leading-relaxed" },
|
||
Gr = { key: 1, class: "leading-relaxed" },
|
||
Qr = { key: 2, class: "leading-relaxed" },
|
||
Wr = { key: 0 },
|
||
Jr = { class: "border text-center p-20 rounded-md" },
|
||
Yr = { class: "font-semibold text-lg" },
|
||
Xr = { key: 1 },
|
||
Kr = { key: 1 },
|
||
un = { key: 0, class: "border rounded-md p-5" },
|
||
en = { class: "flex justify-between" },
|
||
tn = { class: "text-sm" },
|
||
rn = { class: "mr-2" },
|
||
nn = { class: "text-gray-900 text-sm font-semibold item-left" },
|
||
cn = { class: "text-gray-900 font-semibold mt-2" },
|
||
on = {
|
||
key: 0,
|
||
class: "flex items-center bg-gray-200 rounded-md p-3 mt-4 w-full cursor-pointer focus:border-blue-600",
|
||
},
|
||
an = ["name", "onChange"],
|
||
sn = ["name", "onChange"],
|
||
ln = { key: 0 },
|
||
fn = { class: "ml-2" },
|
||
dn = { key: 1, class: "mt-2 text-sm hidden" },
|
||
hn = { class: "flex items-center justify-between mt-8" },
|
||
bn = { key: 2, class: "border rounded-md p-20 text-center" },
|
||
pn = { class: "text-lg font-semibold" },
|
||
_n = { key: 3, class: "mt-10" },
|
||
be = {
|
||
__name: "Quiz",
|
||
props: { quizName: { type: String, required: !0 } },
|
||
setup(u) {
|
||
const e = pe("$user"),
|
||
t = Gu(0),
|
||
n = Gu(""),
|
||
c = Qu([0, 0, 0, 0]),
|
||
r = Qu([]),
|
||
i = u,
|
||
o = Oe({
|
||
doctype: "LMS Quiz",
|
||
name: i.quizName,
|
||
cache: ["quiz", i.quizName],
|
||
auto: !0,
|
||
}),
|
||
a = K({
|
||
url: "frappe.client.get_list",
|
||
makeParams(x) {
|
||
var v, q;
|
||
return {
|
||
doctype: "LMS Quiz Submission",
|
||
filters: {
|
||
member: (v = e.data) == null ? void 0 : v.name,
|
||
quiz: (q = o.doc) == null ? void 0 : q.name,
|
||
},
|
||
fields: [
|
||
"name",
|
||
"creation",
|
||
"score",
|
||
"score_out_of",
|
||
"percentage",
|
||
"passing_percentage",
|
||
],
|
||
order_by: "creation desc",
|
||
};
|
||
},
|
||
auto: !0,
|
||
transform(x) {
|
||
x.forEach((v, q) => {
|
||
(v.creation = Ke(v.creation)), (v.idx = q + 1);
|
||
});
|
||
},
|
||
}),
|
||
s = K({
|
||
url: "lms.lms.doctype.lms_quiz.lms_quiz.quiz_summary",
|
||
makeParams(x) {
|
||
return {
|
||
quiz: o.doc.name,
|
||
results: localStorage.getItem(o.doc.title),
|
||
};
|
||
},
|
||
}),
|
||
l = K({
|
||
url: "lms.lms.utils.get_question_details",
|
||
makeParams(x) {
|
||
return { question: n.value };
|
||
},
|
||
});
|
||
_e(t, (x) => {
|
||
x > 0 &&
|
||
((n.value = o.doc.questions[x - 1].question), l.reload());
|
||
});
|
||
const f = () => {
|
||
(t.value = 1), localStorage.removeItem(o.doc.title);
|
||
},
|
||
p = (x) => {
|
||
l.data.multiple || c.splice(0, c.length, 0, 0, 0, 0),
|
||
(c[x - 1] = c[x - 1] ? 0 : 1);
|
||
},
|
||
h = () => {
|
||
let x = [];
|
||
return (
|
||
c.forEach((v, q) => {
|
||
c[q] && x.push(l.data[`option_${q + 1}`]);
|
||
}),
|
||
x
|
||
);
|
||
},
|
||
d = () => {
|
||
let x = h();
|
||
if (!x.length) {
|
||
u0({
|
||
title: "Please select an option",
|
||
icon: "alert-circle",
|
||
iconClasses: "text-yellow-600 bg-yellow-100",
|
||
});
|
||
return;
|
||
}
|
||
K({
|
||
url: "lms.lms.doctype.lms_quiz.lms_quiz.check_answer",
|
||
params: {
|
||
question: n.value,
|
||
type: l.data.type,
|
||
answers: JSON.stringify(x),
|
||
},
|
||
auto: !0,
|
||
onSuccess(v) {
|
||
c.forEach((q, N) => {
|
||
q
|
||
? (r[N] = q && v[N])
|
||
: l.data[`is_correct_${N + 1}`]
|
||
? (r[N] = 0)
|
||
: (r[N] = void 0);
|
||
}),
|
||
_(),
|
||
o.doc.show_answers || D();
|
||
},
|
||
});
|
||
},
|
||
_ = () => {
|
||
let x = JSON.parse(localStorage.getItem(o.doc.title)),
|
||
v = {
|
||
question_index: t.value,
|
||
answers: h().join(),
|
||
is_correct: r.filter((q) => q != null),
|
||
};
|
||
x ? x.push(v) : (x = [v]),
|
||
localStorage.setItem(o.doc.title, JSON.stringify(x));
|
||
},
|
||
y = () => {
|
||
o.doc.show_answers ? D() : d();
|
||
},
|
||
D = () => {
|
||
t.value != o.doc.questions.length &&
|
||
((t.value = t.value + 1),
|
||
c.splice(0, c.length, 0, 0, 0, 0),
|
||
(r.length = 0));
|
||
},
|
||
A = () => {
|
||
if (!o.doc.show_answers) {
|
||
d(),
|
||
setTimeout(() => {
|
||
k();
|
||
}, 500);
|
||
return;
|
||
}
|
||
k();
|
||
},
|
||
k = () => {
|
||
s.reload().then(() => {
|
||
a.reload();
|
||
});
|
||
},
|
||
w = () => {
|
||
(t.value = 0),
|
||
c.splice(0, c.length, 0, 0, 0, 0),
|
||
(r.length = 0),
|
||
s.reset();
|
||
},
|
||
m = () => [
|
||
{ label: "No.", key: "idx" },
|
||
{ label: "Date", key: "creation" },
|
||
{ label: "Score", key: "score", align: "center" },
|
||
{
|
||
label: "Score out of",
|
||
key: "score_out_of",
|
||
align: "center",
|
||
},
|
||
{ label: "Percentage", key: "percentage", align: "center" },
|
||
];
|
||
return (x, v) => {
|
||
var q, N, pu, _u;
|
||
return b(o).doc
|
||
? (g(),
|
||
E("div", Ur, [
|
||
C("div", Zr, [
|
||
C(
|
||
"div",
|
||
Hr,
|
||
F(
|
||
x
|
||
.__(
|
||
"This quiz consists of {0} questions."
|
||
)
|
||
.format(b(o).doc.questions.length)
|
||
),
|
||
1
|
||
),
|
||
b(o).doc.passing_percentage
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Vr,
|
||
F(
|
||
x
|
||
.__(
|
||
"You will have to get {0}% correct answers in order to pass the quiz."
|
||
)
|
||
.format(
|
||
b(o).doc
|
||
.passing_percentage
|
||
)
|
||
),
|
||
1
|
||
))
|
||
: z("", !0),
|
||
b(o).doc.max_attempts
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Gr,
|
||
F(
|
||
x
|
||
.__(
|
||
"You can attempt this quiz {0}."
|
||
)
|
||
.format(
|
||
b(o).doc.max_attempts ==
|
||
1
|
||
? "1 time"
|
||
: `${
|
||
b(o).doc
|
||
.max_attempts
|
||
} times`
|
||
)
|
||
),
|
||
1
|
||
))
|
||
: z("", !0),
|
||
b(o).doc.time
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Qr,
|
||
F(
|
||
x
|
||
.__(
|
||
"The quiz has a time limit.For each question you will be given { 0} seconds."
|
||
)
|
||
.format(b(o).doc.time)
|
||
),
|
||
1
|
||
))
|
||
: z("", !0),
|
||
]),
|
||
t.value == 0
|
||
? (g(),
|
||
E("div", Wr, [
|
||
C("div", Jr, [
|
||
C("div", Yr, F(b(o).doc.title), 1),
|
||
!b(o).doc.max_attempts ||
|
||
((q = b(a).data) == null
|
||
? void 0
|
||
: q.length) <
|
||
b(o).doc.max_attempts
|
||
? (g(),
|
||
M(
|
||
b(Z),
|
||
{
|
||
key: 0,
|
||
onClick: f,
|
||
class: "mt-2",
|
||
},
|
||
{
|
||
default: P(() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
x.__(
|
||
"Start"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]),
|
||
_: 1,
|
||
}
|
||
))
|
||
: (g(),
|
||
E(
|
||
"div",
|
||
Xr,
|
||
F(
|
||
x.__(
|
||
"You have already exceeded the maximum number of attempts allowed for this quiz."
|
||
)
|
||
),
|
||
1
|
||
)),
|
||
]),
|
||
]))
|
||
: b(s).data
|
||
? (g(),
|
||
E("div", bn, [
|
||
C(
|
||
"div",
|
||
pn,
|
||
F(x.__("Quiz Summary")),
|
||
1
|
||
),
|
||
C(
|
||
"div",
|
||
null,
|
||
F(
|
||
x
|
||
.__(
|
||
"You got {0}% correct answers with a score of {1} out of {2}"
|
||
)
|
||
.format(
|
||
Math.ceil(
|
||
b(s).data.percentage
|
||
),
|
||
b(s).data.score,
|
||
b(s).data.score_out_of
|
||
)
|
||
),
|
||
1
|
||
),
|
||
!b(o).doc.max_attempts ||
|
||
((N = b(a)) == null
|
||
? void 0
|
||
: N.data.length) <
|
||
b(o).doc.max_attempts
|
||
? (g(),
|
||
M(
|
||
b(Z),
|
||
{
|
||
key: 0,
|
||
onClick:
|
||
v[3] ||
|
||
(v[3] = (nu) =>
|
||
w()),
|
||
class: "mt-2",
|
||
},
|
||
{
|
||
default: P(() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
x.__(
|
||
"Try Again"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]),
|
||
_: 1,
|
||
}
|
||
))
|
||
: z("", !0),
|
||
]))
|
||
: (g(),
|
||
E("div", Kr, [
|
||
(g(!0),
|
||
E(
|
||
cu,
|
||
null,
|
||
ou(
|
||
b(o).doc.questions,
|
||
(nu, Du) => (
|
||
g(),
|
||
E("div", null, [
|
||
Du == t.value - 1 &&
|
||
b(l).data
|
||
? (g(),
|
||
E("div", un, [
|
||
C(
|
||
"div",
|
||
en,
|
||
[
|
||
C(
|
||
"div",
|
||
tn,
|
||
[
|
||
C(
|
||
"span",
|
||
rn,
|
||
F(
|
||
x
|
||
.__(
|
||
"Question {0}"
|
||
)
|
||
.format(
|
||
t.value
|
||
)
|
||
) +
|
||
": ",
|
||
1
|
||
),
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
b(
|
||
l
|
||
)
|
||
.data
|
||
.multiple
|
||
? x.__(
|
||
"Choose all answers that apply"
|
||
)
|
||
: x.__(
|
||
"Choose one answer"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
C(
|
||
"div",
|
||
nn,
|
||
F(
|
||
nu.marks
|
||
) +
|
||
" " +
|
||
F(
|
||
nu.marks ==
|
||
1
|
||
? x.__(
|
||
"Mark"
|
||
)
|
||
: x.__(
|
||
"Marks"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
C(
|
||
"div",
|
||
cn,
|
||
F(
|
||
b(l)
|
||
.data
|
||
.question
|
||
),
|
||
1
|
||
),
|
||
b(l).data
|
||
.type ==
|
||
"Choices"
|
||
? (g(),
|
||
E(
|
||
cu,
|
||
{
|
||
key: 0,
|
||
},
|
||
ou(
|
||
4,
|
||
(
|
||
L
|
||
) =>
|
||
C(
|
||
"div",
|
||
null,
|
||
[
|
||
b(
|
||
l
|
||
)
|
||
.data[
|
||
`option_${L}`
|
||
]
|
||
? (g(),
|
||
E(
|
||
"label",
|
||
on,
|
||
[
|
||
!r.length &&
|
||
!b(
|
||
l
|
||
)
|
||
.data
|
||
.multiple
|
||
? (g(),
|
||
E(
|
||
"input",
|
||
{
|
||
key: 0,
|
||
type: "radio",
|
||
name: encodeURIComponent(
|
||
b(
|
||
l
|
||
)
|
||
.data
|
||
.question
|
||
),
|
||
class: "w-3.5 h-3.5 text-gray-900 focus:ring-gray-200",
|
||
onChange:
|
||
(
|
||
O
|
||
) =>
|
||
p(
|
||
L
|
||
),
|
||
},
|
||
null,
|
||
40,
|
||
an
|
||
))
|
||
: !r.length &&
|
||
b(
|
||
l
|
||
)
|
||
.data
|
||
.multiple
|
||
? (g(),
|
||
E(
|
||
"input",
|
||
{
|
||
key: 1,
|
||
type: "checkbox",
|
||
name: encodeURIComponent(
|
||
b(
|
||
l
|
||
)
|
||
.data
|
||
.question
|
||
),
|
||
class: "w-3.5 h-3.5 text-gray-900 rounded-sm focus:ring-gray-200",
|
||
onChange:
|
||
(
|
||
O
|
||
) =>
|
||
p(
|
||
L
|
||
),
|
||
},
|
||
null,
|
||
40,
|
||
sn
|
||
))
|
||
: b(
|
||
o
|
||
)
|
||
.doc
|
||
.show_answers
|
||
? (g(
|
||
!0
|
||
),
|
||
E(
|
||
cu,
|
||
{
|
||
key: 2,
|
||
},
|
||
ou(
|
||
r,
|
||
(
|
||
O,
|
||
vu
|
||
) => (
|
||
g(),
|
||
E(
|
||
"div",
|
||
null,
|
||
[
|
||
L -
|
||
1 ==
|
||
vu
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
ln,
|
||
[
|
||
O
|
||
? (g(),
|
||
M(
|
||
b(
|
||
r0
|
||
),
|
||
{
|
||
key: 0,
|
||
class: "w-4 h-4 text-green-500",
|
||
}
|
||
))
|
||
: b(
|
||
l
|
||
)
|
||
.data[
|
||
`is_correct_${L}`
|
||
]
|
||
? (g(),
|
||
M(
|
||
b(
|
||
Wu
|
||
),
|
||
{
|
||
key: 1,
|
||
class: "w-4 h-4 text-green-500",
|
||
}
|
||
))
|
||
: O ==
|
||
0
|
||
? (g(),
|
||
M(
|
||
b(
|
||
n0
|
||
),
|
||
{
|
||
key: 2,
|
||
class: "w-4 h-4 text-red-500",
|
||
}
|
||
))
|
||
: (g(),
|
||
M(
|
||
b(
|
||
Wu
|
||
),
|
||
{
|
||
key: 3,
|
||
class: "w-4 h-4",
|
||
}
|
||
)),
|
||
]
|
||
))
|
||
: z(
|
||
"",
|
||
!0
|
||
),
|
||
]
|
||
)
|
||
)
|
||
),
|
||
256
|
||
))
|
||
: z(
|
||
"",
|
||
!0
|
||
),
|
||
C(
|
||
"span",
|
||
fn,
|
||
F(
|
||
b(
|
||
l
|
||
)
|
||
.data[
|
||
`option_${L}`
|
||
]
|
||
),
|
||
1
|
||
),
|
||
]
|
||
))
|
||
: z(
|
||
"",
|
||
!0
|
||
),
|
||
b(
|
||
l
|
||
)
|
||
.data[
|
||
`explanation_${L}`
|
||
]
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
dn,
|
||
F(
|
||
b(
|
||
l
|
||
)
|
||
.data[
|
||
`explanation_${L}`
|
||
]
|
||
),
|
||
1
|
||
))
|
||
: z(
|
||
"",
|
||
!0
|
||
),
|
||
]
|
||
)
|
||
),
|
||
64
|
||
))
|
||
: z(
|
||
"",
|
||
!0
|
||
),
|
||
C(
|
||
"div",
|
||
hn,
|
||
[
|
||
C(
|
||
"div",
|
||
null,
|
||
F(
|
||
x
|
||
.__(
|
||
"Question {0} of {1}"
|
||
)
|
||
.format(
|
||
t.value,
|
||
b(
|
||
o
|
||
)
|
||
.doc
|
||
.questions
|
||
.length
|
||
)
|
||
),
|
||
1
|
||
),
|
||
b(o)
|
||
.doc
|
||
.show_answers &&
|
||
!r.length
|
||
? (g(),
|
||
M(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
key: 0,
|
||
onClick:
|
||
v[0] ||
|
||
(v[0] =
|
||
(
|
||
L
|
||
) =>
|
||
d()),
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
x.__(
|
||
"Check"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
))
|
||
: t.value !=
|
||
b(
|
||
o
|
||
)
|
||
.doc
|
||
.questions
|
||
.length
|
||
? (g(),
|
||
M(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
key: 1,
|
||
onClick:
|
||
v[1] ||
|
||
(v[1] =
|
||
(
|
||
L
|
||
) =>
|
||
y()),
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
x.__(
|
||
"Next"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
))
|
||
: (g(),
|
||
M(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
key: 2,
|
||
onClick:
|
||
v[2] ||
|
||
(v[2] =
|
||
(
|
||
L
|
||
) =>
|
||
A()),
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
x.__(
|
||
"Submit"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
)),
|
||
]
|
||
),
|
||
]))
|
||
: z("", !0),
|
||
])
|
||
)
|
||
),
|
||
256
|
||
)),
|
||
])),
|
||
b(o).doc.show_submission_history &&
|
||
(pu = b(a)) != null &&
|
||
pu.data
|
||
? (g(),
|
||
E("div", _n, [
|
||
U(
|
||
b(je),
|
||
{
|
||
columns: m(),
|
||
rows:
|
||
(_u = b(a)) == null
|
||
? void 0
|
||
: _u.data,
|
||
"row-key": "name",
|
||
options: {
|
||
selectable: !1,
|
||
showTooltip: !1,
|
||
},
|
||
},
|
||
null,
|
||
8,
|
||
["columns", "rows"]
|
||
),
|
||
]))
|
||
: z("", !0),
|
||
]))
|
||
: z("", !0);
|
||
};
|
||
},
|
||
},
|
||
mn = { key: 0, class: "h-screen text-base" },
|
||
xn = {
|
||
class: "sticky top-0 z-10 flex items-center justify-between border-b bg-white px-3 py-2.5 sm:px-5",
|
||
},
|
||
kn = { class: "grid grid-cols-[70%,30%] h-full" },
|
||
gn = { key: 0, class: "border-r-2 text-center pt-10" },
|
||
yn = { class: "mb-4" },
|
||
Cn = { key: 1, class: "border-r-2 container pt-5 pb-10" },
|
||
An = { class: "flex items-center justify-between" },
|
||
En = { class: "text-3xl font-semibold" },
|
||
wn = { class: "flex items-center mt-2" },
|
||
Dn = { key: 0 },
|
||
vn = { key: 1 },
|
||
Fn = { key: 2 },
|
||
Sn = {
|
||
class: "ProseMirror prose prose-table:table-fixed prose-td:p-2 prose-th:p-2 prose-td:border prose-th:border prose-td:border-gray-300 prose-th:border-gray-300 prose-td:relative prose-th:relative prose-th:bg-gray-100 prose-sm max-w-none !whitespace-normal mt-6",
|
||
},
|
||
zn = { key: 0 },
|
||
qn = ["src"],
|
||
Tn = { key: 0 },
|
||
In = ["src"],
|
||
Mn = { key: 1 },
|
||
Nn = { key: 1, class: "border rounded-md text-center py-20" },
|
||
Ln = { key: 2 },
|
||
Rn = { controls: "", width: "100%", controlsList: "nodownload" },
|
||
Pn = ["src"],
|
||
Bn = { key: 3 },
|
||
$n = ["src"],
|
||
On = { key: 4 },
|
||
jn = { width: "100%", controls: "", controlsList: "nodownload" },
|
||
Un = ["src"],
|
||
Zn = { key: 5 },
|
||
Hn = ["src"],
|
||
Vn = ["innerHTML"],
|
||
Gn = { key: 1 },
|
||
Qn = { key: 1, class: "border rounded-md text-center py-20" },
|
||
Wn = { class: "mt-20" },
|
||
Jn = { class: "sticky top-10" },
|
||
Yn = { class: "bg-gray-50 p-5 border-b-2" },
|
||
Xn = { class: "text-lg font-semibold" },
|
||
Kn = { key: 0, class: "text-sm mt-3" },
|
||
uc = { key: 1, class: "w-full bg-gray-200 rounded-full h-1 my-2" },
|
||
ic = {
|
||
__name: "Lesson",
|
||
props: {
|
||
courseName: { type: String, required: !0 },
|
||
chapterNumber: { type: String, required: !0 },
|
||
lessonNumber: { type: String, required: !0 },
|
||
},
|
||
setup(u) {
|
||
const e = pe("$user"),
|
||
t = Ue(),
|
||
n = new $({ html: !0, linkify: !0 }),
|
||
c = u,
|
||
r = K({
|
||
url: "lms.lms.utils.get_lesson",
|
||
cache: [
|
||
"lesson",
|
||
c.courseName,
|
||
c.chapterNumber,
|
||
c.lessonNumber,
|
||
],
|
||
makeParams(_) {
|
||
return {
|
||
course: c.courseName,
|
||
chapter: _ ? _.chapter : c.chapterNumber,
|
||
lesson: _ ? _.lesson : c.lessonNumber,
|
||
};
|
||
},
|
||
auto: !0,
|
||
onSuccess(_) {
|
||
_.membership &&
|
||
o.submit({
|
||
name: _.membership.name,
|
||
lesson_name: _.name,
|
||
}),
|
||
i(_);
|
||
},
|
||
}),
|
||
i = (_) => {
|
||
setTimeout(() => {
|
||
_.progress || a.submit();
|
||
}, 6e4);
|
||
},
|
||
o = K({
|
||
url: "frappe.client.set_value",
|
||
makeParams(_) {
|
||
return {
|
||
doctype: "LMS Enrollment",
|
||
name: _.name,
|
||
fieldname: "current_lesson",
|
||
value: _.lesson_name,
|
||
};
|
||
},
|
||
}),
|
||
a = K({
|
||
url: "lms.lms.doctype.course_lesson.course_lesson.save_progress",
|
||
makeParams() {
|
||
return { lesson: r.data.name, course: c.courseName };
|
||
},
|
||
}),
|
||
s = Ze(() => {
|
||
var y, D;
|
||
let _ = [
|
||
{ label: "All Courses", route: { name: "Courses" } },
|
||
];
|
||
return (
|
||
_.push({
|
||
label:
|
||
(y = r == null ? void 0 : r.data) == null
|
||
? void 0
|
||
: y.course_title,
|
||
route: {
|
||
name: "CourseDetail",
|
||
params: { course: c.courseName },
|
||
},
|
||
}),
|
||
_.push({
|
||
label:
|
||
(D = r == null ? void 0 : r.data) == null
|
||
? void 0
|
||
: D.title,
|
||
route: {
|
||
name: "Lesson",
|
||
params: {
|
||
course: c.courseName,
|
||
chapterNumber: c.chapterNumber,
|
||
lessonNumber: c.lessonNumber,
|
||
},
|
||
},
|
||
}),
|
||
_
|
||
);
|
||
});
|
||
_e(
|
||
[() => t.params.chapterNumber, () => t.params.lessonNumber],
|
||
([_, y], [D, A]) => {
|
||
_ && y && r.submit({ chapter: _, lesson: y });
|
||
}
|
||
);
|
||
const l = (_) => (
|
||
_.includes("{{") && (_ = p(_)),
|
||
`https://www.youtube.com/embed/${_}`
|
||
),
|
||
f = (_) => `${p(_)}#toolbar=0`,
|
||
p = (_) => _.match(/\(["']([^"']+?)["']\)/)[1],
|
||
h = () => {
|
||
window.location.href = `/login?redirect_to=/courses/${c.courseName}/learn/${t.params.chapterNumber}-${t.params.lessonNumber}`;
|
||
},
|
||
d = () => {
|
||
var _, y, D;
|
||
return (
|
||
((_ = r.data) == null ? void 0 : _.membership) ||
|
||
((y = e.data) == null ? void 0 : y.is_moderator) ||
|
||
((D = e.data) == null ? void 0 : D.is_instructor)
|
||
);
|
||
};
|
||
return (_, y) => {
|
||
const D = Ge("router-link");
|
||
return b(r).data
|
||
? (g(),
|
||
E("div", mn, [
|
||
C("header", xn, [
|
||
U(
|
||
b(Qe),
|
||
{ class: "h-7", items: s.value },
|
||
null,
|
||
8,
|
||
["items"]
|
||
),
|
||
]),
|
||
C("div", kn, [
|
||
b(r).data.no_preview
|
||
? (g(),
|
||
E("div", gn, [
|
||
C(
|
||
"p",
|
||
yn,
|
||
F(
|
||
_.__(
|
||
"This lesson is not available for preview. Please enroll in the course to access it."
|
||
)
|
||
),
|
||
1
|
||
),
|
||
U(
|
||
D,
|
||
{
|
||
to: {
|
||
name: "CourseDetail",
|
||
params: {
|
||
courseName:
|
||
u.courseName,
|
||
},
|
||
},
|
||
},
|
||
{
|
||
default: P(() => [
|
||
U(
|
||
b(Z),
|
||
{
|
||
variant:
|
||
"solid",
|
||
},
|
||
{
|
||
default: P(
|
||
() => [
|
||
We(
|
||
F(
|
||
_.__(
|
||
"Start Learning"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
),
|
||
]),
|
||
_: 1,
|
||
},
|
||
8,
|
||
["to"]
|
||
),
|
||
]))
|
||
: (g(),
|
||
E("div", Cn, [
|
||
C("div", An, [
|
||
C(
|
||
"div",
|
||
En,
|
||
F(b(r).data.title),
|
||
1
|
||
),
|
||
C("div", null, [
|
||
b(r).data.prev
|
||
? (g(),
|
||
M(
|
||
D,
|
||
{
|
||
key: 0,
|
||
to: {
|
||
name: "Lesson",
|
||
params: {
|
||
courseName:
|
||
u.courseName,
|
||
chapterNumber:
|
||
b(
|
||
r
|
||
).data.prev.split(
|
||
"."
|
||
)[0],
|
||
lessonNumber:
|
||
b(
|
||
r
|
||
).data.prev.split(
|
||
"."
|
||
)[1],
|
||
},
|
||
},
|
||
},
|
||
{
|
||
default: P(
|
||
() => [
|
||
U(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
class: "mr-2",
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
U(
|
||
b(
|
||
t0
|
||
),
|
||
{
|
||
class: "w-4 h-4 stroke-1",
|
||
}
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
},
|
||
8,
|
||
["to"]
|
||
))
|
||
: z("", !0),
|
||
b(r).data.next
|
||
? (g(),
|
||
M(
|
||
D,
|
||
{
|
||
key: 1,
|
||
to: {
|
||
name: "Lesson",
|
||
params: {
|
||
courseName:
|
||
u.courseName,
|
||
chapterNumber:
|
||
b(
|
||
r
|
||
).data.next.split(
|
||
"."
|
||
)[0],
|
||
lessonNumber:
|
||
b(
|
||
r
|
||
).data.next.split(
|
||
"."
|
||
)[1],
|
||
},
|
||
},
|
||
},
|
||
{
|
||
default: P(
|
||
() => [
|
||
U(
|
||
b(
|
||
Z
|
||
),
|
||
null,
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
U(
|
||
b(
|
||
Ye
|
||
),
|
||
{
|
||
class: "w-4 h-4 stroke-1",
|
||
}
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
},
|
||
8,
|
||
["to"]
|
||
))
|
||
: z("", !0),
|
||
]),
|
||
]),
|
||
C("div", wn, [
|
||
C(
|
||
"span",
|
||
{
|
||
class: He([
|
||
"mr-1",
|
||
{
|
||
"avatar-group overlap":
|
||
b(r).data
|
||
.instructors
|
||
.length >
|
||
1,
|
||
},
|
||
]),
|
||
},
|
||
[
|
||
(g(!0),
|
||
E(
|
||
cu,
|
||
null,
|
||
ou(
|
||
b(r).data
|
||
.instructors,
|
||
(A) => (
|
||
g(),
|
||
M(
|
||
Xe,
|
||
{
|
||
user: A,
|
||
},
|
||
null,
|
||
8,
|
||
["user"]
|
||
)
|
||
)
|
||
),
|
||
256
|
||
)),
|
||
],
|
||
2
|
||
),
|
||
b(r).data.instructors.length ==
|
||
1
|
||
? (g(),
|
||
E(
|
||
"span",
|
||
Dn,
|
||
F(
|
||
b(r).data
|
||
.instructors[0]
|
||
.full_name
|
||
),
|
||
1
|
||
))
|
||
: z("", !0),
|
||
b(r).data.instructors.length ==
|
||
2
|
||
? (g(),
|
||
E(
|
||
"span",
|
||
vn,
|
||
F(
|
||
b(r).data
|
||
.instructors[0]
|
||
.first_name
|
||
) +
|
||
" and " +
|
||
F(
|
||
b(r).data
|
||
.instructors[1]
|
||
.first_name
|
||
),
|
||
1
|
||
))
|
||
: z("", !0),
|
||
b(r).data.instructors.length > 2
|
||
? (g(),
|
||
E(
|
||
"span",
|
||
Fn,
|
||
F(
|
||
b(r).data
|
||
.instructors[0]
|
||
.first_name
|
||
) +
|
||
" and " +
|
||
F(
|
||
b(r).data
|
||
.instructors
|
||
.length -
|
||
1
|
||
) +
|
||
" others ",
|
||
1
|
||
))
|
||
: z("", !0),
|
||
]),
|
||
C("div", Sn, [
|
||
b(r).data.youtube
|
||
? (g(),
|
||
E("div", zn, [
|
||
C(
|
||
"iframe",
|
||
{
|
||
class: "youtube-video",
|
||
src: l(
|
||
b(r)
|
||
.data
|
||
.youtube
|
||
),
|
||
width: "100%",
|
||
height: "400",
|
||
frameborder:
|
||
"0",
|
||
allowfullscreen:
|
||
"",
|
||
},
|
||
null,
|
||
8,
|
||
qn
|
||
),
|
||
]))
|
||
: z("", !0),
|
||
(g(!0),
|
||
E(
|
||
cu,
|
||
null,
|
||
ou(
|
||
b(r).data.body.split(`
|
||
|
||
|
||
`),
|
||
(A) => (
|
||
g(),
|
||
E("div", null, [
|
||
A.includes(
|
||
"{{ YouTubeVideo"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Tn,
|
||
[
|
||
C(
|
||
"iframe",
|
||
{
|
||
class: "youtube-video",
|
||
src: l(
|
||
A
|
||
),
|
||
width: "100%",
|
||
height: "400",
|
||
frameborder:
|
||
"0",
|
||
allowfullscreen:
|
||
"",
|
||
},
|
||
null,
|
||
8,
|
||
In
|
||
),
|
||
]
|
||
))
|
||
: A.includes(
|
||
"{{ Quiz"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Mn,
|
||
[
|
||
b(
|
||
e
|
||
)
|
||
.data
|
||
? (g(),
|
||
M(
|
||
be,
|
||
{
|
||
key: 0,
|
||
quizName:
|
||
p(
|
||
A
|
||
),
|
||
},
|
||
null,
|
||
8,
|
||
[
|
||
"quizName",
|
||
]
|
||
))
|
||
: (g(),
|
||
E(
|
||
"div",
|
||
Nn,
|
||
[
|
||
C(
|
||
"div",
|
||
null,
|
||
F(
|
||
_.__(
|
||
"Please login to access the quiz."
|
||
)
|
||
),
|
||
1
|
||
),
|
||
U(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
onClick:
|
||
y[0] ||
|
||
(y[0] =
|
||
(
|
||
k
|
||
) =>
|
||
h()),
|
||
class: "mt-2",
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
_.__(
|
||
"Login"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
),
|
||
]
|
||
)),
|
||
]
|
||
))
|
||
: A.includes(
|
||
"{{ Video"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Ln,
|
||
[
|
||
C(
|
||
"video",
|
||
Rn,
|
||
[
|
||
C(
|
||
"source",
|
||
{
|
||
src: p(
|
||
A
|
||
),
|
||
type: "video/mp4",
|
||
},
|
||
null,
|
||
8,
|
||
Pn
|
||
),
|
||
]
|
||
),
|
||
]
|
||
))
|
||
: A.includes(
|
||
"{{ PDF"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Bn,
|
||
[
|
||
C(
|
||
"iframe",
|
||
{
|
||
src: f(
|
||
A
|
||
),
|
||
width: "100%",
|
||
height: "400",
|
||
frameborder:
|
||
"0",
|
||
allowfullscreen:
|
||
"",
|
||
},
|
||
null,
|
||
8,
|
||
$n
|
||
),
|
||
]
|
||
))
|
||
: A.includes(
|
||
"{{ Audio"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
On,
|
||
[
|
||
C(
|
||
"audio",
|
||
jn,
|
||
[
|
||
C(
|
||
"source",
|
||
{
|
||
src: p(
|
||
A
|
||
),
|
||
type: "audio/mp3",
|
||
},
|
||
null,
|
||
8,
|
||
Un
|
||
),
|
||
]
|
||
),
|
||
]
|
||
))
|
||
: A.includes(
|
||
"{{ Embed"
|
||
)
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Zn,
|
||
[
|
||
C(
|
||
"iframe",
|
||
{
|
||
width: "100%",
|
||
height: "400",
|
||
src: p(
|
||
A
|
||
),
|
||
frameborder:
|
||
"0",
|
||
allowfullscreen:
|
||
"",
|
||
},
|
||
null,
|
||
8,
|
||
Hn
|
||
),
|
||
]
|
||
))
|
||
: (g(),
|
||
E(
|
||
"div",
|
||
{
|
||
key: 6,
|
||
innerHTML:
|
||
b(
|
||
n
|
||
).render(
|
||
A
|
||
),
|
||
},
|
||
null,
|
||
8,
|
||
Vn
|
||
)),
|
||
])
|
||
)
|
||
),
|
||
256
|
||
)),
|
||
b(r).data.quiz_id
|
||
? (g(),
|
||
E("div", Gn, [
|
||
b(e).data
|
||
? (g(),
|
||
M(
|
||
be,
|
||
{
|
||
key: 0,
|
||
quizName:
|
||
p(
|
||
_.block
|
||
),
|
||
},
|
||
null,
|
||
8,
|
||
[
|
||
"quizName",
|
||
]
|
||
))
|
||
: (g(),
|
||
E("div", Qn, [
|
||
C(
|
||
"div",
|
||
null,
|
||
F(
|
||
_.__(
|
||
"Please login to access the quiz."
|
||
)
|
||
),
|
||
1
|
||
),
|
||
U(
|
||
b(
|
||
Z
|
||
),
|
||
{
|
||
onClick:
|
||
y[1] ||
|
||
(y[1] =
|
||
(
|
||
A
|
||
) =>
|
||
h()),
|
||
class: "mt-2",
|
||
},
|
||
{
|
||
default:
|
||
P(
|
||
() => [
|
||
C(
|
||
"span",
|
||
null,
|
||
F(
|
||
_.__(
|
||
"Login"
|
||
)
|
||
),
|
||
1
|
||
),
|
||
]
|
||
),
|
||
_: 1,
|
||
}
|
||
),
|
||
])),
|
||
]))
|
||
: z("", !0),
|
||
]),
|
||
C("div", Wn, [
|
||
d()
|
||
? (g(),
|
||
M(
|
||
e0,
|
||
{
|
||
title: "Questions",
|
||
doctype:
|
||
"Course Lesson",
|
||
docname:
|
||
b(r).data
|
||
.name,
|
||
key: b(r).data
|
||
.name,
|
||
},
|
||
null,
|
||
8,
|
||
["docname"]
|
||
))
|
||
: z("", !0),
|
||
]),
|
||
])),
|
||
C("div", Jn, [
|
||
C("div", Yn, [
|
||
C(
|
||
"div",
|
||
Xn,
|
||
F(b(r).data.course_title),
|
||
1
|
||
),
|
||
b(e) && b(r).data.membership
|
||
? (g(),
|
||
E(
|
||
"div",
|
||
Kn,
|
||
F(
|
||
Math.ceil(
|
||
b(r).data.membership
|
||
.progress
|
||
)
|
||
) + "% completed ",
|
||
1
|
||
))
|
||
: z("", !0),
|
||
b(e) && b(r).data.membership
|
||
? (g(),
|
||
E("div", uc, [
|
||
C(
|
||
"div",
|
||
{
|
||
class: "bg-gray-900 h-1 rounded-full",
|
||
style: Ve({
|
||
width:
|
||
Math.ceil(
|
||
b(r)
|
||
.data
|
||
.membership
|
||
.progress
|
||
) + "%",
|
||
}),
|
||
},
|
||
null,
|
||
4
|
||
),
|
||
]))
|
||
: z("", !0),
|
||
]),
|
||
(g(),
|
||
M(
|
||
Je,
|
||
{
|
||
courseName: u.courseName,
|
||
key: u.chapterNumber,
|
||
},
|
||
null,
|
||
8,
|
||
["courseName"]
|
||
)),
|
||
]),
|
||
]),
|
||
]))
|
||
: z("", !0);
|
||
};
|
||
},
|
||
};
|
||
export { ic as default };
|
||
//# sourceMappingURL=Lesson-N9cRSew3.js.map
|