easy-email-pro-kit 0.8.0 → 0.9.0

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/lib/index.es.js CHANGED
@@ -2,14 +2,14 @@ var mn = Object.defineProperty, pn = Object.defineProperties;
2
2
  var bn = Object.getOwnPropertyDescriptors;
3
3
  var Qe = Object.getOwnPropertySymbols;
4
4
  var kt = Object.prototype.hasOwnProperty, Yt = Object.prototype.propertyIsEnumerable;
5
- var at = (t, n, d) => n in t ? mn(t, n, { enumerable: !0, configurable: !0, writable: !0, value: d }) : t[n] = d, Me = (t, n) => {
5
+ var at = (t, n, d) => n in t ? mn(t, n, { enumerable: !0, configurable: !0, writable: !0, value: d }) : t[n] = d, we = (t, n) => {
6
6
  for (var d in n || (n = {}))
7
7
  kt.call(n, d) && at(t, d, n[d]);
8
8
  if (Qe)
9
9
  for (var d of Qe(n))
10
10
  Yt.call(n, d) && at(t, d, n[d]);
11
11
  return t;
12
- }, We = (t, n) => pn(t, bn(n));
12
+ }, Se = (t, n) => pn(t, bn(n));
13
13
  var Gt = (t, n) => {
14
14
  var d = {};
15
15
  for (var p in t)
@@ -20,7 +20,7 @@ var Gt = (t, n) => {
20
20
  return d;
21
21
  };
22
22
  var Et = (t, n, d) => (at(t, typeof n != "symbol" ? n + "" : n, d), d);
23
- var Se = (t, n, d) => new Promise((p, f) => {
23
+ var Ze = (t, n, d) => new Promise((p, f) => {
24
24
  var y = (b) => {
25
25
  try {
26
26
  a(d.next(b));
@@ -37,8 +37,8 @@ var Se = (t, n, d) => new Promise((p, f) => {
37
37
  a((d = d.apply(t, n)).next());
38
38
  });
39
39
  import { useEmailRenderContext as gn, EmailRenderProvider as Ue, components as $e, ElementType as st, ResponsivePlugin as yn, BlockManager as et, classnames as Fe, mergeBlock as Oe, createCustomBlock as ft, t as A, ElementCategory as wt, NodeUtils as fn, ElementPlugin as Mt } from "easy-email-pro-core";
40
- import { get as qt, set as Ze, flatMap as wn, cloneDeep as Ve, isEqual as _e, merge as Mn } from "lodash";
41
- import T, { useState as xt, useEffect as qe, useRef as zt, useMemo as xn } from "react";
40
+ import { get as qt, set as Ne, flatMap as wn, cloneDeep as Ve, isEqual as _e, merge as Mn } from "lodash";
41
+ import S, { useState as xt, useEffect as qe, useRef as zt, useMemo as xn } from "react";
42
42
  import { AttributesPanelWrapper as vt, ResponsiveTabs as Tt, useEditorContext as St, CollapseWrapper as Zt, AttributeField as ne, ResponsiveField as ie, previewLoadImage as $t, useElementInteract as vn, ConfigPanelsMap as Nt } from "easy-email-pro-theme";
43
43
  import Tn from "react-dom/server";
44
44
  import { Collapse as Te, Button as Dt, Message as Wt, Grid as lt, Divider as ct } from "@arco-design/web-react";
@@ -48,7 +48,7 @@ import { HistoryEditor as Zn } from "slate-history";
48
48
  const { Raw: Re } = $e;
49
49
  function Nn(t) {
50
50
  const { desktop: n, mobile: d } = t, p = gn(), { displayMode: f = "desktop-mobile" } = p;
51
- return f === "only-desktop" ? /* @__PURE__ */ T.createElement(Ue, We(Me({}, p), { displayMode: "only-desktop" }), /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(n, null))) : f === "only-mobile" ? /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(Re, null, "<!-- htmlmin:ignore --><!--[if !mso]><!--><!-- htmlmin:ignore -->"), /* @__PURE__ */ T.createElement(Ue, We(Me({}, p), { displayMode: "only-mobile" }), /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(d, null))), /* @__PURE__ */ T.createElement(Re, null, "<!-- htmlmin:ignore --><!--<![endif]--><!-- htmlmin:ignore -->")) : /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(Ue, We(Me({}, p), { displayMode: "only-desktop" }), /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(n, null))), /* @__PURE__ */ T.createElement(Re, null, "<!-- htmlmin:ignore --><!--[if !mso]><!--><!-- htmlmin:ignore -->"), /* @__PURE__ */ T.createElement(Ue, We(Me({}, p), { displayMode: "only-mobile" }), /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(d, null))), /* @__PURE__ */ T.createElement(Re, null, "<!-- htmlmin:ignore --><!--<![endif]--><!-- htmlmin:ignore -->"));
51
+ return f === "only-desktop" ? /* @__PURE__ */ S.createElement(Ue, Se(we({}, p), { displayMode: "only-desktop" }), /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(n, null))) : f === "only-mobile" ? /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(Re, null, "<!-- htmlmin:ignore --><!--[if !mso]><!--><!-- htmlmin:ignore -->"), /* @__PURE__ */ S.createElement(Ue, Se(we({}, p), { displayMode: "only-mobile" }), /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(d, null))), /* @__PURE__ */ S.createElement(Re, null, "<!-- htmlmin:ignore --><!--<![endif]--><!-- htmlmin:ignore -->")) : /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(Ue, Se(we({}, p), { displayMode: "only-desktop" }), /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(n, null))), /* @__PURE__ */ S.createElement(Re, null, "<!-- htmlmin:ignore --><!--[if !mso]><!--><!-- htmlmin:ignore -->"), /* @__PURE__ */ S.createElement(Ue, Se(we({}, p), { displayMode: "only-mobile" }), /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(d, null))), /* @__PURE__ */ S.createElement(Re, null, "<!-- htmlmin:ignore --><!--<![endif]--><!-- htmlmin:ignore -->"));
52
52
  }
