nsc-react-component 4.1.8 → 4.1.10

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.
@@ -0,0 +1,34 @@
1
+ import React from "react";
2
+ import "./index.less";
3
+ interface ImportPropos {
4
+ checkData?: boolean;
5
+ checkUrl?: string;
6
+ importUrl: string;
7
+ requestConfig?: any;
8
+ downLoadTemplet?: boolean;
9
+ downTempletUrl?: string;
10
+ onCallBacks?: {
11
+ checkCallBack?: any;
12
+ importCallBack?: any;
13
+ closeCallBack?: any;
14
+ };
15
+ [propsName: string]: any;
16
+ }
17
+ declare class NscImportData extends React.PureComponent<ImportPropos, any> {
18
+ state: {
19
+ status: number;
20
+ file: any;
21
+ currentStep: number;
22
+ requestStatus: string;
23
+ errorList: any[];
24
+ warnList: any[];
25
+ };
26
+ modalRef: React.RefObject<any>;
27
+ fileSizeKb(number?: number): string;
28
+ importData(file: any, isOverwrite: any): void;
29
+ renderErrorContent(list: any): any;
30
+ renderResult(): React.JSX.Element;
31
+ resetData(): void;
32
+ render(): React.JSX.Element;
33
+ }
34
+ export default NscImportData;
@@ -0,0 +1,289 @@
1
+ import _message from "antd/es/message";
2
+ const _excluded = ["data"];
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
9
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
10
+ import React from "react";
11
+ import "./index.less";
12
+ import NscUpload from "../upload";
13
+ import NSCButton from "../button";
14
+ import NscDownLoad from "../download";
15
+ import NscModal from "../modal";
16
+ import FileIcon from "../common/FileIcon";
17
+ import { UploadOutlined, FolderOutlined, CloseCircleOutlined, ExclamationCircleOutlined } from "@ant-design/icons";
18
+ import Steps from "../steps";
19
+ import nscFile from "nsc-file";
20
+ import Alert from "../alert";
21
+ import Collapse from "../collapse";
22
+ class NscImportData extends React.PureComponent {
23
+ constructor() {
24
+ super(...arguments);
25
+ _defineProperty(this, "state", {
26
+ status: 1,
27
+ file: null,
28
+ currentStep: 1,
29
+ requestStatus: "",
30
+ errorList: [],
31
+ warnList: []
32
+ });
33
+ _defineProperty(this, "modalRef", /*#__PURE__*/React.createRef());
34
+ }
35
+ fileSizeKb() {
36
+ let number = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
37
+ return (number / 1024).toFixed(2);
38
+ }
39
+ importData(file, isOverwrite) {
40
+ const {
41
+ requestConfig = {},
42
+ importUrl,
43
+ onCallBacks = {}
44
+ } = this.props;
45
+ let {
46
+ data = {}
47
+ } = requestConfig,
48
+ config = _objectWithoutProperties(requestConfig, _excluded);
49
+ nscFile.importFile({
50
+ url: importUrl,
51
+ data: _objectSpread(_objectSpread({}, data), {}, {
52
+ isOverwrite: isOverwrite
53
+ }),
54
+ file: file
55
+ }, requestConfig).then(res => {
56
+ if (res.code == 200) {
57
+ _message.success("导入成功!");
58
+ this.setState({
59
+ requestStatus: "success"
60
+ });
61
+ (onCallBacks === null || onCallBacks === void 0 ? void 0 : onCallBacks.importCallBack) && (onCallBacks === null || onCallBacks === void 0 ? void 0 : onCallBacks.importCallBack(res));
62
+ }
63
+ });
64
+ }
65
+ renderErrorContent(list) {
66
+ return list.map((item, index) => {
67
+ if (this.state.requestStatus == "warning") {
68
+ return /*#__PURE__*/React.createElement("div", {
69
+ key: index
70
+ }, "第" + item.rowNum + "行数据重复;");
71
+ } else {
72
+ return /*#__PURE__*/React.createElement("div", {
73
+ key: index
74
+ }, item.errorMsg);
75
+ }
76
+ });
77
+ }
78
+ renderResult() {
79
+ const {
80
+ requestStatus,
81
+ errorList,
82
+ warnList
83
+ } = this.state;
84
+ const alert_msg_map = {
85
+ success: "导入成功",
86
+ error: "导入失败",
87
+ warning: "告警提示"
88
+ };
89
+ if (requestStatus == "success") {
90
+ var _alert_msg_map$reques;
91
+ return /*#__PURE__*/React.createElement(Alert, {
92
+ style: {
93
+ marginTop: "8px"
94
+ },
95
+ message: (_alert_msg_map$reques = alert_msg_map[requestStatus]) !== null && _alert_msg_map$reques !== void 0 ? _alert_msg_map$reques : "提示",
96
+ type: requestStatus,
97
+ showIcon: true
98
+ });
99
+ } else {
100
+ return /*#__PURE__*/React.createElement(Collapse, {
101
+ expandIconPosition: "right",
102
+ className: requestStatus == "warning" ? "content-warning" : "content-error",
103
+ style: {
104
+ backgroundColor: requestStatus == "warning" ? "#FCE1AB" : "#fff2f0",
105
+ border: requestStatus == "warning" ? "1px solid #FCE1AB" : "1px solid #FFCCC7",
106
+ borderRadius: "2px"
107
+ },
108
+ defaultActiveKey: ["1"]
109
+ }, /*#__PURE__*/React.createElement(Collapse.Panel, {
110
+ key: "1",
111
+ header: /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("span", {
112
+ style: {
113
+ color: requestStatus == "warning" ? "#FAAD14" : "#f60"
114
+ }
115
+ }, requestStatus == "warning" ? /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null) : /*#__PURE__*/React.createElement(CloseCircleOutlined, null), alert_msg_map[requestStatus])),
116
+ extra: /*#__PURE__*/React.createElement("span", {
117
+ style: {
118
+ color: requestStatus == "warning" ? "#FAAD14" : "#f60"
119
+ }
120
+ }, requestStatus == "warning" ? "查看" : "查看错误")
121
+ }, /*#__PURE__*/React.createElement("div", {
122
+ style: {
123
+ background: requestStatus == "warning" ? "#FFFDF6" : "#fff9f9"
124
+ },
125
+ className: "content-error__msg"
126
+ }, this.renderErrorContent(requestStatus == "warning" ? warnList : errorList))));
127
+ }
128
+ }
129
+ resetData() {
130
+ this.setState({
131
+ status: 1,
132
+ file: null,
133
+ currentStep: 1,
134
+ requestStatus: "",
135
+ errorList: [],
136
+ warnList: []
137
+ });
138
+ }
139
+ render() {
140
+ const {
141
+ file,
142
+ status,
143
+ currentStep,
144
+ requestStatus
145
+ } = this.state;
146
+ const {
147
+ downLoadTemplet,
148
+ downTempletUrl,
149
+ checkData,
150
+ checkUrl,
151
+ requestConfig
152
+ } = this.props;
153
+ const footer = /*#__PURE__*/React.createElement("div", {
154
+ className: "footer"
155
+ }, /*#__PURE__*/React.createElement(NSCButton, {
156
+ onClick: () => {
157
+ var _this$modalRef$curren;
158
+ (_this$modalRef$curren = this.modalRef.current) === null || _this$modalRef$curren === void 0 || _this$modalRef$curren.hide();
159
+ this.resetData();
160
+ }
161
+ }, "\u53D6\u6D88"), downLoadTemplet && status == 1 && /*#__PURE__*/React.createElement(NscDownLoad, {
162
+ url: downTempletUrl
163
+ }, /*#__PURE__*/React.createElement(NSCButton, {
164
+ type: "primary",
165
+ style: {
166
+ marginLeft: 20
167
+ }
168
+ }, "\u6A21\u677F\u4E0B\u8F7D")), requestStatus == "warning" && status == 2 && /*#__PURE__*/React.createElement(NSCButton, {
169
+ type: "primary",
170
+ style: {
171
+ marginLeft: 20
172
+ },
173
+ onClick: () => {
174
+ this.importData(this.state.file, false);
175
+ }
176
+ }, "\u4E0D\u8986\u76D6\u6570\u636E"), requestStatus == "warning" && status == 2 && /*#__PURE__*/React.createElement(NSCButton, {
177
+ type: "primary",
178
+ style: {
179
+ marginLeft: 20
180
+ },
181
+ onClick: () => {
182
+ this.importData(this.state.file, true);
183
+ }
184
+ }, "\u8986\u76D6\u6570\u636E"));
185
+ return /*#__PURE__*/React.createElement("div", null, this.props.children ? this.props.children : /*#__PURE__*/React.createElement(NSCButton, {
186
+ type: "primary",
187
+ onClick: () => {
188
+ var _this$modalRef$curren2;
189
+ (_this$modalRef$curren2 = this.modalRef.current) === null || _this$modalRef$curren2 === void 0 || _this$modalRef$curren2.show();
190
+ }
191
+ }, "\u6570\u636E\u5BFC\u5165"), /*#__PURE__*/React.createElement(NscModal, {
192
+ title: "\u6570\u636E\u5BFC\u5165",
193
+ width: 800,
194
+ wrapClassName: "import-modal",
195
+ ref: this.modalRef,
196
+ footer: footer,
197
+ onCancel: () => {
198
+ this.resetData();
199
+ }
200
+ }, /*#__PURE__*/React.createElement("div", {
201
+ className: "content"
202
+ }, status == 1 ? /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(NscUpload, {
203
+ beforeUpload: file => {
204
+ this.setState({
205
+ file
206
+ });
207
+ return false;
208
+ },
209
+ allowFileSuffix: ["xls", "xlxs"],
210
+ accept: ".xls,.xlxs",
211
+ showUploadList: false
212
+ }, /*#__PURE__*/React.createElement(NSCButton, {
213
+ type: "primary",
214
+ disabled: file ? true : false,
215
+ icon: /*#__PURE__*/React.createElement(FolderOutlined, null)
216
+ }, "\u9009\u62E9\u6587\u4EF6")), /*#__PURE__*/React.createElement(NSCButton, {
217
+ onClick: () => {
218
+ this.setState({
219
+ status: 2,
220
+ currentStep: 1
221
+ });
222
+ if (checkData) {
223
+ nscFile.importFile({
224
+ url: checkUrl,
225
+ file: file,
226
+ data: (requestConfig === null || requestConfig === void 0 ? void 0 : requestConfig.data) || {}
227
+ }).then(res => {
228
+ if (res.data.errorCount == 0 && res.data.duplicateCount == 0) {
229
+ this.setState({
230
+ currentStep: 2,
231
+ requestStatus: "success"
232
+ });
233
+ this.importData(file, false);
234
+ return;
235
+ }
236
+ if (res.data.errorCount > 0) {
237
+ this.setState({
238
+ requestStatus: "error",
239
+ errorList: res.data.errorList
240
+ });
241
+ return;
242
+ }
243
+ if (res.data.duplicateCount > 0) {
244
+ this.setState({
245
+ requestStatus: "warning",
246
+ warnList: res.data.duplicateList
247
+ });
248
+ return;
249
+ }
250
+ });
251
+ }
252
+ },
253
+ disabled: file ? false : true,
254
+ icon: /*#__PURE__*/React.createElement(UploadOutlined, null),
255
+ style: {
256
+ marginLeft: 20
257
+ }
258
+ }, "\u5F00\u59CB\u4E0A\u4F20")), /*#__PURE__*/React.createElement("div", {
259
+ className: "upload-tip"
260
+ }, /*#__PURE__*/React.createElement("div", {
261
+ className: "upload-tip-left"
262
+ }, /*#__PURE__*/React.createElement(ExclamationCircleOutlined, null)), /*#__PURE__*/React.createElement("div", {
263
+ className: "upload-tip-content"
264
+ }, /*#__PURE__*/React.createElement("div", null, "1\u3001\u652F\u6301Excel 2007\u53CA\u4EE5\u4E0A\u7248\u672C\uFF0C\u4E14\u6BCF\u6B21\u53EA\u80FD\u4E0A\u4F20\u4E00\u4E2A\u6587\u4EF6\uFF1B"), /*#__PURE__*/React.createElement("div", null, "2\u3001\u5BFC\u5165\u524D\u5148\u4E0B\u8F7D\u6A21\u677F\uFF0C\u5E76\u6839\u636E\u6A21\u677F\u586B\u5199\u6570\u636E\uFF1B"))), file && /*#__PURE__*/React.createElement("div", {
265
+ className: "upload-file"
266
+ }, /*#__PURE__*/React.createElement("div", {
267
+ className: "file-icon"
268
+ }, /*#__PURE__*/React.createElement(FileIcon, {
269
+ type: "excel"
270
+ })), /*#__PURE__*/React.createElement("div", {
271
+ className: "file-content"
272
+ }, /*#__PURE__*/React.createElement("div", {
273
+ className: "file-title"
274
+ }, file.name), /*#__PURE__*/React.createElement("div", {
275
+ className: "file-desc"
276
+ }, /*#__PURE__*/React.createElement("span", null, "\u6587\u4EF6\u5927\u5C0F\uFF1A", this.fileSizeKb(file.size) + "KB"))))) : /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Steps, {
277
+ current: currentStep,
278
+ items: [{
279
+ title: "数据分析"
280
+ }, {
281
+ title: "数据插入"
282
+ }]
283
+ }), /*#__PURE__*/React.createElement("div", {
284
+ className: "result-content"
285
+ }, this.renderResult())))));
286
+ }
287
+ }
288
+ export default NscImportData;
289
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiY3JlYXRlUmVmIiwiZmlsZVNpemVLYiIsIm51bWJlciIsImxlbmd0aCIsInVuZGVmaW5lZCIsInRvRml4ZWQiLCJpbXBvcnREYXRhIiwiaXNPdmVyd3JpdGUiLCJyZXF1ZXN0Q29uZmlnIiwiaW1wb3J0VXJsIiwib25DYWxsQmFja3MiLCJwcm9wcyIsImRhdGEiLCJjb25maWciLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwic2V0U3RhdGUiLCJpbXBvcnRDYWxsQmFjayIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJlcnJvciIsIndhcm5pbmciLCJfYWxlcnRfbXNnX21hcCRyZXF1ZXMiLCJzdHlsZSIsIm1hcmdpblRvcCIsIm1lc3NhZ2UiLCJ0eXBlIiwic2hvd0ljb24iLCJleHBhbmRJY29uUG9zaXRpb24iLCJjbGFzc05hbWUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJkZWZhdWx0QWN0aXZlS2V5IiwiUGFuZWwiLCJoZWFkZXIiLCJjb2xvciIsImV4dHJhIiwiYmFja2dyb3VuZCIsInJlc2V0RGF0YSIsInJlbmRlciIsImRvd25Mb2FkVGVtcGxldCIsImRvd25UZW1wbGV0VXJsIiwiY2hlY2tEYXRhIiwiY2hlY2tVcmwiLCJmb290ZXIiLCJvbkNsaWNrIiwiX3RoaXMkbW9kYWxSZWYkY3VycmVuIiwibW9kYWxSZWYiLCJjdXJyZW50IiwiaGlkZSIsIm1hcmdpbkxlZnQiLCJjaGlsZHJlbiIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbjIiLCJzaG93IiwidGl0bGUiLCJ3aWR0aCIsIndyYXBDbGFzc05hbWUiLCJyZWYiLCJvbkNhbmNlbCIsImJlZm9yZVVwbG9hZCIsImFsbG93RmlsZVN1ZmZpeCIsImFjY2VwdCIsInNob3dVcGxvYWRMaXN0IiwiZGlzYWJsZWQiLCJpY29uIiwiZXJyb3JDb3VudCIsImR1cGxpY2F0ZUNvdW50IiwiZHVwbGljYXRlTGlzdCIsIm5hbWUiLCJzaXplIiwiaXRlbXMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL2ltcG9ydERhdGEvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBOc2NVcGxvYWQgZnJvbSBcIi4uL3VwbG9hZFwiO1xyXG5pbXBvcnQgTlNDQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IE5zY0Rvd25Mb2FkIGZyb20gXCIuLi9kb3dubG9hZFwiO1xyXG5pbXBvcnQgTnNjTW9kYWwgZnJvbSBcIi4uL21vZGFsXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgVXBsb2FkT3V0bGluZWQsXHJcbiAgRm9sZGVyT3V0bGluZWQsXHJcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lZCxcclxuICBFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgU3RlcHMgZnJvbSBcIi4uL3N0ZXBzXCI7XHJcbmltcG9ydCBuc2NGaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgeyBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IEFsZXJ0IGZyb20gXCIuLi9hbGVydFwiO1xyXG5pbXBvcnQgQ29sbGFwc2UgZnJvbSBcIi4uL2NvbGxhcHNlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi9jb21tb24vSWNvblwiO1xyXG5cclxuaW50ZXJmYWNlIEltcG9ydFByb3BvcyB7XHJcbiAgY2hlY2tEYXRhPzogYm9vbGVhbjsgLy/mmK/lkKbov5vooYzmlbDmja7moKHpqozvvIzpu5jorqRmYWxzZVxyXG4gIGNoZWNrVXJsPzogc3RyaW5nOyAvL+aVsOaNruagoemqjOaOpeWPo+WcsOWdgFxyXG4gIGltcG9ydFVybDogc3RyaW5nOyAvL+aVsOaNruWvvOWFpeWcsOWdgFxyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZG93bkxvYWRUZW1wbGV0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrkuIvovb3mqKHmnb/mjInpkq5cclxuICBkb3duVGVtcGxldFVybD86IHN0cmluZzsgLy/kuIvovb3mqKHmnb/lnLDlnYBcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIGNoZWNrQ2FsbEJhY2s/OiBhbnk7IC8v5pWw5o2u5qCh6aqM5Zue6LCDXHJcbiAgICBpbXBvcnRDYWxsQmFjaz86IGFueTsgLy/mlbDmja7lr7zlhaXlm57osINcclxuICAgIGNsb3NlQ2FsbEJhY2s/OiBhbnk7XHJcbiAgfTtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY2xhc3MgTnNjSW1wb3J0RGF0YSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SW1wb3J0UHJvcG9zLCBhbnk+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIHN0YXR1czogMSxcclxuICAgIGZpbGU6IG51bGwsXHJcbiAgICBjdXJyZW50U3RlcDogMSxcclxuICAgIHJlcXVlc3RTdGF0dXM6IFwiXCIsXHJcbiAgICBlcnJvckxpc3Q6IFtdLFxyXG4gICAgd2Fybkxpc3Q6IFtdLFxyXG4gIH07XHJcbiAgbW9kYWxSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGZpbGVTaXplS2IobnVtYmVyID0gMCkge1xyXG4gICAgcmV0dXJuIChudW1iZXIgLyAxMDI0KS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuICBpbXBvcnREYXRhKGZpbGUsIGlzT3ZlcndyaXRlKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RDb25maWcgPSB7fSwgaW1wb3J0VXJsLCBvbkNhbGxCYWNrcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZGF0YSA9IHt9LCAuLi5jb25maWcgfSA9IHJlcXVlc3RDb25maWc7XHJcbiAgICBuc2NGaWxlXHJcbiAgICAgIC5pbXBvcnRGaWxlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHVybDogaW1wb3J0VXJsLFxyXG4gICAgICAgICAgZGF0YTogeyAuLi5kYXRhLCBpc092ZXJ3cml0ZTogaXNPdmVyd3JpdGUgfSxcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICByZXF1ZXN0Q29uZmlnXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyRXJyb3JDb250ZW50KGxpc3QpIHtcclxuICAgIHJldHVybiBsaXN0Lm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuc3RhdGUucmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIikge1xyXG4gICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntcIuesrFwiICsgaXRlbS5yb3dOdW0gKyBcIuihjOaVsOaNrumHjeWkje+8m1wifTwvZGl2PjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbS5lcnJvck1zZ308L2Rpdj47XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJSZXN1bHQoKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RTdGF0dXMsIGVycm9yTGlzdCwgd2Fybkxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBhbGVydF9tc2dfbWFwID0ge1xyXG4gICAgICBzdWNjZXNzOiBcIuWvvOWFpeaIkOWKn1wiLFxyXG4gICAgICBlcnJvcjogXCLlr7zlhaXlpLHotKVcIixcclxuICAgICAgd2FybmluZzogXCLlkYrorabmj5DnpLpcIixcclxuICAgIH07XHJcbiAgICBpZiAocmVxdWVzdFN0YXR1cyA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxBbGVydFxyXG4gICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjhweFwiIH19XHJcbiAgICAgICAgICBtZXNzYWdlPXthbGVydF9tc2dfbWFwW3JlcXVlc3RTdGF0dXNdID8/IFwi5o+Q56S6XCJ9XHJcbiAgICAgICAgICB0eXBlPXtyZXF1ZXN0U3RhdHVzfVxyXG4gICAgICAgICAgc2hvd0ljb25cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8Q29sbGFwc2VcclxuICAgICAgICAgIGV4cGFuZEljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcImNvbnRlbnQtd2FybmluZ1wiIDogXCJjb250ZW50LWVycm9yXCJcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZDRTFBQlwiIDogXCIjZmZmMmYwXCIsXHJcbiAgICAgICAgICAgIGJvcmRlcjpcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICA/IFwiMXB4IHNvbGlkICNGQ0UxQUJcIlxyXG4gICAgICAgICAgICAgICAgOiBcIjFweCBzb2xpZCAjRkZDQ0M3XCIsXHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIycHhcIixcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBkZWZhdWx0QWN0aXZlS2V5PXtbXCIxXCJdfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxDb2xsYXBzZS5QYW5lbFxyXG4gICAgICAgICAgICBrZXk9XCIxXCJcclxuICAgICAgICAgICAgaGVhZGVyPXtcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxFeGNsYW1hdGlvbkNpcmNsZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPENsb3NlQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c119XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZXh0cmE9e1xyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCLmn6XnnItcIiA6IFwi5p+l55yL6ZSZ6K+vXCJ9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZGRkRGNlwiIDogXCIjZmZmOWY5XCIsXHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb250ZW50LWVycm9yX19tc2dcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyRXJyb3JDb250ZW50KFxyXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IHdhcm5MaXN0IDogZXJyb3JMaXN0XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L0NvbGxhcHNlLlBhbmVsPlxyXG4gICAgICAgIDwvQ29sbGFwc2U+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RGF0YSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzdGF0dXM6IDEsXHJcbiAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgICBlcnJvckxpc3Q6IFtdLFxyXG4gICAgICB3YXJuTGlzdDogW10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBmaWxlLCBzdGF0dXMsIGN1cnJlbnRTdGVwLCByZXF1ZXN0U3RhdHVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkb3duTG9hZFRlbXBsZXQsXHJcbiAgICAgIGRvd25UZW1wbGV0VXJsLFxyXG4gICAgICBjaGVja0RhdGEsXHJcbiAgICAgIGNoZWNrVXJsLFxyXG4gICAgICByZXF1ZXN0Q29uZmlnLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGFsUmVmLmN1cnJlbnQ/LmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAge2Rvd25Mb2FkVGVtcGxldCAmJiBzdGF0dXMgPT0gMSAmJiAoXHJcbiAgICAgICAgICA8TnNjRG93bkxvYWQgdXJsPXtkb3duVGVtcGxldFVybH0+XHJcbiAgICAgICAgICAgIDxOU0NCdXR0b24gdHlwZT1cInByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fT5cclxuICAgICAgICAgICAgICDmqKHmnb/kuIvovb1cclxuICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICA8L05zY0Rvd25Mb2FkPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOS4jeimhuebluaVsOaNrlxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiAmJiBzdGF0dXMgPT0gMiAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YSh0aGlzLnN0YXRlLmZpbGUsIHRydWUpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDopobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIHt0aGlzLnByb3BzLmNoaWxkcmVuID8gKFxyXG4gICAgICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMubW9kYWxSZWYuY3VycmVudD8uc2hvdygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmlbDmja7lr7zlhaVcclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcblxyXG4gICAgICAgIDxOc2NNb2RhbFxyXG4gICAgICAgICAgdGl0bGU9XCLmlbDmja7lr7zlhaVcIlxyXG4gICAgICAgICAgd2lkdGg9ezgwMH1cclxuICAgICAgICAgIHdyYXBDbGFzc05hbWU9e1wiaW1wb3J0LW1vZGFsXCJ9XHJcbiAgICAgICAgICByZWY9e3RoaXMubW9kYWxSZWZ9XHJcbiAgICAgICAgICBmb290ZXI9e2Zvb3Rlcn1cclxuICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICB7c3RhdHVzID09IDEgPyAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxOc2NVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICBiZWZvcmVVcGxvYWQ9eyhmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dGaWxlU3VmZml4PXtbXCJ4bHNcIiwgXCJ4bHhzXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17XCIueGxzLC54bHhzXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZmlsZSA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxGb2xkZXJPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7ZcclxuICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9Oc2NVcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RlcDogMSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGNoZWNrRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuc2NGaWxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLmltcG9ydEZpbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBjaGVja1VybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiByZXF1ZXN0Q29uZmlnPy5kYXRhIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yQ291bnQgPT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA9PSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZXJyb3JDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTGlzdDogcmVzLmRhdGEuZXJyb3JMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZHVwbGljYXRlTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gZmFsc2UgOiB0cnVlfVxyXG4gICAgICAgICAgICAgICAgICAgIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5byA5aeL5LiK5LygXHJcbiAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgMeOAgeaUr+aMgUV4Y2VsIDIwMDflj4rku6XkuIrniYjmnKzvvIzkuJTmr4/mrKHlj6rog73kuIrkvKDkuIDkuKrmlofku7bvvJtcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjLjgIHlr7zlhaXliY3lhYjkuIvovb3mqKHmnb/vvIzlubbmoLnmja7mqKHmnb/loavlhpnmlbDmja7vvJs8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7ZmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHR5cGU9XCJleGNlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS10aXRsZVwiPntmaWxlLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpKflsI/vvJp7dGhpcy5maWxlU2l6ZUtiKGZpbGUuc2l6ZSkgKyBcIktCXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxTdGVwc1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW50PXtjdXJyZW50U3RlcH1cclxuICAgICAgICAgICAgICAgICAgaXRlbXM9e1tcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7liIbmnpBcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruaPkuWFpVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicmVzdWx0LWNvbnRlbnRcIn0+e3RoaXMucmVuZGVyUmVzdWx0KCl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L05zY01vZGFsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0ltcG9ydERhdGE7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFdBQVcsTUFBTSxhQUFhO0FBQ3JDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMseUJBQXlCLFFBQ3BCLG1CQUFtQjtBQUMxQixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUU5QixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQWlCbEMsTUFBTUMsYUFBYSxTQUFTZCxLQUFLLENBQUNlLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDekQ7TUFDTkMsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JD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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","createRef","fileSizeKb","number","length","undefined","toFixed","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","importFile","url","_objectSpread","then","res","code","_message","success","setState","importCallBack","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","error","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","resetData","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","_this$modalRef$curren","modalRef","current","hide","marginLeft","children","_this$modalRef$curren2","show","title","width","wrapClassName","ref","onCancel","beforeUpload","allowFileSuffix","accept","showUploadList","disabled","icon","errorCount","duplicateCount","duplicateList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n requestConfig\r\n )\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>;\r\n } else {\r\n return <div key={index}>{item.errorMsg}</div>;\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={requestStatus}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor: requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background: requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n {downLoadTemplet && status == 1 && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.modalRef.current?.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.resetData();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlxs\"]}\r\n accept={\".xls,.xlxs\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n });\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ .import-modal {
2
+ .content {
3
+ // padding-top: 16px;
4
+ }
5
+ .footer {
6
+ display: flex;
7
+ justify-content: end;
8
+ }
9
+ .result-content {
10
+ margin-top: 20px;
11
+ }
12
+ .content-error__header--icon {
13
+ color: #f60;
14
+ }
15
+ .error {
16
+ color: #f60;
17
+ }
18
+ .content-warning {
19
+ .ant-collapse-content-box {
20
+ background: #fff8e9 !important;
21
+ }
22
+ }
23
+ .content-error {
24
+ .ant-collapse-content-box {
25
+ background: #fff2f0 !important;
26
+ }
27
+ }
28
+ .content-error__msg {
29
+ height: 160px;
30
+ overflow: auto;
31
+ }
32
+ .ant-modal-body {
33
+ min-height: 362px;
34
+ padding: 24px !important;
35
+ }
36
+ .ant-modal-footer {
37
+ border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
38
+ padding: 10px 16px !important;
39
+ }
40
+ .ant-modal-content {
41
+ padding: 0 !important;
42
+ }
43
+ .ant-modal-header {
44
+ padding: 16px 24px !important;
45
+ color: rgba(0, 0, 0, 0.85);
46
+ background: #fff;
47
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06) !important;
48
+ border-radius: 2px 2px 0 0;
49
+ margin-bottom: 0px !important;
50
+ }
51
+ .ant-collapse-content {
52
+ border-top: none !important;
53
+ }
54
+ .upload-tip {
55
+ display: flex;
56
+ width: 100%;
57
+ margin-top: 24px;
58
+ padding: 9px 0;
59
+ height: 63px;
60
+ background: #fffbe6;
61
+ font-size: 14px;
62
+ border-radius: 2px;
63
+ border: 1px solid #ffe58f;
64
+ box-sizing: border-box;
65
+ pointer-events: none;
66
+ }
67
+ .upload-tip-left {
68
+ color: #FAAD14;
69
+ width: 38px;
70
+ text-align: center;
71
+ }
72
+ .upload-tip-content {
73
+ flex: auto;
74
+ font-size: 14px;
75
+ line-height: 22px;
76
+ }
77
+ .upload-file {
78
+ display: flex;
79
+ width: 364px;
80
+ min-height: 81px;
81
+ margin-top: 24px;
82
+ padding: 16px;
83
+ background: #ffffff;
84
+ border-radius: 10px;
85
+ border: 1px solid #f0f0f0;
86
+ align-items: center;
87
+ .file-icon {
88
+ width: 46px;
89
+ height: 49px;
90
+ }
91
+ .file-content {
92
+ flex: auto;
93
+ padding-left: 12px;
94
+ .file-title {
95
+ max-width: 270px;
96
+ font-size: 16px;
97
+ font-weight: 500;
98
+ color: #666666;
99
+ text-overflow: ellipsis;
100
+ white-space: nowrap;
101
+ overflow: hidden;
102
+ }
103
+ .file-desc {
104
+ margin-top: 6px;
105
+ font-size: 13px;
106
+ font-weight: 500;
107
+ color: #999999;
108
+ }
109
+ }
110
+ }
111
+ }
package/lib/index.d.ts CHANGED
@@ -88,3 +88,4 @@ export { default as TabsPage } from "./page/TabsPage";
88
88
  export { default as FormPage } from "./page/FormPage";
