nsc-react-component 3.0.4 → 3.0.6

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.
@@ -30,6 +30,9 @@ export default class NscUpload extends React.PureComponent {
30
30
  fileListStore: [],
31
31
  fileNames: []
32
32
  });
33
+ _defineProperty(this, "uploadIngSize", 0);
34
+ _defineProperty(this, "uploadSize", 0);
35
+ _defineProperty(this, "uploadIngList", []);
33
36
  _defineProperty(this, "customRequest", async options => {
34
37
  const file = options.file;
35
38
  const {
@@ -55,36 +58,43 @@ export default class NscUpload extends React.PureComponent {
55
58
  file: file,
56
59
  onProgress: onProgress,
57
60
  partSize: sliceSize
58
- });
61
+ }, this.props.requestConfig);
62
+ this.uploadIngSize = this.uploadIngSize + 1;
59
63
  let fileId = null;
64
+ let ImgRes = null;
60
65
  if (res.code == 200) {
61
66
  fileId = res.data.attachId;
62
67
  options.onSuccess();
68
+ if (this.props.listType == "picture-card" && this.props.newVersion) {
69
+ ImgRes = await previewImage(fileId, this.props.requestConfig);
70
+ }
63
71
  } else {
64
72
  options.onError();
65
73
  }
66
- this.onComplete({
74
+ this.uploadIngList.push({
67
75
  file: options.file,
68
76
  fileId: fileId,
69
- status: res.code == 200 ? "success" : "error"
77
+ status: res.code == 200 ? "success" : "error",
78
+ url: ImgRes ? ImgRes.data : null
70
79
  });
80
+ if (this.uploadSize == this.uploadIngSize) {
81
+ this.onComplete(this.uploadIngList);
82
+ }
71
83
  onComplete && onComplete({
72
84
  file: options.file,
73
85
  fileId: fileId,
74
86
  status: res.code == 200 ? "success" : "error"
75
87
  });
76
88
  } catch (e) {
77
- this.onComplete({
78
- file: options.file,
79
- fileId: "",
80
- status: "error"
81
- });
89
+ if (this.uploadSize == this.uploadIngSize) {
90
+ this.onComplete(this.uploadIngList);
91
+ options.onError();
92
+ }
82
93
  onComplete && onComplete({
83
94
  file: options.file,
84
95
  fileId: "",
85
96
  status: "error"
86
97
  });
87
- options.onError();
88
98
  }
89
99
  });
90
100
  }
@@ -198,6 +208,7 @@ export default class NscUpload extends React.PureComponent {
198
208
  this.setState({
199
209
  fileList: newList
200
210
  });
211
+ this.uploadSize = ofileList.length;
201
212
  }
202
213
  checkFileType(file) {
203
214
  const {
@@ -234,7 +245,10 @@ export default class NscUpload extends React.PureComponent {
234
245
  });
235
246
  onListChange && onListChange(fileList);
236
247
  }
