nsc-react-component 2.10.32 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/base/select/index.js +12 -3
- package/lib/base/upload/Dragger.d.ts +4 -1
- package/lib/base/upload/Dragger.js +112 -46
- package/package.json +2 -2
package/lib/base/select/index.js
CHANGED
|
@@ -251,7 +251,16 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
251
251
|
var newData = getFlattenData(dataSource, {
|
|
252
252
|
keyField: valueField
|
|
253
253
|
});
|
|
254
|
-
|
|
254
|
+
|
|
255
|
+
if (Array.isArray(value)) {
|
|
256
|
+
var res = [];
|
|
257
|
+
value.map(function (val) {
|
|
258
|
+
res.push(newData[val] || {});
|
|
259
|
+
});
|
|
260
|
+
return res;
|
|
261
|
+
} else {
|
|
262
|
+
return newData[value] || {};
|
|
263
|
+
}
|
|
255
264
|
}
|
|
256
265
|
}, {
|
|
257
266
|
key: "componentDidMount",
|
|
@@ -414,7 +423,7 @@ var NSCSelect = /*#__PURE__*/function (_PureComponent) {
|
|
|
414
423
|
value = valueType === "number" ? Number(item[valueField]) : item[valueField];
|
|
415
424
|
} else {
|
|
416
425
|
var valueFields = valueField.split(",");
|
|
417
|
-
value =
|
|
426
|
+
value = "";
|
|
418
427
|
valueFields.map(function (v, index) {
|
|
419
428
|
value = index == 0 ? value + item[v] : value + "," + item[v];
|
|
420
429
|
});
|
|
@@ -576,4 +585,4 @@ _defineProperty(NSCSelect, "Option", Option);
|
|
|
576
585
|
_defineProperty(NSCSelect, "OptGroup", OptGroup);
|
|
577
586
|
|
|
578
587
|
export { NSCSelect as default };
|
|
579
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2Uvc2VsZWN0L2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwic3BsaWNlRGF0YSIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInB1c2giLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwic3RhdGUiLCJrZXlGaWVsZCIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsImxhYmVsRmllbGQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJnZXRTZWxlY3REYXRhIiwib25TZWxlY3QiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJtb3VudEVsZW1lbnRJZCIsImdldFBvcHVwQ29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsYXNzTmFtZSIsImJpbmQiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsInJlbmRlckNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUVBLE9BQU9DLFdBQVAsTUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxjQUFULFFBQStCLG1CQUEvQjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBaUJxQkMsUzs7Ozs7QUFXbkIscUJBQVlD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QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFMM0IsV0FNTTFHLEtBTk4sRUFPTStGLE1BUE4sR0FTRyxLQUFLYSxjQUFMLEVBVEgsQ0FERixDQURGO0FBZUQsT0FoQkQsTUFnQk87QUFDTCw0QkFDRTtBQUNFLFVBQUEsS0FBSyxFQUFFLEtBQUt2RCxLQUFMLENBQVduRCxXQURwQjtBQUVFLFVBQUEsUUFBUSxFQUFFLEtBQUsrRCxRQUFMLENBQWN5QyxJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxVQUFBLFFBQVEsRUFBRSxLQUFLakIsUUFBTCxDQUFjaUIsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsVUFBQSxRQUFRLEVBQUUsS0FBS2YsUUFBTCxDQUFjZSxJQUFkLENBQW1CLElBQW5CLENBSlo7QUFLRSxVQUFBLHVCQUF1QixFQUFFLEtBQUtDLHVCQUFMLENBQTZCRCxJQUE3QixDQUFrQyxJQUFsQztBQUwzQixXQU1NMUcsS0FOTixFQU9NK0YsTUFQTixHQVNHLEtBQUthLGNBQUwsRUFUSCxDQURGO0FBYUQ7QUFDRjs7OztFQTVab0N2SCxhOztnQkFBbEJVLFMsWUFDSEYsTTs7Z0JBREdFLFMsY0FFREQsUTs7U0FGQ0MsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFNlbGVjdCwgU2VsZWN0UHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgU3RvcmUsIHsgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBQaW55aW5NYXRjaCBmcm9tIFwicGlueWluLW1hdGNoXCI7XHJcbmltcG9ydCB7IGdldEZsYXR0ZW5EYXRhIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmNvbnN0IHsgT3B0aW9uLCBPcHRHcm91cCB9ID0gU2VsZWN0O1xyXG5cclxuaW50ZXJmYWNlIElTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdFByb3BzPGFueT4ge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBkYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/pu5jorqTmlbDmja5cclxuICBsYWJlbEZpZWxkPzogc3RyaW5nO1xyXG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdFN0eWxlPzogYm9vbGVhbjtcclxuICBzaG93R3JvdXA/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhue7hFxyXG4gIGFkZERhdGE/OiBBcnJheTxPYmplY3Q+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5LuO5aKe5Yqg6aKd5aSW55qE5pWw5o2uXHJcbiAgZGVsZXRlRGF0YT86IEFycmF5PFN0cmluZz47IC8v6YWN5ZCIc3RvcmXkvb/nlKjvvIzliKDpmaTku47mlbDmja7lupPkuK3ojrflj5bliLDnmoTmjIflrprmlbDmja5cclxuICB2YWx1ZUJyZWFrPzogc3RyaW5nOyAvL+WkmuS4qnZhbHVl5L2/55So55qE5YiG6ZqU56ymXHJcbiAgdmFsdWVUeXBlPzogXCJzdHJpbmdcIiB8IFwibnVtYmVyXCI7XHJcbiAgW3Byb05hbWU6IHN0cmluZ106IGFueTtcclxuICBvbkNoYW5nZT86IGFueTtcclxuICBvblNlbGVjdD86IGFueTtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOU0NTZWxlY3QgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PElTZWxlY3RQcm9wcz4ge1xyXG4gIHN0YXRpYyBPcHRpb24gPSBPcHRpb247XHJcbiAgc3RhdGljIE9wdEdyb3VwID0gT3B0R3JvdXA7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBkYXRhU291cmNlOiBbXSxcclxuICAgIHNlbGVjdFZhbHVlOiBudWxsLFxyXG4gICAgYWxsRGF0YVNvdXJjZTogW10sXHJcbiAgICBjaGlsZHJlbjogbnVsbCxcclxuICAgIGFsbENoaWxkcmVuOiBudWxsLFxyXG4gIH07XHJcbiAgc3RvcmUgPSB7fSBhcyBTdG9yZVByb3BzO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBhZGREYXRhID0gW10sXHJcbiAgICAgIGRlbGV0ZURhdGEgPSBbXSxcclxuICAgIH0gPSBwcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgdXJsLFxyXG4gICAgICBsaXN0ZW5lcnM6IGxpc3RlbmVyc1BvcHMgPSB7fSxcclxuICAgICAgdmlld25hbWUsXHJcbiAgICAgIGNhY2hlZCxcclxuICAgICAgY2FjaGVLZXksXHJcbiAgICAgIHZpZXd0eXBlID0gXCJzeXNcIixcclxuICAgICAgLi4uc3RvcmVzXHJcbiAgICB9ID0gc3RvcmU7XHJcbiAgICBjb25zdCB2YWx1ZUZpZWxkID0gdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGxldCB7IHZpZXdVcmwsIHZpZXdCaXpVcmwgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHJlcXVlc3RWaWV3VXJsID0gdmlld3R5cGUgPT0gXCJzeXNcIiA/IHZpZXdVcmwgOiB2aWV3Qml6VXJsO1xyXG4gICAgY29uc3QgZ2V0QWxsRGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhKSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbmV3RGF0YSA9IFsuLi5kYXRhXTtcclxuICAgICAgaWYgKGFkZERhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0RhdGEgPSBbLi4uYWRkRGF0YSwgLi4ubmV3RGF0YV07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGRlbGV0ZURhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzcGxpY2VEYXRhID0gW107XHJcbiAgICAgICAgY29uc3QgdmFsdWVGaWVsZHM6IGFueSA9IHZhbHVlRmllbGQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIG5ld0RhdGEubWFwKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICB2YWx1ZSA9IGluZGV4ID09IDAgPyB2YWx1ZSArIGl0ZW1bdl0gOiB2YWx1ZSArIFwiLFwiICsgaXRlbVt2XTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaWYgKGRlbGV0ZURhdGEuaW5kZXhPZih2YWx1ZSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgc3BsaWNlRGF0YS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBzcGxpY2VEYXRhO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgaWYgKCFjaGlsZHJlbikge1xyXG4gICAgICBpZiAoIShkYXRhIHx8IHZpZXduYW1lIHx8IHVybCB8fCBvcHRpb25zKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOOAgXZpZXduYW1l44CBZGF0YeOAgW9wdGlvbnPkuI3og73pg73kuLrnqbrvvIFcIik7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgICAgbGV0IHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgbW9kZWw6IFwibW9kZWxcIixcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLm9uQmVmb3JlTG9hZCwgX3RoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMubG9hZCwgX3RoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRBbGxEYXRhKGRhdGEpO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG5ld0RhdGEsIGFsbERhdGFTb3VyY2U6IG5ld0RhdGEgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1BvcHMuZGF0YUNoYW5nZWQsIF90aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnN0b3JlcyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKCh2aWV3bmFtZSB8fCB1cmwpICYmIGRhdGEgPT0gbnVsbCAmJiBvcHRpb25zID09IG51bGwpIHtcclxuICAgICAgICBsZXQgaXNDYWNoZWQgPSBjYWNoZWQ7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVLZXkgPSBjYWNoZUtleTtcclxuICAgICAgICBpZiAodmlld25hbWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkICE9PSBcImJvb2xlYW5cIikge1xyXG4gICAgICAgICAgICBpc0NhY2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlzQ2FjaGVLZXkgPSBpc0NhY2hlS2V5ID8gaXNDYWNoZUtleSA6IHZpZXduYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICAgIC4uLntcclxuICAgICAgICAgICAgYXV0b0xvYWQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogdXJsIHx8IHJlcXVlc3RWaWV3VXJsICsgdmlld25hbWUsIC8v6K+75a2X5YW477yMdXJs5Zu65a6a77yMdmlld25hbWVcclxuICAgICAgICAgICAgY2FjaGVkOiBpc0NhY2hlZCxcclxuICAgICAgICAgICAgY2FjaGVLZXk6IGlzQ2FjaGVLZXksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4uc3RvcmVQcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgU3RvcmUoc3RvcmVQcm9wcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldERhdGEoKSB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhbGxEYXRhU291cmNlLCBhbGxDaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgY2hpbGRyZW46IGFsbENoaWxkcmVuIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuYWxsRGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0VmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0VmFsdWU6IHZhbHVlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWxlY3REYXRhKHZhbHVlKSB7XHJcbiAgICBjb25zdCB7IGRhdGFTb3VyY2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgeyBzdG9yZSA9IHt9LCB2YWx1ZUZpZWxkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgY29uc3QgbmV3RGF0YSA9IGdldEZsYXR0ZW5EYXRhKGRhdGFTb3VyY2UsIHsga2V5RmllbGQ6IHZhbHVlRmllbGQgfSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YVt2YWx1ZV0gfHwge307XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSA9IChzdGF0ZSwgY2FsbGJhY2spID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWFyY2godmFsdWUpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGZpbHRlck9wdGlvbiA9IHRydWUsIG9uU2VhcmNoLCBjaGlsZHJlbiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbENoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgdmFsdWVUeXBlID0gXCJzdHJpbmdcIixcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgcmV0dXJuIG9wdGlvbkRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9XHJcbiAgICAgICAgICB2YWx1ZVR5cGUgPT09IFwibnVtYmVyXCIgPyBOdW1iZXIoaXRlbVt2YWx1ZUZpZWxkXSkgOiBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZT0nJ1xyXG4gICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHZhbHVlID0gaW5kZXggPT0gMCA/IHZhbHVlICsgaXRlbVt2XSA6IHZhbHVlICsgXCIsXCIgKyBpdGVtW3ZdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBrZXkgPSBpdGVtLmlkID8gKGl0ZW0uaWQgIT09IFwidW5kZWZpbmVkXCIgPyBpdGVtLmlkIDogdmFsdWUpIDogdmFsdWU7XHJcbiAgICAgIGxldCBsYWJlbCA9IFwiXCI7XHJcbiAgICAgIGlmIChsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKS5sZW5ndGggPT0gMSkge1xyXG4gICAgICAgIGxhYmVsID0gaXRlbVtsYWJlbEZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBsYWJlbEZpZWxkczogYW55ID0gbGFiZWxGaWVsZC5zcGxpdChcIixcIik7XHJcbiAgICAgICAgbGFiZWxGaWVsZHMubWFwKChsLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgbGFiZWwgPSBpbmRleCA9PSAwID8gbGFiZWwgKyBpdGVtW2xdIDogbGFiZWwgKyBcIi1cIiArIGl0ZW1bbF07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8T3B0aW9uXHJcbiAgICAgICAgICBrZXk9e2tleX1cclxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cclxuICAgICAgICAgIGxhYmVsPXtsYWJlbH1cclxuICAgICAgICAgIGRpc2FibGVkPXtpdGVtLmRpc2FibGVkID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtsYWJlbH1cclxuICAgICAgICA8L09wdGlvbj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJDaGlsZHJlbigpIHtcclxuICAgIGNvbnN0IHsgc2hvd0dyb3VwID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgZGF0YVNvdXJjZSwgY2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBvcHRHcm91cERhdGEgPSB7fSxcclxuICAgICAgICBvcHRpb25EYXRhID0gW107XHJcbiAgICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBsYWJlbCA9IGl0ZW0uZ3JvdXBOYW1lO1xyXG4gICAgICAgIGlmIChsYWJlbCAmJiBzaG93R3JvdXApIHtcclxuICAgICAgICAgIGlmICghb3B0R3JvdXBEYXRhW2xhYmVsXSkgb3B0R3JvdXBEYXRhW2xhYmVsXSA9IFtdO1xyXG4gICAgICAgICAgb3B0R3JvdXBEYXRhW2xhYmVsXS5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBvcHRpb25EYXRhLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IG9wdGlvbiA9IHRoaXMucmVuZGVyT3B0aW9uKG9wdGlvbkRhdGEpO1xyXG4gICAgICBsZXQgb3B0R3JvdXAgPSBPYmplY3Qua2V5cyhvcHRHcm91cERhdGEpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxPcHRHcm91cCBrZXk9e2tleX0gbGFiZWw9e2tleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlck9wdGlvbihvcHRHcm91cERhdGFba2V5XSl9XHJcbiAgICAgICAgICA8L09wdEdyb3VwPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICB7b3B0aW9ufVxyXG4gICAgICAgICAge29wdEdyb3VwfVxyXG4gICAgICAgIDwvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogdmFsdWUsXHJcbiAgICB9KTtcclxuICAgIGlmIChvbkNoYW5nZSkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25DaGFuZ2UodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvblNlbGVjdCh2YWx1ZSwgb3B0aW9ucykge1xyXG4gICAgY29uc3QgeyBvblNlbGVjdCB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBpZiAob25TZWxlY3QpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0U2VsZWN0RGF0YSh2YWx1ZSk7XHJcbiAgICAgIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zLCBkYXRhKTtcclxuICAgIH1cclxuICB9XHJcbiAgb25Ecm9wZG93blZpc2libGVDaGFuZ2Uob3Blbikge1xyXG4gICAgaWYgKCFvcGVuKSB7XHJcbiAgICAgIHRoaXMucmVzZXREYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICBvbkNoYW5nZSxcclxuICAgICAgb25TZWxlY3QsXHJcbiAgICAgIG9wdGlvbnMsXHJcbiAgICAgIGxhYmVsRmllbGQsXHJcbiAgICAgIHZhbHVlRmllbGQsXHJcbiAgICAgIGRlZmF1bHRTdHlsZSxcclxuICAgICAgc2hvd0dyb3VwID0gdHJ1ZSxcclxuICAgICAgYWRkRGF0YSxcclxuICAgICAgZGVsZXRlRGF0YSxcclxuICAgICAgdmFsdWVUeXBlLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHByb3BzID0ge1xyXG4gICAgICBmaWx0ZXJPcHRpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2VhcmNoOiB0cnVlLFxyXG4gICAgICBvcHRpb25GaWx0ZXJQcm9wOiBcImxhYmVsXCIsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBcIuivt+mAieaLqVwiLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBsZXQgeyBhbnRkU3R5bGUsIG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcjogKCkgPT4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobW91bnRFbGVtZW50SWQpLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKChkZWZhdWx0U3R5bGUgfHwgYW50ZFN0eWxlKSAmJiBkZWZhdWx0U3R5bGUgPT09IHRydWUpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKHN0eWxlc1tcIm5zY19zZWxlY3RcIl0sIHRoaXMucHJvcHMuY2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLnNlbGVjdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvblNlbGVjdD17dGhpcy5vblNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgICA8L1NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFNlbGVjdFxyXG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25DaGFuZ2U9e3RoaXMub25DaGFuZ2UuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZT17dGhpcy5vbkRyb3Bkb3duVmlzaWJsZUNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5yZW5kZXJDaGlsZHJlbigpfVxyXG4gICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
588
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2Uvc2VsZWN0L2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJTdG9yZSIsInV0aWxzIiwiY29uZmlnIiwic3R5bGVzIiwiY2xzIiwiUGlueWluTWF0Y2giLCJnZXRGbGF0dGVuRGF0YSIsIk9wdGlvbiIsIk9wdEdyb3VwIiwiTlNDU2VsZWN0IiwicHJvcHMiLCJkYXRhU291cmNlIiwic2VsZWN0VmFsdWUiLCJhbGxEYXRhU291cmNlIiwiY2hpbGRyZW4iLCJhbGxDaGlsZHJlbiIsImRhdGEiLCJzdG9yZSIsIm9wdGlvbnMiLCJhZGREYXRhIiwiZGVsZXRlRGF0YSIsInVybCIsImxpc3RlbmVycyIsImxpc3RlbmVyc1BvcHMiLCJ2aWV3bmFtZSIsImNhY2hlZCIsImNhY2hlS2V5Iiwidmlld3R5cGUiLCJzdG9yZXMiLCJ2YWx1ZUZpZWxkIiwidmlld1VybCIsInZpZXdCaXpVcmwiLCJyZXF1ZXN0Vmlld1VybCIsImdldEFsbERhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwibGVuZ3RoIiwic3BsaWNlRGF0YSIsInZhbHVlRmllbGRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiaSIsInZhbHVlIiwidiIsImluZGV4IiwiaW5kZXhPZiIsInB1c2giLCJFcnJvciIsIl90aGlzIiwic3RvcmVQcm9wcyIsIm1vZGVsIiwiY29tcG9uZW50Iiwib25CZWZvcmVMb2FkIiwiY2FsbGJhY2siLCJsb2FkIiwibW9kZWxEYXRhIiwic2V0U3RhdGUiLCJkYXRhQ2hhbmdlZCIsImlzQ2FjaGVkIiwiaXNDYWNoZUtleSIsImF1dG9Mb2FkIiwic3RhdGUiLCJrZXlGaWVsZCIsInJlcyIsInZhbCIsIm5ld1Byb3BzIiwibmV3U3RhdGUiLCJTbmFwc2hvdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZUNoaWxkcmVuUHJvcHMiLCJzIiwiY2hpbGRyZW5Qcm9wcyIsImMiLCJmaWx0ZXJPcHRpb24iLCJvblNlYXJjaCIsImxhYmVsRmllbGQiLCJyZXN1bHQiLCJmb3JFYWNoIiwibGFiZWwiLCJsYWJlbEZpZWxkcyIsImwiLCJmbGFnIiwibWF0Y2giLCJjaGlsZCIsIm9wdGlvbkRhdGEiLCJ2YWx1ZVR5cGUiLCJOdW1iZXIiLCJrZXkiLCJpZCIsImRpc2FibGVkIiwic2hvd0dyb3VwIiwib3B0R3JvdXBEYXRhIiwiZ3JvdXBOYW1lIiwib3B0aW9uIiwicmVuZGVyT3B0aW9uIiwib3B0R3JvdXAiLCJPYmplY3QiLCJrZXlzIiwib25DaGFuZ2UiLCJnZXRTZWxlY3REYXRhIiwib25TZWxlY3QiLCJvcGVuIiwicmVzZXREYXRhIiwiZGVmYXVsdFN0eWxlIiwicGFyYW1zIiwic2hvd1NlYXJjaCIsIm9wdGlvbkZpbHRlclByb3AiLCJwbGFjZWhvbGRlciIsImFsbG93Q2xlYXIiLCJhbnRkU3R5bGUiLCJtb3VudEVsZW1lbnRJZCIsImdldFBvcHVwQ29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImNsYXNzTmFtZSIsImJpbmQiLCJvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZSIsInJlbmRlckNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFxQyxPQUFyQztBQUVBLE9BQU9DLEtBQVAsTUFBa0MsYUFBbEM7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUVBLE9BQU9DLFdBQVAsTUFBd0IsY0FBeEI7QUFDQSxTQUFTQyxjQUFULFFBQStCLG1CQUEvQjtBQUNBLElBQVFDLE1BQVIsV0FBUUEsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixXQUFnQkEsUUFBaEI7O0lBaUJxQkMsUzs7Ozs7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VzJHLFNBQWxDO0FBQW5CLHdCQUNFO0FBQ0UsVUFBQSxLQUFLLEVBQUUsS0FBS3RELEtBQUwsQ0FBV25ELFdBRHBCO0FBRUUsVUFBQSxRQUFRLEVBQUUsS0FBS3lGLFFBQUwsQ0FBY2lCLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWjtBQUdFLFVBQUEsUUFBUSxFQUFFLEtBQUt6QyxRQUFMLENBQWN5QyxJQUFkLENBQW1CLElBQW5CLENBSFo7QUFJRSxVQUFBLFFBQVEsRUFBRSxLQUFLZixRQUFMLENBQWNlLElBQWQsQ0FBbUIsSUFBbkIsQ0FKWjtBQUtFLFVBQUEsdUJBQXVCLEVBQUUsS0FBS0MsdUJBQUwsQ0FBNkJELElBQTdCLENBQWtDLElBQWxDO0FBTDNCLFdBTU01RyxLQU5OLEVBT01pRyxNQVBOLEdBU0csS0FBS2EsY0FBTCxFQVRILENBREYsQ0FERjtBQWVELE9BaEJELE1BZ0JPO0FBQ0wsNEJBQ0U7QUFDRSxVQUFBLEtBQUssRUFBRSxLQUFLekQsS0FBTCxDQUFXbkQsV0FEcEI7QUFFRSxVQUFBLFFBQVEsRUFBRSxLQUFLaUUsUUFBTCxDQUFjeUMsSUFBZCxDQUFtQixJQUFuQixDQUZaO0FBR0UsVUFBQSxRQUFRLEVBQUUsS0FBS2pCLFFBQUwsQ0FBY2lCLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFVBQUEsUUFBUSxFQUFFLEtBQUtmLFFBQUwsQ0FBY2UsSUFBZCxDQUFtQixJQUFuQixDQUpaO0FBS0UsVUFBQSx1QkFBdUIsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkQsSUFBN0IsQ0FBa0MsSUFBbEM7QUFMM0IsV0FNTTVHLEtBTk4sRUFPTWlHLE1BUE4sR0FTRyxLQUFLYSxjQUFMLEVBVEgsQ0FERjtBQWFEO0FBQ0Y7Ozs7RUFwYW9DekgsYTs7Z0JBQWxCVSxTLFlBQ0hGLE07O2dCQURHRSxTLGNBRURELFE7O1NBRkNDLFMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBTZWxlY3QsIFNlbGVjdFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgUGlueWluTWF0Y2ggZnJvbSBcInBpbnlpbi1tYXRjaFwiO1xyXG5pbXBvcnQgeyBnZXRGbGF0dGVuRGF0YSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5jb25zdCB7IE9wdGlvbiwgT3B0R3JvdXAgfSA9IFNlbGVjdDtcclxuXHJcbmludGVyZmFjZSBJU2VsZWN0UHJvcHMgZXh0ZW5kcyBTZWxlY3RQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZGF0YT86IEFycmF5PE9iamVjdD47IC8v6buY6K6k5pWw5o2uXHJcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcclxuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRTdHlsZT86IGJvb2xlYW47XHJcbiAgc2hvd0dyb3VwPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbnu4RcclxuICBhZGREYXRhPzogQXJyYXk8T2JqZWN0PjsgLy/phY3lkIhzdG9yZeS9v+eUqO+8jOS7juWinuWKoOmineWklueahOaVsOaNrlxyXG4gIGRlbGV0ZURhdGE/OiBBcnJheTxTdHJpbmc+OyAvL+mFjeWQiHN0b3Jl5L2/55So77yM5Yig6Zmk5LuO5pWw5o2u5bqT5Lit6I635Y+W5Yiw55qE5oyH5a6a5pWw5o2uXHJcbiAgdmFsdWVCcmVhaz86IHN0cmluZzsgLy/lpJrkuKp2YWx1ZeS9v+eUqOeahOWIhumalOesplxyXG4gIHZhbHVlVHlwZT86IFwic3RyaW5nXCIgfCBcIm51bWJlclwiO1xyXG4gIFtwcm9OYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgb25DaGFuZ2U/OiBhbnk7XHJcbiAgb25TZWxlY3Q/OiBhbnk7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTlNDU2VsZWN0IGV4dGVuZHMgUHVyZUNvbXBvbmVudDxJU2VsZWN0UHJvcHM+IHtcclxuICBzdGF0aWMgT3B0aW9uID0gT3B0aW9uO1xyXG4gIHN0YXRpYyBPcHRHcm91cCA9IE9wdEdyb3VwO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZGF0YVNvdXJjZTogW10sXHJcbiAgICBzZWxlY3RWYWx1ZTogbnVsbCxcclxuICAgIGFsbERhdGFTb3VyY2U6IFtdLFxyXG4gICAgY2hpbGRyZW46IG51bGwsXHJcbiAgICBhbGxDaGlsZHJlbjogbnVsbCxcclxuICB9O1xyXG4gIHN0b3JlID0ge30gYXMgU3RvcmVQcm9wcztcclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkYXRhLFxyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgYWRkRGF0YSA9IFtdLFxyXG4gICAgICBkZWxldGVEYXRhID0gW10sXHJcbiAgICB9ID0gcHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHVybCxcclxuICAgICAgbGlzdGVuZXJzOiBsaXN0ZW5lcnNQb3BzID0ge30sXHJcbiAgICAgIHZpZXduYW1lLFxyXG4gICAgICBjYWNoZWQsXHJcbiAgICAgIGNhY2hlS2V5LFxyXG4gICAgICB2aWV3dHlwZSA9IFwic3lzXCIsXHJcbiAgICAgIC4uLnN0b3Jlc1xyXG4gICAgfSA9IHN0b3JlO1xyXG4gICAgY29uc3QgdmFsdWVGaWVsZCA9IHZpZXduYW1lID8gXCJkaWN0S2V5XCIgOiBcInZhbHVlXCI7XHJcbiAgICBsZXQgeyB2aWV3VXJsLCB2aWV3Qml6VXJsIH0gPSBjb25maWcoKTtcclxuICAgIGxldCByZXF1ZXN0Vmlld1VybCA9IHZpZXd0eXBlID09IFwic3lzXCIgPyB2aWV3VXJsIDogdmlld0JpelVybDtcclxuICAgIGNvbnN0IGdldEFsbERhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YSkpIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICAgIH1cclxuICAgICAgbGV0IG5ld0RhdGEgPSBbLi4uZGF0YV07XHJcbiAgICAgIGlmIChhZGREYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdEYXRhID0gWy4uLmFkZERhdGEsIC4uLm5ld0RhdGFdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChkZWxldGVEYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBsZXQgc3BsaWNlRGF0YSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBuZXdEYXRhLm1hcCgoaXRlbSwgaSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIHZhbHVlRmllbGRzLm1hcCgodiwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChkZWxldGVEYXRhLmluZGV4T2YodmFsdWUpID09IC0xKSB7XHJcbiAgICAgICAgICAgIHNwbGljZURhdGEucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gc3BsaWNlRGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICghY2hpbGRyZW4pIHtcclxuICAgICAgaWYgKCEoZGF0YSB8fCB2aWV3bmFtZSB8fCB1cmwgfHwgb3B0aW9ucykpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzjgIF2aWV3bmFtZeOAgWRhdGHjgIFvcHRpb25z5LiN6IO96YO95Li656m677yBXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICAgIGxldCBzdG9yZVByb3BzID0ge1xyXG4gICAgICAgIG1vZGVsOiBcIm1vZGVsXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUG9wcy5vbkJlZm9yZUxvYWQsIF90aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmxvYWQsIF90aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiBmdW5jdGlvbiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdEYXRhID0gZ2V0QWxsRGF0YShkYXRhKTtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBkYXRhU291cmNlOiBuZXdEYXRhLCBhbGxEYXRhU291cmNlOiBuZXdEYXRhIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQb3BzLmRhdGFDaGFuZ2VkLCBfdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi5zdG9yZXMsXHJcbiAgICAgIH07XHJcbiAgICAgIGlmICgodmlld25hbWUgfHwgdXJsKSAmJiBkYXRhID09IG51bGwgJiYgb3B0aW9ucyA9PSBudWxsKSB7XHJcbiAgICAgICAgbGV0IGlzQ2FjaGVkID0gY2FjaGVkO1xyXG4gICAgICAgIGxldCBpc0NhY2hlS2V5ID0gY2FjaGVLZXk7XHJcbiAgICAgICAgaWYgKHZpZXduYW1lKSB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlZCAhPT0gXCJib29sZWFuXCIpIHtcclxuICAgICAgICAgICAgaXNDYWNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpc0NhY2hlS2V5ID0gaXNDYWNoZUtleSA/IGlzQ2FjaGVLZXkgOiB2aWV3bmFtZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN0b3JlUHJvcHMgPSB7XHJcbiAgICAgICAgICAuLi57XHJcbiAgICAgICAgICAgIGF1dG9Mb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6IHVybCB8fCByZXF1ZXN0Vmlld1VybCArIHZpZXduYW1lLCAvL+ivu+Wtl+WFuO+8jHVybOWbuuWumu+8jHZpZXduYW1lXHJcbiAgICAgICAgICAgIGNhY2hlZDogaXNDYWNoZWQsXHJcbiAgICAgICAgICAgIGNhY2hlS2V5OiBpc0NhY2hlS2V5LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnN0b3JlUHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFN0b3JlKHN0b3JlUHJvcHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNoaWxkcmVuOiBhbGxDaGlsZHJlbiB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGFsbERhdGFTb3VyY2UsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmFsbERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdFZhbHVlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWx1ZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0RGF0YSh2YWx1ZSkge1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHsgc3RvcmUgPSB7fSwgdmFsdWVGaWVsZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgdmlld25hbWUgfSA9IHN0b3JlO1xyXG4gICAgdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQgPyB2YWx1ZUZpZWxkIDogdmlld25hbWUgPyBcImRpY3RLZXlcIiA6IFwidmFsdWVcIjtcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBnZXRGbGF0dGVuRGF0YShkYXRhU291cmNlLCB7IGtleUZpZWxkOiB2YWx1ZUZpZWxkIH0pO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIGxldCByZXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgIHZhbHVlLm1hcCgodmFsKSA9PiB7XHJcbiAgICAgICAgcmVzLnB1c2gobmV3RGF0YVt2YWxdIHx8IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3RGF0YVt2YWx1ZV0gfHwge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWNoaWxkcmVuICYmIChkYXRhIHx8IG9wdGlvbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRhdGFTb3VyY2U6IGRhdGEgPyBkYXRhIDogb3B0aW9ucyxcclxuICAgICAgICBhbGxEYXRhU291cmNlOiBkYXRhID8gZGF0YSA6IG9wdGlvbnMsXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXHJcbiAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKG5ld1Byb3BzLCBuZXdTdGF0ZSwgU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgb3B0aW9ucywgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFsbERhdGFTb3VyY2UsIGFsbENoaWxkcmVuIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKCFjaGlsZHJlbiAmJiAoZGF0YSB8fCBvcHRpb25zKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gZGF0YSA/IGRhdGEgOiBvcHRpb25zO1xyXG4gICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYWxsRGF0YVNvdXJjZSkgIT09IEpTT04uc3RyaW5naWZ5KG5ld0RhdGEpKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkYXRhU291cmNlOiBuZXdEYXRhLFxyXG4gICAgICAgICAgYWxsRGF0YVNvdXJjZTogbmV3RGF0YSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjb25zdCBzdGF0ZUNoaWxkcmVuUHJvcHM6IGFueSA9IFtdO1xyXG4gICAgICBhbGxDaGlsZHJlbi5tYXAoKHM6IGFueSkgPT4ge1xyXG4gICAgICAgIHN0YXRlQ2hpbGRyZW5Qcm9wcy5wdXNoKHMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgY2hpbGRyZW5Qcm9wczogYW55ID0gW107XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoYzogYW55KSA9PiB7XHJcbiAgICAgICAgY2hpbGRyZW5Qcm9wcy5wdXNoKGMucHJvcHMpO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHN0YXRlQ2hpbGRyZW5Qcm9wcykgIT09IEpTT04uc3RyaW5naWZ5KGNoaWxkcmVuUHJvcHMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgY2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgICAgYWxsQ2hpbGRyZW46IGNoaWxkcmVuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSA9IChzdGF0ZSwgY2FsbGJhY2spID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25TZWFyY2godmFsdWUpIHtcclxuICAgIGNvbnN0IHsgYWxsRGF0YVNvdXJjZSwgYWxsQ2hpbGRyZW4gfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IGZpbHRlck9wdGlvbiA9IHRydWUsIG9uU2VhcmNoLCBjaGlsZHJlbiwgc3RvcmUgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGxhYmVsRmllbGQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHZpZXduYW1lIH0gPSBzdG9yZTtcclxuICAgIGxhYmVsRmllbGQgPSBsYWJlbEZpZWxkID8gbGFiZWxGaWVsZCA6IHZpZXduYW1lID8gXCJkaWN0VmFsdWVcIiA6IFwibGFiZWxcIjtcclxuICAgIGlmIChmaWx0ZXJPcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICBpZiAoIWNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICBhbGxEYXRhU291cmNlLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2U6IHJlc3VsdCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZTogYWxsRGF0YVNvdXJjZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFsbENoaWxkcmVuKSkge1xyXG4gICAgICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGxhYmVsID0gY2hpbGQ/LnByb3BzPy5jaGlsZHJlbjtcclxuICAgICAgICAgICAgICBsZXQgZmxhZyA9IFBpbnlpbk1hdGNoLm1hdGNoKGxhYmVsLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiByZXN1bHQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25TZWFyY2ggJiYgb25TZWFyY2godmFsdWUpO1xyXG4gIH1cclxuICByZW5kZXJPcHRpb24ob3B0aW9uRGF0YSkge1xyXG4gICAgbGV0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgdmFsdWVUeXBlID0gXCJzdHJpbmdcIixcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyB2aWV3bmFtZSB9ID0gc3RvcmU7XHJcbiAgICB2YWx1ZUZpZWxkID0gdmFsdWVGaWVsZCA/IHZhbHVlRmllbGQgOiB2aWV3bmFtZSA/IFwiZGljdEtleVwiIDogXCJ2YWx1ZVwiO1xyXG4gICAgbGFiZWxGaWVsZCA9IGxhYmVsRmllbGQgPyBsYWJlbEZpZWxkIDogdmlld25hbWUgPyBcImRpY3RWYWx1ZVwiIDogXCJsYWJlbFwiO1xyXG4gICAgcmV0dXJuIG9wdGlvbkRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICBpZiAodmFsdWVGaWVsZC5zcGxpdChcIixcIikubGVuZ3RoID09IDEpIHtcclxuICAgICAgICB2YWx1ZSA9XHJcbiAgICAgICAgICB2YWx1ZVR5cGUgPT09IFwibnVtYmVyXCIgPyBOdW1iZXIoaXRlbVt2YWx1ZUZpZWxkXSkgOiBpdGVtW3ZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlRmllbGRzOiBhbnkgPSB2YWx1ZUZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICB2YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgdmFsdWVGaWVsZHMubWFwKCh2LCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgdmFsdWUgPSBpbmRleCA9PSAwID8gdmFsdWUgKyBpdGVtW3ZdIDogdmFsdWUgKyBcIixcIiArIGl0ZW1bdl07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGtleSA9IGl0ZW0uaWQgPyAoaXRlbS5pZCAhPT0gXCJ1bmRlZmluZWRcIiA/IGl0ZW0uaWQgOiB2YWx1ZSkgOiB2YWx1ZTtcclxuICAgICAgbGV0IGxhYmVsID0gXCJcIjtcclxuICAgICAgaWYgKGxhYmVsRmllbGQuc3BsaXQoXCIsXCIpLmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgICAgbGFiZWwgPSBpdGVtW2xhYmVsRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGxhYmVsRmllbGRzOiBhbnkgPSBsYWJlbEZpZWxkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICBsYWJlbEZpZWxkcy5tYXAoKGwsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBsYWJlbCA9IGluZGV4ID09IDAgPyBsYWJlbCArIGl0ZW1bbF0gOiBsYWJlbCArIFwiLVwiICsgaXRlbVtsXTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxPcHRpb25cclxuICAgICAgICAgIGtleT17a2V5fVxyXG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxyXG4gICAgICAgICAgbGFiZWw9e2xhYmVsfVxyXG4gICAgICAgICAgZGlzYWJsZWQ9e2l0ZW0uZGlzYWJsZWQgPyB0cnVlIDogZmFsc2V9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge2xhYmVsfVxyXG4gICAgICAgIDwvT3B0aW9uPlxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlckNoaWxkcmVuKCkge1xyXG4gICAgY29uc3QgeyBzaG93R3JvdXAgPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBkYXRhU291cmNlLCBjaGlsZHJlbiB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChjaGlsZHJlbikge1xyXG4gICAgICByZXR1cm4gPD57Y2hpbGRyZW59PC8+O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IG9wdEdyb3VwRGF0YSA9IHt9LFxyXG4gICAgICAgIG9wdGlvbkRhdGEgPSBbXTtcclxuICAgICAgZGF0YVNvdXJjZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IGxhYmVsID0gaXRlbS5ncm91cE5hbWU7XHJcbiAgICAgICAgaWYgKGxhYmVsICYmIHNob3dHcm91cCkge1xyXG4gICAgICAgICAgaWYgKCFvcHRHcm91cERhdGFbbGFiZWxdKSBvcHRHcm91cERhdGFbbGFiZWxdID0gW107XHJcbiAgICAgICAgICBvcHRHcm91cERhdGFbbGFiZWxdLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9wdGlvbkRhdGEucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgb3B0aW9uID0gdGhpcy5yZW5kZXJPcHRpb24ob3B0aW9uRGF0YSk7XHJcbiAgICAgIGxldCBvcHRHcm91cCA9IE9iamVjdC5rZXlzKG9wdEdyb3VwRGF0YSkubWFwKChrZXkpID0+IHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPE9wdEdyb3VwIGtleT17a2V5fSBsYWJlbD17a2V5fT5cclxuICAgICAgICAgICAge3RoaXMucmVuZGVyT3B0aW9uKG9wdEdyb3VwRGF0YVtrZXldKX1cclxuICAgICAgICAgIDwvT3B0R3JvdXA+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPD5cclxuICAgICAgICAgIHtvcHRpb259XHJcbiAgICAgICAgICB7b3B0R3JvdXB9XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uQ2hhbmdlKHZhbHVlLCBvcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IG9uQ2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiB2YWx1ZSxcclxuICAgIH0pO1xyXG4gICAgaWYgKG9uQ2hhbmdlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldFNlbGVjdERhdGEodmFsdWUpO1xyXG4gICAgICBvbkNoYW5nZSh2YWx1ZSwgb3B0aW9ucywgZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uU2VsZWN0KHZhbHVlLCBvcHRpb25zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VsZWN0IH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGlmIChvblNlbGVjdCkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5nZXRTZWxlY3REYXRhKHZhbHVlKTtcclxuICAgICAgb25TZWxlY3QodmFsdWUsIG9wdGlvbnMsIGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbkRyb3Bkb3duVmlzaWJsZUNoYW5nZShvcGVuKSB7XHJcbiAgICBpZiAoIW9wZW4pIHtcclxuICAgICAgdGhpcy5yZXNldERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIG9uQ2hhbmdlLFxyXG4gICAgICBvblNlbGVjdCxcclxuICAgICAgb3B0aW9ucyxcclxuICAgICAgbGFiZWxGaWVsZCxcclxuICAgICAgdmFsdWVGaWVsZCxcclxuICAgICAgZGVmYXVsdFN0eWxlLFxyXG4gICAgICBzaG93R3JvdXAgPSB0cnVlLFxyXG4gICAgICBhZGREYXRhLFxyXG4gICAgICBkZWxldGVEYXRhLFxyXG4gICAgICB2YWx1ZVR5cGUsXHJcbiAgICAgIC4uLnBhcmFtc1xyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgcHJvcHMgPSB7XHJcbiAgICAgIGZpbHRlck9wdGlvbjogZmFsc2UsXHJcbiAgICAgIHNob3dTZWFyY2g6IHRydWUsXHJcbiAgICAgIG9wdGlvbkZpbHRlclByb3A6IFwibGFiZWxcIixcclxuICAgICAgcGxhY2Vob2xkZXI6IFwi6K+36YCJ5oupXCIsXHJcbiAgICAgIGFsbG93Q2xlYXI6IHRydWUsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGxldCB7IGFudGRTdHlsZSwgbW91bnRFbGVtZW50SWQgfSA9IGNvbmZpZygpO1xyXG4gICAgaWYgKG1vdW50RWxlbWVudElkKSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGdldFBvcHVwQ29udGFpbmVyOiAoKSA9PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtb3VudEVsZW1lbnRJZCksXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoKGRlZmF1bHRTdHlsZSB8fCBhbnRkU3R5bGUpICYmIGRlZmF1bHRTdHlsZSA9PT0gdHJ1ZSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoc3R5bGVzW1wibnNjX3NlbGVjdFwiXSwgdGhpcy5wcm9wcy5jbGFzc05hbWUpfT5cclxuICAgICAgICAgIDxTZWxlY3RcclxuICAgICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0VmFsdWV9XHJcbiAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLm9uU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3RoaXMucmVuZGVyQ2hpbGRyZW4oKX1cclxuICAgICAgICAgIDwvU2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8U2VsZWN0XHJcbiAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3RWYWx1ZX1cclxuICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBvbkNoYW5nZT17dGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgb25TZWxlY3Q9e3RoaXMub25TZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgIG9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlPXt0aGlzLm9uRHJvcGRvd25WaXNpYmxlQ2hhbmdlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnJlbmRlckNoaWxkcmVuKCl9XHJcbiAgICAgICAgPC9TZWxlY3Q+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -24,6 +24,9 @@ export default class NscUploadDragger extends React.PureComponent<IUploadProps,
|
|
|
24
24
|
fileListStore: any[];
|
|
25
25
|
fileNames: any[];
|
|
26
26
|
};
|
|
27
|
+
uploadIngSize: number;
|
|
28
|
+
uploadSize: number;
|
|
29
|
+
uploadIngList: any[];
|
|
27
30
|
componentDidMount(): void;
|
|
28
31
|
convertFileList(list?: Array<Object>): void;
|
|
29
32
|
componentDidUpdate(preProps: any, preState: any): void;
|
|
@@ -32,7 +35,7 @@ export default class NscUploadDragger extends React.PureComponent<IUploadProps,
|
|
|
32
35
|
beforeUpload(file: any, ofileList: any): Promise<boolean>;
|
|
33
36
|
checkFileType(file: any): boolean;
|
|
34
37
|
onProcess({ percent, file }: any): void;
|
|
35
|
-
onComplete(
|
|
38
|
+
onComplete(files: any): Promise<void>;
|
|
36
39
|
customRequest: (options: any) => Promise<void>;
|
|
37
40
|
onDelete(file: any): void;
|
|
38
41
|
render(): React.ReactNode;
|
|
@@ -84,9 +84,15 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
84
84
|
fileNames: []
|
|
85
85
|
});
|
|
86
86
|
|
|
87
|
+
_defineProperty(_assertThisInitialized(_this), "uploadIngSize", 0);
|
|
88
|
+
|
|
89
|
+
_defineProperty(_assertThisInitialized(_this), "uploadSize", 0);
|
|
90
|
+
|
|
91
|
+
_defineProperty(_assertThisInitialized(_this), "uploadIngList", []);
|
|
92
|
+
|
|
87
93
|
_defineProperty(_assertThisInitialized(_this), "customRequest", /*#__PURE__*/function () {
|
|
88
94
|
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(options) {
|
|
89
|
-
var file, _this$props, onComplete, onProcess, sliceSize, onProgress, res, fileId;
|
|
95
|
+
var file, _this$props, onComplete, onProcess, sliceSize, onProgress, res, fileId, ImgRes;
|
|
90
96
|
|
|
91
97
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
92
98
|
while (1) {
|
|
@@ -117,11 +123,13 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
117
123
|
file: file,
|
|
118
124
|
onProgress: onProgress,
|
|
119
125
|
partSize: sliceSize
|
|
120
|
-
});
|
|
126
|
+
}, _this.props.requestConfig);
|
|
121
127
|
|
|
122
128
|
case 6:
|
|
123
129
|
res = _context.sent;
|
|
130
|
+
_this.uploadIngSize = _this.uploadIngSize + 1;
|
|
124
131
|
fileId = null;
|
|
132
|
+
ImgRes = null;
|
|
125
133
|
|
|
126
134
|
if (res.code == 200) {
|
|
127
135
|
fileId = res.data.attachId;
|
|
@@ -130,43 +138,47 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
130
138
|
options.onError();
|
|
131
139
|
}
|
|
132
140
|
|
|
133
|
-
_this.
|
|
141
|
+
_this.uploadIngList.push({
|
|
134
142
|
file: options.file,
|
|
135
143
|
fileId: fileId,
|
|
136
|
-
status: res.code == 200 ? "success" : "error"
|
|
144
|
+
status: res.code == 200 ? "success" : "error",
|
|
145
|
+
url: ImgRes ? ImgRes.data : null
|
|
137
146
|
});
|
|
138
147
|
|
|
148
|
+
if (_this.uploadSize == _this.uploadIngSize) {
|
|
149
|
+
_this.onComplete(_this.uploadIngList);
|
|
150
|
+
}
|
|
151
|
+
|
|
139
152
|
onComplete && onComplete({
|
|
140
153
|
file: options.file,
|
|
141
154
|
fileId: fileId,
|
|
142
155
|
status: res.code == 200 ? "success" : "error"
|
|
143
156
|
});
|
|
144
|
-
_context.next =
|
|
157
|
+
_context.next = 20;
|
|
145
158
|
break;
|
|
146
159
|
|
|
147
|
-
case
|
|
148
|
-
_context.prev =
|
|
160
|
+
case 16:
|
|
161
|
+
_context.prev = 16;
|
|
149
162
|
_context.t0 = _context["catch"](3);
|
|
150
163
|
|
|
151
|
-
_this.
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
164
|
+
if (_this.uploadSize == _this.uploadIngSize) {
|
|
165
|
+
_this.onComplete(_this.uploadIngList);
|
|
166
|
+
|
|
167
|
+
options.onError();
|
|
168
|
+
}
|
|
156
169
|
|
|
157
170
|
onComplete && onComplete({
|
|
158
171
|
file: options.file,
|
|
159
172
|
fileId: "",
|
|
160
173
|
status: "error"
|
|
161
174
|
});
|
|
162
|
-
options.onError();
|
|
163
175
|
|
|
164
|
-
case
|
|
176
|
+
case 20:
|
|
165
177
|
case "end":
|
|
166
178
|
return _context.stop();
|
|
167
179
|
}
|
|
168
180
|
}
|
|
169
|
-
}, _callee, null, [[3,
|
|
181
|
+
}, _callee, null, [[3, 16]]);
|
|
170
182
|
}));
|
|
171
183
|
|
|
172
184
|
return function (_x) {
|
|
@@ -353,8 +365,9 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
353
365
|
this.setState({
|
|
354
366
|
fileList: newList
|
|
355
367
|
});
|
|
368
|
+
this.uploadSize = ofileList.length;
|
|
356
369
|
|
|
357
|
-
case
|
|
370
|
+
case 30:
|
|
358
371
|
case "end":
|
|
359
372
|
return _context3.stop();
|
|
360
373
|
}
|
|
@@ -405,39 +418,92 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
405
418
|
}
|
|
406
419
|
}, {
|
|
407
420
|
key: "onComplete",
|
|
408
|
-
value: function
|
|
409
|
-
var
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
421
|
+
value: function () {
|
|
422
|
+
var _onComplete = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6(files) {
|
|
423
|
+
var fileList, _this$props3, newVersion, _this$props3$requestC, requestConfig, newList, onListChange;
|
|
424
|
+
|
|
425
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
426
|
+
while (1) {
|
|
427
|
+
switch (_context6.prev = _context6.next) {
|
|
428
|
+
case 0:
|
|
429
|
+
this.uploadIngSize = 0;
|
|
430
|
+
this.uploadSize = 0;
|
|
431
|
+
this.uploadIngList = [];
|
|
432
|
+
fileList = this.state.fileList;
|
|
433
|
+
_this$props3 = this.props, newVersion = _this$props3.newVersion, _this$props3$requestC = _this$props3.requestConfig, requestConfig = _this$props3$requestC === void 0 ? {} : _this$props3$requestC;
|
|
434
|
+
newList = [];
|
|
435
|
+
fileList.map( /*#__PURE__*/function () {
|
|
436
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5(item, index) {
|
|
437
|
+
var newFile;
|
|
438
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
439
|
+
while (1) {
|
|
440
|
+
switch (_context5.prev = _context5.next) {
|
|
441
|
+
case 0:
|
|
442
|
+
newFile = _objectSpread({}, item);
|
|
443
|
+
files.map( /*#__PURE__*/function () {
|
|
444
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(file) {
|
|
445
|
+
var url;
|
|
446
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
447
|
+
while (1) {
|
|
448
|
+
switch (_context4.prev = _context4.next) {
|
|
449
|
+
case 0:
|
|
450
|
+
if (file.file.uid == item.uid) {
|
|
451
|
+
newFile.status = file.status == "success" ? "done" : file.status;
|
|
452
|
+
newFile.fileId = file.fileId;
|
|
453
|
+
newFile.url = file.url;
|
|
454
|
+
|
|
455
|
+
if (!newVersion) {
|
|
456
|
+
url = "/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
|
|
457
|
+
newFile.url = requestConfig.prefix ? requestConfig.prefix + url : "/api" + url;
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
case 1:
|
|
462
|
+
case "end":
|
|
463
|
+
return _context4.stop();
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}, _callee4);
|
|
467
|
+
}));
|
|
468
|
+
|
|
469
|
+
return function (_x8) {
|
|
470
|
+
return _ref5.apply(this, arguments);
|
|
471
|
+
};
|
|
472
|
+
}());
|
|
473
|
+
newList.push(newFile);
|
|
419
474
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
475
|
+
case 3:
|
|
476
|
+
case "end":
|
|
477
|
+
return _context5.stop();
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}, _callee5);
|
|
481
|
+
}));
|
|
423
482
|
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
483
|
+
return function (_x6, _x7) {
|
|
484
|
+
return _ref4.apply(this, arguments);
|
|
485
|
+
};
|
|
486
|
+
}());
|
|
487
|
+
this.setState({
|
|
488
|
+
fileList: [].concat(newList)
|
|
489
|
+
});
|
|
490
|
+
onListChange = this.props.onListChange;
|
|
491
|
+
onListChange && onListChange(newList);
|
|
492
|
+
|
|
493
|
+
case 10:
|
|
494
|
+
case "end":
|
|
495
|
+
return _context6.stop();
|
|
496
|
+
}
|
|
430
497
|
}
|
|
431
|
-
}
|
|
498
|
+
}, _callee6, this);
|
|
499
|
+
}));
|
|
432
500
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
onListChange && onListChange(newList);
|
|
440
|
-
}
|
|
501
|
+
function onComplete(_x5) {
|
|
502
|
+
return _onComplete.apply(this, arguments);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
return onComplete;
|
|
506
|
+
}()
|
|
441
507
|
}, {
|
|
442
508
|
key: "onDelete",
|
|
443
509
|
value: function onDelete(file) {
|
|
@@ -580,4 +646,4 @@ var NscUploadDragger = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
580
646
|
}(React.PureComponent);
|
|
581
647
|
|
|
582
648
|
export { NscUploadDragger as default };
|
|
583
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL0RyYWdnZXIudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsIm1lc3NhZ2UiLCJvbWl0IiwiZ2V0TGVzcyIsInN0eWxlcyIsImNscyIsIkZpbGVJY29uIiwiRGVsZXRlT3V0bGluZWQiLCJEb3dubG9hZE91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJ1cGxvYWQiLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsIkRyYWdnZXIiLCJOc2NVcGxvYWREcmFnZ2VyIiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInBhcnRTaXplIiwicmVzIiwiZmlsZUlkIiwiY29kZSIsImRhdGEiLCJhdHRhY2hJZCIsIm9uU3VjY2VzcyIsIm9uRXJyb3IiLCJzdGF0dXMiLCJjb252ZXJ0RmlsZUxpc3QiLCJsaXN0IiwibmV3RmlsZUxpc3QiLCJvbGRMaXN0IiwibWFwIiwiaXRlbSIsInRlbXAiLCJuYW1lIiwiZmlsZU5hbWUiLCJ0eXBlIiwic2l6ZSIsInB1c2giLCJzZXRTdGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwiYmVmb3JlVXBsb2FkIiwibmV3TGlzdCIsInVpZCIsImxlbmd0aCIsImkiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwibmV3RmlsZSIsIm5ld1ZlcnNpb24iLCJyZXF1ZXN0Q29uZmlnIiwicmVxdWVzdElkIiwiZmlsZUluZGV4IiwiaW5kZXgiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwicHJlZml4IiwiZmlsZUNhcmQiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1ByZXZpZXdJY29uIiwic2hvd1JlbW92ZUljb24iLCJkb3dubG9hZEljb24iLCJyZW1vdmVJY29uIiwicHJldmlld0ljb24iLCJuZXdwcm9wcyIsImRlZmF1bHRQcm9wcyIsImN1c3RvbVJlcXVlc3QiLCJiaW5kIiwibXVsdGlwbGUiLCJpdGVtUmVuZGVyIiwib3JpZ2luTm9kZSIsImN1cnJGaWxlTGlzdCIsIm9uUHJldmlldyIsImN1cnNvciIsIm9uRG93bmxvYWQiLCJvblJlbW92ZSIsIm9uRGVsZXRlIiwid2lkdGgiLCJQdXJlQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixVQUFqQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsWUFBcEI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQU1BLElBQVFDLE1BQVIsR0FBOENWLElBQTlDLENBQVFVLE1BQVI7QUFBQSxJQUFnQkMsUUFBaEIsR0FBOENYLElBQTlDLENBQWdCVyxRQUFoQjtBQUFBLElBQTBCQyxlQUExQixHQUE4Q1osSUFBOUMsQ0FBMEJZLGVBQTFCO0FBQ0EsSUFBUUMsT0FBUixXQUFRQSxPQUFS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b0JEOzs7O0VBL1kyQ2hCLEtBQUssQ0FBQzRHLGE7O1NBQS9CN0YsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCB9ID0gZmlsZTtcclxuY29uc3QgeyBEcmFnZ2VyIH0gPSBVcGxvYWQ7XHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkRHJhZ2dlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8XHJcbiAgSVVwbG9hZFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb252ZXJ0RmlsZUxpc3QobGlzdD86IEFycmF5PE9iamVjdD4pIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgbGV0IG9sZExpc3QgPSBsaXN0ID8gbGlzdCA6IGZpbGVMaXN0O1xyXG4gICAgb2xkTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5pdGVtLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgIH07XHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3RmlsZUxpc3QsXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IGZpbGVMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmVQcm9wcywgcHJlU3RhdGUpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KSAhPT1cclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICB9XHJcbiAgc2V0RmlsZUxpc3QoZmlsZUxpc3Q6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgYWxsb3dGaWxlU3VmZml4LFxyXG4gICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgbWF4Q291bnQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0LFxyXG4gICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICB9XHJcbiAgb25Db21wbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBuZXdWZXJzaW9uLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGxldCByZXF1ZXN0SWQ7XHJcbiAgICBsZXQgZmlsZUluZGV4O1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgIGlmIChuZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICByZXF1ZXN0SWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIGZpbGVJbmRleCA9IGluZGV4O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgIDogXCIvYXBpXCIgKyB1cmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKHtcclxuICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIG9uUHJvZ3Jlc3M6IG9uUHJvZ3Jlc3MsXHJcbiAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGxldCBmaWxlSWQgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoe1xyXG4gICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICB0aGlzLm9uQ29tcGxldGUoe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IFwiXCIsXHJcbiAgICAgICAgc3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5maWxlSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWcgfHwge31cclxuICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxEcmFnZ2VyXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgICAvLyBvbkNoYW5nZT17KHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pID0+IHtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVcIiwgZmlsZSk7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKFwib25DaGFuZ2VmaWxlTGlzdFwiLCBmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIGNvbnN0IHsgb25DaGFuZ2UsIG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIC8vICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAvLyAgICAgZmlsZUxpc3Q6IGZpbGVMaXN0LFxyXG4gICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgIC8vICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICAvLyAgIG9uQ2hhbmdlICYmIG9uQ2hhbmdlKHsgZmlsZSwgZmlsZUxpc3QsIGV2ZW50IH0pO1xyXG4gICAgICAgICAgLy8gfX1cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
649
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL0RyYWdnZXIudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsIm1lc3NhZ2UiLCJvbWl0IiwiZ2V0TGVzcyIsInN0eWxlcyIsImNscyIsIkZpbGVJY29uIiwiRGVsZXRlT3V0bGluZWQiLCJEb3dubG9hZE91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJ1cGxvYWQiLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsIkRyYWdnZXIiLCJOc2NVcGxvYWREcmFnZ2VyIiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInJlcyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwic2V0U3RhdGUiLCJwcmVQcm9wcyIsInByZVN0YXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXRlIiwib2ZpbGVMaXN0IiwibWF4U2l6ZSIsImFsbG93RmlsZVN1ZmZpeCIsImNoZWNrU2FtZUZpbGUiLCJtYXhDb3VudCIsInNob3dVcGxvYWRMaXN0IiwicHJvcHNMaXN0Iiwib25MaXN0Q2hhbmdlIiwiY2hlY2tGaWxlVHlwZSIsImVycm9yIiwiY2hlY2tMaXN0IiwiaW5kZXhPZiIsImJlZm9yZVVwbG9hZCIsIm5ld0xpc3QiLCJ1aWQiLCJsZW5ndGgiLCJpIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIm5ld0ZpbGUiLCJmaWxlcyIsIm5ld1ZlcnNpb24iLCJpbmRleCIsIndpbmRvdyIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJwcmVmaXgiLCJmaWxlQ2FyZCIsInNob3dEb3dubG9hZEljb24iLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImRvd25sb2FkSWNvbiIsInJlbW92ZUljb24iLCJwcmV2aWV3SWNvbiIsIm5ld3Byb3BzIiwiZGVmYXVsdFByb3BzIiwiY3VzdG9tUmVxdWVzdCIsImJpbmQiLCJtdWx0aXBsZSIsIml0ZW1SZW5kZXIiLCJvcmlnaW5Ob2RlIiwiY3VyckZpbGVMaXN0Iiwib25QcmV2aWV3IiwiY3Vyc29yIiwib25Eb3dubG9hZCIsIm9uUmVtb3ZlIiwib25EZWxldGUiLCJ3aWR0aCIsIlB1cmVDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFVBQWpCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixZQUFwQjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsU0FBakI7QUFDQSxTQUFTQyxPQUFULFFBQXdCLGFBQXhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxRQUFQLE1BQXFCLG9CQUFyQjtBQUNBLFNBQ0VDLGNBREYsRUFFRUMsZ0JBRkYsRUFHRUMsV0FIRixRQUlPLG1CQUpQO0FBTUEsSUFBUUMsTUFBUixHQUE4Q1YsSUFBOUMsQ0FBUVUsTUFBUjtBQUFBLElBQWdCQyxRQUFoQixHQUE4Q1gsSUFBOUMsQ0FBZ0JXLFFBQWhCO0FBQUEsSUFBMEJDLGVBQTFCLEdBQThDWixJQUE5QyxD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Q0x1RSxRQUFBQSxZQUFZLG1DQUNQQSxZQURPO0FBRVZTLFVBQUFBLFVBQVUsRUFBRSxvQkFBQzFHLElBQUQsRUFBZTtBQUN6QlcsWUFBQUEsUUFBUSxDQUFDWCxJQUFJLENBQUMrQixNQUFOLEVBQWMsSUFBZCxFQUFvQkgsYUFBcEIsQ0FBUjtBQUNELFdBSlM7QUFLVitFLFVBQUFBLFFBQVEsRUFBRSxrQkFBQzNHLElBQUQsRUFBVTtBQUNsQixZQUFBLE1BQUksQ0FBQzRHLFFBQUwsQ0FBYzVHLElBQWQ7QUFDRCxXQVBTO0FBUVZ3RyxVQUFBQSxTQUFTLEVBQUUsbUJBQUN4RyxJQUFELEVBQWU7QUFDeEIsZ0JBQUlBLElBQUosYUFBSUEsSUFBSixlQUFJQSxJQUFJLENBQUUrQixNQUFWLEVBQWtCO0FBQ2hCbkIsY0FBQUEsZUFBZSxDQUFDWixJQUFJLENBQUMrQixNQUFOLEVBQWNILGFBQWQsQ0FBZjtBQUNEO0FBQ0YsV0FaUztBQWFWcUMsVUFBQUEsY0FBYyxvQkFBT0EsY0FBUDtBQWJKLFVBQVo7QUFlRDs7QUFDRCwwQkFDRSx1REFDRSxvQkFBQyxPQUFELGVBQ01nQyxZQUROLEVBRU1ELFFBRk47QUFHRSxRQUFBLFlBQVksRUFBRSxLQUFLeEIsWUFBTCxDQUFrQjJCLElBQWxCLENBQXVCLElBQXZCLENBSGhCO0FBSUUsUUFBQSxRQUFRLEVBQUUsS0FBS3hDLEtBQUwsQ0FBVzVDLFFBSnZCLENBS0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBZEYsU0FERixDQURGO0FBb0JEOzs7O0VBN1oyQ2hCLEtBQUssQ0FBQytHLGE7O1NBQS9CaEcsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgVXBsb2FkLCBVcGxvYWRQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgd2l0aFpoTG9jYWxlIGZyb20gXCIuLi9jb21tb24vd2l0aFpoTG9jYWxlXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBEZWxldGVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgUGRmVmlld2VyIGZyb20gXCIuLi9wZGZ2aXdlclwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCB9ID0gZmlsZTtcclxuY29uc3QgeyBEcmFnZ2VyIH0gPSBVcGxvYWQ7XHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkRHJhZ2dlciBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8XHJcbiAgSVVwbG9hZFByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHsgZmlsZUxpc3Q6IFtdLCB2aWV3SWQ6IFwiXCIsIGZpbGVMaXN0U3RvcmU6IFtdLCBmaWxlTmFtZXM6IFtdIH07XHJcbiAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgdXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnVwbG9hZEluZ0xpc3QucHVzaCh7XHJcbiAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlLFxyXG4gICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgdXJsOiBJbWdSZXMgPyBJbWdSZXMuZGF0YSA6IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTaXplID09IHRoaXMudXBsb2FkSW5nU2l6ZSkge1xyXG4gICAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzLnVwbG9hZEluZ0xpc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgICBvcHRpb25zLm9uRXJyb3IoKTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7IGZpbGU6IG9wdGlvbnMuZmlsZSwgZmlsZUlkOiBcIlwiLCBzdGF0dXM6IFwiZXJyb3JcIiB9KTtcclxuICAgIH1cclxuICB9O1xyXG4gIG9uRGVsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgLy/pgJrov4fmlofku7blkI3liKTmlq3vvIzkuIrkvKDmmK/mlofku7blkI3mmK/llK/kuIDnmoRcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGl0ZW0ubmFtZSAhPT0gZmlsZS5uYW1lIHx8XHJcbiAgICAgICAgaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8XHJcbiAgICAgICAgaXRlbS51aWQgIT09IGZpbGUudWlkXHJcbiAgICAgICkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgZmlsZUxpc3QsXHJcbiAgICAgIGZpbGVDYXJkLFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCA9IHtcclxuICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgIHNob3dQcmV2aWV3SWNvbjogZmFsc2UsXHJcbiAgICAgICAgc2hvd1JlbW92ZUljb246IHRydWUsXHJcbiAgICAgICAgZG93bmxvYWRJY29uOiBudWxsLFxyXG4gICAgICAgIHJlbW92ZUljb246IG51bGwsXHJcbiAgICAgICAgcHJldmlld0ljb246IG51bGwsXHJcbiAgICAgIH0gYXMgYW55LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld3Byb3BzID0gb21pdCh0aGlzLnByb3BzLCBbXHJcbiAgICAgIFwic2xpY2VTaXplXCIsXHJcbiAgICAgIFwibWF4U2l6ZVwiLFxyXG4gICAgICBcIm9uQ29tcGxldGVcIixcclxuICAgICAgXCJvblByb2Nlc3NcIixcclxuICAgICAgXCJhbGxvd0ZpbGVTdWZmaXhcIixcclxuICAgICAgXCJ1c2VEZWZhdWx0TGlzdFwiLFxyXG4gICAgICBcImZpbGVDYXJkXCIsXHJcbiAgICAgIFwib25MaXN0Q2hhbmdlXCIsXHJcbiAgICAgIFwibmV3VmVyc2lvblwiLFxyXG4gICAgICBcInJlcXVlc3RDb25maWdcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmZpbGVJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZyB8fCB7fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93RG93bmxvYWRJY29uICYmIGZpbGUuc3RhdHVzID09IFwiZG9uZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uRG93bmxvYWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uRG93bmxvYWQoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UmVtb3ZlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblJlbW92ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25SZW1vdmUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxldGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtmaWxlLnN0YXR1cyA9PSBcInVwbG9hZGluZ1wiICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwcm9jZXNzXCIpfT5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicGVyY2VudFwiKX1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogZmlsZS5wZXJjZW50ICsgXCIlXCIgfX1cclxuICAgICAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZGVmYXVsdFByb3BzLFxyXG4gICAgICAgIG9uRG93bmxvYWQ6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUmVtb3ZlOiAoZmlsZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkRlbGV0ZShmaWxlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIG9uUHJldmlldzogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZpbGU/LmZpbGVJZCkge1xyXG4gICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2hvd1VwbG9hZExpc3Q6IHsgLi4uc2hvd1VwbG9hZExpc3QgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgPERyYWdnZXJcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17dGhpcy5zdGF0ZS5maWxlTGlzdH1cclxuICAgICAgICAgIC8vIG9uQ2hhbmdlPXsoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSkgPT4ge1xyXG4gICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhcIm9uQ2hhbmdlZmlsZVwiLCBmaWxlKTtcclxuICAgICAgICAgIC8vICAgY29uc29sZS5sb2coXCJvbkNoYW5nZWZpbGVMaXN0XCIsIGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgY29uc3QgeyBvbkNoYW5nZSwgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgLy8gICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIC8vICAgICBmaWxlTGlzdDogZmlsZUxpc3QsXHJcbiAgICAgICAgICAvLyAgIH0pO1xyXG4gICAgICAgICAgLy8gICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKGZpbGVMaXN0KTtcclxuICAgICAgICAgIC8vICAgb25DaGFuZ2UgJiYgb25DaGFuZ2UoeyBmaWxlLCBmaWxlTGlzdCwgZXZlbnQgfSk7XHJcbiAgICAgICAgICAvLyB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nsc-react-component",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.11.1",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"compile": "webpack --config ./webpack.config.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"lodash": "^4.17.21",
|
|
44
44
|
"mini-css-extract-plugin": "^1.5.0",
|
|
45
45
|
"nsc-file": "^2.3.0",
|
|
46
|
-
"nsc-request": "^3.
|
|
46
|
+
"nsc-request": "^3.0.12",
|
|
47
47
|
"react": "^17.0.1",
|
|
48
48
|
"react-dom": "^17.0.1",
|
|
49
49
|
"rimraf": "^3.0.2",
|