@acrolinx/sidebar-sdk 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.ts +303 -23
- package/dist/index.js +390 -296
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,41 +1,48 @@
|
|
|
1
|
-
function
|
|
1
|
+
function Et(t) {
|
|
2
2
|
return t.isAsync;
|
|
3
3
|
}
|
|
4
4
|
function Ye(t) {
|
|
5
5
|
return !!t.error;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
7
|
+
function Tr(t) {
|
|
8
|
+
return typeof t.content == "string";
|
|
9
|
+
}
|
|
10
|
+
function kt(t) {
|
|
8
11
|
return !!t.editorId;
|
|
9
12
|
}
|
|
10
|
-
function
|
|
13
|
+
function Bt(t) {
|
|
11
14
|
return !!t.element;
|
|
12
15
|
}
|
|
13
16
|
function ee(t) {
|
|
14
|
-
if (
|
|
17
|
+
if (Bt(t))
|
|
15
18
|
return t.element;
|
|
16
|
-
if (
|
|
19
|
+
if (kt(t))
|
|
17
20
|
return document.getElementById(t.editorId);
|
|
18
21
|
throw console.error("Invalid AdapterConf. Missing editorId or element", t), new Error("Invalid AdapterConf. Missing editorId or element");
|
|
19
22
|
}
|
|
20
|
-
const
|
|
23
|
+
const St = [
|
|
21
24
|
{
|
|
22
25
|
id: "com.acrolinx.sidebarexample",
|
|
23
26
|
name: "Acrolinx Sidebar Example Client",
|
|
24
27
|
version: "1.2.3.999",
|
|
25
28
|
category: "MAIN"
|
|
26
29
|
}
|
|
27
|
-
],
|
|
30
|
+
], xt = {
|
|
28
31
|
id: "com.acrolinx.sidebar-sdk-js",
|
|
29
32
|
name: "Sidebar SDK JS",
|
|
30
|
-
version: "2.0.
|
|
33
|
+
version: "2.0.2"
|
|
31
34
|
};
|
|
35
|
+
function Yr(t, e) {
|
|
36
|
+
const n = Date.now(), o = e();
|
|
37
|
+
return console.log(`Duration of "${t}:"`, Date.now() - n), o;
|
|
38
|
+
}
|
|
32
39
|
async function Le(t) {
|
|
33
40
|
const e = await fetch(t);
|
|
34
41
|
if (e.status >= 200 && e.status < 400)
|
|
35
42
|
return e.text();
|
|
36
43
|
throw new Error(`Error while loading ${t}.`);
|
|
37
44
|
}
|
|
38
|
-
function
|
|
45
|
+
function Dt(t) {
|
|
39
46
|
return t.nodeName === "IFRAME";
|
|
40
47
|
}
|
|
41
48
|
function X(t) {
|
|
@@ -64,14 +71,14 @@ function X(t) {
|
|
|
64
71
|
};
|
|
65
72
|
e.dispatchEvent(new InputEvent(o, a));
|
|
66
73
|
}
|
|
67
|
-
function
|
|
74
|
+
function Rt(t) {
|
|
68
75
|
const e = document.createElement("a");
|
|
69
76
|
e.href = t, e.host === "" && (e.href = e.href);
|
|
70
77
|
const { protocol: n, host: o, hostname: s, port: r, pathname: i, hash: A } = e;
|
|
71
78
|
return { protocol: n, host: o, hostname: s, port: r, pathname: i, hash: A };
|
|
72
79
|
}
|
|
73
|
-
function
|
|
74
|
-
const { protocol: e, host: n } =
|
|
80
|
+
function Ft(t) {
|
|
81
|
+
const { protocol: e, host: n } = Rt(t);
|
|
75
82
|
return location.protocol === e && location.host === n;
|
|
76
83
|
}
|
|
77
84
|
function fe(t) {
|
|
@@ -87,7 +94,7 @@ function Je(t) {
|
|
|
87
94
|
n.call(t, o) && (!e || o !== "caller" && o !== "callee" && o !== "arguments") && t[o] !== null && (typeof t[o] == "object" || typeof t[o] == "function") && !Object.isFrozen(t[o]) && Je(t[o]);
|
|
88
95
|
});
|
|
89
96
|
}
|
|
90
|
-
function
|
|
97
|
+
function Zt(t) {
|
|
91
98
|
const e = structuredClone(t);
|
|
92
99
|
return Je(e), e;
|
|
93
100
|
}
|
|
@@ -101,13 +108,16 @@ function V(t) {
|
|
|
101
108
|
if (!Oe(t))
|
|
102
109
|
throw Error("Adapter element is not displayed.");
|
|
103
110
|
}
|
|
111
|
+
function Lr(t) {
|
|
112
|
+
return /\S/.test(t);
|
|
113
|
+
}
|
|
104
114
|
function z(t) {
|
|
105
115
|
t.parentNode.removeChild(t);
|
|
106
116
|
}
|
|
107
117
|
function xe(t) {
|
|
108
118
|
return t && typeof t.then == "function";
|
|
109
119
|
}
|
|
110
|
-
class
|
|
120
|
+
class Mt {
|
|
111
121
|
resolve;
|
|
112
122
|
reject;
|
|
113
123
|
promise;
|
|
@@ -117,7 +127,7 @@ class Rt {
|
|
|
117
127
|
});
|
|
118
128
|
}
|
|
119
129
|
}
|
|
120
|
-
function
|
|
130
|
+
function Wt(t) {
|
|
121
131
|
return new Promise((e) => setTimeout(e, t));
|
|
122
132
|
}
|
|
123
133
|
function ce(t) {
|
|
@@ -137,20 +147,20 @@ function ce(t) {
|
|
|
137
147
|
return n;
|
|
138
148
|
}
|
|
139
149
|
}
|
|
140
|
-
function
|
|
150
|
+
function Ht(t) {
|
|
141
151
|
return JSON.parse(JSON.stringify(t));
|
|
142
152
|
}
|
|
143
|
-
function
|
|
144
|
-
const o = { command: e, args:
|
|
153
|
+
function Qt(t, e, ...n) {
|
|
154
|
+
const o = { command: e, args: Ht(n) };
|
|
145
155
|
t.postMessage(o, "*");
|
|
146
156
|
}
|
|
147
157
|
function je(t, e) {
|
|
148
158
|
for (const n in e) {
|
|
149
159
|
const o = e[n];
|
|
150
|
-
e[n] = (...s) => (
|
|
160
|
+
e[n] = (...s) => (Qt(t(), n, ...s), o.apply(e, s));
|
|
151
161
|
}
|
|
152
162
|
}
|
|
153
|
-
function
|
|
163
|
+
function Kt(t, e) {
|
|
154
164
|
const n = {
|
|
155
165
|
init: () => {
|
|
156
166
|
},
|
|
@@ -175,7 +185,7 @@ function Wt(t, e) {
|
|
|
175
185
|
}
|
|
176
186
|
addEventListener("message", o, !1);
|
|
177
187
|
}
|
|
178
|
-
function
|
|
188
|
+
function Nt(t = window) {
|
|
179
189
|
function e(o) {
|
|
180
190
|
const s = o.data, { command: r, args: i } = s, A = t.acrolinxSidebar;
|
|
181
191
|
A[r] && A[r].apply(A, i);
|
|
@@ -204,7 +214,7 @@ function Ht(t = window) {
|
|
|
204
214
|
return je(() => t.parent, n), n;
|
|
205
215
|
}
|
|
206
216
|
var re = {}, De;
|
|
207
|
-
function
|
|
217
|
+
function Pt() {
|
|
208
218
|
return De || (De = 1, re.ACROLINX_STARTPAGE_INLINED_HTML = `<!doctype html>
|
|
209
219
|
<html lang="en">
|
|
210
220
|
<head>
|
|
@@ -299,7 +309,7 @@ function Qt() {
|
|
|
299
309
|
</html>
|
|
300
310
|
`), re;
|
|
301
311
|
}
|
|
302
|
-
var
|
|
312
|
+
var Gt = Pt();
|
|
303
313
|
class Ue extends Error {
|
|
304
314
|
constructor(e, n, o) {
|
|
305
315
|
super(e), this.message = e, this.configuredSidebarURL = n, this.htmlLoaded = o, this.configuredSidebarURL = n, this.htmlLoaded = o, this.details = e + `
|
|
@@ -308,11 +318,11 @@ Configured SidebarURL:` + n + `
|
|
|
308
318
|
}
|
|
309
319
|
details;
|
|
310
320
|
}
|
|
311
|
-
function
|
|
321
|
+
function Tt(t) {
|
|
312
322
|
const e = document.createElement("link");
|
|
313
323
|
return e.rel = "stylesheet", e.href = t, e;
|
|
314
324
|
}
|
|
315
|
-
function
|
|
325
|
+
function Yt(t) {
|
|
316
326
|
const e = document.createElement("script");
|
|
317
327
|
return e.src = t, e.type = "text/javascript", e.async = !1, e.defer = !1, e;
|
|
318
328
|
}
|
|
@@ -320,7 +330,7 @@ function ze(t) {
|
|
|
320
330
|
const e = Date.now();
|
|
321
331
|
return t + "index.html?t=" + e;
|
|
322
332
|
}
|
|
323
|
-
async function
|
|
333
|
+
async function Lt(t) {
|
|
324
334
|
const e = ze(t), n = await Le(e);
|
|
325
335
|
if (n.indexOf('<meta name="sidebar-version"') < 0)
|
|
326
336
|
try {
|
|
@@ -333,11 +343,11 @@ async function Gt(t) {
|
|
|
333
343
|
console.log(c);
|
|
334
344
|
return;
|
|
335
345
|
}
|
|
336
|
-
const o = n.replace(/<!--[\s\S]*?-->/g, ""), s = document.querySelector("head"), r = (c) =>
|
|
346
|
+
const o = n.replace(/<!--[\s\S]*?-->/g, ""), s = document.querySelector("head"), r = (c) => Jt(c, t);
|
|
337
347
|
Re(o, "href").map(r).forEach((c) => {
|
|
338
|
-
s.appendChild(
|
|
348
|
+
s.appendChild(Tt(c));
|
|
339
349
|
}), Re(o, "src").map(r).forEach((c) => {
|
|
340
|
-
s.appendChild(
|
|
350
|
+
s.appendChild(Yt(c));
|
|
341
351
|
});
|
|
342
352
|
}
|
|
343
353
|
function Re(t, e) {
|
|
@@ -348,16 +358,16 @@ function Re(t, e) {
|
|
|
348
358
|
s.push(o[1]);
|
|
349
359
|
return s;
|
|
350
360
|
}
|
|
351
|
-
function
|
|
361
|
+
function Jt(t, e) {
|
|
352
362
|
return t.match(/^https?:/) ? t : e + t;
|
|
353
363
|
}
|
|
354
364
|
async function Fe(t, e, n) {
|
|
355
365
|
if (t.sidebarHtml || !t.sidebarUrl) {
|
|
356
|
-
q(t.sidebarHtml ||
|
|
366
|
+
q(t.sidebarHtml || Gt.ACROLINX_STARTPAGE_INLINED_HTML, e), n();
|
|
357
367
|
return;
|
|
358
368
|
}
|
|
359
369
|
const o = t.sidebarUrl, s = ze(o);
|
|
360
|
-
if (t.useMessageAdapter || t.useSidebarFromSameOriginDirectly &&
|
|
370
|
+
if (t.useMessageAdapter || t.useSidebarFromSameOriginDirectly && Ft(o))
|
|
361
371
|
e.addEventListener("load", n), e.src = s;
|
|
362
372
|
else {
|
|
363
373
|
const r = await Le(s);
|
|
@@ -372,18 +382,18 @@ async function Fe(t, e, n) {
|
|
|
372
382
|
A instanceof Error ? q(A.message, e) : q("Unknown error loading sidebar", e), console.error(A);
|
|
373
383
|
return;
|
|
374
384
|
}
|
|
375
|
-
const i =
|
|
385
|
+
const i = Ot(r, o);
|
|
376
386
|
q(i, e), n();
|
|
377
387
|
}
|
|
378
388
|
}
|
|
379
|
-
function
|
|
389
|
+
function Ot(t, e) {
|
|
380
390
|
return t.replace(/src="(?!https?:)/g, 'src="' + e).replace(/href="(?!https?:)/g, 'href="' + e);
|
|
381
391
|
}
|
|
382
392
|
function q(t, e) {
|
|
383
393
|
const n = e.contentWindow;
|
|
384
394
|
n.document.open(), n.document.write(t), n.document.close();
|
|
385
395
|
}
|
|
386
|
-
class
|
|
396
|
+
class jt {
|
|
387
397
|
constructor(e, n, o, s) {
|
|
388
398
|
this.config = e, this.adapter = n, this.onGotSidebar = o, this.sidebarContentWindow = s;
|
|
389
399
|
}
|
|
@@ -396,7 +406,7 @@ class Lt {
|
|
|
396
406
|
log: !!this.config.log
|
|
397
407
|
},
|
|
398
408
|
...this.config,
|
|
399
|
-
clientComponents: (this.config.clientComponents ||
|
|
409
|
+
clientComponents: (this.config.clientComponents || St).concat(xt)
|
|
400
410
|
});
|
|
401
411
|
}
|
|
402
412
|
getDefaultDocumentReference() {
|
|
@@ -482,7 +492,7 @@ class Lt {
|
|
|
482
492
|
this.config.log && this.config.log(e);
|
|
483
493
|
}
|
|
484
494
|
}
|
|
485
|
-
async function
|
|
495
|
+
async function Ut(t, e, n) {
|
|
486
496
|
const o = document.getElementById(t.sidebarContainerId);
|
|
487
497
|
if (!o)
|
|
488
498
|
throw new Error(
|
|
@@ -490,7 +500,7 @@ async function Jt(t, e, n) {
|
|
|
490
500
|
);
|
|
491
501
|
const s = document.createElement("iframe");
|
|
492
502
|
o.appendChild(s);
|
|
493
|
-
const r = s.contentWindow, i = new
|
|
503
|
+
const r = s.contentWindow, i = new jt(
|
|
494
504
|
t,
|
|
495
505
|
e,
|
|
496
506
|
n,
|
|
@@ -500,14 +510,14 @@ async function Jt(t, e, n) {
|
|
|
500
510
|
a(), console.log("Install acrolinxPlugin in sidebar."), t.acrolinxStorage && (r.acrolinxStorage = t.acrolinxStorage), r.acrolinxPlugin = i;
|
|
501
511
|
}
|
|
502
512
|
async function c() {
|
|
503
|
-
console.log("Connect acrolinxPlugin in sidebar."),
|
|
513
|
+
console.log("Connect acrolinxPlugin in sidebar."), Kt(i, s), await Fe(t, s, a);
|
|
504
514
|
}
|
|
505
515
|
function a() {
|
|
506
516
|
t.onSidebarWindowLoaded && t.onSidebarWindowLoaded(r);
|
|
507
517
|
}
|
|
508
518
|
return t.useMessageAdapter ? await c() : await Fe(t, s, A), i;
|
|
509
519
|
}
|
|
510
|
-
class
|
|
520
|
+
class zt {
|
|
511
521
|
store = [];
|
|
512
522
|
push(e) {
|
|
513
523
|
this.store.push(e);
|
|
@@ -516,15 +526,15 @@ class Ot {
|
|
|
516
526
|
return this.store.shift();
|
|
517
527
|
}
|
|
518
528
|
}
|
|
519
|
-
class
|
|
529
|
+
class Vt {
|
|
520
530
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
521
|
-
workTodo = new
|
|
531
|
+
workTodo = new zt();
|
|
522
532
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
523
533
|
currentWork;
|
|
524
534
|
addWork(e) {
|
|
525
535
|
const n = {
|
|
526
536
|
work: e,
|
|
527
|
-
deferred: new
|
|
537
|
+
deferred: new Mt()
|
|
528
538
|
};
|
|
529
539
|
return this.workTodo.push(n), this.currentWork || this.doRemainingWork(), n.deferred.promise;
|
|
530
540
|
}
|
|
@@ -540,7 +550,7 @@ class jt {
|
|
|
540
550
|
));
|
|
541
551
|
}
|
|
542
552
|
}
|
|
543
|
-
class
|
|
553
|
+
class Ve {
|
|
544
554
|
constructor(e) {
|
|
545
555
|
this.adapter = e, e.getAutobindWrapperAttributes && (this.getAutobindWrapperAttributes = e.getAutobindWrapperAttributes.bind(e)), e.getFormat && (this.getFormat = e.getFormat.bind(e));
|
|
546
556
|
}
|
|
@@ -548,7 +558,7 @@ class Ut {
|
|
|
548
558
|
requiresSynchronization = !1;
|
|
549
559
|
getAutobindWrapperAttributes;
|
|
550
560
|
getFormat;
|
|
551
|
-
workQueue = new
|
|
561
|
+
workQueue = new Vt();
|
|
552
562
|
extractContentForCheck(e) {
|
|
553
563
|
return this.adapter.extractContentForCheck(e);
|
|
554
564
|
}
|
|
@@ -577,7 +587,7 @@ class pe {
|
|
|
577
587
|
this.initConfig = e, this.config = {};
|
|
578
588
|
}
|
|
579
589
|
registerAdapter(e) {
|
|
580
|
-
|
|
590
|
+
Et(e) && e.requiresSynchronization ? this.adapter = new Ve(e) : this.adapter = e;
|
|
581
591
|
}
|
|
582
592
|
configure(e) {
|
|
583
593
|
this.config = { ...this.config, ...e }, this.internalPlugin && this.internalPlugin.acrolinxSidebar && this.internalPlugin.configureSidebar(this.config);
|
|
@@ -600,7 +610,7 @@ class pe {
|
|
|
600
610
|
async init() {
|
|
601
611
|
if (!this.adapter)
|
|
602
612
|
throw new Error("Missing registered adapter. Please use registerAdapter before init.");
|
|
603
|
-
this.internalPlugin = await
|
|
613
|
+
this.internalPlugin = await Ut(this.initConfig, this.adapter, () => {
|
|
604
614
|
this.internalPlugin.configureSidebar(this.config);
|
|
605
615
|
});
|
|
606
616
|
}
|
|
@@ -621,7 +631,7 @@ class pe {
|
|
|
621
631
|
}
|
|
622
632
|
}
|
|
623
633
|
}
|
|
624
|
-
function
|
|
634
|
+
function Xt(t) {
|
|
625
635
|
const e = t.getSelection();
|
|
626
636
|
if (!e)
|
|
627
637
|
return [];
|
|
@@ -630,12 +640,12 @@ function zt(t) {
|
|
|
630
640
|
n.push(e.getRangeAt(o));
|
|
631
641
|
return n;
|
|
632
642
|
}
|
|
633
|
-
function
|
|
634
|
-
return t.ownerDocument ?
|
|
635
|
-
(n) =>
|
|
643
|
+
function qt(t) {
|
|
644
|
+
return t.ownerDocument ? Xt(t.ownerDocument).filter(
|
|
645
|
+
(n) => _t(t, n.commonAncestorContainer) && n.toString().trim() !== ""
|
|
636
646
|
) : [];
|
|
637
647
|
}
|
|
638
|
-
function
|
|
648
|
+
function _t(t, e) {
|
|
639
649
|
return t === e || e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_CONTAINS;
|
|
640
650
|
}
|
|
641
651
|
function Ze(t, e) {
|
|
@@ -663,7 +673,7 @@ function Me(t, e) {
|
|
|
663
673
|
return n;
|
|
664
674
|
}
|
|
665
675
|
const oe = "ACROOO_SELECTION_START", We = "ACROOO_SELECTION_END";
|
|
666
|
-
function
|
|
676
|
+
function $t(t, e, n) {
|
|
667
677
|
const o = t.ownerDocument;
|
|
668
678
|
if (!o)
|
|
669
679
|
return;
|
|
@@ -676,16 +686,16 @@ function qt(t, e, n) {
|
|
|
676
686
|
if (!(d === -1 || u === -1))
|
|
677
687
|
return [d, u - oe.length];
|
|
678
688
|
}
|
|
679
|
-
function
|
|
689
|
+
function en(t) {
|
|
680
690
|
return t.innerHTML;
|
|
681
691
|
}
|
|
682
|
-
function ne(t, e =
|
|
683
|
-
return
|
|
692
|
+
function ne(t, e = en) {
|
|
693
|
+
return qt(t).map((o) => $t(t, o, e)).filter((o) => !!o);
|
|
684
694
|
}
|
|
685
|
-
function
|
|
695
|
+
function tn(t, e) {
|
|
686
696
|
if (t.length === 0)
|
|
687
697
|
return 0;
|
|
688
|
-
const n =
|
|
698
|
+
const n = nn(
|
|
689
699
|
t,
|
|
690
700
|
{ diffOffset: 0, oldPosition: e + 0.1 },
|
|
691
701
|
(o) => o.oldPosition
|
|
@@ -693,9 +703,9 @@ function $t(t, e) {
|
|
|
693
703
|
return n > 0 ? t[n - 1].diffOffset : 0;
|
|
694
704
|
}
|
|
695
705
|
function G(t, e) {
|
|
696
|
-
return e +
|
|
706
|
+
return e + tn(t, e);
|
|
697
707
|
}
|
|
698
|
-
function
|
|
708
|
+
function nn(t, e, n) {
|
|
699
709
|
let o = 0, s = t.length;
|
|
700
710
|
for (; o < s; ) {
|
|
701
711
|
const r = Math.floor((o + s) / 2);
|
|
@@ -704,7 +714,7 @@ function en(t, e, n) {
|
|
|
704
714
|
return o;
|
|
705
715
|
}
|
|
706
716
|
var ie;
|
|
707
|
-
const
|
|
717
|
+
const rn = /* @__PURE__ */ new Map([
|
|
708
718
|
[0, 65533],
|
|
709
719
|
// C1 Unicode control character reference replacements
|
|
710
720
|
[128, 8364],
|
|
@@ -734,18 +744,18 @@ const tn = /* @__PURE__ */ new Map([
|
|
|
734
744
|
[156, 339],
|
|
735
745
|
[158, 382],
|
|
736
746
|
[159, 376]
|
|
737
|
-
]),
|
|
747
|
+
]), on = (
|
|
738
748
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
|
|
739
749
|
(ie = String.fromCodePoint) !== null && ie !== void 0 ? ie : (t) => {
|
|
740
750
|
let e = "";
|
|
741
751
|
return t > 65535 && (t -= 65536, e += String.fromCharCode(t >>> 10 & 1023 | 55296), t = 56320 | t & 1023), e += String.fromCharCode(t), e;
|
|
742
752
|
}
|
|
743
753
|
);
|
|
744
|
-
function
|
|
754
|
+
function An(t) {
|
|
745
755
|
var e;
|
|
746
|
-
return t >= 55296 && t <= 57343 || t > 1114111 ? 65533 : (e =
|
|
756
|
+
return t >= 55296 && t <= 57343 || t > 1114111 ? 65533 : (e = rn.get(t)) !== null && e !== void 0 ? e : t;
|
|
747
757
|
}
|
|
748
|
-
function
|
|
758
|
+
function sn(t) {
|
|
749
759
|
const e = (
|
|
750
760
|
// eslint-disable-next-line n/no-unsupported-features/node-builtins
|
|
751
761
|
typeof atob == "function" ? (
|
|
@@ -770,7 +780,7 @@ function on(t) {
|
|
|
770
780
|
}
|
|
771
781
|
return o;
|
|
772
782
|
}
|
|
773
|
-
const An = /* @__PURE__ */ on("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
783
|
+
const an = /* @__PURE__ */ sn("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWlsN2E6ZHIAAOA12CjdciJlZW4AOGFjAHkARWRjAHkAXGRwAGYAAOA12FzdYwByAADgNdjA3IALQUJFSGFiY2RlZmdoamxtbm9wcnN0dXYAXhxtHHEcdRx5HN8cBx0dHTwd3B3tHfEdAR4EHh0eLB5FHrwewx7hHgkfPR9LH4ABYXJ0AGQcZxxpHHIA8gBvB/IAxQLhIWlsAKAbKeEhcnIAoA4pZ6BmIgCgiyphAHIAAKBiKWMJjRwAAJAcAACVHAAAAAAAAAAAAACZHJwcAACmHKgcrRwAANIc9SF0ZTph7SJwdHl2AKC0KXIAYQDuAFoG4iFkYbtjZwAAoegnZGyhHKMcAKCRKeUAiwYAoIUqdQBvADuAqwCrQHIAgKOQIWJmaGxwc3QAuhy/HMIcxBzHHMoczhxmoOQhcwAAoB8pcwAAoB0p6wCyGnAAAKCrIWwAAKA5KWkAbQAAoHMpbAAAoKIhAKGrKmFl1hzaHGkAbAAAoBkpc6CtKgDgrSoA/oABYWJyAOUc6RztHHIAcgAAoAwpcgBrAACgcicAAWFr8Rz4HGMAAAFla/Yc9xx7YFtgAAFlc/wc/hwAoIspbAAAAWR1Ax0FHQCgjykAoI0pAAJhZXV5Dh0RHRodHB3yIW9uPmEAAWRpFR0YHWkAbAA8YewAowbiAPccO2QAAmNxcnMkHScdLB05HWEAAKA2KXUAbwDyoBwgqhEAAWR1MB00HeghYXIAoGcpcyJoYXIAAKBLKWgAAKCyIQCiZCJmZ3FzRB1FB5Qdnh10AIACYWhscnQATh1WHWUdbB2NHXIicm93AHSgkCFhAOkAzxxhI3Jwb29uAAABZHVeHWId7yF3bgCgvSFwAACgvCHlJGZ0YXJyb3dzAKDHIWkiZ2h0AIABYWhzAHUdex2DHXIicm93APOglCGdBmEAcgBwAG8AbwBuAPMAzgtxAHUAaQBnAGEAcgByAG8A9wBlGugkcmVldGltZXMAoMsi8aFkIk0HAACaHWwAYQBuAPQAXgcAon0qY2Rnc6YdqR2xHbcdYwAAoKgqbwB0AG+gfypyoIEqAKCDKmXg2iIA/nMAAKCTKoACYWRlZ3MAwB3GHcod1h3ZHXAAcAByAG8A+ACmHG8AdAAAoNYicQAAAWdxzx3SHXQA8gBGB2cAdADyAHQcdADyAFMHaQDtAGMHgAFpbHIA4h3mHeod8yFodACgfClvAG8A8gDKBgDgNdgp3UWgdiIAoJEqYQH1Hf4dcgAAAWR1YB35HWygvCEAoGopbABrAACghCVjAHkAWWQAomoiYWNodAweDx4VHhkecgDyAGsdbwByAG4AZQDyAGAW4SFyZACgaylyAGkAAKD6JQABaW8hHiQe5CFvdEBh9SFzdGGgsCPjIWhlAKCwIwACRWFlczMeNR48HkEeAKBoInAAcKCJKvIhb3gAoIkqcaCHKvGghyo0HmkAbQAAoOYiAARhYm5vcHR3elIeXB5fHoUelh6mHqsetB4AAW5yVh5ZHmcAAKDsJ3IAAKD9IXIA6wCwBmcAgAFsbXIAZh52Hnse5SFmdAABYXKIB2weaQBnAGgAdABhAHIAcgBvAPcAkwfhInBzdG8AoPwnaQBnAGgAdABhAHIAcgBvAPcAmgdwI2Fycm93AAABbHKNHpEeZQBmAPQAxhxpImdodAAAoKwhgAFhZmwAnB6fHqIecgAAoIUpAOA12F3ddQBzAACgLSppIm1lcwAAoDQqYQGvHrMecwB0AACgFyLhAIoOZaHKJbkeRhLuIWdlAKDKJWEAcgBsoCgAdAAAoJMpgAJhY2htdADMHs8e1R7bHt0ecgDyAJ0GbwByAG4AZQDyANYWYQByAGSgyyEAoG0pAKAOIHIAaQAAoL8iAANhY2hpcXTrHu8e1QfzHv0eBh/xIXVvAKA5IHIAAOA12MHcbQDloXIi+h4AAPweAKCNKgCgjyoAAWJ19xwBH28AcqAYIACgGiDyIW9rQmEAhDwAO2NkaGlscXJCBhcfxh0gHyQfKB8sHzEfAAFjaRsfHR8AoKYqcgAAoHkqcgBlAOUAkx3tIWVzAKDJIuEhcnIAoHYpdSJlc3QAAKB7KgABUGk1HzkfYQByAACglillocMlAgdfEnIAAAFkdUIfRx9zImhhcgAAoEop6CFhcgCgZikAAWVuTx9WH3IjdG5lcXEAAOBoIgD+xQBUHwAHRGFjZGVmaGlsbm9wc3VuH3Ifoh+rH68ftx+7H74f5h/uH/MfBwj/HwsgxCFvdACgOiIAAmNscHJ5H30fiR+eH3IAO4CvAK9AAAFldIEfgx8AoEImZaAgJ3MAZQAAoCAnc6CmIXQAbwCAoaYhZGx1AJQfmB+cH28AdwDuAHkDZQBmAPQA6gbwAOkO6yFlcgCgriUAAW95ph+qH+0hbWEAoCkqPGThIXNoAKAUIOElc3VyZWRhbmdsZQCgISJyAADgNdgq3W8AAKAnIYABY2RuAMQfyR/bH3IAbwA7gLUAtUBhoiMi0B8AANMf1x9zAPQAKxFpAHIAAKDwKm8AdAA7gLcAt0B1AHMA4qESIh4TAADjH3WgOCIAoCoqYwHqH+0fcAAAoNsq8gB+GnAAbAB1APMACAgAAWRw9x/7H+UhbHMAoKciZgAA4DXYXt0AAWN0AyAHIHIAAOA12MLc8CFvcwCgPiJsobwDECAVIPQiaW1hcACguCJhAPAAEyAADEdMUlZhYmNkZWZnaGlqbG1vcHJzdHV2dzwgRyBmIG0geSCqILgg2iDeIBEhFSEyIUMhTSFQIZwhnyHSIQAiIyKLIrEivyIUIwABZ3RAIEMgAODZIjgD9uBrItIgBwmAAWVsdABNIF8gYiBmAHQAAAFhclMgWCByInJvdwAAoM0h6SRnaHRhcnJvdwCgziEA4NgiOAP24Goi0iBfCekkZ2h0YXJyb3cAoM8hAAFEZHEgdSDhIXNoAKCvIuEhc2gAoK4igAJiY25wdACCIIYgiSCNIKIgbABhAACgByL1IXRlRGFnAADgICLSIACiSSJFaW9wlSCYIJwgniAA4HAqOANkAADgSyI4A3MASWFyAG8A+AAyCnUAcgBhoG4mbADzoG4mmwjzAa8gAACzIHAAO4CgAKBAbQBwAOXgTiI4AyoJgAJhZW91eQDBIMogzSDWINkg8AHGIAAAyCAAoEMqbwBuAEhh5CFpbEZhbgBnAGSgRyJvAHQAAOBtKjgDcAAAoEIqPWThIXNoAKATIACjYCJBYWRxc3jpIO0g+SD+IAIhDCFyAHIAAKDXIXIAAAFocvIg9SBrAACgJClvoJch9wAGD28AdAAA4FAiOAN1AGkA9gC7CAABZWkGIQohYQByAACgKCntAN8I6SFzdPOgBCLlCHIAAOA12CvdAAJFZXN0/wgcISshLiHxoXEiIiEAABMJ8aFxIgAJAAAnIWwAYQBuAPQAEwlpAO0AGQlyoG8iAKBvIoABQWFwADghOyE/IXIA8gBeIHIAcgAAoK4hYQByAACg8ipzogsiSiEAAAAAxwtkoPwiAKD6ImMAeQBaZIADQUVhZGVzdABcIV8hYiFmIWkhkyGWIXIA8gBXIADgZiI4A3IAcgAAoJohcgAAoCUggKFwImZxcwBwIYQhjiF0AAABYXJ1IXohcgByAG8A9wBlIWkAZwBoAHQAYQByAHIAbwD3AD4h8aFwImAhAACKIWwAYQBuAPQAZwlz4H0qOAMAoG4iaQDtAG0JcqBuImkA5aDqIkUJaQDkADoKAAFwdKMhpyFmAADgNdhf3YCBrAA7aW4AriGvIcchrEBuAIChCSJFZHYAtyG6Ib8hAOD5IjgDbwB0AADg9SI4A+EB1gjEIcYhAKD3IgCg9iJpAHagDCLhAagJzyHRIQCg/iIAoP0igAFhb3IA2CHsIfEhcgCAoSYiYXN0AOAh5SHpIWwAbABlAOwAywhsAADg/SrlIADgAiI4A2wiaW50AACgFCrjoYAi9yEAAPohdQDlAJsJY+CvKjgDZaCAIvEAkwkAAkFhaXQHIgoiFyIeInIA8gBsIHIAcgAAoZshY3cRIhQiAOAzKTgDAOCdITgDZyRodGFycm93AACgmyFyAGkA5aDrIr4JgANjaGltcHF1AC8iPCJHIpwhTSJQIloigKGBImNlcgA2Iv0JOSJ1AOUABgoA4DXYw9zvIXJ0bQKdIQAAAABEImEAcgDhAOEhbQBloEEi8aBEIiYKYQDyAMsIcwB1AAABYnBWIlgi5QDUCeUA3wmAAWJjcABgInMieCKAoYQiRWVzAGci7glqIgDgxSo4A2UAdABl4IIi0iBxAPGgiCJoImMAZaCBIvEA/gmAoYUiRWVzAH8iFgqCIgDgxio4A2UAdABl4IMi0iBxAPGgiSKAIgACZ2lscpIilCKaIpwi7AAMCWwAZABlADuA8QDxQOcAWwlpI2FuZ2xlAAABbHKkIqoi5SFmdGWg6iLxAEUJaSJnaHQAZaDrIvEAvgltoL0DAKEjAGVzuCK8InIAbwAAoBYhcAAAoAcggARESGFkZ2lscnMAziLSItYi2iLeIugi7SICIw8j4SFzaACgrSLhIXJyAKAEKXAAAOBNItIg4SFzaACgrCIAAWV04iLlIgDgZSLSIADgPgDSIG4iZmluAACg3imAAUFldADzIvci+iJyAHIAAKACKQDgZCLSIHLgPADSIGkAZQAA4LQi0iAAAUF0BiMKI3IAcgAAoAMp8iFpZQDgtSLSIGkAbQAA4Dwi0iCAAUFhbgAaIx4jKiNyAHIAAKDWIXIAAAFociMjJiNrAACgIylvoJYh9wD/DuUhYXIAoCcpUxJqFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVCMAAF4jaSN/I4IjjSOeI8AUAAAAAKYjwCMAANoj3yMAAO8jHiQvJD8kRCQAAWNzVyNsFHUAdABlADuA8wDzQAABaXlhI2cjcgBjoJoiO4D0APRAPmSAAmFiaW9zAHEjdCN3I3EBeiNzAOgAdhTsIWFjUWF2AACgOCrvIWxkAKC8KewhaWdTYQABY3KFI4kjaQByAACgvykA4DXYLN1vA5QjAAAAAJYjAACcI24A22JhAHYAZQA7gPIA8kAAoMEpAAFibaEjjAphAHIAAKC1KQACYWNpdKwjryO6I70jcgDyAFkUAAFpcrMjtiNyAACgvinvIXNzAKC7KW4A5QDZCgCgwCmAAWFlaQDFI8gjyyNjAHIATWFnAGEAyWOAAWNkbgDRI9Qj1iPyIW9uv2MAoLYpdQDzAHgBcABmAADgNdhg3YABYWVsAOQj5yPrI3IAAKC3KXIAcAAAoLkpdQDzAHwBAKMoImFkaW9zdvkj/CMPJBMkFiQbJHIA8gBeFIChXSplZm0AAyQJJAwkcgBvoDQhZgAAoDQhO4CqAKpAO4C6ALpA5yFvZgCgtiJyAACgVipsIm9wZQAAoFcqAKBbKoABY2xvACMkJSQrJPIACCRhAHMAaAA7gPgA+EBsAACgmCJpAGwBMyQ4JGQAZQA7gPUA9UBlAHMAYaCXInMAAKA2Km0AbAA7gPYA9kDiIWFyAKA9I+EKXiQAAHokAAB8JJQkAACYJKkkAAAAALUkEQsAAPAkAAAAAAQleiUAAIMlcgCAoSUiYXN0AGUkbyQBCwCBtgA7bGokayS2QGwAZQDsABgDaQJ1JAAAAAB4JG0AAKDzKgCg/Sp5AD9kcgCAAmNpbXB0AIUkiCSLJJkSjyRuAHQAJWBvAGQALmBpAGwAAKAwIOUhbmsAoDEgcgAA4DXYLd2AAWltbwCdJKAkpCR2oMYD1WNtAGEA9AD+B24AZQAAoA4m9KHAA64kAAC0JGMjaGZvcmsAAKDUItZjAAFhdbgkxCRuAAABY2u9JMIkawBooA8hAKAOIfYAaRpzAACkKwBhYmNkZW1zdNMkIRPXJNsk4STjJOck6yTjIWlyAKAjKmkAcgAAoCIqAAFvdYsW3yQAoCUqAKByKm4AO4CxALFAaQBtAACgJip3AG8AAKAnKoABaXB1APUk+iT+JO4idGludACgFSpmAADgNdhh3W4AZAA7gKMAo0CApHoiRWFjZWlub3N1ABMlFSUYJRslTCVRJVklSSV1JQCgsypwAACgtyp1AOUAPwtjoK8qgKJ6ImFjZW5zACclLSU0JTYlSSVwAHAAcgBvAPgAFyV1AHIAbAB5AGUA8QA/C/EAOAuAAWFlcwA8JUElRSXwInByb3gAoLkqcQBxAACgtSppAG0AAKDoImkA7QBEC20AZQDzoDIgIguAAUVhcwBDJVclRSXwAEAlgAFkZnAATwtfJXElgAFhbHMAZSVpJW0l7CFhcgCgLiPpIW5lAKASI/UhcmYAoBMjdKAdIu8AWQvyIWVsAKCwIgABY2l9JYElcgAA4DXYxdzIY24iY3NwAACgCCAAA2Zpb3BzdZElKxuVJZolnyWkJXIAAOA12C7dcABmAADgNdhi3XIiaW1lAACgVyBjAHIAAOA12MbcgAFhZW8AqiW6JcAldAAAAWVpryW2JXIAbgBpAG8AbgDzABkFbgB0AACgFipzAHQAZaA/APEACRj0AG0LgApBQkhhYmNkZWZoaWxtbm9wcnN0dXgA4yXyJfYl+iVpJpAmpia9JtUm5ib4JlonaCdxJ3UnnietJ7EnyCfiJ+cngAFhcnQA6SXsJe4lcgDyAJkM8gD6AuEhaWwAoBwpYQByAPIA3BVhAHIAAKBkKYADY2RlbnFydAAGJhAmEyYYJiYmKyZaJgABZXUKJg0mAOA9IjEDdABlAFVhaQDjACAN7SJwdHl2AKCzKWcAgKHpJ2RlbAAgJiImJCYAoJIpAKClKeUA9wt1AG8AO4C7ALtAcgAApZIhYWJjZmhscHN0dz0mQCZFJkcmSiZMJk4mUSZVJlgmcAAAoHUpZqDlIXMAAKAgKQCgMylzAACgHinrALka8ACVHmwAAKBFKWkAbQAAoHQpbAAAoKMhAKCdIQABYWleJmImaQBsAACgGilvAG6gNiJhAGwA8wB2C4ABYWJyAG8mciZ2JnIA8gAvEnIAawAAoHMnAAFha3omgSZjAAABZWt/JoAmfWBdYAABZXOFJocmAKCMKWwAAAFkdYwmjiYAoI4pAKCQKQACYWV1eZcmmiajJqUm8iFvbllhAAFkaZ4moSZpAGwAV2HsAA8M4gCAJkBkAAJjbHFzrSawJrUmuiZhAACgNylkImhhcgAAoGkpdQBvAPKgHSCjAWgAAKCzIYABYWNnAMMm0iaUC2wAgKEcIWlwcwDLJs4migxuAOUAoAxhAHIA9ADaC3QAAKCtJYABaWxyANsm3ybjJvMhaHQAoH0pbwBvAPIANgwA4DXYL90AAWFv6ib1JnIAAAFkde8m8SYAoMEhbKDAIQCgbCl2oMED8WOAAWducwD+Jk4nUCdoAHQAAANhaGxyc3QKJxInISc1Jz0nRydyInJvdwB0oJIhYQDpAFYmYSNycG9vbgAAAWR1GiceJ28AdwDuAPAmcAAAoMAh5SFmdAABYWgnJy0ncgByAG8AdwDzAAkMYQByAHAAbwBvAG4A8wATBGklZ2h0YXJyb3dzAACgySFxAHUAaQBnAGEAcgByAG8A9wBZJugkcmVldGltZXMAoMwiZwDaYmkAbgBnAGQAbwB0AHMAZQDxABwYgAFhaG0AYCdjJ2YncgDyAAkMYQDyABMEAKAPIG8idXN0AGGgsSPjIWhlAKCxI+0haWQAoO4qAAJhYnB0fCeGJ4knmScAAW5ygCeDJ2cAAKDtJ3IAAKD+IXIA6wAcDIABYWZsAI8nkieVJ3IAAKCGKQDgNdhj3XUAcwAAoC4qaSJtZXMAAKA1KgABYXCiJ6gncgBnoCkAdAAAoJQp7yJsaW50AKASKmEAcgDyADwnAAJhY2hxuCe8J6EMwCfxIXVvAKA6IHIAAOA12MfcAAFidYAmxCdvAPKgGSCoAYABaGlyAM4n0ifWJ3IAZQDlAE0n7SFlcwCgyiJpAIChuSVlZmwAXAxjEt4n9CFyaQCgzinsInVoYXIAoGgpAKAeIWENBSgJKA0oSyhVKIYoAACLKLAoAAAAAOMo5ygAABApJCkxKW0pcSmHKaYpAACYKgAAAACxKmMidXRlAFthcQB1AO8ABR+ApHsiRWFjZWlucHN5ABwoHignKCooLygyKEEoRihJKACgtCrwASMoAAAlKACguCpvAG4AYWF1AOUAgw1koLAqaQBsAF9hcgBjAF1hgAFFYXMAOCg6KD0oAKC2KnAAAKC6KmkAbQAAoOki7yJsaW50AKATKmkA7QCIDUFkbwB0AGKixSKRFgAAAABTKACgZiqAA0FhY21zdHgAYChkKG8ocyh1KHkogihyAHIAAKDYIXIAAAFocmkoayjrAJAab6CYIfcAzAd0ADuApwCnQGkAO2D3IWFyAKApKW0AAAFpbn4ozQBuAHUA8wDOAHQAAKA2J3IA7+A12DDdIxkAAmFjb3mRKJUonSisKHIAcAAAoG8mAAFoeZkonChjAHkASWRIZHIAdABtAqUoAAAAAKgoaQDkAFsPYQByAGEA7ABsJDuArQCtQAABZ22zKLsobQBhAAChwwNmdroouijCY4CjPCJkZWdsbnByAMgozCjPKNMo1yjaKN4obwB0AACgairxoEMiCw5FoJ4qAKCgKkWgnSoAoJ8qZQAAoEYi7CF1cwCgJCrhIXJyAKByKWEAcgDyAPwMAAJhZWl07Sj8KAEpCCkAAWxz8Sj4KGwAcwBlAHQAbQDpAH8oaABwAACgMyrwImFyc2wAoOQpAAFkbFoPBSllAACgIyNloKoqc6CsKgDgrCoA/oABZmxwABUpGCkfKfQhY3lMZGKgLwBhoMQpcgAAoD8jZgAA4DXYZN1hAAABZHIoKRcDZQBzAHWgYCZpAHQAAKBgJoABY3N1ADYpRilhKQABYXU6KUApcABzoJMiAOCTIgD+cABzoJQiAOCUIgD+dQAAAWJwSylWKQChjyJlcz4NUCllAHQAZaCPIvEAPw0AoZAiZXNIDVspZQB0AGWgkCLxAEkNAKGhJWFmZilbBHIAZQFrKVwEAKChJWEAcgDyAAMNAAJjZW10dyl7KX8pgilyAADgNdjI3HQAbQDuAM4AaQDsAAYpYQByAOYAVw0AAWFyiimOKXIA5qAGJhESAAFhbpIpoylpImdodAAAAWVwmSmgKXAAcwBpAGwAbwDuANkXaADpAKAkcwCvYIACYmNtbnAArin8KY4NJSooKgCkgiJFZGVtbnByc7wpvinCKcgpzCnUKdgp3CkAoMUqbwB0AACgvSpkoIYibwB0AACgwyr1IWx0AKDBKgABRWXQKdIpAKDLKgCgiiLsIXVzAKC/KuEhcnIAoHkpgAFlaXUA4inxKfQpdAAAoYIiZW7oKewpcQDxoIYivSllAHEA8aCKItEpbQAAoMcqAAFicPgp+ikAoNUqAKDTKmMAgKJ7ImFjZW5zAAcqDSoUKhYqRihwAHAAcgBvAPgAIyh1AHIAbAB5AGUA8QCDDfEAfA2AAWFlcwAcKiIqPShwAHAAcgBvAPgAPChxAPEAOShnAACgaiYApoMiMTIzRWRlaGxtbnBzPCo/KkIqRSpHKlIqWCpjKmcqaypzKncqO4C5ALlAO4CyALJAO4CzALNAAKDGKgABb3NLKk4qdAAAoL4qdQBiAACg2CpkoIcibwB0AACgxCpzAAABb3VdKmAqbAAAoMknYgAAoNcq4SFycgCgeyn1IWx0AKDCKgABRWVvKnEqAKDMKgCgiyLsIXVzAKDAKoABZWl1AH0qjCqPKnQAAKGDImVugyqHKnEA8aCHIkYqZQBxAPGgiyJwKm0AAKDIKgABYnCTKpUqAKDUKgCg1iqAAUFhbgCdKqEqrCpyAHIAAKDZIXIAAAFocqYqqCrrAJUab6CZIfcAxQf3IWFyAKAqKWwAaQBnADuA3wDfQOELzyrZKtwq6SrsKvEqAAD1KjQrAAAAAAAAAAAAAEwrbCsAAHErvSsAAAAAAADRK3IC1CoAAAAA2CrnIWV0AKAWI8RjcgDrAOUKgAFhZXkA4SrkKucq8iFvbmVh5CFpbGNhQmRvAPQAIg5sInJlYwAAoBUjcgAA4DXYMd0AAmVpa2/7KhIrKCsuK/IBACsAAAkrZQAAATRm6g0EK28AcgDlAOsNYQBzorgDECsAAAAAEit5AG0A0WMAAWNuFislK2sAAAFhcxsrIStwAHAAcgBvAPgAFw5pAG0AAKA8InMA8AD9DQABYXMsKyEr8AAXDnIAbgA7gP4A/kDsATgrOyswG2QA5QBnAmUAcwCAgdcAO2JkAEMrRCtJK9dAYaCgInIAAKAxKgCgMCqAAWVwcwBRK1MraSvhAAkh4qKkIlsrXysAAAAAYytvAHQAAKA2I2kAcgAAoPEqb+A12GXdcgBrAACg2irhAHgociJpbWUAAKA0IIABYWlwAHYreSu3K2QA5QC+DYADYWRlbXBzdACFK6MrmiunK6wrsCuzK24iZ2xlAACitSVkbHFykCuUK5ornCvvIXduAKC/JeUhZnRloMMl8QACBwCgXCJpImdodABloLkl8QBdDG8AdAAAoOwlaSJudXMAAKA6KuwhdXMAoDkqYgAAoM0p6SFtZQCgOyrlInppdW0AoOIjgAFjaHQAwivKK80rAAFyecYrySsA4DXYydxGZGMAeQBbZPIhb2tnYQABaW/UK9creAD0ANERaCJlYWQAAAFsct4r5ytlAGYAdABhAHIAcgBvAPcAXQbpJGdodGFycm93AKCgIQAJQUhhYmNkZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
|
|
774
784
|
var F;
|
|
775
785
|
(function(t) {
|
|
776
786
|
t[t.VALUE_LENGTH = 49152] = "VALUE_LENGTH", t[t.FLAG13 = 8192] = "FLAG13", t[t.BRANCH_LENGTH = 8064] = "BRANCH_LENGTH", t[t.JUMP_TABLE = 127] = "JUMP_TABLE";
|
|
@@ -783,14 +793,14 @@ const He = 32;
|
|
|
783
793
|
function le(t) {
|
|
784
794
|
return t >= B.ZERO && t <= B.NINE;
|
|
785
795
|
}
|
|
786
|
-
function
|
|
796
|
+
function cn(t) {
|
|
787
797
|
return t >= B.UPPER_A && t <= B.UPPER_F || t >= B.LOWER_A && t <= B.LOWER_F;
|
|
788
798
|
}
|
|
789
|
-
function
|
|
799
|
+
function ln(t) {
|
|
790
800
|
return t >= B.UPPER_A && t <= B.UPPER_Z || t >= B.LOWER_A && t <= B.LOWER_Z || le(t);
|
|
791
801
|
}
|
|
792
|
-
function
|
|
793
|
-
return t === B.EQUALS ||
|
|
802
|
+
function dn(t) {
|
|
803
|
+
return t === B.EQUALS || ln(t);
|
|
794
804
|
}
|
|
795
805
|
var D;
|
|
796
806
|
(function(t) {
|
|
@@ -800,7 +810,7 @@ var K;
|
|
|
800
810
|
(function(t) {
|
|
801
811
|
t[t.Legacy = 0] = "Legacy", t[t.Strict = 1] = "Strict", t[t.Attribute = 2] = "Attribute";
|
|
802
812
|
})(K || (K = {}));
|
|
803
|
-
class
|
|
813
|
+
class un {
|
|
804
814
|
constructor(e, n, o) {
|
|
805
815
|
this.decodeTree = e, this.emitCodePoint = n, this.errors = o, this.state = D.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = K.Strict;
|
|
806
816
|
}
|
|
@@ -857,7 +867,7 @@ class ln {
|
|
|
857
867
|
stateNumericHex(e, n) {
|
|
858
868
|
for (; n < e.length; ) {
|
|
859
869
|
const o = e.charCodeAt(n);
|
|
860
|
-
if (le(o) ||
|
|
870
|
+
if (le(o) || cn(o)) {
|
|
861
871
|
const s = o <= B.NINE ? o - B.ZERO : (o | He) - B.LOWER_A + 10;
|
|
862
872
|
this.result = this.result * 16 + s, this.consumed++, n++;
|
|
863
873
|
} else
|
|
@@ -905,7 +915,7 @@ class ln {
|
|
|
905
915
|
this.consumed += 1;
|
|
906
916
|
else if (this.decodeMode === K.Strict)
|
|
907
917
|
return 0;
|
|
908
|
-
return this.emitCodePoint(
|
|
918
|
+
return this.emitCodePoint(An(this.result), this.consumed), this.errors && (e !== B.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
|
|
909
919
|
}
|
|
910
920
|
/**
|
|
911
921
|
* Parses a named entity.
|
|
@@ -947,11 +957,11 @@ class ln {
|
|
|
947
957
|
const i = e.charCodeAt(n);
|
|
948
958
|
if (i === B.SEMI && r !== 0 && (s & F.FLAG13) !== 0)
|
|
949
959
|
return this.emitNamedEntityData(this.treeIndex, r, this.consumed + this.excess);
|
|
950
|
-
if (this.treeIndex =
|
|
960
|
+
if (this.treeIndex = hn(o, s, this.treeIndex + Math.max(1, r), i), this.treeIndex < 0)
|
|
951
961
|
return this.result === 0 || // If we are parsing an attribute
|
|
952
962
|
this.decodeMode === K.Attribute && // We shouldn't have consumed any characters after the entity,
|
|
953
963
|
(r === 0 || // And there should be no invalid characters.
|
|
954
|
-
|
|
964
|
+
dn(i)) ? 0 : this.emitNotTerminatedNamedEntity();
|
|
955
965
|
if (s = o[this.treeIndex], r = (s & F.VALUE_LENGTH) >> 14, r !== 0) {
|
|
956
966
|
if (i === B.SEMI)
|
|
957
967
|
return this.emitNamedEntityData(this.treeIndex, r, this.consumed + this.excess);
|
|
@@ -1008,9 +1018,9 @@ class ln {
|
|
|
1008
1018
|
}
|
|
1009
1019
|
}
|
|
1010
1020
|
}
|
|
1011
|
-
function
|
|
1021
|
+
function gn(t) {
|
|
1012
1022
|
let e = "";
|
|
1013
|
-
const n = new
|
|
1023
|
+
const n = new un(t, (o) => e += on(o));
|
|
1014
1024
|
return function(s, r) {
|
|
1015
1025
|
let i = 0, A = 0;
|
|
1016
1026
|
for (; (A = s.indexOf("&", A)) >= 0; ) {
|
|
@@ -1030,7 +1040,7 @@ function dn(t) {
|
|
|
1030
1040
|
return e = "", c;
|
|
1031
1041
|
};
|
|
1032
1042
|
}
|
|
1033
|
-
function
|
|
1043
|
+
function hn(t, e, n, o) {
|
|
1034
1044
|
const s = (e & F.BRANCH_LENGTH) >> 7, r = e & F.JUMP_TABLE;
|
|
1035
1045
|
if (s === 0)
|
|
1036
1046
|
return r !== 0 && o === r ? n : -1;
|
|
@@ -1051,35 +1061,35 @@ function un(t, e, n, o) {
|
|
|
1051
1061
|
}
|
|
1052
1062
|
return -1;
|
|
1053
1063
|
}
|
|
1054
|
-
const
|
|
1055
|
-
function
|
|
1056
|
-
return
|
|
1064
|
+
const fn = /* @__PURE__ */ gn(an);
|
|
1065
|
+
function pn(t) {
|
|
1066
|
+
return fn(t, K.Strict);
|
|
1057
1067
|
}
|
|
1058
|
-
const
|
|
1068
|
+
const Xe = /* @__PURE__ */ new Map([
|
|
1059
1069
|
[34, """],
|
|
1060
1070
|
[38, "&"],
|
|
1061
1071
|
[39, "'"],
|
|
1062
1072
|
[60, "<"],
|
|
1063
1073
|
[62, ">"]
|
|
1064
|
-
]),
|
|
1074
|
+
]), qe = (
|
|
1065
1075
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1066
1076
|
String.prototype.codePointAt == null ? (t, e) => (t.charCodeAt(e) & 64512) === 55296 ? (t.charCodeAt(e) - 55296) * 1024 + t.charCodeAt(e + 1) - 56320 + 65536 : t.charCodeAt(e) : (
|
|
1067
1077
|
// http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
|
|
1068
1078
|
(t, e) => t.codePointAt(e)
|
|
1069
1079
|
)
|
|
1070
|
-
),
|
|
1080
|
+
), _e = 1342177476;
|
|
1071
1081
|
function Qe(t) {
|
|
1072
1082
|
let e, n = 0;
|
|
1073
1083
|
const { length: o } = t;
|
|
1074
1084
|
for (let s = 0; s < o; s++) {
|
|
1075
1085
|
const r = t.charCodeAt(s);
|
|
1076
|
-
if (r < 128 && ((
|
|
1086
|
+
if (r < 128 && ((_e >>> r & 1) === 0 || r >= 64 || r < 32))
|
|
1077
1087
|
continue;
|
|
1078
1088
|
if (e === void 0 ? e = t.substring(0, s) : n !== s && (e += t.substring(n, s)), r < 64) {
|
|
1079
|
-
e +=
|
|
1089
|
+
e += Xe.get(r), n = s + 1;
|
|
1080
1090
|
continue;
|
|
1081
1091
|
}
|
|
1082
|
-
const i =
|
|
1092
|
+
const i = qe(t, s);
|
|
1083
1093
|
e += `&#x${i.toString(16)};`, i !== r && s++, n = s + 1;
|
|
1084
1094
|
}
|
|
1085
1095
|
return e === void 0 ? t : (n < o && (e += t.substr(n)), e);
|
|
@@ -1092,17 +1102,17 @@ function me(t, e) {
|
|
|
1092
1102
|
return i + o.substring(r);
|
|
1093
1103
|
};
|
|
1094
1104
|
}
|
|
1095
|
-
const
|
|
1105
|
+
const mn = /* @__PURE__ */ me(/["&'<>]/g, Xe), bn = /* @__PURE__ */ me(/["&\u00A0]/g, /* @__PURE__ */ new Map([
|
|
1096
1106
|
[34, """],
|
|
1097
1107
|
[38, "&"],
|
|
1098
1108
|
[160, " "]
|
|
1099
|
-
])),
|
|
1109
|
+
])), vn = /* @__PURE__ */ me(/[&<>\u00A0]/g, /* @__PURE__ */ new Map([
|
|
1100
1110
|
[38, "&"],
|
|
1101
1111
|
[60, "<"],
|
|
1102
1112
|
[62, ">"],
|
|
1103
1113
|
[160, " "]
|
|
1104
1114
|
]));
|
|
1105
|
-
function
|
|
1115
|
+
function In(t) {
|
|
1106
1116
|
const e = /* @__PURE__ */ new Map(), n = t.length;
|
|
1107
1117
|
let o = 0, s = -1;
|
|
1108
1118
|
function r() {
|
|
@@ -1158,7 +1168,7 @@ function bn(t) {
|
|
|
1158
1168
|
}
|
|
1159
1169
|
return e;
|
|
1160
1170
|
}
|
|
1161
|
-
const vn = /* @__PURE__ */ bn("9	
m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl"), In = /* @__PURE__ */ new Uint32Array([
|
|
1171
|
+
const Cn = /* @__PURE__ */ In("9	
m!"#$%&'()*+,1./a:;<{6he<⃒}={6hx=⃥}>{6he>⃒}?@q[\]^_`5{2yfj}k{|}y ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒē2ĖėĘęĚěĜĝĞğĠġĢ1ĤĥĦħĨĩĪī2ĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌō2ŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžjƒyƵ1rǵ1tȷ3yˆˇg˘˙˚˛˜˝1f̑3jΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ1ΣΤΥΦΧΨΩ7αβγδεζηθικλμνξοπρςστυφχψω7ϑϒ2ϕϖ5Ϝϝiϰϱ3ϵ϶aЁЂЃЄЅІЇЈЉЊЋЌ1ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя1ёђѓєѕіїјљњћќ1ўџ5gi    1    ​‌‍‎‏‐2–—―‖1‘’‚1“”„1†‡•2‥…9‰‱′″‴‵3‹›3‾2⁁1⁃⁄a⁏7⁗7 {6bu  }⁠⁡⁢⁣20€1a⃛⃜11ℂ2℅4ℊℋℌℍℎℏℐℑℒℓ1ℕ№℗℘ℙℚℛℜℝ℞3™1ℤ2℧ℨ℩2ℬℭ1ℯℰℱ1ℳℴℵℶℷℸcⅅⅆⅇⅈa⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞1d←↑→↓↔↕↖↗↘↙↚↛1↝{mw↝̸}↞↟↠↡↢↣↤↥↦↧1↩↪↫↬↭↮1↰↱↲↳1↵↶↷2↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛1⇝6⇤⇥f⇵7⇽⇾⇿∀∁∂{mw∂̸}∃∄∅1∇∈∉1∋∌2∏∐∑−∓∔1∖∗∘1√2∝∞∟∠{6he∠⃒}∡∢∣∤∥∦∧∨∩{1e68∩︀}∪{1e68∪︀}∫∬∭∮∯∰∱∲∳∴∵∶∷∸1∺∻∼{6he∼⃒}∽{mp∽̱}∾{mr∾̳}∿≀≁≂{mw≂̸}≃≄≅≆≇≈≉≊≋{mw≋̸}≌≍{6he≍⃒}≎{mw≎̸}≏{mw≏̸}≐{mw≐̸}≑≒≓≔≕≖≗1≙≚1≜2≟≠≡{6hx≡⃥}≢1≤{6he≤⃒}≥{6he≥⃒}≦{mw≦̸}≧{mw≧̸}≨{1e68≨︀}≩{1e68≩︀}≪{mw≪̸5uh≪⃒}≫{mw≫̸5uh≫⃒}≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿{mw≿̸}⊀⊁⊂{6he⊂⃒}⊃{6he⊃⃒}⊄⊅⊆⊇⊈⊉⊊{1e68⊊︀}⊋{1e68⊋︀}1⊍⊎⊏{mw⊏̸}⊐{mw⊐̸}⊑⊒⊓{1e68⊓︀}⊔{1e68⊔︀}⊕⊖⊗⊘⊙⊚⊛1⊝⊞⊟⊠⊡⊢⊣⊤⊥1⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰1⊲⊳⊴{6he⊴⃒}⊵{6he⊵⃒}⊶⊷⊸⊹⊺⊻1⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘{mw⋘̸}⋙{mw⋙̸}⋚{1e68⋚︀}⋛{1e68⋛︀}2⋞⋟⋠⋡⋢⋣2⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵{mw⋵̸}⋶⋷1⋹{mw⋹̸}⋺⋻⋼⋽⋾6⌅⌆1⌈⌉⌊⌋⌌⌍⌎⌏⌐1⌒⌓1⌕⌖5⌜⌝⌞⌟2⌢⌣9⌭⌮7⌶6⌽1⌿1o⍼1f⎰⎱2⎴⎵⎶11⏜⏝⏞⏟2⏢4⏧1n␣4kⓈ1j─1│9┌3┐3└3┘3├7┤7┬7┴7┼j═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬j▀3▄3█8░▒▓d□8▪▫1▭▮2▱1△▴▵2▸▹3▽▾▿2◂◃6◊○w◬2◯8◸◹◺◻◼8★☆7☎1d♀1♂t♠2♣1♥♦3♪2♭♮♯4j✓3✗8✠l✶x❘p❲❳2c⟈⟉s⟦⟧⟨⟩⟪⟫⟬⟭7⟵⟶⟷⟸⟹⟺1⟼2⟿76⤂⤃⤄⤅6⤌⤍⤎⤏⤐⤑⤒⤓2⤖2⤙⤚⤛⤜⤝⤞⤟⤠2⤣⤤⤥⤦⤧⤨⤩⤪8⤳{mw⤳̸}1⤵⤶⤷⤸⤹2⤼⤽7⥅2⥈⥉⥊⥋2⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶1⥸⥹1⥻⥼⥽⥾⥿5⦅⦆4⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖3⦚1⦜⦝6⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷1⦹1⦻⦼1⦾⦿⧀⧁⧂⧃⧄⧅3⧉3⧍⧎⧏{mw⧏̸}⧐{mw⧐̸}b⧜⧝⧞4⧣⧤⧥5⧫8⧴1⧶9⨀⨁⨂1⨄1⨆5⨌⨍2⨐⨑⨒⨓⨔⨕⨖⨗a⨢⨣⨤⨥⨦⨧1⨩⨪2⨭⨮⨯⨰⨱1⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼2⨿⩀1⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍2⩐2⩓⩔⩕⩖⩗⩘1⩚⩛⩜⩝1⩟6⩦3⩪2⩭{mw⩭̸}⩮⩯⩰{mw⩰̸}⩱⩲⩳⩴⩵1⩷⩸⩹⩺⩻⩼⩽{mw⩽̸}⩾{mw⩾̸}⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚2⪝⪞⪟⪠⪡{mw⪡̸}⪢{mw⪢̸}1⪤⪥⪦⪧⪨⪩⪪⪫⪬{1e68⪬︀}⪭{1e68⪭︀}⪮⪯{mw⪯̸}⪰{mw⪰̸}2⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅{mw⫅̸}⫆{mw⫆̸}⫇⫈2⫋{1e68⫋︀}⫌{1e68⫌︀}2⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛8⫤1⫦⫧⫨⫩1⫫⫬⫭⫮⫯⫰⫱⫲⫳9⫽{6hx⫽⃥}y7r{17ks𝒜1𝒞𝒟2𝒢2𝒥𝒦2𝒩𝒪𝒫𝒬1𝒮𝒯𝒰𝒱𝒲𝒳𝒴𝒵𝒶𝒷𝒸𝒹1𝒻1𝒽𝒾𝒿𝓀𝓁𝓂𝓃1𝓅𝓆𝓇𝓈𝓉𝓊𝓋𝓌𝓍𝓎𝓏1g𝔄𝔅1𝔇𝔈𝔉𝔊2𝔍𝔎𝔏𝔐𝔑𝔒𝔓𝔔1𝔖𝔗𝔘𝔙𝔚𝔛𝔜1𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷𝔸𝔹1𝔻𝔼𝔽𝔾1𝕀𝕁𝕂𝕃𝕄1𝕆3𝕊𝕋𝕌𝕍𝕎𝕏𝕐1𝕒𝕓𝕔𝕕𝕖𝕗𝕘𝕙𝕚𝕛𝕜𝕝𝕞𝕟𝕠𝕡𝕢𝕣𝕤𝕥𝕦𝕧𝕨𝕩𝕪𝕫}6vefffiflffiffl"), wn = /* @__PURE__ */ new Uint32Array([
|
|
1162
1172
|
5632,
|
|
1163
1173
|
// Bits for 09,0A,0C
|
|
1164
1174
|
4227923966,
|
|
@@ -1167,14 +1177,14 @@ const vn = /* @__PURE__ */ bn("9	
m!"#$%
|
|
|
1167
1177
|
// 64..95 -> 40, 5B-5F
|
|
1168
1178
|
939524097
|
|
1169
1179
|
// 96..127-> 60, 7B-7D
|
|
1170
|
-
]),
|
|
1171
|
-
function
|
|
1172
|
-
return
|
|
1180
|
+
]), yn = /* @__PURE__ */ new Uint32Array([0, _e, 0, 0]);
|
|
1181
|
+
function En(t) {
|
|
1182
|
+
return $e(wn, t);
|
|
1173
1183
|
}
|
|
1174
|
-
function
|
|
1175
|
-
return
|
|
1184
|
+
function kn(t) {
|
|
1185
|
+
return $e(yn, t);
|
|
1176
1186
|
}
|
|
1177
|
-
function
|
|
1187
|
+
function $e(t, e) {
|
|
1178
1188
|
let n, o = 0;
|
|
1179
1189
|
const { length: s } = e;
|
|
1180
1190
|
for (let r = 0; r < s; r++) {
|
|
@@ -1182,7 +1192,7 @@ function _e(t, e) {
|
|
|
1182
1192
|
if (i < 128 && !(t[i >>> 5] >>> i & 1))
|
|
1183
1193
|
continue;
|
|
1184
1194
|
n === void 0 ? n = e.substring(0, r) : o !== r && (n += e.substring(o, r));
|
|
1185
|
-
let A =
|
|
1195
|
+
let A = Cn.get(i);
|
|
1186
1196
|
if (typeof A == "object") {
|
|
1187
1197
|
if (r + 1 < s) {
|
|
1188
1198
|
const c = e.charCodeAt(r + 1), a = typeof A.next == "number" ? A.next === c ? A.nextValue : void 0 : A.next.get(c);
|
|
@@ -1194,7 +1204,7 @@ function _e(t, e) {
|
|
|
1194
1204
|
A = A.value;
|
|
1195
1205
|
}
|
|
1196
1206
|
if (A === void 0) {
|
|
1197
|
-
const c =
|
|
1207
|
+
const c = qe(e, r);
|
|
1198
1208
|
n += `&#x${c.toString(16)};`, c !== i && r++, o = r + 1;
|
|
1199
1209
|
} else
|
|
1200
1210
|
n += A, o = r + 1;
|
|
@@ -1213,41 +1223,46 @@ function be(t, e = T.XML) {
|
|
|
1213
1223
|
const { mode: n = Q.Extensive, level: o = T.XML } = typeof e == "number" ? { level: e } : e;
|
|
1214
1224
|
switch (n) {
|
|
1215
1225
|
case Q.UTF8:
|
|
1216
|
-
return
|
|
1226
|
+
return mn(t);
|
|
1217
1227
|
case Q.Attribute:
|
|
1218
|
-
return
|
|
1228
|
+
return bn(t);
|
|
1219
1229
|
case Q.Text:
|
|
1220
|
-
return
|
|
1230
|
+
return vn(t);
|
|
1221
1231
|
case Q.ASCII:
|
|
1222
|
-
return o === T.HTML ?
|
|
1232
|
+
return o === T.HTML ? kn(t) : Qe(t);
|
|
1223
1233
|
// biome-ignore lint/complexity/noUselessSwitchCase: we get an error for the switch not being exhaustive
|
|
1224
1234
|
case Q.Extensive:
|
|
1225
1235
|
// eslint-disable-line unicorn/no-useless-switch-case
|
|
1226
1236
|
default:
|
|
1227
|
-
return o === T.HTML ?
|
|
1237
|
+
return o === T.HTML ? En(t) : Qe(t);
|
|
1228
1238
|
}
|
|
1229
1239
|
}
|
|
1230
|
-
const
|
|
1231
|
-
function
|
|
1240
|
+
const Bn = "<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\/script>", Sn = "<style\\b[^<]*(?:(?!<\\/style>)<[^<]*)*</style>", xn = "<([^>]+)>", Dn = "&.*?;", Rn = [Bn, Sn, xn, Dn], Fn = "(" + Rn.join("|") + ")", et = fe(["BR", "P", "DIV"]), Zn = fe(["BR"]);
|
|
1241
|
+
function Mn(t) {
|
|
1232
1242
|
const [e = "", n = "", o = ""] = (/^<(\/?)(\w+)/i.exec(t.toUpperCase()) || []).slice(1);
|
|
1233
|
-
return n && (
|
|
1243
|
+
return n && (Zn[n] || et[n] && (e || o)) ? `
|
|
1234
1244
|
` : "";
|
|
1235
1245
|
}
|
|
1236
|
-
function
|
|
1237
|
-
const e = new RegExp(
|
|
1246
|
+
function Wn(t) {
|
|
1247
|
+
const e = new RegExp(Fn, "ig"), n = [];
|
|
1238
1248
|
let o = 0;
|
|
1239
1249
|
return [t.replace(e, (r, i, A, c) => {
|
|
1240
|
-
const a = r.startsWith("&") ?
|
|
1250
|
+
const a = r.startsWith("&") ? pn(r) : Mn(r);
|
|
1241
1251
|
return o -= r.length - a.length, n.push({
|
|
1242
1252
|
oldPosition: c + r.length,
|
|
1243
1253
|
diffOffset: o
|
|
1244
1254
|
}), a;
|
|
1245
1255
|
}), n];
|
|
1246
1256
|
}
|
|
1257
|
+
let tt = !1;
|
|
1247
1258
|
function H(t, ...e) {
|
|
1259
|
+
tt && console.log(t, ...e);
|
|
1260
|
+
}
|
|
1261
|
+
function Jr() {
|
|
1262
|
+
tt = !0;
|
|
1248
1263
|
}
|
|
1249
1264
|
var Ae = { exports: {} }, Ke;
|
|
1250
|
-
function
|
|
1265
|
+
function Hn() {
|
|
1251
1266
|
return Ke || (Ke = 1, function(t) {
|
|
1252
1267
|
var e = function() {
|
|
1253
1268
|
this.Diff_Timeout = 1, this.Diff_EditCost = 4, this.Match_Threshold = 0.5, this.Match_Distance = 1e3, this.Patch_DeleteThreshold = 0.5, this.Patch_Margin = 4, this.Match_MaxBits = 32;
|
|
@@ -1889,8 +1904,8 @@ function Mn() {
|
|
|
1889
1904
|
}, t.exports = e, t.exports.diff_match_patch = e, t.exports.DIFF_DELETE = n, t.exports.DIFF_INSERT = o, t.exports.DIFF_EQUAL = s;
|
|
1890
1905
|
}(Ae)), Ae.exports;
|
|
1891
1906
|
}
|
|
1892
|
-
var $ =
|
|
1893
|
-
function
|
|
1907
|
+
var $ = Hn();
|
|
1908
|
+
function nt(t) {
|
|
1894
1909
|
return t[t.length - 1].range[1] - t[0].range[0];
|
|
1895
1910
|
}
|
|
1896
1911
|
function U(t, e) {
|
|
@@ -1899,9 +1914,9 @@ function U(t, e) {
|
|
|
1899
1914
|
function ve(t, e) {
|
|
1900
1915
|
return /^ *$/.test(e.content) && e.content != U(t, e);
|
|
1901
1916
|
}
|
|
1902
|
-
const
|
|
1903
|
-
|
|
1904
|
-
function
|
|
1917
|
+
const rt = new $.diff_match_patch();
|
|
1918
|
+
rt.Diff_Timeout = 5;
|
|
1919
|
+
function Qn(t) {
|
|
1905
1920
|
const e = [];
|
|
1906
1921
|
let n = 0, o = 0;
|
|
1907
1922
|
return t.forEach((s) => {
|
|
@@ -1928,7 +1943,7 @@ function Wn(t) {
|
|
|
1928
1943
|
function O(t, e, n, o = "HTML") {
|
|
1929
1944
|
if (n.length === 0)
|
|
1930
1945
|
return [];
|
|
1931
|
-
const s = o === "HTML" ?
|
|
1946
|
+
const s = o === "HTML" ? Wn(t) : [t, []], [r, i] = s, A = rt.diff_main(r, e), c = Qn(A), a = n.map((d) => {
|
|
1932
1947
|
const u = G(i, d.range[0]), g = G(i, d.range[1]), h = G(c, u), f = g - 1, p = G(c, f) + 1;
|
|
1933
1948
|
return {
|
|
1934
1949
|
originalMatch: d,
|
|
@@ -1946,7 +1961,7 @@ function O(t, e, n, o = "HTML") {
|
|
|
1946
1961
|
a.map((d) => U(e, d))
|
|
1947
1962
|
), l ? [] : a;
|
|
1948
1963
|
}
|
|
1949
|
-
function
|
|
1964
|
+
function ot(t) {
|
|
1950
1965
|
const e = {
|
|
1951
1966
|
"original-id": t.id,
|
|
1952
1967
|
"original-class": t.className,
|
|
@@ -1958,7 +1973,7 @@ function nt(t) {
|
|
|
1958
1973
|
e["original-" + n] = t.getAttribute(n);
|
|
1959
1974
|
return Object.fromEntries(Object.entries(e).filter(([, n]) => n));
|
|
1960
1975
|
}
|
|
1961
|
-
const Ne = { name: "unknown", version: "0" },
|
|
1976
|
+
const Ne = { name: "unknown", version: "0" }, Kn = [
|
|
1962
1977
|
["edge", /Edge\/([0-9\._]+)/],
|
|
1963
1978
|
["yandexbrowser", /YaBrowser\/([0-9\._]+)/],
|
|
1964
1979
|
["vivaldi", /Vivaldi\/([0-9\.]+)/],
|
|
@@ -1978,16 +1993,16 @@ const Ne = { name: "unknown", version: "0" }, Hn = [
|
|
|
1978
1993
|
["ios", /Version\/([0-9\._]+).*Mobile.*Safari.*/],
|
|
1979
1994
|
["safari", /Version\/([0-9\._]+).*Safari/]
|
|
1980
1995
|
];
|
|
1981
|
-
function
|
|
1996
|
+
function Nn() {
|
|
1982
1997
|
try {
|
|
1983
|
-
return
|
|
1998
|
+
return Pn(navigator.userAgent) || Ne;
|
|
1984
1999
|
} catch (t) {
|
|
1985
2000
|
return console.error("Error in detectBrowser:", t), Ne;
|
|
1986
2001
|
}
|
|
1987
2002
|
}
|
|
1988
|
-
function
|
|
2003
|
+
function Pn(t) {
|
|
1989
2004
|
if (t)
|
|
1990
|
-
return
|
|
2005
|
+
return Kn.map(([e, n]) => {
|
|
1991
2006
|
const o = n.exec(t);
|
|
1992
2007
|
let s = o && o[1].split(/[._]/).slice(0, 3);
|
|
1993
2008
|
return s && s.length < 3 && (s = s.concat(s.length == 1 ? [0, 0] : [0])), o && {
|
|
@@ -1996,83 +2011,83 @@ function Kn(t) {
|
|
|
1996
2011
|
};
|
|
1997
2012
|
}).filter(Boolean)[0] || void 0;
|
|
1998
2013
|
}
|
|
1999
|
-
const
|
|
2000
|
-
function
|
|
2001
|
-
return
|
|
2014
|
+
const Gn = Nn();
|
|
2015
|
+
function Tn() {
|
|
2016
|
+
return Gn.name === "chrome";
|
|
2002
2017
|
}
|
|
2003
|
-
function
|
|
2018
|
+
function Yn(t) {
|
|
2004
2019
|
return t.documentElement || t.body.parentNode || t.body;
|
|
2005
2020
|
}
|
|
2006
|
-
function
|
|
2007
|
-
return t.pageYOffset !== void 0 ? t.pageYOffset :
|
|
2021
|
+
function Ln(t = window) {
|
|
2022
|
+
return t.pageYOffset !== void 0 ? t.pageYOffset : Yn(t.document).scrollTop;
|
|
2008
2023
|
}
|
|
2009
|
-
function
|
|
2024
|
+
function Jn(t) {
|
|
2010
2025
|
return t.clientHeight !== t.scrollHeight && t.tagName !== "BODY" && t.tagName !== "HTML";
|
|
2011
2026
|
}
|
|
2012
|
-
function
|
|
2027
|
+
function On(t) {
|
|
2013
2028
|
const e = [];
|
|
2014
2029
|
let n = t.parentElement;
|
|
2015
2030
|
for (; n; )
|
|
2016
2031
|
e.push(n), n = n.parentElement;
|
|
2017
2032
|
return e;
|
|
2018
2033
|
}
|
|
2019
|
-
function
|
|
2020
|
-
return
|
|
2034
|
+
function jn(t) {
|
|
2035
|
+
return On(t).filter(Jn);
|
|
2021
2036
|
}
|
|
2022
|
-
function
|
|
2023
|
-
if (
|
|
2037
|
+
function it(t, e = 0, n = 0) {
|
|
2038
|
+
if (At(t) || (t.scrollIntoView(), !e))
|
|
2024
2039
|
return;
|
|
2025
|
-
const s = t.getBoundingClientRect(), r =
|
|
2040
|
+
const s = t.getBoundingClientRect(), r = jn(t);
|
|
2026
2041
|
r.length <= 2 && r.forEach((A) => {
|
|
2027
2042
|
const c = A.getBoundingClientRect();
|
|
2028
2043
|
(s.top < c.top + n || s.bottom > c.bottom) && (A.scrollTop = s.top - c.top - n);
|
|
2029
2044
|
});
|
|
2030
|
-
const i =
|
|
2045
|
+
const i = Ln();
|
|
2031
2046
|
(s.top < e || s.bottom > window.innerHeight) && window.scrollTo(0, i + s.top - e);
|
|
2032
2047
|
}
|
|
2033
|
-
function
|
|
2048
|
+
function At(t) {
|
|
2034
2049
|
try {
|
|
2035
2050
|
return t.scrollIntoView({ block: "center" }), !0;
|
|
2036
2051
|
} catch {
|
|
2037
2052
|
return !1;
|
|
2038
2053
|
}
|
|
2039
2054
|
}
|
|
2040
|
-
function
|
|
2041
|
-
|
|
2055
|
+
function Un(t) {
|
|
2056
|
+
At(t) || t.scrollIntoView();
|
|
2042
2057
|
}
|
|
2043
|
-
const se =
|
|
2058
|
+
const se = Zt({
|
|
2044
2059
|
text: "",
|
|
2045
2060
|
domPositions: []
|
|
2046
2061
|
});
|
|
2047
|
-
function
|
|
2062
|
+
function zn(t, e) {
|
|
2048
2063
|
return {
|
|
2049
2064
|
text: t,
|
|
2050
2065
|
domPositions: e
|
|
2051
2066
|
};
|
|
2052
2067
|
}
|
|
2053
|
-
function
|
|
2068
|
+
function Vn(t) {
|
|
2054
2069
|
return {
|
|
2055
2070
|
text: t.map((e) => e.text).join(""),
|
|
2056
2071
|
domPositions: t.flatMap((e) => e.domPositions)
|
|
2057
2072
|
};
|
|
2058
2073
|
}
|
|
2059
|
-
function
|
|
2074
|
+
function Xn(t, e) {
|
|
2060
2075
|
return {
|
|
2061
2076
|
node: t,
|
|
2062
2077
|
offset: e
|
|
2063
2078
|
};
|
|
2064
2079
|
}
|
|
2065
|
-
const
|
|
2080
|
+
const qn = fe(["SCRIPT", "STYLE"]);
|
|
2066
2081
|
function Ie(t) {
|
|
2067
|
-
return
|
|
2082
|
+
return Vn(
|
|
2068
2083
|
Array.from(t.childNodes).map((e) => {
|
|
2069
2084
|
switch (e.nodeType) {
|
|
2070
2085
|
case Node.ELEMENT_NODE: {
|
|
2071
2086
|
const n = e.nodeName;
|
|
2072
|
-
if (
|
|
2087
|
+
if (qn[n])
|
|
2073
2088
|
return se;
|
|
2074
2089
|
const o = Ie(e);
|
|
2075
|
-
if (
|
|
2090
|
+
if (et[n]) {
|
|
2076
2091
|
const s = o.domPositions[o.domPositions.length - 1];
|
|
2077
2092
|
return {
|
|
2078
2093
|
text: o.text + `
|
|
@@ -2087,9 +2102,9 @@ function Ie(t) {
|
|
|
2087
2102
|
}
|
|
2088
2103
|
case Node.TEXT_NODE: {
|
|
2089
2104
|
const n = e.textContent;
|
|
2090
|
-
return n ?
|
|
2105
|
+
return n ? zn(
|
|
2091
2106
|
n,
|
|
2092
|
-
Array.from({ length: n.length }, (o, s) =>
|
|
2107
|
+
Array.from({ length: n.length }, (o, s) => Xn(e, s))
|
|
2093
2108
|
) : se;
|
|
2094
2109
|
}
|
|
2095
2110
|
default:
|
|
@@ -2098,7 +2113,7 @@ function Ie(t) {
|
|
|
2098
2113
|
})
|
|
2099
2114
|
);
|
|
2100
2115
|
}
|
|
2101
|
-
function
|
|
2116
|
+
function _n(t, e) {
|
|
2102
2117
|
const n = e[Math.max(Math.min(t, e.length) - 1, 0)];
|
|
2103
2118
|
return {
|
|
2104
2119
|
node: n.node,
|
|
@@ -2145,12 +2160,12 @@ class N {
|
|
|
2145
2160
|
}
|
|
2146
2161
|
}
|
|
2147
2162
|
scrollElementIntoView(e) {
|
|
2148
|
-
|
|
2163
|
+
it(e, this.config.scrollOffsetY);
|
|
2149
2164
|
}
|
|
2150
2165
|
selectRanges(e, n) {
|
|
2151
2166
|
if (V(this.getEditorElement()), this.selectMatches(e, n), this.isQuillEditor() || this.isCkEditor5()) {
|
|
2152
2167
|
const o = this.getEditorDocument().getSelection();
|
|
2153
|
-
o && o.anchorNode && o.anchorNode.parentElement &&
|
|
2168
|
+
o && o.anchorNode && o.anchorNode.parentElement && Un(o.anchorNode.parentElement);
|
|
2154
2169
|
} else
|
|
2155
2170
|
this.scrollToCurrentSelection();
|
|
2156
2171
|
}
|
|
@@ -2168,7 +2183,7 @@ class N {
|
|
|
2168
2183
|
return this.selectAlignedMatches(s, o), [s, o];
|
|
2169
2184
|
}
|
|
2170
2185
|
selectAlignedMatches(e, n) {
|
|
2171
|
-
const o = e[0].range[0], s =
|
|
2186
|
+
const o = e[0].range[0], s = nt(e);
|
|
2172
2187
|
this.selectText(o, s, n);
|
|
2173
2188
|
}
|
|
2174
2189
|
selectText(e, n, o) {
|
|
@@ -2182,7 +2197,7 @@ class N {
|
|
|
2182
2197
|
s.removeAllRanges(), s.addRange(this.createRange(e, n, o));
|
|
2183
2198
|
}
|
|
2184
2199
|
createRange(e, n, o) {
|
|
2185
|
-
const r = this.getEditorDocument().createRange(), i = o.domPositions[e], A =
|
|
2200
|
+
const r = this.getEditorDocument().createRange(), i = o.domPositions[e], A = _n(e + n, o.domPositions);
|
|
2186
2201
|
return i.offset <= i.node.textContent.length ? r.setStart(i.node, i.offset) : console.warn(
|
|
2187
2202
|
`Offset of range begin (${i.offset}) > node text length (${i.node.textContent.length})`
|
|
2188
2203
|
), A.offset <= A.node.textContent.length ? r.setEnd(A.node, A.offset) : console.warn(
|
|
@@ -2243,26 +2258,26 @@ class N {
|
|
|
2243
2258
|
return Ie(this.getEditorElement());
|
|
2244
2259
|
}
|
|
2245
2260
|
getAutobindWrapperAttributes() {
|
|
2246
|
-
return
|
|
2261
|
+
return ot(this.getEditorElement());
|
|
2247
2262
|
}
|
|
2248
2263
|
}
|
|
2249
2264
|
function _(t) {
|
|
2250
2265
|
try {
|
|
2251
|
-
|
|
2266
|
+
Tn() && $n(t);
|
|
2252
2267
|
} catch (e) {
|
|
2253
2268
|
console.error("Error in removeEmptyTextNodesIfNeeded:", e);
|
|
2254
2269
|
}
|
|
2255
2270
|
}
|
|
2256
|
-
function
|
|
2271
|
+
function $n(t) {
|
|
2257
2272
|
const e = document.createNodeIterator(t.commonAncestorContainer);
|
|
2258
2273
|
let n, o = !1;
|
|
2259
|
-
for (; (n = e.nextNode()) && (n === t.startContainer && (o = !0), !(o && (
|
|
2274
|
+
for (; (n = e.nextNode()) && (n === t.startContainer && (o = !0), !(o && (er(n), n === t.endContainer))); )
|
|
2260
2275
|
;
|
|
2261
2276
|
}
|
|
2262
|
-
function
|
|
2277
|
+
function er(t) {
|
|
2263
2278
|
t.nodeType === Node.TEXT_NODE && t.textContent === "" && z(t);
|
|
2264
2279
|
}
|
|
2265
|
-
class
|
|
2280
|
+
class st extends N {
|
|
2266
2281
|
element;
|
|
2267
2282
|
constructor(e) {
|
|
2268
2283
|
super(e), this.element = ee(e);
|
|
@@ -2309,10 +2324,10 @@ class it extends N {
|
|
|
2309
2324
|
s && (s.focus(), this.scrollElementIntoView(s));
|
|
2310
2325
|
}
|
|
2311
2326
|
}
|
|
2312
|
-
function
|
|
2327
|
+
function tr(t) {
|
|
2313
2328
|
return t.closest(".DraftEditor-editorContainer, .akEditor");
|
|
2314
2329
|
}
|
|
2315
|
-
class
|
|
2330
|
+
class at extends N {
|
|
2316
2331
|
element;
|
|
2317
2332
|
constructor(e) {
|
|
2318
2333
|
super(e), this.element = ee(e);
|
|
@@ -2330,7 +2345,7 @@ class At extends N {
|
|
|
2330
2345
|
return this.element.ownerDocument;
|
|
2331
2346
|
}
|
|
2332
2347
|
}
|
|
2333
|
-
class
|
|
2348
|
+
class ct {
|
|
2334
2349
|
element;
|
|
2335
2350
|
config;
|
|
2336
2351
|
currentContentChecking;
|
|
@@ -2368,14 +2383,14 @@ class st {
|
|
|
2368
2383
|
registerCheckCall(e) {
|
|
2369
2384
|
}
|
|
2370
2385
|
scrollAndSelect(e) {
|
|
2371
|
-
const n = e[0].range[0], o =
|
|
2386
|
+
const n = e[0].range[0], o = nt(e), s = this.element;
|
|
2372
2387
|
if (s.clientHeight < s.scrollHeight) {
|
|
2373
2388
|
const r = this.element.value;
|
|
2374
2389
|
s.value = r.slice(0, n), s.focus(), s.scrollTop = 1e9;
|
|
2375
2390
|
const i = s.scrollTop;
|
|
2376
2391
|
s.value = r, i > 0 && (s.scrollTop = i + s.clientHeight / 2);
|
|
2377
2392
|
}
|
|
2378
|
-
s.setSelectionRange(n, n + o), s.focus(),
|
|
2393
|
+
s.setSelectionRange(n, n + o), s.focus(), it(s, this.config.scrollOffsetY);
|
|
2379
2394
|
}
|
|
2380
2395
|
selectRanges(e, n) {
|
|
2381
2396
|
this.selectMatches(e, n);
|
|
@@ -2401,10 +2416,10 @@ class st {
|
|
|
2401
2416
|
this.element.setSelectionRange(s, s + r.length);
|
|
2402
2417
|
}
|
|
2403
2418
|
getAutobindWrapperAttributes() {
|
|
2404
|
-
return
|
|
2419
|
+
return ot(this.element);
|
|
2405
2420
|
}
|
|
2406
2421
|
}
|
|
2407
|
-
class
|
|
2422
|
+
class lt extends N {
|
|
2408
2423
|
element;
|
|
2409
2424
|
constructor(e) {
|
|
2410
2425
|
super(e), this.element = ee(e), console.warn("QuipAdapter", this.element);
|
|
@@ -2428,18 +2443,18 @@ class er extends N {
|
|
|
2428
2443
|
console.warn("No selection after replacement.");
|
|
2429
2444
|
return;
|
|
2430
2445
|
}
|
|
2431
|
-
const r =
|
|
2432
|
-
switch (
|
|
2446
|
+
const r = nr(s);
|
|
2447
|
+
switch (ir(r)) {
|
|
2433
2448
|
case "cell": {
|
|
2434
2449
|
console.log("Found cell");
|
|
2435
2450
|
const A = r.closest("." + de), c = A.innerText;
|
|
2436
|
-
|
|
2451
|
+
rr(r), await Wt(100);
|
|
2437
2452
|
const a = document.activeElement;
|
|
2438
2453
|
if (!a || !a.classList.contains("spreadsheet-cell-editor")) {
|
|
2439
2454
|
console.warn("Found no cell editor", r, a);
|
|
2440
2455
|
return;
|
|
2441
2456
|
}
|
|
2442
|
-
o.selectAllChildren(a), document.execCommand("InsertHTML", !1, c), A.innerText = c,
|
|
2457
|
+
o.selectAllChildren(a), document.execCommand("InsertHTML", !1, c), A.innerText = c, or(a, "keydown", "Enter", 13);
|
|
2443
2458
|
break;
|
|
2444
2459
|
}
|
|
2445
2460
|
case "content":
|
|
@@ -2451,10 +2466,10 @@ class er extends N {
|
|
|
2451
2466
|
}
|
|
2452
2467
|
}
|
|
2453
2468
|
}
|
|
2454
|
-
function
|
|
2469
|
+
function nr(t) {
|
|
2455
2470
|
return t instanceof HTMLElement ? t : t.parentElement;
|
|
2456
2471
|
}
|
|
2457
|
-
function
|
|
2472
|
+
function rr(t) {
|
|
2458
2473
|
t.dispatchEvent(
|
|
2459
2474
|
new MouseEvent("dblclick", {
|
|
2460
2475
|
view: window,
|
|
@@ -2463,7 +2478,7 @@ function nr(t) {
|
|
|
2463
2478
|
})
|
|
2464
2479
|
);
|
|
2465
2480
|
}
|
|
2466
|
-
function
|
|
2481
|
+
function or(t, e, n, o) {
|
|
2467
2482
|
const s = {
|
|
2468
2483
|
key: n,
|
|
2469
2484
|
code: n,
|
|
@@ -2476,14 +2491,14 @@ function rr(t, e, n, o) {
|
|
|
2476
2491
|
t.dispatchEvent(new KeyboardEvent(e, s));
|
|
2477
2492
|
}
|
|
2478
2493
|
const de = "spreadsheet-cell";
|
|
2479
|
-
function
|
|
2494
|
+
function ir(t) {
|
|
2480
2495
|
const e = t.closest(`.${de}, .content`);
|
|
2481
2496
|
return e ? e.classList.contains(de) ? "cell" : "content" : "none";
|
|
2482
2497
|
}
|
|
2483
|
-
function
|
|
2498
|
+
function Ar(t) {
|
|
2484
2499
|
return document.location.host.endsWith(".quip.com") && t.classList.contains("document-content");
|
|
2485
2500
|
}
|
|
2486
|
-
const
|
|
2501
|
+
const sr = [
|
|
2487
2502
|
"input:not([type])",
|
|
2488
2503
|
// type attribute not present in markup
|
|
2489
2504
|
'input[type=""]',
|
|
@@ -2496,31 +2511,31 @@ const Ar = [
|
|
|
2496
2511
|
"textarea",
|
|
2497
2512
|
"iframe"
|
|
2498
2513
|
].join(", ");
|
|
2499
|
-
function
|
|
2514
|
+
function ar(t) {
|
|
2500
2515
|
return t.readOnly;
|
|
2501
2516
|
}
|
|
2502
|
-
function
|
|
2517
|
+
function dt(t) {
|
|
2503
2518
|
const e = t.getAttribute("autocomplete");
|
|
2504
2519
|
return e === "off" || e === "false";
|
|
2505
2520
|
}
|
|
2506
|
-
function
|
|
2507
|
-
return t.getAttribute("role") === "combobox" &&
|
|
2521
|
+
function cr(t) {
|
|
2522
|
+
return t.getAttribute("role") === "combobox" && dt(t);
|
|
2508
2523
|
}
|
|
2509
|
-
const
|
|
2510
|
-
function
|
|
2524
|
+
const lr = ["search_query", "q"];
|
|
2525
|
+
function dr(t) {
|
|
2511
2526
|
if (t.nodeName !== "INPUT")
|
|
2512
2527
|
return !1;
|
|
2513
2528
|
if (t.getAttribute("role") === "search")
|
|
2514
2529
|
return !0;
|
|
2515
2530
|
const e = t.getAttribute("name");
|
|
2516
|
-
return e &&
|
|
2517
|
-
}
|
|
2518
|
-
const dr = ["username", "login", "user[login]", "authenticity_token"];
|
|
2519
|
-
function ur(t) {
|
|
2520
|
-
return dr.includes(t.getAttribute("name"));
|
|
2531
|
+
return e && lr.includes(e) && dt(t);
|
|
2521
2532
|
}
|
|
2533
|
+
const ur = ["username", "login", "user[login]", "authenticity_token"];
|
|
2522
2534
|
function gr(t) {
|
|
2523
|
-
|
|
2535
|
+
return ur.includes(t.getAttribute("name"));
|
|
2536
|
+
}
|
|
2537
|
+
function hr(t) {
|
|
2538
|
+
if (Dt(t))
|
|
2524
2539
|
try {
|
|
2525
2540
|
return t.contentDocument ? Ce(t.contentDocument) : [];
|
|
2526
2541
|
} catch {
|
|
@@ -2529,7 +2544,7 @@ function gr(t) {
|
|
|
2529
2544
|
else
|
|
2530
2545
|
return [t];
|
|
2531
2546
|
}
|
|
2532
|
-
function
|
|
2547
|
+
function fr(t) {
|
|
2533
2548
|
const e = [], n = (t.ownerDocument || t).createNodeIterator(t, NodeFilter.SHOW_ELEMENT);
|
|
2534
2549
|
let o;
|
|
2535
2550
|
for (; o = n.nextNode(); ) {
|
|
@@ -2539,18 +2554,18 @@ function hr(t) {
|
|
|
2539
2554
|
return e;
|
|
2540
2555
|
}
|
|
2541
2556
|
function Ce(t = document) {
|
|
2542
|
-
const e = Array.from(t.querySelectorAll(
|
|
2543
|
-
return [...e, ...n].flatMap(
|
|
2544
|
-
(i) => !
|
|
2557
|
+
const e = Array.from(t.querySelectorAll(sr)), n = fr(t);
|
|
2558
|
+
return [...e, ...n].flatMap(hr).filter(
|
|
2559
|
+
(i) => !ar(i) && !cr(i) && !dr(i) && !gr(i)
|
|
2545
2560
|
);
|
|
2546
2561
|
}
|
|
2547
|
-
function
|
|
2562
|
+
function ut(t = {}) {
|
|
2548
2563
|
return Ce().map(function(e) {
|
|
2549
2564
|
const n = te(t, { element: e });
|
|
2550
|
-
return t.enableQuipAdapter &&
|
|
2565
|
+
return t.enableQuipAdapter && Ar(e) ? new lt(n) : e.nodeName === "INPUT" || e.nodeName === "TEXTAREA" ? new ct(n) : tr(e) ? new st(n) : new at(n);
|
|
2551
2566
|
});
|
|
2552
2567
|
}
|
|
2553
|
-
const
|
|
2568
|
+
const pr = {
|
|
2554
2569
|
"&": "&",
|
|
2555
2570
|
"<": "<",
|
|
2556
2571
|
">": ">",
|
|
@@ -2558,12 +2573,12 @@ const fr = {
|
|
|
2558
2573
|
"'": "'",
|
|
2559
2574
|
"`": "`"
|
|
2560
2575
|
};
|
|
2561
|
-
function
|
|
2576
|
+
function mr(t) {
|
|
2562
2577
|
let e = "";
|
|
2563
2578
|
const n = [];
|
|
2564
2579
|
let o = 0;
|
|
2565
2580
|
for (let s = 0; s < t.length; s++) {
|
|
2566
|
-
const r = t[s], i =
|
|
2581
|
+
const r = t[s], i = pr[r];
|
|
2567
2582
|
if (i) {
|
|
2568
2583
|
const A = i.length - 1;
|
|
2569
2584
|
o = o - A, n.push({
|
|
@@ -2575,16 +2590,16 @@ function pr(t) {
|
|
|
2575
2590
|
}
|
|
2576
2591
|
return { escapedText: e, backwardAlignment: n };
|
|
2577
2592
|
}
|
|
2578
|
-
function
|
|
2593
|
+
function gt(t, e) {
|
|
2579
2594
|
const n = structuredClone(t.attributes);
|
|
2580
2595
|
e && Object.assign(n, { id: e });
|
|
2581
2596
|
const o = Object.entries(n).map(([s, r]) => ` ${s}="${be(r)}"`).join("");
|
|
2582
2597
|
return `<${t.tagName}${o}>`;
|
|
2583
2598
|
}
|
|
2584
|
-
function
|
|
2599
|
+
function ht(t) {
|
|
2585
2600
|
return `</${t}>`;
|
|
2586
2601
|
}
|
|
2587
|
-
function
|
|
2602
|
+
function br(t, e) {
|
|
2588
2603
|
return [
|
|
2589
2604
|
G(t.backwardAlignment, e[0]),
|
|
2590
2605
|
G(t.backwardAlignment, e[1])
|
|
@@ -2594,11 +2609,11 @@ function Pe(t, e = "div") {
|
|
|
2594
2609
|
const n = t.tagName || e;
|
|
2595
2610
|
return n.includes(" ") && console.info(`tagName "${n}" contains whitespaces which may lead to unexpected results.`), { tagName: n, attributes: t.attributes || {} };
|
|
2596
2611
|
}
|
|
2597
|
-
function
|
|
2598
|
-
const n = e.content, o = t.wrapper.tagName, s =
|
|
2612
|
+
function vr(t, e) {
|
|
2613
|
+
const n = e.content, o = t.wrapper.tagName, s = gt(t.wrapper, t.id), r = t.adapter.getFormat ? t.adapter.getFormat() === "TEXT" : !1;
|
|
2599
2614
|
let i;
|
|
2600
|
-
return r ? (t.escapeResult =
|
|
2601
|
-
completeHtml: s + i +
|
|
2615
|
+
return r ? (t.escapeResult = mr(n), i = t.escapeResult.escapedText) : i = n, {
|
|
2616
|
+
completeHtml: s + i + ht(o),
|
|
2602
2617
|
contentStart: s.length,
|
|
2603
2618
|
contentEnd: s.length + i.length
|
|
2604
2619
|
};
|
|
@@ -2629,14 +2644,14 @@ class we {
|
|
|
2629
2644
|
return Promise.all(n).then((o) => {
|
|
2630
2645
|
let s = this.config.documentHeader || "";
|
|
2631
2646
|
const r = [];
|
|
2632
|
-
this.rootElementWrapper && (s +=
|
|
2647
|
+
this.rootElementWrapper && (s += gt(this.rootElementWrapper));
|
|
2633
2648
|
for (let i = 0; i < this.adapters.length; i++) {
|
|
2634
2649
|
const A = o[i], c = this.adapters[i];
|
|
2635
2650
|
if (Ye(A)) {
|
|
2636
2651
|
c.checkedRange = void 0;
|
|
2637
2652
|
continue;
|
|
2638
2653
|
}
|
|
2639
|
-
const { completeHtml: a, contentStart: l, contentEnd: d } =
|
|
2654
|
+
const { completeHtml: a, contentStart: l, contentEnd: d } = vr(c, A);
|
|
2640
2655
|
if (c.checkedRange = [s.length + l, s.length + d], A.selection)
|
|
2641
2656
|
for (const u of A.selection.ranges)
|
|
2642
2657
|
r.push([
|
|
@@ -2645,7 +2660,7 @@ class we {
|
|
|
2645
2660
|
]);
|
|
2646
2661
|
s += a;
|
|
2647
2662
|
}
|
|
2648
|
-
return this.rootElementWrapper && (s +=
|
|
2663
|
+
return this.rootElementWrapper && (s += ht(this.rootElementWrapper.tagName)), { content: s, selection: { ranges: r } };
|
|
2649
2664
|
});
|
|
2650
2665
|
}
|
|
2651
2666
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -2670,7 +2685,7 @@ class we {
|
|
|
2670
2685
|
o.range[0] - r,
|
|
2671
2686
|
o.range[1] - r
|
|
2672
2687
|
], A = structuredClone(o);
|
|
2673
|
-
A.range = s.escapeResult ?
|
|
2688
|
+
A.range = s.escapeResult ? br(s.escapeResult, i) : i, n[s.id].matches.push(A);
|
|
2674
2689
|
}
|
|
2675
2690
|
return n;
|
|
2676
2691
|
}
|
|
@@ -2688,7 +2703,7 @@ class we {
|
|
|
2688
2703
|
o[s].adapter.replaceRanges(e, o[s].matches);
|
|
2689
2704
|
}
|
|
2690
2705
|
}
|
|
2691
|
-
class
|
|
2706
|
+
class ft extends we {
|
|
2692
2707
|
isAsync = !0;
|
|
2693
2708
|
requiresSynchronization = !0;
|
|
2694
2709
|
addSingleAdapter(e, n = {}, o) {
|
|
@@ -2705,7 +2720,7 @@ class ut extends we {
|
|
|
2705
2720
|
await o[s].adapter.replaceRanges(e, o[s].matches);
|
|
2706
2721
|
}
|
|
2707
2722
|
}
|
|
2708
|
-
class
|
|
2723
|
+
class pt {
|
|
2709
2724
|
constructor(e) {
|
|
2710
2725
|
this.conf = e, this.initMultiAdapter();
|
|
2711
2726
|
}
|
|
@@ -2713,13 +2728,13 @@ class gt {
|
|
|
2713
2728
|
requiresSynchronization = !0;
|
|
2714
2729
|
asyncMultiAdapter;
|
|
2715
2730
|
initMultiAdapter() {
|
|
2716
|
-
this.asyncMultiAdapter = new
|
|
2731
|
+
this.asyncMultiAdapter = new ft(this.conf);
|
|
2717
2732
|
}
|
|
2718
2733
|
getFormat() {
|
|
2719
2734
|
return this.asyncMultiAdapter.getFormat();
|
|
2720
2735
|
}
|
|
2721
2736
|
extractContentForCheck(e) {
|
|
2722
|
-
return this.initMultiAdapter(),
|
|
2737
|
+
return this.initMultiAdapter(), ut(this.conf).forEach((n) => {
|
|
2723
2738
|
const o = n.getAutobindWrapperAttributes ? n.getAutobindWrapperAttributes() : {};
|
|
2724
2739
|
this.asyncMultiAdapter.addSingleAdapter(n, { attributes: o });
|
|
2725
2740
|
}), this.asyncMultiAdapter.extractContentForCheck(e);
|
|
@@ -2737,7 +2752,7 @@ class gt {
|
|
|
2737
2752
|
await this.asyncMultiAdapter.replaceRanges(e, n);
|
|
2738
2753
|
}
|
|
2739
2754
|
}
|
|
2740
|
-
class
|
|
2755
|
+
class mt {
|
|
2741
2756
|
constructor(e) {
|
|
2742
2757
|
this.conf = e, this.initMultiAdapter();
|
|
2743
2758
|
}
|
|
@@ -2749,7 +2764,7 @@ class ht {
|
|
|
2749
2764
|
return this.multiAdapter.getFormat();
|
|
2750
2765
|
}
|
|
2751
2766
|
extractContentForCheck(e) {
|
|
2752
|
-
return this.initMultiAdapter(),
|
|
2767
|
+
return this.initMultiAdapter(), ut(this.conf).forEach((n) => {
|
|
2753
2768
|
const o = n.getAutobindWrapperAttributes ? n.getAutobindWrapperAttributes() : {};
|
|
2754
2769
|
this.multiAdapter.addSingleAdapter(n, { attributes: o });
|
|
2755
2770
|
}), this.multiAdapter.extractContentForCheck(e);
|
|
@@ -2770,51 +2785,51 @@ class ht {
|
|
|
2770
2785
|
class ye {
|
|
2771
2786
|
get(e) {
|
|
2772
2787
|
return new Promise((n) => {
|
|
2773
|
-
n(
|
|
2788
|
+
n(Ir(e));
|
|
2774
2789
|
});
|
|
2775
2790
|
}
|
|
2776
2791
|
set(e, n) {
|
|
2777
2792
|
return new Promise((o) => {
|
|
2778
|
-
|
|
2793
|
+
Cr(e, n), o(void 0);
|
|
2779
2794
|
});
|
|
2780
2795
|
}
|
|
2781
2796
|
}
|
|
2782
|
-
function
|
|
2797
|
+
function Ir(t) {
|
|
2783
2798
|
const e = localStorage.getItem(t);
|
|
2784
2799
|
return e === null ? null : JSON.parse(e);
|
|
2785
2800
|
}
|
|
2786
|
-
function
|
|
2801
|
+
function Cr(t, e) {
|
|
2787
2802
|
localStorage.setItem(t, JSON.stringify(e));
|
|
2788
2803
|
}
|
|
2789
|
-
const M = "acrolinxFloatingSidebar",
|
|
2804
|
+
const M = "acrolinxFloatingSidebar", bt = "acrolinxFloatingSidebarTitleBar", Ee = "acrolinxFloatingSidebarCloseIcon";
|
|
2790
2805
|
let J = "acrolinxSidebarContainer";
|
|
2791
|
-
const ke = "acrolinxDragOverlay", ue = "acrolinxFloatingSidebarGlassPane",
|
|
2806
|
+
const ke = "acrolinxDragOverlay", ue = "acrolinxFloatingSidebarGlassPane", vt = "acrolinxFloatingSidebarFooter", Be = "acrolinxFloatingSidebarResizeIcon", Y = "acrolinxFloatingSidebarIsResizing", ge = "acrolinxFloatingSidebarIsDragged", Ge = 34, wr = "PHN2ZyBmaWxsPSIjZmZmZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICAgIDxwYXRoIGQ9Ik0xOSAxOUg1VjVoN1YzSDVjLTEuMTEgMC0yIC45LTIgMnYxNGMwIDEuMS44OSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMnYtN2gtMnY3ek0xNCAzdjJoMy41OWwtOS44MyA5LjgzIDEuNDEgMS40MUwxOSA2LjQxVjEwaDJWM2gtN3oiLz4KPC9zdmc+", yr = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJFYmVuZV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDI0IDI0OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6IzkwOTA5MDt9Cgkuc3Qxe2ZpbGw6bm9uZTt9Cjwvc3R5bGU+CjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03LjMsMjFoOS41di0ySDcuM1YyMXogTTcuMywxN2g5LjV2LTJINy4zVjE3eiBNNy4zLDEzaDkuNXYtMkg3LjNWMTN6IE03LjMsOWg5LjVWN0g3LjNWOXogTTcuMywzdjJoOS41VjNINy4zCgl6Ii8+CjxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0wLDBoMjR2MjRIMFYweiIvPgo8L3N2Zz4K", ae = 2e9, Er = 900, kr = 400, It = 400, L = Object.freeze({
|
|
2792
2807
|
top: 20,
|
|
2793
2808
|
left: 20,
|
|
2794
|
-
height:
|
|
2795
|
-
}),
|
|
2796
|
-
function
|
|
2809
|
+
height: kr
|
|
2810
|
+
}), Ct = "acrolinx.plugins.floatingSidebar.position";
|
|
2811
|
+
function Br(t) {
|
|
2797
2812
|
const e = {
|
|
2798
2813
|
top: L.top,
|
|
2799
2814
|
left: L.left,
|
|
2800
|
-
height:
|
|
2815
|
+
height: wt(window.innerHeight - L.top - 40)
|
|
2801
2816
|
};
|
|
2802
|
-
return t.get(
|
|
2817
|
+
return t.get(Ct).then(
|
|
2803
2818
|
(n) => ({ ...e, ...n }),
|
|
2804
2819
|
(n) => (console.error("Can't load saved sidebar position.", n), e)
|
|
2805
2820
|
);
|
|
2806
2821
|
}
|
|
2807
|
-
function
|
|
2808
|
-
return Math.max(
|
|
2822
|
+
function wt(t) {
|
|
2823
|
+
return Math.max(It, Math.min(Er, t));
|
|
2809
2824
|
}
|
|
2810
2825
|
function Te({ left: t, top: e, height: n }, o = window.innerWidth, s = window.innerHeight) {
|
|
2811
2826
|
return e <= 0 && (e = 20), t <= 0 && (t = 20), {
|
|
2812
2827
|
left: t > o - 150 ? o - 150 : t,
|
|
2813
2828
|
top: e > s - 30 ? s - 30 : e,
|
|
2814
|
-
height: n > s ?
|
|
2829
|
+
height: n > s ? wt(s - 10) : n
|
|
2815
2830
|
};
|
|
2816
2831
|
}
|
|
2817
|
-
function
|
|
2832
|
+
function Sr() {
|
|
2818
2833
|
const t = document.createElement("style"), e = document.querySelector("head");
|
|
2819
2834
|
t.textContent = `
|
|
2820
2835
|
#${M} {
|
|
@@ -2842,7 +2857,7 @@ function Br() {
|
|
|
2842
2857
|
transition: none;
|
|
2843
2858
|
}
|
|
2844
2859
|
|
|
2845
|
-
#${M} .${
|
|
2860
|
+
#${M} .${bt} {
|
|
2846
2861
|
position: relative;
|
|
2847
2862
|
font-family: AcrolinxRoboto, Roboto, sans-serif;
|
|
2848
2863
|
font-weight: 500;
|
|
@@ -2862,7 +2877,7 @@ function Br() {
|
|
|
2862
2877
|
width: 18px;
|
|
2863
2878
|
height: 18px;
|
|
2864
2879
|
background-repeat: no-repeat;
|
|
2865
|
-
background-image: url("data:image/svg+xml;base64,${
|
|
2880
|
+
background-image: url("data:image/svg+xml;base64,${wr}");
|
|
2866
2881
|
-webkit-background-size: cover;
|
|
2867
2882
|
-moz-background-size: cover;
|
|
2868
2883
|
-o-background-size: cover;
|
|
@@ -2907,7 +2922,7 @@ function Br() {
|
|
|
2907
2922
|
z-index: ${ae - 100};
|
|
2908
2923
|
}
|
|
2909
2924
|
|
|
2910
|
-
#${M} .${
|
|
2925
|
+
#${M} .${vt} {
|
|
2911
2926
|
position: absolute;
|
|
2912
2927
|
bottom: 0;
|
|
2913
2928
|
background: white;
|
|
@@ -2927,7 +2942,7 @@ function Br() {
|
|
|
2927
2942
|
width: 24px;
|
|
2928
2943
|
height: 24px;
|
|
2929
2944
|
background-repeat: no-repeat;
|
|
2930
|
-
background-image: url("data:image/svg+xml;base64,${
|
|
2945
|
+
background-image: url("data:image/svg+xml;base64,${yr}");
|
|
2931
2946
|
-webkit-background-size: cover;
|
|
2932
2947
|
-moz-background-size: cover;
|
|
2933
2948
|
-o-background-size: cover;
|
|
@@ -2940,17 +2955,17 @@ function Br() {
|
|
|
2940
2955
|
}
|
|
2941
2956
|
`, e.appendChild(t);
|
|
2942
2957
|
}
|
|
2943
|
-
function
|
|
2958
|
+
function xr() {
|
|
2944
2959
|
return `
|
|
2945
2960
|
<div id="${M}">
|
|
2946
|
-
<div class="${
|
|
2961
|
+
<div class="${bt}">Acrolinx <span class="${Ee}" title="Hide"></span></div>
|
|
2947
2962
|
<div id="${J}"></div>
|
|
2948
2963
|
<div id="${ke}"></div>
|
|
2949
|
-
<div class="${
|
|
2964
|
+
<div class="${vt}"><div class="${Be}" title="Drag to resize"></div></div>
|
|
2950
2965
|
</div>
|
|
2951
2966
|
`;
|
|
2952
2967
|
}
|
|
2953
|
-
function
|
|
2968
|
+
function yt(t) {
|
|
2954
2969
|
const e = document.createElement("div");
|
|
2955
2970
|
return Object.assign(e, t), e;
|
|
2956
2971
|
}
|
|
@@ -2960,13 +2975,13 @@ function j(t) {
|
|
|
2960
2975
|
function P(t) {
|
|
2961
2976
|
t.style.display = "block";
|
|
2962
2977
|
}
|
|
2963
|
-
function
|
|
2964
|
-
return
|
|
2978
|
+
function Dr(t) {
|
|
2979
|
+
return yt({ innerHTML: t.trim() }).firstChild;
|
|
2965
2980
|
}
|
|
2966
2981
|
function Se(t) {
|
|
2967
2982
|
t.sidebarContainerId && (J = t.sidebarContainerId);
|
|
2968
2983
|
let e = L;
|
|
2969
|
-
const n =
|
|
2984
|
+
const n = xr(), o = Dr(n), s = o.querySelector("#" + ke), r = o.querySelector("." + Ee), i = o.querySelector("." + Be), A = yt({ id: ue }), c = document.querySelector("body");
|
|
2970
2985
|
let a = !1, l = !1, d = 0, u = 0, g = !0;
|
|
2971
2986
|
function h(b) {
|
|
2972
2987
|
e = te(e, b), o.style.left = e.left + "px", o.style.top = e.top + "px", o.style.height = e.height + "px";
|
|
@@ -2975,7 +2990,7 @@ function Se(t) {
|
|
|
2975
2990
|
j(s), j(A), a = !1, l = !1, o.classList.remove(Y), o.classList.remove(ge), A.classList.remove(Y), p();
|
|
2976
2991
|
}
|
|
2977
2992
|
function p() {
|
|
2978
|
-
t.asyncStorage.set(
|
|
2993
|
+
t.asyncStorage.set(Ct, e).catch((b) => {
|
|
2979
2994
|
console.error("Error in FloatingSidebar.savePosition:", b);
|
|
2980
2995
|
});
|
|
2981
2996
|
}
|
|
@@ -2992,7 +3007,7 @@ function Se(t) {
|
|
|
2992
3007
|
}), l) {
|
|
2993
3008
|
const w = o.getBoundingClientRect().top;
|
|
2994
3009
|
h({
|
|
2995
|
-
height: Math.max(b.clientY - u + 30 - w,
|
|
3010
|
+
height: Math.max(b.clientY - u + 30 - w, It)
|
|
2996
3011
|
});
|
|
2997
3012
|
}
|
|
2998
3013
|
}), o.addEventListener("mousedown", (b) => {
|
|
@@ -3012,27 +3027,27 @@ function Se(t) {
|
|
|
3012
3027
|
function E() {
|
|
3013
3028
|
z(o), z(A), z(s), window.removeEventListener("resize", I), document.removeEventListener("mouseup", f);
|
|
3014
3029
|
}
|
|
3015
|
-
return document.addEventListener("mouseup", f), window.addEventListener("resize", I), r.addEventListener("click", m), j(s), j(A),
|
|
3030
|
+
return document.addEventListener("mouseup", f), window.addEventListener("resize", I), r.addEventListener("click", m), j(s), j(A), Sr(), Br(t.asyncStorage).then((b) => {
|
|
3016
3031
|
P(o), h(b), C();
|
|
3017
3032
|
}).catch((b) => {
|
|
3018
3033
|
console.error("Error while trying to set initial position of FloatingSidebar:", b);
|
|
3019
3034
|
}), c.appendChild(o), c.appendChild(A), { toggleVisibility: v, remove: E };
|
|
3020
3035
|
}
|
|
3021
|
-
async function
|
|
3036
|
+
async function Rr(t) {
|
|
3022
3037
|
const e = te(t, {
|
|
3023
3038
|
sidebarContainerId: J,
|
|
3024
3039
|
asyncStorage: t.asyncStorage || new ye()
|
|
3025
3040
|
}), n = Se(e), o = new pe(e);
|
|
3026
|
-
return o.registerAdapter(new
|
|
3041
|
+
return o.registerAdapter(new mt(e)), await o.init(), n;
|
|
3027
3042
|
}
|
|
3028
|
-
async function
|
|
3043
|
+
async function Fr(t) {
|
|
3029
3044
|
const e = te(t, {
|
|
3030
3045
|
sidebarContainerId: J,
|
|
3031
3046
|
asyncStorage: t.asyncStorage || new ye()
|
|
3032
3047
|
}), n = Se(e), o = new pe(e);
|
|
3033
|
-
return o.registerAdapter(new
|
|
3048
|
+
return o.registerAdapter(new pt(e)), await o.init(), n;
|
|
3034
3049
|
}
|
|
3035
|
-
class
|
|
3050
|
+
class Zr extends N {
|
|
3036
3051
|
editorId;
|
|
3037
3052
|
constructor(e) {
|
|
3038
3053
|
super(e), this.editorId = e.editorId;
|
|
@@ -3070,7 +3085,7 @@ class Fr extends N {
|
|
|
3070
3085
|
return o.isEnabled && o.isSourceEditingMode;
|
|
3071
3086
|
}
|
|
3072
3087
|
}
|
|
3073
|
-
class
|
|
3088
|
+
class Mr extends N {
|
|
3074
3089
|
editorId;
|
|
3075
3090
|
constructor(e) {
|
|
3076
3091
|
super(e), this.editorId = e.editorId;
|
|
@@ -3100,7 +3115,7 @@ class Zr extends N {
|
|
|
3100
3115
|
return this.getEditor().mode === "wysiwyg";
|
|
3101
3116
|
}
|
|
3102
3117
|
}
|
|
3103
|
-
class
|
|
3118
|
+
class Wr extends N {
|
|
3104
3119
|
editorId;
|
|
3105
3120
|
constructor(e) {
|
|
3106
3121
|
super(e), this.config.disableInputEventSimulation = !0, this.editorId = e.editorId;
|
|
@@ -3119,7 +3134,7 @@ class Mr extends N {
|
|
|
3119
3134
|
return this.getEditor().getDoc();
|
|
3120
3135
|
}
|
|
3121
3136
|
}
|
|
3122
|
-
class
|
|
3137
|
+
class Hr {
|
|
3123
3138
|
config;
|
|
3124
3139
|
currentContentChecking;
|
|
3125
3140
|
lastContentChecked;
|
|
@@ -3207,18 +3222,18 @@ class Wr {
|
|
|
3207
3222
|
return n.sort((o, s) => o - s), n;
|
|
3208
3223
|
};
|
|
3209
3224
|
}
|
|
3210
|
-
const
|
|
3225
|
+
const Qr = {
|
|
3211
3226
|
"text/html": "HTML",
|
|
3212
3227
|
"text/xml": "HTML",
|
|
3213
3228
|
"application/xml": "XML",
|
|
3214
3229
|
"text/x-markdown": "MARKDOWN",
|
|
3215
3230
|
"text/plain": "TEXT"
|
|
3216
|
-
},
|
|
3231
|
+
}, Kr = {
|
|
3217
3232
|
htmlmixed: "HTML",
|
|
3218
3233
|
xml: "XML",
|
|
3219
3234
|
markdown: "MARKDOWN"
|
|
3220
3235
|
};
|
|
3221
|
-
class
|
|
3236
|
+
class Nr {
|
|
3222
3237
|
config;
|
|
3223
3238
|
currentContentChecking;
|
|
3224
3239
|
lastContentChecked;
|
|
@@ -3243,7 +3258,7 @@ class Kr {
|
|
|
3243
3258
|
return this.config.format || this.getFormatFromCodeMirror() || "AUTO";
|
|
3244
3259
|
}
|
|
3245
3260
|
getFormatFromCodeMirror() {
|
|
3246
|
-
return
|
|
3261
|
+
return Kr[this.config.editor.getDoc().getMode().name || ""] || Qr[this.config.editor.getOption("mode")];
|
|
3247
3262
|
}
|
|
3248
3263
|
extractContentForCheck(e) {
|
|
3249
3264
|
return this.currentContentChecking = this.getContent(), {
|
|
@@ -3307,7 +3322,7 @@ class Kr {
|
|
|
3307
3322
|
return o.sort((s, r) => s - r), o;
|
|
3308
3323
|
};
|
|
3309
3324
|
}
|
|
3310
|
-
class
|
|
3325
|
+
class Pr {
|
|
3311
3326
|
/**
|
|
3312
3327
|
* Editor of this adapter
|
|
3313
3328
|
*
|
|
@@ -3513,62 +3528,141 @@ class Nr {
|
|
|
3513
3528
|
return o.appendChild(s), s;
|
|
3514
3529
|
}
|
|
3515
3530
|
}
|
|
3516
|
-
const he =
|
|
3531
|
+
const he = globalThis;
|
|
3517
3532
|
he.acrolinx = he.acrolinx || {};
|
|
3518
|
-
const
|
|
3533
|
+
const Gr = {
|
|
3519
3534
|
AcrolinxPlugin: pe,
|
|
3520
|
-
autoBindFloatingSidebar:
|
|
3521
|
-
autoBindFloatingSidebarAsync:
|
|
3522
|
-
createPluginMessageAdapter:
|
|
3535
|
+
autoBindFloatingSidebar: Rr,
|
|
3536
|
+
autoBindFloatingSidebarAsync: Fr,
|
|
3537
|
+
createPluginMessageAdapter: Nt,
|
|
3523
3538
|
initFloatingSidebar: Se,
|
|
3524
3539
|
AsyncLocalStorage: ye,
|
|
3525
|
-
loadSidebarCode:
|
|
3540
|
+
loadSidebarCode: Lt,
|
|
3526
3541
|
getSelectionHtmlRanges: ne,
|
|
3542
|
+
extractTextDomMapping: Ie,
|
|
3527
3543
|
adapter: {
|
|
3528
3544
|
AbstractRichtextEditorAdapter: N,
|
|
3529
|
-
AutoBindAdapter:
|
|
3530
|
-
AsyncAutoBindAdapter:
|
|
3531
|
-
CKEditor5Adapter:
|
|
3532
|
-
CKEditorAdapter:
|
|
3533
|
-
CodeMirror6Adapter:
|
|
3534
|
-
CodeMirrorAdapter:
|
|
3535
|
-
ContentEditableAdapter:
|
|
3536
|
-
AsyncContentEditableAdapter:
|
|
3537
|
-
InputAdapter:
|
|
3545
|
+
AutoBindAdapter: mt,
|
|
3546
|
+
AsyncAutoBindAdapter: pt,
|
|
3547
|
+
CKEditor5Adapter: Zr,
|
|
3548
|
+
CKEditorAdapter: Mr,
|
|
3549
|
+
CodeMirror6Adapter: Hr,
|
|
3550
|
+
CodeMirrorAdapter: Nr,
|
|
3551
|
+
ContentEditableAdapter: at,
|
|
3552
|
+
AsyncContentEditableAdapter: st,
|
|
3553
|
+
InputAdapter: ct,
|
|
3538
3554
|
MultiEditorAdapter: we,
|
|
3539
|
-
AsyncMultiEditorAdapter:
|
|
3540
|
-
TinyMCEAdapter:
|
|
3541
|
-
XeditorAdapter:
|
|
3555
|
+
AsyncMultiEditorAdapter: ft,
|
|
3556
|
+
TinyMCEAdapter: Wr,
|
|
3557
|
+
XeditorAdapter: Pr,
|
|
3558
|
+
QuipAdapter: lt,
|
|
3559
|
+
SynchronizeAsyncAdapter: Ve
|
|
3542
3560
|
},
|
|
3543
3561
|
lookup: {
|
|
3544
3562
|
lookupMatches: O
|
|
3545
|
-
}
|
|
3546
|
-
extractTextDomMapping: Ie
|
|
3563
|
+
}
|
|
3547
3564
|
};
|
|
3548
|
-
he.acrolinx.plugins =
|
|
3565
|
+
he.acrolinx.plugins = Gr;
|
|
3549
3566
|
export {
|
|
3567
|
+
Zn as AUTO_SELF_CLOSING_LINE_TAGS,
|
|
3550
3568
|
N as AbstractRichtextEditorAdapter,
|
|
3551
3569
|
pe as AcrolinxPlugin,
|
|
3552
|
-
|
|
3570
|
+
pt as AsyncAutoBindAdapter,
|
|
3553
3571
|
ye as AsyncLocalStorage,
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3572
|
+
ft as AsyncMultiEditorAdapter,
|
|
3573
|
+
mt as AutoBindAdapter,
|
|
3574
|
+
Zr as CKEditor5Adapter,
|
|
3575
|
+
Mr as CKEditorAdapter,
|
|
3576
|
+
St as CLIENT_COMPONENT_MAIN_FALLBACK,
|
|
3577
|
+
Ee as CLOSE_ICON_CLASS,
|
|
3578
|
+
Hr as CodeMirror6Adapter,
|
|
3579
|
+
Nr as CodeMirrorAdapter,
|
|
3580
|
+
at as ContentEditableAdapter,
|
|
3581
|
+
L as DEFAULT_POS,
|
|
3582
|
+
Mt as Deferred,
|
|
3583
|
+
sr as EDITABLE_ELEMENTS_SELECTOR,
|
|
3584
|
+
vt as FOOTER,
|
|
3585
|
+
Ge as FOOTER_HEIGHT,
|
|
3586
|
+
ge as IS_DRAGGED_CLASS,
|
|
3587
|
+
Y as IS_RESIZING_CLASS,
|
|
3588
|
+
ct as InputAdapter,
|
|
3562
3589
|
we as MultiEditorAdapter,
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3590
|
+
et as NEW_LINE_TAGS,
|
|
3591
|
+
Ct as POSITION_KEY,
|
|
3592
|
+
lt as QuipAdapter,
|
|
3593
|
+
Be as RESIZE_ICON_CLASS,
|
|
3594
|
+
J as SIDEBAR_CONTAINER_ID,
|
|
3595
|
+
ke as SIDEBAR_DRAG_OVERLAY_ID,
|
|
3596
|
+
ue as SIDEBAR_GLASS_PANE_ID,
|
|
3597
|
+
M as SIDEBAR_ID,
|
|
3598
|
+
xt as SIDEBAR_SDK_COMPONENT,
|
|
3599
|
+
Ue as SidebarURLInvalidError,
|
|
3600
|
+
st as StateBasedContentEditableAdapter,
|
|
3601
|
+
Ve as SynchronizeAsyncAdapter,
|
|
3602
|
+
bt as TITLE_BAR_CLASS,
|
|
3603
|
+
Wr as TinyMCEAdapter,
|
|
3604
|
+
Vt as WorkQueue,
|
|
3605
|
+
Pr as XeditorAdapter,
|
|
3606
|
+
V as assertElementIsDisplayed,
|
|
3607
|
+
te as assign,
|
|
3608
|
+
Rr as autoBindFloatingSidebar,
|
|
3609
|
+
Fr as autoBindFloatingSidebarAsync,
|
|
3610
|
+
ut as bindAdaptersForCurrentPage,
|
|
3611
|
+
Gn as browser,
|
|
3612
|
+
Vn as concatTextMappings,
|
|
3613
|
+
Kt as connectAcrolinxPluginToMessages,
|
|
3614
|
+
Lr as containsText,
|
|
3615
|
+
Qn as createOffsetMappingArray,
|
|
3616
|
+
Nt as createPluginMessageAdapter,
|
|
3617
|
+
ce as deepCloneWithHTMLElement,
|
|
3618
|
+
Zt as deepFreezed,
|
|
3619
|
+
Xn as domPosition,
|
|
3620
|
+
Jr as enableLogging,
|
|
3621
|
+
mr as escapeHtmlCharacters,
|
|
3622
|
+
Wn as extractText,
|
|
3569
3623
|
Ie as extractTextDomMapping,
|
|
3624
|
+
tn as findDisplacement,
|
|
3625
|
+
G as findNewIndex,
|
|
3626
|
+
ot as getAutobindWrapperAttributes,
|
|
3627
|
+
nt as getCompleteFlagLength,
|
|
3628
|
+
Ce as getEditableElements,
|
|
3629
|
+
ee as getElementFromAdapterConf,
|
|
3630
|
+
_n as getEndDomPos,
|
|
3570
3631
|
ne as getSelectionHtmlRanges,
|
|
3632
|
+
Re as grepAttributeValues,
|
|
3633
|
+
kt as hasEditorID,
|
|
3634
|
+
Bt as hasElement,
|
|
3635
|
+
Ye as hasError,
|
|
3571
3636
|
Se as initFloatingSidebar,
|
|
3572
|
-
|
|
3573
|
-
|
|
3637
|
+
Le as internalFetch,
|
|
3638
|
+
Et as isAsyncAdapterInterface,
|
|
3639
|
+
Tn as isChrome,
|
|
3640
|
+
ve as isDangerousToReplace,
|
|
3641
|
+
Oe as isDisplayed,
|
|
3642
|
+
Ft as isFromSameOrigin,
|
|
3643
|
+
Dt as isIFrame,
|
|
3644
|
+
gr as isProbablyUndesiredField,
|
|
3645
|
+
xe as isPromise,
|
|
3646
|
+
Tr as isSuccessfulContentExtractionResult,
|
|
3647
|
+
Te as keepVisible,
|
|
3648
|
+
Ir as loadFromLocalStorage,
|
|
3649
|
+
Br as loadInitialPos,
|
|
3650
|
+
Lt as loadSidebarCode,
|
|
3651
|
+
H as log,
|
|
3652
|
+
Yr as logTime,
|
|
3653
|
+
O as lookupMatches,
|
|
3654
|
+
Rt as parseUrl,
|
|
3655
|
+
U as rangeContent,
|
|
3656
|
+
Jt as rebaseRelativeUrl,
|
|
3657
|
+
Ot as rebaseRelativeUrls,
|
|
3658
|
+
z as removeNode,
|
|
3659
|
+
Cr as saveToLocalStorage,
|
|
3660
|
+
it as scrollIntoView,
|
|
3661
|
+
At as scrollIntoViewCenteredIfPossible,
|
|
3662
|
+
Un as scrollIntoViewCenteredWithFallback,
|
|
3663
|
+
X as simulateInputEvent,
|
|
3664
|
+
nn as sortedIndexBy,
|
|
3665
|
+
zn as textMapping,
|
|
3666
|
+
fe as toSet,
|
|
3667
|
+
Wt as waitMs
|
|
3574
3668
|
};
|