89
89
  export { default as SettingTable } from "./page/SettingTable";
90
90
  export { default as SettingTab } from "./page/SettingTab";
91
+ export { default as ImportData } from "./base/importData";
package/lib/index.js CHANGED
@@ -98,4 +98,5 @@ export { default as TabsPage } from "./page/TabsPage";
98
98
  export { default as FormPage } from "./page/FormPage";
99
99
  export { default as SettingTable } from "./page/SettingTable";
100
100
  export { default as SettingTab } from "./page/SettingTab";
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXlqcyIsImxvY2FsZSIsImRlZmF1bHQiLCJCdXR0b24iLCJDYXNjYWRlciIsIkNoZWNrYm94IiwiQm9keVJvdyIsIkljb24iLCJUcmVlUGFuZWwiLCJEYXRlUGlja2VyIiwiRm9ybSIsIklucHV0IiwiVGV4dEFyZWEiLCJNZW51IiwiUmFkaW8iLCJTZWxlY3QiLCJUYWJsZSIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsIklOU0NUYWJsZVByb3BzIiwiVGFicyIsIlRyZWUiLCJOc2NUcmVlUHJvcHMiLCJTdG9yZSIsIlN0b3JlQ29uZmlnVHlwZSIsImdldERlZmF1bHRDb25maWciLCJzZXRDb25maWciLCJUYWdTZWxlY3QiLCJOb0RhdGEiLCJOb01lc3NhZ2UiLCJOb05ldFdvcmsiLCJQYWdlNDA0IiwiTm9BdXRob3JpdHkiLCJSYW5nZVBpY2tlciIsIk1vZGFsIiwiQ2hhcnQiLCJtZXNzYWdlIiwiQWZmaXgiLCJBbGVydCIsIkFuY2hvciIsIkF2YXRhciIsIkJhY2tUb3AiLCJCYWRnZSIsIkJyZWFkY3J1bWIiLCJDYWxlbmRhciIsIkNhcmQiLCJDb2xsYXBzZSIsIkNvbmZpZ1Byb3ZpZGVyIiwiRGVzY3JpcHRpb25zIiwiRGl2aWRlciIsIkRyYXdlciIsIkRyb3Bkb3duIiwiUm93IiwiQ29sIiwiSW1hZ2UiLCJMYXlvdXQiLCJMaXN0Iiwibm90aWZpY2F0aW9uIiwiUGFnaW5hdGlvbiIsIlBvcGNvbmZpcm0iLCJQcm9ncmVzcyIsIlJlc3VsdCIsIlNrZWxldG9uIiwiU3BhY2UiLCJTdGF0aXN0aWMiLCJTdGVwcyIsIlRpbWVsaW5lIiwiVG9vbHRpcCIsIlR5cG9ncmFwaHkiLCJQb3BvdmVyIiwiSWZyYW1lIiwiRXJyb3JCb3VuZGFyeSIsIkVkaXRvciIsIlVwbG9hZCIsIkRvd25sb2FkIiwiVHJhbnNmZXIiLCJTcGluIiwiUGRmVmlld2VyIiwiRmlsZUljb24iLCJTd2l0Y2giLCJUcmVlU2VsZWN0IiwiQ2Fyb3VzZWwiLCJFbGxpcHNlQ2VsbCIsIlFSQ29kZSIsIldhdGVybWFyayIsIkNvbG9yUGlja2VyIiwiVG91ciIsIlNsaWRlck1lbnUiLCJJbWFnZVByZXZlaXciLCJCYXNlUGFnZSIsIkhlYWRlclNlYXJjaCIsIlBhc3NXb3JkQ2hlY2siLCJUYWJzUGFnZSIsIkZvcm1QYWdlIiwiU2V0dGluZ1RhYmxlIiwiU2V0dGluZ1RhYiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDMtMjIgMDk6MDQ6MTlcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTE2IDE0OjQzOjE1XHJcbiAqL1xyXG4vLyBleHBvcnQgeyBGb3JtSW5zdGFuY2UgfSBmcm9tIFwiYW50ZC9saWIvZm9ybVwiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS96aC1jblwiO1xyXG5cclxuZGF5anMubG9jYWxlKFwiemgtY25cIik7XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbiB9IGZyb20gXCIuL2Jhc2UvYnV0dG9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FzY2FkZXIgfSBmcm9tIFwiLi9iYXNlL2Nhc2NhZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tib3ggfSBmcm9tIFwiLi9iYXNlL2NoZWNrYm94XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQm9keVJvdyB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL0JvZHlSb3dcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vSWNvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZWVQYW5lbCB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL1RyZWVQYW5lbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGVQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2RhdGVwaWNrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9ybSB9IGZyb20gXCIuL2Jhc2UvZm9ybVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIElucHV0IH0gZnJvbSBcIi4vYmFzZS9pbnB1dFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRBcmVhIH0gZnJvbSBcIi4vYmFzZS9pbnB1dC9UZXh0QXJlYVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnUgfSBmcm9tIFwiLi9iYXNlL21lbnVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWRpbyB9IGZyb20gXCIuL2Jhc2UvcmFkaW9cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZWxlY3QgfSBmcm9tIFwiLi9iYXNlL3NlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYmxlIH0gZnJvbSBcIi4vYmFzZS90YWJsZVwiO1xyXG5leHBvcnQgeyBEbmRDb250ZXh0VHlwZSwgSUJvZHlSb3dQcm9wcywgSU5TQ1RhYmxlUHJvcHMgfSBmcm9tIFwiLi9iYXNlL3RhYmxlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFicyB9IGZyb20gXCIuL2Jhc2UvdGFic1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyZWUgfSBmcm9tIFwiLi9iYXNlL3RyZWVcIjtcclxuZXhwb3J0IHsgTnNjVHJlZVByb3BzLCBTdG9yZSwgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIi4vYmFzZS90cmVlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZ2V0RGVmYXVsdENvbmZpZywgc2V0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFnU2VsZWN0IH0gZnJvbSBcIi4vYmFzZS90YWdTZWxlY3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb0RhdGEgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Ob0RhdGFcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb01lc3NhZ2UgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Ob01lc3NhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb05ldFdvcmsgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Ob05ldFdvcmtcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWdlNDA0IH0gZnJvbSBcIi4vYmFzZS9jb21tb24vUGFnZTQwNFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vQXV0aG9yaXR5IH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9BdXRob3JpdHlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYW5nZVBpY2tlciB9IGZyb20gXCIuL2Jhc2UvZGF0ZXBpY2svUmFuZ2VwaWNrZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNb2RhbCB9IGZyb20gXCIuL2Jhc2UvbW9kYWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGFydCB9IGZyb20gXCIuL2Jhc2UvY2hhcnRcIjtcclxuXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWVzc2FnZSB9IGZyb20gXCIuL2Jhc2UvbWVzc2FnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFmZml4IH0gZnJvbSBcIi4vYmFzZS9hZmZpeFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFsZXJ0IH0gZnJvbSBcIi4vYmFzZS9hbGVydFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEFuY2hvciB9IGZyb20gXCIuL2Jhc2UvYW5jaG9yXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXZhdGFyIH0gZnJvbSBcIi4vYmFzZS9hdmF0YXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWNrVG9wIH0gZnJvbSBcIi4vYmFzZS9iYWNrVG9wXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFkZ2UgfSBmcm9tIFwiLi9iYXNlL2JhZGdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWRjcnVtYiB9IGZyb20gXCIuL2Jhc2UvYnJlYWRjcnVtYlwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhbGVuZGFyIH0gZnJvbSBcIi4vYmFzZS9jYWxlbmRhclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhcmQgfSBmcm9tIFwiLi9iYXNlL2NhcmRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xsYXBzZSB9IGZyb20gXCIuL2Jhc2UvY29sbGFwc2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25maWdQcm92aWRlciB9IGZyb20gXCIuL2Jhc2UvY29uZmlnUHJvdmlkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEZXNjcmlwdGlvbnMgfSBmcm9tIFwiLi9iYXNlL2Rlc2NyaXB0aW9uc1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERpdmlkZXIgfSBmcm9tIFwiLi9iYXNlL2RpdmlkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcmF3ZXIgfSBmcm9tIFwiLi9iYXNlL2RyYXdlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERyb3Bkb3duIH0gZnJvbSBcIi4vYmFzZS9kcm9wZG93blwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJvdyB9IGZyb20gXCIuL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2wgfSBmcm9tIFwiLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UgfSBmcm9tIFwiLi9iYXNlL2ltYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGF5b3V0IH0gZnJvbSBcIi4vYmFzZS9sYXlvdXRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0IH0gZnJvbSBcIi4vYmFzZS9saXN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbm90aWZpY2F0aW9uIH0gZnJvbSBcIi4vYmFzZS9ub3RpZmljYXRpb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYWdpbmF0aW9uIH0gZnJvbSBcIi4vYmFzZS9wYWdpbmF0aW9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9wY29uZmlybSB9IGZyb20gXCIuL2Jhc2UvcG9wY29uZmlybVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFByb2dyZXNzIH0gZnJvbSBcIi4vYmFzZS9wcm9ncmVzc1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJlc3VsdCB9IGZyb20gXCIuL2Jhc2UvcmVzdWx0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2tlbGV0b24gfSBmcm9tIFwiLi9iYXNlL3NrZWxldG9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BhY2UgfSBmcm9tIFwiLi9iYXNlL3NwYWNlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RhdGlzdGljIH0gZnJvbSBcIi4vYmFzZS9zdGF0aXN0aWNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGVwcyB9IGZyb20gXCIuL2Jhc2Uvc3RlcHNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUaW1lbGluZSB9IGZyb20gXCIuL2Jhc2UvdGltZWxpbmVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb29sdGlwIH0gZnJvbSBcIi4vYmFzZS90b29sdGlwXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHlwb2dyYXBoeSB9IGZyb20gXCIuL2Jhc2UvdHlwb2dyYXBoeVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvcG92ZXIgfSBmcm9tIFwiLi9iYXNlL3BvcG92ZXJcIjtcclxuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIElucHV0RWFtaWxJbnN0YW5jZSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvRW1haWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJZnJhbWUgfSBmcm9tIFwiLi9iYXNlL2lmcmFtZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9iYXNlL2Vycm9yYm91bmRhcnlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGl0b3IgfSBmcm9tIFwiLi9iYXNlL2VkaXRvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFVwbG9hZCB9IGZyb20gXCIuL2Jhc2UvdXBsb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG93bmxvYWQgfSBmcm9tIFwiLi9iYXNlL2Rvd25sb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhbnNmZXIgfSBmcm9tIFwiLi9iYXNlL3RyYW5zZmVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BpbiB9IGZyb20gXCIuL2Jhc2Uvc3BpblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBkZlZpZXdlciB9IGZyb20gXCIuL2Jhc2UvcGRmdml3ZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGaWxlSWNvbiB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL0ZpbGVJY29uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3dpdGNoIH0gZnJvbSBcIi4vYmFzZS9zd2l0Y2hcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlU2VsZWN0IH0gZnJvbSBcIi4vYmFzZS90cmVlc2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2Fyb3VzZWwgfSBmcm9tIFwiLi9iYXNlL2Nhcm91c2VsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxsaXBzZUNlbGwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9FbGxpcHNlQ2VsbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFFSQ29kZSB9IGZyb20gXCIuL2Jhc2UvcWVjb2RlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgV2F0ZXJtYXJrIH0gZnJvbSBcIi4vYmFzZS93YXRlcm1hcmtcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL2Jhc2UvY29sb3JwaWNrZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb3VyIH0gZnJvbSBcIi4vYmFzZS90b3VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2xpZGVyTWVudSB9IGZyb20gXCIuL2Jhc2Uvc2xpZGVybWVudVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlUHJldmVpdyB9IGZyb20gXCIuL2Jhc2UvSW1hZ2VWaWV3XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFzZVBhZ2UgfSBmcm9tIFwiLi9wYWdlL0Jhc2VQYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSGVhZGVyU2VhcmNoIH0gZnJvbSBcIi4vcGFnZS9IZWFkZXJTZWFyY2hcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQYXNzV29yZENoZWNrIH0gZnJvbSBcIi4vcGFnZS9QYXNzd29yZENoZWNrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFic1BhZ2UgfSBmcm9tIFwiLi9wYWdlL1RhYnNQYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9ybVBhZ2UgfSBmcm9tIFwiLi9wYWdlL0Zvcm1QYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2V0dGluZ1RhYmxlIH0gZnJvbSBcIi4vcGFnZS9TZXR0aW5nVGFibGVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTZXR0aW5nVGFiIH0gZnJvbSBcIi4vcGFnZS9TZXR0aW5nVGFiXCI7Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPLG9CQUFvQjtBQUUzQkEsS0FBSyxDQUFDQyxNQUFNLENBQUMsT0FBTyxDQUFDO0FBRXJCLFNBQVNDLE9BQU8sSUFBSUMsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU0QsT0FBTyxJQUFJRSxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVNGLE9BQU8sSUFBSUcsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTSCxPQUFPLElBQUlJLE9BQU8sUUFBUSx1QkFBdUI7QUFDMUQsU0FBU0osT0FBTyxJQUFJSyxJQUFJLFFBQVEs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
101
+ export { default as ImportData } from "./base/importData";
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXlqcyIsImxvY2FsZSIsImRlZmF1bHQiLCJCdXR0b24iLCJDYXNjYWRlciIsIkNoZWNrYm94IiwiQm9keVJvdyIsIkljb24iLCJUcmVlUGFuZWwiLCJEYXRlUGlja2VyIiwiRm9ybSIsIklucHV0IiwiVGV4dEFyZWEiLCJNZW51IiwiUmFkaW8iLCJTZWxlY3QiLCJUYWJsZSIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsIklOU0NUYWJsZVByb3BzIiwiVGFicyIsIlRyZWUiLCJOc2NUcmVlUHJvcHMiLCJTdG9yZSIsIlN0b3JlQ29uZmlnVHlwZSIsImdldERlZmF1bHRDb25maWciLCJzZXRDb25maWciLCJUYWdTZWxlY3QiLCJOb0RhdGEiLCJOb01lc3NhZ2UiLCJOb05ldFdvcmsiLCJQYWdlNDA0IiwiTm9BdXRob3JpdHkiLCJSYW5nZVBpY2tlciIsIk1vZGFsIiwiQ2hhcnQiLCJtZXNzYWdlIiwiQWZmaXgiLCJBbGVydCIsIkFuY2hvciIsIkF2YXRhciIsIkJhY2tUb3AiLCJCYWRnZSIsIkJyZWFkY3J1bWIiLCJDYWxlbmRhciIsIkNhcmQiLCJDb2xsYXBzZSIsIkNvbmZpZ1Byb3ZpZGVyIiwiRGVzY3JpcHRpb25zIiwiRGl2aWRlciIsIkRyYXdlciIsIkRyb3Bkb3duIiwiUm93IiwiQ29sIiwiSW1hZ2UiLCJMYXlvdXQiLCJMaXN0Iiwibm90aWZpY2F0aW9uIiwiUGFnaW5hdGlvbiIsIlBvcGNvbmZpcm0iLCJQcm9ncmVzcyIsIlJlc3VsdCIsIlNrZWxldG9uIiwiU3BhY2UiLCJTdGF0aXN0aWMiLCJTdGVwcyIsIlRpbWVsaW5lIiwiVG9vbHRpcCIsIlR5cG9ncmFwaHkiLCJQb3BvdmVyIiwiSWZyYW1lIiwiRXJyb3JCb3VuZGFyeSIsIkVkaXRvciIsIlVwbG9hZCIsIkRvd25sb2FkIiwiVHJhbnNmZXIiLCJTcGluIiwiUGRmVmlld2VyIiwiRmlsZUljb24iLCJTd2l0Y2giLCJUcmVlU2VsZWN0IiwiQ2Fyb3VzZWwiLCJFbGxpcHNlQ2VsbCIsIlFSQ29kZSIsIldhdGVybWFyayIsIkNvbG9yUGlja2VyIiwiVG91ciIsIlNsaWRlck1lbnUiLCJJbWFnZVByZXZlaXciLCJCYXNlUGFnZSIsIkhlYWRlclNlYXJjaCIsIlBhc3NXb3JkQ2hlY2siLCJUYWJzUGFnZSIsIkZvcm1QYWdlIiwiU2V0dGluZ1RhYmxlIiwiU2V0dGluZ1RhYiIsIkltcG9ydERhdGEiXSwic291cmNlcyI6WyIuLi9zcmMvY29tcG9uZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIyIDA5OjA0OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0xNiAxNDo0MzoxNVxyXG4gKi9cclxuLy8gZXhwb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvemgtY25cIjtcclxuXHJcbmRheWpzLmxvY2FsZShcInpoLWNuXCIpO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9iYXNlL2J1dHRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc2NhZGVyIH0gZnJvbSBcIi4vYmFzZS9jYXNjYWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vYmFzZS9jaGVja2JveFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlSb3cgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL0ljb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlUGFuZWwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9UcmVlUGFuZWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRlUGlja2VyIH0gZnJvbSBcIi4vYmFzZS9kYXRlcGlja1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcm0gfSBmcm9tIFwiLi9iYXNlL2Zvcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbnB1dCB9IGZyb20gXCIuL2Jhc2UvaW5wdXRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0QXJlYSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvVGV4dEFyZWFcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vYmFzZS9tZW51XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW8gfSBmcm9tIFwiLi9iYXNlL3JhZGlvXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0IH0gZnJvbSBcIi4vYmFzZS9zZWxlY3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZSB9IGZyb20gXCIuL2Jhc2UvdGFibGVcIjtcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMsIElOU0NUYWJsZVByb3BzIH0gZnJvbSBcIi4vYmFzZS90YWJsZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYnMgfSBmcm9tIFwiLi9iYXNlL3RhYnNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlIH0gZnJvbSBcIi4vYmFzZS90cmVlXCI7XHJcbmV4cG9ydCB7IE5zY1RyZWVQcm9wcywgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCIuL2Jhc2UvdHJlZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIGdldERlZmF1bHRDb25maWcsIHNldENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhZ1NlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdGFnU2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9EYXRhIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9EYXRhXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9NZXNzYWdlIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9NZXNzYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9OZXRXb3JrIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9OZXRXb3JrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnZTQwNCB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL1BhZ2U0MDRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb0F1dGhvcml0eSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vQXV0aG9yaXR5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFuZ2VQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2RhdGVwaWNrL1JhbmdlcGlja2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9iYXNlL21vZGFsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnQgfSBmcm9tIFwiLi9iYXNlL2NoYXJ0XCI7XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lc3NhZ2UgfSBmcm9tIFwiLi9iYXNlL21lc3NhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBZmZpeCB9IGZyb20gXCIuL2Jhc2UvYWZmaXhcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGVydCB9IGZyb20gXCIuL2Jhc2UvYWxlcnRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbmNob3IgfSBmcm9tIFwiLi9iYXNlL2FuY2hvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEF2YXRhciB9IGZyb20gXCIuL2Jhc2UvYXZhdGFyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFja1RvcCB9IGZyb20gXCIuL2Jhc2UvYmFja1RvcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhZGdlIH0gZnJvbSBcIi4vYmFzZS9iYWRnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyZWFkY3J1bWIgfSBmcm9tIFwiLi9iYXNlL2JyZWFkY3J1bWJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhciB9IGZyb20gXCIuL2Jhc2UvY2FsZW5kYXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJkIH0gZnJvbSBcIi4vYmFzZS9jYXJkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sbGFwc2UgfSBmcm9tIFwiLi9iYXNlL2NvbGxhcHNlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29uZmlnUHJvdmlkZXIgfSBmcm9tIFwiLi9iYXNlL2NvbmZpZ1Byb3ZpZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVzY3JpcHRpb25zIH0gZnJvbSBcIi4vYmFzZS9kZXNjcmlwdGlvbnNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXZpZGVyIH0gZnJvbSBcIi4vYmFzZS9kaXZpZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRHJhd2VyIH0gZnJvbSBcIi4vYmFzZS9kcmF3ZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcm9wZG93biB9IGZyb20gXCIuL2Jhc2UvZHJvcGRvd25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3cgfSBmcm9tIFwiLi9iYXNlL2dyaWQvUm93XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sIH0gZnJvbSBcIi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlIH0gZnJvbSBcIi4vYmFzZS9pbWFnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExheW91dCB9IGZyb20gXCIuL2Jhc2UvbGF5b3V0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdCB9IGZyb20gXCIuL2Jhc2UvbGlzdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vdGlmaWNhdGlvbiB9IGZyb20gXCIuL2Jhc2Uvbm90aWZpY2F0aW9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnaW5hdGlvbiB9IGZyb20gXCIuL2Jhc2UvcGFnaW5hdGlvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvcGNvbmZpcm0gfSBmcm9tIFwiLi9iYXNlL3BvcGNvbmZpcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcm9ncmVzcyB9IGZyb20gXCIuL2Jhc2UvcHJvZ3Jlc3NcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN1bHQgfSBmcm9tIFwiLi9iYXNlL3Jlc3VsdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNrZWxldG9uIH0gZnJvbSBcIi4vYmFzZS9za2VsZXRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwYWNlIH0gZnJvbSBcIi4vYmFzZS9zcGFjZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YXRpc3RpYyB9IGZyb20gXCIuL2Jhc2Uvc3RhdGlzdGljXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RlcHMgfSBmcm9tIFwiLi9iYXNlL3N0ZXBzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGltZWxpbmUgfSBmcm9tIFwiLi9iYXNlL3RpbWVsaW5lXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9vbHRpcCB9IGZyb20gXCIuL2Jhc2UvdG9vbHRpcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFR5cG9ncmFwaHkgfSBmcm9tIFwiLi9iYXNlL3R5cG9ncmFwaHlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3BvdmVyIH0gZnJvbSBcIi4vYmFzZS9wb3BvdmVyXCI7XHJcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBJbnB1dEVhbWlsSW5zdGFuY2UgfSBmcm9tIFwiLi9iYXNlL2lucHV0L0VtYWlsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWZyYW1lIH0gZnJvbSBcIi4vYmFzZS9pZnJhbWVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vYmFzZS9lcnJvcmJvdW5kYXJ5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWRpdG9yIH0gZnJvbSBcIi4vYmFzZS9lZGl0b3JcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVcGxvYWQgfSBmcm9tIFwiLi9iYXNlL3VwbG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERvd25sb2FkIH0gZnJvbSBcIi4vYmFzZS9kb3dubG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyYW5zZmVyIH0gZnJvbSBcIi4vYmFzZS90cmFuc2ZlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwaW4gfSBmcm9tIFwiLi9iYXNlL3NwaW5cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQZGZWaWV3ZXIgfSBmcm9tIFwiLi9iYXNlL3BkZnZpd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXRjaCB9IGZyb20gXCIuL2Jhc2Uvc3dpdGNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVNlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdHJlZXNlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhcm91c2VsIH0gZnJvbSBcIi4vYmFzZS9jYXJvdXNlbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVsbGlwc2VDZWxsIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vRWxsaXBzZUNlbGxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBRUkNvZGUgfSBmcm9tIFwiLi9iYXNlL3FlY29kZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhdGVybWFyayB9IGZyb20gXCIuL2Jhc2Uvd2F0ZXJtYXJrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2NvbG9ycGlja2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG91ciB9IGZyb20gXCIuL2Jhc2UvdG91clwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNsaWRlck1lbnUgfSBmcm9tIFwiLi9iYXNlL3NsaWRlcm1lbnVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZVByZXZlaXcgfSBmcm9tIFwiLi9iYXNlL0ltYWdlVmlld1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhc2VQYWdlIH0gZnJvbSBcIi4vcGFnZS9CYXNlUGFnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRlclNlYXJjaCB9IGZyb20gXCIuL3BhZ2UvSGVhZGVyU2VhcmNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFzc1dvcmRDaGVjayB9IGZyb20gXCIuL3BhZ2UvUGFzc3dvcmRDaGVja1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYnNQYWdlIH0gZnJvbSBcIi4vcGFnZS9UYWJzUGFnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcm1QYWdlIH0gZnJvbSBcIi4vcGFnZS9Gb3JtUGFnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNldHRpbmdUYWJsZSB9IGZyb20gXCIuL3BhZ2UvU2V0dGluZ1RhYmxlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2V0dGluZ1RhYiB9IGZyb20gXCIuL3BhZ2UvU2V0dGluZ1RhYlwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEltcG9ydERhdGEgfSBmcm9tIFwiLi9iYXNlL2ltcG9ydERhdGFcIjsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8sb0JBQW9CO0FBRTNCQSxLQUFLLENBQUNDLE1BQU0sQ0FBQyxPQUFPLENBQUM7QUFFckIsU0FBU0MsT0FBTyxJQUFJQyxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTRCxPQUFPLElBQUlFLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU0YsT0FBTyxJQUFJRyxRQUFRLFFBQVEsaUJB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