@glodon-aiot/dataset-annotation 3.1.0-beta.15 → 3.2.1
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/dist/dataset-annotation.js +123591 -0
- package/dist/dataset-annotation.umd.cjs +1017 -0
- package/dist/example/DatasetAnnotationDemo.d.ts +3 -0
- package/dist/example/DemoTabs.d.ts +3 -0
- package/dist/example/DetectionDatasetDemo.d.ts +5 -0
- package/dist/example/DetectionImageDemo.d.ts +5 -0
- package/dist/example/OcrDatasetDemo.d.ts +5 -0
- package/dist/example/OcrImageDemo.d.ts +5 -0
- package/dist/example/OcrkvcDatasetDemo.d.ts +5 -0
- package/dist/example/constant.local.d.ts +6 -0
- package/dist/example/index.d.ts +1 -0
- package/dist/src/Common/Page/index.d.ts +2 -1
- package/dist/src/Common/PageHeader/index.d.ts +1 -0
- package/dist/src/DatasetContext/index.d.ts +4 -3
- package/dist/src/components/CompositionInput/index.d.ts +2 -2
- package/dist/src/components/DataEmpty/index.d.ts +2 -1
- package/dist/src/components/DetectionAnnotation/PreSamplesPage/index.d.ts +2 -1
- package/dist/src/components/DetectionAnnotation/components/DisabledTooltip/index.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/ImageDetail/index.d.ts +2 -1
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/Drawable.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/RectLabel.d.ts +2 -2
- package/dist/src/components/DetectionAnnotation/components/LabelMaker/index.d.ts +1 -0
- package/dist/src/components/DetectionAnnotation/components/Labels/index.d.ts +1 -0
- package/dist/src/components/DetectionAnnotation/components/TagItem/index.d.ts +2 -1
- package/dist/src/components/DetectionAnnotation/index.d.ts +2 -1
- package/dist/src/components/DetectionImageAnnotation/index.d.ts +2 -0
- package/dist/src/components/Iconfont/index.d.ts +1 -1
- package/dist/src/components/MarkDescriptions/index.d.ts +1 -0
- package/dist/src/components/OCRImageViewer/index.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/MarkKVOCRModal/index.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorInput.d.ts +2 -2
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LabelEditorItem.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/LableEditor.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/MarkOCRBoxModal/index.d.ts +1 -0
- package/dist/src/components/OcrAnnotation/OcrModal/index.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/PreLabelOCR/PreLabelModal.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/PreLabelOCR/index.d.ts +2 -1
- package/dist/src/components/OcrAnnotation/index.d.ts +2 -1
- package/dist/src/components/OcrImageAnnotation/index.d.ts +2 -0
- package/dist/src/components/PageNav/index.d.ts +2 -1
- package/dist/src/components/PicZipImportModal/index.d.ts +2 -1
- package/dist/src/components/PreLabelOCR/PreLabelModal.d.ts +2 -1
- package/dist/src/components/PreLabelOCR/index.d.ts +2 -1
- package/dist/src/components/ScanTable/index.d.ts +2 -1
- package/dist/src/components/Thumbnail/index.d.ts +2 -1
- package/dist/src/components/hooks/useBlocker.d.ts +1 -1
- package/dist/src/featuresConfig.d.ts +1 -1
- package/package.json +15 -22
- package/dist/es/Common/Page/index.mjs +0 -28
- package/dist/es/Common/PageContent/index.mjs +0 -18
- package/dist/es/Common/PageHeader/index.mjs +0 -38
- package/dist/es/DatasetContext/index.mjs +0 -11
- package/dist/es/_virtual/_commonjsHelpers.mjs +0 -6
- package/dist/es/_virtual/index.mjs +0 -4
- package/dist/es/access/images/data_empty.svg.mjs +0 -4
- package/dist/es/components/CompositionInput/index.mjs +0 -53
- package/dist/es/components/DataEmpty/index.mjs +0 -50
- package/dist/es/components/DetectionAnnotation/PreSamplesPage/index.mjs +0 -291
- package/dist/es/components/DetectionAnnotation/components/DisabledTooltip/index.mjs +0 -23
- package/dist/es/components/DetectionAnnotation/components/ImageDetail/index.mjs +0 -165
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/Drawable.mjs +0 -51
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/FabricCustomize.mjs +0 -42
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/RectLabel.mjs +0 -283
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/icons/delete-icon.svg.mjs +0 -4
- package/dist/es/components/DetectionAnnotation/components/LabelMaker/index.mjs +0 -314
- package/dist/es/components/DetectionAnnotation/components/Labels/index.mjs +0 -200
- package/dist/es/components/DetectionAnnotation/components/TagItem/index.mjs +0 -143
- package/dist/es/components/DetectionAnnotation/icon_item_empty.svg.mjs +0 -4
- package/dist/es/components/DetectionAnnotation/index.mjs +0 -712
- package/dist/es/components/DetectionImageAnnotation/index.mjs +0 -61
- package/dist/es/components/Iconfont/index.mjs +0 -16
- package/dist/es/components/MarkDescriptions/index.mjs +0 -65
- package/dist/es/components/OCRImageViewer/index.mjs +0 -212
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/CategoryDrawer.mjs +0 -136
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorInput.mjs +0 -57
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LabelEditorItem.mjs +0 -72
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/LableEditor.mjs +0 -54
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/KVOCRLabelMaker/index.mjs +0 -366
- package/dist/es/components/OcrAnnotation/MarkKVOCRModal/index.mjs +0 -254
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/ImageDetail/index.mjs +0 -100
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/images/delete.png.mjs +0 -4
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/OCRBoxMaker/index.mjs +0 -755
- package/dist/es/components/OcrAnnotation/MarkOCRBoxModal/index.mjs +0 -230
- package/dist/es/components/OcrAnnotation/OcrModal/index.mjs +0 -179
- package/dist/es/components/OcrAnnotation/PreLabelOCR/PreLabelModal.mjs +0 -280
- package/dist/es/components/OcrAnnotation/PreLabelOCR/index.mjs +0 -43
- package/dist/es/components/OcrAnnotation/constant.mjs +0 -5
- package/dist/es/components/OcrAnnotation/index.mjs +0 -381
- package/dist/es/components/OcrImageAnnotation/index.mjs +0 -39
- package/dist/es/components/PageNav/index.mjs +0 -29
- package/dist/es/components/PicZipImportModal/index.mjs +0 -583
- package/dist/es/components/PicZipImportModal/pic_zip.svg.mjs +0 -4
- package/dist/es/components/PicZipImportModal/pic_zip_json.svg.mjs +0 -4
- package/dist/es/components/PreLabelOCR/PreLabelModal.mjs +0 -275
- package/dist/es/components/PreLabelOCR/index.mjs +0 -43
- package/dist/es/components/ScanTable/index.mjs +0 -96
- package/dist/es/components/Thumbnail/default.png.mjs +0 -4
- package/dist/es/components/Thumbnail/index.mjs +0 -30
- package/dist/es/components/hooks/Prompt.mjs +0 -33
- package/dist/es/constant.mjs +0 -13
- package/dist/es/createDatasetAnnotation/index.mjs +0 -133
- package/dist/es/createDetectionDatasetAnnotation/index.mjs +0 -129
- package/dist/es/createDetectionImageAnnotation/index.mjs +0 -31
- package/dist/es/createOcrDatasetAnnotation/index.mjs +0 -129
- package/dist/es/createOcrImageAnnotation/index.mjs +0 -33
- package/dist/es/featuresConfig.mjs +0 -79
- package/dist/es/index.mjs +0 -35
- package/dist/es/node_modules/classnames/index.mjs +0 -42
- package/dist/es/utils/color.mjs +0 -30
- package/dist/es/utils/index.mjs +0 -22
- package/dist/es/utils/sign.mjs +0 -33
- package/dist/lib/index.js +0 -7
- package/dist/src/components/Iconfont/font_3140028_iptomfpgyu.d.ts +0 -0
- package/dist/src/components/Iconfont/font_3454453_gu5ijeufyng.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4108228_3slzqhoow93.d.ts +0 -0
- package/dist/src/components/Iconfont/font_4439177_k3mjwv7kzfd.d.ts +0 -0
|
@@ -1,583 +0,0 @@
|
|
|
1
|
-
var ol = Object.defineProperty;
|
|
2
|
-
var Be = Object.getOwnPropertySymbols;
|
|
3
|
-
var rl = Object.prototype.hasOwnProperty, cl = Object.prototype.propertyIsEnumerable;
|
|
4
|
-
var Le = (y, l, i) => l in y ? ol(y, l, { enumerable: !0, configurable: !0, writable: !0, value: i }) : y[l] = i, Ae = (y, l) => {
|
|
5
|
-
for (var i in l || (l = {}))
|
|
6
|
-
rl.call(l, i) && Le(y, i, l[i]);
|
|
7
|
-
if (Be)
|
|
8
|
-
for (var i of Be(l))
|
|
9
|
-
cl.call(l, i) && Le(y, i, l[i]);
|
|
10
|
-
return y;
|
|
11
|
-
};
|
|
12
|
-
var re = (y, l, i) => new Promise((f, M) => {
|
|
13
|
-
var D = (w) => {
|
|
14
|
-
try {
|
|
15
|
-
F(i.next(w));
|
|
16
|
-
} catch (z) {
|
|
17
|
-
M(z);
|
|
18
|
-
}
|
|
19
|
-
}, Z = (w) => {
|
|
20
|
-
try {
|
|
21
|
-
F(i.throw(w));
|
|
22
|
-
} catch (z) {
|
|
23
|
-
M(z);
|
|
24
|
-
}
|
|
25
|
-
}, F = (w) => w.done ? f(w.value) : Promise.resolve(w.value).then(D, Z);
|
|
26
|
-
F((i = i.apply(y, l)).next());
|
|
27
|
-
});
|
|
28
|
-
import { jsxs as p, Fragment as ce, jsx as e } from "react/jsx-runtime";
|
|
29
|
-
import { useContext as dl, useState as r, useRef as pl, useEffect as A } from "react";
|
|
30
|
-
import { Form as U, message as R, Modal as H, Button as O, Radio as x, Space as Ue, Upload as ul, Row as de, Col as ml, Spin as fl, Result as Oe } from "antd";
|
|
31
|
-
/* empty css */import { CloudUploadOutlined as hl, PaperClipOutlined as gl, DeleteOutlined as Cl, PlusOutlined as bl } from "@ant-design/icons";
|
|
32
|
-
import yl from "browser-md5-file";
|
|
33
|
-
import { initMinio as Te, putObjectBuffer as Pe } from "@glodon-aiot/minio";
|
|
34
|
-
import Nl from "antd/lib/upload/Dragger";
|
|
35
|
-
import Sl from "./pic_zip.svg.mjs";
|
|
36
|
-
import wl from "./pic_zip_json.svg.mjs";
|
|
37
|
-
import { GB as zl, MB as jl } from "../../constant.mjs";
|
|
38
|
-
import { fileSuffixToLowerCase as kl } from "../../utils/index.mjs";
|
|
39
|
-
import vl from "../../DatasetContext/index.mjs";
|
|
40
|
-
import { EXAMPLE_SRC_ROOT as El } from "../../featuresConfig.mjs";
|
|
41
|
-
let m = 0, G = 0, T = 0, _ = 0;
|
|
42
|
-
const Wl = (y) => {
|
|
43
|
-
const {
|
|
44
|
-
datasetIam: l,
|
|
45
|
-
datasetId: i,
|
|
46
|
-
currentVersion: f,
|
|
47
|
-
tenCode: M,
|
|
48
|
-
isVisible: D,
|
|
49
|
-
markType: Z,
|
|
50
|
-
setIsVisible: F,
|
|
51
|
-
getVersionListRequest: w,
|
|
52
|
-
onUploadStatusChange: z,
|
|
53
|
-
setIsConfirm: I,
|
|
54
|
-
tableReload: pe,
|
|
55
|
-
loadVersionData: q,
|
|
56
|
-
actionAfterFinish: ue
|
|
57
|
-
} = y, {
|
|
58
|
-
services: {
|
|
59
|
-
cvforceDatahub: u
|
|
60
|
-
},
|
|
61
|
-
featuresConfig: {
|
|
62
|
-
exampleSrcRoot: me
|
|
63
|
-
} = {
|
|
64
|
-
exampleSrcRoot: El
|
|
65
|
-
}
|
|
66
|
-
} = dl(vl), [N, Ve] = r(0), [S, Me] = r(0), [Q, De] = r([]), [P, Ke] = r(), [fe, Rl] = r([]), [Y, J] = r(!1), [he, ee] = r(!1), [K, le] = r(!1), [te, Ge] = r(0), [ge, _e] = r(0), [W, Ce] = r(-1), [se, xl] = r([]), [be, Fl] = r([]), [ye, ie] = r(!1), Ze = new yl(), [X] = U.useForm(), n = U.useWatch("acceptType", X), v = U.useWatch("labelState", X), [h, Ne] = r([]), [k, Se] = r([]), [E, qe] = r(), [we, ze] = r(0), [je, ke] = r(!1), [$l, Je] = r(""), [We, ve] = r(!1), [Ee, Xe] = r(
|
|
67
|
-
"unlabeled"
|
|
68
|
-
/* Unlabeled */
|
|
69
|
-
), ne = pl(!0), ae = ["image/jpeg", "image/jpg", "image/png", "image/bmp"], oe = 14 * jl;
|
|
70
|
-
A(() => {
|
|
71
|
-
m = 0, G = 0, T = 0, _ = 0, le(!1), D && (ne.current = !1, q && q());
|
|
72
|
-
}, [D]);
|
|
73
|
-
const Re = (t, s) => {
|
|
74
|
-
var a;
|
|
75
|
-
if (n === "image") {
|
|
76
|
-
ie(!0);
|
|
77
|
-
let o = 0;
|
|
78
|
-
if (m = m + 1, G = G + 1, s.length === 0)
|
|
79
|
-
return;
|
|
80
|
-
let d = 0;
|
|
81
|
-
const [...c] = s, C = window.URL || window.webkitURL, b = new Image();
|
|
82
|
-
b.src = C.createObjectURL(t), b.onload = () => {
|
|
83
|
-
Q.push({
|
|
84
|
-
name: t.name,
|
|
85
|
-
src: b.src,
|
|
86
|
-
width: b.width,
|
|
87
|
-
height: b.height
|
|
88
|
-
}), De(Q);
|
|
89
|
-
}, s.map((j) => {
|
|
90
|
-
const $ = ae.some((L) => L === j.type), B = j.size <= oe;
|
|
91
|
-
$ ? B || (o = o + 1, c.splice(c.findIndex((L) => L.name === j.name), 1)) : (d = d + 1, c.splice(c.findIndex((L) => L.name === j.name), 1));
|
|
92
|
-
}), c.length > 100 && c.splice(100, c.length), Ve(d), Me(o), G === s.length && (ie(!0), G = 0);
|
|
93
|
-
const g = ae.some((j) => j === t.type), V = t.size <= oe;
|
|
94
|
-
if (g) {
|
|
95
|
-
if (!V)
|
|
96
|
-
return !1;
|
|
97
|
-
} else
|
|
98
|
-
return !1;
|
|
99
|
-
} else {
|
|
100
|
-
if (t.size > 2 * zl)
|
|
101
|
-
return R.error(`${t.name}文件总大小不能超过2G`), !1;
|
|
102
|
-
const o = (a = t.name) == null ? void 0 : a.substring(t.name.lastIndexOf("."));
|
|
103
|
-
if (n === "zip" && o !== ".zip")
|
|
104
|
-
return R.error("存在格式不正确的文件,已自动去除"), !1;
|
|
105
|
-
Se((d) => d.length >= 1 ? d : [...d, t]);
|
|
106
|
-
}
|
|
107
|
-
return !1;
|
|
108
|
-
};
|
|
109
|
-
A(() => {
|
|
110
|
-
ye !== !1 && (!N && !S && !m || (m = m - _ - N - S, m < 101 ? N > 0 && S > 0 ? (R.error(`${N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m - N - S) : N > 0 && S === 0 ? R.error(`${N}个文件添加失败,格式不符合要求`) : N === 0 && S > 0 ? R.error(`${S}个文件添加失败,单张图片超过14M`) : N === 0 && S === 0 && R.success("校验成功") : N + S === 0 ? (R.error(`${m - 100}个文件添加失败,超过数量限制`), m = 100) : (R.error(`${m - 100 + N + S}个文件添加失败,格式、大小或数量不符合要求`), m = m < 101 ? m : 100), ie(!1)));
|
|
111
|
-
}, [ye]);
|
|
112
|
-
const He = (t) => {
|
|
113
|
-
const s = t.originFileObj;
|
|
114
|
-
return new Promise((a, o) => {
|
|
115
|
-
Ze.md5(s, (d, c) => {
|
|
116
|
-
d && o(d), Qe(c, s), a(c);
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
}, Ie = () => re(void 0, null, function* () {
|
|
120
|
-
if (!h)
|
|
121
|
-
return;
|
|
122
|
-
const t = [];
|
|
123
|
-
for (let s = 0; s < h.length; s++) {
|
|
124
|
-
const a = h[s], o = yield He(a);
|
|
125
|
-
t.push(o);
|
|
126
|
-
}
|
|
127
|
-
!i || t.length === 0 || u == null || u.getDeduplication(t, i).then((s) => {
|
|
128
|
-
Ke(s), ve(!1);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
A(() => {
|
|
132
|
-
Ie();
|
|
133
|
-
}, [h]);
|
|
134
|
-
const Qe = (t, s) => {
|
|
135
|
-
s.md5 = t, fe.push(s);
|
|
136
|
-
}, xe = ({
|
|
137
|
-
fileList: t
|
|
138
|
-
}) => {
|
|
139
|
-
if (n === "zip")
|
|
140
|
-
return;
|
|
141
|
-
ve(!0);
|
|
142
|
-
const s = t.filter((a) => a.size && a.size <= oe ? ae.some((o) => a.type === o) : !1);
|
|
143
|
-
s.splice(100, s.length), s.length < h.length ? (Ne(s), _++) : (T = T - _, _ = 0, T++, T == s.length && Ne(s), T > s.length && (T = s.length));
|
|
144
|
-
}, Fe = () => {
|
|
145
|
-
n === "zip" && (ne.current = !0), F(!1);
|
|
146
|
-
}, Ye = () => {
|
|
147
|
-
if (n === "image") {
|
|
148
|
-
if (!P)
|
|
149
|
-
return;
|
|
150
|
-
let t = 0, s = 0;
|
|
151
|
-
if (P.duplicated.length !== 0 && P.duplicated.map((a, o) => {
|
|
152
|
-
var C;
|
|
153
|
-
const d = P.duplicatedMd5[o], c = ((C = h.find((b) => {
|
|
154
|
-
var g;
|
|
155
|
-
return ((g = b.originFileObj) == null ? void 0 : g.md5) === d;
|
|
156
|
-
})) == null ? void 0 : C.name) || "";
|
|
157
|
-
se.push({
|
|
158
|
-
labels: [],
|
|
159
|
-
fileKey: a,
|
|
160
|
-
sampleFileName: {
|
|
161
|
-
name: c
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}), P.unduplicated.length !== 0) {
|
|
165
|
-
const a = P.unduplicated.map((o) => new Promise((d) => {
|
|
166
|
-
const c = fe.find((B) => B.md5 === o);
|
|
167
|
-
if (!c)
|
|
168
|
-
return d();
|
|
169
|
-
const C = c.name, b = C.substring(C.indexOf(".")), g = Q.find((B) => B.name === C), V = {
|
|
170
|
-
"Content-Type": "application/octet-stream",
|
|
171
|
-
"X-Amz-Meta-Width": g == null ? void 0 : g.width,
|
|
172
|
-
"X-Amz-Meta-Height": g == null ? void 0 : g.height
|
|
173
|
-
}, j = `dataset/${i}/sample/${o}${kl(b)}`;
|
|
174
|
-
delete c.md5;
|
|
175
|
-
const $ = new FileReader();
|
|
176
|
-
$.readAsArrayBuffer(c), $.onload = (B) => {
|
|
177
|
-
Te({
|
|
178
|
-
endPoint: l == null ? void 0 : l.endpoints[0],
|
|
179
|
-
useSSL: l == null ? void 0 : l.useSSL,
|
|
180
|
-
accessKey: l == null ? void 0 : l.accessKey,
|
|
181
|
-
secretKey: l == null ? void 0 : l.secretKey
|
|
182
|
-
}), Pe(M, j, B.target.result, V, (L, Bl) => {
|
|
183
|
-
J(!0), s += 1, L && (t += 1, _e(t)), Ge(s), be.push({
|
|
184
|
-
labels: [],
|
|
185
|
-
fileKey: `${M}/${j}`,
|
|
186
|
-
sampleFileName: {
|
|
187
|
-
name: C
|
|
188
|
-
}
|
|
189
|
-
}), d();
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
}));
|
|
193
|
-
Promise.all(a).then(() => {
|
|
194
|
-
!i || !f || setTimeout(() => {
|
|
195
|
-
u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
|
|
196
|
-
samples: be.concat(se)
|
|
197
|
-
}).then(() => {
|
|
198
|
-
u.getDatasetsIdVersionsVid(i, f.id).then((o) => {
|
|
199
|
-
Ce(o.samplesCount - f.samplesCount);
|
|
200
|
-
}), I(!0), z && z(!1);
|
|
201
|
-
});
|
|
202
|
-
}, 100);
|
|
203
|
-
});
|
|
204
|
-
} else {
|
|
205
|
-
if (!i || !f)
|
|
206
|
-
return;
|
|
207
|
-
u == null || u.postDatasetsIdVersionsVidSamples(i, f.id, {
|
|
208
|
-
samples: se
|
|
209
|
-
}).then(() => {
|
|
210
|
-
u.getDatasetsIdVersionsVid(i, f.id).then((a) => {
|
|
211
|
-
Ce(a.samplesCount - f.samplesCount);
|
|
212
|
-
}), I(!0), z && z(!1);
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
} else
|
|
216
|
-
el(k);
|
|
217
|
-
}, el = (t) => {
|
|
218
|
-
!i || !f || t.map((s, a) => {
|
|
219
|
-
var b;
|
|
220
|
-
const o = {
|
|
221
|
-
"Content-Type": "application/octet-stream"
|
|
222
|
-
}, d = {
|
|
223
|
-
endPoint: l == null ? void 0 : l.endpoints[0],
|
|
224
|
-
useSSL: l == null ? void 0 : l.useSSL,
|
|
225
|
-
accessKey: l == null ? void 0 : l.accessKey,
|
|
226
|
-
secretKey: l == null ? void 0 : l.secretKey
|
|
227
|
-
}, c = (l == null ? void 0 : l.prefix) + ((b = t[0]) == null ? void 0 : b.name), C = new FileReader();
|
|
228
|
-
C.readAsArrayBuffer(s), C.onload = (g) => {
|
|
229
|
-
Te(d), Pe(l == null ? void 0 : l.bucket, c, g.target.result, o, (V, j) => {
|
|
230
|
-
if (V)
|
|
231
|
-
console.log(V);
|
|
232
|
-
else {
|
|
233
|
-
if (ne.current)
|
|
234
|
-
return;
|
|
235
|
-
J(!0), u == null || u.postUploadPicsZip(i, f.id, Ae({
|
|
236
|
-
zipUrls: [(l == null ? void 0 : l.bucket) + "/" + c]
|
|
237
|
-
}, Z === "ocr" && {
|
|
238
|
-
type: v === "labeled" ? 1 : 0
|
|
239
|
-
})).then(($) => {
|
|
240
|
-
ll($), Je($);
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
};
|
|
245
|
-
});
|
|
246
|
-
}, ll = (t) => re(void 0, null, function* () {
|
|
247
|
-
var s;
|
|
248
|
-
if (!(!i || !f || !u))
|
|
249
|
-
try {
|
|
250
|
-
const a = yield u.checkFileResult(i, f.id, {
|
|
251
|
-
taskId: t
|
|
252
|
-
}, 5e3, (o) => {
|
|
253
|
-
ze(o);
|
|
254
|
-
});
|
|
255
|
-
a && qe(JSON.parse(a));
|
|
256
|
-
} catch (a) {
|
|
257
|
-
if (((s = a.cause) == null ? void 0 : s.code) === -101) {
|
|
258
|
-
ke(!0);
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
A(() => {
|
|
264
|
-
E && (ze(100), ee(!0));
|
|
265
|
-
}, [E]), A(() => {
|
|
266
|
-
te !== 0 && (I(!1), z && z(!0));
|
|
267
|
-
}, [te]), A(() => {
|
|
268
|
-
W !== -1 && (ee(!0), le(!1));
|
|
269
|
-
}, [W]);
|
|
270
|
-
const tl = () => {
|
|
271
|
-
$e(), ee(!1), ue && ue();
|
|
272
|
-
}, $e = () => {
|
|
273
|
-
w(), J(!1), F(!1), pe && pe(), q && q();
|
|
274
|
-
}, sl = /* @__PURE__ */ p("div", {
|
|
275
|
-
children: [/* @__PURE__ */ e(bl, {}), /* @__PURE__ */ e("div", {
|
|
276
|
-
style: {
|
|
277
|
-
marginTop: 8
|
|
278
|
-
},
|
|
279
|
-
children: "添加图片"
|
|
280
|
-
})]
|
|
281
|
-
}), il = (t) => {
|
|
282
|
-
const s = k.filter((a) => a.uid !== t.uid);
|
|
283
|
-
Se(s);
|
|
284
|
-
}, nl = () => {
|
|
285
|
-
v === "labeled" ? window.location.href = `${me}/%E6%A0%87%E6%B3%A8%E6%A0%BC%E5%BC%8F%E7%A4%BA%E4%BE%8B.zip` : window.location.href = `${me}/%E7%A4%BA%E4%BE%8B%E5%8E%8B%E7%BC%A9%E5%8C%85.zip`;
|
|
286
|
-
}, al = () => {
|
|
287
|
-
w(), ke(!1), J(!1), F(!1);
|
|
288
|
-
};
|
|
289
|
-
return A(() => {
|
|
290
|
-
Ee === "labeled" && X.setFieldsValue({
|
|
291
|
-
labelFormat: "json",
|
|
292
|
-
acceptType: "zip"
|
|
293
|
-
/* Zip */
|
|
294
|
-
});
|
|
295
|
-
}, [Ee]), /* @__PURE__ */ p(ce, {
|
|
296
|
-
children: [/* @__PURE__ */ e(H, {
|
|
297
|
-
className: "upload-pics",
|
|
298
|
-
width: 600,
|
|
299
|
-
title: "导入数据",
|
|
300
|
-
open: D,
|
|
301
|
-
destroyOnClose: !0,
|
|
302
|
-
onCancel: () => Fe(),
|
|
303
|
-
maskClosable: !1,
|
|
304
|
-
centered: !0,
|
|
305
|
-
footer: [/* @__PURE__ */ e(O, {
|
|
306
|
-
onClick: Fe,
|
|
307
|
-
children: "取消"
|
|
308
|
-
}, "cancel"), /* @__PURE__ */ e(O, {
|
|
309
|
-
type: "primary",
|
|
310
|
-
htmlType: "submit",
|
|
311
|
-
form: "importModal",
|
|
312
|
-
disabled: n === "image" && !h.length || n === "zip" && !k.length || Y && we == 0 || We,
|
|
313
|
-
loading: K == !0,
|
|
314
|
-
onClick: () => {
|
|
315
|
-
Ye(), le(!0);
|
|
316
|
-
},
|
|
317
|
-
children: "导入"
|
|
318
|
-
}, "confirm")],
|
|
319
|
-
children: /* @__PURE__ */ p(U, {
|
|
320
|
-
className: "file-form",
|
|
321
|
-
preserve: !1,
|
|
322
|
-
form: X,
|
|
323
|
-
initialValues: {
|
|
324
|
-
acceptType: "image",
|
|
325
|
-
labelState: "unlabeled"
|
|
326
|
-
/* Unlabeled */
|
|
327
|
-
},
|
|
328
|
-
name: "modal",
|
|
329
|
-
labelAlign: "left",
|
|
330
|
-
labelCol: {
|
|
331
|
-
style: {
|
|
332
|
-
width: 110
|
|
333
|
-
}
|
|
334
|
-
},
|
|
335
|
-
children: [Z === "ocr" && /* @__PURE__ */ e(U.Item, {
|
|
336
|
-
label: "数据标注状态",
|
|
337
|
-
name: "labelState",
|
|
338
|
-
rules: [{
|
|
339
|
-
required: !0,
|
|
340
|
-
message: "请选择数据标注状态"
|
|
341
|
-
}],
|
|
342
|
-
children: /* @__PURE__ */ p(x.Group, {
|
|
343
|
-
disabled: K,
|
|
344
|
-
onChange: (t) => {
|
|
345
|
-
Xe(t.target.value);
|
|
346
|
-
},
|
|
347
|
-
children: [/* @__PURE__ */ e(x, {
|
|
348
|
-
value: "unlabeled",
|
|
349
|
-
children: "无标注信息"
|
|
350
|
-
}), /* @__PURE__ */ e(x, {
|
|
351
|
-
value: "labeled",
|
|
352
|
-
children: "有标注信息"
|
|
353
|
-
})]
|
|
354
|
-
})
|
|
355
|
-
}), v === "labeled" && /* @__PURE__ */ e(U.Item, {
|
|
356
|
-
label: "标注格式",
|
|
357
|
-
name: "labelFormat",
|
|
358
|
-
rules: [{
|
|
359
|
-
required: !0,
|
|
360
|
-
message: "请选择标注格式"
|
|
361
|
-
}],
|
|
362
|
-
children: /* @__PURE__ */ e(x.Group, {
|
|
363
|
-
disabled: K,
|
|
364
|
-
children: /* @__PURE__ */ e(x, {
|
|
365
|
-
value: "json",
|
|
366
|
-
children: "json"
|
|
367
|
-
})
|
|
368
|
-
})
|
|
369
|
-
}), /* @__PURE__ */ e(U.Item, {
|
|
370
|
-
label: "导入方式",
|
|
371
|
-
name: "acceptType",
|
|
372
|
-
rules: [{
|
|
373
|
-
required: !0,
|
|
374
|
-
message: "请选择导入方式"
|
|
375
|
-
}],
|
|
376
|
-
children: /* @__PURE__ */ p(x.Group, {
|
|
377
|
-
disabled: K,
|
|
378
|
-
children: [v !== "labeled" && /* @__PURE__ */ e(x.Button, {
|
|
379
|
-
value: "image",
|
|
380
|
-
children: "上传图片"
|
|
381
|
-
}), /* @__PURE__ */ e(x.Button, {
|
|
382
|
-
value: "zip",
|
|
383
|
-
children: "上传压缩包"
|
|
384
|
-
})]
|
|
385
|
-
})
|
|
386
|
-
}), /* @__PURE__ */ p("div", {
|
|
387
|
-
className: "file-upload",
|
|
388
|
-
children: [(n === "image" && !h.length || n === "zip") && /* @__PURE__ */ p(Nl, {
|
|
389
|
-
name: "file",
|
|
390
|
-
showUploadList: !1,
|
|
391
|
-
multiple: !0,
|
|
392
|
-
beforeUpload: Re,
|
|
393
|
-
accept: n === "zip" ? ".zip" : "image/png, image/jpeg, image/jpg, image/bmp",
|
|
394
|
-
maxCount: n === "zip" ? 1 : void 0,
|
|
395
|
-
onChange: xe,
|
|
396
|
-
disabled: n === "zip" ? k.length === 1 : !1,
|
|
397
|
-
children: [/* @__PURE__ */ e("span", {
|
|
398
|
-
className: "file-upload-icon",
|
|
399
|
-
children: /* @__PURE__ */ e(hl, {})
|
|
400
|
-
}), /* @__PURE__ */ p(Ue, {
|
|
401
|
-
className: "file-upload-action",
|
|
402
|
-
children: [n === "image" && "拖拽图片至此,或者", n === "zip" && "拖拽包含“图片”的压缩包至此,或者", /* @__PURE__ */ e(O, {
|
|
403
|
-
type: "link",
|
|
404
|
-
style: {
|
|
405
|
-
padding: 0
|
|
406
|
-
},
|
|
407
|
-
disabled: n === "zip" ? k.length === 1 : !1,
|
|
408
|
-
children: n === "image" ? "上传图片" : "上传压缩包"
|
|
409
|
-
})]
|
|
410
|
-
}), n === "image" && /* @__PURE__ */ p("div", {
|
|
411
|
-
className: "file-upload-desc",
|
|
412
|
-
style: {
|
|
413
|
-
width: 350
|
|
414
|
-
},
|
|
415
|
-
children: [/* @__PURE__ */ e("div", {
|
|
416
|
-
className: "item-upload-desc item-upload-desc__1",
|
|
417
|
-
children: "1. 支持jpg、png 、jpeg 、bmp格式,单张图片不超过14M;"
|
|
418
|
-
}), /* @__PURE__ */ e("div", {
|
|
419
|
-
className: "item-upload-desc",
|
|
420
|
-
children: "2. 单次上传最多可选择100个文件。"
|
|
421
|
-
})]
|
|
422
|
-
}), n === "zip" && /* @__PURE__ */ p("div", {
|
|
423
|
-
className: "file-upload-desc",
|
|
424
|
-
style: {
|
|
425
|
-
width: 350
|
|
426
|
-
},
|
|
427
|
-
children: [/* @__PURE__ */ e("div", {
|
|
428
|
-
className: "item-upload-desc item-upload-desc__1",
|
|
429
|
-
children: "1. 仅支持.zip格式,单个压缩包不超过2G;"
|
|
430
|
-
}), v === "labeled" ? /* @__PURE__ */ p(ce, {
|
|
431
|
-
children: [/* @__PURE__ */ e("div", {
|
|
432
|
-
className: "item-upload-desc",
|
|
433
|
-
children: "2. 压缩包内每张图片(jpg、png 、jpeg 、bmp格式)需要对应一个json文件,名称需一致,位置处在一级目录下;"
|
|
434
|
-
}), /* @__PURE__ */ e("div", {
|
|
435
|
-
className: "item-upload-desc",
|
|
436
|
-
children: "3. json文件需包含标签、4点坐标,格式可参考样例。"
|
|
437
|
-
})]
|
|
438
|
-
}) : /* @__PURE__ */ e("div", {
|
|
439
|
-
className: "item-upload-desc",
|
|
440
|
-
children: "2. 压缩包内图片格式要求为:图片类型为jpg/png/bmp/jpeg,单张图片不超过14M;"
|
|
441
|
-
}), /* @__PURE__ */ p("div", {
|
|
442
|
-
className: "item-upload-desc",
|
|
443
|
-
children: [v === "labeled" ? 4 : 3, ". 单次仅可上传1个文件。"]
|
|
444
|
-
})]
|
|
445
|
-
})]
|
|
446
|
-
}), n === "image" && h.length ? /* @__PURE__ */ e("div", {
|
|
447
|
-
className: "picture-upload",
|
|
448
|
-
children: /* @__PURE__ */ e(ul, {
|
|
449
|
-
listType: "picture-card",
|
|
450
|
-
fileList: h,
|
|
451
|
-
multiple: !0,
|
|
452
|
-
showUploadList: {
|
|
453
|
-
showPreviewIcon: !1
|
|
454
|
-
},
|
|
455
|
-
beforeUpload: Re,
|
|
456
|
-
accept: "image/png, image/jpeg, image/jpg, image/bmp",
|
|
457
|
-
onChange: xe,
|
|
458
|
-
children: h.length < 100 ? sl : null
|
|
459
|
-
})
|
|
460
|
-
}) : /* @__PURE__ */ e(ce, {}), n === "zip" && /* @__PURE__ */ p("div", {
|
|
461
|
-
className: "upload-wrapper",
|
|
462
|
-
children: [k != null && k.length ? /* @__PURE__ */ e("div", {
|
|
463
|
-
className: "upload-main",
|
|
464
|
-
children: /* @__PURE__ */ e(de, {
|
|
465
|
-
gutter: [24, 8],
|
|
466
|
-
className: "upload-pannel",
|
|
467
|
-
children: k.map((t) => /* @__PURE__ */ e(ml, {
|
|
468
|
-
span: 24,
|
|
469
|
-
className: "upload-item",
|
|
470
|
-
children: /* @__PURE__ */ p(de, {
|
|
471
|
-
justify: "space-between",
|
|
472
|
-
align: "middle",
|
|
473
|
-
children: [/* @__PURE__ */ p(de, {
|
|
474
|
-
align: "middle",
|
|
475
|
-
children: [/* @__PURE__ */ e("span", {
|
|
476
|
-
className: "upload-item-file-icon",
|
|
477
|
-
children: /* @__PURE__ */ e(gl, {})
|
|
478
|
-
}), /* @__PURE__ */ e("span", {
|
|
479
|
-
className: "upload-item-name",
|
|
480
|
-
children: t.name
|
|
481
|
-
})]
|
|
482
|
-
}), /* @__PURE__ */ e(O, {
|
|
483
|
-
className: "upload-item-upload-delete",
|
|
484
|
-
type: "link",
|
|
485
|
-
disabled: K,
|
|
486
|
-
onClick: () => il(t),
|
|
487
|
-
children: /* @__PURE__ */ e(Cl, {})
|
|
488
|
-
})]
|
|
489
|
-
})
|
|
490
|
-
}, t.uid))
|
|
491
|
-
})
|
|
492
|
-
}) : null, n === "zip" && /* @__PURE__ */ p("div", {
|
|
493
|
-
className: "upload-example",
|
|
494
|
-
children: [/* @__PURE__ */ e("div", {
|
|
495
|
-
className: "upload-example-header",
|
|
496
|
-
children: /* @__PURE__ */ p(Ue, {
|
|
497
|
-
children: [/* @__PURE__ */ e("span", {
|
|
498
|
-
children: "数据示例:"
|
|
499
|
-
}), /* @__PURE__ */ e(O, {
|
|
500
|
-
size: "small",
|
|
501
|
-
type: "link",
|
|
502
|
-
style: {
|
|
503
|
-
padding: 0
|
|
504
|
-
},
|
|
505
|
-
onClick: (t) => {
|
|
506
|
-
t.stopPropagation(), nl();
|
|
507
|
-
},
|
|
508
|
-
children: "下载示例 >"
|
|
509
|
-
})]
|
|
510
|
-
})
|
|
511
|
-
}), /* @__PURE__ */ e("div", {
|
|
512
|
-
className: "upload-example-main",
|
|
513
|
-
children: /* @__PURE__ */ e("img", {
|
|
514
|
-
src: v === "labeled" ? wl : Sl
|
|
515
|
-
})
|
|
516
|
-
})]
|
|
517
|
-
})]
|
|
518
|
-
})]
|
|
519
|
-
})]
|
|
520
|
-
})
|
|
521
|
-
}), Y && /* @__PURE__ */ e(H, {
|
|
522
|
-
className: "uploading-modal",
|
|
523
|
-
width: 404,
|
|
524
|
-
title: null,
|
|
525
|
-
open: Y,
|
|
526
|
-
maskClosable: !1,
|
|
527
|
-
closable: n !== "image",
|
|
528
|
-
onCancel: () => {
|
|
529
|
-
$e();
|
|
530
|
-
},
|
|
531
|
-
footer: null,
|
|
532
|
-
children: /* @__PURE__ */ e("div", {
|
|
533
|
-
className: "upload-spin",
|
|
534
|
-
children: /* @__PURE__ */ e(fl, {
|
|
535
|
-
tip: n === "image" ? `数据导入中(${te}/${h.length}),请耐心等待` : `处理中(${we}/100%),请耐心等待`,
|
|
536
|
-
size: "large",
|
|
537
|
-
children: /* @__PURE__ */ e("div", {
|
|
538
|
-
className: "content"
|
|
539
|
-
})
|
|
540
|
-
})
|
|
541
|
-
})
|
|
542
|
-
}), he && /* @__PURE__ */ e(H, {
|
|
543
|
-
className: "result",
|
|
544
|
-
width: 424,
|
|
545
|
-
title: null,
|
|
546
|
-
open: he,
|
|
547
|
-
closable: !1,
|
|
548
|
-
footer: null,
|
|
549
|
-
children: /* @__PURE__ */ e("div", {
|
|
550
|
-
className: "upload-result",
|
|
551
|
-
children: /* @__PURE__ */ e(Oe, {
|
|
552
|
-
status: "success",
|
|
553
|
-
title: n === "image" ? `数据导入完成,成功${W}个,失败${ge}个,去重${h.length - W - ge}个` : E && `数据导入完成,格式不符合的图片${E.formatErrorCount || 0}个,成功${E.successCount || 0}个,去重${E.repeatCount || 0}个,失败${E.failedCount || 0}个` + (v === "labeled" ? `(Json格式不符合${E.labelErrorCount}个)` : ""),
|
|
554
|
-
extra: [/* @__PURE__ */ e(O, {
|
|
555
|
-
onClick: tl,
|
|
556
|
-
children: "关闭"
|
|
557
|
-
}, "close")]
|
|
558
|
-
})
|
|
559
|
-
})
|
|
560
|
-
}), je && /* @__PURE__ */ e(H, {
|
|
561
|
-
className: "result",
|
|
562
|
-
width: 424,
|
|
563
|
-
title: null,
|
|
564
|
-
open: je,
|
|
565
|
-
closable: !1,
|
|
566
|
-
footer: null,
|
|
567
|
-
children: /* @__PURE__ */ e("div", {
|
|
568
|
-
className: "upload-result",
|
|
569
|
-
children: /* @__PURE__ */ e(Oe, {
|
|
570
|
-
status: "error",
|
|
571
|
-
title: "文件处理失败",
|
|
572
|
-
extra: [/* @__PURE__ */ e(O, {
|
|
573
|
-
onClick: al,
|
|
574
|
-
children: "关闭"
|
|
575
|
-
}, "close")]
|
|
576
|
-
})
|
|
577
|
-
})
|
|
578
|
-
})]
|
|
579
|
-
});
|
|
580
|
-
};
|
|
581
|
-
export {
|
|
582
|
-
Wl as default
|
|
583
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const M = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUxIiBoZWlnaHQ9IjEyMCIgdmlld0JveD0iMCAwIDI1MSAxMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTcuNjI4NiAzOS4yMzgyQzE3Ljg2NzEgMzkuMTQyOCAxOC4xMzMgMzkuMTQyOCAxOC4zNzE0IDM5LjIzODJMMzQuNTE0MiA0NS42OTUzQzM1LjIxMDIgNDUuOTczNyAzNS42NjY3IDQ2LjY0NzggMzUuNjY2NyA0Ny4zOTc1VjcxQzM1LjY2NjcgNzIuMDEyNSAzNC44NDU5IDcyLjgzMzMgMzMuODMzNCA3Mi44MzMzSDIuMTY2NzFDMS4xNTQyIDcyLjgzMzMgMC4zMzMzNzQgNzIuMDEyNiAwLjMzMzM3NCA3MVY0Ny4zOTc1QzAuMzMzMzc0IDQ2LjY0NzkgMC43ODk3MjQgNDUuOTczNyAxLjQ4NTgyIDQ1LjY5NTRMMTcuNjI4NiAzOS4yMzgyWk0xOCA0MS4yNDM3TDIuMzMzMzcgNDcuNTEwNFY3MC44MzMzSDMzLjY2NjdWNDcuNTEwNEwxOCA0MS4yNDM3WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE4IDUzLjMzMzNDMTguNTUyMyA1My4zMzMzIDE5IDUzLjc4MTEgMTkgNTQuMzMzM1Y2Mi42NjY3QzE5IDYzLjIxOSAxOC41NTIzIDYzLjY2NjcgMTggNjMuNjY2N0MxNy40NDc4IDYzLjY2NjcgMTcgNjMuMjE5IDE3IDYyLjY2NjdWNTQuMzMzM0MxNyA1My43ODExIDE3LjQ0NzggNTMuMzMzMyAxOCA1My4zMzMzWiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIyIDU0LjU4MzNDMjIgNTMuODkzIDIyLjU1OTcgNTMuMzMzMyAyMy4yNSA1My4zMzMzSDI1LjVDMjcuMjU0NiA1My4zMzMzIDI5IDU0LjU1MDggMjkgNTYuNDE2N0MyOSA1OC4yODI1IDI3LjI1NDYgNTkuNSAyNS41IDU5LjVDMjMuNzQ1NSA1OS41IDIyIDU4LjI4MjUgMjIgNTYuNDE2N1Y1NC41ODMzWk0yNCA1NS4zMzMzVjU2LjQxNjdDMjQgNTYuODUyIDI0LjQ5MzEgNTcuNSAyNS41IDU3LjVDMjYuNTA3IDU3LjUgMjcgNTYuODUyIDI3IDU2LjQxNjdDMjcgNTUuOTgxMyAyNi41MDcgNTUuMzMzMyAyNS41IDU1LjMzMzNIMjRaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMgNTMuMzMzM0MyMy41NTIzIDUzLjMzMzMgMjQgNTMuNzgxMSAyNCA1NC4zMzMzVjYyLjY2NjdDMjQgNjMuMjE5IDIzLjU1MjMgNjMuNjY2NyAyMyA2My42NjY3QzIyLjQ0NzggNjMuNjY2NyAyMiA2My4yMTkgMjIgNjIuNjY2N1Y1NC4zMzMzQzIyIDUzLjc4MTEgMjIuNDQ3OCA1My4zMzMzIDIzIDUzLjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNy4wMDAwNCA1NC4zMzMzQzcuMDAwMDQgNTMuNzgxMSA3LjQ0Nzc2IDUzLjMzMzMgOC4wMDAwNCA1My4zMzMzSDEzLjAwMzlDMTMuMzY0MiA1My4zMzMzIDEzLjY5NjcgNTMuNTI3MiAxMy44NzQyIDUzLjg0MDhDMTQuMDUxNiA1NC4xNTQ0IDE0LjA0NjcgNTQuNTM5MiAxMy44NjEyIDU0Ljg0ODFMOS43NjY5OSA2MS42NjYxSDEzLjAwMzlDMTMuNTU2MiA2MS42NjYxIDE0LjAwMzkgNjIuMTEzOCAxNC4wMDM5IDYyLjY2NjFDMTQuMDAzOSA2My4yMTg0IDEzLjU1NjIgNjMuNjY2MSAxMy4wMDM5IDYzLjY2NjFIOC4wMDAwNEM3LjYzOTcgNjMuNjY2MSA3LjMwNzIzIDYzLjQ3MjIgNy4xMjk3NSA2My4xNTg2QzYuOTUyMjcgNjIuODQ1IDYuOTU3MjMgNjIuNDYwMiA3LjE0Mjc0IDYyLjE1MTNMMTEuMjM2OSA1NS4zMzMzSDguMDAwMDRDNy40NDc3NiA1NS4zMzMzIDcuMDAwMDQgNTQuODg1NiA3LjAwMDA0IDU0LjMzMzNaIiBmaWxsPSIjMzMzMzMzIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjE5LjgzMyAyQzIxOS40NjUgMiAyMTkuMTY3IDIuMjk4NDggMjE5LjE2NyAyLjY2NjY3VjIwLjI1MjVMMjI1Ljc5MyAxMy42MjYyQzIyNi4xNTMgMTMuMjY1OSAyMjYuNzI3IDEzLjIzNDIgMjI3LjEyNSAxMy41NTI1TDIzMC41MzcgMTYuMjgxOUwyMzQuOTA3IDExLjE4MjVDMjM1LjI1MyAxMC43Nzk3IDIzNS44NTMgMTAuNzE2NiAyMzYuMjc0IDExLjAzOUwyNDguODMzIDIwLjY0MzFWMi42NjY2N0MyNDguODMzIDIuMjk4NDcgMjQ4LjUzNSAyIDI0OC4xNjcgMkgyMTkuODMzWk0yNTAuODMzIDIuNjY2NjdDMjUwLjgzMyAxLjE5MzkyIDI0OS42MzkgMCAyNDguMTY3IDBIMjE5LjgzM0MyMTguMzYxIDAgMjE3LjE2NyAxLjE5MzkxIDIxNy4xNjcgMi42NjY2N1YyNkMyMTcuMTY3IDI3LjQ3MjggMjE4LjM2MSAyOC42NjY3IDIxOS44MzMgMjguNjY2N0gyNDguMTY3QzI0OS42MzkgMjguNjY2NyAyNTAuODMzIDI3LjQ3MjggMjUwLjgzMyAyNlYyLjY2NjY3Wk0yNDguODMzIDIzLjE2MDhMMjM1LjgxMSAxMy4yMDIyTDIzMS40MjYgMTguMzE3NUMyMzEuMDc1IDE4LjcyNjggMjMwLjQ2MyAxOC43ODQzIDIzMC4wNDIgMTguNDQ3NUwyMjYuNTc0IDE1LjY3MzNMMjE5LjE2NyAyMy4wODA5VjI2QzIxOS4xNjcgMjYuMzY4MiAyMTkuNDY1IDI2LjY2NjcgMjE5LjgzMyAyNi42NjY3SDI0OC4xNjdDMjQ4LjUzNSAyNi42NjY3IDI0OC44MzMgMjYuMzY4MiAyNDguODMzIDI2VjIzLjE2MDhaTTIyMy44MzMgOC4wODMzM0MyMjMuODMzIDYuODQwNzIgMjI0Ljg0MSA1LjgzMzMzIDIyNi4wODMgNS44MzMzM0MyMjcuMzI2IDUuODMzMzMgMjI4LjMzMyA2Ljg0MDcyIDIyOC4zMzMgOC4wODMzM0MyMjguMzMzIDkuMzI1OTUgMjI3LjMyNiAxMC4zMzMzIDIyNi4wODMgMTAuMzMzM0MyMjQuODQxIDEwLjMzMzMgMjIzLjgzMyA5LjMyNTk1IDIyMy44MzMgOC4wODMzM1pNMjI2LjA4MyA3LjgzMzMzQzIyNS45NDUgNy44MzMzMyAyMjUuODMzIDcuOTQ1MjkgMjI1LjgzMyA4LjA4MzMzQzIyNS44MzMgOC4yMjEzOCAyMjUuOTQ1IDguMzMzMzMgMjI2LjA4MyA4LjMzMzMzQzIyNi4yMjEgOC4zMzMzMyAyMjYuMzMzIDguMjIxMzggMjI2LjMzMyA4LjA4MzMzQzIyNi4zMzMgNy45NDUyOCAyMjYuMjIxIDcuODMzMzMgMjI2LjA4MyA3LjgzMzMzWk0yMTkuODMzIDQ1QzIxOS40NjUgNDUgMjE5LjE2NyA0NS4yOTg1IDIxOS4xNjcgNDUuNjY2N1Y2My4yNTI0TDIyNS43OTMgNTYuNjI2MkMyMjYuMTUzIDU2LjI2NTkgMjI2LjcyNyA1Ni4yMzQxIDIyNy4xMjUgNTYuNTUyNUwyMzAuNTM3IDU5LjI4MTlMMjM0LjkwNyA1NC4xODI1QzIzNS4yNTMgNTMuNzc5NyAyMzUuODUzIDUzLjcxNjYgMjM2LjI3NCA1NC4wMzlMMjQ4LjgzMyA2My42NDMxVjQ1LjY2NjdDMjQ4LjgzMyA0NS4yOTg1IDI0OC41MzUgNDUgMjQ4LjE2NyA0NUgyMTkuODMzWk0yNTAuODMzIDQ1LjY2NjdDMjUwLjgzMyA0NC4xOTM5IDI0OS42MzkgNDMgMjQ4LjE2NyA0M0gyMTkuODMzQzIxOC4zNjEgNDMgMjE3LjE2NyA0NC4xOTM5IDIxNy4xNjcgNDUuNjY2N1Y2OUMyMTcuMTY3IDcwLjQ3MjggMjE4LjM2MSA3MS42NjY3IDIxOS44MzMgNzEuNjY2N0gyNDguMTY3QzI0OS42MzkgNzEuNjY2NyAyNTAuODMzIDcwLjQ3MjggMjUwLjgzMyA2OVY0NS42NjY3Wk0yNDguODMzIDY2LjE2MDhMMjM1LjgxMSA1Ni4yMDIyTDIzMS40MjYgNjEuMzE3NUMyMzEuMDc1IDYxLjcyNjggMjMwLjQ2MyA2MS43ODQzIDIzMC4wNDIgNjEuNDQ3NUwyMjYuNTc0IDU4LjY3MzNMMjE5LjE2NyA2Ni4wODA5VjY5QzIxOS4xNjcgNjkuMzY4MiAyMTkuNDY1IDY5LjY2NjcgMjE5LjgzMyA2OS42NjY3SDI0OC4xNjdDMjQ4LjUzNSA2OS42NjY3IDI0OC44MzMgNjkuMzY4MiAyNDguODMzIDY5VjY2LjE2MDhaTTIyMy44MzMgNTEuMDgzM0MyMjMuODMzIDQ5Ljg0MDcgMjI0Ljg0MSA0OC44MzMzIDIyNi4wODMgNDguODMzM0MyMjcuMzI2IDQ4LjgzMzMgMjI4LjMzMyA0OS44NDA3IDIyOC4zMzMgNTEuMDgzM0MyMjguMzMzIDUyLjMyNiAyMjcuMzI2IDUzLjMzMzMgMjI2LjA4MyA1My4zMzMzQzIyNC44NDEgNTMuMzMzMyAyMjMuODMzIDUyLjMyNiAyMjMuODMzIDUxLjA4MzNaTTIyNi4wODMgNTAuODMzM0MyMjUuOTQ1IDUwLjgzMzMgMjI1LjgzMyA1MC45NDUzIDIyNS44MzMgNTEuMDgzM0MyMjUuODMzIDUxLjIyMTQgMjI1Ljk0NSA1MS4zMzMzIDIyNi4wODMgNTEuMzMzM0MyMjYuMjIxIDUxLjMzMzMgMjI2LjMzMyA1MS4yMjE0IDIyNi4zMzMgNTEuMDgzM0MyMjYuMzMzIDUwLjk0NTMgMjI2LjIyMSA1MC44MzMzIDIyNi4wODMgNTAuODMzM1pNMjE5LjgzMyA5Mi4zMzMzQzIxOS40NjUgOTIuMzMzMyAyMTkuMTY3IDkyLjYzMTggMjE5LjE2NyA5M1YxMTAuNTg2TDIyNS43OTMgMTAzLjk2QzIyNi4xNTMgMTAzLjU5OSAyMjYuNzI3IDEwMy41NjcgMjI3LjEyNSAxMDMuODg2TDIzMC41MzcgMTA2LjYxNUwyMzQuOTA3IDEwMS41MTZDMjM1LjI1MyAxMDEuMTEzIDIzNS44NTMgMTAxLjA1IDIzNi4yNzQgMTAxLjM3MkwyNDguODMzIDExMC45NzZWOTNDMjQ4LjgzMyA5Mi42MzE4IDI0OC41MzUgOTIuMzMzMyAyNDguMTY3IDkyLjMzMzNIMjE5LjgzM1pNMjUwLjgzMyA5M0MyNTAuODMzIDkxLjUyNzMgMjQ5LjY0IDkwLjMzMzMgMjQ4LjE2NyA5MC4zMzMzSDIxOS44MzNDMjE4LjM2MSA5MC4zMzMzIDIxNy4xNjcgOTEuNTI3MiAyMTcuMTY3IDkzVjExMi45NDdDMjE3LjA1OSAxMTMuMTEgMjE3IDExMy4zMDIgMjE3IDExMy41VjExNi44MzNDMjE3IDExOC4zMDYgMjE4LjE5NCAxMTkuNSAyMTkuNjY3IDExOS41SDI0OEMyNDkuMjcgMTE5LjUgMjUwLjMzMyAxMTguNjEyIDI1MC42MDEgMTE3LjQyM0MyNTAuNzUgMTE3LjA5IDI1MC44MzMgMTE2LjcyMiAyNTAuODMzIDExNi4zMzNWOTNaTTIxOS4xNjcgMTEzLjc0OFYxMTYuMzMzQzIxOS4xNjcgMTE2LjcwMiAyMTkuNDY1IDExNyAyMTkuODMzIDExN0gyNDguMTY3QzI0OC4zNjYgMTE3IDI0OC41NDUgMTE2LjkxMyAyNDguNjY3IDExNi43NzRWMTEzLjk5NEwyMzUuNjQ0IDEwNC4wMzVMMjMxLjI1OSAxMDkuMTUxQzIzMC45MDggMTA5LjU2IDIzMC4yOTYgMTA5LjYxOCAyMjkuODc1IDEwOS4yODFMMjI2LjQwOCAxMDYuNTA3TDIxOS4xNjcgMTEzLjc0OFpNMjIzLjgzMyA5OC40MTY2QzIyMy44MzMgOTcuMTc0IDIyNC44NDEgOTYuMTY2NiAyMjYuMDgzIDk2LjE2NjZDMjI3LjMyNiA5Ni4xNjY2IDIyOC4zMzMgOTcuMTc0IDIyOC4zMzMgOTguNDE2NkMyMjguMzMzIDk5LjY1OTMgMjI3LjMyNiAxMDAuNjY3IDIyNi4wODMgMTAwLjY2N0MyMjQuODQxIDEwMC42NjcgMjIzLjgzMyA5OS42NTkzIDIyMy44MzMgOTguNDE2NlpNMjI2LjA4MyA5OC4xNjY2QzIyNS45NDUgOTguMTY2NiAyMjUuODMzIDk4LjI3ODYgMjI1LjgzMyA5OC40MTY2QzIyNS44MzMgOTguNTU0NyAyMjUuOTQ1IDk4LjY2NjYgMjI2LjA4MyA5OC42NjY2QzIyNi4yMjEgOTguNjY2NiAyMjYuMzMzIDk4LjU1NDcgMjI2LjMzMyA5OC40MTY2QzIyNi4zMzMgOTguMjc4NiAyMjYuMjIxIDk4LjE2NjYgMjI2LjA4MyA5OC4xNjY2WiIgZmlsbD0iIzMzMzMzMyIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwNi4wMTEgMTA3LjAxMUwxMDYgMTA4TDEwNSAxMDcuOTg5TDEwNS4wMTEgMTA3TDEwNi4wMTEgMTA3LjAxMVpNMTA2LjA1NCAxMDMuMDU0TDEwNi4wMzMgMTA1LjAzM0wxMDUuMDMzIDEwNS4wMjJMMTA1LjA1NCAxMDMuMDQzTDEwNi4wNTQgMTAzLjA1NFpNMTA2LjA5OCA5OS4wOTc4TDEwNi4wNzYgMTAxLjA3NkwxMDUuMDc2IDEwMS4wNjVMMTA1LjA5OCA5OS4wODY4TDEwNi4wOTggOTkuMDk3OFpNMTA2LjE0MSA5NS4xNDEzTDEwNi4xMiA5Ny4xMTk2TDEwNS4xMiA5Ny4xMDg2TDEwNS4xNDEgOTUuMTMwM0wxMDYuMTQxIDk1LjE0MTNaTTEwNi4xODUgOTEuMTg0OEwxMDYuMTYzIDkzLjE2M0wxMDUuMTYzIDkzLjE1MjFMMTA1LjE4NSA5MS4xNzM4TDEwNi4xODUgOTEuMTg0OFpNMTA2LjIyOCA4Ny4yMjgzTDEwNi4yMDcgODkuMjA2NUwxMDUuMjA3IDg5LjE5NTVMMTA1LjIyOCA4Ny4yMTczTDEwNi4yMjggODcuMjI4M1pNMTA2LjI3MiA4My4yNzE3TDEwNi4yNSA4NS4yNUwxMDUuMjUgODUuMjM5TDEwNS4yNzIgODMuMjYwN0wxMDYuMjcyIDgzLjI3MTdaTTEwNi4zMTUgNzkuMzE1MkwxMDYuMjk0IDgxLjI5MzVMMTA1LjI5NCA4MS4yODI1TDEwNS4zMTUgNzkuMzA0MkwxMDYuMzE1IDc5LjMxNTJaTTEwNi4zNTkgNzUuMzU4N0wxMDYuMzM3IDc3LjMzN0wxMDUuMzM3IDc3LjMyNkwxMDUuMzU5IDc1LjM0NzdMMTA2LjM1OSA3NS4zNTg3Wk0xMDYuNDAyIDcxLjQwMjJMMTA2LjM4IDczLjM4MDRMMTA1LjM4MSA3My4zNjk0TDEwNS40MDIgNzEuMzkxMkwxMDYuNDAyIDcxLjQwMjJaTTEwNi40NDYgNjcuNDQ1NkwxMDYuNDI0IDY5LjQyMzlMMTA1LjQyNCA2OS40MTI5TDEwNS40NDYgNjcuNDM0N0wxMDYuNDQ2IDY3LjQ0NTZaTTEwNi40ODkgNjMuNDg5MUwxMDYuNDY3IDY1LjQ2NzRMMTA1LjQ2NyA2NS40NTY0TDEwNS40ODkgNjMuNDc4MUwxMDYuNDg5IDYzLjQ4OTFaTTEwNi41MzMgNTkuNTMyNkwxMDYuNTExIDYxLjUxMDlMMTA1LjUxMSA2MS40OTk5TDEwNS41MzMgNTkuNTIxNkwxMDYuNTMzIDU5LjUzMjZaTTEwNi41NzYgNTUuNTc2MUwxMDYuNTU0IDU3LjU1NDNMMTA1LjU1NCA1Ny41NDMzTDEwNS41NzYgNTUuNTY1MUwxMDYuNTc2IDU1LjU3NjFaTTEwNi42MiA1MS42MTk1TDEwNi41OTggNTMuNTk3OEwxMDUuNTk4IDUzLjU4NjhMMTA1LjYyIDUxLjYwODZMMTA2LjYyIDUxLjYxOTVaTTEwNi42NjMgNDcuNjYzTDEwNi42NDEgNDkuNjQxM0wxMDUuNjQxIDQ5LjYzMDNMMTA1LjY2MyA0Ny42NTJMMTA2LjY2MyA0Ny42NjNaTTEwNi43MDcgNDMuNzA2NUwxMDYuNjg1IDQ1LjY4NDhMMTA1LjY4NSA0NS42NzM4TDEwNS43MDcgNDMuNjk1NUwxMDYuNzA3IDQzLjcwNjVaTTEwNi43NSAzOS43NUwxMDYuNzI4IDQxLjcyODJMMTA1LjcyOCA0MS43MTczTDEwNS43NSAzOS43MzlMMTA2Ljc1IDM5Ljc1Wk0xMDYuNzk0IDM1Ljc5MzVMMTA2Ljc3MiAzNy43NzE3TDEwNS43NzIgMzcuNzYwN0wxMDUuNzk0IDM1Ljc4MjVMMTA2Ljc5NCAzNS43OTM1Wk0xMDYuODM3IDMxLjgzNjlMMTA2LjgxNSAzMy44MTUyTDEwNS44MTUgMzMuODA0MkwxMDUuODM3IDMxLjgyNkwxMDYuODM3IDMxLjgzNjlaTTEwNi44OCAyNy44ODA0TDEwNi44NTkgMjkuODU4N0wxMDUuODU5IDI5Ljg0NzdMMTA1Ljg4MSAyNy44Njk0TDEwNi44OCAyNy44ODA0Wk0xMDYuOTI0IDIzLjkyMzlMMTA2LjkwMiAyNS45MDIyTDEwNS45MDIgMjUuODkxMkwxMDUuOTI0IDIzLjkxMjlMMTA2LjkyNCAyMy45MjM5Wk0xMDYuOTY3IDE5Ljk2NzRMMTA2Ljk0NiAyMS45NDU3TDEwNS45NDYgMjEuOTM0N0wxMDUuOTY3IDE5Ljk1NjRMMTA2Ljk2NyAxOS45Njc0Wk0xMDcgMTdMMTA2Ljk4OSAxNy45ODkxTDEwNS45ODkgMTcuOTc4MUwxMDYgMTYuOTg5TDEwNyAxN1oiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM0OSA2Mi42NDJDMTk1LjU0NyA2Mi44MzQ3IDE5NS41NTEgNjMuMTUxMyAxOTUuMzU4IDYzLjM0OUwxOTIuMjE3IDY2LjU3MTNDMTkyLjAyNCA2Ni43NjkgMTkxLjcwOCA2Ni43NzMgMTkxLjUxIDY2LjU4MDNDMTkxLjMxMiA2Ni4zODc1IDE5MS4zMDggNjYuMDcxIDE5MS41MDEgNjUuODczMkwxOTMuOTk3IDYzLjMxMjJMMTkzLjk5IDYyLjcxMzRMMTkxLjQyOSA2MC4yMTY4QzE5MS4yMzEgNjAuMDI0MSAxOTEuMjI3IDU5LjcwNzUgMTkxLjQyIDU5LjUwOThDMTkxLjYxMyA1OS4zMTIgMTkxLjkyOSA1OS4zMDggMTkyLjEyNyA1OS41MDA4TDE5NS4zNDkgNjIuNjQyWk0xODkuOTYyIDYyLjU2NDFMMTkxLjk3NCA2Mi41Mzg1TDE5MS45ODcgNjMuNTM4NEwxODkuOTc0IDYzLjU2NEwxODkuOTYyIDYyLjU2NDFaTTE4NS45MzYgNjIuNjE1NEwxODcuOTQ5IDYyLjU4OThMMTg3Ljk2MiA2My41ODk3TDE4NS45NDkgNjMuNjE1M0wxODUuOTM2IDYyLjYxNTRaTTE4MS45MSA2Mi42NjY3TDE4My45MjMgNjIuNjQxMUwxODMuOTM2IDYzLjY0MUwxODEuOTIzIDYzLjY2NjZMMTgxLjkxIDYyLjY2NjdaTTE3Ny44ODUgNjIuNzE4TDE3OS44OTggNjIuNjkyM0wxNzkuOTEgNjMuNjkyM0wxNzcuODk3IDYzLjcxNzlMMTc3Ljg4NSA2Mi43MThaTTE3My44NTkgNjIuNzY5M0wxNzUuODcyIDYyLjc0MzZMMTc1Ljg4NSA2My43NDM1TDE3My44NzIgNjMuNzY5MkwxNzMuODU5IDYyLjc2OTNaTTE2OS44MzMgNjIuODIwNUwxNzEuODQ2IDYyLjc5NDlMMTcxLjg1OSA2My43OTQ4TDE2OS44NDYgNjMuODIwNUwxNjkuODMzIDYyLjgyMDVaTTE2NS44MDggNjIuODcxOEwxNjcuODIxIDYyLjg0NjJMMTY3LjgzMyA2My44NDYxTDE2NS44MjEgNjMuODcxN0wxNjUuODA4IDYyLjg3MThaTTE2MS43ODIgNjIuOTIzMUwxNjMuNzk1IDYyLjg5NzVMMTYzLjgwOCA2My44OTc0TDE2MS43OTUgNjMuOTIzTDE2MS43ODIgNjIuOTIzMVpNMTU3Ljc1NyA2Mi45NzQ0TDE1OS43NjkgNjIuOTQ4N0wxNTkuNzgyIDYzLjk0ODdMMTU3Ljc2OSA2My45NzQzTDE1Ny43NTcgNjIuOTc0NFpNMTUzLjczMSA2My4wMjU3TDE1NS43NDQgNjNMMTU1Ljc1NiA2My45OTk5TDE1My43NDQgNjQuMDI1NkwxNTMuNzMxIDYzLjAyNTdaTTE0OS43MDUgNjMuMDc3TDE1MS43MTggNjMuMDUxM0wxNTEuNzMxIDY0LjA1MTJMMTQ5LjcxOCA2NC4wNzY5TDE0OS43MDUgNjMuMDc3Wk0xNDUuNjggNjMuMTI4MkwxNDcuNjkyIDYzLjEwMjZMMTQ3LjcwNSA2NC4xMDI1TDE0NS42OTIgNjQuMTI4MkwxNDUuNjggNjMuMTI4MlpNMTQxLjY1NCA2My4xNzk1TDE0My42NjcgNjMuMTUzOUwxNDMuNjggNjQuMTUzOEwxNDEuNjY3IDY0LjE3OTRMMTQxLjY1NCA2My4xNzk1Wk0xMzcuNjI4IDYzLjIzMDhMMTM5LjY0MSA2My4yMDUyTDEzOS42NTQgNjQuMjA1MUwxMzcuNjQxIDY0LjIzMDdMMTM3LjYyOCA2My4yMzA4Wk0xMzMuNjAzIDYzLjI4MjFMMTM1LjYxNSA2My4yNTY0TDEzNS42MjggNjQuMjU2NEwxMzMuNjE1IDY0LjI4MkwxMzMuNjAzIDYzLjI4MjFaTTEyOS41NzcgNjMuMzMzNEwxMzEuNTkgNjMuMzA3N0wxMzEuNjAzIDY0LjMwNzZMMTI5LjU5IDY0LjMzMzNMMTI5LjU3NyA2My4zMzM0Wk0xMjUuNTUxIDYzLjM4NDZMMTI3LjU2NCA2My4zNTlMMTI3LjU3NyA2NC4zNTg5TDEyNS41NjQgNjQuMzg0NkwxMjUuNTUxIDYzLjM4NDZaTTEyMS41MjYgNjMuNDM1OUwxMjMuNTM5IDYzLjQxMDNMMTIzLjU1MSA2NC40MTAyTDEyMS41MzggNjQuNDM1OEwxMjEuNTI2IDYzLjQzNTlaTTExNy41IDYzLjQ4NzJMMTE5LjUxMyA2My40NjE2TDExOS41MjYgNjQuNDYxNUwxMTcuNTEzIDY0LjQ4NzFMMTE3LjUgNjMuNDg3MlpNMTEzLjQ3NCA2My41Mzg1TDExNS40ODcgNjMuNTEyOUwxMTUuNSA2NC41MTI4TDExMy40ODcgNjQuNTM4NEwxMTMuNDc0IDYzLjUzODVaTTEwOS40NDkgNjMuNTg5OEwxMTEuNDYyIDYzLjU2NDFMMTExLjQ3NCA2NC41NjQxTDEwOS40NjIgNjQuNTg5N0wxMDkuNDQ5IDYzLjU4OThaTTEwNS40MjMgNjMuNjQxMUwxMDcuNDM2IDYzLjYxNTRMMTA3LjQ0OSA2NC42MTUzTDEwNS40MzYgNjQuNjQxTDEwNS40MjMgNjMuNjQxMVpNMTAxLjM5OCA2My42OTIzTDEwMy40MSA2My42NjY3TDEwMy40MjMgNjQuNjY2NkwxMDEuNDEgNjQuNjkyM0wxMDEuMzk4IDYzLjY5MjNaTTk3LjM3MTkgNjMuNzQzNkw5OS4zODQ3IDYzLjcxOEw5OS4zOTc0IDY0LjcxNzlMOTcuMzg0NiA2NC43NDM1TDk3LjM3MTkgNjMuNzQzNlpNOTMuMzQ2MiA2My43OTQ5TDk1LjM1OSA2My43NjkzTDk1LjM3MTggNjQuNzY5Mkw5My4zNTkgNjQuNzk0OEw5My4zNDYyIDYzLjc5NDlaTTg5LjMyMDYgNjMuODQ2Mkw5MS4zMzM0IDYzLjgyMDVMOTEuMzQ2MSA2NC44MjA1TDg5LjMzMzMgNjQuODQ2MUw4OS4zMjA2IDYzLjg0NjJaTTg1LjI5NDkgNjMuODk3NUw4Ny4zMDc4IDYzLjg3MThMODcuMzIwNSA2NC44NzE3TDg1LjMwNzcgNjQuODk3NEw4NS4yOTQ5IDYzLjg5NzVaTTgxLjI2OTMgNjMuOTQ4N0w4My4yODIxIDYzLjkyMzFMODMuMjk0OSA2NC45MjNMODEuMjgyIDY0Ljk0ODdMODEuMjY5MyA2My45NDg3Wk03Ny4yNDM3IDY0TDc5LjI1NjUgNjMuOTc0NEw3OS4yNjkyIDY0Ljk3NDNMNzcuMjU2NCA2NC45OTk5TDc3LjI0MzcgNjRaTTczLjIxOCA2NC4wNTEzTDc1LjIzMDggNjQuMDI1N0w3NS4yNDM2IDY1LjAyNTZMNzMuMjMwNyA2NS4wNTEyTDczLjIxOCA2NC4wNTEzWk02OS4xOTI0IDY0LjEwMjZMNzEuMjA1MiA2NC4wNzdMNzEuMjE3OSA2NS4wNzY5TDY5LjIwNTEgNjUuMTAyNUw2OS4xOTI0IDY0LjEwMjZaTTY1LjE2NjcgNjQuMTUzOUw2Ny4xNzk1IDY0LjEyODJMNjcuMTkyMyA2NS4xMjgyTDY1LjE3OTUgNjUuMTUzOEw2NS4xNjY3IDY0LjE1MzlaTTYxLjE0MTEgNjQuMjA1Mkw2My4xNTM5IDY0LjE3OTVMNjMuMTY2NiA2NS4xNzk0TDYxLjE1MzggNjUuMjA1MUw2MS4xNDExIDY0LjIwNTJaTTU3LjExNTQgNjQuMjU2NEw1OS4xMjgzIDY0LjIzMDhMNTkuMTQxIDY1LjIzMDdMNTcuMTI4MiA2NS4yNTY0TDU3LjExNTQgNjQuMjU2NFpNNTMuMDg5OCA2NC4zMDc3TDU1LjEwMjYgNjQuMjgyMUw1NS4xMTUzIDY1LjI4Mkw1My4xMDI1IDY1LjMwNzZMNTMuMDg5OCA2NC4zMDc3Wk00OS4wNjQxIDY0LjM1OUw1MS4wNzcgNjQuMzMzNEw1MS4wODk3IDY1LjMzMzNMNDkuMDc2OSA2NS4zNTg5TDQ5LjA2NDEgNjQuMzU5Wk00NS4wMzg1IDY0LjQxMDNMNDcuMDUxMyA2NC4zODQ2TDQ3LjA2NDEgNjUuMzg0Nkw0NS4wNTEyIDY1LjQxMDJMNDUuMDM4NSA2NC40MTAzWk00MS4wMTI5IDY0LjQ2MTZMNDMuMDI1NyA2NC40MzU5TDQzLjAzODQgNjUuNDM1OEw0MS4wMjU2IDY1LjQ2MTVMNDEuMDEyOSA2NC40NjE2Wk0zNy45OTM3IDY0LjVMMzkgNjQuNDg3MkwzOS4wMTI4IDY1LjQ4NzFMMzguMDA2NCA2NS40OTk5TDM3Ljk5MzcgNjQuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxNy42NDY0QzE5NS41NDkgMTcuODQxNyAxOTUuNTQ5IDE4LjE1ODMgMTk1LjM1NCAxOC4zNTM1TDE5Mi4xNzIgMjEuNTM1NUMxOTEuOTc2IDIxLjczMDggMTkxLjY2IDIxLjczMDggMTkxLjQ2NSAyMS41MzU1QzE5MS4yNjkgMjEuMzQwMyAxOTEuMjY5IDIxLjAyMzcgMTkxLjQ2NSAyMC44Mjg0TDE5My45ODkgMTguMzA0MlYxNy42OTU3TDE5MS40NjUgMTUuMTcxNkMxOTEuMjY5IDE0Ljk3NjMgMTkxLjI2OSAxNC42NTk3IDE5MS40NjUgMTQuNDY0NUMxOTEuNjYgMTQuMjY5MiAxOTEuOTc2IDE0LjI2OTIgMTkyLjE3MiAxNC40NjQ1TDE5NS4zNTQgMTcuNjQ2NFpNMTg5Ljk0MyAxNy41SDE5MS45NjZWMTguNUgxODkuOTQzVjE3LjVaTTE4NS44OTggMTcuNUgxODcuOTIxVjE4LjVIMTg1Ljg5OFYxNy41Wk0xODEuODUyIDE3LjVIMTgzLjg3NVYxOC41SDE4MS44NTJWMTcuNVpNMTc3LjgwNyAxNy41SDE3OS44M1YxOC41SDE3Ny44MDdWMTcuNVpNMTczLjc2MSAxNy41SDE3NS43ODRWMTguNUgxNzMuNzYxVjE3LjVaTTE2OS43MTYgMTcuNUgxNzEuNzM5VjE4LjVIMTY5LjcxNlYxNy41Wk0xNjUuNjcxIDE3LjVIMTY3LjY5M1YxOC41SDE2NS42NzFWMTcuNVpNMTYxLjYyNSAxNy41SDE2My42NDhWMTguNUgxNjEuNjI1VjE3LjVaTTE1Ny41OCAxNy41SDE1OS42MDJWMTguNUgxNTcuNThWMTcuNVpNMTUzLjUzNCAxNy41SDE1NS41NTdWMTguNUgxNTMuNTM0VjE3LjVaTTE0OS40ODkgMTcuNUgxNTEuNTExVjE4LjVIMTQ5LjQ4OVYxNy41Wk0xNDUuNDQzIDE3LjVIMTQ3LjQ2NlYxOC41SDE0NS40NDNWMTcuNVpNMTQxLjM5OCAxNy41SDE0My40MjFWMTguNUgxNDEuMzk4VjE3LjVaTTEzNy4zNTIgMTcuNUgxMzkuMzc1VjE4LjVIMTM3LjM1MlYxNy41Wk0xMzMuMzA3IDE3LjVIMTM1LjMzVjE4LjVIMTMzLjMwN1YxNy41Wk0xMjkuMjYxIDE3LjVIMTMxLjI4NFYxOC41SDEyOS4yNjFWMTcuNVpNMTI1LjIxNiAxNy41SDEyNy4yMzlWMTguNUgxMjUuMjE2VjE3LjVaTTEyMS4xNyAxNy41SDEyMy4xOTNWMTguNUgxMjEuMTdWMTcuNVpNMTE3LjEyNSAxNy41SDExOS4xNDhWMTguNUgxMTcuMTI1VjE3LjVaTTExMy4wOCAxNy41SDExNS4xMDJWMTguNUgxMTMuMDhWMTcuNVpNMTA5LjAzNCAxNy41SDExMS4wNTdWMTguNUgxMDkuMDM0VjE3LjVaTTEwNiAxNy41SDEwNy4wMTFWMTguNUgxMDZWMTcuNVoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTk1LjM1NCAxMDguNjQ2QzE5NS41NDkgMTA4Ljg0MiAxOTUuNTQ5IDEwOS4xNTggMTk1LjM1NCAxMDkuMzU0TDE5Mi4xNzIgMTEyLjUzNkMxOTEuOTc2IDExMi43MzEgMTkxLjY2IDExMi43MzEgMTkxLjQ2NSAxMTIuNTM2QzE5MS4yNjkgMTEyLjM0IDE5MS4yNjkgMTEyLjAyNCAxOTEuNDY1IDExMS44MjhMMTkzLjk4OSAxMDkuMzA0VjEwOC42OTZMMTkxLjQ2NSAxMDYuMTcyQzE5MS4yNjkgMTA1Ljk3NiAxOTEuMjY5IDEwNS42NiAxOTEuNDY1IDEwNS40NjRDMTkxLjY2IDEwNS4yNjkgMTkxLjk3NiAxMDUuMjY5IDE5Mi4xNzIgMTA1LjQ2NEwxOTUuMzU0IDEwOC42NDZaTTE4OS45NDMgMTA4LjVIMTkxLjk2NlYxMDkuNUgxODkuOTQzVjEwOC41Wk0xODUuODk4IDEwOC41SDE4Ny45MjFWMTA5LjVIMTg1Ljg5OFYxMDguNVpNMTgxLjg1MiAxMDguNUgxODMuODc1VjEwOS41SDE4MS44NTJWMTA4LjVaTTE3Ny44MDcgMTA4LjVIMTc5LjgzVjEwOS41SDE3Ny44MDdWMTA4LjVaTTE3My43NjEgMTA4LjVIMTc1Ljc4NFYxMDkuNUgxNzMuNzYxVjEwOC41Wk0xNjkuNzE2IDEwOC41SDE3MS43MzlWMTA5LjVIMTY5LjcxNlYxMDguNVpNMTY1LjY3MSAxMDguNUgxNjcuNjkzVjEwOS41SDE2NS42NzFWMTA4LjVaTTE2MS42MjUgMTA4LjVIMTYzLjY0OFYxMDkuNUgxNjEuNjI1VjEwOC41Wk0xNTcuNTggMTA4LjVIMTU5LjYwMlYxMDkuNUgxNTcuNThWMTA4LjVaTTE1My41MzQgMTA4LjVIMTU1LjU1N1YxMDkuNUgxNTMuNTM0VjEwOC41Wk0xNDkuNDg5IDEwOC41SDE1MS41MTFWMTA5LjVIMTQ5LjQ4OVYxMDguNVpNMTQ1LjQ0MyAxMDguNUgxNDcuNDY2VjEwOS41SDE0NS40NDNWMTA4LjVaTTE0MS4zOTggMTA4LjVIMTQzLjQyMVYxMDkuNUgxNDEuMzk4VjEwOC41Wk0xMzcuMzUyIDEwOC41SDEzOS4zNzVWMTA5LjVIMTM3LjM1MlYxMDguNVpNMTMzLjMwNyAxMDguNUgxMzUuMzNWMTA5LjVIMTMzLjMwN1YxMDguNVpNMTI5LjI2MSAxMDguNUgxMzEuMjg0VjEwOS41SDEyOS4yNjFWMTA4LjVaTTEyNS4yMTYgMTA4LjVIMTI3LjIzOVYxMDkuNUgxMjUuMjE2VjEwOC41Wk0xMjEuMTcgMTA4LjVIMTIzLjE5M1YxMDkuNUgxMjEuMTdWMTA4LjVaTTExNy4xMjUgMTA4LjVIMTE5LjE0OFYxMDkuNUgxMTcuMTI1VjEwOC41Wk0xMTMuMDggMTA4LjVIMTE1LjEwMlYxMDkuNUgxMTMuMDhWMTA4LjVaTTEwOS4wMzQgMTA4LjVIMTExLjA1N1YxMDkuNUgxMDkuMDM0VjEwOC41Wk0xMDYgMTA4LjVIMTA3LjAxMVYxMDkuNUgxMDZWMTA4LjVaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBkPSJNMjAxLjcyOCAyNFYyMy4wNEgyMDMuNDQ0VjE2Ljk4TDIwMS44MzYgMTguMTkyTDIwMS4yNDggMTcuMzg4TDIwMy43MzIgMTUuNkgyMDQuNTI0VjIzLjA0SDIwNS45NTJWMjRIMjAxLjcyOFoiIGZpbGw9ImJsYWNrIi8+CjxwYXRoIGQ9Ik0yMDEuMDU2IDY4QzIwMS4wMzIgNjcuODU2IDIwMS4wMiA2Ny43MDggMjAxLjAyIDY3LjU1NkMyMDEuMDIgNjcuMDM2IDIwMS4xMDggNjYuNTcyIDIwMS4yODQgNjYuMTY0QzIwMS40NjggNjUuNzQ4IDIwMS43MDQgNjUuMzcyIDIwMS45OTIgNjUuMDM2QzIwMi4yOCA2NC42OTIgMjAyLjU4NCA2NC4zNzYgMjAyLjkwNCA2NC4wODhDMjAzLjIzMiA2My43OTIgMjAzLjUzNiA2My41MTIgMjAzLjgxNiA2My4yNDhDMjA0LjEwNCA2Mi45NzYgMjA0LjM0IDYyLjcwNCAyMDQuNTI0IDYyLjQzMkMyMDQuNzA4IDYyLjE2IDIwNC44IDYxLjg3NiAyMDQuOCA2MS41OEMyMDQuOCA2MS4yNDQgMjA0LjY3NiA2MC45NjggMjA0LjQyOCA2MC43NTJDMjA0LjE4IDYwLjUyOCAyMDMuODYgNjAuNDE2IDIwMy40NjggNjAuNDE2QzIwMy4xMzIgNjAuNDE2IDIwMi44MjQgNjAuNDg0IDIwMi41NDQgNjAuNjJDMjAyLjI3MiA2MC43NDggMjAyLjAxNiA2MC45MjQgMjAxLjc3NiA2MS4xNDhMMjAxLjE3NiA2MC40MTZDMjAxLjQ5NiA2MC4xMjggMjAxLjg0OCA1OS44OTYgMjAyLjIzMiA1OS43MkMyMDIuNjI0IDU5LjU0NCAyMDMuMDc2IDU5LjQ1NiAyMDMuNTg4IDU5LjQ1NkMyMDQuMDYgNTkuNDU2IDIwNC40NzIgNTkuNTQ4IDIwNC44MjQgNTkuNzMyQzIwNS4xNzYgNTkuOTA4IDIwNS40NDggNjAuMTUyIDIwNS42NCA2MC40NjRDMjA1Ljg0IDYwLjc3NiAyMDUuOTQgNjEuMTI0IDIwNS45NCA2MS41MDhDMjA1Ljk0IDYxLjg5MiAyMDUuODU2IDYyLjI0OCAyMDUuNjg4IDYyLjU3NkMyMDUuNTIgNjIuOTA0IDIwNS4zMDQgNjMuMjEyIDIwNS4wNCA2My41QzIwNC43NzYgNjMuNzg4IDIwNC40OTIgNjQuMDY4IDIwNC4xODggNjQuMzRDMjAzLjg4NCA2NC42MDQgMjAzLjU5MiA2NC44NzYgMjAzLjMxMiA2NS4xNTZDMjAzLjAzMiA2NS40MzYgMjAyLjc5MiA2NS43MjggMjAyLjU5MiA2Ni4wMzJDMjAyLjQgNjYuMzM2IDIwMi4yOCA2Ni42NjQgMjAyLjIzMiA2Ny4wMTZIMjA1LjkyOFY2OEgyMDEuMDU2WiIgZmlsbD0iYmxhY2siLz4KPHBhdGggZD0iTTIwMy4xMDggMTE1LjE0NEMyMDIuNTg4IDExNS4xNDQgMjAyLjEzNiAxMTUuMDc2IDIwMS43NTIgMTE0Ljk0QzIwMS4zNjggMTE0Ljc5NiAyMDEuMDQgMTE0LjYyNCAyMDAuNzY4IDExNC40MjRMMjAxLjI2IDExMy41MjRDMjAxLjQ4NCAxMTMuNjkyIDIwMS43NDQgMTEzLjg0IDIwMi4wNCAxMTMuOTY4QzIwMi4zMzYgMTE0LjA5NiAyMDIuNjk2IDExNC4xNiAyMDMuMTIgMTE0LjE2QzIwMy42NDggMTE0LjE2IDIwNC4wNjQgMTE0LjAyIDIwNC4zNjggMTEzLjc0QzIwNC42OCAxMTMuNDYgMjA0LjgzNiAxMTMuMTEyIDIwNC44MzYgMTEyLjY5NkMyMDQuODM2IDExMi40IDIwNC43NTYgMTEyLjEzMiAyMDQuNTk2IDExMS44OTJDMjA0LjQzNiAxMTEuNjQ0IDIwNC4xODggMTExLjQ0NCAyMDMuODUyIDExMS4yOTJDMjAzLjUyNCAxMTEuMTQgMjAzLjA5NiAxMTEuMDY0IDIwMi41NjggMTExLjA2NEgyMDEuODk2VjExMC4xODhIMjAyLjUyQzIwMi45OTIgMTEwLjE4OCAyMDMuMzggMTEwLjExNiAyMDMuNjg0IDEwOS45NzJDMjAzLjk5NiAxMDkuODI4IDIwNC4yMjggMTA5LjY0IDIwNC4zOCAxMDkuNDA4QzIwNC41MzIgMTA5LjE3NiAyMDQuNjA4IDEwOC45MzIgMjA0LjYwOCAxMDguNjc2QzIwNC42MDggMTA4LjMgMjA0LjQ2NCAxMDcuOTk2IDIwNC4xNzYgMTA3Ljc2NEMyMDMuODk2IDEwNy41MzIgMjAzLjU0OCAxMDcuNDE2IDIwMy4xMzIgMTA3LjQxNkMyMDIuNzU2IDEwNy40MTYgMjAyLjQyIDEwNy40OCAyMDIuMTI0IDEwNy42MDhDMjAxLjgzNiAxMDcuNzI4IDIwMS42IDEwNy44NjQgMjAxLjQxNiAxMDguMDE2TDIwMC45NzIgMTA3LjE2NEMyMDEuMjEyIDEwNy4wMDQgMjAxLjUyIDEwNi44NDggMjAxLjg5NiAxMDYuNjk2QzIwMi4yNzIgMTA2LjUzNiAyMDIuNzEyIDEwNi40NTYgMjAzLjIxNiAxMDYuNDU2QzIwMy43NDQgMTA2LjQ1NiAyMDQuMTkyIDEwNi41NTIgMjA0LjU2IDEwNi43NDRDMjA0LjkyOCAxMDYuOTM2IDIwNS4yMDggMTA3LjE5MiAyMDUuNCAxMDcuNTEyQzIwNS42IDEwNy44MjQgMjA1LjcgMTA4LjE2NCAyMDUuNyAxMDguNTMyQzIwNS43IDEwOS4wMDQgMjA1LjU4IDEwOS40IDIwNS4zNCAxMDkuNzJDMjA1LjEwOCAxMTAuMDQgMjA0Ljc3NiAxMTAuMzA0IDIwNC4zNDQgMTEwLjUxMkMyMDQuODQ4IDExMC43MDQgMjA1LjI0IDExMC45ODggMjA1LjUyIDExMS4zNjRDMjA1LjgwOCAxMTEuNzMyIDIwNS45NTIgMTEyLjE2NCAyMDUuOTUyIDExMi42NkMyMDUuOTUyIDExMy4wNzYgMjA1Ljg0OCAxMTMuNDc2IDIwNS42NCAxMTMuODZDMjA1LjQ0IDExNC4yMzYgMjA1LjEyOCAxMTQuNTQ0IDIwNC43MDQgMTE0Ljc4NEMyMDQuMjg4IDExNS4wMjQgMjAzLjc1NiAxMTUuMTQ0IDIwMy4xMDggMTE1LjE0NFoiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=";
|
|
2
|
-
export {
|
|
3
|
-
M as default
|
|
4
|
-
};
|