53
53
  const Dn = "hide-desktop-block", Wn = "hide-mobile-block", Cn = "hide-desktop-inline-block", Ln = "hide-mobile-inline-block", Kt = [
54
54
  st.GROUP,
@@ -59,7 +59,7 @@ class _r extends yn {
59
59
  constructor() {
60
60
  super(...arguments);
61
61
  Et(this, "generateResponsive", (d) => {
62
- var V;
62
+ var J;
63
63
  const {
64
64
  mode: p,
65
65
  displayMode: f,
@@ -68,68 +68,80 @@ class _r extends yn {
68
68
  mergetagsData: a = {},
69
69
  children: b,
70
70
  context: w,
71
- idx: x,
72
- desktopContent: G
73
- } = d;
74
- let L = G;
75
- const K = et.getBlockByType(y.type);
76
- if (!K)
71
+ idx: x
72
+ } = d, G = et.getBlockByType(y.type);
73
+ if (!G)
77
74
  throw new Error(`${y.type} block is not registered`);
78
- const I = y.mobileAttributes && Object.keys(y.mobileAttributes).some((J) => y.mobileAttributes[J] !== y.attributes[J]), S = Kt.includes(K.type) ? Cn : Dn, X = Kt.includes(K.type) ? Ln : Wn, R = qt(y, "attributes.css-class") || "";
75
+ const I = y.mobileAttributes && Object.keys(y.mobileAttributes).some((R) => y.mobileAttributes[R] !== y.attributes[R]), K = Kt.includes(G.type) ? Cn : Dn, L = Kt.includes(G.type) ? Ln : Wn, v = qt(y, "attributes.css-class") || "";
79
76
  if (f === "only-desktop") {
80
- if (R.includes(S))
77
+ if (y.visible === "mobile" || v.includes(K))
81
78
  return null;
82
- R.includes(X) || Ze(
79
+ v.includes(L) || Ne(
83
80
  y,
84
81
  "attributes.css-class",
85
- Fe(R, X)
82
+ Fe(v, L)
86
83
  );
87
84
  } else if (f === "only-mobile") {
88
- if (R.includes(X))
85
+ if (v.includes(L))
89
86
  return null;
90
- R.includes(S) || Ze(
87
+ v.includes(K) || Ne(
91
88
  y,
92
89
  "attributes.css-class",
93
- Fe(R, S)
90
+ Fe(v, K)
94
91
  );
95
92
  }
96
- f === "only-mobile" ? y.attributes = Oe(
97
- Oe(
98
- K.defaultData.attributes,
99
- K.defaultData.mobileAttributes
100
- ),
101
- y.attributes
102
- ) : y.attributes = Oe(
103
- ((V = K.defaultData) == null ? void 0 : V.attributes) || {},
104
- y.attributes
105
- ), y.visible === "desktop" ? Ze(
93
+ if (f === "only-mobile") {
94
+ if (y.visible === "desktop")
95
+ return null;
96
+ y.attributes = Oe(
97
+ Oe(
98
+ G.defaultData.attributes,
99
+ G.defaultData.mobileAttributes
100
+ ),
101
+ y.attributes
102
+ );
103
+ } else
104
+ y.attributes = Oe(
105
+ ((J = G.defaultData) == null ? void 0 : J.attributes) || {},
106
+ y.attributes
107
+ );
108
+ y.visible === "desktop" ? Ne(
106
109
  y,
107
110
  "attributes.css-class",
108
- Fe(R, X)
109
- ) : y.visible === "mobile" && Ze(
111
+ Fe(v, L)
112
+ ) : y.visible === "mobile" && Ne(
110
113
  y,
111
114
  "attributes.css-class",
112
- Fe(R, S)
113
- );
114
- const oe = K.render({
115
+ Fe(v, K)
116
+ ), y.visible;
117
+ const _ = y.visible === "desktop" ? null : G.render({
115
118
  mode: p,
116
119
  children: b,
117
120
  context: w,
118
121
  idx: x,
119
- node: We(Me({}, y), {
122
+ node: Se(we({}, y), {
120
123
  attributes: Oe(y.attributes, y.mobileAttributes),
121
124
  mobileAttributes: void 0
122
125
  }),
123
126
  keepEmptyAttributes: h,
124
127
  mergetagsData: a
125
- });
126
- return I && (L = /* @__PURE__ */ T.createElement(T.Fragment, null, /* @__PURE__ */ T.createElement(
128
+ }), re = G.render(Se(we({}, d), {
129
+ mode: p,
130
+ children: b,
131
+ context: w,
132
+ idx: x,
133
+ node: y,
134
+ keepEmptyAttributes: h,
135
+ mergetagsData: a
136
+ }));
137
+ let V = re;
138
+ return I && (V = /* @__PURE__ */ S.createElement(S.Fragment, null, /* @__PURE__ */ S.createElement(
127
139
  Nn,
128
140
  {
129
- desktop: () => /* @__PURE__ */ T.createElement(T.Fragment, null, G),
130
- mobile: () => /* @__PURE__ */ T.createElement(T.Fragment, null, oe)
141
+ desktop: () => /* @__PURE__ */ S.createElement(S.Fragment, null, re),
142
+ mobile: () => /* @__PURE__ */ S.createElement(S.Fragment, null, _)
131
143
  }
132
- ))), L;
144
+ ))), V;
133
145
  });
134
146
  }
135
147
  }
@@ -178,14 +190,14 @@ function In(t) {
178
190
  value: a
179
191
  }
180
192
  ];
181
- return /* @__PURE__ */ T.createElement(
193
+ return /* @__PURE__ */ S.createElement(
182
194
  "div",
183
195
  {
184
196
  style: {
185
197
  color: n.color
186
198
  }
187
199
  },
188
- /* @__PURE__ */ T.createElement("div", null, /* @__PURE__ */ T.createElement(
200
+ /* @__PURE__ */ S.createElement("div", null, /* @__PURE__ */ S.createElement(
189
201
  "div",
190
202
  {
191
203
  style: {
@@ -195,7 +207,7 @@ function In(t) {
195
207
  paddingBottom: 15
196
208
  }
197
209
  },
198
- b.map((w, x) => /* @__PURE__ */ T.createElement(
210
+ b.map((w, x) => /* @__PURE__ */ S.createElement(
199
211
  "div",
200
212
  {
201
213
  key: w.unit,
@@ -205,7 +217,7 @@ function In(t) {
205
217
  justifyContent: "center"
206
218
  }
207
219
  },
208
- /* @__PURE__ */ T.createElement(
220
+ /* @__PURE__ */ S.createElement(
209
221
  "div",
210
222
  {
211
223
  style: {
@@ -221,9 +233,9 @@ function In(t) {
221
233
  fontSize: 24
222
234
  }
223
235
  },
224
- /* @__PURE__ */ T.createElement("div", { style: { height: "100%", overflow: "hidden" } }, /* @__PURE__ */ T.createElement("div", { className: w.unit }, w.value))
236
+ /* @__PURE__ */ S.createElement("div", { style: { height: "100%", overflow: "hidden" } }, /* @__PURE__ */ S.createElement("div", { className: w.unit }, w.value))
225
237
  ),
226
- x !== b.length - 1 && /* @__PURE__ */ T.createElement(
238
+ x !== b.length - 1 && /* @__PURE__ */ S.createElement(
227
239
  "div",
228
240
  {
229
241
  key: w.unit,
@@ -232,7 +244,7 @@ function In(t) {
232
244
  ":"
233
245
  )
234
246
  ))
235
- ), /* @__PURE__ */ T.createElement(
247
+ ), /* @__PURE__ */ S.createElement(
236
248
  "div",
237
249
  {
238
250
  style: {
@@ -242,7 +254,7 @@ function In(t) {
242
254
  paddingBottom: 10
243
255
  }
244
256
  },
245
- b.map((w, x) => /* @__PURE__ */ T.createElement(
257
+ b.map((w, x) => /* @__PURE__ */ S.createElement(
246
258
  "div",
247
259
  {
248
260
  key: w.unit,
@@ -252,7 +264,7 @@ function In(t) {
252
264
  justifyContent: "center"
253
265
  }
254
266
  },
255
- /* @__PURE__ */ T.createElement(
267
+ /* @__PURE__ */ S.createElement(
256
268
  "div",
257
269
  {
258
270
  key: w.unit,
@@ -268,7 +280,7 @@ function In(t) {
268
280
  },
269
281
  w.unit
270
282
  ),
271
- x !== b.length - 1 && /* @__PURE__ */ T.createElement(
283
+ x !== b.length - 1 && /* @__PURE__ */ S.createElement(
272
284
  "div",
273
285
  {
274
286
  style: {
@@ -309,8 +321,8 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
309
321
  create: (t) => {
310
322
  const n = {
311
323
  type: Pe.MARKETING_COUNTDOWN,
312
- data: Me({}, dt.data),
313
- attributes: Me({}, dt.attributes),
324
+ data: we({}, dt.data),
325
+ attributes: we({}, dt.attributes),
314
326
  children: [
315
327
  {
316
328
  type: "text",
@@ -350,9 +362,9 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
350
362
  const { node: n, mode: d } = t, { attributes: p, children: f } = n;
351
363
  if (d === "testing") {
352
364
  const y = Tn.renderToString(
353
- /* @__PURE__ */ T.createElement(In, { attributes: n.attributes, data: n.data })
365
+ /* @__PURE__ */ S.createElement(In, { attributes: n.attributes, data: n.data })
354
366
  );
355
- return /* @__PURE__ */ T.createElement(
367
+ return /* @__PURE__ */ S.createElement(
356
368
  Xt,
357
369
  {
358
370
  tagName: "div",
@@ -366,7 +378,7 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
366
378
  lineHeight: 1
367
379
  }
368
380
  },
369
- /* @__PURE__ */ T.createElement(
381
+ /* @__PURE__ */ S.createElement(
370
382
  Xt,
371
383
  {
372
384
  tagName: "div",
@@ -376,15 +388,15 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
376
388
  display: "table"
377
389
  }
378
390
  },
379
- f.map((h, a) => fn.isTextElement(h) ? /* @__PURE__ */ T.createElement(En, { key: a, node: h }) : null),
380
- /* @__PURE__ */ T.createElement(Gn, { height: "20px" }),
381
- /* @__PURE__ */ T.createElement(Yn, null, y)
391
+ f.map((h, a) => fn.isTextElement(h) ? /* @__PURE__ */ S.createElement(En, { key: a, node: h }) : null),
392
+ /* @__PURE__ */ S.createElement(Gn, { height: "20px" }),
393
+ /* @__PURE__ */ S.createElement(Yn, null, y)
382
394
  )
383
395
  );
384
396
  }
385
- return /* @__PURE__ */ T.createElement(
397
+ return /* @__PURE__ */ S.createElement(
386
398
  kn,
387
- We(Me({
399
+ Se(we({
388
400
  idx: t.idx
389
401
  }, t.node.attributes), {
390
402
  children: n.children
@@ -429,7 +441,7 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
429
441
  create: (t) => {
430
442
  const n = {
431
443
  type: Pe.MARKETING_SHOPWINDOW,
432
- data: Me({}, jt.data),
444
+ data: we({}, jt.data),
433
445
  attributes: {
434
446
  src: "https://res.cloudinary.com/djnkpbshx/image/upload/v1688116417/easy-email-pro/gsdrahrenerqzrdnihsv.gif"
435
447
  },
@@ -450,9 +462,9 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
450
462
  "border-style",
451
463
  "border-color"
452
464
  ]), a = d ? `${p || "1px"} ${f || "solid"} ${y || "#AAAAAA"}` : "";
453
- return /* @__PURE__ */ T.createElement(
465
+ return /* @__PURE__ */ S.createElement(
454
466
  zn,
455
- We(Me({
467
+ Se(we({
456
468
  idx: t.idx
457
469
  }, h), {
458
470
  data: n.data,
@@ -501,8 +513,8 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
501
513
  create: (t) => {
502
514
  const n = {
503
515
  type: Pe.MARKETING_QR_CODE,
504
- data: Me({}, ut.data),
505
- attributes: Me({}, ut.attributes),
516
+ data: we({}, ut.data),
517
+ attributes: we({}, ut.attributes),
506
518
  children: [
507
519
  {
508
520
  text: ""
@@ -514,21 +526,21 @@ const { Image: kn, Raw: Yn, Spacer: Gn, ContentEditableBlock: En, HtmlDomNode: X
514
526
  category: wt.IMAGE,
515
527
  render(t) {
516
528
  const { node: n } = t;
517
- return /* @__PURE__ */ T.createElement(
529
+ return /* @__PURE__ */ S.createElement(
518
530
  Kn,
519
- We(Me({
531
+ Se(we({
520
532
  idx: t.idx
521
533
  }, t.node.attributes), {
522
534
  children: n.children
523
535
  })
524
536
  );
525
537
  }
526
- }), He = document.createElement("canvas"), At = He.getContext("2d"), Xn = (t) => Se(void 0, null, function* () {
538
+ }), He = document.createElement("canvas"), At = He.getContext("2d"), Xn = (t) => Ze(void 0, null, function* () {
527
539
  const n = new Image();
528
540
  return n.src = t, yield new Promise((d, p) => {
529
541
  n.onload = d, n.onerror = p;
530
542
  }), n;
531
- }), On = (t) => Se(void 0, null, function* () {
543
+ }), On = (t) => Ze(void 0, null, function* () {
532
544
  const n = new Image();
533
545
  return n.crossOrigin = "anonymous", new Promise((d, p) => {
534
546
  n.onload = () => {
@@ -579,7 +591,7 @@ function nn(t) {
579
591
  }), n;
580
592
  }
581
593
  const Pn = function(d) {
582
- return Se(this, arguments, function* (t, n = {}) {
594
+ return Ze(this, arguments, function* (t, n = {}) {
583
595
  const p = n.width || t.offsetWidth, f = n.height || t.offsetHeight, { overwrite: y = [], wrapper: h = (x) => x } = n, a = nn(t);
584
596
  if (a.setAttribute("xmlns", "http://www.w3.org/1999/xhtml"), a.classList.remove("outline"), n.styleText) {
585
597
  const x = document.createElement("style");
@@ -588,24 +600,24 @@ const Pn = function(d) {
588
600
  y.forEach((x) => {
589
601
  if (x.selector === "" && x instanceof HTMLElement) {
590
602
  const G = x.style;
591
- Object.keys(x.style).forEach((L) => {
592
- G.setProperty(L, x.style[L]);
593
- }), x.innerText && (a.innerText = x.innerText), x.innerHTML && (a.innerHTML = x.innerHTML), x.attrs && Object.keys(x.attrs).forEach((L) => {
594
- a.setAttribute(L, x.attrs[L]);
603
+ Object.keys(x.style).forEach((I) => {
604
+ G.setProperty(I, x.style[I]);
605
+ }), x.innerText && (a.innerText = x.innerText), x.innerHTML && (a.innerHTML = x.innerHTML), x.attrs && Object.keys(x.attrs).forEach((I) => {
606
+ a.setAttribute(I, x.attrs[I]);
595
607
  });
596
608
  }
597
609
  a.querySelectorAll(x.selector).forEach((G) => {
598
610
  if (qt(G, "nodeType") === 1) {
599
- const L = G, K = L.style;
600
- if (x.style && Object.keys(x.style).forEach((I) => {
601
- K.setProperty(I, x.style[I]);
602
- }), x.innerText && (L.innerText = x.innerText), x.innerHTML && (L.innerHTML = x.innerHTML), x.attrs)
603
- for (const I in x.attrs)
604
- L.setAttribute(I, x.attrs[I]);
611
+ const I = G, K = I.style;
612
+ if (x.style && Object.keys(x.style).forEach((L) => {
613
+ K.setProperty(L, x.style[L]);
614
+ }), x.innerText && (I.innerText = x.innerText), x.innerHTML && (I.innerHTML = x.innerHTML), x.attrs)
615
+ for (const L in x.attrs)
616
+ I.setAttribute(L, x.attrs[L]);
605
617
  }
606
618
  });
607
619
  }), yield Promise.all(
608
- [...a.querySelectorAll("img")].map((x) => Se(this, null, function* () {
620
+ [...a.querySelectorAll("img")].map((x) => Ze(this, null, function* () {
609
621
  x.src = yield On(x);
610
622
  }))
611
623
  );
@@ -614,7 +626,7 @@ const Pn = function(d) {
614
626
  return w = w.replace(/\n/g, "").replace(/\t/g, "").replace(/#/g, "%23"), w;
615
627
  });
616
628
  };
617
- var An = Object.defineProperty, Qn = Object.defineProperties, Un = Object.getOwnPropertyDescriptors, Qt = Object.getOwnPropertySymbols, Fn = Object.prototype.hasOwnProperty, Rn = Object.prototype.propertyIsEnumerable, Ne = Math.pow, Ut = (t, n, d) => n in t ? An(t, n, { enumerable: !0, configurable: !0, writable: !0, value: d }) : t[n] = d, ke = (t, n) => {
629
+ var An = Object.defineProperty, Qn = Object.defineProperties, Un = Object.getOwnPropertyDescriptors, Qt = Object.getOwnPropertySymbols, Fn = Object.prototype.hasOwnProperty, Rn = Object.prototype.propertyIsEnumerable, De = Math.pow, Ut = (t, n, d) => n in t ? An(t, n, { enumerable: !0, configurable: !0, writable: !0, value: d }) : t[n] = d, ke = (t, n) => {
618
630
  for (var d in n || (n = {}))
619
631
  Fn.call(n, d) && Ut(t, d, n[d]);
620
632
  if (Qt)
@@ -1443,7 +1455,7 @@ function pt(t) {
1443
1455
  }
1444
1456
  }
1445
1457
  function Hn(t) {
1446
- const n = t[0] + Ce(25974 * t[1], ae) + Ce(14143 * t[2], ae), d = t[0] + Ce(-6918 * t[1], ae) + Ce(-4185 * t[2], ae), p = t[0] + Ce(-5864 * t[1], ae) + Ce(-84638 * t[2], ae), f = Ne(n, 2) * n / je, y = Ne(d, 2) * d / je, h = Ne(p, 2) * p / je, a = pt((267169 * f + -216771 * y + 15137 * h + ae / 2) / ae), b = pt((-83127 * f + 171030 * y + -22368 * h + ae / 2) / ae), w = pt((-275 * f + -46099 * y + 111909 * h + ae / 2) / ae);
1458
+ const n = t[0] + Ce(25974 * t[1], ae) + Ce(14143 * t[2], ae), d = t[0] + Ce(-6918 * t[1], ae) + Ce(-4185 * t[2], ae), p = t[0] + Ce(-5864 * t[1], ae) + Ce(-84638 * t[2], ae), f = De(n, 2) * n / je, y = De(d, 2) * d / je, h = De(p, 2) * p / je, a = pt((267169 * f + -216771 * y + 15137 * h + ae / 2) / ae), b = pt((-83127 * f + 171030 * y + -22368 * h + ae / 2) / ae), w = pt((-275 * f + -46099 * y + 111909 * h + ae / 2) / ae);
1447
1459
  return a << 16 | b << 8 | w;
1448
1460
  }
1449
1461
  function _n(t) {
@@ -1491,15 +1503,15 @@ function an(t) {
1491
1503
  finderCache: p
1492
1504
  } = n;
1493
1505
  function f(h, a, b) {
1494
- const { left: w, right: x, longest: G, oklab: L, colorBoxIndex: K } = d[h], I = Math.min(
1495
- Ne(a[0] - L[0], 2) + Ne(a[1] - L[1], 2) + Ne(a[2] - L[2], 2),
1506
+ const { left: w, right: x, longest: G, oklab: I, colorBoxIndex: K } = d[h], L = Math.min(
1507
+ De(a[0] - I[0], 2) + De(a[1] - I[1], 2) + De(a[2] - I[2], 2),
1496
1508
  4294967295 - 1
1497
1509
  );
1498
- I < b.dist && (b.colorBoxIndex = K, b.dist = I);
1499
- let S, X;
1510
+ L < b.dist && (b.colorBoxIndex = K, b.dist = L);
1511
+ let v, X;
1500
1512
  if (w !== -1 || x !== -1) {
1501
- const R = a[G] - L[G];
1502
- R <= 0 ? (S = w, X = x) : (S = x, X = w), S !== -1 && f(S, a, b), X !== -1 && Ne(R, 2) < b.dist && f(X, a, b);
1513
+ const _ = a[G] - I[G];
1514
+ _ <= 0 ? (v = w, X = x) : (v = x, X = w), v !== -1 && f(v, a, b), X !== -1 && De(_, 2) < b.dist && f(X, a, b);
1503
1515
  }
1504
1516
  }
1505
1517
  function y(h) {
@@ -1549,9 +1561,9 @@ function nr(t, n) {
1549
1561
  } else if (n === "hex") {
1550
1562
  y = [];
1551
1563
  for (let h = f.length, a = 0; a < h; a++) {
1552
- const { value: b, percentage: w } = f[a], x = b[0].toString(16).padStart(2, "0"), G = b[1].toString(16).padStart(2, "0"), L = b[2].toString(16).padStart(2, "0");
1564
+ const { value: b, percentage: w } = f[a], x = b[0].toString(16).padStart(2, "0"), G = b[1].toString(16).padStart(2, "0"), I = b[2].toString(16).padStart(2, "0");
1553
1565
  y.push({
1554
- value: `#${x}${G}${L}`,
1566
+ value: `#${x}${G}${I}`,
1555
1567
  percentage: w
1556
1568
  });
1557
1569
  }
@@ -1568,7 +1580,7 @@ function gt(t, n, d) {
1568
1580
  } = d, {
1569
1581
  statsMode: x,
1570
1582
  colorSamples: G,
1571
- colorSamplesCache: L
1583
+ colorSamplesCache: I
1572
1584
  } = t;
1573
1585
  let K;
1574
1586
  if (ArrayBuffer.isView(n))
@@ -1577,46 +1589,46 @@ function gt(t, n, d) {
1577
1589
  K = new Uint8ClampedArray(n);
1578
1590
  else if (Array.isArray(n))
1579
1591
  if (Array.isArray(n[0])) {
1580
- const I = [];
1581
- for (let S = n.length, X = 0; X < S; X++)
1582
- I.push(
1592
+ const L = [];
1593
+ for (let v = n.length, X = 0; X < v; X++)
1594
+ L.push(
1583
1595
  (p = n[X][0]) != null ? p : 0,
1584
1596
  (f = n[X][1]) != null ? f : 0,
1585
1597
  (y = n[X][2]) != null ? y : 0,
1586
1598
  (h = n[X][3]) != null ? h : 255
1587
1599
  );
1588
- K = new Uint8ClampedArray(I);
1600
+ K = new Uint8ClampedArray(L);
1589
1601
  } else
1590
1602
  K = new Uint8ClampedArray(n);
1591
1603
  else if (typeof n == "string") {
1592
- const I = a == null ? void 0 : a();
1593
- if (!I)
1604
+ const L = a == null ? void 0 : a();
1605
+ if (!L)
1594
1606
  return;
1595
- const S = I.canvas;
1596
- return $n(n).then((X) => (I.clearRect(0, 0, S.width, S.height), S.width = X.width, S.height = X.height, I.drawImage(X, 0, 0, S.width, S.height), gt(
1607
+ const v = L.canvas;
1608
+ return $n(n).then((X) => (L.clearRect(0, 0, v.width, v.height), v.width = X.width, v.height = X.height, L.drawImage(X, 0, 0, v.width, v.height), gt(
1597
1609
  t,
1598
- I.getImageData(0, 0, S.width, S.height).data,
1610
+ L.getImageData(0, 0, v.width, v.height).data,
1599
1611
  d
1600
1612
  )));
1601
1613
  } else {
1602
- const I = a == null ? void 0 : a();
1603
- if (!I)
1614
+ const L = a == null ? void 0 : a();
1615
+ if (!L)
1604
1616
  return;
1605
- const S = I.canvas;
1606
- return I.clearRect(0, 0, S.width, S.height), S.width = typeof n.width == "number" ? n.width : n.width.baseVal.value, S.height = typeof n.height == "number" ? n.height : n.height.baseVal.value, I.drawImage(n, 0, 0, S.width, S.height), gt(
1617
+ const v = L.canvas;
1618
+ return L.clearRect(0, 0, v.width, v.height), v.width = typeof n.width == "number" ? n.width : n.width.baseVal.value, v.height = typeof n.height == "number" ? n.height : n.height.baseVal.value, L.drawImage(n, 0, 0, v.width, v.height), gt(
1607
1619
  t,
1608
- I.getImageData(0, 0, S.width, S.height).data,
1620
+ L.getImageData(0, 0, v.width, v.height).data,
1609
1621
  d
1610
1622
  );
1611
1623
  }
1612
- for (let I = K.length, S = 0; S < I; S += 4) {
1613
- const X = K[S], R = K[S + 1], oe = K[S + 2], V = K[S + 3];
1614
- if (w && V === 0 || x === "diff" && b && X === b[S] && R === b[S + 1] && oe === b[S + 2] && V === b[S + 3])
1624
+ for (let L = K.length, v = 0; v < L; v += 4) {
1625
+ const X = K[v], _ = K[v + 1], re = K[v + 2], V = K[v + 3];
1626
+ if (w && V === 0 || x === "diff" && b && X === b[v] && _ === b[v + 1] && re === b[v + 2] && V === b[v + 3])
1615
1627
  continue;
1616
- const J = X << 16 | R << 8 | oe, B = V * 1e8 + J, E = B % 32768;
1617
- let se = L.get(E);
1618
- se || (se = /* @__PURE__ */ new Map(), L.set(E, se));
1619
- let me = se.get(B);
1628
+ const J = X << 16 | _ << 8 | re, R = V * 1e8 + J, E = R % 32768;
1629
+ let se = I.get(E);
1630
+ se || (se = /* @__PURE__ */ new Map(), I.set(E, se));
1631
+ let me = se.get(R);
1620
1632
  if (me !== void 0) {
1621
1633
  G[me].count++;
1622
1634
  continue;
@@ -1626,7 +1638,7 @@ function gt(t, n, d) {
1626
1638
  srgb: J,
1627
1639
  oklab: rn(J),
1628
1640
  count: 1
1629
- }) - 1, se.set(B, me);
1641
+ }) - 1, se.set(R, me);
1630
1642
  }
1631
1643
  return K;
1632
1644
  }
@@ -1646,7 +1658,7 @@ function sn(t, n) {
1646
1658
  const h = [0, 0, 0];
1647
1659
  for (let a = p; a < f; a++) {
1648
1660
  const b = d[a];
1649
- h[0] += Ne(b.oklab[0] - t.oklab[0], 2) * b.count, h[1] += Ne(b.oklab[1] - t.oklab[1], 2) * b.count, h[2] += Ne(b.oklab[2] - t.oklab[2], 2) * b.count;
1661
+ h[0] += De(b.oklab[0] - t.oklab[0], 2) * b.count, h[1] += De(b.oklab[1] - t.oklab[1], 2) * b.count, h[2] += De(b.oklab[2] - t.oklab[2], 2) * b.count;
1650
1662
  }
1651
1663
  t.sort = qn(h[0], h[1], h[2]), t.score = Math.max(h[0], h[1], h[2]);
1652
1664
  }
@@ -1685,19 +1697,19 @@ function rr(t) {
1685
1697
  };
1686
1698
  let b = 0;
1687
1699
  const w = [];
1688
- for (let I = n.length, S = 0; S < I; S++) {
1689
- const { oklab: X } = n[S];
1690
- p.has(S) || X[0] < h.min[0] || X[1] < h.min[1] || X[2] < h.min[2] || X[0] > h.max[0] || X[1] > h.max[1] || X[2] > h.max[2] || (X[0] < a.min[0] && (a.min[0] = X[0]), X[1] < a.min[1] && (a.min[1] = X[1]), X[2] < a.min[2] && (a.min[2] = X[2]), X[0] > a.max[0] && (a.max[0] = X[0]), X[1] > a.max[1] && (a.max[1] = X[1]), X[2] > a.max[2] && (a.max[2] = X[2]), w[b++] = {
1700
+ for (let L = n.length, v = 0; v < L; v++) {
1701
+ const { oklab: X } = n[v];
1702
+ p.has(v) || X[0] < h.min[0] || X[1] < h.min[1] || X[2] < h.min[2] || X[0] > h.max[0] || X[1] > h.max[1] || X[2] > h.max[2] || (X[0] < a.min[0] && (a.min[0] = X[0]), X[1] < a.min[1] && (a.min[1] = X[1]), X[2] < a.min[2] && (a.min[2] = X[2]), X[0] > a.max[0] && (a.max[0] = X[0]), X[1] > a.max[1] && (a.max[1] = X[1]), X[2] > a.max[2] && (a.max[2] = X[2]), w[b++] = {
1691
1703
  oklab: X,
1692
- colorBoxIndex: S
1704
+ colorBoxIndex: v
1693
1705
  });
1694
1706
  }
1695
1707
  let x = 0;
1696
1708
  if (!b)
1697
1709
  return { colorBoxIndex: -1, longest: x };
1698
- const G = a.max[0] - a.min[0], L = a.max[1] - a.min[1], K = a.max[2] - a.min[2];
1699
- return G >= L && G >= K ? x = 0 : K >= G && K >= L ? x = 2 : L >= G && L >= K && (x = 1), {
1700
- colorBoxIndex: w.sort((I, S) => I.oklab[x] - S.oklab[x])[b >> 1].colorBoxIndex,
1710
+ const G = a.max[0] - a.min[0], I = a.max[1] - a.min[1], K = a.max[2] - a.min[2];
1711
+ return G >= I && G >= K ? x = 0 : K >= G && K >= I ? x = 2 : I >= G && I >= K && (x = 1), {
1712
+ colorBoxIndex: w.sort((L, v) => L.oklab[x] - v.oklab[x])[b >> 1].colorBoxIndex,
1701
1713
  longest: x
1702
1714
  };
1703
1715
  }
@@ -1711,11 +1723,11 @@ function rr(t) {
1711
1723
  colorBoxIndex: a
1712
1724
  }, G = d.push(x) - 1;
1713
1725
  p.set(a, !0);
1714
- const L = { max: [...h.max], min: [...h.min] }, K = { max: [...h.max], min: [...h.min] };
1715
- L.max[b] = w[b], K.min[b] = Math.min(w[b] + 1, 65535);
1716
- const I = y(L);
1717
- let S = -1;
1718
- return K.min[b] <= K.max[b] && (S = y(K)), x.left = I, x.right = S, G;
1726
+ const I = { max: [...h.max], min: [...h.min] }, K = { max: [...h.max], min: [...h.min] };
1727
+ I.max[b] = w[b], K.min[b] = Math.min(w[b] + 1, 65535);
1728
+ const L = y(I);
1729
+ let v = -1;
1730
+ return K.min[b] <= K.max[b] && (v = y(K)), x.left = L, x.right = v, G;
1719
1731
  }
1720
1732
  return d;
1721
1733
  }
@@ -1733,42 +1745,42 @@ function or(t, n = {}) {
1733
1745
  let h = Rt({ end: p.length }, t), a = 1;
1734
1746
  const b = [h];
1735
1747
  function w() {
1736
- let G = -1, L = -1;
1748
+ let G = -1, I = -1;
1737
1749
  if (a === f)
1738
1750
  return -1;
1739
1751
  for (let K = 0; K < a; K++) {
1740
- const I = b[K];
1741
- I.length >= 2 && I.score > L && (G = K, L = I.score);
1752
+ const L = b[K];
1753
+ L.length >= 2 && L.score > I && (G = K, I = L.score);
1742
1754
  }
1743
1755
  return G;
1744
1756
  }
1745
- function x(G, L) {
1757
+ function x(G, I) {
1746
1758
  const K = Rt({
1747
- start: L + 1,
1759
+ start: I + 1,
1748
1760
  end: G.end,
1749
1761
  sorted: G.sorted
1750
1762
  }, t);
1751
1763
  G.end -= K.length, sn(G, t), b.push(K), a++;
1752
1764
  }
1753
1765
  for (; h && h.length > 1; ) {
1754
- const { start: G, end: L, sort: K, sorted: I } = h;
1755
- if (K !== I) {
1756
- const V = p.slice(G, L).sort(_n(K));
1757
- for (let J = V.length, B = 0; B < J; B++)
1758
- p[G + B] = V[B];
1766
+ const { start: G, end: I, sort: K, sorted: L } = h;
1767
+ if (K !== L) {
1768
+ const V = p.slice(G, I).sort(_n(K));
1769
+ for (let J = V.length, R = 0; R < J; R++)
1770
+ p[G + R] = V[R];
1759
1771
  h.sorted = K;
1760
1772
  }
1761
- const S = h.weight + 1 >> 1;
1762
- let X = G, R = 0;
1763
- for (let V = L - 2; X < V && (R += p[X].count, !(R > S)); X++)
1773
+ const v = h.weight + 1 >> 1;
1774
+ let X = G, _ = 0;
1775
+ for (let V = I - 2; X < V && (_ += p[X].count, !(_ > v)); X++)
1764
1776
  ;
1765
1777
  x(h, X);
1766
- const oe = w();
1767
- h = oe >= 0 ? b[oe] : null;
1778
+ const re = w();
1779
+ h = re >= 0 ? b[re] : null;
1768
1780
  }
1769
- for (let G = b.length, L = 0; L < G; L++)
1770
- b[L].srgb = Hn(b[L].oklab);
1771
- t.colorBoxes = b.sort((G, L) => G.srgb - L.srgb), t.colorBoxesIndexTree = rr(t), y && (t.colorSamples = [], t.colorSamplesCache.clear()), t.finderCache.clear();
1781
+ for (let G = b.length, I = 0; I < G; I++)
1782
+ b[I].srgb = Hn(b[I].oklab);
1783
+ t.colorBoxes = b.sort((G, I) => G.srgb - I.srgb), t.colorBoxesIndexTree = rr(t), y && (t.colorSamples = [], t.colorSamplesCache.clear()), t.finderCache.clear();
1772
1784
  }
1773
1785
  function ir(t, n, d) {
1774
1786
  const { colorBoxes: p } = t;
@@ -1895,11 +1907,11 @@ function xr(t) {
1895
1907
  }
1896
1908
  function vr(t, n) {
1897
1909
  var d;
1898
- const { top: p = 0, left: f = 0, width: y, height: h, rawWidth: a, rate: b = 4, callback: w } = n, x = new Uint8ClampedArray(y * h * b), G = f * b, L = p * b, K = y * b, I = a * b;
1899
- for (let S = 0; S < h; S++)
1910
+ const { top: p = 0, left: f = 0, width: y, height: h, rawWidth: a, rate: b = 4, callback: w } = n, x = new Uint8ClampedArray(y * h * b), G = f * b, I = p * b, K = y * b, L = a * b;
1911
+ for (let v = 0; v < h; v++)
1900
1912
  for (let X = 0; X < K; X++) {
1901
- const R = (L + S) * I + (G + X);
1902
- x[S * K + X] = (d = w == null ? void 0 : w(R)) != null ? d : t[R];
1913
+ const _ = (I + v) * L + (G + X);
1914
+ x[v * K + X] = (d = w == null ? void 0 : w(_)) != null ? d : t[_];
1903
1915
  }
1904
1916
  return x;
1905
1917
  }
@@ -1949,12 +1961,12 @@ function Tr(t) {
1949
1961
  throw new Error("Height invalid.");
1950
1962
  let y = 0;
1951
1963
  if ((n = f.colorTable) != null && n.length) {
1952
- let L = f.colorTable.length;
1953
- if (L < 2 || L > 256 || L & L - 1)
1964
+ let I = f.colorTable.length;
1965
+ if (I < 2 || I > 256 || I & I - 1)
1954
1966
  throw new Error("Invalid color table length, must be power of 2 and 2 .. 256.");
1955
- for (; L >>= 1; )
1967
+ for (; I >>= 1; )
1956
1968
  ++y;
1957
- if (L = 1 << y, f.colorTableSize = --y, f.backgroundColorIndex >= L)
1969
+ if (I = 1 << y, f.colorTableSize = --y, f.backgroundColorIndex >= I)
1958
1970
  throw new Error("Background index out of range.");
1959
1971
  if (f.backgroundColorIndex === 0)
1960
1972
  throw new Error("Background index explicitly passed as 0.");
@@ -1974,24 +1986,24 @@ function Sr(t, n, d) {
1974
1986
  let h = f();
1975
1987
  p(0);
1976
1988
  const a = 1 << t, b = a - 1, w = a + 1;
1977
- let x = w + 1, G = t + 1, L = 0, K = 0;
1978
- function I(B) {
1979
- for (; L >= B; )
1980
- p(K & 255), K >>= 8, L -= 8, y(h) === 256 && (p(255, h), h = f(), p(0));
1989
+ let x = w + 1, G = t + 1, I = 0, K = 0;
1990
+ function L(R) {
1991
+ for (; I >= R; )
1992
+ p(K & 255), K >>= 8, I -= 8, y(h) === 256 && (p(255, h), h = f(), p(0));
1981
1993
  }
1982
- function S(B) {
1983
- K |= B << L, L += G, I(8);
1994
+ function v(R) {
1995
+ K |= R << I, I += G, L(8);
1984
1996
  }
1985
- let X = n[0] & b, R = {}, oe, V, J;
1986
- S(a);
1987
- for (let B = n.length, E = 1; E < B; ++E)
1988
- if (J = n[E] & b, oe = X << 8 | J, V = R[oe], V === void 0) {
1989
- for (K |= X << L, L += G; L >= 8; )
1990
- p(K & 255), K >>= 8, L -= 8, y(h) === 256 && (p(255, h), h = f(), p(0));
1991
- x === 4096 ? (S(a), x = w + 1, G = t + 1, R = {}) : (x >= 1 << G && ++G, R[oe] = x++), X = J;
1997
+ let X = n[0] & b, _ = {}, re, V, J;
1998
+ v(a);
1999
+ for (let R = n.length, E = 1; E < R; ++E)
2000
+ if (J = n[E] & b, re = X << 8 | J, V = _[re], V === void 0) {
2001
+ for (K |= X << I, I += G; I >= 8; )
2002
+ p(K & 255), K >>= 8, I -= 8, y(h) === 256 && (p(255, h), h = f(), p(0));
2003
+ x === 4096 ? (v(a), x = w + 1, G = t + 1, _ = {}) : (x >= 1 << G && ++G, _[re] = x++), X = J;
1992
2004
  } else
1993
2005
  X = V;
1994
- S(X), S(w), I(1), y(h) === 1 ? p(0, h) : (p(y(h) - 1, h), p(0));
2006
+ v(X), v(w), L(1), y(h) === 1 ? p(0, h) : (p(y(h) - 1, h), p(0));
1995
2007
  }
1996
2008
  function Zr(t) {
1997
2009
  var n, d, p;
@@ -2004,31 +2016,31 @@ function Zr(t) {
2004
2016
  left: w = 0,
2005
2017
  top: x = 0,
2006
2018
  width: G = 0,
2007
- height: L = 0,
2019
+ height: I = 0,
2008
2020
  delay: K = 100,
2009
- colorTable: I
2021
+ colorTable: L
2010
2022
  } = t;
2011
2023
  let {
2012
- disposal: S = 0
2024
+ disposal: v = 0
2013
2025
  } = t;
2014
2026
  const X = (n = t.graphicControl) == null ? void 0 : n.transparent;
2015
- let R = (p = (d = t.graphicControl) == null ? void 0 : d.transparentIndex) != null ? p : 255;
2027
+ let _ = (p = (d = t.graphicControl) == null ? void 0 : d.transparentIndex) != null ? p : 255;
2016
2028
  if (w < 0 || w > 65535)
2017
2029
  throw new Error("Left invalid.");
2018
2030
  if (x < 0 || x > 65535)
2019
2031
  throw new Error("Top invalid.");
2020
2032
  if (G <= 0 || G > 65535)
2021
2033
  throw new Error("Width invalid.");
2022
- if (L <= 0 || L > 65535)
2034
+ if (I <= 0 || I > 65535)
2023
2035
  throw new Error("Height invalid.");
2024
- let oe = 8, V = I ? I.length : 0;
2036
+ let re = 8, V = L ? L.length : 0;
2025
2037
  if (V) {
2026
2038
  if (V < 2 || V > 256 || V & V - 1)
2027
2039
  throw new Error("Invalid color table length, must be power of 2 and 2 .. 256.");
2028
2040
  for (; V >>= 1; )
2029
- ++oe;
2041
+ ++re;
2030
2042
  }
2031
- return y(ln), y(ur), y(hr), X ? S || (S = 2) : R = 0, y(parseInt(`000${Number(S & 7).toString(2).padStart(3, "0")}0${X ? 1 : 0}`, 2)), a(K / 10), y(R), y(0), y(lr), a(w), a(x), a(G), a(L), I != null && I.length ? (y(parseInt(`10000${(oe - 1).toString(2).padStart(3, "0")}`, 2)), h(I.flat())) : y(0), Sr(oe, t.imageData, f), b();
2043
+ return y(ln), y(ur), y(hr), X ? v || (v = 2) : _ = 0, y(parseInt(`000${Number(v & 7).toString(2).padStart(3, "0")}0${X ? 1 : 0}`, 2)), a(K / 10), y(_), y(0), y(lr), a(w), a(x), a(G), a(I), L != null && L.length ? (y(parseInt(`10000${(re - 1).toString(2).padStart(3, "0")}`, 2)), h(L.flat())) : y(0), Sr(re, t.imageData, f), b();
2032
2044
  }
2033
2045
  function Nr(t) {
2034
2046
  const {
@@ -2060,33 +2072,33 @@ function Dr(t) {
2060
2072
  transparent: w,
2061
2073
  imageData: x
2062
2074
  } = y;
2063
- let G = 0, L = 0, K = a - 1, I = b - 1, S;
2075
+ let G = 0, I = 0, K = a - 1, L = b - 1, v;
2064
2076
  if (w) {
2065
- for (; L < I; ) {
2077
+ for (; I < L; ) {
2066
2078
  let V = !0;
2067
2079
  for (let J = 0; J < a; J++)
2068
- if (x[a * L + J] !== d) {
2080
+ if (x[a * I + J] !== d) {
2069
2081
  V = !1;
2070
2082
  break;
2071
2083
  }
2072
2084
  if (!V)
2073
2085
  break;
2074
- L++;
2086
+ I++;
2075
2087
  }
2076
- for (; I > L; ) {
2088
+ for (; L > I; ) {
2077
2089
  let V = !0;
2078
2090
  for (let J = 0; J < a; J++)
2079
- if (x[a * I + J] !== d) {
2091
+ if (x[a * L + J] !== d) {
2080
2092
  V = !1;
2081
2093
  break;
2082
2094
  }
2083
2095
  if (!V)
2084
2096
  break;
2085
- I--;
2097
+ L--;
2086
2098
  }
2087
2099
  for (; G < K; ) {
2088
2100
  let V = !0;
2089
- for (let J = L; J < I; J++)
2101
+ for (let J = I; J < L; J++)
2090
2102
  if (x[a * J + G] !== d) {
2091
2103
  V = !1;
2092
2104
  break;
@@ -2097,7 +2109,7 @@ function Dr(t) {
2097
2109
  }
2098
2110
  for (; K > G; ) {
2099
2111
  let V = !0;
2100
- for (let J = L; J < I; J++)
2112
+ for (let J = I; J < L; J++)
2101
2113
  if (x[a * J + K] !== d) {
2102
2114
  V = !1;
2103
2115
  break;
@@ -2108,40 +2120,40 @@ function Dr(t) {
2108
2120
  }
2109
2121
  } else {
2110
2122
  if (p) {
2111
- for (; L < I; ) {
2123
+ for (; I < L; ) {
2112
2124
  let V = !0;
2113
2125
  for (let J = 0; J < a; J++) {
2114
- const B = a * L + J;
2115
- if (x[B] !== p[B]) {
2126
+ const R = a * I + J;
2127
+ if (x[R] !== p[R]) {
2116
2128
  V = !1;
2117
2129
  break;
2118
2130
  }
2119
2131
  }
2120
2132
  if (!V)
2121
2133
  break;
2122
- L++;
2134
+ I++;
2123
2135
  }
2124
- for (; I > L; ) {
2136
+ for (; L > I; ) {
2125
2137
  let V = !0;
2126
2138
  for (let J = 0; J < a; J++) {
2127
- const B = a * I + J;
2128
- if (x[B] !== p[B]) {
2139
+ const R = a * L + J;
2140
+ if (x[R] !== p[R]) {
2129
2141
  V = !1;
2130
2142
  break;
2131
2143
  }
2132
2144
  }
2133
2145
  if (!V)
2134
2146
  break;
2135
- I--;
2147
+ L--;
2136
2148
  }
2137
- if (L === I)
2149
+ if (I === L)
2138
2150
  G = K;
2139
2151
  else {
2140
2152
  for (; G < K; ) {
2141
2153
  let V = !0;
2142
- for (let J = L; J <= I; J++) {
2143
- const B = J * a + G;
2144
- if (x[B] !== p[B]) {
2154
+ for (let J = I; J <= L; J++) {
2155
+ const R = J * a + G;
2156
+ if (x[R] !== p[R]) {
2145
2157
  V = !1;
2146
2158
  break;
2147
2159
  }
@@ -2152,9 +2164,9 @@ function Dr(t) {
2152
2164
  }
2153
2165
  for (; K > G; ) {
2154
2166
  let V = !0;
2155
- for (let J = L; J <= I; J++) {
2156
- const B = J * a + K;
2157
- if (x[B] !== p[B]) {
2167
+ for (let J = I; J <= L; J++) {
2168
+ const R = J * a + K;
2169
+ if (x[R] !== p[R]) {
2158
2170
  V = !1;
2159
2171
  break;
2160
2172
  }
@@ -2165,30 +2177,30 @@ function Dr(t) {
2165
2177
  }
2166
2178
  }
2167
2179
  }
2168
- S = p, p = x;
2180
+ v = p, p = x;
2169
2181
  }
2170
- const X = K + 1 - G, R = I + 1 - L, oe = vr(
2182
+ const X = K + 1 - G, _ = L + 1 - I, re = vr(
2171
2183
  x,
2172
2184
  {
2173
2185
  left: G,
2174
- top: L,
2186
+ top: I,
2175
2187
  width: X,
2176
- height: R,
2188
+ height: _,
2177
2189
  rawWidth: a,
2178
2190
  rate: 1,
2179
2191
  callback: (V) => {
2180
- if (!w && S && x[V] === S[V])
2192
+ if (!w && v && x[V] === v[V])
2181
2193
  return d;
2182
2194
  }
2183
2195
  }
2184
2196
  );
2185
2197
  return {
2186
2198
  left: G,
2187
- top: L,
2199
+ top: I,
2188
2200
  width: X,
2189
- height: R,
2201
+ height: _,
2190
2202
  disposal: w && h !== f - 1 ? 2 : 1,
2191
- imageData: oe
2203
+ imageData: re
2192
2204
  };
2193
2205
  });
2194
2206
  }
@@ -2224,11 +2236,11 @@ function Cr(t) {
2224
2236
  return {
2225
2237
  call: function() {
2226
2238
  let a = 0;
2227
- return (b, w, x, G) => new Promise((L) => {
2239
+ return (b, w, x, G) => new Promise((I) => {
2228
2240
  const K = h(G);
2229
2241
  if (!K)
2230
- return L(void 0);
2231
- n.set(a, L), K.postMessage({ id: a++, type: b, data: w }, { transfer: x });
2242
+ return I(void 0);
2243
+ n.set(a, I), K.postMessage({ id: a++, type: b, data: w }, { transfer: x });
2232
2244
  });
2233
2245
  }()
2234
2246
  };
@@ -2254,36 +2266,36 @@ function Lr(t) {
2254
2266
  }),
2255
2267
  worker: Cr({ workerUrl: p, workerNumber: f }),
2256
2268
  encodeId: 0,
2257
- encode(S) {
2269
+ encode(v) {
2258
2270
  return Ie(this, null, function* () {
2259
- const { log: X, frames: R, encodeId: oe, width: V, height: J } = w;
2271
+ const { log: X, frames: _, encodeId: re, width: V, height: J } = w;
2260
2272
  w.encodeId++;
2261
- const { width: B = V, height: E = J } = S;
2262
- let { imageData: se } = S;
2263
- X.time(`palette:sample-${oe}`);
2273
+ const { width: R = V, height: E = J } = v;
2274
+ let { imageData: se } = v;
2275
+ X.time(`palette:sample-${re}`);
2264
2276
  try {
2265
2277
  se = typeof se == "string" ? yield xr(se) : se;
2266
2278
  const me = wr(se, "uint8ClampedArray", {
2267
- width: B,
2279
+ width: R,
2268
2280
  height: E
2269
2281
  });
2270
- R.push(Ae(ke({
2271
- width: B,
2282
+ _.push(Ae(ke({
2283
+ width: R,
2272
2284
  height: E
2273
- }, S), {
2285
+ }, v), {
2274
2286
  imageData: me
2275
2287
  })), yield x(me);
2276
2288
  } finally {
2277
- X.timeEnd(`palette:sample-${oe}`);
2289
+ X.timeEnd(`palette:sample-${re}`);
2278
2290
  }
2279
2291
  });
2280
2292
  },
2281
2293
  flush() {
2282
2294
  return Ie(this, null, function* () {
2283
- const { log: S, frames: X, width: R, height: oe, maxColors: V, palette: J } = w;
2284
- S.time("palette:generate");
2285
- const B = yield G(V), E = Jt(B).getColors("rgb").map((W) => W.value);
2286
- S.debug("palette:maxColors", V);
2295
+ const { log: v, frames: X, width: _, height: re, maxColors: V, palette: J } = w;
2296
+ v.time("palette:generate");
2297
+ const R = yield G(V), E = Jt(R).getColors("rgb").map((W) => W.value);
2298
+ v.debug("palette:maxColors", V);
2287
2299
  const se = E.map((W) => {
2288
2300
  const C = W[0].toString(16).padStart(2, "0"), D = W[1].toString(16).padStart(2, "0"), M = W[2].toString(16).padStart(2, "0");
2289
2301
  return `#${C}${D}${M}`;
@@ -2293,13 +2305,13 @@ function Lr(t) {
2293
2305
  ...se.map((W) => `margin: 1px; background: ${W}`)
2294
2306
  ); E.length < y; )
2295
2307
  E.push([0, 0, 0]);
2296
- S.timeEnd("palette:generate"), S.time("frames:index");
2297
- const me = yield L({
2308
+ v.timeEnd("palette:generate"), v.time("frames:index");
2309
+ const me = yield I({
2298
2310
  frames: X,
2299
- palette: B,
2311
+ palette: R,
2300
2312
  transparentIndex: h
2301
2313
  });
2302
- S.timeEnd("frames:index"), S.time("frames:crop");
2314
+ v.timeEnd("frames:index"), v.time("frames:crop");
2303
2315
  const ve = yield K({
2304
2316
  frames: me.map((W, C) => {
2305
2317
  const { width: D = 1, height: M = 1 } = X[C];
@@ -2310,8 +2322,8 @@ function Lr(t) {
2310
2322
  }),
2311
2323
  transparentIndex: h
2312
2324
  });
2313
- S.timeEnd("frames:crop"), S.time("frames:encode");
2314
- const Le = yield Promise.all(X.map((W, C) => I(
2325
+ v.timeEnd("frames:crop"), v.time("frames:encode");
2326
+ const Le = yield Promise.all(X.map((W, C) => L(
2315
2327
  Ae(ke(ke({}, W), ve[C]), {
2316
2328
  graphicControl: Ae(ke({}, W.graphicControl), {
2317
2329
  transparent: !0,
@@ -2319,61 +2331,61 @@ function Lr(t) {
2319
2331
  })
2320
2332
  })
2321
2333
  )));
2322
- S.timeEnd("frames:encode"), S.time("output");
2334
+ v.timeEnd("frames:encode"), v.time("output");
2323
2335
  const ge = Tr(Ae(ke({}, t), {
2324
2336
  colorTable: E,
2325
2337
  backgroundColorIndex: h,
2326
- width: R,
2327
- height: oe
2338
+ width: _,
2339
+ height: re
2328
2340
  })), Ye = fr(Le), Y = new Uint8Array(ge.length + Ye.byteLength + 1);
2329
- return Y.set(ge), Y.set(Ye, ge.byteLength), Y[Y.length - 1] = mr, S.timeEnd("output"), J.reset(), w.frames = [], w.encodeId = 0, Y;
2341
+ return Y.set(ge), Y.set(Ye, ge.byteLength), Y[Y.length - 1] = mr, v.timeEnd("output"), J.reset(), w.frames = [], w.encodeId = 0, Y;
2330
2342
  });
2331
2343
  }
2332
2344
  };
2333
- function x(S) {
2345
+ function x(v) {
2334
2346
  return Ie(this, null, function* () {
2335
2347
  (yield w.worker.call(
2336
2348
  "palette:addSample",
2337
- S,
2349
+ v,
2338
2350
  void 0,
2339
2351
  0
2340
- )) || w.palette.addSample(S);
2352
+ )) || w.palette.addSample(v);
2341
2353
  });
2342
2354
  }
2343
- function G(S) {
2355
+ function G(v) {
2344
2356
  return Ie(this, null, function* () {
2345
2357
  return (yield w.worker.call(
2346
2358
  "palette:generate",
2347
- { maxColors: S },
2359
+ { maxColors: v },
2348
2360
  void 0,
2349
2361
  0
2350
- )) || (w.palette.generate({ maxColors: S }), w.palette.context);
2362
+ )) || (w.palette.generate({ maxColors: v }), w.palette.context);
2351
2363
  });
2352
2364
  }
2353
- function L(S) {
2365
+ function I(v) {
2354
2366
  return Ie(this, null, function* () {
2355
2367
  return (yield w.worker.call(
2356
2368
  "frames:index",
2357
- S
2358
- )) || Nr(S);
2369
+ v
2370
+ )) || Nr(v);
2359
2371
  });
2360
2372
  }
2361
- function K(S) {
2373
+ function K(v) {
2362
2374
  return Ie(this, null, function* () {
2363
2375
  return (yield w.worker.call(
2364
2376
  "frames:crop",
2365
- S,
2366
- S.frames.map((R) => R.imageData.buffer)
2367
- )) || Dr(S);
2377
+ v,
2378
+ v.frames.map((_) => _.imageData.buffer)
2379
+ )) || Dr(v);
2368
2380
  });
2369
2381
  }
2370
- function I(S) {
2382
+ function L(v) {
2371
2383
  return Ie(this, null, function* () {
2372
2384
  return (yield w.worker.call(
2373
2385
  "frame:encode",
2374
- S,
2375
- [S.imageData.buffer]
2376
- )) || Zr(S);
2386
+ v,
2387
+ [v.imageData.buffer]
2388
+ )) || Zr(v);
2377
2389
  });
2378
2390
  }
2379
2391
  return w;
@@ -2386,13 +2398,13 @@ function Ir(t) {
2386
2398
  return yield d.flush();
2387
2399
  });
2388
2400
  }
2389
- const kr = "data:application/javascript;base64,dmFyIEdlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgc2U9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgSGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxxZT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO3ZhciBBPU1hdGgucG93LGllPShCLHgsayk9PnggaW4gQj9HZShCLHgse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KTpCW3hdPWssWj0oQix4KT0+e2Zvcih2YXIgayBpbiB4fHwoeD17fSkpSGUuY2FsbCh4LGspJiZpZShCLGsseFtrXSk7aWYoc2UpZm9yKHZhciBrIG9mIHNlKHgpKXFlLmNhbGwoeCxrKSYmaWUoQixrLHhba10pO3JldHVybiBCfTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgQj10eXBlb2Ygd2luZG93PCJ1Iix4PTY1NTM2LTEsaz14KngsY2U9NTEyLTEsTD1bMCwyMCw0MCw2MCw4MCw5OSwxMTksMTM5LDE1OSwxNzksMTk5LDIxOSwyNDEsMjY0LDI4OCwzMTMsMzQwLDM2NywzOTYsNDI3LDQ1OCw0OTEsNTI2LDU2Miw1OTksNjM3LDY3Nyw3MTgsNzYxLDgwNSw4NTEsODk4LDk0Nyw5OTcsMTA0OCwxMTAxLDExNTYsMTIxMiwxMjcwLDEzMzAsMTM5MSwxNDUzLDE1MTcsMTU4MywxNjUxLDE3MjAsMTc5MCwxODYzLDE5MzcsMjAxMywyMDkwLDIxNzAsMjI1MCwyMzMzLDI0MTgsMjUwNCwyNTkyLDI2ODEsMjc3MywyODY2LDI5NjEsMzA1OCwzMTU3LDMyNTgsMzM2MCwzNDY0LDM1NzAsMzY3OCwzNzg4LDM5MDAsNDAxNCw0MTI5LDQyNDcsNDM2Niw0NDg4LDQ2MTEsNDczNiw0ODY0LDQ5OTMsNTEyNCw1MjU3LDUzOTIsNTUzMCw1NjY5LDU4MTAsNTk1Myw2MDk5LDYyNDYsNjM5NSw2NTQ3LDY3MDAsNjg1Niw3MDE0LDcxNzQsNzMzNSw3NTAwLDc2NjYsNzgzNCw4MDA0LDgxNzcsODM1Miw4NTI4LDg3MDgsODg4OSw5MDcyLDkyNTgsOTQ0NSw5NjM1LDk4MjgsMTAwMjIsMTAyMTksMTA0MTcsMTA2MTksMTA4MjIsMTEwMjgsMTEyMzUsMTE0NDYsMTE2NTgsMTE4NzMsMTIwOTAsMTIzMDksMTI1MzAsMTI3NTQsMTI5ODAsMTMyMDksMTM0NDAsMTM2NzMsMTM5MDksMTQxNDYsMTQzODcsMTQ2MjksMTQ4NzQsMTUxMjIsMTUzNzEsMTU2MjMsMTU4NzgsMTYxMzUsMTYzOTQsMTY2NTYsMTY5MjAsMTcxODcsMTc0NTYsMTc3MjcsMTgwMDEsMTgyNzcsMTg1NTYsMTg4MzcsMTkxMjEsMTk0MDcsMTk2OTYsMTk5ODcsMjAyODEsMjA1NzcsMjA4NzYsMjExNzcsMjE0ODEsMjE3ODcsMjIwOTYsMjI0MDcsMjI3MjEsMjMwMzgsMjMzNTcsMjM2NzgsMjQwMDIsMjQzMjksMjQ2NTgsMjQ5OTAsMjUzMjUsMjU2NjIsMjYwMDEsMjYzNDQsMjY2ODgsMjcwMzYsMjczODYsMjc3MzksMjgwOTQsMjg0NTIsMjg4MTMsMjkxNzYsMjk1NDIsMjk5MTEsMzAyODIsMzA2NTYsMzEwMzMsMzE0MTIsMzE3OTQsMzIxNzksMzI1NjcsMzI5NTcsMzMzNTAsMzM3NDUsMzQxNDMsMzQ1NDQsMzQ5NDgsMzUzNTUsMzU3NjQsMzYxNzYsMzY1OTEsMzcwMDgsMzc0MjksMzc4NTIsMzgyNzgsMzg3MDYsMzkxMzgsMzk1NzIsNDAwMDksNDA0NDksNDA4OTEsNDEzMzcsNDE3ODUsNDIyMzYsNDI2OTAsNDMxNDcsNDM2MDYsNDQwNjksNDQ1MzQsNDUwMDIsNDU0NzMsNDU5NDcsNDY0MjMsNDY5MDMsNDczODUsNDc4NzEsNDgzNTksNDg4NTAsNDkzNDQsNDk4NDEsNTAzNDEsNTA4NDQsNTEzNDksNTE4NTgsNTIzNjksNTI4ODQsNTM0MDEsNTM5MjEsNTQ0NDUsNTQ5NzEsNTU1MDAsNTYwMzIsNTY1NjcsNTcxMDUsNTc2NDYsNTgxOTAsNTg3MzcsNTkyODcsNTk4NDAsNjAzOTYsNjA5NTUsNjE1MTcsNjIwODIsNjI2NTAsNjMyMjEsNjM3OTUsNjQzNzIsNjQ5NTIsNjU1MzVdLEc9WzAsNiwxMywxOCwyMiwyNSwyOCwzMSwzNCwzNiwzOCw0MCw0Miw0NCw0Niw0OCw1MCw1MSw1Myw1NCw1Niw1Nyw1OSw2MCw2MSw2Miw2NCw2NSw2Niw2Nyw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Niw4Nyw4OCw4OSw5MCw5MSw5MSw5Miw5Myw5NCw5NSw5NSw5Niw5Nyw5OCw5OCw5OSwxMDAsMTAxLDEwMSwxMDIsMTAzLDEwMywxMDQsMTA1LDEwNiwxMDYsMTA3LDEwOCwxMDgsMTA5LDExMCwxMTAsMTExLDExMSwxMTIsMTEzLDExMywxMTQsMTE1LDExNSwxMTYsMTE2LDExNywxMTgsMTE4LDExOSwxMTksMTIwLDEyMSwxMjEsMTIyLDEyMiwxMjMsMTIzLDEyNCwxMjUsMTI1LDEyNiwxMjYsMTI3LDEyNywxMjgsMTI4LDEyOSwxMjksMTMwLDEzMCwxMzEsMTMyLDEzMiwxMzMsMTMzLDEzNCwxMzQsMTM1LDEzNSwxMzYsMTM2LDEzNywxMzcsMTM4LDEzOCwxMzksMTM5LDE0MCwxNDAsMTQwLDE0MSwxNDEsMTQyLDE0MiwxNDMsMTQzLDE0NCwxNDQsMTQ1LDE0NSwxNDYsMTQ2LDE0NywxNDcsMTQ3LDE0OCwxNDgsMTQ5LDE0OSwxNTAsMTUwLDE1MSwxNTEsMTUxLDE1MiwxNTIsMTUzLDE1MywxNTQsMTU0LDE1NCwxNTUsMTU1LDE1NiwxNTYsMTU2LDE1NywxNTcsMTU4LDE1OCwxNTksMTU5LDE1OSwxNjAsMTYwLDE2MSwxNjEsMTYxLDE2MiwxNjIsMTYzLDE2MywxNjMsMTY0LDE2NCwxNjUsMTY1LDE2NSwxNjYsMTY2LDE2NiwxNjcsMTY3LDE2OCwxNjgsMTY4LDE2OSwxNjksMTY5LDE3MCwxNzAsMTcxLDE3MSwxNzEsMTcyLDE3MiwxNzIsMTczLDE3MywxNzQsMTc0LDE3NCwxNzUsMTc1LDE3NSwxNzYsMTc2LDE3NiwxNzcsMTc3LDE3NywxNzgsMTc4LDE3OSwxNzksMTc5LDE4MCwxODAsMTgwLDE4MSwxODEsMTgxLDE4MiwxODIsMTgyLDE4MywxODMsMTgzLDE4NCwxODQsMTg0LDE4NSwxODUsMTg1LDE4NiwxODYsMTg2LDE4NywxODcsMTg3LDE4OCwxODgsMTg4LDE4OSwxODksMTg5LDE5MCwxOTAsMTkwLDE5MSwxOTEsMTkxLDE5MiwxOTIsMTkyLDE5MywxOTMsMTkzLDE5MywxOTQsMTk0LDE5NCwxOTUsMTk1LDE5NSwxOTYsMTk2LDE5NiwxOTcsMTk3LDE5NywxOTgsMTk4LDE5OCwxOTgsMTk5LDE5OSwxOTksMjAwLDIwMCwyMDAsMjAxLDIwMSwyMDEsMjAxLDIwMiwyMDIsMjAyLDIwMywyMDMsMjAzLDIwNCwyMDQsMjA0LDIwNCwyMDUsMjA1LDIwNSwyMDYsMjA2LDIwNiwyMDYsMjA3LDIwNywyMDcsMjA4LDIwOCwyMDgsMjA4LDIwOSwyMDksMjA5LDIxMCwyMTAsMjEwLDIxMCwyMTEsMjExLDIxMSwyMTIsMjEyLDIxMiwyMTIsMjEzLDIxMywyMTMsMjE0LDIxNCwyMTQsMjE0LDIxNSwyMTUsMjE1LDIxNSwyMTYsMjE2LDIxNiwyMTcsMjE3LDIxNywyMTcsMjE4LDIxOCwyMTgsMjE4LDIxOSwyMTksMjE5LDIyMCwyMjAsMjIwLDIyMCwyMjEsMjIxLDIyMSwyMjEsMjIyLDIyMiwyMjIsMjIyLDIyMywyMjMsMjIzLDIyNCwyMjQsMjI0LDIyNCwyMjUsMjI1LDIyNSwyMjUsMjI2LDIyNiwyMjYsMjI2LDIyNywyMjcsMjI3LDIyNywyMjgsMjI4LDIyOCwyMjgsMjI5LDIyOSwyMjksMjI5LDIzMCwyMzAsMjMwLDIzMCwyMzEsMjMxLDIzMSwyMzEsMjMyLDIzMiwyMzIsMjMyLDIzMywyMzMsMjMzLDIzMywyMzQsMjM0LDIzNCwyMzQsMjM1LDIzNSwyMzUsMjM1LDIzNiwyMzYsMjM2LDIzNiwyMzcsMjM3LDIzNywyMzcsMjM4LDIzOCwyMzgsMjM4LDIzOSwyMzksMjM5LDIzOSwyMzksMjQwLDI0MCwyNDAsMjQwLDI0MSwyNDEsMjQxLDI0MSwyNDIsMjQyLDI0MiwyNDIsMjQzLDI0MywyNDMsMjQzLDI0MywyNDQsMjQ0LDI0NCwyNDQsMjQ1LDI0NSwyNDUsMjQ1LDI0NiwyNDYsMjQ2LDI0NiwyNDYsMjQ3LDI0NywyNDcsMjQ3LDI0OCwyNDgsMjQ4LDI0OCwyNDksMjQ5LDI0OSwyNDksMjQ5LDI1MCwyNTAsMjUwLDI1MCwyNTEsMjUxLDI1MSwyNTEsMjUxLDI1MiwyNTIsMjUyLDI1MiwyNTMsMjUzLDI1MywyNTMsMjUzLDI1NCwyNTQsMjU0LDI1NCwyNTUsMjU1LDI1NV07ZnVuY3Rpb24gUihuKXtsZXQgZTtpZihuPD0wKXJldHVybiAwO2lmKG4+PXgpcmV0dXJuIHg7ZT1uKihuKihuKy0xNDQxMDcpL3grMTMyMTE0KS94KzE0Mzc5O2ZvcihsZXQgbz0wO288MjtvKyspe2NvbnN0IGk9ZSplKmUsbD1uKygyKmkray8yKS9rO2U9KGUqKDIqbisoaStrLzIpL2spK2wvMikvbH1yZXR1cm4gZX1mdW5jdGlvbiBfKG4sZSl7cmV0dXJuKG5eZSk8MD8obi1lLzIpL2U6KG4rZS8yKS9lfWZ1bmN0aW9uIEgobil7Y29uc3QgZT1MW24+PjE2JjI1NV0sbz1MW24+PjgmMjU1XSxpPUxbbiYyNTVdLGw9KDI3MDE1KmUrMzUxNDkqbyszMzcyKmkreC8yKS94LGM9KDEzODg3KmUrNDQ2MTAqbys3MDM4KmkreC8yKS94LGE9KDU3ODcqZSsxODQ2MipvKzQxMjg2KmkreC8yKS94LHQ9UihsKSxyPVIoYykscz1SKGEpO3JldHVybltfKDEzNzkyKnQrNTIwMTAqci0yNjcqcyx4KSxfKDEyOTYyOCp0LTE1OTE1OCpyKzI5NTMwKnMseCksXygxNjk4KnQrNTEyOTkqci01Mjk5NypzLHgpXX1mdW5jdGlvbiB6KG4pe2lmKG48PTApcmV0dXJuIDA7aWYobj49eClyZXR1cm4gMjU1O3tjb25zdCBlPW4qY2Usbz1+fihlL3gpLGk9ZSV4LGw9R1tvXSxjPUdbbysxXTtyZXR1cm4oaSooYy1sKSt4LzIpL3grbH19ZnVuY3Rpb24gZmUobil7Y29uc3QgZT1uWzBdK18oMjU5NzQqblsxXSx4KStfKDE0MTQzKm5bMl0seCksbz1uWzBdK18oLTY5MTgqblsxXSx4KStfKC00MTg1Km5bMl0seCksaT1uWzBdK18oLTU4NjQqblsxXSx4KStfKC04NDYzOCpuWzJdLHgpLGw9QShlLDIpKmUvayxjPUEobywyKSpvL2ssYT1BKGksMikqaS9rLHQ9eigoMjY3MTY5KmwrLTIxNjc3MSpjKzE1MTM3KmEreC8yKS94KSxyPXooKC04MzEyNypsKzE3MTAzMCpjKy0yMjM2OCphK3gvMikveCkscz16KCgtMjc1KmwrLTQ2MDk5KmMrMTExOTA5KmEreC8yKS94KTtyZXR1cm4gdDw8MTZ8cjw8OHxzfWZ1bmN0aW9uIGRlKG4pe2NvbnN0IGU9e2w6MCxhOjEsYjoyfSxvPW5bMF0saT1uWzFdLGw9blsyXSxjPWVbb10sYT1lW2ldLHQ9ZVtsXTtyZXR1cm4ocixzKT0+ci5va2xhYltjXS1zLm9rbGFiW2NdfHxyLm9rbGFiW2FdLXMub2tsYWJbYV18fHIub2tsYWJbdF0tcy5va2xhYlt0XX1mdW5jdGlvbiB1ZShuLGUsbyl7cmV0dXJuIG4+PWU/ZT49bz8ibGFiIjpuPj1vPyJsYmEiOiJibGEiOm4+PW8/ImFsYiI6ZT49bz8iYWJsIjoiYmFsIn1mdW5jdGlvbiBoZShuKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2NvbnN0IG89bmV3IEltYWdlO28uZGVjb2Rpbmc9InN5bmMiLG8ubG9hZGluZz0iZWFnZXIiLG8uY3Jvc3NPcmlnaW49ImFub255bW91cyIsby5vbmxvYWQ9KCk9PmUobyksby5vbmVycm9yPSgpPT5lKG8pLG8uc3JjPW59KX1mdW5jdGlvbiBxKG4pe3JldHVybiBuJiZ0eXBlb2Ygbj09Im9iamVjdCImJiJfX0NPTlRFWFRfXyJpbiBufWZ1bmN0aW9uIGdlKG4pe3JldHVybiBxKG4pP246cGUobil9ZnVuY3Rpb24gcGUobj17fSl7Y29uc3R7bWF4Q29sb3JzOmU9MjU2LHN0YXRzTW9kZTpvPSJmdWxsIixzYW1wbGVzOmk9W10sc2tpcFRyYW5zcGFyZW50Omw9ITB9PW47cmV0dXJue19fQ09OVEVYVF9fOiEwLHNhbXBsZXM6aSxtYXhDb2xvcnM6ZSxzdGF0c01vZGU6byxza2lwVHJhbnNwYXJlbnQ6bCxjb2xvclNhbXBsZXM6W10sY29sb3JTYW1wbGVzQ2FjaGU6bmV3IE1hcCxjb2xvckJveGVzOltdLGNvbG9yQm94ZXNJbmRleFRyZWU6W10sZmluZGVyQ2FjaGU6bmV3IE1hcH19ZnVuY3Rpb24gWShuKXtjb25zdCBlPXEobik/bjpuLmNvbnRleHQse2NvbG9yQm94ZXNJbmRleFRyZWU6byxmaW5kZXJDYWNoZTppfT1lO2Z1bmN0aW9uIGwoYSx0LHIpe2NvbnN0e2xlZnQ6cyxyaWdodDp1LGxvbmdlc3Q6ZCxva2xhYjpoLGNvbG9yQm94SW5kZXg6Yn09b1thXSxwPU1hdGgubWluKEEodFswXS1oWzBdLDIpK0EodFsxXS1oWzFdLDIpK0EodFsyXS1oWzJdLDIpLDQyOTQ5NjcyOTUtMSk7cDxyLmRpc3QmJihyLmNvbG9yQm94SW5kZXg9YixyLmRpc3Q9cCk7bGV0IGYsZztpZihzIT09LTF8fHUhPT0tMSl7Y29uc3QgQz10W2RdLWhbZF07Qzw9MD8oZj1zLGc9dSk6KGY9dSxnPXMpLGYhPT0tMSYmbChmLHQsciksZyE9PS0xJiZBKEMsMik8ci5kaXN0JiZsKGcsdCxyKX19ZnVuY3Rpb24gYyhhKXtjb25zdCB0PXtkaXN0Ok51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGNvbG9yQm94SW5kZXg6LTF9O3JldHVybiBsKDAsYSx0KSx0LmNvbG9yQm94SW5kZXh9cmV0dXJuIGE9Pntjb25zdCB0PWElMzI3Njg7bGV0IHI9aS5nZXQodCk7cnx8KHI9bmV3IE1hcCxpLnNldCh0LHIpKTtsZXQgcz1yLmdldChhKTtyZXR1cm4gcyE9PXZvaWQgMHx8KHM9YyhIKGEpKSxyLnNldChhLHMpKSxzfX1mdW5jdGlvbiBtZShuLGUpe2NvbnN0e2NvbG9yQm94ZXM6b309bixpPW8ucmVkdWNlKChhLHQpPT5hK3Qud2VpZ2h0LDApO2lmKCFlKXJldHVybiBuLmNvbG9yQm94ZXMubWFwKGE9Pntjb25zdHtzcmdiOnQsd2VpZ2h0OnJ9PWE7cmV0dXJue3ZhbHVlOnQscGVyY2VudGFnZTpyL2l9fSk7Y29uc3QgbD1bXTtmb3IobGV0IGE9by5sZW5ndGgsdD0wO3Q8YTt0Kyspe2NvbnN0e3NyZ2I6cix3ZWlnaHQ6c309b1t0XTtsLnB1c2goe3ZhbHVlOltyPj4xNiYyNTUscj4+OCYyNTUsciYyNTVdLHBlcmNlbnRhZ2U6cy9pfSl9bGV0IGM7aWYoZT09PSJidWZmZXIiKXtjPW5ldyBVaW50OENsYW1wZWRBcnJheShsLmxlbmd0aCo0KTtmb3IobGV0IGE9bC5sZW5ndGgsdD0wO3Q8YTt0Kyspe2NvbnN0IHI9dCo0LHM9bFt0XS52YWx1ZTtjW3JdPXNbMF0sY1tyKzFdPXNbMV0sY1tyKzJdPXNbMl0sY1tyKzNdPTI1NX19ZWxzZSBpZihlPT09ImhleCIpe2M9W107Zm9yKGxldCBhPWwubGVuZ3RoLHQ9MDt0PGE7dCsrKXtjb25zdHt2YWx1ZTpyLHBlcmNlbnRhZ2U6c309bFt0XSx1PXJbMF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSxkPXJbMV0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSxoPXJbMl0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKTtjLnB1c2goe3ZhbHVlOmAjJHt1fSR7ZH0ke2h9YCxwZXJjZW50YWdlOnN9KX19ZWxzZSBjPWw7cmV0dXJuIGN9ZnVuY3Rpb24gRihuLGUsbyl7dmFyIHUsZCxoLGI7Y29uc3R7Z2V0Q29udGV4dDJkOmkscHJldmlvdXNTYW1wbGU6bCxza2lwVHJhbnNwYXJlbnQ6Y309byx7c3RhdHNNb2RlOmEsY29sb3JTYW1wbGVzOnQsY29sb3JTYW1wbGVzQ2FjaGU6cn09bjtsZXQgcztpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcz1uZXcgVWludDhDbGFtcGVkQXJyYXkoZS5idWZmZXIpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXM9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSlpZihBcnJheS5pc0FycmF5KGVbMF0pKXtjb25zdCBwPVtdO2ZvcihsZXQgZj1lLmxlbmd0aCxnPTA7ZzxmO2crKylwLnB1c2goKHU9ZVtnXVswXSkhPW51bGw/dTowLChkPWVbZ11bMV0pIT1udWxsP2Q6MCwoaD1lW2ddWzJdKSE9bnVsbD9oOjAsKGI9ZVtnXVszXSkhPW51bGw/YjoyNTUpO3M9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHApfWVsc2Ugcz1uZXcgVWludDhDbGFtcGVkQXJyYXkoZSk7ZWxzZSBpZih0eXBlb2YgZT09InN0cmluZyIpe2NvbnN0IHA9aT09bnVsbD92b2lkIDA6aSgpO2lmKCFwKXJldHVybjtjb25zdCBmPXAuY2FudmFzO3JldHVybiBoZShlKS50aGVuKGc9PihwLmNsZWFyUmVjdCgwLDAsZi53aWR0aCxmLmhlaWdodCksZi53aWR0aD1nLndpZHRoLGYuaGVpZ2h0PWcuaGVpZ2h0LHAuZHJhd0ltYWdlKGcsMCwwLGYud2lkdGgsZi5oZWlnaHQpLEYobixwLmdldEltYWdlRGF0YSgwLDAsZi53aWR0aCxmLmhlaWdodCkuZGF0YSxvKSkpfWVsc2V7Y29uc3QgcD1pPT1udWxsP3ZvaWQgMDppKCk7aWYoIXApcmV0dXJuO2NvbnN0IGY9cC5jYW52YXM7cmV0dXJuIHAuY2xlYXJSZWN0KDAsMCxmLndpZHRoLGYuaGVpZ2h0KSxmLndpZHRoPXR5cGVvZiBlLndpZHRoPT0ibnVtYmVyIj9lLndpZHRoOmUud2lkdGguYmFzZVZhbC52YWx1ZSxmLmhlaWdodD10eXBlb2YgZS5oZWlnaHQ9PSJudW1iZXIiP2UuaGVpZ2h0OmUuaGVpZ2h0LmJhc2VWYWwudmFsdWUscC5kcmF3SW1hZ2UoZSwwLDAsZi53aWR0aCxmLmhlaWdodCksRihuLHAuZ2V0SW1hZ2VEYXRhKDAsMCxmLndpZHRoLGYuaGVpZ2h0KS5kYXRhLG8pfWZvcihsZXQgcD1zLmxlbmd0aCxmPTA7ZjxwO2YrPTQpe2NvbnN0IGc9c1tmXSxDPXNbZisxXSx5PXNbZisyXSx3PXNbZiszXTtpZihjJiZ3PT09MHx8YT09PSJkaWZmIiYmbCYmZz09PWxbZl0mJkM9PT1sW2YrMV0mJnk9PT1sW2YrMl0mJnc9PT1sW2YrM10pY29udGludWU7Y29uc3QgbT1nPDwxNnxDPDw4fHksUz13KjFlOCttLEk9UyUzMjc2ODtsZXQgVD1yLmdldChJKTtUfHwoVD1uZXcgTWFwLHIuc2V0KEksVCkpO2xldCBFPVQuZ2V0KFMpO2lmKEUhPT12b2lkIDApe3RbRV0uY291bnQrKztjb250aW51ZX1FPXQucHVzaCh7YWxwaGE6dyxzcmdiOm0sb2tsYWI6SChtKSxjb3VudDoxfSktMSxULnNldChTLEUpfXJldHVybiBzfWZ1bmN0aW9uIEoobixlKXtjb25zdHtjb2xvclNhbXBsZXM6b309ZSx7c3RhcnQ6aSxlbmQ6bH09bjtuLmxlbmd0aD1sLWksbi53ZWlnaHQ9MDtjb25zdCBjPVswLDAsMF07Zm9yKGxldCB0PWk7dDxsO3QrKyl7Y29uc3Qgcj1vW3RdO2NbMF0rPXIub2tsYWJbMF0qci5jb3VudCxjWzFdKz1yLm9rbGFiWzFdKnIuY291bnQsY1syXSs9ci5va2xhYlsyXSpyLmNvdW50LG4ud2VpZ2h0Kz1yLmNvdW50fW4ub2tsYWI9W2NbMF0vbi53ZWlnaHQsY1sxXS9uLndlaWdodCxjWzJdL24ud2VpZ2h0XTtjb25zdCBhPVswLDAsMF07Zm9yKGxldCB0PWk7dDxsO3QrKyl7Y29uc3Qgcj1vW3RdO2FbMF0rPUEoci5va2xhYlswXS1uLm9rbGFiWzBdLDIpKnIuY291bnQsYVsxXSs9QShyLm9rbGFiWzFdLW4ub2tsYWJbMV0sMikqci5jb3VudCxhWzJdKz1BKHIub2tsYWJbMl0tbi5va2xhYlsyXSwyKSpyLmNvdW50fW4uc29ydD11ZShhWzBdLGFbMV0sYVsyXSksbi5zY29yZT1NYXRoLm1heChhWzBdLGFbMV0sYVsyXSl9ZnVuY3Rpb24gUShuLGUpe2NvbnN0IG89Wih7c3RhcnQ6MCxlbmQ6MCxsZW5ndGg6MCxzY29yZTowLHdlaWdodDowLHNvcnQ6ImxhYiIsc29ydGVkOm51bGwsc3JnYjowLG9rbGFiOlswLDAsMF19LG4pO3JldHVybiBKKG8sZSksb31mdW5jdGlvbiB3ZShuKXtjb25zdHtjb2xvckJveGVzOmV9PW4sbz1bXSxpPW5ldyBNYXA7Zm9yKGxldCBhPS0xLHQ9ZS5sZW5ndGgscj0wO3I8dDtyKyspe2NvbnN0e3NyZ2I6c309ZVtyXTtpZihzPT09YSl7aS5zZXQociwhMCk7Y29udGludWV9YT1zfWMoe21pbjpbLTY1NTM1LC02NTUzNSwtNjU1MzVdLG1heDpbNjU1MzUsNjU1MzUsNjU1MzVdfSk7ZnVuY3Rpb24gbChhKXtjb25zdCB0PXttaW46WzY1NTM1LDY1NTM1LDY1NTM1XSxtYXg6Wy02NTUzNSwtNjU1MzUsLTY1NTM1XX07bGV0IHI9MDtjb25zdCBzPVtdO2ZvcihsZXQgcD1lLmxlbmd0aCxmPTA7ZjxwO2YrKyl7Y29uc3R7b2tsYWI6Z309ZVtmXTtpLmhhcyhmKXx8Z1swXTxhLm1pblswXXx8Z1sxXTxhLm1pblsxXXx8Z1syXTxhLm1pblsyXXx8Z1swXT5hLm1heFswXXx8Z1sxXT5hLm1heFsxXXx8Z1syXT5hLm1heFsyXXx8KGdbMF08dC5taW5bMF0mJih0Lm1pblswXT1nWzBdKSxnWzFdPHQubWluWzFdJiYodC5taW5bMV09Z1sxXSksZ1syXTx0Lm1pblsyXSYmKHQubWluWzJdPWdbMl0pLGdbMF0+dC5tYXhbMF0mJih0Lm1heFswXT1nWzBdKSxnWzFdPnQubWF4WzFdJiYodC5tYXhbMV09Z1sxXSksZ1syXT50Lm1heFsyXSYmKHQubWF4WzJdPWdbMl0pLHNbcisrXT17b2tsYWI6Zyxjb2xvckJveEluZGV4OmZ9KX1sZXQgdT0wO2lmKCFyKXJldHVybntjb2xvckJveEluZGV4Oi0xLGxvbmdlc3Q6dX07Y29uc3QgZD10Lm1heFswXS10Lm1pblswXSxoPXQubWF4WzFdLXQubWluWzFdLGI9dC5tYXhbMl0tdC5taW5bMl07cmV0dXJuIGQ+PWgmJmQ+PWI/dT0wOmI+PWQmJmI+PWg/dT0yOmg+PWQmJmg+PWImJih1PTEpLHtjb2xvckJveEluZGV4OnMuc29ydCgocCxmKT0+cC5va2xhYlt1XS1mLm9rbGFiW3VdKVtyPj4xXS5jb2xvckJveEluZGV4LGxvbmdlc3Q6dX19ZnVuY3Rpb24gYyhhKXtjb25zdHtjb2xvckJveEluZGV4OnQsbG9uZ2VzdDpyfT1sKGEpO2lmKHQ8MClyZXR1cm4tMTtjb25zdHtva2xhYjpzfT1lW3RdLHU9e2xvbmdlc3Q6cixva2xhYjpzLGNvbG9yQm94SW5kZXg6dH0sZD1vLnB1c2godSktMTtpLnNldCh0LCEwKTtjb25zdCBoPXttYXg6Wy4uLmEubWF4XSxtaW46Wy4uLmEubWluXX0sYj17bWF4OlsuLi5hLm1heF0sbWluOlsuLi5hLm1pbl19O2gubWF4W3JdPXNbcl0sYi5taW5bcl09TWF0aC5taW4oc1tyXSsxLDY1NTM1KTtjb25zdCBwPWMoaCk7bGV0IGY9LTE7cmV0dXJuIGIubWluW3JdPD1iLm1heFtyXSYmKGY9YyhiKSksdS5sZWZ0PXAsdS5yaWdodD1mLGR9cmV0dXJuIG99ZnVuY3Rpb24gYmUobixlPXt9KXtjb25zdHttYXhDb2xvcnM6byxjb2xvclNhbXBsZXM6aX09bjtpZighaS5sZW5ndGgpcmV0dXJuO2NvbnN0e21heENvbG9yczpsPW8sY2xlYXJTYW1wbGVzOmM9ITB9PWU7bGV0IGE9USh7ZW5kOmkubGVuZ3RofSxuKSx0PTE7Y29uc3Qgcj1bYV07ZnVuY3Rpb24gcygpe2xldCBkPS0xLGg9LTE7aWYodD09PWwpcmV0dXJuLTE7Zm9yKGxldCBiPTA7Yjx0O2IrKyl7Y29uc3QgcD1yW2JdO3AubGVuZ3RoPj0yJiZwLnNjb3JlPmgmJihkPWIsaD1wLnNjb3JlKX1yZXR1cm4gZH1mdW5jdGlvbiB1KGQsaCl7Y29uc3QgYj1RKHtzdGFydDpoKzEsZW5kOmQuZW5kLHNvcnRlZDpkLnNvcnRlZH0sbik7ZC5lbmQtPWIubGVuZ3RoLEooZCxuKSxyLnB1c2goYiksdCsrfWZvcig7YSYmYS5sZW5ndGg+MTspe2NvbnN0e3N0YXJ0OmQsZW5kOmgsc29ydDpiLHNvcnRlZDpwfT1hO2lmKGIhPT1wKXtjb25zdCB3PWkuc2xpY2UoZCxoKS5zb3J0KGRlKGIpKTtmb3IobGV0IG09dy5sZW5ndGgsUz0wO1M8bTtTKyspaVtkK1NdPXdbU107YS5zb3J0ZWQ9Yn1jb25zdCBmPWEud2VpZ2h0KzE+PjE7bGV0IGc9ZCxDPTA7Zm9yKGxldCB3PWgtMjtnPHcmJihDKz1pW2ddLmNvdW50LCEoQz5mKSk7ZysrKTt1KGEsZyk7Y29uc3QgeT1zKCk7YT15Pj0wP3JbeV06bnVsbH1mb3IobGV0IGQ9ci5sZW5ndGgsaD0wO2g8ZDtoKyspcltoXS5zcmdiPWZlKHJbaF0ub2tsYWIpO24uY29sb3JCb3hlcz1yLnNvcnQoKGQsaCk9PmQuc3JnYi1oLnNyZ2IpLG4uY29sb3JCb3hlc0luZGV4VHJlZT13ZShuKSxjJiYobi5jb2xvclNhbXBsZXM9W10sbi5jb2xvclNhbXBsZXNDYWNoZS5jbGVhcigpKSxuLmZpbmRlckNhY2hlLmNsZWFyKCl9ZnVuY3Rpb24geGUobixlLG8pe2NvbnN0e2NvbG9yQm94ZXM6aX09bjtpZighZSlyZXR1cm47bGV0IGw7aWYodHlwZW9mIG89PSJudW1iZXIiKWw9bztlbHNlIGlmKHR5cGVvZiBvPT0ic3RyaW5nIil7Y29uc3Qgcj1vLnJlcGxhY2UoL14jLywiIikscz1bYCR7clswXX0ke3JbMV19YCxgJHtyWzJdfSR7clszXX1gLGAke3JbNF19JHtyWzVdfWBdLm1hcCh1PT5wYXJzZUludCh1LDE2KSk7bD1zWzBdPDwxNnxzWzFdPDw4fHNbMl19ZWxzZSBpZihBcnJheS5pc0FycmF5KG8pKWw9b1swXTw8MTZ8b1sxXTw8OHxvWzJdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5zdXBwb3J0ZWQgY29sb3IgZm9ybWF0Iik7Y29uc3QgYz1lKGwpO2lmKGM9PT12b2lkIDApcmV0dXJuO2NvbnN0IGE9aVtjXTtpZighYSlyZXR1cm47Y29uc3R7c3JnYjp0fT1hO2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7Y29uc3Qgcj0odD4+MTYmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLHM9KHQ+PjgmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLHU9KHQmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpO3JldHVybnt2YWx1ZTpgIyR7cn0ke3N9JHt1fWAsaW5kZXg6Y319ZWxzZSBpZih0eXBlb2Ygbz09Im9iamVjdCImJkFycmF5LmlzQXJyYXkobykpcmV0dXJue3ZhbHVlOlt0Pj4xNiYyNTUsdD4+OCYyNTUsdCYyNTVdLGluZGV4OmN9O3JldHVybnt2YWx1ZTp0LGluZGV4OmN9fWZ1bmN0aW9uIFNlKG4pe24uY29sb3JTYW1wbGVzPVtdLG4uY29sb3JTYW1wbGVzQ2FjaGUuY2xlYXIoKSxuLmNvbG9yQm94ZXM9W10sbi5jb2xvckJveGVzSW5kZXhUcmVlPVtdLG4uZmluZGVyQ2FjaGUuY2xlYXIoKX1mdW5jdGlvbiBDZShuKXtjb25zdCBlPWdlKG4pLHtzdGF0c01vZGU6byxzYW1wbGVzOmksc2tpcFRyYW5zcGFyZW50Omx9PWUsYz1mdW5jdGlvbigpe2xldCBzO3JldHVybigpPT4oIXMmJkImJihzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkpLHMpfSgpO2xldCBhPW51bGwsdD1udWxsO2NvbnN0IHI9e2NvbnRleHQ6ZSxhZGRTYW1wbGU6cz0+e2UuY29sb3JTYW1wbGVzLmxlbmd0aD09PTAmJihhPW51bGwpO2NvbnN0IHU9RihlLHMse2dldENvbnRleHQyZDpjLHByZXZpb3VzU2FtcGxlOmEsc2tpcFRyYW5zcGFyZW50Omx9KTtyZXR1cm4odSBpbnN0YW5jZW9mIFByb21pc2U/dTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT51KSkudGhlbihkPT57ZCYmbz09PSJkaWZmIiYmKGE9ZCl9KSx1fSxnZW5lcmF0ZShzPXt9KXtjb25zdHtjbGVhclNhbXBsZXM6dT0hMH09cztyZXR1cm4gdSYmKGE9bnVsbCksYmUoZSxzKSx0aGlzfSxnZXRDb2xvcnM6cz0+bWUoZSxzKSxmaW5kTmVhcmVzdENvbG9yOnM9Pih0fHwodD1ZKGUpKSx4ZShlLHQscykpLHJlc2V0OigpPT5TZShlKX07cmV0dXJuIGkubGVuZ3RoJiYoaS5mb3JFYWNoKHM9PnIuYWRkU2FtcGxlKHMpKSxlLnNhbXBsZXM9W10pLHJ9Y29uc3QgeWU9Ilttb2Rlcm4tZ2lmXSIsSWU9IkdJRiIsa2U9WyI4N2EiLCI4OWEiXSxlZT00NCx0ZT0zMyxUZT0yNTUsQWU9MTEsRWU9MjU0LG5lPTI0OSxyZT00LEJlPTEsX2U9MSxNZT01OSxvZT0oLi4ubik9PmNvbnNvbGUud2Fybih5ZSwuLi5uKTtmdW5jdGlvbiB2ZShuKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG4ucmVkdWNlKChvLGkpPT5vK2kuYnl0ZUxlbmd0aCwwKSk7cmV0dXJuIG4ucmVkdWNlKChvLGkpPT4oZS5zZXQoaSxvKSxvK2kuYnl0ZUxlbmd0aCksMCksZX1mdW5jdGlvbiBhZShuLGUsbyl7bGV0IGk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KG4pKWk9bi5idWZmZXI7ZWxzZSBpZihuIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpaT1uO2Vsc2V7Y29uc3QgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx7d2lkdGg6YyxoZWlnaHQ6YX09b3x8e30sdD1sLmdldENvbnRleHQoIjJkIik7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGNhbnZhcyBjb250ZXh0MmQiKTtsLndpZHRoPWMhPW51bGw/Yzp0eXBlb2Ygbi53aWR0aD09Im51bWJlciI/bi53aWR0aDpuLndpZHRoLmJhc2VWYWwudmFsdWUsbC5oZWlnaHQ9YSE9bnVsbD9hOnR5cGVvZiBuLmhlaWdodD09Im51bWJlciI/bi5oZWlnaHQ6bi5oZWlnaHQuYmFzZVZhbC52YWx1ZSx0LmRyYXdJbWFnZShuLDAsMCxsLndpZHRoLGwuaGVpZ2h0KSxpPXQuZ2V0SW1hZ2VEYXRhKDAsMCxsLndpZHRoLGwuaGVpZ2h0KS5kYXRhLmJ1ZmZlcn1zd2l0Y2goZSl7Y2FzZSJ1aW50OEFycmF5IjpyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoaSk7Y2FzZSJ1aW50OENsYW1wZWRBcnJheSI6cmV0dXJuIG5ldyBVaW50OENsYW1wZWRBcnJheShpKTtjYXNlImRhdGFWaWV3IjpyZXR1cm4gbmV3IERhdGFWaWV3KGkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgZm9ybWF0Iil9fWZ1bmN0aW9uIE5lKG4sZSl7dmFyIHA7Y29uc3R7dG9wOm89MCxsZWZ0Omk9MCx3aWR0aDpsLGhlaWdodDpjLHJhd1dpZHRoOmEscmF0ZTp0PTQsY2FsbGJhY2s6cn09ZSxzPW5ldyBVaW50OENsYW1wZWRBcnJheShsKmMqdCksdT1pKnQsZD1vKnQsaD1sKnQsYj1hKnQ7Zm9yKGxldCBmPTA7ZjxjO2YrKylmb3IobGV0IGc9MDtnPGg7ZysrKXtjb25zdCBDPShkK2YpKmIrKHUrZyk7c1tmKmgrZ109KHA9cj09bnVsbD92b2lkIDA6cihDKSkhPW51bGw/cDpuW0NdfXJldHVybiBzfWZ1bmN0aW9uIFVlKG4pe2NvbnN0IGU9YWUobiwiZGF0YVZpZXciKTtsZXQgbz0wO2NvbnN0IGk9KCk9PmUuZ2V0VWludDgobysrKSxsPWM9PkFycmF5LmZyb20oe2xlbmd0aDpjfSkubWFwKGkpO3JldHVybntnZXRDdXJzb3I6KCk9Pm8sc2V0Q3Vyc29yOmM9Pm89YyxyZWFkQnl0ZTppLHJlYWRCeXRlczpsLHJlYWRTdHJpbmc6Yz0+U3RyaW5nLmZyb21DaGFyQ29kZSguLi5sKGMpKSxyZWFkVW5zaWduZWQ6KCk9PltlLmdldFVpbnQxNihvLCEwKSxvKz0yXVswXSxyZWFkQml0czooKT0+ZS5nZXRVaW50OChvKyspLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDgsIjAiKS5zcGxpdCgiIikubWFwKE51bWJlcikscmVhZENvbG9yVGFibGU6Yz0+QXJyYXkuZnJvbSh7bGVuZ3RoOmN9LCgpPT5BcnJheS5mcm9tKGwoMykpKSxyZWFkU3ViQmxvY2s6KCk9Pntjb25zdCBjPVtdO2Zvcig7Oyl7Y29uc3QgYT1pKCk7aWYoYT09PTAmJmUuZ2V0VWludDgobykhPT0wKWJyZWFrO2MucHVzaChhKX1yZXR1cm4gY319fWZ1bmN0aW9uIE9lKG4pe2NvbnN0IGU9e30se2dldEN1cnNvcjpvLHNldEN1cnNvcjppLHJlYWRCeXRlOmwscmVhZFN0cmluZzpjLHJlYWRVbnNpZ25lZDphLHJlYWRCaXRzOnQscmVhZENvbG9yVGFibGU6cixyZWFkU3ViQmxvY2s6c309VWUobiksdT0oKT0+KHtpbmRleDowLGRlbGF5OjEwMCxkaXNwb3NhbDowfSksZD1jKDMpLGg9YygzKTtpZihkIT09SWV8fCFrZS5pbmNsdWRlcyhoKSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgaXMgbm90IGEgODdhLzg5YSBHSUYgZGF0YS4iKTtlLnZlcnNpb249aCxlLndpZHRoPWEoKSxlLmhlaWdodD1hKCk7Y29uc3QgYj10KCk7ZS5nbG9iYWxDb2xvclRhYmxlPSEhYlswXSxlLmNvbG9yUmVzb2x1VGlvbj1wYXJzZUludChiLnNsaWNlKDEsNCkuam9pbigiIiksMikrMSxlLmNvbG9yVGFibGVTb3J0ZWQ9ISFiWzRdO2NvbnN0IHA9cGFyc2VJbnQoYi5zbGljZSg1LDgpLmpvaW4oIiIpLDIpO2UuY29sb3JUYWJsZVNpemU9cD9NYXRoLnBvdygyLHArMSk6MCxlLmJhY2tncm91bmRDb2xvckluZGV4PWwoKSxlLnBpeGVsQXNwZWN0UmF0aW89bCgpLGUuZ2xvYmFsQ29sb3JUYWJsZSYmKGUuY29sb3JUYWJsZVNpemU/ZS5jb2xvclRhYmxlPXIoZS5jb2xvclRhYmxlU2l6ZSk6cygpKSxlLmZyYW1lcz1bXTtsZXQgZj11KCk7Y29uc3QgZz1bXSxDPVtdO2Zvcig7Oyl7Y29uc3QgeT1sKCk7aWYoZy5wdXNoKHkpLHk9PT1lZSl7Zi5sZWZ0PWEoKSxmLnRvcD1hKCksZi53aWR0aD1hKCksZi5oZWlnaHQ9YSgpO2NvbnN0IHc9dCgpO2YubG9jYWxDb2xvclRhYmxlPSEhd1swXSxmLmludGVybGFjZWQ9ISF3WzFdLGYuY29sb3JUYWJsZVNvcnRlZD0hIXdbMl0sZi5yZXNlcnZlZD1wYXJzZUludCh3LnNsaWNlKDMsNSkuam9pbigiIiksMik7Y29uc3QgbT1wYXJzZUludCh3LnNsaWNlKDUsOCkuam9pbigiIiksMik7Zm9yKGYuY29sb3JUYWJsZVNpemU9bT9NYXRoLnBvdygyLG0rMSk6MCxmLmxvY2FsQ29sb3JUYWJsZSYmKGYuY29sb3JUYWJsZT1yKGYuY29sb3JUYWJsZVNpemUpKSxmLmx6d01pbkNvZGVTaXplPWwoKSxmLmltYWdlRGF0YVBvc2l0aW9ucz1bXTs7KXtjb25zdCBTPWwoKTtpZihTPT09MClicmVhaztjb25zdCBJPW8oKTtmLmltYWdlRGF0YVBvc2l0aW9ucy5wdXNoKFtJLFNdKSxpKEkrUyl9ZS5mcmFtZXMucHVzaChmKSxmPXUoKSxmLmluZGV4PWUuZnJhbWVzLmxlbmd0aDtjb250aW51ZX1pZih5PT09dGUpe2NvbnN0IHc9bCgpO2lmKEMucHVzaCh3KSx3PT09VGUpe2lmKGwoKSE9PUFlKWNvbnRpbnVlO2NvbnN0IG09e2lkZW50aWZpZXI6Yyg4KSxjb2RlOmMoMyksZGF0YTpbXX07YCR7bS5pZGVudGlmaWVyfSR7bS5jb2RlfWA9PSJORVRTQ0FQRTIuMCImJmwoKT09PTMmJihlLmxvb3BlZD0hIWwoKSxlLmxvb3BDb3VudD1hKCkpLG0uZGF0YT1zKCksZi5hcHBsaWNhdGlvbj1tO2NvbnRpbnVlfWlmKHc9PT1FZSl7Zi5jb21tZW50PXMoKS5tYXAobT0+U3RyaW5nLmZyb21DaGFyQ29kZShtKSkuam9pbigiIik7Y29udGludWV9aWYodz09PW5lKXtpZihsKCkhPT1yZSljb250aW51ZTtjb25zdCBtPXQoKSxTPXtyZXNlcnZlZDpwYXJzZUludChtLnNsaWNlKDAsMykuam9pbigiIiksMiksZGlzcG9zYWw6cGFyc2VJbnQobS5zbGljZSgzLDYpLmpvaW4oIiIpLDIpLHVzZXJJbnB1dDohIW1bNl0sdHJhbnNwYXJlbnQ6ISFtWzddLGRlbGF5VGltZTphKCksdHJhbnNwYXJlbnRJbmRleDpsKCl9O3MoKSxmLmdyYXBoaWNDb250cm9sPVMsZi5kaXNwb3NhbD1TLmRpc3Bvc2FsLGYuZGVsYXk9KFMuZGVsYXlUaW1lfHwxMCkqMTA7Y29udGludWV9aWYodz09PUJlKXtpZihsKCkhPT1fZSljb250aW51ZTtmLnBsYWluVGV4dD17bGVmdDphKCksdG9wOmEoKSx3aWR0aDphKCksaGVpZ2h0OmEoKSxjZWxsV2lkdGg6bCgpLGNlbGxIZWlnaHQ6bCgpLGNvbG9ySW5kZXg6bCgpLGJhY2tncm91bmRDb2xvckluZGV4OmwoKSxkYXRhOnMoKX07Y29udGludWV9b2UoYFVua25vd24gZXh0ZW5zaW9uIGJsb2NrOiAweCR7dy50b1N0cmluZygxNil9YCxnLnNsaWNlKDAsZy5sZW5ndGgtMSkubWFwKG09PmAweCR7bS50b1N0cmluZygxNil9YCksQy5zbGljZSgwLEMubGVuZ3RoLTEpLm1hcChtPT5gMHgke20udG9TdHJpbmcoMTYpfWApKTtjb250aW51ZX1pZih5PT09TWUpYnJlYWs7b2UoYFVua25vd24gYmxvY2s6IDB4JHt5LnRvU3RyaW5nKDE2KX1gLGcuc2xpY2UoMCxnLmxlbmd0aC0xKS5tYXAodz0+YDB4JHt3LnRvU3RyaW5nKDE2KX1gKSxDLnNsaWNlKDAsQy5sZW5ndGgtMSkubWFwKHc9PmAweCR7dy50b1N0cmluZygxNil9YCkpfXJldHVybiBlfWZ1bmN0aW9uIFBlKG4sZSxvKXtjb25zdCBjPW87bGV0IGEsdCxyLHMsdSxkLGg7Y29uc3QgYj1uZXcgQXJyYXkobykscD1uZXcgQXJyYXkoNDA5NiksZj1uZXcgQXJyYXkoNDA5NiksZz1uZXcgQXJyYXkoNDA5NisxKSxDPW4seT0xPDxDLHc9eSsxO2ZvcihhPXkrMix1PS0xLHI9QysxLHQ9KDE8PHIpLTEsZD0wO2Q8eTtkKyspcFtkXT0wLGZbZF09ZDtsZXQgbSxTLEksVCxFLFA7Zm9yKG09Uz1JPVQ9RT1QPTAsaD0wO2g8Yzspe2lmKFQ9PT0wKXtpZihTPHIpe20rPWVbUF08PFMsUys9OCxQKys7Y29udGludWV9aWYoZD1tJnQsbT4+PXIsUy09cixkPmF8fGQ9PT13KWJyZWFrO2lmKGQ9PT15KXtyPUMrMSx0PSgxPDxyKS0xLGE9eSsyLHU9LTE7Y29udGludWV9aWYodT09PS0xKXtnW1QrK109ZltkXSx1PWQsST1kO2NvbnRpbnVlfWZvcihzPWQsZD09PWEmJihnW1QrK109SSxkPXUpO2Q+eTspZ1tUKytdPWZbZF0sZD1wW2RdO0k9ZltkXSYyNTUsZ1tUKytdPUksYTw0MDk2JiYocFthXT11LGZbYV09SSxhKyssIShhJnQpJiZhPDQwOTYmJihyKyssdCs9YSkpLHU9c31ULS0sYltFKytdPWdbVF0saCsrfWZvcihoPUU7aDxjO2grKyliW2hdPTA7cmV0dXJuIGJ9ZnVuY3Rpb24gJGUobixlKXtjb25zdCBvPW5ldyBBcnJheShuLmxlbmd0aCksaT1uLmxlbmd0aC9lLGw9WzAsNCwyLDFdLGM9WzgsOCw0LDJdO2xldCBhPTA7Zm9yKGxldCB0PTA7dDw0O3QrKylmb3IobGV0IHI9bFt0XTtyPGk7cis9Y1t0XSlvLnNwbGljZS5hcHBseShvLFtyKmUsZV0uY29uY2F0KG4uc2xpY2UoYSplLChhKzEpKmUpKSksYSsrO3JldHVybiBvfWZ1bmN0aW9uIERlKG4pe2NvbnN0IGU9bmV3IE1hcCx7d29ya2VyVXJsOm99PW47bGV0e3dvcmtlck51bWJlcjppPTF9PW47Y29uc3QgbD1bLi4ubmV3IEFycmF5KG8/aTowKV0ubWFwKCgpPT57dHJ5e2NvbnN0IHI9bmV3IFdvcmtlcihvKTtyZXR1cm4gci5vbm1lc3NhZ2U9YyxyfWNhdGNoKHIpe3JldHVybiBudWxsfX0pLmZpbHRlcihCb29sZWFuKTtpPWwubGVuZ3RoO2Z1bmN0aW9uIGMocil7dmFyIGQ7Y29uc3R7aWQ6cyxkYXRhOnV9PXIuZGF0YTsoZD1lLmdldChzKSk9PW51bGx8fGQodSksZS5kZWxldGUocyl9Y29uc3QgYT1mdW5jdGlvbigpe2xldCByPTA7cmV0dXJuIHM9PmxbKHMhPW51bGw/czpyKyspJWldfSgpO3JldHVybntjYWxsOmZ1bmN0aW9uKCl7bGV0IHI9MDtyZXR1cm4ocyx1LGQsaCk9Pm5ldyBQcm9taXNlKGI9Pntjb25zdCBwPWEoaCk7aWYoIXApcmV0dXJuIGIodm9pZCAwKTtlLnNldChyLGIpLHAucG9zdE1lc3NhZ2Uoe2lkOnIrKyx0eXBlOnMsZGF0YTp1fSx7dHJhbnNmZXI6ZH0pfSl9KCl9fWZ1bmN0aW9uIFhlKG4sZSl7Y29uc3Qgbz1hZShuLCJ1aW50OEFycmF5Iik7aWYoZSE9bnVsbCYmZS53b3JrZXJVcmwpcmV0dXJuIERlKHt3b3JrZXJVcmw6ZS53b3JrZXJVcmx9KS5jYWxsKCJmcmFtZXM6ZGVjb2RlIixvLFtvLmJ1ZmZlcl0pO2NvbnN0e2dpZjppPU9lKG4pLHJhbmdlOmx9PWUhPW51bGw/ZTp7fSx7d2lkdGg6YyxoZWlnaHQ6YSxjb2xvclRhYmxlOnQsZnJhbWVzOnJ9PWkscz1sP3Iuc2xpY2UobFswXSxsWzFdKzEpOnIsdT1uZXcgVWludDhDbGFtcGVkQXJyYXkoYyphKjQpO2xldCBkO3JldHVybiBzLm1hcChoPT57dmFyIGxlO2NvbnN0e2xlZnQ6Yix0b3A6cCx3aWR0aDpmLGhlaWdodDpnLGludGVybGFjZWQ6Qyxsb2NhbENvbG9yVGFibGU6eSxjb2xvclRhYmxlOncsbHp3TWluQ29kZVNpemU6bSxpbWFnZURhdGFQb3NpdGlvbnM6UyxncmFwaGljQ29udHJvbDpJLGRpc3Bvc2FsOlQsZGVsYXk6RX09aCxQPXArZyx7dHJhbnNwYXJlbnQ6S2UsdHJhbnNwYXJlbnRJbmRleDpWZX09SSE9bnVsbD9JOnt9LFc9eT93OnQsamU9S2U/VmU6LTEsWmU9dmUoUy5tYXAoKFtNLFVdKT0+by5zdWJhcnJheShNLE0rVSkpKTtsZXQgSz1QZShtLFplLGYqZyk7aWYoQyYmKEs9JGUoSyxmKSksKGQ9PW51bGw/dm9pZCAwOmQuZGlzcG9zYWwpIT09MSl7Y29uc3R7bGVmdDpNPTAsdG9wOlU9MCx3aWR0aDpWPWMsaGVpZ2h0Ok89YX09ZCE9bnVsbD9kOnt9LFg9VStPO2ZvcihsZXQgJD1VOyQ8WDskKyspe2NvbnN0IGo9JCpjK007Zm9yKGxldCBEPTA7RDxWO0QrKyl7Y29uc3Qgdj0oaitEKSo0O3Vbdl09dVt2KzFdPXVbdisyXT11W3YrM109MH19fWZvcihsZXQgTT1wO008UDtNKyspe2NvbnN0IFU9TSpjK2IsVj0oTS1wKSpmO2ZvcihsZXQgTz0wO088ZjtPKyspe2NvbnN0IFg9S1tWK09dO2lmKFg9PT1qZSljb250aW51ZTtjb25zdFskLGosRF09KGxlPVc9PW51bGw/dm9pZCAwOldbWF0pIT1udWxsP2xlOlswLDAsMF0sdj0oVStPKSo0O3Vbdl09JCx1W3YrMV09aix1W3YrMl09RCx1W3YrM109MjU1fX1yZXR1cm4gVCE9PTMmJihkPWgpLHt3aWR0aDpjLGhlaWdodDphLGRlbGF5OkUsaW1hZ2VEYXRhOnUuc2xpY2UoMCl9fSl9ZnVuY3Rpb24gTGUobixlLG8pe2NvbnN0e3dyaXRlQnl0ZTppLGdldEN1cnNvcjpsLGNhbGN1bGF0ZURpc3RhbmNlOmN9PW87aShuKTtsZXQgYT1sKCk7aSgwKTtjb25zdCB0PTE8PG4scj10LTEscz10KzE7bGV0IHU9cysxLGQ9bisxLGg9MCxiPTA7ZnVuY3Rpb24gcChTKXtmb3IoO2g+PVM7KWkoYiYyNTUpLGI+Pj04LGgtPTgsYyhhKT09PTI1NiYmKGkoMjU1LGEpLGE9bCgpLGkoMCkpfWZ1bmN0aW9uIGYoUyl7Ynw9Uzw8aCxoKz1kLHAoOCl9bGV0IGc9ZVswXSZyLEM9e30seSx3LG07Zih0KTtmb3IobGV0IFM9ZS5sZW5ndGgsST0xO0k8UzsrK0kpaWYobT1lW0ldJnIseT1nPDw4fG0sdz1DW3ldLHc9PT12b2lkIDApe2ZvcihifD1nPDxoLGgrPWQ7aD49ODspaShiJjI1NSksYj4+PTgsaC09OCxjKGEpPT09MjU2JiYoaSgyNTUsYSksYT1sKCksaSgwKSk7dT09PTQwOTY/KGYodCksdT1zKzEsZD1uKzEsQz17fSk6KHU+PTE8PGQmJisrZCxDW3ldPXUrKyksZz1tfWVsc2UgZz13O2YoZyksZihzKSxwKDEpLGMoYSk9PT0xP2koMCxhKTooaShjKGEpLTEsYSksaSgwKSl9ZnVuY3Rpb24gUmUobj17fSl7Y29uc3R7Y2h1bmtTaXplOmU9NDA5Nn09bjtsZXQgbz1bbmV3IFVpbnQ4QXJyYXkoZSldLGk9MCxsPTA7Y29uc3QgYz0odCxyKT0+e3I/b1tyWzBdXVtyWzFdXT10OihsPj1lJiYob1srK2ldPW5ldyBVaW50OEFycmF5KGUpLGw9MCksb1tpXVtsKytdPXQpfSxhPXQ9PnQuZm9yRWFjaChyPT5jKHIpKTtyZXR1cm57Z2V0Q3Vyc29yOigpPT5baSxsXSxzZXRDdXJzb3I6dD0+e2k9dFswXSxsPXRbMV19LGNhbGN1bGF0ZURpc3RhbmNlOnQ9PmkqZStsLSh0WzBdKmUrdFsxXSksd3JpdGVCeXRlOmMsd3JpdGVCeXRlczphLHdyaXRlU3RyaW5nOnQ9PnQuc3BsaXQoIiIpLmZvckVhY2goKHIscyk9PmModC5jaGFyQ29kZUF0KHMpKSksd3JpdGVVbnNpZ25lZDp0PT5hKFt0JjI1NSx0Pj44JjI1NV0pLGZsdXNoOigpPT57b1tpXT1vW2ldLnNsaWNlKDAsbCk7Y29uc3QgdD1uZXcgVWludDhBcnJheShvLnJlZHVjZSgocyx1KT0+cyt1LmJ5dGVMZW5ndGgsMCkpO2xldCByPTA7cmV0dXJuIG8uZm9yRWFjaChzPT57dC5zZXQocyxyKSxyKz1zLmJ5dGVMZW5ndGh9KSxvPVtuZXcgVWludDhBcnJheShlKV0saT0wLGw9MCx0fX19ZnVuY3Rpb24gemUobil7dmFyIEMseSx3O2NvbnN0IGU9UmUoKSx7d3JpdGVCeXRlOm8sd3JpdGVCeXRlczppLHdyaXRlVW5zaWduZWQ6bCxmbHVzaDpjfT1lLHtsZWZ0OmE9MCx0b3A6dD0wLHdpZHRoOnI9MCxoZWlnaHQ6cz0wLGRlbGF5OnU9MTAwLGNvbG9yVGFibGU6ZH09bjtsZXR7ZGlzcG9zYWw6aD0wfT1uO2NvbnN0IGI9KEM9bi5ncmFwaGljQ29udHJvbCk9PW51bGw/dm9pZCAwOkMudHJhbnNwYXJlbnQ7bGV0IHA9KHc9KHk9bi5ncmFwaGljQ29udHJvbCk9PW51bGw/dm9pZCAwOnkudHJhbnNwYXJlbnRJbmRleCkhPW51bGw/dzoyNTU7aWYoYTwwfHxhPjY1NTM1KXRocm93IG5ldyBFcnJvcigiTGVmdCBpbnZhbGlkLiIpO2lmKHQ8MHx8dD42NTUzNSl0aHJvdyBuZXcgRXJyb3IoIlRvcCBpbnZhbGlkLiIpO2lmKHI8PTB8fHI+NjU1MzUpdGhyb3cgbmV3IEVycm9yKCJXaWR0aCBpbnZhbGlkLiIpO2lmKHM8PTB8fHM+NjU1MzUpdGhyb3cgbmV3IEVycm9yKCJIZWlnaHQgaW52YWxpZC4iKTtsZXQgZj04LGc9ZD9kLmxlbmd0aDowO2lmKGcpe2lmKGc8Mnx8Zz4yNTZ8fGcmZy0xKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2xvciB0YWJsZSBsZW5ndGgsIG11c3QgYmUgcG93ZXIgb2YgMiBhbmQgMiAuLiAyNTYuIik7Zm9yKDtnPj49MTspKytmfXJldHVybiBvKHRlKSxvKG5lKSxvKHJlKSxiP2h8fChoPTIpOnA9MCxvKHBhcnNlSW50KGAwMDAke051bWJlcihoJjcpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDMsIjAiKX0wJHtiPzE6MH1gLDIpKSxsKHUvMTApLG8ocCksbygwKSxvKGVlKSxsKGEpLGwodCksbChyKSxsKHMpLGQhPW51bGwmJmQubGVuZ3RoPyhvKHBhcnNlSW50KGAxMDAwMCR7KGYtMSkudG9TdHJpbmcoMikucGFkU3RhcnQoMywiMCIpfWAsMikpLGkoZC5mbGF0KCkpKTpvKDApLExlKGYsbi5pbWFnZURhdGEsZSksYygpfWZ1bmN0aW9uIEZlKG4pe2NvbnN0e2ZyYW1lczplLHBhbGV0dGU6byx0cmFuc3BhcmVudEluZGV4Oml9PW4sbD1ZKG8pO3JldHVybiBlLm1hcCgoe2ltYWdlRGF0YTpjfSk9PntsZXQgYT0hMTtjb25zdCB0PW5ldyBVaW50OENsYW1wZWRBcnJheShjLmxlbmd0aC80KTtmb3IobGV0IHI9Yy5sZW5ndGgscz0wO3M8cjtzKz00KWNbcyszXT09PTA/KHRbcy80XT1pLGE9ITApOnRbcy80XT1sKGNbc108PDE2fGNbcysxXTw8OHxjW3MrMl0pO3JldHVybntpbWFnZURhdGE6dCx0cmFuc3BhcmVudDphfX0pfWZ1bmN0aW9uIFdlKG4pe2NvbnN0e2ZyYW1lczplLHRyYW5zcGFyZW50SW5kZXg6b309bjtsZXQgaTtjb25zdCBsPWUubGVuZ3RoO3JldHVybiBlLm1hcCgoYyxhKT0+e2NvbnN0e3dpZHRoOnQsaGVpZ2h0OnIsdHJhbnNwYXJlbnQ6cyxpbWFnZURhdGE6dX09YztsZXQgZD0wLGg9MCxiPXQtMSxwPXItMSxmO2lmKHMpe2Zvcig7aDxwOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKylpZih1W3QqaCttXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7aCsrfWZvcig7cD5oOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKylpZih1W3QqcCttXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7cC0tfWZvcig7ZDxiOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTxwO20rKylpZih1W3QqbStkXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7ZCsrfWZvcig7Yj5kOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTxwO20rKylpZih1W3QqbStiXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7Yi0tfX1lbHNle2lmKGkpe2Zvcig7aDxwOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKyl7Y29uc3QgUz10KmgrbTtpZih1W1NdIT09aVtTXSl7dz0hMTticmVha319aWYoIXcpYnJlYWs7aCsrfWZvcig7cD5oOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKyl7Y29uc3QgUz10KnArbTtpZih1W1NdIT09aVtTXSl7dz0hMTticmVha319aWYoIXcpYnJlYWs7cC0tfWlmKGg9PT1wKWQ9YjtlbHNle2Zvcig7ZDxiOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTw9cDttKyspe2NvbnN0IFM9bSp0K2Q7aWYodVtTXSE9PWlbU10pe3c9ITE7YnJlYWt9fWlmKCF3KWJyZWFrO2QrK31mb3IoO2I+ZDspe2xldCB3PSEwO2ZvcihsZXQgbT1oO208PXA7bSsrKXtjb25zdCBTPW0qdCtiO2lmKHVbU10hPT1pW1NdKXt3PSExO2JyZWFrfX1pZighdylicmVhaztiLS19fX1mPWksaT11fWNvbnN0IGc9YisxLWQsQz1wKzEtaCx5PU5lKHUse2xlZnQ6ZCx0b3A6aCx3aWR0aDpnLGhlaWdodDpDLHJhd1dpZHRoOnQscmF0ZToxLGNhbGxiYWNrOnc9PntpZighcyYmZiYmdVt3XT09PWZbd10pcmV0dXJuIG99fSk7cmV0dXJue2xlZnQ6ZCx0b3A6aCx3aWR0aDpnLGhlaWdodDpDLGRpc3Bvc2FsOnMmJmEhPT1sLTE/MjoxLGltYWdlRGF0YTp5fX0pfWNvbnN0IE49Q2Uoe3NraXBUcmFuc3BhcmVudDohMX0pO3NlbGYub25tZXNzYWdlPW49Pntjb25zdHtpZDplLHR5cGU6byxkYXRhOml9PW4uZGF0YTtpZihvPT09InBhbGV0dGU6YWRkU2FtcGxlIiYmTilyZXR1cm4gTi5hZGRTYW1wbGUoaSksc2VsZi5wb3N0TWVzc2FnZSh7aWQ6ZSx0eXBlOm8sZGF0YTohMH0pO2lmKG89PT0icGFsZXR0ZTpnZW5lcmF0ZSImJk4pe04uZ2VuZXJhdGUoaSk7Y29uc3QgbD1aKHt9LE4uY29udGV4dCk7cmV0dXJuIE4ucmVzZXQoKSxzZWxmLnBvc3RNZXNzYWdlKHtpZDplLHR5cGU6byxkYXRhOmx9KX1pZihvPT09ImZyYW1lczppbmRleCIpe2NvbnN0IGw9RmUoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9aWYobz09PSJmcmFtZXM6Y3JvcCIpe2NvbnN0IGw9V2UoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9aWYobz09PSJmcmFtZTplbmNvZGUiKXtjb25zdCBsPXplKGkpO3JldHVybiBzZWxmLnBvc3RNZXNzYWdlKHtpZDplLHR5cGU6byxkYXRhOmx9LFtsLmJ1ZmZlcl0pfWlmKG89PT0iZnJhbWVzOmRlY29kZSIpe2NvbnN0IGw9WGUoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9fX0pKCk7Cg==", dn = (t) => Se(void 0, null, function* () {
2401
+ const kr = "data:application/javascript;base64,dmFyIEdlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgc2U9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczt2YXIgSGU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxxZT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO3ZhciBBPU1hdGgucG93LGllPShCLHgsayk9PnggaW4gQj9HZShCLHgse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmt9KTpCW3hdPWssWj0oQix4KT0+e2Zvcih2YXIgayBpbiB4fHwoeD17fSkpSGUuY2FsbCh4LGspJiZpZShCLGsseFtrXSk7aWYoc2UpZm9yKHZhciBrIG9mIHNlKHgpKXFlLmNhbGwoeCxrKSYmaWUoQixrLHhba10pO3JldHVybiBCfTsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y29uc3QgQj10eXBlb2Ygd2luZG93PCJ1Iix4PTY1NTM2LTEsaz14KngsY2U9NTEyLTEsTD1bMCwyMCw0MCw2MCw4MCw5OSwxMTksMTM5LDE1OSwxNzksMTk5LDIxOSwyNDEsMjY0LDI4OCwzMTMsMzQwLDM2NywzOTYsNDI3LDQ1OCw0OTEsNTI2LDU2Miw1OTksNjM3LDY3Nyw3MTgsNzYxLDgwNSw4NTEsODk4LDk0Nyw5OTcsMTA0OCwxMTAxLDExNTYsMTIxMiwxMjcwLDEzMzAsMTM5MSwxNDUzLDE1MTcsMTU4MywxNjUxLDE3MjAsMTc5MCwxODYzLDE5MzcsMjAxMywyMDkwLDIxNzAsMjI1MCwyMzMzLDI0MTgsMjUwNCwyNTkyLDI2ODEsMjc3MywyODY2LDI5NjEsMzA1OCwzMTU3LDMyNTgsMzM2MCwzNDY0LDM1NzAsMzY3OCwzNzg4LDM5MDAsNDAxNCw0MTI5LDQyNDcsNDM2Niw0NDg4LDQ2MTEsNDczNiw0ODY0LDQ5OTMsNTEyNCw1MjU3LDUzOTIsNTUzMCw1NjY5LDU4MTAsNTk1Myw2MDk5LDYyNDYsNjM5NSw2NTQ3LDY3MDAsNjg1Niw3MDE0LDcxNzQsNzMzNSw3NTAwLDc2NjYsNzgzNCw4MDA0LDgxNzcsODM1Miw4NTI4LDg3MDgsODg4OSw5MDcyLDkyNTgsOTQ0NSw5NjM1LDk4MjgsMTAwMjIsMTAyMTksMTA0MTcsMTA2MTksMTA4MjIsMTEwMjgsMTEyMzUsMTE0NDYsMTE2NTgsMTE4NzMsMTIwOTAsMTIzMDksMTI1MzAsMTI3NTQsMTI5ODAsMTMyMDksMTM0NDAsMTM2NzMsMTM5MDksMTQxNDYsMTQzODcsMTQ2MjksMTQ4NzQsMTUxMjIsMTUzNzEsMTU2MjMsMTU4NzgsMTYxMzUsMTYzOTQsMTY2NTYsMTY5MjAsMTcxODcsMTc0NTYsMTc3MjcsMTgwMDEsMTgyNzcsMTg1NTYsMTg4MzcsMTkxMjEsMTk0MDcsMTk2OTYsMTk5ODcsMjAyODEsMjA1NzcsMjA4NzYsMjExNzcsMjE0ODEsMjE3ODcsMjIwOTYsMjI0MDcsMjI3MjEsMjMwMzgsMjMzNTcsMjM2NzgsMjQwMDIsMjQzMjksMjQ2NTgsMjQ5OTAsMjUzMjUsMjU2NjIsMjYwMDEsMjYzNDQsMjY2ODgsMjcwMzYsMjczODYsMjc3MzksMjgwOTQsMjg0NTIsMjg4MTMsMjkxNzYsMjk1NDIsMjk5MTEsMzAyODIsMzA2NTYsMzEwMzMsMzE0MTIsMzE3OTQsMzIxNzksMzI1NjcsMzI5NTcsMzMzNTAsMzM3NDUsMzQxNDMsMzQ1NDQsMzQ5NDgsMzUzNTUsMzU3NjQsMzYxNzYsMzY1OTEsMzcwMDgsMzc0MjksMzc4NTIsMzgyNzgsMzg3MDYsMzkxMzgsMzk1NzIsNDAwMDksNDA0NDksNDA4OTEsNDEzMzcsNDE3ODUsNDIyMzYsNDI2OTAsNDMxNDcsNDM2MDYsNDQwNjksNDQ1MzQsNDUwMDIsNDU0NzMsNDU5NDcsNDY0MjMsNDY5MDMsNDczODUsNDc4NzEsNDgzNTksNDg4NTAsNDkzNDQsNDk4NDEsNTAzNDEsNTA4NDQsNTEzNDksNTE4NTgsNTIzNjksNTI4ODQsNTM0MDEsNTM5MjEsNTQ0NDUsNTQ5NzEsNTU1MDAsNTYwMzIsNTY1NjcsNTcxMDUsNTc2NDYsNTgxOTAsNTg3MzcsNTkyODcsNTk4NDAsNjAzOTYsNjA5NTUsNjE1MTcsNjIwODIsNjI2NTAsNjMyMjEsNjM3OTUsNjQzNzIsNjQ5NTIsNjU1MzVdLEc9WzAsNiwxMywxOCwyMiwyNSwyOCwzMSwzNCwzNiwzOCw0MCw0Miw0NCw0Niw0OCw1MCw1MSw1Myw1NCw1Niw1Nyw1OSw2MCw2MSw2Miw2NCw2NSw2Niw2Nyw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Niw4Nyw4OCw4OSw5MCw5MSw5MSw5Miw5Myw5NCw5NSw5NSw5Niw5Nyw5OCw5OCw5OSwxMDAsMTAxLDEwMSwxMDIsMTAzLDEwMywxMDQsMTA1LDEwNiwxMDYsMTA3LDEwOCwxMDgsMTA5LDExMCwxMTAsMTExLDExMSwxMTIsMTEzLDExMywxMTQsMTE1LDExNSwxMTYsMTE2LDExNywxMTgsMTE4LDExOSwxMTksMTIwLDEyMSwxMjEsMTIyLDEyMiwxMjMsMTIzLDEyNCwxMjUsMTI1LDEyNiwxMjYsMTI3LDEyNywxMjgsMTI4LDEyOSwxMjksMTMwLDEzMCwxMzEsMTMyLDEzMiwxMzMsMTMzLDEzNCwxMzQsMTM1LDEzNSwxMzYsMTM2LDEzNywxMzcsMTM4LDEzOCwxMzksMTM5LDE0MCwxNDAsMTQwLDE0MSwxNDEsMTQyLDE0MiwxNDMsMTQzLDE0NCwxNDQsMTQ1LDE0NSwxNDYsMTQ2LDE0NywxNDcsMTQ3LDE0OCwxNDgsMTQ5LDE0OSwxNTAsMTUwLDE1MSwxNTEsMTUxLDE1MiwxNTIsMTUzLDE1MywxNTQsMTU0LDE1NCwxNTUsMTU1LDE1NiwxNTYsMTU2LDE1NywxNTcsMTU4LDE1OCwxNTksMTU5LDE1OSwxNjAsMTYwLDE2MSwxNjEsMTYxLDE2MiwxNjIsMTYzLDE2MywxNjMsMTY0LDE2NCwxNjUsMTY1LDE2NSwxNjYsMTY2LDE2NiwxNjcsMTY3LDE2OCwxNjgsMTY4LDE2OSwxNjksMTY5LDE3MCwxNzAsMTcxLDE3MSwxNzEsMTcyLDE3MiwxNzIsMTczLDE3MywxNzQsMTc0LDE3NCwxNzUsMTc1LDE3NSwxNzYsMTc2LDE3NiwxNzcsMTc3LDE3NywxNzgsMTc4LDE3OSwxNzksMTc5LDE4MCwxODAsMTgwLDE4MSwxODEsMTgxLDE4MiwxODIsMTgyLDE4MywxODMsMTgzLDE4NCwxODQsMTg0LDE4NSwxODUsMTg1LDE4NiwxODYsMTg2LDE4NywxODcsMTg3LDE4OCwxODgsMTg4LDE4OSwxODksMTg5LDE5MCwxOTAsMTkwLDE5MSwxOTEsMTkxLDE5MiwxOTIsMTkyLDE5MywxOTMsMTkzLDE5MywxOTQsMTk0LDE5NCwxOTUsMTk1LDE5NSwxOTYsMTk2LDE5NiwxOTcsMTk3LDE5NywxOTgsMTk4LDE5OCwxOTgsMTk5LDE5OSwxOTksMjAwLDIwMCwyMDAsMjAxLDIwMSwyMDEsMjAxLDIwMiwyMDIsMjAyLDIwMywyMDMsMjAzLDIwNCwyMDQsMjA0LDIwNCwyMDUsMjA1LDIwNSwyMDYsMjA2LDIwNiwyMDYsMjA3LDIwNywyMDcsMjA4LDIwOCwyMDgsMjA4LDIwOSwyMDksMjA5LDIxMCwyMTAsMjEwLDIxMCwyMTEsMjExLDIxMSwyMTIsMjEyLDIxMiwyMTIsMjEzLDIxMywyMTMsMjE0LDIxNCwyMTQsMjE0LDIxNSwyMTUsMjE1LDIxNSwyMTYsMjE2LDIxNiwyMTcsMjE3LDIxNywyMTcsMjE4LDIxOCwyMTgsMjE4LDIxOSwyMTksMjE5LDIyMCwyMjAsMjIwLDIyMCwyMjEsMjIxLDIyMSwyMjEsMjIyLDIyMiwyMjIsMjIyLDIyMywyMjMsMjIzLDIyNCwyMjQsMjI0LDIyNCwyMjUsMjI1LDIyNSwyMjUsMjI2LDIyNiwyMjYsMjI2LDIyNywyMjcsMjI3LDIyNywyMjgsMjI4LDIyOCwyMjgsMjI5LDIyOSwyMjksMjI5LDIzMCwyMzAsMjMwLDIzMCwyMzEsMjMxLDIzMSwyMzEsMjMyLDIzMiwyMzIsMjMyLDIzMywyMzMsMjMzLDIzMywyMzQsMjM0LDIzNCwyMzQsMjM1LDIzNSwyMzUsMjM1LDIzNiwyMzYsMjM2LDIzNiwyMzcsMjM3LDIzNywyMzcsMjM4LDIzOCwyMzgsMjM4LDIzOSwyMzksMjM5LDIzOSwyMzksMjQwLDI0MCwyNDAsMjQwLDI0MSwyNDEsMjQxLDI0MSwyNDIsMjQyLDI0MiwyNDIsMjQzLDI0MywyNDMsMjQzLDI0MywyNDQsMjQ0LDI0NCwyNDQsMjQ1LDI0NSwyNDUsMjQ1LDI0NiwyNDYsMjQ2LDI0NiwyNDYsMjQ3LDI0NywyNDcsMjQ3LDI0OCwyNDgsMjQ4LDI0OCwyNDksMjQ5LDI0OSwyNDksMjQ5LDI1MCwyNTAsMjUwLDI1MCwyNTEsMjUxLDI1MSwyNTEsMjUxLDI1MiwyNTIsMjUyLDI1MiwyNTMsMjUzLDI1MywyNTMsMjUzLDI1NCwyNTQsMjU0LDI1NCwyNTUsMjU1LDI1NV07ZnVuY3Rpb24gUihuKXtsZXQgZTtpZihuPD0wKXJldHVybiAwO2lmKG4+PXgpcmV0dXJuIHg7ZT1uKihuKihuKy0xNDQxMDcpL3grMTMyMTE0KS94KzE0Mzc5O2ZvcihsZXQgbz0wO288MjtvKyspe2NvbnN0IGk9ZSplKmUsbD1uKygyKmkray8yKS9rO2U9KGUqKDIqbisoaStrLzIpL2spK2wvMikvbH1yZXR1cm4gZX1mdW5jdGlvbiBfKG4sZSl7cmV0dXJuKG5eZSk8MD8obi1lLzIpL2U6KG4rZS8yKS9lfWZ1bmN0aW9uIEgobil7Y29uc3QgZT1MW24+PjE2JjI1NV0sbz1MW24+PjgmMjU1XSxpPUxbbiYyNTVdLGw9KDI3MDE1KmUrMzUxNDkqbyszMzcyKmkreC8yKS94LGM9KDEzODg3KmUrNDQ2MTAqbys3MDM4KmkreC8yKS94LGE9KDU3ODcqZSsxODQ2MipvKzQxMjg2KmkreC8yKS94LHQ9UihsKSxyPVIoYykscz1SKGEpO3JldHVybltfKDEzNzkyKnQrNTIwMTAqci0yNjcqcyx4KSxfKDEyOTYyOCp0LTE1OTE1OCpyKzI5NTMwKnMseCksXygxNjk4KnQrNTEyOTkqci01Mjk5NypzLHgpXX1mdW5jdGlvbiB6KG4pe2lmKG48PTApcmV0dXJuIDA7aWYobj49eClyZXR1cm4gMjU1O3tjb25zdCBlPW4qY2Usbz1+fihlL3gpLGk9ZSV4LGw9R1tvXSxjPUdbbysxXTtyZXR1cm4oaSooYy1sKSt4LzIpL3grbH19ZnVuY3Rpb24gZmUobil7Y29uc3QgZT1uWzBdK18oMjU5NzQqblsxXSx4KStfKDE0MTQzKm5bMl0seCksbz1uWzBdK18oLTY5MTgqblsxXSx4KStfKC00MTg1Km5bMl0seCksaT1uWzBdK18oLTU4NjQqblsxXSx4KStfKC04NDYzOCpuWzJdLHgpLGw9QShlLDIpKmUvayxjPUEobywyKSpvL2ssYT1BKGksMikqaS9rLHQ9eigoMjY3MTY5KmwrLTIxNjc3MSpjKzE1MTM3KmEreC8yKS94KSxyPXooKC04MzEyNypsKzE3MTAzMCpjKy0yMjM2OCphK3gvMikveCkscz16KCgtMjc1KmwrLTQ2MDk5KmMrMTExOTA5KmEreC8yKS94KTtyZXR1cm4gdDw8MTZ8cjw8OHxzfWZ1bmN0aW9uIGRlKG4pe2NvbnN0IGU9e2w6MCxhOjEsYjoyfSxvPW5bMF0saT1uWzFdLGw9blsyXSxjPWVbb10sYT1lW2ldLHQ9ZVtsXTtyZXR1cm4ocixzKT0+ci5va2xhYltjXS1zLm9rbGFiW2NdfHxyLm9rbGFiW2FdLXMub2tsYWJbYV18fHIub2tsYWJbdF0tcy5va2xhYlt0XX1mdW5jdGlvbiB1ZShuLGUsbyl7cmV0dXJuIG4+PWU/ZT49bz8ibGFiIjpuPj1vPyJsYmEiOiJibGEiOm4+PW8/ImFsYiI6ZT49bz8iYWJsIjoiYmFsIn1mdW5jdGlvbiBoZShuKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2NvbnN0IG89bmV3IEltYWdlO28uZGVjb2Rpbmc9InN5bmMiLG8ubG9hZGluZz0iZWFnZXIiLG8uY3Jvc3NPcmlnaW49ImFub255bW91cyIsby5vbmxvYWQ9KCk9PmUobyksby5vbmVycm9yPSgpPT5lKG8pLG8uc3JjPW59KX1mdW5jdGlvbiBxKG4pe3JldHVybiBuJiZ0eXBlb2Ygbj09Im9iamVjdCImJiJfX0NPTlRFWFRfXyJpbiBufWZ1bmN0aW9uIGdlKG4pe3JldHVybiBxKG4pP246cGUobil9ZnVuY3Rpb24gcGUobj17fSl7Y29uc3R7bWF4Q29sb3JzOmU9MjU2LHN0YXRzTW9kZTpvPSJmdWxsIixzYW1wbGVzOmk9W10sc2tpcFRyYW5zcGFyZW50Omw9ITB9PW47cmV0dXJue19fQ09OVEVYVF9fOiEwLHNhbXBsZXM6aSxtYXhDb2xvcnM6ZSxzdGF0c01vZGU6byxza2lwVHJhbnNwYXJlbnQ6bCxjb2xvclNhbXBsZXM6W10sY29sb3JTYW1wbGVzQ2FjaGU6bmV3IE1hcCxjb2xvckJveGVzOltdLGNvbG9yQm94ZXNJbmRleFRyZWU6W10sZmluZGVyQ2FjaGU6bmV3IE1hcH19ZnVuY3Rpb24gWShuKXtjb25zdCBlPXEobik/bjpuLmNvbnRleHQse2NvbG9yQm94ZXNJbmRleFRyZWU6byxmaW5kZXJDYWNoZTppfT1lO2Z1bmN0aW9uIGwoYSx0LHIpe2NvbnN0e2xlZnQ6cyxyaWdodDp1LGxvbmdlc3Q6ZCxva2xhYjpoLGNvbG9yQm94SW5kZXg6Yn09b1thXSxwPU1hdGgubWluKEEodFswXS1oWzBdLDIpK0EodFsxXS1oWzFdLDIpK0EodFsyXS1oWzJdLDIpLDQyOTQ5NjcyOTUtMSk7cDxyLmRpc3QmJihyLmNvbG9yQm94SW5kZXg9YixyLmRpc3Q9cCk7bGV0IGYsZztpZihzIT09LTF8fHUhPT0tMSl7Y29uc3QgQz10W2RdLWhbZF07Qzw9MD8oZj1zLGc9dSk6KGY9dSxnPXMpLGYhPT0tMSYmbChmLHQsciksZyE9PS0xJiZBKEMsMik8ci5kaXN0JiZsKGcsdCxyKX19ZnVuY3Rpb24gYyhhKXtjb25zdCB0PXtkaXN0Ok51bWJlci5NQVhfU0FGRV9JTlRFR0VSLGNvbG9yQm94SW5kZXg6LTF9O3JldHVybiBsKDAsYSx0KSx0LmNvbG9yQm94SW5kZXh9cmV0dXJuIGE9Pntjb25zdCB0PWElMzI3Njg7bGV0IHI9aS5nZXQodCk7cnx8KHI9bmV3IE1hcCxpLnNldCh0LHIpKTtsZXQgcz1yLmdldChhKTtyZXR1cm4gcyE9PXZvaWQgMHx8KHM9YyhIKGEpKSxyLnNldChhLHMpKSxzfX1mdW5jdGlvbiBtZShuLGUpe2NvbnN0e2NvbG9yQm94ZXM6b309bixpPW8ucmVkdWNlKChhLHQpPT5hK3Qud2VpZ2h0LDApO2lmKCFlKXJldHVybiBuLmNvbG9yQm94ZXMubWFwKGE9Pntjb25zdHtzcmdiOnQsd2VpZ2h0OnJ9PWE7cmV0dXJue3ZhbHVlOnQscGVyY2VudGFnZTpyL2l9fSk7Y29uc3QgbD1bXTtmb3IobGV0IGE9by5sZW5ndGgsdD0wO3Q8YTt0Kyspe2NvbnN0e3NyZ2I6cix3ZWlnaHQ6c309b1t0XTtsLnB1c2goe3ZhbHVlOltyPj4xNiYyNTUscj4+OCYyNTUsciYyNTVdLHBlcmNlbnRhZ2U6cy9pfSl9bGV0IGM7aWYoZT09PSJidWZmZXIiKXtjPW5ldyBVaW50OENsYW1wZWRBcnJheShsLmxlbmd0aCo0KTtmb3IobGV0IGE9bC5sZW5ndGgsdD0wO3Q8YTt0Kyspe2NvbnN0IHI9dCo0LHM9bFt0XS52YWx1ZTtjW3JdPXNbMF0sY1tyKzFdPXNbMV0sY1tyKzJdPXNbMl0sY1tyKzNdPTI1NX19ZWxzZSBpZihlPT09ImhleCIpe2M9W107Zm9yKGxldCBhPWwubGVuZ3RoLHQ9MDt0PGE7dCsrKXtjb25zdHt2YWx1ZTpyLHBlcmNlbnRhZ2U6c309bFt0XSx1PXJbMF0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSxkPXJbMV0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSxoPXJbMl0udG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKTtjLnB1c2goe3ZhbHVlOmAjJHt1fSR7ZH0ke2h9YCxwZXJjZW50YWdlOnN9KX19ZWxzZSBjPWw7cmV0dXJuIGN9ZnVuY3Rpb24gRihuLGUsbyl7dmFyIHUsZCxoLGI7Y29uc3R7Z2V0Q29udGV4dDJkOmkscHJldmlvdXNTYW1wbGU6bCxza2lwVHJhbnNwYXJlbnQ6Y309byx7c3RhdHNNb2RlOmEsY29sb3JTYW1wbGVzOnQsY29sb3JTYW1wbGVzQ2FjaGU6cn09bjtsZXQgcztpZihBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpcz1uZXcgVWludDhDbGFtcGVkQXJyYXkoZS5idWZmZXIpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXM9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlKSlpZihBcnJheS5pc0FycmF5KGVbMF0pKXtjb25zdCBwPVtdO2ZvcihsZXQgZj1lLmxlbmd0aCxnPTA7ZzxmO2crKylwLnB1c2goKHU9ZVtnXVswXSkhPW51bGw/dTowLChkPWVbZ11bMV0pIT1udWxsP2Q6MCwoaD1lW2ddWzJdKSE9bnVsbD9oOjAsKGI9ZVtnXVszXSkhPW51bGw/YjoyNTUpO3M9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHApfWVsc2Ugcz1uZXcgVWludDhDbGFtcGVkQXJyYXkoZSk7ZWxzZSBpZih0eXBlb2YgZT09InN0cmluZyIpe2NvbnN0IHA9aT09bnVsbD92b2lkIDA6aSgpO2lmKCFwKXJldHVybjtjb25zdCBmPXAuY2FudmFzO3JldHVybiBoZShlKS50aGVuKGc9PihwLmNsZWFyUmVjdCgwLDAsZi53aWR0aCxmLmhlaWdodCksZi53aWR0aD1nLndpZHRoLGYuaGVpZ2h0PWcuaGVpZ2h0LHAuZHJhd0ltYWdlKGcsMCwwLGYud2lkdGgsZi5oZWlnaHQpLEYobixwLmdldEltYWdlRGF0YSgwLDAsZi53aWR0aCxmLmhlaWdodCkuZGF0YSxvKSkpfWVsc2V7Y29uc3QgcD1pPT1udWxsP3ZvaWQgMDppKCk7aWYoIXApcmV0dXJuO2NvbnN0IGY9cC5jYW52YXM7cmV0dXJuIHAuY2xlYXJSZWN0KDAsMCxmLndpZHRoLGYuaGVpZ2h0KSxmLndpZHRoPXR5cGVvZiBlLndpZHRoPT0ibnVtYmVyIj9lLndpZHRoOmUud2lkdGguYmFzZVZhbC52YWx1ZSxmLmhlaWdodD10eXBlb2YgZS5oZWlnaHQ9PSJudW1iZXIiP2UuaGVpZ2h0OmUuaGVpZ2h0LmJhc2VWYWwudmFsdWUscC5kcmF3SW1hZ2UoZSwwLDAsZi53aWR0aCxmLmhlaWdodCksRihuLHAuZ2V0SW1hZ2VEYXRhKDAsMCxmLndpZHRoLGYuaGVpZ2h0KS5kYXRhLG8pfWZvcihsZXQgcD1zLmxlbmd0aCxmPTA7ZjxwO2YrPTQpe2NvbnN0IGc9c1tmXSxDPXNbZisxXSx5PXNbZisyXSx3PXNbZiszXTtpZihjJiZ3PT09MHx8YT09PSJkaWZmIiYmbCYmZz09PWxbZl0mJkM9PT1sW2YrMV0mJnk9PT1sW2YrMl0mJnc9PT1sW2YrM10pY29udGludWU7Y29uc3QgbT1nPDwxNnxDPDw4fHksUz13KjFlOCttLEk9UyUzMjc2ODtsZXQgVD1yLmdldChJKTtUfHwoVD1uZXcgTWFwLHIuc2V0KEksVCkpO2xldCBFPVQuZ2V0KFMpO2lmKEUhPT12b2lkIDApe3RbRV0uY291bnQrKztjb250aW51ZX1FPXQucHVzaCh7YWxwaGE6dyxzcmdiOm0sb2tsYWI6SChtKSxjb3VudDoxfSktMSxULnNldChTLEUpfXJldHVybiBzfWZ1bmN0aW9uIEoobixlKXtjb25zdHtjb2xvclNhbXBsZXM6b309ZSx7c3RhcnQ6aSxlbmQ6bH09bjtuLmxlbmd0aD1sLWksbi53ZWlnaHQ9MDtjb25zdCBjPVswLDAsMF07Zm9yKGxldCB0PWk7dDxsO3QrKyl7Y29uc3Qgcj1vW3RdO2NbMF0rPXIub2tsYWJbMF0qci5jb3VudCxjWzFdKz1yLm9rbGFiWzFdKnIuY291bnQsY1syXSs9ci5va2xhYlsyXSpyLmNvdW50LG4ud2VpZ2h0Kz1yLmNvdW50fW4ub2tsYWI9W2NbMF0vbi53ZWlnaHQsY1sxXS9uLndlaWdodCxjWzJdL24ud2VpZ2h0XTtjb25zdCBhPVswLDAsMF07Zm9yKGxldCB0PWk7dDxsO3QrKyl7Y29uc3Qgcj1vW3RdO2FbMF0rPUEoci5va2xhYlswXS1uLm9rbGFiWzBdLDIpKnIuY291bnQsYVsxXSs9QShyLm9rbGFiWzFdLW4ub2tsYWJbMV0sMikqci5jb3VudCxhWzJdKz1BKHIub2tsYWJbMl0tbi5va2xhYlsyXSwyKSpyLmNvdW50fW4uc29ydD11ZShhWzBdLGFbMV0sYVsyXSksbi5zY29yZT1NYXRoLm1heChhWzBdLGFbMV0sYVsyXSl9ZnVuY3Rpb24gUShuLGUpe2NvbnN0IG89Wih7c3RhcnQ6MCxlbmQ6MCxsZW5ndGg6MCxzY29yZTowLHdlaWdodDowLHNvcnQ6ImxhYiIsc29ydGVkOm51bGwsc3JnYjowLG9rbGFiOlswLDAsMF19LG4pO3JldHVybiBKKG8sZSksb31mdW5jdGlvbiB3ZShuKXtjb25zdHtjb2xvckJveGVzOmV9PW4sbz1bXSxpPW5ldyBNYXA7Zm9yKGxldCBhPS0xLHQ9ZS5sZW5ndGgscj0wO3I8dDtyKyspe2NvbnN0e3NyZ2I6c309ZVtyXTtpZihzPT09YSl7aS5zZXQociwhMCk7Y29udGludWV9YT1zfWMoe21pbjpbLTY1NTM1LC02NTUzNSwtNjU1MzVdLG1heDpbNjU1MzUsNjU1MzUsNjU1MzVdfSk7ZnVuY3Rpb24gbChhKXtjb25zdCB0PXttaW46WzY1NTM1LDY1NTM1LDY1NTM1XSxtYXg6Wy02NTUzNSwtNjU1MzUsLTY1NTM1XX07bGV0IHI9MDtjb25zdCBzPVtdO2ZvcihsZXQgcD1lLmxlbmd0aCxmPTA7ZjxwO2YrKyl7Y29uc3R7b2tsYWI6Z309ZVtmXTtpLmhhcyhmKXx8Z1swXTxhLm1pblswXXx8Z1sxXTxhLm1pblsxXXx8Z1syXTxhLm1pblsyXXx8Z1swXT5hLm1heFswXXx8Z1sxXT5hLm1heFsxXXx8Z1syXT5hLm1heFsyXXx8KGdbMF08dC5taW5bMF0mJih0Lm1pblswXT1nWzBdKSxnWzFdPHQubWluWzFdJiYodC5taW5bMV09Z1sxXSksZ1syXTx0Lm1pblsyXSYmKHQubWluWzJdPWdbMl0pLGdbMF0+dC5tYXhbMF0mJih0Lm1heFswXT1nWzBdKSxnWzFdPnQubWF4WzFdJiYodC5tYXhbMV09Z1sxXSksZ1syXT50Lm1heFsyXSYmKHQubWF4WzJdPWdbMl0pLHNbcisrXT17b2tsYWI6Zyxjb2xvckJveEluZGV4OmZ9KX1sZXQgdT0wO2lmKCFyKXJldHVybntjb2xvckJveEluZGV4Oi0xLGxvbmdlc3Q6dX07Y29uc3QgZD10Lm1heFswXS10Lm1pblswXSxoPXQubWF4WzFdLXQubWluWzFdLGI9dC5tYXhbMl0tdC5taW5bMl07cmV0dXJuIGQ+PWgmJmQ+PWI/dT0wOmI+PWQmJmI+PWg/dT0yOmg+PWQmJmg+PWImJih1PTEpLHtjb2xvckJveEluZGV4OnMuc29ydCgocCxmKT0+cC5va2xhYlt1XS1mLm9rbGFiW3VdKVtyPj4xXS5jb2xvckJveEluZGV4LGxvbmdlc3Q6dX19ZnVuY3Rpb24gYyhhKXtjb25zdHtjb2xvckJveEluZGV4OnQsbG9uZ2VzdDpyfT1sKGEpO2lmKHQ8MClyZXR1cm4tMTtjb25zdHtva2xhYjpzfT1lW3RdLHU9e2xvbmdlc3Q6cixva2xhYjpzLGNvbG9yQm94SW5kZXg6dH0sZD1vLnB1c2godSktMTtpLnNldCh0LCEwKTtjb25zdCBoPXttYXg6Wy4uLmEubWF4XSxtaW46Wy4uLmEubWluXX0sYj17bWF4OlsuLi5hLm1heF0sbWluOlsuLi5hLm1pbl19O2gubWF4W3JdPXNbcl0sYi5taW5bcl09TWF0aC5taW4oc1tyXSsxLDY1NTM1KTtjb25zdCBwPWMoaCk7bGV0IGY9LTE7cmV0dXJuIGIubWluW3JdPD1iLm1heFtyXSYmKGY9YyhiKSksdS5sZWZ0PXAsdS5yaWdodD1mLGR9cmV0dXJuIG99ZnVuY3Rpb24gYmUobixlPXt9KXtjb25zdHttYXhDb2xvcnM6byxjb2xvclNhbXBsZXM6aX09bjtpZighaS5sZW5ndGgpcmV0dXJuO2NvbnN0e21heENvbG9yczpsPW8sY2xlYXJTYW1wbGVzOmM9ITB9PWU7bGV0IGE9USh7ZW5kOmkubGVuZ3RofSxuKSx0PTE7Y29uc3Qgcj1bYV07ZnVuY3Rpb24gcygpe2xldCBkPS0xLGg9LTE7aWYodD09PWwpcmV0dXJuLTE7Zm9yKGxldCBiPTA7Yjx0O2IrKyl7Y29uc3QgcD1yW2JdO3AubGVuZ3RoPj0yJiZwLnNjb3JlPmgmJihkPWIsaD1wLnNjb3JlKX1yZXR1cm4gZH1mdW5jdGlvbiB1KGQsaCl7Y29uc3QgYj1RKHtzdGFydDpoKzEsZW5kOmQuZW5kLHNvcnRlZDpkLnNvcnRlZH0sbik7ZC5lbmQtPWIubGVuZ3RoLEooZCxuKSxyLnB1c2goYiksdCsrfWZvcig7YSYmYS5sZW5ndGg+MTspe2NvbnN0e3N0YXJ0OmQsZW5kOmgsc29ydDpiLHNvcnRlZDpwfT1hO2lmKGIhPT1wKXtjb25zdCB3PWkuc2xpY2UoZCxoKS5zb3J0KGRlKGIpKTtmb3IobGV0IG09dy5sZW5ndGgsUz0wO1M8bTtTKyspaVtkK1NdPXdbU107YS5zb3J0ZWQ9Yn1jb25zdCBmPWEud2VpZ2h0KzE+PjE7bGV0IGc9ZCxDPTA7Zm9yKGxldCB3PWgtMjtnPHcmJihDKz1pW2ddLmNvdW50LCEoQz5mKSk7ZysrKTt1KGEsZyk7Y29uc3QgeT1zKCk7YT15Pj0wP3JbeV06bnVsbH1mb3IobGV0IGQ9ci5sZW5ndGgsaD0wO2g8ZDtoKyspcltoXS5zcmdiPWZlKHJbaF0ub2tsYWIpO24uY29sb3JCb3hlcz1yLnNvcnQoKGQsaCk9PmQuc3JnYi1oLnNyZ2IpLG4uY29sb3JCb3hlc0luZGV4VHJlZT13ZShuKSxjJiYobi5jb2xvclNhbXBsZXM9W10sbi5jb2xvclNhbXBsZXNDYWNoZS5jbGVhcigpKSxuLmZpbmRlckNhY2hlLmNsZWFyKCl9ZnVuY3Rpb24geGUobixlLG8pe2NvbnN0e2NvbG9yQm94ZXM6aX09bjtpZighZSlyZXR1cm47bGV0IGw7aWYodHlwZW9mIG89PSJudW1iZXIiKWw9bztlbHNlIGlmKHR5cGVvZiBvPT0ic3RyaW5nIil7Y29uc3Qgcj1vLnJlcGxhY2UoL14jLywiIikscz1bYCR7clswXX0ke3JbMV19YCxgJHtyWzJdfSR7clszXX1gLGAke3JbNF19JHtyWzVdfWBdLm1hcCh1PT5wYXJzZUludCh1LDE2KSk7bD1zWzBdPDwxNnxzWzFdPDw4fHNbMl19ZWxzZSBpZihBcnJheS5pc0FycmF5KG8pKWw9b1swXTw8MTZ8b1sxXTw8OHxvWzJdO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5zdXBwb3J0ZWQgY29sb3IgZm9ybWF0Iik7Y29uc3QgYz1lKGwpO2lmKGM9PT12b2lkIDApcmV0dXJuO2NvbnN0IGE9aVtjXTtpZighYSlyZXR1cm47Y29uc3R7c3JnYjp0fT1hO2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7Y29uc3Qgcj0odD4+MTYmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLHM9KHQ+PjgmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpLHU9KHQmMjU1KS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpO3JldHVybnt2YWx1ZTpgIyR7cn0ke3N9JHt1fWAsaW5kZXg6Y319ZWxzZSBpZih0eXBlb2Ygbz09Im9iamVjdCImJkFycmF5LmlzQXJyYXkobykpcmV0dXJue3ZhbHVlOlt0Pj4xNiYyNTUsdD4+OCYyNTUsdCYyNTVdLGluZGV4OmN9O3JldHVybnt2YWx1ZTp0LGluZGV4OmN9fWZ1bmN0aW9uIFNlKG4pe24uY29sb3JTYW1wbGVzPVtdLG4uY29sb3JTYW1wbGVzQ2FjaGUuY2xlYXIoKSxuLmNvbG9yQm94ZXM9W10sbi5jb2xvckJveGVzSW5kZXhUcmVlPVtdLG4uZmluZGVyQ2FjaGUuY2xlYXIoKX1mdW5jdGlvbiBDZShuKXtjb25zdCBlPWdlKG4pLHtzdGF0c01vZGU6byxzYW1wbGVzOmksc2tpcFRyYW5zcGFyZW50Omx9PWUsYz1mdW5jdGlvbigpe2xldCBzO3JldHVybigpPT4oIXMmJkImJihzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkpLHMpfSgpO2xldCBhPW51bGwsdD1udWxsO2NvbnN0IHI9e2NvbnRleHQ6ZSxhZGRTYW1wbGU6cz0+e2UuY29sb3JTYW1wbGVzLmxlbmd0aD09PTAmJihhPW51bGwpO2NvbnN0IHU9RihlLHMse2dldENvbnRleHQyZDpjLHByZXZpb3VzU2FtcGxlOmEsc2tpcFRyYW5zcGFyZW50Omx9KTtyZXR1cm4odSBpbnN0YW5jZW9mIFByb21pc2U/dTpQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT51KSkudGhlbihkPT57ZCYmbz09PSJkaWZmIiYmKGE9ZCl9KSx1fSxnZW5lcmF0ZShzPXt9KXtjb25zdHtjbGVhclNhbXBsZXM6dT0hMH09cztyZXR1cm4gdSYmKGE9bnVsbCksYmUoZSxzKSx0aGlzfSxnZXRDb2xvcnM6cz0+bWUoZSxzKSxmaW5kTmVhcmVzdENvbG9yOnM9Pih0fHwodD1ZKGUpKSx4ZShlLHQscykpLHJlc2V0OigpPT5TZShlKX07cmV0dXJuIGkubGVuZ3RoJiYoaS5mb3JFYWNoKHM9PnIuYWRkU2FtcGxlKHMpKSxlLnNhbXBsZXM9W10pLHJ9Y29uc3QgeWU9Ilttb2Rlcm4tZ2lmXSIsSWU9IkdJRiIsa2U9WyI4N2EiLCI4OWEiXSxlZT00NCx0ZT0zMyxUZT0yNTUsQWU9MTEsRWU9MjU0LG5lPTI0OSxyZT00LEJlPTEsX2U9MSxNZT01OSxvZT0oLi4ubik9PmNvbnNvbGUud2Fybih5ZSwuLi5uKTtmdW5jdGlvbiB2ZShuKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG4ucmVkdWNlKChvLGkpPT5vK2kuYnl0ZUxlbmd0aCwwKSk7cmV0dXJuIG4ucmVkdWNlKChvLGkpPT4oZS5zZXQoaSxvKSxvK2kuYnl0ZUxlbmd0aCksMCksZX1mdW5jdGlvbiBhZShuLGUsbyl7bGV0IGk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KG4pKWk9bi5idWZmZXI7ZWxzZSBpZihuIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpaT1uO2Vsc2V7Y29uc3QgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx7d2lkdGg6YyxoZWlnaHQ6YX09b3x8e30sdD1sLmdldENvbnRleHQoIjJkIik7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGNhbnZhcyBjb250ZXh0MmQiKTtsLndpZHRoPWMhPW51bGw/Yzp0eXBlb2Ygbi53aWR0aD09Im51bWJlciI/bi53aWR0aDpuLndpZHRoLmJhc2VWYWwudmFsdWUsbC5oZWlnaHQ9YSE9bnVsbD9hOnR5cGVvZiBuLmhlaWdodD09Im51bWJlciI/bi5oZWlnaHQ6bi5oZWlnaHQuYmFzZVZhbC52YWx1ZSx0LmRyYXdJbWFnZShuLDAsMCxsLndpZHRoLGwuaGVpZ2h0KSxpPXQuZ2V0SW1hZ2VEYXRhKDAsMCxsLndpZHRoLGwuaGVpZ2h0KS5kYXRhLmJ1ZmZlcn1zd2l0Y2goZSl7Y2FzZSJ1aW50OEFycmF5IjpyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoaSk7Y2FzZSJ1aW50OENsYW1wZWRBcnJheSI6cmV0dXJuIG5ldyBVaW50OENsYW1wZWRBcnJheShpKTtjYXNlImRhdGFWaWV3IjpyZXR1cm4gbmV3IERhdGFWaWV3KGkpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBvdXRwdXQgZm9ybWF0Iil9fWZ1bmN0aW9uIE5lKG4sZSl7dmFyIHA7Y29uc3R7dG9wOm89MCxsZWZ0Omk9MCx3aWR0aDpsLGhlaWdodDpjLHJhd1dpZHRoOmEscmF0ZTp0PTQsY2FsbGJhY2s6cn09ZSxzPW5ldyBVaW50OENsYW1wZWRBcnJheShsKmMqdCksdT1pKnQsZD1vKnQsaD1sKnQsYj1hKnQ7Zm9yKGxldCBmPTA7ZjxjO2YrKylmb3IobGV0IGc9MDtnPGg7ZysrKXtjb25zdCBDPShkK2YpKmIrKHUrZyk7c1tmKmgrZ109KHA9cj09bnVsbD92b2lkIDA6cihDKSkhPW51bGw/cDpuW0NdfXJldHVybiBzfWZ1bmN0aW9uIFVlKG4pe2NvbnN0IGU9YWUobiwiZGF0YVZpZXciKTtsZXQgbz0wO2NvbnN0IGk9KCk9PmUuZ2V0VWludDgobysrKSxsPWM9PkFycmF5LmZyb20oe2xlbmd0aDpjfSkubWFwKGkpO3JldHVybntnZXRDdXJzb3I6KCk9Pm8sc2V0Q3Vyc29yOmM9Pm89YyxyZWFkQnl0ZTppLHJlYWRCeXRlczpsLHJlYWRTdHJpbmc6Yz0+U3RyaW5nLmZyb21DaGFyQ29kZSguLi5sKGMpKSxyZWFkVW5zaWduZWQ6KCk9PltlLmdldFVpbnQxNihvLCEwKSxvKz0yXVswXSxyZWFkQml0czooKT0+ZS5nZXRVaW50OChvKyspLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDgsIjAiKS5zcGxpdCgiIikubWFwKE51bWJlcikscmVhZENvbG9yVGFibGU6Yz0+QXJyYXkuZnJvbSh7bGVuZ3RoOmN9LCgpPT5BcnJheS5mcm9tKGwoMykpKSxyZWFkU3ViQmxvY2s6KCk9Pntjb25zdCBjPVtdO2Zvcig7Oyl7Y29uc3QgYT1pKCk7aWYoYT09PTAmJmUuZ2V0VWludDgobykhPT0wKWJyZWFrO2MucHVzaChhKX1yZXR1cm4gY319fWZ1bmN0aW9uIE9lKG4pe2NvbnN0IGU9e30se2dldEN1cnNvcjpvLHNldEN1cnNvcjppLHJlYWRCeXRlOmwscmVhZFN0cmluZzpjLHJlYWRVbnNpZ25lZDphLHJlYWRCaXRzOnQscmVhZENvbG9yVGFibGU6cixyZWFkU3ViQmxvY2s6c309VWUobiksdT0oKT0+KHtpbmRleDowLGRlbGF5OjEwMCxkaXNwb3NhbDowfSksZD1jKDMpLGg9YygzKTtpZihkIT09SWV8fCFrZS5pbmNsdWRlcyhoKSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgaXMgbm90IGEgODdhLzg5YSBHSUYgZGF0YS4iKTtlLnZlcnNpb249aCxlLndpZHRoPWEoKSxlLmhlaWdodD1hKCk7Y29uc3QgYj10KCk7ZS5nbG9iYWxDb2xvclRhYmxlPSEhYlswXSxlLmNvbG9yUmVzb2x1VGlvbj1wYXJzZUludChiLnNsaWNlKDEsNCkuam9pbigiIiksMikrMSxlLmNvbG9yVGFibGVTb3J0ZWQ9ISFiWzRdO2NvbnN0IHA9cGFyc2VJbnQoYi5zbGljZSg1LDgpLmpvaW4oIiIpLDIpO2UuY29sb3JUYWJsZVNpemU9cD9NYXRoLnBvdygyLHArMSk6MCxlLmJhY2tncm91bmRDb2xvckluZGV4PWwoKSxlLnBpeGVsQXNwZWN0UmF0aW89bCgpLGUuZ2xvYmFsQ29sb3JUYWJsZSYmKGUuY29sb3JUYWJsZVNpemU/ZS5jb2xvclRhYmxlPXIoZS5jb2xvclRhYmxlU2l6ZSk6cygpKSxlLmZyYW1lcz1bXTtsZXQgZj11KCk7Y29uc3QgZz1bXSxDPVtdO2Zvcig7Oyl7Y29uc3QgeT1sKCk7aWYoZy5wdXNoKHkpLHk9PT1lZSl7Zi5sZWZ0PWEoKSxmLnRvcD1hKCksZi53aWR0aD1hKCksZi5oZWlnaHQ9YSgpO2NvbnN0IHc9dCgpO2YubG9jYWxDb2xvclRhYmxlPSEhd1swXSxmLmludGVybGFjZWQ9ISF3WzFdLGYuY29sb3JUYWJsZVNvcnRlZD0hIXdbMl0sZi5yZXNlcnZlZD1wYXJzZUludCh3LnNsaWNlKDMsNSkuam9pbigiIiksMik7Y29uc3QgbT1wYXJzZUludCh3LnNsaWNlKDUsOCkuam9pbigiIiksMik7Zm9yKGYuY29sb3JUYWJsZVNpemU9bT9NYXRoLnBvdygyLG0rMSk6MCxmLmxvY2FsQ29sb3JUYWJsZSYmKGYuY29sb3JUYWJsZT1yKGYuY29sb3JUYWJsZVNpemUpKSxmLmx6d01pbkNvZGVTaXplPWwoKSxmLmltYWdlRGF0YVBvc2l0aW9ucz1bXTs7KXtjb25zdCBTPWwoKTtpZihTPT09MClicmVhaztjb25zdCBJPW8oKTtmLmltYWdlRGF0YVBvc2l0aW9ucy5wdXNoKFtJLFNdKSxpKEkrUyl9ZS5mcmFtZXMucHVzaChmKSxmPXUoKSxmLmluZGV4PWUuZnJhbWVzLmxlbmd0aDtjb250aW51ZX1pZih5PT09dGUpe2NvbnN0IHc9bCgpO2lmKEMucHVzaCh3KSx3PT09VGUpe2lmKGwoKSE9PUFlKWNvbnRpbnVlO2NvbnN0IG09e2lkZW50aWZpZXI6Yyg4KSxjb2RlOmMoMyksZGF0YTpbXX07YCR7bS5pZGVudGlmaWVyfSR7bS5jb2RlfWA9PSJORVRTQ0FQRTIuMCImJmwoKT09PTMmJihlLmxvb3BlZD0hIWwoKSxlLmxvb3BDb3VudD1hKCkpLG0uZGF0YT1zKCksZi5hcHBsaWNhdGlvbj1tO2NvbnRpbnVlfWlmKHc9PT1FZSl7Zi5jb21tZW50PXMoKS5tYXAobT0+U3RyaW5nLmZyb21DaGFyQ29kZShtKSkuam9pbigiIik7Y29udGludWV9aWYodz09PW5lKXtpZihsKCkhPT1yZSljb250aW51ZTtjb25zdCBtPXQoKSxTPXtyZXNlcnZlZDpwYXJzZUludChtLnNsaWNlKDAsMykuam9pbigiIiksMiksZGlzcG9zYWw6cGFyc2VJbnQobS5zbGljZSgzLDYpLmpvaW4oIiIpLDIpLHVzZXJJbnB1dDohIW1bNl0sdHJhbnNwYXJlbnQ6ISFtWzddLGRlbGF5VGltZTphKCksdHJhbnNwYXJlbnRJbmRleDpsKCl9O3MoKSxmLmdyYXBoaWNDb250cm9sPVMsZi5kaXNwb3NhbD1TLmRpc3Bvc2FsLGYuZGVsYXk9KFMuZGVsYXlUaW1lfHwxMCkqMTA7Y29udGludWV9aWYodz09PUJlKXtpZihsKCkhPT1fZSljb250aW51ZTtmLnBsYWluVGV4dD17bGVmdDphKCksdG9wOmEoKSx3aWR0aDphKCksaGVpZ2h0OmEoKSxjZWxsV2lkdGg6bCgpLGNlbGxIZWlnaHQ6bCgpLGNvbG9ySW5kZXg6bCgpLGJhY2tncm91bmRDb2xvckluZGV4OmwoKSxkYXRhOnMoKX07Y29udGludWV9b2UoYFVua25vd24gZXh0ZW5zaW9uIGJsb2NrOiAweCR7dy50b1N0cmluZygxNil9YCxnLnNsaWNlKDAsZy5sZW5ndGgtMSkubWFwKG09PmAweCR7bS50b1N0cmluZygxNil9YCksQy5zbGljZSgwLEMubGVuZ3RoLTEpLm1hcChtPT5gMHgke20udG9TdHJpbmcoMTYpfWApKTtjb250aW51ZX1pZih5PT09TWUpYnJlYWs7b2UoYFVua25vd24gYmxvY2s6IDB4JHt5LnRvU3RyaW5nKDE2KX1gLGcuc2xpY2UoMCxnLmxlbmd0aC0xKS5tYXAodz0+YDB4JHt3LnRvU3RyaW5nKDE2KX1gKSxDLnNsaWNlKDAsQy5sZW5ndGgtMSkubWFwKHc9PmAweCR7dy50b1N0cmluZygxNil9YCkpfXJldHVybiBlfWZ1bmN0aW9uIFBlKG4sZSxvKXtjb25zdCBjPW87bGV0IGEsdCxyLHMsdSxkLGg7Y29uc3QgYj1uZXcgQXJyYXkobykscD1uZXcgQXJyYXkoNDA5NiksZj1uZXcgQXJyYXkoNDA5NiksZz1uZXcgQXJyYXkoNDA5NisxKSxDPW4seT0xPDxDLHc9eSsxO2ZvcihhPXkrMix1PS0xLHI9QysxLHQ9KDE8PHIpLTEsZD0wO2Q8eTtkKyspcFtkXT0wLGZbZF09ZDtsZXQgbSxTLEksVCxFLFA7Zm9yKG09Uz1JPVQ9RT1QPTAsaD0wO2g8Yzspe2lmKFQ9PT0wKXtpZihTPHIpe20rPWVbUF08PFMsUys9OCxQKys7Y29udGludWV9aWYoZD1tJnQsbT4+PXIsUy09cixkPmF8fGQ9PT13KWJyZWFrO2lmKGQ9PT15KXtyPUMrMSx0PSgxPDxyKS0xLGE9eSsyLHU9LTE7Y29udGludWV9aWYodT09PS0xKXtnW1QrK109ZltkXSx1PWQsST1kO2NvbnRpbnVlfWZvcihzPWQsZD09PWEmJihnW1QrK109SSxkPXUpO2Q+eTspZ1tUKytdPWZbZF0sZD1wW2RdO0k9ZltkXSYyNTUsZ1tUKytdPUksYTw0MDk2JiYocFthXT11LGZbYV09SSxhKyssIShhJnQpJiZhPDQwOTYmJihyKyssdCs9YSkpLHU9c31ULS0sYltFKytdPWdbVF0saCsrfWZvcihoPUU7aDxjO2grKyliW2hdPTA7cmV0dXJuIGJ9ZnVuY3Rpb24gJGUobixlKXtjb25zdCBvPW5ldyBBcnJheShuLmxlbmd0aCksaT1uLmxlbmd0aC9lLGw9WzAsNCwyLDFdLGM9WzgsOCw0LDJdO2xldCBhPTA7Zm9yKGxldCB0PTA7dDw0O3QrKylmb3IobGV0IHI9bFt0XTtyPGk7cis9Y1t0XSlvLnNwbGljZS5hcHBseShvLFtyKmUsZV0uY29uY2F0KG4uc2xpY2UoYSplLChhKzEpKmUpKSksYSsrO3JldHVybiBvfWZ1bmN0aW9uIERlKG4pe2NvbnN0IGU9bmV3IE1hcCx7d29ya2VyVXJsOm99PW47bGV0e3dvcmtlck51bWJlcjppPTF9PW47Y29uc3QgbD1bLi4ubmV3IEFycmF5KG8/aTowKV0ubWFwKCgpPT57dHJ5e2NvbnN0IHI9bmV3IFdvcmtlcihvKTtyZXR1cm4gci5vbm1lc3NhZ2U9YyxyfWNhdGNoKHIpe3JldHVybiBudWxsfX0pLmZpbHRlcihCb29sZWFuKTtpPWwubGVuZ3RoO2Z1bmN0aW9uIGMocil7dmFyIGQ7Y29uc3R7aWQ6cyxkYXRhOnV9PXIuZGF0YTsoZD1lLmdldChzKSk9PW51bGx8fGQodSksZS5kZWxldGUocyl9Y29uc3QgYT1mdW5jdGlvbigpe2xldCByPTA7cmV0dXJuIHM9PmxbKHMhPW51bGw/czpyKyspJWldfSgpO3JldHVybntjYWxsOmZ1bmN0aW9uKCl7bGV0IHI9MDtyZXR1cm4ocyx1LGQsaCk9Pm5ldyBQcm9taXNlKGI9Pntjb25zdCBwPWEoaCk7aWYoIXApcmV0dXJuIGIodm9pZCAwKTtlLnNldChyLGIpLHAucG9zdE1lc3NhZ2Uoe2lkOnIrKyx0eXBlOnMsZGF0YTp1fSx7dHJhbnNmZXI6ZH0pfSl9KCl9fWZ1bmN0aW9uIFhlKG4sZSl7Y29uc3Qgbz1hZShuLCJ1aW50OEFycmF5Iik7aWYoZSE9bnVsbCYmZS53b3JrZXJVcmwpcmV0dXJuIERlKHt3b3JrZXJVcmw6ZS53b3JrZXJVcmx9KS5jYWxsKCJmcmFtZXM6ZGVjb2RlIixvLFtvLmJ1ZmZlcl0pO2NvbnN0e2dpZjppPU9lKG4pLHJhbmdlOmx9PWUhPW51bGw/ZTp7fSx7d2lkdGg6YyxoZWlnaHQ6YSxjb2xvclRhYmxlOnQsZnJhbWVzOnJ9PWkscz1sP3Iuc2xpY2UobFswXSxsWzFdKzEpOnIsdT1uZXcgVWludDhDbGFtcGVkQXJyYXkoYyphKjQpO2xldCBkO3JldHVybiBzLm1hcChoPT57dmFyIGxlO2NvbnN0e2xlZnQ6Yix0b3A6cCx3aWR0aDpmLGhlaWdodDpnLGludGVybGFjZWQ6Qyxsb2NhbENvbG9yVGFibGU6eSxjb2xvclRhYmxlOncsbHp3TWluQ29kZVNpemU6bSxpbWFnZURhdGFQb3NpdGlvbnM6UyxncmFwaGljQ29udHJvbDpJLGRpc3Bvc2FsOlQsZGVsYXk6RX09aCxQPXArZyx7dHJhbnNwYXJlbnQ6S2UsdHJhbnNwYXJlbnRJbmRleDpWZX09SSE9bnVsbD9JOnt9LFc9eT93OnQsamU9S2U/VmU6LTEsWmU9dmUoUy5tYXAoKFtNLFVdKT0+by5zdWJhcnJheShNLE0rVSkpKTtsZXQgSz1QZShtLFplLGYqZyk7aWYoQyYmKEs9JGUoSyxmKSksKGQ9PW51bGw/dm9pZCAwOmQuZGlzcG9zYWwpIT09MSl7Y29uc3R7bGVmdDpNPTAsdG9wOlU9MCx3aWR0aDpWPWMsaGVpZ2h0Ok89YX09ZCE9bnVsbD9kOnt9LFg9VStPO2ZvcihsZXQgJD1VOyQ8WDskKyspe2NvbnN0IGo9JCpjK007Zm9yKGxldCBEPTA7RDxWO0QrKyl7Y29uc3Qgdj0oaitEKSo0O3Vbdl09dVt2KzFdPXVbdisyXT11W3YrM109MH19fWZvcihsZXQgTT1wO008UDtNKyspe2NvbnN0IFU9TSpjK2IsVj0oTS1wKSpmO2ZvcihsZXQgTz0wO088ZjtPKyspe2NvbnN0IFg9S1tWK09dO2lmKFg9PT1qZSljb250aW51ZTtjb25zdFskLGosRF09KGxlPVc9PW51bGw/dm9pZCAwOldbWF0pIT1udWxsP2xlOlswLDAsMF0sdj0oVStPKSo0O3Vbdl09JCx1W3YrMV09aix1W3YrMl09RCx1W3YrM109MjU1fX1yZXR1cm4gVCE9PTMmJihkPWgpLHt3aWR0aDpjLGhlaWdodDphLGRlbGF5OkUsaW1hZ2VEYXRhOnUuc2xpY2UoMCl9fSl9ZnVuY3Rpb24gTGUobixlLG8pe2NvbnN0e3dyaXRlQnl0ZTppLGdldEN1cnNvcjpsLGNhbGN1bGF0ZURpc3RhbmNlOmN9PW87aShuKTtsZXQgYT1sKCk7aSgwKTtjb25zdCB0PTE8PG4scj10LTEscz10KzE7bGV0IHU9cysxLGQ9bisxLGg9MCxiPTA7ZnVuY3Rpb24gcChTKXtmb3IoO2g+PVM7KWkoYiYyNTUpLGI+Pj04LGgtPTgsYyhhKT09PTI1NiYmKGkoMjU1LGEpLGE9bCgpLGkoMCkpfWZ1bmN0aW9uIGYoUyl7Ynw9Uzw8aCxoKz1kLHAoOCl9bGV0IGc9ZVswXSZyLEM9e30seSx3LG07Zih0KTtmb3IobGV0IFM9ZS5sZW5ndGgsST0xO0k8UzsrK0kpaWYobT1lW0ldJnIseT1nPDw4fG0sdz1DW3ldLHc9PT12b2lkIDApe2ZvcihifD1nPDxoLGgrPWQ7aD49ODspaShiJjI1NSksYj4+PTgsaC09OCxjKGEpPT09MjU2JiYoaSgyNTUsYSksYT1sKCksaSgwKSk7dT09PTQwOTY/KGYodCksdT1zKzEsZD1uKzEsQz17fSk6KHU+PTE8PGQmJisrZCxDW3ldPXUrKyksZz1tfWVsc2UgZz13O2YoZyksZihzKSxwKDEpLGMoYSk9PT0xP2koMCxhKTooaShjKGEpLTEsYSksaSgwKSl9ZnVuY3Rpb24gUmUobj17fSl7Y29uc3R7Y2h1bmtTaXplOmU9NDA5Nn09bjtsZXQgbz1bbmV3IFVpbnQ4QXJyYXkoZSldLGk9MCxsPTA7Y29uc3QgYz0odCxyKT0+e3I/b1tyWzBdXVtyWzFdXT10OihsPj1lJiYob1srK2ldPW5ldyBVaW50OEFycmF5KGUpLGw9MCksb1tpXVtsKytdPXQpfSxhPXQ9PnQuZm9yRWFjaChyPT5jKHIpKTtyZXR1cm57Z2V0Q3Vyc29yOigpPT5baSxsXSxzZXRDdXJzb3I6dD0+e2k9dFswXSxsPXRbMV19LGNhbGN1bGF0ZURpc3RhbmNlOnQ9PmkqZStsLSh0WzBdKmUrdFsxXSksd3JpdGVCeXRlOmMsd3JpdGVCeXRlczphLHdyaXRlU3RyaW5nOnQ9PnQuc3BsaXQoIiIpLmZvckVhY2goKHIscyk9PmModC5jaGFyQ29kZUF0KHMpKSksd3JpdGVVbnNpZ25lZDp0PT5hKFt0JjI1NSx0Pj44JjI1NV0pLGZsdXNoOigpPT57b1tpXT1vW2ldLnNsaWNlKDAsbCk7Y29uc3QgdD1uZXcgVWludDhBcnJheShvLnJlZHVjZSgocyx1KT0+cyt1LmJ5dGVMZW5ndGgsMCkpO2xldCByPTA7cmV0dXJuIG8uZm9yRWFjaChzPT57dC5zZXQocyxyKSxyKz1zLmJ5dGVMZW5ndGh9KSxvPVtuZXcgVWludDhBcnJheShlKV0saT0wLGw9MCx0fX19ZnVuY3Rpb24gemUobil7dmFyIEMseSx3O2NvbnN0IGU9UmUoKSx7d3JpdGVCeXRlOm8sd3JpdGVCeXRlczppLHdyaXRlVW5zaWduZWQ6bCxmbHVzaDpjfT1lLHtsZWZ0OmE9MCx0b3A6dD0wLHdpZHRoOnI9MCxoZWlnaHQ6cz0wLGRlbGF5OnU9MTAwLGNvbG9yVGFibGU6ZH09bjtsZXR7ZGlzcG9zYWw6aD0wfT1uO2NvbnN0IGI9KEM9bi5ncmFwaGljQ29udHJvbCk9PW51bGw/dm9pZCAwOkMudHJhbnNwYXJlbnQ7bGV0IHA9KHc9KHk9bi5ncmFwaGljQ29udHJvbCk9PW51bGw/dm9pZCAwOnkudHJhbnNwYXJlbnRJbmRleCkhPW51bGw/dzoyNTU7aWYoYTwwfHxhPjY1NTM1KXRocm93IG5ldyBFcnJvcigiTGVmdCBpbnZhbGlkLiIpO2lmKHQ8MHx8dD42NTUzNSl0aHJvdyBuZXcgRXJyb3IoIlRvcCBpbnZhbGlkLiIpO2lmKHI8PTB8fHI+NjU1MzUpdGhyb3cgbmV3IEVycm9yKCJXaWR0aCBpbnZhbGlkLiIpO2lmKHM8PTB8fHM+NjU1MzUpdGhyb3cgbmV3IEVycm9yKCJIZWlnaHQgaW52YWxpZC4iKTtsZXQgZj04LGc9ZD9kLmxlbmd0aDowO2lmKGcpe2lmKGc8Mnx8Zz4yNTZ8fGcmZy0xKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2xvciB0YWJsZSBsZW5ndGgsIG11c3QgYmUgcG93ZXIgb2YgMiBhbmQgMiAuLiAyNTYuIik7Zm9yKDtnPj49MTspKytmfXJldHVybiBvKHRlKSxvKG5lKSxvKHJlKSxiP2h8fChoPTIpOnA9MCxvKHBhcnNlSW50KGAwMDAke051bWJlcihoJjcpLnRvU3RyaW5nKDIpLnBhZFN0YXJ0KDMsIjAiKX0wJHtiPzE6MH1gLDIpKSxsKHUvMTApLG8ocCksbygwKSxvKGVlKSxsKGEpLGwodCksbChyKSxsKHMpLGQhPW51bGwmJmQubGVuZ3RoPyhvKHBhcnNlSW50KGAxMDAwMCR7KGYtMSkudG9TdHJpbmcoMikucGFkU3RhcnQoMywiMCIpfWAsMikpLGkoZC5mbGF0KCkpKTpvKDApLExlKGYsbi5pbWFnZURhdGEsZSksYygpfWZ1bmN0aW9uIEZlKG4pe2NvbnN0e2ZyYW1lczplLHBhbGV0dGU6byx0cmFuc3BhcmVudEluZGV4Oml9PW4sbD1ZKG8pO3JldHVybiBlLm1hcCgoe2ltYWdlRGF0YTpjfSk9PntsZXQgYT0hMTtjb25zdCB0PW5ldyBVaW50OENsYW1wZWRBcnJheShjLmxlbmd0aC80KTtmb3IobGV0IHI9Yy5sZW5ndGgscz0wO3M8cjtzKz00KWNbcyszXT09PTA/KHRbcy80XT1pLGE9ITApOnRbcy80XT1sKGNbc108PDE2fGNbcysxXTw8OHxjW3MrMl0pO3JldHVybntpbWFnZURhdGE6dCx0cmFuc3BhcmVudDphfX0pfWZ1bmN0aW9uIFdlKG4pe2NvbnN0e2ZyYW1lczplLHRyYW5zcGFyZW50SW5kZXg6b309bjtsZXQgaTtjb25zdCBsPWUubGVuZ3RoO3JldHVybiBlLm1hcCgoYyxhKT0+e2NvbnN0e3dpZHRoOnQsaGVpZ2h0OnIsdHJhbnNwYXJlbnQ6cyxpbWFnZURhdGE6dX09YztsZXQgZD0wLGg9MCxiPXQtMSxwPXItMSxmO2lmKHMpe2Zvcig7aDxwOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKylpZih1W3QqaCttXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7aCsrfWZvcig7cD5oOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKylpZih1W3QqcCttXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7cC0tfWZvcig7ZDxiOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTxwO20rKylpZih1W3QqbStkXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7ZCsrfWZvcig7Yj5kOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTxwO20rKylpZih1W3QqbStiXSE9PW8pe3c9ITE7YnJlYWt9aWYoIXcpYnJlYWs7Yi0tfX1lbHNle2lmKGkpe2Zvcig7aDxwOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKyl7Y29uc3QgUz10KmgrbTtpZih1W1NdIT09aVtTXSl7dz0hMTticmVha319aWYoIXcpYnJlYWs7aCsrfWZvcig7cD5oOyl7bGV0IHc9ITA7Zm9yKGxldCBtPTA7bTx0O20rKyl7Y29uc3QgUz10KnArbTtpZih1W1NdIT09aVtTXSl7dz0hMTticmVha319aWYoIXcpYnJlYWs7cC0tfWlmKGg9PT1wKWQ9YjtlbHNle2Zvcig7ZDxiOyl7bGV0IHc9ITA7Zm9yKGxldCBtPWg7bTw9cDttKyspe2NvbnN0IFM9bSp0K2Q7aWYodVtTXSE9PWlbU10pe3c9ITE7YnJlYWt9fWlmKCF3KWJyZWFrO2QrK31mb3IoO2I+ZDspe2xldCB3PSEwO2ZvcihsZXQgbT1oO208PXA7bSsrKXtjb25zdCBTPW0qdCtiO2lmKHVbU10hPT1pW1NdKXt3PSExO2JyZWFrfX1pZighdylicmVhaztiLS19fX1mPWksaT11fWNvbnN0IGc9YisxLWQsQz1wKzEtaCx5PU5lKHUse2xlZnQ6ZCx0b3A6aCx3aWR0aDpnLGhlaWdodDpDLHJhd1dpZHRoOnQscmF0ZToxLGNhbGxiYWNrOnc9PntpZighcyYmZiYmdVt3XT09PWZbd10pcmV0dXJuIG99fSk7cmV0dXJue2xlZnQ6ZCx0b3A6aCx3aWR0aDpnLGhlaWdodDpDLGRpc3Bvc2FsOnMmJmEhPT1sLTE/MjoxLGltYWdlRGF0YTp5fX0pfWNvbnN0IE49Q2Uoe3NraXBUcmFuc3BhcmVudDohMX0pO3NlbGYub25tZXNzYWdlPW49Pntjb25zdHtpZDplLHR5cGU6byxkYXRhOml9PW4uZGF0YTtpZihvPT09InBhbGV0dGU6YWRkU2FtcGxlIiYmTilyZXR1cm4gTi5hZGRTYW1wbGUoaSksc2VsZi5wb3N0TWVzc2FnZSh7aWQ6ZSx0eXBlOm8sZGF0YTohMH0pO2lmKG89PT0icGFsZXR0ZTpnZW5lcmF0ZSImJk4pe04uZ2VuZXJhdGUoaSk7Y29uc3QgbD1aKHt9LE4uY29udGV4dCk7cmV0dXJuIE4ucmVzZXQoKSxzZWxmLnBvc3RNZXNzYWdlKHtpZDplLHR5cGU6byxkYXRhOmx9KX1pZihvPT09ImZyYW1lczppbmRleCIpe2NvbnN0IGw9RmUoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9aWYobz09PSJmcmFtZXM6Y3JvcCIpe2NvbnN0IGw9V2UoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9aWYobz09PSJmcmFtZTplbmNvZGUiKXtjb25zdCBsPXplKGkpO3JldHVybiBzZWxmLnBvc3RNZXNzYWdlKHtpZDplLHR5cGU6byxkYXRhOmx9LFtsLmJ1ZmZlcl0pfWlmKG89PT0iZnJhbWVzOmRlY29kZSIpe2NvbnN0IGw9WGUoaSk7cmV0dXJuIHNlbGYucG9zdE1lc3NhZ2Uoe2lkOmUsdHlwZTpvLGRhdGE6bH0sbC5tYXAoYz0+Yy5pbWFnZURhdGEuYnVmZmVyKSl9fX0pKCk7Cg==", dn = (t) => Ze(void 0, null, function* () {
2390
2402
  const {
2391
2403
  perFrameTime: n = 1e3 / 24,
2392
2404
  gif: d,
2393
2405
  images: p,
2394
2406
  autoSize: f = !0
2395
- } = t, y = Me({}, d), h = [];
2407
+ } = t, y = we({}, d), h = [];
2396
2408
  if (f) {
2397
2409
  const w = (d == null ? void 0 : d.width) || Math.min(...p.map((G) => G.width)), x = (d == null ? void 0 : d.height) || Math.min(...p.map((G) => G.height));
2398
2410
  y.width = w, y.height = x;
@@ -2418,17 +2430,17 @@ const kr = "data:application/javascript;base64,dmFyIEdlPU9iamVjdC5kZWZpbmVQcm9wZ
2418
2430
  normalize(t) {
2419
2431
  return t ? "true" : void 0;
2420
2432
  }
2421
- }, Gr = ({ nodePath: t }) => /* @__PURE__ */ T.createElement(vt, null, /* @__PURE__ */ T.createElement(
2433
+ }, Gr = ({ nodePath: t }) => /* @__PURE__ */ S.createElement(vt, null, /* @__PURE__ */ S.createElement(
2422
2434
  Tt,
2423
2435
  {
2424
- desktop: /* @__PURE__ */ T.createElement(
2436
+ desktop: /* @__PURE__ */ S.createElement(
2425
2437
  Bt,
2426
2438
  {
2427
2439
  mode: fe.DESKTOP,
2428
2440
  nodePath: t
2429
2441
  }
2430
2442
  ),
2431
- mobile: /* @__PURE__ */ T.createElement(
2443
+ mobile: /* @__PURE__ */ S.createElement(
2432
2444
  Bt,
2433
2445
  {
2434
2446
  mode: fe.MOBILE,
@@ -2441,31 +2453,31 @@ function Bt({
2441
2453
  nodePath: t,
2442
2454
  mode: n
2443
2455
  }) {
2444
- const { onUpload: d } = Ct(), { setFieldValue: p } = St(), { selectedNode: f } = Lt(), { setLock: y } = It(), [h, a] = xt(!1), b = T.useRef();
2456
+ const { onUpload: d } = Ct(), { setFieldValue: p } = St(), { selectedNode: f } = Lt(), { setLock: y } = It(), [h, a] = xt(!1), b = S.useRef();
2445
2457
  b.current || (b.current = Ve(f)), qe(() => {
2446
2458
  var x;
2447
2459
  _e((x = b.current) == null ? void 0 : x.data.list, f == null ? void 0 : f.data.list) ? y(!1) : y(!0);
2448
2460
  }, [f, y]);
2449
- const w = () => Se(this, null, function* () {
2461
+ const w = () => Ze(this, null, function* () {
2450
2462
  if (f)
2451
2463
  try {
2452
2464
  a(!0);
2453
2465
  const x = yield Promise.all(
2454
- f.data.list.filter((I) => I.src).map((I) => $t(I.src))
2466
+ f.data.list.filter((L) => L.src).map((L) => $t(L.src))
2455
2467
  ), G = yield dn({
2456
2468
  images: x,
2457
2469
  perFrameTime: 1e3
2458
- }), L = yield d == null ? void 0 : d(new File([G], "shopwindow.gif"));
2470
+ }), I = yield d == null ? void 0 : d(new File([G], "shopwindow.gif"));
2459
2471
  p(
2460
2472
  t,
2461
2473
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
2462
- L
2474
+ I
2463
2475
  );
2464
2476
  const K = Ve(f);
2465
- Ze(
2477
+ Ne(
2466
2478
  K,
2467
2479
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
2468
- L
2480
+ I
2469
2481
  ), b.current = K;
2470
2482
  } catch (x) {
2471
2483
  console.error(x), Wt.error(String(x));
@@ -2473,25 +2485,25 @@ function Bt({
2473
2485
  a(!1);
2474
2486
  }
2475
2487
  });
2476
- return f ? /* @__PURE__ */ T.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ T.createElement(
2488
+ return f ? /* @__PURE__ */ S.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ S.createElement(
2477
2489
  Te.Item,
2478
2490
  {
2479
2491
  name: "3",
2480
2492
  header: A("Image"),
2481
- extra: /* @__PURE__ */ T.createElement(Dt, { loading: h, type: "primary", onClick: w }, A("Save as gif"))
2493
+ extra: /* @__PURE__ */ S.createElement(Dt, { loading: h, type: "primary", onClick: w }, A("Save as gif"))
2482
2494
  },
2483
- /* @__PURE__ */ T.createElement(
2495
+ /* @__PURE__ */ S.createElement(
2484
2496
  ne.EditPanelTabsField,
2485
2497
  {
2486
2498
  path: t,
2487
2499
  tabPosition: "top",
2488
2500
  name: "data.list",
2489
2501
  label: "",
2490
- renderItem: (x, G) => /* @__PURE__ */ T.createElement(Er, { index: G, path: t }),
2502
+ renderItem: (x, G) => /* @__PURE__ */ S.createElement(Er, { index: G, path: t }),
2491
2503
  renderHeader: (x, G) => x.content || A("Image") + " " + (G + 1)
2492
2504
  }
2493
2505
  )
2494
- ), /* @__PURE__ */ T.createElement(Te.Item, { name: "1", header: A("Image settings") }, /* @__PURE__ */ T.createElement(
2506
+ ), /* @__PURE__ */ S.createElement(Te.Item, { name: "1", header: A("Image settings") }, /* @__PURE__ */ S.createElement(
2495
2507
  ie,
2496
2508
  {
2497
2509
  component: ne.TextField,
@@ -2499,7 +2511,7 @@ function Bt({
2499
2511
  name: "href",
2500
2512
  label: A("Link address")
2501
2513
  }
2502
- ), /* @__PURE__ */ T.createElement(
2514
+ ), /* @__PURE__ */ S.createElement(
2503
2515
  ie,
2504
2516
  {
2505
2517
  component: ne.TextField,
@@ -2508,7 +2520,7 @@ function Bt({
2508
2520
  label: A("Alt text"),
2509
2521
  placeholder: A("Brief description of your image")
2510
2522
  }
2511
- ), /* @__PURE__ */ T.createElement(
2523
+ ), /* @__PURE__ */ S.createElement(
2512
2524
  ie,
2513
2525
  {
2514
2526
  component: ne.SwitchField,
@@ -2517,42 +2529,42 @@ function Bt({
2517
2529
  label: A("Full width on mobile"),
2518
2530
  formItem: Yr
2519
2531
  }
2520
- )), /* @__PURE__ */ T.createElement(Te.Item, { name: "0", header: A("Dimension") }, /* @__PURE__ */ T.createElement(
2532
+ )), /* @__PURE__ */ S.createElement(Te.Item, { name: "0", header: A("Dimension") }, /* @__PURE__ */ S.createElement(
2521
2533
  ie,
2522
2534
  {
2523
2535
  component: ne.ImageWidth,
2524
2536
  path: t,
2525
2537
  name: "width"
2526
2538
  }
2527
- ), /* @__PURE__ */ T.createElement(
2539
+ ), /* @__PURE__ */ S.createElement(
2528
2540
  ie,
2529
2541
  {
2530
2542
  component: ne.Height,
2531
2543
  path: t,
2532
2544
  name: "height"
2533
2545
  }
2534
- ), /* @__PURE__ */ T.createElement(
2546
+ ), /* @__PURE__ */ S.createElement(
2535
2547
  ie,
2536
2548
  {
2537
2549
  component: ne.Padding,
2538
2550
  path: t,
2539
2551
  name: ""
2540
2552
  }
2541
- )), /* @__PURE__ */ T.createElement(Te.Item, { name: "2", header: A("Border") }, /* @__PURE__ */ T.createElement(
2553
+ )), /* @__PURE__ */ S.createElement(Te.Item, { name: "2", header: A("Border") }, /* @__PURE__ */ S.createElement(
2542
2554
  ie,
2543
2555
  {
2544
2556
  component: ne.Border,
2545
2557
  path: t,
2546
2558
  name: ""
2547
2559
  }
2548
- )), /* @__PURE__ */ T.createElement(Te.Item, { name: "4", header: A("Block") }, /* @__PURE__ */ T.createElement(
2560
+ )), /* @__PURE__ */ S.createElement(Te.Item, { name: "4", header: A("Block") }, /* @__PURE__ */ S.createElement(
2549
2561
  ie,
2550
2562
  {
2551
2563
  component: ne.BackgroundColor,
2552
2564
  path: t,
2553
2565
  name: "container-background-color"
2554
2566
  }
2555
- ), /* @__PURE__ */ T.createElement(
2567
+ ), /* @__PURE__ */ S.createElement(
2556
2568
  ie,
2557
2569
  {
2558
2570
  component: ne.TextAlign,
@@ -2563,19 +2575,19 @@ function Bt({
2563
2575
  ))) : null;
2564
2576
  }
2565
2577
  function Er({ index: t, path: n }) {
2566
- return /* @__PURE__ */ T.createElement("div", { style: { paddingTop: 20 } }, /* @__PURE__ */ T.createElement(ne.ImageUrl, { path: n, name: `data.list.[${t}].src` }));
2578
+ return /* @__PURE__ */ S.createElement("div", { style: { paddingTop: 20 } }, /* @__PURE__ */ S.createElement(ne.ImageUrl, { path: n, name: `data.list.[${t}].src` }));
2567
2579
  }
2568
- const zr = ({ nodePath: t }) => /* @__PURE__ */ T.createElement(vt, null, /* @__PURE__ */ T.createElement(
2580
+ const zr = ({ nodePath: t }) => /* @__PURE__ */ S.createElement(vt, null, /* @__PURE__ */ S.createElement(
2569
2581
  Tt,
2570
2582
  {
2571
- desktop: /* @__PURE__ */ T.createElement(
2583
+ desktop: /* @__PURE__ */ S.createElement(
2572
2584
  Ht,
2573
2585
  {
2574
2586
  mode: fe.DESKTOP,
2575
2587
  nodePath: t
2576
2588
  }
2577
2589
  ),
2578
- mobile: /* @__PURE__ */ T.createElement(
2590
+ mobile: /* @__PURE__ */ S.createElement(
2579
2591
  Ht,
2580
2592
  {
2581
2593
  mode: fe.MOBILE,
@@ -2588,30 +2600,30 @@ function Ht({
2588
2600
  nodePath: t,
2589
2601
  mode: n
2590
2602
  }) {
2591
- const d = en(), { onUpload: p } = Ct(), { setFieldValue: f } = St(), { selectedNode: y } = Lt(), { setLock: h } = It(), [a, b] = xt(!1), w = T.useRef();
2603
+ const d = en(), { onUpload: p } = Ct(), { setFieldValue: f } = St(), { selectedNode: y } = Lt(), { setLock: h } = It(), [a, b] = xt(!1), w = S.useRef();
2592
2604
  w.current || (w.current = Ve(y)), qe(() => {
2593
2605
  _e(w.current, y) ? h(!1) : h(!0);
2594
2606
  }, [y, h]);
2595
- const x = () => Se(this, null, function* () {
2607
+ const x = () => Ze(this, null, function* () {
2596
2608
  if (y)
2597
2609
  try {
2598
2610
  b(!0);
2599
- const G = Sn.toDOMNode(d, y), L = [], K = y.data;
2600
- let I = K.remainingTime;
2611
+ const G = Sn.toDOMNode(d, y), I = [], K = y.data;
2612
+ let L = K.remainingTime;
2601
2613
  switch (K.unit) {
2602
2614
  case "minute":
2603
- I = 60 * I;
2615
+ L = 60 * L;
2604
2616
  break;
2605
2617
  case "hour":
2606
- I = 60 * 60 * I;
2618
+ L = 60 * 60 * L;
2607
2619
  break;
2608
2620
  case "day":
2609
- I = 60 * 60 * 24 * I;
2621
+ L = 60 * 60 * 24 * L;
2610
2622
  }
2611
- const S = 60 * 2;
2612
- for (let V = 0; V < S; V++) {
2613
- const { day: J, hour: B, minute: E, second: se } = tn(
2614
- I -= 1
2623
+ const v = 60 * 2;
2624
+ for (let V = 0; V < v; V++) {
2625
+ const { day: J, hour: R, minute: E, second: se } = tn(
2626
+ L -= 1
2615
2627
  ), me = yield Pn(G, {
2616
2628
  wrapper(Le) {
2617
2629
  const ge = document.createElement("table");
@@ -2625,7 +2637,7 @@ function Ht({
2625
2637
  },
2626
2638
  {
2627
2639
  selector: ".hrs",
2628
- innerText: B
2640
+ innerText: R
2629
2641
  },
2630
2642
  {
2631
2643
  selector: ".mins",
@@ -2637,37 +2649,37 @@ function Ht({
2637
2649
  }
2638
2650
  ]
2639
2651
  }), ve = yield Xn(me);
2640
- L.push(ve);
2652
+ I.push(ve);
2641
2653
  }
2642
2654
  const X = yield dn({
2643
- images: L,
2655
+ images: I,
2644
2656
  perFrameTime: 1e3
2645
- }), R = yield p == null ? void 0 : p(new File([X], "countdown.gif"));
2657
+ }), _ = yield p == null ? void 0 : p(new File([X], "countdown.gif"));
2646
2658
  f(
2647
2659
  t,
2648
2660
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
2649
- R
2661
+ _
2650
2662
  );
2651
- const oe = Ve(y);
2652
- Ze(
2653
- oe,
2663
+ const re = Ve(y);
2664
+ Ne(
2665
+ re,
2654
2666
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
2655
- R
2656
- ), w.current = oe;
2667
+ _
2668
+ ), w.current = re;
2657
2669
  } catch (G) {
2658
2670
  console.error(G), Wt.error(String(G));
2659
2671
  } finally {
2660
2672
  b(!1);
2661
2673
  }
2662
2674
  });
2663
- return y ? /* @__PURE__ */ T.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ T.createElement(
2675
+ return y ? /* @__PURE__ */ S.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ S.createElement(
2664
2676
  Te.Item,
2665
2677
  {
2666
2678
  name: "0",
2667
2679
  header: A("Image"),
2668
- extra: /* @__PURE__ */ T.createElement(Dt, { loading: a, type: "primary", onClick: x }, A("Save as gif"))
2680
+ extra: /* @__PURE__ */ S.createElement(Dt, { loading: a, type: "primary", onClick: x }, A("Save as gif"))
2669
2681
  },
2670
- /* @__PURE__ */ T.createElement(
2682
+ /* @__PURE__ */ S.createElement(
2671
2683
  ie,
2672
2684
  {
2673
2685
  component: ne.ImageUrl,
@@ -2677,7 +2689,7 @@ function Ht({
2677
2689
  hideInput: !0
2678
2690
  }
2679
2691
  )
2680
- ), /* @__PURE__ */ T.createElement(Te.Item, { name: "3", header: A("Settings") }, /* @__PURE__ */ T.createElement(lt.Row, null, /* @__PURE__ */ T.createElement(lt.Col, { span: 14, style: { textAlign: "right" } }, /* @__PURE__ */ T.createElement(
2692
+ ), /* @__PURE__ */ S.createElement(Te.Item, { name: "3", header: A("Settings") }, /* @__PURE__ */ S.createElement(lt.Row, null, /* @__PURE__ */ S.createElement(lt.Col, { span: 14, style: { textAlign: "right" } }, /* @__PURE__ */ S.createElement(
2681
2693
  ne.NumberField,
2682
2694
  {
2683
2695
  name: "data.remainingTime",
@@ -2693,7 +2705,7 @@ function Ht({
2693
2705
  }
2694
2706
  }
2695
2707
  }
2696
- )), /* @__PURE__ */ T.createElement(lt.Col, { span: 10 }, /* @__PURE__ */ T.createElement(
2708
+ )), /* @__PURE__ */ S.createElement(lt.Col, { span: 10 }, /* @__PURE__ */ S.createElement(
2697
2709
  ne.SelectField,
2698
2710
  {
2699
2711
  name: "data.unit",
@@ -2718,7 +2730,7 @@ function Ht({
2718
2730
  }
2719
2731
  ]
2720
2732
  }
2721
- )))), /* @__PURE__ */ T.createElement(Te.Item, { name: "1", header: A("Colors") }, /* @__PURE__ */ T.createElement(
2733
+ )))), /* @__PURE__ */ S.createElement(Te.Item, { name: "1", header: A("Colors") }, /* @__PURE__ */ S.createElement(
2722
2734
  ie,
2723
2735
  {
2724
2736
  component: ne.ColorPickerField,
@@ -2726,7 +2738,7 @@ function Ht({
2726
2738
  name: "color",
2727
2739
  label: A("Text color")
2728
2740
  }
2729
- ), /* @__PURE__ */ T.createElement(
2741
+ ), /* @__PURE__ */ S.createElement(
2730
2742
  ne.SyncChildrenField,
2731
2743
  {
2732
2744
  path: t,
@@ -2734,7 +2746,7 @@ function Ht({
2734
2746
  name: "color",
2735
2747
  childrenFieldName: "color"
2736
2748
  }
2737
- ), /* @__PURE__ */ T.createElement(
2749
+ ), /* @__PURE__ */ S.createElement(
2738
2750
  ie,
2739
2751
  {
2740
2752
  component: ne.ColorPickerField,
@@ -2742,7 +2754,7 @@ function Ht({
2742
2754
  name: "shadow-color",
2743
2755
  label: A("Shadow color")
2744
2756
  }
2745
- ), /* @__PURE__ */ T.createElement(
2757
+ ), /* @__PURE__ */ S.createElement(
2746
2758
  ie,
2747
2759
  {
2748
2760
  component: ne.ColorPickerField,
@@ -2750,7 +2762,7 @@ function Ht({
2750
2762
  name: "grid-color",
2751
2763
  label: A("Grid color")
2752
2764
  }
2753
- ), /* @__PURE__ */ T.createElement(
2765
+ ), /* @__PURE__ */ S.createElement(
2754
2766
  ie,
2755
2767
  {
2756
2768
  component: ne.ColorPickerField,
@@ -2758,14 +2770,14 @@ function Ht({
2758
2770
  name: "background-color",
2759
2771
  label: A("Background color")
2760
2772
  }
2761
- )), /* @__PURE__ */ T.createElement(
2773
+ )), /* @__PURE__ */ S.createElement(
2762
2774
  Te.Item,
2763
2775
  {
2764
2776
  contentStyle: { padding: "28px 13px 8px 13px" },
2765
2777
  name: "2",
2766
2778
  header: A("Dimension")
2767
2779
  },
2768
- /* @__PURE__ */ T.createElement(
2780
+ /* @__PURE__ */ S.createElement(
2769
2781
  ie,
2770
2782
  {
2771
2783
  component: ne.Padding,
@@ -2796,10 +2808,10 @@ var yt = {}, Xr = {
2796
2808
  var x = function(Y, W) {
2797
2809
  var C = Y, D = X[W], M = null, z = 0, Q = null, j = [], U = {}, pe = function(s, c) {
2798
2810
  M = function(i) {
2799
- for (var g = new Array(i), v = 0; v < i; v += 1) {
2800
- g[v] = new Array(i);
2811
+ for (var g = new Array(i), T = 0; T < i; T += 1) {
2812
+ g[T] = new Array(i);
2801
2813
  for (var O = 0; O < i; O += 1)
2802
- g[v][O] = null;
2814
+ g[T][O] = null;
2803
2815
  }
2804
2816
  return g;
2805
2817
  }(z = 4 * C + 17), Z(0, 0), Z(z - 7, 0), Z(0, z - 7), o(), e(), l(s, c), C >= 7 && r(s), Q == null && (Q = u(C, D, j)), m(Q, c);
@@ -2814,36 +2826,36 @@ var yt = {}, Xr = {
2814
2826
  for (var c = 8; c < z - 8; c += 1)
2815
2827
  M[6][c] == null && (M[6][c] = c % 2 == 0);
2816
2828
  }, o = function() {
2817
- for (var s = R.getPatternPosition(C), c = 0; c < s.length; c += 1)
2829
+ for (var s = _.getPatternPosition(C), c = 0; c < s.length; c += 1)
2818
2830
  for (var i = 0; i < s.length; i += 1) {
2819
- var g = s[c], v = s[i];
2820
- if (M[g][v] == null)
2831
+ var g = s[c], T = s[i];
2832
+ if (M[g][T] == null)
2821
2833
  for (var O = -2; O <= 2; O += 1)
2822
2834
  for (var P = -2; P <= 2; P += 1)
2823
- M[g + O][v + P] = O == -2 || O == 2 || P == -2 || P == 2 || O == 0 && P == 0;
2835
+ M[g + O][T + P] = O == -2 || O == 2 || P == -2 || P == 2 || O == 0 && P == 0;
2824
2836
  }
2825
2837
  }, r = function(s) {
2826
- for (var c = R.getBCHTypeNumber(C), i = 0; i < 18; i += 1) {
2838
+ for (var c = _.getBCHTypeNumber(C), i = 0; i < 18; i += 1) {
2827
2839
  var g = !s && (c >> i & 1) == 1;
2828
2840
  M[Math.floor(i / 3)][i % 3 + z - 8 - 3] = g;
2829
2841
  }
2830
2842
  for (i = 0; i < 18; i += 1)
2831
2843
  g = !s && (c >> i & 1) == 1, M[i % 3 + z - 8 - 3][Math.floor(i / 3)] = g;
2832
2844
  }, l = function(s, c) {
2833
- for (var i = D << 3 | c, g = R.getBCHTypeInfo(i), v = 0; v < 15; v += 1) {
2834
- var O = !s && (g >> v & 1) == 1;
2835
- v < 6 ? M[v][8] = O : v < 8 ? M[v + 1][8] = O : M[z - 15 + v][8] = O;
2845
+ for (var i = D << 3 | c, g = _.getBCHTypeInfo(i), T = 0; T < 15; T += 1) {
2846
+ var O = !s && (g >> T & 1) == 1;
2847
+ T < 6 ? M[T][8] = O : T < 8 ? M[T + 1][8] = O : M[z - 15 + T][8] = O;
2836
2848
  }
2837
- for (v = 0; v < 15; v += 1)
2838
- O = !s && (g >> v & 1) == 1, v < 8 ? M[8][z - v - 1] = O : v < 9 ? M[8][15 - v - 1 + 1] = O : M[8][15 - v - 1] = O;
2849
+ for (T = 0; T < 15; T += 1)
2850
+ O = !s && (g >> T & 1) == 1, T < 8 ? M[8][z - T - 1] = O : T < 9 ? M[8][15 - T - 1 + 1] = O : M[8][15 - T - 1] = O;
2839
2851
  M[z - 8][8] = !s;
2840
2852
  }, m = function(s, c) {
2841
- for (var i = -1, g = z - 1, v = 7, O = 0, P = R.getMaskFunction(c), k = z - 1; k > 0; k -= 2)
2853
+ for (var i = -1, g = z - 1, T = 7, O = 0, P = _.getMaskFunction(c), k = z - 1; k > 0; k -= 2)
2842
2854
  for (k == 6 && (k -= 1); ; ) {
2843
2855
  for (var F = 0; F < 2; F += 1)
2844
2856
  if (M[g][k - F] == null) {
2845
- var _ = !1;
2846
- O < s.length && (_ = (s[O] >>> v & 1) == 1), P(g, k - F) && (_ = !_), M[g][k - F] = _, (v -= 1) == -1 && (O += 1, v = 7);
2857
+ var H = !1;
2858
+ O < s.length && (H = (s[O] >>> T & 1) == 1), P(g, k - F) && (H = !H), M[g][k - F] = H, (T -= 1) == -1 && (O += 1, T = 7);
2847
2859
  }
2848
2860
  if ((g += i) < 0 || z <= g) {
2849
2861
  g -= i, i = -i;
@@ -2851,44 +2863,44 @@ var yt = {}, Xr = {
2851
2863
  }
2852
2864
  }
2853
2865
  }, u = function(s, c, i) {
2854
- for (var g = J.getRSBlocks(s, c), v = B(), O = 0; O < i.length; O += 1) {
2866
+ for (var g = J.getRSBlocks(s, c), T = R(), O = 0; O < i.length; O += 1) {
2855
2867
  var P = i[O];
2856
- v.put(P.getMode(), 4), v.put(P.getLength(), R.getLengthInBits(P.getMode(), s)), P.write(v);
2868
+ T.put(P.getMode(), 4), T.put(P.getLength(), _.getLengthInBits(P.getMode(), s)), P.write(T);
2857
2869
  }
2858
2870
  var k = 0;
2859
2871
  for (O = 0; O < g.length; O += 1)
2860
2872
  k += g[O].dataCount;
2861
- if (v.getLengthInBits() > 8 * k)
2862
- throw "code length overflow. (" + v.getLengthInBits() + ">" + 8 * k + ")";
2863
- for (v.getLengthInBits() + 4 <= 8 * k && v.put(0, 4); v.getLengthInBits() % 8 != 0; )
2864
- v.putBit(!1);
2865
- for (; !(v.getLengthInBits() >= 8 * k || (v.put(236, 8), v.getLengthInBits() >= 8 * k)); )
2866
- v.put(17, 8);
2867
- return function(F, _) {
2868
- for (var $ = 0, le = 0, H = 0, ee = new Array(_.length), q = new Array(_.length), te = 0; te < _.length; te += 1) {
2869
- var xe = _[te].dataCount, de = _[te].totalCount - xe;
2870
- le = Math.max(le, xe), H = Math.max(H, de), ee[te] = new Array(xe);
2871
- for (var re = 0; re < ee[te].length; re += 1)
2872
- ee[te][re] = 255 & F.getBuffer()[re + $];
2873
+ if (T.getLengthInBits() > 8 * k)
2874
+ throw "code length overflow. (" + T.getLengthInBits() + ">" + 8 * k + ")";
2875
+ for (T.getLengthInBits() + 4 <= 8 * k && T.put(0, 4); T.getLengthInBits() % 8 != 0; )
2876
+ T.putBit(!1);
2877
+ for (; !(T.getLengthInBits() >= 8 * k || (T.put(236, 8), T.getLengthInBits() >= 8 * k)); )
2878
+ T.put(17, 8);
2879
+ return function(F, H) {
2880
+ for (var $ = 0, le = 0, B = 0, ee = new Array(H.length), q = new Array(H.length), te = 0; te < H.length; te += 1) {
2881
+ var xe = H[te].dataCount, de = H[te].totalCount - xe;
2882
+ le = Math.max(le, xe), B = Math.max(B, de), ee[te] = new Array(xe);
2883
+ for (var oe = 0; oe < ee[te].length; oe += 1)
2884
+ ee[te][oe] = 255 & F.getBuffer()[oe + $];
2873
2885
  $ += xe;
2874
- var ue = R.getErrorCorrectPolynomial(de), ce = V(ee[te], ue.getLength() - 1).mod(ue);
2875
- for (q[te] = new Array(ue.getLength() - 1), re = 0; re < q[te].length; re += 1) {
2876
- var he = re + ce.getLength() - q[te].length;
2877
- q[te][re] = he >= 0 ? ce.getAt(he) : 0;
2886
+ var ue = _.getErrorCorrectPolynomial(de), ce = V(ee[te], ue.getLength() - 1).mod(ue);
2887
+ for (q[te] = new Array(ue.getLength() - 1), oe = 0; oe < q[te].length; oe += 1) {
2888
+ var he = oe + ce.getLength() - q[te].length;
2889
+ q[te][oe] = he >= 0 ? ce.getAt(he) : 0;
2878
2890
  }
2879
2891
  }
2880
2892
  var be = 0;
2881
- for (re = 0; re < _.length; re += 1)
2882
- be += _[re].totalCount;
2883
- var ye = new Array(be), we = 0;
2884
- for (re = 0; re < le; re += 1)
2885
- for (te = 0; te < _.length; te += 1)
2886
- re < ee[te].length && (ye[we] = ee[te][re], we += 1);
2887
- for (re = 0; re < H; re += 1)
2888
- for (te = 0; te < _.length; te += 1)
2889
- re < q[te].length && (ye[we] = q[te][re], we += 1);
2893
+ for (oe = 0; oe < H.length; oe += 1)
2894
+ be += H[oe].totalCount;
2895
+ var ye = new Array(be), Me = 0;
2896
+ for (oe = 0; oe < le; oe += 1)
2897
+ for (te = 0; te < H.length; te += 1)
2898
+ oe < ee[te].length && (ye[Me] = ee[te][oe], Me += 1);
2899
+ for (oe = 0; oe < B; oe += 1)
2900
+ for (te = 0; te < H.length; te += 1)
2901
+ oe < q[te].length && (ye[Me] = q[te][oe], Me += 1);
2890
2902
  return ye;
2891
- }(v, g);
2903
+ }(T, g);
2892
2904
  };
2893
2905
  U.addData = function(s, c) {
2894
2906
  var i = null;
@@ -2918,9 +2930,9 @@ var yt = {}, Xr = {
2918
2930
  }, U.make = function() {
2919
2931
  if (C < 1) {
2920
2932
  for (var s = 1; s < 40; s++) {
2921
- for (var c = J.getRSBlocks(s, D), i = B(), g = 0; g < j.length; g++) {
2922
- var v = j[g];
2923
- i.put(v.getMode(), 4), i.put(v.getLength(), R.getLengthInBits(v.getMode(), s)), v.write(i);
2933
+ for (var c = J.getRSBlocks(s, D), i = R(), g = 0; g < j.length; g++) {
2934
+ var T = j[g];
2935
+ i.put(T.getMode(), 4), i.put(T.getLength(), _.getLengthInBits(T.getMode(), s)), T.write(i);
2924
2936
  }
2925
2937
  var O = 0;
2926
2938
  for (g = 0; g < c.length; g++)
@@ -2933,8 +2945,8 @@ var yt = {}, Xr = {
2933
2945
  pe(!1, function() {
2934
2946
  for (var P = 0, k = 0, F = 0; F < 8; F += 1) {
2935
2947
  pe(!0, F);
2936
- var _ = R.getLostPoint(U);
2937
- (F == 0 || P > _) && (P = _, k = F);
2948
+ var H = _.getLostPoint(U);
2949
+ (F == 0 || P > H) && (P = H, k = F);
2938
2950
  }
2939
2951
  return k;
2940
2952
  }());
@@ -2944,24 +2956,24 @@ var yt = {}, Xr = {
2944
2956
  i += '<table style="', i += " border-width: 0px; border-style: none;", i += " border-collapse: collapse;", i += " padding: 0px; margin: " + (c = c === void 0 ? 4 * s : c) + "px;", i += '">', i += "<tbody>";
2945
2957
  for (var g = 0; g < U.getModuleCount(); g += 1) {
2946
2958
  i += "<tr>";
2947
- for (var v = 0; v < U.getModuleCount(); v += 1)
2948
- i += '<td style="', i += " border-width: 0px; border-style: none;", i += " border-collapse: collapse;", i += " padding: 0px; margin: 0px;", i += " width: " + s + "px;", i += " height: " + s + "px;", i += " background-color: ", i += U.isDark(g, v) ? "#000000" : "#ffffff", i += ";", i += '"/>';
2959
+ for (var T = 0; T < U.getModuleCount(); T += 1)
2960
+ i += '<td style="', i += " border-width: 0px; border-style: none;", i += " border-collapse: collapse;", i += " padding: 0px; margin: 0px;", i += " width: " + s + "px;", i += " height: " + s + "px;", i += " background-color: ", i += U.isDark(g, T) ? "#000000" : "#ffffff", i += ";", i += '"/>';
2949
2961
  i += "</tr>";
2950
2962
  }
2951
2963
  return (i += "</tbody>") + "</table>";
2952
2964
  }, U.createSvgTag = function(s, c, i, g) {
2953
- var v = {};
2954
- typeof arguments[0] == "object" && (s = (v = arguments[0]).cellSize, c = v.margin, i = v.alt, g = v.title), s = s || 2, c = c === void 0 ? 4 * s : c, (i = typeof i == "string" ? { text: i } : i || {}).text = i.text || null, i.id = i.text ? i.id || "qrcode-description" : null, (g = typeof g == "string" ? { text: g } : g || {}).text = g.text || null, g.id = g.text ? g.id || "qrcode-title" : null;
2955
- var O, P, k, F, _ = U.getModuleCount() * s + 2 * c, $ = "";
2956
- for (F = "l" + s + ",0 0," + s + " -" + s + ",0 0,-" + s + "z ", $ += '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"', $ += v.scalable ? "" : ' width="' + _ + 'px" height="' + _ + 'px"', $ += ' viewBox="0 0 ' + _ + " " + _ + '" ', $ += ' preserveAspectRatio="xMinYMin meet"', $ += g.text || i.text ? ' role="img" aria-labelledby="' + N([g.id, i.id].join(" ").trim()) + '"' : "", $ += ">", $ += g.text ? '<title id="' + N(g.id) + '">' + N(g.text) + "</title>" : "", $ += i.text ? '<description id="' + N(i.id) + '">' + N(i.text) + "</description>" : "", $ += '<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>', $ += '<path d="', P = 0; P < U.getModuleCount(); P += 1)
2965
+ var T = {};
2966
+ typeof arguments[0] == "object" && (s = (T = arguments[0]).cellSize, c = T.margin, i = T.alt, g = T.title), s = s || 2, c = c === void 0 ? 4 * s : c, (i = typeof i == "string" ? { text: i } : i || {}).text = i.text || null, i.id = i.text ? i.id || "qrcode-description" : null, (g = typeof g == "string" ? { text: g } : g || {}).text = g.text || null, g.id = g.text ? g.id || "qrcode-title" : null;
2967
+ var O, P, k, F, H = U.getModuleCount() * s + 2 * c, $ = "";
2968
+ for (F = "l" + s + ",0 0," + s + " -" + s + ",0 0,-" + s + "z ", $ += '<svg version="1.1" xmlns="http://www.w3.org/2000/svg"', $ += T.scalable ? "" : ' width="' + H + 'px" height="' + H + 'px"', $ += ' viewBox="0 0 ' + H + " " + H + '" ', $ += ' preserveAspectRatio="xMinYMin meet"', $ += g.text || i.text ? ' role="img" aria-labelledby="' + N([g.id, i.id].join(" ").trim()) + '"' : "", $ += ">", $ += g.text ? '<title id="' + N(g.id) + '">' + N(g.text) + "</title>" : "", $ += i.text ? '<description id="' + N(i.id) + '">' + N(i.text) + "</description>" : "", $ += '<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>', $ += '<path d="', P = 0; P < U.getModuleCount(); P += 1)
2957
2969
  for (k = P * s + c, O = 0; O < U.getModuleCount(); O += 1)
2958
2970
  U.isDark(P, O) && ($ += "M" + (O * s + c) + "," + k + F);
2959
2971
  return ($ += '" stroke="transparent" fill="black"/>') + "</svg>";
2960
2972
  }, U.createDataURL = function(s, c) {
2961
2973
  s = s || 2, c = c === void 0 ? 4 * s : c;
2962
- var i = U.getModuleCount() * s + 2 * c, g = c, v = i - c;
2974
+ var i = U.getModuleCount() * s + 2 * c, g = c, T = i - c;
2963
2975
  return Ye(i, i, function(O, P) {
2964
- if (g <= O && O < v && g <= P && P < v) {
2976
+ if (g <= O && O < T && g <= P && P < T) {
2965
2977
  var k = Math.floor((O - g) / s), F = Math.floor((P - g) / s);
2966
2978
  return U.isDark(F, k) ? 0 : 1;
2967
2979
  }
@@ -2969,8 +2981,8 @@ var yt = {}, Xr = {
2969
2981
  });
2970
2982
  }, U.createImgTag = function(s, c, i) {
2971
2983
  s = s || 2, c = c === void 0 ? 4 * s : c;
2972
- var g = U.getModuleCount() * s + 2 * c, v = "";
2973
- return v += "<img", v += ' src="', v += U.createDataURL(s, c), v += '"', v += ' width="', v += g, v += '"', v += ' height="', v += g, v += '"', i && (v += ' alt="', v += N(i), v += '"'), v + "/>";
2984
+ var g = U.getModuleCount() * s + 2 * c, T = "";
2985
+ return T += "<img", T += ' src="', T += U.createDataURL(s, c), T += '"', T += ' width="', T += g, T += '"', T += ' height="', T += g, T += '"', i && (T += ' alt="', T += N(i), T += '"'), T + "/>";
2974
2986
  };
2975
2987
  var N = function(s) {
2976
2988
  for (var c = "", i = 0; i < s.length; i += 1) {
@@ -2998,30 +3010,30 @@ var yt = {}, Xr = {
2998
3010
  if ((s = s || 1) < 2)
2999
3011
  return function(ee) {
3000
3012
  ee = ee === void 0 ? 2 : ee;
3001
- var q, te, xe, de, re, ue = 1 * U.getModuleCount() + 2 * ee, ce = ee, he = ue - ee, be = { "██": "█", "█ ": "▀", " █": "▄", " ": " " }, ye = { "██": "▀", "█ ": "▀", " █": " ", " ": " " }, we = "";
3013
+ var q, te, xe, de, oe, ue = 1 * U.getModuleCount() + 2 * ee, ce = ee, he = ue - ee, be = { "██": "█", "█ ": "▀", " █": "▄", " ": " " }, ye = { "██": "▀", "█ ": "▀", " █": " ", " ": " " }, Me = "";
3002
3014
  for (q = 0; q < ue; q += 2) {
3003
3015
  for (xe = Math.floor((q - ce) / 1), de = Math.floor((q + 1 - ce) / 1), te = 0; te < ue; te += 1)
3004
- re = "█", ce <= te && te < he && ce <= q && q < he && U.isDark(xe, Math.floor((te - ce) / 1)) && (re = " "), ce <= te && te < he && ce <= q + 1 && q + 1 < he && U.isDark(de, Math.floor((te - ce) / 1)) ? re += " " : re += "█", we += ee < 1 && q + 1 >= he ? ye[re] : be[re];
3005
- we += `
3016
+ oe = "█", ce <= te && te < he && ce <= q && q < he && U.isDark(xe, Math.floor((te - ce) / 1)) && (oe = " "), ce <= te && te < he && ce <= q + 1 && q + 1 < he && U.isDark(de, Math.floor((te - ce) / 1)) ? oe += " " : oe += "█", Me += ee < 1 && q + 1 >= he ? ye[oe] : be[oe];
3017
+ Me += `
3006
3018
  `;
3007
3019
  }
3008
- return ue % 2 && ee > 0 ? we.substring(0, we.length - ue - 1) + Array(ue + 1).join("▀") : we.substring(0, we.length - 1);
3020
+ return ue % 2 && ee > 0 ? Me.substring(0, Me.length - ue - 1) + Array(ue + 1).join("▀") : Me.substring(0, Me.length - 1);
3009
3021
  }(c);
3010
3022
  s -= 1, c = c === void 0 ? 2 * s : c;
3011
- var i, g, v, O, P = U.getModuleCount() * s + 2 * c, k = c, F = P - c, _ = Array(s + 1).join("██"), $ = Array(s + 1).join(" "), le = "", H = "";
3023
+ var i, g, T, O, P = U.getModuleCount() * s + 2 * c, k = c, F = P - c, H = Array(s + 1).join("██"), $ = Array(s + 1).join(" "), le = "", B = "";
3012
3024
  for (i = 0; i < P; i += 1) {
3013
- for (v = Math.floor((i - k) / s), H = "", g = 0; g < P; g += 1)
3014
- O = 1, k <= g && g < F && k <= i && i < F && U.isDark(v, Math.floor((g - k) / s)) && (O = 0), H += O ? _ : $;
3015
- for (v = 0; v < s; v += 1)
3016
- le += H + `
3025
+ for (T = Math.floor((i - k) / s), B = "", g = 0; g < P; g += 1)
3026
+ O = 1, k <= g && g < F && k <= i && i < F && U.isDark(T, Math.floor((g - k) / s)) && (O = 0), B += O ? H : $;
3027
+ for (T = 0; T < s; T += 1)
3028
+ le += B + `
3017
3029
  `;
3018
3030
  }
3019
3031
  return le.substring(0, le.length - 1);
3020
3032
  }, U.renderTo2dContext = function(s, c) {
3021
3033
  c = c || 2;
3022
3034
  for (var i = U.getModuleCount(), g = 0; g < i; g++)
3023
- for (var v = 0; v < i; v++)
3024
- s.fillStyle = U.isDark(g, v) ? "black" : "white", s.fillRect(g * c, v * c, c, c);
3035
+ for (var T = 0; T < i; T++)
3036
+ s.fillStyle = U.isDark(g, T) ? "black" : "white", s.fillRect(g * c, T * c, c, c);
3025
3037
  }, U;
3026
3038
  };
3027
3039
  x.stringToBytes = (x.stringToBytesFuncs = { default: function(Y) {
@@ -3061,21 +3073,21 @@ var yt = {}, Xr = {
3061
3073
  return z;
3062
3074
  };
3063
3075
  };
3064
- var G, L, K, I, S, X = { L: 1, M: 0, Q: 3, H: 2 }, R = (G = [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], L = 1335, K = 7973, S = function(Y) {
3076
+ var G, I, K, L, v, X = { L: 1, M: 0, Q: 3, H: 2 }, _ = (G = [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]], I = 1335, K = 7973, v = function(Y) {
3065
3077
  for (var W = 0; Y != 0; )
3066
3078
  W += 1, Y >>>= 1;
3067
3079
  return W;
3068
- }, (I = {}).getBCHTypeInfo = function(Y) {
3069
- for (var W = Y << 10; S(W) - S(L) >= 0; )
3070
- W ^= L << S(W) - S(L);
3080
+ }, (L = {}).getBCHTypeInfo = function(Y) {
3081
+ for (var W = Y << 10; v(W) - v(I) >= 0; )
3082
+ W ^= I << v(W) - v(I);
3071
3083
  return 21522 ^ (Y << 10 | W);
3072
- }, I.getBCHTypeNumber = function(Y) {
3073
- for (var W = Y << 12; S(W) - S(K) >= 0; )
3074
- W ^= K << S(W) - S(K);
3084
+ }, L.getBCHTypeNumber = function(Y) {
3085
+ for (var W = Y << 12; v(W) - v(K) >= 0; )
3086
+ W ^= K << v(W) - v(K);
3075
3087
  return Y << 12 | W;
3076
- }, I.getPatternPosition = function(Y) {
3088
+ }, L.getPatternPosition = function(Y) {
3077
3089
  return G[Y - 1];
3078
- }, I.getMaskFunction = function(Y) {
3090
+ }, L.getMaskFunction = function(Y) {
3079
3091
  switch (Y) {
3080
3092
  case 0:
3081
3093
  return function(W, C) {
@@ -3112,11 +3124,11 @@ var yt = {}, Xr = {
3112
3124
  default:
3113
3125
  throw "bad maskPattern:" + Y;
3114
3126
  }
3115
- }, I.getErrorCorrectPolynomial = function(Y) {
3127
+ }, L.getErrorCorrectPolynomial = function(Y) {
3116
3128
  for (var W = V([1], 0), C = 0; C < Y; C += 1)
3117
- W = W.multiply(V([1, oe.gexp(C)], 0));
3129
+ W = W.multiply(V([1, re.gexp(C)], 0));
3118
3130
  return W;
3119
- }, I.getLengthInBits = function(Y, W) {
3131
+ }, L.getLengthInBits = function(Y, W) {
3120
3132
  if (1 <= W && W < 10)
3121
3133
  switch (Y) {
3122
3134
  case 1:
@@ -3158,7 +3170,7 @@ var yt = {}, Xr = {
3158
3170
  throw "mode:" + Y;
3159
3171
  }
3160
3172
  }
3161
- }, I.getLostPoint = function(Y) {
3173
+ }, L.getLostPoint = function(Y) {
3162
3174
  for (var W = Y.getModuleCount(), C = 0, D = 0; D < W; D += 1)
3163
3175
  for (var M = 0; M < W; M += 1) {
3164
3176
  for (var z = 0, Q = Y.isDark(D, M), j = -1; j <= 1; j += 1)
@@ -3183,7 +3195,7 @@ var yt = {}, Xr = {
3183
3195
  for (D = 0; D < W; D += 1)
3184
3196
  Y.isDark(D, M) && (Z += 1);
3185
3197
  return C + Math.abs(100 * Z / W / W - 50) / 5 * 10;
3186
- }, I), oe = function() {
3198
+ }, L), re = function() {
3187
3199
  for (var Y = new Array(256), W = new Array(256), C = 0; C < 8; C += 1)
3188
3200
  Y[C] = 1 << C;
3189
3201
  for (C = 8; C < 256; C += 1)
@@ -3218,15 +3230,15 @@ var yt = {}, Xr = {
3218
3230
  }, multiply: function(M) {
3219
3231
  for (var z = new Array(D.getLength() + M.getLength() - 1), Q = 0; Q < D.getLength(); Q += 1)
3220
3232
  for (var j = 0; j < M.getLength(); j += 1)
3221
- z[Q + j] ^= oe.gexp(oe.glog(D.getAt(Q)) + oe.glog(M.getAt(j)));
3233
+ z[Q + j] ^= re.gexp(re.glog(D.getAt(Q)) + re.glog(M.getAt(j)));
3222
3234
  return V(z, 0);
3223
3235
  }, mod: function(M) {
3224
3236
  if (D.getLength() - M.getLength() < 0)
3225
3237
  return D;
3226
- for (var z = oe.glog(D.getAt(0)) - oe.glog(M.getAt(0)), Q = new Array(D.getLength()), j = 0; j < D.getLength(); j += 1)
3238
+ for (var z = re.glog(D.getAt(0)) - re.glog(M.getAt(0)), Q = new Array(D.getLength()), j = 0; j < D.getLength(); j += 1)
3227
3239
  Q[j] = D.getAt(j);
3228
3240
  for (j = 0; j < M.getLength(); j += 1)
3229
- Q[j] ^= oe.gexp(oe.glog(M.getAt(j)) + z);
3241
+ Q[j] ^= re.gexp(re.glog(M.getAt(j)) + z);
3230
3242
  return V(Q, 0).mod(M);
3231
3243
  } };
3232
3244
  return D;
@@ -3258,7 +3270,7 @@ var yt = {}, Xr = {
3258
3270
  return j;
3259
3271
  } };
3260
3272
  return C;
3261
- }(), B = function() {
3273
+ }(), R = function() {
3262
3274
  var Y = [], W = 0, C = { getBuffer: function() {
3263
3275
  return Y;
3264
3276
  }, getAt: function(D) {
@@ -3433,10 +3445,10 @@ var yt = {}, Xr = {
3433
3445
  s.writeByte(255), s.writeBytes(c, i, 255), i += 255;
3434
3446
  s.writeByte(c.length - i), s.writeBytes(c, i, c.length - i), s.writeByte(0), s.writeString(";");
3435
3447
  } }, u = function(s) {
3436
- for (var c = 1 << s, i = 1 + (1 << s), g = s + 1, v = N(), O = 0; O < c; O += 1)
3437
- v.add(String.fromCharCode(O));
3438
- v.add(String.fromCharCode(c)), v.add(String.fromCharCode(i));
3439
- var P, k, F, _ = Le(), $ = (P = _, k = 0, F = 0, { write: function(q, te) {
3448
+ for (var c = 1 << s, i = 1 + (1 << s), g = s + 1, T = N(), O = 0; O < c; O += 1)
3449
+ T.add(String.fromCharCode(O));
3450
+ T.add(String.fromCharCode(c)), T.add(String.fromCharCode(i));
3451
+ var P, k, F, H = Le(), $ = (P = H, k = 0, F = 0, { write: function(q, te) {
3440
3452
  if (q >>> te)
3441
3453
  throw "length over";
3442
3454
  for (; k + te >= 8; )
@@ -3446,12 +3458,12 @@ var yt = {}, Xr = {
3446
3458
  k > 0 && P.writeByte(F);
3447
3459
  } });
3448
3460
  $.write(c, g);
3449
- var le = 0, H = String.fromCharCode(l[le]);
3461
+ var le = 0, B = String.fromCharCode(l[le]);
3450
3462
  for (le += 1; le < l.length; ) {
3451
3463
  var ee = String.fromCharCode(l[le]);
3452
- le += 1, v.contains(H + ee) ? H += ee : ($.write(v.indexOf(H), g), v.size() < 4095 && (v.size() == 1 << g && (g += 1), v.add(H + ee)), H = ee);
3464
+ le += 1, T.contains(B + ee) ? B += ee : ($.write(T.indexOf(B), g), T.size() < 4095 && (T.size() == 1 << g && (g += 1), T.add(B + ee)), B = ee);
3453
3465
  }
3454
- return $.write(v.indexOf(H), g), $.write(i, g), $.flush(), _.toByteArray();
3466
+ return $.write(T.indexOf(B), g), $.write(i, g), $.flush(), H.toByteArray();
3455
3467
  }, N = function() {
3456
3468
  var s = {}, c = 0, i = { add: function(g) {
3457
3469
  if (i.contains(g))
@@ -3508,11 +3520,11 @@ var yt = {}, Xr = {
3508
3520
  }();
3509
3521
  w.stringToBytesFuncs["UTF-8"] = function(x) {
3510
3522
  return function(G) {
3511
- for (var L = [], K = 0; K < G.length; K++) {
3512
- var I = G.charCodeAt(K);
3513
- I < 128 ? L.push(I) : I < 2048 ? L.push(192 | I >> 6, 128 | 63 & I) : I < 55296 || I >= 57344 ? L.push(224 | I >> 12, 128 | I >> 6 & 63, 128 | 63 & I) : (K++, I = 65536 + ((1023 & I) << 10 | 1023 & G.charCodeAt(K)), L.push(240 | I >> 18, 128 | I >> 12 & 63, 128 | I >> 6 & 63, 128 | 63 & I));
3523
+ for (var I = [], K = 0; K < G.length; K++) {
3524
+ var L = G.charCodeAt(K);
3525
+ L < 128 ? I.push(L) : L < 2048 ? I.push(192 | L >> 6, 128 | 63 & L) : L < 55296 || L >= 57344 ? I.push(224 | L >> 12, 128 | L >> 6 & 63, 128 | 63 & L) : (K++, L = 65536 + ((1023 & L) << 10 | 1023 & G.charCodeAt(K)), I.push(240 | L >> 18, 128 | L >> 12 & 63, 128 | L >> 6 & 63, 128 | 63 & L));
3514
3526
  }
3515
- return L;
3527
+ return I;
3516
3528
  }(x);
3517
3529
  }, (b = typeof (a = function() {
3518
3530
  return w;
@@ -3548,7 +3560,7 @@ var yt = {}, Xr = {
3548
3560
  Array.isArray(m) && Array.isArray(u) ? Z[l] = u : x(m) && x(u) ? Z[l] = G(Object.assign({}, m), u) : Z[l] = u;
3549
3561
  }), G.apply(void 0, w([Z], e))) : Z;
3550
3562
  }
3551
- function L(Z, e) {
3563
+ function I(Z, e) {
3552
3564
  var o = document.createElement("a");
3553
3565
  o.download = e, o.href = Z, document.body.appendChild(o), o.click(), document.body.removeChild(o);
3554
3566
  }
@@ -3560,10 +3572,10 @@ var yt = {}, Xr = {
3560
3572
  throw c[1];
3561
3573
  return c[1];
3562
3574
  }, trys: [], ops: [] };
3563
- return i = { next: v(0), throw: v(1), return: v(2) }, typeof Symbol == "function" && (i[Symbol.iterator] = function() {
3575
+ return i = { next: T(0), throw: T(1), return: T(2) }, typeof Symbol == "function" && (i[Symbol.iterator] = function() {
3564
3576
  return this;
3565
3577
  }), i;
3566
- function v(O) {
3578
+ function T(O) {
3567
3579
  return function(P) {
3568
3580
  return function(k) {
3569
3581
  if (N)
@@ -3645,17 +3657,17 @@ var yt = {}, Xr = {
3645
3657
  }
3646
3658
  function c(i) {
3647
3659
  var g;
3648
- i.done ? m(i.value) : (g = i.value, g instanceof r ? g : new r(function(v) {
3649
- v(g);
3660
+ i.done ? m(i.value) : (g = i.value, g instanceof r ? g : new r(function(T) {
3661
+ T(g);
3650
3662
  })).then(N, s);
3651
3663
  }
3652
3664
  c((l = l.apply(e, o || [])).next());
3653
3665
  });
3654
3666
  var e, o, r, l;
3655
3667
  }
3656
- const I = { L: 0.07, M: 0.15, Q: 0.25, H: 0.3 };
3657
- var S = function() {
3658
- return (S = Object.assign || function(Z) {
3668
+ const L = { L: 0.07, M: 0.15, Q: 0.25, H: 0.3 };
3669
+ var v = function() {
3670
+ return (v = Object.assign || function(Z) {
3659
3671
  for (var e, o = 1, r = arguments.length; o < r; o++)
3660
3672
  for (var l in e = arguments[o])
3661
3673
  Object.prototype.hasOwnProperty.call(e, l) && (Z[l] = e[l]);
@@ -3695,32 +3707,32 @@ var yt = {}, Xr = {
3695
3707
  (0, e.draw)(), (o = this._element) === null || o === void 0 || o.setAttribute("transform", "rotate(" + 180 * N / Math.PI + "," + s + "," + c + ")");
3696
3708
  }, Z.prototype._basicDot = function(e) {
3697
3709
  var o = this, r = e.size, l = e.x, m = e.y;
3698
- this._rotateFigure(S(S({}, e), { draw: function() {
3710
+ this._rotateFigure(v(v({}, e), { draw: function() {
3699
3711
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "circle"), o._element.setAttribute("cx", String(l + r / 2)), o._element.setAttribute("cy", String(m + r / 2)), o._element.setAttribute("r", String(r / 2));
3700
3712
  } }));
3701
3713
  }, Z.prototype._basicSquare = function(e) {
3702
3714
  var o = this, r = e.size, l = e.x, m = e.y;
3703
- this._rotateFigure(S(S({}, e), { draw: function() {
3715
+ this._rotateFigure(v(v({}, e), { draw: function() {
3704
3716
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "rect"), o._element.setAttribute("x", String(l)), o._element.setAttribute("y", String(m)), o._element.setAttribute("width", String(r)), o._element.setAttribute("height", String(r));
3705
3717
  } }));
3706
3718
  }, Z.prototype._basicSideRounded = function(e) {
3707
3719
  var o = this, r = e.size, l = e.x, m = e.y;
3708
- this._rotateFigure(S(S({}, e), { draw: function() {
3720
+ this._rotateFigure(v(v({}, e), { draw: function() {
3709
3721
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("d", "M " + l + " " + m + "v " + r + "h " + r / 2 + "a " + r / 2 + " " + r / 2 + ", 0, 0, 0, 0 " + -r);
3710
3722
  } }));
3711
3723
  }, Z.prototype._basicCornerRounded = function(e) {
3712
3724
  var o = this, r = e.size, l = e.x, m = e.y;
3713
- this._rotateFigure(S(S({}, e), { draw: function() {
3725
+ this._rotateFigure(v(v({}, e), { draw: function() {
3714
3726
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("d", "M " + l + " " + m + "v " + r + "h " + r + "v " + -r / 2 + "a " + r / 2 + " " + r / 2 + ", 0, 0, 0, " + -r / 2 + " " + -r / 2);
3715
3727
  } }));
3716
3728
  }, Z.prototype._basicCornerExtraRounded = function(e) {
3717
3729
  var o = this, r = e.size, l = e.x, m = e.y;
3718
- this._rotateFigure(S(S({}, e), { draw: function() {
3730
+ this._rotateFigure(v(v({}, e), { draw: function() {
3719
3731
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("d", "M " + l + " " + m + "v " + r + "h " + r + "a " + r + " " + r + ", 0, 0, 0, " + -r + " " + -r);
3720
3732
  } }));
3721
3733
  }, Z.prototype._basicCornersRounded = function(e) {
3722
3734
  var o = this, r = e.size, l = e.x, m = e.y;
3723
- this._rotateFigure(S(S({}, e), { draw: function() {
3735
+ this._rotateFigure(v(v({}, e), { draw: function() {
3724
3736
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("d", "M " + l + " " + m + "v " + r / 2 + "a " + r / 2 + " " + r / 2 + ", 0, 0, 0, " + r / 2 + " " + r / 2 + "h " + r / 2 + "v " + -r / 2 + "a " + r / 2 + " " + r / 2 + ", 0, 0, 0, " + -r / 2 + " " + -r / 2);
3725
3737
  } }));
3726
3738
  }, Z.prototype._drawDot = function(e) {
@@ -3767,15 +3779,15 @@ var yt = {}, Xr = {
3767
3779
  u + N + s + c !== 0 ? u || s ? N || c ? this._basicSquare({ x: o, y: r, size: l, rotation: 0 }) : this._basicCornerExtraRounded({ x: o, y: r, size: l, rotation: Math.PI / 2 }) : this._basicCornerExtraRounded({ x: o, y: r, size: l, rotation: -Math.PI / 2 }) : this._basicCornersRounded({ x: o, y: r, size: l, rotation: Math.PI / 2 });
3768
3780
  }, Z;
3769
3781
  }();
3770
- var R = function() {
3771
- return (R = Object.assign || function(Z) {
3782
+ var _ = function() {
3783
+ return (_ = Object.assign || function(Z) {
3772
3784
  for (var e, o = 1, r = arguments.length; o < r; o++)
3773
3785
  for (var l in e = arguments[o])
3774
3786
  Object.prototype.hasOwnProperty.call(e, l) && (Z[l] = e[l]);
3775
3787
  return Z;
3776
3788
  }).apply(this, arguments);
3777
3789
  };
3778
- const oe = function() {
3790
+ const re = function() {
3779
3791
  function Z(e) {
3780
3792
  var o = e.svg, r = e.type;
3781
3793
  this._svg = o, this._type = r;
@@ -3799,17 +3811,17 @@ var yt = {}, Xr = {
3799
3811
  (0, e.draw)(), (o = this._element) === null || o === void 0 || o.setAttribute("transform", "rotate(" + 180 * N / Math.PI + "," + s + "," + c + ")");
3800
3812
  }, Z.prototype._basicDot = function(e) {
3801
3813
  var o = this, r = e.size, l = e.x, m = e.y, u = r / 7;
3802
- this._rotateFigure(R(R({}, e), { draw: function() {
3814
+ this._rotateFigure(_(_({}, e), { draw: function() {
3803
3815
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("clip-rule", "evenodd"), o._element.setAttribute("d", "M " + (l + r / 2) + " " + m + "a " + r / 2 + " " + r / 2 + " 0 1 0 0.1 0zm 0 " + u + "a " + (r / 2 - u) + " " + (r / 2 - u) + " 0 1 1 -0.1 0Z");
3804
3816
  } }));
3805
3817
  }, Z.prototype._basicSquare = function(e) {
3806
3818
  var o = this, r = e.size, l = e.x, m = e.y, u = r / 7;
3807
- this._rotateFigure(R(R({}, e), { draw: function() {
3819
+ this._rotateFigure(_(_({}, e), { draw: function() {
3808
3820
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("clip-rule", "evenodd"), o._element.setAttribute("d", "M " + l + " " + m + "v " + r + "h " + r + "v " + -r + "zM " + (l + u) + " " + (m + u) + "h " + (r - 2 * u) + "v " + (r - 2 * u) + "h " + (2 * u - r) + "z");
3809
3821
  } }));
3810
3822
  }, Z.prototype._basicExtraRounded = function(e) {
3811
3823
  var o = this, r = e.size, l = e.x, m = e.y, u = r / 7;
3812
- this._rotateFigure(R(R({}, e), { draw: function() {
3824
+ this._rotateFigure(_(_({}, e), { draw: function() {
3813
3825
  o._element = document.createElementNS("http://www.w3.org/2000/svg", "path"), o._element.setAttribute("clip-rule", "evenodd"), o._element.setAttribute("d", "M " + l + " " + (m + 2.5 * u) + "v " + 2 * u + "a " + 2.5 * u + " " + 2.5 * u + ", 0, 0, 0, " + 2.5 * u + " " + 2.5 * u + "h " + 2 * u + "a " + 2.5 * u + " " + 2.5 * u + ", 0, 0, 0, " + 2.5 * u + " " + 2.5 * -u + "v " + -2 * u + "a " + 2.5 * u + " " + 2.5 * u + ", 0, 0, 0, " + 2.5 * -u + " " + 2.5 * -u + "h " + -2 * u + "a " + 2.5 * u + " " + 2.5 * u + ", 0, 0, 0, " + 2.5 * -u + " " + 2.5 * u + "M " + (l + 2.5 * u) + " " + (m + u) + "h " + 2 * u + "a " + 1.5 * u + " " + 1.5 * u + ", 0, 0, 1, " + 1.5 * u + " " + 1.5 * u + "v " + 2 * u + "a " + 1.5 * u + " " + 1.5 * u + ", 0, 0, 1, " + 1.5 * -u + " " + 1.5 * u + "h " + -2 * u + "a " + 1.5 * u + " " + 1.5 * u + ", 0, 0, 1, " + 1.5 * -u + " " + 1.5 * -u + "v " + -2 * u + "a " + 1.5 * u + " " + 1.5 * u + ", 0, 0, 1, " + 1.5 * u + " " + 1.5 * -u);
3814
3826
  } }));
3815
3827
  }, Z.prototype._drawDot = function(e) {
@@ -3867,7 +3879,7 @@ var yt = {}, Xr = {
3867
3879
  var o = e.x, r = e.y, l = e.size, m = e.rotation;
3868
3880
  this._basicSquare({ x: o, y: r, size: l, rotation: m });
3869
3881
  }, Z;
3870
- }(), B = "circle";
3882
+ }(), R = "circle";
3871
3883
  var E = function(Z, e, o, r) {
3872
3884
  return new (o || (o = Promise))(function(l, m) {
3873
3885
  function u(c) {
@@ -3968,25 +3980,25 @@ var yt = {}, Xr = {
3968
3980
  return this._element;
3969
3981
  }, Z.prototype.drawQR = function(e) {
3970
3982
  return E(this, void 0, void 0, function() {
3971
- var o, r, l, m, u, N, s, c, i, g, v = this;
3983
+ var o, r, l, m, u, N, s, c, i, g, T = this;
3972
3984
  return se(this, function(O) {
3973
3985
  switch (O.label) {
3974
3986
  case 0:
3975
- return o = e.getModuleCount(), r = Math.min(this._options.width, this._options.height) - 2 * this._options.margin, l = this._options.shape === B ? r / Math.sqrt(2) : r, m = Math.floor(l / o), u = { hideXDots: 0, hideYDots: 0, width: 0, height: 0 }, this._qr = e, this._options.image ? [4, this.loadImage()] : [3, 2];
3987
+ return o = e.getModuleCount(), r = Math.min(this._options.width, this._options.height) - 2 * this._options.margin, l = this._options.shape === R ? r / Math.sqrt(2) : r, m = Math.floor(l / o), u = { hideXDots: 0, hideYDots: 0, width: 0, height: 0 }, this._qr = e, this._options.image ? [4, this.loadImage()] : [3, 2];
3976
3988
  case 1:
3977
3989
  if (O.sent(), !this._image)
3978
3990
  return [2];
3979
- N = this._options, s = N.imageOptions, c = N.qrOptions, i = s.imageSize * I[c.errorCorrectionLevel], g = Math.floor(i * o * o), u = function(P) {
3980
- var k = P.originalHeight, F = P.originalWidth, _ = P.maxHiddenDots, $ = P.maxHiddenAxisDots, le = P.dotSize, H = { x: 0, y: 0 }, ee = { x: 0, y: 0 };
3981
- if (k <= 0 || F <= 0 || _ <= 0 || le <= 0)
3991
+ N = this._options, s = N.imageOptions, c = N.qrOptions, i = s.imageSize * L[c.errorCorrectionLevel], g = Math.floor(i * o * o), u = function(P) {
3992
+ var k = P.originalHeight, F = P.originalWidth, H = P.maxHiddenDots, $ = P.maxHiddenAxisDots, le = P.dotSize, B = { x: 0, y: 0 }, ee = { x: 0, y: 0 };
3993
+ if (k <= 0 || F <= 0 || H <= 0 || le <= 0)
3982
3994
  return { height: 0, width: 0, hideYDots: 0, hideXDots: 0 };
3983
3995
  var q = k / F;
3984
- return H.x = Math.floor(Math.sqrt(_ / q)), H.x <= 0 && (H.x = 1), $ && $ < H.x && (H.x = $), H.x % 2 == 0 && H.x--, ee.x = H.x * le, H.y = 1 + 2 * Math.ceil((H.x * q - 1) / 2), ee.y = Math.round(ee.x * q), (H.y * H.x > _ || $ && $ < H.y) && ($ && $ < H.y ? (H.y = $, H.y % 2 == 0 && H.x--) : H.y -= 2, ee.y = H.y * le, H.x = 1 + 2 * Math.ceil((H.y / q - 1) / 2), ee.x = Math.round(ee.y / q)), { height: ee.y, width: ee.x, hideYDots: H.y, hideXDots: H.x };
3996
+ return B.x = Math.floor(Math.sqrt(H / q)), B.x <= 0 && (B.x = 1), $ && $ < B.x && (B.x = $), B.x % 2 == 0 && B.x--, ee.x = B.x * le, B.y = 1 + 2 * Math.ceil((B.x * q - 1) / 2), ee.y = Math.round(ee.x * q), (B.y * B.x > H || $ && $ < B.y) && ($ && $ < B.y ? (B.y = $, B.y % 2 == 0 && B.x--) : B.y -= 2, ee.y = B.y * le, B.x = 1 + 2 * Math.ceil((B.y / q - 1) / 2), ee.x = Math.round(ee.y / q)), { height: ee.y, width: ee.x, hideYDots: B.y, hideXDots: B.x };
3985
3997
  }({ originalWidth: this._image.width, originalHeight: this._image.height, maxHiddenDots: g, maxHiddenAxisDots: o - 14, dotSize: m }), O.label = 2;
3986
3998
  case 2:
3987
3999
  return this.drawBackground(), this.drawDots(function(P, k) {
3988
- var F, _, $, le, H, ee;
3989
- return !(v._options.imageOptions.hideBackgroundDots && P >= (o - u.hideXDots) / 2 && P < (o + u.hideXDots) / 2 && k >= (o - u.hideYDots) / 2 && k < (o + u.hideYDots) / 2 || !((F = me[P]) === null || F === void 0) && F[k] || !((_ = me[P - o + 7]) === null || _ === void 0) && _[k] || !(($ = me[P]) === null || $ === void 0) && $[k - o + 7] || !((le = ve[P]) === null || le === void 0) && le[k] || !((H = ve[P - o + 7]) === null || H === void 0) && H[k] || !((ee = ve[P]) === null || ee === void 0) && ee[k - o + 7]);
4000
+ var F, H, $, le, B, ee;
4001
+ return !(T._options.imageOptions.hideBackgroundDots && P >= (o - u.hideXDots) / 2 && P < (o + u.hideXDots) / 2 && k >= (o - u.hideYDots) / 2 && k < (o + u.hideYDots) / 2 || !((F = me[P]) === null || F === void 0) && F[k] || !((H = me[P - o + 7]) === null || H === void 0) && H[k] || !(($ = me[P]) === null || $ === void 0) && $[k - o + 7] || !((le = ve[P]) === null || le === void 0) && le[k] || !((B = ve[P - o + 7]) === null || B === void 0) && B[k] || !((ee = ve[P]) === null || ee === void 0) && ee[k - o + 7]);
3990
4002
  }), this.drawCorners(), this._options.image ? [4, this.drawImage({ width: u.width, height: u.height, count: o, dotSize: m })] : [3, 4];
3991
4003
  case 3:
3992
4004
  O.sent(), O.label = 4;
@@ -4011,36 +4023,36 @@ var yt = {}, Xr = {
4011
4023
  var m = this._options, u = this._qr.getModuleCount();
4012
4024
  if (u > m.width || u > m.height)
4013
4025
  throw "The canvas is too small.";
4014
- var N = Math.min(m.width, m.height) - 2 * m.margin, s = m.shape === B ? N / Math.sqrt(2) : N, c = Math.floor(s / u), i = Math.floor((m.width - u * c) / 2), g = Math.floor((m.height - u * c) / 2), v = new X({ svg: this._element, type: m.dotsOptions.type });
4026
+ var N = Math.min(m.width, m.height) - 2 * m.margin, s = m.shape === R ? N / Math.sqrt(2) : N, c = Math.floor(s / u), i = Math.floor((m.width - u * c) / 2), g = Math.floor((m.height - u * c) / 2), T = new X({ svg: this._element, type: m.dotsOptions.type });
4015
4027
  this._dotsClipPath = document.createElementNS("http://www.w3.org/2000/svg", "clipPath"), this._dotsClipPath.setAttribute("id", "clip-path-dot-color"), this._defs.appendChild(this._dotsClipPath), this._createColor({ options: (o = m.dotsOptions) === null || o === void 0 ? void 0 : o.gradient, color: m.dotsOptions.color, additionalRotation: 0, x: 0, y: 0, height: m.height, width: m.width, name: "dot-color" });
4016
4028
  for (var O = function(de) {
4017
- for (var re = function(ce) {
4018
- return e && !e(de, ce) ? "continue" : !((r = P._qr) === null || r === void 0) && r.isDark(de, ce) ? (v.draw(i + de * c, g + ce * c, c, function(he, be) {
4029
+ for (var oe = function(ce) {
4030
+ return e && !e(de, ce) ? "continue" : !((r = P._qr) === null || r === void 0) && r.isDark(de, ce) ? (T.draw(i + de * c, g + ce * c, c, function(he, be) {
4019
4031
  return !(de + he < 0 || ce + be < 0 || de + he >= u || ce + be >= u) && !(e && !e(de + he, ce + be)) && !!l._qr && l._qr.isDark(de + he, ce + be);
4020
- }), void (v._element && P._dotsClipPath && P._dotsClipPath.appendChild(v._element))) : "continue";
4032
+ }), void (T._element && P._dotsClipPath && P._dotsClipPath.appendChild(T._element))) : "continue";
4021
4033
  }, ue = 0; ue < u; ue++)
4022
- re(ue);
4034
+ oe(ue);
4023
4035
  }, P = this, k = 0; k < u; k++)
4024
4036
  O(k);
4025
- if (m.shape === B) {
4026
- var F = Math.floor((N / c - u) / 2), _ = u + 2 * F, $ = i - F * c, le = g - F * c, H = [], ee = Math.floor(_ / 2);
4027
- for (k = 0; k < _; k++) {
4028
- H[k] = [];
4029
- for (var q = 0; q < _; q++)
4030
- k >= F - 1 && k <= _ - F && q >= F - 1 && q <= _ - F || Math.sqrt((k - ee) * (k - ee) + (q - ee) * (q - ee)) > ee ? H[k][q] = 0 : H[k][q] = this._qr.isDark(q - 2 * F < 0 ? q : q >= u ? q - 2 * F : q - F, k - 2 * F < 0 ? k : k >= u ? k - 2 * F : k - F) ? 1 : 0;
4037
+ if (m.shape === R) {
4038
+ var F = Math.floor((N / c - u) / 2), H = u + 2 * F, $ = i - F * c, le = g - F * c, B = [], ee = Math.floor(H / 2);
4039
+ for (k = 0; k < H; k++) {
4040
+ B[k] = [];
4041
+ for (var q = 0; q < H; q++)
4042
+ k >= F - 1 && k <= H - F && q >= F - 1 && q <= H - F || Math.sqrt((k - ee) * (k - ee) + (q - ee) * (q - ee)) > ee ? B[k][q] = 0 : B[k][q] = this._qr.isDark(q - 2 * F < 0 ? q : q >= u ? q - 2 * F : q - F, k - 2 * F < 0 ? k : k >= u ? k - 2 * F : k - F) ? 1 : 0;
4031
4043
  }
4032
4044
  var te = function(de) {
4033
- for (var re = function(ce) {
4034
- if (!H[de][ce])
4045
+ for (var oe = function(ce) {
4046
+ if (!B[de][ce])
4035
4047
  return "continue";
4036
- v.draw($ + de * c, le + ce * c, c, function(he, be) {
4048
+ T.draw($ + de * c, le + ce * c, c, function(he, be) {
4037
4049
  var ye;
4038
- return !!(!((ye = H[de + he]) === null || ye === void 0) && ye[ce + be]);
4039
- }), v._element && xe._dotsClipPath && xe._dotsClipPath.appendChild(v._element);
4040
- }, ue = 0; ue < _; ue++)
4041
- re(ue);
4050
+ return !!(!((ye = B[de + he]) === null || ye === void 0) && ye[ce + be]);
4051
+ }), T._element && xe._dotsClipPath && xe._dotsClipPath.appendChild(T._element);
4052
+ }, ue = 0; ue < H; ue++)
4053
+ oe(ue);
4042
4054
  }, xe = this;
4043
- for (k = 0; k < _; k++)
4055
+ for (k = 0; k < H; k++)
4044
4056
  te(k);
4045
4057
  }
4046
4058
  }, Z.prototype.drawCorners = function() {
@@ -4050,39 +4062,39 @@ var yt = {}, Xr = {
4050
4062
  var o = this._element, r = this._options;
4051
4063
  if (!o)
4052
4064
  throw "Element code is not defined";
4053
- var l = this._qr.getModuleCount(), m = Math.min(r.width, r.height) - 2 * r.margin, u = r.shape === B ? m / Math.sqrt(2) : m, N = Math.floor(u / l), s = 7 * N, c = 3 * N, i = Math.floor((r.width - l * N) / 2), g = Math.floor((r.height - l * N) / 2);
4054
- [[0, 0, 0], [1, 0, Math.PI / 2], [0, 1, -Math.PI / 2]].forEach(function(v) {
4055
- var O, P, k, F, _, $, le, H, ee, q, te, xe, de = v[0], re = v[1], ue = v[2], ce = i + de * N * (l - 7), he = g + re * N * (l - 7), be = e._dotsClipPath, ye = e._dotsClipPath;
4056
- if ((!((O = r.cornersSquareOptions) === null || O === void 0) && O.gradient || !((P = r.cornersSquareOptions) === null || P === void 0) && P.color) && ((be = document.createElementNS("http://www.w3.org/2000/svg", "clipPath")).setAttribute("id", "clip-path-corners-square-color-" + de + "-" + re), e._defs.appendChild(be), e._cornersSquareClipPath = e._cornersDotClipPath = ye = be, e._createColor({ options: (k = r.cornersSquareOptions) === null || k === void 0 ? void 0 : k.gradient, color: (F = r.cornersSquareOptions) === null || F === void 0 ? void 0 : F.color, additionalRotation: ue, x: ce, y: he, height: s, width: s, name: "corners-square-color-" + de + "-" + re })), (_ = r.cornersSquareOptions) === null || _ === void 0 ? void 0 : _.type) {
4057
- var we = new oe({ svg: e._element, type: r.cornersSquareOptions.type });
4058
- we.draw(ce, he, s, ue), we._element && be && be.appendChild(we._element);
4065
+ var l = this._qr.getModuleCount(), m = Math.min(r.width, r.height) - 2 * r.margin, u = r.shape === R ? m / Math.sqrt(2) : m, N = Math.floor(u / l), s = 7 * N, c = 3 * N, i = Math.floor((r.width - l * N) / 2), g = Math.floor((r.height - l * N) / 2);
4066
+ [[0, 0, 0], [1, 0, Math.PI / 2], [0, 1, -Math.PI / 2]].forEach(function(T) {
4067
+ var O, P, k, F, H, $, le, B, ee, q, te, xe, de = T[0], oe = T[1], ue = T[2], ce = i + de * N * (l - 7), he = g + oe * N * (l - 7), be = e._dotsClipPath, ye = e._dotsClipPath;
4068
+ if ((!((O = r.cornersSquareOptions) === null || O === void 0) && O.gradient || !((P = r.cornersSquareOptions) === null || P === void 0) && P.color) && ((be = document.createElementNS("http://www.w3.org/2000/svg", "clipPath")).setAttribute("id", "clip-path-corners-square-color-" + de + "-" + oe), e._defs.appendChild(be), e._cornersSquareClipPath = e._cornersDotClipPath = ye = be, e._createColor({ options: (k = r.cornersSquareOptions) === null || k === void 0 ? void 0 : k.gradient, color: (F = r.cornersSquareOptions) === null || F === void 0 ? void 0 : F.color, additionalRotation: ue, x: ce, y: he, height: s, width: s, name: "corners-square-color-" + de + "-" + oe })), (H = r.cornersSquareOptions) === null || H === void 0 ? void 0 : H.type) {
4069
+ var Me = new re({ svg: e._element, type: r.cornersSquareOptions.type });
4070
+ Me.draw(ce, he, s, ue), Me._element && be && be.appendChild(Me._element);
4059
4071
  } else
4060
- for (var Ge = new X({ svg: e._element, type: r.dotsOptions.type }), un = function(De) {
4072
+ for (var Ge = new X({ svg: e._element, type: r.dotsOptions.type }), un = function(We) {
4061
4073
  for (var rt = function(Ke) {
4062
- if (!(!(($ = me[De]) === null || $ === void 0) && $[Ke]))
4074
+ if (!(!(($ = me[We]) === null || $ === void 0) && $[Ke]))
4063
4075
  return "continue";
4064
- Ge.draw(ce + De * N, he + Ke * N, N, function(ot, it) {
4076
+ Ge.draw(ce + We * N, he + Ke * N, N, function(ot, it) {
4065
4077
  var Xe;
4066
- return !!(!((Xe = me[De + ot]) === null || Xe === void 0) && Xe[Ke + it]);
4078
+ return !!(!((Xe = me[We + ot]) === null || Xe === void 0) && Xe[Ke + it]);
4067
4079
  }), Ge._element && be && be.appendChild(Ge._element);
4068
- }, ze = 0; ze < me[De].length; ze++)
4080
+ }, ze = 0; ze < me[We].length; ze++)
4069
4081
  rt(ze);
4070
4082
  }, Ee = 0; Ee < me.length; Ee++)
4071
4083
  un(Ee);
4072
- if ((!((le = r.cornersDotOptions) === null || le === void 0) && le.gradient || !((H = r.cornersDotOptions) === null || H === void 0) && H.color) && ((ye = document.createElementNS("http://www.w3.org/2000/svg", "clipPath")).setAttribute("id", "clip-path-corners-dot-color-" + de + "-" + re), e._defs.appendChild(ye), e._cornersDotClipPath = ye, e._createColor({ options: (ee = r.cornersDotOptions) === null || ee === void 0 ? void 0 : ee.gradient, color: (q = r.cornersDotOptions) === null || q === void 0 ? void 0 : q.color, additionalRotation: ue, x: ce + 2 * N, y: he + 2 * N, height: c, width: c, name: "corners-dot-color-" + de + "-" + re })), (te = r.cornersDotOptions) === null || te === void 0 ? void 0 : te.type) {
4084
+ if ((!((le = r.cornersDotOptions) === null || le === void 0) && le.gradient || !((B = r.cornersDotOptions) === null || B === void 0) && B.color) && ((ye = document.createElementNS("http://www.w3.org/2000/svg", "clipPath")).setAttribute("id", "clip-path-corners-dot-color-" + de + "-" + oe), e._defs.appendChild(ye), e._cornersDotClipPath = ye, e._createColor({ options: (ee = r.cornersDotOptions) === null || ee === void 0 ? void 0 : ee.gradient, color: (q = r.cornersDotOptions) === null || q === void 0 ? void 0 : q.color, additionalRotation: ue, x: ce + 2 * N, y: he + 2 * N, height: c, width: c, name: "corners-dot-color-" + de + "-" + oe })), (te = r.cornersDotOptions) === null || te === void 0 ? void 0 : te.type) {
4073
4085
  var nt = new J({ svg: e._element, type: r.cornersDotOptions.type });
4074
4086
  nt.draw(ce + 2 * N, he + 2 * N, c, ue), nt._element && ye && ye.appendChild(nt._element);
4075
4087
  } else {
4076
4088
  Ge = new X({ svg: e._element, type: r.dotsOptions.type });
4077
- var hn = function(De) {
4089
+ var hn = function(We) {
4078
4090
  for (var rt = function(Ke) {
4079
- if (!(!((xe = ve[De]) === null || xe === void 0) && xe[Ke]))
4091
+ if (!(!((xe = ve[We]) === null || xe === void 0) && xe[Ke]))
4080
4092
  return "continue";
4081
- Ge.draw(ce + De * N, he + Ke * N, N, function(ot, it) {
4093
+ Ge.draw(ce + We * N, he + Ke * N, N, function(ot, it) {
4082
4094
  var Xe;
4083
- return !!(!((Xe = ve[De + ot]) === null || Xe === void 0) && Xe[Ke + it]);
4095
+ return !!(!((Xe = ve[We + ot]) === null || Xe === void 0) && Xe[Ke + it]);
4084
4096
  }), Ge._element && ye && ye.appendChild(Ge._element);
4085
- }, ze = 0; ze < ve[De].length; ze++)
4097
+ }, ze = 0; ze < ve[We].length; ze++)
4086
4098
  rt(ze);
4087
4099
  };
4088
4100
  for (Ee = 0; Ee < ve.length; Ee++)
@@ -4102,11 +4114,11 @@ var yt = {}, Xr = {
4102
4114
  }, Z.prototype.drawImage = function(e) {
4103
4115
  var o = e.width, r = e.height, l = e.count, m = e.dotSize;
4104
4116
  return E(this, void 0, void 0, function() {
4105
- var u, N, s, c, i, g, v, O, P;
4117
+ var u, N, s, c, i, g, T, O, P;
4106
4118
  return se(this, function(k) {
4107
4119
  switch (k.label) {
4108
4120
  case 0:
4109
- return u = this._options, N = Math.floor((u.width - l * m) / 2), s = Math.floor((u.height - l * m) / 2), c = N + u.imageOptions.margin + (l * m - o) / 2, i = s + u.imageOptions.margin + (l * m - r) / 2, g = o - 2 * u.imageOptions.margin, v = r - 2 * u.imageOptions.margin, (O = document.createElementNS("http://www.w3.org/2000/svg", "image")).setAttribute("x", String(c)), O.setAttribute("y", String(i)), O.setAttribute("width", g + "px"), O.setAttribute("height", v + "px"), [4, K(u.image || "")];
4121
+ return u = this._options, N = Math.floor((u.width - l * m) / 2), s = Math.floor((u.height - l * m) / 2), c = N + u.imageOptions.margin + (l * m - o) / 2, i = s + u.imageOptions.margin + (l * m - r) / 2, g = o - 2 * u.imageOptions.margin, T = r - 2 * u.imageOptions.margin, (O = document.createElementNS("http://www.w3.org/2000/svg", "image")).setAttribute("x", String(c)), O.setAttribute("y", String(i)), O.setAttribute("width", g + "px"), O.setAttribute("height", T + "px"), [4, K(u.image || "")];
4110
4122
  case 1:
4111
4123
  return P = k.sent(), O.setAttribute("href", P || ""), this._element.appendChild(O), [2];
4112
4124
  }
@@ -4115,17 +4127,17 @@ var yt = {}, Xr = {
4115
4127
  }, Z.prototype._createColor = function(e) {
4116
4128
  var o = e.options, r = e.color, l = e.additionalRotation, m = e.x, u = e.y, N = e.height, s = e.width, c = e.name, i = s > N ? s : N, g = document.createElementNS("http://www.w3.org/2000/svg", "rect");
4117
4129
  if (g.setAttribute("x", String(m)), g.setAttribute("y", String(u)), g.setAttribute("height", String(N)), g.setAttribute("width", String(s)), g.setAttribute("clip-path", "url('#clip-path-" + c + "')"), o) {
4118
- var v;
4130
+ var T;
4119
4131
  if (o.type === "radial")
4120
- (v = document.createElementNS("http://www.w3.org/2000/svg", "radialGradient")).setAttribute("id", c), v.setAttribute("gradientUnits", "userSpaceOnUse"), v.setAttribute("fx", String(m + s / 2)), v.setAttribute("fy", String(u + N / 2)), v.setAttribute("cx", String(m + s / 2)), v.setAttribute("cy", String(u + N / 2)), v.setAttribute("r", String(i / 2));
4132
+ (T = document.createElementNS("http://www.w3.org/2000/svg", "radialGradient")).setAttribute("id", c), T.setAttribute("gradientUnits", "userSpaceOnUse"), T.setAttribute("fx", String(m + s / 2)), T.setAttribute("fy", String(u + N / 2)), T.setAttribute("cx", String(m + s / 2)), T.setAttribute("cy", String(u + N / 2)), T.setAttribute("r", String(i / 2));
4121
4133
  else {
4122
- var O = ((o.rotation || 0) + l) % (2 * Math.PI), P = (O + 2 * Math.PI) % (2 * Math.PI), k = m + s / 2, F = u + N / 2, _ = m + s / 2, $ = u + N / 2;
4123
- P >= 0 && P <= 0.25 * Math.PI || P > 1.75 * Math.PI && P <= 2 * Math.PI ? (k -= s / 2, F -= N / 2 * Math.tan(O), _ += s / 2, $ += N / 2 * Math.tan(O)) : P > 0.25 * Math.PI && P <= 0.75 * Math.PI ? (F -= N / 2, k -= s / 2 / Math.tan(O), $ += N / 2, _ += s / 2 / Math.tan(O)) : P > 0.75 * Math.PI && P <= 1.25 * Math.PI ? (k += s / 2, F += N / 2 * Math.tan(O), _ -= s / 2, $ -= N / 2 * Math.tan(O)) : P > 1.25 * Math.PI && P <= 1.75 * Math.PI && (F += N / 2, k += s / 2 / Math.tan(O), $ -= N / 2, _ -= s / 2 / Math.tan(O)), (v = document.createElementNS("http://www.w3.org/2000/svg", "linearGradient")).setAttribute("id", c), v.setAttribute("gradientUnits", "userSpaceOnUse"), v.setAttribute("x1", String(Math.round(k))), v.setAttribute("y1", String(Math.round(F))), v.setAttribute("x2", String(Math.round(_))), v.setAttribute("y2", String(Math.round($)));
4134
+ var O = ((o.rotation || 0) + l) % (2 * Math.PI), P = (O + 2 * Math.PI) % (2 * Math.PI), k = m + s / 2, F = u + N / 2, H = m + s / 2, $ = u + N / 2;
4135
+ P >= 0 && P <= 0.25 * Math.PI || P > 1.75 * Math.PI && P <= 2 * Math.PI ? (k -= s / 2, F -= N / 2 * Math.tan(O), H += s / 2, $ += N / 2 * Math.tan(O)) : P > 0.25 * Math.PI && P <= 0.75 * Math.PI ? (F -= N / 2, k -= s / 2 / Math.tan(O), $ += N / 2, H += s / 2 / Math.tan(O)) : P > 0.75 * Math.PI && P <= 1.25 * Math.PI ? (k += s / 2, F += N / 2 * Math.tan(O), H -= s / 2, $ -= N / 2 * Math.tan(O)) : P > 1.25 * Math.PI && P <= 1.75 * Math.PI && (F += N / 2, k += s / 2 / Math.tan(O), $ -= N / 2, H -= s / 2 / Math.tan(O)), (T = document.createElementNS("http://www.w3.org/2000/svg", "linearGradient")).setAttribute("id", c), T.setAttribute("gradientUnits", "userSpaceOnUse"), T.setAttribute("x1", String(Math.round(k))), T.setAttribute("y1", String(Math.round(F))), T.setAttribute("x2", String(Math.round(H))), T.setAttribute("y2", String(Math.round($)));
4124
4136
  }
4125
4137
  o.colorStops.forEach(function(le) {
4126
- var H = le.offset, ee = le.color, q = document.createElementNS("http://www.w3.org/2000/svg", "stop");
4127
- q.setAttribute("offset", 100 * H + "%"), q.setAttribute("stop-color", ee), v.appendChild(q);
4128
- }), g.setAttribute("fill", "url('#" + c + "')"), this._defs.appendChild(v);
4138
+ var B = le.offset, ee = le.color, q = document.createElementNS("http://www.w3.org/2000/svg", "stop");
4139
+ q.setAttribute("offset", 100 * B + "%"), q.setAttribute("stop-color", ee), T.appendChild(q);
4140
+ }), g.setAttribute("fill", "url('#" + c + "')"), this._defs.appendChild(T);
4129
4141
  } else
4130
4142
  r && g.setAttribute("fill", r);
4131
4143
  this._element.appendChild(g);
@@ -4338,7 +4350,7 @@ var yt = {}, Xr = {
4338
4350
  return o = "png", r = "qr", typeof e == "string" ? (o = e, console.warn("Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument")) : typeof e == "object" && e !== null && (e.name && (r = e.name), e.extension && (o = e.extension)), [4, this._getElement(o)];
4339
4351
  case 1:
4340
4352
  return (l = N.sent()) ? (o.toLowerCase() === "svg" ? (m = new XMLSerializer(), u = `<?xml version="1.0" standalone="no"?>\r
4341
- ` + (u = m.serializeToString(l)), L("data:image/svg+xml;charset=utf-8," + encodeURIComponent(u), r + ".svg")) : L(l.toDataURL("image/" + o), r + "." + o), [2]) : [2];
4353
+ ` + (u = m.serializeToString(l)), I("data:image/svg+xml;charset=utf-8," + encodeURIComponent(u), r + ".svg")) : I(l.toDataURL("image/" + o), r + "." + o), [2]) : [2];
4342
4354
  }
4343
4355
  });
4344
4356
  });
@@ -4361,17 +4373,17 @@ var yt = {}, Xr = {
4361
4373
  })().default;
4362
4374
  });
4363
4375
  })(Xr);
4364
- const Or = /* @__PURE__ */ Kr(yt), jr = ({ nodePath: t }) => /* @__PURE__ */ T.createElement(vt, null, /* @__PURE__ */ T.createElement(
4376
+ const Or = /* @__PURE__ */ Kr(yt), jr = ({ nodePath: t }) => /* @__PURE__ */ S.createElement(vt, null, /* @__PURE__ */ S.createElement(
4365
4377
  Tt,
4366
4378
  {
4367
- desktop: /* @__PURE__ */ T.createElement(
4379
+ desktop: /* @__PURE__ */ S.createElement(
4368
4380
  _t,
4369
4381
  {
4370
4382
  mode: fe.DESKTOP,
4371
4383
  nodePath: t
4372
4384
  }
4373
4385
  ),
4374
- mobile: /* @__PURE__ */ T.createElement(
4386
+ mobile: /* @__PURE__ */ S.createElement(
4375
4387
  _t,
4376
4388
  {
4377
4389
  mode: fe.MOBILE,
@@ -4384,16 +4396,16 @@ function _t({
4384
4396
  nodePath: t,
4385
4397
  mode: n
4386
4398
  }) {
4387
- const d = en(), { onUpload: p } = Ct(), { setFieldValue: f, getFieldValue: y } = St(), { selectedNode: h, selectedNodePath: a } = Lt(), { setLock: b } = It(), { isChanged: w } = vn(), [x, G] = xt(!1), L = zt(null), K = 600, I = zt(new Or()), S = a && y(
4399
+ const d = en(), { onUpload: p } = Ct(), { setFieldValue: f, getFieldValue: y } = St(), { selectedNode: h, selectedNodePath: a } = Lt(), { setLock: b } = It(), { isChanged: w } = vn(), [x, G] = xt(!1), I = zt(null), K = 600, L = zt(new Or()), v = a && y(
4388
4400
  a,
4389
4401
  n === fe.DESKTOP ? "attributes.dot-color-type" : "mobileAttributes.dot-color-type"
4390
4402
  ) !== "single", X = a && y(
4391
4403
  a,
4392
4404
  n === fe.DESKTOP ? "attributes.corner-dot-color-type" : "mobileAttributes.corner-dot-color-type"
4393
- ) !== "single", R = a && y(
4405
+ ) !== "single", _ = a && y(
4394
4406
  a,
4395
4407
  n === fe.DESKTOP ? "attributes.corner-square-color-type" : "mobileAttributes.corner-square-color-type"
4396
- ) !== "single", oe = xn(() => {
4408
+ ) !== "single", re = xn(() => {
4397
4409
  const E = n === fe.DESKTOP ? h == null ? void 0 : h.attributes : Mn({}, h == null ? void 0 : h.attributes, h == null ? void 0 : h.mobileAttributes);
4398
4410
  if (!E)
4399
4411
  return {};
@@ -4468,7 +4480,7 @@ function _t({
4468
4480
  color: E == null ? void 0 : E["background-color"]
4469
4481
  }
4470
4482
  };
4471
- return _e(L.current, se) ? L.current : (L.current = se, se);
4483
+ return _e(I.current, se) ? I.current : (I.current = se, se);
4472
4484
  }, [
4473
4485
  n,
4474
4486
  h == null ? void 0 : h.attributes,
@@ -4479,9 +4491,9 @@ function _t({
4479
4491
  qe(() => {
4480
4492
  if (!w)
4481
4493
  return;
4482
- I.current.update(oe);
4483
- const B = document.createElement("div");
4484
- document.body.appendChild(B), B.style.position = "absolute", B.style.left = "-9999px", I.current.append(B), I.current.getRawData("png").then((E) => Se(this, null, function* () {
4494
+ L.current.update(re);
4495
+ const R = document.createElement("div");
4496
+ document.body.appendChild(R), R.style.position = "absolute", R.style.left = "-9999px", L.current.append(R), L.current.getRawData("png").then((E) => Ze(this, null, function* () {
4485
4497
  if (E) {
4486
4498
  const se = window.URL.createObjectURL(E);
4487
4499
  yield $t(se), Zn.withoutSaving(d, () => {
@@ -4493,46 +4505,46 @@ function _t({
4493
4505
  });
4494
4506
  }
4495
4507
  })).finally(() => {
4496
- B.remove();
4508
+ R.remove();
4497
4509
  });
4498
- }, [d, w, n, t, oe, f]);
4499
- const V = T.useRef();
4510
+ }, [d, w, n, t, re, f]);
4511
+ const V = S.useRef();
4500
4512
  V.current || (V.current = Ve(h)), qe(() => {
4501
4513
  _e(V.current, h) ? b(!1) : b(!0);
4502
4514
  }, [h, b]);
4503
- const J = () => Se(this, null, function* () {
4515
+ const J = () => Ze(this, null, function* () {
4504
4516
  if (h)
4505
4517
  try {
4506
4518
  G(!0);
4507
- const B = yield I.current.getRawData("png");
4508
- if (!B)
4519
+ const R = yield L.current.getRawData("png");
4520
+ if (!R)
4509
4521
  return;
4510
- const E = yield p == null ? void 0 : p(B);
4522
+ const E = yield p == null ? void 0 : p(R);
4511
4523
  f(
4512
4524
  t,
4513
4525
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
4514
4526
  E
4515
4527
  );
4516
4528
  const se = Ve(h);
4517
- Ze(
4529
+ Ne(
4518
4530
  se,
4519
4531
  n === fe.DESKTOP ? "attributes.src" : "mobileAttributes.src",
4520
4532
  E
4521
4533
  ), V.current = se;
4522
- } catch (B) {
4523
- console.error(B), Wt.error(String(B));
4534
+ } catch (R) {
4535
+ console.error(R), Wt.error(String(R));
4524
4536
  } finally {
4525
4537
  G(!1);
4526
4538
  }
4527
4539
  });
4528
- return h ? /* @__PURE__ */ T.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ T.createElement(
4540
+ return h ? /* @__PURE__ */ S.createElement(Zt, { defaultActiveKey: ["0", "1", "2", "3"] }, /* @__PURE__ */ S.createElement(
4529
4541
  Te.Item,
4530
4542
  {
4531
4543
  name: "0",
4532
4544
  header: A("Image"),
4533
- extra: /* @__PURE__ */ T.createElement(Dt, { loading: x, type: "primary", onClick: J }, A("Save as image"))
4545
+ extra: /* @__PURE__ */ S.createElement(Dt, { loading: x, type: "primary", onClick: J }, A("Save as image"))
4534
4546
  },
4535
- /* @__PURE__ */ T.createElement(
4547
+ /* @__PURE__ */ S.createElement(
4536
4548
  ie,
4537
4549
  {
4538
4550
  component: ne.ImageUrl,
@@ -4542,14 +4554,14 @@ function _t({
4542
4554
  hideInput: !0
4543
4555
  }
4544
4556
  )
4545
- ), /* @__PURE__ */ T.createElement(Te.Item, { name: "3", header: A("Settings") }, /* @__PURE__ */ T.createElement(
4557
+ ), /* @__PURE__ */ S.createElement(Te.Item, { name: "3", header: A("Settings") }, /* @__PURE__ */ S.createElement(
4546
4558
  ne.TextAreaField,
4547
4559
  {
4548
4560
  name: "data.text",
4549
4561
  path: t,
4550
4562
  label: A("Content")
4551
4563
  }
4552
- ), /* @__PURE__ */ T.createElement(
4564
+ ), /* @__PURE__ */ S.createElement(
4553
4565
  ne.ImageUploaderField,
4554
4566
  {
4555
4567
  path: t,
@@ -4558,7 +4570,7 @@ function _t({
4558
4570
  hideInput: !0,
4559
4571
  uploadHandler: p
4560
4572
  }
4561
- ), /* @__PURE__ */ T.createElement(
4573
+ ), /* @__PURE__ */ S.createElement(
4562
4574
  ie,
4563
4575
  {
4564
4576
  component: ne.SliderField,
@@ -4569,7 +4581,7 @@ function _t({
4569
4581
  max: 50,
4570
4582
  label: A("Margin")
4571
4583
  }
4572
- )), /* @__PURE__ */ T.createElement(Te.Item, { name: "1", header: A("Colors") }, /* @__PURE__ */ T.createElement(
4584
+ )), /* @__PURE__ */ S.createElement(Te.Item, { name: "1", header: A("Colors") }, /* @__PURE__ */ S.createElement(
4573
4585
  ne.SyncChildrenField,
4574
4586
  {
4575
4587
  path: t,
@@ -4577,7 +4589,7 @@ function _t({
4577
4589
  name: "color",
4578
4590
  childrenFieldName: "color"
4579
4591
  }
4580
- ), /* @__PURE__ */ T.createElement(
4592
+ ), /* @__PURE__ */ S.createElement(
4581
4593
  ie,
4582
4594
  {
4583
4595
  component: ne.SelectField,
@@ -4611,7 +4623,7 @@ function _t({
4611
4623
  }
4612
4624
  ]
4613
4625
  }
4614
- ), /* @__PURE__ */ T.createElement(
4626
+ ), /* @__PURE__ */ S.createElement(
4615
4627
  ie,
4616
4628
  {
4617
4629
  component: ne.ButtonGroupField,
@@ -4629,7 +4641,7 @@ function _t({
4629
4641
  }
4630
4642
  ]
4631
4643
  }
4632
- ), /* @__PURE__ */ T.createElement(
4644
+ ), /* @__PURE__ */ S.createElement(
4633
4645
  ie,
4634
4646
  {
4635
4647
  component: ne.ColorPickerField,
@@ -4637,7 +4649,7 @@ function _t({
4637
4649
  name: "dot-color",
4638
4650
  label: A("Dot color")
4639
4651
  }
4640
- ), S && /* @__PURE__ */ T.createElement(
4652
+ ), v && /* @__PURE__ */ S.createElement(
4641
4653
  ie,
4642
4654
  {
4643
4655
  component: ne.ColorPickerField,
@@ -4645,7 +4657,7 @@ function _t({
4645
4657
  name: "dot-color-2",
4646
4658
  label: A("Dot color 2")
4647
4659
  }
4648
- ), S && /* @__PURE__ */ T.createElement(
4660
+ ), v && /* @__PURE__ */ S.createElement(
4649
4661
  ie,
4650
4662
  {
4651
4663
  showLimit: !0,
@@ -4656,7 +4668,7 @@ function _t({
4656
4668
  max: 360,
4657
4669
  label: A("Dot rotation")
4658
4670
  }
4659
- ), /* @__PURE__ */ T.createElement(ct, null), /* @__PURE__ */ T.createElement(
4671
+ ), /* @__PURE__ */ S.createElement(ct, null), /* @__PURE__ */ S.createElement(
4660
4672
  ie,
4661
4673
  {
4662
4674
  component: ne.SelectField,
@@ -4678,7 +4690,7 @@ function _t({
4678
4690
  }
4679
4691
  ]
4680
4692
  }
4681
- ), /* @__PURE__ */ T.createElement(
4693
+ ), /* @__PURE__ */ S.createElement(
4682
4694
  ie,
4683
4695
  {
4684
4696
  component: ne.ButtonGroupField,
@@ -4696,7 +4708,7 @@ function _t({
4696
4708
  }
4697
4709
  ]
4698
4710
  }
4699
- ), /* @__PURE__ */ T.createElement(
4711
+ ), /* @__PURE__ */ S.createElement(
4700
4712
  ie,
4701
4713
  {
4702
4714
  component: ne.ColorPickerField,
@@ -4704,7 +4716,7 @@ function _t({
4704
4716
  name: "corner-dot-color",
4705
4717
  label: A("Corner dot color")
4706
4718
  }
4707
- ), X && /* @__PURE__ */ T.createElement(
4719
+ ), X && /* @__PURE__ */ S.createElement(
4708
4720
  ie,
4709
4721
  {
4710
4722
  component: ne.ColorPickerField,
@@ -4712,7 +4724,7 @@ function _t({
4712
4724
  name: "corner-dot-color-2",
4713
4725
  label: A("Corner dot color 2")
4714
4726
  }
4715
- ), X && /* @__PURE__ */ T.createElement(
4727
+ ), X && /* @__PURE__ */ S.createElement(
4716
4728
  ie,
4717
4729
  {
4718
4730
  showLimit: !0,
@@ -4723,7 +4735,7 @@ function _t({
4723
4735
  max: 360,
4724
4736
  label: A("Corner dot rotation")
4725
4737
  }
4726
- ), /* @__PURE__ */ T.createElement(ct, null), /* @__PURE__ */ T.createElement(
4738
+ ), /* @__PURE__ */ S.createElement(ct, null), /* @__PURE__ */ S.createElement(
4727
4739
  ie,
4728
4740
  {
4729
4741
  component: ne.SelectField,
@@ -4745,7 +4757,7 @@ function _t({
4745
4757
  }
4746
4758
  ]
4747
4759
  }
4748
- ), /* @__PURE__ */ T.createElement(
4760
+ ), /* @__PURE__ */ S.createElement(
4749
4761
  ie,
4750
4762
  {
4751
4763
  component: ne.ButtonGroupField,
@@ -4763,7 +4775,7 @@ function _t({
4763
4775
  }
4764
4776
  ]
4765
4777
  }
4766
- ), /* @__PURE__ */ T.createElement(
4778
+ ), /* @__PURE__ */ S.createElement(
4767
4779
  ie,
4768
4780
  {
4769
4781
  component: ne.ColorPickerField,
@@ -4771,7 +4783,7 @@ function _t({
4771
4783
  name: "corner-square-color",
4772
4784
  label: A("Corner Square color")
4773
4785
  }
4774
- ), R && /* @__PURE__ */ T.createElement(
4786
+ ), _ && /* @__PURE__ */ S.createElement(
4775
4787
  ie,
4776
4788
  {
4777
4789
  component: ne.ColorPickerField,
@@ -4779,7 +4791,7 @@ function _t({
4779
4791
  name: "corner-square-color-2",
4780
4792
  label: A("Corner Square color 2")
4781
4793
  }
4782
- ), R && /* @__PURE__ */ T.createElement(
4794
+ ), _ && /* @__PURE__ */ S.createElement(
4783
4795
  ie,
4784
4796
  {
4785
4797
  showLimit: !0,
@@ -4790,7 +4802,7 @@ function _t({
4790
4802
  max: 360,
4791
4803
  label: A("Corner Square rotation")
4792
4804
  }
4793
- ), /* @__PURE__ */ T.createElement(ct, null), /* @__PURE__ */ T.createElement(
4805
+ ), /* @__PURE__ */ S.createElement(ct, null), /* @__PURE__ */ S.createElement(
4794
4806
  ie,
4795
4807
  {
4796
4808
  component: ne.ColorPickerField,
@@ -4798,14 +4810,14 @@ function _t({
4798
4810
  name: "background-color",
4799
4811
  label: A("Background color")
4800
4812
  }
4801
- )), /* @__PURE__ */ T.createElement(
4813
+ )), /* @__PURE__ */ S.createElement(
4802
4814
  Te.Item,
4803
4815
  {
4804
4816
  contentStyle: { padding: "28px 13px 8px 13px" },
4805
4817
  name: "2",
4806
4818
  header: A("Dimension")
4807
4819
  },
4808
- /* @__PURE__ */ T.createElement(
4820
+ /* @__PURE__ */ S.createElement(
4809
4821
  ie,
4810
4822
  {
4811
4823
  component: ne.Padding,
@@ -4817,17 +4829,17 @@ function _t({
4817
4829
  }
4818
4830
  class qr extends Mt {
4819
4831
  generateElement() {
4820
- et.registerBlocks([Vt]), Ze(Nt, Vt.type, Gr);
4832
+ et.registerBlocks([Vt]), Ne(Nt, Vt.type, Gr);
4821
4833
  }
4822
4834
  }
4823
4835
  class $r extends Mt {
4824
4836
  generateElement() {
4825
- et.registerBlocks([Ot]), Ze(Nt, Ot.type, zr);
4837
+ et.registerBlocks([Ot]), Ne(Nt, Ot.type, zr);
4826
4838
  }
4827
4839
  }
4828
4840
  class eo extends Mt {
4829
4841
  generateElement() {
4830
- et.registerBlocks([Pt]), Ze(Nt, Pt.type, jr);
4842
+ et.registerBlocks([Pt]), Ne(Nt, Pt.type, jr);
4831
4843
  }
4832
4844
  }
4833
4845
  export {