Skip to content

Instantly share code, notes, and snippets.

@rskvp93
Created July 18, 2024 15:27
Show Gist options
  • Save rskvp93/0ea92e6028903cbc8bfacf37f6bd9f66 to your computer and use it in GitHub Desktop.
Save rskvp93/0ea92e6028903cbc8bfacf37f6bd9f66 to your computer and use it in GitHub Desktop.
Substack_base-6fd039df.js
This file has been truncated, but you can view the full file.
var vf = Object.defineProperty,
xf = Object.defineProperties;
var yf = Object.getOwnPropertyDescriptors;
var Ts = Object.getOwnPropertySymbols;
var Ni = Object.prototype.hasOwnProperty,
Mi = Object.prototype.propertyIsEnumerable;
var Xa = Math.pow,
Ii = (t, e, n) => e in t ? vf(t, e, {
enumerable: !0,
configurable: !0,
writable: !0,
value: n
}) : t[e] = n,
S = (t, e) => {
for (var n in e || (e = {})) Ni.call(e, n) && Ii(t, n, e[n]);
if (Ts)
for (var n of Ts(e)) Mi.call(e, n) && Ii(t, n, e[n]);
return t
},
P = (t, e) => xf(t, yf(e));
var st = (t, e) => {
var n = {};
for (var s in t) Ni.call(t, s) && e.indexOf(s) < 0 && (n[s] = t[s]);
if (t != null && Ts)
for (var s of Ts(t)) e.indexOf(s) < 0 && Mi.call(t, s) && (n[s] = t[s]);
return n
};
var N = (t, e, n) => new Promise((s, a) => {
var o = c => {
try {
i(n.next(c))
} catch (l) {
a(l)
}
},
r = c => {
try {
i(n.throw(c))
} catch (l) {
a(l)
}
},
i = c => c.done ? s(c.value) : Promise.resolve(c.value).then(o, r);
i((n = n.apply(t, e)).next())
});
import {
dO as wf,
p as U,
H as J,
b0 as de,
aA as we,
bO as ge,
h as z,
ck as In,
c1 as kf,
eT as cr,
i_ as Un,
e8 as ya,
cQ as Nt,
eP as _f,
bt as wa,
eM as Cf,
bq as lr,
y as p,
t as se,
E as ae,
i$ as Ef,
j0 as Af,
g5 as Sf,
fj as Tf,
cP as it,
bn as Ue,
dY as ur,
j1 as Fl,
j as rt,
gs as jl,
gt as pr,
h5 as Df,
fZ as ka,
j2 as lt,
j3 as $l,
j4 as Ul,
i as yt,
c as qe,
U as Ut,
ah as Kn,
Y as q,
g_ as Oi,
hh as Li,
R as If,
bC as Vl,
dh as Hl,
df as Nf,
j5 as Gl,
j6 as Mf,
j7 as Of,
bh as dr,
fc as ce,
O as _n,
G as Cn,
j8 as Wl,
$ as Jl,
iZ as Yl,
j9 as Kl,
fC as Lf,
ja as Rf,
ge as mr,
a8 as Xl,
jb as Zl,
jc as Pf,
e$ as Bf,
fA as fr,
ga as zf,
f_ as Ri,
jd as Ds,
hZ as hr,
je as Ql,
hX as Is,
fi as qf,
jf as Ff,
h_ as Bo,
h$ as zo,
dS as Ks,
M as eu,
F as En,
jg as os,
cs as tu,
fP as jf,
jh as Ns,
J as Ft,
A as be,
g3 as Za,
bM as Xs,
m as nu,
cc as _a,
ji as $f,
jj as Uf,
jk as Vf,
bz as Xn,
c3 as Hf,
V as Gf,
e as su,
dA as au,
jl as Wf,
eA as Jf,
d as Yf,
jm as Pi,
jn as Kf,
jo as Xf,
di as Zf,
gQ as Zs,
eZ as Qf,
jp as Qs,
aY as eh,
l as Bi,
bJ as th,
u as ou,
hz as ru,
it as nh,
bW as Qa,
_ as sh,
jq as ah,
cS as oh,
bR as zi,
jr as rh,
js as ih,
jt as ch,
g0 as lh,
v as qi
} from "./tracking-5779d19a.js";
import {
N as Qt,
m as en,
t as uh,
c as Ee,
d as Je,
n as iu,
M as cu,
e as gr,
f as qo,
h as wt,
b as Ca,
F as Kt,
i as lu,
j as uu,
k as Ea,
l as Pe,
R as kt,
o as _t,
p as Fo,
q as ph,
r as pu,
s as du,
v as jo,
w as dh,
x as mh,
y as fh,
z as St,
C as hh,
G as gh,
H as eo,
I as bh,
J as vh,
K as xh,
L as yh,
O as gt,
Q as wh,
U as ea,
V as kh,
W as _h,
X as Ch,
D as mu,
P as fu,
T as hu,
Y as Eh,
Z as Ah,
_ as gu,
$ as Sh,
A as Th,
a0 as Dh,
a1 as Ih,
a2 as Nh,
a3 as Mh,
a4 as Fi,
a5 as Ms,
a6 as ji,
a7 as Oh,
a8 as Lh,
E as Rh,
a9 as Ph
} from "./autocomplete_results-829164f2.js";
import {
u as ue,
l as bu,
F as Y,
f as ta,
j as br,
T as X,
a as ne,
S as vr,
B as Aa,
c as fe,
h as ft,
O as Ae,
i as vu,
b as xe,
k as Bh,
w as zh,
n as qh,
M as mn
} from "./FlexBox-8b7f0d6c.js";
import {
n as Fh,
i as $i
} from "./share_dialog-f2ebc006.js";
import {
M as $t
} from "./mousetrap-6acb8cb1.js";
import {
u as jh,
r as Ui,
H as xu,
h as $h
} from "./index-5fa16c7e.js";
import {
r as he,
j as Uh,
M as ds
} from "./sortBy-53166f8e.js";
import {
D as yu,
z as wu,
B as Vh,
G as Hh,
I as Gh,
J as ku,
K as Wh,
L as bt,
A as An,
N as xr,
c as Jh,
O as Yh,
Q as Me,
V as Kh,
W as Xh,
X as Zh,
Y as _u,
i as Qh,
Z as eg
} from "./post-72fb30bd.js";
import {
B as Vs
} from "./button-8ee58a9a.js";
import "./_sentry-release-injection-file-9254565a.js";
import {
t as Cu,
a as Sa,
b as ms,
M as fs,
s as tg
} from "./Modal-83447875.js";
import {
P as Eu
} from "./modal-3f58ef3d.js";
import {
L as ng,
T as sg
} from "./TrashIcon-618c7548.js";
import {
T as Vi
} from "./textarea-718e4ef4.js";
import {
_ as Z,
d as ag,
u as $o,
R as og
} from "./responsive_img-3c51e57a.js";
import {
e as Uo
} from "./encodeHtmlEntities-35ab9c34.js";
import {
a as Fe,
T as rg
} from "./util-typed-d6d3f2ff.js";
import {
c as pe,
X as yr
} from "./x-933ea65f.js";
import {
c as ig
} from "./_arrayIncludesWith-27de2814.js";
import {
_ as cg
} from "./toNumber-f902633e.js";
import {
as as Vo,
at as Hi,
au as mt,
av as lg,
aw as ug,
T as Au,
q as Gi,
I as Ho,
ax as Vt,
ay as Jn,
aq as fn,
e as Su,
u as pg,
c as dg,
az as mg,
aA as fg,
aB as Wi,
aC as Ji,
aD as hg
} from "./Attachments-26bf7580.js";
import {
b as Tu,
H as gg,
u as Du,
d as bg,
c as vg
} from "./AlertDialog-f1c63885.js";
import {
d as wr
} from "./debounce-c95d884c.js";
import {
p as na
} from "./pick-971b5e11.js";
import {
V as Ta,
U as Iu,
M as xg,
P as yg,
b as wg,
l as kg,
c as _g,
d as Cg,
e as Eg,
f as Ag,
g as Sg,
h as Tg
} from "./video_editor-b834fb32.js";
import {
A as Dg
} from "./AuditionPlayer-59a31fcb.js";
import {
F as Nu
} from "./FilePicker-c9d24a53.js";
import {
M as vn,
a as Mt,
b as to,
S as Ig
} from "./Menu-8ddb0f91.js";
import {
S as Sn
} from "./Progress-d3ff4e14.js";
import {
S as Ng,
U as Mg,
c as hn
} from "./VideoVerticalMenu-e627c680.js";
import {
D as Mu
} from "./download-dea01c9e.js";
import {
M as Og
} from "./menu-46e3f3ec.js";
import {
c as Lg
} from "./tiktok-27b6efdb.js";
import {
a as kr,
B as Ou,
b as _r,
C as Lu,
c as Ru,
I as Pu,
L as Bu,
O as Cr,
S as zu
} from "./index-2d69285b.js";
import {
H as qu
} from "./index-e42bf16e.js";
import {
m as Rg,
t as Er,
bd as Pg,
aJ as Bg,
bA as zg,
a as qg,
d as Fg
} from "./homepage_hooks-258e84da.js";
import {
M as jg,
m as $g
} from "./mention-a2befbf1.js";
import {
H as Ug,
u as Vg,
a as Yi,
C as sa
} from "./HoverCard-92fb7948.js";
import {
D as Hg,
a as Gg
} from "./Divider-a2a4ef65.js";
import {
I as Wg
} from "./ChooseGeneratedImageModal-21455ba2.js";
import {
T as Pt
} from "./Tooltip-2b2b71ff.js";
import {
P as Jg
} from "./PubAccentTheme-7a3e2ba8.js";
import {
q as Ki
} from "./transition-d7aff1cb.js";
import {
a as Yg
} from "./user-76406467.js";
import "./Divider.module-10da8075.js";
import {
k as Xi
} from "./keyBy-15cc8c09.js";
import {
o as Kg
} from "./omit-7d67b4d6.js";
import {
T as rs
} from "./TextInput-f605802a.js";
import {
S as Xg
} from "./Select-169c9194.js";
import {
B as Zg,
I as Qg,
S as eb,
L as tb,
T as nb
} from "./index-6384ea2c.js";
import {
L as Fu
} from "./link-e8367f9e.js";
import {
L as sb
} from "./list-5d68e69a.js";
import {
C as Ar
} from "./chevron-down-0a2aacdb.js";
import {
S as ab
} from "./Portal-64a61d16.js";
import {
C as ob
} from "./candlestick-chart-3c1cfe3a.js";
import {
a as ju,
M as $u
} from "./MathJax-f8068bcc.js";
import {
S as rb
} from "./square-pen-04312085.js";
import {
P as Zi
} from "./Popover-e1be8edd.js";
import {
ImageViewerModal as ib
} from "./ImageViewerModal-93648707.js";
import {
I as cb
} from "./info-4fcf7ea1.js";
import {
R as Uu
} from "./Recipe-d18f4761.js";
(function() {
try {
var t = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : {},
e = new Error().stack;
e && (t._sentryDebugIds = t._sentryDebugIds || {}, t._sentryDebugIds[e] = "713640c8-09c6-4372-9ff7-1f3e5ac332af", t._sentryDebugIdIdentifier = "sentry-dbid-713640c8-09c6-4372-9ff7-1f3e5ac332af")
} catch (n) {}
})();
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const lb = pe("AlignCenter", [
["line", {
x1: "21",
x2: "3",
y1: "6",
y2: "6",
key: "1fp77t"
}],
["line", {
x1: "17",
x2: "7",
y1: "12",
y2: "12",
key: "rsh8ii"
}],
["line", {
x1: "19",
x2: "5",
y1: "18",
y2: "18",
key: "1t0tuv"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const ub = pe("AlignRight", [
["line", {
x1: "21",
x2: "3",
y1: "6",
y2: "6",
key: "1fp77t"
}],
["line", {
x1: "21",
x2: "9",
y1: "12",
y2: "12",
key: "1uyos4"
}],
["line", {
x1: "21",
x2: "7",
y1: "18",
y2: "18",
key: "1g9eri"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const pb = pe("Asterisk", [
["path", {
d: "M12 6v12",
key: "1vza4d"
}],
["path", {
d: "M17.196 9 6.804 15",
key: "1ah31z"
}],
["path", {
d: "m6.804 9 10.392 6",
key: "1b6pxd"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const db = pe("CodeSquare", [
["rect", {
width: "18",
height: "18",
x: "3",
y: "3",
rx: "2",
key: "afitv7"
}],
["path", {
d: "m10 10-2 2 2 2",
key: "p6et6i"
}],
["path", {
d: "m14 14 2-2-2-2",
key: "m075q2"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const mb = pe("Croissant", [
["path", {
d: "m4.6 13.11 5.79-3.21c1.89-1.05 4.79 1.78 3.71 3.71l-3.22 5.81C8.8 23.16.79 15.23 4.6 13.11Z",
key: "1ozxlb"
}],
["path", {
d: "m10.5 9.5-1-2.29C9.2 6.48 8.8 6 8 6H4.5C2.79 6 2 6.5 2 8.5a7.71 7.71 0 0 0 2 4.83",
key: "ffuyb5"
}],
["path", {
d: "M8 6c0-1.55.24-4-2-4-2 0-2.5 2.17-2.5 4",
key: "osnpzi"
}],
["path", {
d: "m14.5 13.5 2.29 1c.73.3 1.21.7 1.21 1.5v3.5c0 1.71-.5 2.5-2.5 2.5a7.71 7.71 0 0 1-4.83-2",
key: "1vubaw"
}],
["path", {
d: "M18 16c1.55 0 4-.24 4 2 0 2-2.17 2.5-4 2.5",
key: "wxr772"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const fb = pe("DollarSign", [
["line", {
x1: "12",
x2: "12",
y1: "2",
y2: "22",
key: "7eqyqh"
}],
["path", {
d: "M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",
key: "1b0p4s"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const hb = pe("Expand", [
["path", {
d: "m21 21-6-6m6 6v-4.8m0 4.8h-4.8",
key: "1c15vz"
}],
["path", {
d: "M3 16.2V21m0 0h4.8M3 21l6-6",
key: "1fsnz2"
}],
["path", {
d: "M21 7.8V3m0 0h-4.8M21 3l-6 6",
key: "hawz9i"
}],
["path", {
d: "M3 7.8V3m0 0h4.8M3 3l6 6",
key: "u9ee12"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const gb = pe("Feather", [
["path", {
d: "M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z",
key: "u4sw5n"
}],
["line", {
x1: "16",
x2: "2",
y1: "8",
y2: "22",
key: "1c47m2"
}],
["line", {
x1: "17.5",
x2: "9",
y1: "15",
y2: "15",
key: "2fj3pr"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const bb = pe("Heading1", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["path", {
d: "m17 12 3-2v8",
key: "1hhhft"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const vb = pe("Heading2", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["path", {
d: "M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",
key: "9jr5yi"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const xb = pe("Heading3", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["path", {
d: "M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",
key: "68ncm8"
}],
["path", {
d: "M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",
key: "1ejuhz"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const yb = pe("Heading4", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["path", {
d: "M17 10v4h4",
key: "13sv97"
}],
["path", {
d: "M21 10v8",
key: "1kdml4"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const wb = pe("Heading5", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["path", {
d: "M17 13v-3h4",
key: "1nvgqp"
}],
["path", {
d: "M17 17.7c.4.2.8.3 1.3.3 1.5 0 2.7-1.1 2.7-2.5S19.8 13 18.3 13H17",
key: "2nebdn"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const kb = pe("Heading6", [
["path", {
d: "M4 12h8",
key: "17cfdx"
}],
["path", {
d: "M4 18V6",
key: "1rz3zl"
}],
["path", {
d: "M12 18V6",
key: "zqpxq5"
}],
["circle", {
cx: "19",
cy: "16",
r: "2",
key: "15mx69"
}],
["path", {
d: "M20 10c-2 2-3 3.5-3 6",
key: "f35dl0"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const _b = pe("Heading", [
["path", {
d: "M6 12h12",
key: "8npq4p"
}],
["path", {
d: "M6 20V4",
key: "1w1bmo"
}],
["path", {
d: "M18 20V4",
key: "o2hl4u"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Cb = pe("HelpCircle", [
["circle", {
cx: "12",
cy: "12",
r: "10",
key: "1mglay"
}],
["path", {
d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",
key: "1u773s"
}],
["path", {
d: "M12 17h.01",
key: "p32p05"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Eb = pe("ImageOff", [
["line", {
x1: "2",
x2: "22",
y1: "2",
y2: "22",
key: "a6p6uj"
}],
["path", {
d: "M10.41 10.41a2 2 0 1 1-2.83-2.83",
key: "1bzlo9"
}],
["line", {
x1: "13.5",
x2: "6",
y1: "13.5",
y2: "21",
key: "1q0aeu"
}],
["line", {
x1: "18",
x2: "21",
y1: "12",
y2: "15",
key: "5mozeu"
}],
["path", {
d: "M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",
key: "mmje98"
}],
["path", {
d: "M21 15V5a2 2 0 0 0-2-2H9",
key: "43el77"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Qi = pe("Indent", [
["polyline", {
points: "3 8 7 12 3 16",
key: "f3rxhf"
}],
["line", {
x1: "21",
x2: "11",
y1: "12",
y2: "12",
key: "1fxxak"
}],
["line", {
x1: "21",
x2: "11",
y1: "6",
y2: "6",
key: "asgu94"
}],
["line", {
x1: "21",
x2: "11",
y1: "18",
y2: "18",
key: "13dsj7"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ab = pe("Maximize2", [
["polyline", {
points: "15 3 21 3 21 9",
key: "mznyad"
}],
["polyline", {
points: "9 21 3 21 3 15",
key: "1avn1i"
}],
["line", {
x1: "21",
x2: "14",
y1: "3",
y2: "10",
key: "ota7mn"
}],
["line", {
x1: "3",
x2: "10",
y1: "21",
y2: "14",
key: "1atl0r"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Sb = pe("MessageSquareQuote", [
["path", {
d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",
key: "1lielz"
}],
["path", {
d: "M8 12a2 2 0 0 0 2-2V8H8",
key: "1jfesj"
}],
["path", {
d: "M14 12a2 2 0 0 0 2-2V8h-2",
key: "1dq9mh"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Go = pe("Mic", [
["path", {
d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z",
key: "131961"
}],
["path", {
d: "M19 10v2a7 7 0 0 1-14 0v-2",
key: "1vc78b"
}],
["line", {
x1: "12",
x2: "12",
y1: "19",
y2: "22",
key: "x3vr5v"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Tb = pe("MoveDiagonal2", [
["polyline", {
points: "5 11 5 5 11 5",
key: "ncfzxk"
}],
["polyline", {
points: "19 13 19 19 13 19",
key: "1mk7hk"
}],
["line", {
x1: "5",
x2: "19",
y1: "5",
y2: "19",
key: "mcyte3"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Db = pe("Pilcrow", [
["path", {
d: "M13 4v16",
key: "8vvj80"
}],
["path", {
d: "M17 4v16",
key: "7dpous"
}],
["path", {
d: "M19 4H9.5a4.5 4.5 0 0 0 0 9H13",
key: "sh4n9v"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ib = pe("PlaySquare", [
["rect", {
width: "18",
height: "18",
x: "3",
y: "3",
rx: "2",
key: "afitv7"
}],
["path", {
d: "m9 8 6 4-6 4Z",
key: "f1r3lt"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Nb = pe("Redo", [
["path", {
d: "M21 7v6h-6",
key: "3ptur4"
}],
["path", {
d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6 2.3l3 2.7",
key: "1kgawr"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Mb = pe("Sigma", [
["path", {
d: "M18 7V4H6l6 8-6 8h12v-3",
key: "zis8ev"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Ob = pe("Undo", [
["path", {
d: "M3 7v6h6",
key: "1v2h90"
}],
["path", {
d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6 2.3L3 13",
key: "1r6uu6"
}]
]);
/**
* @license lucide-preact v0.323.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/
const Lb = pe("Wand", [
["path", {
d: "M15 4V2",
key: "z1p9b7"
}],
["path", {
d: "M15 16v-2",
key: "px0unx"
}],
["path", {
d: "M8 9h2",
key: "1g203m"
}],
["path", {
d: "M20 9h2",
key: "19tzq7"
}],
["path", {
d: "M17.8 11.8 19 13",
key: "yihg8r"
}],
["path", {
d: "M15 9h0",
key: "kg5t1u"
}],
["path", {
d: "M17.8 6.2 19 5",
key: "fd4us0"
}],
["path", {
d: "m3 21 9-9",
key: "1jfql5"
}],
["path", {
d: "M12.2 6.2 11 5",
key: "i3da3b"
}]
]);
function Rb() {
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
return de(() => s => {
e.forEach(a => a(s))
}, e)
}
const Da = typeof window != "undefined" && typeof window.document != "undefined" && typeof window.document.createElement != "undefined";
function Nn(t) {
const e = Object.prototype.toString.call(t);
return e === "[object Window]" || e === "[object global]"
}
function Sr(t) {
return "nodeType" in t
}
function je(t) {
var e, n;
return t ? Nn(t) ? t : Sr(t) && (e = (n = t.ownerDocument) == null ? void 0 : n.defaultView) != null ? e : window : window
}
function Tr(t) {
const {
Document: e
} = je(t);
return t instanceof e
}
function hs(t) {
return Nn(t) ? !1 : t instanceof je(t).HTMLElement
}
function Pb(t) {
return t instanceof je(t).SVGElement
}
function Mn(t) {
return t ? Nn(t) ? t.document : Sr(t) ? Tr(t) ? t : hs(t) ? t.ownerDocument : document : document : document
}
const Qe = Da ? wf : U;
function Ia(t) {
const e = J(t);
return Qe(() => {
e.current = t
}), we(function() {
for (var n = arguments.length, s = new Array(n), a = 0; a < n; a++) s[a] = arguments[a];
return e.current == null ? void 0 : e.current(...s)
}, [])
}
function Bb() {
const t = J(null),
e = we((s, a) => {
t.current = setInterval(s, a)
}, []),
n = we(() => {
t.current !== null && (clearInterval(t.current), t.current = null)
}, []);
return [e, n]
}
function is(t, e) {
e === void 0 && (e = [t]);
const n = J(t);
return Qe(() => {
n.current !== t && (n.current = t)
}, e), n
}
function gs(t, e) {
const n = J();
return de(() => {
const s = t(n.current);
return n.current = s, s
}, [...e])
}
function aa(t) {
const e = Ia(t),
n = J(null),
s = we(a => {
a !== n.current && (e == null || e(a, n.current)), n.current = a
}, []);
return [n, s]
}
function oa(t) {
const e = J();
return U(() => {
e.current = t
}, [t]), e.current
}
let no = {};
function bs(t, e) {
return de(() => {
if (e) return e;
const n = no[t] == null ? 0 : no[t] + 1;
return no[t] = n, t + "-" + n
}, [t, e])
}
function Vu(t) {
return function(e) {
for (var n = arguments.length, s = new Array(n > 1 ? n - 1 : 0), a = 1; a < n; a++) s[a - 1] = arguments[a];
return s.reduce((o, r) => {
const i = Object.entries(r);
for (const [c, l] of i) {
const u = o[c];
u != null && (o[c] = u + t * l)
}
return o
}, S({}, e))
}
}
const xn = Vu(1),
cs = Vu(-1);
function zb(t) {
return "clientX" in t && "clientY" in t
}
function Na(t) {
if (!t) return !1;
const {
KeyboardEvent: e
} = je(t.target);
return e && t instanceof e
}
function qb(t) {
if (!t) return !1;
const {
TouchEvent: e
} = je(t.target);
return e && t instanceof e
}
function ra(t) {
if (qb(t)) {
if (t.touches && t.touches.length) {
const {
clientX: e,
clientY: n
} = t.touches[0];
return {
x: e,
y: n
}
} else if (t.changedTouches && t.changedTouches.length) {
const {
clientX: e,
clientY: n
} = t.changedTouches[0];
return {
x: e,
y: n
}
}
}
return zb(t) ? {
x: t.clientX,
y: t.clientY
} : null
}
const Ht = Object.freeze({
Translate: {
toString(t) {
if (!t) return;
const {
x: e,
y: n
} = t;
return "translate3d(" + (e ? Math.round(e) : 0) + "px, " + (n ? Math.round(n) : 0) + "px, 0)"
}
},
Scale: {
toString(t) {
if (!t) return;
const {
scaleX: e,
scaleY: n
} = t;
return "scaleX(" + e + ") scaleY(" + n + ")"
}
},
Transform: {
toString(t) {
if (t) return [Ht.Translate.toString(t), Ht.Scale.toString(t)].join(" ")
}
},
Transition: {
toString(t) {
let {
property: e,
duration: n,
easing: s
} = t;
return e + " " + n + "ms " + s
}
}
}),
ec = "a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";
function Fb(t) {
return t.matches(ec) ? t : t.querySelector(ec)
}
const jb = {
display: "none"
};
function $b(t) {
let {
id: e,
value: n
} = t;
return ge.createElement("div", {
id: e,
style: jb
}, n)
}
const Ub = {
position: "fixed",
width: 1,
height: 1,
margin: -1,
border: 0,
padding: 0,
overflow: "hidden",
clip: "rect(0 0 0 0)",
clipPath: "inset(100%)",
whiteSpace: "nowrap"
};
function Vb(t) {
let {
id: e,
announcement: n
} = t;
return ge.createElement("div", {
id: e,
style: Ub,
role: "status",
"aria-live": "assertive",
"aria-atomic": !0
}, n)
}
function Hb() {
const [t, e] = z("");
return {
announce: we(s => {
s != null && e(s)
}, []),
announcement: t
}
}
const Hu = In(null);
function Gb(t) {
const e = Nt(Hu);
U(() => {
if (!e) throw new Error("useDndMonitor must be used within a children of <DndContext>");
return e(t)
}, [t, e])
}
function Wb() {
const [t] = z(() => new Set), e = we(s => (t.add(s), () => t.delete(s)), [t]);
return [we(s => {
let {
type: a,
event: o
} = s;
t.forEach(r => {
var i;
return (i = r[a]) == null ? void 0 : i.call(r, o)
})
}, [t]), e]
}
const Jb = {
draggable: `
To pick up a draggable item, press the space bar.
While dragging, use the arrow keys to move the item.
Press space again to drop the item in its new position, or press escape to cancel.
`
},
Yb = {
onDragStart(t) {
let {
active: e
} = t;
return "Picked up draggable item " + e.id + "."
},
onDragOver(t) {
let {
active: e,
over: n
} = t;
return n ? "Draggable item " + e.id + " was moved over droppable area " + n.id + "." : "Draggable item " + e.id + " is no longer over a droppable area."
},
onDragEnd(t) {
let {
active: e,
over: n
} = t;
return n ? "Draggable item " + e.id + " was dropped over droppable area " + n.id : "Draggable item " + e.id + " was dropped."
},
onDragCancel(t) {
let {
active: e
} = t;
return "Dragging was cancelled. Draggable item " + e.id + " was dropped."
}
};
function Kb(t) {
let {
announcements: e = Yb,
container: n,
hiddenTextDescribedById: s,
screenReaderInstructions: a = Jb
} = t;
const {
announce: o,
announcement: r
} = Hb(), i = bs("DndLiveRegion"), [c, l] = z(!1);
if (U(() => {
l(!0)
}, []), Gb(de(() => ({
onDragStart(d) {
let {
active: m
} = d;
o(e.onDragStart({
active: m
}))
},
onDragMove(d) {
let {
active: m,
over: f
} = d;
e.onDragMove && o(e.onDragMove({
active: m,
over: f
}))
},
onDragOver(d) {
let {
active: m,
over: f
} = d;
o(e.onDragOver({
active: m,
over: f
}))
},
onDragEnd(d) {
let {
active: m,
over: f
} = d;
o(e.onDragEnd({
active: m,
over: f
}))
},
onDragCancel(d) {
let {
active: m,
over: f
} = d;
o(e.onDragCancel({
active: m,
over: f
}))
}
}), [o, e])), !c) return null;
const u = ge.createElement(ge.Fragment, null, ge.createElement($b, {
id: s,
value: a.draggable
}), ge.createElement(Vb, {
id: i,
announcement: r
}));
return n ? ya(u, n) : u
}
var Ce;
(function(t) {
t.DragStart = "dragStart", t.DragMove = "dragMove", t.DragEnd = "dragEnd", t.DragCancel = "dragCancel", t.DragOver = "dragOver", t.RegisterDroppable = "registerDroppable", t.SetDroppableDisabled = "setDroppableDisabled", t.UnregisterDroppable = "unregisterDroppable"
})(Ce || (Ce = {}));
function ia() {}
function tc(t, e) {
return de(() => ({
sensor: t,
options: e != null ? e : {}
}), [t, e])
}
function Xb() {
for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
return de(() => [...e].filter(s => s != null), [...e])
}
const ct = Object.freeze({
x: 0,
y: 0
});
function Gu(t, e) {
return Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
}
function Zb(t, e) {
const n = ra(t);
if (!n) return "0 0";
const s = {
x: (n.x - e.left) / e.width * 100,
y: (n.y - e.top) / e.height * 100
};
return s.x + "% " + s.y + "%"
}
function Wu(t, e) {
let {
data: {
value: n
}
} = t, {
data: {
value: s
}
} = e;
return n - s
}
function Qb(t, e) {
let {
data: {
value: n
}
} = t, {
data: {
value: s
}
} = e;
return s - n
}
function nc(t) {
let {
left: e,
top: n,
height: s,
width: a
} = t;
return [{
x: e,
y: n
}, {
x: e + a,
y: n
}, {
x: e,
y: n + s
}, {
x: e + a,
y: n + s
}]
}
function Ju(t, e) {
if (!t || t.length === 0) return null;
const [n] = t;
return e ? n[e] : n
}
function sc(t, e, n) {
return e === void 0 && (e = t.left), n === void 0 && (n = t.top), {
x: e + t.width * .5,
y: n + t.height * .5
}
}
const ev = t => {
let {
collisionRect: e,
droppableRects: n,
droppableContainers: s
} = t;
const a = sc(e, e.left, e.top),
o = [];
for (const r of s) {
const {
id: i
} = r, c = n.get(i);
if (c) {
const l = Gu(sc(c), a);
o.push({
id: i,
data: {
droppableContainer: r,
value: l
}
})
}
}
return o.sort(Wu)
},
tv = t => {
let {
collisionRect: e,
droppableRects: n,
droppableContainers: s
} = t;
const a = nc(e),
o = [];
for (const r of s) {
const {
id: i
} = r, c = n.get(i);
if (c) {
const l = nc(c),
u = a.reduce((m, f, h) => m + Gu(l[h], f), 0),
d = Number((u / 4).toFixed(4));
o.push({
id: i,
data: {
droppableContainer: r,
value: d
}
})
}
}
return o.sort(Wu)
};
function nv(t, e) {
const n = Math.max(e.top, t.top),
s = Math.max(e.left, t.left),
a = Math.min(e.left + e.width, t.left + t.width),
o = Math.min(e.top + e.height, t.top + t.height),
r = a - s,
i = o - n;
if (s < a && n < o) {
const c = e.width * e.height,
l = t.width * t.height,
u = r * i,
d = u / (c + l - u);
return Number(d.toFixed(4))
}
return 0
}
const sv = t => {
let {
collisionRect: e,
droppableRects: n,
droppableContainers: s
} = t;
const a = [];
for (const o of s) {
const {
id: r
} = o, i = n.get(r);
if (i) {
const c = nv(i, e);
c > 0 && a.push({
id: r,
data: {
droppableContainer: o,
value: c
}
})
}
}
return a.sort(Qb)
};
function av(t, e, n) {
return P(S({}, t), {
scaleX: e && n ? e.width / n.width : 1,
scaleY: e && n ? e.height / n.height : 1
})
}
function Yu(t, e) {
return t && e ? {
x: t.left - e.left,
y: t.top - e.top
} : ct
}
function ov(t) {
return function(n) {
for (var s = arguments.length, a = new Array(s > 1 ? s - 1 : 0), o = 1; o < s; o++) a[o - 1] = arguments[o];
return a.reduce((r, i) => P(S({}, r), {
top: r.top + t * i.y,
bottom: r.bottom + t * i.y,
left: r.left + t * i.x,
right: r.right + t * i.x
}), S({}, n))
}
}
const rv = ov(1);
function Ku(t) {
if (t.startsWith("matrix3d(")) {
const e = t.slice(9, -1).split(/, /);
return {
x: +e[12],
y: +e[13],
scaleX: +e[0],
scaleY: +e[5]
}
} else if (t.startsWith("matrix(")) {
const e = t.slice(7, -1).split(/, /);
return {
x: +e[4],
y: +e[5],
scaleX: +e[0],
scaleY: +e[3]
}
}
return null
}
function iv(t, e, n) {
const s = Ku(e);
if (!s) return t;
const {
scaleX: a,
scaleY: o,
x: r,
y: i
} = s, c = t.left - r - (1 - a) * parseFloat(n), l = t.top - i - (1 - o) * parseFloat(n.slice(n.indexOf(" ") + 1)), u = a ? t.width / a : t.width, d = o ? t.height / o : t.height;
return {
width: u,
height: d,
top: l,
right: c + u,
bottom: l + d,
left: c
}
}
const cv = {
ignoreTransform: !1
};
function On(t, e) {
e === void 0 && (e = cv);
let n = t.getBoundingClientRect();
if (e.ignoreTransform) {
const {
getComputedStyle: l
} = je(t), {
transform: u,
transformOrigin: d
} = l(t);
u && (n = iv(n, u, d))
}
const {
top: s,
left: a,
width: o,
height: r,
bottom: i,
right: c
} = n;
return {
top: s,
left: a,
width: o,
height: r,
bottom: i,
right: c
}
}
function ac(t) {
return On(t, {
ignoreTransform: !0
})
}
function lv(t) {
const e = t.innerWidth,
n = t.innerHeight;
return {
top: 0,
left: 0,
right: e,
bottom: n,
width: e,
height: n
}
}
function uv(t, e) {
return e === void 0 && (e = je(t).getComputedStyle(t)), e.position === "fixed"
}
function pv(t, e) {
e === void 0 && (e = je(t).getComputedStyle(t));
const n = /(auto|scroll|overlay)/;
return ["overflow", "overflowX", "overflowY"].some(a => {
const o = e[a];
return typeof o == "string" ? n.test(o) : !1
})
}
function Ma(t, e) {
const n = [];
function s(a) {
if (e != null && n.length >= e || !a) return n;
if (Tr(a) && a.scrollingElement != null && !n.includes(a.scrollingElement)) return n.push(a.scrollingElement), n;
if (!hs(a) || Pb(a) || n.includes(a)) return n;
const {
getComputedStyle: o
} = je(a), r = o(a);
return a !== t && pv(a, r) && n.push(a), uv(a, r) ? n : s(a.parentNode)
}
return t ? s(t) : n
}
function Xu(t) {
const [e] = Ma(t, 1);
return e != null ? e : null
}
function so(t) {
return !Da || !t ? null : Nn(t) ? t : Sr(t) ? Tr(t) || t === Mn(t).scrollingElement ? window : hs(t) ? t : null : null
}
function Zu(t) {
return Nn(t) ? t.scrollX : t.scrollLeft
}
function Qu(t) {
return Nn(t) ? t.scrollY : t.scrollTop
}
function Wo(t) {
return {
x: Zu(t),
y: Qu(t)
}
}
var Ie;
(function(t) {
t[t.Forward = 1] = "Forward", t[t.Backward = -1] = "Backward"
})(Ie || (Ie = {}));
function ep(t) {
return !Da || !t ? !1 : t === document.scrollingElement
}
function tp(t) {
const e = {
x: 0,
y: 0
},
n = ep(t) ? {
height: window.innerHeight,
width: window.innerWidth
} : {
height: t.clientHeight,
width: t.clientWidth
},
s = {
x: t.scrollWidth - n.width,
y: t.scrollHeight - n.height
},
a = t.scrollTop <= e.y,
o = t.scrollLeft <= e.x,
r = t.scrollTop >= s.y,
i = t.scrollLeft >= s.x;
return {
isTop: a,
isLeft: o,
isBottom: r,
isRight: i,
maxScroll: s,
minScroll: e
}
}
const dv = {
x: .2,
y: .2
};
function mv(t, e, n, s, a) {
let {
top: o,
left: r,
right: i,
bottom: c
} = n;
s === void 0 && (s = 10), a === void 0 && (a = dv);
const {
isTop: l,
isBottom: u,
isLeft: d,
isRight: m
} = tp(t), f = {
x: 0,
y: 0
}, h = {
x: 0,
y: 0
}, g = {
height: e.height * a.y,
width: e.width * a.x
};
return !l && o <= e.top + g.height ? (f.y = Ie.Backward, h.y = s * Math.abs((e.top + g.height - o) / g.height)) : !u && c >= e.bottom - g.height && (f.y = Ie.Forward, h.y = s * Math.abs((e.bottom - g.height - c) / g.height)), !m && i >= e.right - g.width ? (f.x = Ie.Forward, h.x = s * Math.abs((e.right - g.width - i) / g.width)) : !d && r <= e.left + g.width && (f.x = Ie.Backward, h.x = s * Math.abs((e.left + g.width - r) / g.width)), {
direction: f,
speed: h
}
}
function fv(t) {
if (t === document.scrollingElement) {
const {
innerWidth: o,
innerHeight: r
} = window;
return {
top: 0,
left: 0,
right: o,
bottom: r,
width: o,
height: r
}
}
const {
top: e,
left: n,
right: s,
bottom: a
} = t.getBoundingClientRect();
return {
top: e,
left: n,
right: s,
bottom: a,
width: t.clientWidth,
height: t.clientHeight
}
}
function np(t) {
return t.reduce((e, n) => xn(e, Wo(n)), ct)
}
function hv(t) {
return t.reduce((e, n) => e + Zu(n), 0)
}
function gv(t) {
return t.reduce((e, n) => e + Qu(n), 0)
}
function sp(t, e) {
if (e === void 0 && (e = On), !t) return;
const {
top: n,
left: s,
bottom: a,
right: o
} = e(t);
Xu(t) && (a <= 0 || o <= 0 || n >= window.innerHeight || s >= window.innerWidth) && t.scrollIntoView({
block: "center",
inline: "center"
})
}
const bv = [
["x", ["left", "right"], hv],
["y", ["top", "bottom"], gv]
];
class Dr {
constructor(e, n) {
this.rect = void 0, this.width = void 0, this.height = void 0, this.top = void 0, this.bottom = void 0, this.right = void 0, this.left = void 0;
const s = Ma(n),
a = np(s);
this.rect = S({}, e), this.width = e.width, this.height = e.height;
for (const [o, r, i] of bv)
for (const c of r) Object.defineProperty(this, c, {
get: () => {
const l = i(s),
u = a[o] - l;
return this.rect[c] + u
},
enumerable: !0
});
Object.defineProperty(this, "rect", {
enumerable: !1
})
}
}
class Zn {
constructor(e) {
this.target = void 0, this.listeners = [], this.removeAll = () => {
this.listeners.forEach(n => {
var s;
return (s = this.target) == null ? void 0 : s.removeEventListener(...n)
})
}, this.target = e
}
add(e, n, s) {
var a;
(a = this.target) == null || a.addEventListener(e, n, s), this.listeners.push([e, n, s])
}
}
function vv(t) {
const {
EventTarget: e
} = je(t);
return t instanceof e ? t : Mn(t)
}
function ao(t, e) {
const n = Math.abs(t.x),
s = Math.abs(t.y);
return typeof e == "number" ? Math.sqrt(Xa(n, 2) + Xa(s, 2)) > e : "x" in e && "y" in e ? n > e.x && s > e.y : "x" in e ? n > e.x : "y" in e ? s > e.y : !1
}
var Ze;
(function(t) {
t.Click = "click", t.DragStart = "dragstart", t.Keydown = "keydown", t.ContextMenu = "contextmenu", t.Resize = "resize", t.SelectionChange = "selectionchange", t.VisibilityChange = "visibilitychange"
})(Ze || (Ze = {}));
function oc(t) {
t.preventDefault()
}
function xv(t) {
t.stopPropagation()
}
var te;
(function(t) {
t.Space = "Space", t.Down = "ArrowDown", t.Right = "ArrowRight", t.Left = "ArrowLeft", t.Up = "ArrowUp", t.Esc = "Escape", t.Enter = "Enter"
})(te || (te = {}));
const ap = {
start: [te.Space, te.Enter],
cancel: [te.Esc],
end: [te.Space, te.Enter]
},
yv = (t, e) => {
let {
currentCoordinates: n
} = e;
switch (t.code) {
case te.Right:
return P(S({}, n), {
x: n.x + 25
});
case te.Left:
return P(S({}, n), {
x: n.x - 25
});
case te.Down:
return P(S({}, n), {
y: n.y + 25
});
case te.Up:
return P(S({}, n), {
y: n.y - 25
})
}
};
class Ir {
constructor(e) {
this.props = void 0, this.autoScrollEnabled = !1, this.referenceCoordinates = void 0, this.listeners = void 0, this.windowListeners = void 0, this.props = e;
const {
event: {
target: n
}
} = e;
this.props = e, this.listeners = new Zn(Mn(n)), this.windowListeners = new Zn(je(n)), this.handleKeyDown = this.handleKeyDown.bind(this), this.handleCancel = this.handleCancel.bind(this), this.attach()
}
attach() {
this.handleStart(), this.windowListeners.add(Ze.Resize, this.handleCancel), this.windowListeners.add(Ze.VisibilityChange, this.handleCancel), setTimeout(() => this.listeners.add(Ze.Keydown, this.handleKeyDown))
}
handleStart() {
const {
activeNode: e,
onStart: n
} = this.props, s = e.node.current;
s && sp(s), n(ct)
}
handleKeyDown(e) {
if (Na(e)) {
const {
active: n,
context: s,
options: a
} = this.props, {
keyboardCodes: o = ap,
coordinateGetter: r = yv,
scrollBehavior: i = "smooth"
} = a, {
code: c
} = e;
if (o.end.includes(c)) {
this.handleEnd(e);
return
}
if (o.cancel.includes(c)) {
this.handleCancel(e);
return
}
const {
collisionRect: l
} = s.current, u = l ? {
x: l.left,
y: l.top
} : ct;
this.referenceCoordinates || (this.referenceCoordinates = u);
const d = r(e, {
active: n,
context: s.current,
currentCoordinates: u
});
if (d) {
const m = cs(d, u),
f = {
x: 0,
y: 0
},
{
scrollableAncestors: h
} = s.current;
for (const g of h) {
const b = e.code,
{
isTop: x,
isRight: v,
isLeft: w,
isBottom: E,
maxScroll: _,
minScroll: k
} = tp(g),
M = fv(g),
y = {
x: Math.min(b === te.Right ? M.right - M.width / 2 : M.right, Math.max(b === te.Right ? M.left : M.left + M.width / 2, d.x)),
y: Math.min(b === te.Down ? M.bottom - M.height / 2 : M.bottom, Math.max(b === te.Down ? M.top : M.top + M.height / 2, d.y))
},
T = b === te.Right && !v || b === te.Left && !w,
D = b === te.Down && !E || b === te.Up && !x;
if (T && y.x !== d.x) {
const C = g.scrollLeft + m.x,
L = b === te.Right && C <= _.x || b === te.Left && C >= k.x;
if (L && !m.y) {
g.scrollTo({
left: C,
behavior: i
});
return
}
L ? f.x = g.scrollLeft - C : f.x = b === te.Right ? g.scrollLeft - _.x : g.scrollLeft - k.x, f.x && g.scrollBy({
left: -f.x,
behavior: i
});
break
} else if (D && y.y !== d.y) {
const C = g.scrollTop + m.y,
L = b === te.Down && C <= _.y || b === te.Up && C >= k.y;
if (L && !m.x) {
g.scrollTo({
top: C,
behavior: i
});
return
}
L ? f.y = g.scrollTop - C : f.y = b === te.Down ? g.scrollTop - _.y : g.scrollTop - k.y, f.y && g.scrollBy({
top: -f.y,
behavior: i
});
break
}
}
this.handleMove(e, xn(cs(d, this.referenceCoordinates), f))
}
}
}
handleMove(e, n) {
const {
onMove: s
} = this.props;
e.preventDefault(), s(n)
}
handleEnd(e) {
const {
onEnd: n
} = this.props;
e.preventDefault(), this.detach(), n()
}
handleCancel(e) {
const {
onCancel: n
} = this.props;
e.preventDefault(), this.detach(), n()
}
detach() {
this.listeners.removeAll(), this.windowListeners.removeAll()
}
}
Ir.activators = [{
eventName: "onKeyDown",
handler: (t, e, n) => {
let {
keyboardCodes: s = ap,
onActivation: a
} = e, {
active: o
} = n;
const {
code: r
} = t.nativeEvent;
if (s.start.includes(r)) {
const i = o.activatorNode.current;
return i && t.target !== i ? !1 : (t.preventDefault(), a == null || a({
event: t.nativeEvent
}), !0)
}
return !1
}
}];
function rc(t) {
return !!(t && "distance" in t)
}
function ic(t) {
return !!(t && "delay" in t)
}
class Nr {
constructor(e, n, s) {
var a;
s === void 0 && (s = vv(e.event.target)), this.props = void 0, this.events = void 0, this.autoScrollEnabled = !0, this.document = void 0, this.activated = !1, this.initialCoordinates = void 0, this.timeoutId = null, this.listeners = void 0, this.documentListeners = void 0, this.windowListeners = void 0, this.props = e, this.events = n;
const {
event: o
} = e, {
target: r
} = o;
this.props = e, this.events = n, this.document = Mn(r), this.documentListeners = new Zn(this.document), this.listeners = new Zn(s), this.windowListeners = new Zn(je(r)), this.initialCoordinates = (a = ra(o)) != null ? a : ct, this.handleStart = this.handleStart.bind(this), this.handleMove = this.handleMove.bind(this), this.handleEnd = this.handleEnd.bind(this), this.handleCancel = this.handleCancel.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.removeTextSelection = this.removeTextSelection.bind(this), this.attach()
}
attach() {
const {
events: e,
props: {
options: {
activationConstraint: n
}
}
} = this;
if (this.listeners.add(e.move.name, this.handleMove, {
passive: !1
}), this.listeners.add(e.end.name, this.handleEnd), this.windowListeners.add(Ze.Resize, this.handleCancel), this.windowListeners.add(Ze.DragStart, oc), this.windowListeners.add(Ze.VisibilityChange, this.handleCancel), this.windowListeners.add(Ze.ContextMenu, oc), this.documentListeners.add(Ze.Keydown, this.handleKeydown), n) {
if (rc(n)) return;
if (ic(n)) {
this.timeoutId = setTimeout(this.handleStart, n.delay);
return
}
}
this.handleStart()
}
detach() {
this.listeners.removeAll(), this.windowListeners.removeAll(), setTimeout(this.documentListeners.removeAll, 50), this.timeoutId !== null && (clearTimeout(this.timeoutId), this.timeoutId = null)
}
handleStart() {
const {
initialCoordinates: e
} = this, {
onStart: n
} = this.props;
e && (this.activated = !0, this.documentListeners.add(Ze.Click, xv, {
capture: !0
}), this.removeTextSelection(), this.documentListeners.add(Ze.SelectionChange, this.removeTextSelection), n(e))
}
handleMove(e) {
var n;
const {
activated: s,
initialCoordinates: a,
props: o
} = this, {
onMove: r,
options: {
activationConstraint: i
}
} = o;
if (!a) return;
const c = (n = ra(e)) != null ? n : ct,
l = cs(a, c);
if (!s && i) {
if (ic(i)) return ao(l, i.tolerance) ? this.handleCancel() : void 0;
if (rc(i)) return i.tolerance != null && ao(l, i.tolerance) ? this.handleCancel() : ao(l, i.distance) ? this.handleStart() : void 0
}
e.cancelable && e.preventDefault(), r(c)
}
handleEnd() {
const {
onEnd: e
} = this.props;
this.detach(), e()
}
handleCancel() {
const {
onCancel: e
} = this.props;
this.detach(), e()
}
handleKeydown(e) {
e.code === te.Esc && this.handleCancel()
}
removeTextSelection() {
var e;
(e = this.document.getSelection()) == null || e.removeAllRanges()
}
}
const wv = {
move: {
name: "pointermove"
},
end: {
name: "pointerup"
}
};
class Mr extends Nr {
constructor(e) {
const {
event: n
} = e, s = Mn(n.target);
super(e, wv, s)
}
}
Mr.activators = [{
eventName: "onPointerDown",
handler: (t, e) => {
let {
nativeEvent: n
} = t, {
onActivation: s
} = e;
return !n.isPrimary || n.button !== 0 ? !1 : (s == null || s({
event: n
}), !0)
}
}];
const kv = {
move: {
name: "mousemove"
},
end: {
name: "mouseup"
}
};
var Jo;
(function(t) {
t[t.RightClick = 2] = "RightClick"
})(Jo || (Jo = {}));
class _v extends Nr {
constructor(e) {
super(e, kv, Mn(e.event.target))
}
}
_v.activators = [{
eventName: "onMouseDown",
handler: (t, e) => {
let {
nativeEvent: n
} = t, {
onActivation: s
} = e;
return n.button === Jo.RightClick ? !1 : (s == null || s({
event: n
}), !0)
}
}];
const oo = {
move: {
name: "touchmove"
},
end: {
name: "touchend"
}
};
class Cv extends Nr {
constructor(e) {
super(e, oo)
}
static setup() {
return window.addEventListener(oo.move.name, e, {
capture: !1,
passive: !1
}),
function() {
window.removeEventListener(oo.move.name, e)
};
function e() {}
}
}
Cv.activators = [{
eventName: "onTouchStart",
handler: (t, e) => {
let {
nativeEvent: n
} = t, {
onActivation: s
} = e;
const {
touches: a
} = n;
return a.length > 1 ? !1 : (s == null || s({
event: n
}), !0)
}
}];
var Qn;
(function(t) {
t[t.Pointer = 0] = "Pointer", t[t.DraggableRect = 1] = "DraggableRect"
})(Qn || (Qn = {}));
var ca;
(function(t) {
t[t.TreeOrder = 0] = "TreeOrder", t[t.ReversedTreeOrder = 1] = "ReversedTreeOrder"
})(ca || (ca = {}));
function Ev(t) {
let {
acceleration: e,
activator: n = Qn.Pointer,
canScroll: s,
draggingRect: a,
enabled: o,
interval: r = 5,
order: i = ca.TreeOrder,
pointerCoordinates: c,
scrollableAncestors: l,
scrollableAncestorRects: u,
delta: d,
threshold: m
} = t;
const f = Sv({
delta: d,
disabled: !o
}),
[h, g] = Bb(),
b = J({
x: 0,
y: 0
}),
x = J({
x: 0,
y: 0
}),
v = de(() => {
switch (n) {
case Qn.Pointer:
return c ? {
top: c.y,
bottom: c.y,
left: c.x,
right: c.x
} : null;
case Qn.DraggableRect:
return a
}
}, [n, a, c]),
w = J(null),
E = we(() => {
const k = w.current;
if (!k) return;
const M = b.current.x * x.current.x,
y = b.current.y * x.current.y;
k.scrollBy(M, y)
}, []),
_ = de(() => i === ca.TreeOrder ? [...l].reverse() : l, [i, l]);
U(() => {
if (!o || !l.length || !v) {
g();
return
}
for (const k of _) {
if ((s == null ? void 0 : s(k)) === !1) continue;
const M = l.indexOf(k),
y = u[M];
if (!y) continue;
const {
direction: T,
speed: D
} = mv(k, y, v, e, m);
for (const C of ["x", "y"]) f[C][T[C]] || (D[C] = 0, T[C] = 0);
if (D.x > 0 || D.y > 0) {
g(), w.current = k, h(E, r), b.current = D, x.current = T;
return
}
}
b.current = {
x: 0,
y: 0
}, x.current = {
x: 0,
y: 0
}, g()
}, [e, E, s, g, o, r, JSON.stringify(v), JSON.stringify(f), h, l, _, u, JSON.stringify(m)])
}
const Av = {
x: {
[Ie.Backward]: !1,
[Ie.Forward]: !1
},
y: {
[Ie.Backward]: !1,
[Ie.Forward]: !1
}
};
function Sv(t) {
let {
delta: e,
disabled: n
} = t;
const s = oa(e);
return gs(a => {
if (n || !s || !a) return Av;
const o = {
x: Math.sign(e.x - s.x),
y: Math.sign(e.y - s.y)
};
return {
x: {
[Ie.Backward]: a.x[Ie.Backward] || o.x === -1,
[Ie.Forward]: a.x[Ie.Forward] || o.x === 1
},
y: {
[Ie.Backward]: a.y[Ie.Backward] || o.y === -1,
[Ie.Forward]: a.y[Ie.Forward] || o.y === 1
}
}
}, [n, e, s])
}
function Tv(t, e) {
const n = e !== null ? t.get(e) : void 0,
s = n ? n.node.current : null;
return gs(a => {
var o;
return e === null ? null : (o = s != null ? s : a) != null ? o : null
}, [s, e])
}
function Dv(t, e) {
return de(() => t.reduce((n, s) => {
const {
sensor: a
} = s, o = a.activators.map(r => ({
eventName: r.eventName,
handler: e(r.handler, s)
}));
return [...n, ...o]
}, []), [t, e])
}
var ls;
(function(t) {
t[t.Always = 0] = "Always", t[t.BeforeDragging = 1] = "BeforeDragging", t[t.WhileDragging = 2] = "WhileDragging"
})(ls || (ls = {}));
var Yo;
(function(t) {
t.Optimized = "optimized"
})(Yo || (Yo = {}));
const cc = new Map;
function Iv(t, e) {
let {
dragging: n,
dependencies: s,
config: a
} = e;
const [o, r] = z(null), i = o != null, {
frequency: c,
measure: l,
strategy: u
} = a, d = J(t), m = x(), f = is(m), h = we(function(v) {
v === void 0 && (v = []), !f.current && r(w => w ? w.concat(v) : v)
}, [f]), g = J(null), b = gs(v => {
if (m && !n) return cc;
const w = o;
if (!v || v === cc || d.current !== t || w != null) {
const E = new Map;
for (let _ of t) {
if (!_) continue;
if (w && w.length > 0 && !w.includes(_.id) && _.rect.current) {
E.set(_.id, _.rect.current);
continue
}
const k = _.node.current,
M = k ? new Dr(l(k), k) : null;
_.rect.current = M, M && E.set(_.id, M)
}
return E
}
return v
}, [t, o, n, m, l]);
return U(() => {
d.current = t
}, [t]), U(() => {
m || requestAnimationFrame(() => h())
}, [n, m]), U(() => {
i && r(null)
}, [i]), U(() => {
m || typeof c != "number" || g.current !== null || (g.current = setTimeout(() => {
h(), g.current = null
}, c))
}, [c, m, h, ...s]), {
droppableRects: b,
measureDroppableContainers: h,
measuringScheduled: i
};
function x() {
switch (u) {
case ls.Always:
return !1;
case ls.BeforeDragging:
return n;
default:
return !n
}
}
}
function Or(t, e) {
return gs(n => t ? n || (typeof e == "function" ? e(t) : t) : null, [e, t])
}
function Nv(t, e) {
return Or(t, e)
}
function Mv(t) {
let {
callback: e,
disabled: n
} = t;
const s = Ia(e),
a = de(() => {
if (n || typeof window == "undefined" || typeof window.MutationObserver == "undefined") return;
const {
MutationObserver: o
} = window;
return new o(s)
}, [s, n]);
return U(() => () => a == null ? void 0 : a.disconnect(), [a]), a
}
function Oa(t) {
let {
callback: e,
disabled: n
} = t;
const s = Ia(e),
a = de(() => {
if (n || typeof window == "undefined" || typeof window.ResizeObserver == "undefined") return;
const {
ResizeObserver: o
} = window;
return new o(s)
}, [n]);
return U(() => () => a == null ? void 0 : a.disconnect(), [a]), a
}
function Ov(t) {
return new Dr(On(t), t)
}
function lc(t, e, n) {
e === void 0 && (e = Ov);
const [s, a] = cr(i, null), o = Mv({
callback(c) {
if (t)
for (const l of c) {
const {
type: u,
target: d
} = l;
if (u === "childList" && d instanceof HTMLElement && d.contains(t)) {
a();
break
}
}
}
}), r = Oa({
callback: a
});
return Qe(() => {
a(), t ? (r == null || r.observe(t), o == null || o.observe(document.body, {
childList: !0,
subtree: !0
})) : (r == null || r.disconnect(), o == null || o.disconnect())
}, [t]), s;
function i(c) {
if (!t) return null;
if (t.isConnected === !1) {
var l;
return (l = c != null ? c : n) != null ? l : null
}
const u = e(t);
return JSON.stringify(c) === JSON.stringify(u) ? c : u
}
}
function Lv(t) {
const e = Or(t);
return Yu(t, e)
}
const uc = [];
function Rv(t) {
const e = J(t),
n = gs(s => t ? s && s !== uc && t && e.current && t.parentNode === e.current.parentNode ? s : Ma(t) : uc, [t]);
return U(() => {
e.current = t
}, [t]), n
}
function Pv(t) {
const [e, n] = z(null), s = J(t), a = we(o => {
const r = so(o.target);
r && n(i => i ? (i.set(r, Wo(r)), new Map(i)) : null)
}, []);
return U(() => {
const o = s.current;
if (t !== o) {
r(o);
const i = t.map(c => {
const l = so(c);
return l ? (l.addEventListener("scroll", a, {
passive: !0
}), [l, Wo(l)]) : null
}).filter(c => c != null);
n(i.length ? new Map(i) : null), s.current = t
}
return () => {
r(t), r(o)
};
function r(i) {
i.forEach(c => {
const l = so(c);
l == null || l.removeEventListener("scroll", a)
})
}
}, [a, t]), de(() => t.length ? e ? Array.from(e.values()).reduce((o, r) => xn(o, r), ct) : np(t) : ct, [t, e])
}
function pc(t, e) {
e === void 0 && (e = []);
const n = J(null);
return U(() => {
n.current = null
}, e), U(() => {
const s = t !== ct;
s && !n.current && (n.current = t), !s && n.current && (n.current = null)
}, [t]), n.current ? cs(t, n.current) : ct
}
function Bv(t) {
U(() => {
if (!Da) return;
const e = t.map(n => {
let {
sensor: s
} = n;
return s.setup == null ? void 0 : s.setup()
});
return () => {
for (const n of e) n == null || n()
}
}, t.map(e => {
let {
sensor: n
} = e;
return n
}))
}
function zv(t, e) {
return de(() => t.reduce((n, s) => {
let {
eventName: a,
handler: o
} = s;
return n[a] = r => {
o(r, e)
}, n
}, {}), [t, e])
}
function op(t) {
return de(() => t ? lv(t) : null, [t])
}
const ro = [];
function qv(t, e) {
e === void 0 && (e = On);
const [n] = t, s = op(n ? je(n) : null), [a, o] = cr(i, ro), r = Oa({
callback: o
});
return t.length > 0 && a === ro && o(), Qe(() => {
t.length ? t.forEach(c => r == null ? void 0 : r.observe(c)) : (r == null || r.disconnect(), o())
}, [t]), a;
function i() {
return t.length ? t.map(c => ep(c) ? s : new Dr(e(c), c)) : ro
}
}
function rp(t) {
if (!t) return null;
if (t.children.length > 1) return t;
const e = t.children[0];
return hs(e) ? e : t
}
function Fv(t) {
let {
measure: e
} = t;
const [n, s] = z(null), a = we(l => {
for (const {
target: u
} of l)
if (hs(u)) {
s(d => {
const m = e(u);
return d ? P(S({}, d), {
width: m.width,
height: m.height
}) : m
});
break
}
}, [e]), o = Oa({
callback: a
}), r = we(l => {
const u = rp(l);
o == null || o.disconnect(), u && (o == null || o.observe(u)), s(u ? e(u) : null)
}, [e, o]), [i, c] = aa(r);
return de(() => ({
nodeRef: i,
rect: n,
setRef: c
}), [n, i, c])
}
const jv = [{
sensor: Mr,
options: {}
}, {
sensor: Ir,
options: {}
}],
$v = {
current: {}
},
Hs = {
draggable: {
measure: ac
},
droppable: {
measure: ac,
strategy: ls.WhileDragging,
frequency: Yo.Optimized
},
dragOverlay: {
measure: On
}
};
class es extends Map {
get(e) {
var n;
return e != null && (n = super.get(e)) != null ? n : void 0
}
toArray() {
return Array.from(this.values())
}
getEnabled() {
return this.toArray().filter(e => {
let {
disabled: n
} = e;
return !n
})
}
getNodeFor(e) {
var n, s;
return (n = (s = this.get(e)) == null ? void 0 : s.node.current) != null ? n : void 0
}
}
const Uv = {
activatorEvent: null,
active: null,
activeNode: null,
activeNodeRect: null,
collisions: null,
containerNodeRect: null,
draggableNodes: new Map,
droppableRects: new Map,
droppableContainers: new es,
over: null,
dragOverlay: {
nodeRef: {
current: null
},
rect: null,
setRef: ia
},
scrollableAncestors: [],
scrollableAncestorRects: [],
measuringConfiguration: Hs,
measureDroppableContainers: ia,
windowRect: null,
measuringScheduled: !1
},
ip = {
activatorEvent: null,
activators: [],
active: null,
activeNodeRect: null,
ariaDescribedById: {
draggable: ""
},
dispatch: ia,
draggableNodes: new Map,
over: null,
measureDroppableContainers: ia
},
vs = In(ip),
cp = In(Uv);
function Vv() {
return {
draggable: {
active: null,
initialCoordinates: {
x: 0,
y: 0
},
nodes: new Map,
translate: {
x: 0,
y: 0
}
},
droppable: {
containers: new es
}
}
}
function Hv(t, e) {
switch (e.type) {
case Ce.DragStart:
return P(S({}, t), {
draggable: P(S({}, t.draggable), {
initialCoordinates: e.initialCoordinates,
active: e.active
})
});
case Ce.DragMove:
return t.draggable.active ? P(S({}, t), {
draggable: P(S({}, t.draggable), {
translate: {
x: e.coordinates.x - t.draggable.initialCoordinates.x,
y: e.coordinates.y - t.draggable.initialCoordinates.y
}
})
}) : t;
case Ce.DragEnd:
case Ce.DragCancel:
return P(S({}, t), {
draggable: P(S({}, t.draggable), {
active: null,
initialCoordinates: {
x: 0,
y: 0
},
translate: {
x: 0,
y: 0
}
})
});
case Ce.RegisterDroppable:
{
const {
element: n
} = e,
{
id: s
} = n,
a = new es(t.droppable.containers);
return a.set(s, n),
P(S({}, t), {
droppable: P(S({}, t.droppable), {
containers: a
})
})
}
case Ce.SetDroppableDisabled:
{
const {
id: n,
key: s,
disabled: a
} = e,
o = t.droppable.containers.get(n);
if (!o || s !== o.key) return t;
const r = new es(t.droppable.containers);
return r.set(n, P(S({}, o), {
disabled: a
})),
P(S({}, t), {
droppable: P(S({}, t.droppable), {
containers: r
})
})
}
case Ce.UnregisterDroppable:
{
const {
id: n,
key: s
} = e,
a = t.droppable.containers.get(n);
if (!a || s !== a.key) return t;
const o = new es(t.droppable.containers);
return o.delete(n),
P(S({}, t), {
droppable: P(S({}, t.droppable), {
containers: o
})
})
}
default:
return t
}
}
function Gv(t) {
let {
disabled: e
} = t;
const {
active: n,
activatorEvent: s,
draggableNodes: a
} = Nt(vs), o = oa(s), r = oa(n == null ? void 0 : n.id);
return U(() => {
if (!e && !s && o && r != null) {
if (!Na(o) || document.activeElement === o.target) return;
const i = a.get(r);
if (!i) return;
const {
activatorNode: c,
node: l
} = i;
if (!c.current && !l.current) return;
requestAnimationFrame(() => {
for (const u of [c.current, l.current]) {
if (!u) continue;
const d = Fb(u);
if (d) {
d.focus();
break
}
}
})
}
}, [s, e, a, r, o]), null
}
function lp(t, e) {
let a = e,
{
transform: n
} = a,
s = st(a, ["transform"]);
return t != null && t.length ? t.reduce((o, r) => r(S({
transform: o
}, s)), n) : n
}
function Wv(t) {
return de(() => ({
draggable: S(S({}, Hs.draggable), t == null ? void 0 : t.draggable),
droppable: S(S({}, Hs.droppable), t == null ? void 0 : t.droppable),
dragOverlay: S(S({}, Hs.dragOverlay), t == null ? void 0 : t.dragOverlay)
}), [t == null ? void 0 : t.draggable, t == null ? void 0 : t.droppable, t == null ? void 0 : t.dragOverlay])
}
function Jv(t) {
let {
activeNode: e,
measure: n,
initialRect: s,
config: a = !0
} = t;
const o = J(!1),
{
x: r,
y: i
} = typeof a == "boolean" ? {
x: a,
y: a
} : a;
Qe(() => {
if (!r && !i || !e) {
o.current = !1;
return
}
if (o.current || !s) return;
const l = e == null ? void 0 : e.node.current;
if (!l || l.isConnected === !1) return;
const u = n(l),
d = Yu(u, s);
if (r || (d.x = 0), i || (d.y = 0), o.current = !0, Math.abs(d.x) > 0 || Math.abs(d.y) > 0) {
const m = Xu(l);
m && m.scrollBy({
top: d.y,
left: d.x
})
}
}, [e, r, i, s, n])
}
const La = In(P(S({}, ct), {
scaleX: 1,
scaleY: 1
}));
var Bt;
(function(t) {
t[t.Uninitialized = 0] = "Uninitialized", t[t.Initializing = 1] = "Initializing", t[t.Initialized = 2] = "Initialized"
})(Bt || (Bt = {}));
const Yv = kf(function(e) {
var n, s, a, o;
let Ti = e,
{
id: r,
accessibility: i,
autoScroll: c = !0,
children: l,
sensors: u = jv,
collisionDetection: d = sv,
measuring: m,
modifiers: f
} = Ti,
h = st(Ti, ["id", "accessibility", "autoScroll", "children", "sensors", "collisionDetection", "measuring", "modifiers"]);
const g = cr(Hv, void 0, Vv),
[b, x] = g,
[v, w] = Wb(),
[E, _] = z(Bt.Uninitialized),
k = E === Bt.Initialized,
{
draggable: {
active: M,
nodes: y,
translate: T
},
droppable: {
containers: D
}
} = b,
C = M ? y.get(M) : null,
L = J({
initial: null,
translated: null
}),
R = de(() => {
var Ne;
return M != null ? {
id: M,
data: (Ne = C == null ? void 0 : C.data) != null ? Ne : $v,
rect: L
} : null
}, [M, C]),
A = J(null),
[I, O] = z(null),
[B, j] = z(null),
G = is(h, Object.values(h)),
ke = bs("DndDescribedBy", r),
Re = de(() => D.getEnabled(), [D]),
ve = Wv(m),
{
droppableRects: _e,
measureDroppableContainers: W,
measuringScheduled: le
} = Iv(Re, {
dragging: k,
dependencies: [T.x, T.y],
config: ve.droppable
}),
K = Tv(y, M),
H = de(() => B ? ra(B) : null, [B]),
me = bf(),
V = Nv(K, ve.draggable.measure);
Jv({
activeNode: M ? y.get(M) : null,
config: me.layoutShiftCompensation,
initialRect: V,
measure: ve.draggable.measure
});
const $ = lc(K, ve.draggable.measure, V),
He = lc(K ? K.parentElement : null),
pt = J({
activatorEvent: null,
active: null,
activeNode: K,
collisionRect: null,
collisions: null,
droppableRects: _e,
draggableNodes: y,
draggingNode: null,
draggingNodeRect: null,
droppableContainers: D,
over: null,
scrollableAncestors: [],
scrollAdjustedTranslate: null
}),
sn = D.getNodeFor((n = pt.current.over) == null ? void 0 : n.id),
At = Fv({
measure: ve.dragOverlay.measure
}),
an = (s = At.nodeRef.current) != null ? s : K,
on = k ? (a = At.rect) != null ? a : $ : null,
yi = !!(At.nodeRef.current && At.rect),
wi = Lv(yi ? null : $),
Ya = op(an ? je(an) : null),
Ot = Rv(k ? sn != null ? sn : K : null),
Cs = qv(Ot),
Es = lp(f, {
transform: {
x: T.x - wi.x,
y: T.y - wi.y,
scaleX: 1,
scaleY: 1
},
activatorEvent: B,
active: R,
activeNodeRect: $,
containerNodeRect: He,
draggingNodeRect: on,
over: pt.current.over,
overlayNodeRect: At.rect,
scrollableAncestors: Ot,
scrollableAncestorRects: Cs,
windowRect: Ya
}),
ki = H ? xn(H, T) : null,
_i = Pv(Ot),
uf = pc(_i),
pf = pc(_i, [$]),
rn = xn(Es, uf),
cn = on ? rv(on, Es) : null,
zn = R && cn ? d({
active: R,
collisionRect: cn,
droppableRects: _e,
droppableContainers: Re,
pointerCoordinates: ki
}) : null,
Ci = Ju(zn, "id"),
[Lt, Ei] = z(null),
df = yi ? Es : xn(Es, pf),
mf = av(df, (o = Lt == null ? void 0 : Lt.rect) != null ? o : null, $),
Ai = we((Ne, Ge) => {
let {
sensor: We,
options: Rt
} = Ge;
if (A.current == null) return;
const Xe = y.get(A.current);
if (!Xe) return;
const tt = Ne.nativeEvent,
dt = new We({
active: A.current,
activeNode: Xe,
event: tt,
options: Rt,
context: pt,
onStart(nt) {
const qn = A.current;
if (qn == null) return;
const Fn = y.get(qn);
if (!Fn) return;
const {
onDragStart: As
} = G.current, Ss = {
active: {
id: qn,
data: Fn.data,
rect: L
}
};
Un(() => {
As == null || As(Ss), _(Bt.Initializing), x({
type: Ce.DragStart,
initialCoordinates: nt,
active: qn
}), v({
type: "onDragStart",
event: Ss
})
})
},
onMove(nt) {
x({
type: Ce.DragMove,
coordinates: nt
})
},
onEnd: ln(Ce.DragEnd),
onCancel: ln(Ce.DragCancel)
});
Un(() => {
O(dt), j(Ne.nativeEvent)
});
function ln(nt) {
return function() {
return N(this, null, function*() {
const {
active: Fn,
collisions: As,
over: Ss,
scrollAdjustedTranslate: Di
} = pt.current;
let jn = null;
if (Fn && Di) {
const {
cancelDrop: $n
} = G.current;
jn = {
activatorEvent: tt,
active: Fn,
collisions: As,
delta: Di,
over: Ss
}, nt === Ce.DragEnd && typeof $n == "function" && (yield Promise.resolve($n(jn))) && (nt = Ce.DragCancel)
}
A.current = null, Un(() => {
x({
type: nt
}), _(Bt.Uninitialized), Ei(null), O(null), j(null);
const $n = nt === Ce.DragEnd ? "onDragEnd" : "onDragCancel";
if (jn) {
const Ka = G.current[$n];
Ka == null || Ka(jn), v({
type: $n,
event: jn
})
}
})
})
}
}
}, [y]),
ff = we((Ne, Ge) => (We, Rt) => {
const Xe = We.nativeEvent,
tt = y.get(Rt);
if (A.current !== null || !tt || Xe.dndKit || Xe.defaultPrevented) return;
const dt = {
active: tt
};
Ne(We, Ge.options, dt) === !0 && (Xe.dndKit = {
capturedBy: Ge.sensor
}, A.current = Rt, Ai(We, Ge))
}, [y, Ai]),
Si = Dv(u, ff);
Bv(u), Qe(() => {
$ && E === Bt.Initializing && _(Bt.Initialized)
}, [$, E]), U(() => {
const {
onDragMove: Ne
} = G.current, {
active: Ge,
activatorEvent: We,
collisions: Rt,
over: Xe
} = pt.current;
if (!Ge || !We) return;
const tt = {
active: Ge,
activatorEvent: We,
collisions: Rt,
delta: {
x: rn.x,
y: rn.y
},
over: Xe
};
Un(() => {
Ne == null || Ne(tt), v({
type: "onDragMove",
event: tt
})
})
}, [rn.x, rn.y]), U(() => {
const {
active: Ne,
activatorEvent: Ge,
collisions: We,
droppableContainers: Rt,
scrollAdjustedTranslate: Xe
} = pt.current;
if (!Ne || A.current == null || !Ge || !Xe) return;
const {
onDragOver: tt
} = G.current, dt = Rt.get(Ci), ln = dt && dt.rect.current ? {
id: dt.id,
rect: dt.rect.current,
data: dt.data,
disabled: dt.disabled
} : null, nt = {
active: Ne,
activatorEvent: Ge,
collisions: We,
delta: {
x: Xe.x,
y: Xe.y
},
over: ln
};
Un(() => {
Ei(ln), tt == null || tt(nt), v({
type: "onDragOver",
event: nt
})
})
}, [Ci]), Qe(() => {
pt.current = {
activatorEvent: B,
active: R,
activeNode: K,
collisionRect: cn,
collisions: zn,
droppableRects: _e,
draggableNodes: y,
draggingNode: an,
draggingNodeRect: on,
droppableContainers: D,
over: Lt,
scrollableAncestors: Ot,
scrollAdjustedTranslate: rn
}, L.current = {
initial: on,
translated: cn
}
}, [R, K, zn, cn, y, an, on, _e, D, Lt, Ot, rn]), Ev(P(S({}, me), {
delta: T,
draggingRect: cn,
pointerCoordinates: ki,
scrollableAncestors: Ot,
scrollableAncestorRects: Cs
}));
const hf = de(() => ({
active: R,
activeNode: K,
activeNodeRect: $,
activatorEvent: B,
collisions: zn,
containerNodeRect: He,
dragOverlay: At,
draggableNodes: y,
droppableContainers: D,
droppableRects: _e,
over: Lt,
measureDroppableContainers: W,
scrollableAncestors: Ot,
scrollableAncestorRects: Cs,
measuringConfiguration: ve,
measuringScheduled: le,
windowRect: Ya
}), [R, K, $, B, zn, He, At, y, D, _e, Lt, W, Ot, Cs, ve, le, Ya]),
gf = de(() => ({
activatorEvent: B,
activators: Si,
active: R,
activeNodeRect: $,
ariaDescribedById: {
draggable: ke
},
dispatch: x,
draggableNodes: y,
over: Lt,
measureDroppableContainers: W
}), [B, Si, R, $, x, ke, y, Lt, W]);
return ge.createElement(Hu.Provider, {
value: w
}, ge.createElement(vs.Provider, {
value: gf
}, ge.createElement(cp.Provider, {
value: hf
}, ge.createElement(La.Provider, {
value: mf
}, l)), ge.createElement(Gv, {
disabled: (i == null ? void 0 : i.restoreFocus) === !1
})), ge.createElement(Kb, P(S({}, i), {
hiddenTextDescribedById: ke
})));
function bf() {
const Ne = (I == null ? void 0 : I.autoScrollEnabled) === !1,
Ge = typeof c == "object" ? c.enabled === !1 : c === !1,
We = k && !Ne && !Ge;
return typeof c == "object" ? P(S({}, c), {
enabled: We
}) : {
enabled: We
}
}
}),
Kv = In(null),
dc = "button",
Xv = "Droppable";
function Zv(t) {
let {
id: e,
data: n,
disabled: s = !1,
attributes: a
} = t;
const o = bs(Xv),
{
activators: r,
activatorEvent: i,
active: c,
activeNodeRect: l,
ariaDescribedById: u,
draggableNodes: d,
over: m
} = Nt(vs),
{
role: f = dc,
roleDescription: h = "draggable",
tabIndex: g = 0
} = a != null ? a : {},
b = (c == null ? void 0 : c.id) === e,
x = Nt(b ? La : Kv),
[v, w] = aa(),
[E, _] = aa(),
k = zv(r, e),
M = is(n);
Qe(() => (d.set(e, {
id: e,
key: o,
node: v,
activatorNode: E,
data: M
}), () => {
const T = d.get(e);
T && T.key === o && d.delete(e)
}), [d, e]);
const y = de(() => ({
role: f,
tabIndex: g,
"aria-disabled": s,
"aria-pressed": b && f === dc ? !0 : void 0,
"aria-roledescription": h,
"aria-describedby": u.draggable
}), [s, f, g, b, h, u.draggable]);
return {
active: c,
activatorEvent: i,
activeNodeRect: l,
attributes: y,
isDragging: b,
listeners: s ? void 0 : k,
node: v,
over: m,
setNodeRef: w,
setActivatorNodeRef: _,
transform: x
}
}
function up() {
return Nt(cp)
}
const Qv = "Droppable",
ex = {
timeout: 25
};
function tx(t) {
let {
data: e,
disabled: n = !1,
id: s,
resizeObserverConfig: a
} = t;
const o = bs(Qv),
{
active: r,
dispatch: i,
over: c,
measureDroppableContainers: l
} = Nt(vs),
u = J({
disabled: n
}),
d = J(!1),
m = J(null),
f = J(null),
{
disabled: h,
updateMeasurementsFor: g,
timeout: b
} = S(S({}, ex), a),
x = is(g != null ? g : s),
v = we(() => {
if (!d.current) {
d.current = !0;
return
}
f.current != null && clearTimeout(f.current), f.current = setTimeout(() => {
l(Array.isArray(x.current) ? x.current : [x.current]), f.current = null
}, b)
}, [b]),
w = Oa({
callback: v,
disabled: h || !r
}),
E = we((y, T) => {
w && (T && (w.unobserve(T), d.current = !1), y && w.observe(y))
}, [w]),
[_, k] = aa(E),
M = is(e);
return U(() => {
!w || !_.current || (w.disconnect(), d.current = !1, w.observe(_.current))
}, [_, w]), Qe(() => (i({
type: Ce.RegisterDroppable,
element: {
id: s,
key: o,
disabled: n,
node: _,
rect: m,
data: M
}
}), () => i({
type: Ce.UnregisterDroppable,
key: o,
id: s
})), [s]), U(() => {
n !== u.current.disabled && (i({
type: Ce.SetDroppableDisabled,
id: s,
key: o,
disabled: n
}), u.current.disabled = n)
}, [s, o, n, i]), {
active: r,
rect: m,
isOver: (c == null ? void 0 : c.id) === s,
node: _,
over: c,
setNodeRef: k
}
}
function nx(t) {
let {
animation: e,
children: n
} = t;
const [s, a] = z(null), [o, r] = z(null), i = oa(n);
return !n && !s && i && a(i), Qe(() => {
if (!o) return;
const c = s == null ? void 0 : s.key,
l = s == null ? void 0 : s.props.id;
if (c == null || l == null) {
a(null);
return
}
Promise.resolve(e(l, o)).then(() => {
a(null)
})
}, [e, s, o]), ge.createElement(ge.Fragment, null, n, s ? _f(s, {
ref: r
}) : null)
}
const sx = {
x: 0,
y: 0,
scaleX: 1,
scaleY: 1
};
function ax(t) {
let {
children: e
} = t;
return ge.createElement(vs.Provider, {
value: ip
}, ge.createElement(La.Provider, {
value: sx
}, e))
}
const ox = {
position: "fixed",
touchAction: "none"
},
rx = t => Na(t) ? "transform 250ms ease" : void 0,
ix = wa((t, e) => {
let {
as: n,
activatorEvent: s,
adjustScale: a,
children: o,
className: r,
rect: i,
style: c,
transform: l,
transition: u = rx
} = t;
if (!i) return null;
const d = a ? l : P(S({}, l), {
scaleX: 1,
scaleY: 1
}),
m = S(P(S({}, ox), {
width: i.width,
height: i.height,
top: i.top,
left: i.left,
transform: Ht.Transform.toString(d),
transformOrigin: a && s ? Zb(s, i) : void 0,
transition: typeof u == "function" ? u(s) : u
}), c);
return ge.createElement(n, {
className: r,
style: m,
ref: e
}, o)
}),
cx = t => e => {
let {
active: n,
dragOverlay: s
} = e;
const a = {},
{
styles: o,
className: r
} = t;
if (o != null && o.active)
for (const [i, c] of Object.entries(o.active)) c !== void 0 && (a[i] = n.node.style.getPropertyValue(i), n.node.style.setProperty(i, c));
if (o != null && o.dragOverlay)
for (const [i, c] of Object.entries(o.dragOverlay)) c !== void 0 && s.node.style.setProperty(i, c);
return r != null && r.active && n.node.classList.add(r.active), r != null && r.dragOverlay && s.node.classList.add(r.dragOverlay),
function() {
for (const [c, l] of Object.entries(a)) n.node.style.setProperty(c, l);
r != null && r.active && n.node.classList.remove(r.active)
}
},
lx = t => {
let {
transform: {
initial: e,
final: n
}
} = t;
return [{
transform: Ht.Transform.toString(e)
}, {
transform: Ht.Transform.toString(n)
}]
},
ux = {
duration: 250,
easing: "ease",
keyframes: lx,
sideEffects: cx({
styles: {
active: {
opacity: "0"
}
}
})
};
function px(t) {
let {
config: e,
draggableNodes: n,
droppableContainers: s,
measuringConfiguration: a
} = t;
return Ia((o, r) => {
if (e === null) return;
const i = n.get(o);
if (!i) return;
const c = i.node.current;
if (!c) return;
const l = rp(r);
if (!l) return;
const {
transform: u
} = je(r).getComputedStyle(r), d = Ku(u);
if (!d) return;
const m = typeof e == "function" ? e : dx(e);
return sp(c, a.draggable.measure), m({
active: {
id: o,
data: i.data,
node: c,
rect: a.draggable.measure(c)
},
draggableNodes: n,
dragOverlay: {
node: r,
rect: a.dragOverlay.measure(l)
},
droppableContainers: s,
measuringConfiguration: a,
transform: d
})
})
}
function dx(t) {
const {
duration: e,
easing: n,
sideEffects: s,
keyframes: a
} = S(S({}, ux), t);
return o => {
let v = o,
{
active: r,
dragOverlay: i,
transform: c
} = v,
l = st(v, ["active", "dragOverlay", "transform"]);
if (!e) return;
const u = {
x: i.rect.left - r.rect.left,
y: i.rect.top - r.rect.top
},
d = {
scaleX: c.scaleX !== 1 ? r.rect.width * c.scaleX / i.rect.width : 1,
scaleY: c.scaleY !== 1 ? r.rect.height * c.scaleY / i.rect.height : 1
},
m = S({
x: c.x - u.x,
y: c.y - u.y
}, d),
f = a(P(S({}, l), {
active: r,
dragOverlay: i,
transform: {
initial: c,
final: m
}
})),
[h] = f,
g = f[f.length - 1];
if (JSON.stringify(h) === JSON.stringify(g)) return;
const b = s == null ? void 0 : s(S({
active: r,
dragOverlay: i
}, l)),
x = i.node.animate(f, {
duration: e,
easing: n,
fill: "forwards"
});
return new Promise(w => {
x.onfinish = () => {
b == null || b(), w()
}
})
}
}
let mc = 0;
function mx(t) {
return de(() => {
if (t != null) return mc++, mc
}, [t])
}
const sle = ge.memo(t => {
let {
adjustScale: e = !1,
children: n,
dropAnimation: s,
style: a,
transition: o,
modifiers: r,
wrapperElement: i = "div",
className: c,
zIndex: l = 999
} = t;
const {
activatorEvent: u,
active: d,
activeNodeRect: m,
containerNodeRect: f,
draggableNodes: h,
droppableContainers: g,
dragOverlay: b,
over: x,
measuringConfiguration: v,
scrollableAncestors: w,
scrollableAncestorRects: E,
windowRect: _
} = up(), k = Nt(La), M = mx(d == null ? void 0 : d.id), y = lp(r, {
activatorEvent: u,
active: d,
activeNodeRect: m,
containerNodeRect: f,
draggingNodeRect: b.rect,
over: x,
overlayNodeRect: b.rect,
scrollableAncestors: w,
scrollableAncestorRects: E,
transform: k,
windowRect: _
}), T = Or(m), D = px({
config: s,
draggableNodes: h,
droppableContainers: g,
measuringConfiguration: v
}), C = T ? b.setRef : void 0;
return ge.createElement(ax, null, ge.createElement(nx, {
animation: D
}, d && M ? ge.createElement(ix, {
key: M,
id: d.id,
ref: C,
as: i,
activatorEvent: u,
adjustScale: e,
className: c,
transition: o,
rect: T,
style: S({
zIndex: l
}, a),
transform: y
}, n) : null))
});
function Lr(t, e, n) {
const s = t.slice();
return s.splice(n < 0 ? s.length + n : n, 0, s.splice(e, 1)[0]), s
}
function fx(t, e) {
return t.reduce((n, s, a) => {
const o = e.get(s);
return o && (n[a] = o), n
}, Array(t.length))
}
function Os(t) {
return t !== null && t >= 0
}
function hx(t, e) {
if (t === e) return !0;
if (t.length !== e.length) return !1;
for (let n = 0; n < t.length; n++)
if (t[n] !== e[n]) return !1;
return !0
}
function gx(t) {
return typeof t == "boolean" ? {
draggable: t,
droppable: t
} : t
}
const Rr = t => {
let {
rects: e,
activeIndex: n,
overIndex: s,
index: a
} = t;
const o = Lr(e, s, n),
r = e[a],
i = o[a];
return !i || !r ? null : {
x: i.left - r.left,
y: i.top - r.top,
scaleX: i.width / r.width,
scaleY: i.height / r.height
}
},
Ls = {
scaleX: 1,
scaleY: 1
},
ale = t => {
var e;
let {
activeIndex: n,
activeNodeRect: s,
index: a,
rects: o,
overIndex: r
} = t;
const i = (e = o[n]) != null ? e : s;
if (!i) return null;
if (a === n) {
const l = o[r];
return l ? S({
x: 0,
y: n < r ? l.top + l.height - (i.top + i.height) : l.top - i.top
}, Ls) : null
}
const c = bx(o, a, n);
return a > n && a <= r ? S({
x: 0,
y: -i.height - c
}, Ls) : a < n && a >= r ? S({
x: 0,
y: i.height + c
}, Ls) : S({
x: 0,
y: 0
}, Ls)
};
function bx(t, e, n) {
const s = t[e],
a = t[e - 1],
o = t[e + 1];
return s ? n < e ? a ? s.top - (a.top + a.height) : o ? o.top - (s.top + s.height) : 0 : o ? o.top - (s.top + s.height) : a ? s.top - (a.top + a.height) : 0 : 0
}
const pp = "Sortable",
dp = ge.createContext({
activeIndex: -1,
containerId: pp,
disableTransforms: !1,
items: [],
overIndex: -1,
useDragOverlay: !1,
sortedRects: [],
strategy: Rr,
disabled: {
draggable: !1,
droppable: !1
}
});
function vx(t) {
let {
children: e,
id: n,
items: s,
strategy: a = Rr,
disabled: o = !1
} = t;
const {
active: r,
dragOverlay: i,
droppableRects: c,
over: l,
measureDroppableContainers: u,
measuringScheduled: d
} = up(), m = bs(pp, n), f = i.rect !== null, h = de(() => s.map(M => typeof M == "object" && "id" in M ? M.id : M), [s]), g = r != null, b = r ? h.indexOf(r.id) : -1, x = l ? h.indexOf(l.id) : -1, v = J(h), w = !hx(h, v.current), E = x !== -1 && b === -1 || w, _ = gx(o);
Qe(() => {
w && g && !d && u(h)
}, [w, h, g, u, d]), U(() => {
v.current = h
}, [h]);
const k = de(() => ({
activeIndex: b,
containerId: m,
disabled: _,
disableTransforms: E,
items: h,
overIndex: x,
useDragOverlay: f,
sortedRects: fx(h, c),
strategy: a
}), [b, m, _.draggable, _.droppable, E, h, x, c, f, a]);
return ge.createElement(dp.Provider, {
value: k
}, e)
}
const xx = t => {
let {
id: e,
items: n,
activeIndex: s,
overIndex: a
} = t;
return Lr(n, s, a).indexOf(e)
},
yx = t => {
let {
containerId: e,
isSorting: n,
wasDragging: s,
index: a,
items: o,
newIndex: r,
previousItems: i,
previousContainerId: c,
transition: l
} = t;
return !l || !s || i !== o && a === r ? !1 : n ? !0 : r !== a && e === c
},
wx = {
duration: 200,
easing: "ease"
},
mp = "transform",
kx = Ht.Transition.toString({
property: mp,
duration: 0,
easing: "linear"
}),
_x = {
roleDescription: "sortable"
};
function Cx(t) {
let {
disabled: e,
index: n,
node: s,
rect: a
} = t;
const [o, r] = z(null), i = J(n);
return Qe(() => {
if (!e && n !== i.current && s.current) {
const c = a.current;
if (c) {
const l = On(s.current, {
ignoreTransform: !0
}),
u = {
x: c.left - l.left,
y: c.top - l.top,
scaleX: c.width / l.width,
scaleY: c.height / l.height
};
(u.x || u.y) && r(u)
}
}
n !== i.current && (i.current = n)
}, [e, n, s, a]), U(() => {
o && requestAnimationFrame(() => {
r(null)
})
}, [o]), o
}
function Ex(t) {
let {
animateLayoutChanges: e = yx,
attributes: n,
disabled: s,
data: a,
getNewIndex: o = xx,
id: r,
strategy: i,
resizeObserverConfig: c,
transition: l = wx
} = t;
const {
items: u,
containerId: d,
activeIndex: m,
disabled: f,
disableTransforms: h,
sortedRects: g,
overIndex: b,
useDragOverlay: x,
strategy: v
} = Nt(dp), w = Ax(s, f), E = u.indexOf(r), _ = de(() => S({
sortable: {
containerId: d,
index: E,
items: u
}
}, a), [d, a, E, u]), k = de(() => u.slice(u.indexOf(r)), [u, r]), {
rect: M,
node: y,
isOver: T,
setNodeRef: D
} = tx({
id: r,
data: _,
disabled: w.droppable,
resizeObserverConfig: S({
updateMeasurementsFor: k
}, c)
}), {
active: C,
activatorEvent: L,
activeNodeRect: R,
attributes: A,
setNodeRef: I,
listeners: O,
isDragging: B,
over: j,
setActivatorNodeRef: G,
transform: ke
} = Zv({
id: r,
data: _,
attributes: S(S({}, _x), n),
disabled: w.draggable
}), Re = Rb(D, I), ve = !!C, _e = ve && !h && Os(m) && Os(b), W = !x && B, le = W && _e ? ke : null, K = i != null ? i : v, H = _e ? le != null ? le : K({
rects: g,
activeNodeRect: R,
activeIndex: m,
overIndex: b,
index: E
}) : null, me = Os(m) && Os(b) ? o({
id: r,
items: u,
activeIndex: m,
overIndex: b
}) : E, V = C == null ? void 0 : C.id, $ = J({
activeId: V,
items: u,
newIndex: me,
containerId: d
}), He = u !== $.current.items, pt = e({
active: C,
containerId: d,
isDragging: B,
isSorting: ve,
id: r,
index: E,
items: u,
newIndex: $.current.newIndex,
previousItems: $.current.items,
previousContainerId: $.current.containerId,
transition: l,
wasDragging: $.current.activeId != null
}), sn = Cx({
disabled: !pt,
index: E,
node: y,
rect: M
});
return U(() => {
ve && $.current.newIndex !== me && ($.current.newIndex = me), d !== $.current.containerId && ($.current.containerId = d), u !== $.current.items && ($.current.items = u)
}, [ve, me, d, u]), U(() => {
if (V === $.current.activeId) return;
if (V && !$.current.activeId) {
$.current.activeId = V;
return
}
const an = setTimeout(() => {
$.current.activeId = V
}, 50);
return () => clearTimeout(an)
}, [V]), {
active: C,
activeIndex: m,
attributes: A,
data: _,
rect: M,
index: E,
newIndex: me,
items: u,
isOver: T,
isSorting: ve,
isDragging: B,
listeners: O,
node: y,
overIndex: b,
over: j,
setNodeRef: Re,
setActivatorNodeRef: G,
setDroppableNodeRef: D,
setDraggableNodeRef: I,
transform: sn != null ? sn : H,
transition: At()
};
function At() {
if (sn || He && $.current.newIndex === E) return kx;
if (!(W && !Na(L) || !l) && (ve || pt)) return Ht.Transition.toString(P(S({}, l), {
property: mp
}))
}
}
function Ax(t, e) {
var n, s;
return typeof t == "boolean" ? {
draggable: t,
droppable: !1
} : {
draggable: (n = t == null ? void 0 : t.draggable) != null ? n : e.draggable,
droppable: (s = t == null ? void 0 : t.droppable) != null ? s : e.droppable
}
}
function la(t) {
if (!t) return !1;
const e = t.data.current;
return !!(e && "sortable" in e && typeof e.sortable == "object" && "containerId" in e.sortable && "items" in e.sortable && "index" in e.sortable)
}
const Sx = [te.Down, te.Right, te.Up, te.Left],
Tx = (t, e) => {
let {
context: {
active: n,
collisionRect: s,
droppableRects: a,
droppableContainers: o,
over: r,
scrollableAncestors: i
}
} = e;
if (Sx.includes(t.code)) {
if (t.preventDefault(), !n || !s) return;
const c = [];
o.getEnabled().forEach(d => {
if (!d || d != null && d.disabled) return;
const m = a.get(d.id);
if (m) switch (t.code) {
case te.Down:
s.top < m.top && c.push(d);
break;
case te.Up:
s.top > m.top && c.push(d);
break;
case te.Left:
s.left > m.left && c.push(d);
break;
case te.Right:
s.left < m.left && c.push(d);
break
}
});
const l = tv({
active: n,
collisionRect: s,
droppableRects: a,
droppableContainers: c,
pointerCoordinates: null
});
let u = Ju(l, "id");
if (u === (r == null ? void 0 : r.id) && l.length > 1 && (u = l[1].id), u != null) {
const d = o.get(n.id),
m = o.get(u),
f = m ? a.get(m.id) : null,
h = m == null ? void 0 : m.node.current;
if (h && f && d && m) {
const b = Ma(h).some((k, M) => i[M] !== k),
x = fp(d, m),
v = Dx(d, m),
w = b || !x ? {
x: 0,
y: 0
} : {
x: v ? s.width - f.width : 0,
y: v ? s.height - f.height : 0
},
E = {
x: f.left,
y: f.top
};
return w.x && w.y ? E : cs(E, w)
}
}
}
};
function fp(t, e) {
return !la(t) || !la(e) ? !1 : t.data.current.sortable.containerId === e.data.current.sortable.containerId
}
function Dx(t, e) {
return !la(t) || !la(e) || !fp(t, e) ? !1 : t.data.current.sortable.index < e.data.current.sortable.index
}
const hp = Qt.create({
name: "heading",
addOptions() {
return {
levels: [1, 2, 3, 4, 5, 6],
HTMLAttributes: {}
}
},
content: "inline*",
group: "block",
defining: !0,
addAttributes() {
return {
level: {
default: 1,
rendered: !1
}
}
},
parseHTML() {
return this.options.levels.map(t => ({
tag: `h${t}`,
attrs: {
level: t
}
}))
},
renderHTML({
node: t,
HTMLAttributes: e
}) {
return [`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`, en(this.options.HTMLAttributes, e), 0]
},
addCommands() {
return {
setHeading: t => ({
commands: e
}) => this.options.levels.includes(t.level) ? e.setNode(this.name, t) : !1,
toggleHeading: t => ({
commands: e
}) => this.options.levels.includes(t.level) ? e.toggleNode(this.name, "paragraph", t) : !1
}
},
addKeyboardShortcuts() {
return this.options.levels.reduce((t, e) => P(S({}, t), {
[`Mod-Alt-${e}`]: () => this.editor.commands.toggleHeading({
level: e
})
}), {})
},
addInputRules() {
return this.options.levels.map(t => uh({
find: new RegExp(`^(#{1,${t}})\\s$`),
type: this.type,
getAttributes: {
level: t
}
}))
}
}),
Pr = Qt.create({
name: "horizontalRule",
addOptions() {
return {
HTMLAttributes: {}
}
},
group: "block",
parseHTML() {
return [{
tag: "hr"
}]
},
renderHTML({
HTMLAttributes: t
}) {
return ["hr", en(this.options.HTMLAttributes, t)]
},
addCommands() {
return {
setHorizontalRule: () => ({
chain: t,
state: e
}) => {
const {
$to: n
} = e.selection, s = t();
return n.parentOffset === 0 ? s.insertContentAt(Math.max(n.pos - 2, 0), {
type: this.name
}) : s.insertContent({
type: this.name
}), s.command(({
tr: a,
dispatch: o
}) => {
var r;
if (o) {
const {
$to: i
} = a.selection, c = i.end();
if (i.nodeAfter) i.nodeAfter.isTextblock ? a.setSelection(Ee.create(a.doc, i.pos + 1)) : i.nodeAfter.isBlock ? a.setSelection(Je.create(a.doc, i.pos)) : a.setSelection(Ee.create(a.doc, i.pos));
else {
const l = (r = i.parent.type.contentMatch.defaultType) === null || r === void 0 ? void 0 : r.create();
l && (a.insert(c, l), a.setSelection(Ee.create(a.doc, c + 1)))
}
a.scrollIntoView()
}
return !0
}).run()
}
}
},
addInputRules() {
return [iu({
find: /^(?:---|โ€”-|___\s|\*\*\*\s)$/,
type: this.type
})]
}
}),
gp = cu.create({
name: "subscript",
addOptions() {
return {
HTMLAttributes: {}
}
},
parseHTML() {
return [{
tag: "sub"
}, {
style: "vertical-align",
getAttrs(t) {
return t !== "sub" ? !1 : null
}
}]
},
renderHTML({
HTMLAttributes: t
}) {
return ["sub", en(this.options.HTMLAttributes, t), 0]
},
addCommands() {
return {
setSubscript: () => ({
commands: t
}) => t.setMark(this.name),
toggleSubscript: () => ({
commands: t
}) => t.toggleMark(this.name),
unsetSubscript: () => ({
commands: t
}) => t.unsetMark(this.name)
}
},
addKeyboardShortcuts() {
return {
"Mod-,": () => this.editor.commands.toggleSubscript()
}
}
}),
bp = cu.create({
name: "superscript",
addOptions() {
return {
HTMLAttributes: {}
}
},
parseHTML() {
return [{
tag: "sup"
}, {
style: "vertical-align",
getAttrs(t) {
return t !== "super" ? !1 : null
}
}]
},
renderHTML({
HTMLAttributes: t
}) {
return ["sup", en(this.options.HTMLAttributes, t), 0]
},
addCommands() {
return {
setSuperscript: () => ({
commands: t
}) => t.setMark(this.name),
toggleSuperscript: () => ({
commands: t
}) => t.toggleMark(this.name),
unsetSuperscript: () => ({
commands: t
}) => t.unsetMark(this.name)
}
},
addKeyboardShortcuts() {
return {
"Mod-.": () => this.editor.commands.toggleSuperscript()
}
}
});
var oe = {};
const Ix = "ร",
Nx = "รก",
Mx = "ฤ‚",
Ox = "ฤƒ",
Lx = "โˆพ",
Rx = "โˆฟ",
Px = "โˆพฬณ",
Bx = "ร‚",
zx = "รข",
qx = "ยด",
Fx = "ะ",
jx = "ะฐ",
$x = "ร†",
Ux = "รฆ",
Vx = "โก",
Hx = "๐”„",
Gx = "๐”ž",
Wx = "ร€",
Jx = "ร ",
Yx = "โ„ต",
Kx = "โ„ต",
Xx = "ฮ‘",
Zx = "ฮฑ",
Qx = "ฤ€",
ey = "ฤ",
ty = "โจฟ",
ny = "&",
sy = "&",
ay = "โฉ•",
oy = "โฉ“",
ry = "โˆง",
iy = "โฉœ",
cy = "โฉ˜",
ly = "โฉš",
uy = "โˆ ",
py = "โฆค",
dy = "โˆ ",
my = "โฆจ",
fy = "โฆฉ",
hy = "โฆช",
gy = "โฆซ",
by = "โฆฌ",
vy = "โฆญ",
xy = "โฆฎ",
yy = "โฆฏ",
wy = "โˆก",
ky = "โˆŸ",
_y = "โŠพ",
Cy = "โฆ",
Ey = "โˆข",
Ay = "ร…",
Sy = "โผ",
Ty = "ฤ„",
Dy = "ฤ…",
Iy = "๐”ธ",
Ny = "๐•’",
My = "โฉฏ",
Oy = "โ‰ˆ",
Ly = "โฉฐ",
Ry = "โ‰Š",
Py = "โ‰‹",
By = "'",
zy = "โก",
qy = "โ‰ˆ",
Fy = "โ‰Š",
jy = "ร…",
$y = "รฅ",
Uy = "๐’œ",
Vy = "๐’ถ",
Hy = "โ‰”",
Gy = "*",
Wy = "โ‰ˆ",
Jy = "โ‰",
Yy = "รƒ",
Ky = "รฃ",
Xy = "ร„",
Zy = "รค",
Qy = "โˆณ",
ew = "โจ‘",
tw = "โ‰Œ",
nw = "ฯถ",
sw = "โ€ต",
aw = "โˆฝ",
ow = "โ‹",
rw = "โˆ–",
iw = "โซง",
cw = "โŠฝ",
lw = "โŒ…",
uw = "โŒ†",
pw = "โŒ…",
dw = "โŽต",
mw = "โŽถ",
fw = "โ‰Œ",
hw = "ะ‘",
gw = "ะฑ",
bw = "โ€ž",
vw = "โˆต",
xw = "โˆต",
yw = "โˆต",
ww = "โฆฐ",
kw = "ฯถ",
_w = "โ„ฌ",
Cw = "โ„ฌ",
Ew = "ฮ’",
Aw = "ฮฒ",
Sw = "โ„ถ",
Tw = "โ‰ฌ",
Dw = "๐”…",
Iw = "๐”Ÿ",
Nw = "โ‹‚",
Mw = "โ—ฏ",
Ow = "โ‹ƒ",
Lw = "โจ€",
Rw = "โจ",
Pw = "โจ‚",
Bw = "โจ†",
zw = "โ˜…",
qw = "โ–ฝ",
Fw = "โ–ณ",
jw = "โจ„",
$w = "โ‹",
Uw = "โ‹€",
Vw = "โค",
Hw = "โงซ",
Gw = "โ–ช",
Ww = "โ–ด",
Jw = "โ–พ",
Yw = "โ—‚",
Kw = "โ–ธ",
Xw = "โฃ",
Zw = "โ–’",
Qw = "โ–‘",
ek = "โ–“",
tk = "โ–ˆ",
nk = "=โƒฅ",
sk = "โ‰กโƒฅ",
ak = "โซญ",
ok = "โŒ",
rk = "๐”น",
ik = "๐•“",
ck = "โŠฅ",
lk = "โŠฅ",
uk = "โ‹ˆ",
pk = "โง‰",
dk = "โ”",
mk = "โ••",
fk = "โ•–",
hk = "โ•—",
gk = "โ”Œ",
bk = "โ•’",
vk = "โ•“",
xk = "โ•”",
yk = "โ”€",
wk = "โ•",
kk = "โ”ฌ",
_k = "โ•ค",
Ck = "โ•ฅ",
Ek = "โ•ฆ",
Ak = "โ”ด",
Sk = "โ•ง",
Tk = "โ•จ",
Dk = "โ•ฉ",
Ik = "โŠŸ",
Nk = "โŠž",
Mk = "โŠ ",
Ok = "โ”˜",
Lk = "โ•›",
Rk = "โ•œ",
Pk = "โ•",
Bk = "โ””",
zk = "โ•˜",
qk = "โ•™",
Fk = "โ•š",
jk = "โ”‚",
$k = "โ•‘",
Uk = "โ”ผ",
Vk = "โ•ช",
Hk = "โ•ซ",
Gk = "โ•ฌ",
Wk = "โ”ค",
Jk = "โ•ก",
Yk = "โ•ข",
Kk = "โ•ฃ",
Xk = "โ”œ",
Zk = "โ•ž",
Qk = "โ•Ÿ",
e0 = "โ• ",
t0 = "โ€ต",
n0 = "ห˜",
s0 = "ห˜",
a0 = "ยฆ",
o0 = "๐’ท",
r0 = "โ„ฌ",
i0 = "โ",
c0 = "โˆฝ",
l0 = "โ‹",
u0 = "โง…",
p0 = "\\",
d0 = "โŸˆ",
m0 = "โ€ข",
f0 = "โ€ข",
h0 = "โ‰Ž",
g0 = "โชฎ",
b0 = "โ‰",
v0 = "โ‰Ž",
x0 = "โ‰",
y0 = "ฤ†",
w0 = "ฤ‡",
k0 = "โฉ„",
_0 = "โฉ‰",
C0 = "โฉ‹",
E0 = "โˆฉ",
A0 = "โ‹’",
S0 = "โฉ‡",
T0 = "โฉ€",
D0 = "โ……",
I0 = "โˆฉ๏ธ€",
N0 = "โ",
M0 = "ห‡",
O0 = "โ„ญ",
L0 = "โฉ",
R0 = "ฤŒ",
P0 = "ฤ",
B0 = "ร‡",
z0 = "รง",
q0 = "ฤˆ",
F0 = "ฤ‰",
j0 = "โˆฐ",
$0 = "โฉŒ",
U0 = "โฉ",
V0 = "ฤŠ",
H0 = "ฤ‹",
G0 = "ยธ",
W0 = "ยธ",
J0 = "โฆฒ",
Y0 = "ยข",
K0 = "ยท",
X0 = "ยท",
Z0 = "๐” ",
Q0 = "โ„ญ",
e_ = "ะง",
t_ = "ั‡",
n_ = "โœ“",
s_ = "โœ“",
a_ = "ฮง",
o_ = "ฯ‡",
r_ = "ห†",
i_ = "โ‰—",
c_ = "โ†บ",
l_ = "โ†ป",
u_ = "โŠ›",
p_ = "โŠš",
d_ = "โŠ",
m_ = "โŠ™",
f_ = "ยฎ",
h_ = "โ“ˆ",
g_ = "โŠ–",
b_ = "โŠ•",
v_ = "โŠ—",
x_ = "โ—‹",
y_ = "โงƒ",
w_ = "โ‰—",
k_ = "โจ",
__ = "โซฏ",
C_ = "โง‚",
E_ = "โˆฒ",
A_ = "โ€",
S_ = "โ€™",
T_ = "โ™ฃ",
D_ = "โ™ฃ",
I_ = ":",
N_ = "โˆท",
M_ = "โฉด",
O_ = "โ‰”",
L_ = "โ‰”",
R_ = ",",
P_ = "@",
B_ = "โˆ",
z_ = "โˆ˜",
q_ = "โˆ",
F_ = "โ„‚",
j_ = "โ‰…",
$_ = "โฉญ",
U_ = "โ‰ก",
V_ = "โˆฎ",
H_ = "โˆฏ",
G_ = "โˆฎ",
W_ = "๐•”",
J_ = "โ„‚",
Y_ = "โˆ",
K_ = "โˆ",
X_ = "ยฉ",
Z_ = "ยฉ",
Q_ = "โ„—",
e1 = "โˆณ",
t1 = "โ†ต",
n1 = "โœ—",
s1 = "โจฏ",
a1 = "๐’ž",
o1 = "๐’ธ",
r1 = "โซ",
i1 = "โซ‘",
c1 = "โซ",
l1 = "โซ’",
u1 = "โ‹ฏ",
p1 = "โคธ",
d1 = "โคต",
m1 = "โ‹ž",
f1 = "โ‹Ÿ",
h1 = "โ†ถ",
g1 = "โคฝ",
b1 = "โฉˆ",
v1 = "โฉ†",
x1 = "โ‰",
y1 = "โˆช",
w1 = "โ‹“",
k1 = "โฉŠ",
_1 = "โŠ",
C1 = "โฉ…",
E1 = "โˆช๏ธ€",
A1 = "โ†ท",
S1 = "โคผ",
T1 = "โ‹ž",
D1 = "โ‹Ÿ",
I1 = "โ‹Ž",
N1 = "โ‹",
M1 = "ยค",
O1 = "โ†ถ",
L1 = "โ†ท",
R1 = "โ‹Ž",
P1 = "โ‹",
B1 = "โˆฒ",
z1 = "โˆฑ",
q1 = "โŒญ",
F1 = "โ€ ",
j1 = "โ€ก",
$1 = "โ„ธ",
U1 = "โ†“",
V1 = "โ†ก",
H1 = "โ‡“",
G1 = "โ€",
W1 = "โซค",
J1 = "โŠฃ",
Y1 = "โค",
K1 = "ห",
X1 = "ฤŽ",
Z1 = "ฤ",
Q1 = "ะ”",
eC = "ะด",
tC = "โ€ก",
nC = "โ‡Š",
sC = "โ……",
aC = "โ…†",
oC = "โค‘",
rC = "โฉท",
iC = "ยฐ",
cC = "โˆ‡",
lC = "ฮ”",
uC = "ฮด",
pC = "โฆฑ",
dC = "โฅฟ",
mC = "๐”‡",
fC = "๐”ก",
hC = "โฅฅ",
gC = "โ‡ƒ",
bC = "โ‡‚",
vC = "ยด",
xC = "ห™",
yC = "ห",
wC = "`",
kC = "หœ",
_C = "โ‹„",
CC = "โ‹„",
EC = "โ‹„",
AC = "โ™ฆ",
SC = "โ™ฆ",
TC = "ยจ",
DC = "โ…†",
IC = "ฯ",
NC = "โ‹ฒ",
MC = "รท",
OC = "รท",
LC = "โ‹‡",
RC = "โ‹‡",
PC = "ะ‚",
BC = "ั’",
zC = "โŒž",
qC = "โŒ",
FC = "$",
jC = "๐”ป",
$C = "๐••",
UC = "ยจ",
VC = "ห™",
HC = "โƒœ",
GC = "โ‰",
WC = "โ‰‘",
JC = "โ‰",
YC = "โˆธ",
KC = "โˆ”",
XC = "โŠก",
ZC = "โŒ†",
QC = "โˆฏ",
eE = "ยจ",
tE = "โ‡“",
nE = "โ‡",
sE = "โ‡”",
aE = "โซค",
oE = "โŸธ",
rE = "โŸบ",
iE = "โŸน",
cE = "โ‡’",
lE = "โŠจ",
uE = "โ‡‘",
pE = "โ‡•",
dE = "โˆฅ",
mE = "โค“",
fE = "โ†“",
hE = "โ†“",
gE = "โ‡“",
bE = "โ‡ต",
vE = "ฬ‘",
xE = "โ‡Š",
yE = "โ‡ƒ",
wE = "โ‡‚",
kE = "โฅ",
_E = "โฅž",
CE = "โฅ–",
EE = "โ†ฝ",
AE = "โฅŸ",
SE = "โฅ—",
TE = "โ‡",
DE = "โ†ง",
IE = "โŠค",
NE = "โค",
ME = "โŒŸ",
OE = "โŒŒ",
LE = "๐’Ÿ",
RE = "๐’น",
PE = "ะ…",
BE = "ั•",
zE = "โงถ",
qE = "ฤ",
FE = "ฤ‘",
jE = "โ‹ฑ",
$E = "โ–ฟ",
UE = "โ–พ",
VE = "โ‡ต",
HE = "โฅฏ",
GE = "โฆฆ",
WE = "ะ",
JE = "ัŸ",
YE = "โŸฟ",
KE = "ร‰",
XE = "รฉ",
ZE = "โฉฎ",
QE = "ฤš",
eA = "ฤ›",
tA = "รŠ",
nA = "รช",
sA = "โ‰–",
aA = "โ‰•",
oA = "ะญ",
rA = "ั",
iA = "โฉท",
cA = "ฤ–",
lA = "ฤ—",
uA = "โ‰‘",
pA = "โ…‡",
dA = "โ‰’",
mA = "๐”ˆ",
fA = "๐”ข",
hA = "โชš",
gA = "รˆ",
bA = "รจ",
vA = "โช–",
xA = "โช˜",
yA = "โช™",
wA = "โˆˆ",
kA = "โง",
_A = "โ„“",
CA = "โช•",
EA = "โช—",
AA = "ฤ’",
SA = "ฤ“",
TA = "โˆ…",
DA = "โˆ…",
IA = "โ—ป",
NA = "โˆ…",
MA = "โ–ซ",
OA = "โ€„",
LA = "โ€…",
RA = "โ€ƒ",
PA = "ลŠ",
BA = "ล‹",
zA = "โ€‚",
qA = "ฤ˜",
FA = "ฤ™",
jA = "๐”ผ",
$A = "๐•–",
UA = "โ‹•",
VA = "โงฃ",
HA = "โฉฑ",
GA = "ฮต",
WA = "ฮ•",
JA = "ฮต",
YA = "ฯต",
KA = "โ‰–",
XA = "โ‰•",
ZA = "โ‰‚",
QA = "โช–",
eS = "โช•",
tS = "โฉต",
nS = "=",
sS = "โ‰‚",
aS = "โ‰Ÿ",
oS = "โ‡Œ",
rS = "โ‰ก",
iS = "โฉธ",
cS = "โงฅ",
lS = "โฅฑ",
uS = "โ‰“",
pS = "โ„ฏ",
dS = "โ„ฐ",
mS = "โ‰",
fS = "โฉณ",
hS = "โ‰‚",
gS = "ฮ—",
bS = "ฮท",
vS = "ร",
xS = "รฐ",
yS = "ร‹",
wS = "รซ",
kS = "โ‚ฌ",
_S = "!",
CS = "โˆƒ",
ES = "โˆƒ",
AS = "โ„ฐ",
SS = "โ…‡",
TS = "โ…‡",
DS = "โ‰’",
IS = "ะค",
NS = "ั„",
MS = "โ™€",
OS = "๏ฌƒ",
LS = "๏ฌ€",
RS = "๏ฌ„",
PS = "๐”‰",
BS = "๐”ฃ",
zS = "๏ฌ",
qS = "โ—ผ",
FS = "โ–ช",
jS = "fj",
$S = "โ™ญ",
US = "๏ฌ‚",
VS = "โ–ฑ",
HS = "ฦ’",
GS = "๐”ฝ",
WS = "๐•—",
JS = "โˆ€",
YS = "โˆ€",
KS = "โ‹”",
XS = "โซ™",
ZS = "โ„ฑ",
QS = "โจ",
eT = "ยฝ",
tT = "โ…“",
nT = "ยผ",
sT = "โ…•",
aT = "โ…™",
oT = "โ…›",
rT = "โ…”",
iT = "โ…–",
cT = "ยพ",
lT = "โ…—",
uT = "โ…œ",
pT = "โ…˜",
dT = "โ…š",
mT = "โ…",
fT = "โ…ž",
hT = "โ„",
gT = "โŒข",
bT = "๐’ป",
vT = "โ„ฑ",
xT = "วต",
yT = "ฮ“",
wT = "ฮณ",
kT = "ฯœ",
_T = "ฯ",
CT = "โช†",
ET = "ฤž",
AT = "ฤŸ",
ST = "ฤข",
TT = "ฤœ",
DT = "ฤ",
IT = "ะ“",
NT = "ะณ",
MT = "ฤ ",
OT = "ฤก",
LT = "โ‰ฅ",
RT = "โ‰ง",
PT = "โชŒ",
BT = "โ‹›",
zT = "โ‰ฅ",
qT = "โ‰ง",
FT = "โฉพ",
jT = "โชฉ",
$T = "โฉพ",
UT = "โช€",
VT = "โช‚",
HT = "โช„",
GT = "โ‹›๏ธ€",
WT = "โช”",
JT = "๐”Š",
YT = "๐”ค",
KT = "โ‰ซ",
XT = "โ‹™",
ZT = "โ‹™",
QT = "โ„ท",
e2 = "ะƒ",
t2 = "ั“",
n2 = "โชฅ",
s2 = "โ‰ท",
a2 = "โช’",
o2 = "โชค",
r2 = "โชŠ",
i2 = "โชŠ",
c2 = "โชˆ",
l2 = "โ‰ฉ",
u2 = "โชˆ",
p2 = "โ‰ฉ",
d2 = "โ‹ง",
m2 = "๐”พ",
f2 = "๐•˜",
h2 = "`",
g2 = "โ‰ฅ",
b2 = "โ‹›",
v2 = "โ‰ง",
x2 = "โชข",
y2 = "โ‰ท",
w2 = "โฉพ",
k2 = "โ‰ณ",
_2 = "๐’ข",
C2 = "โ„Š",
E2 = "โ‰ณ",
A2 = "โชŽ",
S2 = "โช",
T2 = "โชง",
D2 = "โฉบ",
I2 = ">",
N2 = ">",
M2 = "โ‰ซ",
O2 = "โ‹—",
L2 = "โฆ•",
R2 = "โฉผ",
P2 = "โช†",
B2 = "โฅธ",
z2 = "โ‹—",
q2 = "โ‹›",
F2 = "โชŒ",
j2 = "โ‰ท",
$2 = "โ‰ณ",
U2 = "โ‰ฉ๏ธ€",
V2 = "โ‰ฉ๏ธ€",
H2 = "ห‡",
G2 = "โ€Š",
W2 = "ยฝ",
J2 = "โ„‹",
Y2 = "ะช",
K2 = "ัŠ",
X2 = "โฅˆ",
Z2 = "โ†”",
Q2 = "โ‡”",
eD = "โ†ญ",
tD = "^",
nD = "โ„",
sD = "ฤค",
aD = "ฤฅ",
oD = "โ™ฅ",
rD = "โ™ฅ",
iD = "โ€ฆ",
cD = "โŠน",
lD = "๐”ฅ",
uD = "โ„Œ",
pD = "โ„‹",
dD = "โคฅ",
mD = "โคฆ",
fD = "โ‡ฟ",
hD = "โˆป",
gD = "โ†ฉ",
bD = "โ†ช",
vD = "๐•™",
xD = "โ„",
yD = "โ€•",
wD = "โ”€",
kD = "๐’ฝ",
_D = "โ„‹",
CD = "โ„",
ED = "ฤฆ",
AD = "ฤง",
SD = "โ‰Ž",
TD = "โ‰",
DD = "โƒ",
ID = "โ€",
ND = "ร",
MD = "รญ",
OD = "โฃ",
LD = "รŽ",
RD = "รฎ",
PD = "ะ˜",
BD = "ะธ",
zD = "ฤฐ",
qD = "ะ•",
FD = "ะต",
jD = "ยก",
$D = "โ‡”",
UD = "๐”ฆ",
VD = "โ„‘",
HD = "รŒ",
GD = "รฌ",
WD = "โ…ˆ",
JD = "โจŒ",
YD = "โˆญ",
KD = "โงœ",
XD = "โ„ฉ",
ZD = "ฤฒ",
QD = "ฤณ",
eI = "ฤช",
tI = "ฤซ",
nI = "โ„‘",
sI = "โ…ˆ",
aI = "โ„",
oI = "โ„‘",
rI = "ฤฑ",
iI = "โ„‘",
cI = "โŠท",
lI = "ฦต",
uI = "โ‡’",
pI = "โ„…",
dI = "โˆž",
mI = "โง",
fI = "ฤฑ",
hI = "โŠบ",
gI = "โˆซ",
bI = "โˆฌ",
vI = "โ„ค",
xI = "โˆซ",
yI = "โŠบ",
wI = "โ‹‚",
kI = "โจ—",
_I = "โจผ",
CI = "โฃ",
EI = "โข",
AI = "ะ",
SI = "ั‘",
TI = "ฤฎ",
DI = "ฤฏ",
II = "๐•€",
NI = "๐•š",
MI = "ฮ™",
OI = "ฮน",
LI = "โจผ",
RI = "ยฟ",
PI = "๐’พ",
BI = "โ„",
zI = "โˆˆ",
qI = "โ‹ต",
FI = "โ‹น",
jI = "โ‹ด",
$I = "โ‹ณ",
UI = "โˆˆ",
VI = "โข",
HI = "ฤจ",
GI = "ฤฉ",
WI = "ะ†",
JI = "ั–",
YI = "ร",
KI = "รฏ",
XI = "ฤด",
ZI = "ฤต",
QI = "ะ™",
eN = "ะน",
tN = "๐”",
nN = "๐”ง",
sN = "ศท",
aN = "๐•",
oN = "๐•›",
rN = "๐’ฅ",
iN = "๐’ฟ",
cN = "ะˆ",
lN = "ั˜",
uN = "ะ„",
pN = "ั”",
dN = "ฮš",
mN = "ฮบ",
fN = "ฯฐ",
hN = "ฤถ",
gN = "ฤท",
bN = "ะš",
vN = "ะบ",
xN = "๐”Ž",
yN = "๐”จ",
wN = "ฤธ",
kN = "ะฅ",
_N = "ั…",
CN = "ะŒ",
EN = "ัœ",
AN = "๐•‚",
SN = "๐•œ",
TN = "๐’ฆ",
DN = "๐“€",
IN = "โ‡š",
NN = "ฤน",
MN = "ฤบ",
ON = "โฆด",
LN = "โ„’",
RN = "ฮ›",
PN = "ฮป",
BN = "โŸจ",
zN = "โŸช",
qN = "โฆ‘",
FN = "โŸจ",
jN = "โช…",
$N = "โ„’",
UN = "ยซ",
VN = "โ‡ค",
HN = "โคŸ",
GN = "โ†",
WN = "โ†ž",
JN = "โ‡",
YN = "โค",
KN = "โ†ฉ",
XN = "โ†ซ",
ZN = "โคน",
QN = "โฅณ",
eM = "โ†ข",
tM = "โค™",
nM = "โค›",
sM = "โชซ",
aM = "โชญ",
oM = "โชญ๏ธ€",
rM = "โคŒ",
iM = "โคŽ",
cM = "โฒ",
lM = "{",
uM = "[",
pM = "โฆ‹",
dM = "โฆ",
mM = "โฆ",
fM = "ฤฝ",
hM = "ฤพ",
gM = "ฤป",
bM = "ฤผ",
vM = "โŒˆ",
xM = "{",
yM = "ะ›",
wM = "ะป",
kM = "โคถ",
_M = "โ€œ",
CM = "โ€ž",
EM = "โฅง",
AM = "โฅ‹",
SM = "โ†ฒ",
TM = "โ‰ค",
DM = "โ‰ฆ",
IM = "โŸจ",
NM = "โ‡ค",
MM = "โ†",
OM = "โ†",
LM = "โ‡",
RM = "โ‡†",
PM = "โ†ข",
BM = "โŒˆ",
zM = "โŸฆ",
qM = "โฅก",
FM = "โฅ™",
jM = "โ‡ƒ",
$M = "โŒŠ",
UM = "โ†ฝ",
VM = "โ†ผ",
HM = "โ‡‡",
GM = "โ†”",
WM = "โ†”",
JM = "โ‡”",
YM = "โ‡†",
KM = "โ‡‹",
XM = "โ†ญ",
ZM = "โฅŽ",
QM = "โ†ค",
eO = "โŠฃ",
tO = "โฅš",
nO = "โ‹‹",
sO = "โง",
aO = "โŠฒ",
oO = "โŠด",
rO = "โฅ‘",
iO = "โฅ ",
cO = "โฅ˜",
lO = "โ†ฟ",
uO = "โฅ’",
pO = "โ†ผ",
dO = "โช‹",
mO = "โ‹š",
fO = "โ‰ค",
hO = "โ‰ฆ",
gO = "โฉฝ",
bO = "โชจ",
vO = "โฉฝ",
xO = "โฉฟ",
yO = "โช",
wO = "โชƒ",
kO = "โ‹š๏ธ€",
_O = "โช“",
CO = "โช…",
EO = "โ‹–",
AO = "โ‹š",
SO = "โช‹",
TO = "โ‹š",
DO = "โ‰ฆ",
IO = "โ‰ถ",
NO = "โ‰ถ",
MO = "โชก",
OO = "โ‰ฒ",
LO = "โฉฝ",
RO = "โ‰ฒ",
PO = "โฅผ",
BO = "โŒŠ",
zO = "๐”",
qO = "๐”ฉ",
FO = "โ‰ถ",
jO = "โช‘",
$O = "โฅข",
UO = "โ†ฝ",
VO = "โ†ผ",
HO = "โฅช",
GO = "โ–„",
WO = "ะ‰",
JO = "ั™",
YO = "โ‡‡",
KO = "โ‰ช",
XO = "โ‹˜",
ZO = "โŒž",
QO = "โ‡š",
eL = "โฅซ",
tL = "โ—บ",
nL = "ฤฟ",
sL = "ล€",
aL = "โŽฐ",
oL = "โŽฐ",
rL = "โช‰",
iL = "โช‰",
cL = "โช‡",
lL = "โ‰จ",
uL = "โช‡",
pL = "โ‰จ",
dL = "โ‹ฆ",
mL = "โŸฌ",
fL = "โ‡ฝ",
hL = "โŸฆ",
gL = "โŸต",
bL = "โŸต",
vL = "โŸธ",
xL = "โŸท",
yL = "โŸท",
wL = "โŸบ",
kL = "โŸผ",
_L = "โŸถ",
CL = "โŸถ",
EL = "โŸน",
AL = "โ†ซ",
SL = "โ†ฌ",
TL = "โฆ…",
DL = "๐•ƒ",
IL = "๐•",
NL = "โจญ",
ML = "โจด",
OL = "โˆ—",
LL = "_",
RL = "โ†™",
PL = "โ†˜",
BL = "โ—Š",
zL = "โ—Š",
qL = "โงซ",
FL = "(",
jL = "โฆ“",
$L = "โ‡†",
UL = "โŒŸ",
VL = "โ‡‹",
HL = "โฅญ",
GL = "โ€Ž",
WL = "โŠฟ",
JL = "โ€น",
YL = "๐“",
KL = "โ„’",
XL = "โ†ฐ",
ZL = "โ†ฐ",
QL = "โ‰ฒ",
e3 = "โช",
t3 = "โช",
n3 = "[",
s3 = "โ€˜",
a3 = "โ€š",
o3 = "ล",
r3 = "ล‚",
i3 = "โชฆ",
c3 = "โฉน",
l3 = "<",
u3 = "<",
p3 = "โ‰ช",
d3 = "โ‹–",
m3 = "โ‹‹",
f3 = "โ‹‰",
h3 = "โฅถ",
g3 = "โฉป",
b3 = "โ—ƒ",
v3 = "โŠด",
x3 = "โ—‚",
y3 = "โฆ–",
w3 = "โฅŠ",
k3 = "โฅฆ",
_3 = "โ‰จ๏ธ€",
C3 = "โ‰จ๏ธ€",
E3 = "ยฏ",
A3 = "โ™‚",
S3 = "โœ ",
T3 = "โœ ",
D3 = "โ†ฆ",
I3 = "โ†ฆ",
N3 = "โ†ง",
M3 = "โ†ค",
O3 = "โ†ฅ",
L3 = "โ–ฎ",
R3 = "โจฉ",
P3 = "ะœ",
B3 = "ะผ",
z3 = "โ€”",
q3 = "โˆบ",
F3 = "โˆก",
j3 = "โŸ",
$3 = "โ„ณ",
U3 = "๐”",
V3 = "๐”ช",
H3 = "โ„ง",
G3 = "ยต",
W3 = "*",
J3 = "โซฐ",
Y3 = "โˆฃ",
K3 = "ยท",
X3 = "โŠŸ",
Z3 = "โˆ’",
Q3 = "โˆธ",
eR = "โจช",
tR = "โˆ“",
nR = "โซ›",
sR = "โ€ฆ",
aR = "โˆ“",
oR = "โŠง",
rR = "๐•„",
iR = "๐•ž",
cR = "โˆ“",
lR = "๐“‚",
uR = "โ„ณ",
pR = "โˆพ",
dR = "ฮœ",
mR = "ฮผ",
fR = "โŠธ",
hR = "โŠธ",
gR = "โˆ‡",
bR = "ลƒ",
vR = "ล„",
xR = "โˆ โƒ’",
yR = "โ‰‰",
wR = "โฉฐฬธ",
kR = "โ‰‹ฬธ",
_R = "ล‰",
CR = "โ‰‰",
ER = "โ™ฎ",
AR = "โ„•",
SR = "โ™ฎ",
TR = "ย ",
DR = "โ‰Žฬธ",
IR = "โ‰ฬธ",
NR = "โฉƒ",
MR = "ล‡",
OR = "ลˆ",
LR = "ล…",
RR = "ล†",
PR = "โ‰‡",
BR = "โฉญฬธ",
zR = "โฉ‚",
qR = "ะ",
FR = "ะฝ",
jR = "โ€“",
$R = "โคค",
UR = "โ†—",
VR = "โ‡—",
HR = "โ†—",
GR = "โ‰ ",
WR = "โ‰ฬธ",
JR = "โ€‹",
YR = "โ€‹",
KR = "โ€‹",
XR = "โ€‹",
ZR = "โ‰ข",
QR = "โคจ",
eP = "โ‰‚ฬธ",
tP = "โ‰ซ",
nP = "โ‰ช",
sP = `
`,
aP = "โˆ„",
oP = "โˆ„",
rP = "๐”‘",
iP = "๐”ซ",
cP = "โ‰งฬธ",
lP = "โ‰ฑ",
uP = "โ‰ฑ",
pP = "โ‰งฬธ",
dP = "โฉพฬธ",
mP = "โฉพฬธ",
fP = "โ‹™ฬธ",
hP = "โ‰ต",
gP = "โ‰ซโƒ’",
bP = "โ‰ฏ",
vP = "โ‰ฏ",
xP = "โ‰ซฬธ",
yP = "โ†ฎ",
wP = "โ‡Ž",
kP = "โซฒ",
_P = "โˆ‹",
CP = "โ‹ผ",
EP = "โ‹บ",
AP = "โˆ‹",
SP = "ะŠ",
TP = "ัš",
DP = "โ†š",
IP = "โ‡",
NP = "โ€ฅ",
MP = "โ‰ฆฬธ",
OP = "โ‰ฐ",
LP = "โ†š",
RP = "โ‡",
PP = "โ†ฎ",
BP = "โ‡Ž",
zP = "โ‰ฐ",
qP = "โ‰ฆฬธ",
FP = "โฉฝฬธ",
jP = "โฉฝฬธ",
$P = "โ‰ฎ",
UP = "โ‹˜ฬธ",
VP = "โ‰ด",
HP = "โ‰ชโƒ’",
GP = "โ‰ฎ",
WP = "โ‹ช",
JP = "โ‹ฌ",
YP = "โ‰ชฬธ",
KP = "โˆค",
XP = "โ ",
ZP = "ย ",
QP = "๐•Ÿ",
e4 = "โ„•",
t4 = "โซฌ",
n4 = "ยฌ",
s4 = "โ‰ข",
a4 = "โ‰ญ",
o4 = "โˆฆ",
r4 = "โˆ‰",
i4 = "โ‰ ",
c4 = "โ‰‚ฬธ",
l4 = "โˆ„",
u4 = "โ‰ฏ",
p4 = "โ‰ฑ",
d4 = "โ‰งฬธ",
m4 = "โ‰ซฬธ",
f4 = "โ‰น",
h4 = "โฉพฬธ",
g4 = "โ‰ต",
b4 = "โ‰Žฬธ",
v4 = "โ‰ฬธ",
x4 = "โˆ‰",
y4 = "โ‹ตฬธ",
w4 = "โ‹นฬธ",
k4 = "โˆ‰",
_4 = "โ‹ท",
C4 = "โ‹ถ",
E4 = "โงฬธ",
A4 = "โ‹ช",
S4 = "โ‹ฌ",
T4 = "โ‰ฎ",
D4 = "โ‰ฐ",
I4 = "โ‰ธ",
N4 = "โ‰ชฬธ",
M4 = "โฉฝฬธ",
O4 = "โ‰ด",
L4 = "โชขฬธ",
R4 = "โชกฬธ",
P4 = "โˆŒ",
B4 = "โˆŒ",
z4 = "โ‹พ",
q4 = "โ‹ฝ",
F4 = "โŠ€",
j4 = "โชฏฬธ",
$4 = "โ‹ ",
U4 = "โˆŒ",
V4 = "โงฬธ",
H4 = "โ‹ซ",
G4 = "โ‹ญ",
W4 = "โŠฬธ",
J4 = "โ‹ข",
Y4 = "โАฬธ",
K4 = "โ‹ฃ",
X4 = "โŠ‚โƒ’",
Z4 = "โŠˆ",
Q4 = "โЁ",
e6 = "โชฐฬธ",
t6 = "โ‹ก",
n6 = "โ‰ฟฬธ",
s6 = "โŠƒโƒ’",
a6 = "โЉ",
o6 = "โ‰",
r6 = "โ‰„",
i6 = "โ‰‡",
c6 = "โ‰‰",
l6 = "โˆค",
u6 = "โˆฆ",
p6 = "โˆฆ",
d6 = "โซฝโƒฅ",
m6 = "โˆ‚ฬธ",
f6 = "โจ”",
h6 = "โŠ€",
g6 = "โ‹ ",
b6 = "โŠ€",
v6 = "โชฏฬธ",
x6 = "โชฏฬธ",
y6 = "โคณฬธ",
w6 = "โ†›",
k6 = "โ‡",
_6 = "โ†ฬธ",
C6 = "โ†›",
E6 = "โ‡",
A6 = "โ‹ซ",
S6 = "โ‹ญ",
T6 = "โЁ",
D6 = "โ‹ก",
I6 = "โชฐฬธ",
N6 = "๐’ฉ",
M6 = "๐“ƒ",
O6 = "โˆค",
L6 = "โˆฆ",
R6 = "โ‰",
P6 = "โ‰„",
B6 = "โ‰„",
z6 = "โˆค",
q6 = "โˆฆ",
F6 = "โ‹ข",
j6 = "โ‹ฃ",
$6 = "โŠ„",
U6 = "โซ…ฬธ",
V6 = "โŠˆ",
H6 = "โŠ‚โƒ’",
G6 = "โŠˆ",
W6 = "โซ…ฬธ",
J6 = "โЁ",
Y6 = "โชฐฬธ",
K6 = "โŠ…",
X6 = "โซ†ฬธ",
Z6 = "โЉ",
Q6 = "โŠƒโƒ’",
eB = "โЉ",
tB = "โซ†ฬธ",
nB = "โ‰น",
sB = "ร‘",
aB = "รฑ",
oB = "โ‰ธ",
rB = "โ‹ช",
iB = "โ‹ฌ",
cB = "โ‹ซ",
lB = "โ‹ญ",
uB = "ฮ",
pB = "ฮฝ",
dB = "#",
mB = "โ„–",
fB = "โ€‡",
hB = "โ‰โƒ’",
gB = "โŠฌ",
bB = "โŠญ",
vB = "โŠฎ",
xB = "โŠฏ",
yB = "โ‰ฅโƒ’",
wB = ">โƒ’",
kB = "โค„",
_B = "โงž",
CB = "โค‚",
EB = "โ‰คโƒ’",
AB = "<โƒ’",
SB = "โŠดโƒ’",
TB = "โคƒ",
DB = "โŠตโƒ’",
IB = "โˆผโƒ’",
NB = "โคฃ",
MB = "โ†–",
OB = "โ‡–",
LB = "โ†–",
RB = "โคง",
PB = "ร“",
BB = "รณ",
zB = "โŠ›",
qB = "ร”",
FB = "รด",
jB = "โŠš",
$B = "ะž",
UB = "ะพ",
VB = "โŠ",
HB = "ล",
GB = "ล‘",
WB = "โจธ",
JB = "โŠ™",
YB = "โฆผ",
KB = "ล’",
XB = "ล“",
ZB = "โฆฟ",
QB = "๐”’",
e5 = "๐”ฌ",
t5 = "ห›",
n5 = "ร’",
s5 = "รฒ",
a5 = "โง",
o5 = "โฆต",
r5 = "ฮฉ",
i5 = "โˆฎ",
c5 = "โ†บ",
l5 = "โฆพ",
u5 = "โฆป",
p5 = "โ€พ",
d5 = "โง€",
m5 = "ลŒ",
f5 = "ล",
h5 = "ฮฉ",
g5 = "ฯ‰",
b5 = "ฮŸ",
v5 = "ฮฟ",
x5 = "โฆถ",
y5 = "โŠ–",
w5 = "๐•†",
k5 = "๐• ",
_5 = "โฆท",
C5 = "โ€œ",
E5 = "โ€˜",
A5 = "โฆน",
S5 = "โŠ•",
T5 = "โ†ป",
D5 = "โฉ”",
I5 = "โˆจ",
N5 = "โฉ",
M5 = "โ„ด",
O5 = "โ„ด",
L5 = "ยช",
R5 = "ยบ",
P5 = "โŠถ",
B5 = "โฉ–",
z5 = "โฉ—",
q5 = "โฉ›",
F5 = "โ“ˆ",
j5 = "๐’ช",
$5 = "โ„ด",
U5 = "ร˜",
V5 = "รธ",
H5 = "โŠ˜",
G5 = "ร•",
W5 = "รต",
J5 = "โจถ",
Y5 = "โจท",
K5 = "โŠ—",
X5 = "ร–",
Z5 = "รถ",
Q5 = "โŒฝ",
ez = "โ€พ",
tz = "โž",
nz = "โŽด",
sz = "โœ",
az = "ยถ",
oz = "โˆฅ",
rz = "โˆฅ",
iz = "โซณ",
cz = "โซฝ",
lz = "โˆ‚",
uz = "โˆ‚",
pz = "ะŸ",
dz = "ะฟ",
mz = "%",
fz = ".",
hz = "โ€ฐ",
gz = "โŠฅ",
bz = "โ€ฑ",
vz = "๐”“",
xz = "๐”ญ",
yz = "ฮฆ",
wz = "ฯ†",
kz = "ฯ•",
_z = "โ„ณ",
Cz = "โ˜Ž",
Ez = "ฮ ",
Az = "ฯ€",
Sz = "โ‹”",
Tz = "ฯ–",
Dz = "โ„",
Iz = "โ„Ž",
Nz = "โ„",
Mz = "โจฃ",
Oz = "โŠž",
Lz = "โจข",
Rz = "+",
Pz = "โˆ”",
Bz = "โจฅ",
zz = "โฉฒ",
qz = "ยฑ",
Fz = "ยฑ",
jz = "โจฆ",
$z = "โจง",
Uz = "ยฑ",
Vz = "โ„Œ",
Hz = "โจ•",
Gz = "๐•ก",
Wz = "โ„™",
Jz = "ยฃ",
Yz = "โชท",
Kz = "โชป",
Xz = "โ‰บ",
Zz = "โ‰ผ",
Qz = "โชท",
eq = "โ‰บ",
tq = "โ‰ผ",
nq = "โ‰บ",
sq = "โชฏ",
aq = "โ‰ผ",
oq = "โ‰พ",
rq = "โชฏ",
iq = "โชน",
cq = "โชต",
lq = "โ‹จ",
uq = "โชฏ",
pq = "โชณ",
dq = "โ‰พ",
mq = "โ€ฒ",
fq = "โ€ณ",
hq = "โ„™",
gq = "โชน",
bq = "โชต",
vq = "โ‹จ",
xq = "โˆ",
yq = "โˆ",
wq = "โŒฎ",
kq = "โŒ’",
_q = "โŒ“",
Cq = "โˆ",
Eq = "โˆ",
Aq = "โˆท",
Sq = "โˆ",
Tq = "โ‰พ",
Dq = "โŠฐ",
Iq = "๐’ซ",
Nq = "๐“…",
Mq = "ฮจ",
Oq = "ฯˆ",
Lq = "โ€ˆ",
Rq = "๐””",
Pq = "๐”ฎ",
Bq = "โจŒ",
zq = "๐•ข",
qq = "โ„š",
Fq = "โ—",
jq = "๐’ฌ",
$q = "๐“†",
Uq = "โ„",
Vq = "โจ–",
Hq = "?",
Gq = "โ‰Ÿ",
Wq = '"',
Jq = '"',
Yq = "โ‡›",
Kq = "โˆฝฬฑ",
Xq = "ล”",
Zq = "ล•",
Qq = "โˆš",
e8 = "โฆณ",
t8 = "โŸฉ",
n8 = "โŸซ",
s8 = "โฆ’",
a8 = "โฆฅ",
o8 = "โŸฉ",
r8 = "ยป",
i8 = "โฅต",
c8 = "โ‡ฅ",
l8 = "โค ",
u8 = "โคณ",
p8 = "โ†’",
d8 = "โ† ",
m8 = "โ‡’",
f8 = "โคž",
h8 = "โ†ช",
g8 = "โ†ฌ",
b8 = "โฅ…",
v8 = "โฅด",
x8 = "โค–",
y8 = "โ†ฃ",
w8 = "โ†",
k8 = "โคš",
_8 = "โคœ",
C8 = "โˆถ",
E8 = "โ„š",
A8 = "โค",
S8 = "โค",
T8 = "โค",
D8 = "โณ",
I8 = "}",
N8 = "]",
M8 = "โฆŒ",
O8 = "โฆŽ",
L8 = "โฆ",
R8 = "ล˜",
P8 = "ล™",
B8 = "ล–",
z8 = "ล—",
q8 = "โŒ‰",
F8 = "}",
j8 = "ะ ",
$8 = "ั€",
U8 = "โคท",
V8 = "โฅฉ",
H8 = "โ€",
G8 = "โ€",
W8 = "โ†ณ",
J8 = "โ„œ",
Y8 = "โ„›",
K8 = "โ„œ",
X8 = "โ„",
Z8 = "โ„œ",
Q8 = "โ–ญ",
eF = "ยฎ",
tF = "ยฎ",
nF = "โˆ‹",
sF = "โ‡‹",
aF = "โฅฏ",
oF = "โฅฝ",
rF = "โŒ‹",
iF = "๐”ฏ",
cF = "โ„œ",
lF = "โฅค",
uF = "โ‡",
pF = "โ‡€",
dF = "โฅฌ",
mF = "ฮก",
fF = "ฯ",
hF = "ฯฑ",
gF = "โŸฉ",
bF = "โ‡ฅ",
vF = "โ†’",
xF = "โ†’",
yF = "โ‡’",
wF = "โ‡„",
kF = "โ†ฃ",
_F = "โŒ‰",
CF = "โŸง",
EF = "โฅ",
AF = "โฅ•",
SF = "โ‡‚",
TF = "โŒ‹",
DF = "โ‡",
IF = "โ‡€",
NF = "โ‡„",
MF = "โ‡Œ",
OF = "โ‡‰",
LF = "โ†",
RF = "โ†ฆ",
PF = "โŠข",
BF = "โฅ›",
zF = "โ‹Œ",
qF = "โง",
FF = "โŠณ",
jF = "โŠต",
$F = "โฅ",
UF = "โฅœ",
VF = "โฅ”",
HF = "โ†พ",
GF = "โฅ“",
WF = "โ‡€",
JF = "หš",
YF = "โ‰“",
KF = "โ‡„",
XF = "โ‡Œ",
ZF = "โ€",
QF = "โŽฑ",
e7 = "โŽฑ",
t7 = "โซฎ",
n7 = "โŸญ",
s7 = "โ‡พ",
a7 = "โŸง",
o7 = "โฆ†",
r7 = "๐•ฃ",
i7 = "โ„",
c7 = "โจฎ",
l7 = "โจต",
u7 = "โฅฐ",
p7 = ")",
d7 = "โฆ”",
m7 = "โจ’",
f7 = "โ‡‰",
h7 = "โ‡›",
g7 = "โ€บ",
b7 = "๐“‡",
v7 = "โ„›",
x7 = "โ†ฑ",
y7 = "โ†ฑ",
w7 = "]",
k7 = "โ€™",
_7 = "โ€™",
C7 = "โ‹Œ",
E7 = "โ‹Š",
A7 = "โ–น",
S7 = "โŠต",
T7 = "โ–ธ",
D7 = "โงŽ",
I7 = "โงด",
N7 = "โฅจ",
M7 = "โ„ž",
O7 = "ลš",
L7 = "ล›",
R7 = "โ€š",
P7 = "โชธ",
B7 = "ล ",
z7 = "ลก",
q7 = "โชผ",
F7 = "โ‰ป",
j7 = "โ‰ฝ",
$7 = "โชฐ",
U7 = "โชด",
V7 = "ลž",
H7 = "ลŸ",
G7 = "ลœ",
W7 = "ล",
J7 = "โชบ",
Y7 = "โชถ",
K7 = "โ‹ฉ",
X7 = "โจ“",
Z7 = "โ‰ฟ",
Q7 = "ะก",
ej = "ั",
tj = "โŠก",
nj = "โ‹…",
sj = "โฉฆ",
aj = "โคฅ",
oj = "โ†˜",
rj = "โ‡˜",
ij = "โ†˜",
cj = "ยง",
lj = ";",
uj = "โคฉ",
pj = "โˆ–",
dj = "โˆ–",
mj = "โœถ",
fj = "๐”–",
hj = "๐”ฐ",
gj = "โŒข",
bj = "โ™ฏ",
vj = "ะฉ",
xj = "ั‰",
yj = "ะจ",
wj = "ัˆ",
kj = "โ†“",
_j = "โ†",
Cj = "โˆฃ",
Ej = "โˆฅ",
Aj = "โ†’",
Sj = "โ†‘",
Tj = "ยญ",
Dj = "ฮฃ",
Ij = "ฯƒ",
Nj = "ฯ‚",
Mj = "ฯ‚",
Oj = "โˆผ",
Lj = "โฉช",
Rj = "โ‰ƒ",
Pj = "โ‰ƒ",
Bj = "โชž",
zj = "โช ",
qj = "โช",
Fj = "โชŸ",
jj = "โ‰†",
$j = "โจค",
Uj = "โฅฒ",
Vj = "โ†",
Hj = "โˆ˜",
Gj = "โˆ–",
Wj = "โจณ",
Jj = "โงค",
Yj = "โˆฃ",
Kj = "โŒฃ",
Xj = "โชช",
Zj = "โชฌ",
Qj = "โชฌ๏ธ€",
e9 = "ะฌ",
t9 = "ัŒ",
n9 = "โŒฟ",
s9 = "โง„",
a9 = "/",
o9 = "๐•Š",
r9 = "๐•ค",
i9 = "โ™ ",
c9 = "โ™ ",
l9 = "โˆฅ",
u9 = "โŠ“",
p9 = "โŠ“๏ธ€",
d9 = "โŠ”",
m9 = "โŠ”๏ธ€",
f9 = "โˆš",
h9 = "โŠ",
g9 = "โŠ‘",
b9 = "โŠ",
v9 = "โŠ‘",
x9 = "โА",
y9 = "โŠ’",
w9 = "โА",
k9 = "โŠ’",
_9 = "โ–ก",
C9 = "โ–ก",
E9 = "โŠ“",
A9 = "โŠ",
S9 = "โŠ‘",
T9 = "โА",
D9 = "โŠ’",
I9 = "โŠ”",
N9 = "โ–ช",
M9 = "โ–ก",
O9 = "โ–ช",
L9 = "โ†’",
R9 = "๐’ฎ",
P9 = "๐“ˆ",
B9 = "โˆ–",
z9 = "โŒฃ",
q9 = "โ‹†",
F9 = "โ‹†",
j9 = "โ˜†",
$9 = "โ˜…",
U9 = "ฯต",
V9 = "ฯ•",
H9 = "ยฏ",
G9 = "โŠ‚",
W9 = "โ‹",
J9 = "โชฝ",
Y9 = "โซ…",
K9 = "โІ",
X9 = "โซƒ",
Z9 = "โซ",
Q9 = "โซ‹",
e$ = "โŠŠ",
t$ = "โชฟ",
n$ = "โฅน",
s$ = "โŠ‚",
a$ = "โ‹",
o$ = "โІ",
r$ = "โซ…",
i$ = "โІ",
c$ = "โŠŠ",
l$ = "โซ‹",
u$ = "โซ‡",
p$ = "โซ•",
d$ = "โซ“",
m$ = "โชธ",
f$ = "โ‰ป",
h$ = "โ‰ฝ",
g$ = "โ‰ป",
b$ = "โชฐ",
v$ = "โ‰ฝ",
x$ = "โ‰ฟ",
y$ = "โชฐ",
w$ = "โชบ",
k$ = "โชถ",
_$ = "โ‹ฉ",
C$ = "โ‰ฟ",
E$ = "โˆ‹",
A$ = "โˆ‘",
S$ = "โˆ‘",
T$ = "โ™ช",
D$ = "ยน",
I$ = "ยฒ",
N$ = "ยณ",
M$ = "โŠƒ",
O$ = "โ‹‘",
L$ = "โชพ",
R$ = "โซ˜",
P$ = "โซ†",
B$ = "โЇ",
z$ = "โซ„",
q$ = "โŠƒ",
F$ = "โЇ",
j$ = "โŸ‰",
$$ = "โซ—",
U$ = "โฅป",
V$ = "โซ‚",
H$ = "โซŒ",
G$ = "โŠ‹",
W$ = "โซ€",
J$ = "โŠƒ",
Y$ = "โ‹‘",
K$ = "โЇ",
X$ = "โซ†",
Z$ = "โŠ‹",
Q$ = "โซŒ",
eU = "โซˆ",
tU = "โซ”",
nU = "โซ–",
sU = "โคฆ",
aU = "โ†™",
oU = "โ‡™",
rU = "โ†™",
iU = "โคช",
cU = "รŸ",
lU = " ",
uU = "โŒ–",
pU = "ฮค",
dU = "ฯ„",
mU = "โŽด",
fU = "ลค",
hU = "ลฅ",
gU = "ลข",
bU = "ลฃ",
vU = "ะข",
xU = "ั‚",
yU = "โƒ›",
wU = "โŒ•",
kU = "๐”—",
_U = "๐”ฑ",
CU = "โˆด",
EU = "โˆด",
AU = "โˆด",
SU = "ฮ˜",
TU = "ฮธ",
DU = "ฯ‘",
IU = "ฯ‘",
NU = "โ‰ˆ",
MU = "โˆผ",
OU = "โŸโ€Š",
LU = "โ€‰",
RU = "โ€‰",
PU = "โ‰ˆ",
BU = "โˆผ",
zU = "รž",
qU = "รพ",
FU = "หœ",
jU = "โˆผ",
$U = "โ‰ƒ",
UU = "โ‰…",
VU = "โ‰ˆ",
HU = "โจฑ",
GU = "โŠ ",
WU = "ร—",
JU = "โจฐ",
YU = "โˆญ",
KU = "โคจ",
XU = "โŒถ",
ZU = "โซฑ",
QU = "โŠค",
eV = "๐•‹",
tV = "๐•ฅ",
nV = "โซš",
sV = "โคฉ",
aV = "โ€ด",
oV = "โ„ข",
rV = "โ„ข",
iV = "โ–ต",
cV = "โ–ฟ",
lV = "โ—ƒ",
uV = "โŠด",
pV = "โ‰œ",
dV = "โ–น",
mV = "โŠต",
fV = "โ—ฌ",
hV = "โ‰œ",
gV = "โจบ",
bV = "โƒ›",
vV = "โจน",
xV = "โง",
yV = "โจป",
wV = "โข",
kV = "๐’ฏ",
_V = "๐“‰",
CV = "ะฆ",
EV = "ั†",
AV = "ะ‹",
SV = "ั›",
TV = "ลฆ",
DV = "ลง",
IV = "โ‰ฌ",
NV = "โ†ž",
MV = "โ† ",
OV = "รš",
LV = "รบ",
RV = "โ†‘",
PV = "โ†Ÿ",
BV = "โ‡‘",
zV = "โฅ‰",
qV = "ะŽ",
FV = "ัž",
jV = "ลฌ",
$V = "ลญ",
UV = "ร›",
VV = "รป",
HV = "ะฃ",
GV = "ัƒ",
WV = "โ‡…",
JV = "ลฐ",
YV = "ลฑ",
KV = "โฅฎ",
XV = "โฅพ",
ZV = "๐”˜",
QV = "๐”ฒ",
eH = "ร™",
tH = "รน",
nH = "โฅฃ",
sH = "โ†ฟ",
aH = "โ†พ",
oH = "โ–€",
rH = "โŒœ",
iH = "โŒœ",
cH = "โŒ",
lH = "โ—ธ",
uH = "ลช",
pH = "ลซ",
dH = "ยจ",
mH = "_",
fH = "โŸ",
hH = "โŽต",
gH = "โ",
bH = "โ‹ƒ",
vH = "โŠŽ",
xH = "ลฒ",
yH = "ลณ",
wH = "๐•Œ",
kH = "๐•ฆ",
_H = "โค’",
CH = "โ†‘",
EH = "โ†‘",
AH = "โ‡‘",
SH = "โ‡…",
TH = "โ†•",
DH = "โ†•",
IH = "โ‡•",
NH = "โฅฎ",
MH = "โ†ฟ",
OH = "โ†พ",
LH = "โŠŽ",
RH = "โ†–",
PH = "โ†—",
BH = "ฯ…",
zH = "ฯ’",
qH = "ฯ’",
FH = "ฮฅ",
jH = "ฯ…",
$H = "โ†ฅ",
UH = "โŠฅ",
VH = "โ‡ˆ",
HH = "โŒ",
GH = "โŒ",
WH = "โŒŽ",
JH = "ลฎ",
YH = "ลฏ",
KH = "โ—น",
XH = "๐’ฐ",
ZH = "๐“Š",
QH = "โ‹ฐ",
eG = "ลจ",
tG = "ลฉ",
nG = "โ–ต",
sG = "โ–ด",
aG = "โ‡ˆ",
oG = "รœ",
rG = "รผ",
iG = "โฆง",
cG = "โฆœ",
lG = "ฯต",
uG = "ฯฐ",
pG = "โˆ…",
dG = "ฯ•",
mG = "ฯ–",
fG = "โˆ",
hG = "โ†•",
gG = "โ‡•",
bG = "ฯฑ",
vG = "ฯ‚",
xG = "โŠŠ๏ธ€",
yG = "โซ‹๏ธ€",
wG = "โŠ‹๏ธ€",
kG = "โซŒ๏ธ€",
_G = "ฯ‘",
CG = "โŠฒ",
EG = "โŠณ",
AG = "โซจ",
SG = "โซซ",
TG = "โซฉ",
DG = "ะ’",
IG = "ะฒ",
NG = "โŠข",
MG = "โŠจ",
OG = "โŠฉ",
LG = "โŠซ",
RG = "โซฆ",
PG = "โŠป",
BG = "โˆจ",
zG = "โ‹",
qG = "โ‰š",
FG = "โ‹ฎ",
jG = "|",
$G = "โ€–",
UG = "|",
VG = "โ€–",
HG = "โˆฃ",
GG = "|",
WG = "โ˜",
JG = "โ‰€",
YG = "โ€Š",
KG = "๐”™",
XG = "๐”ณ",
ZG = "โŠฒ",
QG = "โŠ‚โƒ’",
eW = "โŠƒโƒ’",
tW = "๐•",
nW = "๐•ง",
sW = "โˆ",
aW = "โŠณ",
oW = "๐’ฑ",
rW = "๐“‹",
iW = "โซ‹๏ธ€",
cW = "โŠŠ๏ธ€",
lW = "โซŒ๏ธ€",
uW = "โŠ‹๏ธ€",
pW = "โŠช",
dW = "โฆš",
mW = "ลด",
fW = "ลต",
hW = "โฉŸ",
gW = "โˆง",
bW = "โ‹€",
vW = "โ‰™",
xW = "โ„˜",
yW = "๐”š",
wW = "๐”ด",
kW = "๐•Ž",
_W = "๐•จ",
CW = "โ„˜",
EW = "โ‰€",
AW = "โ‰€",
SW = "๐’ฒ",
TW = "๐“Œ",
DW = "โ‹‚",
IW = "โ—ฏ",
NW = "โ‹ƒ",
MW = "โ–ฝ",
OW = "๐”›",
LW = "๐”ต",
RW = "โŸท",
PW = "โŸบ",
BW = "ฮž",
zW = "ฮพ",
qW = "โŸต",
FW = "โŸธ",
jW = "โŸผ",
$W = "โ‹ป",
UW = "โจ€",
VW = "๐•",
HW = "๐•ฉ",
GW = "โจ",
WW = "โจ‚",
JW = "โŸถ",
YW = "โŸน",
KW = "๐’ณ",
XW = "๐“",
ZW = "โจ†",
QW = "โจ„",
eJ = "โ–ณ",
tJ = "โ‹",
nJ = "โ‹€",
sJ = "ร",
aJ = "รฝ",
oJ = "ะฏ",
rJ = "ั",
iJ = "ลถ",
cJ = "ลท",
lJ = "ะซ",
uJ = "ั‹",
pJ = "ยฅ",
dJ = "๐”œ",
mJ = "๐”ถ",
fJ = "ะ‡",
hJ = "ั—",
gJ = "๐•",
bJ = "๐•ช",
vJ = "๐’ด",
xJ = "๐“Ž",
yJ = "ะฎ",
wJ = "ัŽ",
kJ = "รฟ",
_J = "ลธ",
CJ = "ลน",
EJ = "ลบ",
AJ = "ลฝ",
SJ = "ลพ",
TJ = "ะ—",
DJ = "ะท",
IJ = "ลป",
NJ = "ลผ",
MJ = "โ„จ",
OJ = "โ€‹",
LJ = "ฮ–",
RJ = "ฮถ",
PJ = "๐”ท",
BJ = "โ„จ",
zJ = "ะ–",
qJ = "ะถ",
FJ = "โ‡",
jJ = "๐•ซ",
$J = "โ„ค",
UJ = "๐’ต",
VJ = "๐“",
HJ = "โ€",
GJ = "โ€Œ",
WJ = {
Aacute: Ix,
aacute: Nx,
Abreve: Mx,
abreve: Ox,
ac: Lx,
acd: Rx,
acE: Px,
Acirc: Bx,
acirc: zx,
acute: qx,
Acy: Fx,
acy: jx,
AElig: $x,
aelig: Ux,
af: Vx,
Afr: Hx,
afr: Gx,
Agrave: Wx,
agrave: Jx,
alefsym: Yx,
aleph: Kx,
Alpha: Xx,
alpha: Zx,
Amacr: Qx,
amacr: ey,
amalg: ty,
amp: ny,
AMP: sy,
andand: ay,
And: oy,
and: ry,
andd: iy,
andslope: cy,
andv: ly,
ang: uy,
ange: py,
angle: dy,
angmsdaa: my,
angmsdab: fy,
angmsdac: hy,
angmsdad: gy,
angmsdae: by,
angmsdaf: vy,
angmsdag: xy,
angmsdah: yy,
angmsd: wy,
angrt: ky,
angrtvb: _y,
angrtvbd: Cy,
angsph: Ey,
angst: Ay,
angzarr: Sy,
Aogon: Ty,
aogon: Dy,
Aopf: Iy,
aopf: Ny,
apacir: My,
ap: Oy,
apE: Ly,
ape: Ry,
apid: Py,
apos: By,
ApplyFunction: zy,
approx: qy,
approxeq: Fy,
Aring: jy,
aring: $y,
Ascr: Uy,
ascr: Vy,
Assign: Hy,
ast: Gy,
asymp: Wy,
asympeq: Jy,
Atilde: Yy,
atilde: Ky,
Auml: Xy,
auml: Zy,
awconint: Qy,
awint: ew,
backcong: tw,
backepsilon: nw,
backprime: sw,
backsim: aw,
backsimeq: ow,
Backslash: rw,
Barv: iw,
barvee: cw,
barwed: lw,
Barwed: uw,
barwedge: pw,
bbrk: dw,
bbrktbrk: mw,
bcong: fw,
Bcy: hw,
bcy: gw,
bdquo: bw,
becaus: vw,
because: xw,
Because: yw,
bemptyv: ww,
bepsi: kw,
bernou: _w,
Bernoullis: Cw,
Beta: Ew,
beta: Aw,
beth: Sw,
between: Tw,
Bfr: Dw,
bfr: Iw,
bigcap: Nw,
bigcirc: Mw,
bigcup: Ow,
bigodot: Lw,
bigoplus: Rw,
bigotimes: Pw,
bigsqcup: Bw,
bigstar: zw,
bigtriangledown: qw,
bigtriangleup: Fw,
biguplus: jw,
bigvee: $w,
bigwedge: Uw,
bkarow: Vw,
blacklozenge: Hw,
blacksquare: Gw,
blacktriangle: Ww,
blacktriangledown: Jw,
blacktriangleleft: Yw,
blacktriangleright: Kw,
blank: Xw,
blk12: Zw,
blk14: Qw,
blk34: ek,
block: tk,
bne: nk,
bnequiv: sk,
bNot: ak,
bnot: ok,
Bopf: rk,
bopf: ik,
bot: ck,
bottom: lk,
bowtie: uk,
boxbox: pk,
boxdl: dk,
boxdL: mk,
boxDl: fk,
boxDL: hk,
boxdr: gk,
boxdR: bk,
boxDr: vk,
boxDR: xk,
boxh: yk,
boxH: wk,
boxhd: kk,
boxHd: _k,
boxhD: Ck,
boxHD: Ek,
boxhu: Ak,
boxHu: Sk,
boxhU: Tk,
boxHU: Dk,
boxminus: Ik,
boxplus: Nk,
boxtimes: Mk,
boxul: Ok,
boxuL: Lk,
boxUl: Rk,
boxUL: Pk,
boxur: Bk,
boxuR: zk,
boxUr: qk,
boxUR: Fk,
boxv: jk,
boxV: $k,
boxvh: Uk,
boxvH: Vk,
boxVh: Hk,
boxVH: Gk,
boxvl: Wk,
boxvL: Jk,
boxVl: Yk,
boxVL: Kk,
boxvr: Xk,
boxvR: Zk,
boxVr: Qk,
boxVR: e0,
bprime: t0,
breve: n0,
Breve: s0,
brvbar: a0,
bscr: o0,
Bscr: r0,
bsemi: i0,
bsim: c0,
bsime: l0,
bsolb: u0,
bsol: p0,
bsolhsub: d0,
bull: m0,
bullet: f0,
bump: h0,
bumpE: g0,
bumpe: b0,
Bumpeq: v0,
bumpeq: x0,
Cacute: y0,
cacute: w0,
capand: k0,
capbrcup: _0,
capcap: C0,
cap: E0,
Cap: A0,
capcup: S0,
capdot: T0,
CapitalDifferentialD: D0,
caps: I0,
caret: N0,
caron: M0,
Cayleys: O0,
ccaps: L0,
Ccaron: R0,
ccaron: P0,
Ccedil: B0,
ccedil: z0,
Ccirc: q0,
ccirc: F0,
Cconint: j0,
ccups: $0,
ccupssm: U0,
Cdot: V0,
cdot: H0,
cedil: G0,
Cedilla: W0,
cemptyv: J0,
cent: Y0,
centerdot: K0,
CenterDot: X0,
cfr: Z0,
Cfr: Q0,
CHcy: e_,
chcy: t_,
check: n_,
checkmark: s_,
Chi: a_,
chi: o_,
circ: r_,
circeq: i_,
circlearrowleft: c_,
circlearrowright: l_,
circledast: u_,
circledcirc: p_,
circleddash: d_,
CircleDot: m_,
circledR: f_,
circledS: h_,
CircleMinus: g_,
CirclePlus: b_,
CircleTimes: v_,
cir: x_,
cirE: y_,
cire: w_,
cirfnint: k_,
cirmid: __,
cirscir: C_,
ClockwiseContourIntegral: E_,
CloseCurlyDoubleQuote: A_,
CloseCurlyQuote: S_,
clubs: T_,
clubsuit: D_,
colon: I_,
Colon: N_,
Colone: M_,
colone: O_,
coloneq: L_,
comma: R_,
commat: P_,
comp: B_,
compfn: z_,
complement: q_,
complexes: F_,
cong: j_,
congdot: $_,
Congruent: U_,
conint: V_,
Conint: H_,
ContourIntegral: G_,
copf: W_,
Copf: J_,
coprod: Y_,
Coproduct: K_,
copy: X_,
COPY: Z_,
copysr: Q_,
CounterClockwiseContourIntegral: e1,
crarr: t1,
cross: n1,
Cross: s1,
Cscr: a1,
cscr: o1,
csub: r1,
csube: i1,
csup: c1,
csupe: l1,
ctdot: u1,
cudarrl: p1,
cudarrr: d1,
cuepr: m1,
cuesc: f1,
cularr: h1,
cularrp: g1,
cupbrcap: b1,
cupcap: v1,
CupCap: x1,
cup: y1,
Cup: w1,
cupcup: k1,
cupdot: _1,
cupor: C1,
cups: E1,
curarr: A1,
curarrm: S1,
curlyeqprec: T1,
curlyeqsucc: D1,
curlyvee: I1,
curlywedge: N1,
curren: M1,
curvearrowleft: O1,
curvearrowright: L1,
cuvee: R1,
cuwed: P1,
cwconint: B1,
cwint: z1,
cylcty: q1,
dagger: F1,
Dagger: j1,
daleth: $1,
darr: U1,
Darr: V1,
dArr: H1,
dash: G1,
Dashv: W1,
dashv: J1,
dbkarow: Y1,
dblac: K1,
Dcaron: X1,
dcaron: Z1,
Dcy: Q1,
dcy: eC,
ddagger: tC,
ddarr: nC,
DD: sC,
dd: aC,
DDotrahd: oC,
ddotseq: rC,
deg: iC,
Del: cC,
Delta: lC,
delta: uC,
demptyv: pC,
dfisht: dC,
Dfr: mC,
dfr: fC,
dHar: hC,
dharl: gC,
dharr: bC,
DiacriticalAcute: vC,
DiacriticalDot: xC,
DiacriticalDoubleAcute: yC,
DiacriticalGrave: wC,
DiacriticalTilde: kC,
diam: _C,
diamond: CC,
Diamond: EC,
diamondsuit: AC,
diams: SC,
die: TC,
DifferentialD: DC,
digamma: IC,
disin: NC,
div: MC,
divide: OC,
divideontimes: LC,
divonx: RC,
DJcy: PC,
djcy: BC,
dlcorn: zC,
dlcrop: qC,
dollar: FC,
Dopf: jC,
dopf: $C,
Dot: UC,
dot: VC,
DotDot: HC,
doteq: GC,
doteqdot: WC,
DotEqual: JC,
dotminus: YC,
dotplus: KC,
dotsquare: XC,
doublebarwedge: ZC,
DoubleContourIntegral: QC,
DoubleDot: eE,
DoubleDownArrow: tE,
DoubleLeftArrow: nE,
DoubleLeftRightArrow: sE,
DoubleLeftTee: aE,
DoubleLongLeftArrow: oE,
DoubleLongLeftRightArrow: rE,
DoubleLongRightArrow: iE,
DoubleRightArrow: cE,
DoubleRightTee: lE,
DoubleUpArrow: uE,
DoubleUpDownArrow: pE,
DoubleVerticalBar: dE,
DownArrowBar: mE,
downarrow: fE,
DownArrow: hE,
Downarrow: gE,
DownArrowUpArrow: bE,
DownBreve: vE,
downdownarrows: xE,
downharpoonleft: yE,
downharpoonright: wE,
DownLeftRightVector: kE,
DownLeftTeeVector: _E,
DownLeftVectorBar: CE,
DownLeftVector: EE,
DownRightTeeVector: AE,
DownRightVectorBar: SE,
DownRightVector: TE,
DownTeeArrow: DE,
DownTee: IE,
drbkarow: NE,
drcorn: ME,
drcrop: OE,
Dscr: LE,
dscr: RE,
DScy: PE,
dscy: BE,
dsol: zE,
Dstrok: qE,
dstrok: FE,
dtdot: jE,
dtri: $E,
dtrif: UE,
duarr: VE,
duhar: HE,
dwangle: GE,
DZcy: WE,
dzcy: JE,
dzigrarr: YE,
Eacute: KE,
eacute: XE,
easter: ZE,
Ecaron: QE,
ecaron: eA,
Ecirc: tA,
ecirc: nA,
ecir: sA,
ecolon: aA,
Ecy: oA,
ecy: rA,
eDDot: iA,
Edot: cA,
edot: lA,
eDot: uA,
ee: pA,
efDot: dA,
Efr: mA,
efr: fA,
eg: hA,
Egrave: gA,
egrave: bA,
egs: vA,
egsdot: xA,
el: yA,
Element: wA,
elinters: kA,
ell: _A,
els: CA,
elsdot: EA,
Emacr: AA,
emacr: SA,
empty: TA,
emptyset: DA,
EmptySmallSquare: IA,
emptyv: NA,
EmptyVerySmallSquare: MA,
emsp13: OA,
emsp14: LA,
emsp: RA,
ENG: PA,
eng: BA,
ensp: zA,
Eogon: qA,
eogon: FA,
Eopf: jA,
eopf: $A,
epar: UA,
eparsl: VA,
eplus: HA,
epsi: GA,
Epsilon: WA,
epsilon: JA,
epsiv: YA,
eqcirc: KA,
eqcolon: XA,
eqsim: ZA,
eqslantgtr: QA,
eqslantless: eS,
Equal: tS,
equals: nS,
EqualTilde: sS,
equest: aS,
Equilibrium: oS,
equiv: rS,
equivDD: iS,
eqvparsl: cS,
erarr: lS,
erDot: uS,
escr: pS,
Escr: dS,
esdot: mS,
Esim: fS,
esim: hS,
Eta: gS,
eta: bS,
ETH: vS,
eth: xS,
Euml: yS,
euml: wS,
euro: kS,
excl: _S,
exist: CS,
Exists: ES,
expectation: AS,
exponentiale: SS,
ExponentialE: TS,
fallingdotseq: DS,
Fcy: IS,
fcy: NS,
female: MS,
ffilig: OS,
fflig: LS,
ffllig: RS,
Ffr: PS,
ffr: BS,
filig: zS,
FilledSmallSquare: qS,
FilledVerySmallSquare: FS,
fjlig: jS,
flat: $S,
fllig: US,
fltns: VS,
fnof: HS,
Fopf: GS,
fopf: WS,
forall: JS,
ForAll: YS,
fork: KS,
forkv: XS,
Fouriertrf: ZS,
fpartint: QS,
frac12: eT,
frac13: tT,
frac14: nT,
frac15: sT,
frac16: aT,
frac18: oT,
frac23: rT,
frac25: iT,
frac34: cT,
frac35: lT,
frac38: uT,
frac45: pT,
frac56: dT,
frac58: mT,
frac78: fT,
frasl: hT,
frown: gT,
fscr: bT,
Fscr: vT,
gacute: xT,
Gamma: yT,
gamma: wT,
Gammad: kT,
gammad: _T,
gap: CT,
Gbreve: ET,
gbreve: AT,
Gcedil: ST,
Gcirc: TT,
gcirc: DT,
Gcy: IT,
gcy: NT,
Gdot: MT,
gdot: OT,
ge: LT,
gE: RT,
gEl: PT,
gel: BT,
geq: zT,
geqq: qT,
geqslant: FT,
gescc: jT,
ges: $T,
gesdot: UT,
gesdoto: VT,
gesdotol: HT,
gesl: GT,
gesles: WT,
Gfr: JT,
gfr: YT,
gg: KT,
Gg: XT,
ggg: ZT,
gimel: QT,
GJcy: e2,
gjcy: t2,
gla: n2,
gl: s2,
glE: a2,
glj: o2,
gnap: r2,
gnapprox: i2,
gne: c2,
gnE: l2,
gneq: u2,
gneqq: p2,
gnsim: d2,
Gopf: m2,
gopf: f2,
grave: h2,
GreaterEqual: g2,
GreaterEqualLess: b2,
GreaterFullEqual: v2,
GreaterGreater: x2,
GreaterLess: y2,
GreaterSlantEqual: w2,
GreaterTilde: k2,
Gscr: _2,
gscr: C2,
gsim: E2,
gsime: A2,
gsiml: S2,
gtcc: T2,
gtcir: D2,
gt: I2,
GT: N2,
Gt: M2,
gtdot: O2,
gtlPar: L2,
gtquest: R2,
gtrapprox: P2,
gtrarr: B2,
gtrdot: z2,
gtreqless: q2,
gtreqqless: F2,
gtrless: j2,
gtrsim: $2,
gvertneqq: U2,
gvnE: V2,
Hacek: H2,
hairsp: G2,
half: W2,
hamilt: J2,
HARDcy: Y2,
hardcy: K2,
harrcir: X2,
harr: Z2,
hArr: Q2,
harrw: eD,
Hat: tD,
hbar: nD,
Hcirc: sD,
hcirc: aD,
hearts: oD,
heartsuit: rD,
hellip: iD,
hercon: cD,
hfr: lD,
Hfr: uD,
HilbertSpace: pD,
hksearow: dD,
hkswarow: mD,
hoarr: fD,
homtht: hD,
hookleftarrow: gD,
hookrightarrow: bD,
hopf: vD,
Hopf: xD,
horbar: yD,
HorizontalLine: wD,
hscr: kD,
Hscr: _D,
hslash: CD,
Hstrok: ED,
hstrok: AD,
HumpDownHump: SD,
HumpEqual: TD,
hybull: DD,
hyphen: ID,
Iacute: ND,
iacute: MD,
ic: OD,
Icirc: LD,
icirc: RD,
Icy: PD,
icy: BD,
Idot: zD,
IEcy: qD,
iecy: FD,
iexcl: jD,
iff: $D,
ifr: UD,
Ifr: VD,
Igrave: HD,
igrave: GD,
ii: WD,
iiiint: JD,
iiint: YD,
iinfin: KD,
iiota: XD,
IJlig: ZD,
ijlig: QD,
Imacr: eI,
imacr: tI,
image: nI,
ImaginaryI: sI,
imagline: aI,
imagpart: oI,
imath: rI,
Im: iI,
imof: cI,
imped: lI,
Implies: uI,
incare: pI,
in: "โˆˆ",
infin: dI,
infintie: mI,
inodot: fI,
intcal: hI,
int: gI,
Int: bI,
integers: vI,
Integral: xI,
intercal: yI,
Intersection: wI,
intlarhk: kI,
intprod: _I,
InvisibleComma: CI,
InvisibleTimes: EI,
IOcy: AI,
iocy: SI,
Iogon: TI,
iogon: DI,
Iopf: II,
iopf: NI,
Iota: MI,
iota: OI,
iprod: LI,
iquest: RI,
iscr: PI,
Iscr: BI,
isin: zI,
isindot: qI,
isinE: FI,
isins: jI,
isinsv: $I,
isinv: UI,
it: VI,
Itilde: HI,
itilde: GI,
Iukcy: WI,
iukcy: JI,
Iuml: YI,
iuml: KI,
Jcirc: XI,
jcirc: ZI,
Jcy: QI,
jcy: eN,
Jfr: tN,
jfr: nN,
jmath: sN,
Jopf: aN,
jopf: oN,
Jscr: rN,
jscr: iN,
Jsercy: cN,
jsercy: lN,
Jukcy: uN,
jukcy: pN,
Kappa: dN,
kappa: mN,
kappav: fN,
Kcedil: hN,
kcedil: gN,
Kcy: bN,
kcy: vN,
Kfr: xN,
kfr: yN,
kgreen: wN,
KHcy: kN,
khcy: _N,
KJcy: CN,
kjcy: EN,
Kopf: AN,
kopf: SN,
Kscr: TN,
kscr: DN,
lAarr: IN,
Lacute: NN,
lacute: MN,
laemptyv: ON,
lagran: LN,
Lambda: RN,
lambda: PN,
lang: BN,
Lang: zN,
langd: qN,
langle: FN,
lap: jN,
Laplacetrf: $N,
laquo: UN,
larrb: VN,
larrbfs: HN,
larr: GN,
Larr: WN,
lArr: JN,
larrfs: YN,
larrhk: KN,
larrlp: XN,
larrpl: ZN,
larrsim: QN,
larrtl: eM,
latail: tM,
lAtail: nM,
lat: sM,
late: aM,
lates: oM,
lbarr: rM,
lBarr: iM,
lbbrk: cM,
lbrace: lM,
lbrack: uM,
lbrke: pM,
lbrksld: dM,
lbrkslu: mM,
Lcaron: fM,
lcaron: hM,
Lcedil: gM,
lcedil: bM,
lceil: vM,
lcub: xM,
Lcy: yM,
lcy: wM,
ldca: kM,
ldquo: _M,
ldquor: CM,
ldrdhar: EM,
ldrushar: AM,
ldsh: SM,
le: TM,
lE: DM,
LeftAngleBracket: IM,
LeftArrowBar: NM,
leftarrow: MM,
LeftArrow: OM,
Leftarrow: LM,
LeftArrowRightArrow: RM,
leftarrowtail: PM,
LeftCeiling: BM,
LeftDoubleBracket: zM,
LeftDownTeeVector: qM,
LeftDownVectorBar: FM,
LeftDownVector: jM,
LeftFloor: $M,
leftharpoondown: UM,
leftharpoonup: VM,
leftleftarrows: HM,
leftrightarrow: GM,
LeftRightArrow: WM,
Leftrightarrow: JM,
leftrightarrows: YM,
leftrightharpoons: KM,
leftrightsquigarrow: XM,
LeftRightVector: ZM,
LeftTeeArrow: QM,
LeftTee: eO,
LeftTeeVector: tO,
leftthreetimes: nO,
LeftTriangleBar: sO,
LeftTriangle: aO,
LeftTriangleEqual: oO,
LeftUpDownVector: rO,
LeftUpTeeVector: iO,
LeftUpVectorBar: cO,
LeftUpVector: lO,
LeftVectorBar: uO,
LeftVector: pO,
lEg: dO,
leg: mO,
leq: fO,
leqq: hO,
leqslant: gO,
lescc: bO,
les: vO,
lesdot: xO,
lesdoto: yO,
lesdotor: wO,
lesg: kO,
lesges: _O,
lessapprox: CO,
lessdot: EO,
lesseqgtr: AO,
lesseqqgtr: SO,
LessEqualGreater: TO,
LessFullEqual: DO,
LessGreater: IO,
lessgtr: NO,
LessLess: MO,
lesssim: OO,
LessSlantEqual: LO,
LessTilde: RO,
lfisht: PO,
lfloor: BO,
Lfr: zO,
lfr: qO,
lg: FO,
lgE: jO,
lHar: $O,
lhard: UO,
lharu: VO,
lharul: HO,
lhblk: GO,
LJcy: WO,
ljcy: JO,
llarr: YO,
ll: KO,
Ll: XO,
llcorner: ZO,
Lleftarrow: QO,
llhard: eL,
lltri: tL,
Lmidot: nL,
lmidot: sL,
lmoustache: aL,
lmoust: oL,
lnap: rL,
lnapprox: iL,
lne: cL,
lnE: lL,
lneq: uL,
lneqq: pL,
lnsim: dL,
loang: mL,
loarr: fL,
lobrk: hL,
longleftarrow: gL,
LongLeftArrow: bL,
Longleftarrow: vL,
longleftrightarrow: xL,
LongLeftRightArrow: yL,
Longleftrightarrow: wL,
longmapsto: kL,
longrightarrow: _L,
LongRightArrow: CL,
Longrightarrow: EL,
looparrowleft: AL,
looparrowright: SL,
lopar: TL,
Lopf: DL,
lopf: IL,
loplus: NL,
lotimes: ML,
lowast: OL,
lowbar: LL,
LowerLeftArrow: RL,
LowerRightArrow: PL,
loz: BL,
lozenge: zL,
lozf: qL,
lpar: FL,
lparlt: jL,
lrarr: $L,
lrcorner: UL,
lrhar: VL,
lrhard: HL,
lrm: GL,
lrtri: WL,
lsaquo: JL,
lscr: YL,
Lscr: KL,
lsh: XL,
Lsh: ZL,
lsim: QL,
lsime: e3,
lsimg: t3,
lsqb: n3,
lsquo: s3,
lsquor: a3,
Lstrok: o3,
lstrok: r3,
ltcc: i3,
ltcir: c3,
lt: l3,
LT: u3,
Lt: p3,
ltdot: d3,
lthree: m3,
ltimes: f3,
ltlarr: h3,
ltquest: g3,
ltri: b3,
ltrie: v3,
ltrif: x3,
ltrPar: y3,
lurdshar: w3,
luruhar: k3,
lvertneqq: _3,
lvnE: C3,
macr: E3,
male: A3,
malt: S3,
maltese: T3,
Map: "โค…",
map: D3,
mapsto: I3,
mapstodown: N3,
mapstoleft: M3,
mapstoup: O3,
marker: L3,
mcomma: R3,
Mcy: P3,
mcy: B3,
mdash: z3,
mDDot: q3,
measuredangle: F3,
MediumSpace: j3,
Mellintrf: $3,
Mfr: U3,
mfr: V3,
mho: H3,
micro: G3,
midast: W3,
midcir: J3,
mid: Y3,
middot: K3,
minusb: X3,
minus: Z3,
minusd: Q3,
minusdu: eR,
MinusPlus: tR,
mlcp: nR,
mldr: sR,
mnplus: aR,
models: oR,
Mopf: rR,
mopf: iR,
mp: cR,
mscr: lR,
Mscr: uR,
mstpos: pR,
Mu: dR,
mu: mR,
multimap: fR,
mumap: hR,
nabla: gR,
Nacute: bR,
nacute: vR,
nang: xR,
nap: yR,
napE: wR,
napid: kR,
napos: _R,
napprox: CR,
natural: ER,
naturals: AR,
natur: SR,
nbsp: TR,
nbump: DR,
nbumpe: IR,
ncap: NR,
Ncaron: MR,
ncaron: OR,
Ncedil: LR,
ncedil: RR,
ncong: PR,
ncongdot: BR,
ncup: zR,
Ncy: qR,
ncy: FR,
ndash: jR,
nearhk: $R,
nearr: UR,
neArr: VR,
nearrow: HR,
ne: GR,
nedot: WR,
NegativeMediumSpace: JR,
NegativeThickSpace: YR,
NegativeThinSpace: KR,
NegativeVeryThinSpace: XR,
nequiv: ZR,
nesear: QR,
nesim: eP,
NestedGreaterGreater: tP,
NestedLessLess: nP,
NewLine: sP,
nexist: aP,
nexists: oP,
Nfr: rP,
nfr: iP,
ngE: cP,
nge: lP,
ngeq: uP,
ngeqq: pP,
ngeqslant: dP,
nges: mP,
nGg: fP,
ngsim: hP,
nGt: gP,
ngt: bP,
ngtr: vP,
nGtv: xP,
nharr: yP,
nhArr: wP,
nhpar: kP,
ni: _P,
nis: CP,
nisd: EP,
niv: AP,
NJcy: SP,
njcy: TP,
nlarr: DP,
nlArr: IP,
nldr: NP,
nlE: MP,
nle: OP,
nleftarrow: LP,
nLeftarrow: RP,
nleftrightarrow: PP,
nLeftrightarrow: BP,
nleq: zP,
nleqq: qP,
nleqslant: FP,
nles: jP,
nless: $P,
nLl: UP,
nlsim: VP,
nLt: HP,
nlt: GP,
nltri: WP,
nltrie: JP,
nLtv: YP,
nmid: KP,
NoBreak: XP,
NonBreakingSpace: ZP,
nopf: QP,
Nopf: e4,
Not: t4,
not: n4,
NotCongruent: s4,
NotCupCap: a4,
NotDoubleVerticalBar: o4,
NotElement: r4,
NotEqual: i4,
NotEqualTilde: c4,
NotExists: l4,
NotGreater: u4,
NotGreaterEqual: p4,
NotGreaterFullEqual: d4,
NotGreaterGreater: m4,
NotGreaterLess: f4,
NotGreaterSlantEqual: h4,
NotGreaterTilde: g4,
NotHumpDownHump: b4,
NotHumpEqual: v4,
notin: x4,
notindot: y4,
notinE: w4,
notinva: k4,
notinvb: _4,
notinvc: C4,
NotLeftTriangleBar: E4,
NotLeftTriangle: A4,
NotLeftTriangleEqual: S4,
NotLess: T4,
NotLessEqual: D4,
NotLessGreater: I4,
NotLessLess: N4,
NotLessSlantEqual: M4,
NotLessTilde: O4,
NotNestedGreaterGreater: L4,
NotNestedLessLess: R4,
notni: P4,
notniva: B4,
notnivb: z4,
notnivc: q4,
NotPrecedes: F4,
NotPrecedesEqual: j4,
NotPrecedesSlantEqual: $4,
NotReverseElement: U4,
NotRightTriangleBar: V4,
NotRightTriangle: H4,
NotRightTriangleEqual: G4,
NotSquareSubset: W4,
NotSquareSubsetEqual: J4,
NotSquareSuperset: Y4,
NotSquareSupersetEqual: K4,
NotSubset: X4,
NotSubsetEqual: Z4,
NotSucceeds: Q4,
NotSucceedsEqual: e6,
NotSucceedsSlantEqual: t6,
NotSucceedsTilde: n6,
NotSuperset: s6,
NotSupersetEqual: a6,
NotTilde: o6,
NotTildeEqual: r6,
NotTildeFullEqual: i6,
NotTildeTilde: c6,
NotVerticalBar: l6,
nparallel: u6,
npar: p6,
nparsl: d6,
npart: m6,
npolint: f6,
npr: h6,
nprcue: g6,
nprec: b6,
npreceq: v6,
npre: x6,
nrarrc: y6,
nrarr: w6,
nrArr: k6,
nrarrw: _6,
nrightarrow: C6,
nRightarrow: E6,
nrtri: A6,
nrtrie: S6,
nsc: T6,
nsccue: D6,
nsce: I6,
Nscr: N6,
nscr: M6,
nshortmid: O6,
nshortparallel: L6,
nsim: R6,
nsime: P6,
nsimeq: B6,
nsmid: z6,
nspar: q6,
nsqsube: F6,
nsqsupe: j6,
nsub: $6,
nsubE: U6,
nsube: V6,
nsubset: H6,
nsubseteq: G6,
nsubseteqq: W6,
nsucc: J6,
nsucceq: Y6,
nsup: K6,
nsupE: X6,
nsupe: Z6,
nsupset: Q6,
nsupseteq: eB,
nsupseteqq: tB,
ntgl: nB,
Ntilde: sB,
ntilde: aB,
ntlg: oB,
ntriangleleft: rB,
ntrianglelefteq: iB,
ntriangleright: cB,
ntrianglerighteq: lB,
Nu: uB,
nu: pB,
num: dB,
numero: mB,
numsp: fB,
nvap: hB,
nvdash: gB,
nvDash: bB,
nVdash: vB,
nVDash: xB,
nvge: yB,
nvgt: wB,
nvHarr: kB,
nvinfin: _B,
nvlArr: CB,
nvle: EB,
nvlt: AB,
nvltrie: SB,
nvrArr: TB,
nvrtrie: DB,
nvsim: IB,
nwarhk: NB,
nwarr: MB,
nwArr: OB,
nwarrow: LB,
nwnear: RB,
Oacute: PB,
oacute: BB,
oast: zB,
Ocirc: qB,
ocirc: FB,
ocir: jB,
Ocy: $B,
ocy: UB,
odash: VB,
Odblac: HB,
odblac: GB,
odiv: WB,
odot: JB,
odsold: YB,
OElig: KB,
oelig: XB,
ofcir: ZB,
Ofr: QB,
ofr: e5,
ogon: t5,
Ograve: n5,
ograve: s5,
ogt: a5,
ohbar: o5,
ohm: r5,
oint: i5,
olarr: c5,
olcir: l5,
olcross: u5,
oline: p5,
olt: d5,
Omacr: m5,
omacr: f5,
Omega: h5,
omega: g5,
Omicron: b5,
omicron: v5,
omid: x5,
ominus: y5,
Oopf: w5,
oopf: k5,
opar: _5,
OpenCurlyDoubleQuote: C5,
OpenCurlyQuote: E5,
operp: A5,
oplus: S5,
orarr: T5,
Or: D5,
or: I5,
ord: N5,
order: M5,
orderof: O5,
ordf: L5,
ordm: R5,
origof: P5,
oror: B5,
orslope: z5,
orv: q5,
oS: F5,
Oscr: j5,
oscr: $5,
Oslash: U5,
oslash: V5,
osol: H5,
Otilde: G5,
otilde: W5,
otimesas: J5,
Otimes: Y5,
otimes: K5,
Ouml: X5,
ouml: Z5,
ovbar: Q5,
OverBar: ez,
OverBrace: tz,
OverBracket: nz,
OverParenthesis: sz,
para: az,
parallel: oz,
par: rz,
parsim: iz,
parsl: cz,
part: lz,
PartialD: uz,
Pcy: pz,
pcy: dz,
percnt: mz,
period: fz,
permil: hz,
perp: gz,
pertenk: bz,
Pfr: vz,
pfr: xz,
Phi: yz,
phi: wz,
phiv: kz,
phmmat: _z,
phone: Cz,
Pi: Ez,
pi: Az,
pitchfork: Sz,
piv: Tz,
planck: Dz,
planckh: Iz,
plankv: Nz,
plusacir: Mz,
plusb: Oz,
pluscir: Lz,
plus: Rz,
plusdo: Pz,
plusdu: Bz,
pluse: zz,
PlusMinus: qz,
plusmn: Fz,
plussim: jz,
plustwo: $z,
pm: Uz,
Poincareplane: Vz,
pointint: Hz,
popf: Gz,
Popf: Wz,
pound: Jz,
prap: Yz,
Pr: Kz,
pr: Xz,
prcue: Zz,
precapprox: Qz,
prec: eq,
preccurlyeq: tq,
Precedes: nq,
PrecedesEqual: sq,
PrecedesSlantEqual: aq,
PrecedesTilde: oq,
preceq: rq,
precnapprox: iq,
precneqq: cq,
precnsim: lq,
pre: uq,
prE: pq,
precsim: dq,
prime: mq,
Prime: fq,
primes: hq,
prnap: gq,
prnE: bq,
prnsim: vq,
prod: xq,
Product: yq,
profalar: wq,
profline: kq,
profsurf: _q,
prop: Cq,
Proportional: Eq,
Proportion: Aq,
propto: Sq,
prsim: Tq,
prurel: Dq,
Pscr: Iq,
pscr: Nq,
Psi: Mq,
psi: Oq,
puncsp: Lq,
Qfr: Rq,
qfr: Pq,
qint: Bq,
qopf: zq,
Qopf: qq,
qprime: Fq,
Qscr: jq,
qscr: $q,
quaternions: Uq,
quatint: Vq,
quest: Hq,
questeq: Gq,
quot: Wq,
QUOT: Jq,
rAarr: Yq,
race: Kq,
Racute: Xq,
racute: Zq,
radic: Qq,
raemptyv: e8,
rang: t8,
Rang: n8,
rangd: s8,
range: a8,
rangle: o8,
raquo: r8,
rarrap: i8,
rarrb: c8,
rarrbfs: l8,
rarrc: u8,
rarr: p8,
Rarr: d8,
rArr: m8,
rarrfs: f8,
rarrhk: h8,
rarrlp: g8,
rarrpl: b8,
rarrsim: v8,
Rarrtl: x8,
rarrtl: y8,
rarrw: w8,
ratail: k8,
rAtail: _8,
ratio: C8,
rationals: E8,
rbarr: A8,
rBarr: S8,
RBarr: T8,
rbbrk: D8,
rbrace: I8,
rbrack: N8,
rbrke: M8,
rbrksld: O8,
rbrkslu: L8,
Rcaron: R8,
rcaron: P8,
Rcedil: B8,
rcedil: z8,
rceil: q8,
rcub: F8,
Rcy: j8,
rcy: $8,
rdca: U8,
rdldhar: V8,
rdquo: H8,
rdquor: G8,
rdsh: W8,
real: J8,
realine: Y8,
realpart: K8,
reals: X8,
Re: Z8,
rect: Q8,
reg: eF,
REG: tF,
ReverseElement: nF,
ReverseEquilibrium: sF,
ReverseUpEquilibrium: aF,
rfisht: oF,
rfloor: rF,
rfr: iF,
Rfr: cF,
rHar: lF,
rhard: uF,
rharu: pF,
rharul: dF,
Rho: mF,
rho: fF,
rhov: hF,
RightAngleBracket: gF,
RightArrowBar: bF,
rightarrow: vF,
RightArrow: xF,
Rightarrow: yF,
RightArrowLeftArrow: wF,
rightarrowtail: kF,
RightCeiling: _F,
RightDoubleBracket: CF,
RightDownTeeVector: EF,
RightDownVectorBar: AF,
RightDownVector: SF,
RightFloor: TF,
rightharpoondown: DF,
rightharpoonup: IF,
rightleftarrows: NF,
rightleftharpoons: MF,
rightrightarrows: OF,
rightsquigarrow: LF,
RightTeeArrow: RF,
RightTee: PF,
RightTeeVector: BF,
rightthreetimes: zF,
RightTriangleBar: qF,
RightTriangle: FF,
RightTriangleEqual: jF,
RightUpDownVector: $F,
RightUpTeeVector: UF,
RightUpVectorBar: VF,
RightUpVector: HF,
RightVectorBar: GF,
RightVector: WF,
ring: JF,
risingdotseq: YF,
rlarr: KF,
rlhar: XF,
rlm: ZF,
rmoustache: QF,
rmoust: e7,
rnmid: t7,
roang: n7,
roarr: s7,
robrk: a7,
ropar: o7,
ropf: r7,
Ropf: i7,
roplus: c7,
rotimes: l7,
RoundImplies: u7,
rpar: p7,
rpargt: d7,
rppolint: m7,
rrarr: f7,
Rrightarrow: h7,
rsaquo: g7,
rscr: b7,
Rscr: v7,
rsh: x7,
Rsh: y7,
rsqb: w7,
rsquo: k7,
rsquor: _7,
rthree: C7,
rtimes: E7,
rtri: A7,
rtrie: S7,
rtrif: T7,
rtriltri: D7,
RuleDelayed: I7,
ruluhar: N7,
rx: M7,
Sacute: O7,
sacute: L7,
sbquo: R7,
scap: P7,
Scaron: B7,
scaron: z7,
Sc: q7,
sc: F7,
sccue: j7,
sce: $7,
scE: U7,
Scedil: V7,
scedil: H7,
Scirc: G7,
scirc: W7,
scnap: J7,
scnE: Y7,
scnsim: K7,
scpolint: X7,
scsim: Z7,
Scy: Q7,
scy: ej,
sdotb: tj,
sdot: nj,
sdote: sj,
searhk: aj,
searr: oj,
seArr: rj,
searrow: ij,
sect: cj,
semi: lj,
seswar: uj,
setminus: pj,
setmn: dj,
sext: mj,
Sfr: fj,
sfr: hj,
sfrown: gj,
sharp: bj,
SHCHcy: vj,
shchcy: xj,
SHcy: yj,
shcy: wj,
ShortDownArrow: kj,
ShortLeftArrow: _j,
shortmid: Cj,
shortparallel: Ej,
ShortRightArrow: Aj,
ShortUpArrow: Sj,
shy: Tj,
Sigma: Dj,
sigma: Ij,
sigmaf: Nj,
sigmav: Mj,
sim: Oj,
simdot: Lj,
sime: Rj,
simeq: Pj,
simg: Bj,
simgE: zj,
siml: qj,
simlE: Fj,
simne: jj,
simplus: $j,
simrarr: Uj,
slarr: Vj,
SmallCircle: Hj,
smallsetminus: Gj,
smashp: Wj,
smeparsl: Jj,
smid: Yj,
smile: Kj,
smt: Xj,
smte: Zj,
smtes: Qj,
SOFTcy: e9,
softcy: t9,
solbar: n9,
solb: s9,
sol: a9,
Sopf: o9,
sopf: r9,
spades: i9,
spadesuit: c9,
spar: l9,
sqcap: u9,
sqcaps: p9,
sqcup: d9,
sqcups: m9,
Sqrt: f9,
sqsub: h9,
sqsube: g9,
sqsubset: b9,
sqsubseteq: v9,
sqsup: x9,
sqsupe: y9,
sqsupset: w9,
sqsupseteq: k9,
square: _9,
Square: C9,
SquareIntersection: E9,
SquareSubset: A9,
SquareSubsetEqual: S9,
SquareSuperset: T9,
SquareSupersetEqual: D9,
SquareUnion: I9,
squarf: N9,
squ: M9,
squf: O9,
srarr: L9,
Sscr: R9,
sscr: P9,
ssetmn: B9,
ssmile: z9,
sstarf: q9,
Star: F9,
star: j9,
starf: $9,
straightepsilon: U9,
straightphi: V9,
strns: H9,
sub: G9,
Sub: W9,
subdot: J9,
subE: Y9,
sube: K9,
subedot: X9,
submult: Z9,
subnE: Q9,
subne: e$,
subplus: t$,
subrarr: n$,
subset: s$,
Subset: a$,
subseteq: o$,
subseteqq: r$,
SubsetEqual: i$,
subsetneq: c$,
subsetneqq: l$,
subsim: u$,
subsub: p$,
subsup: d$,
succapprox: m$,
succ: f$,
succcurlyeq: h$,
Succeeds: g$,
SucceedsEqual: b$,
SucceedsSlantEqual: v$,
SucceedsTilde: x$,
succeq: y$,
succnapprox: w$,
succneqq: k$,
succnsim: _$,
succsim: C$,
SuchThat: E$,
sum: A$,
Sum: S$,
sung: T$,
sup1: D$,
sup2: I$,
sup3: N$,
sup: M$,
Sup: O$,
supdot: L$,
supdsub: R$,
supE: P$,
supe: B$,
supedot: z$,
Superset: q$,
SupersetEqual: F$,
suphsol: j$,
suphsub: $$,
suplarr: U$,
supmult: V$,
supnE: H$,
supne: G$,
supplus: W$,
supset: J$,
Supset: Y$,
supseteq: K$,
supseteqq: X$,
supsetneq: Z$,
supsetneqq: Q$,
supsim: eU,
supsub: tU,
supsup: nU,
swarhk: sU,
swarr: aU,
swArr: oU,
swarrow: rU,
swnwar: iU,
szlig: cU,
Tab: lU,
target: uU,
Tau: pU,
tau: dU,
tbrk: mU,
Tcaron: fU,
tcaron: hU,
Tcedil: gU,
tcedil: bU,
Tcy: vU,
tcy: xU,
tdot: yU,
telrec: wU,
Tfr: kU,
tfr: _U,
there4: CU,
therefore: EU,
Therefore: AU,
Theta: SU,
theta: TU,
thetasym: DU,
thetav: IU,
thickapprox: NU,
thicksim: MU,
ThickSpace: OU,
ThinSpace: LU,
thinsp: RU,
thkap: PU,
thksim: BU,
THORN: zU,
thorn: qU,
tilde: FU,
Tilde: jU,
TildeEqual: $U,
TildeFullEqual: UU,
TildeTilde: VU,
timesbar: HU,
timesb: GU,
times: WU,
timesd: JU,
tint: YU,
toea: KU,
topbot: XU,
topcir: ZU,
top: QU,
Topf: eV,
topf: tV,
topfork: nV,
tosa: sV,
tprime: aV,
trade: oV,
TRADE: rV,
triangle: iV,
triangledown: cV,
triangleleft: lV,
trianglelefteq: uV,
triangleq: pV,
triangleright: dV,
trianglerighteq: mV,
tridot: fV,
trie: hV,
triminus: gV,
TripleDot: bV,
triplus: vV,
trisb: xV,
tritime: yV,
trpezium: wV,
Tscr: kV,
tscr: _V,
TScy: CV,
tscy: EV,
TSHcy: AV,
tshcy: SV,
Tstrok: TV,
tstrok: DV,
twixt: IV,
twoheadleftarrow: NV,
twoheadrightarrow: MV,
Uacute: OV,
uacute: LV,
uarr: RV,
Uarr: PV,
uArr: BV,
Uarrocir: zV,
Ubrcy: qV,
ubrcy: FV,
Ubreve: jV,
ubreve: $V,
Ucirc: UV,
ucirc: VV,
Ucy: HV,
ucy: GV,
udarr: WV,
Udblac: JV,
udblac: YV,
udhar: KV,
ufisht: XV,
Ufr: ZV,
ufr: QV,
Ugrave: eH,
ugrave: tH,
uHar: nH,
uharl: sH,
uharr: aH,
uhblk: oH,
ulcorn: rH,
ulcorner: iH,
ulcrop: cH,
ultri: lH,
Umacr: uH,
umacr: pH,
uml: dH,
UnderBar: mH,
UnderBrace: fH,
UnderBracket: hH,
UnderParenthesis: gH,
Union: bH,
UnionPlus: vH,
Uogon: xH,
uogon: yH,
Uopf: wH,
uopf: kH,
UpArrowBar: _H,
uparrow: CH,
UpArrow: EH,
Uparrow: AH,
UpArrowDownArrow: SH,
updownarrow: TH,
UpDownArrow: DH,
Updownarrow: IH,
UpEquilibrium: NH,
upharpoonleft: MH,
upharpoonright: OH,
uplus: LH,
UpperLeftArrow: RH,
UpperRightArrow: PH,
upsi: BH,
Upsi: zH,
upsih: qH,
Upsilon: FH,
upsilon: jH,
UpTeeArrow: $H,
UpTee: UH,
upuparrows: VH,
urcorn: HH,
urcorner: GH,
urcrop: WH,
Uring: JH,
uring: YH,
urtri: KH,
Uscr: XH,
uscr: ZH,
utdot: QH,
Utilde: eG,
utilde: tG,
utri: nG,
utrif: sG,
uuarr: aG,
Uuml: oG,
uuml: rG,
uwangle: iG,
vangrt: cG,
varepsilon: lG,
varkappa: uG,
varnothing: pG,
varphi: dG,
varpi: mG,
varpropto: fG,
varr: hG,
vArr: gG,
varrho: bG,
varsigma: vG,
varsubsetneq: xG,
varsubsetneqq: yG,
varsupsetneq: wG,
varsupsetneqq: kG,
vartheta: _G,
vartriangleleft: CG,
vartriangleright: EG,
vBar: AG,
Vbar: SG,
vBarv: TG,
Vcy: DG,
vcy: IG,
vdash: NG,
vDash: MG,
Vdash: OG,
VDash: LG,
Vdashl: RG,
veebar: PG,
vee: BG,
Vee: zG,
veeeq: qG,
vellip: FG,
verbar: jG,
Verbar: $G,
vert: UG,
Vert: VG,
VerticalBar: HG,
VerticalLine: GG,
VerticalSeparator: WG,
VerticalTilde: JG,
VeryThinSpace: YG,
Vfr: KG,
vfr: XG,
vltri: ZG,
vnsub: QG,
vnsup: eW,
Vopf: tW,
vopf: nW,
vprop: sW,
vrtri: aW,
Vscr: oW,
vscr: rW,
vsubnE: iW,
vsubne: cW,
vsupnE: lW,
vsupne: uW,
Vvdash: pW,
vzigzag: dW,
Wcirc: mW,
wcirc: fW,
wedbar: hW,
wedge: gW,
Wedge: bW,
wedgeq: vW,
weierp: xW,
Wfr: yW,
wfr: wW,
Wopf: kW,
wopf: _W,
wp: CW,
wr: EW,
wreath: AW,
Wscr: SW,
wscr: TW,
xcap: DW,
xcirc: IW,
xcup: NW,
xdtri: MW,
Xfr: OW,
xfr: LW,
xharr: RW,
xhArr: PW,
Xi: BW,
xi: zW,
xlarr: qW,
xlArr: FW,
xmap: jW,
xnis: $W,
xodot: UW,
Xopf: VW,
xopf: HW,
xoplus: GW,
xotime: WW,
xrarr: JW,
xrArr: YW,
Xscr: KW,
xscr: XW,
xsqcup: ZW,
xuplus: QW,
xutri: eJ,
xvee: tJ,
xwedge: nJ,
Yacute: sJ,
yacute: aJ,
YAcy: oJ,
yacy: rJ,
Ycirc: iJ,
ycirc: cJ,
Ycy: lJ,
ycy: uJ,
yen: pJ,
Yfr: dJ,
yfr: mJ,
YIcy: fJ,
yicy: hJ,
Yopf: gJ,
yopf: bJ,
Yscr: vJ,
yscr: xJ,
YUcy: yJ,
yucy: wJ,
yuml: kJ,
Yuml: _J,
Zacute: CJ,
zacute: EJ,
Zcaron: AJ,
zcaron: SJ,
Zcy: TJ,
zcy: DJ,
Zdot: IJ,
zdot: NJ,
zeetrf: MJ,
ZeroWidthSpace: OJ,
Zeta: LJ,
zeta: RJ,
zfr: PJ,
Zfr: BJ,
ZHcy: zJ,
zhcy: qJ,
zigrarr: FJ,
zopf: jJ,
Zopf: $J,
Zscr: UJ,
zscr: VJ,
zwj: HJ,
zwnj: GJ
};
var vp = WJ,
Br = /[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\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-\u2E4E\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[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,
Ln = {},
fc = {};
function JJ(t) {
var e, n, s = fc[t];
if (s) return s;
for (s = fc[t] = [], e = 0; e < 128; e++) n = String.fromCharCode(e), /^[0-9a-z]$/i.test(n) ? s.push(n) : s.push("%" + ("0" + e.toString(16).toUpperCase()).slice(-2));
for (e = 0; e < t.length; e++) s[t.charCodeAt(e)] = t[e];
return s
}
function Ra(t, e, n) {
var s, a, o, r, i, c = "";
for (typeof e != "string" && (n = e, e = Ra.defaultChars), typeof n == "undefined" && (n = !0), i = JJ(e), s = 0, a = t.length; s < a; s++) {
if (o = t.charCodeAt(s), n && o === 37 && s + 2 < a && /^[0-9a-f]{2}$/i.test(t.slice(s + 1, s + 3))) {
c += t.slice(s, s + 3), s += 2;
continue
}
if (o < 128) {
c += i[o];
continue
}
if (o >= 55296 && o <= 57343) {
if (o >= 55296 && o <= 56319 && s + 1 < a && (r = t.charCodeAt(s + 1), r >= 56320 && r <= 57343)) {
c += encodeURIComponent(t[s] + t[s + 1]), s++;
continue
}
c += "%EF%BF%BD";
continue
}
c += encodeURIComponent(t[s])
}
return c
}
Ra.defaultChars = ";/?:@&=+$,-_.!~*'()#";
Ra.componentChars = "-_.!~*'()";
var YJ = Ra,
hc = {};
function KJ(t) {
var e, n, s = hc[t];
if (s) return s;
for (s = hc[t] = [], e = 0; e < 128; e++) n = String.fromCharCode(e), s.push(n);
for (e = 0; e < t.length; e++) n = t.charCodeAt(e), s[n] = "%" + ("0" + n.toString(16).toUpperCase()).slice(-2);
return s
}
function Pa(t, e) {
var n;
return typeof e != "string" && (e = Pa.defaultChars), n = KJ(e), t.replace(/(%[a-f0-9]{2})+/gi, function(s) {
var a, o, r, i, c, l, u, d = "";
for (a = 0, o = s.length; a < o; a += 3) {
if (r = parseInt(s.slice(a + 1, a + 3), 16), r < 128) {
d += n[r];
continue
}
if ((r & 224) === 192 && a + 3 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), (i & 192) === 128)) {
u = r << 6 & 1984 | i & 63, u < 128 ? d += "๏ฟฝ๏ฟฝ" : d += String.fromCharCode(u), a += 3;
continue
}
if ((r & 240) === 224 && a + 6 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), c = parseInt(s.slice(a + 7, a + 9), 16), (i & 192) === 128 && (c & 192) === 128)) {
u = r << 12 & 61440 | i << 6 & 4032 | c & 63, u < 2048 || u >= 55296 && u <= 57343 ? d += "๏ฟฝ๏ฟฝ๏ฟฝ" : d += String.fromCharCode(u), a += 6;
continue
}
if ((r & 248) === 240 && a + 9 < o && (i = parseInt(s.slice(a + 4, a + 6), 16), c = parseInt(s.slice(a + 7, a + 9), 16), l = parseInt(s.slice(a + 10, a + 12), 16), (i & 192) === 128 && (c & 192) === 128 && (l & 192) === 128)) {
u = r << 18 & 1835008 | i << 12 & 258048 | c << 6 & 4032 | l & 63, u < 65536 || u > 1114111 ? d += "๏ฟฝ๏ฟฝ๏ฟฝ๏ฟฝ" : (u -= 65536, d += String.fromCharCode(55296 + (u >> 10), 56320 + (u & 1023))), a += 9;
continue
}
d += "๏ฟฝ"
}
return d
})
}
Pa.defaultChars = ";/?:@&=+$,#";
Pa.componentChars = "";
var XJ = Pa,
ZJ = function(e) {
var n = "";
return n += e.protocol || "", n += e.slashes ? "//" : "", n += e.auth ? e.auth + "@" : "", e.hostname && e.hostname.indexOf(":") !== -1 ? n += "[" + e.hostname + "]" : n += e.hostname || "", n += e.port ? ":" + e.port : "", n += e.pathname || "", n += e.search || "", n += e.hash || "", n
};
function ua() {
this.protocol = null, this.slashes = null, this.auth = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.pathname = null
}
var QJ = /^([a-z0-9.+-]+:)/i,
eY = /:[0-9]*$/,
tY = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
nY = ["<", ">", '"', "`", " ", "\r", `
`, " "],
sY = ["{", "}", "|", "\\", "^", "`"].concat(nY),
aY = ["'"].concat(sY),
gc = ["%", "/", "?", ";", "#"].concat(aY),
bc = ["/", "?", "#"],
oY = 255,
vc = /^[+a-z0-9A-Z_-]{0,63}$/,
rY = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
xc = {
javascript: !0,
"javascript:": !0
},
yc = {
http: !0,
https: !0,
ftp: !0,
gopher: !0,
file: !0,
"http:": !0,
"https:": !0,
"ftp:": !0,
"gopher:": !0,
"file:": !0
};
function iY(t, e) {
if (t && t instanceof ua) return t;
var n = new ua;
return n.parse(t, e), n
}
ua.prototype.parse = function(t, e) {
var n, s, a, o, r, i = t;
if (i = i.trim(), !e && t.split("#").length === 1) {
var c = tY.exec(i);
if (c) return this.pathname = c[1], c[2] && (this.search = c[2]), this
}
var l = QJ.exec(i);
if (l && (l = l[0], a = l.toLowerCase(), this.protocol = l, i = i.substr(l.length)), (e || l || i.match(/^\/\/[^@\/]+@[^@\/]+/)) && (r = i.substr(0, 2) === "//", r && !(l && xc[l]) && (i = i.substr(2), this.slashes = !0)), !xc[l] && (r || l && !yc[l])) {
var u = -1;
for (n = 0; n < bc.length; n++) o = i.indexOf(bc[n]), o !== -1 && (u === -1 || o < u) && (u = o);
var d, m;
for (u === -1 ? m = i.lastIndexOf("@") : m = i.lastIndexOf("@", u), m !== -1 && (d = i.slice(0, m), i = i.slice(m + 1), this.auth = d), u = -1, n = 0; n < gc.length; n++) o = i.indexOf(gc[n]), o !== -1 && (u === -1 || o < u) && (u = o);
u === -1 && (u = i.length), i[u - 1] === ":" && u--;
var f = i.slice(0, u);
i = i.slice(u), this.parseHost(f), this.hostname = this.hostname || "";
var h = this.hostname[0] === "[" && this.hostname[this.hostname.length - 1] === "]";
if (!h) {
var g = this.hostname.split(/\./);
for (n = 0, s = g.length; n < s; n++) {
var b = g[n];
if (b && !b.match(vc)) {
for (var x = "", v = 0, w = b.length; v < w; v++) b.charCodeAt(v) > 127 ? x += "x" : x += b[v];
if (!x.match(vc)) {
var E = g.slice(0, n),
_ = g.slice(n + 1),
k = b.match(rY);
k && (E.push(k[1]), _.unshift(k[2])), _.length && (i = _.join(".") + i), this.hostname = E.join(".");
break
}
}
}
}
this.hostname.length > oY && (this.hostname = ""), h && (this.hostname = this.hostname.substr(1, this.hostname.length - 2))
}
var M = i.indexOf("#");
M !== -1 && (this.hash = i.substr(M), i = i.slice(0, M));
var y = i.indexOf("?");
return y !== -1 && (this.search = i.substr(y), i = i.slice(0, y)), i && (this.pathname = i), yc[a] && this.hostname && !this.pathname && (this.pathname = ""), this
};
ua.prototype.parseHost = function(t) {
var e = eY.exec(t);
e && (e = e[0], e !== ":" && (this.port = e.substr(1)), t = t.substr(0, t.length - e.length)), t && (this.hostname = t)
};
var cY = iY;
Ln.encode = YJ;
Ln.decode = XJ;
Ln.format = ZJ;
Ln.parse = cY;
var Gt = {},
io, wc;
function xp() {
return wc || (wc = 1, io = /[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/), io
}
var co, kc;
function yp() {
return kc || (kc = 1, co = /[\0-\x1F\x7F-\x9F]/), co
}
var lo, _c;
function lY() {
return _c || (_c = 1, lo = /[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/), lo
}
var uo, Cc;
function wp() {
return Cc || (Cc = 1, uo = /[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/), uo
}
var Ec;
function uY() {
return Ec || (Ec = 1, Gt.Any = xp(), Gt.Cc = yp(), Gt.Cf = lY(), Gt.P = Br, Gt.Z = wp()), Gt
}(function(t) {
function e(A) {
return Object.prototype.toString.call(A)
}
function n(A) {
return e(A) === "[object String]"
}
var s = Object.prototype.hasOwnProperty;
function a(A, I) {
return s.call(A, I)
}
function o(A) {
var I = Array.prototype.slice.call(arguments, 1);
return I.forEach(function(O) {
if (O) {
if (typeof O != "object") throw new TypeError(O + "must be object");
Object.keys(O).forEach(function(B) {
A[B] = O[B]
})
}
}), A
}
function r(A, I, O) {
return [].concat(A.slice(0, I), O, A.slice(I + 1))
}
function i(A) {
return !(A >= 55296 && A <= 57343 || A >= 64976 && A <= 65007 || (A & 65535) === 65535 || (A & 65535) === 65534 || A >= 0 && A <= 8 || A === 11 || A >= 14 && A <= 31 || A >= 127 && A <= 159 || A > 1114111)
}
function c(A) {
if (A > 65535) {
A -= 65536;
var I = 55296 + (A >> 10),
O = 56320 + (A & 1023);
return String.fromCharCode(I, O)
}
return String.fromCharCode(A)
}
var l = /\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,
u = /&([a-z#][a-z0-9]{1,31});/gi,
d = new RegExp(l.source + "|" + u.source, "gi"),
m = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,
f = vp;
function h(A, I) {
var O = 0;
return a(f, I) ? f[I] : I.charCodeAt(0) === 35 && m.test(I) && (O = I[1].toLowerCase() === "x" ? parseInt(I.slice(2), 16) : parseInt(I.slice(1), 10), i(O)) ? c(O) : A
}
function g(A) {
return A.indexOf("\\") < 0 ? A : A.replace(l, "$1")
}
function b(A) {
return A.indexOf("\\") < 0 && A.indexOf("&") < 0 ? A : A.replace(d, function(I, O, B) {
return O || h(I, B)
})
}
var x = /[&<>"]/,
v = /[&<>"]/g,
w = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;"
};
function E(A) {
return w[A]
}
function _(A) {
return x.test(A) ? A.replace(v, E) : A
}
var k = /[.?*+^$[\]\\(){}|-]/g;
function M(A) {
return A.replace(k, "\\$&")
}
function y(A) {
switch (A) {
case 9:
case 32:
return !0
}
return !1
}
function T(A) {
if (A >= 8192 && A <= 8202) return !0;
switch (A) {
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
}
var D = Br;
function C(A) {
return D.test(A)
}
function L(A) {
switch (A) {
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 R(A) {
return A = A.trim().replace(/\s+/g, " "), "แบž".toLowerCase() === "แนพ" && (A = A.replace(/แบž/g, "รŸ")), A.toLowerCase().toUpperCase()
}
t.lib = {}, t.lib.mdurl = Ln, t.lib.ucmicro = uY(), t.assign = o, t.isString = n, t.has = a, t.unescapeMd = g, t.unescapeAll = b, t.isValidEntityCode = i, t.fromCodePoint = c, t.escapeHtml = _, t.arrayReplaceAt = r, t.isSpace = y, t.isWhiteSpace = T, t.isMdAsciiPunct = L, t.isPunctChar = C, t.escapeRE = M, t.normalizeReference = R
})(oe);
var Ba = {},
pY = function(e, n, s) {
var a, o, r, i, c = -1,
l = e.posMax,
u = e.pos;
for (e.pos = n + 1, a = 1; e.pos < l;) {
if (r = e.src.charCodeAt(e.pos), r === 93 && (a--, a === 0)) {
o = !0;
break
}
if (i = e.pos, e.md.inline.skipToken(e), r === 91) {
if (i === e.pos - 1) a++;
else if (s) return e.pos = u, -1
}
}
return o && (c = e.pos), e.pos = u, c
},
Ac = oe.unescapeAll,
dY = function(e, n, s) {
var a, o, r = 0,
i = n,
c = {
ok: !1,
pos: 0,
lines: 0,
str: ""
};
if (e.charCodeAt(n) === 60) {
for (n++; n < s;) {
if (a = e.charCodeAt(n), a === 10 || a === 60) return c;
if (a === 62) return c.pos = n + 1, c.str = Ac(e.slice(i + 1, n)), c.ok = !0, c;
if (a === 92 && n + 1 < s) {
n += 2;
continue
}
n++
}
return c
}
for (o = 0; n < s && (a = e.charCodeAt(n), !(a === 32 || a < 32 || a === 127));) {
if (a === 92 && n + 1 < s) {
if (e.charCodeAt(n + 1) === 32) break;
n += 2;
continue
}
if (a === 40 && (o++, o > 32)) return c;
if (a === 41) {
if (o === 0) break;
o--
}
n++
}
return i === n || o !== 0 || (c.str = Ac(e.slice(i, n)), c.lines = r, c.pos = n, c.ok = !0), c
},
mY = oe.unescapeAll,
fY = function(e, n, s) {
var a, o, r = 0,
i = n,
c = {
ok: !1,
pos: 0,
lines: 0,
str: ""
};
if (n >= s || (o = e.charCodeAt(n), o !== 34 && o !== 39 && o !== 40)) return c;
for (n++, o === 40 && (o = 41); n < s;) {
if (a = e.charCodeAt(n), a === o) return c.pos = n + 1, c.lines = r, c.str = mY(e.slice(i + 1, n)), c.ok = !0, c;
if (a === 40 && o === 41) return c;
a === 10 ? r++ : a === 92 && n + 1 < s && (n++, e.charCodeAt(n) === 10 && r++), n++
}
return c
};
Ba.parseLinkLabel = pY;
Ba.parseLinkDestination = dY;
Ba.parseLinkTitle = fY;
var hY = oe.assign,
gY = oe.unescapeAll,
Xt = oe.escapeHtml,
Ct = {};
Ct.code_inline = function(t, e, n, s, a) {
var o = t[e];
return "<code" + a.renderAttrs(o) + ">" + Xt(t[e].content) + "</code>"
};
Ct.code_block = function(t, e, n, s, a) {
var o = t[e];
return "<pre" + a.renderAttrs(o) + "><code>" + Xt(t[e].content) + `</code></pre>
`
};
Ct.fence = function(t, e, n, s, a) {
var o = t[e],
r = o.info ? gY(o.info).trim() : "",
i = "",
c = "",
l, u, d, m, f;
return r && (d = r.split(/(\s+)/g), i = d[0], c = d.slice(2).join("")), n.highlight ? l = n.highlight(o.content, i, c) || Xt(o.content) : l = Xt(o.content), l.indexOf("<pre") === 0 ? l + `
` : r ? (u = o.attrIndex("class"), m = o.attrs ? o.attrs.slice() : [], u < 0 ? m.push(["class", n.langPrefix + i]) : (m[u] = m[u].slice(), m[u][1] += " " + n.langPrefix + i), f = {
attrs: m
}, "<pre><code" + a.renderAttrs(f) + ">" + l + `</code></pre>
`) : "<pre><code" + a.renderAttrs(o) + ">" + l + `</code></pre>
`
};
Ct.image = function(t, e, n, s, a) {
var o = t[e];
return o.attrs[o.attrIndex("alt")][1] = a.renderInlineAsText(o.children, n, s), a.renderToken(t, e, n)
};
Ct.hardbreak = function(t, e, n) {
return n.xhtmlOut ? `<br />
` : `<br>
`
};
Ct.softbreak = function(t, e, n) {
return n.breaks ? n.xhtmlOut ? `<br />
` : `<br>
` : `
`
};
Ct.text = function(t, e) {
return Xt(t[e].content)
};
Ct.html_block = function(t, e) {
return t[e].content
};
Ct.html_inline = function(t, e) {
return t[e].content
};
function Rn() {
this.rules = hY({}, Ct)
}
Rn.prototype.renderAttrs = function(e) {
var n, s, a;
if (!e.attrs) return "";
for (a = "", n = 0, s = e.attrs.length; n < s; n++) a += " " + Xt(e.attrs[n][0]) + '="' + Xt(e.attrs[n][1]) + '"';
return a
};
Rn.prototype.renderToken = function(e, n, s) {
var a, o = "",
r = !1,
i = e[n];
return i.hidden ? "" : (i.block && i.nesting !== -1 && n && e[n - 1].hidden && (o += `
`), o += (i.nesting === -1 ? "</" : "<") + i.tag, o += this.renderAttrs(i), i.nesting === 0 && s.xhtmlOut && (o += " /"), i.block && (r = !0, i.nesting === 1 && n + 1 < e.length && (a = e[n + 1], (a.type === "inline" || a.hidden || a.nesting === -1 && a.tag === i.tag) && (r = !1))), o += r ? `>
` : ">", o)
};
Rn.prototype.renderInline = function(t, e, n) {
for (var s, a = "", o = this.rules, r = 0, i = t.length; r < i; r++) s = t[r].type, typeof o[s] != "undefined" ? a += o[s](t, r, e, n, this) : a += this.renderToken(t, r, e);
return a
};
Rn.prototype.renderInlineAsText = function(t, e, n) {
for (var s = "", a = 0, o = t.length; a < o; a++) t[a].type === "text" ? s += t[a].content : t[a].type === "image" ? s += this.renderInlineAsText(t[a].children, e, n) : t[a].type === "softbreak" && (s += `
`);
return s
};
Rn.prototype.render = function(t, e, n) {
var s, a, o, r = "",
i = this.rules;
for (s = 0, a = t.length; s < a; s++) o = t[s].type, o === "inline" ? r += this.renderInline(t[s].children, e, n) : typeof i[o] != "undefined" ? r += i[t[s].type](t, s, e, n, this) : r += this.renderToken(t, s, e, n);
return r
};
var bY = Rn;
function ut() {
this.__rules__ = [], this.__cache__ = null
}
ut.prototype.__find__ = function(t) {
for (var e = 0; e < this.__rules__.length; e++)
if (this.__rules__[e].name === t) return e;
return -1
};
ut.prototype.__compile__ = function() {
var t = this,
e = [""];
t.__rules__.forEach(function(n) {
n.enabled && n.alt.forEach(function(s) {
e.indexOf(s) < 0 && e.push(s)
})
}), t.__cache__ = {}, e.forEach(function(n) {
t.__cache__[n] = [], t.__rules__.forEach(function(s) {
s.enabled && (n && s.alt.indexOf(n) < 0 || t.__cache__[n].push(s.fn))
})
})
};
ut.prototype.at = function(t, e, n) {
var s = this.__find__(t),
a = n || {};
if (s === -1) throw new Error("Parser rule not found: " + t);
this.__rules__[s].fn = e, this.__rules__[s].alt = a.alt || [], this.__cache__ = null
};
ut.prototype.before = function(t, e, n, s) {
var a = this.__find__(t),
o = s || {};
if (a === -1) throw new Error("Parser rule not found: " + t);
this.__rules__.splice(a, 0, {
name: e,
enabled: !0,
fn: n,
alt: o.alt || []
}), this.__cache__ = null
};
ut.prototype.after = function(t, e, n, s) {
var a = this.__find__(t),
o = s || {};
if (a === -1) throw new Error("Parser rule not found: " + t);
this.__rules__.splice(a + 1, 0, {
name: e,
enabled: !0,
fn: n,
alt: o.alt || []
}), this.__cache__ = null
};
ut.prototype.push = function(t, e, n) {
var s = n || {};
this.__rules__.push({
name: t,
enabled: !0,
fn: e,
alt: s.alt || []
}), this.__cache__ = null
};
ut.prototype.enable = function(t, e) {
Array.isArray(t) || (t = [t]);
var n = [];
return t.forEach(function(s) {
var a = this.__find__(s);
if (a < 0) {
if (e) return;
throw new Error("Rules manager: invalid rule name " + s)
}
this.__rules__[a].enabled = !0, n.push(s)
}, this), this.__cache__ = null, n
};
ut.prototype.enableOnly = function(t, e) {
Array.isArray(t) || (t = [t]), this.__rules__.forEach(function(n) {
n.enabled = !1
}), this.enable(t, e)
};
ut.prototype.disable = function(t, e) {
Array.isArray(t) || (t = [t]);
var n = [];
return t.forEach(function(s) {
var a = this.__find__(s);
if (a < 0) {
if (e) return;
throw new Error("Rules manager: invalid rule name " + s)
}
this.__rules__[a].enabled = !1, n.push(s)
}, this), this.__cache__ = null, n
};
ut.prototype.getRules = function(t) {
return this.__cache__ === null && this.__compile__(), this.__cache__[t] || []
};
var zr = ut,
vY = /\r\n?|\n/g,
xY = /\0/g,
yY = function(e) {
var n;
n = e.src.replace(vY, `
`), n = n.replace(xY, "๏ฟฝ"), e.src = n
},
wY = function(e) {
var n;
e.inlineMode ? (n = new e.Token("inline", "", 0), n.content = e.src, n.map = [0, 1], n.children = [], e.tokens.push(n)) : e.md.block.parse(e.src, e.md, e.env, e.tokens)
},
kY = function(e) {
var n = e.tokens,
s, a, o;
for (a = 0, o = n.length; a < o; a++) s = n[a], s.type === "inline" && e.md.inline.parse(s.content, e.md, e.env, s.children)
},
_Y = oe.arrayReplaceAt;
function CY(t) {
return /^<a[>\s]/i.test(t)
}
function EY(t) {
return /^<\/a\s*>/i.test(t)
}
var AY = function(e) {
var n, s, a, o, r, i, c, l, u, d, m, f, h, g, b, x, v = e.tokens,
w;
if (e.md.options.linkify) {
for (s = 0, a = v.length; s < a; s++)
if (!(v[s].type !== "inline" || !e.md.linkify.pretest(v[s].content)))
for (o = v[s].children, h = 0, n = o.length - 1; n >= 0; n--) {
if (i = o[n], i.type === "link_close") {
for (n--; o[n].level !== i.level && o[n].type !== "link_open";) n--;
continue
}
if (i.type === "html_inline" && (CY(i.content) && h > 0 && h--, EY(i.content) && h++), !(h > 0) && i.type === "text" && e.md.linkify.test(i.content)) {
for (u = i.content, w = e.md.linkify.match(u), c = [], f = i.level, m = 0, w.length > 0 && w[0].index === 0 && n > 0 && o[n - 1].type === "text_special" && (w = w.slice(1)), l = 0; l < w.length; l++) g = w[l].url, b = e.md.normalizeLink(g), e.md.validateLink(b) && (x = w[l].text, w[l].schema ? w[l].schema === "mailto:" && !/^mailto:/i.test(x) ? x = e.md.normalizeLinkText("mailto:" + x).replace(/^mailto:/, "") : x = e.md.normalizeLinkText(x) : x = e.md.normalizeLinkText("http://" + x).replace(/^http:\/\//, ""), d = w[l].index, d > m && (r = new e.Token("text", "", 0), r.content = u.slice(m, d), r.level = f, c.push(r)), r = new e.Token("link_open", "a", 1), r.attrs = [
["href", b]
], r.level = f++, r.markup = "linkify", r.info = "auto", c.push(r), r = new e.Token("text", "", 0), r.content = x, r.level = f, c.push(r), r = new e.Token("link_close", "a", -1), r.level = --f, r.markup = "linkify", r.info = "auto", c.push(r), m = w[l].lastIndex);
m < u.length && (r = new e.Token("text", "", 0), r.content = u.slice(m), r.level = f, c.push(r)), v[s].children = o = _Y(o, n, c)
}
}
}
},
kp = /\+-|\.\.|\?\?\?\?|!!!!|,,|--/,
SY = /\((c|tm|r)\)/i,
TY = /\((c|tm|r)\)/ig,
DY = {
c: "ยฉ",
r: "ยฎ",
tm: "โ„ข"
};
function IY(t, e) {
return DY[e.toLowerCase()]
}
function NY(t) {
var e, n, s = 0;
for (e = t.length - 1; e >= 0; e--) n = t[e], n.type === "text" && !s && (n.content = n.content.replace(TY, IY)), n.type === "link_open" && n.info === "auto" && s--, n.type === "link_close" && n.info === "auto" && s++
}
function MY(t) {
var e, n, s = 0;
for (e = t.length - 1; e >= 0; e--) n = t[e], n.type === "text" && !s && kp.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(/(^|[^-])---(?=[^-]|$)/mg, "$1โ€”").replace(/(^|\s)--(?=\s|$)/mg, "$1โ€“").replace(/(^|[^-\s])--(?=[^-\s]|$)/mg, "$1โ€“")), n.type === "link_open" && n.info === "auto" && s--, n.type === "link_close" && n.info === "auto" && s++
}
var OY = function(e) {
var n;
if (e.md.options.typographer)
for (n = e.tokens.length - 1; n >= 0; n--) e.tokens[n].type === "inline" && (SY.test(e.tokens[n].content) && NY(e.tokens[n].children), kp.test(e.tokens[n].content) && MY(e.tokens[n].children))
},
Sc = oe.isWhiteSpace,
Tc = oe.isPunctChar,
Dc = oe.isMdAsciiPunct,
LY = /['"]/,
Ic = /['"]/g,
Nc = "โ€™";
function Rs(t, e, n) {
return t.slice(0, e) + n + t.slice(e + 1)
}
function RY(t, e) {
var n, s, a, o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k;
for (E = [], n = 0; n < t.length; n++) {
for (s = t[n], c = t[n].level, v = E.length - 1; v >= 0 && !(E[v].level <= c); v--);
if (E.length = v + 1, s.type === "text") {
a = s.content, r = 0, i = a.length;
e: for (; r < i && (Ic.lastIndex = r, o = Ic.exec(a), !!o);) {
if (b = x = !0, r = o.index + 1, w = o[0] === "'", u = 32, o.index - 1 >= 0) u = a.charCodeAt(o.index - 1);
else
for (v = n - 1; v >= 0 && !(t[v].type === "softbreak" || t[v].type === "hardbreak"); v--)
if (t[v].content) {
u = t[v].content.charCodeAt(t[v].content.length - 1);
break
} if (d = 32, r < i) d = a.charCodeAt(r);
else
for (v = n + 1; v < t.length && !(t[v].type === "softbreak" || t[v].type === "hardbreak"); v++)
if (t[v].content) {
d = t[v].content.charCodeAt(0);
break
} if (m = Dc(u) || Tc(String.fromCharCode(u)), f = Dc(d) || Tc(String.fromCharCode(d)), h = Sc(u), g = Sc(d), g ? b = !1 : f && (h || m || (b = !1)), h ? x = !1 : m && (g || f || (x = !1)), d === 34 && o[0] === '"' && u >= 48 && u <= 57 && (x = b = !1), b && x && (b = m, x = f), !b && !x) {
w && (s.content = Rs(s.content, o.index, Nc));
continue
}
if (x) {
for (v = E.length - 1; v >= 0 && (l = E[v], !(E[v].level < c)); v--)
if (l.single === w && E[v].level === c) {
l = E[v], w ? (_ = e.md.options.quotes[2], k = e.md.options.quotes[3]) : (_ = e.md.options.quotes[0], k = e.md.options.quotes[1]), s.content = Rs(s.content, o.index, k), t[l.token].content = Rs(t[l.token].content, l.pos, _), r += k.length - 1, l.token === n && (r += _.length - 1), a = s.content, i = a.length, E.length = v;
continue e
}
}
b ? E.push({
token: n,
pos: o.index,
single: w,
level: c
}) : x && w && (s.content = Rs(s.content, o.index, Nc))
}
}
}
}
var PY = function(e) {
var n;
if (e.md.options.typographer)
for (n = e.tokens.length - 1; n >= 0; n--) e.tokens[n].type !== "inline" || !LY.test(e.tokens[n].content) || RY(e.tokens[n].children, e)
},
BY = function(e) {
var n, s, a, o, r, i, c = e.tokens;
for (n = 0, s = c.length; n < s; n++)
if (c[n].type === "inline") {
for (a = c[n].children, r = a.length, o = 0; o < r; o++) a[o].type === "text_special" && (a[o].type = "text");
for (o = i = 0; o < r; o++) a[o].type === "text" && o + 1 < r && a[o + 1].type === "text" ? a[o + 1].content = a[o].content + a[o + 1].content : (o !== i && (a[i] = a[o]), i++);
o !== i && (a.length = i)
}
};
function Pn(t, e, n) {
this.type = t, this.tag = e, this.attrs = null, this.map = null, this.nesting = n, this.level = 0, this.children = null, this.content = "", this.markup = "", this.info = "", this.meta = null, this.block = !1, this.hidden = !1
}
Pn.prototype.attrIndex = function(e) {
var n, s, a;
if (!this.attrs) return -1;
for (n = this.attrs, s = 0, a = n.length; s < a; s++)
if (n[s][0] === e) return s;
return -1
};
Pn.prototype.attrPush = function(e) {
this.attrs ? this.attrs.push(e) : this.attrs = [e]
};
Pn.prototype.attrSet = function(e, n) {
var s = this.attrIndex(e),
a = [e, n];
s < 0 ? this.attrPush(a) : this.attrs[s] = a
};
Pn.prototype.attrGet = function(e) {
var n = this.attrIndex(e),
s = null;
return n >= 0 && (s = this.attrs[n][1]), s
};
Pn.prototype.attrJoin = function(e, n) {
var s = this.attrIndex(e);
s < 0 ? this.attrPush([e, n]) : this.attrs[s][1] = this.attrs[s][1] + " " + n
};
var qr = Pn,
zY = qr;
function _p(t, e, n) {
this.src = t, this.env = n, this.tokens = [], this.inlineMode = !1, this.md = e
}
_p.prototype.Token = zY;
var qY = _p,
FY = zr,
po = [
["normalize", yY],
["block", wY],
["inline", kY],
["linkify", AY],
["replacements", OY],
["smartquotes", PY],
["text_join", BY]
];
function Fr() {
this.ruler = new FY;
for (var t = 0; t < po.length; t++) this.ruler.push(po[t][0], po[t][1])
}
Fr.prototype.process = function(t) {
var e, n, s;
for (s = this.ruler.getRules(""), e = 0, n = s.length; e < n; e++) s[e](t)
};
Fr.prototype.State = qY;
var jY = Fr,
mo = oe.isSpace;
function fo(t, e) {
var n = t.bMarks[e] + t.tShift[e],
s = t.eMarks[e];
return t.src.slice(n, s)
}
function Mc(t) {
var e = [],
n = 0,
s = t.length,
a, o = !1,
r = 0,
i = "";
for (a = t.charCodeAt(n); n < s;) a === 124 && (o ? (i += t.substring(r, n - 1), r = n) : (e.push(i + t.substring(r, n)), i = "", r = n + 1)), o = a === 92, n++, a = t.charCodeAt(n);
return e.push(i + t.substring(r)), e
}
var $Y = function(e, n, s, a) {
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k;
if (n + 2 > s || (u = n + 1, e.sCount[u] < e.blkIndent) || e.sCount[u] - e.blkIndent >= 4 || (i = e.bMarks[u] + e.tShift[u], i >= e.eMarks[u]) || (_ = e.src.charCodeAt(i++), _ !== 124 && _ !== 45 && _ !== 58) || i >= e.eMarks[u] || (k = e.src.charCodeAt(i++), k !== 124 && k !== 45 && k !== 58 && !mo(k)) || _ === 45 && mo(k)) return !1;
for (; i < e.eMarks[u];) {
if (o = e.src.charCodeAt(i), o !== 124 && o !== 45 && o !== 58 && !mo(o)) return !1;
i++
}
for (r = fo(e, n + 1), d = r.split("|"), h = [], c = 0; c < d.length; c++) {
if (g = d[c].trim(), !g) {
if (c === 0 || c === d.length - 1) continue;
return !1
}
if (!/^:?-+:?$/.test(g)) return !1;
g.charCodeAt(g.length - 1) === 58 ? h.push(g.charCodeAt(0) === 58 ? "center" : "right") : g.charCodeAt(0) === 58 ? h.push("left") : h.push("")
}
if (r = fo(e, n).trim(), r.indexOf("|") === -1 || e.sCount[n] - e.blkIndent >= 4 || (d = Mc(r), d.length && d[0] === "" && d.shift(), d.length && d[d.length - 1] === "" && d.pop(), m = d.length, m === 0 || m !== h.length)) return !1;
if (a) return !0;
for (v = e.parentType, e.parentType = "table", E = e.md.block.ruler.getRules("blockquote"), f = e.push("table_open", "table", 1), f.map = b = [n, 0], f = e.push("thead_open", "thead", 1), f.map = [n, n + 1], f = e.push("tr_open", "tr", 1), f.map = [n, n + 1], c = 0; c < d.length; c++) f = e.push("th_open", "th", 1), h[c] && (f.attrs = [
["style", "text-align:" + h[c]]
]), f = e.push("inline", "", 0), f.content = d[c].trim(), f.children = [], f = e.push("th_close", "th", -1);
for (f = e.push("tr_close", "tr", -1), f = e.push("thead_close", "thead", -1), u = n + 2; u < s && !(e.sCount[u] < e.blkIndent); u++) {
for (w = !1, c = 0, l = E.length; c < l; c++)
if (E[c](e, u, s, !0)) {
w = !0;
break
}
if (w || (r = fo(e, u).trim(), !r) || e.sCount[u] - e.blkIndent >= 4) break;
for (d = Mc(r), d.length && d[0] === "" && d.shift(), d.length && d[d.length - 1] === "" && d.pop(), u === n + 2 && (f = e.push("tbody_open", "tbody", 1), f.map = x = [n + 2, 0]), f = e.push("tr_open", "tr", 1), f.map = [u, u + 1], c = 0; c < m; c++) f = e.push("td_open", "td", 1), h[c] && (f.attrs = [
["style", "text-align:" + h[c]]
]), f = e.push("inline", "", 0), f.content = d[c] ? d[c].trim() : "", f.children = [], f = e.push("td_close", "td", -1);
f = e.push("tr_close", "tr", -1)
}
return x && (f = e.push("tbody_close", "tbody", -1), x[1] = u), f = e.push("table_close", "table", -1), b[1] = u, e.parentType = v, e.line = u, !0
},
UY = function(e, n, s) {
var a, o, r;
if (e.sCount[n] - e.blkIndent < 4) return !1;
for (o = a = n + 1; a < s;) {
if (e.isEmpty(a)) {
a++;
continue
}
if (e.sCount[a] - e.blkIndent >= 4) {
a++, o = a;
continue
}
break
}
return e.line = o, r = e.push("code_block", "code", 0), r.content = e.getLines(n, o, 4 + e.blkIndent, !1) + `
`, r.map = [n, e.line], !0
},
VY = function(e, n, s, a) {
var o, r, i, c, l, u, d, m = !1,
f = e.bMarks[n] + e.tShift[n],
h = e.eMarks[n];
if (e.sCount[n] - e.blkIndent >= 4 || f + 3 > h || (o = e.src.charCodeAt(f), o !== 126 && o !== 96) || (l = f, f = e.skipChars(f, o), r = f - l, r < 3) || (d = e.src.slice(l, f), i = e.src.slice(f, h), o === 96 && i.indexOf(String.fromCharCode(o)) >= 0)) return !1;
if (a) return !0;
for (c = n; c++, !(c >= s || (f = l = e.bMarks[c] + e.tShift[c], h = e.eMarks[c], f < h && e.sCount[c] < e.blkIndent));)
if (e.src.charCodeAt(f) === o && !(e.sCount[c] - e.blkIndent >= 4) && (f = e.skipChars(f, o), !(f - l < r) && (f = e.skipSpaces(f), !(f < h)))) {
m = !0;
break
}
return r = e.sCount[n], e.line = c + (m ? 1 : 0), u = e.push("fence", "code", 0), u.info = i, u.content = e.getLines(n + 1, c, r, !0), u.markup = d, u.map = [n, e.line], !0
},
Oc = oe.isSpace,
HY = function(e, n, s, a) {
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k, M, y, T = e.lineMax,
D = e.bMarks[n] + e.tShift[n],
C = e.eMarks[n];
if (e.sCount[n] - e.blkIndent >= 4 || e.src.charCodeAt(D++) !== 62) return !1;
if (a) return !0;
for (c = f = e.sCount[n] + 1, e.src.charCodeAt(D) === 32 ? (D++, c++, f++, o = !1, E = !0) : e.src.charCodeAt(D) === 9 ? (E = !0, (e.bsCount[n] + f) % 4 === 3 ? (D++, c++, f++, o = !1) : o = !0) : E = !1, h = [e.bMarks[n]], e.bMarks[n] = D; D < C && (r = e.src.charCodeAt(D), Oc(r));) {
r === 9 ? f += 4 - (f + e.bsCount[n] + (o ? 1 : 0)) % 4 : f++;
D++
}
for (g = [e.bsCount[n]], e.bsCount[n] = e.sCount[n] + 1 + (E ? 1 : 0), u = D >= C, v = [e.sCount[n]], e.sCount[n] = f - c, w = [e.tShift[n]], e.tShift[n] = D - e.bMarks[n], k = e.md.block.ruler.getRules("blockquote"), x = e.parentType, e.parentType = "blockquote", m = n + 1; m < s && (y = e.sCount[m] < e.blkIndent, D = e.bMarks[m] + e.tShift[m], C = e.eMarks[m], !(D >= C)); m++) {
if (e.src.charCodeAt(D++) === 62 && !y) {
for (c = f = e.sCount[m] + 1, e.src.charCodeAt(D) === 32 ? (D++, c++, f++, o = !1, E = !0) : e.src.charCodeAt(D) === 9 ? (E = !0, (e.bsCount[m] + f) % 4 === 3 ? (D++, c++, f++, o = !1) : o = !0) : E = !1, h.push(e.bMarks[m]), e.bMarks[m] = D; D < C && (r = e.src.charCodeAt(D), Oc(r));) {
r === 9 ? f += 4 - (f + e.bsCount[m] + (o ? 1 : 0)) % 4 : f++;
D++
}
u = D >= C, g.push(e.bsCount[m]), e.bsCount[m] = e.sCount[m] + 1 + (E ? 1 : 0), v.push(e.sCount[m]), e.sCount[m] = f - c, w.push(e.tShift[m]), e.tShift[m] = D - e.bMarks[m];
continue
}
if (u) break;
for (_ = !1, i = 0, l = k.length; i < l; i++)
if (k[i](e, m, s, !0)) {
_ = !0;
break
}
if (_) {
e.lineMax = m, e.blkIndent !== 0 && (h.push(e.bMarks[m]), g.push(e.bsCount[m]), w.push(e.tShift[m]), v.push(e.sCount[m]), e.sCount[m] -= e.blkIndent);
break
}
h.push(e.bMarks[m]), g.push(e.bsCount[m]), w.push(e.tShift[m]), v.push(e.sCount[m]), e.sCount[m] = -1
}
for (b = e.blkIndent, e.blkIndent = 0, M = e.push("blockquote_open", "blockquote", 1), M.markup = ">", M.map = d = [n, 0], e.md.block.tokenize(e, n, m), M = e.push("blockquote_close", "blockquote", -1), M.markup = ">", e.lineMax = T, e.parentType = x, d[1] = e.line, i = 0; i < w.length; i++) e.bMarks[i + n] = h[i], e.tShift[i + n] = w[i], e.sCount[i + n] = v[i], e.bsCount[i + n] = g[i];
return e.blkIndent = b, !0
},
GY = oe.isSpace,
WY = function(e, n, s, a) {
var o, r, i, c, l = e.bMarks[n] + e.tShift[n],
u = e.eMarks[n];
if (e.sCount[n] - e.blkIndent >= 4 || (o = e.src.charCodeAt(l++), o !== 42 && o !== 45 && o !== 95)) return !1;
for (r = 1; l < u;) {
if (i = e.src.charCodeAt(l++), i !== o && !GY(i)) return !1;
i === o && r++
}
return r < 3 ? !1 : (a || (e.line = n + 1, c = e.push("hr", "hr", 0), c.map = [n, e.line], c.markup = Array(r + 1).join(String.fromCharCode(o))), !0)
},
Cp = oe.isSpace;
function Lc(t, e) {
var n, s, a, o;
return s = t.bMarks[e] + t.tShift[e], a = t.eMarks[e], n = t.src.charCodeAt(s++), n !== 42 && n !== 45 && n !== 43 || s < a && (o = t.src.charCodeAt(s), !Cp(o)) ? -1 : s
}
function Rc(t, e) {
var n, s = t.bMarks[e] + t.tShift[e],
a = s,
o = t.eMarks[e];
if (a + 1 >= o || (n = t.src.charCodeAt(a++), n < 48 || n > 57)) return -1;
for (;;) {
if (a >= o) return -1;
if (n = t.src.charCodeAt(a++), n >= 48 && n <= 57) {
if (a - s >= 10) return -1;
continue
}
if (n === 41 || n === 46) break;
return -1
}
return a < o && (n = t.src.charCodeAt(a), !Cp(n)) ? -1 : a
}
function JY(t, e) {
var n, s, a = t.level + 2;
for (n = e + 2, s = t.tokens.length - 2; n < s; n++) t.tokens[n].level === a && t.tokens[n].type === "paragraph_open" && (t.tokens[n + 2].hidden = !0, t.tokens[n].hidden = !0, n += 2)
}
var YY = function(e, n, s, a) {
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _, k, M, y, T, D, C, L, R, A, I, O, B = !1,
j = !0;
if (e.sCount[n] - e.blkIndent >= 4 || e.listIndent >= 0 && e.sCount[n] - e.listIndent >= 4 && e.sCount[n] < e.blkIndent) return !1;
if (a && e.parentType === "paragraph" && e.sCount[n] >= e.blkIndent && (B = !0), (C = Rc(e, n)) >= 0) {
if (d = !0, R = e.bMarks[n] + e.tShift[n], x = Number(e.src.slice(R, C - 1)), B && x !== 1) return !1
} else if ((C = Lc(e, n)) >= 0) d = !1;
else return !1;
if (B && e.skipSpaces(C) >= e.eMarks[n]) return !1;
if (b = e.src.charCodeAt(C - 1), a) return !0;
for (g = e.tokens.length, d ? (O = e.push("ordered_list_open", "ol", 1), x !== 1 && (O.attrs = [
["start", x]
])) : O = e.push("bullet_list_open", "ul", 1), O.map = h = [n, 0], O.markup = String.fromCharCode(b), w = n, L = !1, I = e.md.block.ruler.getRules("list"), k = e.parentType, e.parentType = "list"; w < s;) {
for (D = C, v = e.eMarks[w], u = E = e.sCount[w] + C - (e.bMarks[n] + e.tShift[n]); D < v;) {
if (o = e.src.charCodeAt(D), o === 9) E += 4 - (E + e.bsCount[w]) % 4;
else if (o === 32) E++;
else break;
D++
}
if (r = D, r >= v ? l = 1 : l = E - u, l > 4 && (l = 1), c = u + l, O = e.push("list_item_open", "li", 1), O.markup = String.fromCharCode(b), O.map = m = [n, 0], d && (O.info = e.src.slice(R, C - 1)), T = e.tight, y = e.tShift[n], M = e.sCount[n], _ = e.listIndent, e.listIndent = e.blkIndent, e.blkIndent = c, e.tight = !0, e.tShift[n] = r - e.bMarks[n], e.sCount[n] = E, r >= v && e.isEmpty(n + 1) ? e.line = Math.min(e.line + 2, s) : e.md.block.tokenize(e, n, s, !0), (!e.tight || L) && (j = !1), L = e.line - n > 1 && e.isEmpty(e.line - 1), e.blkIndent = e.listIndent, e.listIndent = _, e.tShift[n] = y, e.sCount[n] = M, e.tight = T, O = e.push("list_item_close", "li", -1), O.markup = String.fromCharCode(b), w = n = e.line, m[1] = w, r = e.bMarks[n], w >= s || e.sCount[w] < e.blkIndent || e.sCount[n] - e.blkIndent >= 4) break;
for (A = !1, i = 0, f = I.length; i < f; i++)
if (I[i](e, w, s, !0)) {
A = !0;
break
}
if (A) break;
if (d) {
if (C = Rc(e, w), C < 0) break;
R = e.bMarks[w] + e.tShift[w]
} else if (C = Lc(e, w), C < 0) break;
if (b !== e.src.charCodeAt(C - 1)) break
}
return d ? O = e.push("ordered_list_close", "ol", -1) : O = e.push("bullet_list_close", "ul", -1), O.markup = String.fromCharCode(b), h[1] = w, e.line = w, e.parentType = k, j && JY(e, g), !0
},
KY = oe.normalizeReference,
Ps = oe.isSpace,
XY = function(e, n, s, a) {
var o, r, i, c, l, u, d, m, f, h, g, b, x, v, w, E, _ = 0,
k = e.bMarks[n] + e.tShift[n],
M = e.eMarks[n],
y = n + 1;
if (e.sCount[n] - e.blkIndent >= 4 || e.src.charCodeAt(k) !== 91) return !1;
for (; ++k < M;)
if (e.src.charCodeAt(k) === 93 && e.src.charCodeAt(k - 1) !== 92) {
if (k + 1 === M || e.src.charCodeAt(k + 1) !== 58) return !1;
break
}
for (c = e.lineMax, w = e.md.block.ruler.getRules("reference"), h = e.parentType, e.parentType = "reference"; y < c && !e.isEmpty(y); y++)
if (!(e.sCount[y] - e.blkIndent > 3) && !(e.sCount[y] < 0)) {
for (v = !1, u = 0, d = w.length; u < d; u++)
if (w[u](e, y, c, !0)) {
v = !0;
break
}
if (v) break
}
for (x = e.getLines(n, y, e.blkIndent, !1).trim(), M = x.length, k = 1; k < M; k++) {
if (o = x.charCodeAt(k), o === 91) return !1;
if (o === 93) {
f = k;
break
} else o === 10 ? _++ : o === 92 && (k++, k < M && x.charCodeAt(k) === 10 && _++)
}
if (f < 0 || x.charCodeAt(f + 1) !== 58) return !1;
for (k = f + 2; k < M; k++)
if (o = x.charCodeAt(k), o === 10) _++;
else if (!Ps(o)) break;
if (g = e.md.helpers.parseLinkDestination(x, k, M), !g.ok || (l = e.md.normalizeLink(g.str), !e.md.validateLink(l))) return !1;
for (k = g.pos, _ += g.lines, r = k, i = _, b = k; k < M; k++)
if (o = x.charCodeAt(k), o === 10) _++;
else if (!Ps(o)) break;
for (g = e.md.helpers.parseLinkTitle(x, k, M), k < M && b !== k && g.ok ? (E = g.str, k = g.pos, _ += g.lines) : (E = "", k = r, _ = i); k < M && (o = x.charCodeAt(k), !!Ps(o));) k++;
if (k < M && x.charCodeAt(k) !== 10 && E)
for (E = "", k = r, _ = i; k < M && (o = x.charCodeAt(k), !!Ps(o));) k++;
return k < M && x.charCodeAt(k) !== 10 || (m = KY(x.slice(1, f)), !m) ? !1 : (a || (typeof e.env.references == "undefined" && (e.env.references = {}), typeof e.env.references[m] == "undefined" && (e.env.references[m] = {
title: E,
href: l
}), e.parentType = h, e.line = n + _ + 1), !0)
},
ZY = ["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"],
za = {},
QY = "[a-zA-Z_:][a-zA-Z0-9:._-]*",
eK = "[^\"'=<>`\\x00-\\x20]+",
tK = "'[^']*'",
nK = '"[^"]*"',
sK = "(?:" + eK + "|" + tK + "|" + nK + ")",
aK = "(?:\\s+" + QY + "(?:\\s*=\\s*" + sK + ")?)",
Ep = "<[A-Za-z][A-Za-z0-9\\-]*" + aK + "*\\s*\\/?>",
Ap = "<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",
oK = "<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->",
rK = "<[?][\\s\\S]*?[?]>",
iK = "<![A-Z]+\\s+[^>]*>",
cK = "<!\\[CDATA\\[[\\s\\S]*?\\]\\]>",
lK = new RegExp("^(?:" + Ep + "|" + Ap + "|" + oK + "|" + rK + "|" + iK + "|" + cK + ")"),
uK = new RegExp("^(?:" + Ep + "|" + Ap + ")");
za.HTML_TAG_RE = lK;
za.HTML_OPEN_CLOSE_TAG_RE = uK;
var pK = ZY,
dK = za.HTML_OPEN_CLOSE_TAG_RE,
un = [
[/^<(script|pre|style|textarea)(?=(\s|>|$))/i, /<\/(script|pre|style|textarea)>/i, !0],
[/^<!--/, /-->/, !0],
[/^<\?/, /\?>/, !0],
[/^<![A-Z]/, />/, !0],
[/^<!\[CDATA\[/, /\]\]>/, !0],
[new RegExp("^</?(" + pK.join("|") + ")(?=(\\s|/?>|$))", "i"), /^$/, !0],
[new RegExp(dK.source + "\\s*$"), /^$/, !1]
],
mK = function(e, n, s, a) {
var o, r, i, c, l = e.bMarks[n] + e.tShift[n],
u = e.eMarks[n];
if (e.sCount[n] - e.blkIndent >= 4 || !e.md.options.html || e.src.charCodeAt(l) !== 60) return !1;
for (c = e.src.slice(l, u), o = 0; o < un.length && !un[o][0].test(c); o++);
if (o === un.length) return !1;
if (a) return un[o][2];
if (r = n + 1, !un[o][1].test(c)) {
for (; r < s && !(e.sCount[r] < e.blkIndent); r++)
if (l = e.bMarks[r] + e.tShift[r], u = e.eMarks[r], c = e.src.slice(l, u), un[o][1].test(c)) {
c.length !== 0 && r++;
break
}
}
return e.line = r, i = e.push("html_block", "", 0), i.map = [n, r], i.content = e.getLines(n, r, e.blkIndent, !0), !0
},
Pc = oe.isSpace,
fK = function(e, n, s, a) {
var o, r, i, c, l = e.bMarks[n] + e.tShift[n],
u = e.eMarks[n];
if (e.sCount[n] - e.blkIndent >= 4 || (o = e.src.charCodeAt(l), o !== 35 || l >= u)) return !1;
for (r = 1, o = e.src.charCodeAt(++l); o === 35 && l < u && r <= 6;) r++, o = e.src.charCodeAt(++l);
return r > 6 || l < u && !Pc(o) ? !1 : (a || (u = e.skipSpacesBack(u, l), i = e.skipCharsBack(u, 35, l), i > l && Pc(e.src.charCodeAt(i - 1)) && (u = i), e.line = n + 1, c = e.push("heading_open", "h" + String(r), 1), c.markup = "########".slice(0, r), c.map = [n, e.line], c = e.push("inline", "", 0), c.content = e.src.slice(l, u).trim(), c.map = [n, e.line], c.children = [], c = e.push("heading_close", "h" + String(r), -1), c.markup = "########".slice(0, r)), !0)
},
hK = function(e, n, s) {
var a, o, r, i, c, l, u, d, m, f = n + 1,
h, g = e.md.block.ruler.getRules("paragraph");
if (e.sCount[n] - e.blkIndent >= 4) return !1;
for (h = e.parentType, e.parentType = "paragraph"; f < s && !e.isEmpty(f); f++)
if (!(e.sCount[f] - e.blkIndent > 3)) {
if (e.sCount[f] >= e.blkIndent && (l = e.bMarks[f] + e.tShift[f], u = e.eMarks[f], l < u && (m = e.src.charCodeAt(l), (m === 45 || m === 61) && (l = e.skipChars(l, m), l = e.skipSpaces(l), l >= u)))) {
d = m === 61 ? 1 : 2;
break
}
if (!(e.sCount[f] < 0)) {
for (o = !1, r = 0, i = g.length; r < i; r++)
if (g[r](e, f, s, !0)) {
o = !0;
break
}
if (o) break
}
}
return d ? (a = e.getLines(n, f, e.blkIndent, !1).trim(), e.line = f + 1, c = e.push("heading_open", "h" + String(d), 1), c.markup = String.fromCharCode(m), c.map = [n, e.line], c = e.push("inline", "", 0), c.content = a, c.map = [n, e.line - 1], c.children = [], c = e.push("heading_close", "h" + String(d), -1), c.markup = String.fromCharCode(m), e.parentType = h, !0) : !1
},
gK = function(e, n) {
var s, a, o, r, i, c, l = n + 1,
u = e.md.block.ruler.getRules("paragraph"),
d = e.lineMax;
for (c = e.parentType, e.parentType = "paragraph"; l < d && !e.isEmpty(l); l++)
if (!(e.sCount[l] - e.blkIndent > 3) && !(e.sCount[l] < 0)) {
for (a = !1, o = 0, r = u.length; o < r; o++)
if (u[o](e, l, d, !0)) {
a = !0;
break
}
if (a) break
}
return s = e.getLines(n, l, e.blkIndent, !1).trim(), e.line = l, i = e.push("paragraph_open", "p", 1), i.map = [n, e.line], i = e.push("inline", "", 0), i.content = s, i.map = [n, e.line], i.children = [], i = e.push("paragraph_close", "p", -1), e.parentType = c, !0
},
Sp = qr,
qa = oe.isSpace;
function Et(t, e, n, s) {
var a, o, r, i, c, l, u, d;
for (this.src = t, this.md = e, this.env = n, this.tokens = s, 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, this.result = "", o = this.src, d = !1, r = i = l = u = 0, c = o.length; i < c; i++) {
if (a = o.charCodeAt(i), !d)
if (qa(a)) {
l++, a === 9 ? u += 4 - u % 4 : u++;
continue
} else d = !0;
(a === 10 || i === c - 1) && (a !== 10 && i++, this.bMarks.push(r), this.eMarks.push(i), this.tShift.push(l), this.sCount.push(u), this.bsCount.push(0), d = !1, l = 0, u = 0, r = i + 1)
}
this.bMarks.push(o.length), this.eMarks.push(o.length), this.tShift.push(0), this.sCount.push(0), this.bsCount.push(0), this.lineMax = this.bMarks.length - 1
}
Et.prototype.push = function(t, e, n) {
var s = new Sp(t, e, n);
return s.block = !0, n < 0 && this.level--, s.level = this.level, n > 0 && this.level++, this.tokens.push(s), s
};
Et.prototype.isEmpty = function(e) {
return this.bMarks[e] + this.tShift[e] >= this.eMarks[e]
};
Et.prototype.skipEmptyLines = function(e) {
for (var n = this.lineMax; e < n && !(this.bMarks[e] + this.tShift[e] < this.eMarks[e]); e++);
return e
};
Et.prototype.skipSpaces = function(e) {
for (var n, s = this.src.length; e < s && (n = this.src.charCodeAt(e), !!qa(n)); e++);
return e
};
Et.prototype.skipSpacesBack = function(e, n) {
if (e <= n) return e;
for (; e > n;)
if (!qa(this.src.charCodeAt(--e))) return e + 1;
return e
};
Et.prototype.skipChars = function(e, n) {
for (var s = this.src.length; e < s && this.src.charCodeAt(e) === n; e++);
return e
};
Et.prototype.skipCharsBack = function(e, n, s) {
if (e <= s) return e;
for (; e > s;)
if (n !== this.src.charCodeAt(--e)) return e + 1;
return e
};
Et.prototype.getLines = function(e, n, s, a) {
var o, r, i, c, l, u, d, m = e;
if (e >= n) return "";
for (u = new Array(n - e), o = 0; m < n; m++, o++) {
for (r = 0, d = c = this.bMarks[m], m + 1 < n || a ? l = this.eMarks[m] + 1 : l = this.eMarks[m]; c < l && r < s;) {
if (i = this.src.charCodeAt(c), qa(i)) i === 9 ? r += 4 - (r + this.bsCount[m]) % 4 : r++;
else if (c - d < this.tShift[m]) r++;
else break;
c++
}
r > s ? u[o] = new Array(r - s + 1).join(" ") + this.src.slice(c, l) : u[o] = this.src.slice(c, l)
}
return u.join("")
};
Et.prototype.Token = Sp;
var bK = Et,
vK = zr,
Bs = [
["table", $Y, ["paragraph", "reference"]],
["code", UY],
["fence", VY, ["paragraph", "reference", "blockquote", "list"]],
["blockquote", HY, ["paragraph", "reference", "blockquote", "list"]],
["hr", WY, ["paragraph", "reference", "blockquote", "list"]],
["list", YY, ["paragraph", "reference", "blockquote"]],
["reference", XY],
["html_block", mK, ["paragraph", "reference", "blockquote"]],
["heading", fK, ["paragraph", "reference", "blockquote"]],
["lheading", hK],
["paragraph", gK]
];
function Fa() {
this.ruler = new vK;
for (var t = 0; t < Bs.length; t++) this.ruler.push(Bs[t][0], Bs[t][1], {
alt: (Bs[t][2] || []).slice()
})
}
Fa.prototype.tokenize = function(t, e, n) {
for (var s, a, o = this.ruler.getRules(""), r = o.length, i = e, c = !1, l = t.md.options.maxNesting; i < n && (t.line = i = t.skipEmptyLines(i), !(i >= n || t.sCount[i] < t.blkIndent));) {
if (t.level >= l) {
t.line = n;
break
}
for (a = 0; a < r && (s = o[a](t, i, n, !1), !s); a++);
t.tight = !c, t.isEmpty(t.line - 1) && (c = !0), i = t.line, i < n && t.isEmpty(i) && (c = !0, i++, t.line = i)
}
};
Fa.prototype.parse = function(t, e, n, s) {
var a;
t && (a = new this.State(t, e, n, s), this.tokenize(a, a.line, a.lineMax))
};
Fa.prototype.State = bK;
var xK = Fa;
function yK(t) {
switch (t) {
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
}
}
var wK = function(e, n) {
for (var s = e.pos; s < e.posMax && !yK(e.src.charCodeAt(s));) s++;
return s === e.pos ? !1 : (n || (e.pending += e.src.slice(e.pos, s)), e.pos = s, !0)
},
kK = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i,
_K = function(e, n) {
var s, a, o, r, i, c, l, u;
return !e.md.options.linkify || e.linkLevel > 0 || (s = e.pos, a = e.posMax, s + 3 > a) || e.src.charCodeAt(s) !== 58 || e.src.charCodeAt(s + 1) !== 47 || e.src.charCodeAt(s + 2) !== 47 || (o = e.pending.match(kK), !o) || (r = o[1], i = e.md.linkify.matchAtStart(e.src.slice(s - r.length)), !i) || (c = i.url, c = c.replace(/\*+$/, ""), l = e.md.normalizeLink(c), !e.md.validateLink(l)) ? !1 : (n || (e.pending = e.pending.slice(0, -r.length), u = e.push("link_open", "a", 1), u.attrs = [
["href", l]
], u.markup = "linkify", u.info = "auto", u = e.push("text", "", 0), u.content = e.md.normalizeLinkText(c), u = e.push("link_close", "a", -1), u.markup = "linkify", u.info = "auto"), e.pos += c.length - r.length, !0)
},
CK = oe.isSpace,
EK = function(e, n) {
var s, a, o, r = e.pos;
if (e.src.charCodeAt(r) !== 10) return !1;
if (s = e.pending.length - 1, a = e.posMax, !n)
if (s >= 0 && e.pending.charCodeAt(s) === 32)
if (s >= 1 && e.pending.charCodeAt(s - 1) === 32) {
for (o = s - 1; o >= 1 && e.pending.charCodeAt(o - 1) === 32;) o--;
e.pending = e.pending.slice(0, o), e.push("hardbreak", "br", 0)
} else e.pending = e.pending.slice(0, -1), e.push("softbreak", "br", 0);
else e.push("softbreak", "br", 0);
for (r++; r < a && CK(e.src.charCodeAt(r));) r++;
return e.pos = r, !0
},
AK = oe.isSpace,
jr = [];
for (var Bc = 0; Bc < 256; Bc++) jr.push(0);
"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(t) {
jr[t.charCodeAt(0)] = 1
});
var SK = function(e, n) {
var s, a, o, r, i, c = e.pos,
l = e.posMax;
if (e.src.charCodeAt(c) !== 92 || (c++, c >= l)) return !1;
if (s = e.src.charCodeAt(c), s === 10) {
for (n || e.push("hardbreak", "br", 0), c++; c < l && (s = e.src.charCodeAt(c), !!AK(s));) c++;
return e.pos = c, !0
}
return r = e.src[c], s >= 55296 && s <= 56319 && c + 1 < l && (a = e.src.charCodeAt(c + 1), a >= 56320 && a <= 57343 && (r += e.src[c + 1], c++)), o = "\\" + r, n || (i = e.push("text_special", "", 0), s < 256 && jr[s] !== 0 ? i.content = r : i.content = o, i.markup = o, i.info = "escape"), e.pos = c + 1, !0
},
TK = function(e, n) {
var s, a, o, r, i, c, l, u, d = e.pos,
m = e.src.charCodeAt(d);
if (m !== 96) return !1;
for (s = d, d++, a = e.posMax; d < a && e.src.charCodeAt(d) === 96;) d++;
if (o = e.src.slice(s, d), l = o.length, e.backticksScanned && (e.backticks[l] || 0) <= s) return n || (e.pending += o), e.pos += l, !0;
for (i = c = d;
(i = e.src.indexOf("`", c)) !== -1;) {
for (c = i + 1; c < a && e.src.charCodeAt(c) === 96;) c++;
if (u = c - i, u === l) return n || (r = e.push("code_inline", "code", 0), r.markup = o, r.content = e.src.slice(d, i).replace(/\n/g, " ").replace(/^ (.+) $/, "$1")), e.pos = c, !0;
e.backticks[u] = i
}
return e.backticksScanned = !0, n || (e.pending += o), e.pos += l, !0
},
ja = {};
ja.tokenize = function(e, n) {
var s, a, o, r, i, c = e.pos,
l = e.src.charCodeAt(c);
if (n || l !== 126 || (a = e.scanDelims(e.pos, !0), r = a.length, i = String.fromCharCode(l), r < 2)) return !1;
for (r % 2 && (o = e.push("text", "", 0), o.content = i, r--), s = 0; s < r; s += 2) o = e.push("text", "", 0), o.content = i + i, e.delimiters.push({
marker: l,
length: 0,
token: e.tokens.length - 1,
end: -1,
open: a.can_open,
close: a.can_close
});
return e.pos += a.length, !0
};
function zc(t, e) {
var n, s, a, o, r, i = [],
c = e.length;
for (n = 0; n < c; n++) a = e[n], a.marker === 126 && a.end !== -1 && (o = e[a.end], r = t.tokens[a.token], r.type = "s_open", r.tag = "s", r.nesting = 1, r.markup = "~~", r.content = "", r = t.tokens[o.token], r.type = "s_close", r.tag = "s", r.nesting = -1, r.markup = "~~", r.content = "", t.tokens[o.token - 1].type === "text" && t.tokens[o.token - 1].content === "~" && i.push(o.token - 1));
for (; i.length;) {
for (n = i.pop(), s = n + 1; s < t.tokens.length && t.tokens[s].type === "s_close";) s++;
s--, n !== s && (r = t.tokens[s], t.tokens[s] = t.tokens[n], t.tokens[n] = r)
}
}
ja.postProcess = function(e) {
var n, s = e.tokens_meta,
a = e.tokens_meta.length;
for (zc(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && zc(e, s[n].delimiters)
};
var $a = {};
$a.tokenize = function(e, n) {
var s, a, o, r = e.pos,
i = e.src.charCodeAt(r);
if (n || i !== 95 && i !== 42) return !1;
for (a = e.scanDelims(e.pos, i === 42), s = 0; s < a.length; s++) o = e.push("text", "", 0), o.content = String.fromCharCode(i), e.delimiters.push({
marker: i,
length: a.length,
token: e.tokens.length - 1,
end: -1,
open: a.can_open,
close: a.can_close
});
return e.pos += a.length, !0
};
function qc(t, e) {
var n, s, a, o, r, i, c = e.length;
for (n = c - 1; n >= 0; n--) s = e[n], !(s.marker !== 95 && s.marker !== 42) && s.end !== -1 && (a = e[s.end], i = n > 0 && e[n - 1].end === s.end + 1 && e[n - 1].marker === s.marker && e[n - 1].token === s.token - 1 && e[s.end + 1].token === a.token + 1, r = String.fromCharCode(s.marker), o = t.tokens[s.token], o.type = i ? "strong_open" : "em_open", o.tag = i ? "strong" : "em", o.nesting = 1, o.markup = i ? r + r : r, o.content = "", o = t.tokens[a.token], o.type = i ? "strong_close" : "em_close", o.tag = i ? "strong" : "em", o.nesting = -1, o.markup = i ? r + r : r, o.content = "", i && (t.tokens[e[n - 1].token].content = "", t.tokens[e[s.end + 1].token].content = "", n--))
}
$a.postProcess = function(e) {
var n, s = e.tokens_meta,
a = e.tokens_meta.length;
for (qc(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && qc(e, s[n].delimiters)
};
var DK = oe.normalizeReference,
ho = oe.isSpace,
IK = function(e, n) {
var s, a, o, r, i, c, l, u, d, m = "",
f = "",
h = e.pos,
g = e.posMax,
b = e.pos,
x = !0;
if (e.src.charCodeAt(e.pos) !== 91 || (i = e.pos + 1, r = e.md.helpers.parseLinkLabel(e, e.pos, !0), r < 0)) return !1;
if (c = r + 1, c < g && e.src.charCodeAt(c) === 40) {
for (x = !1, c++; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++);
if (c >= g) return !1;
if (b = c, l = e.md.helpers.parseLinkDestination(e.src, c, e.posMax), l.ok) {
for (m = e.md.normalizeLink(l.str), e.md.validateLink(m) ? c = l.pos : m = "", b = c; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++);
if (l = e.md.helpers.parseLinkTitle(e.src, c, e.posMax), c < g && b !== c && l.ok)
for (f = l.str, c = l.pos; c < g && (a = e.src.charCodeAt(c), !(!ho(a) && a !== 10)); c++);
}(c >= g || e.src.charCodeAt(c) !== 41) && (x = !0), c++
}
if (x) {
if (typeof e.env.references == "undefined") return !1;
if (c < g && e.src.charCodeAt(c) === 91 ? (b = c + 1, c = e.md.helpers.parseLinkLabel(e, c), c >= 0 ? o = e.src.slice(b, c++) : c = r + 1) : c = r + 1, o || (o = e.src.slice(i, r)), u = e.env.references[DK(o)], !u) return e.pos = h, !1;
m = u.href, f = u.title
}
return n || (e.pos = i, e.posMax = r, d = e.push("link_open", "a", 1), d.attrs = s = [
["href", m]
], f && s.push(["title", f]), e.linkLevel++, e.md.inline.tokenize(e), e.linkLevel--, d = e.push("link_close", "a", -1)), e.pos = c, e.posMax = g, !0
},
NK = oe.normalizeReference,
go = oe.isSpace,
MK = function(e, n) {
var s, a, o, r, i, c, l, u, d, m, f, h, g, b = "",
x = e.pos,
v = e.posMax;
if (e.src.charCodeAt(e.pos) !== 33 || e.src.charCodeAt(e.pos + 1) !== 91 || (c = e.pos + 2, i = e.md.helpers.parseLinkLabel(e, e.pos + 1, !1), i < 0)) return !1;
if (l = i + 1, l < v && e.src.charCodeAt(l) === 40) {
for (l++; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++);
if (l >= v) return !1;
for (g = l, d = e.md.helpers.parseLinkDestination(e.src, l, e.posMax), d.ok && (b = e.md.normalizeLink(d.str), e.md.validateLink(b) ? l = d.pos : b = ""), g = l; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++);
if (d = e.md.helpers.parseLinkTitle(e.src, l, e.posMax), l < v && g !== l && d.ok)
for (m = d.str, l = d.pos; l < v && (a = e.src.charCodeAt(l), !(!go(a) && a !== 10)); l++);
else m = "";
if (l >= v || e.src.charCodeAt(l) !== 41) return e.pos = x, !1;
l++
} else {
if (typeof e.env.references == "undefined") return !1;
if (l < v && e.src.charCodeAt(l) === 91 ? (g = l + 1, l = e.md.helpers.parseLinkLabel(e, l), l >= 0 ? r = e.src.slice(g, l++) : l = i + 1) : l = i + 1, r || (r = e.src.slice(c, i)), u = e.env.references[NK(r)], !u) return e.pos = x, !1;
b = u.href, m = u.title
}
return n || (o = e.src.slice(c, i), e.md.inline.parse(o, e.md, e.env, h = []), f = e.push("image", "img", 0), f.attrs = s = [
["src", b],
["alt", ""]
], f.children = h, f.content = o, m && s.push(["title", m])), e.pos = l, e.posMax = v, !0
},
OK = /^([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])?)*)$/,
LK = /^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/,
RK = function(e, n) {
var s, a, o, r, i, c, l = e.pos;
if (e.src.charCodeAt(l) !== 60) return !1;
for (i = e.pos, c = e.posMax;;) {
if (++l >= c || (r = e.src.charCodeAt(l), r === 60)) return !1;
if (r === 62) break
}
return s = e.src.slice(i + 1, l), LK.test(s) ? (a = e.md.normalizeLink(s), e.md.validateLink(a) ? (n || (o = e.push("link_open", "a", 1), o.attrs = [
["href", a]
], o.markup = "autolink", o.info = "auto", o = e.push("text", "", 0), o.content = e.md.normalizeLinkText(s), o = e.push("link_close", "a", -1), o.markup = "autolink", o.info = "auto"), e.pos += s.length + 2, !0) : !1) : OK.test(s) ? (a = e.md.normalizeLink("mailto:" + s), e.md.validateLink(a) ? (n || (o = e.push("link_open", "a", 1), o.attrs = [
["href", a]
], o.markup = "autolink", o.info = "auto", o = e.push("text", "", 0), o.content = e.md.normalizeLinkText(s), o = e.push("link_close", "a", -1), o.markup = "autolink", o.info = "auto"), e.pos += s.length + 2, !0) : !1) : !1
},
PK = za.HTML_TAG_RE;
function BK(t) {
return /^<a[>\s]/i.test(t)
}
function zK(t) {
return /^<\/a\s*>/i.test(t)
}
function qK(t) {
var e = t | 32;
return e >= 97 && e <= 122
}
var FK = function(e, n) {
var s, a, o, r, i = e.pos;
return !e.md.options.html || (o = e.posMax, e.src.charCodeAt(i) !== 60 || i + 2 >= o) || (s = e.src.charCodeAt(i + 1), s !== 33 && s !== 63 && s !== 47 && !qK(s)) || (a = e.src.slice(i).match(PK), !a) ? !1 : (n || (r = e.push("html_inline", "", 0), r.content = e.src.slice(i, i + a[0].length), BK(r.content) && e.linkLevel++, zK(r.content) && e.linkLevel--), e.pos += a[0].length, !0)
},
Fc = vp,
jK = oe.has,
$K = oe.isValidEntityCode,
jc = oe.fromCodePoint,
UK = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,
VK = /^&([a-z][a-z0-9]{1,31});/i,
HK = function(e, n) {
var s, a, o, r, i = e.pos,
c = e.posMax;
if (e.src.charCodeAt(i) !== 38 || i + 1 >= c) return !1;
if (s = e.src.charCodeAt(i + 1), s === 35) {
if (o = e.src.slice(i).match(UK), o) return n || (a = o[1][0].toLowerCase() === "x" ? parseInt(o[1].slice(1), 16) : parseInt(o[1], 10), r = e.push("text_special", "", 0), r.content = $K(a) ? jc(a) : jc(65533), r.markup = o[0], r.info = "entity"), e.pos += o[0].length, !0
} else if (o = e.src.slice(i).match(VK), o && jK(Fc, o[1])) return n || (r = e.push("text_special", "", 0), r.content = Fc[o[1]], r.markup = o[0], r.info = "entity"), e.pos += o[0].length, !0;
return !1
};
function $c(t, e) {
var n, s, a, o, r, i, c, l, u = {},
d = e.length;
if (d) {
var m = 0,
f = -2,
h = [];
for (n = 0; n < d; n++)
if (a = e[n], h.push(0), (e[m].marker !== a.marker || f !== a.token - 1) && (m = n), f = a.token, a.length = a.length || 0, !!a.close) {
for (u.hasOwnProperty(a.marker) || (u[a.marker] = [-1, -1, -1, -1, -1, -1]), r = u[a.marker][(a.open ? 3 : 0) + a.length % 3], s = m - h[m] - 1, i = s; s > r; s -= h[s] + 1)
if (o = e[s], o.marker === a.marker && o.open && o.end < 0 && (c = !1, (o.close || a.open) && (o.length + a.length) % 3 === 0 && (o.length % 3 !== 0 || a.length % 3 !== 0) && (c = !0), !c)) {
l = s > 0 && !e[s - 1].open ? h[s - 1] + 1 : 0, h[n] = n - s + l, h[s] = l, a.open = !1, o.end = n, o.close = !1, i = -1, f = -2;
break
}
i !== -1 && (u[a.marker][(a.open ? 3 : 0) + (a.length || 0) % 3] = i)
}
}
}
var GK = function(e) {
var n, s = e.tokens_meta,
a = e.tokens_meta.length;
for ($c(e, e.delimiters), n = 0; n < a; n++) s[n] && s[n].delimiters && $c(e, s[n].delimiters)
},
WK = function(e) {
var n, s, a = 0,
o = e.tokens,
r = e.tokens.length;
for (n = s = 0; n < r; n++) o[n].nesting < 0 && a--, o[n].level = a, o[n].nesting > 0 && a++, o[n].type === "text" && n + 1 < r && o[n + 1].type === "text" ? o[n + 1].content = o[n].content + o[n + 1].content : (n !== s && (o[s] = o[n]), s++);
n !== s && (o.length = s)
},
$r = qr,
Uc = oe.isWhiteSpace,
Vc = oe.isPunctChar,
Hc = oe.isMdAsciiPunct;
function xs(t, e, n, s) {
this.src = t, this.env = n, this.md = e, this.tokens = s, this.tokens_meta = Array(s.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
}
xs.prototype.pushPending = function() {
var t = new $r("text", "", 0);
return t.content = this.pending, t.level = this.pendingLevel, this.tokens.push(t), this.pending = "", t
};
xs.prototype.push = function(t, e, n) {
this.pending && this.pushPending();
var s = new $r(t, e, n),
a = null;
return n < 0 && (this.level--, this.delimiters = this._prev_delimiters.pop()), s.level = this.level, n > 0 && (this.level++, this._prev_delimiters.push(this.delimiters), this.delimiters = [], a = {
delimiters: this.delimiters
}), this.pendingLevel = this.level, this.tokens.push(s), this.tokens_meta.push(a), s
};
xs.prototype.scanDelims = function(t, e) {
var n = t,
s, a, o, r, i, c, l, u, d, m = !0,
f = !0,
h = this.posMax,
g = this.src.charCodeAt(t);
for (s = t > 0 ? this.src.charCodeAt(t - 1) : 32; n < h && this.src.charCodeAt(n) === g;) n++;
return o = n - t, a = n < h ? this.src.charCodeAt(n) : 32, l = Hc(s) || Vc(String.fromCharCode(s)), d = Hc(a) || Vc(String.fromCharCode(a)), c = Uc(s), u = Uc(a), u ? m = !1 : d && (c || l || (m = !1)), c ? f = !1 : l && (u || d || (f = !1)), e ? (r = m, i = f) : (r = m && (!f || l), i = f && (!m || d)), {
can_open: r,
can_close: i,
length: o
}
};
xs.prototype.Token = $r;
var JK = xs,
Gc = zr,
bo = [
["text", wK],
["linkify", _K],
["newline", EK],
["escape", SK],
["backticks", TK],
["strikethrough", ja.tokenize],
["emphasis", $a.tokenize],
["link", IK],
["image", MK],
["autolink", RK],
["html_inline", FK],
["entity", HK]
],
vo = [
["balance_pairs", GK],
["strikethrough", ja.postProcess],
["emphasis", $a.postProcess],
["fragments_join", WK]
];
function ys() {
var t;
for (this.ruler = new Gc, t = 0; t < bo.length; t++) this.ruler.push(bo[t][0], bo[t][1]);
for (this.ruler2 = new Gc, t = 0; t < vo.length; t++) this.ruler2.push(vo[t][0], vo[t][1])
}
ys.prototype.skipToken = function(t) {
var e, n, s = t.pos,
a = this.ruler.getRules(""),
o = a.length,
r = t.md.options.maxNesting,
i = t.cache;
if (typeof i[s] != "undefined") {
t.pos = i[s];
return
}
if (t.level < r)
for (n = 0; n < o && (t.level++, e = a[n](t, !0), t.level--, !e); n++);
else t.pos = t.posMax;
e || t.pos++, i[s] = t.pos
};
ys.prototype.tokenize = function(t) {
for (var e, n, s = this.ruler.getRules(""), a = s.length, o = t.posMax, r = t.md.options.maxNesting; t.pos < o;) {
if (t.level < r)
for (n = 0; n < a && (e = s[n](t, !1), !e); n++);
if (e) {
if (t.pos >= o) break;
continue
}
t.pending += t.src[t.pos++]
}
t.pending && t.pushPending()
};
ys.prototype.parse = function(t, e, n, s) {
var a, o, r, i = new this.State(t, e, n, s);
for (this.tokenize(i), o = this.ruler2.getRules(""), r = o.length, a = 0; a < r; a++) o[a](i)
};
ys.prototype.State = JK;
var YK = ys,
xo, Wc;
function KK() {
return Wc || (Wc = 1, xo = function(t) {
var e = {};
t = t || {}, e.src_Any = xp().source, e.src_Cc = yp().source, e.src_Z = wp().source, e.src_P = Br.source, e.src_ZPCc = [e.src_Z, e.src_P, e.src_Cc].join("|"), e.src_ZCc = [e.src_Z, e.src_Cc].join("|");
var n = "[><๏ฝœ]";
return e.src_pseudo_letter = "(?:(?!" + n + "|" + 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 = "(?=$|" + n + "|" + e.src_ZPCc + ")(?!" + (t["---"] ? "-(?!--)|" : "-|") + "_|:\\d|\\.-|\\.(?!$|" + e.src_ZPCc + "))", e.src_path = "(?:[/?#](?:(?!" + e.src_ZCc + "|" + n + `|[()[\\]{}.,"'?!\\-;]).|\\[(?:(?!` + 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 + "|[.]|$)|" + (t["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") + ",(?!" + 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 = "(^|" + n + '|"|\\(|' + 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
}), xo
}
function Ko(t) {
var e = Array.prototype.slice.call(arguments, 1);
return e.forEach(function(n) {
n && Object.keys(n).forEach(function(s) {
t[s] = n[s]
})
}), t
}
function Ua(t) {
return Object.prototype.toString.call(t)
}
function XK(t) {
return Ua(t) === "[object String]"
}
function ZK(t) {
return Ua(t) === "[object Object]"
}
function QK(t) {
return Ua(t) === "[object RegExp]"
}
function Jc(t) {
return Ua(t) === "[object Function]"
}
function eX(t) {
return t.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&")
}
var Tp = {
fuzzyLink: !0,
fuzzyEmail: !0,
fuzzyIP: !1
};
function tX(t) {
return Object.keys(t || {}).reduce(function(e, n) {
return e || Tp.hasOwnProperty(n)
}, !1)
}
var nX = {
"http:": {
validate: function(t, e, n) {
var s = t.slice(e);
return n.re.http || (n.re.http = new RegExp("^\\/\\/" + n.re.src_auth + n.re.src_host_port_strict + n.re.src_path, "i")), n.re.http.test(s) ? s.match(n.re.http)[0].length : 0
}
},
"https:": "http:",
"ftp:": "http:",
"//": {
validate: function(t, e, n) {
var s = t.slice(e);
return n.re.no_http || (n.re.no_http = new RegExp("^" + n.re.src_auth + "(?:localhost|(?:(?:" + n.re.src_domain + ")\\.)+" + n.re.src_domain_root + ")" + n.re.src_port + n.re.src_host_terminator + n.re.src_path, "i")), n.re.no_http.test(s) ? e >= 3 && t[e - 3] === ":" || e >= 3 && t[e - 3] === "/" ? 0 : s.match(n.re.no_http)[0].length : 0
}
},
"mailto:": {
validate: function(t, e, n) {
var s = t.slice(e);
return n.re.mailto || (n.re.mailto = new RegExp("^" + n.re.src_email_name + "@" + n.re.src_host_strict, "i")), n.re.mailto.test(s) ? s.match(n.re.mailto)[0].length : 0
}
}
},
sX = "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]",
aX = "biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|ั€ั„".split("|");
function oX(t) {
t.__index__ = -1, t.__text_cache__ = ""
}
function rX(t) {
return function(e, n) {
var s = e.slice(n);
return t.test(s) ? s.match(t)[0].length : 0
}
}
function Yc() {
return function(t, e) {
e.normalize(t)
}
}
function pa(t) {
var e = t.re = KK()(t.__opts__),
n = t.__tlds__.slice();
t.onCompile(), t.__tlds_replaced__ || n.push(sX), n.push(e.src_xn), e.src_tlds = n.join("|");
function s(i) {
return i.replace("%TLDS%", e.src_tlds)
}
e.email_fuzzy = RegExp(s(e.tpl_email_fuzzy), "i"), e.link_fuzzy = RegExp(s(e.tpl_link_fuzzy), "i"), e.link_no_ip_fuzzy = RegExp(s(e.tpl_link_no_ip_fuzzy), "i"), e.host_fuzzy_test = RegExp(s(e.tpl_host_fuzzy_test), "i");
var a = [];
t.__compiled__ = {};
function o(i, c) {
throw new Error('(LinkifyIt) Invalid schema "' + i + '": ' + c)
}
Object.keys(t.__schemas__).forEach(function(i) {
var c = t.__schemas__[i];
if (c !== null) {
var l = {
validate: null,
link: null
};
if (t.__compiled__[i] = l, ZK(c)) {
QK(c.validate) ? l.validate = rX(c.validate) : Jc(c.validate) ? l.validate = c.validate : o(i, c), Jc(c.normalize) ? l.normalize = c.normalize : c.normalize ? o(i, c) : l.normalize = Yc();
return
}
if (XK(c)) {
a.push(i);
return
}
o(i, c)
}
}), a.forEach(function(i) {
t.__compiled__[t.__schemas__[i]] && (t.__compiled__[i].validate = t.__compiled__[t.__schemas__[i]].validate, t.__compiled__[i].normalize = t.__compiled__[t.__schemas__[i]].normalize)
}), t.__compiled__[""] = {
validate: null,
normalize: Yc()
};
var r = Object.keys(t.__compiled__).filter(function(i) {
return i.length > 0 && t.__compiled__[i]
}).map(eX).join("|");
t.re.schema_test = RegExp("(^|(?!_)(?:[><๏ฝœ]|" + e.src_ZPCc + "))(" + r + ")", "i"), t.re.schema_search = RegExp("(^|(?!_)(?:[><๏ฝœ]|" + e.src_ZPCc + "))(" + r + ")", "ig"), t.re.schema_at_start = RegExp("^" + t.re.schema_search.source, "i"), t.re.pretest = RegExp("(" + t.re.schema_test.source + ")|(" + t.re.host_fuzzy_test.source + ")|@", "i"), oX(t)
}
function iX(t, e) {
var n = t.__index__,
s = t.__last_index__,
a = t.__text_cache__.slice(n, s);
this.schema = t.__schema__.toLowerCase(), this.index = n + e, this.lastIndex = s + e, this.raw = a, this.text = a, this.url = a
}
function Xo(t, e) {
var n = new iX(t, e);
return t.__compiled__[n.schema].normalize(n, t), n
}
function Ke(t, e) {
if (!(this instanceof Ke)) return new Ke(t, e);
e || tX(t) && (e = t, t = {}), this.__opts__ = Ko({}, Tp, e), this.__index__ = -1, this.__last_index__ = -1, this.__schema__ = "", this.__text_cache__ = "", this.__schemas__ = Ko({}, nX, t), this.__compiled__ = {}, this.__tlds__ = aX, this.__tlds_replaced__ = !1, this.re = {}, pa(this)
}
Ke.prototype.add = function(e, n) {
return this.__schemas__[e] = n, pa(this), this
};
Ke.prototype.set = function(e) {
return this.__opts__ = Ko(this.__opts__, e), this
};
Ke.prototype.test = function(e) {
if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return !1;
var n, s, a, o, r, i, c, l, u;
if (this.re.schema_test.test(e)) {
for (c = this.re.schema_search, c.lastIndex = 0;
(n = c.exec(e)) !== null;)
if (o = this.testSchemaAt(e, n[2], c.lastIndex), o) {
this.__schema__ = n[2], this.__index__ = n.index + n[1].length, this.__last_index__ = n.index + n[0].length + o;
break
}
}
return this.__opts__.fuzzyLink && this.__compiled__["http:"] && (l = e.search(this.re.host_fuzzy_test), l >= 0 && (this.__index__ < 0 || l < this.__index__) && (s = e.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null && (r = s.index + s[1].length, (this.__index__ < 0 || r < this.__index__) && (this.__schema__ = "", this.__index__ = r, this.__last_index__ = s.index + s[0].length))), this.__opts__.fuzzyEmail && this.__compiled__["mailto:"] && (u = e.indexOf("@"), u >= 0 && (a = e.match(this.re.email_fuzzy)) !== null && (r = a.index + a[1].length, i = a.index + a[0].length, (this.__index__ < 0 || r < this.__index__ || r === this.__index__ && i > this.__last_index__) && (this.__schema__ = "mailto:", this.__index__ = r, this.__last_index__ = i))), this.__index__ >= 0
};
Ke.prototype.pretest = function(e) {
return this.re.pretest.test(e)
};
Ke.prototype.testSchemaAt = function(e, n, s) {
return this.__compiled__[n.toLowerCase()] ? this.__compiled__[n.toLowerCase()].validate(e, s, this) : 0
};
Ke.prototype.match = function(e) {
var n = 0,
s = [];
this.__index__ >= 0 && this.__text_cache__ === e && (s.push(Xo(this, n)), n = this.__last_index__);
for (var a = n ? e.slice(n) : e; this.test(a);) s.push(Xo(this, n)), a = a.slice(this.__last_index__), n += this.__last_index__;
return s.length ? s : null
};
Ke.prototype.matchAtStart = function(e) {
if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return null;
var n = this.re.schema_at_start.exec(e);
if (!n) return null;
var s = this.testSchemaAt(e, n[2], n[0].length);
return s ? (this.__schema__ = n[2], this.__index__ = n.index + n[1].length, this.__last_index__ = n.index + n[0].length + s, Xo(this, 0)) : null
};
Ke.prototype.tlds = function(e, n) {
return e = Array.isArray(e) ? e : [e], n ? (this.__tlds__ = this.__tlds__.concat(e).sort().filter(function(s, a, o) {
return s !== o[a - 1]
}).reverse(), pa(this), this) : (this.__tlds__ = e.slice(), this.__tlds_replaced__ = !0, pa(this), this)
};
Ke.prototype.normalize = function(e) {
e.schema || (e.url = "http://" + e.url), e.schema === "mailto:" && !/^mailto:/i.test(e.url) && (e.url = "mailto:" + e.url)
};
Ke.prototype.onCompile = function() {};
var cX = Ke;
const yn = 2147483647,
vt = 36,
Ur = 1,
us = 26,
lX = 38,
uX = 700,
Dp = 72,
Ip = 128,
Np = "-",
pX = /^xn--/,
dX = /[^\0-\x7F]/,
mX = /[\x2E\u3002\uFF0E\uFF61]/g,
fX = {
overflow: "Overflow: input needs wider integers to process",
"not-basic": "Illegal input >= 0x80 (not a basic code point)",
"invalid-input": "Invalid input"
},
yo = vt - Ur,
xt = Math.floor,
wo = String.fromCharCode;
function zt(t) {
throw new RangeError(fX[t])
}
function hX(t, e) {
const n = [];
let s = t.length;
for (; s--;) n[s] = e(t[s]);
return n
}
function Mp(t, e) {
const n = t.split("@");
let s = "";
n.length > 1 && (s = n[0] + "@", t = n[1]), t = t.replace(mX, ".");
const a = t.split("."),
o = hX(a, e).join(".");
return s + o
}
function Vr(t) {
const e = [];
let n = 0;
const s = t.length;
for (; n < s;) {
const a = t.charCodeAt(n++);
if (a >= 55296 && a <= 56319 && n < s) {
const o = t.charCodeAt(n++);
(o & 64512) == 56320 ? e.push(((a & 1023) << 10) + (o & 1023) + 65536) : (e.push(a), n--)
} else e.push(a)
}
return e
}
const Op = t => String.fromCodePoint(...t),
gX = function(t) {
return t >= 48 && t < 58 ? 26 + (t - 48) : t >= 65 && t < 91 ? t - 65 : t >= 97 && t < 123 ? t - 97 : vt
},
Kc = function(t, e) {
return t + 22 + 75 * (t < 26) - ((e != 0) << 5)
},
Lp = function(t, e, n) {
let s = 0;
for (t = n ? xt(t / uX) : t >> 1, t += xt(t / e); t > yo * us >> 1; s += vt) t = xt(t / yo);
return xt(s + (yo + 1) * t / (t + lX))
},
Hr = function(t) {
const e = [],
n = t.length;
let s = 0,
a = Ip,
o = Dp,
r = t.lastIndexOf(Np);
r < 0 && (r = 0);
for (let i = 0; i < r; ++i) t.charCodeAt(i) >= 128 && zt("not-basic"), e.push(t.charCodeAt(i));
for (let i = r > 0 ? r + 1 : 0; i < n;) {
const c = s;
for (let u = 1, d = vt;; d += vt) {
i >= n && zt("invalid-input");
const m = gX(t.charCodeAt(i++));
m >= vt && zt("invalid-input"), m > xt((yn - s) / u) && zt("overflow"), s += m * u;
const f = d <= o ? Ur : d >= o + us ? us : d - o;
if (m < f) break;
const h = vt - f;
u > xt(yn / h) && zt("overflow"), u *= h
}
const l = e.length + 1;
o = Lp(s - c, l, c == 0), xt(s / l) > yn - a && zt("overflow"), a += xt(s / l), s %= l, e.splice(s++, 0, a)
}
return String.fromCodePoint(...e)
},
Gr = function(t) {
const e = [];
t = Vr(t);
const n = t.length;
let s = Ip,
a = 0,
o = Dp;
for (const c of t) c < 128 && e.push(wo(c));
const r = e.length;
let i = r;
for (r && e.push(Np); i < n;) {
let c = yn;
for (const u of t) u >= s && u < c && (c = u);
const l = i + 1;
c - s > xt((yn - a) / l) && zt("overflow"), a += (c - s) * l, s = c;
for (const u of t)
if (u < s && ++a > yn && zt("overflow"), u === s) {
let d = a;
for (let m = vt;; m += vt) {
const f = m <= o ? Ur : m >= o + us ? us : m - o;
if (d < f) break;
const h = d - f,
g = vt - f;
e.push(wo(Kc(f + h % g, 0))), d = xt(h / g)
}
e.push(wo(Kc(d, 0))), o = Lp(a, l, i === r), a = 0, ++i
}++a, ++s
}
return e.join("")
},
Rp = function(t) {
return Mp(t, function(e) {
return pX.test(e) ? Hr(e.slice(4).toLowerCase()) : e
})
},
Pp = function(t) {
return Mp(t, function(e) {
return dX.test(e) ? "xn--" + Gr(e) : e
})
},
bX = {
version: "2.3.1",
ucs2: {
decode: Vr,
encode: Op
},
decode: Hr,
encode: Gr,
toASCII: Pp,
toUnicode: Rp
},
vX = Object.freeze(Object.defineProperty({
__proto__: null,
decode: Hr,
default: bX,
encode: Gr,
toASCII: Pp,
toUnicode: Rp,
ucs2decode: Vr,
ucs2encode: Op
}, Symbol.toStringTag, {
value: "Module"
})),
xX = Cf(vX);
var yX = {
options: {
html: !1,
xhtmlOut: !1,
breaks: !1,
langPrefix: "language-",
linkify: !1,
typographer: !1,
quotes: "โ€œโ€โ€˜โ€™",
highlight: null,
maxNesting: 100
},
components: {
core: {},
block: {},
inline: {}
}
},
wX = {
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"]
}
}
},
kX = {
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"]
}
}
},
ts = oe,
_X = Ba,
CX = bY,
EX = jY,
AX = xK,
SX = YK,
TX = cX,
Yt = Ln,
Bp = xX,
DX = {
default: yX,
zero: wX,
commonmark: kX
},
IX = /^(vbscript|javascript|file|data):/,
NX = /^data:image\/(gif|png|jpeg|webp);/;
function MX(t) {
var e = t.trim().toLowerCase();
return IX.test(e) ? !!NX.test(e) : !0
}
var zp = ["http:", "https:", "mailto:"];
function OX(t) {
var e = Yt.parse(t, !0);
if (e.hostname && (!e.protocol || zp.indexOf(e.protocol) >= 0)) try {
e.hostname = Bp.toASCII(e.hostname)
} catch (n) {}
return Yt.encode(Yt.format(e))
}
function LX(t) {
var e = Yt.parse(t, !0);
if (e.hostname && (!e.protocol || zp.indexOf(e.protocol) >= 0)) try {
e.hostname = Bp.toUnicode(e.hostname)
} catch (n) {}
return Yt.decode(Yt.format(e), Yt.decode.defaultChars + "%")
}
function et(t, e) {
if (!(this instanceof et)) return new et(t, e);
e || ts.isString(t) || (e = t || {}, t = "default"), this.inline = new SX, this.block = new AX, this.core = new EX, this.renderer = new CX, this.linkify = new TX, this.validateLink = MX, this.normalizeLink = OX, this.normalizeLinkText = LX, this.utils = ts, this.helpers = ts.assign({}, _X), this.options = {}, this.configure(t), e && this.set(e)
}
et.prototype.set = function(t) {
return ts.assign(this.options, t), this
};
et.prototype.configure = function(t) {
var e = this,
n;
if (ts.isString(t) && (n = t, t = DX[n], !t)) throw new Error('Wrong `markdown-it` preset "' + n + '", check name');
if (!t) throw new Error("Wrong `markdown-it` preset, can't be empty");
return t.options && e.set(t.options), t.components && Object.keys(t.components).forEach(function(s) {
t.components[s].rules && e[s].ruler.enableOnly(t.components[s].rules), t.components[s].rules2 && e[s].ruler2.enableOnly(t.components[s].rules2)
}), this
};
et.prototype.enable = function(t, e) {
var n = [];
Array.isArray(t) || (t = [t]), ["core", "block", "inline"].forEach(function(a) {
n = n.concat(this[a].ruler.enable(t, !0))
}, this), n = n.concat(this.inline.ruler2.enable(t, !0));
var s = t.filter(function(a) {
return n.indexOf(a) < 0
});
if (s.length && !e) throw new Error("MarkdownIt. Failed to enable unknown rule(s): " + s);
return this
};
et.prototype.disable = function(t, e) {
var n = [];
Array.isArray(t) || (t = [t]), ["core", "block", "inline"].forEach(function(a) {
n = n.concat(this[a].ruler.disable(t, !0))
}, this), n = n.concat(this.inline.ruler2.disable(t, !0));
var s = t.filter(function(a) {
return n.indexOf(a) < 0
});
if (s.length && !e) throw new Error("MarkdownIt. Failed to disable unknown rule(s): " + s);
return this
};
et.prototype.use = function(t) {
var e = [this].concat(Array.prototype.slice.call(arguments, 1));
return t.apply(t, e), this
};
et.prototype.parse = function(t, e) {
if (typeof t != "string") throw new Error("Input data should be a String");
var n = new this.core.State(t, this, e);
return this.core.process(n), n.tokens
};
et.prototype.render = function(t, e) {
return e = e || {}, this.renderer.render(this.parse(t, e), this.options, e)
};
et.prototype.parseInline = function(t, e) {
var n = new this.core.State(t, this, e);
return n.inlineMode = !0, this.core.process(n), n.tokens
};
et.prototype.renderInline = function(t, e) {
return e = e || {}, this.renderer.render(this.parseInline(t, e), this.options, e)
};
var RX = et,
PX = RX;
const BX = lr(PX),
Wr = new gr({
nodes: {
doc: {
content: "block+"
},
paragraph: {
content: "inline*",
group: "block",
parseDOM: [{
tag: "p"
}],
toDOM() {
return ["p", 0]
}
},
blockquote: {
content: "block+",
group: "block",
parseDOM: [{
tag: "blockquote"
}],
toDOM() {
return ["blockquote", 0]
}
},
horizontal_rule: {
group: "block",
parseDOM: [{
tag: "hr"
}],
toDOM() {
return ["div", ["hr"]]
}
},
heading: {
attrs: {
level: {
default: 1
}
},
content: "(text | image)*",
group: "block",
defining: !0,
parseDOM: [{
tag: "h1",
attrs: {
level: 1
}
}, {
tag: "h2",
attrs: {
level: 2
}
}, {
tag: "h3",
attrs: {
level: 3
}
}, {
tag: "h4",
attrs: {
level: 4
}
}, {
tag: "h5",
attrs: {
level: 5
}
}, {
tag: "h6",
attrs: {
level: 6
}
}],
toDOM(t) {
return ["h" + t.attrs.level, 0]
}
},
code_block: {
content: "text*",
group: "block",
code: !0,
defining: !0,
marks: "",
attrs: {
params: {
default: ""
}
},
parseDOM: [{
tag: "pre",
preserveWhitespace: "full",
getAttrs: t => ({
params: t.getAttribute("data-params") || ""
})
}],
toDOM(t) {
return ["pre", t.attrs.params ? {
"data-params": t.attrs.params
} : {},
["code", 0]
]
}
},
ordered_list: {
content: "list_item+",
group: "block",
attrs: {
order: {
default: 1
},
tight: {
default: !1
}
},
parseDOM: [{
tag: "ol",
getAttrs(t) {
return {
order: t.hasAttribute("start") ? +t.getAttribute("start") : 1,
tight: t.hasAttribute("data-tight")
}
}
}],
toDOM(t) {
return ["ol", {
start: t.attrs.order == 1 ? null : t.attrs.order,
"data-tight": t.attrs.tight ? "true" : null
}, 0]
}
},
bullet_list: {
content: "list_item+",
group: "block",
attrs: {
tight: {
default: !1
}
},
parseDOM: [{
tag: "ul",
getAttrs: t => ({
tight: t.hasAttribute("data-tight")
})
}],
toDOM(t) {
return ["ul", {
"data-tight": t.attrs.tight ? "true" : null
}, 0]
}
},
list_item: {
content: "paragraph block*",
defining: !0,
parseDOM: [{
tag: "li"
}],
toDOM() {
return ["li", 0]
}
},
text: {
group: "inline"
},
image: {
inline: !0,
attrs: {
src: {},
alt: {
default: null
},
title: {
default: null
}
},
group: "inline",
draggable: !0,
parseDOM: [{
tag: "img[src]",
getAttrs(t) {
return {
src: t.getAttribute("src"),
title: t.getAttribute("title"),
alt: t.getAttribute("alt")
}
}
}],
toDOM(t) {
return ["img", t.attrs]
}
},
hard_break: {
inline: !0,
group: "inline",
selectable: !1,
parseDOM: [{
tag: "br"
}],
toDOM() {
return ["br"]
}
}
},
marks: {
em: {
parseDOM: [{
tag: "i"
}, {
tag: "em"
}, {
style: "font-style",
getAttrs: t => t == "italic" && null
}],
toDOM() {
return ["em"]
}
},
strong: {
parseDOM: [{
tag: "b"
}, {
tag: "strong"
}, {
style: "font-weight",
getAttrs: t => /^(bold(er)?|[5-9]\d{2,})$/.test(t) && null
}],
toDOM() {
return ["strong"]
}
},
link: {
attrs: {
href: {},
title: {
default: null
}
},
inclusive: !1,
parseDOM: [{
tag: "a[href]",
getAttrs(t) {
return {
href: t.getAttribute("href"),
title: t.getAttribute("title")
}
}
}],
toDOM(t) {
return ["a", t.attrs]
}
},
code: {
parseDOM: [{
tag: "code"
}],
toDOM() {
return ["code"]
}
}
}
});
function zX(t, e) {
if (t.isText && e.isText && qo.sameSet(t.marks, e.marks)) return t.withText(t.text + e.text)
}
class qX {
constructor(e, n) {
this.schema = e, this.tokenHandlers = n, this.stack = [{
type: e.topNodeType,
attrs: null,
content: [],
marks: qo.none
}]
}
top() {
return this.stack[this.stack.length - 1]
}
push(e) {
this.stack.length && this.top().content.push(e)
}
addText(e) {
if (!e) return;
let n = this.top(),
s = n.content,
a = s[s.length - 1],
o = this.schema.text(e, n.marks),
r;
a && (r = zX(a, o)) ? s[s.length - 1] = r : s.push(o)
}
openMark(e) {
let n = this.top();
n.marks = e.addToSet(n.marks)
}
closeMark(e) {
let n = this.top();
n.marks = e.removeFromSet(n.marks)
}
parseTokens(e) {
for (let n = 0; n < e.length; n++) {
let s = e[n],
a = this.tokenHandlers[s.type];
if (!a) throw new Error("Token type `" + s.type + "` not supported by Markdown parser");
a(this, s, e, n)
}
}
addNode(e, n, s) {
let a = this.top(),
o = e.createAndFill(n, s, a ? a.marks : []);
return o ? (this.push(o), o) : null
}
openNode(e, n) {
this.stack.push({
type: e,
attrs: n,
content: [],
marks: qo.none
})
}
closeNode() {
let e = this.stack.pop();
return this.addNode(e.type, e.attrs, e.content)
}
}
function Vn(t, e, n, s) {
return t.getAttrs ? t.getAttrs(e, n, s) : t.attrs instanceof Function ? t.attrs(e) : t.attrs
}
function ko(t, e) {
return t.noCloseToken || e == "code_inline" || e == "code_block" || e == "fence"
}
function Xc(t) {
return t[t.length - 1] == `
` ? t.slice(0, t.length - 1) : t
}
function _o() {}
function FX(t, e) {
let n = Object.create(null);
for (let s in e) {
let a = e[s];
if (a.block) {
let o = t.nodeType(a.block);
ko(a, s) ? n[s] = (r, i, c, l) => {
r.openNode(o, Vn(a, i, c, l)), r.addText(Xc(i.content)), r.closeNode()
} : (n[s + "_open"] = (r, i, c, l) => r.openNode(o, Vn(a, i, c, l)), n[s + "_close"] = r => r.closeNode())
} else if (a.node) {
let o = t.nodeType(a.node);
n[s] = (r, i, c, l) => r.addNode(o, Vn(a, i, c, l))
} else if (a.mark) {
let o = t.marks[a.mark];
ko(a, s) ? n[s] = (r, i, c, l) => {
r.openMark(o.create(Vn(a, i, c, l))), r.addText(Xc(i.content)), r.closeMark(o)
} : (n[s + "_open"] = (r, i, c, l) => r.openMark(o.create(Vn(a, i, c, l))), n[s + "_close"] = r => r.closeMark(o))
} else if (a.ignore) ko(a, s) ? n[s] = _o : (n[s + "_open"] = _o, n[s + "_close"] = _o);
else throw new RangeError("Unrecognized parsing spec " + JSON.stringify(a))
}
return n.text = (s, a) => s.addText(a.content), n.inline = (s, a) => s.parseTokens(a.children), n.softbreak = n.softbreak || (s => s.addText(`
`)), n
}
class jX {
constructor(e, n, s) {
this.schema = e, this.tokenizer = n, this.tokens = s, this.tokenHandlers = FX(e, s)
}
parse(e, n = {}) {
let s = new qX(this.schema, this.tokenHandlers),
a;
s.parseTokens(this.tokenizer.parse(e, n));
do a = s.closeNode(); while (s.stack.length);
return a || this.schema.topNodeType.createAndFill()
}
}
function Zc(t, e) {
for (; ++e < t.length;)
if (t[e].type != "list_item_open") return t[e].hidden;
return !1
}
const $X = new jX(Wr, BX("commonmark", {
html: !1
}), {
blockquote: {
block: "blockquote"
},
paragraph: {
block: "paragraph"
},
list_item: {
block: "list_item"
},
bullet_list: {
block: "bullet_list",
getAttrs: (t, e, n) => ({
tight: Zc(e, n)
})
},
ordered_list: {
block: "ordered_list",
getAttrs: (t, e, n) => ({
order: +t.attrGet("start") || 1,
tight: Zc(e, n)
})
},
heading: {
block: "heading",
getAttrs: t => ({
level: +t.tag.slice(1)
})
},
code_block: {
block: "code_block",
noCloseToken: !0
},
fence: {
block: "code_block",
getAttrs: t => ({
params: t.info || ""
}),
noCloseToken: !0
},
hr: {
node: "horizontal_rule"
},
image: {
node: "image",
getAttrs: t => ({
src: t.attrGet("src"),
title: t.attrGet("title") || null,
alt: t.children[0] && t.children[0].content || null
})
},
hardbreak: {
node: "hard_break"
},
em: {
mark: "em"
},
strong: {
mark: "strong"
},
link: {
mark: "link",
getAttrs: t => ({
href: t.attrGet("href"),
title: t.attrGet("title") || null
})
},
code_inline: {
mark: "code",
noCloseToken: !0
}
}),
qp = ({
node: t
}) => {
const e = t.attrs,
{
iTemplate: n
} = ue();
return p(wt, {
className: "directMessage",
"data-drag-handle": ""
}, p(bu, null, p(Y, {
alignItems: "center",
justifyContent: "center",
flex: "grow",
style: {
marginBottom: "20px"
}
}, p(ta, {
priority: "primary",
leading: p(Rg, {
size: 20
})
}, n `Message ${e.userName}`))))
},
Fp = ({
attrs: t
}) => {
const e = {};
for (const [n, s] of Object.entries(t)) e[n] = na(s, ["default"]);
return e
},
UX = "_blockContainer_19kps_1",
VX = "_blockTitleContainer_19kps_13",
HX = "_blockTitle_19kps_13",
GX = "_blockSubTitle_19kps_34",
WX = "_inlineContainer_19kps_48",
JX = "_inlineText_19kps_58",
gn = {
blockContainer: UX,
blockTitleContainer: VX,
blockTitle: HX,
blockSubTitle: GX,
inlineContainer: WX,
inlineText: JX
};
function Oe({
msg: t,
node: e,
err: n,
group: s
}) {
se(ae.EDITOR_NODE_RENDER_FAILED, {
nodeType: e.type.name,
nodeAttrs: e.attrs,
errMsg: n == null ? void 0 : n.message
});
const a = t != null ? t : "Something went wrong";
return s === "block" ? YX({
msg: a
}) : KX({
msg: a
})
}
function jp({
size: t
}) {
const e = "http://www.w3.org/2000/svg",
n = document.createElementNS(e, "svg");
n.setAttribute("width", `${t}`), n.setAttribute("height", `${t}`), n.setAttribute("viewBox", "0 0 24 24"), n.setAttribute("fill", "none"), n.setAttribute("stroke", "#363737"), n.setAttribute("stroke-width", "2"), n.setAttribute("stroke-linecap", "round"), n.setAttribute("stroke-linejoin", "round");
const s = document.createElementNS(e, "circle");
s.setAttribute("d", "M12 8V12M12 16H12.01M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z"), s.setAttribute("cx", "12"), s.setAttribute("cy", "12"), s.setAttribute("r", "10");
const a = document.createElementNS(e, "line");
a.setAttribute("x1", "12"), a.setAttribute("x2", "12"), a.setAttribute("y1", "8"), a.setAttribute("y2", "12");
const o = document.createElementNS(e, "line");
return o.setAttribute("x1", "12"), o.setAttribute("x2", "12.01"), o.setAttribute("y1", "16"), o.setAttribute("y2", "16"), n.appendChild(s), n.appendChild(a), n.appendChild(o), n
}
function YX({
msg: t
}) {
const e = document.createElement("div");
e.className = gn.blockContainer;
const n = document.createElement("div");
n.textContent = t, n.className = gn.blockTitle;
const s = document.createElement("div");
s.textContent = "Try refreshing the page or try again later.", s.className = gn.blockSubTitle;
const a = document.createElement("div");
return a.className = gn.blockTitleContainer, a.appendChild(n), a.appendChild(s), e.appendChild(jp({
size: 24
})), e.appendChild(a), e
}
function KX({
msg: t
}) {
const e = document.createElement("span");
e.className = gn.inlineContainer;
const n = document.createElement("span");
return n.className = gn.inlineText, n.textContent = t, e.appendChild(jp({
size: 10
})), e.appendChild(n), e
}
var XX = ig;
function ZX(t, e) {
for (var n = t.length; n-- && XX(e, t[n], 0) > -1;);
return n
}
var QX = ZX,
eZ = Ef,
tZ = Af,
nZ = QX,
Qc = Sf,
sZ = Tf,
aZ = cg;
function oZ(t, e, n) {
if (t = sZ(t), t && (n || e === void 0)) return t.slice(0, aZ(t) + 1);
if (!t || !(e = eZ(e))) return t;
var s = Qc(t),
a = nZ(s, Qc(e)) + 1;
return tZ(s, 0, a).join("")
}
var rZ = oZ;
const iZ = lr(rZ),
$p = [
["list_item", "listItem"],
["bullet_list", "bulletList"],
["ordered_list", "orderedList"],
["hard_break", "hardBreak"],
["horizontal_rule", "horizontalRule"],
["code_block", "codeBlock"]
],
Up = [
["em", "italic"],
["strong", "bold"],
["strikethrough", "strike"]
],
el = {
image2: 1,
image: 0,
horizontal_rule: 0,
youtube: 0,
youtube2: 0,
vimeo: 0,
opensea: 0,
twitter: 0,
twitter2: 0,
spotify: 0,
spotify2: 0,
soundcloud: 0,
bandcamp: 0,
kindle: 0,
tiktok: 0,
prediction_market: 0,
lichess: 0,
datawrapper: 0,
recipe: 0
},
cZ = 100,
lZ = (t, {
maxLength: e = 356,
getAfterCutoff: n = !1,
withEllipsis: s = !1
} = {}) => {
let a = "",
o = !1;
const r = {},
i = Zp(t);
let c = !1;
const l = Tn(t, u => {
var f;
if (o) return n;
if (u.type === "paywall") return o = !0, !1;
if (i) return !0;
const d = (f = u.type) != null ? f : "undefined";
if (r[d] = (r[d] || 0) + 1, u.type && u.type in el && r[d] > el[u.type]) return o = !0, n;
const m = e - a.length;
if (m <= 0 && !i) return n;
if (m > 0) {
if (n) {
if (u.type === "text" && u.text)
if (a += u.text, e - a.length <= 0) u.text = u.text.substring(u.text.length + e - a.length - 1, u.text.length);
else return !1
} else if (u.type === "text" && u.text) {
a += u.text;
const h = u.text;
u.text = it(h, m), c = h !== u.text
}
} else return n;
return !0
});
if (l && s && !c) {
const u = uZ(l);
let d = null,
m = null;
for (let g = u.length - 1; g >= 0 && !(d && m); g--) {
const b = u[g];
d === null && b.type === "text" && (d = g), m === null && b.type !== "text" && b.type !== "paragraph" && (m = g)
}
const f = d !== null ? u[d] : null,
h = f && m !== null && d !== null && m > d;
f && !h && (f.text = hZ(f.text))
}
return l
};
function Tn(t, e) {
if (!t || (Vo(t) || Hi(t)) && !e(t)) return null;
if (Vo(t) && t.content && t.content.length > 0) {
const n = e;
if (t.content = t.content.filter(s => Tn(s, n)), t.content.length === 0) return null
} else if (Hi(t)) {
const n = mt({
fragment: t.content
}),
s = e;
if (n.length > 0) {
const a = n.filter(o => Tn(o, s));
if (a.length === 0) return null;
lg({
fragment: t.content,
content: a
})
}
}
return t
}
function uZ(t) {
var s;
const e = [],
n = [t];
for (; n.length;) {
const a = n.pop();
if (!a) break;
if (a.content && ((s = a.content) == null ? void 0 : s.length) > 0)
for (let o = a.content.length - 1; o >= 0; o--) n.push(a.content[o]);
else e.push(a)
}
return e
}
const Vp = (t, e) => {
let n = [];
if (t && (e(t) && n.push(t), t.content))
for (const s of t.content) n = n.concat(Vp(s, e));
return n
},
Bn = (t, e) => {
if (t) {
if (e(t)) return t;
if (t.content)
for (const n of t.content) {
const s = Bn(n, e);
if (s) return s
}
}
return null
},
pZ = t => {
const e = [];
return t.nodesBetween(0, t.content.size, n => {
var s;
((s = n.type) == null ? void 0 : s.name) === "cashtag" && e.push(n.attrs.symbol)
}, 0), e
},
dZ = new Set(["caption", "footnote", "captionedImage", "image", "image2"]),
mZ = new Set(["bullet_list", "bulletList", "ordered_list", "orderedList", "blockquote"]),
Zo = "x_li_start_placeholder_x",
tl = (t, e) => {
var n, s, a, o;
if (((n = t.type) == null ? void 0 : n.name) === "list_item" || ((s = t.type) == null ? void 0 : s.name) === "listItem") return {
open: Zo,
close: ""
};
if (((a = t.type) == null ? void 0 : a.name) === "paragraph" || t.isBlock && t.textContent.length > 0 && !mZ.has((o = t.type) == null ? void 0 : o.name)) {
let r = "<p>";
return (e.length > 0 ? e[e.length - 1] : null) === Zo && (e.pop(), r += "* "), {
open: r,
close: "</p>"
}
}
return null
},
Hp = ({
node: t,
recursiveDepth: e,
tokens: n
}) => {
var a, o;
if (e > cZ) return console.warn("Reached max recursive depth while converting document to HTML for podcast"), !1;
let s = !0;
if (dZ.has((a = t.type) == null ? void 0 : a.name)) s = !1;
else if (t.isText) {
if (t.text && t.text.length > 0) {
const r = t.marks.filter(u => u.type.name === "link" && u.attrs.href)[0],
i = t.marks.filter(u => u.type.name === "em")[0],
c = t.marks.filter(u => u.type.name === "strong")[0],
l = t.text;
i ? n.push(`<em>${l}</em>`) : c ? n.push(`<strong>${l}</strong>`) : r ? n.push(`<a target="_blank" href="${Uo(r.attrs.href)}">${l}</a>`) : n.push(l)
}
} else if (tl(t, [])) {
const r = tl(t, n);
r && n.push(r.open), t.descendants(i => Hp({
node: i,
recursiveDepth: e + 1,
tokens: n
})), r && n.push(r.close), s = !1
} else((o = t.type) == null ? void 0 : o.name) === "cashtag" && n.push(`${t.attrs.symbol} `);
return s
},
fZ = t => {
const e = [];
return t.descendants(n => Hp({
node: n,
recursiveDepth: 1,
tokens: e
})), e.filter(n => n !== Zo).join("").trim()
},
Gp = (t, {
withLinks: e = !0,
withCaptionsAndFootnotes: n = !1,
forPodcast: s = !1,
truncateAt: a = null,
truncateTo: o = a,
truncateEllipsis: r = "โ€ฆ",
truncateExtension: i = null
} = {}) => {
let c = "",
l = "",
u = "",
d = !0;
return t.nodesBetween(0, t.content.size, m => {
var f, h, g, b;
if (!n && ["caption", "footnote"].includes((f = m.type) == null ? void 0 : f.name)) return !1;
if (m.isText) {
if (m.text && m.text.length > 0) {
d = !1;
let x;
!Ue(o) && c.length < o && c.length + m.text.length >= o && (x = it(m.text, o - c.length, {
ellipsis: r,
extension: i
}));
const v = m.marks.filter(k => k.type.name === "link" && k.attrs.href)[0],
w = m.marks.filter(k => k.type.name === "em")[0],
E = m.marks.filter(k => k.type.name === "strong")[0];
let _ = m.text;
c += _, w && s && (x && (x = `<em>${x}</em>`), _ = `<em>${_}</em>`), E && s && (x && (x = `<strong>${x}</strong>`), _ = `<strong>${_}</strong>`), !v || !e ? (x && (u = l + x), l += _) : s ? (x && (u = `${l}<a target="_blank" href="${Uo(v.attrs.href)}">${x}</a>`), l += `<a target="_blank" href="${Uo(v.attrs.href)}">${_}</a>`) : (x && (u = `${l}${x} [ ${v.attrs.href} ]`), l += `${_} [ ${v.attrs.href} ]`)
}
} else !d && ["hard_break", "hardBreak"].includes((h = m.type) == null ? void 0 : h.name) ? (d = !0, c += `
`, s ? l += "<br/>" : l += `
`) : !d && m.isBlock ? (d = !0, c += `
`, s ? l += "<br/><br/>" : l += `
`) : ((g = m.type) == null ? void 0 : g.name) === "cashtag" ? l += `${m.attrs.symbol} ` : ((b = m.type) == null ? void 0 : b.name) === "substack_mentions" && (l += `${m.attrs.name} `)
}, 0), !Ue(a) && c.length > a && u && (l = u), l = l.trim(), s && (l = l.replace(/\s*(<br\/>)+$/, "").trim()), l
},
hZ = t => `${iZ(t,".")}...`,
gZ = (t, e) => P(S({
name: t
}, e), {
addAttributes() {
return e.attrs || {}
},
parseHTML() {
return e.parseDOM
},
renderHTML({
node: n
}) {
return e.toDOM ? e.toDOM(n) : (console.warn("trying to create TipTapNode, no toDOM found for node", t), ["span"])
}
}),
bZ = (t, e) => {
let n, s, a;
if (t.doc.nodesBetween(t.selection.from, t.selection.to, (o, r) => {
if (n || s) return !1;
const i = o.marks.find(c => c.type === e);
i && (n = o, s = i, a = {
from: r,
to: r + o.nodeSize
})
}), !!n) return {
node: n,
mark: s,
pos: a
}
},
Qo = (t, e) => {
var o, r;
let n, s, a;
if (t.doc.nodesBetween(t.selection.from, t.selection.to, (i, c) => {
if (n || s) return !1;
if (c <= t.selection.from && t.selection.to <= c + i.nodeSize) {
const l = i.marks.find(u => u.type === e);
l && (n = i, s = l, a = {
from: c,
to: c + i.nodeSize
})
} else return !1
}), !n) {
if (t.selection.empty) {
const i = t.doc.resolve(t.selection.from),
c = i.nodeBefore && i.nodeBefore.marks.find(u => u.type === e),
l = i.nodeAfter && i.nodeAfter.marks.find(u => u.type === e);
(c || l) && (n = l ? i.nodeAfter : i.nodeBefore, s = l || c, a = l ? {
from: i.pos,
to: i.pos + i.nodeAfter.nodeSize
} : {
from: i.pos - ((r = (o = i.nodeBefore) == null ? void 0 : o.nodeSize) != null ? r : 0),
to: i.pos
})
}
if (!n) return
}
return {
node: n,
mark: s,
pos: a
}
},
vZ = (t, {
allowedMarks: e = []
} = {}) => t.selection.empty ? !0 : Wp(t, t.selection.from, t.selection.to, {
allowedMarks: e
}),
Wp = (t, e, n, {
allowedMarks: s = []
} = {}) => {
let a = !0,
o = !1;
return t.doc.nodesBetween(e, n, r => {
if (!a) return !1;
r.type !== t.schema.nodes.text ? o ? a = !1 : o = !0 : r.marks.find(i => !s.includes(i.type)) && (a = !1)
}), a
},
er = (t, e) => {
var s;
if (t.selection.empty) return !1;
const n = Array.isArray(e) ? e : [e];
if ("node" in t.selection) {
const a = t.selection;
return n.includes((s = a.node) == null ? void 0 : s.type)
}
return xZ(t, t.selection.from, t.selection.to, n)
},
xZ = (t, e, n, s) => {
let a = null;
return t.doc.nodesBetween(e, n, o => {
if (a !== !1 && s.includes(o.type)) a = !0;
else return a = !1, !1
}), a || !1
},
da = t => t.selection.empty ? null : yZ(t, t.selection.from, t.selection.to),
yZ = (t, e, n) => {
let s = null;
return t.doc.nodesBetween(e, n, a => {
if (s) return !1;
if (a.type === t.schema.nodes.image2) return s = a.attrs.href, !1;
a.type === t.schema.nodes.image3 && (s = a.attrs.href)
}), s || null
},
Jp = (t, e, n) => {
t.selection.empty || wZ(t, e, t.selection.from, t.selection.to, n)
},
wZ = (t, e, n, s, a) => {
t.doc.nodesBetween(n, s, (o, r) => {
(o.type === t.schema.nodes.image2 || o.type === t.schema.nodes.image3) && e.setNodeMarkup(r, o.type, Object.assign({}, o.attrs, {
href: a
}), o.marks)
})
},
tr = t => ({
top: t.top + window.scrollY,
bottom: t.bottom + window.scrollY,
left: t.left + window.scrollX,
right: t.right + window.scrollX
}),
Yp = (t, e, n, s) => {
const a = document.body,
o = window.innerWidth <= 481,
i = kZ(t, e.from, e.to, m => [t.state.schema.nodes.image, t.state.schema.nodes.image2].includes(m.type)) ? -44 : 8,
c = tr(t.coordsAtPos(e.from)),
l = tr(t.coordsAtPos(e.to));
n.style.position = "fixed";
const u = l.bottom + (o ? a.scrollTop : 0),
d = a.clientHeight - n.clientHeight - 96 - i;
c.top < l.top ? (s && (s.style.left = "10px"), n.style.right = "", n.style.left = `${Math.min(c.left,l.left)}px`) : a.clientWidth - c.left > n.clientWidth ? (s && (s.style.left = "10px"), n.style.right = "", n.style.left = `${c.left}px`) : (s && (s.style.left = `${c.left-a.clientWidth+n.clientWidth}px`), n.style.right = "10px", n.style.left = ""), o || u < d ? (s && (s.style.top = "-9px", s.style.bottom = "auto", s.style.transform = ""), n.style.top = `${u+i}px`) : (s && (s.style.top = "auto", s.style.bottom = "-9px", s.style.transform = "rotate(180deg)"), n.style.top = `${d+i}px`)
},
kZ = (t, e, n, s) => {
let a = !1;
return t.state.doc.nodesBetween(e, n, o => {
if (a) return !1;
a = s(o)
}), a
},
Wt = (t, e) => N(void 0, null, function*() {
return Ca.maxOpen(yield Kp(t.content, e))
}),
Kp = (t, e, n) => N(void 0, null, function*() {
let s = [];
for (let a = 0; a < t.childCount; a++) {
let o = t.child(a);
o.content.childCount && (o = o.copy(yield Kp(o.content, e, o))), o = yield e(o, a, n), Array.isArray(o) || (o = [o]), s = s.concat(br(o))
}
return s = yield Promise.all(s), s = s.map(a => {
if (!(a != null && a.content.childCount)) return [a];
const o = [];
let r = [];
for (let i = 0; i < a.content.childCount; i++) {
const c = a.content.child(i);
CZ(a, c) ? r.push(c) : (o.push(a.copy(Kt.fromArray(r))), r = [], o.push(c))
}
return r.length && o.push(a.copy(Kt.fromArray(r))), o
}).reduce((a, o) => a.concat(o), []), s = s.filter(a => a && !(a.type.name === "text" && !a.text) && !(a.type.name === "paragraph" && !a.content.childCount)), Kt.fromArray(s)
}),
nl = (t, e, n) => Ca.maxOpen(Xp(t.content, e, n)),
Xp = (t, e, n) => {
n = n || (o => o);
const s = [];
let a;
for (let o = 0; o < t.childCount; o++) {
let r = t.child(o);
if (e(r)) a = a || [], a.push(r);
else {
if (a) {
const [i, ...c] = n(a);
s.push(sl(i, ...c)), a = null
}
r.content.childCount && (r = r.copy(Xp(r.content, e, n))), s.push(r)
}
}
if (a) {
const [o, ...r] = n(a);
s.push(sl(o, ...r)), a = null
}
return Kt.fromArray(s)
},
sl = (t, ...e) => {
let n = t.content;
for (const s of e) n = n.append(s.content);
return t.copy(n)
},
_Z = t => {
if (!t) return !0;
let e;
if (typeof t == "string") try {
e = JSON.parse(t)
} catch (n) {
return console.error("Could not parse doc", t), !1
} else e = t;
if (!e || e.type !== "doc" || !Array.isArray(e.content)) return console.error("Could not parse doc", e), !1;
for (const n of e.content) {
if (!n || typeof n != "object") return console.error("Could not parse doc", e), !1;
if (n.type !== "paragraph") return !1;
if (n.content) {
if (!Array.isArray(n.content)) return console.error("Could not parse doc", e), !1;
if (n.type !== "text" || n.text && n.text.trim()) return !1
}
}
return !0
},
CZ = (t, e) => {
const n = ["list_item", "listItem"].includes(t.type.name),
s = ["bullet_list", "bulletList", "ordered_list", "orderedList"].includes(e.type.name);
return n && s ? !0 : !!t.type.contentMatch && !!t.type.contentMatch.matchType(e.type)
},
EZ = t => t.doc.resolve(t.selection.from).node(1),
AZ = (t, e) => {
var n;
return e.includes((n = EZ(t)) == null ? void 0 : n.type)
},
ie = (t, e) => {
var r, i, c;
const n = t.tr,
s = n.selection instanceof Ee,
o = s && ((c = (i = (r = n.selection.$from) == null ? void 0 : r.parent) == null ? void 0 : i.content) == null ? void 0 : c.size) === 0 ? t.selection.to - 1 : t.selection.to;
if (Array.isArray(e))
for (const l of e.slice().reverse()) n.insert(o, l);
else n.insert(o, e);
return s || n.setSelection(Je.near(n.doc.resolve(o))), n
},
SZ = (t, e) => {
const n = t.tr;
return n.replaceSelectionWith(e), n
},
Le = (t, e) => {
const n = t.selection.$from;
for (let s = n.depth; s >= 0; s--) {
const a = n.index(s);
if (n.node(s).canReplaceWith(a, a, e)) return !0
}
return !1
},
Zp = t => !!Bn(t, e => e.type === "paywall"),
TZ = ({
attrs: t
}) => {
var n;
const e = {};
if (!t) return e;
for (const [s, a] of Object.entries(t)) e[s] = {
default: (n = a.default) != null ? n : null,
keepOnSplit: !1
};
return e
},
F = ({
name: t,
nodeSpec: e,
addNodeView: n,
addCommands: s
}) => Qt.create({
name: t,
content: e.content,
marks: e.marks,
group: e.group,
inline: e.inline,
atom: e.atom,
selectable: e.selectable,
draggable: e.draggable,
code: e.code,
whitespace: e.whitespace,
defining: e.defining,
isolating: e.isolating,
addNodeView: n,
addCommands: s,
renderHTML(a) {
return this.options.isStatic && e.toDOMStatic ? e.toDOMStatic(a.node) : e.toDOM(a.node)
},
parseHTML() {
return e.parseDOM
},
addAttributes() {
return TZ({
attrs: e.attrs
})
}
}),
DZ = ({
doc: t,
extensions: e,
customDocument: n
}) => {
const s = lu(e),
a = uu.fromJSON(s, t),
o = document.createElement("div");
return Ea.fromSchema(s).serializeFragment(a.content, {
document: n
}, o), o.innerHTML
},
re = t => {
try {
if (typeof t != "string") {
const e = t.getAttribute("data-attrs");
if (e) return JSON.parse(e)
}
} catch (e) {
return !1
}
return !1
},
IZ = () => ({
userId: {
default: null,
keepOnSplit: !1
},
userName: {
default: null,
keepOnSplit: !1
},
canDm: {
default: null,
keepOnSplit: !1
},
dmUpgradeOptions: {
default: null,
keepOnSplit: !1
},
isEditorNode: {
default: !1,
keepOnSplit: !1
}
}),
zs = "directMessage",
Qp = {
name: zs,
group: "block",
selectable: !0,
inline: !1,
draggable: !0,
atom: !0,
attrs: Fp({
attrs: IZ()
}),
parseDOM: [{
tag: "div.directMessage",
getAttrs: t => {
try {
if (t instanceof HTMLElement) {
const e = t.getAttribute("data-attrs");
if (e) return JSON.parse(e)
}
} catch (e) {
return !1
}
return !1
}
}],
toDOM: t => {
if (typeof window != "undefined" && t.attrs.isEditorNode) try {
t.attrs.isEditor = !0;
const n = document.createElement("div");
return n.className = zs, n.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(qp, {
node: S({}, t)
}), n), n
} catch (n) {
return console.error("Error rendering DirectMessageEditor", n), Oe({
msg: null,
node: t,
err: n,
group: "block"
})
}
return ["div", {
class: `${zs} button`,
"data-attrs": JSON.stringify(S({}, t.attrs)),
"data-component-name": "DirectMessageToDOM"
}]
},
toDOMStatic: t => ["div", {
class: zs,
"data-attrs": JSON.stringify(P(S({}, t.attrs), {
isEmail: !0
})),
"data-component-name": "DirectMessageToDOMStatic"
}]
},
ed = Pe.create({
name: "directMessageExtension",
addCommands() {
return {
insertDirectMessage: t => ({
dispatch: e,
state: n
}) => {
const {
user: s
} = t, a = {
userName: s.name,
userId: s.id,
isEditorNode: !0
};
return e && e(ie(n, n.schema.nodes.directMessage.create(a))), !0
}
}
}
}),
NZ = F({
name: "directMessage",
nodeSpec: Qp,
addCommands: ed.addCommands,
addNodeView() {
return kt(qp)
}
});
class Ve {
constructor(e, n) {
this.match = e, this.match = e, this.handler = typeof n == "string" ? MZ(n) : n
}
}
function MZ(t) {
return function(e, n, s, a) {
let o = t;
if (n[1]) {
let r = n[0].lastIndexOf(n[1]);
o += n[0].slice(r + n[1].length), s += r;
let i = s - a;
i > 0 && (o = n[0].slice(r - i, r) + o, s = a)
}
return e.tr.insertText(o, s, a)
}
}
const OZ = 500;
function LZ({
rules: t
}) {
let e = new _t({
state: {
init() {
return null
},
apply(n, s) {
let a = n.getMeta(this);
return a || (n.selectionSet || n.docChanged ? null : s)
}
},
props: {
handleTextInput(n, s, a, o) {
return al(n, s, a, o, t, e)
},
handleDOMEvents: {
compositionend: n => {
setTimeout(() => {
let {
$cursor: s
} = n.state.selection;
s && al(n, s.pos, s.pos, "", t, e)
})
}
}
},
isInputRules: !0
});
return e
}
function al(t, e, n, s, a, o) {
if (t.composing) return !1;
let r = t.state,
i = r.doc.resolve(e);
if (i.parent.type.spec.code) return !1;
let c = i.parent.textBetween(Math.max(0, i.parentOffset - OZ), i.parentOffset, null, "๏ฟผ") + s;
for (let l = 0; l < a.length; l++) {
let u = a[l].match.exec(c),
d = u && a[l].handler(r, u, e - (u[0].length - s.length), n);
if (d) return t.dispatch(d.setMeta(o, {
transform: d,
from: e,
to: n,
text: s
})), !0
}
return !1
}
const RZ = (t, e) => {
let n = t.plugins;
for (let s = 0; s < n.length; s++) {
let a = n[s],
o;
if (a.spec.isInputRules && (o = a.getState(t))) {
if (e) {
let r = t.tr,
i = o.transform;
for (let c = i.steps.length - 1; c >= 0; c--) r.step(i.steps[c].invert(i.docs[c]));
if (o.text) {
let c = r.doc.resolve(o.from).marks();
r.replaceWith(o.from, o.to, t.schema.text(o.text, c))
} else r.delete(o.from, o.to);
e(r)
}
return !0
}
}
return !1
},
PZ = new Ve(/--$/, "โ€”"),
BZ = new Ve(/\.\.\.$/, "โ€ฆ"),
zZ = new Ve(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/, "โ€œ"),
qZ = new Ve(/"$/, "โ€"),
FZ = new Ve(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/, "โ€˜"),
jZ = new Ve(/'$/, "โ€™"),
$Z = [zZ, qZ, FZ, jZ];
function nr(t, e, n = null, s) {
return new Ve(t, (a, o, r, i) => {
let c = n instanceof Function ? n(o) : n,
l = a.tr.delete(r, i),
u = l.doc.resolve(r),
d = u.blockRange(),
m = d && Fo(d, e, c);
if (!m) return null;
l.wrap(d, m);
let f = l.doc.resolve(r - 1).nodeBefore;
return f && f.type == e && ph(l.doc, r - 1) && (!s || s(o, f)) && l.join(r - 1), l
})
}
function ol(t, e, n = null) {
return new Ve(t, (s, a, o, r) => {
let i = s.doc.resolve(o),
c = n instanceof Function ? n(a) : n;
return i.node(-1).canReplaceWith(i.index(-1), i.indexAfter(-1), e) ? s.tr.delete(o, r).setBlockType(o, o, e, c) : null
})
}
const UZ = ({
filetype: t,
filename: e
}) => p("div", {
className: "file-embed-wrapper-editor"
}, p("div", {
className: "file-embed-aligner"
}, p("div", {
className: "file-embed-container placeholder"
}, p(td, null)))),
td = () => p("div", {
className: "embed-loader-container"
}, p("div", {
className: "embed-loader"
}), p("div", {
className: "embed-loader-text"
}, "Loading...")),
rl = new pu("substack-placeholder");
class VZ extends _t {
add(e, n, s) {
n = n || e.state.selection.from, s = s || Fl;
const a = {},
o = e.state.tr;
return o.setMeta(Ye, {
add: {
id: a,
pos: n,
url: s
}
}), e.dispatch(o), a
}
addFile(e, n, {
name: s,
type: a
}) {
n = n || e.state.selection.from;
const o = {},
r = e.state.tr;
return r.setMeta(Ye, {
addFile: {
id: o,
pos: n,
name: s,
type: a
}
}), e.dispatch(r), o
}
remove(e, n) {
const a = Ye.getState(e.state).find(null, null, o => o.id == n);
if (a.length) {
const o = a[0].from,
r = e.state.tr;
return r.setMeta(Ye, {
remove: {
id: n
}
}), e.dispatch(r), o
}
return null
}
replace(e, n, s) {
const a = this.remove(e, n);
return a !== null ? (e.dispatch(e.state.tr.insert(a - 1, s)), !0) : !1
}
}
const Ye = new VZ({
state: {
init() {
return du.empty
},
apply(t, e) {
e = e.map(t.mapping, t.doc);
const n = t.getMeta(rl);
if (n && n.add) {
const s = document.createElement("a");
s.className = "image-link placeholder", s.href = "javascript:void(0)";
const a = document.createElement("img");
a.src = n.add.url, s.appendChild(a), s.ondrop = s.ondragstart = s.onmousedown = () => !1;
const o = jo.widget(n.add.pos, s, {
id: n.add.id
});
e = e.add(t.doc, [o])
} else if (n && n.addFile) {
const {
name: s,
type: a
} = n.addFile, o = document.createElement("div");
ur(p(UZ, {
filename: s,
filetype: a
}), o);
const r = jo.widget(n.addFile.pos, o, {
id: n.addFile.id
});
e = e.add(t.doc, [r])
} else n && n.remove && (e = e.remove(e.find(void 0, void 0, s => s.id == n.remove.id)));
return e
}
},
key: rl,
props: {
decorations(t) {
return this.getState(t)
}
}
}),
Se = t => {
const e = document.createElement("div");
return e.innerHTML = t, {
dom: e.querySelector("svg")
}
},
tn = (t, e) => {
if (!t.dom) return {
dom: null
};
const n = document.createElement("div");
n.className = "dropdown-item-container";
const s = document.createElement("span");
s.innerText = e;
const a = document.createElement("div");
return a.className = "dropdown-item-svg", a.appendChild(t.dom), n.appendChild(a), n.appendChild(s), {
dom: n
}
};
Se(`
<svg class="editor-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)" fill="none">
<path d="M7.33334 4L3.33334 8L7.33334 12" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M11.3333 19H15.8182C17.2809 19 18.6837 18.4205 19.718 17.3891C20.7523 16.3576 21.3333 14.9587 21.3333 13.5C21.3333 12.0413 20.7523 10.6424 19.718 9.61091C18.6837 8.57946 17.2809 8 15.8182 8H4.33334" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`);
Se(`
<svg class="editor-icon" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)" fill="none">
<path d="M17.3334 4L21.3334 8L17.3334 12" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.3334 19H8.84853C7.38582 19 5.98302 18.4205 4.94873 17.3891C3.91443 16.3576 3.33337 14.9587 3.33337 13.5C3.33337 12.0413 3.91443 10.6424 4.94873 9.61091C5.98302 8.57946 7.38582 8 8.84853 8H20.3334" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M6.80005 5.60059H13.2C14.0487 5.60059 14.8627 5.93773 15.4628 6.53784C16.0629 7.13796 16.4 7.95189 16.4 8.80059C16.4 9.64928 16.0629 10.4632 15.4628 11.0633C14.8627 11.6634 14.0487 12.0006 13.2 12.0006H6.80005V5.60059Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M6.80005 12H14C14.8487 12 15.6627 12.3371 16.2628 12.9373C16.8629 13.5374 17.2 14.3513 17.2 15.2C17.2 16.0487 16.8629 16.8626 16.2628 17.4627C15.6627 18.0629 14.8487 18.4 14 18.4H6.80005V12Z" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M17.2671 6.10059H10.0671" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.2659 18.8994H6.06592" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.0666 6.10059L9.2666 18.9006" stroke-linecap="round" stroke-linejoin="round"/>
</g>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)" fill="none">
<path fill="none" d="M14.866 5.60059H9.266C8.88195 5.60038 8.50345 5.69236 8.1623 5.86878C7.82116 6.04519 7.52734 6.30091 7.30552 6.61443C7.0837 6.92796 6.94036 7.29014 6.88755 7.67055C6.83473 8.05096 6.87399 8.43849 7.00201 8.80059" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M13.2667 12C14.1154 12 14.9293 12.3371 15.5294 12.9373C16.1296 13.5374 16.4667 14.3513 16.4667 15.2C16.4667 16.0487 16.1296 16.8626 15.5294 17.4627C14.9293 18.0629 14.1154 18.4 13.2667 18.4H6.8667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M4.1665 12L19.1665 12" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)" fill="none">
<path d="M17.6667 16.5L21.6667 12.5L17.6667 8.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.66675 8.5L1.66675 12.5L5.66675 16.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14.1667 4.5L9.16675 20.5" stroke-linecap="round" stroke-linejoin="round"/>
</g>
`);
const HZ = Se(`
<svg class="link-item" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)" fill="none">
<g clip-path="url(#clip1)">
<path d="M10.0671 13.3006C10.4107 13.7599 10.849 14.1399 11.3524 14.4149C11.8557 14.6899 12.4123 14.8535 12.9845 14.8944C13.5566 14.9354 14.1308 14.8529 14.6682 14.6524C15.2056 14.4519 15.6936 14.1382 16.0991 13.7326L18.4991 11.3326C19.2278 10.5781 19.6309 9.56774 19.6218 8.51895C19.6127 7.47017 19.192 6.46692 18.4504 5.72528C17.7088 4.98365 16.7055 4.56298 15.6567 4.55386C14.608 4.54475 13.5975 4.94793 12.8431 5.67656L11.4671 7.04456" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.2677 11.7008C12.9242 11.2415 12.4859 10.8614 11.9825 10.5864C11.4791 10.3114 10.9225 10.1479 10.3504 10.1069C9.7783 10.0659 9.20407 10.1485 8.66666 10.3489C8.12925 10.5494 7.64125 10.8631 7.23574 11.2688L4.83574 13.6688C4.10711 14.4232 3.70393 15.4336 3.71304 16.4824C3.72216 17.5312 4.14283 18.5344 4.88446 19.276C5.6261 20.0177 6.62935 20.4383 7.67813 20.4475C8.72692 20.4566 9.73733 20.0534 10.4917 19.3248L11.8597 17.9568" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</g>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M7.66675 6.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7.66675 12.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M7.66675 18.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2.66675 6.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2.66675 12.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2.66675 18.5H2.67633" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g fill="none">
<path d="M9.66675 6.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.66675 12.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.66675 18.5H20.6667" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.66675 6.5H4.66675V10.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M3.66675 10.5H5.66675" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.66675 18.4999H3.66675C3.66675 17.4999 5.66675 16.4999 5.66675 15.4999C5.66675 14.4999 4.66675 13.9999 3.66675 14.4999" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`);
const GZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M5 15.5L5 18.5C5 19.0304 5.21071 19.5391 5.58579 19.9142C5.96086 20.2893 6.46957 20.5 7 20.5L18 20.5C18.5304 20.5 19.0391 20.2893 19.4142 19.9142C19.7893 19.5391 20 19.0304 20 18.5L20 7.5C20 6.96957 19.7893 6.46086 19.4142 6.08579C19.0391 5.71071 18.5304 5.5 18 5.5L16 5.5" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M9.5 10.5L12.5 7.5L9.5 4.5" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M5.5 4.5L2.5 7.5L5.5 10.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`),
WZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.7143 15C14.7143 14.4696 14.9401 13.9609 15.3419 13.5858C15.7438 13.2107 16.2888 13 16.8571 13C17.4255 13 17.9705 13.2107 18.3724 13.5858C18.7742 13.9609 19 14.4696 19 15C19 15.5304 18.7742 16.0391 18.3724 16.4142C17.9705 16.7893 17.4255 17 16.8571 17C16.2888 17 15.7438 16.7893 15.3419 16.4142C14.9401 16.0391 14.7143 15.5304 14.7143 15ZM14.7143 15L16.8571 7M5.5 15C5.5 14.4696 5.72577 13.9609 6.12763 13.5858C6.52949 13.2107 7.07454 13 7.64286 13C8.21118 13 8.75622 13.2107 9.15809 13.5858C9.55995 13.9609 9.78571 14.4696 9.78571 15C9.78571 15.5304 9.55995 16.0391 9.15809 16.4142C8.75622 16.7893 8.21118 17 7.64286 17C7.07454 17 6.52949 16.7893 6.12763 16.4142C5.72577 16.0391 5.5 15.5304 5.5 15ZM5.5 15L7.64286 7" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="8" cy="15" r="1"stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="17" cy="15" r="1"stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="7.5" cy="15.5" r="0.5"stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="16.5" cy="15.5" r="0.5"stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M6.66699 8L2.66699 12L6.66699 16" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M22 6H11" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M22 12L16 12" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M22 18H11" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`);
Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M2.66699 8L6.66699 12L2.66699 16" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21 12L15 12" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21 6H10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21 18H10" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`);
const JZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g fill="none" clip-path="url(#clip0_6402:84637)">
<path d="M5.74356 7.80138L1.55483 19.3174" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.74212 7.80082L9.92942 19.3177" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.0703 7.80493V19.3212" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M8.35986 16.1787H3.12519" stroke-linecap="round" stroke-linejoin="round"/>
<ellipse cx="15.9501" cy="15.6565" rx="2.87907" ry="3.66427" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21.4465 5L21.4465 10.9463" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M21.4465 5L19.3528 6.23506" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`),
YZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M19 3H5C3.89543 3 3 3.89543 3 5V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3Z" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M8.5 10C9.32843 10 10 9.32843 10 8.5C10 7.67157 9.32843 7 8.5 7C7.67157 7 7 7.67157 7 8.5C7 9.32843 7.67157 10 8.5 10Z" stroke-linecap="round" stroke-linejoin="round"/>
<path fill="none" d="M21 15L16 10L5 21" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`),
KZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3 13H21" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`),
XZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 1V23" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17 5H9.5C8.57174 5 7.6815 5.36875 7.02513 6.02513C6.36875 6.6815 6 7.57174 6 8.5C6 9.42826 6.36875 10.3185 7.02513 10.9749C7.6815 11.6313 8.57174 12 9.5 12H12" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M6 19H14.5C15.4283 19 16.3185 18.6313 16.9749 17.9749C17.6313 17.3185 18 16.4283 18 15.5C18 14.5717 17.6313 13.6815 16.9749 13.0251C16.3185 12.3687 15.4283 12 14.5 12H12" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
</g>
</svg>
`),
ZZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 9L18 6C18 5.46957 17.7893 4.96086 17.4142 4.58579C17.0391 4.21072 16.5304 4 16 4L5 4C4.46957 4 3.96086 4.21071 3.58579 4.58579C3.21071 4.96086 3 5.46957 3 6L3 13C3 13.5304 3.21071 14.0391 3.58578 14.4142C3.96086 14.7893 4.46957 15 5 15L7 15" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9.03906 9.35059L14.0391 21.3506L15.8131 16.1246L21.0391 14.3506L9.03906 9.35059Z" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M16.1104 16.4214L20.3534 20.6644" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`),
QZ = Se(`
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19 12L12 5L15 2L22 9L19 12Z" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13 6L5.5 7.5L2 22L16.5 18.5L18 11L13 6Z"stroke-linecap="round" stroke-linejoin="round"/>
<path d="M2 22L9.586 14.414" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13 13C13 11.8954 12.1046 11 11 11C9.89543 11 9 11.8954 9 13C9 14.1046 9.89543 15 11 15C12.1046 15 13 14.1046 13 13Z" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
`);
tn(ZZ, "Buttons...");
tn(GZ, "Code block");
tn(JZ, "Footnote");
tn(KZ, "Divider");
tn(XZ, "Paywall");
tn(QZ, "Poetry block");
tn(WZ, "Pullquote");
function eQ() {
var t = arguments[0];
typeof t == "string" && (t = document.createElement(t));
var e = 1,
n = arguments[1];
if (n && typeof n == "object" && n.nodeType == null && !Array.isArray(n)) {
for (var s in n)
if (Object.prototype.hasOwnProperty.call(n, s)) {
var a = n[s];
typeof a == "string" ? t.setAttribute(s, a) : a != null && (t[s] = a)
}
e++
}
for (; e < arguments.length; e++) nd(t, arguments[e]);
return t
}
function nd(t, e) {
if (typeof e == "string") t.appendChild(document.createTextNode(e));
else if (e != null)
if (e.nodeType != null) t.appendChild(e);
else if (Array.isArray(e))
for (var n = 0; n < e.length; n++) nd(t, e[n]);
else throw new RangeError("Unsupported child node: " + e)
}
var ns = "http://www.w3.org/2000/svg",
tQ = "http://www.w3.org/1999/xlink",
sr = "ProseMirror-icon";
function nQ(t) {
for (var e = 0, n = 0; n < t.length; n++) e = (e << 5) - e + t.charCodeAt(n) | 0;
return e
}
function sQ(t) {
var e = document.createElement("div");
if (e.className = sr, t.path) {
var n = "pm-icon-" + nQ(t.path).toString(16);
document.getElementById(n) || aQ(n, t);
var s = e.appendChild(document.createElementNS(ns, "svg"));
s.style.width = t.width / t.height + "em";
var a = s.appendChild(document.createElementNS(ns, "use"));
a.setAttributeNS(tQ, "href", /([^#]*)/.exec(document.location)[1] + "#" + n)
} else t.dom ? e.appendChild(t.dom.cloneNode(!0)) : (e.appendChild(document.createElement("span")).textContent = t.text || "", t.css && (e.firstChild.style.cssText = t.css));
return e
}
function aQ(t, e) {
var n = document.getElementById(sr + "-collection");
n || (n = document.createElementNS(ns, "svg"), n.id = sr + "-collection", n.style.display = "none", document.body.insertBefore(n, document.body.firstChild));
var s = document.createElementNS(ns, "symbol");
s.id = t, s.setAttribute("viewBox", "0 0 " + e.width + " " + e.height);
var a = s.appendChild(document.createElementNS(ns, "path"));
a.setAttribute("d", e.path), n.appendChild(s)
}
var Co = "ProseMirror-menu",
sd = function(e) {
this.spec = e
};
sd.prototype.render = function(e) {
var n = this.spec,
s = n.render ? n.render(e) : n.icon ? sQ(n.icon) : n.label ? eQ("div", null, il(e, n.label)) : null;
if (!s) throw new RangeError("MenuItem without icon or label property");
if (n.title) {
var a = typeof n.title == "function" ? n.title(e.state) : n.title;
s.setAttribute("title", il(e, a))
}
n.class && s.classList.add(n.class), n.css && (s.style.cssText += n.css), s.addEventListener("mousedown", function(r) {
r.preventDefault(), s.classList.contains(Co + "-disabled") || n.run(e.state, e.dispatch, e, r)
});
function o(r) {
if (n.select) {
var i = n.select(r);
if (s.style.display = i ? "" : "none", !i) return !1
}
var c = !0;
if (n.enable && (c = n.enable(r) || !1, cl(s, Co + "-disabled", !c)), n.active) {
var l = c && n.active(r) || !1;
cl(s, Co + "-active", l)
}
return !0
}
return {
dom: s,
update: o
}
};
function il(t, e) {
return t._props.translate ? t._props.translate(e) : e
}
function cl(t, e, n) {
n ? t.classList.add(e) : t.classList.remove(e)
}
const oQ = 1900;
let ad = class od extends sd {
constructor(e, n) {
super(e);
const s = this.spec.run;
this.spec.run = (a, o, r, i) => (se(ae.EDITOR_MENU_ICON_CLICKED, {
button: n || this.spec.label || this.spec.title
}), s.call(this, a, o, r, i))
}
static fromMenuItem(e, n) {
const {
spec: s
} = e;
return new od(s, n)
}
};
const jt = "ProseMirror-prompt",
ar = `${jt}-visible`;
class rd {
constructor(e) {
this.options = e
}
read(e) {
return e.value
}
validate(e) {
return e = this.clean(e), !e && this.options.required ? "Required field" : this.options.validate && this.options.validate(e)
}
clean(e) {
return this.options.clean ? this.options.clean(e) : e
}
}
class Va extends rd {
render() {
const e = document.createElement("input");
return e.type = "text", e.placeholder = this.options.label, e.value = this.options.value || "", e.className = this.options.className || "", e.autocomplete = "off", e
}
}
class rQ extends rd {
render() {
const e = document.createElement("select");
e.value = this.options.value || "";
const n = document.createElement("option");
return n.textContent = this.options.label, n.value = "", e.appendChild(n), this.options.options.forEach((s, a) => {
const o = document.createElement("option");
o.textContent = s.label, o.value = String(a), e.appendChild(o)
}), this.options.onChange && e.addEventListener("change", () => {
const s = this.read(e);
this.options.onChange(s)
}, !1), e
}
read(e) {
const n = this.options.options[e.value];
return n && n.value
}
}
class iQ extends Va {
constructor(e, n, s = "en") {
const {
iString: a
} = I18N.i(s);
super({
label: a("Enter URL..."),
className: "url-input",
value: n || e && e.mark.attrs.href || "",
required: !0,
clean: o => {
let r;
return o ? (r = o.trim(), r = r.startsWith("http") || r.startsWith("mailto") || /^%%.*%%$/.test(r) ? r : `http://${r}`) : r = "", r
},
validate: o => {
if (!/^%%.*%%$/.test(o)) {
if (o.startsWith(`${rt()}/publish/post/`) && alert(a("This is a link to a post draft. Readers will not be able to access this page.")), o.length > oQ) return a("Link is too long");
try {
const r = new URL(o);
if (["http:", "https:", "mailto:"].includes(r.protocol)) return
} catch (r) {
console.error("Failed to parse URL:", r)
}
return o.startsWith("http") ? a("Invalid URL") : a("Invalid URL. Try using http://")
}
}
})
}
}
function cQ(t, e) {
const {
from: n,
$from: s,
to: a,
empty: o
} = t.selection;
return o ? !!e.isInSet(t.storedMarks || s.marks()) : t.doc.rangeHasMark(n, a, e)
}
function id(t) {
return t == null ? null : t.scrollHeight > t.clientHeight ? t : id(t.parentElement)
}
function ma(t) {
if (Jr(t)) return;
const {
iString: e
} = I18N.i(t.language || "en"), n = `${jt}-${t.parentClass}`, s = t.root || document.body, a = t.scrollParent && document.querySelector && document.querySelector(t.scrollParent) || id(s) || window, o = s.appendChild(document.createElement("div"));
o.classList.add(jt), t.className && o.classList.add(t.className), o.id = n, jl(document.body, ar);
const r = h => {
o.contains(h.target) || l()
},
i = () => {
var h;
if (t.position) t.position(o, u);
else {
const g = t.parentClass && ((h = document.querySelector) == null ? void 0 : h.call(document, `.${t.parentClass}`));
if (g) {
const b = g.getBoundingClientRect();
o.style.top = `${b.bottom+(t.offsetTop||0)}px`, o.style.left = `${b.left+(t.offsetLeft||0)}px`
} else {
const b = o.getBoundingClientRect();
o.style.top = `${(window.innerHeight-b.height)/2+(t.offsetTop||0)}px`, o.style.left = `${(window.innerWidth-b.width)/2+(t.offsetLeft||0)}px`
}
}
},
c = h => {
var b;
h && h.preventDefault();
const g = lQ((b = t.fields) != null ? b : {}, d);
g && l(g)
},
l = h => {
pr(document.body, ar), window.removeEventListener("mousedown", r), window.removeEventListener("resize", i, !1), a.removeEventListener("scroll", i, !1), o.parentNode && o.parentNode.removeChild(o), h ? (t.onSubmit && t.onSubmit(h), t.callback && t.callback(h)) : t.onCancel && t.onCancel(), t.onClose && t.onClose()
};
setTimeout(() => window.addEventListener("mousedown", r), 50), window.addEventListener("resize", i, !1), a.addEventListener("scroll", i, !1);
const u = o.appendChild(document.createElement("span"));
u.className = "head";
const d = [];
let m = 0;
for (const h in t.fields) {
m++;
const g = t.fields[h].render();
g.tabIndex = m, d.push(g)
}
const f = o.appendChild(document.createElement("form"));
if (t.title && (f.appendChild(document.createElement("h5")).textContent = t.title), d.forEach(h => {
f.appendChild(document.createElement("div")).appendChild(h)
}), !t.no_buttons) {
const h = document.createElement("button");
h.type = "submit", h.className = `${jt}-submit`, h.textContent = t.submitText || "OK", h.addEventListener("click", c);
const g = document.createElement("button");
g.type = "button", g.className = `${jt}-cancel`, g.textContent = e("Cancel"), g.addEventListener("click", () => l());
const b = f.appendChild(document.createElement("div"));
b.className = `${jt}-buttons`, b.appendChild(h), b.appendChild(document.createTextNode(" ")), b.appendChild(g)
}
if (t.footer && f.appendChild(t.footer), t.openseaEmbedFooter && f.appendChild(t.openseaEmbedFooter), i(), f.addEventListener("submit", c), t.onInput && f.addEventListener("input", h => {
var g;
(g = t.onInput) == null || g.call(t, h, o)
}), f.addEventListener("keydown", h => {
if (h.keyCode == 27) h.preventDefault(), l();
else if (h.keyCode == 13 && !(h.ctrlKey || h.metaKey || h.shiftKey)) h.preventDefault(), c();
else if (h.keyCode == 9 && (window.setTimeout(() => {
o.contains(document.activeElement) || l()
}, 500), d.length > 1)) {
for (let g = 0; g < d.length; g++)
if (document.activeElement === d[g]) {
g === 0 && h.shiftKey ? (h.preventDefault(), d[d.length - 1].focus()) : g === d.length - 1 && !h.shiftKey && (h.preventDefault(), d[0].focus());
break
}
}
}), f.elements.length > 0) {
let h = f.elements[0];
const g = Array.from(f.elements);
for (const b of g)
if (!b.value && ["INPUT", "TEXTAREA"].includes(b.nodeName)) {
h = b;
break
}
h.focus()
}
}
function Jr(t) {
var s;
const e = `${jt}-${t.parentClass}`,
n = document.getElementById(e);
if (n) {
let a;
return n.querySelector && (a = n.querySelector(`.${jt}-cancel`)), a ? a.click() : ((s = n.parentNode) == null || s.removeChild(n), pr(document.body, ar)), !0
}
}
function lQ(t, e) {
const n = {};
let s = 0;
for (const o in t) {
const r = t[o],
i = e[s++],
c = r.read(i),
l = r.validate(c);
if (l) return uQ(i, l), null;
n[o] = r.clean(c)
}
return n
}
function uQ(t, e) {
const n = t.parentNode;
if (!n) return;
const s = n.appendChild(document.createElement("div"));
s.style.left = `${t.offsetLeft+t.offsetWidth+2}px`, s.style.top = `${t.offsetTop-5}px`, s.className = "ProseMirror-invalid", s.textContent = e, setTimeout(() => n.removeChild(s), 1500)
}
function pQ(t, e) {
const n = t.selection.$from;
for (let s = n.depth; s >= 0; s--) {
const a = n.index(s);
if (n.node(s).canReplaceWith(a, a, e)) return !0
}
return !1
}
const ll = {
Enter: 13,
Backspace: 8,
Tab: 9,
Shift: 16,
Ctrl: 17,
Alt: 18,
Pause: 19,
CapsLock: 20,
Esc: 27,
Space: 32,
PageUp: 63276,
PageDown: 63277,
End: 63275,
Home: 63273,
Left: 63234,
Up: 63232,
Right: 63235,
Down: 63233,
PrintScrn: 44,
Insert: 63302,
Delete: 63272,
";": 186,
"=": 187,
Mod: 93,
"*": 106,
"-": 189,
".": 190,
"/": 191,
",": 188,
"`": 192,
"[": 219,
"\\": 220,
"]": 221,
"'": 222
};
function dQ(t) {
return ll[t] ? ll[t] : t.toUpperCase().charCodeAt(0)
}
function mQ(t, e) {
const n = e.split(/-(?!'?$)/),
s = n.indexOf("Mod") !== -1,
a = n.indexOf("Cmd") !== -1,
o = n.indexOf("Ctrl") !== -1,
r = n.indexOf("Shift") !== -1,
i = n.indexOf("Alt") !== -1,
c = n[n.length - 1],
l = dQ(c),
u = Df(),
d = new CustomEvent("keydown", {
bubbles: !0,
cancelable: !0
});
d.key = c.replace(/Space/g, " "), d.shiftKey = r, d.altKey = i, d.ctrlKey = o || !u && s, d.metaKey = a || u && s, d.keyCode = l, d.which = l, d.view = window, t.dispatchEvent(d)
}
const De = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB0BAMAAABgVMiEAAAAMFBMVEX////7+/vt7e3o6Ojm5ubn5+fu7u709PTs7Oz39/f19fX29vby8vLx8fHz8/Pw8PCxY+A8AAAAoklEQVR4AWJgVHYZ+sBIgEE0vXzog7JAhrZZq4Y+WJnB4A5o5w5oAAYBGAi6mcKpQgIaClhCBklz7+AM/Gjo5+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODgeO7g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OD4Zse3dmVXfIST0/B1vh0UtMKbNF7rAAAAAElFTkSuQmCC";
function fQ(t, e) {
let n = null,
s = [],
a = [];
return (...o) => new Promise((r, i) => {
n !== null && window.clearTimeout(n), n = window.setTimeout(() => {
t(...o).then(c => {
s.forEach(l => l(c)), s = []
}).catch(c => {
a.forEach(l => l(c)), a = []
})
}, e), s.push(r), a.push(i)
})
}
const hQ = ({
node: t,
editor: e,
deleteNode: n,
updateAttributes: s,
getPos: a
}) => {
const o = t.attrs,
r = P(S({}, o), {
isEditor: !!e
});
return p(wt, {
className: "digestPostEmbed",
"data-drag-handle": ""
}, p(yu, S({}, P(S({}, r), {
isEditor: !0,
editor: e,
updateAttributes: s,
deleteNode: n,
getPos: a
}))))
},
Gs = "digest-post-embed",
cd = {
attrs: {
nodeId: {
default: null
},
caption: {
default: null
},
size: {
default: null
},
isEditorNode: {
default: !1
},
title: {
default: null
},
publishedBylines: {
default: null
},
post_date: {
default: null
},
cover_image: {
default: null
},
cover_image_alt: {
default: null
},
canonical_url: {
default: null
},
section_name: {
default: null
},
id: {
default: null
},
type: {
default: null
},
reaction_count: {
default: null
},
comment_count: {
default: null
},
publication_name: {
default: null
},
publication_logo_url: {
default: null
},
belowTheFold: {
default: !1
}
},
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
editable: !1,
parseDOM: [{
tag: `.${Gs}`,
getAttrs: t => {
try {
const e = JSON.parse(t.getAttribute("data-attrs"));
return P(S({}, e), {
nodeId: ka()
})
} catch (e) {
return !1
}
}
}],
toDOM: t => {
if (typeof window != "undefined" && t.attrs.isEditorNode) try {
const e = document.createElement("div");
return e.className = Gs, e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(yu, P(S({}, t.attrs), {
caption: t.attrs.caption,
size: t.attrs.size || void 0,
isEditor: !0
})), e), e
} catch (e) {
return console.error("Error rendering DigestPostEmbedWeb", e), Oe({
msg: null,
node: t,
err: e,
group: "block"
})
}
return bQ(t)
},
toDOMStatic: t => ["div", {
class: Gs,
"data-attrs": JSON.stringify(S({
isEmail: !0
}, t.attrs))
}]
},
gQ = F({
name: "digestPostEmbed",
nodeSpec: cd,
addNodeView() {
return kt(hQ)
},
addCommands() {
return {
convertDigestPostEmbedToLinkV2: ({
pos: t,
url: e
}) => ({
dispatch: n,
state: s,
chain: a
}) => {
if (n) {
const o = s.tr,
r = t,
i = r + e.length;
return a().setNodeSelection(t).deleteSelection().command(({
tr: c
}) => (c.insertText(e, r), !0)).command(({
tr: c
}) => (c.addMark(r, i + 1, s.schema.marks.link.create({
text: e,
href: e
})), !0)).setTextSelection(Ee.create(o.doc, r, i + 1)).scrollIntoView().focus(i + 2).run()
}
return !0
},
convertDigestPostEmbedToEmbeddedPostV2: ({
pos: t,
attrs: e
}) => ({
dispatch: n,
chain: s
}) => {
if (n) {
const a = {
id: e.id,
url: e.url,
title: e.title,
publication_name: e.publication_name,
publication_logo_url: e.publication_logo_url,
date: e.post_date,
comment_count: e.comment_count,
bylines: e.publishedBylines
};
return s().setNodeSelection(t).deleteCurrentNode().insertContent({
type: "embeddedPost",
attrs: a
}).run()
}
return !0
}
}
}
}),
bQ = t => ["div", {
class: Gs,
"data-attrs": JSON.stringify(t.attrs)
}],
Yr = (t, {
customSchema: e
} = {}) => {
var a, o, r, i;
if (e && !e.nodes.digestPostEmbed) return null;
const n = lt(t);
if (!n) return null;
const s = $l({
url: t,
currentSubdomain: (o = (a = window._preloads) == null ? void 0 : a.pub) == null ? void 0 : o.subdomain,
currentCustomDomain: (i = (r = window._preloads) == null ? void 0 : r.pub) == null ? void 0 : i.custom_domain
});
return n && (n.pathname.startsWith("/p/") || Ul(n)) && s ? t : null
},
ld = t => N(void 0, null, function*() {
const e = yield he.get("/api/v1/posts/digest_embed").query({
url: t.trim()
}), {
pub: n,
post: s
} = e.body, d = s, {
truncated_body_text: a
} = d, o = st(d, ["truncated_body_text"]), {
name: r,
logo_url: i
} = n, l = na(o, ["title", "publishedBylines", "post_date", "cover_image", "cover_image_alt", "canonical_url", "section_name", "id", "type", "reaction_count", "comment_count"]);
return P(S({
caption: a != null ? a : "",
size: "lg",
isEditor: !0
}, l), {
publishedBylines: l.publishedBylines.map(m => na(m, ["id", "name", "bio", "photo_url", "is_guest", "bestseller_tier", "primaryPublicationSubscribeUrl", "primaryPublicationUrl", "primaryPublicationName", "primaryPublicationId"])),
publication_name: r,
publication_logo_url: i != null ? i : ""
})
}),
vQ = `<svg width="19" height="19" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M3 18V12C3 9.61305 3.94821 7.32387 5.63604 5.63604C7.32387 3.94821 9.61305 3 12 3C14.3869 3 16.6761 3.94821 18.364 5.63604C20.0518 7.32387 21 9.61305 21 12V18"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M21 19C21 19.5304 20.7893 20.0391 20.4142 20.4142C20.0391 20.7893 19.5304 21 19 21H18C17.4696 21 16.9609 20.7893 16.5858 20.4142C16.2107 20.0391 16 19.5304 16 19V16C16 15.4696 16.2107 14.9609 16.5858 14.5858C16.9609 14.2107 17.4696 14 18 14H21V19ZM3 19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H6C6.53043 21 7.03914 20.7893 7.41421 20.4142C7.78929 20.0391 8 19.5304 8 19V16C8 15.4696 7.78929 14.9609 7.41421 14.5858C7.03914 14.2107 6.53043 14 6 14H3V19Z"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>`,
xQ = `<svg width="32" height="32" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path
className="inner-triangle"
d="M10 8L16 12L10 16V8Z"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>`,
ud = {
attrs: {
id: {
default: null
},
url: {
default: null
},
publication_id: {
default: null
},
publication_name: {
default: null
},
publication_logo_url: {
default: null
},
title: {
default: null
},
truncated_body_text: {
default: null
},
date: {
default: null
},
like_count: {
default: null
},
comment_count: {
default: null
},
bylines: {
default: null
},
utm_campaign: {
default: null
},
belowTheFold: {
default: !1
},
type: {
default: null
},
language: {
default: "en"
}
},
untrackedAttrs: ["truncated_body_text", "bylines"],
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.embedded-post-wrap",
getAttrs: re
}],
toDOM: t => {
const {
publication_logo_url: e,
publication_name: n,
title: s,
truncated_body_text: a,
url: o,
bylines: r,
date: i,
like_count: c,
comment_count: l,
utm_campaign: u,
id: d,
type: m,
language: f
} = t.attrs, {
iString: h
} = I18N.i(f), g = yt(o, {
utm_source: qe.substack,
utm_campaign: u || Ut.postEmbed,
utm_medium: Kn.web
});
g === "" && console.error(`Invalid path (${o}) for post: ${d}`);
const b = document.createElement("div");
b.classList.add("embedded-post-title-icon"), b.innerHTML = vQ;
const x = document.createElement("div");
return x.classList.add("embedded-post-cta-icon"), x.innerHTML = xQ, ["div", {
class: "embedded-post-wrap",
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "EmbeddedPostToDOM"
},
["a", {
class: "embedded-post",
native: !0,
href: g
},
["div", {
class: "embedded-post-header"
}, e ? ["img", {
class: "embedded-post-publication-logo",
src: q(e, 56),
loading: t.attrs.belowTheFold ? "lazy" : null
}] : ["span", {}],
["span", {
class: "embedded-post-publication-name"
}, n || h("Failed to embed post")]
],
["div", {
class: "embedded-post-title-wrapper"
}, ...m === "podcast" ? [b] : [],
["div", {
class: "embedded-post-title"
}, s || h("Failed to embed post")]
], ...a ? [
["div", {
class: "embedded-post-body"
}, Oi(a)]
] : [],
["div", {
class: "embedded-post-cta-wrapper"
}, ...m === "podcast" ? [x] : [],
["span", {
class: "embedded-post-cta"
}, h(m === "podcast" ? "Listen now" : "Read more")]
],
["div", {
class: "embedded-post-meta"
}, Li({
date: i,
bylines: r,
like_count: c,
comment_count: l,
language: f
})]
]
]
},
toDOMStatic: t => {
const {
publication_logo_url: e,
publication_name: n,
title: s,
truncated_body_text: a,
url: o,
bylines: r,
date: i,
like_count: c,
comment_count: l,
utm_campaign: u,
type: d,
language: m
} = t.attrs, {
iString: f
} = I18N.i(m), h = yt(o, {
utm_source: qe.substack,
utm_campaign: u || Ut.postEmbed,
utm_medium: Kn.email
}), g = q("/img/podcast-headphones.svg", 19, {
format: "png"
}), b = q("/img/audio-player-play.png", 12);
return ["div", {
class: "embedded-post-wrap",
"data-component-name": "EmbeddedPostToDOMStatic"
},
["div", {
class: "embedded-post"
},
["div", {
class: "embedded-post-header"
}, e ? ["img", {
class: "embedded-post-publication-logo",
src: q(e, 56),
width: 28,
height: 28
}] : ["span", {}],
["span", {
class: "embedded-post-publication-name"
}, n || f("Failed to embed post")]
],
["div", {
class: "embedded-post-title-wrapper"
}, ...d === "podcast" ? [
["img", {
class: "embedded-post-title-icon embedded-post-title-icon-static",
src: g
}]
] : [],
["a", {
class: "embedded-post-title",
href: h || "#"
}, s || f("Failed to embed post")]
], ...a ? [
["div", {
class: "embedded-post-body"
}, Oi(a)]
] : [
["br"],
["br"]
],
["div", {
class: "embedded-post-cta-wrapper"
}, ...d === "podcast" ? [
["img", {
width: 12,
height: 12,
class: "embedded-post-cta-icon-static",
src: b
}]
] : [],
["a", {
class: "embedded-post-cta",
href: h || "#"
}, f(d === "podcast" ? "Listen now" : "Read more")]
],
["div", {
class: "embedded-post-meta"
}, Li({
date: i,
bylines: r,
like_count: c,
comment_count: l,
language: m
})]
]
]
}
},
yQ = F({
name: "embeddedPost",
nodeSpec: ud,
addCommands() {
return {
insertEmbeddedPost: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
})
}
}
}),
pd = (t, {
customSchema: e,
forceAllowOwnPub: n = !1
} = {}) => {
var r, i, c, l;
if (e && !e.nodes.embeddedPost) return null;
const s = lt(t);
if (!s) return null;
const o = $l({
url: t,
currentSubdomain: (i = (r = window._preloads) == null ? void 0 : r.pub) == null ? void 0 : i.subdomain,
currentCustomDomain: (l = (c = window._preloads) == null ? void 0 : c.pub) == null ? void 0 : l.custom_domain
}) && !n;
return s && (s.pathname.startsWith("/p/") || Ul(s)) && !o ? t : null
},
wQ = t => N(void 0, null, function*() {
const e = (yield Z(() =>
import ("./sortBy-53166f8e.js").then(n => n.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default;
try {
return (yield e.get("/api/v1/posts/embed").query({
url: t.trim()
})).body
} catch (n) {
return null
}
}),
dd = (s, ...a) => N(void 0, [s, ...a], function*(t, {
customSchema: e,
language: n = "en"
} = {}) {
const r = (e ? {
schema: e
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema,
i = yield wQ(t);
return i ? r.nodes.embeddedPost.create(P(S({}, i), {
language: n
})) : null
}),
Eo = t => t ? {
style: `background-color: ${t}`
} : {},
fa = {
attrs: {
id: {
default: null
},
name: {
default: ""
},
logo_url: {
default: null
},
base_url: {
default: null
},
hero_text: {
default: null
},
author_name: {
default: null
},
show_subscribe: {
default: !0
},
logo_bg_color: {
default: null
},
language: {
default: "en"
}
},
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.embedded-publication-wrap",
getAttrs: re
}],
toDOMWithSubscribe: t => {
const {
name: e,
logo_url: n,
base_url: s,
hero_text: a,
author_name: o,
logo_bg_color: r,
language: i
} = t.attrs, {
iString: c,
iTemplate: l
} = I18N.i(i);
return ["div", {
class: "embedded-publication-wrap",
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "EmbeddedPublicationToDOMWithSubscribe"
},
["div", {
class: "embedded-publication show-subscribe"
},
["a", {
class: "embedded-publication-link-part",
native: !0,
href: yt(s, {
utm_source: qe.substack,
utm_campaign: Ut.publicationEmbed,
utm_medium: Kn.web
})
}, ...n ? [
["img", S({
class: "embedded-publication-logo",
src: q(n),
width: 56,
height: 56
}, Eo(r))]
] : [],
["h3", {
class: "embedded-publication-name"
}, e || c("Failed to embed publication")], ...a ? [
["div", {
class: "embedded-publication-hero-text"
}, a]
] : [], ...o && !e.includes(o) ? [
["div", {
class: "embedded-publication-author-name"
}, l `By ${o}`]
] : []
],
["form", {
class: "embedded-publication-subscribe",
method: "GET",
action: If({
base_url: s
}, {
addBase: !0
})
},
["input", {
type: "hidden",
name: "source",
value: "publication-embed"
}],
["input", {
type: "hidden",
name: "autoSubmit",
value: "true"
}],
["input", {
type: "email",
class: "email-input",
name: "email",
placeholder: c("Type your email...")
}],
["input", {
type: "submit",
class: "button primary",
value: c("Subscribe")
}]
]
]
]
},
toDOMWithoutSubscribe: t => {
const {
name: e,
logo_url: n,
base_url: s,
hero_text: a,
author_name: o,
logo_bg_color: r,
language: i
} = t.attrs, {
iString: c,
iTemplate: l
} = I18N.i(i);
return ["div", {
class: "embedded-publication-wrap",
"data-attrs": JSON.stringify(t.attrs)
},
["a", {
class: "embedded-publication embedded-publication-flex",
native: !0,
href: yt(s, {
utm_source: qe.substack,
utm_campaign: Ut.publicationEmbed,
utm_medium: Kn.web
})
}, ...n ? [
["div", {
class: "embedded-publication-left"
},
["img", S({
class: "embedded-publication-logo",
src: q(n),
width: 40,
height: 40
}, Eo(r))]
]
] : [],
["div", {
class: "embedded-publication-right"
},
["h3", {
class: "embedded-publication-name"
}, e || c("Failed to embed publication")], ...a ? [
["div", {
class: "embedded-publication-hero-text"
}, a]
] : [], ...o && !e.includes(o) ? [
["div", {
class: "embedded-publication-author-name"
}, l `By ${o}`]
] : []
]
]
]
},
toDOMStatic: t => {
const {
name: e,
logo_url: n,
base_url: s,
hero_text: a,
author_name: o,
logo_bg_color: r
} = t.attrs, i = yt(s, {
utm_source: qe.substack,
utm_campaign: Ut.publicationEmbed,
utm_medium: Kn.email
});
return ["div", {
class: "embedded-publication-wrap",
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "EmbeddedPublicationToDOMStatic"
},
["table", {
class: "embedded-publication"
},
["tr", {}, ...n ? [
["td", {
class: "embedded-publication-left",
valign: "top",
width: 56
},
["img", S({
class: "embedded-publication-logo",
src: q(n),
width: 40,
height: 40
}, Eo(r))]
]
] : [],
["td", {
class: "embedded-publication-right"
},
["h3", {
class: "embedded-publication-name"
},
["a", {
href: i
}, e || "Failed to embed publication"]
], ...a ? [
["div", {
class: "embedded-publication-hero-text"
},
["a", {
href: i
}, a]
]
] : [], ...o && !e.includes(o) ? [
["div", {
class: "embedded-publication-author-name"
},
["a", {
href: i
}, `By ${o}`]
]
] : []
]
]
]
]
},
toDOM: t => t.attrs.show_subscribe ? fa.toDOMWithSubscribe(t) : fa.toDOMWithoutSubscribe(t)
},
kQ = F({
name: "embeddedPublication",
nodeSpec: fa,
addCommands() {
return {
insertEmbeddedPublication: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
})
}
}
}),
md = (t, {
customSchema: e
} = {}) => {
if (e && !e.nodes.embeddedPublication) return null;
const n = lt(t);
return n && (!n.pathname || n.pathname === "/") ? t : null
},
fd = t => N(void 0, null, function*() {
const e = (yield Z(() =>
import ("./sortBy-53166f8e.js").then(n => n.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default;
try {
const n = yield e.get("/api/v1/publication/embed").query({
url: t.trim()
});
return n.body.id ? n.body : null
} catch (n) {
return null
}
}),
_Q = t => N(void 0, null, function*() {
const e = yield fd(t);
return e ? P(S({}, e), {
show_subscribe: !0
}) : null
}),
hd = (n, ...s) => N(void 0, [n, ...s], function*(t, {
customSchema: e
} = {}) {
const o = (e ? {
schema: e
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema,
r = yield _Q(t);
return r ? o.nodes.embeddedPublication.create(r) : null
}),
gd = {
attrs: {
collection: {
default: ""
},
collection_slug: {
default: ""
},
creator: {
default: ""
},
description: {
default: ""
},
image_url: {
default: ""
},
name: {
default: ""
},
animation_url: {
default: ""
},
nft_logo_url: {
default: ""
},
permalink: {
default: ""
},
youtube_url: {
default: null
},
belowTheFold: {
default: !1
}
},
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.opensea",
getAttrs: re
}],
toDOMStatic: TQ,
toDOM: DQ
},
CQ = F({
name: "opensea",
nodeSpec: gd,
addCommands() {
return {
insertOpensea: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
})
}
}
}),
EQ = t => {
var e, n, s;
return (s = (n = (e = lt(t)) == null ? void 0 : e.pathname.match(/assets\/(ethereum\/)?(.+)/)) == null ? void 0 : n[2]) == null ? void 0 : s.split("/")[0]
},
AQ = t => {
var e, n, s;
return (s = (n = (e = lt(t)) == null ? void 0 : e.pathname.match(/assets\/(ethereum\/)?(.+)/)) == null ? void 0 : n[2]) == null ? void 0 : s.split("/")[1]
},
SQ = t => N(void 0, null, function*() {
return (yield he.get("/api/v1/opensea").query({
contract: EQ(t),
token_id: AQ(t)
})).body
}),
bd = (n, s) => N(void 0, [n, s], function*(t, {
customSchema: e
}) {
return e.nodes.opensea.create(yield SQ(t))
});
function TQ(t) {
const e = document.createElement("div");
e.className = "opensea static", e.setAttribute("data-component-name", "OpenseaToDOMStatic");
const n = document.createElement("table");
n.className = "opensea-header-table";
const s = document.createElement("tr");
s.className = "opensea-header-row";
const a = document.createElement("tr"),
o = document.createElement("td"),
r = document.createElement("a");
r.className = "opensea-title", t.attrs.permalink && r.setAttribute("href", t.attrs.permalink), r.textContent = t.attrs.name, o.appendChild(r), a.appendChild(r);
const i = document.createElement("tr"),
c = document.createElement("td"),
l = document.createElement("a");
l.className = "opensea-collection", t.attrs.collection_slug && l.setAttribute("href", `https://opensea.io/collection/${t.attrs.collection_slug}`), l.textContent = it(t.attrs.collection, 50), c.appendChild(l), i.appendChild(c);
const u = document.createElement("td"),
d = document.createElement("table");
u.className = "opensea-masthead", d.appendChild(a), d.appendChild(i), u.appendChild(d);
const m = document.createElement("td");
m.className = "nft-logo";
const f = document.createElement("a"),
h = document.createElement("img");
t.attrs.nft_logo_url && h.setAttribute("src", q(t.attrs.nft_logo_url)), t.attrs.permalink && f.setAttribute("href", t.attrs.permalink), t.attrs.belowTheFold && f.setAttribute("loading", "lazy"), f.appendChild(h), m.appendChild(f), s.appendChild(u), s.appendChild(m), n.appendChild(s);
const g = document.createElement("a");
t.attrs.permalink && g.setAttribute("href", t.attrs.permalink);
const b = document.createElement("img");
b.className = "opensea-image", t.attrs.image_url && b.setAttribute("src", q(t.attrs.image_url, 600, {
crop: "fill"
})), b.setAttribute("alt", t.attrs.name), b.setAttribute("width", "500"), t.attrs.belowTheFold && b.setAttribute("loading", "lazy"), g.appendChild(b);
const x = document.createElement("table");
x.className = "opensea-footer-table";
const v = document.createElement("tr"),
w = document.createElement("td");
w.className = "opensea-description", w.textContent = it(t.attrs.description, 200), v.appendChild(w);
const E = document.createElement("tr"),
_ = document.createElement("td"),
k = document.createElement("a");
_.className = "opensea-creator", t.attrs.creator && k.setAttribute("href", `https://opensea.io/${t.attrs.creator}?tab=created`), k.textContent = `Created by ${it(t.attrs.creator,50)}`, _.appendChild(k), E.appendChild(_);
const M = document.createElement("tr"),
y = document.createElement("td"),
T = document.createElement("a"),
D = document.createElement("table"),
C = document.createElement("tr"),
L = document.createElement("td");
return T.className = "opensea-cta-link", t.attrs.permalink && T.setAttribute("href", t.attrs.permalink), D.setAttribute("cellspacing", "16"), D.className = "opensea-cta-table", L.className = "opensea-cta", L.textContent = "View on OpenSea", C.appendChild(L), D.appendChild(C), T.appendChild(D), y.appendChild(T), M.appendChild(y), t.attrs.description && x.appendChild(v), x.appendChild(E), x.appendChild(M), e.appendChild(n), e.appendChild(g), e.appendChild(x), e.querySelectorAll && Array.prototype.forEach.call(e.querySelectorAll("a"), R => {
R.target = "_blank"
}), e
}
function DQ(t) {
const e = document.createElement("div");
e.className = "opensea", e.setAttribute("data-component-name", "OpenseaToDOM");
const n = document.createElement("a");
n.className = "opensea-title", t.attrs.permalink && n.setAttribute("href", t.attrs.permalink), n.textContent = t.attrs.name;
const s = document.createElement("a");
s.className = "opensea-collection", t.attrs.collection_slug && s.setAttribute("href", `https://opensea.io/collection/${t.attrs.collection_slug}`), s.textContent = it(t.attrs.collection, 50);
const a = document.createElement("div");
a.className = "opensea-masthead", a.appendChild(n), a.appendChild(s);
const o = document.createElement("a");
t.attrs.permalink && o.setAttribute("href", t.attrs.permalink);
const r = document.createElement("img");
t.attrs.nft_logo_url && r.setAttribute("src", q(t.attrs.nft_logo_url)), t.attrs.belowTheFold && r.setAttribute("loading", "lazy"), o.appendChild(r);
const i = document.createElement("div");
i.className = "opensea-header", i.appendChild(a), i.appendChild(o);
const c = document.createElement("a");
t.attrs.permalink && c.setAttribute("href", t.attrs.permalink), c.className = "opensea-media-link";
let l, u;
const d = ["gltf", "glb", "webm", "mp4", "m4v", "ogv", "ogg"],
f = ["mp3", "wav", "oga"].some(k => {
var M;
return (M = t.attrs.animation_url) == null ? void 0 : M.endsWith(k)
}),
h = d.some(k => {
var M;
return (M = t.attrs.animation_url) == null ? void 0 : M.endsWith(k)
}),
g = !t.attrs.animation_url,
b = t.attrs.animation_url && !f && !h;
(g || f || b || t.attrs.youtube_url) && (u = document.createElement("img"), u.className = "opensea-image", t.attrs.image_url && u.setAttribute("src", q(t.attrs.image_url, 600, {
crop: "fill"
})), t.attrs.belowTheFold && u.setAttribute("loading", "lazy"), u.setAttribute("alt", t.attrs.name), c.appendChild(u)), (f || h) && (l = document.createElement(f ? "audio" : "video"), l.className = "opensea-player", l.setAttribute("controls", !0), l.setAttribute("loop", !0), l.setAttribute("src", t.attrs.animation_url), l.setAttribute("alt", "OpenSea NFT media"), t.attrs.belowTheFold && l.setAttribute("loading", "lazy")), u && c.appendChild(u), l && c.appendChild(l);
const v = document.createElement("div");
v.className = "opensea-description", v.textContent = it(t.attrs.description, 200);
const w = document.createElement("a");
w.className = "opensea-creator", t.attrs.creator && w.setAttribute("href", `https://opensea.io/${t.attrs.creator}?tab=created`), w.textContent = `Created by ${it(t.attrs.creator,50)}`;
const E = document.createElement("a");
E.className = "opensea-cta", t.attrs.permalink && E.setAttribute("href", t.attrs.permalink), E.textContent = "View on OpenSea";
const _ = document.createElement("div");
return _.className = "opensea-footer", t.attrs.description && _.appendChild(v), _.appendChild(w), _.appendChild(E), e.appendChild(i), e.appendChild(c), e.appendChild(_), e.querySelectorAll && Array.prototype.forEach.call(e.querySelectorAll("a"), k => {
k.target = "_blank"
}), e
}
const IQ = /^https:\/\/opensea.io\/assets\/.+/,
vd = t => {
const e = IQ.exec(t);
return e && e[0]
},
xd = t => vd(t) !== null,
Kr = new Set,
NQ = wr((t, e, n) => {
const s = e.trim();
fd(s).then(a => {
a && (Kr.add(s), e === t.target.value && n.classList.add("has-substack-link"))
})
}, 250, {
maxWait: 1e3
});
function MQ(t, e) {
if ("target" in t && t.target && "className" in t.target && t.target.className === "url-input" && "value" in t.target) {
const {
value: n
} = t.target, s = n.trim();
if (Kr.has(s) || pd(s) || Yr(s)) {
e.classList.add("has-substack-link");
return
}
if (xd(s)) {
e.classList.add("has-opensea-link");
return
}
md(s) && NQ(t, n, e), e.classList.remove("has-substack-link"), e.classList.remove("has-opensea-link")
}
}
function OQ(t, {
scrollParent: e,
publication: n,
language: s
} = {}) {
const {
iString: a,
iTemplate: o
} = I18N.i(s != null ? s : "en"), r = o `Link ${Vl()}K`;
return new ad({
class: "mark-menu-item",
title: r,
icon: HZ,
active(i) {
return !!(er(i, [i.schema.nodes.image2, i.schema.nodes.image3]) ? da(i) : Qo(i, t)) || cQ(i, t)
},
enable() {
return !0
},
run(i, c, l) {
const u = Qo(i, t);
let d, m, f, h;
u ? (d = u.pos, m = u, f = Wp(i, u.pos.from, u.pos.to, {
allowedMarks: [t]
}), h = u.node.textContent) : (d = i.selection, m = bZ(i, t), f = vZ(i, {
allowedMarks: [t]
}), h = i.doc.textBetween(i.selection.from, i.selection.to));
const g = er(i, [i.schema.nodes.captionedImage, i.schema.nodes.image2, i.schema.nodes.image3, i.schema.nodes.caption].filter(Boolean)),
b = g ? da(i) : null;
f = f && !g;
const x = l.dom.parentNode,
v = {
className: "create-link-menu",
submitText: a("Link"),
parent: r,
title: a("Create a link"),
fields: {},
root: x,
scrollParent: e,
position: (C, L) => Yp(l, d, C, L),
onInput: MQ,
language: s
};
f && v.fields && (v.fields.text = new Va({
label: a("Enter textโ€ฆ"),
className: "text-input",
value: h,
required: !0
})), v.fields && (v.fields.href = new iQ(m, b, s)), v.onSubmit = C => {
const L = i.tr;
if (g) Jp(i, L, C.href);
else if (i.selection.empty && !u) {
const R = i.selection.from,
A = R + C.text.length;
L.insertText(C.text), L.addMark(R, A, t.create(C)), L.setSelection(Ee.create(L.doc, R, A))
} else C.text && C.text !== h ? (L.insertText(C.text, d.from), L.setSelection(Ee.create(L.doc, d.from, d.from + C.text.length)), L.deleteRange(d.from + C.text.length, d.to + C.text.length), L.addMark(d.from, d.from + C.text.length, t.create(C))) : L.addMark(d.from, d.to, t.create(C));
if (c) return l.dispatch(L), !0
}, v.onClose = () => {
l.focus()
};
const w = C => N(this, null, function*() {
C.preventDefault();
const L = document.querySelector(".create-link-menu .url-input");
if (!L) {
console.warn("could not find input for creating link menu selecting for ['.create-link-menu .url-input']");
return
}
const A = L.value.trim();
let I;
Jr(v);
const O = Ye.add(l, d.pos, De);
try {
if (se(ae.EMBED_URL_ATTEMPTED, {
url: A,
source: "link-menu"
}), xd(A)) I = yield bd(A, {
customSchema: l.state.schema
});
else if (Kr.has(A)) I = yield hd(A);
else if (Yr(A)) try {
const B = yield ld(A);
I = l.state.schema.nodes.digestPostEmbed.create(P(S({}, B), {
isEditorNode: !0,
nodeId: ka()
}))
} catch (B) {
console.error(B), alert(a("Failed to find post. Please check the link and try again."))
} else I = yield dd(A, {
customSchema: l.state.schema,
language: n == null ? void 0 : n.language
});
if (se(ae.EMBED_URL_SUCCEEDED, {
url: A,
source: "link-menu"
}), I) Ye.replace(l, O, I);
else throw Ye.remove(l, O), Error("No embed found")
} catch (B) {
se(ae.EMBED_URL_FAILED, {
url: A,
source: "link-menu"
}), alert(a("Embed failed. Please check the url and try again."))
}
}),
E = document.createElement("div");
E.className = "create-link-menu-footer";
const _ = new DocumentFragment;
_.append(document.createTextNode(o `Thereโ€™s a fancier way to share Substack links with your readers:`));
const k = document.createElement("a");
k.innerText = o `Convert your link into an embed`, k.href = "#", k.addEventListener("click", w), _.append(k), E.append(_), v.footer = E;
const M = document.createElement("div");
M.className = "opensea-embed-footer";
const y = new DocumentFragment,
T = document.createElement("b");
T.textContent = "Tip: ", y.append(T), y.append(document.createTextNode("You can also "));
const D = document.createElement("a");
D.innerText = "embed your OpenSea NFT", D.href = "#", D.addEventListener("click", w), y.append(D), y.append(document.createTextNode(" to give your readers a visual preview.")), M.append(y), v.openseaEmbedFooter = M, ma(v)
}
}, "link")
}
const ul = typeof navigator != "undefined" ? /Mac/.test(navigator.platform) : !1,
LQ = (t, e) => {
const n = ["preformatted_text_block", "code_block", "codeBlock", "latex_block"],
{
$anchor: s
} = t.selection,
{
parent: a
} = s;
if (!a || !n.includes(a.type.name)) return !1;
if (!a.textContent.length && e) {
const {
tr: o
} = t;
return e(o.delete(o.selection.from - 1, o.selection.to + 1)), !0
}
return !1
};
function RQ(t) {
const e = {};
let n;
function s(a, o) {
const r = e[a];
r ? e[a] = function(i, c) {
return r(i, c) || o(i, c)
} : e[a] = o
}
if (s("Mod-z", jh), s("Shift-Mod-z", Ui), s("Backspace", RZ), s("Backspace", LQ), ul || s("Mod-y", Ui), s("Alt-ArrowUp", dh), s("Alt-ArrowDown", mh), s("Mod-BracketLeft", fh), s("Mod-k", yd(t)), (n = t.marks.strong || t.marks.bold) && (s("Mod-b", St(n)), s("Mod-B", St(n))), (n = t.marks.em || t.marks.italic) && (s("Mod-i", St(n)), s("Mod-I", St(n))), (n = t.marks.strikethrough || t.marks.strike) && (s("Shift-Mod-x", St(n)), s("Shift-Mod-X", St(n))), (n = t.marks.code) && s("Mod-`", St(n)), (n = t.nodes.blockquote) && s("Ctrl->", hh(n)), (n = t.marks.superscript) && s("Mod-.", St(n)), (n = t.marks.subscript) && s("Mod->", St(n)), n = t.nodes.hard_break || t.nodes.hardBreak) {
const a = n,
o = eo(vh, (r, i) => (i && i(r.tr.replaceSelectionWith(a.create()).scrollIntoView()), !0));
s("Mod-Enter", o), s("Shift-Enter", o), ul && s("Ctrl-Enter", o)
}
if ((n = t.nodes.list_item || t.nodes.listItem) && (s("Enter", gh(n)), s("Shift-Tab", eo(xh(n), () => !0)), s("Tab", eo(yh(n), () => !0))), n = t.nodes.heading)
for (let a = 1; a <= 6; a++) s(`Shift-Ctrl-${a}`, bh(n, {
level: a
}));
return e
}
const yd = t => (e, n, s) => {
var a, o;
return n && OQ(t.marks.link, {
scrollParent: ".editor-scroll",
language: typeof window != "undefined" ? (o = (a = window == null ? void 0 : window._preloads) == null ? void 0 : a.publication) == null ? void 0 : o.language : null
}).spec.run(e, n, s), !0
},
Ha = (t, e, n, s, {
targetUrl: a
} = {}) => {
let o = ["td", {
class: "audio-details",
"data-component-name": "AudioEmbedStatic"
},
["p", {
class: "title"
}, e],
["p", {
class: "subtitle"
}, n]
];
s && (o = [...o, ["p", {
class: "metadata"
}, s]]);
const r = ["table", {
class: "audio-embed-static",
cellspacing: "12",
"data-component-name": "AudioEmbedStaticTable"
},
["tr", {},
["td", {
class: "thumbnail-container"
},
["div", {
class: "play-container"
},
["img", {
class: "play",
src: q("/img/thumbnail-play.png", 72),
height: 36,
width: 36
}]
],
["img", {
class: "thumbnail",
src: q(t, 160),
height: 80,
width: 80
}]
], o
]
];
return a ? ["a", {
class: "audio-embed-static-outer",
href: a,
target: "_blank",
"data-component-name": "AudioEmbedStaticLink"
}, r] : r
},
PQ = t => {
const {
url: e,
isEpisode: n
} = t.attrs;
return ["div", {
class: "apple-podcast-container",
"data-component-name": "ApplePodcastToDom"
},
["iframe", {
class: `apple-podcast ${n?"":"episode-list"}`,
"data-attrs": JSON.stringify(t.attrs),
src: e,
frameborder: "0",
allow: "autoplay *; encrypted-media *;",
allowfullscreen: "true"
}]
]
},
BQ = t => {
const {
imageUrl: e,
isEpisode: n,
podcastTitle: s,
podcastByline: a,
duration: o,
numEpisodes: r,
targetUrl: i
} = t.attrs;
let c = t.attrs.title,
l = s,
u = Hl(o / 1e3);
return n || (c = s, l = a, u = Nf(r, "episode", {
zero_fallback: "No episodes"
})), Ha(e, c, l, u, {
targetUrl: i
})
},
wd = {
attrs: {
url: {
default: ""
},
isEpisode: {
default: !1
},
imageUrl: {
default: ""
},
title: {
default: ""
},
podcastTitle: {
default: ""
},
podcastByline: {
default: ""
},
duration: {
default: ""
},
numEpisodes: {
default: ""
},
targetUrl: {
default: ""
},
releaseDate: {
default: ""
}
},
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDom: [{
tag: "iframe.apple-podcast",
getAttrs: re
}],
toDOM: PQ,
toDOMStatic: BQ
},
zQ = /[<iframe]?.*[src="]?(https?:\/\/(embed\.)?podcasts\.apple\.com\/([^/]+)?\/?podcast\/([^/]+)\/?(id\d+)\??(i=(\d+))?)[\S]*/,
kd = t => {
const e = zQ.exec(t);
return e ? {
match: e[0],
embedLink: e[2],
countryCode: e[3],
slug: e[4],
podcastId: e[5].substr(2),
episodeId: e[7]
} : {
match: !1
}
},
qQ = F({
name: "applePodcast",
nodeSpec: wd,
addCommands() {
return {
insertApplePodcast: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
})
}
}
}),
FQ = (t, {
customSchema: e
} = {}) => e && !e.nodes.applePodcast ? null : kd(t).match || null,
jQ = t => N(void 0, null, function*() {
const e = kd(t),
{
slug: n,
podcastId: s,
episodeId: a,
countryCode: o
} = e,
i = (yield he.get("/api/v1/apple_podcast").query({
slug: n,
podcastId: s,
episodeId: a,
country: o
})).body;
return S({
url: UQ(e),
isEpisode: !!e.episodeId
}, i)
}),
$Q = (n, ...s) => N(void 0, [n, ...s], function*(t, {
customSchema: e
} = {}) {
return (e ? {
schema: e
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.applePodcast.create(yield jQ(t))
}),
UQ = ({
countryCode: t,
slug: e,
podcastId: n,
episodeId: s
}) => {
const a = t || "us",
o = s ? `?i=${s}` : "",
r = encodeURIComponent(e || "");
return `https://embed.podcasts.apple.com/${a}/podcast/${r}/id${n}${o}`
},
VQ = "_container_1ctwc_1",
HQ = "_icon_1ctwc_6",
Ao = {
container: VQ,
icon: HQ
},
_d = ({}) => {
const t = p(X.B4, {
translated: !0
}, "This may be a temporary error, please refresh the page to try again.");
return p(wt, null, p(Y, {
alignItems: "center",
justifyContent: "center",
className: Ao.container
}, p(Eb, {
className: Ao.icon
}), p(ne, {
alignItems: "center",
gap: 4
}, p(X.Meta, {
translated: !0,
color: "pub-accent"
}, "Image not found"), p(Ug, {
content: t
}, p(Cb, {
size: 12,
className: Ao.icon
})))))
},
pl = "image-asset-error",
Cd = {
attrs: {
url: {
default: ""
}
},
group: "block",
defining: !0,
parseDOM: [{
tag: `div.${pl}`,
getAttrs: re
}],
toDOM: t => {
if (typeof window != "undefined") try {
t.attrs.isEditor = !0;
const e = document.createElement("div");
return e.className = pl, e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(_d, {
node: S({}, t)
}), e), e
} catch (e) {
return console.error("Error rendering ImageAssetError", e), Oe({
msg: null,
node: t,
err: e,
group: "block"
})
}
return ["div", {
"data-attrs": JSON.stringify(S({}, t.attrs)),
"data-component-name": "AssetErrorToDOM"
},
[
["picture"],
["img", {
src: Gl,
height: Mf,
width: Of
}]
]
]
},
toDOMStatic: t => ["div", {
"data-attrs": JSON.stringify(S({}, t.attrs)),
"data-component-name": "AssetErrorToDOMStatic"
}]
},
GQ = F({
name: "assetError",
nodeSpec: Cd,
addNodeView() {
return kt(_d)
}
}),
WQ = ({
node: t
}) => p(wt, null, p(wu, {
label: t.attrs.label,
src: `/api/v1/audio/upload/${t.attrs.mediaUploadId}/src`,
duration: t.attrs.duration
})),
Ed = {
attrs: {
label: {
default: null
},
mediaUploadId: {
default: null
},
duration: {
default: null
},
isEditorNode: {
default: !1
}
},
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.native-audio-embed",
getAttrs: re
}],
toDOM: t => {
if (typeof window != "undefined" && t.attrs.isEditorNode) try {
const e = document.createElement("div");
return e.className = "native-audio-embed", e.setAttribute("data-attrs", JSON.stringify(t.attrs)), Fe(p(wu, {
label: t.attrs.label,
src: `/api/v1/audio/upload/${t.attrs.mediaUploadId}/src`,
duration: t.attrs.duration
}), e), e
} catch (e) {
return console.error("Error rendering AudioEmbedPlayer", e), Oe({
msg: null,
node: t,
err: e,
group: "block"
})
}
return dl(t)
},
toDOMStatic: t => dl(t)
},
JQ = F({
name: "audio",
nodeSpec: Ed,
addNodeView: () => kt(WQ),
addCommands() {
return {
insertAudio: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: P(S({}, t), {
isEditorNode: !0
})
})
}
}
}),
dl = t => ["div", {
class: "native-audio-embed",
"data-component-name": "AudioPlaceholder",
"data-attrs": JSON.stringify(t.attrs)
}],
YQ = t => ["div", {
class: "native-audio-url-embed",
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "AudioUrlPlaceholder"
}],
Ad = {
attrs: {
label: {
default: null
},
url: {
default: null
},
duration: {
default: null
}
},
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.native-audio-url-embed",
getAttrs: re
}],
toDOM: YQ
},
KQ = F({
name: "audioUrl",
nodeSpec: Ad
}),
Sd = {
attrs: {
request_id: {
default: null
},
url: {
default: null
},
src: {
default: null
},
type: {
default: null
}
},
untrackedAttrs: ["src"],
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "a.augmentation-placeholder",
getAttrs: re
}],
toDOM: t => ["a", {
class: "augmentation-placeholder image-link",
"data-attrs": JSON.stringify(t.attrs),
href: "javascript:void(0)",
"data-component-name": "AugmentationPlaceholderToDOM"
},
["img", {
src: t.attrs.src || Fl
}]
]
},
XQ = F({
name: "augmentation_placeholder",
nodeSpec: Sd,
addCommands() {
return {
insertLoadingPlaceholder: (t, e) => ({
commands: n
}) => e ? n.insertContentAt(e, {
type: this.name,
attrs: t
}) : n.insertContent({
type: this.name,
attrs: t
})
}
}
}),
ZQ = t => ["div", {
class: `bandcamp-wrap${t.attrs.is_album?" album":""}`,
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "BandcampToDOM"
},
["iframe", {
src: t.attrs.embed_url,
frameborder: "0",
gesture: "media",
scrolling: "no",
allowfullscreen: "true"
}]
],
QQ = t => {
const {
thumbnail_url: e,
author: n,
title: s,
description: a,
url: o
} = t.attrs;
return Ha(e, s, (n || "").toString(), a, {
targetUrl: o
})
},
Td = {
attrs: {
url: {
default: ""
},
title: {
default: ""
},
description: {
default: ""
},
thumbnail_url: {
default: ""
},
author: {
default: ""
},
embed_url: {
default: ""
},
is_album: {
default: ""
}
},
inline: !1,
group: "block",
draggable: !0,
atom: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.bandcamp-wrap",
getAttrs: re
}],
toDOM: ZQ,
toDOMStatic: QQ
},
eee = F({
name: "bandcamp",
nodeSpec: Td,
addCommands() {
return {
insertBandcamp: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
})
}
}
}),
Dd = /^.*(https?\:\/\/(\S+)?.bandcamp.com\/(...+)\/[^\/]+(\/[^\/]+)?(\?[\#]*)?(\#.*)?).*$/,
tee = t => {
const e = Dd.exec(t);
return e && e[1]
},
nee = t => {
const e = Dd.exec(t);
return !!e && e[3] === "album"
},
see = t => N(void 0, null, function*() {
const e = nee(t),
n = (yield Z(() =>
import ("./sortBy-53166f8e.js").then(r => r.c), ["assets/sortBy-53166f8e.js", "assets/x-933ea65f.js", "assets/tracking-5779d19a.js", "assets/_sentry-release-injection-file-9254565a.js", "assets/FlexBox-8b7f0d6c.js", "assets/FlexBox-644f665d.css", "assets/HoverCard-92fb7948.js", "assets/useResponsive-4f80f3bd.js", "assets/transition-d7aff1cb.js", "assets/_defineProperty-fcca2d9e.js", "assets/react-laag.esm-23de3db0.js", "assets/HoverCard-6364507e.css", "assets/responsive_img-3c51e57a.js", "assets/responsive_img-51b02764.css", "assets/sortBy-a6711bc6.css"])).default,
s = dr(t).theme === "dark" ? "dark" : "light",
o = (yield n.get("/api/v1/bandcamp").query({
url: t.trim(),
is_album: e,
theme: s
})).body;
return P(S({}, o), {
is_album: e
})
}),
aee = (n, ...s) => N(void 0, [n, ...s], function*(t, {
customSchema: e
} = {}) {
return (e ? {
schema: e
} : yield Z(() => Promise.resolve().then(() => Te), void 0)).schema.nodes.bandcamp.create(yield see(t))
}),
Xr = {
content: "block+",
group: "block",
parseDOM: [{
tag: "blockquote"
}, {
tag: "p",
priority: 100,
getAttrs: t => !t.style.marginLeft || t.style.marginLeft.startsWith("0") ? !1 : {}
}],
toDOM: () => ["blockquote", 0]
},
oee = kr.extend({
parseHTML() {
return Xr.parseDOM
},
addCommands() {
return {
setBlockquote: () => ({
state: t,
commands: e
}) => !gt(t, "paragraph") || gt(t, "pullquote") ? !1 : e.wrapIn(this.name),
toggleBlockquote: () => ({
state: t,
commands: e
}) => !gt(t, "paragraph") || gt(t, "pullquote") ? !1 : e.toggleWrap(this.name),
unsetBlockquote: () => ({
commands: t
}) => t.lift(this.name)
}
}
}),
Id = {
attrs: {
url: {
default: null
},
text: {
default: null
},
action: {
default: null
},
class: {
default: null
}
},
inline: !1,
atom: !0,
group: "block",
draggable: !0,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "p.button-wrapper[data-attrs]",
priority: 100,
getAttrs: re
}],
toDOM: t => Zr(t)
},
ree = F({
name: "button",
nodeSpec: Id,
addCommands() {
return {
insertSubscribeButton: t => ({
commands: e
}) => {
const n = {
url: ce.CHECKOUT_URL,
text: _n(t, {
now: !0
})
};
return e.insertContent({
type: this.name,
attrs: n
})
},
insertCustomButtonEditorV2: t => ({
commands: e
}) => e.insertContent({
type: this.name,
attrs: t
}),
insertSubscribeButtonWithPreamble: t => ({
commands: e,
editor: n
}) => {
const {
iTemplate: s
} = I18N.i({
pub: t
}), a = t.payments_state !== "enabled" ? s `Thanks for reading ${t.name}! Subscribe for free to receive new posts and support my work.` : s `${t.name} is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.`, o = {
url: ce.CHECKOUT_URL,
text: _n(t),
language: t.language
};
return e.insertContent({
type: "subscribeWidget",
attrs: o,
content: [n.schema.nodes.ctaCaption.create(null, [n.schema.text(a)]).toJSON()]
})
},
insertCaptionedShareButton: t => ({
commands: e,
editor: n
}) => {
const {
iString: s,
iTemplate: a
} = I18N.i({
pub: t
}), o = a `Thank you for reading ${t.name}. This post is public so feel free to share it.`, r = {
url: ce.SHARE_URL,
text: s("Share")
};
return e.insertContent({
type: "captionedShareButton",
attrs: r,
content: [n.state.schema.nodes.ctaCaption.create(null, [n.state.schema.text(o)]).toJSON()]
})
},
insertSharePostButton: t => ({
commands: e
}) => {
const {
iString: n
} = I18N.i({
pub: t
}), s = {
url: ce.SHARE_URL,
text: n("Share")
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertSharePubButton: t => ({
commands: e
}) => {
const {
iTemplate: n
} = I18N.i({
pub: t
}), s = {
url: ce.SHARE_PUB_URL,
text: n `Share ${t.name}`
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertCommentsButton: t => ({
commands: e
}) => {
const {
iString: n
} = I18N.i({
pub: t
}), s = {
url: ce.HALF_MAGIC_COMMENTS_URL,
text: n("Leave a comment")
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertGiftButton: t => ({
commands: e
}) => {
const {
iTemplate: n
} = I18N.i({
pub: t
}), s = {
url: `${ce.CHECKOUT_URL}&gift=true`,
text: Cn(t, () => n `Give a gift subscription`, a => `Give a gift ${a.subscription}`)
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertDonateButton: t => ({
commands: e
}) => {
const {
iString: n
} = I18N.i({
pub: t
}), s = {
url: `${ce.CHECKOUT_URL}&donate=true`,
text: n("Donate Subscriptions")
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertSurveyButton: (t, e, n) => ({
commands: s
}) => {
se(ae.READER_SURVEY_LINKED_IN_POST, {
editorVersion: "2",
surveyId: e.id
});
const a = {
url: `${Wl(t,e.id)}`,
text: n
};
return s.insertContent({
type: this.name,
attrs: a
})
},
insertGroupSubscriptionButton: ({
publication: t
}) => ({
commands: e
}) => {
const {
iTemplate: n
} = I18N.i({
pub: t
}), s = t.default_group_coupon, a = {
url: `${ce.CHECKOUT_URL}group=true${s?`&coupon=${s}`:""}`,
text: Cn(t, () => s && t.default_group_coupon_percent_off ? n `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group subscription` : n `Get a group subscription`, o => s && t.default_group_coupon_percent_off ? `Get ${t.default_group_coupon_percent_off.split(".")[0]}% off a group ${o.subscription}` : `Get a group ${o.subscription}`)
};
return e.insertContent({
type: this.name,
attrs: a
})
},
insertCoupon: (t, e, n = {}) => ({
commands: s
}) => {
const a = {
url: yt(`${t.base_url}/subscribe`, P(S({
coupon: e.id
}, e.group_only && {
group: !0
}), {
utm_content: n.postId
})),
text: `Get ${Jl(e)}`
};
return s.insertContent({
type: this.name,
attrs: a
})
},
insertReferralButton: t => ({
commands: e
}) => {
const {
iString: n
} = I18N.i({
pub: t
}), s = {
url: `${ce.LEADERBOARD_URL}&utm_source=${qe.post}`,
text: n("Refer a friend")
};
return e.insertContent({
type: this.name,
attrs: s
})
},
insertCaptionedWriterReferralButtonV2: ({
writerReferralCode: t,
publication: e,
postId: n
}) => ({
commands: s,
state: a,
dispatch: o
}) => {
if (!Le(a, a.schema.nodes.button)) return !1;
const {
iString: r,
iTemplate: i
} = I18N.i({
pub: e
}), c = i `Start writing today. Use the button below to create your Substack and connect your publication with ${e.name}`, l = {
url: `${Yl(t||"")}?utm_source=${qe.substack}&utm_context=${Kl.post}&utm_content=${n}&utm_campaign=${Ut.writerReferralButton}`,
text: r("Start a Substack")
}, u = a.schema.nodes.captionedWriterReferralButton.create(l, a.schema.nodes.ctaCaption.create(null, [a.schema.text(c)]));
return o ? s.insertContent(u.toJSON()) : !0
}
}
}
}),
Zr = t => {
const e = document.createElement("span");
e.textContent = t.attrs.text;
const n = document.createElement("a");
n.className = "button primary", t.attrs.class && (n.className += ` ${t.attrs.class}`), n.href = t.attrs.url, n.appendChild(e), n.addEventListener("click", a => {
/^.*%%.*%%/.test(n.href) && (a.preventDefault(), Lf(n.href))
});
const s = document.createElement("p");
return s.className = "button-wrapper", s.setAttribute("data-attrs", JSON.stringify(t.attrs)), s.setAttribute("data-component-name", "ButtonCreateButton"), s.appendChild(n), s
},
Nd = {
content: "text*",
group: "block",
selectable: !0,
defining: !0,
isolating: !0,
parseDOM: [{
tag: "figcaption"
}],
toDOM: () => ["figcaption", {
class: "image-caption"
}, 0]
},
iee = F({
name: "caption",
nodeSpec: Nd
}),
or = t => ({
content: "ctaCaption",
attrs: {
url: {
default: null
},
text: {
default: null
}
},
inline: !1,
group: "block",
draggable: !0,
atom: !1,
selectable: !0,
isolating: !0,
defining: !0,
parseDOM: [{
tag: "div.captioned-button-wrap",
getAttrs: re
}],
toDOM: e => {
const n = document.createElement("div");
n.className = "captioned-button-wrap", n.setAttribute("data-attrs", JSON.stringify(e.attrs)), n.setAttribute("data-component-name", "CaptionedButtonToDOM");
const s = document.createElement("div");
s.className = "preamble";
const a = Zr({
attrs: S(S({}, e.attrs), t)
});
return n.appendChild(s), n.appendChild(a), {
dom: n,
contentDOM: s
}
}
}),
Md = ({
substitutionAttrs: t,
name: e
}) => F({
name: e,
nodeSpec: or(t)
}),
cee = Md({
name: "captionedShareButton",
substitutionAttrs: {
url: ce.SHARE_URL
}
}),
lee = Md({
name: "captionedWriterReferralButton",
substitutionAttrs: {
hasDynamicSubstitutions: !1
}
}),
Od = {
content: "block caption*",
atom: !1,
selectable: !0,
isolating: !1,
defining: !0,
draggable: !0,
group: "block",
parseDOM: [{
tag: "figure"
}],
toDOM: () => ["div", {
class: "captioned-image-container"
},
["figure", 0]
],
toDOMStatic: () => ["div", {
class: "captioned-image-container-static"
},
["figure", 0]
]
},
uee = F({
name: "captionedImage",
nodeSpec: Od
}),
Ld = {
attrs: {
symbol: {
default: ""
}
},
atom: !0,
editable: !1,
selectable: !0,
isolating: !1,
defining: !0,
draggable: !1,
inline: !0,
group: "inline",
parseDOM: [{
tag: ".cashtag-wrap",
getAttrs: t => {
try {
return JSON.parse(t.getElementsByTagName("a")[0].getAttribute("data-attrs"))
} catch (e) {
return !1
}
}
}],
toDOM: t => {
if (typeof window != "undefined") try {
const e = document.createElement("span");
return e.className = "cashtag-wrap", Fe(p(Vh, {
symbol: t.attrs.symbol.trim()
}), e), e
} catch (e) {
return console.error("Error rendering Cashtag", e), Oe({
msg: null,
node: t,
err: e,
group: "inline"
})
}
return ["span", {
class: "cashtag-wrap",
"data-attrs": JSON.stringify(t.attrs),
"data-component-name": "CashtagToDOM"
}]
},
toDOMStatic: t => ["span", {
class: "cashtag-wrap",
"data-component-name": "CashtagToDOMStatic",
"data-attrs": JSON.stringify(P(S({}, t.attrs), {
prependSymbol: !0,
isStatic: !0
}))
}]
},
pee = F({
name: "cashtag",
nodeSpec: Ld
});
var Rd = {};
const dee = {
"application/1d-interleaved-parityfec": {
source: "iana"
},
"application/3gpdash-qoe-report+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/3gpp-ims+xml": {
source: "iana",
compressible: !0
},
"application/3gpphal+json": {
source: "iana",
compressible: !0
},
"application/3gpphalforms+json": {
source: "iana",
compressible: !0
},
"application/a2l": {
source: "iana"
},
"application/ace+cbor": {
source: "iana"
},
"application/activemessage": {
source: "iana"
},
"application/activity+json": {
source: "iana",
compressible: !0
},
"application/alto-costmap+json": {
source: "iana",
compressible: !0
},
"application/alto-costmapfilter+json": {
source: "iana",
compressible: !0
},
"application/alto-directory+json": {
source: "iana",
compressible: !0
},
"application/alto-endpointcost+json": {
source: "iana",
compressible: !0
},
"application/alto-endpointcostparams+json": {
source: "iana",
compressible: !0
},
"application/alto-endpointprop+json": {
source: "iana",
compressible: !0
},
"application/alto-endpointpropparams+json": {
source: "iana",
compressible: !0
},
"application/alto-error+json": {
source: "iana",
compressible: !0
},
"application/alto-networkmap+json": {
source: "iana",
compressible: !0
},
"application/alto-networkmapfilter+json": {
source: "iana",
compressible: !0
},
"application/alto-updatestreamcontrol+json": {
source: "iana",
compressible: !0
},
"application/alto-updatestreamparams+json": {
source: "iana",
compressible: !0
},
"application/aml": {
source: "iana"
},
"application/andrew-inset": {
source: "iana",
extensions: ["ez"]
},
"application/applefile": {
source: "iana"
},
"application/applixware": {
source: "apache",
extensions: ["aw"]
},
"application/at+jwt": {
source: "iana"
},
"application/atf": {
source: "iana"
},
"application/atfx": {
source: "iana"
},
"application/atom+xml": {
source: "iana",
compressible: !0,
extensions: ["atom"]
},
"application/atomcat+xml": {
source: "iana",
compressible: !0,
extensions: ["atomcat"]
},
"application/atomdeleted+xml": {
source: "iana",
compressible: !0,
extensions: ["atomdeleted"]
},
"application/atomicmail": {
source: "iana"
},
"application/atomsvc+xml": {
source: "iana",
compressible: !0,
extensions: ["atomsvc"]
},
"application/atsc-dwd+xml": {
source: "iana",
compressible: !0,
extensions: ["dwd"]
},
"application/atsc-dynamic-event-message": {
source: "iana"
},
"application/atsc-held+xml": {
source: "iana",
compressible: !0,
extensions: ["held"]
},
"application/atsc-rdt+json": {
source: "iana",
compressible: !0
},
"application/atsc-rsat+xml": {
source: "iana",
compressible: !0,
extensions: ["rsat"]
},
"application/atxml": {
source: "iana"
},
"application/auth-policy+xml": {
source: "iana",
compressible: !0
},
"application/bacnet-xdd+zip": {
source: "iana",
compressible: !1
},
"application/batch-smtp": {
source: "iana"
},
"application/bdoc": {
compressible: !1,
extensions: ["bdoc"]
},
"application/beep+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/calendar+json": {
source: "iana",
compressible: !0
},
"application/calendar+xml": {
source: "iana",
compressible: !0,
extensions: ["xcs"]
},
"application/call-completion": {
source: "iana"
},
"application/cals-1840": {
source: "iana"
},
"application/captive+json": {
source: "iana",
compressible: !0
},
"application/cbor": {
source: "iana"
},
"application/cbor-seq": {
source: "iana"
},
"application/cccex": {
source: "iana"
},
"application/ccmp+xml": {
source: "iana",
compressible: !0
},
"application/ccxml+xml": {
source: "iana",
compressible: !0,
extensions: ["ccxml"]
},
"application/cdfx+xml": {
source: "iana",
compressible: !0,
extensions: ["cdfx"]
},
"application/cdmi-capability": {
source: "iana",
extensions: ["cdmia"]
},
"application/cdmi-container": {
source: "iana",
extensions: ["cdmic"]
},
"application/cdmi-domain": {
source: "iana",
extensions: ["cdmid"]
},
"application/cdmi-object": {
source: "iana",
extensions: ["cdmio"]
},
"application/cdmi-queue": {
source: "iana",
extensions: ["cdmiq"]
},
"application/cdni": {
source: "iana"
},
"application/cea": {
source: "iana"
},
"application/cea-2018+xml": {
source: "iana",
compressible: !0
},
"application/cellml+xml": {
source: "iana",
compressible: !0
},
"application/cfw": {
source: "iana"
},
"application/city+json": {
source: "iana",
compressible: !0
},
"application/clr": {
source: "iana"
},
"application/clue+xml": {
source: "iana",
compressible: !0
},
"application/clue_info+xml": {
source: "iana",
compressible: !0
},
"application/cms": {
source: "iana"
},
"application/cnrp+xml": {
source: "iana",
compressible: !0
},
"application/coap-group+json": {
source: "iana",
compressible: !0
},
"application/coap-payload": {
source: "iana"
},
"application/commonground": {
source: "iana"
},
"application/conference-info+xml": {
source: "iana",
compressible: !0
},
"application/cose": {
source: "iana"
},
"application/cose-key": {
source: "iana"
},
"application/cose-key-set": {
source: "iana"
},
"application/cpl+xml": {
source: "iana",
compressible: !0,
extensions: ["cpl"]
},
"application/csrattrs": {
source: "iana"
},
"application/csta+xml": {
source: "iana",
compressible: !0
},
"application/cstadata+xml": {
source: "iana",
compressible: !0
},
"application/csvm+json": {
source: "iana",
compressible: !0
},
"application/cu-seeme": {
source: "apache",
extensions: ["cu"]
},
"application/cwt": {
source: "iana"
},
"application/cybercash": {
source: "iana"
},
"application/dart": {
compressible: !0
},
"application/dash+xml": {
source: "iana",
compressible: !0,
extensions: ["mpd"]
},
"application/dash-patch+xml": {
source: "iana",
compressible: !0,
extensions: ["mpp"]
},
"application/dashdelta": {
source: "iana"
},
"application/davmount+xml": {
source: "iana",
compressible: !0,
extensions: ["davmount"]
},
"application/dca-rft": {
source: "iana"
},
"application/dcd": {
source: "iana"
},
"application/dec-dx": {
source: "iana"
},
"application/dialog-info+xml": {
source: "iana",
compressible: !0
},
"application/dicom": {
source: "iana"
},
"application/dicom+json": {
source: "iana",
compressible: !0
},
"application/dicom+xml": {
source: "iana",
compressible: !0
},
"application/dii": {
source: "iana"
},
"application/dit": {
source: "iana"
},
"application/dns": {
source: "iana"
},
"application/dns+json": {
source: "iana",
compressible: !0
},
"application/dns-message": {
source: "iana"
},
"application/docbook+xml": {
source: "apache",
compressible: !0,
extensions: ["dbk"]
},
"application/dots+cbor": {
source: "iana"
},
"application/dskpp+xml": {
source: "iana",
compressible: !0
},
"application/dssc+der": {
source: "iana",
extensions: ["dssc"]
},
"application/dssc+xml": {
source: "iana",
compressible: !0,
extensions: ["xdssc"]
},
"application/dvcs": {
source: "iana"
},
"application/ecmascript": {
source: "iana",
compressible: !0,
extensions: ["es", "ecma"]
},
"application/edi-consent": {
source: "iana"
},
"application/edi-x12": {
source: "iana",
compressible: !1
},
"application/edifact": {
source: "iana",
compressible: !1
},
"application/efi": {
source: "iana"
},
"application/elm+json": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/elm+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.cap+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/emergencycalldata.comment+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.control+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.deviceinfo+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.ecall.msd": {
source: "iana"
},
"application/emergencycalldata.providerinfo+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.serviceinfo+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.subscriberinfo+xml": {
source: "iana",
compressible: !0
},
"application/emergencycalldata.veds+xml": {
source: "iana",
compressible: !0
},
"application/emma+xml": {
source: "iana",
compressible: !0,
extensions: ["emma"]
},
"application/emotionml+xml": {
source: "iana",
compressible: !0,
extensions: ["emotionml"]
},
"application/encaprtp": {
source: "iana"
},
"application/epp+xml": {
source: "iana",
compressible: !0
},
"application/epub+zip": {
source: "iana",
compressible: !1,
extensions: ["epub"]
},
"application/eshop": {
source: "iana"
},
"application/exi": {
source: "iana",
extensions: ["exi"]
},
"application/expect-ct-report+json": {
source: "iana",
compressible: !0
},
"application/express": {
source: "iana",
extensions: ["exp"]
},
"application/fastinfoset": {
source: "iana"
},
"application/fastsoap": {
source: "iana"
},
"application/fdt+xml": {
source: "iana",
compressible: !0,
extensions: ["fdt"]
},
"application/fhir+json": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/fhir+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/fido.trusted-apps+json": {
compressible: !0
},
"application/fits": {
source: "iana"
},
"application/flexfec": {
source: "iana"
},
"application/font-sfnt": {
source: "iana"
},
"application/font-tdpfr": {
source: "iana",
extensions: ["pfr"]
},
"application/font-woff": {
source: "iana",
compressible: !1
},
"application/framework-attributes+xml": {
source: "iana",
compressible: !0
},
"application/geo+json": {
source: "iana",
compressible: !0,
extensions: ["geojson"]
},
"application/geo+json-seq": {
source: "iana"
},
"application/geopackage+sqlite3": {
source: "iana"
},
"application/geoxacml+xml": {
source: "iana",
compressible: !0
},
"application/gltf-buffer": {
source: "iana"
},
"application/gml+xml": {
source: "iana",
compressible: !0,
extensions: ["gml"]
},
"application/gpx+xml": {
source: "apache",
compressible: !0,
extensions: ["gpx"]
},
"application/gxf": {
source: "apache",
extensions: ["gxf"]
},
"application/gzip": {
source: "iana",
compressible: !1,
extensions: ["gz"]
},
"application/h224": {
source: "iana"
},
"application/held+xml": {
source: "iana",
compressible: !0
},
"application/hjson": {
extensions: ["hjson"]
},
"application/http": {
source: "iana"
},
"application/hyperstudio": {
source: "iana",
extensions: ["stk"]
},
"application/ibe-key-request+xml": {
source: "iana",
compressible: !0
},
"application/ibe-pkg-reply+xml": {
source: "iana",
compressible: !0
},
"application/ibe-pp-data": {
source: "iana"
},
"application/iges": {
source: "iana"
},
"application/im-iscomposing+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/index": {
source: "iana"
},
"application/index.cmd": {
source: "iana"
},
"application/index.obj": {
source: "iana"
},
"application/index.response": {
source: "iana"
},
"application/index.vnd": {
source: "iana"
},
"application/inkml+xml": {
source: "iana",
compressible: !0,
extensions: ["ink", "inkml"]
},
"application/iotp": {
source: "iana"
},
"application/ipfix": {
source: "iana",
extensions: ["ipfix"]
},
"application/ipp": {
source: "iana"
},
"application/isup": {
source: "iana"
},
"application/its+xml": {
source: "iana",
compressible: !0,
extensions: ["its"]
},
"application/java-archive": {
source: "apache",
compressible: !1,
extensions: ["jar", "war", "ear"]
},
"application/java-serialized-object": {
source: "apache",
compressible: !1,
extensions: ["ser"]
},
"application/java-vm": {
source: "apache",
compressible: !1,
extensions: ["class"]
},
"application/javascript": {
source: "iana",
charset: "UTF-8",
compressible: !0,
extensions: ["js", "mjs"]
},
"application/jf2feed+json": {
source: "iana",
compressible: !0
},
"application/jose": {
source: "iana"
},
"application/jose+json": {
source: "iana",
compressible: !0
},
"application/jrd+json": {
source: "iana",
compressible: !0
},
"application/jscalendar+json": {
source: "iana",
compressible: !0
},
"application/json": {
source: "iana",
charset: "UTF-8",
compressible: !0,
extensions: ["json", "map"]
},
"application/json-patch+json": {
source: "iana",
compressible: !0
},
"application/json-seq": {
source: "iana"
},
"application/json5": {
extensions: ["json5"]
},
"application/jsonml+json": {
source: "apache",
compressible: !0,
extensions: ["jsonml"]
},
"application/jwk+json": {
source: "iana",
compressible: !0
},
"application/jwk-set+json": {
source: "iana",
compressible: !0
},
"application/jwt": {
source: "iana"
},
"application/kpml-request+xml": {
source: "iana",
compressible: !0
},
"application/kpml-response+xml": {
source: "iana",
compressible: !0
},
"application/ld+json": {
source: "iana",
compressible: !0,
extensions: ["jsonld"]
},
"application/lgr+xml": {
source: "iana",
compressible: !0,
extensions: ["lgr"]
},
"application/link-format": {
source: "iana"
},
"application/load-control+xml": {
source: "iana",
compressible: !0
},
"application/lost+xml": {
source: "iana",
compressible: !0,
extensions: ["lostxml"]
},
"application/lostsync+xml": {
source: "iana",
compressible: !0
},
"application/lpf+zip": {
source: "iana",
compressible: !1
},
"application/lxf": {
source: "iana"
},
"application/mac-binhex40": {
source: "iana",
extensions: ["hqx"]
},
"application/mac-compactpro": {
source: "apache",
extensions: ["cpt"]
},
"application/macwriteii": {
source: "iana"
},
"application/mads+xml": {
source: "iana",
compressible: !0,
extensions: ["mads"]
},
"application/manifest+json": {
source: "iana",
charset: "UTF-8",
compressible: !0,
extensions: ["webmanifest"]
},
"application/marc": {
source: "iana",
extensions: ["mrc"]
},
"application/marcxml+xml": {
source: "iana",
compressible: !0,
extensions: ["mrcx"]
},
"application/mathematica": {
source: "iana",
extensions: ["ma", "nb", "mb"]
},
"application/mathml+xml": {
source: "iana",
compressible: !0,
extensions: ["mathml"]
},
"application/mathml-content+xml": {
source: "iana",
compressible: !0
},
"application/mathml-presentation+xml": {
source: "iana",
compressible: !0
},
"application/mbms-associated-procedure-description+xml": {
source: "iana",
compressible: !0
},
"application/mbms-deregister+xml": {
source: "iana",
compressible: !0
},
"application/mbms-envelope+xml": {
source: "iana",
compressible: !0
},
"application/mbms-msk+xml": {
source: "iana",
compressible: !0
},
"application/mbms-msk-response+xml": {
source: "iana",
compressible: !0
},
"application/mbms-protection-description+xml": {
source: "iana",
compressible: !0
},
"application/mbms-reception-report+xml": {
source: "iana",
compressible: !0
},
"application/mbms-register+xml": {
source: "iana",
compressible: !0
},
"application/mbms-register-response+xml": {
source: "iana",
compressible: !0
},
"application/mbms-schedule+xml": {
source: "iana",
compressible: !0
},
"application/mbms-user-service-description+xml": {
source: "iana",
compressible: !0
},
"application/mbox": {
source: "iana",
extensions: ["mbox"]
},
"application/media-policy-dataset+xml": {
source: "iana",
compressible: !0,
extensions: ["mpf"]
},
"application/media_control+xml": {
source: "iana",
compressible: !0
},
"application/mediaservercontrol+xml": {
source: "iana",
compressible: !0,
extensions: ["mscml"]
},
"application/merge-patch+json": {
source: "iana",
compressible: !0
},
"application/metalink+xml": {
source: "apache",
compressible: !0,
extensions: ["metalink"]
},
"application/metalink4+xml": {
source: "iana",
compressible: !0,
extensions: ["meta4"]
},
"application/mets+xml": {
source: "iana",
compressible: !0,
extensions: ["mets"]
},
"application/mf4": {
source: "iana"
},
"application/mikey": {
source: "iana"
},
"application/mipc": {
source: "iana"
},
"application/missing-blocks+cbor-seq": {
source: "iana"
},
"application/mmt-aei+xml": {
source: "iana",
compressible: !0,
extensions: ["maei"]
},
"application/mmt-usd+xml": {
source: "iana",
compressible: !0,
extensions: ["musd"]
},
"application/mods+xml": {
source: "iana",
compressible: !0,
extensions: ["mods"]
},
"application/moss-keys": {
source: "iana"
},
"application/moss-signature": {
source: "iana"
},
"application/mosskey-data": {
source: "iana"
},
"application/mosskey-request": {
source: "iana"
},
"application/mp21": {
source: "iana",
extensions: ["m21", "mp21"]
},
"application/mp4": {
source: "iana",
extensions: ["mp4s", "m4p"]
},
"application/mpeg4-generic": {
source: "iana"
},
"application/mpeg4-iod": {
source: "iana"
},
"application/mpeg4-iod-xmt": {
source: "iana"
},
"application/mrb-consumer+xml": {
source: "iana",
compressible: !0
},
"application/mrb-publish+xml": {
source: "iana",
compressible: !0
},
"application/msc-ivr+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/msc-mixer+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/msword": {
source: "iana",
compressible: !1,
extensions: ["doc", "dot"]
},
"application/mud+json": {
source: "iana",
compressible: !0
},
"application/multipart-core": {
source: "iana"
},
"application/mxf": {
source: "iana",
extensions: ["mxf"]
},
"application/n-quads": {
source: "iana",
extensions: ["nq"]
},
"application/n-triples": {
source: "iana",
extensions: ["nt"]
},
"application/nasdata": {
source: "iana"
},
"application/news-checkgroups": {
source: "iana",
charset: "US-ASCII"
},
"application/news-groupinfo": {
source: "iana",
charset: "US-ASCII"
},
"application/news-transmission": {
source: "iana"
},
"application/nlsml+xml": {
source: "iana",
compressible: !0
},
"application/node": {
source: "iana",
extensions: ["cjs"]
},
"application/nss": {
source: "iana"
},
"application/oauth-authz-req+jwt": {
source: "iana"
},
"application/oblivious-dns-message": {
source: "iana"
},
"application/ocsp-request": {
source: "iana"
},
"application/ocsp-response": {
source: "iana"
},
"application/octet-stream": {
source: "iana",
compressible: !1,
extensions: ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"]
},
"application/oda": {
source: "iana",
extensions: ["oda"]
},
"application/odm+xml": {
source: "iana",
compressible: !0
},
"application/odx": {
source: "iana"
},
"application/oebps-package+xml": {
source: "iana",
compressible: !0,
extensions: ["opf"]
},
"application/ogg": {
source: "iana",
compressible: !1,
extensions: ["ogx"]
},
"application/omdoc+xml": {
source: "apache",
compressible: !0,
extensions: ["omdoc"]
},
"application/onenote": {
source: "apache",
extensions: ["onetoc", "onetoc2", "onetmp", "onepkg"]
},
"application/opc-nodeset+xml": {
source: "iana",
compressible: !0
},
"application/oscore": {
source: "iana"
},
"application/oxps": {
source: "iana",
extensions: ["oxps"]
},
"application/p21": {
source: "iana"
},
"application/p21+zip": {
source: "iana",
compressible: !1
},
"application/p2p-overlay+xml": {
source: "iana",
compressible: !0,
extensions: ["relo"]
},
"application/parityfec": {
source: "iana"
},
"application/passport": {
source: "iana"
},
"application/patch-ops-error+xml": {
source: "iana",
compressible: !0,
extensions: ["xer"]
},
"application/pdf": {
source: "iana",
compressible: !1,
extensions: ["pdf"]
},
"application/pdx": {
source: "iana"
},
"application/pem-certificate-chain": {
source: "iana"
},
"application/pgp-encrypted": {
source: "iana",
compressible: !1,
extensions: ["pgp"]
},
"application/pgp-keys": {
source: "iana",
extensions: ["asc"]
},
"application/pgp-signature": {
source: "iana",
extensions: ["asc", "sig"]
},
"application/pics-rules": {
source: "apache",
extensions: ["prf"]
},
"application/pidf+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/pidf-diff+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/pkcs10": {
source: "iana",
extensions: ["p10"]
},
"application/pkcs12": {
source: "iana"
},
"application/pkcs7-mime": {
source: "iana",
extensions: ["p7m", "p7c"]
},
"application/pkcs7-signature": {
source: "iana",
extensions: ["p7s"]
},
"application/pkcs8": {
source: "iana",
extensions: ["p8"]
},
"application/pkcs8-encrypted": {
source: "iana"
},
"application/pkix-attr-cert": {
source: "iana",
extensions: ["ac"]
},
"application/pkix-cert": {
source: "iana",
extensions: ["cer"]
},
"application/pkix-crl": {
source: "iana",
extensions: ["crl"]
},
"application/pkix-pkipath": {
source: "iana",
extensions: ["pkipath"]
},
"application/pkixcmp": {
source: "iana",
extensions: ["pki"]
},
"application/pls+xml": {
source: "iana",
compressible: !0,
extensions: ["pls"]
},
"application/poc-settings+xml": {
source: "iana",
charset: "UTF-8",
compressible: !0
},
"application/postscript": {
source: "iana",
compressible: !0,
extensions: ["ai", "eps", "ps"]
},
"application/ppsp-tracker+json": {
source: "iana",
compressible: !0
},
"application/problem+json": {
source: "iana",
compressible: !0
},
"application/problem+xml": {
source: "iana",
compressible: !0
},
"application/provenance+xml": {
source: "iana",
compressible: !0,
extensions: ["provx"]
},
"application/prs.alvestrand.titrax-sheet": {
source: "iana"
},
"application/prs.cww": {
source: "iana",
extensions: ["cww"]
},
"application/prs.cyn": {
source: "iana",
charset: "7-BIT"
},
"application/prs.hpub+zip": {
source: "iana",
compressible: !1
},
"application/prs.nprend": {
source: "iana"
},
"application/prs.plucker": {
source: "iana"
},
"application/prs.rdf-xml-crypt": {
source: "iana"
},
"application/prs.xsf+xml": {
source: "iana",
compressible: !0
},
"application/pskc+xml": {
source: "iana",
compressible: !0,
extensions: ["pskcxml"]
},
"application/pvd+json": {
source: "iana",
compressible: !0
},
"application/qsig": {
source: "iana"
},
"application/raml+yaml": {
compressible: !0,
extensions: ["raml"]
},
"application/raptorfec": {
source: "iana"
},
"application/rdap+json": {
source: "iana",
compressible: !0
},
"application/rdf+xml": {
source: "iana",
compressible: !0,
extensions: ["rdf", "owl"]
},
"application/reginfo+xml": {
source: "iana",
compressible: !0,
extensions: ["rif"]
},
"application/relax-ng-compact-syntax": {
source: "iana",
extensions: ["rnc"]
},
"application/remote-printing": {
source: "iana"
},
"application/reputon+json": {
source: "iana",
compressible: !0
},
"application/resource-lists+xml": {
source: "iana",
compressible: !0,
extensions: ["rl"]
},
"application/resource-lists-diff+xml": {
source: "iana",
compressible: !0,
extensions: ["rld"]
},
"application/rfc+xml": {
source: "iana",
compressible: !0
},
"application/riscos": {
source: "iana"
},
"application/rlmi+xml": {
source: "iana",
compressible: !0
},
"application/rls-services+xml": {
source: "iana",
compressible: !0,
extensions: ["rs"]
},
"application/route-apd+xml": {
source: "iana",
compressible: !0,
extensions: ["rapd"]
},
"application/route-s-tsid+xml": {
source: "iana",
compressible: !0,
extensions: ["sls"]
},
"application/route-usd+xml": {
source: "iana",
compressible: !0,
extensions: ["rusd"]
},
"application/rpki-ghostbusters": {
source: "iana",
extensions: ["gbr"]
},
"application/rpki-manifest": {
source: "iana",
extensions: ["mft"]
},
"application/rpki-publication": {
source: "iana"
},
"application/rpki-roa": {
source: "iana",
extensions: ["roa"]
},
"application/rpki-updown": {
source: "iana"
},
"application/rsd+xml": {
source: "apache",
compressible: !0,
extensions: ["rsd"]
},
"application/rss+xml": {
source: "apache",
compressible: !0,
extensions: ["rss"]
},
"application/rtf": {
source: "iana",
compressible: !0,
extensions: ["rtf"]
},
"application/rtploopback": {
source: "iana"
},
"application/rtx": {
source: "iana"
},
"application/samlassertion+xml": {
source: "iana",
compressible: !0
},
"application/samlmetadata+xml": {
source: "iana",
compressible: !0
},
"application/sarif+json": {
source: "iana",
compressible: !0
},
"application/sarif-external-properties+json": {
source: "iana",
compressible: !0
},
"application/sbe": {
source: "iana"
},
"application/sbml+xml": {
source: "iana",
compressible: !0,
extensions: ["sbml"]
},
"application/scaip+xml": {
source: "iana",
compressible: !0
},
"application/scim+json": {
source: "iana",
compressible: !0
},
"application/scvp-cv-request": {
source: "iana",
extensions: ["scq"]
},
"application/scvp-cv-response": {
source: "iana",
extensions: ["scs"]
},
"application/scvp-vp-request": {
source: "iana",
extensions: ["spq"]
},
"application/scvp-vp-response": {
source: "iana",
extensions: ["spp"]
},
"application/sdp": {
source: "iana",
extensions: ["sdp"]
},
"application/secevent+jwt": {
source: "iana"
},
"application/senml+cbor": {
source: "iana"
},
"application/senml+json": {
source: "iana",
compressible: !0
},
"application/senml+xml": {
source: "iana",
compressible: !0,
extensions: ["senmlx"]
},
"application/senml-etch+cbor": {
source: "iana"
},
"application/senml-etch+json": {
source: "iana",
compressible: !0
},
"application/senml-exi": {
source: "iana"
},
"application/sensml+cbor": {
source: "iana"
},
"application/sensml+json": {
source: "iana",
compressible: !0
},
"application/sensml+xml": {
source: "iana",
compressible: !0,
extensions: ["sensmlx"]
},
"application/sensml-exi": {
source: "iana"
},
"application/sep+xml": {
source: "iana",
compressible: !0
},
"application/sep-exi": {
source: "iana"
},
"application/session-info": {
source: "iana"
},
"application/set-payment": {
source: "iana"
},
"application/set-payment-initiation": {
source: "iana",
extensions: ["setpay"]
},
"application/set-registration": {
source: "iana"
},
"application/set-registration-initiation": {
source: "iana",
extensions: ["setreg"]
},
"application/sgml": {
source: "iana"
},
"application/sgml-open-catalog": {
source: "iana"
},
"application/shf+xml": {
source: "iana",
compressible: !0,
extensions: ["shf"]
},
"application/sieve": {
source: "iana",
extensions: ["siv", "sieve"]
},
"application/simple-filter+xml": {
source: "iana",
compressible: !0
},
"application/simple-message-summary": {
source: "iana"
},
"application/simplesymbolcontainer": {
source: "iana"
},
"application/sipc": {
source: "iana"
},
"application/slate": {
source: "iana"
},
"application/smil": {
source: "iana"
},
"application/smil+xml": {
source: "iana",
compressible: !0,
extensions: ["smi", "smil"]
},
"application/smpte336m": {
source: "iana"
},
"application/soap+fastinfoset": {
source: "iana"
},
"application/soap+xml": {
source: "iana",
compressible: !0
},
"application/sparql-query": {
source: "iana",
extensions: ["rq"]
},
"application/sparql-results+xml": {
source: "iana",
compressible: !0,
extensions: ["srx"]
},
"application/spdx+json": {
source: "iana",
compressible: !0
},
"application/spirits-event+xml": {
source: "iana",
compressible: !0
},
"application/sql": {
source: "iana"
},
"application/srgs": {
source: "iana",
extensions: ["gram"]
},
"application/srgs+xml": {
source: "iana",
compressible: !0,
extensions: ["grxml"]
},
"application/sru+xml": {
source: "iana",
compressible: !0,
extensions: ["sru"]
},
"application/ssdl+xml": {
source: "apache",
compressible: !0,
extensions: ["ssdl"]
},
"application/ssml+xml": {
source: "iana",
compressible: !0,
extensions: ["ssml"]
},
"application/stix+json": {
source: "iana",
compressible: !0
},
"application/swid+xml": {
source: "iana",
compressible: !0,
extensions: ["swidtag"]
},
"application/tamp-apex-update": {
source: "iana"
},
"application/tamp-apex-update-confirm": {
source: "iana"
},
"application/tamp-community-update": {
source: "iana"
},
"application/tamp-community-update-confirm": {
source: "iana"
},
"application/tamp-error": {
source: "iana"
},
"application/tamp-sequence-adjust": {
source: "iana"
},
"application/tamp-sequence-adjust-confirm": {
source: "iana"
},
"application/tamp-status-query": {
source: "iana"
},
"application/tamp-status-response": {
source: "iana"
},
"application/tamp-update": {
source: "iana"
},
"application/tamp-update-confirm": {
source: "iana"
},
"application/tar": {
compressible: !0
},
"application/taxii+json": {
source: "iana",
compressible: !0
},
"application/td+json": {
source: "iana",
compressible: !0
},
"application/tei+xml": {
source: "iana",
compressible: !0,
extensions: ["tei", "teicorpus"]
},
"application/tetra_isi": {
source: "iana"
},
"application/thraud+xml": {
source: "iana",
compressible: !0,
extensions: ["tfi"]
},
"application/timestamp-query": {
source: "iana"
},
"application/timestamp-reply": {
source: "iana"
},
"application/timestamped-data": {
source: "iana",
extensions: ["tsd"]
},
"application/tlsrpt+gzip": {
source: "iana"
},
"application/tlsrpt+json": {
source: "iana",
compressible: !0
},
"application/tnauthlist": {
source: "iana"
},
"application/token-introspection+jwt": {
source: "iana"
},
"application/toml": {
compressible: !0,
extensions: ["toml"]
},
"application/trickle-ice-sdpfrag": {
source: "iana"
},
"application/trig": {
source: "iana",
extensions: ["trig"]
},
"application/ttml+xml": {
source: "iana",
compressible: !0,
extensions: ["ttml"]
},
"application/tve-trigger": {
source: "iana"
},
"application/tzif": {
source: "iana"
},
"application/tzif-leap": {
source: "iana"
},
"application/ubjson": {
compressible: !1,
extensions: ["ubj"]
},
"application/ulpfec": {
source: "iana"
},
"application/urc-grpsheet+xml": {
source: "iana",
compressible: !0
},
"application/urc-ressheet+xml": {
source: "iana",
compressible: !0,
extensions: ["rsheet"]
},
"application/urc-targetdesc+xml": {
source: "iana",
compressible: !0,
extensions: ["td"]
},
"application/urc-uisocketdesc+xml": {
source: "iana",
compressible: !0
},
"application/vcard+json": {
source: "iana",
compressible: !0
},
"application/vcard+xml": {
source: "iana",
compressible: !0
},
"application/vemmi": {
source: "iana"
},
"application/vividence.scriptfile": {
source: "apache"
},
"application/vnd.1000minds.decision-model+xml": {
source: "iana",
compressible: !0,
extensions: ["1km"]
},
"application/vnd.3gpp-prose+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp-prose-pc3ch+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp-v2x-local-service-information": {
source: "iana"
},
"application/vnd.3gpp.5gnas": {
source: "iana"
},
"application/vnd.3gpp.access-transfer-events+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.bsf+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.gmop+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.gtpc": {
source: "iana"
},
"application/vnd.3gpp.interworking-data": {
source: "iana"
},
"application/vnd.3gpp.lpp": {
source: "iana"
},
"application/vnd.3gpp.mc-signalling-ear": {
source: "iana"
},
"application/vnd.3gpp.mcdata-affiliation-command+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcdata-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcdata-payload": {
source: "iana"
},
"application/vnd.3gpp.mcdata-service-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcdata-signalling": {
source: "iana"
},
"application/vnd.3gpp.mcdata-ue-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcdata-user-profile+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-affiliation-command+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-floor-request+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-location-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-service-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-signed+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-ue-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-ue-init-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcptt-user-profile+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-affiliation-command+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-affiliation-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-location-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-mbms-usage-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-service-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-transmission-request+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-ue-config+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mcvideo-user-profile+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.mid-call+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.ngap": {
source: "iana"
},
"application/vnd.3gpp.pfcp": {
source: "iana"
},
"application/vnd.3gpp.pic-bw-large": {
source: "iana",
extensions: ["plb"]
},
"application/vnd.3gpp.pic-bw-small": {
source: "iana",
extensions: ["psb"]
},
"application/vnd.3gpp.pic-bw-var": {
source: "iana",
extensions: ["pvb"]
},
"application/vnd.3gpp.s1ap": {
source: "iana"
},
"application/vnd.3gpp.sms": {
source: "iana"
},
"application/vnd.3gpp.sms+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.srvcc-ext+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.srvcc-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.state-and-event-info+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp.ussd+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp2.bcmcsinfo+xml": {
source: "iana",
compressible: !0
},
"application/vnd.3gpp2.sms": {
source: "iana"
},
"application/vnd.3gpp2.tcap": {
source: "iana",
extensions: ["tcap"]
},
"application/vnd.3lightssoftware.imagescal": {
source: "iana"
},
"application/vnd.3m.post-it-notes": {
source: "iana",
extensions: ["pwn"]
},
"application/vnd.accpac.simply.aso": {
source: "iana",
extensions: ["aso"]
},
"application/vnd.accpac.simply.imp": {
source: "iana",
extensions: ["imp"]
},
"application/vnd.acucobol": {
source: "iana",
extensions: ["acu"]
},
"application/vnd.acucorp": {
source: "iana",
extensions: ["atc", "acutc"]
},
"application/vnd.adobe.air-application-installer-package+zip": {
source: "apache",
compressible: !1,
extensions: ["air"]
},
"application/vnd.adobe.flash.movie": {
source: "iana"
},
"application/vnd.adobe.formscentral.fcdt": {
source: "iana",
extensions: ["fcdt"]
},
"application/vnd.adobe.fxp": {
source: "iana",
extensions: ["fxp", "fxpl"]
},
"application/vnd.adobe.partial-upload": {
source: "iana"
},
"application/vnd.adobe.xdp+xml": {
source: "iana",
compressible: !0,
extensions: ["xdp"]
},
"application/vnd.adobe.xfdf": {
source: "iana",
extensions: ["xfdf"]
},
"application/vnd.aether.imp": {
source: "iana"
},
"application/vnd.afpc.afplinedata": {
source: "iana"
},
"application/vnd.afpc.afplinedata-pagedef": {
source: "iana"
},
"application/vnd.afpc.cmoca-cmresource": {
source: "iana"
},
"application/vnd.afpc.foca-charset": {
source: "iana"
},
"application/vnd.afpc.foca-codedfont": {
source: "iana"
},
"application/vnd.afpc.foca-codepage": {
source: "iana"
},
"application/vnd.afpc.modca": {
source: "iana"
},
"application/vnd.afpc.modca-cmtable": {
source: "iana"
},
"application/vnd.afpc.modca-formdef": {
source: "iana"
},
"application/vnd.afpc.modca-mediummap": {
source: "iana"
},
"application/vnd.afpc.modca-objectcontainer": {
source: "iana"
},
"application/vnd.afpc.modca-overlay": {
source: "iana"
},
"application/vnd.afpc.modca-pagesegment": {
source: "iana"
},
"application/vnd.age": {
source: "iana",
extensions: ["age"]
},
"application/vnd.ah-barcode": {
source: "iana"
},
"application/vnd.ahead.space": {
source: "iana",
extensions: ["ahead"]
},
"application/vnd.airzip.filesecure.azf": {
source: "iana",
extensions: ["azf"]
},
"application/vnd.airzip.filesecure.azs": {
source: "iana",
extensions: ["azs"]
},
"application/vnd.amadeus+json": {
source: "iana",
compressible: !0
},
"application/vnd.amazon.ebook": {
source: "apache",
extensions: ["azw"]
},
"application/vnd.amazon.mobi8-ebook": {
source: "iana"
},
"application/vnd.americandynamics.acc": {
source: "iana",
extensions: ["acc"]
},
"application/vnd.amiga.ami": {
source: "iana",
extensions: ["ami"]
},
"application/vnd.amundsen.maze+xml": {
source: "iana",
compressible: !0
},
"application/vnd.android.ota": {
source: "iana"
},
"application/vnd.android.package-archive": {
source: "apache",
compressible: !1,
extensions: ["apk"]
},
"application/vnd.anki": {
source: "iana"
},
"application/vnd.anser-web-certificate-issue-initiation": {
source: "iana",
extensions: ["cii"]
},
"application/vnd.anser-web-funds-transfer-initiation": {
source: "apache",
extensions: ["fti"]
},
"application/vnd.antix.game-component": {
source: "iana",
extensions: ["atx"]
},
"application/vnd.apache.arrow.file": {
source: "iana"
},
"application/vnd.apache.arrow.stream": {
source: "iana"
},
"application/vnd.apache.thrift.binary": {
source: "iana"
},
"application/vnd.apache.thrift.compact": {
source: "iana"
},
"application/vnd.apache.thrift.json": {
source: "iana"
},
"application/vnd.api+json": {
source: "iana",
compressible: !0
},
"application/vnd.aplextor.warrp+json": {
source: "iana",
compressible: !0
},
"application/vnd.apothekende.reservation+json": {
source: "iana",
compressible: !0
},
"application/vnd.apple.installer+xml": {
source: "iana",
compressible: !0,
extensions: ["mpkg"]
},
"application/vnd.apple.keynote": {
source: "iana",
extensions: ["key"]
},
"application/vnd.apple.mpegurl": {
source: "iana",
extensions: ["m3u8"]
},
"application/vnd.apple.numbers": {
source: "iana",
extensions: ["numbers"]
},
"application/vnd.apple.pages": {
source: "iana",
extensions: ["pages"]
},
"application/vnd.apple.pkpass": {
compressible: !1,
extensions: ["pkpass"]
},
"application/vnd.arastra.swi": {
source: "iana"
},
"application/vnd.aristanetworks.swi": {
source: "iana",
extensions: ["swi"]
},
"application/vnd.artisan+json": {
source: "iana",
compressible: !0
},
"application/vnd.artsquare": {
source: "iana"
},
"application/vnd.astraea-software.iota": {
source: "iana",
extensions: ["iota"]
},
"application/vnd.audiograph": {
source: "iana",
extensions: ["aep"]
},
"application/vnd.autopackage": {
source: "iana"
},
"application/vnd.avalon+json": {
source: "iana",
compressible: !0
},
"application/vnd.avistar+xml": {
source: "iana",
compressible: !0
},
"application/vnd.balsamiq.bmml+xml": {
source: "iana",
compressible: !0,
extensions: ["bmml"]
},
"application/vnd.balsamiq.bmpr": {
source: "iana"
},
"application/vnd.banana-accounting": {
source: "iana"
},
"application/vnd.bbf.usp.error": {
source: "iana"
},
"application/vnd.bbf.usp.msg": {
source: "iana"
},
"application/vnd.bbf.usp.msg+json": {
source: "iana",
compressible: !0
},
"application/vnd.bekitzur-stech+json": {
source: "iana",
compressible: !0
},
"application/vnd.bint.med-content": {
source: "iana"
},
"application/vnd.biopax.rdf+xml": {
source: "iana",
compressible: !0
},
"application/vnd.blink-idb-value-wrapper": {
source: "iana"
},
"application/vnd.blueice.multipass": {
source: "iana",
extensions: ["mpm"]
},
"application/vnd.bluetooth.ep.oob": {
source: "iana"
},
"application/vnd.bluetooth.le.oob": {
source: "iana"
},
"application/vnd.bmi": {
source: "iana",
extensions: ["bmi"]
},
"application/vnd.bpf": {
source: "iana"
},
"application/vnd.bpf3": {
source: "iana"
},
"application/vnd.businessobjects": {
source: "iana",
extensions: ["rep"]
},
"application/vnd.byu.uapi+json": {
source: "iana",
compressible: !0
},
"application/vnd.cab-jscript": {
source: "iana"
},
"application/vnd.canon-cpdl": {
source: "iana"
},
"application/vnd.canon-lips": {
source: "iana"
},
"application/vnd.capasystems-pg+json": {
source: "iana",
compressible: !0
},
"application/vnd.cendio.thinlinc.clientconf": {
source: "iana"
},
"application/vnd.century-systems.tcp_stream": {
source: "iana"
},
"application/vnd.chemdraw+xml": {
source: "iana",
compressible: !0,
extensions: ["cdxml"]
},
"application/vnd.chess-pgn": {
source: "iana"
},
"application/vnd.chipnuts.karaoke-mmd": {
source: "iana",
extensions: ["mmd"]
},
"application/vnd.ciedi": {
source: "iana"
},
"application/vnd.cinderella": {
source: "iana",
extensions: ["cdy"]
},
"application/vnd.cirpack.isdn-ext": {
source: "iana"
},
"application/vnd.citationstyles.style+xml": {
source: "iana",
compressible: !0,
extensions: ["csl"]
},
"application/vnd.claymore": {
source: "iana",
extensions: ["cla"]
},
"application/vnd.cloanto.rp9": {
source: "iana",
extensions: ["rp9"]
},
"application/vnd.clonk.c4group": {
source: "iana",
extensions: ["c4g", "c4d", "c4f", "c4p", "c4u"]
},
"application/vnd.cluetrust.cartomobile-config": {
source: "iana",
extensions: ["c11amc"]
},
"application/vnd.cluetrust.cartomobile-config-pkg": {
source: "iana",
extensions: ["c11amz"]
},
"application/vnd.coffeescript": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document": {
source: "iana"
},
"application/vnd.collabio.xodocuments.document-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation": {
source: "iana"
},
"application/vnd.collabio.xodocuments.presentation-template": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet": {
source: "iana"
},
"application/vnd.collabio.xodocuments.spreadsheet-template": {
source: "iana"
},
"application/vnd.collection+json": {
source: "iana",
compressible: !0
},
"application/vnd.collection.doc+json": {
source: "iana",
compressible: !0
},
"application/vnd.collection.next+json": {
source: "iana",
compressible: !0
},
"application/vnd.comicbook+zip": {
source: "iana",
compressible: !1
},
"application/vnd.comicbook-rar": {
source: "iana"
},
"application/vnd.commerce-battelle": {
source: "iana"
},
"application/vnd.commonspace": {
source: "iana",
extensions: ["csp"]
},
"application/vnd.contact.cmsg": {
source: "iana",
extensions: ["cdbcmsg"]
},
"application/vnd.coreos.ignition+json": {
source: "iana",
compressible: !0
},
"application/vnd.cosmocaller": {
source: "iana",
extensions: ["cmc"]
},
"application/vnd.crick.clicker": {
source: "iana",
extensions: ["clkx"]
},
"application/vnd.crick.clicker.keyboard": {
source: "iana",
extensions: ["clkk"]
},
"application/vnd.crick.clicker.palette": {
source: "iana",
extensions: ["clkp"]
},
"application/vnd.crick.clicker.template": {
source: "iana",
extensions: ["clkt"]
},
"application/vnd.crick.clicker.wordbank": {
source: "iana",
extensions: ["clkw"]
},
"application/vnd.criticaltools.wbs+xml": {
source: "iana",
compressible: !0,
extensions: ["wbs"]
},
"application/vnd.cryptii.pipe+json": {
source: "iana",
compressible: !0
},
"application/vnd.crypto-shade-file": {
source: "iana"
},
"application/vnd.cryptomator.encrypted": {
source: "iana"
},
"application/vnd.cryptomator.vault": {
source: "iana"
},
"application/vnd.ctc-posml": {
source: "iana",
extensions: ["pml"]
},
"application/vnd.ctct.ws+xml": {
source: "iana",
compressible: !0
},
"application/vnd.cups-pdf": {
source: "iana"
},
"application/vnd.cups-postscript": {
source: "iana"
},
"application/vnd.cups-ppd": {
source: "iana",
extensions: ["ppd"]
},
"application/vnd.cups-raster": {
source: "iana"
},
"application/vnd.cups-raw": {
source: "iana"
},
"application/vnd.curl": {
source: "iana"
},
"application/vnd.curl.car": {
source: "apache",
extensions: ["car"]
},
"application/vnd.curl.pcurl": {
source: "apache",
extensions: ["pcurl"]
},
"application/vnd.cyan.dean.root+xml": {
source: "iana",
compressible: !0
},
"application/vnd.cybank": {
source: "iana"
},
"application/vnd.cyclonedx+json": {
source: "iana",
compressible: !0
},
"application/vnd.cyclonedx+xml": {
source: "iana",
compressible: !0
},
"application/vnd.d2l.coursepackage1p0+zip": {
source: "iana",
compressible: !1
},
"application/vnd.d3m-dataset": {
source: "iana"
},
"application/vnd.d3m-problem": {
source: "iana"
},
"application/vnd.dart": {
source: "iana",
compressible: !0,
extensions: ["dart"]
},
"application/vnd.data-vision.rdz": {
source: "iana",
extensions: ["rdz"]
},
"application/vnd.datapackage+json": {
source: "iana",
compressible: !0
},
"application/vnd.dataresource+json": {
source: "iana",
compressible: !0
},
"application/vnd.dbf": {
source: "iana",
extensions: ["dbf"]
},
"application/vnd.debian.binary-package": {
source: "iana"
},
"application/vnd.dece.data": {
source: "iana",
extensions: ["uvf", "uvvf", "uvd", "uvvd"]
},
"application/vnd.dece.ttml+xml": {
source: "iana",
compressible: !0,
extensions: ["uvt", "uvvt"]
},
"application/vnd.dece.unspecified": {
source: "iana",
extensions: ["uvx", "uvvx"]
},
"application/vnd.dece.zip": {
source: "iana",
extensions: ["uvz", "uvvz"]
},
"application/vnd.denovo.fcselayout-link": {
source: "iana",
extensions: ["fe_launch"]
},
"application/vnd.desmume.movie": {
source: "iana"
},
"application/vnd.dir-bi.plate-dl-nosuffix": {
source: "iana"
},
"application/vnd.dm.delegation+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dna": {
source: "iana",
extensions: ["dna"]
},
"application/vnd.document+json": {
source: "iana",
compressible: !0
},
"application/vnd.dolby.mlp": {
source: "apache",
extensions: ["mlp"]
},
"application/vnd.dolby.mobile.1": {
source: "iana"
},
"application/vnd.dolby.mobile.2": {
source: "iana"
},
"application/vnd.doremir.scorecloud-binary-document": {
source: "iana"
},
"application/vnd.dpgraph": {
source: "iana",
extensions: ["dpg"]
},
"application/vnd.dreamfactory": {
source: "iana",
extensions: ["dfac"]
},
"application/vnd.drive+json": {
source: "iana",
compressible: !0
},
"application/vnd.ds-keypoint": {
source: "apache",
extensions: ["kpxx"]
},
"application/vnd.dtg.local": {
source: "iana"
},
"application/vnd.dtg.local.flash": {
source: "iana"
},
"application/vnd.dtg.local.html": {
source: "iana"
},
"application/vnd.dvb.ait": {
source: "iana",
extensions: ["ait"]
},
"application/vnd.dvb.dvbisl+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.dvbj": {
source: "iana"
},
"application/vnd.dvb.esgcontainer": {
source: "iana"
},
"application/vnd.dvb.ipdcdftnotifaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess": {
source: "iana"
},
"application/vnd.dvb.ipdcesgaccess2": {
source: "iana"
},
"application/vnd.dvb.ipdcesgpdd": {
source: "iana"
},
"application/vnd.dvb.ipdcroaming": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-base": {
source: "iana"
},
"application/vnd.dvb.iptv.alfec-enhancement": {
source: "iana"
},
"application/vnd.dvb.notif-aggregate-root+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-container+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-generic+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-ia-msglist+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-ia-registration-request+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-ia-registration-response+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.notif-init+xml": {
source: "iana",
compressible: !0
},
"application/vnd.dvb.pfr": {
source: "iana"
},
"application/vnd.dvb.service": {
source: "iana",
extensions: ["svc"]
},
"application/vnd.dxr": {
source: "iana"
},
"application/vnd.dynageo": {
source: "iana",
extensions: ["geo"]
},
"application/vnd.dzr": {
source: "iana"
},
"application/vnd.easykaraoke.cdgdownload": {
source: "iana"
},
"application/vnd.ecdis-update": {
source: "iana"
},
"application/vnd.ecip.rlp": {
source: "iana"
},
"application/vnd.eclipse.ditto+json": {
source: "iana",
compressible: !0
},
"application/vnd.ecowin.chart": {
source: "iana",
extensions: ["mag"]
},
"application/vnd.ecowin.filerequest": {
source: "iana"
},
"application/vnd.ecowin.fileupdate": {
source: "iana"
},
"application/vnd.ecowin.series": {
source: "iana"
},
"application/vnd.ecowin.seriesrequest": {
source: "iana"
},
"application/vnd.ecowin.seriesupdate": {
source: "iana"
},
"application/vnd.efi.img": {
source: "iana"
},
"application/vnd.efi.iso": {
source: "iana"
},
"application/vnd.emclient.accessrequest+xml": {
source: "iana",
compressible: !0
},
"application/vnd.enliven": {
source: "iana",
extensions: ["nml"]
},
"application/vnd.enphase.envoy": {
source: "iana"
},
"application/vnd.eprints.data+xml": {
source: "iana",
compressible: !0
},
"application/vnd.epson.esf": {
source: "iana",
extensions: ["esf"]
},
"application/vnd.epson.msf": {
source: "iana",
extensions: ["msf"]
},
"application/vnd.epson.quickanime": {
source: "iana",
extensions: ["qam"]
},
"application/vnd.epson.salt": {
source: "iana",
extensions: ["slt"]
},
"application/vnd.epson.ssf": {
source: "iana",
extensions: ["ssf"]
},
"application/vnd.ericsson.quickcall": {
source: "iana"
},
"application/vnd.espass-espass+zip": {
source: "iana",
compressible: !1
},
"application/vnd.eszigno3+xml": {
source: "iana",
compressible: !0,
extensions: ["es3", "et3"]
},
"application/vnd.etsi.aoc+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.asic-e+zip": {
source: "iana",
compressible: !1
},
"application/vnd.etsi.asic-s+zip": {
source: "iana",
compressible: !1
},
"application/vnd.etsi.cug+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvcommand+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvdiscovery+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvprofile+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvsad-bc+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvsad-cod+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvsad-npvr+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvservice+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvsync+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.iptvueprofile+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.mcid+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.mheg5": {
source: "iana"
},
"application/vnd.etsi.overload-control-policy-dataset+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.pstn+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.sci+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.simservs+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.timestamp-token": {
source: "iana"
},
"application/vnd.etsi.tsl+xml": {
source: "iana",
compressible: !0
},
"application/vnd.etsi.tsl.der": {
source: "iana"
},
"application/vnd.eu.kasparian.car+json": {
source: "iana",
compressible: !0
},
"application/vnd.eudora.data": {
source: "iana"
},
"application/vnd.evolv.ecig.profile": {
source: "iana"
},
"application/vnd.evolv.ecig.settings": {
source: "iana"
},
"application/vnd.evolv.ecig.theme": {
source: "iana"
},
"application/vnd.exstream-empower+zip": {
source: "iana",
compressible: !1
},
"application/vnd.exstream-package": {
source: "iana"
},
"application/vnd.ezpix-album": {
source: "iana",
extensions: ["ez2"]
},
"application/vnd.ezpix-package": {
source: "iana",
extensions: ["ez3"]
},
"application/vnd.f-secure.mobile": {
source: "iana"
},
"application/vnd.familysearch.gedcom+zip": {
source: "iana",
compressible: !1
},
"application/vnd.fastcopy-disk-image": {
source: "iana"
},
"application/vnd.fdf": {
source: "iana",
extensions: ["fdf"]
},
"application/vnd.fdsn.mseed": {
source: "iana",
extensions: ["mseed"]
},
"application/vnd.fdsn.seed": {
source: "iana",
extensions: ["seed", "dataless"]
},
"application/vnd.ffsns": {
source: "iana"
},
"application/vnd.ficlab.flb+zip": {
source: "iana",
compressible: !1
},
"application/vnd.filmit.zfc": {