nsc-react-component 2.8.32 → 2.8.34
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/upload/index.js
CHANGED
|
@@ -412,7 +412,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
412
412
|
if (file.file.uid == item.uid) {
|
|
413
413
|
newFile.status = file.status == "success" ? "done" : file.status;
|
|
414
414
|
newFile.fileId = file.fileId;
|
|
415
|
-
newFile.url = "/api/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId);
|
|
415
|
+
newFile.url = "/api/jquick-resource/oss/endpoint/download-files?attachId=".concat(file.fileId, "&_tpk=").concat(window.localStorage.getItem("token"));
|
|
416
416
|
}
|
|
417
417
|
|
|
418
418
|
newList.push(newFile);
|
|
@@ -552,4 +552,4 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
552
552
|
}(React.PureComponent);
|
|
553
553
|
|
|
554
554
|
export default withZhLocale(NscUpload);
|
|
555
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJOc2NVcGxvYWQiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwicHJvcHMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicGFydFNpemUiLCJyZXMiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwicHVzaCIsInNldFN0YXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJiZWZvcmVVcGxvYWQiLCJvbkxpc3RDaGFuZ2UiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIm5ld0ZpbGUiLCJ1cmwiLCJ1c2VEZWZhdWx0TGlzdCIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJvblByZXZpZXciLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJvbkRlbGV0ZSIsIndpZHRoIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBQ0EsT0FBT0MsWUFBUCxNQUF5Qix3QkFBekI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFNBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsUUFBUCxNQUFxQixvQkFBckI7QUFDQSxTQUNFQyxjQURGLEVBRUVDLGdCQUZGLEVBR0VDLFdBSEYsUUFJTyxtQkFKUDtBQU1BLElBQVFDLE1BQVIsR0FBOENYLElBQTlDLENBQVFXLE1BQVI7QUFBQSxJQUFnQkMsUUFBaEIsR0FBOENaLElBQTlDLENBQWdCWSxRQUFoQjtBQUFBLElBQTBCQyxlQUExQixHQUE4Q2IsSUFBOUMsQ0FBMEJhLGVBQTFCOztJQWFNQyxTOzs7Ozs7Ozs7Ozs7Ozs7OzREQUNJO0FBQUVDLE1BQUFBLFFBQVEsRUFBRSxFQUFaO0FBQWdCQyxNQUFBQSxNQUFNLEVBQUUsRUFBeEI7QUFBNEJDLE1BQUFBLGFBQWEsRUFBRSxFQUEzQztBQUErQ0MsTUFBQUEsU0FBUyxFQUFFO0FBQTFELEs7Ozt5RUE4SlEsaUJBQU9DLE9BQVA7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNSbkIsZ0JBQUFBLElBRFEsR0FDRG1CLE9BQU8sQ0FBQ25CLElBRFA7QUFBQSw4QkFFK0IsTUFBS29CLEtBRnBDLEVBRU5DLFVBRk0sZUFFTkEsVUFGTSxFQUVNQyxTQUZOLGVBRU1BLFNBRk4sRUFFaUJDLFNBRmpCLGVBRWlCQSxTQUZqQjs7QUFHUkMsZ0JBQUFBLFVBSFEsR0FHSyxTQUFiQSxVQUFhLENBQUNDLGFBQUQsRUFBd0I7QUFDekNOLGtCQUFBQSxPQUFPLENBQUNLLFVBQVIsQ0FBbUI7QUFBRUUsb0JBQUFBLE9BQU8sRUFBRUQ7QUFBWCxtQkFBbkIsRUFBK0N6QixJQUEvQzs7QUFDQSx3QkFBS3NCLFNBQUwsQ0FBZTtBQUFFSSxvQkFBQUEsT0FBTyxFQUFFRCxhQUFYO0FBQTBCekIsb0JBQUFBLElBQUksRUFBRUE7QUFBaEMsbUJBQWY7O0FBQ0FzQixrQkFBQUEsU0FBUyxJQUFJQSxTQUFTLENBQUM7QUFBRUksb0JBQUFBLE9BQU8sRUFBRUQsYUFBWDtBQUEwQnpCLG9CQUFBQSxJQUFJLEVBQUVBO0FBQWhDLG1CQUFELENBQXRCO0FBQ0QsaUJBUGE7O0FBQUE7QUFBQTtBQUFBLHVCQVNXVyxNQUFNLENBQUM7QUFDNUJYLGtCQUFBQSxJQUFJLEVBQUVBLElBRHNCO0FBRTVCd0Isa0JBQUFBLFVBQVUsRUFBRUEsVUFGZ0I7QUFHNUJHLGtCQUFBQSxRQUFRLEVBQUVKO0FBSGtCLGlCQUFELENBVGpCOztBQUFBO0FBU05LLGdCQUFBQSxHQVRNO0FBY1JDLGdCQUFBQSxNQWRRLEdBY0MsSUFkRDs7QUFlWixvQkFBSUQsR0FBRyxDQUFDRSxJQUFKLElBQVksR0FBaEIsRUFBcUI7QUFDbkJELGtCQUFBQSxNQUFNLEdBQUdELEdBQUcsQ0FBQ0csSUFBSixDQUFTQyxRQUFsQjtBQUNBYixrQkFBQUEsT0FBTyxDQUFDYyxTQUFSO0FBQ0QsaUJBSEQsTUFHTztBQUNMZCxrQkFBQUEsT0FBTyxDQUFDZSxPQUFSO0FBQ0Q7O0FBQ0Qsc0JBQUtiLFVBQUwsQ0FBZ0I7QUFDZHJCLGtCQUFBQSxJQUFJLEVBQUVtQixPQUFPLENBQUNuQixJQURBO0FBRWQ2QixrQkFBQUEsTUFBTSxFQUFFQSxNQUZNO0FBR2RNLGtCQUFBQSxNQUFNLEVBQUVQLEdBQUcsQ0FBQ0UsSUFBSixJQUFZLEdBQVosR0FBa0IsU0FBbEIsR0FBOEI7QUFIeEIsaUJBQWhCOztBQUtBVCxnQkFBQUEsVUFBVSxJQUNSQSxVQUFVLENBQUM7QUFDVHJCLGtCQUFBQSxJQUFJLEVBQUVtQixPQUFPLENBQUNuQixJQURMO0FBRVQ2QixrQkFBQUEsTUFBTSxFQUFFQSxNQUZDO0FBR1RNLGtCQUFBQSxNQUFNLEVBQUVQLEdBQUcsQ0FBQ0UsSUFBSixJQUFZLEdBQVosR0FBa0IsU0FBbEIsR0FBOEI7QUFIN0IsaUJBQUQsQ0FEWjtBQTFCWTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFpQ1osc0JBQUtULFVBQUwsQ0FBZ0I7QUFDZHJCLGtCQUFBQSxJQUFJLEVBQUVtQixPQUFPLENBQUNuQixJQURBO0FBRWQ2QixrQkFBQUEsTUFBTSxFQUFFLEVBRk07QUFHZE0sa0JBQUFBLE1BQU0sRUFBRTtBQUhNLGlCQUFoQjs7QUFLQWQsZ0JBQUFBLFVBQVUsSUFDUkEsVUFBVSxDQUFDO0FBQUVyQixrQkFBQUEsSUFBSSxFQUFFbUIsT0FBTyxDQUFDbkIsSUFBaEI7QUFBc0I2QixrQkFBQUEsTUFBTSxFQUFFLEVBQTlCO0FBQWtDTSxrQkFBQUEsTUFBTSxFQUFFO0FBQTFDLGlCQUFELENBRFo7QUFFQWhCLGdCQUFBQSxPQUFPLENBQUNlLE9BQVI7O0FBeENZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE87Ozs7Ozs7Ozs7OztXQTdKaEIsNkJBQW9CO0FBQ2xCLFVBQUksS0FBS2QsS0FBTCxDQUFXTCxRQUFmLEVBQXlCO0FBQ3ZCLGFBQUtxQixlQUFMO0FBQ0Q7QUFDRjs7O1dBQ0QseUJBQWdCQyxJQUFoQixFQUFzQztBQUNwQyxVQUFRdEIsUUFBUixHQUFxQixLQUFLSyxLQUExQixDQUFRTCxRQUFSO0FBQ0EsVUFBTXVCLFdBQVcsR0FBRyxFQUFwQjtBQUNBLFVBQUlDLE9BQU8sR0FBR0YsSUFBSSxHQUFHQSxJQUFILEdBQVV0QixRQUE1QjtBQUNBd0IsTUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFlO0FBQ3pCLFlBQUlDLElBQUksbUNBQ0hELElBREc7QUFFTkUsVUFBQUEsSUFBSSxFQUFFRixJQUFJLENBQUNFLElBQUwsSUFBYUYsSUFBSSxDQUFDRyxRQUZsQjtBQUdOQyxVQUFBQSxJQUFJLEVBQUVKLElBQUksQ0FBQ0ksSUFITDtBQUlOQyxVQUFBQSxJQUFJLEVBQUVMLElBQUksQ0FBQ0s7QUFKTCxVQUFSOztBQU1BUixRQUFBQSxXQUFXLENBQUNTLElBQVosQ0FBaUJMLElBQWpCO0FBQ0QsT0FSRDtBQVNBLFdBQUtNLFFBQUwsQ0FBYztBQUNaakMsUUFBQUEsUUFBUSxFQUFFdUIsV0FERTtBQUVackIsUUFBQUEsYUFBYSxFQUFFRjtBQUZILE9BQWQ7QUFJRDs7O1dBQ0QsNEJBQW1Ca0MsUUFBbkIsRUFBNkJDLFFBQTdCLEVBQXVDO0FBQ3JDLFVBQUksS0FBSzlCLEtBQUwsQ0FBV0wsUUFBZixFQUF5QjtBQUN2QixZQUNFb0MsSUFBSSxDQUFDQyxTQUFMLENBQWUsS0FBS2hDLEtBQUwsQ0FBV0wsUUFBMUIsTUFDQW9DLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtDLEtBQUwsQ0FBV3BDLGFBQTFCLENBRkYsRUFHRTtBQUNBLGVBQUttQixlQUFMO0FBQ0Q7QUFDRjtBQUNGOzs7V0FDRCx1QkFBYztBQUNaLGFBQU8sS0FBS2lCLEtBQUwsQ0FBV3RDLFFBQWxCO0FBQ0Q7OztXQUNELHFCQUFZQSxRQUFaLEVBQXFDO0FBQ25DLFdBQUtxQixlQUFMLENBQXFCckIsUUFBckI7QUFDRDs7OztrRkFDRCxrQkFBbUJmLElBQW5CLEVBQXlCc0QsU0FBekI7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQVFNLEtBQUtsQyxLQVJYLHNDQUVJbUMsT0FGSixFQUVJQSxPQUZKLHFDQUVjLEdBRmQseUJBR0lDLGVBSEosZ0JBR0lBLGVBSEosdUNBSUlDLGFBSkosRUFJSUEsYUFKSixzQ0FJb0IsSUFKcEIsMEJBS0lDLFFBTEosZ0JBS0lBLFFBTEosRUFNSUMsY0FOSixnQkFNSUEsY0FOSixFQU9jQyxTQVBkLGdCQU9JN0MsUUFQSjtBQUFBLDhCQVNvQyxLQUFLc0MsS0FUekMsRUFTUXRDLFFBVFIsZUFTUUEsUUFUUixFQVNrQkUsYUFUbEIsZUFTa0JBLGFBVGxCOztBQUFBLHNCQVlNdUMsZUFBZSxJQUFJLENBQUMsS0FBS0ssYUFBTCxDQUFtQjdELElBQW5CLENBWjFCO0FBQUE7QUFBQTtBQUFBOztBQWFJQyxnQkFBQUEsT0FBTyxDQUFDNkQsS0FBUixXQUNLOUQsSUFBSSxDQUFDMkMsSUFEViw2R0FDaUNhLGVBRGpDO0FBYkosa0RBZ0JXLEtBaEJYOztBQUFBO0FBQUEsc0JBa0JNRCxPQUFPLEtBQUssS0FsQmxCO0FBQUE7QUFBQTtBQUFBOztBQW1CSSxvQkFBSUEsT0FBTyxLQUFLLElBQWhCLEVBQXNCO0FBQ3BCQSxrQkFBQUEsT0FBTyxHQUFHLEdBQVY7QUFDRDs7QUFDRFQsZ0JBQUFBLElBQUksR0FBR1MsT0FBTyxHQUFHLElBQVYsR0FBaUIsSUFBeEI7O0FBdEJKLHNCQXVCUVQsSUFBSSxHQUFHOUMsSUFBSSxDQUFDOEMsSUF2QnBCO0FBQUE7QUFBQTtBQUFBOztBQXdCTTdDLGdCQUFBQSxPQUFPLENBQUM2RCxLQUFSLFdBQWlCOUQsSUFBSSxDQUFDMkMsSUFBdEIsaURBQW1DWSxPQUFuQztBQXhCTixrREF5QmEsS0F6QmI7O0FBQUE7QUE0Qk1yQyxnQkFBQUEsU0E1Qk4sR0E0QmtCLEVBNUJsQjs7QUFBQSxxQkE2Qk11QyxhQTdCTjtBQUFBO0FBQUE7QUFBQTs7QUE4QlVNLGdCQUFBQSxTQTlCVixHQThCc0IsS0FBSzNDLEtBQUwsQ0FBV0wsUUFBWCxHQUFzQkUsYUFBdEIsR0FBc0NGLFFBOUI1RDtBQStCSWdELGdCQUFBQSxTQUFTLENBQUN2QixHQUFWLENBQWMsVUFBQ0MsSUFBRCxFQUFVO0FBQ3RCdkIsa0JBQUFBLFNBQVMsQ0FBQzZCLElBQVYsQ0FBZU4sSUFBSSxDQUFDRSxJQUFMLElBQWFGLElBQUksQ0FBQ0csUUFBakM7QUFDRCxpQkFGRDs7QUEvQkosc0JBbUNRMUIsU0FBUyxDQUFDOEMsT0FBVixDQUFrQmhFLElBQUksQ0FBQzJDLElBQXZCLElBQStCLENBQUMsQ0FBaEMsSUFBcUNnQixjQUFjLEtBQUssS0FuQ2hFO0FBQUE7QUFBQTtBQUFBOztBQW9DTTFELGdCQUFBQSxPQUFPLENBQUM2RCxLQUFSLHVCQUFtQjlELElBQUksQ0FBQzJDLElBQXhCO0FBcENOLGtEQXFDYSxLQXJDYjs7QUFBQTtBQUFBLHFCQXlDTSxLQUFLdkIsS0FBTCxDQUFXNkMsWUF6Q2pCO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsdUJBMENzQixLQUFLN0MsS0FBTCxDQUFXNkMsWUFBWCxDQUF3QmpFLElBQXhCLEVBQThCc0QsU0FBOUIsQ0ExQ3RCOztBQUFBO0FBMENVMUIsZ0JBQUFBLEdBMUNWOztBQUFBLHNCQTJDUUEsR0FBRyxLQUFLLEtBM0NoQjtBQUFBO0FBQUE7QUFBQTs7QUFBQSxrREE0Q2EsS0E1Q2I7O0FBQUE7QUErQ1VzQyxnQkFBQUEsWUEvQ1YsR0ErQzJCLEtBQUs5QyxLQS9DaEMsQ0ErQ1U4QyxZQS9DVjtBQWdEUUMsZ0JBQUFBLE9BaERSLHNCQWdEc0JwRCxRQWhEdEI7QUFpREV1QyxnQkFBQUEsU0FBUyxDQUFDZCxHQUFWO0FBQUEsc0ZBQWMsa0JBQU9DLElBQVA7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ1osZ0NBQ0UsRUFDR2UsZUFBZSxJQUFJLENBQUMsTUFBSSxDQUFDSyxhQUFMLENBQW1CcEIsSUFBbkIsQ0FBckIsSUFDQUssSUFBSSxHQUFHTCxJQUFJLENBQUNLLElBRFosSUFFQ1csYUFBYSxJQUFJdkMsU0FBUyxDQUFDOEMsT0FBVixDQUFrQnZCLElBQUksQ0FBQ0UsSUFBdkIsSUFBK0IsQ0FBQyxDQUhwRCxDQURGLEVBTUU7QUFDTUQsOEJBQUFBLElBRE4sR0FDYTtBQUNYRSxnQ0FBQUEsUUFBUSxFQUFFSCxJQUFJLENBQUNFLElBREo7QUFFWGpCLGdDQUFBQSxPQUFPLEVBQUUsQ0FGRTtBQUdYUyxnQ0FBQUEsTUFBTSxFQUFFLFdBSEc7QUFJWGlDLGdDQUFBQSxHQUFHLEVBQUUzQixJQUFJLENBQUMyQixHQUpDO0FBS1h6QixnQ0FBQUEsSUFBSSxFQUFFRixJQUFJLENBQUNFLElBTEE7QUFNWEUsZ0NBQUFBLElBQUksRUFBRUosSUFBSSxDQUFDSSxJQU5BO0FBT1hDLGdDQUFBQSxJQUFJLEVBQUVMLElBQUksQ0FBQ0s7QUFQQSwrQkFEYjtBQVVBcUIsOEJBQUFBLE9BQU8sQ0FBQ3BCLElBQVIsQ0FBYUwsSUFBYjtBQUNEOztBQWxCVztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFBZDs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFvQkEsb0JBQUlnQixRQUFRLElBQUlTLE9BQU8sQ0FBQ0UsTUFBUixHQUFpQlgsUUFBakMsRUFBMkM7QUFDekNTLGtCQUFBQSxPQUFPLENBQUNHLE1BQVIsQ0FBZSxDQUFmLEVBQWtCLENBQWxCO0FBQ0Q7O0FBQ0QscUJBQUt0QixRQUFMLENBQWM7QUFBRWpDLGtCQUFBQSxRQUFRLEVBQUVvRDtBQUFaLGlCQUFkO0FBQ0FELGdCQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQ0MsT0FBRCxDQUE1Qjs7QUF6RUY7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTzs7Ozs7Ozs7OztXQTJFQSx1QkFBY25FLElBQWQsRUFBb0I7QUFDbEIsVUFBUXdELGVBQVIsR0FBNEIsS0FBS3BDLEtBQWpDLENBQVFvQyxlQUFSO0FBQ0EsVUFBTWUsS0FBSyxHQUFHdkUsSUFBSSxDQUFDMkMsSUFBTCxDQUFVNkIsS0FBVixDQUFnQixHQUFoQixDQUFkO0FBQ0EsVUFBTUMsTUFBTSxHQUFHRixLQUFLLENBQUNBLEtBQUssQ0FBQ0YsTUFBTixHQUFlLENBQWhCLENBQXBCOztBQUNBLFVBQUliLGVBQWUsQ0FBQ1EsT0FBaEIsQ0FBd0JTLE1BQXhCLElBQWtDLENBQUMsQ0FBdkMsRUFBMEM7QUFDeEMsZUFBTyxJQUFQO0FBQ0Q7O0FBQ0QsYUFBTyxLQUFQO0FBQ0Q7OztXQUNELDBCQUFrQztBQUFBLFVBQXRCL0MsT0FBc0IsU0FBdEJBLE9BQXNCO0FBQUEsVUFBYjFCLElBQWEsU0FBYkEsSUFBYTtBQUNoQyxVQUFRZSxRQUFSLEdBQXFCLEtBQUtzQyxLQUExQixDQUFRdEMsUUFBUjtBQUNBLFVBQVFtRCxZQUFSLEdBQXlCLEtBQUs5QyxLQUE5QixDQUFROEMsWUFBUjtBQUNBLFVBQU1DLE9BQVksR0FBRyxFQUFyQjtBQUNBcEQsTUFBQUEsUUFBUSxDQUFDeUIsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBZTtBQUMxQixZQUFNaUMsT0FBTyxxQkFBUWpDLElBQVIsQ0FBYjs7QUFDQSxZQUFJekMsSUFBSSxDQUFDb0UsR0FBTCxJQUFZM0IsSUFBSSxDQUFDMkIsR0FBckIsRUFBMEI7QUFDeEJNLFVBQUFBLE9BQU8sQ0FBQ2hELE9BQVIsR0FBa0JBLE9BQWxCO0FBQ0Q7O0FBQ0R5QyxRQUFBQSxPQUFPLENBQUNwQixJQUFSLENBQWEyQixPQUFiO0FBQ0QsT0FORDtBQU9BLFdBQUsxQixRQUFMLENBQWM7QUFDWmpDLFFBQUFBLFFBQVEsRUFBRW9EO0FBREUsT0FBZDtBQUdBRCxNQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQ0MsT0FBRCxDQUE1QjtBQUNEOzs7V0FDRCxvQkFBV25FLElBQVgsRUFBaUI7QUFDZixVQUFRZSxRQUFSLEdBQXFCLEtBQUtzQyxLQUExQixDQUFRdEMsUUFBUjtBQUNBLFVBQVFtRCxZQUFSLEdBQXlCLEtBQUs5QyxLQUE5QixDQUFROEMsWUFBUjtBQUNBLFVBQU1DLE9BQVksR0FBRyxFQUFyQjtBQUNBcEQsTUFBQUEsUUFBUSxDQUFDeUIsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBZTtBQUMxQixZQUFNaUMsT0FBTyxxQkFBUWpDLElBQVIsQ0FBYjs7QUFDQSxZQUFJekMsSUFBSSxDQUFDQSxJQUFMLENBQVVvRSxHQUFWLElBQWlCM0IsSUFBSSxDQUFDMkIsR0FBMUIsRUFBK0I7QUFDN0JNLFVBQUFBLE9BQU8sQ0FBQ3ZDLE1BQVIsR0FBaUJuQyxJQUFJLENBQUNtQyxNQUFMLElBQWUsU0FBZixHQUEyQixNQUEzQixHQUFvQ25DLElBQUksQ0FBQ21DLE1BQTFEO0FBQ0F1QyxVQUFBQSxPQUFPLENBQUM3QyxNQUFSLEdBQWlCN0IsSUFBSSxDQUFDNkIsTUFBdEI7QUFDQTZDLFVBQUFBLE9BQU8sQ0FBQ0MsR0FBUix1RUFBMkUzRSxJQUFJLENBQUM2QixNQUFoRjtBQUNEOztBQUNEc0MsUUFBQUEsT0FBTyxDQUFDcEIsSUFBUixDQUFhMkIsT0FBYjtBQUNELE9BUkQ7QUFTQSxXQUFLMUIsUUFBTCxDQUFjO0FBQ1pqQyxRQUFBQSxRQUFRLEVBQUVvRDtBQURFLE9BQWQ7QUFHQUQsTUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUNDLE9BQUQsQ0FBNUI7QUFDRDs7O1dBNENELGtCQUFTbkUsSUFBVCxFQUFlO0FBQ2IsVUFBUWUsUUFBUixHQUFxQixLQUFLc0MsS0FBMUIsQ0FBUXRDLFFBQVI7QUFDQSxVQUFRbUQsWUFBUixHQUF5QixLQUFLOUMsS0FBOUIsQ0FBUThDLFlBQVI7QUFDQSxVQUFNQyxPQUFZLEdBQUcsRUFBckI7QUFDQXBELE1BQUFBLFFBQVEsQ0FBQ3lCLEdBQVQsQ0FBYSxVQUFDQyxJQUFELEVBQWU7QUFDMUIsWUFBSUEsSUFBSSxDQUFDWixNQUFMLEtBQWdCN0IsSUFBSSxDQUFDNkIsTUFBckIsSUFBK0JZLElBQUksQ0FBQzJCLEdBQUwsS0FBYXBFLElBQUksQ0FBQ29FLEdBQXJELEVBQTBEO0FBQ3hERCxVQUFBQSxPQUFPLENBQUNwQixJQUFSLENBQWFOLElBQWI7QUFDRDtBQUNGLE9BSkQ7QUFLQSxXQUFLTyxRQUFMLENBQWM7QUFDWmpDLFFBQUFBLFFBQVEsRUFBRW9EO0FBREUsT0FBZDtBQUdBRCxNQUFBQSxZQUFZLElBQUlBLFlBQVksQ0FBQ0MsT0FBRCxDQUE1QjtBQUNEOzs7V0FDRCxrQkFBMEI7QUFBQTs7QUFDeEIseUJBWUksS0FBSy9DLEtBWlQ7QUFBQSxVQUNFd0QsY0FERixnQkFDRUEsY0FERjtBQUFBLFVBRUU3RCxRQUZGLGdCQUVFQSxRQUZGO0FBQUEsVUFHRThELFFBSEYsZ0JBR0VBLFFBSEY7QUFBQSwrQ0FJRWxCLGNBSkY7QUFBQSxVQUlFQSxjQUpGLHNDQUltQjtBQUNmbUIsUUFBQUEsZ0JBQWdCLEVBQUUsSUFESDtBQUVmQyxRQUFBQSxlQUFlLEVBQUUsS0FGRjtBQUdmQyxRQUFBQSxjQUFjLEVBQUUsSUFIRDtBQUlmQyxRQUFBQSxZQUFZLEVBQUUsSUFKQztBQUtmQyxRQUFBQSxVQUFVLEVBQUUsSUFMRztBQU1mQyxRQUFBQSxXQUFXLEVBQUU7QUFORSxPQUpuQjtBQWFBLFVBQU1DLFFBQVEsR0FBR2pGLElBQUksQ0FBQyxLQUFLaUIsS0FBTixFQUFhLENBQ2hDLFdBRGdDLEVBRWhDLFNBRmdDLEVBR2hDLFlBSGdDLEVBSWhDLFdBSmdDLEVBS2hDLGlCQUxnQyxFQU1oQyxnQkFOZ0MsRUFPaEMsVUFQZ0MsRUFRaEMsY0FSZ0MsQ0FBYixDQUFyQjtBQVVBLFVBQUlpRSxZQUFZLEdBQUc7QUFDakJDLFFBQUFBLGFBQWEsRUFBRSxLQUFLQSxhQUFMLENBQW1CQyxJQUFuQixDQUF3QixJQUF4QixDQURFO0FBRWpCQyxRQUFBQSxRQUFRLEVBQUU7QUFGTyxPQUFuQjs7QUFJQSxVQUFJWCxRQUFKLEVBQWM7QUFDWlEsUUFBQUEsWUFBWSxtQ0FDUEEsWUFETztBQUVWSSxVQUFBQSxVQUFVLEVBQUUsb0JBQUNDLFVBQUQsRUFBYTFGLElBQWIsRUFBd0IyRixZQUF4QixFQUF5QztBQUNuRCxnQkFBTWhELElBQUksR0FBRzNDLElBQUksQ0FBQzJDLElBQUwsSUFBYTNDLElBQUksQ0FBQzRDLFFBQS9CO0FBQ0EsZ0JBQU0yQixLQUFLLEdBQUc1QixJQUFILGFBQUdBLElBQUgsdUJBQUdBLElBQUksQ0FBRTZCLEtBQU4sQ0FBWSxHQUFaLENBQWQ7QUFDQSxnQkFBTUMsTUFBTSxHQUFHRixLQUFLLEdBQUdBLEtBQUssQ0FBQ0EsS0FBSyxDQUFDRixNQUFOLEdBQWUsQ0FBaEIsQ0FBUixHQUE2QixFQUFqRDtBQUNBLGdDQUNFO0FBQUssY0FBQSxTQUFTLEVBQUVqRSxPQUFPLENBQUNDLE1BQUQsRUFBUyxXQUFUO0FBQXZCLDRCQUNFO0FBQ0UsY0FBQSxTQUFTLEVBQUVDLEdBQUcsQ0FBQ0YsT0FBTyxDQUFDQyxNQUFELEVBQVMsU0FBVCxDQUFSLHNCQUNYRCxPQUFPLENBQUNDLE1BQUQsRUFBUyxlQUFULENBREksRUFDd0JMLElBQUksQ0FBQ21DLE1BQUwsSUFBZSxPQUR2QztBQURoQiw0QkFLRTtBQUFLLGNBQUEsU0FBUyxFQUFFL0IsT0FBTyxDQUFDQyxNQUFELEVBQVMsY0FBVDtBQUF2Qiw0QkFDRSxvQkFBQyxRQUFEO0FBQVUsY0FBQSxNQUFNLEVBQUVvRSxNQUFsQjtBQUEwQixjQUFBLE1BQU0sRUFBRXpFLElBQUksQ0FBQzZCO0FBQXZDLGNBREYsQ0FMRixlQVFFO0FBQUssY0FBQSxTQUFTLEVBQUV6QixPQUFPLENBQUNDLE1BQUQsRUFBUyxNQUFUO0FBQXZCLGVBQ0dMLElBQUksQ0FBQzJDLElBQUwsSUFBYTNDLElBQUksQ0FBQzRDLFFBRHJCLENBUkYsZUFXRTtBQUFLLGNBQUEsU0FBUyxFQUFFeEMsT0FBTyxDQUFDQyxNQUFELEVBQVMsTUFBVDtBQUF2QixlQUNHc0QsY0FBYyxDQUFDb0IsZUFBZixJQUFrQy9FLElBQUksQ0FBQ21DLE1BQUwsSUFBZSxNQUFqRCxpQkFDQztBQUNFLGNBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2Isb0JBQUksTUFBSSxDQUFDZixLQUFMLENBQVd3RSxTQUFmLEVBQTBCO0FBQ3hCLGtCQUFBLE1BQUksQ0FBQ3hFLEtBQUwsQ0FBV3dFLFNBQVgsQ0FBcUI1RixJQUFyQjtBQUNELGlCQUZELE1BRU87QUFDTGEsa0JBQUFBLGVBQWUsQ0FBQ2IsSUFBSSxDQUFDNkIsTUFBTixDQUFmO0FBQ0Q7QUFDRixlQVBIO0FBUUUsY0FBQSxLQUFLLEVBQUU7QUFBRWdFLGdCQUFBQSxNQUFNLEVBQUU7QUFBVjtBQVJULGVBVUdsQyxjQUFjLENBQUNzQixZQUFmLEdBQ0N0QixjQUFjLENBQUNzQixZQURoQixnQkFHQyxvQkFBQyxXQUFELE9BYkosQ0FGSixFQW1CR3RCLGNBQWMsQ0FBQ21CLGdCQUFmLElBQW1DOUUsSUFBSSxDQUFDbUMsTUFBTCxJQUFlLE1BQWxELGlCQUNDO0FBQ0UsY0FBQSxPQUFPLEVBQUUsbUJBQU07QUFDYixvQkFBSSxNQUFJLENBQUNmLEtBQUwsQ0FBVzBFLFVBQWYsRUFBMkI7QUFDekIsa0JBQUEsTUFBSSxDQUFDMUUsS0FBTCxDQUFXMEUsVUFBWCxDQUFzQjlGLElBQXRCO0FBQ0QsaUJBRkQsTUFFTztBQUNMWSxrQkFBQUEsUUFBUSxDQUFDWixJQUFJLENBQUM2QixNQUFOLENBQVI7QUFDRDtBQUNGLGVBUEg7QUFRRSxjQUFBLEtBQUssRUFBRTtBQUFFZ0UsZ0JBQUFBLE1BQU0sRUFBRTtBQUFWO0FBUlQsZUFVR2xDLGNBQWMsQ0FBQ3NCLFlBQWYsR0FDQ3RCLGNBQWMsQ0FBQ3NCLFlBRGhCLGdCQUdDLG9CQUFDLGdCQUFELE9BYkosQ0FwQkosRUFxQ0d0QixjQUFjLENBQUNxQixjQUFmLGlCQUNDO0FBQ0UsY0FBQSxPQUFPLEVBQUUsbUJBQU07QUFDYixvQkFBSSxNQUFJLENBQUM1RCxLQUFMLENBQVcyRSxRQUFmLEVBQXlCO0FBQ3ZCLGtCQUFBLE1BQUksQ0FBQzNFLEtBQUwsQ0FBVzJFLFFBQVgsQ0FBb0IvRixJQUFwQjtBQUNELGlCQUZELE1BRU87QUFDTCxrQkFBQSxNQUFJLENBQUNnRyxRQUFMLENBQWNoRyxJQUFkO0FBQ0Q7QUFDRixlQVBIO0FBUUUsY0FBQSxLQUFLLEVBQUU7QUFBRTZGLGdCQUFBQSxNQUFNLEVBQUU7QUFBVjtBQVJULGVBVUdsQyxjQUFjLENBQUNzQixZQUFmLEdBQ0N0QixjQUFjLENBQUNzQixZQURoQixnQkFHQyxvQkFBQyxjQUFELE9BYkosQ0F0Q0osQ0FYRixDQURGLEVBcUVHakYsSUFBSSxDQUFDbUMsTUFBTCxJQUFlLFdBQWYsaUJBQ0M7QUFBSyxjQUFBLFNBQVMsRUFBRS9CLE9BQU8sQ0FBQ0MsTUFBRCxFQUFTLFNBQVQ7QUFBdkIsNEJBQ0U7QUFDRSxjQUFBLFNBQVMsRUFBRUQsT0FBTyxDQUFDQyxNQUFELEVBQVMsU0FBVCxDQURwQjtBQUVFLGNBQUEsS0FBSyxFQUFFO0FBQUU0RixnQkFBQUEsS0FBSyxFQUFFakcsSUFBSSxDQUFDMEIsT0FBTCxHQUFlO0FBQXhCO0FBRlQsY0FERixDQXRFSixDQURGO0FBZ0ZEO0FBdEZTLFVBQVo7QUF3RkQsT0F6RkQsTUF5Rk87QUFDTDJELFFBQUFBLFlBQVksbUNBQ1BBLFlBRE87QUFFVlMsVUFBQUEsVUFBVSxFQUFFLG9CQUFDOUYsSUFBRCxFQUFlO0FBQ3pCWSxZQUFBQSxRQUFRLENBQUNaLElBQUksQ0FBQzZCLE1BQU4sQ0FBUjtBQUNELFdBSlM7QUFLVmtFLFVBQUFBLFFBQVEsRUFBRSxrQkFBQy9GLElBQUQsRUFBVTtBQUNsQixZQUFBLE1BQUksQ0FBQ2dHLFFBQUwsQ0FBY2hHLElBQWQ7QUFDRCxXQVBTO0FBUVY0RixVQUFBQSxTQUFTLEVBQUUsbUJBQUM1RixJQUFELEVBQWU7QUFDeEIsZ0JBQUlBLElBQUosYUFBSUEsSUFBSixlQUFJQSxJQUFJLENBQUU2QixNQUFWLEVBQWtCO0FBQ2hCaEIsY0FBQUEsZUFBZSxDQUFDYixJQUFJLENBQUM2QixNQUFOLENBQWY7QUFDRDtBQUNGLFdBWlM7QUFhVjhCLFVBQUFBLGNBQWMsb0JBQU9BLGNBQVA7QUFiSixVQUFaO0FBZUQ7O0FBQ0QsMEJBQ0UsdURBQ0UsMENBQ00wQixZQUROLEVBRU1ELFFBRk47QUFHRSxRQUFBLFlBQVksRUFBRSxLQUFLbkIsWUFBTCxDQUFrQnNCLElBQWxCLENBQXVCLElBQXZCLENBSGhCO0FBSUUsUUFBQSxRQUFRLEVBQUV4RSxRQUFRLEdBQUcsS0FBS3NDLEtBQUwsQ0FBV3BDLGFBQWQsR0FBOEIsS0FBS29DLEtBQUwsQ0FBV3RDO0FBSjdELFNBREYsQ0FERjtBQVVEOzs7O0VBeFdxQmhCLEtBQUssQ0FBQ21HLGE7O0FBMFc5QixlQUFlaEcsWUFBWSxDQUFDWSxTQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVVwbG9hZFByb3BzIGV4dGVuZHMgVXBsb2FkUHJvcHMge1xyXG4gIHNsaWNlU2l6ZT86IG51bWJlcjtcclxuICBtYXhTaXplPzogbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvblByb2Nlc3M/OiAocHJvY2VzcykgPT4gdm9pZDtcclxuICBvbkNvbXBsZXRlPzogKHsgZmlsZSwgZmlsZUlkLCBzdGF0dXMgfSkgPT4gdm9pZDtcclxuICBhbGxvd0ZpbGVTdWZmaXg/OiBBcnJheTxTdHJpbmc+OyAvL+WFgeiuuOS4iuS8oOaJqeWxleWQjSzkuI3luKYuXHJcbiAgdXNlRGVmYXVsdExpc3Q/OiBib29sZWFuOyAvL+aYr+WQpuS9v+eUqOm7mOiupOeahGZpbGVMaXN0XHJcbiAgZmlsZUNhcmQ/OiBib29sZWFuO1xyXG4gIG9uTGlzdENoYW5nZT86IGFueTtcclxuICBjaGVja1NhbWVGaWxlPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBOc2NVcGxvYWQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgc3RhdGUgPSB7IGZpbGVMaXN0OiBbXSwgdmlld0lkOiBcIlwiLCBmaWxlTGlzdFN0b3JlOiBbXSwgZmlsZU5hbWVzOiBbXSB9O1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0ZpbGVMaXN0LFxyXG4gICAgICBmaWxlTGlzdFN0b3JlOiBmaWxlTGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZmlsZUxpc3QsIGZpbGVMaXN0U3RvcmUgfSA9IHRoaXMuc3RhdGU7XHJcblxyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0ID0gWy4uLmZpbGVMaXN0XTtcclxuICAgIG9maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICEoXHJcbiAgICAgICAgICAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoaXRlbSkpIHx8XHJcbiAgICAgICAgICBzaXplIDwgaXRlbS5zaXplIHx8XHJcbiAgICAgICAgICAoY2hlY2tTYW1lRmlsZSAmJiBmaWxlTmFtZXMuaW5kZXhPZihpdGVtLm5hbWUpID4gLTEpXHJcbiAgICAgICAgKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCB0ZW1wID0ge1xyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHBlcmNlbnQ6IDAsXHJcbiAgICAgICAgICBzdGF0dXM6IFwidXBsb2FkaW5nXCIsXHJcbiAgICAgICAgICB1aWQ6IGl0ZW0udWlkLFxyXG4gICAgICAgICAgbmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbmV3TGlzdC5wdXNoKHRlbXApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIG5ld0xpc3Quc3BsaWNlKDAsIDEpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBuZXdMaXN0IH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgY2hlY2tGaWxlVHlwZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGFsbG93RmlsZVN1ZmZpeCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5hbWVzID0gZmlsZS5uYW1lLnNwbGl0KFwiLlwiKTtcclxuICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzW25hbWVzLmxlbmd0aCAtIDFdO1xyXG4gICAgaWYgKGFsbG93RmlsZVN1ZmZpeC5pbmRleE9mKHN1ZmZpeCkgPiAtMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgb25Qcm9jZXNzKHsgcGVyY2VudCwgZmlsZSB9OiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnBlcmNlbnQgPSBwZXJjZW50O1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBvbkNvbXBsZXRlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0xpc3Q6IGFueSA9IFtdO1xyXG4gICAgZmlsZUxpc3QubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgIG5ld0ZpbGUuZmlsZUlkID0gZmlsZS5maWxlSWQ7XHJcbiAgICAgICAgbmV3RmlsZS51cmwgPSBgL2FwaS9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7ZmlsZS5maWxlSWR9YFxyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZCh7XHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8IGl0ZW0udWlkICE9PSBmaWxlLnVpZCkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgdXNlRGVmYXVsdExpc3QsXHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17ZmlsZUxpc3QgPyB0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUgOiB0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5zY1VwbG9hZCk7XHJcbiJdfQ==
|
|
555
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwid2l0aFpoTG9jYWxlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwidXBsb2FkIiwiZG93bmxvYWQiLCJwcmV2aWV3RG9jdW1lbnQiLCJOc2NVcGxvYWQiLCJmaWxlTGlzdCIsInZpZXdJZCIsImZpbGVMaXN0U3RvcmUiLCJmaWxlTmFtZXMiLCJvcHRpb25zIiwicHJvcHMiLCJvbkNvbXBsZXRlIiwib25Qcm9jZXNzIiwic2xpY2VTaXplIiwib25Qcm9ncmVzcyIsInRvdGFsUHJvZ3Jlc3MiLCJwZXJjZW50IiwicGFydFNpemUiLCJyZXMiLCJmaWxlSWQiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwib25FcnJvciIsInN0YXR1cyIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwidGVtcCIsIm5hbWUiLCJmaWxlTmFtZSIsInR5cGUiLCJzaXplIiwicHVzaCIsInNldFN0YXRlIiwicHJlUHJvcHMiLCJwcmVTdGF0ZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0ZSIsIm9maWxlTGlzdCIsIm1heFNpemUiLCJhbGxvd0ZpbGVTdWZmaXgiLCJjaGVja1NhbWVGaWxlIiwibWF4Q291bnQiLCJzaG93VXBsb2FkTGlzdCIsInByb3BzTGlzdCIsImNoZWNrRmlsZVR5cGUiLCJlcnJvciIsImNoZWNrTGlzdCIsImluZGV4T2YiLCJiZWZvcmVVcGxvYWQiLCJvbkxpc3RDaGFuZ2UiLCJuZXdMaXN0IiwidWlkIiwibGVuZ3RoIiwic3BsaWNlIiwibmFtZXMiLCJzcGxpdCIsInN1ZmZpeCIsIm5ld0ZpbGUiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwidXNlRGVmYXVsdExpc3QiLCJmaWxlQ2FyZCIsInNob3dEb3dubG9hZEljb24iLCJzaG93UHJldmlld0ljb24iLCJzaG93UmVtb3ZlSWNvbiIsImRvd25sb2FkSWNvbiIsInJlbW92ZUljb24iLCJwcmV2aWV3SWNvbiIsIm5ld3Byb3BzIiwiZGVmYXVsdFByb3BzIiwiY3VzdG9tUmVxdWVzdCIsImJpbmQiLCJtdWx0aXBsZSIsIml0ZW1SZW5kZXIiLCJvcmlnaW5Ob2RlIiwiY3VyckZpbGVMaXN0Iiwib25QcmV2aWV3IiwiY3Vyc29yIiwib25Eb3dubG9hZCIsIm9uUmVtb3ZlIiwib25EZWxldGUiLCJ3aWR0aCIsIlB1cmVDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUtBLEtBQVosTUFBdUIsT0FBdkI7QUFFQSxPQUFPQyxJQUFQLE1BQWlCLFVBQWpCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixZQUFwQjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsd0JBQXpCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsb0JBQXJCO0FBQ0EsU0FDRUMsY0FERixFQUVFQyxnQkFGRixFQUdFQyxXQUhGLFFBSU8sbUJBSlA7QUFNQSxJQUFRQyxNQUFSLEdBQThDWCxJQUE5QyxDQUFRVyxNQUFSO0FBQUEsSUFBZ0JDLFFBQWhCLEdBQThDWixJQUE5QyxDQUFnQlksUUFBaEI7QUFBQSxJQUEwQkMsZUFBMUIsR0FBOENiLElBQTlDLENBQTBCYSxlQUExQjs7SUFhTUMsUzs7Ozs7Ozs7Ozs7Ozs7Ozs0REFDSTtBQUFFQyxNQUFBQSxRQUFRLEVBQUUsRUFBWjtB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UUFBQSxZQUFZLEVBQUUsS0FBS3RCLFlBQUwsQ0FBa0J5QixJQUFsQixDQUF1QixJQUF2QixDQUhoQjtBQUlFLFFBQUEsUUFBUSxFQUFFM0UsUUFBUSxHQUFHLEtBQUtzQyxLQUFMLENBQVdwQyxhQUFkLEdBQThCLEtBQUtvQyxLQUFMLENBQVd0QztBQUo3RCxTQURGLENBREY7QUFVRDs7OztFQTFXcUJoQixLQUFLLENBQUNzRyxhOztBQTRXOUIsZUFBZW5HLFlBQVksQ0FBQ1ksU0FBRCxDQUEzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmNvbnN0IHsgdXBsb2FkLCBkb3dubG9hZCwgcHJldmlld0RvY3VtZW50IH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbn1cclxuY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRlID0geyBmaWxlTGlzdDogW10sIHZpZXdJZDogXCJcIiwgZmlsZUxpc3RTdG9yZTogW10sIGZpbGVOYW1lczogW10gfTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0ZpbGVMaXN0ID0gW107XHJcbiAgICBsZXQgb2xkTGlzdCA9IGxpc3QgPyBsaXN0IDogZmlsZUxpc3Q7XHJcbiAgICBvbGRMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgfTtcclxuICAgICAgbmV3RmlsZUxpc3QucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdGaWxlTGlzdCxcclxuICAgICAgZmlsZUxpc3RTdG9yZTogZmlsZUxpc3QsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnZXRGaWxlTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLmZpbGVMaXN0O1xyXG4gIH1cclxuICBzZXRGaWxlTGlzdChmaWxlTGlzdDogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBiZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KSB7XHJcbiAgICBsZXQge1xyXG4gICAgICBtYXhTaXplID0gMTAwLFxyXG4gICAgICBhbGxvd0ZpbGVTdWZmaXgsXHJcbiAgICAgIGNoZWNrU2FtZUZpbGUgPSB0cnVlLFxyXG4gICAgICBtYXhDb3VudCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QsXHJcbiAgICAgIGZpbGVMaXN0OiBwcm9wc0xpc3QsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG5cclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAobWF4Q291bnQgJiYgbmV3TGlzdC5sZW5ndGggPiBtYXhDb3VudCkge1xyXG4gICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICB9XHJcbiAgb25Db21wbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICBuZXdGaWxlLnN0YXR1cyA9IGZpbGUuc3RhdHVzID09IFwic3VjY2Vzc1wiID8gXCJkb25lXCIgOiBmaWxlLnN0YXR1cztcclxuICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgIG5ld0ZpbGUudXJsID0gYC9hcGkvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICB9Jl90cGs9JHt3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJ0b2tlblwiKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZCh7XHJcbiAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgIH0pO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgIGZpbGVJZCA9IHJlcy5kYXRhLmF0dGFjaElkO1xyXG4gICAgICAgIG9wdGlvbnMub25TdWNjZXNzKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBmaWxlSWQsXHJcbiAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgfSk7XHJcbiAgICAgIG9uQ29tcGxldGUgJiZcclxuICAgICAgICBvbkNvbXBsZXRlKHtcclxuICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICAgIGZpbGVJZDogZmlsZUlkLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXMuY29kZSA9PSAyMDAgPyBcInN1Y2Nlc3NcIiA6IFwiZXJyb3JcIixcclxuICAgICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgdGhpcy5vbkNvbXBsZXRlKHtcclxuICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgZmlsZUlkOiBcIlwiLFxyXG4gICAgICAgIHN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICB9KTtcclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICAgIG9wdGlvbnMub25FcnJvcigpO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgb25EZWxldGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5maWxlSWQgIT09IGZpbGUuZmlsZUlkIHx8IGl0ZW0udWlkICE9PSBmaWxlLnVpZCkge1xyXG4gICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgbGV0IHtcclxuICAgICAgdXNlRGVmYXVsdExpc3QsXHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3cHJvcHMgPSBvbWl0KHRoaXMucHJvcHMsIFtcclxuICAgICAgXCJzbGljZVNpemVcIixcclxuICAgICAgXCJtYXhTaXplXCIsXHJcbiAgICAgIFwib25Db21wbGV0ZVwiLFxyXG4gICAgICBcIm9uUHJvY2Vzc1wiLFxyXG4gICAgICBcImFsbG93RmlsZVN1ZmZpeFwiLFxyXG4gICAgICBcInVzZURlZmF1bHRMaXN0XCIsXHJcbiAgICAgIFwiZmlsZUNhcmRcIixcclxuICAgICAgXCJvbkxpc3RDaGFuZ2VcIixcclxuICAgIF0pO1xyXG4gICAgbGV0IGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgY3VzdG9tUmVxdWVzdDogdGhpcy5jdXN0b21SZXF1ZXN0LmJpbmQodGhpcyksXHJcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxyXG4gICAgfSBhcyBJVXBsb2FkUHJvcHM7XHJcbiAgICBpZiAoZmlsZUNhcmQpIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBpdGVtUmVuZGVyOiAob3JpZ2luTm9kZSwgZmlsZTogYW55LCBjdXJyRmlsZUxpc3QpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlLm5hbWUgfHwgZmlsZS5maWxlTmFtZTtcclxuICAgICAgICAgIGNvbnN0IG5hbWVzID0gbmFtZT8uc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgY29uc3Qgc3VmZml4ID0gbmFtZXMgPyBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXSA6IFwiXCI7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZmlsZS1pdGVtXCIpfT5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50XCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50X2Vycm9yXCIpXTogZmlsZS5zdGF0dXMgPT0gXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm1hcmstcGljdHVyZVwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiBzdWZmaXg9e3N1ZmZpeH0gZmlsZUlkPXtmaWxlLmZpbGVJZH0gLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5hbWVcIil9PlxyXG4gICAgICAgICAgICAgICAgICB7ZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWV9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dQcmV2aWV3SWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vblByZXZpZXcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUHJldmlldyhmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2aWV3RG9jdW1lbnQoZmlsZS5maWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd0Rvd25sb2FkSWNvbiAmJiBmaWxlLnN0YXR1cyA9PSBcImRvbmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9wcy5vbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkRvd25sb2FkKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRvd25sb2FkKGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEb3dubG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3Quc2hvd1JlbW92ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25SZW1vdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uUmVtb3ZlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7ZmlsZS5zdGF0dXMgPT0gXCJ1cGxvYWRpbmdcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicHJvY2Vzc1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInBlcmNlbnRcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IGZpbGUucGVyY2VudCArIFwiJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVmYXVsdFByb3BzID0ge1xyXG4gICAgICAgIC4uLmRlZmF1bHRQcm9wcyxcclxuICAgICAgICBvbkRvd25sb2FkOiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblJlbW92ZTogKGZpbGUpID0+IHtcclxuICAgICAgICAgIHRoaXMub25EZWxldGUoZmlsZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBvblByZXZpZXc6IChmaWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmaWxlPy5maWxlSWQpIHtcclxuICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob3dVcGxvYWRMaXN0OiB7IC4uLnNob3dVcGxvYWRMaXN0IH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgIHsuLi5kZWZhdWx0UHJvcHN9XHJcbiAgICAgICAgICB7Li4ubmV3cHJvcHN9XHJcbiAgICAgICAgICBiZWZvcmVVcGxvYWQ9e3RoaXMuYmVmb3JlVXBsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBmaWxlTGlzdD17ZmlsZUxpc3QgPyB0aGlzLnN0YXRlLmZpbGVMaXN0U3RvcmUgOiB0aGlzLnN0YXRlLmZpbGVMaXN0fVxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5zY1VwbG9hZCk7XHJcbiJdfQ==
|
|
@@ -107,7 +107,10 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
107
107
|
deptId: checkedTreeKeys[0]
|
|
108
108
|
};
|
|
109
109
|
|
|
110
|
-
_this.
|
|
110
|
+
if (_this.props.onSearch) {
|
|
111
|
+
_this.props.onSearch(value);
|
|
112
|
+
} // this.tableLoad(value);
|
|
113
|
+
|
|
111
114
|
});
|
|
112
115
|
|
|
113
116
|
_defineProperty(_assertThisInitialized(_this), "getSelectedKey", function (selected) {
|
|
@@ -1049,4 +1052,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
1049
1052
|
}(PureComponent);
|
|
1050
1053
|
|
|
1051
1054
|
export default BasePage;
|
|
1052
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJJY29uIiwiaWNvblR5cGUiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsImdldExlc3MiLCJyZXF1ZXN0Iiwib21pdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImF1dG9Mb2FkIiwicmVsb2FkIiwiY2FsbGJhY2siLCJkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwicmVjb3JkIiwidGFibGVQcm9wcyIsInJvd0tleSIsIm5ld1NlbGVjdGVkUm93S2V5cyIsIm5ld1NlbGVjdGVkUm93RGF0YXMiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZXRTdGF0ZSIsInNlbGVjdGVkUm93cyIsImNoYW5nZVJvd3MiLCJuZXdpZHMiLCJuZXdkYXRhcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwic2VsZWN0ZWRSb3dLZXlzU3RvcmUiLCJzZWxlY3RlZFJvd0RhdGFzU3RvcmUiLCJmcm9tVmFsdWUiLCJnZXRTZWFyY2hWYWx1ZXMiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsImVkaXRvckZvcm0iLCJidXR0b25zIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsInJlc2V0U2VhcmNoIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJzZXREYXRhIiwidHJlZVJlZiIsImNvbHVtbnMiLCJzdWJtaXRVcmwiLCJmb3JtUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsInJvd1NlbGVjdGlvbiIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwidGl0bGUiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsInNob3dGb3JtIiwiZGVsZXRlMyIsIkFycmF5IiwiaXNBcnJheSIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidG9vbEZsYWciLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInRhYmxlVG9vbCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYmFyIiwidG9vbHMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQiw0QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUNFQyxZQURGLEVBRUVDLFdBRkYsRUFHRUMsWUFIRixFQUlFQyxhQUpGLEVBS0VDLFlBTEYsRUFNRUMsZ0JBTkYsUUFPTyxtQkFQUDtBQVFBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQW1ETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0Qiw4QkFBTUEsS0FBTjs7QUFEc0IsNEVBTGIxQixLQUFLLENB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SCxVQUFVLENBQUNoSztBQURaLGFBQWQ7QUFHRDtBQUNGLFNBakNIO0FBa0NFLFFBQUEsT0FBTztBQUNMK0ssVUFBQUEsV0FBVyxFQUFFO0FBQ1hDLFlBQUFBLFNBQVMsRUFBRSxxQkFBTTtBQUNmLGtCQUFNbkwsTUFBTSxHQUFHLE1BQUksQ0FBQzRELGVBQUwsRUFBZjs7QUFDQSxjQUFBLE1BQUksQ0FBQzdFLFNBQUwsQ0FBZWlCLE1BQWY7QUFDRDtBQUpVO0FBRFIsV0FPRnlDLFVBQVUsQ0FBQ21JLE9BUFQ7QUFsQ1QsU0EyQ01yRCxXQTNDTixFQVRGLENBbkJGLENBbEJGLEVBNkZHN0MsVUFBVSxpQkFDVCxvQkFBQyxVQUFEO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBS3BFLFNBRFo7QUFFRSxRQUFBLFFBQVEsRUFBRSxLQUFLOEssV0FBTCxDQUFpQjFELElBQWpCLENBQXNCLElBQXRCLENBRlo7QUFHRSxRQUFBLFNBQVMsRUFBRU0sV0FIYjtBQUlFLFFBQUEsU0FBUyxFQUFFN0IsU0FKYjtBQUtFLFFBQUEsWUFBWSxFQUFFRyxZQUxoQjtBQU1FLFFBQUEsUUFBUSxFQUFFLEtBQUtoSSxLQUFMLENBQVcrTSxRQU52QjtBQU9FLFFBQUEsWUFBWSxFQUFFcEQsWUFQaEI7QUFRRSxRQUFBLFVBQVUsRUFBRSxLQUFLM0osS0FBTCxDQUFXZ04sVUFSekI7QUFTRSxRQUFBLFlBQVksRUFBRSxLQUFLaE4sS0FBTCxDQUFXaU4sWUFUM0I7QUFVRSxRQUFBLFFBQVEsRUFBRSxLQUFLak4sS0FBTCxDQUFXdUIsUUFBWCxJQUF1QixNQVZuQztBQVdFLFFBQUEsV0FBVyxFQUFFNEcsZUFYZjtBQVlFLFFBQUEsVUFBVSxvQkFBT0wsU0FBUDtBQVpaLFFBOUZKLENBTkYsQ0FERjtBQXVIRDs7OztFQXgwQm9CdkosYTs7QUEwMEJ2QixlQUFld0IsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBSaWdodE91dGxpbmVkLFxyXG4gIFBsdXNPdXRsaW5lZCxcclxuICBFbGxpcHNpc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRm9ybVByb3BzIH0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybS9Gb3JtXCI7XHJcbmltcG9ydCBIZWFkZXJTZWFyY2ggZnJvbSBcIi4uL0hlYWRlclNlYXJjaFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxuICBwYWdpbmF0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbpobVcclxuICBjb2x1bW5PcmRlcj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66KGo5qC85bqP5YiXXHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PGFueT4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qb3Jwcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG59XHJcblxyXG5jbGFzcyBCYXNlUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8TlNDQmFzZUJhZ2VQcm9wcywgYW55PiB7XHJcbiAgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHRyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZWRpdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0eXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBsZXQgc2l6ZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwidGFibGVTaXplXCIgOiBcInRhYmxlU2l6ZVwiXHJcbiAgICApO1xyXG4gICAgc2l6ZSA9IHNpemU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBmb3JtVHlwZTogdHlwZSB8fCBcIm1vZGFsXCIsXHJcbiAgICAgIHRhYmxlU2l6ZTogc2l6ZSB8fCBcImRlZmF1bHRcIixcclxuICAgIH07XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBpbml0RGF0YSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGluaXREYXRhICYmIGluaXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0U2VhcmNoUGFyYW1zKHBhcmFtcyk7XHJcbiAgICBjYWxsQmFjayAmJiBjYWxsQmFjayhwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgY29uc3QgeyBkZWxldGVVcmwsIG9uRGVsZXRlLCBkZWxldGVQYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgb25EZWxldGUgJiYgb25EZWxldGUoc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0UGFyYW1zID0ge1xyXG4gICAgICAgICAgbWV0aG9kOiBcInBvc3RcIixcclxuICAgICAgICAgIHBhcmFtczogeyBpZHM6IHNlbGVjdGVkUm93S2V5cy5qb2luKCkgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCByZXF1ZXN0UGFyYW1zID0ge30gYXMgYW55O1xyXG4gICAgICAgIGlmIChkZWZhdWx0UGFyYW1zKSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWxldGVQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVmYXVsdFBhcmFtcyB9O1xyXG4gICAgICAgIHJlcXVlc3QoZGVsZXRlVXJsLCB7XHJcbiAgICAgICAgICAuLi5yZXF1ZXN0UGFyYW1zLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaChwYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2gocGFyYW1zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWQocGFyYW1zKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cywgc2VsZWN0ZWRSb3dEYXRhcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93RGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhc107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkW3Jvd0tleV1dO1xyXG4gICAgICBuZXdTZWxlY3RlZFJvd0RhdGFzID0gWy4uLm5ld1NlbGVjdGVkUm93RGF0YXMsIHJlY29yZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbSA9PT0gcmVjb3JkW3Jvd0tleV0pIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbVtyb3dLZXldID09PSByZWNvcmRbcm93S2V5XSkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dEYXRhcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBuZXdTZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IG5ld1NlbGVjdGVkUm93RGF0YXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3RBbGwoc2VsZWN0ZWQ6IGFueSwgc2VsZWN0ZWRSb3dzOiBhbnksIGNoYW5nZVJvd3M6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMsIHNlbGVjdGVkUm93RGF0YXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgbGV0IG5ld2RhdGFzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bcm93S2V5XSk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgICAgbmV3ZGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhcywgLi4uY2hhbmdlUm93c107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dEYXRhcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW1bcm93S2V5XSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3ZGF0YXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3aWRzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICAgIG5ld2RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogWy4uLm5ld2lkc10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFsuLi5uZXdkYXRhc10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dEYXRhcztcclxuICB9XHJcbiAgcmVzZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0U2VsZWN0ZWRSb3dLZXlzKGRhdGEpIHtcclxuICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBkYXRhLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXNTdG9yZTogeyBbY3VycmVudFBhZ2VdOiBkYXRhIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0U2VsZWN0ZWRSb3dEYXRhcyhkYXRhKSB7XHJcbiAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IGRhdGEsXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXNTdG9yZTogeyBbY3VycmVudFBhZ2VdOiBkYXRhIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcblxyXG4gIGdldENoaWxkcmVuRGF0YShkYXRhLCBrZXlzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IHJlc0tleSA9IFtdO1xyXG4gICAgaWYgKGRhdGEuY2hpbGROb2Rlcykge1xyXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IGRhdGEuY2hpbGROb2RlcztcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5EYXRhKGl0ZW0uY2hpbGROb2Rlcywga2V5cyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBpdGVtW3Jvd0tleV1dO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXNLZXkgPSBbLi4ua2V5cywgZGF0YVtyb3dLZXldXTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNLZXk7XHJcbiAgfVxyXG5cclxuICByZW5kZXJUb29sQnV0dG9ucyh0b29sYnV0dG9uczogYW55LCBtYXJnaW5mbGFnID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IGZsYWcgPSB0b29sYnV0dG9ucy5sZW5ndGggPiA1O1xyXG4gICAgY29uc3QgeyBzaG93U2VhcmNoID0gdHJ1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiA0KSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnNcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJ0b29sLWJ1dHRvbnMtbWFyZ2luXCIpXTogIXNob3dTZWFyY2ggfHwgbWFyZ2luZmxhZyxcclxuICAgICAgICB9KX1cclxuICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGVkaXRvckZvcm0gPSB0cnVlLCBidXR0b25zID0gW10sIGFjdGlvblBvcnBzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgY29sdW1uQnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgcmVjb3JkU2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChyZWNvcmRTaG93KSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICAgIGlmIChldmFsKHJlY29yZFNob3cpKSB7XHJcbiAgICAgICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZWNvcmRTaG93ID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgICAgY29uc3Qgc2hvdyA9IHJlY29yZFNob3cocmVjb3JkKTtcclxuICAgICAgICAgIHNob3cgJiYgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgZmxhZyA9IG5ld0J1dHRvbnMubGVuZ3RoID4gMztcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDIpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBpZiAoaW5kZXggPCAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAzKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfT5cclxuICAgICAgICAgICAgICAgIDxFbGxpcHNpc091dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yX2ZpcnN0XCIpXTogaW5kZXggPT09IDAsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH06IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3QgeyBzZWFyY2hLZXkgPSBcImtleVwiLCBzZWFyY2hGaWVsZCA9IFwiXCIgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpfHx7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0U2VhcmNoKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBzZXRUcmVlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUG9ycHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgcm93U2VsZWN0aW9uID0ge30sXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgaWYgKHNob3dSb3dTZWxlY3Rpb24pIHtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgcm93U2VsZWN0aW9uOiB7XHJcbiAgICAgICAgICBzZWxlY3RlZFJvd0tleXM6IHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgICAuLi5yb3dTZWxlY3Rpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoID09PSB0cnVlIHx8IHRlbXAuc2VhcmNoPy5zaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAuc2VhcmNoPy5sYWJlbCB8fCB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBsYWJlbENvbDogdGVtcC5zZWFyY2g/LmxhYmVsQ29sLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDogdGVtcC5zZWFyY2g/LndyYXBwZXJDb2wsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzID8gdGVtcC5ydWxlcyA6IFtdLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgICAgZGljdE5hbWU6IHRlbXAuZGljdE5hbWUsXHJcbiAgICAgICAgICBwcm9wczogb21pdCh7IC4uLnRlbXAucHJvcHMgfSwgW1wiZGVmYXVsdFZhbHVlXCIsIFwidmFsdWVcIl0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXg7XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlW25hbWVdID0gdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgaWYgKHRlbXAuc3R5bGUpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgIHt0ZXh0ICE9PSBcIlwiICYmIHRleHQgIT09IG51bGwgJiYgdGV4dCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtYmFja1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtdGV4dFwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZWxsaXBzaXM6IHRydWUsXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICBpZiAodGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHNlbGZCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RXllT3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFZGl0T3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImFkZFwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25TaG93Rm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICBvblNob3dGb3JtKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImRlbGV0ZVwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5kZWxldGUzfSAvPn1cclxuICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgID5cclxuICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA6IDIwMCxcclxuICAgICAgICBmaXhlZDogXCJyaWdodFwiLFxyXG4gICAgICAgIGVsbGlwc2lzOiB0cnVlLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhY3Rpb25cIil9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICBpZiAoY29sdW1uT3JkZXIpXHJcbiAgICAgIHRhYmxlQ29sdW1uID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiBcIuW6j+WPt1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGxldCBzZWFyY2hGbGFnID0gc2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbCA9IHRhYmxlUGFyYW1zLnNjcm9sbDtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgc2Nyb2xsOiB7IHg6IFwibWF4LWNvbnRlbnRcIiwgLi4uc2Nyb2xsIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlXCIpLCBjbGFzc05hbWUpfT5cclxuICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXRpdGxlXCIpKX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS1wYW5lXCIpKX1cclxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImxlZnRcIil9PlxyXG4gICAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnRyZWVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJyaWdodFwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuby1sZWZ0LXJpZ2h0XCIpXTogIXNob3dMZWZ0LFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgPEhlYWRlclNlYXJjaFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXM9e3NlYXJjaEZvcm1zfVxyXG4gICAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uPXt0b29sQnV0dG9uUG9zaXRpb259XHJcbiAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1Qcm9wcz17dGhpcy5wcm9wcy5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJlxyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJidXR0b21cIiAmJlxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbEJ1dHRvbnMoc2VsZkJ1dHRvbnMsIHNlYXJjaEZvcm1zLmxlbmd0aCA9PSAwKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wXCIpXTpcclxuICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXIgPT0gZmFsc2UgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyPy50b29scz8ubGVuZ3RoID09IDAgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVUb29sPy50b29scz8ubGVuZ3RoID09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|
|
1055
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJJY29uIiwiaWNvblR5cGUiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsImdldExlc3MiLCJyZXF1ZXN0Iiwib21pdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJvblNlYXJjaCIsInNlbGVjdGVkIiwicmVzIiwia2V5Iiwia2V5cyIsImxlbmd0aCIsInN0b3JlUHJlZml4IiwidHlwZSIsImNvbnRlbnQiLCJzaXplIiwic2VsZWN0ZWRSb3dLZXlzIiwic2VsZWN0ZWRSb3dEYXRhcyIsInRyZWVTZWxlY3RlZEtleSIsImV4cGFuZCIsImZvcm1UeXBlIiwidGFibGVTaXplIiwiaW5pdERhdGEiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRTZWFyY2hQYXJhbXMiLCJlZGl0b3JmbGFnIiwiZWRpdG9yUmVmIiwic2hvdyIsImhpZGVGb3JtIiwibG9hZGluZyIsInNldExvYWRpbmciLCJkZWxldGVVcmwiLCJvbkRlbGV0ZSIsImRlbGV0ZVBhcmFtcyIsIndhcm5pbmciLCJFcnJvciIsImNvbmZpcm0iLCJvbk9rIiwiZGVmYXVsdFBhcmFtcyIsIm1ldGhvZCIsImlkcyIsImpvaW4iLCJyZXF1ZXN0UGFyYW1zIiwidGhlbiIsImNvZGUiLCJzdWNjZXNzIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJ0YWJsZVJlZiIsInN0b3JlIiwibG9hZCIsInRhYmxlTG9hZCIsImF1dG9Mb2FkIiwicmVsb2FkIiwiY2FsbGJhY2siLCJkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwicmVjb3JkIiwidGFibGVQcm9wcyIsInJvd0tleSIsIm5ld1NlbGVjdGVkUm93S2V5cyIsIm5ld1NlbGVjdGVkUm93RGF0YXMiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZXRTdGF0ZSIsInNlbGVjdGVkUm93cyIsImNoYW5nZVJvd3MiLCJuZXdpZHMiLCJuZXdkYXRhcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwic2VsZWN0ZWRSb3dLZXlzU3RvcmUiLCJzZWxlY3RlZFJvd0RhdGFzU3RvcmUiLCJmcm9tVmFsdWUiLCJnZXRTZWFyY2hWYWx1ZXMiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsImVkaXRvckZvcm0iLCJidXR0b25zIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsInJlc2V0U2VhcmNoIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJzZXREYXRhIiwidHJlZVJlZiIsImNvbHVtbnMiLCJzdWJtaXRVcmwiLCJmb3JtUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsInJvd1NlbGVjdGlvbiIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwidGl0bGUiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsInNob3dGb3JtIiwiZGVsZXRlMyIsIkFycmF5IiwiaXNBcnJheSIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidG9vbEZsYWciLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInRhYmxlVG9vbCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYmFyIiwidG9vbHMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQiw0QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUNFQyxZQURGLEVBRUVDLFdBRkYsRUFHRUMsWUFIRixFQUlFQyxhQUpGLEVBS0VDLFlBTEYsRUFNRUMsZ0JBTkYsUUFPTyxtQkFQUDtBQVFBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQW1ETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0Qiw4QkFBTUEsS0FBTjs7QUFEc0IsNEVBTGIxQixLQUFLLENB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b3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uLy4uL2Jhc2UvdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL2Jhc2UvdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vYmFzZS9wb3BvdmVyXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2Jhc2UvY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbiAgRWRpdE91dGxpbmVkLFxyXG4gIFJpZ2h0T3V0bGluZWQsXHJcbiAgUGx1c091dGxpbmVkLFxyXG4gIEVsbGlwc2lzT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IElGb3JtUHJvcHMgfSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtL0Zvcm1cIjtcclxuaW1wb3J0IEhlYWRlclNlYXJjaCBmcm9tIFwiLi4vSGVhZGVyU2VhcmNoXCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG4gIHBhZ2luYXRpb24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhumhtVxyXG4gIGNvbHVtbk9yZGVyPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrooajmoLzluo/liJdcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBGb3JtUHJvcHMgZXh0ZW5kcyBJRm9ybVByb3BzIHt9XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlpLTpg6jmkJzntKLmoI9cclxuICB0YWJsZVByb3BzPzogVGFibGVQcm9wczsgLy/ooajmoLzlj4LmlbBcclxuICB0cmVlUHJvcHM/OiBUcmVlUHJvcHM7IC8v5bem5L6n5qCR5Y+C5pWwXHJcbiAgc3VibWl0UGFyYW1zPzogT2JqZWN0OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbiAgb25EZWxldGU/OiAoc2VsZWN0ZWRLZXlzPzogQXJyYXk8YW55PikgPT4gdm9pZDsgLy/liKDpmaTlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dpZHPmi7zmjqXkvKDpgJLnu5nlkI7lj7BcclxuICBkZWxldGVQYXJhbXM/OiBPYmplY3Q7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25TZWFyY2g/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgaW5pdERhdGE/OiBhbnk7IC8v5Yid5aeL5YyW5Zue6LCD5Ye95pWw77yM5ZyoY29tcG9uZW50RGlkTW91bnTkuK3osIPnlKhcclxuICBidXR0b25zPzogQXJyYXk8c3RyaW5nPjsgLy/mjInpkq7pm4blkIggIFsnYWRkJywnZGVsZXRlJywnc2VhcmNoJywnZWRpdG9yJ11cclxuICBvblNob3dGb3JtPzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uSGlkZUZvcm0/OiAoKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uRm9ybUNoYW5nZT86IChjaGFuZ2VkVmFsdWVzPzogYW55LCBhbGxWYWx1ZXM/OiBhbnkpID0+IHZvaWQ7IC8v6KGo5Y2Vb25DaGFuZ2Xlm57osINcclxuICBmb3JtVHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCI7XHJcbiAgZm9ybUNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/ooajljZXmoKHpqoxcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogXCJyaWdodFwiIHwgXCJidXR0b21cIjtcclxuICBwYWdlVGl0bGU/OiBzdHJpbmcgfCBSZWFjdE5vZGU7XHJcbiAgZm9ybVByb3BzPzogRm9ybVByb3BzO1xyXG4gIGFjdGlvblBvcnBzPzogeyB0ZXh0QWxpZ24/OiBzdHJpbmc7IHNob3dJY29uPzogYm9vbGVhbjsgd2lkdGg/OiBudW1iZXIgfTtcclxuICBzZWFyY2hGb3JtUHJvcHM/OiB7IHdyYXBwZXJDb2w/OiBhbnk7IGxhYmVsQ29sPzogYW55IH07XHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHR5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcImZvcm1UeXBlXCIgOiBcImZvcm1UeXBlXCJcclxuICAgICk7XHJcbiAgICB0eXBlID0gdHlwZT8uY29udGVudDtcclxuICAgIGxldCBzaXplID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBzaXplID0gc2l6ZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGZvcm1UeXBlOiB0eXBlIHx8IFwibW9kYWxcIixcclxuICAgICAgdGFibGVTaXplOiBzaXplIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGluaXREYXRhIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaW5pdERhdGEgJiYgaW5pdERhdGEoKTtcclxuICB9XHJcblxyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRTZWFyY2hQYXJhbXMocGFyYW1zKTtcclxuICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdCA9IChjaGVja2VkVHJlZUtleXM6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgeyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHZhbHVlID0geyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCwgZGVwdElkOiBjaGVja2VkVHJlZUtleXNbMF0gfTtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uU2VhcmNoKSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25TZWFyY2godmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zZXRMb2FkaW5nKGxvYWRpbmcpO1xyXG4gIH1cclxuXHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsLCBvbkRlbGV0ZSwgZGVsZXRlUGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG9uRGVsZXRlKSB7XHJcbiAgICAgIG9uRGVsZXRlICYmIG9uRGVsZXRlKHNlbGVjdGVkUm93S2V5cyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIE1vZGFsLmNvbmZpcm0oe1xyXG4gICAgICBjb250ZW50OiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICAvLyBjZW50ZXJlZDp0cnVlLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBwYXJhbXM6IHsgaWRzOiBzZWxlY3RlZFJvd0tleXMuam9pbigpIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLliKDpmaTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2gocGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKHBhcmFtcyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQocGFyYW1zID0ge30sIGF1dG9Mb2FkID0gdHJ1ZSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoe1xyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGF1dG9Mb2FkICYmXHJcbiAgICAgICAgICByZXM/LmRhdGE/LnJlY29yZHM/Lmxlbmd0aCA9PSAwICYmXHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRQYWdlICE9PSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgICAgICAgIHBhcmFtczogeyBjdXJyZW50OiAxLCAuLi5wYXJhbXMgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdChyZWNvcmQ6IGFueSwgc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMsIHNlbGVjdGVkUm93RGF0YXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXNdO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5uZXdTZWxlY3RlZFJvd0tleXMsIHJlY29yZFtyb3dLZXldXTtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dEYXRhcyA9IFsuLi5uZXdTZWxlY3RlZFJvd0RhdGFzLCByZWNvcmRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZFtyb3dLZXldKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3RlZFJvd0tleXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW1bcm93S2V5XSA9PT0gcmVjb3JkW3Jvd0tleV0pIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93RGF0YXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogbmV3U2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBuZXdTZWxlY3RlZFJvd0RhdGFzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsKHNlbGVjdGVkOiBhbnksIHNlbGVjdGVkUm93czogYW55LCBjaGFuZ2VSb3dzOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzLCBzZWxlY3RlZFJvd0RhdGFzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgbmV3aWRzOiBhbnkgPSBbXTtcclxuICAgIGxldCBuZXdkYXRhczogYW55ID0gW107XHJcbiAgICBpZiAoY2hhbmdlUm93cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBjaGFuZ2VJZHMgPSBjaGFuZ2VSb3dzLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW3Jvd0tleV0pO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICAgIG5ld2RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXMsIC4uLmNoYW5nZVJvd3NdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2VJZHMuaW5kZXhPZihpdGVtW3Jvd0tleV0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2RhdGFzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgICBuZXdkYXRhcyA9IFsuLi5zZWxlY3RlZFJvd0RhdGFzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbLi4ubmV3ZGF0YXNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cztcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dEYXRhcygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93RGF0YXM7XHJcbiAgfVxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93S2V5cyhkYXRhKSB7XHJcbiAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogZGF0YSxcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzU3RvcmU6IHsgW2N1cnJlbnRQYWdlXTogZGF0YSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93RGF0YXMoZGF0YSkge1xyXG4gICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBkYXRhLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzU3RvcmU6IHsgW2N1cnJlbnRQYWdlXTogZGF0YSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gNCkge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcC1ib3gnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIOabtOWkmiA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBlZGl0b3JGb3JtID0gdHJ1ZSwgYnV0dG9ucyA9IFtdLCBhY3Rpb25Qb3JwcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBuZXdCdXR0b25zID0gW107XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgIGNvbnN0IHNob3cgPSByZWNvcmRTaG93KHJlY29yZCk7XHJcbiAgICAgICAgICBzaG93ICYmIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZsYWcgPSBuZXdCdXR0b25zLmxlbmd0aCA+IDM7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9OiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHsgc2VhcmNoS2V5ID0gXCJrZXlcIiwgc2VhcmNoRmllbGQgPSBcIlwiIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKSB8fCB7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0U2VhcmNoKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBzZXRUcmVlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgZm9ybVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID0gXCJidXR0b21cIixcclxuICAgICAgYWN0aW9uUG9ycHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgcm93U2VsZWN0aW9uID0ge30sXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgaWYgKHNob3dSb3dTZWxlY3Rpb24pIHtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgcm93U2VsZWN0aW9uOiB7XHJcbiAgICAgICAgICBzZWxlY3RlZFJvd0tleXM6IHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgICAuLi5yb3dTZWxlY3Rpb24sXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoID09PSB0cnVlIHx8IHRlbXAuc2VhcmNoPy5zaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAuc2VhcmNoPy5sYWJlbCB8fCB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBsYWJlbENvbDogdGVtcC5zZWFyY2g/LmxhYmVsQ29sLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDogdGVtcC5zZWFyY2g/LndyYXBwZXJDb2wsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzID8gdGVtcC5ydWxlcyA6IFtdLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgICAgZGljdE5hbWU6IHRlbXAuZGljdE5hbWUsXHJcbiAgICAgICAgICBwcm9wczogb21pdCh7IC4uLnRlbXAucHJvcHMgfSwgW1wiZGVmYXVsdFZhbHVlXCIsIFwidmFsdWVcIl0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXg7XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlW25hbWVdID0gdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgaWYgKHRlbXAuc3R5bGUpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgIHt0ZXh0ICE9PSBcIlwiICYmIHRleHQgIT09IG51bGwgJiYgdGV4dCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtYmFja1wiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJjb2wtdGV4dFwiKX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX1cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZWxsaXBzaXM6IHRydWUsXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnByb3BzO1xyXG4gICAgICBpZiAodGVtcD8uY29sdW1uU2hvdyAhPT0gZmFsc2UpIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHNlbGZCdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RXllT3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFZGl0T3V0bGluZWQgLz59XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImFkZFwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgb25TaG93Rm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICBvblNob3dGb3JtKCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICBpY29uPXs8UGx1c091dGxpbmVkIC8+fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImRlbGV0ZVwiKSA+IC0xKSB7XHJcbiAgICAgIHNlbGZCdXR0b25zLnB1c2goXHJcbiAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5kZWxldGUzfSAvPn1cclxuICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgID5cclxuICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4udGV4dEFsaWduXHJcbiAgICAgICAgICA6IFwiY2VudGVyXCIsXHJcbiAgICAgICAgd2lkdGg6IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgPyBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA6IDIwMCxcclxuICAgICAgICBmaXhlZDogXCJyaWdodFwiLFxyXG4gICAgICAgIGVsbGlwc2lzOiB0cnVlLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJhY3Rpb25cIil9PlxyXG4gICAgICAgICAgICAgIHt0aGlzLnJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zLCByZWNvcmQpfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICBpZiAoY29sdW1uT3JkZXIpXHJcbiAgICAgIHRhYmxlQ29sdW1uID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRpdGxlOiBcIuW6j+WPt1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDgwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGxldCBzZWFyY2hGbGFnID0gc2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbCA9IHRhYmxlUGFyYW1zLnNjcm9sbDtcclxuICAgICAgdGFibGVQYXJhbXMgPSB7XHJcbiAgICAgICAgLi4udGFibGVQYXJhbXMsXHJcbiAgICAgICAgc2Nyb2xsOiB7IHg6IFwibWF4LWNvbnRlbnRcIiwgLi4uc2Nyb2xsIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlXCIpLCBjbGFzc05hbWUpfT5cclxuICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGUgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXRpdGxlXCIpKX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS1wYW5lXCIpKX1cclxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImxlZnRcIil9PlxyXG4gICAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICAgIHsuLi5vdGhlcnRyZWVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJyaWdodFwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuby1sZWZ0LXJpZ2h0XCIpXTogIXNob3dMZWZ0LFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgICAgPEhlYWRlclNlYXJjaFxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXM9e3NlYXJjaEZvcm1zfVxyXG4gICAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uPXt0b29sQnV0dG9uUG9zaXRpb259XHJcbiAgICAgICAgICAgICAgICBvblNlYXJjaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1Qcm9wcz17dGhpcy5wcm9wcy5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJlxyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJidXR0b21cIiAmJlxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyVG9vbEJ1dHRvbnMoc2VsZkJ1dHRvbnMsIHNlYXJjaEZvcm1zLmxlbmd0aCA9PSAwKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpLCB7XHJcbiAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wXCIpXTpcclxuICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXIgPT0gZmFsc2UgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyPy50b29scz8ubGVuZ3RoID09IDAgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVUb29sPy50b29scz8ubGVuZ3RoID09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|
|
@@ -173,6 +173,9 @@ var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
|
|
|
173
173
|
|
|
174
174
|
var props = _objectSpread({}, itemProps);
|
|
175
175
|
|
|
176
|
+
var searchDisabled = props.searchDisabled === true ? true : false;
|
|
177
|
+
delete props.searchDisabled;
|
|
178
|
+
|
|
176
179
|
if (!item.type || item.type == "Input") {
|
|
177
180
|
props.allowChars = true;
|
|
178
181
|
} else {
|
|
@@ -219,7 +222,7 @@ var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
|
|
|
219
222
|
width: "100%"
|
|
220
223
|
}
|
|
221
224
|
}, props), {}, {
|
|
222
|
-
disabled:
|
|
225
|
+
disabled: searchDisabled
|
|
223
226
|
}))));
|
|
224
227
|
}), /*#__PURE__*/React.createElement(Col, {
|
|
225
228
|
md: {
|
|
@@ -269,4 +272,4 @@ var HeaderSearch = /*#__PURE__*/function (_PureComponent) {
|
|
|
269
272
|
}(PureComponent);
|
|
270
273
|
|
|
271
274
|
export default HeaderSearch;
|
|
272
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjcmVhdGVSZWYiLCJleHBhbmQiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRGaWVsZHNWYWx1ZSIsImZyb21WYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwib25TZWFyY2giLCJwcm9wcyIsImRhdGVGb3JtYXQiLCJrZXkiLCJvbGRkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwicmVzZXRGaWVsZHMiLCJzZWFyY2hGb3JtcyIsInRvb2xCdXR0b25Qb3NpdGlvbiIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJsZW5ndGgiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzdGF0ZSIsImFsbG93Q2hhcnMiLCJ0eXBlIiwiZGVmYXVsdEl0ZW0iLCJsYWJlbCIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInNwYW4iLCJwYWRkaW5nUmlnaHQiLCJwbGFjZWhvbGRlciIsInN0eWxlIiwiZGlzYWJsZWQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5MZWZ0IiwicmVzZXRTZWFyY2giLCJzZXRTdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJ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QUFXbEMsTUFBWCxnQkFBb0Isb0JBQUMsVUFBRCxPQUFwQixnQkFBcUMsb0JBQUMsWUFBRCxPQVZ4QyxDQTFCSixDQVpGLENBeERGLENBREYsQ0FERixDQURGLENBREY7QUFzSEQ7Ozs7RUEzS3dCakIsYTs7QUE2SzNCLGVBQWVlLFlBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuXHJcbmludGVyZmFjZSBTZWFyY2hJdGVtUHJvcHMge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGxhYmVsQ29sPzogYW55O1xyXG4gIHdyYXBwZXJDb2w/OiBhbnk7XHJcbiAgcHJvcHM/OiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIFNlYXJjaFByb3BzIHtcclxuICBzZWFyY2hGb3JtczogQXJyYXk8U2VhcmNoSXRlbVByb3BzPjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICB0b29sQnV0dG9uUG9zaXRpb24/OiBzdHJpbmc7XHJcbiAgb25TZWFyY2g/OiBhbnk7XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogb2JqZWN0O1xyXG59XHJcblxyXG5jbGFzcyBIZWFkZXJTZWFyY2ggZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFNlYXJjaFByb3BzLCBhbnk+IHtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgc3RhdGUgPSB7IGV4cGFuZDogZmFsc2UgfTtcclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUocGFyYW1zKTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSBmcm9tVmFsdWVba2V5XTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgZnJvbVZhbHVlW2tleV0gPSBbXHJcbiAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBtb21lbnQob2xkZGF0YVsxXSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfSBlbHNlIGlmKG9sZGRhdGEpe1xyXG4gICAgICAgICAgZnJvbVZhbHVlW2tleV0gPSBtb21lbnQob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaChmcm9tVmFsdWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzZWFyY2hGb3JtcyA9IFtdLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24sXHJcbiAgICAgIG9uU2VhcmNoLFxyXG4gICAgICBzZWFyY2hGb3JtUHJvcHMgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGxldCBjb2xTcGFuID0gMDtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEgOiAyO1xyXG4gICAgY29uc3QgaGVhZGVyUm91dCA9IHNlYXJjaEZvcm1zLmxlbmd0aCAlIDQ7XHJcbiAgICBpZiAoaGVhZGVyUm91dCA9PSAwKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxODtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAxKSB7XHJcbiAgICAgIGNvbFNwYW4gPSAxMjtcclxuICAgIH0gZWxzZSBpZiAoaGVhZGVyUm91dCA9PSAyKSB7XHJcbiAgICAgIGNvbFNwYW4gPSA2O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIil9PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJmb3JtXCIpKX0+XHJcbiAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICBsYWJlbENvbD17e319XHJcbiAgICAgICAgICAgICAgd3JhcHBlckNvbD17e319XHJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBkaXNwbGF5OiBcImZsZXhcIiwgZmxleFdyYXA6IFwid3JhcFwiIH19XHJcbiAgICAgICAgICAgICAgb25GaW5pc2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAvLyBsYWJlbEFsaWduPXsnbGVmdCd9XHJcbiAgICAgICAgICAgICAgey4uLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiBoZWFkZXJDb3VudCAmJiAhdGhpcy5zdGF0ZS5leHBhbmQpIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtPy5wcm9wcz8uYWxsb3dDaGFycyB8fCBmYWxzZTtcclxuICAgICAgICAgICAgICAgIGxldCBwcm9wcyA9IHsgLi4uaXRlbVByb3BzIH07XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAyNCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IDYgfX1cclxuICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbSB7Li4uZGVmYXVsdEl0ZW19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIDxDb2xcclxuICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAyNCB9fVxyXG4gICAgICAgICAgICAgICAgbGc9e3sgc3BhbjogdG9vbEJ1dHRvblBvc2l0aW9uID09IFwicmlnaHRcIiA/IDEyIDogNiB9fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgcGFkZGluZ1JpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQ9e1xyXG4gICAgICAgICAgICAgICAgICAodGhpcy5zdGF0ZS5leHBhbmQgfHwgc2VhcmNoRm9ybXMubGVuZ3RoIDwgNCkgJiZcclxuICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgICAgICAgID8gY29sU3BhblxyXG4gICAgICAgICAgICAgICAgICAgIDogMFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoLWJ1dHRvbnNcIiksIHtcclxuICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoLWJ1dHRvbnMtZmxleFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAxLFxyXG4gICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAvLyBvbkNsaWNrPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICBodG1sVHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxSZWxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kX3N0eWxlXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGV4cGFuZCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gXCLmlLbotbdcIiA6IFwi5bGV5byAXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyA8VXBPdXRsaW5lZCAvPiA6IDxEb3duT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvUm93PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyU2VhcmNoO1xyXG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwic3R5bGVzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJIZWFkZXJTZWFyY2giLCJjcmVhdGVSZWYiLCJleHBhbmQiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRGaWVsZHNWYWx1ZSIsImZyb21WYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwib25TZWFyY2giLCJwcm9wcyIsImRhdGVGb3JtYXQiLCJrZXkiLCJvbGRkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwicmVzZXRGaWVsZHMiLCJzZWFyY2hGb3JtcyIsInRvb2xCdXR0b25Qb3NpdGlvbiIsInNlYXJjaEZvcm1Qcm9wcyIsImNvbFNwYW4iLCJoZWFkZXJDb3VudCIsImhlYWRlclJvdXQiLCJsZW5ndGgiLCJ3aWR0aCIsImRpc3BsYXkiLCJmbGV4V3JhcCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJzdGF0ZSIsImFsbG93Q2hhcnMiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwic3BhbiIsInBhZGRpbmdSaWdodCIsInBsYWNlaG9sZGVyIiwic3R5bGUiLCJkaXNhYmxlZCIsIm1hcmdpblRvcCIsIm1hcmdpbkxlZnQiLCJyZXNldFNlYXJjaCIsInNldFN0YXRlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Q0FBYztBQUNabEQsWUFBQUEsTUFBTSxFQUFFLENBQUNBO0FBREcsV0FBZDtBQUdEO0FBUEgsU0FTRyxLQUFLa0MsS0FBTCxDQUFXbEMsTUFBWCxHQUFvQixJQUFwQixHQUEyQixJQVQ5QixFQVVHLEtBQUtrQyxLQUFMLENBQVdsQyxNQUFYLGdCQUFvQixvQkFBQyxVQUFELE9BQXBCLGdCQUFxQyxvQkFBQyxZQUFELE9BVnhDLENBMUJKLENBWkYsQ0EzREYsQ0FERixDQURGLENBREYsQ0FERjtBQXlIRDs7OztFQTlLd0JqQixhOztBQWdMM0IsZUFBZWUsWUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgVXBPdXRsaW5lZCxcclxuICBSZWxvYWRPdXRsaW5lZCxcclxuICBTZWFyY2hPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5cclxuaW50ZXJmYWNlIFNlYXJjaEl0ZW1Qcm9wcyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxDb2w/OiBhbnk7XHJcbiAgd3JhcHBlckNvbD86IGFueTtcclxuICBwcm9wcz86IGFueTtcclxufVxyXG5pbnRlcmZhY2UgU2VhcmNoUHJvcHMge1xyXG4gIHNlYXJjaEZvcm1zOiBBcnJheTxTZWFyY2hJdGVtUHJvcHM+OyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IHN0cmluZztcclxuICBvblNlYXJjaD86IGFueTtcclxuICBzZWFyY2hGb3JtUHJvcHM/OiBvYmplY3Q7XHJcbn1cclxuXHJcbmNsYXNzIEhlYWRlclNlYXJjaCBleHRlbmRzIFB1cmVDb21wb25lbnQ8U2VhcmNoUHJvcHMsIGFueT4ge1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBzdGF0ZSA9IHsgZXhwYW5kOiBmYWxzZSB9O1xyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShwYXJhbXMpO1xyXG4gIH1cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGZyb21WYWx1ZVtrZXldO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmcm9tVmFsdWVba2V5XSA9IFtcclxuICAgICAgICAgICAgbW9tZW50KG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gbW9tZW50KG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goZnJvbVZhbHVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoRm9ybXMgPSBbXSxcclxuICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uLFxyXG4gICAgICBvblNlYXJjaCxcclxuICAgICAgc2VhcmNoRm9ybVByb3BzID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBsZXQgY29sU3BhbiA9IDA7XHJcbiAgICBjb25zdCBoZWFkZXJDb3VudCA9IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxIDogMjtcclxuICAgIGNvbnN0IGhlYWRlclJvdXQgPSBzZWFyY2hGb3Jtcy5sZW5ndGggJSA0O1xyXG4gICAgaWYgKGhlYWRlclJvdXQgPT0gMCkge1xyXG4gICAgICBjb2xTcGFuID0gMTg7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMSkge1xyXG4gICAgICBjb2xTcGFuID0gMTI7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMikge1xyXG4gICAgICBjb2xTcGFuID0gNjtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0gd3JhcD5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaGVhZGVyXCIpfT5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZm9ybVwiKSl9PlxyXG4gICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgbGFiZWxDb2w9e3t9fVxyXG4gICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgZGlzcGxheTogXCJmbGV4XCIsIGZsZXhXcmFwOiBcIndyYXBcIiB9fVxyXG4gICAgICAgICAgICAgIG9uRmluaXNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgLy8gbGFiZWxBbGlnbj17J2xlZnQnfVxyXG4gICAgICAgICAgICAgIHsuLi5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAyNCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IDYgfX1cclxuICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEZvcm0uSXRlbSB7Li4uZGVmYXVsdEl0ZW19PlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInNlYXJjaC1idXR0b25zLWZsZXhcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgIGljb249ezxTZWFyY2hPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnJlc2V0U2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8UmVsb2FkT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAzICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZF9zdHlsZVwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gPFVwT3V0bGluZWQgLz4gOiA8RG93bk91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1Jvdz5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEhlYWRlclNlYXJjaDtcclxuIl19
|