237
- async onComplete(file) {
248
+ async onComplete(files) {
249
+ this.uploadIngSize = 0;
250
+ this.uploadSize = 0;
251
+ this.uploadIngList = [];
238
252
  const {
239
253
  fileList
240
254
  } = this.state;
@@ -243,29 +257,23 @@ export default class NscUpload extends React.PureComponent {
243
257
  requestConfig = {}
244
258
  } = this.props;
245
259
  const newList = [];
246
- let requestId;
247
- let fileIndex;
248
- fileList.map((item, index) => {
260
+ fileList.map(async (item, index) => {
249
261
  const newFile = _objectSpread({}, item);
250
- if (file.file.uid == item.uid) {
251
- newFile.status = file.status == "success" ? "done" : file.status;
252
- newFile.fileId = file.fileId;
253
- if (newVersion) {
254
- requestId = file.fileId;
255
- fileIndex = index;
256
- } else {
257
- let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
258
- newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
262
+ files.map(async file => {
263
+ if (file.file.uid == item.uid) {
264
+ newFile.status = file.status == "success" ? "done" : file.status;
265
+ newFile.fileId = file.fileId;
266
+ newFile.url = file.url;
267
+ if (!newVersion) {
268
+ let url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
269
+ newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
270
+ }
259
271
  }
260
- }
272
+ });
261
273
  newList.push(newFile);
262
274
  });
263
- if (requestId) {
264
- const fileRes = await previewImage(requestId, requestConfig);
265
- newList[fileIndex].url = fileRes.data;
266
- }
267
275
  this.setState({
268
- fileList: newList
276
+ fileList: [...newList]
269
277
  });
270
278
  const {
271
279
  onListChange
@@ -407,4 +415,4 @@ export default class NscUpload extends React.PureComponent {
407
415
  }
408
416
  }
409
417
  _defineProperty(NscUpload, "Dragger", NscUploadDragger);
410
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJwcm9wcyIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInJlcyIsInBhcnRTaXplIiwiZmlsZUlkIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsIm9uRXJyb3IiLCJzdGF0dXMiLCJlIiwiY29tcG9uZW50RGlkTW91bnQiLCJjb252ZXJ0RmlsZUxpc3QiLCJsaXN0IiwibGlzdFR5cGUiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwicHVzaCIsInNldFN0YXRlIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsImdldEZpbGVMaXN0Iiwic2V0RmlsZUxpc3QiLCJiZWZvcmVVcGxvYWQiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjb25jYXQiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwibmV3TGlzdCIsInVpZCIsImxlbmd0aCIsImkiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwiX3JlZiIsIm5ld0ZpbGUiLCJuZXdWZXJzaW9uIiwicmVxdWVzdENvbmZpZyIsInJlcXVlc3RJZCIsImZpbGVJbmRleCIsInVybCIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcmVmaXgiLCJmaWxlUmVzIiwib25EZWxldGUiLCJyZW5kZXIiLCJmaWxlQ2FyZCIsInNob3dEb3dubG9hZEljb24iLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImRvd25sb2FkSWNvbiIsInJlbW92ZUljb24iLCJwcmV2aWV3SWNvbiIsIm5ld3Byb3BzIiwiZGVmYXVsdFByb3BzIiwiY3VzdG9tUmVxdWVzdCIsImJpbmQiLCJtdWx0aXBsZSIsIml0ZW1SZW5kZXIiLCJvcmlnaW5Ob2RlIiwiY3VyckZpbGVMaXN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJvblByZXZpZXciLCJzdHlsZSIsImN1cnNvciIsIm9uRG93bmxvYWQiLCJvblJlbW92ZSIsIndpZHRoIiwiRnJhZ21lbnQiLCJfVXBsb2FkIiwiX2V4dGVuZHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL3VwbG9hZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmltcG9ydCBOc2NVcGxvYWREcmFnZ2VyIGZyb20gXCIuL0RyYWdnZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBEcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QsIGxpc3RUeXBlIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICBvbGRMaXN0Lm1hcChhc3luYyAoaXRlbTogYW55LCBpbmRleCkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgIHN0YXR1czogaXRlbS5zdGF0dXMsXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgfSBhcyBhbnk7XHJcblxyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFsuLi5maWxlTGlzdF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGaWxlTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gIH1cclxuICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgIGNoZWNrU2FtZUZpbGUgPSB0cnVlLFxyXG4gICAgICBtYXhDb3VudCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgIGZpbGVMaXN0OiBwcm9wc0xpc3QsXHJcbiAgICAgIG9uTGlzdENoYW5nZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZmlsZUxpc3QsIGZpbGVMaXN0U3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2l6ZTogbnVtYmVyO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGZpbGUpKSB7XHJcbiAgICAgIG1lc3NhZ2UuZXJyb3IoXHJcbiAgICAgICAgYCR7ZmlsZS5uYW1lfeaWh+S7tuexu+Wei+S4jeWFgeiuuOS4iuS8oO+8jOivt+S4iuS8oOWQjue8gOS4uiR7YWxsb3dGaWxlU3VmZml4feeahOexu+Wei+aWh+S7tu+8gWBcclxuICAgICAgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKG1heFNpemUgIT09IGZhbHNlKSB7XHJcbiAgICAgIGlmIChtYXhTaXplID09PSB0cnVlKSB7XHJcbiAgICAgICAgbWF4U2l6ZSA9IDEwMDtcclxuICAgICAgfVxyXG4gICAgICBzaXplID0gbWF4U2l6ZSAqIDEwMjQgKiAxMDI0O1xyXG4gICAgICBpZiAoc2l6ZSA8IGZpbGUuc2l6ZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYCR7ZmlsZS5uYW1lfeaWh+S7tuWkp+Wwj+i2hei/hyR7bWF4U2l6ZX1N77yM6K+36YeN5paw5LiK5Lyg77yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsZXQgZmlsZU5hbWVzID0gW107XHJcbiAgICBpZiAoY2hlY2tTYW1lRmlsZSkge1xyXG4gICAgICBjb25zdCBjaGVja0xpc3QgPSB0aGlzLnByb3BzLmZpbGVMaXN0ID8gZmlsZUxpc3RTdG9yZSA6IGZpbGVMaXN0O1xyXG4gICAgICBjaGVja0xpc3QubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgZmlsZU5hbWVzLnB1c2goaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChmaWxlTmFtZXMuaW5kZXhPZihmaWxlLm5hbWUpID4gLTEgJiYgc2hvd1VwbG9hZExpc3QgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihg5paH5Lu2JHtmaWxlLm5hbWV95bey5Zyo5LiK5Lyg5YiX6KGo5Lit77yM6K+36YeN5paw6YCJ5oup5paH5Lu277yBYCk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKSB7XHJcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucHJvcHMuYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCk7XHJcbiAgICAgIGlmIChyZXMgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICBsZXQgbGVuZ3RoID0gbmV3TGlzdC5sZW5ndGggLSBtYXhDb3VudDtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xyXG4gICAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG5ld1ZlcnNpb24sIHJlcXVlc3RDb25maWcgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgbGV0IHJlcXVlc3RJZDtcclxuICAgIGxldCBmaWxlSW5kZXg7XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgaWYgKG5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgIHJlcXVlc3RJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgICAgZmlsZUluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGxldCB1cmwgPSBgL2pxdWljay1yZXNvdXJjZS9vc3MvZW5kcG9pbnQvZG93bmxvYWQtZmlsZXM/YXR0YWNoSWQ9JHtcclxuICAgICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICBuZXdGaWxlLnVybCA9IHJlcXVlc3RDb25maWcucHJlZml4XHJcbiAgICAgICAgICAgID8gcmVxdWVzdENvbmZpZy5wcmVmaXggKyB1cmxcclxuICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICBpZiAocmVxdWVzdElkKSB7XHJcbiAgICAgIGNvbnN0IGZpbGVSZXM6IGFueSA9IGF3YWl0IHByZXZpZXdJbWFnZShyZXF1ZXN0SWQscmVxdWVzdENvbmZpZyk7XHJcbiAgICAgIG5ld0xpc3RbZmlsZUluZGV4XS51cmwgPSBmaWxlUmVzLmRhdGE7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY3VzdG9tUmVxdWVzdCA9IGFzeW5jIChvcHRpb25zKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xyXG4gICAgY29uc3QgeyBvbkNvbXBsZXRlLCBvblByb2Nlc3MsIHNsaWNlU2l6ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG9uUHJvZ3Jlc3MgPSAodG90YWxQcm9ncmVzczogYW55KSA9PiB7XHJcbiAgICAgIG9wdGlvbnMub25Qcm9ncmVzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MgfSwgZmlsZSk7XHJcbiAgICAgIHRoaXMub25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgICAgb25Qcm9jZXNzICYmIG9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICB9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCB1cGxvYWQoe1xyXG4gICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICBwYXJ0U2l6ZTogc2xpY2VTaXplLFxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICBvcHRpb25zLm9uU3VjY2VzcygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25Db21wbGV0ZSh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHRoaXMub25Db21wbGV0ZSh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogXCJcIixcclxuICAgICAgICBzdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHsgZmlsZTogb3B0aW9ucy5maWxlLCBmaWxlSWQ6IFwiXCIsIHN0YXR1czogXCJlcnJvclwiIH0pO1xyXG4gICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGl0ZW0ubmFtZSAhPT0gZmlsZS5uYW1lIHx8XHJcbiAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgIFwibWF4U2l6ZVwiLFxyXG4gICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgXCJhbGxvd0ZpbGVTdWZmaXhcIixcclxuICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgIFwib25MaXN0Q2hhbmdlXCIsXHJcbiAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICAgICAgICBjb25zdCBzdWZmaXggPSBuYW1lcyA/IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdIDogXCJcIjtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtZXJyb3JcIildOiBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvLyBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVcIiwgZmlsZSk7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlTGlzdFwiLCBmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIC8vICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAvLyAgICAgZmlsZUxpc3Q6IGZpbGVMaXN0LFxyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pO1xyXG4gICAgICAgICAgLy8gfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtBQUN6QyxTQUNFQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsV0FBVyxRQUNOLG1CQUFtQjtBQUUxQixPQUFPQyxnQkFBZ0IsTUFBTSxXQUFXO0FBQ3hDLE1BQU07RUFBRUMsTUFBTTtFQUFFQyxRQUFRO0VBQUVDLGVBQWU7RUFBRUM7QUFBYSxDQUFDLEdBQUdkLElBQUk7QUFlaEUsZUFBZSxNQUFNZSxTQUFTLFNBQVNoQixLQUFLLENBQUNpQixhQUFhLENBQW9CO0VBQUFDLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsZ0JBRXBFO01BQUVDLFFBQVEsRUFBRSxFQUFFO01BQUVDLE1BQU0sRUFBRSxFQUFFO01BQUVDLGFBQWEsRUFBRSxFQUFFO01BQUVDLFNBQVMsRUFBRTtJQUFHLENBQUM7SUFBQUosZUFBQSx3QkFxTHRELE1BQU9LLE9BQU8sSUFBSztNQUNqQyxNQUFNeEIsSUFBSSxHQUFHd0IsT0FBTyxDQUFDeEIsSUFBSTtNQUN6QixNQUFNO1FBQUV5QixVQUFVO1FBQUVDLFNBQVM7UUFBRUM7TUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDQyxLQUFLO01BQ3ZELE1BQU1DLFVBQVUsR0FBSUMsYUFBa0IsSUFBSztRQUN6Q04sT0FBTyxDQUFDSyxVQUFVLENBQUM7VUFBRUUsT0FBTyxFQUFFRDtRQUFjLENB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
418
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsIm9uQ29tcGxldGUiLCJvblByb2Nlc3MiLCJzbGljZVNpemUiLCJwcm9wcyIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInJlcyIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImUiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwiX29iamVjdFNwcmVhZCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwiZ2V0RmlsZUxpc3QiLCJzZXRGaWxlTGlzdCIsImJlZm9yZVVwbG9hZCIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsIm9uTGlzdENoYW5nZSIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNvbmNhdCIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwiaSIsInNwbGljZSIsIm5hbWVzIiwic3BsaXQiLCJzdWZmaXgiLCJfcmVmIiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsIm9uRGVsZXRlIiwicmVuZGVyIiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJvbkNsaWNrIiwib25QcmV2aWV3Iiwic3R5bGUiLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJ3aWR0aCIsIkZyYWdtZW50IiwiX1VwbG9hZCIsIl9leHRlbmRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYmFzZS91cGxvYWQvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5pbXBvcnQgTnNjVXBsb2FkRHJhZ2dlciBmcm9tIFwiLi9EcmFnZ2VyXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50LCBwcmV2aWV3SW1hZ2UgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY1VwbG9hZCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVVwbG9hZFByb3BzLCBhbnk+IHtcclxuICBzdGF0aWMgRHJhZ2dlciA9IE5zY1VwbG9hZERyYWdnZXI7XHJcbiAgc3RhdGUgPSB7IGZpbGVMaXN0OiBbXSwgdmlld0lkOiBcIlwiLCBmaWxlTGlzdFN0b3JlOiBbXSwgZmlsZU5hbWVzOiBbXSB9O1xyXG4gIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gIHVwbG9hZFNpemUgPSAwO1xyXG4gIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgc3RhdHVzOiBpdGVtLnN0YXR1cyxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9IGFzIGFueTtcclxuXHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0ZpbGVMaXN0XSxcclxuICAgICAgZmlsZUxpc3RTdG9yZTogWy4uLmZpbGVMaXN0XSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIHRoaXMucHJvcHMubmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0LnB1c2goe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1maWxlLWl0ZW1cIil9PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1jb250ZW50LWVycm9yXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9PSBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLXVwbG9hZC1tYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtdXBsb2FkLWNvbnRlbnQtbmFtZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy11cGxvYWQtcGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGUuZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvLyBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVcIiwgZmlsZSk7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlTGlzdFwiLCBmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIC8vICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAvLyAgICAgZmlsZUxpc3Q6IGZpbGVMaXN0LFxyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pO1xyXG4gICAgICAgICAgLy8gfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFFOUIsT0FBT0MsSUFBSSxNQUFNLFVBQVU7QUFDM0IsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsT0FBT0MsSUFBSSxNQUFNLFNBQVM7QUFDMUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLG9CQUFvQjtB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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","NscUploadDragger","upload","download","previewDocument","previewImage","NscUpload","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","props","onProgress","totalProgress","percent","res","partSize","fileId","code","data","attachId","onSuccess","onError","status","e","componentDidMount","convertFileList","list","listType","newFileList","oldList","map","item","index","temp","_objectSpread","name","fileName","type","size","push","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","newList","uid","length","i","splice","names","split","suffix","_ref","newFile","newVersion","requestConfig","requestId","fileIndex","url","window","localStorage","getItem","prefix","fileRes","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_Upload","_extends"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nimport PdfViewer from \"../pdfviwer\";\r\nimport NscUploadDragger from \"./Dragger\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nexport default class NscUpload extends React.PureComponent<IUploadProps, any> {\r\n static Dragger = NscUploadDragger;\r\n state = { fileList: [], viewId: \"\", fileListStore: [], fileNames: [] };\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList();\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map(async (item: any, index) => {\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n } as any;\r\n\r\n newFileList.push(temp);\r\n });\r\n this.setState({\r\n fileList: [...newFileList],\r\n fileListStore: [...fileList],\r\n });\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList();\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n async onComplete(file) {\r\n const { fileList } = this.state;\r\n const { newVersion, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n let requestId;\r\n let fileIndex;\r\n fileList.map((item: any, index) => {\r\n const newFile = { ...item };\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n if (newVersion) {\r\n requestId = file.fileId;\r\n fileIndex = index;\r\n } else {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n newList.push(newFile);\r\n });\r\n if (requestId) {\r\n const fileRes: any = await previewImage(requestId,requestConfig);\r\n newList[fileIndex].url = fileRes.data;\r\n }\r\n this.setState({\r\n fileList: newList,\r\n });\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const { onComplete, onProcess, sliceSize } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload({\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n });\r\n let fileId = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n } else {\r\n options.onError();\r\n }\r\n this.onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n this.onComplete({\r\n file: options.file,\r\n fileId: \"\",\r\n status: \"error\",\r\n });\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n options.onError();\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"nsc-upload-file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"nsc-upload-content\"), {\r\n [getLess(styles, \"nsc-upload-content-error\")]: file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"nsc-upload-mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-content-name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-icon\")}>\r\n {showUploadList.showPreviewIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"nsc-upload-process\")}>\r\n <div\r\n className={getLess(styles, \"nsc-upload-percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Upload\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n // onChange={({ file, fileList, event }) => {\r\n // console.log(\"onChangefile\", file);\r\n // console.log(\"onChangefileList\", fileList);\r\n // const { onChange, onListChange } = this.props;\r\n // this.setState({\r\n // fileList: fileList,\r\n // });\r\n // onListChange && onListChange(fileList);\r\n // onChange && onChange({ file, fileList, event });\r\n // }}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","file","message","omit","getLess","styles","cls","FileIcon","DeleteOutlined","DownloadOutlined","EyeOutlined","NscUploadDragger","upload","download","previewDocument","previewImage","NscUpload","PureComponent","constructor","arguments","_defineProperty","fileList","viewId","fileListStore","fileNames","options","onComplete","onProcess","sliceSize","props","onProgress","totalProgress","percent","res","partSize","requestConfig","uploadIngSize","fileId","ImgRes","code","data","attachId","onSuccess","listType","newVersion","onError","uploadIngList","push","status","url","uploadSize","e","componentDidMount","convertFileList","list","newFileList","oldList","map","item","index","temp","_objectSpread","name","fileName","type","size","setState","componentDidUpdate","preProps","preState","JSON","stringify","state","getFileList","setFileList","beforeUpload","ofileList","maxSize","allowFileSuffix","checkSameFile","maxCount","showUploadList","propsList","onListChange","checkFileType","error","concat","checkList","indexOf","newList","uid","length","i","splice","names","split","suffix","_ref","newFile","files","window","localStorage","getItem","prefix","onDelete","render","fileCard","showDownloadIcon","showPreviewIcon","showRemoveIcon","downloadIcon","removeIcon","previewIcon","newprops","defaultProps","customRequest","bind","multiple","itemRender","originNode","currFileList","createElement","className","onClick","onPreview","style","cursor","onDownload","onRemove","width","Fragment","_Upload","_extends"],"sources":["../../../src/components/base/upload/index.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { Upload, UploadProps } from \"antd\";\r\nimport file from \"nsc-file\";\r\nimport message from \"../message\";\r\nimport omit from \"omit.js\";\r\nimport { getLess } from \"../../utils\";\r\nimport styles from \"./index.less\";\r\nimport cls from \"classnames\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n DeleteOutlined,\r\n DownloadOutlined,\r\n EyeOutlined,\r\n} from \"@ant-design/icons\";\r\nimport PdfViewer from \"../pdfviwer\";\r\nimport NscUploadDragger from \"./Dragger\";\r\nconst { upload, download, previewDocument, previewImage } = file;\r\n\r\ninterface IUploadProps extends UploadProps {\r\n sliceSize?: number;\r\n maxSize?: number | boolean;\r\n onProcess?: (process) => void;\r\n onComplete?: ({ file, fileId, status }) => void;\r\n allowFileSuffix?: Array<String>; //允许上传扩展名,不带.\r\n useDefaultList?: boolean; //是否使用默认的fileList\r\n fileCard?: boolean;\r\n onListChange?: any;\r\n checkSameFile?: boolean;\r\n requestConfig?: any;\r\n newVersion?: boolean;\r\n}\r\nexport default class NscUpload extends React.PureComponent<IUploadProps, any> {\r\n static Dragger = NscUploadDragger;\r\n state = { fileList: [], viewId: \"\", fileListStore: [], fileNames: [] };\r\n uploadIngSize = 0;\r\n uploadSize = 0;\r\n uploadIngList = [];\r\n componentDidMount() {\r\n if (this.props.fileList) {\r\n this.convertFileList();\r\n }\r\n }\r\n convertFileList(list?: Array<Object>) {\r\n const { fileList, listType } = this.props;\r\n\r\n const newFileList = [];\r\n let oldList = list ? list : fileList;\r\n oldList.map(async (item: any, index) => {\r\n let temp = {\r\n ...item,\r\n status: item.status,\r\n name: item.name || item.fileName,\r\n type: item.type,\r\n size: item.size,\r\n } as any;\r\n\r\n newFileList.push(temp);\r\n });\r\n this.setState({\r\n fileList: [...newFileList],\r\n fileListStore: [...fileList],\r\n });\r\n }\r\n componentDidUpdate(preProps, preState) {\r\n if (this.props.fileList) {\r\n if (\r\n JSON.stringify(this.props.fileList) !==\r\n JSON.stringify(this.state.fileListStore)\r\n ) {\r\n this.convertFileList();\r\n }\r\n }\r\n }\r\n getFileList() {\r\n return this.state.fileList;\r\n }\r\n setFileList(fileList: Array<Object>) {\r\n this.convertFileList(fileList);\r\n }\r\n async beforeUpload(file, ofileList) {\r\n let {\r\n maxSize = 100,\r\n allowFileSuffix,\r\n checkSameFile = true,\r\n maxCount,\r\n showUploadList,\r\n fileList: propsList,\r\n onListChange,\r\n } = this.props;\r\n let { fileList, fileListStore } = this.state;\r\n let size: number;\r\n if (allowFileSuffix && !this.checkFileType(file)) {\r\n message.error(\r\n `${file.name}文件类型不允许上传,请上传后缀为${allowFileSuffix}的类型文件!`\r\n );\r\n return false;\r\n }\r\n if (maxSize !== false) {\r\n if (maxSize === true) {\r\n maxSize = 100;\r\n }\r\n size = maxSize * 1024 * 1024;\r\n if (size < file.size) {\r\n message.error(`${file.name}文件大小超过${maxSize}M,请重新上传!`);\r\n return false;\r\n }\r\n }\r\n let fileNames = [];\r\n if (checkSameFile) {\r\n const checkList = this.props.fileList ? fileListStore : fileList;\r\n checkList.map((item) => {\r\n fileNames.push(item.name || item.fileName);\r\n });\r\n\r\n if (fileNames.indexOf(file.name) > -1 && showUploadList !== false) {\r\n message.error(`文件${file.name}已在上传列表中,请重新选择文件!`);\r\n return false;\r\n }\r\n }\r\n\r\n if (this.props.beforeUpload) {\r\n const res = await this.props.beforeUpload(file, ofileList);\r\n if (res === false) {\r\n return false;\r\n }\r\n }\r\n const newList = [...fileList];\r\n ofileList.map(async (item) => {\r\n if (\r\n !(\r\n (allowFileSuffix && !this.checkFileType(item)) ||\r\n size < item.size ||\r\n (checkSameFile && fileNames.indexOf(item.name) > -1)\r\n )\r\n ) {\r\n const temp = {\r\n fileName: item.name,\r\n percent: 0,\r\n status: \"uploading\",\r\n uid: item.uid,\r\n name: item.name,\r\n type: item.type,\r\n size: item.size,\r\n };\r\n newList.push(temp);\r\n }\r\n });\r\n\r\n if (maxCount && newList.length > maxCount) {\r\n let length = newList.length - maxCount;\r\n for (let i = 0; i < length; i++) {\r\n newList.splice(0, 1);\r\n }\r\n }\r\n onListChange && onListChange(newList);\r\n this.setState({ fileList: newList });\r\n this.uploadSize = ofileList.length;\r\n }\r\n checkFileType(file) {\r\n const { allowFileSuffix } = this.props;\r\n const names = file.name.split(\".\");\r\n const suffix = names[names.length - 1];\r\n if (allowFileSuffix.indexOf(suffix) > -1) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n onProcess({ percent, file }: any) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n const newFile = { ...item };\r\n if (file.uid == item.uid) {\r\n newFile.percent = percent;\r\n }\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(fileList);\r\n }\r\n async onComplete(files) {\r\n this.uploadIngSize = 0;\r\n this.uploadSize = 0;\r\n this.uploadIngList = [];\r\n const { fileList } = this.state;\r\n const { newVersion, requestConfig = {} } = this.props;\r\n const newList: any = [];\r\n\r\n fileList.map(async (item: any, index) => {\r\n const newFile = { ...item };\r\n files.map(async (file) => {\r\n if (file.file.uid == item.uid) {\r\n newFile.status = file.status == \"success\" ? \"done\" : file.status;\r\n newFile.fileId = file.fileId;\r\n newFile.url = file.url;\r\n if (!newVersion) {\r\n let url = `/jquick-resource/oss/endpoint/download-files?attachId=${\r\n file.fileId\r\n }&_tpk=${window.localStorage.getItem(\"token\")}`;\r\n newFile.url = requestConfig.prefix\r\n ? requestConfig.prefix + url\r\n : \"/api\" + url;\r\n }\r\n }\r\n });\r\n newList.push(newFile);\r\n });\r\n this.setState({\r\n fileList: [...newList],\r\n });\r\n\r\n const { onListChange } = this.props;\r\n onListChange && onListChange(newList);\r\n }\r\n customRequest = async (options) => {\r\n const file = options.file;\r\n const { onComplete, onProcess, sliceSize } = this.props;\r\n const onProgress = (totalProgress: any) => {\r\n options.onProgress({ percent: totalProgress }, file);\r\n this.onProcess({ percent: totalProgress, file: file });\r\n onProcess && onProcess({ percent: totalProgress, file: file });\r\n };\r\n try {\r\n const res: any = await upload(\r\n {\r\n file: file,\r\n onProgress: onProgress,\r\n partSize: sliceSize,\r\n },\r\n this.props.requestConfig\r\n );\r\n this.uploadIngSize = this.uploadIngSize + 1;\r\n let fileId = null;\r\n let ImgRes = null;\r\n if (res.code == 200) {\r\n fileId = res.data.attachId;\r\n options.onSuccess();\r\n if (this.props.listType == \"picture-card\" && this.props.newVersion) {\r\n ImgRes = await previewImage(fileId, this.props.requestConfig);\r\n }\r\n } else {\r\n options.onError();\r\n }\r\n this.uploadIngList.push({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n url: ImgRes ? ImgRes.data : null,\r\n });\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n }\r\n onComplete &&\r\n onComplete({\r\n file: options.file,\r\n fileId: fileId,\r\n status: res.code == 200 ? \"success\" : \"error\",\r\n });\r\n } catch (e) {\r\n if (this.uploadSize == this.uploadIngSize) {\r\n this.onComplete(this.uploadIngList);\r\n options.onError();\r\n }\r\n onComplete &&\r\n onComplete({ file: options.file, fileId: \"\", status: \"error\" });\r\n }\r\n };\r\n onDelete(file) {\r\n const { fileList } = this.state;\r\n const { onListChange } = this.props;\r\n const newList: any = [];\r\n fileList.map((item: any) => {\r\n //通过文件名判断,上传是文件名是唯一的\r\n if (\r\n item.name !== file.name ||\r\n item.fileId !== file.fileId ||\r\n item.uid !== file.uid\r\n ) {\r\n newList.push(item);\r\n }\r\n });\r\n this.setState({\r\n fileList: newList,\r\n });\r\n onListChange && onListChange(newList);\r\n }\r\n render(): React.ReactNode {\r\n let {\r\n fileList,\r\n fileCard,\r\n showUploadList = {\r\n showDownloadIcon: true,\r\n showPreviewIcon: false,\r\n showRemoveIcon: true,\r\n downloadIcon: null,\r\n removeIcon: null,\r\n previewIcon: null,\r\n } as any,\r\n requestConfig = {},\r\n } = this.props;\r\n const newprops = omit(this.props, [\r\n \"sliceSize\",\r\n \"maxSize\",\r\n \"onComplete\",\r\n \"onProcess\",\r\n \"allowFileSuffix\",\r\n \"useDefaultList\",\r\n \"fileCard\",\r\n \"onListChange\",\r\n \"newVersion\",\r\n \"requestConfig\",\r\n ]);\r\n let defaultProps = {\r\n customRequest: this.customRequest.bind(this),\r\n multiple: true,\r\n } as IUploadProps;\r\n if (fileCard) {\r\n defaultProps = {\r\n ...defaultProps,\r\n itemRender: (originNode, file: any, currFileList) => {\r\n const name = file.name || file.fileName;\r\n const names = name.split(\".\");\r\n const suffix = names ? names[names.length - 1] : \"\";\r\n return (\r\n <div className={getLess(styles, \"nsc-upload-file-item\")}>\r\n <div\r\n className={cls(getLess(styles, \"nsc-upload-content\"), {\r\n [getLess(styles, \"nsc-upload-content-error\")]:\r\n file.status == \"error\",\r\n })}\r\n >\r\n <div className={getLess(styles, \"nsc-upload-mark-picture\")}>\r\n <FileIcon suffix={suffix} fileId={file.fileId} />\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-content-name\")}>\r\n {file.name || file.fileName}\r\n </div>\r\n <div className={getLess(styles, \"nsc-upload-icon\")}>\r\n {showUploadList.showPreviewIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onPreview) {\r\n this.props.onPreview(file);\r\n } else {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <EyeOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showDownloadIcon && file.status == \"done\" && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onDownload) {\r\n this.props.onDownload(file);\r\n } else {\r\n download(file.fileId, true, requestConfig);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DownloadOutlined />\r\n )}\r\n </div>\r\n )}\r\n {showUploadList.showRemoveIcon && (\r\n <div\r\n onClick={() => {\r\n if (this.props.onRemove) {\r\n this.props.onRemove(file);\r\n } else {\r\n this.onDelete(file);\r\n }\r\n }}\r\n style={{ cursor: \"pointer\" }}\r\n >\r\n {showUploadList.downloadIcon ? (\r\n showUploadList.downloadIcon\r\n ) : (\r\n <DeleteOutlined />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n {file.status == \"uploading\" && (\r\n <div className={getLess(styles, \"nsc-upload-process\")}>\r\n <div\r\n className={getLess(styles, \"nsc-upload-percent\")}\r\n style={{ width: file.percent + \"%\" }}\r\n ></div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n },\r\n };\r\n } else {\r\n defaultProps = {\r\n ...defaultProps,\r\n onDownload: (file: any) => {\r\n download(file.fileId, true, requestConfig);\r\n },\r\n onRemove: (file) => {\r\n this.onDelete(file);\r\n },\r\n onPreview: (file: any) => {\r\n if (file.fileId) {\r\n previewDocument(file.fileId, requestConfig);\r\n }\r\n },\r\n showUploadList: { ...showUploadList },\r\n };\r\n }\r\n return (\r\n <>\r\n <Upload\r\n {...defaultProps}\r\n {...newprops}\r\n beforeUpload={this.beforeUpload.bind(this)}\r\n fileList={this.state.fileList}\r\n // onChange={({ file, fileList, event }) => {\r\n // console.log(\"onChangefile\", file);\r\n // console.log(\"onChangefileList\", fileList);\r\n // const { onChange, onListChange } = this.props;\r\n // this.setState({\r\n // fileList: fileList,\r\n // });\r\n // onListChange && onListChange(fileList);\r\n // onChange && onChange({ file, fileList, event });\r\n // }}\r\n />\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -61,7 +61,6 @@ export { default as Tooltip } from "./base/tooltip";
61
61
  export { default as Typography } from "./base/typography";
62
62
  export { default as Popover } from "./base/popover";
63
63
  export type { default as InputEamilInstance } from "./base/input/Email";
64
- export { default as BasePage } from "./page/BasePage";
65
64
  export { default as Iframe } from "./base/iframe";
66
65
  export { default as ErrorBoundary } from "./base/errorboundary";
67
66
  export { default as Editor } from "./base/editor";
@@ -69,15 +68,17 @@ export { default as Upload } from "./base/upload";
69
68
  export { default as Download } from "./base/download";
70
69
  export { default as Transfer } from "./base/transfer";
71
70
  export { default as Spin } from "./base/spin";
72
- export { default as PassWordCheck } from "./page/PasswordCheck";
73
71
  export { default as PdfViewer } from "./base/pdfviwer";
74
72
  export { default as FileIcon } from "./base/common/FileIcon";
75
73
  export { default as Switch } from "./base/switch";
76
74
  export { default as TreeSelect } from "./base/treeselect";
77
- export { default as HeaderSearch } from "./page/HeaderSearch";
78
75
  export { default as Carousel } from "./base/carousel";
79
76
  export { default as EllipseCell } from "./base/common/EllipseCell";
80
77
  export { default as QRCode } from "./base/qecode";
81
78
  export { default as Watermark } from "./base/watermark";
82
79
  export { default as ColorPicker } from "./base/colorpicker";
83
80
  export { default as Tour } from "./base/tour";
81
+ export { default as BasePage } from "./page/BasePage";
82
+ export { default as HeaderSearch } from "./page/HeaderSearch";
83
+ export { default as PassWordCheck } from "./page/PasswordCheck";
84
+ export { default as TabsPage } from "./page/TabsPage";
package/lib/index.js CHANGED
@@ -70,7 +70,6 @@ export { default as Timeline } from "./base/timeline";
70
70
  export { default as Tooltip } from "./base/tooltip";
71
71
  export { default as Typography } from "./base/typography";
72
72
  export { default as Popover } from "./base/popover";
73
- export { default as BasePage } from "./page/BasePage";
74
73
  export { default as Iframe } from "./base/iframe";
75
74
  export { default as ErrorBoundary } from "./base/errorboundary";
76
75
  export { default as Editor } from "./base/editor";
@@ -78,16 +77,18 @@ export { default as Upload } from "./base/upload";
78
77
  export { default as Download } from "./base/download";
79
78
  export { default as Transfer } from "./base/transfer";
80
79
  export { default as Spin } from "./base/spin";
81
- export { default as PassWordCheck } from "./page/PasswordCheck";
82
80
  export { default as PdfViewer } from "./base/pdfviwer";
83
81
  export { default as FileIcon } from "./base/common/FileIcon";
84
82
  export { default as Switch } from "./base/switch";
85
83
  export { default as TreeSelect } from "./base/treeselect";
86
- export { default as HeaderSearch } from "./page/HeaderSearch";
87
84
  export { default as Carousel } from "./base/carousel";
88
85
  export { default as EllipseCell } from "./base/common/EllipseCell";
89
86
  export { default as QRCode } from "./base/qecode";
90
87
  export { default as Watermark } from "./base/watermark";
91
88
  export { default as ColorPicker } from "./base/colorpicker";
92
89
  export { default as Tour } from "./base/tour";
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0IiwiQnV0dG9uIiwiQ2FzY2FkZXIiLCJDaGVja2JveCIsIkJvZHlSb3ciLCJJY29uIiwiVHJlZVBhbmVsIiwiRGF0ZVBpY2tlciIsIkZvcm0iLCJJbnB1dCIsIlRleHRBcmVhIiwiTWVudSIsIlJhZGlvIiwiU2VsZWN0IiwiVGFibGUiLCJEbmRDb250ZXh0VHlwZSIsIklCb2R5Um93UHJvcHMiLCJJTlNDVGFibGVQcm9wcyIsIlRhYnMiLCJUcmVlIiwiTnNjVHJlZVByb3BzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJnZXREZWZhdWx0Q29uZmlnIiwic2V0Q29uZmlnIiwiVGFnU2VsZWN0IiwiTm9EYXRhIiwiTm9NZXNzYWdlIiwiTm9OZXRXb3JrIiwiUGFnZTQwNCIsIk5vQXV0aG9yaXR5IiwiUmFuZ2VQaWNrZXIiLCJNb2RhbCIsIkNoYXJ0IiwibWVzc2FnZSIsIkFmZml4IiwiQWxlcnQiLCJBbmNob3IiLCJBdmF0YXIiLCJCYWNrVG9wIiwiQmFkZ2UiLCJCcmVhZGNydW1iIiwiQ2FsZW5kYXIiLCJDYXJkIiwiQ29sbGFwc2UiLCJDb25maWdQcm92aWRlciIsIkRlc2NyaXB0aW9ucyIsIkRpdmlkZXIiLCJEcmF3ZXIiLCJEcm9wZG93biIsIlJvdyIsIkNvbCIsIkltYWdlIiwiTGF5b3V0IiwiTGlzdCIsIm5vdGlmaWNhdGlvbiIsIlBhZ2luYXRpb24iLCJQb3Bjb25maXJtIiwiUHJvZ3Jlc3MiLCJSZXN1bHQiLCJTa2VsZXRvbiIsIlNwYWNlIiwiU3RhdGlzdGljIiwiU3RlcHMiLCJUaW1lbGluZSIsIlRvb2x0aXAiLCJUeXBvZ3JhcGh5IiwiUG9wb3ZlciIsIkJhc2VQYWdlIiwiSWZyYW1lIiwiRXJyb3JCb3VuZGFyeSIsIkVkaXRvciIsIlVwbG9hZCIsIkRvd25sb2FkIiwiVHJhbnNmZXIiLCJTcGluIiwiUGFzc1dvcmRDaGVjayIsIlBkZlZpZXdlciIsIkZpbGVJY29uIiwiU3dpdGNoIiwiVHJlZVNlbGVjdCIsIkhlYWRlclNlYXJjaCIsIkNhcm91c2VsIiwiRWxsaXBzZUNlbGwiLCJRUkNvZGUiLCJXYXRlcm1hcmsiLCJDb2xvclBpY2tlciIsIlRvdXIiXSwic291cmNlcyI6WyIuLi9zcmMvY29tcG9uZW50cy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIyIDA5OjA0OjE5XHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wNC0xNiAxNDo0MzoxNVxyXG4gKi9cclxuLy8gZXhwb3J0IHsgRm9ybUluc3RhbmNlIH0gZnJvbSBcImFudGQvbGliL2Zvcm1cIjtcclxuXHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSBcIi4vYmFzZS9idXR0b25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXNjYWRlciB9IGZyb20gXCIuL2Jhc2UvY2FzY2FkZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL2Jhc2UvY2hlY2tib3hcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCb2R5Um93IH0gZnJvbSBcIi4vYmFzZS9jb21tb24vQm9keVJvd1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9JY29uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVBhbmVsIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vVHJlZVBhbmVsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGF0ZVBpY2tlciB9IGZyb20gXCIuL2Jhc2UvZGF0ZXBpY2tcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3JtIH0gZnJvbSBcIi4vYmFzZS9mb3JtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSW5wdXQgfSBmcm9tIFwiLi9iYXNlL2lucHV0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEFyZWEgfSBmcm9tIFwiLi9iYXNlL2lucHV0L1RleHRBcmVhXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudSB9IGZyb20gXCIuL2Jhc2UvbWVudVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlvIH0gZnJvbSBcIi4vYmFzZS9yYWRpb1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNlbGVjdCB9IGZyb20gXCIuL2Jhc2Uvc2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGFibGUgfSBmcm9tIFwiLi9iYXNlL3RhYmxlXCI7XHJcbmV4cG9ydCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzLCBJTlNDVGFibGVQcm9wcyB9IGZyb20gXCIuL2Jhc2UvdGFibGVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJzIH0gZnJvbSBcIi4vYmFzZS90YWJzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZSB9IGZyb20gXCIuL2Jhc2UvdHJlZVwiO1xyXG5leHBvcnQgeyBOc2NUcmVlUHJvcHMsIFN0b3JlLCBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiLi9iYXNlL3RyZWVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBnZXREZWZhdWx0Q29uZmlnLCBzZXRDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWdTZWxlY3QgfSBmcm9tIFwiLi9iYXNlL3RhZ1NlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vRGF0YSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vRGF0YVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vTWVzc2FnZSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vTWVzc2FnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE5vTmV0V29yayB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vTmV0V29ya1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhZ2U0MDQgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9QYWdlNDA0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9BdXRob3JpdHkgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Ob0F1dGhvcml0eVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhbmdlUGlja2VyIH0gZnJvbSBcIi4vYmFzZS9kYXRlcGljay9SYW5nZXBpY2tlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIE1vZGFsIH0gZnJvbSBcIi4vYmFzZS9tb2RhbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoYXJ0IH0gZnJvbSBcIi4vYmFzZS9jaGFydFwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBtZXNzYWdlIH0gZnJvbSBcIi4vYmFzZS9tZXNzYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWZmaXggfSBmcm9tIFwiLi9iYXNlL2FmZml4XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQWxlcnQgfSBmcm9tIFwiLi9iYXNlL2FsZXJ0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQW5jaG9yIH0gZnJvbSBcIi4vYmFzZS9hbmNob3JcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBdmF0YXIgfSBmcm9tIFwiLi9iYXNlL2F2YXRhclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhY2tUb3AgfSBmcm9tIFwiLi9iYXNlL2JhY2tUb3BcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYWRnZSB9IGZyb20gXCIuL2Jhc2UvYmFkZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCcmVhZGNydW1iIH0gZnJvbSBcIi4vYmFzZS9icmVhZGNydW1iXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FsZW5kYXIgfSBmcm9tIFwiLi9iYXNlL2NhbGVuZGFyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2FyZCB9IGZyb20gXCIuL2Jhc2UvY2FyZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbGxhcHNlIH0gZnJvbSBcIi4vYmFzZS9jb2xsYXBzZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpZ1Byb3ZpZGVyIH0gZnJvbSBcIi4vYmFzZS9jb25maWdQcm92aWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERlc2NyaXB0aW9ucyB9IGZyb20gXCIuL2Jhc2UvZGVzY3JpcHRpb25zXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGl2aWRlciB9IGZyb20gXCIuL2Jhc2UvZGl2aWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERyYXdlciB9IGZyb20gXCIuL2Jhc2UvZHJhd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRHJvcGRvd24gfSBmcm9tIFwiLi9iYXNlL2Ryb3Bkb3duXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUm93IH0gZnJvbSBcIi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbCB9IGZyb20gXCIuL2Jhc2UvZ3JpZC9Db2xcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbWFnZSB9IGZyb20gXCIuL2Jhc2UvaW1hZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMYXlvdXQgfSBmcm9tIFwiLi9iYXNlL2xheW91dFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3QgfSBmcm9tIFwiLi9iYXNlL2xpc3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub3RpZmljYXRpb24gfSBmcm9tIFwiLi9iYXNlL25vdGlmaWNhdGlvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhZ2luYXRpb24gfSBmcm9tIFwiLi9iYXNlL3BhZ2luYXRpb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3Bjb25maXJtIH0gZnJvbSBcIi4vYmFzZS9wb3Bjb25maXJtXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvZ3Jlc3MgfSBmcm9tIFwiLi9iYXNlL3Byb2dyZXNzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVzdWx0IH0gZnJvbSBcIi4vYmFzZS9yZXN1bHRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTa2VsZXRvbiB9IGZyb20gXCIuL2Jhc2Uvc2tlbGV0b25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTcGFjZSB9IGZyb20gXCIuL2Jhc2Uvc3BhY2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBTdGF0aXN0aWMgfSBmcm9tIFwiLi9iYXNlL3N0YXRpc3RpY1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0ZXBzIH0gZnJvbSBcIi4vYmFzZS9zdGVwc1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRpbWVsaW5lIH0gZnJvbSBcIi4vYmFzZS90aW1lbGluZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvb2x0aXAgfSBmcm9tIFwiLi9iYXNlL3Rvb2x0aXBcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUeXBvZ3JhcGh5IH0gZnJvbSBcIi4vYmFzZS90eXBvZ3JhcGh5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUG9wb3ZlciB9IGZyb20gXCIuL2Jhc2UvcG9wb3ZlclwiO1xyXG5cclxuZXhwb3J0IHR5cGUgeyBkZWZhdWx0IGFzIElucHV0RWFtaWxJbnN0YW5jZSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvRW1haWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXNlUGFnZSB9IGZyb20gXCIuL3BhZ2UvQmFzZVBhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJZnJhbWUgfSBmcm9tIFwiLi9iYXNlL2lmcmFtZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVycm9yQm91bmRhcnkgfSBmcm9tIFwiLi9iYXNlL2Vycm9yYm91bmRhcnlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFZGl0b3IgfSBmcm9tIFwiLi9iYXNlL2VkaXRvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFVwbG9hZCB9IGZyb20gXCIuL2Jhc2UvdXBsb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRG93bmxvYWQgfSBmcm9tIFwiLi9iYXNlL2Rvd25sb2FkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJhbnNmZXIgfSBmcm9tIFwiLi9iYXNlL3RyYW5zZmVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3BpbiB9IGZyb20gXCIuL2Jhc2Uvc3BpblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhc3NXb3JkQ2hlY2sgfSBmcm9tIFwiLi9wYWdlL1Bhc3N3b3JkQ2hlY2tcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQZGZWaWV3ZXIgfSBmcm9tIFwiLi9iYXNlL3BkZnZpd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXRjaCB9IGZyb20gXCIuL2Jhc2Uvc3dpdGNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVNlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdHJlZXNlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEhlYWRlclNlYXJjaCB9IGZyb20gXCIuL3BhZ2UvSGVhZGVyU2VhcmNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2Fyb3VzZWwgfSBmcm9tIFwiLi9iYXNlL2Nhcm91c2VsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxsaXBzZUNlbGwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9FbGxpcHNlQ2VsbFwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBRUkNvZGUgfSBmcm9tIFwiLi9iYXNlL3FlY29kZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhdGVybWFyayB9IGZyb20gXCIuL2Jhc2Uvd2F0ZXJtYXJrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JQaWNrZXJ9IGZyb20gXCIuL2Jhc2UvY29sb3JwaWNrZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb3VyfSBmcm9tIFwiLi9iYXNlL3RvdXJcIjsiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxTQUFTQSxPQUFPLElBQUlDLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNELE9BQU8sSUFBSUUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTRixPQUFPLElBQUlHLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU0gsT0FBTyxJQUFJSSxPQUFPLFFBQVEsdUJBQXVCO0FBQzFELFNBQVNKLE9BQU8sSUFBSUssSUFBSSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTTCxPQUFPLElBQUlNLFNBQVMsUUFBUSx5QkFBeUI7QUFDOUQsU0FBU04sT0FBTyxJQUFJTyxVQUFVLFFBQVEsaUJBQWlCO0FBQ3ZELFNBQVNQLE9BQU8sSUFBSVEsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBU1IsT0FBTyxJQUFJUyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTVCxPQUFPLElBQUlVLFFBQVEsUUFBUSx1QkFBdUI7QUFDM0QsU0FBU1YsT0FBTyxJQUFJVyxJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTWCxPQUFPLElBQUlZLEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVNaLE9BQU8sSUFBSWEsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU2IsT0FBTyxJQUFJYyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTQyxjQUFjLEVBQUVDLGFBQWEsRUFBRUMsY0FBYyxRQUFRLGNBQWM7QUFDNUUsU0FBU2pCLE9BQU8sSUFBSWtCLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVNsQixPQUFPLElBQUltQixJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTQyxZQUFZLEVBQUVDLEtBQUssRUFBRUMsZUFBZSxRQUFRLGFBQWE7QUFDbEUsU0FBU3RCLE9BQU8sSUFBSXVCLGdCQUFnQixFQUFFQyxTQUFTLFFBQVEsVUFBVTtBQUNqRSxTQUFTeEIsT0FBTyxJQUFJeUIsU0FBUyxRQUFRLGtCQUFrQjtBQUN2RCxTQUFTekIsT0FBTyxJQUFJMEIsTUFBTSxRQUFRLHNCQUFzQjtBQUN4RCxTQUFTMUIsT0FBTyxJQUFJMkIsU0FBUyxRQUFRLHlCQUF5QjtBQUM5RCxTQUFTM0IsT0FBTyxJQUFJNEIsU0FBUyxRQUFRLHlCQUF5QjtBQUM5RCxTQUFTNUIsT0FBTyxJQUFJNkIsT0FBTyxRQUFRLHVCQUF1QjtBQUMxRCxTQUFTN0IsT0FBTyxJQUFJOEIsV0FBVyxRQUFRLDJCQUEyQjtBQUNsRSxTQUFTOUIsT0FBTyxJQUFJK0IsV0FBVyxRQUFRLDZCQUE2QjtBQUNwRSxTQUFTL0IsT0FBTyxJQUFJZ0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU2hDLE9BQU8sSUFBSWlDLEtBQUssUUFBUSxjQUFjO0FBRS9DLFNBQVNqQyxPQUFPLElBQUlrQyxPQUFPLFFBQVEsZ0JBQWdCO0FBQ25ELFNBQVNsQyxPQUFPLElBQUltQyxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTbkMsT0FBTyxJQUFJb0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3BDLE9BQU8sSUFBSXFDLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNyQyxPQUFPLElBQUlzQyxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTdEMsT0FBTyxJQUFJdUMsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTdkMsT0FBTyxJQUFJd0MsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3hDLE9BQU8sSUFBSXlDLFVBQVUsUUFBUSxtQkFBbUI7QUFDekQsU0FBU3pDLE9BQU8sSUFBSTBDLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBUzFDLE9BQU8sSUFBSTJDLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVMzQyxPQUFPLElBQUk0QyxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVM1QyxPQUFPLElBQUk2QyxjQUFjLFFBQVEsdUJBQXVCO0FBQ2pFLFNBQVM3QyxPQUFPLElBQUk4QyxZQUFZLFFBQVEscUJBQXFCO0FBQzdELFNBQVM5QyxPQUFPLElBQUkrQyxPQUFPLFFBQVEsZ0JBQWdCO0FBQ25ELFNBQVMvQyxPQUFPLElBQUlnRCxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTaEQsT0FBTyxJQUFJaUQsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTakQsT0FBTyxJQUFJa0QsR0FBRyxRQUFRLGlCQUFpQjtBQUNoRCxTQUFTbEQsT0FBTyxJQUFJbUQsR0FBRyxRQUFRLGlCQUFpQjtBQUNoRCxTQUFTbkQsT0FBTyxJQUFJb0QsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU3BELE9BQU8sSUFBSXFELE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNyRCxPQUFPLElBQUlzRCxJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTdEQsT0FBTyxJQUFJdUQsWUFBWSxRQUFRLHFCQUFxQjtBQUM3RCxTQUFTdkQsT0FBTyxJQUFJd0QsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTeEQsT0FBTyxJQUFJeUQsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTekQsT0FBTyxJQUFJMEQsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTMUQsT0FBTyxJQUFJMkQsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBUzNELE9BQU8sSUFBSTRELFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBUzVELE9BQU8sSUFBSTZELEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVM3RCxPQUFPLElBQUk4RCxTQUFTLFFBQVEsa0JBQWtCO0FBQ3ZELFNBQVM5RCxPQUFPLElBQUkrRCxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTL0QsT0FBTyxJQUFJZ0UsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTaEUsT0FBTyxJQUFJaUUsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTakUsT0FBTyxJQUFJa0UsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTbEUsT0FBTyxJQUFJbUUsT0FBTyxRQUFRLGdCQUFnQjtBQUduRCxTQUFTbkUsT0FBTyxJQUFJb0UsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTcEUsT0FBTyxJQUFJcUUsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU3JFLE9BQU8sSUFBSXNFLGFBQWEsUUFBUSxzQkFBc0I7QUFDL0QsU0FBU3RFLE9BQU8sSUFBSXVFLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVN2RSxPQUFPLElBQUl3RSxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTeEUsT0FBTyxJQUFJeUUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTekUsT0FBTyxJQUFJMEUsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTMUUsT0FBTyxJQUFJMkUsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBUzNFLE9BQU8sSUFBSTRFLGFBQWEsUUFBUSxzQkFBc0I7QUFDL0QsU0FBUzVFLE9BQU8sSUFBSTZFLFNBQVMsUUFBUSxpQkFBaUI7QUFDdEQsU0FBUzdFLE9BQU8sSUFBSThFLFFBQVEsUUFBUSx3QkFBd0I7QUFDNUQsU0FBUzlFLE9BQU8sSUFBSStFLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVMvRSxPQUFPLElBQUlnRixVQUFVLFFBQVEsbUJBQW1CO0FBQ3pELFNBQVNoRixPQUFPLElBQUlpRixZQUFZLFFBQVEscUJBQXFCO0FBQzdELFNBQVNqRixPQUFPLElBQUlrRixRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVNsRixPQUFPLElBQUltRixXQUFXLFFBQVEsMkJBQTJCO0FBRWxFLFNBQVNuRixPQUFPLElBQUlvRixNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTcEYsT0FBTyxJQUFJcUYsU0FBUyxRQUFRLGtCQUFrQjtBQUN2RCxTQUFTckYsT0FBTyxJQUFJc0YsV0FBVyxRQUFPLG9CQUFvQjtBQUMxRCxTQUFTdEYsT0FBTyxJQUFJdUYsSUFBSSxRQUFPLGFBQWEifQ==
90
+ export { default as BasePage } from "./page/BasePage";
91
+ export { default as HeaderSearch } from "./page/HeaderSearch";
92
+ export { default as PassWordCheck } from "./page/PasswordCheck";
93
+ export { default as TabsPage } from "./page/TabsPage";
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWZhdWx0IiwiQnV0dG9uIiwiQ2FzY2FkZXIiLCJDaGVja2JveCIsIkJvZHlSb3ciLCJJY29uIiwiVHJlZVBhbmVsIiwiRGF0ZVBpY2tlciIsIkZvcm0iLCJJbnB1dCIsIlRleHRBcmVhIiwiTWVudSIsIlJhZGlvIiwiU2VsZWN0IiwiVGFibGUiLCJEbmRDb250ZXh0VHlwZSIsIklCb2R5Um93UHJvcHMiLCJJTlNDVGFibGVQcm9wcyIsIlRhYnMiLCJUcmVlIiwiTnNjVHJlZVByb3BzIiwiU3RvcmUiLCJTdG9yZUNvbmZpZ1R5cGUiLCJnZXREZWZhdWx0Q29uZmlnIiwic2V0Q29uZmlnIiwiVGFnU2VsZWN0IiwiTm9EYXRhIiwiTm9NZXNzYWdlIiwiTm9OZXRXb3JrIiwiUGFnZTQwNCIsIk5vQXV0aG9yaXR5IiwiUmFuZ2VQaWNrZXIiLCJNb2RhbCIsIkNoYXJ0IiwibWVzc2FnZSIsIkFmZml4IiwiQWxlcnQiLCJBbmNob3IiLCJBdmF0YXIiLCJCYWNrVG9wIiwiQmFkZ2UiLCJCcmVhZGNydW1iIiwiQ2FsZW5kYXIiLCJDYXJkIiwiQ29sbGFwc2UiLCJDb25maWdQcm92aWRlciIsIkRlc2NyaXB0aW9ucyIsIkRpdmlkZXIiLCJEcmF3ZXIiLCJEcm9wZG93biIsIlJvdyIsIkNvbCIsIkltYWdlIiwiTGF5b3V0IiwiTGlzdCIsIm5vdGlmaWNhdGlvbiIsIlBhZ2luYXRpb24iLCJQb3Bjb25maXJtIiwiUHJvZ3Jlc3MiLCJSZXN1bHQiLCJTa2VsZXRvbiIsIlNwYWNlIiwiU3RhdGlzdGljIiwiU3RlcHMiLCJUaW1lbGluZSIsIlRvb2x0aXAiLCJUeXBvZ3JhcGh5IiwiUG9wb3ZlciIsIklmcmFtZSIsIkVycm9yQm91bmRhcnkiLCJFZGl0b3IiLCJVcGxvYWQiLCJEb3dubG9hZCIsIlRyYW5zZmVyIiwiU3BpbiIsIlBkZlZpZXdlciIsIkZpbGVJY29uIiwiU3dpdGNoIiwiVHJlZVNlbGVjdCIsIkNhcm91c2VsIiwiRWxsaXBzZUNlbGwiLCJRUkNvZGUiLCJXYXRlcm1hcmsiLCJDb2xvclBpY2tlciIsIlRvdXIiLCJCYXNlUGFnZSIsIkhlYWRlclNlYXJjaCIsIlBhc3NXb3JkQ2hlY2siLCJUYWJzUGFnZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBARGVzY3JpcHR0aW9uOlxyXG4gKiBAdmVyc2lvbjpcclxuICogQEF1dGhvcjogcnh6aHVcclxuICogQERhdGU6IDIwMjEtMDMtMjIgMDk6MDQ6MTlcclxuICogQExhc3RFZGl0b3JzOiByeHpodVxyXG4gKiBATGFzdEVkaXRUaW1lOiAyMDIxLTA0LTE2IDE0OjQzOjE1XHJcbiAqL1xyXG4vLyBleHBvcnQgeyBGb3JtSW5zdGFuY2UgfSBmcm9tIFwiYW50ZC9saWIvZm9ybVwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b24gfSBmcm9tIFwiLi9iYXNlL2J1dHRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhc2NhZGVyIH0gZnJvbSBcIi4vYmFzZS9jYXNjYWRlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vYmFzZS9jaGVja2JveFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJvZHlSb3cgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbiB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL0ljb25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlUGFuZWwgfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9UcmVlUGFuZWxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRlUGlja2VyIH0gZnJvbSBcIi4vYmFzZS9kYXRlcGlja1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZvcm0gfSBmcm9tIFwiLi9iYXNlL2Zvcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBJbnB1dCB9IGZyb20gXCIuL2Jhc2UvaW5wdXRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0QXJlYSB9IGZyb20gXCIuL2Jhc2UvaW5wdXQvVGV4dEFyZWFcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vYmFzZS9tZW51XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW8gfSBmcm9tIFwiLi9iYXNlL3JhZGlvXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VsZWN0IH0gZnJvbSBcIi4vYmFzZS9zZWxlY3RcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJsZSB9IGZyb20gXCIuL2Jhc2UvdGFibGVcIjtcclxuZXhwb3J0IHsgRG5kQ29udGV4dFR5cGUsIElCb2R5Um93UHJvcHMsIElOU0NUYWJsZVByb3BzIH0gZnJvbSBcIi4vYmFzZS90YWJsZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhYnMgfSBmcm9tIFwiLi9iYXNlL3RhYnNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUcmVlIH0gZnJvbSBcIi4vYmFzZS90cmVlXCI7XHJcbmV4cG9ydCB7IE5zY1RyZWVQcm9wcywgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCIuL2Jhc2UvdHJlZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIGdldERlZmF1bHRDb25maWcsIHNldENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZ1wiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRhZ1NlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdGFnU2VsZWN0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9EYXRhIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9EYXRhXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9NZXNzYWdlIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9NZXNzYWdlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9OZXRXb3JrIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vTm9OZXRXb3JrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnZTQwNCB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL1BhZ2U0MDRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb0F1dGhvcml0eSB9IGZyb20gXCIuL2Jhc2UvY29tbW9uL05vQXV0aG9yaXR5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFuZ2VQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2RhdGVwaWNrL1JhbmdlcGlja2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9iYXNlL21vZGFsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hhcnQgfSBmcm9tIFwiLi9iYXNlL2NoYXJ0XCI7XHJcblxyXG5leHBvcnQgeyBkZWZhdWx0IGFzIG1lc3NhZ2UgfSBmcm9tIFwiLi9iYXNlL21lc3NhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBZmZpeCB9IGZyb20gXCIuL2Jhc2UvYWZmaXhcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbGVydCB9IGZyb20gXCIuL2Jhc2UvYWxlcnRcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBBbmNob3IgfSBmcm9tIFwiLi9iYXNlL2FuY2hvclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEF2YXRhciB9IGZyb20gXCIuL2Jhc2UvYXZhdGFyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQmFja1RvcCB9IGZyb20gXCIuL2Jhc2UvYmFja1RvcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJhZGdlIH0gZnJvbSBcIi4vYmFzZS9iYWRnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEJyZWFkY3J1bWIgfSBmcm9tIFwiLi9iYXNlL2JyZWFkY3J1bWJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYWxlbmRhciB9IGZyb20gXCIuL2Jhc2UvY2FsZW5kYXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXJkIH0gZnJvbSBcIi4vYmFzZS9jYXJkXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sbGFwc2UgfSBmcm9tIFwiLi9iYXNlL2NvbGxhcHNlXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29uZmlnUHJvdmlkZXIgfSBmcm9tIFwiLi9iYXNlL2NvbmZpZ1Byb3ZpZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGVzY3JpcHRpb25zIH0gZnJvbSBcIi4vYmFzZS9kZXNjcmlwdGlvbnNcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEaXZpZGVyIH0gZnJvbSBcIi4vYmFzZS9kaXZpZGVyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRHJhd2VyIH0gZnJvbSBcIi4vYmFzZS9kcmF3ZXJcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBEcm9wZG93biB9IGZyb20gXCIuL2Jhc2UvZHJvcGRvd25cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSb3cgfSBmcm9tIFwiLi9iYXNlL2dyaWQvUm93XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sIH0gZnJvbSBcIi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlIH0gZnJvbSBcIi4vYmFzZS9pbWFnZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIExheW91dCB9IGZyb20gXCIuL2Jhc2UvbGF5b3V0XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdCB9IGZyb20gXCIuL2Jhc2UvbGlzdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vdGlmaWNhdGlvbiB9IGZyb20gXCIuL2Jhc2Uvbm90aWZpY2F0aW9uXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUGFnaW5hdGlvbiB9IGZyb20gXCIuL2Jhc2UvcGFnaW5hdGlvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBvcGNvbmZpcm0gfSBmcm9tIFwiLi9iYXNlL3BvcGNvbmZpcm1cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcm9ncmVzcyB9IGZyb20gXCIuL2Jhc2UvcHJvZ3Jlc3NcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZXN1bHQgfSBmcm9tIFwiLi9iYXNlL3Jlc3VsdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNrZWxldG9uIH0gZnJvbSBcIi4vYmFzZS9za2VsZXRvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwYWNlIH0gZnJvbSBcIi4vYmFzZS9zcGFjZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN0YXRpc3RpYyB9IGZyb20gXCIuL2Jhc2Uvc3RhdGlzdGljXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU3RlcHMgfSBmcm9tIFwiLi9iYXNlL3N0ZXBzXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGltZWxpbmUgfSBmcm9tIFwiLi9iYXNlL3RpbWVsaW5lXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG9vbHRpcCB9IGZyb20gXCIuL2Jhc2UvdG9vbHRpcFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFR5cG9ncmFwaHkgfSBmcm9tIFwiLi9iYXNlL3R5cG9ncmFwaHlcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQb3BvdmVyIH0gZnJvbSBcIi4vYmFzZS9wb3BvdmVyXCI7XHJcbmV4cG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBJbnB1dEVhbWlsSW5zdGFuY2UgfSBmcm9tIFwiLi9iYXNlL2lucHV0L0VtYWlsXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWZyYW1lIH0gZnJvbSBcIi4vYmFzZS9pZnJhbWVcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcnJvckJvdW5kYXJ5IH0gZnJvbSBcIi4vYmFzZS9lcnJvcmJvdW5kYXJ5XCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWRpdG9yIH0gZnJvbSBcIi4vYmFzZS9lZGl0b3JcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBVcGxvYWQgfSBmcm9tIFwiLi9iYXNlL3VwbG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIERvd25sb2FkIH0gZnJvbSBcIi4vYmFzZS9kb3dubG9hZFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFRyYW5zZmVyIH0gZnJvbSBcIi4vYmFzZS90cmFuc2ZlclwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFNwaW4gfSBmcm9tIFwiLi9iYXNlL3NwaW5cIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBQZGZWaWV3ZXIgfSBmcm9tIFwiLi9iYXNlL3BkZnZpd2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUljb24gfSBmcm9tIFwiLi9iYXNlL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFN3aXRjaCB9IGZyb20gXCIuL2Jhc2Uvc3dpdGNoXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVHJlZVNlbGVjdCB9IGZyb20gXCIuL2Jhc2UvdHJlZXNlbGVjdFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIENhcm91c2VsIH0gZnJvbSBcIi4vYmFzZS9jYXJvdXNlbFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIEVsbGlwc2VDZWxsIH0gZnJvbSBcIi4vYmFzZS9jb21tb24vRWxsaXBzZUNlbGxcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBRUkNvZGUgfSBmcm9tIFwiLi9iYXNlL3FlY29kZVwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFdhdGVybWFyayB9IGZyb20gXCIuL2Jhc2Uvd2F0ZXJtYXJrXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29sb3JQaWNrZXIgfSBmcm9tIFwiLi9iYXNlL2NvbG9ycGlja2VyXCI7XHJcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVG91ciB9IGZyb20gXCIuL2Jhc2UvdG91clwiO1xyXG5cclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBCYXNlUGFnZSB9IGZyb20gXCIuL3BhZ2UvQmFzZVBhZ2VcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBIZWFkZXJTZWFyY2ggfSBmcm9tIFwiLi9wYWdlL0hlYWRlclNlYXJjaFwiO1xyXG5leHBvcnQgeyBkZWZhdWx0IGFzIFBhc3NXb3JkQ2hlY2sgfSBmcm9tIFwiLi9wYWdlL1Bhc3N3b3JkQ2hlY2tcIjtcclxuZXhwb3J0IHsgZGVmYXVsdCBhcyBUYWJzUGFnZSB9IGZyb20gXCIuL3BhZ2UvVGFic1BhZ2VcIjtcclxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsU0FBU0EsT0FBTyxJQUFJQyxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTRCxPQUFPLElBQUlFLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU0YsT0FBTyxJQUFJRyxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVNILE9BQU8sSUFBSUksT0FBTyxRQUFRLHVCQUF1QjtBQUMxRCxTQUFTSixPQUFPLElBQUlLLElBQUksUUFBUSxvQkFBb0I7QUFDcEQsU0FBU0wsT0FBTyxJQUFJTSxTQUFTLFFBQVEseUJBQXlCO0FBQzlELFNBQVNOLE9BQU8sSUFBSU8sVUFBVSxRQUFRLGlCQUFpQjtBQUN2RCxTQUFTUCxPQUFPLElBQUlRLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVNSLE9BQU8sSUFBSVMsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU1QsT0FBTyxJQUFJVSxRQUFRLFFBQVEsdUJBQXVCO0FBQzNELFNBQVNWLE9BQU8sSUFBSVcsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBU1gsT0FBTyxJQUFJWSxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTWixPQUFPLElBQUlhLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNiLE9BQU8sSUFBSWMsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU0MsY0FBYyxFQUFFQyxhQUFhLEVBQUVDLGNBQWMsUUFBUSxjQUFjO0FBQzVFLFNBQVNqQixPQUFPLElBQUlrQixJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTbEIsT0FBTyxJQUFJbUIsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBU0MsWUFBWSxFQUFFQyxLQUFLLEVBQUVDLGVBQWUsUUFBUSxhQUFhO0FBQ2xFLFNBQVN0QixPQUFPLElBQUl1QixnQkFBZ0IsRUFBRUMsU0FBUyxRQUFRLFVBQVU7QUFDakUsU0FBU3hCLE9BQU8sSUFBSXlCLFNBQVMsUUFBUSxrQkFBa0I7QUFDdkQsU0FBU3pCLE9BQU8sSUFBSTBCLE1BQU0sUUFBUSxzQkFBc0I7QUFDeEQsU0FBUzFCLE9BQU8sSUFBSTJCLFNBQVMsUUFBUSx5QkFBeUI7QUFDOUQsU0FBUzNCLE9BQU8sSUFBSTRCLFNBQVMsUUFBUSx5QkFBeUI7QUFDOUQsU0FBUzVCLE9BQU8sSUFBSTZCLE9BQU8sUUFBUSx1QkFBdUI7QUFDMUQsU0FBUzdCLE9BQU8sSUFBSThCLFdBQVcsUUFBUSwyQkFBMkI7QUFDbEUsU0FBUzlCLE9BQU8sSUFBSStCLFdBQVcsUUFBUSw2QkFBNkI7QUFDcEUsU0FBUy9CLE9BQU8sSUFBSWdDLEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVNoQyxPQUFPLElBQUlpQyxLQUFLLFFBQVEsY0FBYztBQUUvQyxTQUFTakMsT0FBTyxJQUFJa0MsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTbEMsT0FBTyxJQUFJbUMsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBU25DLE9BQU8sSUFBSW9DLEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVNwQyxPQUFPLElBQUlxQyxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTckMsT0FBTyxJQUFJc0MsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU3RDLE9BQU8sSUFBSXVDLE9BQU8sUUFBUSxnQkFBZ0I7QUFDbkQsU0FBU3ZDLE9BQU8sSUFBSXdDLEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVN4QyxPQUFPLElBQUl5QyxVQUFVLFFBQVEsbUJBQW1CO0FBQ3pELFNBQVN6QyxPQUFPLElBQUkwQyxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVMxQyxPQUFPLElBQUkyQyxJQUFJLFFBQVEsYUFBYTtBQUM3QyxTQUFTM0MsT0FBTyxJQUFJNEMsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTNUMsT0FBTyxJQUFJNkMsY0FBYyxRQUFRLHVCQUF1QjtBQUNqRSxTQUFTN0MsT0FBTyxJQUFJOEMsWUFBWSxRQUFRLHFCQUFxQjtBQUM3RCxTQUFTOUMsT0FBTyxJQUFJK0MsT0FBTyxRQUFRLGdCQUFnQjtBQUNuRCxTQUFTL0MsT0FBTyxJQUFJZ0QsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU2hELE9BQU8sSUFBSWlELFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU2pELE9BQU8sSUFBSWtELEdBQUcsUUFBUSxpQkFBaUI7QUFDaEQsU0FBU2xELE9BQU8sSUFBSW1ELEdBQUcsUUFBUSxpQkFBaUI7QUFDaEQsU0FBU25ELE9BQU8sSUFBSW9ELEtBQUssUUFBUSxjQUFjO0FBQy9DLFNBQVNwRCxPQUFPLElBQUlxRCxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTckQsT0FBTyxJQUFJc0QsSUFBSSxRQUFRLGFBQWE7QUFDN0MsU0FBU3RELE9BQU8sSUFBSXVELFlBQVksUUFBUSxxQkFBcUI7QUFDN0QsU0FBU3ZELE9BQU8sSUFBSXdELFVBQVUsUUFBUSxtQkFBbUI7QUFDekQsU0FBU3hELE9BQU8sSUFBSXlELFVBQVUsUUFBUSxtQkFBbUI7QUFDekQsU0FBU3pELE9BQU8sSUFBSTBELFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBUzFELE9BQU8sSUFBSTJELE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVMzRCxPQUFPLElBQUk0RCxRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVM1RCxPQUFPLElBQUk2RCxLQUFLLFFBQVEsY0FBYztBQUMvQyxTQUFTN0QsT0FBTyxJQUFJOEQsU0FBUyxRQUFRLGtCQUFrQjtBQUN2RCxTQUFTOUQsT0FBTyxJQUFJK0QsS0FBSyxRQUFRLGNBQWM7QUFDL0MsU0FBUy9ELE9BQU8sSUFBSWdFLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU2hFLE9BQU8sSUFBSWlFLE9BQU8sUUFBUSxnQkFBZ0I7QUFDbkQsU0FBU2pFLE9BQU8sSUFBSWtFLFVBQVUsUUFBUSxtQkFBbUI7QUFDekQsU0FBU2xFLE9BQU8sSUFBSW1FLE9BQU8sUUFBUSxnQkFBZ0I7QUFFbkQsU0FBU25FLE9BQU8sSUFBSW9FLE1BQU0sUUFBUSxlQUFlO0FBQ2pELFNBQVNwRSxPQUFPLElBQUlxRSxhQUFhLFFBQVEsc0JBQXNCO0FBQy9ELFNBQVNyRSxPQUFPLElBQUlzRSxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTdEUsT0FBTyxJQUFJdUUsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU3ZFLE9BQU8sSUFBSXdFLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU3hFLE9BQU8sSUFBSXlFLFFBQVEsUUFBUSxpQkFBaUI7QUFDckQsU0FBU3pFLE9BQU8sSUFBSTBFLElBQUksUUFBUSxhQUFhO0FBQzdDLFNBQVMxRSxPQUFPLElBQUkyRSxTQUFTLFFBQVEsaUJBQWlCO0FBQ3RELFNBQVMzRSxPQUFPLElBQUk0RSxRQUFRLFFBQVEsd0JBQXdCO0FBQzVELFNBQVM1RSxPQUFPLElBQUk2RSxNQUFNLFFBQVEsZUFBZTtBQUNqRCxTQUFTN0UsT0FBTyxJQUFJOEUsVUFBVSxRQUFRLG1CQUFtQjtBQUN6RCxTQUFTOUUsT0FBTyxJQUFJK0UsUUFBUSxRQUFRLGlCQUFpQjtBQUNyRCxTQUFTL0UsT0FBTyxJQUFJZ0YsV0FBVyxRQUFRLDJCQUEyQjtBQUNsRSxTQUFTaEYsT0FBTyxJQUFJaUYsTUFBTSxRQUFRLGVBQWU7QUFDakQsU0FBU2pGLE9BQU8sSUFBSWtGLFNBQVMsUUFBUSxrQkFBa0I7QUFDdkQsU0FBU2xGLE9BQU8sSUFBSW1GLFdBQVcsUUFBUSxvQkFBb0I7QUFDM0QsU0FBU25GLE9BQU8sSUFBSW9GLElBQUksUUFBUSxhQUFhO0FBRTdDLFNBQVNwRixPQUFPLElBQUlxRixRQUFRLFFBQVEsaUJBQWlCO0FBQ3JELFNBQVNyRixPQUFPLElBQUlzRixZQUFZLFFBQVEscUJBQXFCO0FBQzdELFNBQVN0RixPQUFPLElBQUl1RixhQUFhLFFBQVEsc0JBQXNCO0FBQy9ELFNBQVN2RixPQUFPLElBQUl3RixRQUFRLFFBQVEsaUJBQWlCIn0=