nsc-react-component 2.11.3 → 2.11.5

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.
@@ -54,7 +54,7 @@ var NscDownLoad = /*#__PURE__*/function (_React$PureComponent) {
54
54
  } else if (fileId) {
55
55
  if (typeof fileId == "string") {
56
56
  if (type == "zip") {
57
- downloadZip(fileId, fileName);
57
+ downloadZip(fileId, fileName, requestConfig);
58
58
  } else {
59
59
  if (fileId.indexOf(",") > -1) {
60
60
  var fileIds = fileId.split(",");
@@ -67,7 +67,7 @@ var NscDownLoad = /*#__PURE__*/function (_React$PureComponent) {
67
67
  }
68
68
  } else {
69
69
  if (type == "zip") {
70
- downloadZip(fileId.join(","), fileName);
70
+ downloadZip(fileId.join(","), fileName, requestConfig);
71
71
  } else {
72
72
  fileId.map(function (item) {
73
73
  download(item, true, requestConfig);
@@ -91,4 +91,4 @@ var NscDownLoad = /*#__PURE__*/function (_React$PureComponent) {
91
91
  }(React.PureComponent);
92
92
 
93
93
  export { NscDownLoad as default };
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvZG93bmxvYWQvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsImRvd25sb2FkIiwiZG93bmxvYWRCeVVybCIsImRvd25sb2FkWmlwIiwiTnNjRG93bkxvYWQiLCJwcm9wcyIsImZpbGVJZCIsInVybCIsInJlcXVlc3RDb25maWciLCJmaWxlTmFtZSIsInR5cGUiLCJFcnJvciIsImluZGV4T2YiLCJmaWxlSWRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiam9pbiIsIm9uQ2xpY2siLCJiaW5kIiwiY2hpbGRyZW4iLCJQdXJlQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixVQUFqQjtBQUNBLElBQVFDLFFBQVIsR0FBaURELElBQWpELENBQVFDLFFBQVI7QUFBQSxJQUFrQkMsYUFBbEIsR0FBaURGLElBQWpELENBQWtCRSxhQUFsQjtBQUFBLElBQWlDQyxXQUFqQyxHQUFpREgsSUFBakQsQ0FBaUNHLFdBQWpDOztJQVVxQkMsVzs7Ozs7Ozs7Ozs7OztXQUNuQixtQkFBVTtBQUNSLHdCQU1JLEtBQUtDLEtBTlQ7QUFBQSxVQUNFQyxNQURGLGVBQ0VBLE1BREY7QUFBQSxVQUVFQyxHQUZGLGVBRUVBLEdBRkY7QUFBQSw4Q0FHRUMsYUFIRjtBQUFBLFVBR0VBLGFBSEYsc0NBR2tCLEVBSGxCO0FBQUEsVUFJRUMsUUFKRixlQUlFQSxRQUpGO0FBQUEseUNBS0VDLElBTEY7QUFBQSxVQUtFQSxJQUxGLGlDQUtTLE1BTFQ7O0FBT0EsVUFBSSxDQUFDSixNQUFELElBQVcsQ0FBQ0MsR0FBaEIsRUFBcUI7QUFDbkIsY0FBTSxJQUFJSSxLQUFKLENBQVUsZUFBVixDQUFOO0FBQ0QsT0FGRCxNQUVPLElBQUlMLE1BQUosRUFBWTtBQUNqQixZQUFJLE9BQU9BLE1BQVAsSUFBaUIsUUFBckIsRUFBK0I7QUFDN0IsY0FBSUksSUFBSSxJQUFJLEtBQVosRUFBbUI7QUFDakJQLFlBQUFBLFdBQVcsQ0FBQ0csTUFBRCxFQUFTRyxRQUFULENBQVg7QUFDRCxXQUZELE1BRU87QUFDTCxnQkFBSUgsTUFBTSxDQUFDTSxPQUFQLENBQWUsR0FBZixJQUFzQixDQUFDLENBQTNCLEVBQThCO0FBQzVCLGtCQUFNQyxPQUFPLEdBQUdQLE1BQU0sQ0FBQ1EsS0FBUCxDQUFhLEdBQWIsQ0FBaEI7QUFDQUQsY0FBQUEsT0FBTyxDQUFDRSxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFVO0FBQ3BCZixnQkFBQUEsUUFBUSxDQUFDZSxJQUFELEVBQU8sSUFBUCxFQUFhUixhQUFiLENBQVI7QUFDRCxlQUZEO0FBR0QsYUFMRCxNQUtPO0FBQ0xQLGNBQUFBLFFBQVEsQ0FBQ0ssTUFBRCxFQUFTLElBQVQsRUFBZUUsYUFBZixDQUFSO0FBQ0Q7QUFDRjtBQUNGLFNBYkQsTUFhTztBQUNMLGNBQUlFLElBQUksSUFBSSxLQUFaLEVBQW1CO0FBQ2pCUCxZQUFBQSxXQUFXLENBQUNHLE1BQU0sQ0FBQ1csSUFBUCxDQUFZLEdBQVosQ0FBRCxFQUFtQlIsUUFBbkIsQ0FBWDtBQUNELFdBRkQsTUFFTztBQUNMSCxZQUFBQSxNQUFNLENBQUNTLEdBQVAsQ0FBVyxVQUFDQyxJQUFELEVBQVU7QUFDbkJmLGNBQUFBLFFBQVEsQ0FBQ2UsSUFBRCxFQUFPLElBQVAsRUFBYVIsYUFBYixDQUFSO0FBQ0QsYUFGRDtBQUdEO0FBQ0Y7QUFDRixPQXZCTSxNQXVCQTtBQUNMTixRQUFBQSxhQUFhLENBQUNLLEdBQUQsRUFBTUMsYUFBTixFQUFxQkMsUUFBckIsQ0FBYjtBQUNEO0FBQ0Y7OztXQUNELGtCQUEwQjtBQUN4QiwwQkFBTztBQUFLLFFBQUEsT0FBTyxFQUFFLEtBQUtTLE9BQUwsQ0FBYUMsSUFBYixDQUFrQixJQUFsQjtBQUFkLFNBQXdDLEtBQUtkLEtBQUwsQ0FBV2UsUUFBbkQsQ0FBUDtBQUNEOzs7O0VBeENzQ3JCLEtBQUssQ0FBQ3NCLGE7O1NBQTFCakIsVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuY29uc3QgeyBkb3dubG9hZCwgZG93bmxvYWRCeVVybCwgZG93bmxvYWRaaXAgfSA9IGZpbGU7XHJcblxyXG5pbnRlcmZhY2UgSVByb3BzIHtcclxuICBmaWxlSWQ/OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+O1xyXG4gIHVybD86IHN0cmluZztcclxuICByZXF1ZXN0Q29uZmlnPzogYW55O1xyXG4gIGZpbGVOYW1lPzogc3RyaW5nO1xyXG4gIFtwcm9wTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIHR5cGU/OiBcInppcFwiIHwgXCJmaWxlXCI7XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjRG93bkxvYWQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElQcm9wcywgYW55PiB7XHJcbiAgb25DbGljaygpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZmlsZUlkLFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgICAgZmlsZU5hbWUsXHJcbiAgICAgIHR5cGUgPSBcImZpbGVcIixcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFmaWxlSWQgJiYgIXVybCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCLmlofku7ZpZOWSjHVybOmDveS4jeiDveS4uuepulwiKTtcclxuICAgIH0gZWxzZSBpZiAoZmlsZUlkKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZmlsZUlkID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBpZiAodHlwZSA9PSBcInppcFwiKSB7XHJcbiAgICAgICAgICBkb3dubG9hZFppcChmaWxlSWQsIGZpbGVOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGZpbGVJZC5pbmRleE9mKFwiLFwiKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbGVJZHMgPSBmaWxlSWQuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgICBmaWxlSWRzLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIGRvd25sb2FkKGl0ZW0sIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRvd25sb2FkKGZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiemlwXCIpIHtcclxuICAgICAgICAgIGRvd25sb2FkWmlwKGZpbGVJZC5qb2luKFwiLFwiKSwgZmlsZU5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmaWxlSWQubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGRvd25sb2FkKGl0ZW0sIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkb3dubG9hZEJ5VXJsKHVybCwgcmVxdWVzdENvbmZpZywgZmlsZU5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIHJldHVybiA8ZGl2IG9uQ2xpY2s9e3RoaXMub25DbGljay5iaW5kKHRoaXMpfT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L2Rpdj47XHJcbiAgfVxyXG59XHJcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvZG93bmxvYWQvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsImRvd25sb2FkIiwiZG93bmxvYWRCeVVybCIsImRvd25sb2FkWmlwIiwiTnNjRG93bkxvYWQiLCJwcm9wcyIsImZpbGVJZCIsInVybCIsInJlcXVlc3RDb25maWciLCJmaWxlTmFtZSIsInR5cGUiLCJFcnJvciIsImluZGV4T2YiLCJmaWxlSWRzIiwic3BsaXQiLCJtYXAiLCJpdGVtIiwiam9pbiIsIm9uQ2xpY2siLCJiaW5kIiwiY2hpbGRyZW4iLCJQdXJlQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxLQUFaLE1BQXVCLE9BQXZCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixVQUFqQjtBQUNBLElBQVFDLFFBQVIsR0FBaURELElBQWpELENBQVFDLFFBQVI7QUFBQSxJQUFrQkMsYUFBbEIsR0FBaURGLElBQWpELENBQWtCRSxhQUFsQjtBQUFBLElBQWlDQyxXQUFqQyxHQUFpREgsSUFBakQsQ0FBaUNHLFdBQWpDOztJQVVxQkMsVzs7Ozs7Ozs7Ozs7OztXQUNuQixtQkFBVTtBQUNSLHdCQU1JLEtBQUtDLEtBTlQ7QUFBQSxVQUNFQyxNQURGLGVBQ0VBLE1BREY7QUFBQSxVQUVFQyxHQUZGLGVBRUVBLEdBRkY7QUFBQSw4Q0FHRUMsYUFIRjtBQUFBLFVBR0VBLGFBSEYsc0NBR2tCLEVBSGxCO0FBQUEsVUFJRUMsUUFKRixlQUlFQSxRQUpGO0FBQUEseUNBS0VDLElBTEY7QUFBQSxVQUtFQSxJQUxGLGlDQUtTLE1BTFQ7O0FBT0EsVUFBSSxDQUFDSixNQUFELElBQVcsQ0FBQ0MsR0FBaEIsRUFBcUI7QUFDbkIsY0FBTSxJQUFJSSxLQUFKLENBQVUsZUFBVixDQUFOO0FBQ0QsT0FGRCxNQUVPLElBQUlMLE1BQUosRUFBWTtBQUNqQixZQUFJLE9BQU9BLE1BQVAsSUFBaUIsUUFBckIsRUFBK0I7QUFDN0IsY0FBSUksSUFBSSxJQUFJLEtBQVosRUFBbUI7QUFDakJQLFlBQUFBLFdBQVcsQ0FBQ0csTUFBRCxFQUFTRyxRQUFULEVBQWtCRCxhQUFsQixDQUFYO0FBQ0QsV0FGRCxNQUVPO0FBQ0wsZ0JBQUlGLE1BQU0sQ0FBQ00sT0FBUCxDQUFlLEdBQWYsSUFBc0IsQ0FBQyxDQUEzQixFQUE4QjtBQUM1QixrQkFBTUMsT0FBTyxHQUFHUCxNQUFNLENBQUNRLEtBQVAsQ0FBYSxHQUFiLENBQWhCO0FBQ0FELGNBQUFBLE9BQU8sQ0FBQ0UsR0FBUixDQUFZLFVBQUNDLElBQUQsRUFBVTtBQUNwQmYsZ0JBQUFBLFFBQVEsQ0FBQ2UsSUFBRCxFQUFPLElBQVAsRUFBYVIsYUFBYixDQUFSO0FBQ0QsZUFGRDtBQUdELGFBTEQsTUFLTztBQUNMUCxjQUFBQSxRQUFRLENBQUNLLE1BQUQsRUFBUyxJQUFULEVBQWVFLGFBQWYsQ0FBUjtBQUNEO0FBQ0Y7QUFDRixTQWJELE1BYU87QUFDTCxjQUFJRSxJQUFJLElBQUksS0FBWixFQUFtQjtBQUNqQlAsWUFBQUEsV0FBVyxDQUFDRyxNQUFNLENBQUNXLElBQVAsQ0FBWSxHQUFaLENBQUQsRUFBbUJSLFFBQW5CLEVBQTZCRCxhQUE3QixDQUFYO0FBQ0QsV0FGRCxNQUVPO0FBQ0xGLFlBQUFBLE1BQU0sQ0FBQ1MsR0FBUCxDQUFXLFVBQUNDLElBQUQsRUFBVTtBQUNuQmYsY0FBQUEsUUFBUSxDQUFDZSxJQUFELEVBQU8sSUFBUCxFQUFhUixhQUFiLENBQVI7QUFDRCxhQUZEO0FBR0Q7QUFDRjtBQUNGLE9BdkJNLE1BdUJBO0FBQ0xOLFFBQUFBLGFBQWEsQ0FBQ0ssR0FBRCxFQUFNQyxhQUFOLEVBQXFCQyxRQUFyQixDQUFiO0FBQ0Q7QUFDRjs7O1dBQ0Qsa0JBQTBCO0FBQ3hCLDBCQUFPO0FBQUssUUFBQSxPQUFPLEVBQUUsS0FBS1MsT0FBTCxDQUFhQyxJQUFiLENBQWtCLElBQWxCO0FBQWQsU0FBd0MsS0FBS2QsS0FBTCxDQUFXZSxRQUFuRCxDQUFQO0FBQ0Q7Ozs7RUF4Q3NDckIsS0FBSyxDQUFDc0IsYTs7U0FBMUJqQixXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5jb25zdCB7IGRvd25sb2FkLCBkb3dubG9hZEJ5VXJsLCBkb3dubG9hZFppcCB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJUHJvcHMge1xyXG4gIGZpbGVJZD86IHN0cmluZyB8IEFycmF5PHN0cmluZz47XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XHJcbiAgW3Byb3BOYW1lOiBzdHJpbmddOiBhbnk7XHJcbiAgdHlwZT86IFwiemlwXCIgfCBcImZpbGVcIjtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NEb3duTG9hZCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SVByb3BzLCBhbnk+IHtcclxuICBvbkNsaWNrKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBmaWxlSWQsXHJcbiAgICAgIHVybCxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgICBmaWxlTmFtZSxcclxuICAgICAgdHlwZSA9IFwiZmlsZVwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIWZpbGVJZCAmJiAhdXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIuaWh+S7tmlk5ZKMdXJs6YO95LiN6IO95Li656m6XCIpO1xyXG4gICAgfSBlbHNlIGlmIChmaWxlSWQpIHtcclxuICAgICAgaWYgKHR5cGVvZiBmaWxlSWQgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiemlwXCIpIHtcclxuICAgICAgICAgIGRvd25sb2FkWmlwKGZpbGVJZCwgZmlsZU5hbWUscmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChmaWxlSWQuaW5kZXhPZihcIixcIikgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlSWRzID0gZmlsZUlkLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgZmlsZUlkcy5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgICBkb3dubG9hZChpdGVtLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkb3dubG9hZChmaWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodHlwZSA9PSBcInppcFwiKSB7XHJcbiAgICAgICAgICBkb3dubG9hZFppcChmaWxlSWQuam9pbihcIixcIiksIGZpbGVOYW1lLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUlkLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBkb3dubG9hZChpdGVtLCB0cnVlLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZG93bmxvYWRCeVVybCh1cmwsIHJlcXVlc3RDb25maWcsIGZpbGVOYW1lKTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICByZXR1cm4gPGRpdiBvbkNsaWNrPXt0aGlzLm9uQ2xpY2suYmluZCh0aGlzKX0+e3RoaXMucHJvcHMuY2hpbGRyZW59PC9kaXY+O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -93,7 +93,7 @@ var NscImage = /*#__PURE__*/function (_React$PureComponent) {
93
93
  }
94
94
 
95
95
  _context.next = 4;
96
- return previewImage(fileId);
96
+ return previewImage(fileId, requestConfig);
97
97
 
98
98
  case 4:
99
99
  res2 = _context.sent;
@@ -284,4 +284,4 @@ var NscImage = /*#__PURE__*/function (_React$PureComponent) {
284
284
  }(React.PureComponent);
285
285
 
286
286
  export { NscImage as default };
287
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1hZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsInN0eWxlcyIsImdldExlc3MiLCJFeWVPdXRsaW5lZCIsIkRvd25sb2FkT3V0bGluZWQiLCJEZWxldGVPdXRsaW5lZCIsIlNwaW4iLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsInByZXZpZXdJbWFnZSIsIk5zY0ltYWdlIiwicHJvcHMiLCJzdGF0ZSIsImltZ0RhdGEiLCJkZWZhdWx0SW1nIiwidmlzaWJsZSIsIm1hc2siLCJsb2FkaW5nIiwiZmlsZUlkIiwibmV3VmVyc2lvbiIsInJlcXVlc3RDb25maWciLCJyZXMyIiwic2V0U3RhdGUiLCJkYXRhIiwic2hvd0Vyck1zZyIsImltZyIsImJsb2JUb0Jhc2U2NCIsInRoZW4iLCJyZXMiLCJibG9iIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJ0YXJnZXQiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwib25lcnJvciIsIkVycm9yIiwicHJldlByb3BzIiwiZ2V0SW1nRGF0YSIsInNyYyIsImNsaWNrUHJldmlldyIsInNob3dEb3dubG9hZEljb24iLCJwcmV2aWV3Iiwic2hvd0RlbGV0ZUljb24iLCJvbkRlbGV0ZSIsIm9uUHJldmlldyIsIm9uRG93bmxvYWQiLCJwYXJhbXMiLCJ3aWR0aCIsImhlaWdodCIsImRpc3BsYXkiLCJvblZpc2libGVDaGFuZ2UiLCJ2YWx1ZSIsIlB1cmVDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLFNBQ0VDLFdBREYsRUFFRUMsZ0JBRkYsRUFJRUMsY0FKRixRQUtPLG1CQUxQO0FBT0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUVBLElBQVFDLFFBQVIsR0FBb0RQLElBQXBELENBQVFPLFFBQVI7QUFBQSxJQUFrQkMsZUFBbEIsR0FBb0RSLElBQXBELENBQWtCUSxlQUFsQjtBQUFBLElBQW1DQyxZQUFuQyxHQUFvRFQsSUFBcEQsQ0FBbUNTLFlBQW5DOztJQWlCcUJDLFE7Ozs7O0FBSW5CLG9CQUFZQyxLQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLDhCQUFNQSxLQUFOOztBQURpQixpRUFGakIsZ3FHQUVpQjs7QUFFakIsVUFBS0MsS0FBTCxHQUFhO0FBQ1hDLE1BQUFBLE9BQU8sRUFBRUYsS0FBSyxDQUFDRyxVQUFOLElBQW9CLE1BQUtBLFVBRHZCO0FBRVhDLE1BQUFBLE9BQU8sRUFBRSxLQUZFO0FBR1hDLE1BQUFBLElBQUksRUFBRSxLQUhLO0FBSVhDLE1BQUFBLE9BQU8sRUFBRTtBQUpFLEtBQWI7QUFGaUI7QUFRbEI7Ozs7O2dGQUNEO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw4QkFDcUQsS0FBS04sS0FEMUQsRUFDVU8sTUFEVixlQUNVQSxNQURWLEVBQ2tCQyxVQURsQixlQUNrQkEsVUFEbEIsc0NBQzhCQyxhQUQ5QixFQUM4QkEsYUFEOUIsc0NBQzhDLEVBRDlDOztBQUFBLHFCQUVNRCxVQUZOO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEsdUJBRzRCVixZQUFZLENBQUNTLE1BQUQsQ0FIeEM7O0FBQUE7QUFHVUcsZ0JBQUFBLElBSFY7QUFJSSxxQkFBS0MsUUFBTCxDQUFjO0FBQ1pULGtCQUFBQSxPQUFPLEVBQUVRLElBQUksQ0FBQ0UsSUFERjtBQUVaTixrQkFBQUEsT0FBTyxFQUFFO0FBRkcsaUJBQWQ7QUFKSjtBQUFBOztBQUFBO0FBQUE7QUFBQSx1QkFTc0JWLFFBQVEsQ0FBQ1csTUFBRCxFQUFTLEtBQVQsa0NBQ3JCRSxhQURxQjtBQUV4Qkksa0JBQUFBLFVBQVUsRUFBRTtBQUZZLG1CQVQ5Qjs7QUFBQTtBQVNVQyxnQkFBQUEsR0FUVjs7QUFhSSxpQ0FBSUEsR0FBRyxDQUFDRixJQUFSLHNDQUFJLFVBQVVBLElBQWQsRUFBb0I7QUFDbEIsdUJBQUtHLFlBQUwsZUFBa0JELEdBQUcsQ0FBQ0YsSUFBdEIsK0NBQWtCLFdBQVVBLElBQTVCLEVBQWtDSSxJQUFsQyxDQUF1QyxVQUFDQyxHQUFELEVBQVM7QUFDOUMsb0JBQUEsTUFBSSxDQUFDTixRQUFMLENBQWM7QUFDWlQsc0JBQUFBLE9BQU8sRUFBRWUsR0FERztBQUVaWCxzQkFBQUEsT0FBTyxFQUFFO0FBRkcscUJBQWQ7QUFJRCxtQkFMRDtBQU1ELGlCQVBELE1BT087QUFDTCx1QkFBS0ssUUFBTCxDQUFjO0FBQ1pMLG9CQUFBQSxPQUFPLEVBQUU7QUFERyxtQkFBZDtBQUdEOztBQXhCTDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxPOzs7Ozs7Ozs7O1dBMkJBLHNCQUFhWSxJQUFiLEVBQW1CO0FBQ2pCLGFBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVixFQUFxQjtBQUN0QyxZQUFNQyxVQUFVLEdBQUcsSUFBSUMsVUFBSixFQUFuQjs7QUFDQUQsUUFBQUEsVUFBVSxDQUFDRSxNQUFYLEdBQW9CLFVBQUNDLENBQUQsRUFBTztBQUN6QkwsVUFBQUEsT0FBTyxDQUFDSyxDQUFDLENBQUNDLE1BQUYsQ0FBU0MsTUFBVixDQUFQO0FBQ0QsU0FGRDs7QUFHQUwsUUFBQUEsVUFBVSxDQUFDTSxhQUFYLENBQXlCVixJQUF6Qjs7QUFDQUksUUFBQUEsVUFBVSxDQUFDTyxPQUFYLEdBQXFCLFlBQU07QUFDekJSLFVBQUFBLE1BQU0sQ0FBQyxJQUFJUyxLQUFKLENBQVUsb0JBQVYsQ0FBRCxDQUFOO0FBQ0QsU0FGRDtBQUdELE9BVE0sQ0FBUDtBQVVEOzs7V0FDRCw0QkFBbUJDLFNBQW5CLEVBQThCO0FBQzVCLFVBQUlBLFNBQVMsQ0FBQ3hCLE1BQVYsS0FBcUIsS0FBS1AsS0FBTCxDQUFXTyxNQUFwQyxFQUE0QztBQUMxQyxZQUFJLEtBQUtQLEtBQUwsQ0FBV08sTUFBZixFQUF1QjtBQUNyQixlQUFLSSxRQUFMLENBQWM7QUFDWkwsWUFBQUEsT0FBTyxFQUFFLElBREc7QUFFWkosWUFBQUEsT0FBTyxFQUFFLEtBQUtDO0FBRkYsV0FBZDtBQUlBLGVBQUs2QixVQUFMO0FBQ0Q7QUFDRjtBQUNGOzs7V0FDRCw2QkFBb0I7QUFDbEIsVUFBUXpCLE1BQVIsR0FBbUIsS0FBS1AsS0FBeEIsQ0FBUU8sTUFBUjs7QUFDQSxVQUFJQSxNQUFKLEVBQVk7QUFDVixhQUFLeUIsVUFBTDtBQUNELE9BRkQsTUFFTztBQUNMLGFBQUtyQixRQUFMLENBQWM7QUFDWkwsVUFBQUEsT0FBTyxFQUFFO0FBREcsU0FBZDtBQUdEO0FBQ0Y7OztXQUNELGtCQUEwQjtBQUFBOztBQUN4Qix5QkFjSSxLQUFLTixLQWRUO0FBQUEsVUFDRU8sTUFERixnQkFDRUEsTUFERjtBQUFBLFVBRUUwQixHQUZGLGdCQUVFQSxHQUZGO0FBQUEsK0NBR0VDLFlBSEY7QUFBQSxVQUdFQSxZQUhGLHNDQUdpQixJQUhqQjtBQUFBLCtDQUlFQyxnQkFKRjtBQUFBLFVBSUVBLGdCQUpGLHNDQUlxQixLQUpyQjtBQUFBLDhDQUtFQyxPQUxGO0FBQUEsVUFLRUEsT0FMRixxQ0FLWSxJQUxaO0FBQUEsVUFNRWpDLFVBTkYsZ0JBTUVBLFVBTkY7QUFBQSwrQ0FPRWtDLGNBUEY7QUFBQSxVQU9FQSxjQVBGLHNDQU9tQixLQVBuQjtBQUFBLFVBUUVDLFFBUkYsZ0JBUUVBLFFBUkY7QUFBQSxVQVNFQyxTQVRGLGdCQVNFQSxTQVRGO0FBQUEsVUFVRUMsVUFWRixnQkFVRUEsVUFWRjtBQUFBLFVBV0VoQyxVQVhGLGdCQVdFQSxVQVhGO0FBQUEsVUFZRUMsYUFaRixnQkFZRUEsYUFaRjtBQUFBLFVBYUtnQyxNQWJMOztBQWVBLDBCQUNFO0FBQ0UsUUFBQSxTQUFTLEVBQUVsRCxPQUFPLENBQUNELE1BQUQsRUFBUyxpQkFBVCxDQURwQjtBQUVFLFFBQUEsWUFBWSxFQUFFLHdCQUFNO0FBQ2xCLFVBQUEsTUFBSSxDQUFDcUIsUUFBTCxDQUFjO0FBQ1pOLFlBQUFBLElBQUksRUFBRTtBQURNLFdBQWQ7QUFHRCxTQU5IO0FBT0UsUUFBQSxZQUFZLEVBQUUsd0JBQU07QUFDbEIsVUFBQSxNQUFJLENBQUNNLFFBQUwsQ0FBYztBQUNaTixZQUFBQSxJQUFJLEVBQUU7QUFETSxXQUFkO0FBR0QsU0FYSDtBQVlFLFFBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2I2QixVQUFBQSxZQUFZLElBQ1ZFLE9BREYsSUFFRSxNQUFJLENBQUN6QixRQUFMLENBQWM7QUFDWlAsWUFBQUEsT0FBTyxFQUFFO0FBREcsV0FBZCxDQUZGO0FBS0Q7QUFsQkgsc0JBb0JFLG9CQUFDLElBQUQ7QUFDRSxRQUFBLFFBQVEsRUFBRSxLQUFLSCxLQUFMLENBQVdLLE9BRHZCLENBRUU7O0FBRkYsc0JBSUU7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLTixLQUFMLENBQVdpQyxHQUFYLElBQWtCLEtBQUtoQyxLQUFMLENBQVdDLE9BRHBDO0FBRUUsUUFBQSxLQUFLLEVBQUU7QUFBRXdDLFVBQUFBLEtBQUssRUFBRSxNQUFUO0FBQWlCQyxVQUFBQSxNQUFNLEVBQUU7QUFBekI7QUFGVCxRQUpGLENBcEJGLEVBNkJHLEtBQUsxQyxLQUFMLENBQVdJLElBQVgsSUFBbUIrQixPQUFuQixJQUE4QixDQUFDLEtBQUtuQyxLQUFMLENBQVdHLE9BQTFDLGlCQUNDO0FBQUssUUFBQSxTQUFTLEVBQUViLE9BQU8sQ0FBQ0QsTUFBRCxFQUFTLGdCQUFUO0FBQXZCLFNBSUc2QyxnQkFBZ0IsaUJBQ2Y7QUFDRSxRQUFBLFNBQVMsRUFBRTVDLE9BQU8sQ0FBQ0QsTUFBRCxFQUFTLGdCQUFULENBRHBCO0FBRUUsUUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYixjQUFJa0QsVUFBSixFQUFnQjtBQUNkQSxZQUFBQSxVQUFVLENBQUNqQyxNQUFELENBQVY7QUFDQTtBQUNEOztBQUNELGNBQUlBLE1BQUosRUFBWVgsUUFBUSxDQUFDVyxNQUFELENBQVI7QUFDYjtBQVJILHNCQVVFLG9CQUFDLGdCQUFELE9BVkYsQ0FMSixlQWtCRTtBQUNFLFFBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsVUFBQSxNQUFJLENBQUNJLFFBQUwsQ0FBYztBQUNaUCxZQUFBQSxPQUFPLEVBQUU7QUFERyxXQUFkO0FBR0QsU0FMSDtBQU1FLFFBQUEsU0FBUyxFQUFFYixPQUFPLENBQUNELE1BQUQsRUFBUyxnQkFBVDtBQU5wQixzQkFRRSxvQkFBQyxXQUFELE9BUkYsQ0FsQkYsRUE0QkcrQyxjQUFjLGlCQUNiO0FBQ0UsUUFBQSxTQUFTLEVBQUU5QyxPQUFPLENBQUNELE1BQUQsRUFBUyxnQkFBVCxDQURwQjtBQUVFLFFBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsY0FBSWdELFFBQUosRUFBY0EsUUFBUSxDQUFDL0IsTUFBRCxDQUFSO0FBQ2Y7QUFKSCxzQkFNRSxvQkFBQyxjQUFELE9BTkYsQ0E3QkosQ0E5QkosZUFzRUU7QUFBSyxRQUFBLEtBQUssRUFBRTtBQUFFcUMsVUFBQUEsT0FBTyxFQUFFLE1BQVg7QUFBbUJELFVBQUFBLE1BQU0sRUFBRTtBQUEzQjtBQUFaLHNCQUNFO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBSzNDLEtBQUwsQ0FBV2lDLEdBQVgsSUFBa0IsS0FBS2hDLEtBQUwsQ0FBV0MsT0FEcEM7QUFFRSxRQUFBLEtBQUssRUFBRTtBQUFFMEMsVUFBQUEsT0FBTyxFQUFFO0FBQVgsU0FGVDtBQUdFLFFBQUEsT0FBTyxFQUFFO0FBQ1B4QyxVQUFBQSxPQUFPLEVBQUUsS0FBS0gsS0FBTCxDQUFXRyxPQURiO0FBRVA2QixVQUFBQSxHQUFHLEVBQUUsS0FBS2pDLEtBQUwsQ0FBV2lDLEdBQVgsSUFBa0IsS0FBS2hDLEtBQUwsQ0FBV0MsT0FGM0I7QUFHUDJDLFVBQUFBLGVBQWUsRUFBRSx5QkFBQ0MsS0FBRCxFQUFXO0FBQzFCLFlBQUEsTUFBSSxDQUFDbkMsUUFBTCxDQUFjO0FBQ1pQLGNBQUFBLE9BQU8sRUFBRTBDO0FBREcsYUFBZDtBQUdEO0FBUE07QUFIWCxTQVlNTCxNQVpOLEVBREYsQ0F0RUYsQ0FERjtBQXlGRDs7OztFQWxMbUNyRCxLQUFLLENBQUMyRCxhOztTQUF2QmhELFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgSW1hZ2UsIEltYWdlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCB7IGdldExlc3MgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHtcclxuICBFeWVPdXRsaW5lZCxcclxuICBEb3dubG9hZE91dGxpbmVkLFxyXG4gIFVwbG9hZE91dGxpbmVkLFxyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBTcGluIGZyb20gXCIuLi9zcGluXCI7XHJcblxyXG5jb25zdCB7IGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuaW50ZXJmYWNlIElJbWFnZVByb3BzIGV4dGVuZHMgSW1hZ2VQcm9wcyB7XHJcbiAgZmlsZUlkPzogc3RyaW5nO1xyXG4gIHNyYz86IHN0cmluZztcclxuICBjbGlja1ByZXZpZXc/OiBib29sZWFuO1xyXG4gIHNob3dEZWxldGVJY29uPzogYm9vbGVhbjtcclxuICAvLyBzaG93VXBsb2FkSWNvbj86IGJvb2xlYW47XHJcbiAgc2hvd0Rvd25sb2FkSWNvbj86IGJvb2xlYW47XHJcbiAgcHJldmlldz86IGJvb2xlYW47XHJcbiAgZGVmYXVsdEltZz86IHN0cmluZztcclxuICBvbkRlbGV0ZT86IGFueTtcclxuICBvblByZXZpZXc/OiBhbnk7XHJcbiAgb25Eb3dubG9hZD86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxuICByZXF1ZXN0Q29uZmlnPzogT2JqZWN0O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NJbWFnZSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8SUltYWdlUHJvcHMsIGFueT4ge1xyXG4gIGRlZmF1bHRJbWcgPVxyXG4gICAgXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQU1JQUFBRERDQVlBQUFEUXZjNlVBQUFCUldsRFExQkpRME1nVUhKdlptbHNaUUFBS0pGallHQVNTU3dveUdGaFlHREl6U3NwQ25KM1VvaUlqRkpnZjhMQXdTRENJTW9nd01DY21GeGM0QmdRNEFOVXdnQ2pVY0czYXd5TUlQcXlMc2lzN1BQT3EzUWRERmN2alYzak9EMWJvUVZUUFFyZ1Nra3RUZ2JTZjRBNExibWdxSVNCZ1RFRnlGWXVMeWtBc1R1QWJKRWlvS09BN0RrZ2RqcUV2UUhFVG9Ld2o0RFZoQVE1QTlrM2dHeUI1SXhFb0JtTUw0QnNuU1FrOFhRa050UmVFT0J4Y2ZYeFVRZzFNamMwZHlIZ1hOSkJTV3BGQ1loMnppK29MTXBNenloUmNBU0dVcXFDWjE2eW5vNkNrWUdSQVFNREtNd2hxai9mQUljbG94Z0hRcXhBaklIQkV1Z3c1c1VJc1NRcEJvYnRRUGRMY2lMRVZKWXpNUEJITURCc2F5aElMRXFFTzREeEcwdHhtckVSaE0yOW5ZR0JkZHIvLzUvREdSallOUmtZL2w3Ly8vLzM5di8vL3k0RG1uK0xnZUhBTndEcmtsMUF1TytwbWdBQUFEaGxXRWxtVFUwQUtnQUFBQWdBQVlkcEFBUUFBQUFCQUFBQUdnQUFBQUFBQXFBQ0FBUUFBQUFCQUFBQXdxQURBQVFBQUFBQkFBQUF3d0FBQUFEOWIvSG5BQUFIbGtsRVFWUjRBZTNkUDNQVFdCU0djYkd6TTZHQ0txbElCUlYwZEhSSkZhclEwZVVUOExINEJuUlUwTkhSMFVFRlZkSWxGUlY3VHpSa3NvbVBZOHV5a1RrL3pld1FmS3cvOXpudjR5dkp5bkx2NHVMaVYyZEJvRGlCZjRxUDMvQVJ1Q1JBQkVGQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnMEFqOGkwSk80T3pzclB2NjlXditoaTJxUEhyMHFOdmYzOStpSTk3c29SSWg0ZjN6NTgvdTdkdTNTWFg3WHQ3WjJlbmV2SG16ZlFlK29TTjJhcFNBUGowOVRTcmIrWEtJL2YzNzkrMDgrQTBjTlJFMkFOa3VwaytBQ05QdmtTUGNBQUVpYkFDeVhVeWZBQkdtM3lOSHVBRUNSTmdBWkx1WVBnRWlyS2xIdTd1N1hkeXl0R3dIQWQ4ampOeW5nNE9EN3ZuejUxZGJQVDgvN3o1OCtOQjkrL2J0NmpVL1RJK0FHV0hFbnJ4NDhlSi9Fc1NtSHp4NDBMMTgrZkx5enhGM1pWTWpFeURDaUVEak1ZWlpTNXdpUFhueVpGYkpheE1oUUlRUkd6SHZXUjdYQ3lPQ1hzT21pREFpMUhtUE1NUWpEcGJwRWlEQ2lMMzU4ZU5IdXJXLzVTbldkSUJiWGlEQ2lBMzgvUG56cmNlMll5WjQvLzU5RjNlUExOTWw0UGJwaUwySjBMOTc5Kzd5RHRIRGh3OHZ0enp2ZEduRVhkdlVpZ1NJc0NMQVdhdkhwLytxTTBCY1hNZC9xMjVuMXZGNTdUWUJwMGEzbVV6aWxlUGo0KzdrNUtTTGI2Z3Q2eWRBaFBVelhub1BSMGRIbDc5V0dUTkNmQm5uMXV2U0NKZGVnUWhMSTF2dkNrK2ZQdTJlUFh0MnRaT1lFVjYvZm4zMWR6K3Nod0FSMXNQMWNxdkxudGJFTjlNeEE5eGNZanN4UzFqV1I0QUlhMkliengwdGM0NGZZWC8xNmxWNk5ERkxYSCtZTDMyandpQUNSQmlFYmY1S2NYb1RJc1FTcHpYeDROMjhKYTRCUW9LN3JnWGl5ZGJIangvUDI1VGFRQUpFR0FndVd5MCsyUThQRDYvS2k0UjhFVmwrYnpCT25aWTk1ZnE5cmo5ekFrVEkyU3hkaWRCSHFHOStza2R3NDNib3JDWE8vWmNKZHJhUFdkdjIydUlFaUxBNHE3bnZ2Q3VnOFdUcXpRdmVPSDI2Zm9kbzdnNnVGZS9hMTdXMytuRkJBa1JZRU5SZGIxdmtrejFDSDljUHNWeS9qcmhyMjdQcU1ZdkVOWU5sSEFJZXNSaUJZd1J5MFYrOGlYUDgrL2Z2WDExTXI3TDdFQ3VlYi9yNDhlTXFtN0Z1STJCR1dERUc4Y20rN0czTkVPZm1kY1RRdzRoOS81NWxobTdEZWtSWUtRUFpGMkFyYlhUQXl1NGtEWUIyWXhVendnMGdpLzQxenRIbmZRRzI2SGJHZWwvY3JWcm03dE5ZKy8xYnRrT0VBWjJNMDVyNEZCN3I5R2JBSWR4YVpZckhkT3NnSi93Q0VRWTBKNzRUbU9LbmJ4eFQ5bjNGZ0dHV1dzVmRvd0h0anQ5Tm52Zjd5UU0yYVpVL1RJQUlBeHJ3NmRPbkFXdFpaY29FbkJwTnVUdU9iV01FaUxBeDFIWTBaUUpFbUhKM0hOdkdDQkJoWTZqdGFNb0VpSkIwWjI5dkw2bHM1OHZ4UGNPOC96ZnJkbzVxdktPK2QzRng4V3U4emYxZFc0cC9jUHpMbHkvZHR2OVRzL0ViY3ZHQUhoSHlmQkloWjZOU2lJQlRvMExOTnRTY0FCRnlOaXFGQ0JDaFVMTU5OU2RBaEp5TlNpRUNSQ2pVYkVQTkNSQWhaNk5TaUFBUkNqWGJVSE1DUk1qWnFCUWlRSVJDelRiVW5BQVJjallxaFFnUW9WQ3pEVFVuUUlTY2pVb2hBa1FvMUd4RHpRa1FJV2VqVW9nQUVRbzEyMUJ6QWtUSTJhZ1VJa0NFUXMwMjFKd0FFWEkyS29VSUVLRlFzdzAxSjBDRW5JMUtJUUpFS05Sc1E4MEpFQ0ZubzFLSUFCRUtOZHRRY3dKRXlObW9GQ0pBaEVMTk50U2NBQkZ5TmlxRkNCQ2hVTE1OTlNkQWhKeU5TaUVDUkNqVWJFUE5DUkFoWjZOU2lBQVJDalhiVUhNQ1JNalpxQlFpUUlSQ3pUYlVuQUFSY2pZcWhRZ1FvVkN6RFRVblFJU2NqVW9oQWtRbzFHeER6UWtRSVdlalVvZ0FFUW8xMjFCekFrVEkyYWdVSWtDRVFzMDIxSndBRVhJMktvVUlFS0ZRc3cwMUowQ0VuSTFLSVFKRUtOUnNRODBKRUNGbm8xS0lBQkVLTmR0UWN3SkV5Tm1vRkNKQWhFTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQ1JDalViRVBOQ1JBaFo2TlNpQUFSQ2pYYlVITUNSTWpacUJRaVFJUkN6VGJVbkFBUmNqWXFoUWdRb1ZDekRUVW5RSVNjalVvaEFrUW8xR3hEelFrUUlXZWpVb2dBRVFvMTIxQnpBa1RJMmFnVUlrQ0VRczAyMUp3QUVYSTJLb1VJRUtGUXN3MDFKMENFbkkxS0lRSkVLTlJzUTgwSkVDRm5vMUtJQUJFS05kdFFjd0pFeU5tb0ZDSkFoRUxOTnRTY0FCRnlOaXFGQ0JDaFVMTU5OU2RBaEp5TlNpRUMvd0dnS0tDNFlNQTRUQUFBQUFCSlJVNUVya0pnZ2c9PVwiO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgaW1nRGF0YTogcHJvcHMuZGVmYXVsdEltZyB8fCB0aGlzLmRlZmF1bHRJbWcsXHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBtYXNrOiBmYWxzZSxcclxuICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGFzeW5jIGdldEltZ0RhdGEoKSB7XHJcbiAgICBjb25zdCB7IGZpbGVJZCwgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG5ld1ZlcnNpb24pIHtcclxuICAgICAgY29uc3QgcmVzMjogYW55ID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGltZ0RhdGE6IHJlczIuZGF0YSxcclxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbWcgPSBhd2FpdCBkb3dubG9hZChmaWxlSWQsIGZhbHNlLCB7XHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICBzaG93RXJyTXNnOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChpbWcuZGF0YT8uZGF0YSkge1xyXG4gICAgICAgIHRoaXMuYmxvYlRvQmFzZTY0KGltZy5kYXRhPy5kYXRhKS50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBpbWdEYXRhOiByZXMsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBibG9iVG9CYXNlNjQoYmxvYikge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICAgIGZpbGVSZWFkZXIub25sb2FkID0gKGUpID0+IHtcclxuICAgICAgICByZXNvbHZlKGUudGFyZ2V0LnJlc3VsdCk7XHJcbiAgICAgIH07XHJcbiAgICAgIGZpbGVSZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcclxuICAgICAgZmlsZVJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgIHJlamVjdChuZXcgRXJyb3IoXCJibG9iVG9CYXNlNjQgZXJyb3JcIikpO1xyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcclxuICAgIGlmIChwcmV2UHJvcHMuZmlsZUlkICE9PSB0aGlzLnByb3BzLmZpbGVJZCkge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5maWxlSWQpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGxvYWRpbmc6IHRydWUsXHJcbiAgICAgICAgICBpbWdEYXRhOiB0aGlzLmRlZmF1bHRJbWcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5nZXRJbWdEYXRhKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGZpbGVJZCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChmaWxlSWQpIHtcclxuICAgICAgdGhpcy5nZXRJbWdEYXRhKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBmaWxlSWQsXHJcbiAgICAgIHNyYyxcclxuICAgICAgY2xpY2tQcmV2aWV3ID0gdHJ1ZSxcclxuICAgICAgc2hvd0Rvd25sb2FkSWNvbiA9IGZhbHNlLFxyXG4gICAgICBwcmV2aWV3ID0gdHJ1ZSxcclxuICAgICAgZGVmYXVsdEltZyxcclxuICAgICAgc2hvd0RlbGV0ZUljb24gPSBmYWxzZSxcclxuICAgICAgb25EZWxldGUsXHJcbiAgICAgIG9uUHJldmlldyxcclxuICAgICAgb25Eb3dubG9hZCxcclxuICAgICAgbmV3VmVyc2lvbixcclxuICAgICAgcmVxdWVzdENvbmZpZyxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS10b3RhbFwiKX1cclxuICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBtYXNrOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBtYXNrOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH19XHJcbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgY2xpY2tQcmV2aWV3ICYmXHJcbiAgICAgICAgICAgIHByZXZpZXcgJiZcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxTcGluXHJcbiAgICAgICAgICBzcGlubmluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfVxyXG4gICAgICAgICAgLy8gc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBzcmM9e3RoaXMucHJvcHMuc3JjIHx8IHRoaXMuc3RhdGUuaW1nRGF0YX1cclxuICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvU3Bpbj5cclxuICAgICAgICB7dGhpcy5zdGF0ZS5tYXNrICYmIHByZXZpZXcgJiYgIXRoaXMuc3RhdGUudmlzaWJsZSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLW1hc2tcIil9PlxyXG4gICAgICAgICAgICB7LyogPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS1pY29uXCIpfT5cclxuICAgICAgICAgICAgPFVwbG9hZE91dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgICAgIHtzaG93RG93bmxvYWRJY29uICYmIChcclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAob25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQoZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgaWYgKGZpbGVJZCkgZG93bmxvYWQoZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPERvd25sb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1pbWFnZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEV5ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB7c2hvd0RlbGV0ZUljb24gJiYgKFxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChvbkRlbGV0ZSkgb25EZWxldGUoZmlsZUlkKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJub25lXCIsIGhlaWdodDogMCB9fT5cclxuICAgICAgICAgIDxJbWFnZVxyXG4gICAgICAgICAgICBzcmM9e3RoaXMucHJvcHMuc3JjIHx8IHRoaXMuc3RhdGUuaW1nRGF0YX1cclxuICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogXCJub25lXCIgfX1cclxuICAgICAgICAgICAgcHJldmlldz17e1xyXG4gICAgICAgICAgICAgIHZpc2libGU6IHRoaXMuc3RhdGUudmlzaWJsZSxcclxuICAgICAgICAgICAgICBzcmM6IHRoaXMucHJvcHMuc3JjIHx8IHRoaXMuc3RhdGUuaW1nRGF0YSxcclxuICAgICAgICAgICAgICBvblZpc2libGVDaGFuZ2U6ICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
287
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1hZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiZmlsZSIsInN0eWxlcyIsImdldExlc3MiLCJFeWVPdXRsaW5lZCIsIkRvd25sb2FkT3V0bGluZWQiLCJEZWxldGVPdXRsaW5lZCIsIlNwaW4iLCJkb3dubG9hZCIsInByZXZpZXdEb2N1bWVudCIsInByZXZpZXdJbWFnZSIsIk5zY0ltYWdlIiwicHJvcHMiLCJzdGF0ZSIsImltZ0RhdGEiLCJkZWZhdWx0SW1nIiwidmlzaWJsZSIsIm1hc2siLCJsb2FkaW5nIiwiZmlsZUlkIiwibmV3VmVyc2lvbiIsInJlcXVlc3RDb25maWciLCJyZXMyIiwic2V0U3RhdGUiLCJkYXRhIiwic2hvd0Vyck1zZyIsImltZyIsImJsb2JUb0Jhc2U2NCIsInRoZW4iLCJyZXMiLCJibG9iIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJmaWxlUmVhZGVyIiwiRmlsZVJlYWRlciIsIm9ubG9hZCIsImUiLCJ0YXJnZXQiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwib25lcnJvciIsIkVycm9yIiwicHJldlByb3BzIiwiZ2V0SW1nRGF0YSIsInNyYyIsImNsaWNrUHJldmlldyIsInNob3dEb3dubG9hZEljb24iLCJwcmV2aWV3Iiwic2hvd0RlbGV0ZUljb24iLCJvbkRlbGV0ZSIsIm9uUHJldmlldyIsIm9uRG93bmxvYWQiLCJwYXJhbXMiLCJ3aWR0aCIsImhlaWdodCIsImRpc3BsYXkiLCJvblZpc2libGVDaGFuZ2UiLCJ2YWx1ZSIsIlB1cmVDb21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FBU0MsT0FBVCxRQUF3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QUFDWlAsY0FBQUEsT0FBTyxFQUFFMEM7QUFERyxhQUFkO0FBR0Q7QUFQTTtBQUhYLFNBWU1MLE1BWk4sRUFERixDQXRFRixDQURGO0FBeUZEOzs7O0VBbExtQ3JELEtBQUssQ0FBQzJELGE7O1NBQXZCaEQsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBJbWFnZSwgSW1hZ2VQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCBmaWxlIGZyb20gXCJuc2MtZmlsZVwiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgVXBsb2FkT3V0bGluZWQsXHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IFNwaW4gZnJvbSBcIi4uL3NwaW5cIjtcclxuXHJcbmNvbnN0IHsgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCwgcHJldmlld0ltYWdlIH0gPSBmaWxlO1xyXG5pbnRlcmZhY2UgSUltYWdlUHJvcHMgZXh0ZW5kcyBJbWFnZVByb3BzIHtcclxuICBmaWxlSWQ/OiBzdHJpbmc7XHJcbiAgc3JjPzogc3RyaW5nO1xyXG4gIGNsaWNrUHJldmlldz86IGJvb2xlYW47XHJcbiAgc2hvd0RlbGV0ZUljb24/OiBib29sZWFuO1xyXG4gIC8vIHNob3dVcGxvYWRJY29uPzogYm9vbGVhbjtcclxuICBzaG93RG93bmxvYWRJY29uPzogYm9vbGVhbjtcclxuICBwcmV2aWV3PzogYm9vbGVhbjtcclxuICBkZWZhdWx0SW1nPzogc3RyaW5nO1xyXG4gIG9uRGVsZXRlPzogYW55O1xyXG4gIG9uUHJldmlldz86IGFueTtcclxuICBvbkRvd25sb2FkPzogYW55O1xyXG4gIG5ld1ZlcnNpb24/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBPYmplY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY0ltYWdlIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJSW1hZ2VQcm9wcywgYW55PiB7XHJcbiAgZGVmYXVsdEltZyA9XHJcbiAgICBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBTUlBQUFERENBWUFBQURRdmM2VUFBQUJSV2xEUTFCSlEwTWdVSEp2Wm1sc1pRQUFLSkZqWUdBU1NTd295R0ZoWUdESXpTc3BDbkozVW9pSWpGSmdmOExBd1NEQ0lNb2d3TUNjbUZ4YzRCZ1E0QU5Vd2dDalVjRzNhd3lNSVBxeUxzaXM3UFBPcTNRZERGY3ZqVjNqT0QxYm9RVlRQUXJnU2trdFRnYlNmNEE0TGJtZ3FJU0JnVEVGeUZZdUx5a0FzVHVBYkpFaW9LT0E3RGtnZGpxRXZRSEVUb0t3ajREVmhBUTVBOWszZ0d5QjVJeEVvQm1NTDRCc25TUWs4WFFrTnRSZUVPQnhjZlh4VVFnMU1qYzBkeUhnWE5KQlNXcEZDWWgyemkrb0xNcE16eWhSY0FTR1VxcUNaMTZ5bm82Q2tZR1JBUU1ES013aHFqL2ZBSWNsb3hnSFFxeEFqSUhCRXVndzVzVUlzU1FwQm9idFFQZExjaUxFVkpZek1QQkhNREJzYXloSUxFcUVPNER4RzB0eG1yRVJoTTI5bllHQmRkci8vNS9ER1JqWU5Sa1kvbDcvLy8vMzl2Ly8veTREbW4rTGdlSEFOd0Rya2wxQXVPK3BtZ0FBQURobFdFbG1UVTBBS2dBQUFBZ0FBWWRwQUFRQUFBQUJBQUFBR2dBQUFBQUFBcUFDQUFRQUFBQUJBQUFBd3FBREFBUUFBQUFCQUFBQXd3QUFBQUQ5Yi9IbkFBQUhsa2xFUVZSNEFlM2RQM1BUV0JTR2NiR3pNNkdDS3FsSUJSVjBkSFJKRmFyUTBlVVQ4TEg0Qm5SVTBOSFIwVUVGVmRJbEZSVjdUelJrc29tUFk4dXlrVGsvemV3UWZLdy85em52NHl2SnluTHY0dUxpVjJkQm9EaUJmNHFQMy9BUnVDUkFCRUZBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2dRQVFaUUtBbllFYVFCQVFhQVNLSUFRSkVrQUVFZWdKbUJFbEFvQkVnZ2hnZ1FBUVpRS0FuWUVhUUJBUWFBU0tJQVFKRWtBRUVlZ0ptQkVsQW9CRWdnaGdnUUFRWlFLQW5ZRWFRQkFRYUFTS0lBUUpFa0FFRWVnSm1CRWxBb0JFZ2doZ2cwQWo4aTBKTzRPenNyUHY2OVd2K2hpMnFQSHIwcU52ZjM5K2lJOTdzb1JJaDRmM3o1OC91N2R1M1NYWDdYdDdaMmVuZXZIbXpmUWUrb1NOMmFwU0FQajA5VFNyYitYS0kvZjM3OSswOCtBMGNOUkUyQU5rdXBrK0FDTlB2a1NQY0FBRWliQUN5WFV5ZkFCR20zeU5IdUFFQ1JOZ0FaTHVZUGdFaXJLbEh1N3U3WGR5eXRHd0hBZDhqak55bmc0T0Q3dm56NTFkYlBUOC83ejU4K05COSsvYnQ2alUvVEkrQUdXSEVucng0OGVKL0VzU21Ieng0MEwxOCtmTHl6eEYzWlZNakV5RENpRURqTVlaWlM1d2lQWG55WkZiSmF4TWhRSVFSR3pIdldSN1hDeU9DWHNPbWlEQWkxSG1QTU1RakRwYnBFaURDaUwzNThlTkh1clcvNVNuV2RJQmJYaURDaUEzOC9QbnpyY2UyWXlaNC8vNTlGM2VQTE5NbDRQYnBpTDJKMEw5NzkrN3lEdEhEaHc4dnR6enZkR25FWGR2VWlnU0lzQ0xBV2F2SHAvK3FNMEJjWE1kL3EyNW4xdkY1N1RZQnAwYTNtVXppbGVQajQrN2s1S1NMYjZndDZ5ZEFoUFV6WG5vUFIwZEhsNzlXR1ROQ2ZCbm4xdXZTQ0pkZWdRaExJMXZ2Q2srZlB1MmVQWHQydFpPWUVWNi9mbjMxZHorc2h3QVIxc1AxY3F2TG50YkVOOU14QTl4Y1lqc3hTMWpXUjRBSWEySWJ6eDB0YzQ0ZllYLzE2bFY2TkRGTFhIK1lMMzJqd2lBQ1JCaUViZjVLY1hvVElzUVNwelh4NE4yOEphNEJRb0s3cmdYaXlkYkhqeC9QMjVUYVFBSkVHQWd1V3kwKzJROFBENi9LaTRSOEVWbCtiekJPblpZOTVmcTlyajl6QWtUSTJTeGRpZEJIcUc5K3NrZHc0M2JvckNYTy9aY0pkcmFQV2R2MjJ1SUVpTEE0cTdudnZDdWc4V1RxelF2ZU9IMjZmb2RvN2c2dUZlL2ExN1czK25GQkFrUllFTlJkYjF2a2t6MUNIOWNQc1Z5L2pyaHIyN1BxTVl2RU5ZTmxIQUllc1JpQll3UnkwVis4aVhQOCsvZnZYMTFNcjdMN0VDdWViL3I0OGVNcW03RnVJMkJHV0RFRzhjbSs3RzNORU9mbWRjVFF3NGg5LzU1bGhtN0Rla1JZS1FQWkYyQXJiWFRBeXU0a0RZQjJZeFV6d2cwZ2kvNDF6dEhuZlFHMjZIYkdlbC9jclZybTd0TlkrLzFidGtPRUFaMk0wNXI0RkI3cjlHYkFJZHhhWllySGRPc2dKL3dDRVFZMEo3NFRtT0tuYnh4VDluM0ZnR0dXV3NWZG93SHRqdDlObnZmN3lRTTJhWlUvVElBSUF4cnc2ZE9uQVd0Wlpjb0VuQnBOdVR1T2JXTUVpTEF4MUhZMFpRSkVtSEozSE52R0NCQmhZNmp0YU1vRWlKQjBaMjl2TDZsczU4dnhQY084L3pmcmRvNXF2S08rZDNGeDhXdTh6ZjFkVzRwL2NQekxseS9kdHY5VHMvRWJjdkdBSGhIeWZCSWhaNk5TaUlCVG8wTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQ1JDalViRVBOQ1JBaFo2TlNpQUFSQ2pYYlVITUNSTWpacUJRaVFJUkN6VGJVbkFBUmNqWXFoUWdRb1ZDekRUVW5RSVNjalVvaEFrUW8xR3hEelFrUUlXZWpVb2dBRVFvMTIxQnpBa1RJMmFnVUlrQ0VRczAyMUp3QUVYSTJLb1VJRUtGUXN3MDFKMENFbkkxS0lRSkVLTlJzUTgwSkVDRm5vMUtJQUJFS05kdFFjd0pFeU5tb0ZDSkFoRUxOTnRTY0FCRnlOaXFGQ0JDaFVMTU5OU2RBaEp5TlNpRUNSQ2pVYkVQTkNSQWhaNk5TaUFBUkNqWGJVSE1DUk1qWnFCUWlRSVJDelRiVW5BQVJjallxaFFnUW9WQ3pEVFVuUUlTY2pVb2hBa1FvMUd4RHpRa1FJV2VqVW9nQUVRbzEyMUJ6QWtUSTJhZ1VJa0NFUXMwMjFKd0FFWEkyS29VSUVLRlFzdzAxSjBDRW5JMUtJUUpFS05Sc1E4MEpFQ0ZubzFLSUFCRUtOZHRRY3dKRXlObW9GQ0pBaEVMTk50U2NBQkZ5TmlxRkNCQ2hVTE1OTlNkQWhKeU5TaUVDUkNqVWJFUE5DUkFoWjZOU2lBQVJDalhiVUhNQ1JNalpxQlFpUUlSQ3pUYlVuQUFSY2pZcWhRZ1FvVkN6RFRVblFJU2NqVW9oQWtRbzFHeER6UWtRSVdlalVvZ0FFUW8xMjFCekFrVEkyYWdVSWtDRVFzMDIxSndBRVhJMktvVUlFS0ZRc3cwMUowQ0VuSTFLSVFKRUtOUnNRODBKRUNGbm8xS0lBQkVLTmR0UWN3SkV5Tm1vRkNKQWhFTE5OdFNjQUJGeU5pcUZDQkNoVUxNTk5TZEFoSnlOU2lFQy93R2dLS0M0WU1BNFRBQUFBQUJKUlU1RXJrSmdnZz09XCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBpbWdEYXRhOiBwcm9wcy5kZWZhdWx0SW1nIHx8IHRoaXMuZGVmYXVsdEltZyxcclxuICAgICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICAgIG1hc2s6IGZhbHNlLFxyXG4gICAgICBsb2FkaW5nOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0SW1nRGF0YSgpIHtcclxuICAgIGNvbnN0IHsgZmlsZUlkLCBuZXdWZXJzaW9uLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAobmV3VmVyc2lvbikge1xyXG4gICAgICBjb25zdCByZXMyOiBhbnkgPSBhd2FpdCBwcmV2aWV3SW1hZ2UoZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgaW1nRGF0YTogcmVzMi5kYXRhLFxyXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGltZyA9IGF3YWl0IGRvd25sb2FkKGZpbGVJZCwgZmFsc2UsIHtcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIHNob3dFcnJNc2c6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGltZy5kYXRhPy5kYXRhKSB7XHJcbiAgICAgICAgdGhpcy5ibG9iVG9CYXNlNjQoaW1nLmRhdGE/LmRhdGEpLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGltZ0RhdGE6IHJlcyxcclxuICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGJsb2JUb0Jhc2U2NChibG9iKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgZmlsZVJlYWRlci5vbmxvYWQgPSAoZSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTtcclxuICAgICAgfTtcclxuICAgICAgZmlsZVJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gICAgICBmaWxlUmVhZGVyLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihcImJsb2JUb0Jhc2U2NCBlcnJvclwiKSk7XHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xyXG4gICAgaWYgKHByZXZQcm9wcy5maWxlSWQgIT09IHRoaXMucHJvcHMuZmlsZUlkKSB7XHJcbiAgICAgIGlmICh0aGlzLnByb3BzLmZpbGVJZCkge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgbG9hZGluZzogdHJ1ZSxcclxuICAgICAgICAgIGltZ0RhdGE6IHRoaXMuZGVmYXVsdEltZyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdldEltZ0RhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgZmlsZUlkIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKGZpbGVJZCkge1xyXG4gICAgICB0aGlzLmdldEltZ0RhdGEoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZpbGVJZCxcclxuICAgICAgc3JjLFxyXG4gICAgICBjbGlja1ByZXZpZXcgPSB0cnVlLFxyXG4gICAgICBzaG93RG93bmxvYWRJY29uID0gZmFsc2UsXHJcbiAgICAgIHByZXZpZXcgPSB0cnVlLFxyXG4gICAgICBkZWZhdWx0SW1nLFxyXG4gICAgICBzaG93RGVsZXRlSWNvbiA9IGZhbHNlLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgb25QcmV2aWV3LFxyXG4gICAgICBvbkRvd25sb2FkLFxyXG4gICAgICBuZXdWZXJzaW9uLFxyXG4gICAgICByZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAuLi5wYXJhbXNcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLXRvdGFsXCIpfVxyXG4gICAgICAgIG9uTW91c2VFbnRlcj17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIG1hc2s6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIG1hc2s6IGZhbHNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICBjbGlja1ByZXZpZXcgJiZcclxuICAgICAgICAgICAgcHJldmlldyAmJlxyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9fVxyXG4gICAgICA+XHJcbiAgICAgICAgPFNwaW5cclxuICAgICAgICAgIHNwaW5uaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAvLyBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIHNyYz17dGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhfVxyXG4gICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIgfX1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9TcGluPlxyXG4gICAgICAgIHt0aGlzLnN0YXRlLm1hc2sgJiYgcHJldmlldyAmJiAhdGhpcy5zdGF0ZS52aXNpYmxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtbWFza1wiKX0+XHJcbiAgICAgICAgICAgIHsvKiA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9PlxyXG4gICAgICAgICAgICA8VXBsb2FkT3V0bGluZWQgLz5cclxuICAgICAgICAgIDwvZGl2PiAqL31cclxuICAgICAgICAgICAge3Nob3dEb3dubG9hZEljb24gJiYgKFxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChvbkRvd25sb2FkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBpZiAoZmlsZUlkKSBkb3dubG9hZChmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLWltYWdlLWljb25cIil9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIHtzaG93RGVsZXRlSWNvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaW1hZ2UtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKG9uRGVsZXRlKSBvbkRlbGV0ZShmaWxlSWQpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8RGVsZXRlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiwgaGVpZ2h0OiAwIH19PlxyXG4gICAgICAgICAgPEltYWdlXHJcbiAgICAgICAgICAgIHNyYz17dGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhfVxyXG4gICAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcIm5vbmVcIiB9fVxyXG4gICAgICAgICAgICBwcmV2aWV3PXt7XHJcbiAgICAgICAgICAgICAgdmlzaWJsZTogdGhpcy5zdGF0ZS52aXNpYmxlLFxyXG4gICAgICAgICAgICAgIHNyYzogdGhpcy5wcm9wcy5zcmMgfHwgdGhpcy5zdGF0ZS5pbWdEYXRhLFxyXG4gICAgICAgICAgICAgIG9uVmlzaWJsZUNoYW5nZTogKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdmlzaWJsZTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -146,7 +146,7 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
146
146
  }
147
147
 
148
148
  _context.next = 16;
149
- return previewImage(fileId);
149
+ return previewImage(fileId, _this.props.requestConfig);
150
150
 
151
151
  case 16:
152
152
  ImgRes = _context.sent;
@@ -681,4 +681,4 @@ var NscUpload = /*#__PURE__*/function (_React$PureComponent) {
681
681
  _defineProperty(NscUpload, "Dragger", NscUploadDragger);
682
682
 
683
683
  export { NscUpload as default };
684
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInJlcyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwibmFtZSIsImZpbGVOYW1lIiwidHlwZSIsInNpemUiLCJzZXRTdGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJjb25zb2xlIiwibG9nIiwicGFyc2UiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwiYmVmb3JlVXBsb2FkIiwibmV3TGlzdCIsInVpZCIsImxlbmd0aCIsImkiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJvblByZXZpZXciLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJvbkRlbGV0ZSIsIndpZHRoIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsb0JBQXJCO0FBQ0EsU0FDRUMsY0FERixFQUVFQyxnQkFGRixFQUdFQyxXQUhGLFFBSU8sbUJBSlA7QUFNQSxPQUFPQyxnQkFBUCxNQUE2QixXQUE3QjtBQUVBLElBQVFDLE1BQVIsR0FBNERYLElBQTVELENBQVFXLE1B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QUN4QixnQkFBSUEsSUFBSixhQUFJQSxJQUFKLGVBQUlBLElBQUksQ0FBRWdDLE1BQVYsRUFBa0I7QUFDaEJuQixjQUFBQSxlQUFlLENBQUNiLElBQUksQ0FBQ2dDLE1BQU4sRUFBY0gsYUFBZCxDQUFmO0FBQ0Q7QUFDRixXQVpTO0FBYVYyQyxVQUFBQSxjQUFjLG9CQUFPQSxjQUFQO0FBYkosVUFBWjtBQWVEOztBQUNELDBCQUNFLHVEQUNFLDBDQUNNOEIsWUFETixFQUVNRCxRQUZOO0FBR0UsUUFBQSxZQUFZLEVBQUUsS0FBS3RCLFlBQUwsQ0FBa0J5QixJQUFsQixDQUF1QixJQUF2QixDQUhoQjtBQUlFLFFBQUEsUUFBUSxFQUFFLEtBQUt6QyxLQUFMLENBQVcvQztBQUp2QixTQURGLENBREY7QUFVRDs7OztFQTdab0NqQixLQUFLLENBQUNvSCxhOztnQkFBeEJwRyxTLGFBQ0ZMLGdCOztTQURFSyxTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB7IFVwbG9hZCwgVXBsb2FkUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgZmlsZSBmcm9tIFwibnNjLWZpbGVcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IHdpdGhaaExvY2FsZSBmcm9tIFwiLi4vY29tbW9uL3dpdGhaaExvY2FsZVwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBGaWxlSWNvbiBmcm9tIFwiLi4vY29tbW9uL0ZpbGVJY29uXCI7XHJcbmltcG9ydCB7XHJcbiAgRGVsZXRlT3V0bGluZWQsXHJcbiAgRG93bmxvYWRPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IFBkZlZpZXdlciBmcm9tIFwiLi4vcGRmdml3ZXJcIjtcclxuaW1wb3J0IE5zY1VwbG9hZERyYWdnZXIgZnJvbSBcIi4vRHJhZ2dlclwiO1xyXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJAYmFiZWwvY29yZVwiO1xyXG5jb25zdCB7IHVwbG9hZCwgZG93bmxvYWQsIHByZXZpZXdEb2N1bWVudCwgcHJldmlld0ltYWdlIH0gPSBmaWxlO1xyXG5cclxuaW50ZXJmYWNlIElVcGxvYWRQcm9wcyBleHRlbmRzIFVwbG9hZFByb3BzIHtcclxuICBzbGljZVNpemU/OiBudW1iZXI7XHJcbiAgbWF4U2l6ZT86IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb25Qcm9jZXNzPzogKHByb2Nlc3MpID0+IHZvaWQ7XHJcbiAgb25Db21wbGV0ZT86ICh7IGZpbGUsIGZpbGVJZCwgc3RhdHVzIH0pID0+IHZvaWQ7XHJcbiAgYWxsb3dGaWxlU3VmZml4PzogQXJyYXk8U3RyaW5nPjsgLy/lhYHorrjkuIrkvKDmianlsZXlkI0s5LiN5bimLlxyXG4gIHVzZURlZmF1bHRMaXN0PzogYm9vbGVhbjsgLy/mmK/lkKbkvb/nlKjpu5jorqTnmoRmaWxlTGlzdFxyXG4gIGZpbGVDYXJkPzogYm9vbGVhbjtcclxuICBvbkxpc3RDaGFuZ2U/OiBhbnk7XHJcbiAgY2hlY2tTYW1lRmlsZT86IGJvb2xlYW47XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBuZXdWZXJzaW9uPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NVcGxvYWQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50PElVcGxvYWRQcm9wcywgYW55PiB7XHJcbiAgc3RhdGljIERyYWdnZXIgPSBOc2NVcGxvYWREcmFnZ2VyO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgZmlsZUxpc3Q6IFtdLFxyXG4gICAgdmlld0lkOiBcIlwiLFxyXG4gICAgZmlsZUxpc3RTdG9yZTogW10sXHJcbiAgICBmaWxlTmFtZXM6IFtdLFxyXG4gIH07XHJcbiAgdXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgdXBsb2FkU2l6ZSA9IDA7XHJcbiAgdXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29udmVydEZpbGVMaXN0KGxpc3Q/OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0LCBsaXN0VHlwZSB9ID0gdGhpcy5wcm9wcztcclxuXHJcbiAgICBjb25zdCBuZXdGaWxlTGlzdCA9IFtdO1xyXG4gICAgbGV0IG9sZExpc3QgPSBsaXN0ID8gbGlzdCA6IGZpbGVMaXN0O1xyXG4gICAgb2xkTGlzdC5tYXAoYXN5bmMgKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7XHJcbiAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICBzdGF0dXM6IGl0ZW0uc3RhdHVzLFxyXG4gICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lLFxyXG4gICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgdXJsOiBpdGVtLnVybCxcclxuICAgICAgfSBhcyBhbnk7XHJcbiAgICAgIG5ld0ZpbGVMaXN0LnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0ZpbGVMaXN0XSxcclxuICAgICAgZmlsZUxpc3RTdG9yZTogWy4uLmZpbGVMaXN0XSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJlUHJvcHMsIHByZVN0YXRlKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWxlTGlzdCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5maWxlTGlzdCkgIT09XHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0ZS5maWxlTGlzdFN0b3JlKVxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgIFwiY29tcG9uZW50RGlkVXBkYXRlXCIsXHJcbiAgICAgICAgICBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jb252ZXJ0RmlsZUxpc3QodGhpcy5wcm9wcy5maWxlTGlzdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5maWxlTGlzdDtcclxuICB9XHJcbiAgc2V0RmlsZUxpc3QoZmlsZUxpc3Q6IEFycmF5PE9iamVjdD4pIHtcclxuICAgIHRoaXMuY29udmVydEZpbGVMaXN0KGZpbGVMaXN0KTtcclxuICB9XHJcbiAgYXN5bmMgYmVmb3JlVXBsb2FkKGZpbGUsIG9maWxlTGlzdCkge1xyXG4gICAgbGV0IHtcclxuICAgICAgbWF4U2l6ZSA9IDEwMCxcclxuICAgICAgYWxsb3dGaWxlU3VmZml4LFxyXG4gICAgICBjaGVja1NhbWVGaWxlID0gdHJ1ZSxcclxuICAgICAgbWF4Q291bnQsXHJcbiAgICAgIHNob3dVcGxvYWRMaXN0LFxyXG4gICAgICBmaWxlTGlzdDogcHJvcHNMaXN0LFxyXG4gICAgICBvbkxpc3RDaGFuZ2UsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCB7IGZpbGVMaXN0LCBmaWxlTGlzdFN0b3JlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHNpemU6IG51bWJlcjtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlKSkge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFxyXG4gICAgICAgIGAke2ZpbGUubmFtZX3mlofku7bnsbvlnovkuI3lhYHorrjkuIrkvKDvvIzor7fkuIrkvKDlkI7nvIDkuLoke2FsbG93RmlsZVN1ZmZpeH3nmoTnsbvlnovmlofku7bvvIFgXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChtYXhTaXplICE9PSBmYWxzZSkge1xyXG4gICAgICBpZiAobWF4U2l6ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIG1heFNpemUgPSAxMDA7XHJcbiAgICAgIH1cclxuICAgICAgc2l6ZSA9IG1heFNpemUgKiAxMDI0ICogMTAyNDtcclxuICAgICAgaWYgKHNpemUgPCBmaWxlLnNpemUpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGAke2ZpbGUubmFtZX3mlofku7blpKflsI/otoXov4cke21heFNpemV9Te+8jOivt+mHjeaWsOS4iuS8oO+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IGZpbGVOYW1lcyA9IFtdO1xyXG4gICAgaWYgKGNoZWNrU2FtZUZpbGUpIHtcclxuICAgICAgY29uc3QgY2hlY2tMaXN0ID0gdGhpcy5wcm9wcy5maWxlTGlzdCA/IGZpbGVMaXN0U3RvcmUgOiBmaWxlTGlzdDtcclxuICAgICAgY2hlY2tMaXN0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGZpbGVOYW1lcy5wdXNoKGl0ZW0ubmFtZSB8fCBpdGVtLmZpbGVOYW1lKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoZmlsZU5hbWVzLmluZGV4T2YoZmlsZS5uYW1lKSA+IC0xICYmIHNob3dVcGxvYWRMaXN0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgIG1lc3NhZ2UuZXJyb3IoYOaWh+S7tiR7ZmlsZS5uYW1lfeW3suWcqOS4iuS8oOWIl+ihqOS4re+8jOivt+mHjeaWsOmAieaLqeaWh+S7tu+8gWApO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByb3BzLmJlZm9yZVVwbG9hZCkge1xyXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnByb3BzLmJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpO1xyXG4gICAgICBpZiAocmVzID09PSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgbmV3TGlzdCA9IFsuLi5maWxlTGlzdF07XHJcbiAgICBvZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAhKFxyXG4gICAgICAgICAgKGFsbG93RmlsZVN1ZmZpeCAmJiAhdGhpcy5jaGVja0ZpbGVUeXBlKGl0ZW0pKSB8fFxyXG4gICAgICAgICAgc2l6ZSA8IGl0ZW0uc2l6ZSB8fFxyXG4gICAgICAgICAgKGNoZWNrU2FtZUZpbGUgJiYgZmlsZU5hbWVzLmluZGV4T2YoaXRlbS5uYW1lKSA+IC0xKVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgdGVtcCA9IHtcclxuICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICBwZXJjZW50OiAwLFxyXG4gICAgICAgICAgc3RhdHVzOiBcInVwbG9hZGluZ1wiLFxyXG4gICAgICAgICAgdWlkOiBpdGVtLnVpZCxcclxuICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcclxuICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIG5ld0xpc3QucHVzaCh0ZW1wKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKG1heENvdW50ICYmIG5ld0xpc3QubGVuZ3RoID4gbWF4Q291bnQpIHtcclxuICAgICAgbGV0IGxlbmd0aCA9IG5ld0xpc3QubGVuZ3RoIC0gbWF4Q291bnQ7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBuZXdMaXN0LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShuZXdMaXN0KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogbmV3TGlzdCB9KTtcclxuICAgIHRoaXMudXBsb2FkU2l6ZSA9IG9maWxlTGlzdC5sZW5ndGg7XHJcbiAgfVxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZSkge1xyXG4gICAgY29uc3QgeyBhbGxvd0ZpbGVTdWZmaXggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuYW1lcyA9IGZpbGUubmFtZS5zcGxpdChcIi5cIik7XHJcbiAgICBjb25zdCBzdWZmaXggPSBuYW1lc1tuYW1lcy5sZW5ndGggLSAxXTtcclxuICAgIGlmIChhbGxvd0ZpbGVTdWZmaXguaW5kZXhPZihzdWZmaXgpID4gLTEpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIG9uUHJvY2Vzcyh7IHBlcmNlbnQsIGZpbGUgfTogYW55KSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKGZpbGUudWlkID09IGl0ZW0udWlkKSB7XHJcbiAgICAgICAgbmV3RmlsZS5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgfVxyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogbmV3TGlzdCxcclxuICAgIH0pO1xyXG4gICAgb25MaXN0Q2hhbmdlICYmIG9uTGlzdENoYW5nZShmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIG9uQ29tcGxldGUoZmlsZXMpIHtcclxuICAgIHRoaXMudXBsb2FkSW5nU2l6ZSA9IDA7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRJbmdMaXN0ID0gW107XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBuZXdWZXJzaW9uLCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuXHJcbiAgICBmaWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW06IGFueSwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgbmV3RmlsZSA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBmaWxlcy5tYXAoYXN5bmMgKGZpbGUpID0+IHtcclxuICAgICAgICBpZiAoZmlsZS5maWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgICAgbmV3RmlsZS5zdGF0dXMgPSBmaWxlLnN0YXR1cyA9PSBcInN1Y2Nlc3NcIiA/IFwiZG9uZVwiIDogZmlsZS5zdGF0dXM7XHJcbiAgICAgICAgICBuZXdGaWxlLmZpbGVJZCA9IGZpbGUuZmlsZUlkO1xyXG4gICAgICAgICAgbmV3RmlsZS51cmwgPSBmaWxlLnVybDtcclxuICAgICAgICAgIGlmICghbmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgICBsZXQgdXJsID0gYC9qcXVpY2stcmVzb3VyY2Uvb3NzL2VuZHBvaW50L2Rvd25sb2FkLWZpbGVzP2F0dGFjaElkPSR7XHJcbiAgICAgICAgICAgICAgZmlsZS5maWxlSWRcclxuICAgICAgICAgICAgfSZfdHBrPSR7d2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwidG9rZW5cIil9YDtcclxuICAgICAgICAgICAgbmV3RmlsZS51cmwgPSByZXF1ZXN0Q29uZmlnLnByZWZpeFxyXG4gICAgICAgICAgICAgID8gcmVxdWVzdENvbmZpZy5wcmVmaXggKyB1cmxcclxuICAgICAgICAgICAgICA6IFwiL2FwaVwiICsgdXJsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIG5ld0xpc3QucHVzaChuZXdGaWxlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBbLi4ubmV3TGlzdF0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCB7IG9uTGlzdENoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgfVxyXG4gIGN1c3RvbVJlcXVlc3QgPSBhc3luYyAob3B0aW9ucykgPT4ge1xyXG4gICAgY29uc3QgZmlsZSA9IG9wdGlvbnMuZmlsZTtcclxuICAgIGNvbnN0IHsgb25Db21wbGV0ZSwgb25Qcm9jZXNzLCBzbGljZVNpemUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBvblByb2dyZXNzID0gKHRvdGFsUHJvZ3Jlc3M6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zLm9uUHJvZ3Jlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzIH0sIGZpbGUpO1xyXG4gICAgICB0aGlzLm9uUHJvY2Vzcyh7IHBlcmNlbnQ6IHRvdGFsUHJvZ3Jlc3MsIGZpbGU6IGZpbGUgfSk7XHJcbiAgICAgIG9uUHJvY2VzcyAmJiBvblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgfTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHJlczogYW55ID0gYXdhaXQgdXBsb2FkKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICBvblByb2dyZXNzOiBvblByb2dyZXNzLFxyXG4gICAgICAgICAgcGFydFNpemU6IHNsaWNlU2l6ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHRoaXMucHJvcHMucmVxdWVzdENvbmZpZ1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSB0aGlzLnVwbG9hZEluZ1NpemUgKyAxO1xyXG4gICAgICBsZXQgZmlsZUlkID0gbnVsbDtcclxuICAgICAgbGV0IEltZ1JlcyA9IG51bGw7XHJcbiAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICBmaWxlSWQgPSByZXMuZGF0YS5hdHRhY2hJZDtcclxuICAgICAgICBvcHRpb25zLm9uU3VjY2VzcygpO1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLmxpc3RUeXBlID09IFwicGljdHVyZS1jYXJkXCIgJiYgdGhpcy5wcm9wcy5uZXdWZXJzaW9uKSB7XHJcbiAgICAgICAgICBJbWdSZXMgPSBhd2FpdCBwcmV2aWV3SW1hZ2UoZmlsZUlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0LnB1c2goe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInByb2Nlc3NcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
684
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvdXBsb2FkL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsImZpbGUiLCJtZXNzYWdlIiwib21pdCIsImdldExlc3MiLCJzdHlsZXMiLCJjbHMiLCJGaWxlSWNvbiIsIkRlbGV0ZU91dGxpbmVkIiwiRG93bmxvYWRPdXRsaW5lZCIsIkV5ZU91dGxpbmVkIiwiTnNjVXBsb2FkRHJhZ2dlciIsInVwbG9hZCIsImRvd25sb2FkIiwicHJldmlld0RvY3VtZW50IiwicHJldmlld0ltYWdlIiwiTnNjVXBsb2FkIiwiZmlsZUxpc3QiLCJ2aWV3SWQiLCJmaWxlTGlzdFN0b3JlIiwiZmlsZU5hbWVzIiwib3B0aW9ucyIsInByb3BzIiwib25Db21wbGV0ZSIsIm9uUHJvY2VzcyIsInNsaWNlU2l6ZSIsIm9uUHJvZ3Jlc3MiLCJ0b3RhbFByb2dyZXNzIiwicGVyY2VudCIsInBhcnRTaXplIiwicmVxdWVzdENvbmZpZyIsInJlcyIsInVwbG9hZEluZ1NpemUiLCJmaWxlSWQiLCJJbWdSZXMiLCJjb2RlIiwiZGF0YSIsImF0dGFjaElkIiwib25TdWNjZXNzIiwibGlzdFR5cGUiLCJuZXdWZXJzaW9uIiwib25FcnJvciIsInVwbG9hZEluZ0xpc3QiLCJwdXNoIiwic3RhdHVzIiwidXJsIiwidXBsb2FkU2l6ZSIsImNvbnZlcnRGaWxlTGlzdCIsImxpc3QiLCJuZXdGaWxlTGlzdCIsIm9sZExpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJ0ZW1wIiwibmFtZSIsImZpbGVOYW1lIiwidHlwZSIsInNpemUiLCJzZXRTdGF0ZSIsInByZVByb3BzIiwicHJlU3RhdGUiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdGUiLCJjb25zb2xlIiwibG9nIiwicGFyc2UiLCJvZmlsZUxpc3QiLCJtYXhTaXplIiwiYWxsb3dGaWxlU3VmZml4IiwiY2hlY2tTYW1lRmlsZSIsIm1heENvdW50Iiwic2hvd1VwbG9hZExpc3QiLCJwcm9wc0xpc3QiLCJvbkxpc3RDaGFuZ2UiLCJjaGVja0ZpbGVUeXBlIiwiZXJyb3IiLCJjaGVja0xpc3QiLCJpbmRleE9mIiwiYmVmb3JlVXBsb2FkIiwibmV3TGlzdCIsInVpZCIsImxlbmd0aCIsImkiLCJzcGxpY2UiLCJuYW1lcyIsInNwbGl0Iiwic3VmZml4IiwibmV3RmlsZSIsImZpbGVzIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInByZWZpeCIsImZpbGVDYXJkIiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dQcmV2aWV3SWNvbiIsInNob3dSZW1vdmVJY29uIiwiZG93bmxvYWRJY29uIiwicmVtb3ZlSWNvbiIsInByZXZpZXdJY29uIiwibmV3cHJvcHMiLCJkZWZhdWx0UHJvcHMiLCJjdXN0b21SZXF1ZXN0IiwiYmluZCIsIm11bHRpcGxlIiwiaXRlbVJlbmRlciIsIm9yaWdpbk5vZGUiLCJjdXJyRmlsZUxpc3QiLCJvblByZXZpZXciLCJjdXJzb3IiLCJvbkRvd25sb2FkIiwib25SZW1vdmUiLCJvbkRlbGV0ZSIsIndpZHRoIiwiUHVyZUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBS0EsS0FBWixNQUF1QixPQUF2QjtBQUVBLE9BQU9DLElBQVAsTUFBaUIsVUFBakI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLFlBQXBCO0FBRUEsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUNBLE9BQU9DLFFBQVAsTUFBcUIsb0JBQXJCO0FBQ0EsU0FDRUMsY0FERixFQUVFQyxnQkFGRixFQUdFQyxXQUhGLFFBSU8sbUJBSlA7QUFNQSxPQUFPQyxnQkFBUCxNQUE2QixXQUE3QjtBQUVBLElBQVFDLE1BQVIsR0FBNERYLElBQTVELENBQVFXLE1B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QUFTLEVBQUUsbUJBQUM3RyxJQUFELEVBQWU7QUFDeEIsZ0JBQUlBLElBQUosYUFBSUEsSUFBSixlQUFJQSxJQUFJLENBQUVnQyxNQUFWLEVBQWtCO0FBQ2hCbkIsY0FBQUEsZUFBZSxDQUFDYixJQUFJLENBQUNnQyxNQUFOLEVBQWNILGFBQWQsQ0FBZjtBQUNEO0FBQ0YsV0FaUztBQWFWMkMsVUFBQUEsY0FBYyxvQkFBT0EsY0FBUDtBQWJKLFVBQVo7QUFlRDs7QUFDRCwwQkFDRSx1REFDRSwwQ0FDTThCLFlBRE4sRUFFTUQsUUFGTjtBQUdFLFFBQUEsWUFBWSxFQUFFLEtBQUt0QixZQUFMLENBQWtCeUIsSUFBbEIsQ0FBdUIsSUFBdkIsQ0FIaEI7QUFJRSxRQUFBLFFBQVEsRUFBRSxLQUFLekMsS0FBTCxDQUFXL0M7QUFKdkIsU0FERixDQURGO0FBVUQ7Ozs7RUE3Wm9DakIsS0FBSyxDQUFDb0gsYTs7Z0JBQXhCcEcsUyxhQUNGTCxnQjs7U0FERUssUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBVcGxvYWQsIFVwbG9hZFByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IGZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi9tZXNzYWdlXCI7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgRmlsZUljb24gZnJvbSBcIi4uL2NvbW1vbi9GaWxlSWNvblwiO1xyXG5pbXBvcnQge1xyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG4gIERvd25sb2FkT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBQZGZWaWV3ZXIgZnJvbSBcIi4uL3BkZnZpd2VyXCI7XHJcbmltcG9ydCBOc2NVcGxvYWREcmFnZ2VyIGZyb20gXCIuL0RyYWdnZXJcIjtcclxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tIFwiQGJhYmVsL2NvcmVcIjtcclxuY29uc3QgeyB1cGxvYWQsIGRvd25sb2FkLCBwcmV2aWV3RG9jdW1lbnQsIHByZXZpZXdJbWFnZSB9ID0gZmlsZTtcclxuXHJcbmludGVyZmFjZSBJVXBsb2FkUHJvcHMgZXh0ZW5kcyBVcGxvYWRQcm9wcyB7XHJcbiAgc2xpY2VTaXplPzogbnVtYmVyO1xyXG4gIG1heFNpemU/OiBudW1iZXIgfCBib29sZWFuO1xyXG4gIG9uUHJvY2Vzcz86IChwcm9jZXNzKSA9PiB2b2lkO1xyXG4gIG9uQ29tcGxldGU/OiAoeyBmaWxlLCBmaWxlSWQsIHN0YXR1cyB9KSA9PiB2b2lkO1xyXG4gIGFsbG93RmlsZVN1ZmZpeD86IEFycmF5PFN0cmluZz47IC8v5YWB6K645LiK5Lyg5omp5bGV5ZCNLOS4jeW4pi5cclxuICB1c2VEZWZhdWx0TGlzdD86IGJvb2xlYW47IC8v5piv5ZCm5L2/55So6buY6K6k55qEZmlsZUxpc3RcclxuICBmaWxlQ2FyZD86IGJvb2xlYW47XHJcbiAgb25MaXN0Q2hhbmdlPzogYW55O1xyXG4gIGNoZWNrU2FtZUZpbGU/OiBib29sZWFuO1xyXG4gIHJlcXVlc3RDb25maWc/OiBhbnk7XHJcbiAgbmV3VmVyc2lvbj86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTnNjVXBsb2FkIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJVXBsb2FkUHJvcHMsIGFueT4ge1xyXG4gIHN0YXRpYyBEcmFnZ2VyID0gTnNjVXBsb2FkRHJhZ2dlcjtcclxuICBzdGF0ZSA9IHtcclxuICAgIGZpbGVMaXN0OiBbXSxcclxuICAgIHZpZXdJZDogXCJcIixcclxuICAgIGZpbGVMaXN0U3RvcmU6IFtdLFxyXG4gICAgZmlsZU5hbWVzOiBbXSxcclxuICB9O1xyXG4gIHVwbG9hZEluZ1NpemUgPSAwO1xyXG4gIHVwbG9hZFNpemUgPSAwO1xyXG4gIHVwbG9hZEluZ0xpc3QgPSBbXTtcclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGlmICh0aGlzLnByb3BzLmZpbGVMaXN0KSB7XHJcbiAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbnZlcnRGaWxlTGlzdChsaXN0PzogQXJyYXk8T2JqZWN0Pikge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCwgbGlzdFR5cGUgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgbmV3RmlsZUxpc3QgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gbGlzdCA/IGxpc3QgOiBmaWxlTGlzdDtcclxuICAgIG9sZExpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0ge1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgc3RhdHVzOiBpdGVtLnN0YXR1cyxcclxuICAgICAgICBuYW1lOiBpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxyXG4gICAgICAgIHVybDogaXRlbS51cmwsXHJcbiAgICAgIH0gYXMgYW55O1xyXG4gICAgICBuZXdGaWxlTGlzdC5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IFsuLi5uZXdGaWxlTGlzdF0sXHJcbiAgICAgIGZpbGVMaXN0U3RvcmU6IFsuLi5maWxlTGlzdF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZVByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsZUxpc3QpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZmlsZUxpc3QpICE9PVxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuZmlsZUxpc3RTdG9yZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICBcImNvbXBvbmVudERpZFVwZGF0ZVwiLFxyXG4gICAgICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmZpbGVMaXN0KSlcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuY29udmVydEZpbGVMaXN0KHRoaXMucHJvcHMuZmlsZUxpc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuZmlsZUxpc3Q7XHJcbiAgfVxyXG4gIHNldEZpbGVMaXN0KGZpbGVMaXN0OiBBcnJheTxPYmplY3Q+KSB7XHJcbiAgICB0aGlzLmNvbnZlcnRGaWxlTGlzdChmaWxlTGlzdCk7XHJcbiAgfVxyXG4gIGFzeW5jIGJlZm9yZVVwbG9hZChmaWxlLCBvZmlsZUxpc3QpIHtcclxuICAgIGxldCB7XHJcbiAgICAgIG1heFNpemUgPSAxMDAsXHJcbiAgICAgIGFsbG93RmlsZVN1ZmZpeCxcclxuICAgICAgY2hlY2tTYW1lRmlsZSA9IHRydWUsXHJcbiAgICAgIG1heENvdW50LFxyXG4gICAgICBzaG93VXBsb2FkTGlzdCxcclxuICAgICAgZmlsZUxpc3Q6IHByb3BzTGlzdCxcclxuICAgICAgb25MaXN0Q2hhbmdlLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgeyBmaWxlTGlzdCwgZmlsZUxpc3RTdG9yZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBzaXplOiBudW1iZXI7XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4ICYmICF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSkpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcclxuICAgICAgICBgJHtmaWxlLm5hbWV95paH5Lu257G75Z6L5LiN5YWB6K645LiK5Lyg77yM6K+35LiK5Lyg5ZCO57yA5Li6JHthbGxvd0ZpbGVTdWZmaXh955qE57G75Z6L5paH5Lu277yBYFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAobWF4U2l6ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgaWYgKG1heFNpemUgPT09IHRydWUpIHtcclxuICAgICAgICBtYXhTaXplID0gMTAwO1xyXG4gICAgICB9XHJcbiAgICAgIHNpemUgPSBtYXhTaXplICogMTAyNCAqIDEwMjQ7XHJcbiAgICAgIGlmIChzaXplIDwgZmlsZS5zaXplKSB7XHJcbiAgICAgICAgbWVzc2FnZS5lcnJvcihgJHtmaWxlLm5hbWV95paH5Lu25aSn5bCP6LaF6L+HJHttYXhTaXplfU3vvIzor7fph43mlrDkuIrkvKDvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBmaWxlTmFtZXMgPSBbXTtcclxuICAgIGlmIChjaGVja1NhbWVGaWxlKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrTGlzdCA9IHRoaXMucHJvcHMuZmlsZUxpc3QgPyBmaWxlTGlzdFN0b3JlIDogZmlsZUxpc3Q7XHJcbiAgICAgIGNoZWNrTGlzdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBmaWxlTmFtZXMucHVzaChpdGVtLm5hbWUgfHwgaXRlbS5maWxlTmFtZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGZpbGVOYW1lcy5pbmRleE9mKGZpbGUubmFtZSkgPiAtMSAmJiBzaG93VXBsb2FkTGlzdCAhPT0gZmFsc2UpIHtcclxuICAgICAgICBtZXNzYWdlLmVycm9yKGDmlofku7Yke2ZpbGUubmFtZX3lt7LlnKjkuIrkvKDliJfooajkuK3vvIzor7fph43mlrDpgInmi6nmlofku7bvvIFgKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQpIHtcclxuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5wcm9wcy5iZWZvcmVVcGxvYWQoZmlsZSwgb2ZpbGVMaXN0KTtcclxuICAgICAgaWYgKHJlcyA9PT0gZmFsc2UpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IG5ld0xpc3QgPSBbLi4uZmlsZUxpc3RdO1xyXG4gICAgb2ZpbGVMaXN0Lm1hcChhc3luYyAoaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgIShcclxuICAgICAgICAgIChhbGxvd0ZpbGVTdWZmaXggJiYgIXRoaXMuY2hlY2tGaWxlVHlwZShpdGVtKSkgfHxcclxuICAgICAgICAgIHNpemUgPCBpdGVtLnNpemUgfHxcclxuICAgICAgICAgIChjaGVja1NhbWVGaWxlICYmIGZpbGVOYW1lcy5pbmRleE9mKGl0ZW0ubmFtZSkgPiAtMSlcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHRlbXAgPSB7XHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5uYW1lLFxyXG4gICAgICAgICAgcGVyY2VudDogMCxcclxuICAgICAgICAgIHN0YXR1czogXCJ1cGxvYWRpbmdcIixcclxuICAgICAgICAgIHVpZDogaXRlbS51aWQsXHJcbiAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsXHJcbiAgICAgICAgICBzaXplOiBpdGVtLnNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBuZXdMaXN0LnB1c2godGVtcCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXhDb3VudCAmJiBuZXdMaXN0Lmxlbmd0aCA+IG1heENvdW50KSB7XHJcbiAgICAgIGxldCBsZW5ndGggPSBuZXdMaXN0Lmxlbmd0aCAtIG1heENvdW50O1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbmV3TGlzdC5zcGxpY2UoMCwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UobmV3TGlzdCk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IG5ld0xpc3QgfSk7XHJcbiAgICB0aGlzLnVwbG9hZFNpemUgPSBvZmlsZUxpc3QubGVuZ3RoO1xyXG4gIH1cclxuICBjaGVja0ZpbGVUeXBlKGZpbGUpIHtcclxuICAgIGNvbnN0IHsgYWxsb3dGaWxlU3VmZml4IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmFtZXMgPSBmaWxlLm5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgY29uc3Qgc3VmZml4ID0gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoYWxsb3dGaWxlU3VmZml4LmluZGV4T2Yoc3VmZml4KSA+IC0xKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBvblByb2Nlc3MoeyBwZXJjZW50LCBmaWxlIH06IGFueSkge1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgb25MaXN0Q2hhbmdlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcbiAgICBmaWxlTGlzdC5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdGaWxlID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmIChmaWxlLnVpZCA9PSBpdGVtLnVpZCkge1xyXG4gICAgICAgIG5ld0ZpbGUucGVyY2VudCA9IHBlcmNlbnQ7XHJcbiAgICAgIH1cclxuICAgICAgbmV3TGlzdC5wdXNoKG5ld0ZpbGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgZmlsZUxpc3Q6IG5ld0xpc3QsXHJcbiAgICB9KTtcclxuICAgIG9uTGlzdENoYW5nZSAmJiBvbkxpc3RDaGFuZ2UoZmlsZUxpc3QpO1xyXG4gIH1cclxuICBhc3luYyBvbkNvbXBsZXRlKGZpbGVzKSB7XHJcbiAgICB0aGlzLnVwbG9hZEluZ1NpemUgPSAwO1xyXG4gICAgdGhpcy51cGxvYWRTaXplID0gMDtcclxuICAgIHRoaXMudXBsb2FkSW5nTGlzdCA9IFtdO1xyXG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgbmV3VmVyc2lvbiwgcmVxdWVzdENvbmZpZyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgbmV3TGlzdDogYW55ID0gW107XHJcblxyXG4gICAgZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBhbnksIGluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgZmlsZXMubWFwKGFzeW5jIChmaWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGUuZmlsZS51aWQgPT0gaXRlbS51aWQpIHtcclxuICAgICAgICAgIG5ld0ZpbGUuc3RhdHVzID0gZmlsZS5zdGF0dXMgPT0gXCJzdWNjZXNzXCIgPyBcImRvbmVcIiA6IGZpbGUuc3RhdHVzO1xyXG4gICAgICAgICAgbmV3RmlsZS5maWxlSWQgPSBmaWxlLmZpbGVJZDtcclxuICAgICAgICAgIG5ld0ZpbGUudXJsID0gZmlsZS51cmw7XHJcbiAgICAgICAgICBpZiAoIW5ld1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgbGV0IHVybCA9IGAvanF1aWNrLXJlc291cmNlL29zcy9lbmRwb2ludC9kb3dubG9hZC1maWxlcz9hdHRhY2hJZD0ke1xyXG4gICAgICAgICAgICAgIGZpbGUuZmlsZUlkXHJcbiAgICAgICAgICAgIH0mX3Rwaz0ke3dpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcInRva2VuXCIpfWA7XHJcbiAgICAgICAgICAgIG5ld0ZpbGUudXJsID0gcmVxdWVzdENvbmZpZy5wcmVmaXhcclxuICAgICAgICAgICAgICA/IHJlcXVlc3RDb25maWcucHJlZml4ICsgdXJsXHJcbiAgICAgICAgICAgICAgOiBcIi9hcGlcIiArIHVybDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBuZXdMaXN0LnB1c2gobmV3RmlsZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBmaWxlTGlzdDogWy4uLm5ld0xpc3RdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICBjdXN0b21SZXF1ZXN0ID0gYXN5bmMgKG9wdGlvbnMpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBvcHRpb25zLmZpbGU7XHJcbiAgICBjb25zdCB7IG9uQ29tcGxldGUsIG9uUHJvY2Vzcywgc2xpY2VTaXplIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qgb25Qcm9ncmVzcyA9ICh0b3RhbFByb2dyZXNzOiBhbnkpID0+IHtcclxuICAgICAgb3B0aW9ucy5vblByb2dyZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcyB9LCBmaWxlKTtcclxuICAgICAgdGhpcy5vblByb2Nlc3MoeyBwZXJjZW50OiB0b3RhbFByb2dyZXNzLCBmaWxlOiBmaWxlIH0pO1xyXG4gICAgICBvblByb2Nlc3MgJiYgb25Qcm9jZXNzKHsgcGVyY2VudDogdG90YWxQcm9ncmVzcywgZmlsZTogZmlsZSB9KTtcclxuICAgIH07XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IHVwbG9hZChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgb25Qcm9ncmVzczogb25Qcm9ncmVzcyxcclxuICAgICAgICAgIHBhcnRTaXplOiBzbGljZVNpemUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aGlzLnByb3BzLnJlcXVlc3RDb25maWdcclxuICAgICAgKTtcclxuICAgICAgdGhpcy51cGxvYWRJbmdTaXplID0gdGhpcy51cGxvYWRJbmdTaXplICsgMTtcclxuICAgICAgbGV0IGZpbGVJZCA9IG51bGw7XHJcbiAgICAgIGxldCBJbWdSZXMgPSBudWxsO1xyXG4gICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgZmlsZUlkID0gcmVzLmRhdGEuYXR0YWNoSWQ7XHJcbiAgICAgICAgb3B0aW9ucy5vblN1Y2Nlc3MoKTtcclxuICAgICAgICBpZiAodGhpcy5wcm9wcy5saXN0VHlwZSA9PSBcInBpY3R1cmUtY2FyZFwiICYmIHRoaXMucHJvcHMubmV3VmVyc2lvbikge1xyXG4gICAgICAgICAgSW1nUmVzID0gYXdhaXQgcHJldmlld0ltYWdlKGZpbGVJZCwgdGhpcy5wcm9wcy5yZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy51cGxvYWRJbmdMaXN0LnB1c2goe1xyXG4gICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSxcclxuICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICBzdGF0dXM6IHJlcy5jb2RlID09IDIwMCA/IFwic3VjY2Vzc1wiIDogXCJlcnJvclwiLFxyXG4gICAgICAgIHVybDogSW1nUmVzID8gSW1nUmVzLmRhdGEgOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU2l6ZSA9PSB0aGlzLnVwbG9hZEluZ1NpemUpIHtcclxuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51cGxvYWRJbmdMaXN0KTtcclxuICAgICAgfVxyXG4gICAgICBvbkNvbXBsZXRlICYmXHJcbiAgICAgICAgb25Db21wbGV0ZSh7XHJcbiAgICAgICAgICBmaWxlOiBvcHRpb25zLmZpbGUsXHJcbiAgICAgICAgICBmaWxlSWQ6IGZpbGVJZCxcclxuICAgICAgICAgIHN0YXR1czogcmVzLmNvZGUgPT0gMjAwID8gXCJzdWNjZXNzXCIgOiBcImVycm9yXCIsXHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGlmICh0aGlzLnVwbG9hZFNpemUgPT0gdGhpcy51cGxvYWRJbmdTaXplKSB7XHJcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudXBsb2FkSW5nTGlzdCk7XHJcbiAgICAgICAgb3B0aW9ucy5vbkVycm9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgb25Db21wbGV0ZSAmJlxyXG4gICAgICAgIG9uQ29tcGxldGUoeyBmaWxlOiBvcHRpb25zLmZpbGUsIGZpbGVJZDogXCJcIiwgc3RhdHVzOiBcImVycm9yXCIgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuICBvbkRlbGV0ZShmaWxlKSB7XHJcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBvbkxpc3RDaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdMaXN0OiBhbnkgPSBbXTtcclxuICAgIGZpbGVMaXN0Lm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIC8v6YCa6L+H5paH5Lu25ZCN5Yik5pat77yM5LiK5Lyg5piv5paH5Lu25ZCN5piv5ZSv5LiA55qEXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLm5hbWUgIT09IGZpbGUubmFtZSB8fFxyXG4gICAgICAgIGl0ZW0uZmlsZUlkICE9PSBmaWxlLmZpbGVJZCB8fFxyXG4gICAgICAgIGl0ZW0udWlkICE9PSBmaWxlLnVpZFxyXG4gICAgICApIHtcclxuICAgICAgICBuZXdMaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGZpbGVMaXN0OiBuZXdMaXN0LFxyXG4gICAgfSk7XHJcbiAgICBvbkxpc3RDaGFuZ2UgJiYgb25MaXN0Q2hhbmdlKG5ld0xpc3QpO1xyXG4gIH1cclxuICByZW5kZXIoKTogUmVhY3QuUmVhY3ROb2RlIHtcclxuICAgIGxldCB7XHJcbiAgICAgIGZpbGVMaXN0LFxyXG4gICAgICBmaWxlQ2FyZCxcclxuICAgICAgc2hvd1VwbG9hZExpc3QgPSB7XHJcbiAgICAgICAgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSxcclxuICAgICAgICBzaG93UHJldmlld0ljb246IGZhbHNlLFxyXG4gICAgICAgIHNob3dSZW1vdmVJY29uOiB0cnVlLFxyXG4gICAgICAgIGRvd25sb2FkSWNvbjogbnVsbCxcclxuICAgICAgICByZW1vdmVJY29uOiBudWxsLFxyXG4gICAgICAgIHByZXZpZXdJY29uOiBudWxsLFxyXG4gICAgICB9IGFzIGFueSxcclxuICAgICAgcmVxdWVzdENvbmZpZyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdwcm9wcyA9IG9taXQodGhpcy5wcm9wcywgW1xyXG4gICAgICBcInNsaWNlU2l6ZVwiLFxyXG4gICAgICBcIm1heFNpemVcIixcclxuICAgICAgXCJvbkNvbXBsZXRlXCIsXHJcbiAgICAgIFwib25Qcm9jZXNzXCIsXHJcbiAgICAgIFwiYWxsb3dGaWxlU3VmZml4XCIsXHJcbiAgICAgIFwidXNlRGVmYXVsdExpc3RcIixcclxuICAgICAgXCJmaWxlQ2FyZFwiLFxyXG4gICAgICBcIm9uTGlzdENoYW5nZVwiLFxyXG4gICAgICBcIm5ld1ZlcnNpb25cIixcclxuICAgICAgXCJyZXF1ZXN0Q29uZmlnXCIsXHJcbiAgICBdKTtcclxuICAgIGxldCBkZWZhdWx0UHJvcHMgPSB7XHJcbiAgICAgIGN1c3RvbVJlcXVlc3Q6IHRoaXMuY3VzdG9tUmVxdWVzdC5iaW5kKHRoaXMpLFxyXG4gICAgICBtdWx0aXBsZTogdHJ1ZSxcclxuICAgIH0gYXMgSVVwbG9hZFByb3BzO1xyXG4gICAgaWYgKGZpbGVDYXJkKSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgaXRlbVJlbmRlcjogKG9yaWdpbk5vZGUsIGZpbGU6IGFueSwgY3VyckZpbGVMaXN0KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lIHx8IGZpbGUuZmlsZU5hbWU7XHJcbiAgICAgICAgICBjb25zdCBuYW1lcyA9IG5hbWU/LnNwbGl0KFwiLlwiKTtcclxuICAgICAgICAgIGNvbnN0IHN1ZmZpeCA9IG5hbWVzID8gbmFtZXNbbmFtZXMubGVuZ3RoIC0gMV0gOiBcIlwiO1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImZpbGUtaXRlbVwiKX0+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudFwiKSwge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudF9lcnJvclwiKV06IGZpbGUuc3RhdHVzID09IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJtYXJrLXBpY3R1cmVcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RmlsZUljb24gc3VmZml4PXtzdWZmaXh9IGZpbGVJZD17ZmlsZS5maWxlSWR9IC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuYW1lXCIpfT5cclxuICAgICAgICAgICAgICAgICAge2ZpbGUubmFtZSB8fCBmaWxlLmZpbGVOYW1lfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5zaG93UHJldmlld0ljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25QcmV2aWV3KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblByZXZpZXcoZmlsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlld0RvY3VtZW50KGZpbGUuZmlsZUlkLCByZXF1ZXN0Q29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGN1cnNvcjogXCJwb2ludGVyXCIgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7c2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb25cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dEb3dubG9hZEljb24gJiYgZmlsZS5zdGF0dXMgPT0gXCJkb25lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25Eb3dubG9hZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25Eb3dubG9hZChmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZChmaWxlLmZpbGVJZCwgdHJ1ZSwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6IFwicG9pbnRlclwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvbiA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3QuZG93bmxvYWRJY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bmxvYWRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAge3Nob3dVcGxvYWRMaXN0LnNob3dSZW1vdmVJY29uICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vblJlbW92ZShmaWxlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiBcInBvaW50ZXJcIiB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtzaG93VXBsb2FkTGlzdC5kb3dubG9hZEljb24gPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0LmRvd25sb2FkSWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERlbGV0ZU91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge2ZpbGUuc3RhdHVzID09IFwidXBsb2FkaW5nXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInByb2Nlc3NcIil9PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJwZXJjZW50XCIpfVxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBmaWxlLnBlcmNlbnQgKyBcIiVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgICAgICAuLi5kZWZhdWx0UHJvcHMsXHJcbiAgICAgICAgb25Eb3dubG9hZDogKGZpbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZG93bmxvYWQoZmlsZS5maWxlSWQsIHRydWUsIHJlcXVlc3RDb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25SZW1vdmU6IChmaWxlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlKGZpbGUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb25QcmV2aWV3OiAoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmlsZT8uZmlsZUlkKSB7XHJcbiAgICAgICAgICAgIHByZXZpZXdEb2N1bWVudChmaWxlLmZpbGVJZCwgcmVxdWVzdENvbmZpZyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzaG93VXBsb2FkTGlzdDogeyAuLi5zaG93VXBsb2FkTGlzdCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPD5cclxuICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICB7Li4uZGVmYXVsdFByb3BzfVxyXG4gICAgICAgICAgey4uLm5ld3Byb3BzfVxyXG4gICAgICAgICAgYmVmb3JlVXBsb2FkPXt0aGlzLmJlZm9yZVVwbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3R9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -140,7 +140,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
140
140
  expand: false,
141
141
  formType: type || "modal",
142
142
  tableSize: size || "default",
143
- treeSearchPrams: {}
143
+ treeSearchPrams: {},
144
+ popopen: false
144
145
  };
145
146
  return _this2;
146
147
  }
@@ -442,6 +443,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
442
443
  }, {
443
444
  key: "renderCloumnButton",
444
445
  value: function renderCloumnButton(columnButtons, record) {
446
+ var _this5 = this;
447
+
445
448
  var actionPorps = this.props.actionPorps;
446
449
 
447
450
  var _config2 = config(),
@@ -488,6 +491,10 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
488
491
  className: cls(getLess(styles, "editor"), getLess(styles, "content-item")),
489
492
  key: index,
490
493
  onClick: function onClick() {
494
+ _this5.setState({
495
+ popopen: false
496
+ });
497
+
491
498
  _onClick2 && _onClick2(record);
492
499
  }
493
500
  }, params), showIcon !== false && /*#__PURE__*/React.createElement("span", {
@@ -525,10 +532,16 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
525
532
  title: null,
526
533
  content: content,
527
534
  trigger: ["click"],
528
- key: index // overlayClassName={styles['pop']}
535
+ key: index,
536
+ visible: _this5.state.popopen // overlayClassName={styles['pop']}
529
537
 
530
538
  }, /*#__PURE__*/React.createElement("div", {
531
- className: getLess(styles, "editor")
539
+ className: getLess(styles, "editor"),
540
+ onClick: function onClick() {
541
+ _this5.setState({
542
+ popopen: true
543
+ });
544
+ }
532
545
  }, /*#__PURE__*/React.createElement(EllipsisOutlined, null)));
533
546
  } else {
534
547
  return null;
@@ -643,7 +656,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
643
656
  }, {
644
657
  key: "render",
645
658
  value: function render() {
646
- var _this5 = this,
659
+ var _this6 = this,
647
660
  _tableProps$toolbar,
648
661
  _tableProps$toolbar2,
649
662
  _tableProps$toolbar2$;
@@ -773,13 +786,13 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
773
786
  className: getLess(styles, "col-back")
774
787
  }, /*#__PURE__*/React.createElement("span", {
775
788
  className: getLess(styles, "col-text")
776
- }, _this5.getText(tempProp, text))));
789
+ }, _this6.getText(tempProp, text))));
777
790
  }
778
791
  }, temp);
779
792
  } else if (!temp.ellipsis) {
780
793
  temp = _objectSpread({
781
794
  render: function render(text) {
782
- return /*#__PURE__*/React.createElement(React.Fragment, null, _this5.getText(tempProp, text));
795
+ return /*#__PURE__*/React.createElement(React.Fragment, null, _this6.getText(tempProp, text));
783
796
  }
784
797
  }, temp);
785
798
  } else {
@@ -806,7 +819,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
806
819
  return;
807
820
  }
808
821
 
809
- _this5.showForm(record.attribute || record, "detail");
822
+ _this6.showForm(record.attribute || record, "detail");
810
823
  },
811
824
  icon: /*#__PURE__*/React.createElement(EyeOutlined, null)
812
825
  }, "\u67E5\u770B"));
@@ -820,7 +833,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
820
833
  return;
821
834
  }
822
835
 
823
- _this5.showForm(record.attribute || record, "editor");
836
+ _this6.showForm(record.attribute || record, "editor");
824
837
  },
825
838
  icon: /*#__PURE__*/React.createElement(EditOutlined, null)
826
839
  }, "\u7F16\u8F91"));
@@ -831,14 +844,14 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
831
844
  selfButtons.push( /*#__PURE__*/React.createElement(Button, {
832
845
  type: "primary",
833
846
  onClick: function onClick() {
834
- var onShowForm = _this5.props.onShowForm;
847
+ var onShowForm = _this6.props.onShowForm;
835
848
 
836
849
  if (onShowForm) {
837
850
  onShowForm();
838
851
  return;
839
852
  }
840
853
 
841
- _this5.showForm();
854
+ _this6.showForm();
842
855
  },
843
856
  icon: /*#__PURE__*/React.createElement(PlusOutlined, null)
844
857
  }, "\u6DFB\u52A0"));
@@ -856,7 +869,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
856
869
  columnButtons.push( /*#__PURE__*/React.createElement(Button // type={"primary"}
857
870
  , {
858
871
  onClick: function onClick(record) {
859
- _this5.onDelete(record);
872
+ _this6.onDelete(record);
860
873
  },
861
874
  icon: /*#__PURE__*/React.createElement(DeleteOutlined, null),
862
875
  danger: true
@@ -905,7 +918,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
905
918
  render: function render(text, record) {
906
919
  return /*#__PURE__*/React.createElement("div", {
907
920
  className: getLess(styles, "action")
908
- }, _this5.renderCloumnButton(columnButtons, record));
921
+ }, _this6.renderCloumnButton(columnButtons, record));
909
922
  }
910
923
  });
911
924
  if (columnOrder) tableColumn = [{
@@ -986,10 +999,10 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
986
999
  }, expandable),
987
1000
  columnOrder: true,
988
1001
  onChange: function onChange(pagination) {
989
- var currentPage = _this5.state.currentPage;
1002
+ var currentPage = _this6.state.currentPage;
990
1003
 
991
1004
  if (currentPage !== pagination.current) {
992
- _this5.setState({
1005
+ _this6.setState({
993
1006
  currentPage: pagination.current
994
1007
  });
995
1008
  }
@@ -997,9 +1010,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
997
1010
  toolbar: _objectSpread({
998
1011
  onToolClick: {
999
1012
  onRefresh: function onRefresh() {
1000
- var params = _this5.getSearchValues();
1013
+ var params = _this6.getSearchValues();
1001
1014
 
1002
- _this5.tableLoad(params);
1015
+ _this6.tableLoad(params);
1003
1016
  }
1004
1017
  }
1005
1018
  }, tableProps.toolbar),
@@ -1007,11 +1020,11 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
1007
1020
  }, tableParams)))), editorForm && /*#__PURE__*/React.createElement(EditorForm, {
1008
1021
  ref: this.editorRef,
1009
1022
  callBack: function callBack() {
1010
- var _this5$props$onCallBa, _this5$props$onCallBa2;
1023
+ var _this6$props$onCallBa, _this6$props$onCallBa2;
1011
1024
 
1012
- ((_this5$props$onCallBa = _this5.props.onCallBacks) === null || _this5$props$onCallBa === void 0 ? void 0 : _this5$props$onCallBa.onSumbitCallBack) && ((_this5$props$onCallBa2 = _this5.props.onCallBacks) === null || _this5$props$onCallBa2 === void 0 ? void 0 : _this5$props$onCallBa2.onSumbitCallBack());
1025
+ ((_this6$props$onCallBa = _this6.props.onCallBacks) === null || _this6$props$onCallBa === void 0 ? void 0 : _this6$props$onCallBa.onSumbitCallBack) && ((_this6$props$onCallBa2 = _this6.props.onCallBacks) === null || _this6$props$onCallBa2 === void 0 ? void 0 : _this6$props$onCallBa2.onSumbitCallBack());
1013
1026
 
1014
- _this5.tableReload.bind(_this5);
1027
+ _this6.tableReload.bind(_this6);
1015
1028
  },
1016
1029
  formProps: editorForms,
1017
1030
  submitUrl: submitUrl,
@@ -1031,4 +1044,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
1031
1044
  }(PureComponent);
1032
1045
 
1033
1046
  export default BasePage;
1034
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJvblNlYXJjaCIsInNlbGVjdGVkIiwicmVzIiwia2V5Iiwia2V5cyIsImxlbmd0aCIsInN0b3JlUHJlZml4IiwidHlwZSIsImNvbnRlbnQiLCJzaXplIiwic2VsZWN0ZWRSb3dLZXlzIiwic2VsZWN0ZWRSb3dEYXRhcyIsInRyZWVTZWxlY3RlZEtleSIsImV4cGFuZCIsImZvcm1UeXBlIiwidGFibGVTaXplIiwidHJlZVNlYXJjaFByYW1zIiwiaW5pdERhdGEiLCJwYXJhbXMiLCJjYWxsQmFjayIsInNlYXJjaFJlZiIsImN1cnJlbnQiLCJzZXRTZWFyY2hQYXJhbXMiLCJlZGl0b3JmbGFnIiwiZWRpdG9yUmVmIiwic2hvdyIsImhpZGVGb3JtIiwibG9hZGluZyIsInNldExvYWRpbmciLCJzZXRGaWVsZHNWYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwiZGF0YSIsImRlbGV0ZVVybCIsIm9uRGVsZXRlIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJfdGhpcyIsInRhYmxlUmVmIiwiZ2V0U2VsZWN0ZWRSb3dLZXlzIiwid2FybmluZyIsImNvbmZpcm0iLCJvbk9rIiwiRXJyb3IiLCJkZWZhdWx0UGFyYW1zIiwibWV0aG9kIiwiYXV0b1ByZWZpeCIsImlkcyIsImpvaW4iLCJpZCIsInJlcXVlc3RQYXJhbXMiLCJ0aGVuIiwiY29kZSIsInN1Y2Nlc3MiLCJnZXRTZWFyY2hWYWx1ZXMiLCJvbkNhbGxCYWNrcyIsIm9uRGVsZXRlQ2FsbEJhY2siLCJ0YWJsZUxvYWQiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInJlcXVlc3RDb25maWciLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaENhbGxCYWNrIiwiY2FsbGJhY2siLCJhdXRvTG9hZCIsInJlbG9hZCIsInJlY29yZHMiLCJjdXJyZW50UGFnZSIsImdldFNlbGVjdGVkUm93RGF0YXMiLCJyZXNldFNlbGVjdGVkUm93S2V5cyIsImZyb21WYWx1ZSIsInRhYmxlUHJvcHMiLCJyb3dLZXkiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsInJlY29yZCIsImFjdGlvblBvcnBzIiwiYmFzZUFjdGlvbkNvbHVtbiIsIm5ld0J1dHRvbnMiLCJzaG93SWNvbiIsInJlY29yZFNob3ciLCJldmFsIiwicHVzaCIsInNlbGVjdGVkS2V5cyIsIm9iaiIsImtleXdvcmQiLCJ0cmVlUHJvcHMiLCJzZWFyY2hLZXkiLCJzZWFyY2hGaWVsZCIsInBhcmFudFNlbGVjdCIsInNlbGVjdGVkTm9kZXMiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwic2V0U3RhdGUiLCJpc0xlYWYiLCJvblRyZWVTZWxlY3QiLCJ0cmVlU2VsZWN0Q2FsbEJhY2siLCJyZXNldEZpZWxkcyIsInRleHQiLCJuZXdUZXh0IiwiaSIsImxhYmVsIiwic2V0RGF0YSIsInRyZWVSZWYiLCJjb2x1bW5zIiwic3VibWl0VXJsIiwiZm9ybVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsImJ1dHRvbnMiLCJlZGl0b3JGb3JtIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsImRlZmF1bHRWYWx1ZSIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsInRpdGxlIiwibGFiZWxDb2wiLCJ3cmFwcGVyQ29sIiwicnVsZXMiLCJzZWFyY2hSdWxlcyIsImVkaXRvciIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsImluZGV4T2YiLCJzaG93Rm9ybSIsImJpbmQiLCJBcnJheSIsImlzQXJyYXkiLCJjaGlsZCIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidGFibGVUb29sIiwidG9vbEZsYWciLCJ0b29sYmFyRmxhZyIsInRvb2xiYXIiLCJ0b29scyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwicGFnZVRpdGxlIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJvblJlc2V0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsIm9uU3VtYml0Q2FsbEJhY2siLCJ0YWJsZVJlbG9hZCIsIm9uU3VibWl0Iiwib25IaWRlRm9ybSIsIm9uRm9ybUNoYW5nZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxhQUFoQixRQUFnRCxPQUFoRDtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixpQkFBakI7QUFFQSxPQUFPQyxNQUFQLE1BQW1CLG1CQUFuQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0Isa0JBQWxCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixvQkFBcEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUdBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUNBLFNBQ0VDLFlBREYsRUFFRUMsV0FGRixFQUdFQyxZQUhGLEVBSUVDLGFBSkYsRUFLRUMsWUFMRixFQU1FQyxnQkFORixFQU9FQyxjQVBGLFFBUU8sbUJBUlA7QUFTQSxTQUFTQyxPQUFULFFBQWlDLGFBQWpDO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixhQUFwQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQThETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0QiwrQkFBTUEsS0FBTjs7QUFEc0IsNkVBTGJ6QixLQUFLLENBQUMwQixTQUFOLEVBS2E7O0FBQUEsNEVBSmQxQixLQUFLLENBQUMwQixTQUFOLEVBSWM7O0FBQUEsOEVBSFoxQixLQUFLLENBQUMwQixTQUFOLEVBR1k7O0FBQUEsOEVBRloxQixLQUFLLENBQUMwQixTQUFOLEVBRVk7O0FBQUEsa0VBRFgsRUFDVzs7QUFBQSxnRUFnQ2IsVUFBQ0MsZUFBRCxFQUEwQjtBQUNuQyx5QkFBb0MsT0FBS0MsS0FBekM7QUFBQSxVQUFRQyxJQUFSLGdCQUFRQSxJQUFSO0FBQUEsVUFBY0MsUUFBZCxnQkFBY0EsUUFBZDtBQUFBLFVBQXdCQyxPQUF4QixnQkFBd0JBLE9BQXhCO0FBQ0EsVUFBTUMsS0FBSyxHQUFHO0FBQUVILFFBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRQyxRQUFBQSxRQUFRLEVBQVJBLFFBQVI7QUFBa0JDLFFBQUFBLE9BQU8sRUFBUEEsT0FBbEI7QUFBMkJFLFFBQUFBLE1BQU0sRUFBRU4sZUFBZSxDQUFDLENBQUQ7QUFBbEQsT0FBZDs7QUFDQSxVQUFJLE9BQUtGLEtBQUwsQ0FBV1MsUUFBZixFQUF5QjtBQUN2QixlQUFLVCxLQUFMLENBQVdTLFFBQVgsQ0FBb0JGLEtBQXBCO0FBQ0QsT0FMa0MsQ0FNbkM7O0FBQ0QsS0F2Q3VCOztBQUFBLHNFQThhUCxVQUFDRyxRQUFELEVBQWM7QUFDN0IsVUFBSUMsR0FBRyxHQUFHLEVBQVY7O0FBQ0EsV0FBSyxJQUFJQyxHQUFULElBQWdCRixRQUFoQixFQUEwQjtBQUN4QixZQUFNRyxJQUFJLEdBQUdILFFBQVEsQ0FBQ0UsR0FBRCxDQUFyQjs7QUFDQSxZQUFJQyxJQUFJLENBQUNDLE1BQUwsR0FBYyxDQUFsQixFQUFxQjtBQUNuQkgsVUFBQUEsR0FBRyxnQ0FBT0EsR0FBUCxzQkFBZUUsSUFBZixFQUFIO0FBQ0Q7QUFDRjs7QUFDRCxhQUFPRixHQUFQO0FBQ0QsS0F2YnVCOztBQUV0QixrQkFBc0JmLE1BQU0sRUFBNUI7QUFBQSxRQUFNbUIsV0FBTixXQUFNQSxXQUFOOztBQUNBLFFBQUlDLElBQUksR0FBR25CLFVBQVUsQ0FDbkJrQixXQUFXLEdBQUdBLFdBQVcsR0FBRyxHQUFkLEdBQW9CLFVBQXZCLEdBQW9DLFVBRDVCLENBQXJCO0FBR0FDLElBQUFBLElBQUksWUFBR0EsSUFBSCwwQ0FBRyxNQUFNQyxPQUFiO0FBQ0EsUUFBSUMsSUFBSSxHQUFHckIsVUFBVSxDQUNuQmtCLFdBQVcsR0FBR0EsV0FBVyxHQUFHLEdBQWQsR0FBb0IsV0FBdkIsR0FBcUMsV0FEN0IsQ0FBckI7QUFHQUcsSUFBQUEsSUFBSSxZQUFHQSxJQUFILDBDQUFHLE1BQU1ELE9BQWI7QUFDQSxXQUFLZCxLQUFMLEdBQWE7QUFDWGEsTUFBQUEsSUFBSSxFQUFFLEtBREs7QUFFWEcsTUFBQUEsZUFBZSxFQUFFLEVBRk47QUFHWEMsTUFBQUEsZ0JBQWdCLEVBQUUsRUFIUDtBQUlYQyxNQUFBQSxlQUFlLEVBQUUsRUFKTjtBQUtYQyxNQUFBQSxNQUFNLEVBQUUsS0FMRztBQU1YQyxNQUFBQSxRQUFRLEVBQUVQLElBQUksSUFBSSxPQU5QO0FBT1hRLE1BQUFBLFNBQVMsRUFBRU4sSUFBSSxJQUFJLFNBUFI7QUFRWE8sTUFBQUEsZUFBZSxFQUFFO0FBUk4sS0FBYjtBQVhzQjtBQXFCdkI7Ozs7V0FDRCw2QkFBb0I7QUFDbEIsVUFBUUMsUUFBUixHQUFxQixLQUFLMUIsS0FBMUIsQ0FBUTBCLFFBQVI7QUFDQUEsTUFBQUEsUUFBUSxJQUFJQSxRQUFRLEVBQXBCO0FBQ0Q7OztXQUVELHlCQUFnQkMsTUFBaEIsRUFBd0JDLFFBQXhCLEVBQWtDO0FBQUE7O0FBQ2hDLG9DQUFLQyxTQUFMLENBQWVDLE9BQWYsZ0ZBQXdCQyxlQUF4QixDQUF3Q0osTUFBeEM7QUFDQUMsTUFBQUEsUUFBUSxJQUFJQSxRQUFRLENBQUNELE1BQUQsQ0FBcEI7QUFDRDs7O1dBV0Q7QUFDQSxzQkFBU3BCLEtBQVQsRUFBMEM7QUFBQTs7QUFBQSxVQUFwQnlCLFVBQW9CLHVFQUFQLEtBQU87QUFDeEMsb0NBQUtDLFNBQUwsQ0FBZUgsT0FBZixnRkFBd0JJLElBQXhCLENBQTZCM0IsS0FBN0IsRUFBb0N5QixVQUFwQztBQUNELEssQ0FFRDs7OztXQUNBLG9CQUFXO0FBQUE7O0FBQ1QscUNBQUtDLFNBQUwsQ0FBZUgsT0FBZixrRkFBd0JLLFFBQXhCO0FBQ0Q7OztXQUVELG9CQUFXQyxPQUFYLEVBQTZCO0FBQUE7O0FBQzNCLHFDQUFLSCxTQUFMLENBQWVILE9BQWYsa0ZBQXdCTyxVQUF4QixDQUFtQ0QsT0FBbkM7QUFDRDs7O1dBRUQsMkJBQWtCN0IsS0FBbEIsRUFBeUI7QUFBQTs7QUFDdkIscUNBQUswQixTQUFMLENBQWVILE9BQWYsa0ZBQXdCUSxjQUF4QixDQUF1Qy9CLEtBQXZDO0FBQ0Q7OztXQUVELDZCQUFvQjtBQUFBOztBQUNsQix1Q0FBTyxLQUFLMEIsU0FBTCxDQUFlSCxPQUF0QiwyREFBTyx1QkFBd0JTLGNBQXhCLEVBQVA7QUFDRCxLLENBRUQ7Ozs7V0FDQSxrQkFBU0MsSUFBVCxFQUFxQjtBQUFBOztBQUNuQix3QkFLSSxLQUFLeEMsS0FMVDtBQUFBLFVBQ0V5QyxTQURGLGVBQ0VBLFNBREY7QUFBQSxVQUVFQyxRQUZGLGVBRUVBLFFBRkY7QUFBQSxVQUdFQyxZQUhGLGVBR0VBLFlBSEY7QUFBQSw4Q0FJRUMsY0FKRjtBQUFBLFVBSUVBLGNBSkYsc0NBSW1CLFNBSm5COztBQU1BLFVBQUlDLEtBQUssR0FBRyxJQUFaOztBQUNBLFVBQU0xQixlQUFlLDRCQUFHLEtBQUsyQixRQUFMLENBQWNoQixPQUFqQiwwREFBRyxzQkFBdUJpQixrQkFBdkIsRUFBeEI7O0FBQ0EsVUFBSUgsY0FBYyxJQUFJLFNBQXRCLEVBQWlDO0FBQy9CLFlBQUl6QixlQUFlLENBQUNMLE1BQWhCLElBQTBCLENBQTlCLEVBQWlDO0FBQy9CaEMsVUFBQUEsT0FBTyxDQUFDa0UsT0FBUixDQUFnQixZQUFoQjtBQUNBO0FBQ0Q7QUFDRjs7QUFDRHBFLE1BQUFBLEtBQUssQ0FBQ3FFLE9BQU4sQ0FBYztBQUNaaEMsUUFBQUEsT0FBTyxFQUFFLFlBREc7QUFFWjtBQUNBaUMsUUFBQUEsSUFBSSxFQUFFLGdCQUFNO0FBQ1YsY0FBSVIsUUFBSixFQUFjO0FBQ1pBLFlBQUFBLFFBQVEsSUFDTkEsUUFBUSxDQUFDRSxjQUFjLElBQUksU0FBbEIsR0FBOEJ6QixlQUE5QixHQUFnRHFCLElBQWpELENBRFY7QUFFQTtBQUNEOztBQUNELGNBQUksQ0FBQ0MsU0FBTCxFQUFnQjtBQUNkLGtCQUFNLElBQUlVLEtBQUosQ0FBVSxVQUFWLENBQU47QUFDRDs7QUFDRCxjQUFNQyxhQUFhLEdBQUc7QUFDcEJDLFlBQUFBLE1BQU0sRUFBRSxNQURZO0FBRXBCQyxZQUFBQSxVQUFVLEVBQUUsSUFGUTtBQUdwQjNCLFlBQUFBLE1BQU0sRUFBRTtBQUNONEIsY0FBQUEsR0FBRyxFQUFFWCxjQUFjLElBQUksU0FBbEIsR0FBOEJ6QixlQUFlLENBQUNxQyxJQUFoQixFQUE5QixHQUF1RGhCLElBQUksQ0FBQ2lCO0FBRDNEO0FBSFksV0FBdEI7QUFPQSxjQUFJQyxhQUFhLEdBQUcsRUFBcEI7O0FBQ0EsY0FBSU4sYUFBSixFQUFtQjtBQUNqQk0sWUFBQUEsYUFBYSxxQkFBUWYsWUFBUixDQUFiO0FBQ0Q7O0FBQ0RlLFVBQUFBLGFBQWEscUJBQVFOLGFBQVIsQ0FBYjtBQUNBekQsVUFBQUEsT0FBTyxDQUFDOEMsU0FBRCxvQkFDRmlCLGFBREUsRUFBUCxDQUdHQyxJQUhILENBR1EsVUFBVWhELEdBQVYsRUFBb0I7QUFDeEIsZ0JBQVFpRCxJQUFSLEdBQWlCakQsR0FBakIsQ0FBUWlELElBQVI7O0FBQ0EsZ0JBQUlBLElBQUksS0FBSyxHQUFiLEVBQWtCO0FBQUE7O0FBQ2hCOUUsY0FBQUEsT0FBTyxDQUFDK0UsT0FBUixDQUFnQixPQUFoQjs7QUFDQSxrQkFBSXRELE1BQUssc0JBQUdzQyxLQUFLLENBQUNoQixTQUFULDhFQUFHLGdCQUFpQkMsT0FBcEIsMkRBQUcsdUJBQTBCZ0MsZUFBMUIsRUFBWjs7QUFDQSx3Q0FBQWpCLEtBQUssQ0FBQzdDLEtBQU4sQ0FBWStELFdBQVosZ0ZBQXlCQyxnQkFBekIsZ0NBQ0VuQixLQUFLLENBQUM3QyxLQUFOLENBQVkrRCxXQURkLDJEQUNFLHVCQUF5QkMsZ0JBQXpCLEVBREY7O0FBRUFuQixjQUFBQSxLQUFLLENBQUNvQixTQUFOLENBQWdCMUQsTUFBaEI7QUFDRCxhQU5ELE1BTU87QUFDTHpCLGNBQUFBLE9BQU8sQ0FBQ29GLEtBQVIsQ0FBYyxPQUFkO0FBQ0Q7QUFDRixXQWRILEVBZUdDLEtBZkgsQ0FlUyxVQUFVRCxLQUFWLEVBQXNCO0FBQzNCRSxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxPQUFaLEVBQXFCSCxLQUFyQjtBQUNELFdBakJIO0FBa0JEO0FBMUNXLE9BQWQ7QUE0Q0Q7OztXQUNELG1CQUFVdkMsTUFBVixFQUEyQztBQUFBOztBQUFBLFVBQXBCMkMsYUFBb0IsdUVBQUosRUFBSTtBQUN6QyxxQ0FBS3hCLFFBQUwsQ0FBY2hCLE9BQWQsa0ZBQXVCeUMsS0FBdkIsQ0FBNkJDLElBQTdCLGlDQUNLRixhQURMO0FBRUUzQyxRQUFBQSxNQUFNLEVBQUVBO0FBRlY7QUFJRCxLLENBQ0Q7Ozs7V0FDQSxrQkFBU0EsTUFBVCxFQUFpQjtBQUNmLHlCQUFrQyxLQUFLM0IsS0FBdkM7QUFBQSxVQUFRUyxRQUFSLGdCQUFRQSxRQUFSO0FBQUEsVUFBa0JzRCxXQUFsQixnQkFBa0JBLFdBQWxCOztBQUNBLFVBQUl0RCxRQUFKLEVBQWM7QUFDWkEsUUFBQUEsUUFBUSxpQ0FBTWtCLE1BQU4sR0FBaUIsS0FBS3hCLEtBQUwsQ0FBV3NCLGVBQTVCLEVBQVI7QUFDQTtBQUNEOztBQUNELFdBQUt3QyxTQUFMLGlDQUFvQnRDLE1BQXBCLEdBQStCLEtBQUt4QixLQUFMLENBQVdzQixlQUExQztBQUNBLE9BQUFzQyxXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRVUsZ0JBQWIsS0FDRXZGLEtBQUssQ0FBQ3dGLFFBQU4sQ0FBZVgsV0FBZixhQUFlQSxXQUFmLHVCQUFlQSxXQUFXLENBQUVVLGdCQUE1QixFQUE4QyxJQUE5QyxFQUFvRCxDQUFDOUMsTUFBRCxDQUFwRCxDQURGO0FBRUQsSyxDQUNEOzs7O1dBQ0EsdUJBQTBDO0FBQUE7QUFBQTtBQUFBOztBQUFBLFVBQTlCQSxNQUE4Qix1RUFBckIsRUFBcUI7QUFBQSxVQUFqQmdELFFBQWlCLHVFQUFOLElBQU07QUFDeEMscUNBQUs3QixRQUFMLENBQWNoQixPQUFkLDRHQUF1QnlDLEtBQXZCLGtGQUE4QkssTUFBOUIsQ0FBcUM7QUFDbkNGLFFBQUFBLFFBQVEsRUFBRSxrQkFBQy9ELEdBQUQsRUFBUztBQUFBOztBQUNqQixjQUNFZ0UsUUFBUSxJQUNSLENBQUFoRSxHQUFHLFNBQUgsSUFBQUEsR0FBRyxXQUFILHlCQUFBQSxHQUFHLENBQUU2QixJQUFMLDZFQUFXcUMsT0FBWCx3RUFBb0IvRCxNQUFwQixLQUE4QixDQUQ5QixJQUVBLE1BQUksQ0FBQ1gsS0FBTCxDQUFXMkUsV0FBWCxLQUEyQixDQUg3QixFQUlFO0FBQUE7O0FBQ0EscUNBQUEsTUFBSSxDQUFDaEMsUUFBTCxDQUFjaEIsT0FBZCwwR0FBdUJ5QyxLQUF2QixrRkFBOEJLLE1BQTlCLENBQXFDO0FBQ25DakQsY0FBQUEsTUFBTTtBQUFJRyxnQkFBQUEsT0FBTyxFQUFFO0FBQWIsaUJBQW1CSCxNQUFuQjtBQUQ2QixhQUFyQztBQUdEO0FBQ0Y7QUFYa0MsT0FBckM7QUFhRDs7O1dBQ0QsOEJBQXFCO0FBQUE7O0FBQ25CLHVDQUFPLEtBQUttQixRQUFMLENBQWNoQixPQUFyQiwyREFBTyx1QkFBdUJpQixrQkFBdkIsRUFBUDtBQUNEOzs7V0FDRCwrQkFBc0I7QUFBQTs7QUFDcEIsdUNBQU8sS0FBS0QsUUFBTCxDQUFjaEIsT0FBckIsMkRBQU8sdUJBQXVCaUQsbUJBQXZCLEVBQVA7QUFDRDs7O1dBQ0QsZ0NBQXVCO0FBQUE7O0FBQ3JCLHVDQUFPLEtBQUtqQyxRQUFMLENBQWNoQixPQUFyQiwyREFBTyx1QkFBdUJrRCxvQkFBdkIsRUFBUDtBQUNEOzs7V0FFRCwyQkFBa0I7QUFBQTs7QUFDaEIsVUFBTUMsU0FBUyx1QkFBRyxLQUFLcEQsU0FBUiw4RUFBRyxpQkFBZ0JDLE9BQW5CLDBEQUFHLHNCQUF5QmdDLGVBQXpCLEVBQWxCO0FBQ0EsNkNBQVltQixTQUFaLEdBQTBCLEtBQUs5RSxLQUFMLENBQVdzQixlQUFyQztBQUNEOzs7V0FFRCx5QkFBZ0JlLElBQWhCLEVBQWlDO0FBQUE7O0FBQUEsVUFBWDNCLElBQVcsdUVBQUosRUFBSTtBQUMvQixVQUFRcUUsVUFBUixHQUF1QixLQUFLbEYsS0FBNUIsQ0FBUWtGLFVBQVI7QUFDQSwrQkFBMEJBLFVBQTFCLENBQVFDLE1BQVI7QUFBQSxVQUFRQSxNQUFSLG1DQUFpQixJQUFqQjtBQUNBLFVBQUlDLE1BQU0sR0FBRyxFQUFiOztBQUNBLFVBQUk1QyxJQUFJLENBQUM2QyxVQUFULEVBQXFCO0FBQ25CLFlBQU1DLFFBQVEsR0FBRzlDLElBQUksQ0FBQzZDLFVBQXRCO0FBQ0FDLFFBQUFBLFFBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBT0MsS0FBUCxFQUFpQjtBQUM1QixjQUFJRCxJQUFJLENBQUNILFVBQVQsRUFBcUI7QUFDbkIsWUFBQSxNQUFJLENBQUNLLGVBQUwsQ0FBcUJGLElBQUksQ0FBQ0gsVUFBMUIsRUFBc0N4RSxJQUF0QztBQUNELFdBRkQsTUFFTztBQUNMdUUsWUFBQUEsTUFBTSxnQ0FBT3ZFLElBQVAsSUFBYTJFLElBQUksQ0FBQ0wsTUFBRCxDQUFqQixFQUFOO0FBQ0Q7QUFDRixTQU5EO0FBT0QsT0FURCxNQVNPO0FBQ0xDLFFBQUFBLE1BQU0sZ0NBQU92RSxJQUFQLElBQWEyQixJQUFJLENBQUMyQyxNQUFELENBQWpCLEVBQU47QUFDRDs7QUFDRCxhQUFPQyxNQUFQO0FBQ0Q7OztXQUVELDJCQUFrQk8sV0FBbEIsRUFBd0Q7QUFBQSxVQUFwQkMsVUFBb0IsdUVBQVAsS0FBTztBQUN0RCxVQUFNQyxJQUFJLEdBQUdGLFdBQVcsQ0FBQzdFLE1BQVosR0FBcUIsQ0FBbEM7QUFDQSxrQ0FBOEIsS0FBS2QsS0FBbkMsQ0FBUThGLFVBQVI7QUFBQSxVQUFRQSxVQUFSLHNDQUFxQixJQUFyQjtBQUNBLFVBQU03RSxPQUFPLEdBQUcwRSxXQUFXLENBQUNKLEdBQVosQ0FBZ0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQ3pELDBCQUErREQsSUFBSSxDQUFDeEYsS0FBcEU7QUFBQSxZQUFRc0YsUUFBUixlQUFRQSxRQUFSO0FBQUEsWUFBa0JTLFFBQWxCLGVBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxRQUE1QixlQUE0QkEsT0FBNUI7QUFBQSxZQUFxQ0MsSUFBckMsZUFBcUNBLElBQXJDO0FBQUEsWUFBMkMvRCxJQUEzQyxlQUEyQ0EsSUFBM0M7QUFBQSxZQUFvRFAsTUFBcEQ7O0FBQ0EsWUFBSThELEtBQUssR0FBRyxDQUFaLEVBQWU7QUFDYiw4QkFDRTtBQUNFLFlBQUEsU0FBUyxFQUFFekcsR0FBRyxDQUNaVSxPQUFPLENBQUNULE1BQUQsRUFBUyxRQUFULENBREssRUFFWlMsT0FBTyxDQUFDVCxNQUFELEVBQVMsY0FBVCxDQUZLLENBRGhCO0FBS0UsWUFBQSxHQUFHLEVBQUV3RyxLQUxQO0FBTUUsWUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYk8sY0FBQUEsUUFBTyxJQUFJQSxRQUFPLEVBQWxCO0FBQ0Q7QUFSSCxhQVNNckUsTUFUTixnQkFXRTtBQUFNLFlBQUEsU0FBUyxFQUFFakMsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ2dILElBQTNDLENBWEYsZUFZRTtBQUFNLFlBQUEsU0FBUyxFQUFFdkcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ3FHLFFBQTNDLENBWkYsQ0FERjtBQWdCRDtBQUNGLE9BcEJlLENBQWhCO0FBcUJBLDBCQUNFO0FBQ0UsUUFBQSxTQUFTLEVBQUV0RyxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLGNBQVQsQ0FBUixzQkFDWFMsT0FBTyxDQUFDVCxNQUFELEVBQVMscUJBQVQsQ0FESSxFQUM4QixDQUFDNkcsVUFBRCxJQUFlRixVQUQ3QyxFQURoQjtBQUlFLFFBQUEsS0FBSyxFQUFFO0FBQUVNLFVBQUFBLFVBQVUsRUFBRTtBQUFkO0FBSlQsU0FNR1AsV0FBVyxDQUFDSixHQUFaLENBQWdCLFVBQUNDLElBQUQsRUFBWUMsS0FBWixFQUEyQjtBQUMxQyxZQUFJSSxJQUFKLEVBQVU7QUFDUixjQUFJSixLQUFLLEdBQUcsQ0FBWixFQUFlO0FBQ2IsZ0NBQU87QUFBSyxjQUFBLEdBQUcsRUFBRUE7QUFBVixlQUFrQkQsSUFBbEIsQ0FBUDtBQUNELFdBRkQsTUFFTyxJQUFJQyxLQUFLLElBQUksQ0FBYixFQUFnQjtBQUNyQixnQ0FDRSxvQkFBQyxPQUFEO0FBQ0UsY0FBQSxPQUFPLEVBQUV4RSxPQURYO0FBRUUsY0FBQSxLQUFLLEVBQUUsSUFGVDtBQUdFLGNBQUEsU0FBUyxFQUFDLFFBSFo7QUFJRSxjQUFBLE9BQU8sRUFBRSxDQUFDLE9BQUQsQ0FKWDtBQUtFLGNBQUEsR0FBRyxFQUFFd0UsS0FMUCxDQU1FOztBQU5GLDRCQVFFLG9CQUFDLE1BQUQ7QUFBUSxjQUFBLElBQUksRUFBQztBQUFiLDZDQUNLLG9CQUFDLFlBQUQsT0FETCxDQVJGLENBREY7QUFjRCxXQWZNLE1BZUE7QUFDTCxtQkFBTyxJQUFQO0FBQ0Q7QUFDRixTQXJCRCxNQXFCTztBQUNMLDhCQUFPO0FBQUssWUFBQSxHQUFHLEVBQUVBO0FBQVYsYUFBa0JELElBQWxCLENBQVA7QUFDRDtBQUNGLE9BekJBLENBTkgsQ0FERjtBQW1DRDs7O1dBQ0QsNEJBQW1CVyxhQUFuQixFQUF1Q0MsTUFBdkMsRUFBb0Q7QUFDbEQsVUFBUUMsV0FBUixHQUF3QixLQUFLckcsS0FBN0IsQ0FBUXFHLFdBQVI7O0FBQ0EscUJBQTZCekcsTUFBTSxFQUFuQztBQUFBLFVBQVEwRyxnQkFBUixZQUFRQSxnQkFBUjs7QUFDQSxVQUFNQyxVQUFVLEdBQUcsRUFBbkI7QUFDQSxVQUFJQyxRQUFRLEdBQUcsSUFBZjtBQUNBLFVBQUksQ0FBQUgsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxZQUFBQSxXQUFXLENBQUVHLFFBQWIsTUFBMEIsS0FBOUIsRUFBcUNBLFFBQVEsR0FBRyxLQUFYLENBQXJDLEtBQ0ssSUFBSUYsZ0JBQWdCLENBQUNFLFFBQWpCLEtBQThCLEtBQWxDLEVBQXlDQSxRQUFRLEdBQUcsS0FBWDtBQUM5Q0wsTUFBQUEsYUFBYSxDQUFDWixHQUFkLENBQWtCLFVBQUNDLElBQUQsRUFBWUMsS0FBWixFQUEyQjtBQUMzQywyQkFDRUQsSUFBSSxDQUFDeEYsS0FEUDtBQUFBLFlBQVFzRixRQUFSLGdCQUFRQSxRQUFSO0FBQUEsWUFBa0JTLFFBQWxCLGdCQUFrQkEsUUFBbEI7QUFBQSxZQUE0QkMsT0FBNUIsZ0JBQTRCQSxPQUE1QjtBQUFBLFlBQXFDQyxJQUFyQyxnQkFBcUNBLElBQXJDO0FBQUEsWUFBMkNRLFVBQTNDLGdCQUEyQ0EsVUFBM0M7QUFBQSxZQUEwRDlFLE1BQTFEOztBQUVBLFlBQUk4RSxVQUFKLEVBQWdCO0FBQ2QsY0FBSSxPQUFPQSxVQUFQLElBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDLGdCQUFJQyxJQUFJLENBQUNELFVBQUQsQ0FBUixFQUFzQjtBQUNwQkYsY0FBQUEsVUFBVSxDQUFDSSxJQUFYLENBQWdCbkIsSUFBaEI7QUFDRDtBQUNGLFdBSkQsTUFJTyxJQUFJLE9BQU9pQixVQUFQLElBQXFCLFVBQXpCLEVBQXFDO0FBQzFDLGdCQUFNdkUsSUFBSSxHQUFHdUUsVUFBVSxDQUFDTCxNQUFELENBQXZCO0FBQ0FsRSxZQUFBQSxJQUFJLElBQUlxRSxVQUFVLENBQUNJLElBQVgsQ0FBZ0JuQixJQUFoQixDQUFSO0FBQ0Q7QUFDRixTQVRELE1BU087QUFDTGUsVUFBQUEsVUFBVSxDQUFDSSxJQUFYLENBQWdCbkIsSUFBaEI7QUFDRDtBQUNGLE9BZkQ7QUFnQkEsVUFBTUssSUFBSSxHQUFHVSxVQUFVLENBQUN6RixNQUFYLEdBQW9CLENBQWpDO0FBRUEsVUFBTUcsT0FBTyxHQUFHc0YsVUFBVSxDQUFDaEIsR0FBWCxDQUFlLFVBQUNDLElBQUQsRUFBWUMsS0FBWixFQUEyQjtBQUN4RCwyQkFDRUQsSUFBSSxDQUFDeEYsS0FEUDtBQUFBLFlBQVFzRixRQUFSLGdCQUFRQSxRQUFSO0FBQUEsWUFBa0JTLFFBQWxCLGdCQUFrQkEsUUFBbEI7QUFBQSxZQUE0QkMsU0FBNUIsZ0JBQTRCQSxPQUE1QjtBQUFBLFlBQXFDUyxVQUFyQyxnQkFBcUNBLFVBQXJDO0FBQUEsWUFBaURSLElBQWpELGdCQUFpREEsSUFBakQ7QUFBQSxZQUF1RC9ELElBQXZELGdCQUF1REEsSUFBdkQ7QUFBQSxZQUFnRVAsTUFBaEU7O0FBRUEsWUFBSThELEtBQUssR0FBRyxDQUFaLEVBQWU7QUFDYiw4QkFDRTtBQUNFLFlBQUEsU0FBUyxFQUFFekcsR0FBRyxDQUNaVSxPQUFPLENBQUNULE1BQUQsRUFBUyxRQUFULENBREssRUFFWlMsT0FBTyxDQUFDVCxNQUFELEVBQVMsY0FBVCxDQUZLLENBRGhCO0FBS0UsWUFBQSxHQUFHLEVBQUV3RyxLQUxQO0FBTUUsWUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYk8sY0FBQUEsU0FBTyxJQUFJQSxTQUFPLENBQUNJLE1BQUQsQ0FBbEI7QUFDRDtBQVJILGFBU016RSxNQVROLEdBV0c2RSxRQUFRLEtBQUssS0FBYixpQkFDQztBQUFNLFlBQUEsU0FBUyxFQUFFOUcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ2dILElBQTNDLENBWkosZUFjRTtBQUFNLFlBQUEsU0FBUyxFQUFFdkcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ3FHLFFBQTNDLENBZEYsQ0FERjtBQWtCRDtBQUNGLE9BdkJlLENBQWhCO0FBeUJBLGFBQU9pQixVQUFVLENBQUNoQixHQUFYLENBQWUsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQy9DLDJCQUNFRCxJQUFJLENBQUN4RixLQURQO0FBQUEsWUFBUXNGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQlMsUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxTQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNTLFVBQXJDLGdCQUFxQ0EsVUFBckM7QUFBQSxZQUFpRFIsSUFBakQsZ0JBQWlEQSxJQUFqRDtBQUFBLFlBQTBEdEUsTUFBMUQ7O0FBRUEsWUFBSWtFLElBQUosRUFBVTtBQUNSLGNBQUlKLEtBQUssR0FBRyxDQUFaLEVBQWU7QUFDYixnQ0FDRTtBQUNFLGNBQUEsU0FBUyxFQUFFekcsR0FBRyxDQUFDVSxPQUFPLENBQUNULE1BQUQsRUFBUyxRQUFULENBQVIsc0JBQ1hTLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLGNBQVQsQ0FESSxFQUN1QndHLEtBQUssS0FBSyxDQURqQyxFQURoQjtBQUlFLGNBQUEsR0FBRyxFQUFFQSxLQUpQO0FBS0UsY0FBQSxPQUFPLEVBQUUsbUJBQU07QUFDYk8sZ0JBQUFBLFNBQU8sSUFBSUEsU0FBTyxDQUFDSSxNQUFELENBQWxCO0FBQ0Q7QUFQSCxlQVFNekUsTUFSTixHQVVHNkUsUUFBUSxLQUFLLEtBQWIsaUJBQ0M7QUFBTSxjQUFBLFNBQVMsRUFBRTlHLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsZUFBMkNnSCxJQUEzQyxDQVhKLGVBYUU7QUFBTSxjQUFBLFNBQVMsRUFBRXZHLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsZUFBMkNxRyxRQUEzQyxDQWJGLENBREY7QUFpQkQsV0FsQkQsTUFrQk8sSUFBSUcsS0FBSyxJQUFJLENBQWIsRUFBZ0I7QUFDckIsZ0NBQ0Usb0JBQUMsT0FBRDtBQUNFLGNBQUEsU0FBUyxFQUFDLFFBRFo7QUFFRSxjQUFBLEtBQUssRUFBRSxJQUZUO0FBR0UsY0FBQSxPQUFPLEVBQUV4RSxPQUhYO0FBSUUsY0FBQSxPQUFPLEVBQUUsQ0FBQyxPQUFELENBSlg7QUFLRSxjQUFBLEdBQUcsRUFBRXdFLEtBTFAsQ0FNRTs7QUFORiw0QkFRRTtBQUFLLGNBQUEsU0FBUyxFQUFFL0YsT0FBTyxDQUFDVCxNQUFELEVBQVMsUUFBVDtBQUF2Qiw0QkFDRSxvQkFBQyxnQkFBRCxPQURGLENBUkYsQ0FERjtBQWNELFdBZk0sTUFlQTtBQUNMLG1CQUFPLElBQVA7QUFDRDtBQUNGLFNBckNELE1BcUNPO0FBQ0wsOEJBQ0U7QUFDRSxZQUFBLFNBQVMsRUFBRUQsR0FBRyxDQUFDVSxPQUFPLENBQUNULE1BQUQsRUFBUyxRQUFULENBQVIsc0JBQ1hTLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLGNBQVQsQ0FESSxFQUN1QndHLEtBQUssS0FBSyxDQURqQyxFQURoQjtBQUlFLFlBQUEsR0FBRyxFQUFFQSxLQUpQO0FBS0UsWUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYk8sY0FBQUEsU0FBTyxJQUFJQSxTQUFPLENBQUNJLE1BQUQsQ0FBbEI7QUFDRDtBQVBILGFBUU16RSxNQVJOLEdBVUc2RSxRQUFRLEtBQUssS0FBYixpQkFDQztBQUFNLFlBQUEsU0FBUyxFQUFFOUcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ2dILElBQTNDLENBWEosZUFhRTtBQUFNLFlBQUEsU0FBUyxFQUFFdkcsT0FBTyxDQUFDVCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ3FHLFFBQTNDLENBYkYsQ0FERjtBQWlCRDtBQUNGLE9BM0RNLENBQVAsQ0FsRGtELENBOEdsRDtBQUNELEssQ0FDRDs7OztXQUNBLG9CQUFXc0IsWUFBWCxFQUE4QkMsR0FBOUIsRUFBd0M7QUFBQTs7QUFDdEMsVUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxrQ0FJSSxLQUFLOUcsS0FBTCxDQUFXK0csU0FKZjtBQUFBLHlEQUNFQyxTQURGO0FBQUEsVUFDRUEsU0FERix1Q0FDYyxLQURkO0FBQUEseURBRUVDLFdBRkY7QUFBQSxVQUVFQSxXQUZGLHVDQUVnQixFQUZoQjtBQUFBLHlEQUdFQyxZQUhGO0FBQUEsVUFHRUEsWUFIRix1Q0FHaUIsSUFIakI7QUFLQSxVQUFRN0YsZUFBUixHQUE0QixLQUFLbEIsS0FBakMsQ0FBUWtCLGVBQVI7QUFDQSxVQUFRWCxRQUFSLEdBQW9DbUcsR0FBcEMsQ0FBUW5HLFFBQVI7QUFBQSxVQUFrQnlHLGFBQWxCLEdBQW9DTixHQUFwQyxDQUFrQk0sYUFBbEI7O0FBRUEsVUFBSXpHLFFBQUosRUFBYztBQUNab0csUUFBQUEsT0FBTyxHQUFHSyxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCQyxPQUFqQixDQUF5QkMsU0FBekIsQ0FBbUNMLFNBQW5DLENBQVY7O0FBQ0EsWUFBSUUsWUFBSixFQUFrQjtBQUNoQixlQUFLSSxRQUFMLENBQWM7QUFDWmpHLFlBQUFBLGVBQWUsRUFBRXVGLFlBQVksQ0FBQyxDQUFELENBRGpCO0FBRVpuRixZQUFBQSxlQUFlLHNCQUFLd0YsV0FBTCxFQUFtQkgsT0FBbkI7QUFGSCxXQUFkO0FBSUQsU0FMRCxNQUtPO0FBQ0wsY0FBSUssYUFBYSxDQUFDLENBQUQsQ0FBYixDQUFpQkksTUFBakIsSUFBMkIsQ0FBQ0osYUFBYSxDQUFDLENBQUQsQ0FBYixDQUFpQjdCLFFBQWpELEVBQTJEO0FBQ3pELGdCQUFJc0IsWUFBWSxDQUFDLENBQUQsQ0FBWixLQUFvQnZGLGVBQXhCLEVBQXlDO0FBQ3ZDLG1CQUFLaUcsUUFBTCxDQUFjO0FBQ1pqRyxnQkFBQUEsZUFBZSxFQUFFdUYsWUFBWSxDQUFDLENBQUQsQ0FEakI7QUFFWm5GLGdCQUFBQSxlQUFlLHNCQUFLd0YsV0FBTCxFQUFtQkgsT0FBbkI7QUFGSCxlQUFkO0FBSUQ7QUFDRjtBQUNGO0FBQ0YsT0FqQkQsTUFpQk87QUFDTCxhQUFLUSxRQUFMLENBQWM7QUFDWmpHLFVBQUFBLGVBQWUsRUFBRXlGLE9BREw7QUFFWnJGLFVBQUFBLGVBQWUsRUFBRTtBQUZMLFNBQWQ7QUFJRDs7QUFDRCxVQUFJLEtBQUt6QixLQUFMLENBQVd3SCxZQUFmLEVBQTZCO0FBQzNCLGFBQUt4SCxLQUFMLENBQVd3SCxZQUFYLENBQXdCWixZQUF4QixFQUFzQ0MsR0FBdEM7QUFDQTtBQUNEOztBQUNELFVBQU01QixTQUFTLEdBQUcsMEJBQUtwRCxTQUFMLCtGQUFnQkMsT0FBaEIsZ0ZBQXlCZ0MsZUFBekIsT0FBOEMsRUFBaEU7QUFDQW1ELE1BQUFBLFdBQVcsSUFBSSxLQUFLaEQsU0FBTCxpQ0FBb0JnQixTQUFwQiwyQkFBZ0NnQyxXQUFoQyxFQUE4Q0gsT0FBOUMsR0FBZjtBQUNBLHNDQUFLOUcsS0FBTCxDQUFXK0QsV0FBWCxrRkFBd0IwRCxrQkFBeEIsS0FDRXZJLEtBQUssQ0FBQ3dGLFFBQU4sMkJBQWUsS0FBSzFFLEtBQUwsQ0FBVytELFdBQTFCLDJEQUFlLHVCQUF3QjBELGtCQUF2QyxFQUEyRCxJQUEzRCxFQUFpRSxDQUMvRGIsWUFEK0QsRUFFL0RDLEdBRitELENBQWpFLENBREY7QUFLRDs7O1dBQ0QsdUJBQWM7QUFBQTs7QUFDWixxQ0FBS2hGLFNBQUwsQ0FBZUMsT0FBZixrRkFBd0I0RixXQUF4QjtBQUNEOzs7V0FDRCxpQkFBUTFILEtBQVIsRUFBZTJILElBQWYsRUFBcUI7QUFBQTs7QUFDbkIsVUFBSUMsT0FBTyxHQUFHRCxJQUFkOztBQUNBLFVBQUkzSCxLQUFLLFNBQUwsSUFBQUEsS0FBSyxXQUFMLElBQUFBLEtBQUssQ0FBRXdDLElBQVAsSUFBZSxDQUFBeEMsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCwyQkFBQUEsS0FBSyxDQUFFd0MsSUFBUCw0REFBYTFCLE1BQWIsSUFBc0IsQ0FBekMsRUFBNEM7QUFDMUMsWUFBSTBCLElBQUksR0FBR3hDLEtBQUssQ0FBQ3dDLElBQWpCOztBQUNBLGFBQUssSUFBSXFGLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLElBQUdyRixJQUFILGFBQUdBLElBQUgsdUJBQUdBLElBQUksQ0FBRTFCLE1BQVQsQ0FBakIsRUFBa0MrRyxDQUFDLEVBQW5DLEVBQXVDO0FBQ3JDLGNBQUlyRixJQUFJLENBQUNxRixDQUFELENBQUosQ0FBUXRILEtBQVIsSUFBaUJvSCxJQUFyQixFQUEyQjtBQUN6QkMsWUFBQUEsT0FBTyxHQUFHcEYsSUFBSSxDQUFDcUYsQ0FBRCxDQUFKLENBQVFDLEtBQWxCO0FBQ0Q7QUFDRjtBQUNGOztBQUNELGFBQU9GLE9BQVA7QUFDRDs7O1dBQ0Qsc0JBQWFwRixJQUFiLEVBQW1CO0FBQUE7O0FBQ2pCLHFDQUFLTSxRQUFMLENBQWNoQixPQUFkLDRHQUF1QnlDLEtBQXZCLGtGQUE4QndELE9BQTlCLENBQXNDdkYsSUFBdEM7QUFDRDs7O1dBQ0QscUJBQVlBLElBQVosRUFBa0I7QUFBQTs7QUFDaEIsb0NBQUt3RixPQUFMLENBQWFsRyxPQUFiLDBHQUFzQnlDLEtBQXRCLGtGQUE2QndELE9BQTdCLENBQXFDdkYsSUFBckM7QUFDRDs7O1dBWUQsa0JBQVM7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDUCx5QkFtQkksS0FBS3hDLEtBbkJUO0FBQUEsOENBQ0VpSSxPQURGO0FBQUEsVUFDRUEsT0FERixxQ0FDWSxFQURaO0FBQUEsK0NBRUVuQyxVQUZGO0FBQUEsVUFFRUEsVUFGRixzQ0FFZSxJQUZmO0FBQUEsVUFHRVIsUUFIRixnQkFHRUEsUUFIRjtBQUFBLCtDQUlFNEMsU0FKRjtBQUFBLFVBSUVBLFNBSkYsc0NBSWMsRUFKZDtBQUFBLCtDQUtFaEQsVUFMRjtBQUFBLFVBS0VBLFVBTEYsc0NBS2UsRUFMZjtBQUFBLCtDQU1FNkIsU0FORjtBQUFBLFVBTUVBLFNBTkYsc0NBTWMsRUFOZDtBQUFBLCtDQU9Fb0IsU0FQRjtBQUFBLFVBT0VBLFNBUEYsc0NBT2MsRUFQZDtBQUFBLCtDQVFFQyxRQVJGO0FBQUEsVUFRRUEsUUFSRixzQ0FRYSxLQVJiO0FBQUEsK0NBU0VDLFlBVEY7QUFBQSxVQVNFQSxZQVRGLHNDQVNpQixFQVRqQjtBQUFBLCtDQVVFQyxjQVZGO0FBQUEsVUFVRUEsY0FWRixzQ0FVbUIsSUFWbkI7QUFBQSw4Q0FXRUMsT0FYRjtBQUFBLFVBV0VBLE9BWEYscUNBV1ksRUFYWjtBQUFBLCtDQVlFQyxVQVpGO0FBQUEsVUFZRUEsVUFaRixzQ0FZZSxJQVpmO0FBQUEsVUFhRUMsVUFiRixnQkFhRUEsVUFiRjtBQUFBLCtDQWNFQyxlQWRGO0FBQUEsVUFjRUEsZUFkRixzQ0Fjb0IsSUFkcEI7QUFBQSxVQWVFQyxTQWZGLGdCQWVFQSxTQWZGO0FBQUEsK0NBZ0JFQyxrQkFoQkY7QUFBQSxVQWdCRUEsa0JBaEJGLHNDQWdCdUIsUUFoQnZCO0FBQUEsVUFpQkV2QyxXQWpCRixnQkFpQkVBLFdBakJGO0FBQUEsK0NBa0JFekQsY0FsQkY7QUFBQSxVQWtCRUEsY0FsQkYsc0NBa0JtQixTQWxCbkI7O0FBb0JBLFVBQ0UyQixLQURGLEdBU0lXLFVBVEosQ0FDRVgsS0FERjtBQUFBLGtDQVNJVyxVQVRKLENBRUUyRCxZQUZGO0FBQUEsVUFFRUEsWUFGRixzQ0FFaUIsSUFGakI7QUFBQSxrQ0FTSTNELFVBVEosQ0FHRTRELFlBSEY7QUFBQSxVQUdFQSxZQUhGLHNDQUdpQixJQUhqQjtBQUFBLGtDQVNJNUQsVUFUSixDQUlFNkQsZ0JBSkY7QUFBQSxVQUlFQSxnQkFKRixzQ0FJcUIsSUFKckI7QUFBQSxrQ0FTSTdELFVBVEosQ0FLRThELFdBTEY7QUFBQSxVQUtFQSxXQUxGLHNDQUtnQixJQUxoQjtBQUFBLGtDQVNJOUQsVUFUSixDQU1FK0QsVUFORjtBQUFBLFVBTUVBLFVBTkYsc0NBTWUsRUFOZjtBQUFBLGtDQVNJL0QsVUFUSixDQU9FZ0MsWUFQRjtBQUFBLFVBT0VBLFlBUEYsc0NBT2lCLElBUGpCO0FBQUEsVUFRS2dDLGdCQVJMLDRCQVNJaEUsVUFUSjs7QUFXQSw2QkFLSTZCLFNBTEosQ0FDRXhDLEtBREY7QUFBQSxVQUNTNEUsU0FEVCxpQ0FDcUIsRUFEckI7QUFBQSxrQ0FLSXBDLFNBTEosQ0FFRWpCLFVBRkY7QUFBQSxVQUVjc0QsVUFGZCxzQ0FFMkIsSUFGM0I7QUFBQSxrQ0FLSXJDLFNBTEosQ0FHRXNDLFVBSEY7QUFBQSxVQUdFQSxVQUhGLHNDQUdlLE9BSGY7QUFBQSxVQUlLQyxlQUpMLDRCQUtJdkMsU0FMSjs7QUFPQSxVQUFJd0MsV0FBVztBQUFLVixRQUFBQSxZQUFZLEVBQVpBLFlBQUw7QUFBbUJ0RSxRQUFBQSxLQUFLLEVBQUxBO0FBQW5CLFNBQTZCMkUsZ0JBQTdCLENBQWY7O0FBQ0EsVUFBSU0sV0FBa0IsR0FBRyxFQUF6QjtBQUNBLFVBQU1DLFdBQWdCLEdBQUcsRUFBekI7QUFDQSxVQUFNQyxXQUFnQixHQUFHLEVBQXpCO0FBQ0EsVUFBTUMsWUFBaUIsR0FBRyxFQUExQjtBQUNBLFVBQU14RCxhQUFrQixHQUFHLEVBQTNCO0FBQ0E4QixNQUFBQSxPQUFPLENBQUMxQyxHQUFSLENBQVksVUFBQ0MsSUFBRCxFQUFlO0FBQUE7O0FBQ3pCLFlBQUlvRSxJQUFJLHFCQUFRcEUsSUFBUixDQUFSOztBQUNBLFlBQUlvRSxJQUFJLENBQUNDLE1BQUwsS0FBZ0IsSUFBaEIsSUFBd0IsaUJBQUFELElBQUksQ0FBQ0MsTUFBTCw4REFBYTNILElBQWIsTUFBc0IsSUFBbEQsRUFBd0Q7QUFBQTs7QUFDdER1SCxVQUFBQSxXQUFXLENBQUM5QyxJQUFaLENBQWlCO0FBQ2Z2RyxZQUFBQSxJQUFJLEVBQUV3SixJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRyxTQURWO0FBRWZqQyxZQUFBQSxLQUFLLEVBQUUsa0JBQUE4QixJQUFJLENBQUNDLE1BQUwsZ0VBQWEvQixLQUFiLEtBQXNCOEIsSUFBSSxDQUFDSSxLQUZuQjtBQUdmaEosWUFBQUEsSUFBSSxFQUFFNEksSUFBSSxDQUFDNUksSUFISTtBQUlmaEIsWUFBQUEsS0FBSyxFQUFFNEosSUFBSSxDQUFDNUosS0FKRztBQUtmaUssWUFBQUEsUUFBUSxtQkFBRUwsSUFBSSxDQUFDQyxNQUFQLGtEQUFFLGNBQWFJLFFBTFI7QUFNZkMsWUFBQUEsVUFBVSxtQkFBRU4sSUFBSSxDQUFDQyxNQUFQLGtEQUFFLGNBQWFLLFVBTlY7QUFPZkMsWUFBQUEsS0FBSyxFQUFFUCxJQUFJLENBQUNRLFdBQUwsR0FBbUJSLElBQUksQ0FBQ1EsV0FBeEIsR0FBc0M7QUFQOUIsV0FBakI7QUFTRDs7QUFFRCxlQUFPUixJQUFJLENBQUNDLE1BQVo7QUFDQUQsUUFBQUEsSUFBSSxDQUFDUyxNQUFMLEtBQWdCLEtBQWhCLElBQ0VYLFdBQVcsQ0FBQy9DLElBQVosQ0FBaUI7QUFDZnZHLFVBQUFBLElBQUksRUFBRXdKLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNHLFNBRFY7QUFFZmpDLFVBQUFBLEtBQUssRUFBRThCLElBQUksQ0FBQ0ksS0FGRztBQUdmRyxVQUFBQSxLQUFLLEVBQUVQLElBQUksQ0FBQ08sS0FBTCxHQUFhUCxJQUFJLENBQUNPLEtBQWxCLEdBQTBCLEVBSGxCO0FBSWZuSixVQUFBQSxJQUFJLEVBQUU0SSxJQUFJLENBQUM1SSxJQUpJO0FBS2ZzSixVQUFBQSxJQUFJLEVBQUVWLElBQUksQ0FBQ1UsSUFMSTtBQU1mQyxVQUFBQSxRQUFRLEVBQUVYLElBQUksQ0FBQ1csUUFOQTtBQU9mdkssVUFBQUEsS0FBSyxvQkFBTzRKLElBQUksQ0FBQzVKLEtBQVo7QUFQVSxTQUFqQixDQURGOztBQVdBLFlBQ0UsZ0JBQUE0SixJQUFJLENBQUM1SixLQUFMLDREQUFZMkosWUFBWixNQUE2QmEsU0FBN0IsSUFDQSxpQkFBQVosSUFBSSxDQUFDNUosS0FBTCw4REFBWTJKLFlBQVosTUFBNkIsSUFGL0IsRUFHRTtBQUFBOztBQUNBLGNBQU12SixJQUFJLEdBQUd3SixJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRyxTQUFoQztBQUNBSixVQUFBQSxZQUFZLENBQUN2SixJQUFELENBQVosbUJBQXFCd0osSUFBSSxDQUFDNUosS0FBMUIsaURBQXFCLGFBQVkySixZQUFqQztBQUNEOztBQUNELGVBQU9DLElBQUksQ0FBQ08sS0FBWjtBQUNBLGVBQU9QLElBQUksQ0FBQ1UsSUFBWjs7QUFDQSxZQUFJVixJQUFJLENBQUNhLFlBQVQsRUFBdUI7QUFDckJiLFVBQUFBLElBQUksQ0FBQ2MsV0FBTCxHQUFtQjtBQUNqQjFKLFlBQUFBLElBQUksRUFBRTRJLElBQUksQ0FBQzVJLElBRE07QUFFakJoQixZQUFBQSxLQUFLLEVBQUU0SixJQUFJLENBQUM1SjtBQUZLLFdBQW5CO0FBSUQ7O0FBQ0QsZUFBTzRKLElBQUksQ0FBQzVJLElBQVo7O0FBQ0EsWUFBSTJKLFFBQVEscUJBQVFmLElBQUksQ0FBQzVKLEtBQWIsQ0FBWjs7QUFDQSxZQUFJNEosSUFBSSxDQUFDZ0IsS0FBVCxFQUFnQjtBQUNkaEIsVUFBQUEsSUFBSTtBQUNGaUIsWUFBQUEsTUFBTSxFQUFFLGdCQUFDbEQsSUFBRCxFQUFlO0FBQ3JCLGtDQUNFLDBDQUNHQSxJQUFJLEtBQUssRUFBVCxJQUFlQSxJQUFJLEtBQUssSUFBeEIsSUFBZ0NBLElBQUksS0FBSzZDLFNBQXpDLGlCQUNDO0FBQUssZ0JBQUEsU0FBUyxFQUFFOUssT0FBTyxDQUFDVCxNQUFELEVBQVMsVUFBVDtBQUF2Qiw4QkFDRTtBQUFNLGdCQUFBLFNBQVMsRUFBRVMsT0FBTyxDQUFDVCxNQUFELEVBQVMsVUFBVDtBQUF4QixpQkFDRyxNQUFJLENBQUM2TCxPQUFMLENBQWFILFFBQWIsRUFBdUJoRCxJQUF2QixDQURILENBREYsQ0FGSixDQURGO0FBV0Q7QUFiQyxhQWNDaUMsSUFkRCxDQUFKO0FBZ0JELFNBakJELE1BaUJPLElBQUksQ0FBQ0EsSUFBSSxDQUFDbUIsUUFBVixFQUFvQjtBQUN6Qm5CLFVBQUFBLElBQUk7QUFDRmlCLFlBQUFBLE1BQU0sRUFBRSxnQkFBQ2xELElBQUQsRUFBZTtBQUNyQixrQ0FBTywwQ0FBRyxNQUFJLENBQUNtRCxPQUFMLENBQWFILFFBQWIsRUFBdUJoRCxJQUF2QixDQUFILENBQVA7QUFDRDtBQUhDLGFBSUNpQyxJQUpELENBQUo7QUFNRCxTQVBNLE1BT0E7QUFDTEEsVUFBQUEsSUFBSSxxQkFBUUEsSUFBUixDQUFKO0FBQ0Q7O0FBQ0QsZUFBT0EsSUFBSSxDQUFDNUosS0FBWjtBQUNBLFlBQUksVUFBQTRKLElBQUksVUFBSixzQ0FBTW9CLFVBQU4sTUFBcUIsS0FBekIsRUFBZ0N4QixXQUFXLENBQUM3QyxJQUFaLENBQWlCaUQsSUFBakI7QUFDakMsT0F4RUQ7QUF5RUEsVUFBTXFCLFdBQWdCLEdBQUcsRUFBekI7O0FBQ0EscUJBQTZCckwsTUFBTSxFQUFuQztBQUFBLFVBQVEwRyxnQkFBUixZQUFRQSxnQkFBUjs7QUFDQSxVQUFJRSxRQUFRLEdBQUcsSUFBZjtBQUNBLFVBQUksQ0FBQUgsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxZQUFBQSxXQUFXLENBQUVHLFFBQWIsTUFBMEIsS0FBOUIsRUFBcUNBLFFBQVEsR0FBRyxLQUFYLENBQXJDLEtBQ0ssSUFBSUYsZ0JBQWdCLENBQUNFLFFBQWpCLEtBQThCLEtBQWxDLEVBQXlDQSxRQUFRLEdBQUcsS0FBWDs7QUFDOUMsVUFBSWdDLFVBQVUsSUFBSSxJQUFsQixFQUF3QjtBQUN0QixZQUFJRCxPQUFPLENBQUMyQyxPQUFSLENBQWdCLFFBQWhCLElBQTRCLENBQUMsQ0FBakMsRUFBb0M7QUFDbEMvRSxVQUFBQSxhQUFhLENBQUNRLElBQWQsZUFDRSxvQkFBQyxNQUFEO0FBQ0UsWUFBQSxPQUFPLEVBQUUsaUJBQUNQLE1BQUQsRUFBaUI7QUFDeEIsa0JBQUlxQyxVQUFKLEVBQWdCO0FBQ2RBLGdCQUFBQSxVQUFVLENBQUNyQyxNQUFNLENBQUNpQixTQUFQLElBQW9CakIsTUFBckIsRUFBNkIsUUFBN0IsQ0FBVjtBQUNBO0FBQ0Q7O0FBQ0QsY0FBQSxNQUFJLENBQUMrRSxRQUFMLENBQWMvRSxNQUFNLENBQUNpQixTQUFQLElBQW9CakIsTUFBbEMsRUFBMEMsUUFBMUM7QUFDRCxhQVBIO0FBUUUsWUFBQSxJQUFJLGVBQUUsb0JBQUMsV0FBRDtBQVJSLDRCQURGO0FBY0Q7O0FBQ0QsWUFBSW1DLE9BQU8sQ0FBQzJDLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQy9FLFVBQUFBLGFBQWEsQ0FBQ1EsSUFBZCxlQUNFLG9CQUFDLE1BQUQ7QUFDRSxZQUFBLE9BQU8sRUFBRSxpQkFBQ1AsTUFBRCxFQUFpQjtBQUN4QixrQkFBSXFDLFVBQUosRUFBZ0I7QUFDZEEsZ0JBQUFBLFVBQVUsQ0FBQ3JDLE1BQU0sQ0FBQ2lCLFNBQVAsSUFBb0JqQixNQUFyQixFQUE2QixRQUE3QixDQUFWO0FBQ0E7QUFDRDs7QUFDRCxjQUFBLE1BQUksQ0FBQytFLFFBQUwsQ0FBYy9FLE1BQU0sQ0FBQ2lCLFNBQVAsSUFBb0JqQixNQUFsQyxFQUEwQyxRQUExQztBQUNELGFBUEg7QUFRRSxZQUFBLElBQUksZUFBRSxvQkFBQyxZQUFEO0FBUlIsNEJBREY7QUFjRDtBQUNGOztBQUNELFVBQUltQyxPQUFPLENBQUMyQyxPQUFSLENBQWdCLEtBQWhCLElBQXlCLENBQUMsQ0FBOUIsRUFBaUM7QUFDL0JELFFBQUFBLFdBQVcsQ0FBQ3RFLElBQVosZUFDRSxvQkFBQyxNQUFEO0FBQ0UsVUFBQSxJQUFJLEVBQUUsU0FEUjtBQUVFLFVBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsZ0JBQVE4QixVQUFSLEdBQXVCLE1BQUksQ0FBQ3pJLEtBQTVCLENBQVF5SSxVQUFSOztBQUNBLGdCQUFJQSxVQUFKLEVBQWdCO0FBQ2RBLGNBQUFBLFVBQVU7QUFDVjtBQUNEOztBQUNELFlBQUEsTUFBSSxDQUFDMEMsUUFBTDtBQUNELFdBVEg7QUFVRSxVQUFBLElBQUksZUFBRSxvQkFBQyxZQUFEO0FBVlIsMEJBREY7QUFnQkQ7O0FBQ0QsVUFBSTVDLE9BQU8sQ0FBQzJDLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQyxZQUFJdEksY0FBYyxJQUFJLFNBQXRCLEVBQWlDO0FBQy9CcUksVUFBQUEsV0FBVyxDQUFDdEUsSUFBWixlQUNFLG9CQUFDLE1BQUQsQ0FDRTtBQURGO0FBRUUsWUFBQSxPQUFPLEVBQUUsS0FBS2pFLFFBQUwsQ0FBYzBJLElBQWQsQ0FBbUIsSUFBbkIsQ0FGWDtBQUdFLFlBQUEsSUFBSSxlQUFFLG9CQUFDLGNBQUQsT0FIUjtBQUlFLFlBQUEsTUFBTTtBQUpSLDRCQURGO0FBVUQsU0FYRCxNQVdPLElBQUl4SSxjQUFjLElBQUksS0FBdEIsRUFBNkI7QUFDbEN1RCxVQUFBQSxhQUFhLENBQUNRLElBQWQsZUFDRSxvQkFBQyxNQUFELENBQ0U7QUFERjtBQUVFLFlBQUEsT0FBTyxFQUFFLGlCQUFDUCxNQUFELEVBQWlCO0FBQ3hCLGNBQUEsTUFBSSxDQUFDMUQsUUFBTCxDQUFjMEQsTUFBZDtBQUNELGFBSkg7QUFLRSxZQUFBLElBQUksZUFBRSxvQkFBQyxjQUFELE9BTFI7QUFNRSxZQUFBLE1BQU07QUFOUiw0QkFERjtBQVlEO0FBQ0Y7O0FBQ0QsVUFBSWlGLEtBQUssQ0FBQ0MsT0FBTixDQUFjaEcsUUFBZCxDQUFKLEVBQTZCO0FBQzNCQSxRQUFBQSxRQUFRLENBQUNDLEdBQVQsQ0FBYSxVQUFDQyxJQUFELEVBQWU7QUFDMUIsY0FBSTZGLEtBQUssQ0FBQ0MsT0FBTixDQUFjOUYsSUFBZCxDQUFKLEVBQXlCO0FBQ3ZCQSxZQUFBQSxJQUFJLENBQUNELEdBQUwsQ0FBUyxVQUFDZ0csS0FBRCxFQUFXO0FBQUE7O0FBQ2xCLGtCQUFJLENBQUFBLEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsNEJBQUFBLEtBQUssQ0FBRXZMLEtBQVAsOERBQWMrRixRQUFkLEtBQTBCLFlBQTlCLEVBQTRDO0FBQzFDa0YsZ0JBQUFBLFdBQVcsQ0FBQ3RFLElBQVosQ0FBaUI0RSxLQUFqQjtBQUNELGVBRkQsTUFFTyxJQUFJLENBQUFBLEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsNkJBQUFBLEtBQUssQ0FBRXZMLEtBQVAsZ0VBQWMrRixRQUFkLEtBQTBCLGNBQTlCLEVBQThDO0FBQ25ESSxnQkFBQUEsYUFBYSxDQUFDUSxJQUFkLENBQW1CNEUsS0FBbkI7QUFDRDtBQUNGLGFBTkQ7QUFPRCxXQVJELE1BUU87QUFBQTs7QUFDTCxnQkFBSSxDQUFBL0YsSUFBSSxTQUFKLElBQUFBLElBQUksV0FBSiw0QkFBQUEsSUFBSSxDQUFFeEYsS0FBTiw4REFBYStGLFFBQWIsS0FBeUIsWUFBN0IsRUFBMkM7QUFDekNrRixjQUFBQSxXQUFXLENBQUN0RSxJQUFaLENBQWlCbkIsSUFBakI7QUFDRCxhQUZELE1BRU8sSUFBSSxDQUFBQSxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLDRCQUFBQSxJQUFJLENBQUV4RixLQUFOLDhEQUFhK0YsUUFBYixLQUF5QixjQUE3QixFQUE2QztBQUNsREksY0FBQUEsYUFBYSxDQUFDUSxJQUFkLENBQW1CbkIsSUFBbkI7QUFDRDtBQUNGO0FBQ0YsU0FoQkQ7QUFpQkQsT0FsQkQsTUFrQk8sSUFBSUYsUUFBSixFQUFjO0FBQ25CLFlBQVF0RixLQUFSLEdBQXVCc0YsUUFBdkIsQ0FBUXRGLEtBQVI7O0FBQ0EsWUFBSSxDQUFBQSxLQUFLLFNBQUwsSUFBQUEsS0FBSyxXQUFMLFlBQUFBLEtBQUssQ0FBRStGLFFBQVAsS0FBbUIsWUFBdkIsRUFBcUM7QUFDbkNrRixVQUFBQSxXQUFXLENBQUN0RSxJQUFaLENBQWlCckIsUUFBakI7QUFDRCxTQUZELE1BRU8sSUFBSSxDQUFBdEYsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxZQUFBQSxLQUFLLENBQUUrRixRQUFQLEtBQW1CLGNBQXZCLEVBQXVDO0FBQzVDSSxVQUFBQSxhQUFhLENBQUNRLElBQWQsQ0FBbUJyQixRQUFuQjtBQUNEO0FBQ0Y7O0FBQ0R3RCxNQUFBQSxZQUFZLElBQ1ZVLFdBQVcsQ0FBQzdDLElBQVosQ0FBaUI7QUFDZnFELFFBQUFBLEtBQUssRUFBRSxJQURRO0FBRWZELFFBQUFBLFNBQVMsRUFBRSxRQUZJO0FBR2Z5QixRQUFBQSxLQUFLLEVBQUVuRixXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLElBQUFBLFdBQVcsQ0FBRW9GLFNBQWIsR0FDSHBGLFdBREcsYUFDSEEsV0FERyx1QkFDSEEsV0FBVyxDQUFFb0YsU0FEVixHQUVIbkYsZ0JBQWdCLENBQUNtRixTQUFqQixHQUNBbkYsZ0JBQWdCLENBQUNtRixTQURqQixHQUVBLFFBUFc7QUFRZkMsUUFBQUEsS0FBSyxFQUFFckYsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxJQUFBQSxXQUFXLENBQUVxRixLQUFiLEdBQ0hyRixXQURHLGFBQ0hBLFdBREcsdUJBQ0hBLFdBQVcsQ0FBRXFGLEtBRFYsR0FFSHBGLGdCQUFnQixDQUFDb0YsS0FBakIsR0FDQXBGLGdCQUFnQixDQUFDb0YsS0FEakIsR0FFQSxHQVpXO0FBYWZDLFFBQUFBLEtBQUssRUFBRSxPQWJRO0FBY2ZkLFFBQUFBLE1BQU0sRUFBRSxnQkFBQ2xELElBQUQsRUFBWXZCLE1BQVosRUFBNEI7QUFDbEMsOEJBQ0U7QUFBSyxZQUFBLFNBQVMsRUFBRTFHLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFFBQVQ7QUFBdkIsYUFDRyxNQUFJLENBQUMyTSxrQkFBTCxDQUF3QnpGLGFBQXhCLEVBQXVDQyxNQUF2QyxDQURILENBREY7QUFLRDtBQXBCYyxPQUFqQixDQURGO0FBdUJBLFVBQUk0QyxXQUFKLEVBQ0VRLFdBQVcsSUFDVDtBQUNFUSxRQUFBQSxLQUFLLEVBQUUsSUFEVDtBQUVFMEIsUUFBQUEsS0FBSyxFQUFFLEVBRlQ7QUFHRUYsUUFBQUEsS0FBSyxFQUFFLFFBSFQ7QUFJRVgsUUFBQUEsTUFBTSxFQUFFLGdCQUFDbEQsSUFBRCxFQUFPa0UsT0FBUCxFQUFnQnBHLEtBQWhCLEVBQTBCO0FBQ2hDLDhCQUFPLDBDQUFHQSxLQUFLLEdBQUcsQ0FBWCxDQUFQO0FBQ0Q7QUFOSCxPQURTLDRCQVNOK0QsV0FUTSxFQUFYO0FBV0YsVUFBSXNDLFVBQVUsR0FBR2hHLFVBQVUsSUFBSTJELFdBQVcsQ0FBQzNJLE1BQVosR0FBcUIsQ0FBcEQ7O0FBQ0EscUJBQW9CbEIsTUFBTSxFQUExQjtBQUFBLFVBQU1tTSxTQUFOLFlBQU1BLFNBQU47O0FBQ0EsVUFBSUMsUUFBUSxHQUFHMUQsY0FBYyxJQUFJMkMsV0FBVyxDQUFDbkssTUFBWixHQUFxQixDQUF0RDtBQUNBLFVBQUltTCxXQUFXLEdBQUcsRUFDaEIvRyxVQUFVLENBQUNnSCxPQUFYLElBQXNCLEtBQXRCLElBQ0Esd0JBQUFoSCxVQUFVLENBQUNnSCxPQUFYLDRFQUFvQmhLLElBQXBCLEtBQTRCLEtBRDVCLElBRUEseUJBQUFnRCxVQUFVLENBQUNnSCxPQUFYLHVHQUFvQkMsS0FBcEIsZ0ZBQTJCckwsTUFBM0IsS0FBcUMsQ0FGckMsSUFHQSxDQUFBaUwsU0FBUyxTQUFULElBQUFBLFNBQVMsV0FBVCxZQUFBQSxTQUFTLENBQUU3SixJQUFYLEtBQW1CLEtBSkgsQ0FBbEI7O0FBTUEsVUFBSWdELFVBQVUsQ0FBQ2tILFVBQVgsS0FBMEIsS0FBOUIsRUFBcUM7QUFDbkMsWUFBTUMsTUFBTSxHQUFHOUMsV0FBVyxDQUFDOEMsTUFBM0I7QUFDQTlDLFFBQUFBLFdBQVcsbUNBQ05BLFdBRE07QUFFVDhDLFVBQUFBLE1BQU07QUFBSUMsWUFBQUEsQ0FBQyxFQUFFO0FBQVAsYUFBeUJELE1BQXpCO0FBRkcsVUFBWDtBQUlEOztBQUVELDBCQUNFO0FBQUssUUFBQSxTQUFTLEVBQUVyTixHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE1BQVQsQ0FBUixFQUEwQjBKLFNBQTFCO0FBQW5CLFNBQ0csS0FBSzNJLEtBQUwsQ0FBV3VNLFNBQVgsaUJBQ0M7QUFBSyxRQUFBLFNBQVMsRUFBRXZOLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFELEVBQVMsWUFBVCxDQUFSO0FBQW5CLFNBQ0csS0FBS2UsS0FBTCxDQUFXdU0sU0FEZCxDQUZKLGVBTUU7QUFDRSxRQUFBLFNBQVMsRUFBRXZOLEdBQUcsQ0FBQ1UsT0FBTyxDQUFDVCxNQUFELEVBQVMsV0FBVCxDQUFSLENBRGhCO0FBRUUsUUFBQSxLQUFLLEVBQUU7QUFBRXVOLFVBQUFBLE9BQU8sRUFBRTtBQUFYO0FBRlQsU0FJR3BFLFFBQVEsaUJBQ1A7QUFBSyxRQUFBLFNBQVMsRUFBRTFJLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE1BQVQ7QUFBdkIsc0JBQ0Usb0JBQUMsSUFBRDtBQUNFLFFBQUEsS0FBSyxvQkFBT2tLLFNBQVAsQ0FEUDtBQUVFLFFBQUEsUUFBUSxFQUFFLEtBRlo7QUFHRSxRQUFBLFNBQVMsRUFBRSxLQUhiO0FBSUUsUUFBQSxVQUFVLEVBQUVDLFVBSmQ7QUFLRSxRQUFBLFFBQVEsRUFBRSxLQUFLcUQsVUFBTCxDQUFnQnJCLElBQWhCLENBQXFCLElBQXJCLENBTFo7QUFNRSxRQUFBLFlBQVksRUFBRSxDQUFDLEtBQUtqTCxLQUFMLENBQVdrQixlQUFaLENBTmhCO0FBT0UsUUFBQSxVQUFVLEVBQUVnSTtBQVBkLFNBUU1DLGVBUk4sRUFERixDQUxKLGVBa0JFO0FBQ0UsUUFBQSxTQUFTLEVBQUV0SyxHQUFHLENBQUNVLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLE9BQVQsQ0FBUixzQkFDWFMsT0FBTyxDQUFDVCxNQUFELEVBQVMsZUFBVCxDQURJLEVBQ3dCLENBQUNtSixRQUR6QjtBQURoQixTQUtHdEMsVUFBVSxJQUFJMkQsV0FBVyxDQUFDM0ksTUFBWixHQUFxQixDQUFuQyxpQkFDQyxvQkFBQyxZQUFEO0FBQ0UsUUFBQSxXQUFXLEVBQUUySSxXQURmO0FBRUUsUUFBQSxrQkFBa0IsRUFBRWIsa0JBRnRCO0FBR0UsUUFBQSxRQUFRLEVBQUUsS0FBS25JLFFBQUwsQ0FBYzJLLElBQWQsQ0FBbUIsSUFBbkIsQ0FIWjtBQUlFLFFBQUEsT0FBTyxFQUFFLEtBQUtwTCxLQUFMLENBQVcwTSxPQUp0QjtBQUtFLFFBQUEsR0FBRyxFQUFFLEtBQUs3SyxTQUxaO0FBTUUsUUFBQSxlQUFlLEVBQUUsS0FBSzdCLEtBQUwsQ0FBVzJNO0FBTjlCLFFBTkosRUFnQkdyRSxjQUFjLElBQ2IyQyxXQUFXLENBQUNuSyxNQUFaLEdBQXFCLENBRHRCLElBRUM4SCxrQkFBa0IsSUFBSSxRQUZ2QixJQUdDLEtBQUtnRSxpQkFBTCxDQUF1QjNCLFdBQXZCLEVBQW9DeEIsV0FBVyxDQUFDM0ksTUFBWixJQUFzQixDQUExRCxDQW5CSixlQW9CRTtBQUNFLFFBQUEsU0FBUyxFQUFFOUIsR0FBRyxDQUNaVSxPQUFPLENBQUNULE1BQUQsRUFBUyxPQUFULENBREssc0JBR1RTLE9BQU8sQ0FBQ1QsTUFBRCxFQUFTLFdBQVQsQ0FIRSxFQUlQNk0sVUFBVSxJQUFJLENBQUNFLFFBQWhCLElBQTZCLENBQUNDLFdBSnRCLHVCQU9Udk0sT0FBTyxDQUFDVCxNQUFELEVBQVMsWUFBVCxDQVBFLEVBT3VCLENBQUM2TSxVQUFELElBQWUsQ0FBQ0UsUUFQdkM7QUFEaEIsc0JBWUUsb0JBQUMsS0FBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtsSixRQURaO0FBRUUsUUFBQSxPQUFPLEVBQUUwRyxXQUZYO0FBR0UsUUFBQSxVQUFVO0FBQ1JxRCxVQUFBQSxVQUFVLEVBQUUsMEJBQW9DO0FBQUEsZ0JBQWpDQyxRQUFpQyxRQUFqQ0EsUUFBaUM7QUFBQSxnQkFBdkJDLFFBQXVCLFFBQXZCQSxRQUF1QjtBQUFBLGdCQUFiM0csTUFBYSxRQUFiQSxNQUFhO0FBQzlDLGdDQUNFLDBDQUNHMEcsUUFBUSxnQkFDUCxvQkFBQyxZQUFEO0FBQ0UsY0FBQSxPQUFPLEVBQUUsaUJBQUNFLENBQUQ7QUFBQSx1QkFBT0QsUUFBUSxDQUFDM0csTUFBRCxFQUFTNEcsQ0FBVCxDQUFmO0FBQUEsZUFEWDtBQUVFLGNBQUEsU0FBUyxFQUFFdE4sT0FBTyxDQUFDVCxNQUFELEVBQVMsYUFBVDtBQUZwQixjQURPLEdBTVBtSCxNQUFNLENBQUNmLFVBQVAsaUJBQ0Usb0JBQUMsYUFBRDtBQUNFLGNBQUEsT0FBTyxFQUFFLGlCQUFDMkgsQ0FBRDtBQUFBLHVCQUFPRCxRQUFRLENBQUMzRyxNQUFELEVBQVM0RyxDQUFULENBQWY7QUFBQSxlQURYO0FBRUUsY0FBQSxTQUFTLEVBQUV0TixPQUFPLENBQUNULE1BQUQsRUFBUyxhQUFUO0FBRnBCLGNBUk4sQ0FERjtBQWlCRDtBQW5CTyxXQW9CTGdLLFVBcEJLLENBSFo7QUF5QkUsUUFBQSxXQUFXLEVBQUUsSUF6QmY7QUEwQkUsUUFBQSxRQUFRLEVBQUUsa0JBQUNtRCxVQUFELEVBQWdCO0FBQ3hCLGNBQVF0SCxXQUFSLEdBQXdCLE1BQUksQ0FBQzNFLEtBQTdCLENBQVEyRSxXQUFSOztBQUNBLGNBQUlBLFdBQVcsS0FBS3NILFVBQVUsQ0FBQ3RLLE9BQS9CLEVBQXdDO0FBQ3RDLFlBQUEsTUFBSSxDQUFDd0YsUUFBTCxDQUFjO0FBQ1p4QyxjQUFBQSxXQUFXLEVBQUVzSCxVQUFVLENBQUN0SztBQURaLGFBQWQ7QUFHRDtBQUNGLFNBakNIO0FBa0NFLFFBQUEsT0FBTztBQUNMbUwsVUFBQUEsV0FBVyxFQUFFO0FBQ1hDLFlBQUFBLFNBQVMsRUFBRSxxQkFBTTtBQUNmLGtCQUFNdkwsTUFBTSxHQUFHLE1BQUksQ0FBQ21DLGVBQUwsRUFBZjs7QUFDQSxjQUFBLE1BQUksQ0FBQ0csU0FBTCxDQUFldEMsTUFBZjtBQUNEO0FBSlU7QUFEUixXQU9GdUQsVUFBVSxDQUFDZ0gsT0FQVCxDQWxDVDtBQTJDRSxRQUFBLGdCQUFnQixFQUFFbkQ7QUEzQ3BCLFNBNENNUSxXQTVDTixFQVpGLENBcEJGLENBbEJGLEVBa0dHZixVQUFVLGlCQUNULG9CQUFDLFVBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLdkcsU0FEWjtBQUVFLFFBQUEsUUFBUSxFQUFFLG9CQUFNO0FBQUE7O0FBQ2Qsb0NBQUEsTUFBSSxDQUFDakMsS0FBTCxDQUFXK0QsV0FBWCxnRkFBd0JvSixnQkFBeEIsZ0NBQ0UsTUFBSSxDQUFDbk4sS0FBTCxDQUFXK0QsV0FEYiwyREFDRSx1QkFBd0JvSixnQkFBeEIsRUFERjs7QUFFQSxVQUFBLE1BQUksQ0FBQ0MsV0FBTCxDQUFpQmhDLElBQWpCLENBQXNCLE1BQXRCO0FBQ0QsU0FOSDtBQU9FLFFBQUEsU0FBUyxFQUFFMUIsV0FQYjtBQVFFLFFBQUEsU0FBUyxFQUFFeEIsU0FSYjtBQVNFLFFBQUEsWUFBWSxFQUFFRyxZQVRoQjtBQVVFLFFBQUEsUUFBUSxFQUFFLEtBQUtySSxLQUFMLENBQVdxTixRQVZ2QjtBQVdFLFFBQUEsWUFBWSxFQUFFMUQsWUFYaEI7QUFZRSxRQUFBLFVBQVUsRUFBRSxLQUFLM0osS0FBTCxDQUFXc04sVUFaekI7QUFhRSxRQUFBLFlBQVksRUFBRSxLQUFLdE4sS0FBTCxDQUFXdU4sWUFiM0I7QUFjRSxRQUFBLFFBQVEsRUFBRSxLQUFLdk4sS0FBTCxDQUFXdUIsUUFBWCxJQUF1QixNQWRuQztBQWVFLFFBQUEsV0FBVyxFQUFFbUgsZUFmZjtBQWdCRSxRQUFBLFVBQVUsb0JBQU9QLFNBQVA7QUFoQlosUUFuR0osQ0FORixDQURGO0FBZ0lEOzs7O0VBdjFCb0IzSixhOztBQXkxQnZCLGVBQWV1QixRQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgVGFibGUgZnJvbSBcIi4uLy4uL2Jhc2UvdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL2Jhc2UvdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vYmFzZS9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vYmFzZS9wb3BvdmVyXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2Jhc2UvY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5tb2R1bGUubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBSaWdodE91dGxpbmVkLFxyXG4gIFBsdXNPdXRsaW5lZCxcclxuICBFbGxpcHNpc091dGxpbmVkLFxyXG4gIERlbGV0ZU91dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRm9ybVByb3BzIH0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybS9Gb3JtXCI7XHJcbmltcG9ydCBIZWFkZXJTZWFyY2ggZnJvbSBcIi4uL0hlYWRlclNlYXJjaFwiO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxuICBwYWdpbmF0aW9uPzogYm9vbGVhbiB8IFBhZ2luYXRpb25Qcm9wczsgLy/mmK/lkKbmmL7npLrliIbpobVcclxuICBjb2x1bW5PcmRlcj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66KGo5qC85bqP5YiXXHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG4gIHBhcmFudFNlbGVjdD86IGJvb2xlYW47XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBGb3JtUHJvcHMgZXh0ZW5kcyBJRm9ybVByb3BzIHt9XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/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/OiAoc2VsZWN0ZWRLZXlzPzogQXJyYXk8c3RyaW5nPikgPT4gdm9pZDsgLy/liKDpmaTlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dpZHPmi7zmjqXkvKDpgJLnu5nlkI7lj7BcclxuICBkZWxldGVQb3NpdGlvbj86IFwidG9vbGJhclwiIHwgXCJyb3dcIjtcclxuICBkZWxldGVQYXJhbXM/OiBPYmplY3Q7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25TZWFyY2g/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgb25SZXNldD86ICgpID0+IHZvaWQ7XHJcbiAgaW5pdERhdGE/OiBhbnk7IC8v5Yid5aeL5YyW5Zue6LCD5Ye95pWw77yM5ZyoY29tcG9uZW50RGlkTW91bnTkuK3osIPnlKhcclxuICBidXR0b25zPzogQXJyYXk8c3RyaW5nPjsgLy/mjInpkq7pm4blkIggIFsnYWRkJywnZGVsZXRlJywnc2VhcmNoJywnZWRpdG9yJ11cclxuICBvblNob3dGb3JtPzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uSGlkZUZvcm0/OiAoKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uRm9ybUNoYW5nZT86IChjaGFuZ2VkVmFsdWVzPzogYW55LCBhbGxWYWx1ZXM/OiBhbnkpID0+IHZvaWQ7IC8v6KGo5Y2Vb25DaGFuZ2Xlm57osINcclxuICBmb3JtVHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCI7XHJcbiAgZm9ybUNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/ooajljZXmoKHpqoxcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogXCJyaWdodFwiIHwgXCJidXR0b21cIjtcclxuICBwYWdlVGl0bGU/OiBzdHJpbmcgfCBSZWFjdE5vZGU7XHJcbiAgZm9ybVByb3BzPzogRm9ybVByb3BzO1xyXG4gIGFjdGlvblBvcnBzPzogeyB0ZXh0QWxpZ24/OiBzdHJpbmc7IHNob3dJY29uPzogYm9vbGVhbjsgd2lkdGg/OiBudW1iZXIgfTtcclxuICBzZWFyY2hGb3JtUHJvcHM/OiB7IHdyYXBwZXJDb2w/OiBhbnk7IGxhYmVsQ29sPzogYW55IH07XHJcbiAgb25UcmVlU2VsZWN0PzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgdHJlZVNlbGVjdENhbGxCYWNrPzogYW55O1xyXG4gICAgb25TZWFyY2hDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU3VtYml0Q2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvbkRlbGV0ZUNhbGxCYWNrPzogYW55O1xyXG4gIH07XHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJvcHM6IGFueSkge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHR5cGUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcImZvcm1UeXBlXCIgOiBcImZvcm1UeXBlXCJcclxuICAgICk7XHJcbiAgICB0eXBlID0gdHlwZT8uY29udGVudDtcclxuICAgIGxldCBzaXplID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJ0YWJsZVNpemVcIiA6IFwidGFibGVTaXplXCJcclxuICAgICk7XHJcbiAgICBzaXplID0gc2l6ZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGZvcm1UeXBlOiB0eXBlIHx8IFwibW9kYWxcIixcclxuICAgICAgdGFibGVTaXplOiBzaXplIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGluaXREYXRhIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaW5pdERhdGEgJiYgaW5pdERhdGEoKTtcclxuICB9XHJcblxyXG4gIHNldFNlYXJjaFBhcmFtcyhwYXJhbXMsIGNhbGxCYWNrKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5zZXRTZWFyY2hQYXJhbXMocGFyYW1zKTtcclxuICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdCA9IChjaGVja2VkVHJlZUtleXM6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgeyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHZhbHVlID0geyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCwgZGVwdElkOiBjaGVja2VkVHJlZUtleXNbMF0gfTtcclxuICAgIGlmICh0aGlzLnByb3BzLm9uU2VhcmNoKSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25TZWFyY2godmFsdWUpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zZXRMb2FkaW5nKGxvYWRpbmcpO1xyXG4gIH1cclxuXHJcbiAgc2V0RWRpdEZvcm1WYWx1ZXModmFsdWUpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldEVkaXRGb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dLZXlzID0gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgIG9uRGVsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRGVsZXRlKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzIDogZGF0YSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICBpZHM6IGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSA6IGRhdGEuaWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBfdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrICYmXHJcbiAgICAgICAgICAgICAgICBfdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25EZWxldGVDYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgIF90aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSwgcmVxdWVzdENvbmZpZyA9IHt9KSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLmxvYWQoe1xyXG4gICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvL+afpeivolxyXG4gIG9uU2VhcmNoKHBhcmFtcykge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCwgb25DYWxsQmFja3MgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2goeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICBvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNhbGxCYWNrcz8ub25TZWFyY2hDYWxsQmFjaywgdGhpcywgW3BhcmFtc10pO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKHBhcmFtcyA9IHt9LCBhdXRvTG9hZCA9IHRydWUpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnJlbG9hZCh7XHJcbiAgICAgICAgICAgIHBhcmFtczogeyBjdXJyZW50OiAxLCAuLi5wYXJhbXMgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dEYXRhcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93RGF0YXMoKTtcclxuICB9XHJcbiAgcmVzZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5yZXNldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWY/LmN1cnJlbnQ/LmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgcmV0dXJuIHsgLi4uZnJvbVZhbHVlLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRyZW5EYXRhKGRhdGEsIGtleXMgPSBbXSkge1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgcmVzS2V5ID0gW107XHJcbiAgICBpZiAoZGF0YS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gZGF0YS5jaGlsZE5vZGVzO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgICAgdGhpcy5nZXRDaGlsZHJlbkRhdGEoaXRlbS5jaGlsZE5vZGVzLCBrZXlzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGl0ZW1bcm93S2V5XV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBkYXRhW3Jvd0tleV1dO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc0tleTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRvb2xCdXR0b25zKHRvb2xidXR0b25zOiBhbnksIG1hcmdpbmZsYWcgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgZmxhZyA9IHRvb2xidXR0b25zLmxlbmd0aCA+IDU7XHJcbiAgICBjb25zdCB7IHNob3dTZWFyY2ggPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgY29udGVudCA9IHRvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDMpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9uc1wiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9ucy1tYXJnaW5cIildOiAhc2hvd1NlYXJjaCB8fCBtYXJnaW5mbGFnLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AtYm94J119XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICDmm7TlpJogPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgYWN0aW9uUG9ycHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgbmV3QnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgaWYgKGV2YWwocmVjb3JkU2hvdykpIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICBjb25zdCBzaG93ID0gcmVjb3JkU2hvdyhyZWNvcmQpO1xyXG4gICAgICAgICAgc2hvdyAmJiBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIil9PlxyXG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIG9iajogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEtleSA9IFwia2V5XCIsXHJcbiAgICAgIHNlYXJjaEZpZWxkID0gXCJcIixcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9ID0gb2JqO1xyXG5cclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICBpZiAocGFyYW50U2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblRyZWVTZWxlY3QpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzLCBvYmopO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCkgfHwge307XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLnRhYmxlTG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayh0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2ssIHRoaXMsIFtcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgb2JqLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICBnZXRUZXh0KHByb3BzLCB0ZXh0KSB7XHJcbiAgICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGRhdGEgPSBwcm9wcy5kYXRhO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgICAgbmV3VGV4dCA9IGRhdGFbaV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VGV4dDtcclxuICB9XHJcbiAgc2V0VGFibGVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZT8uc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblBvcnBzLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgICAgY29sdW1uT3JkZXIgPSB0cnVlLFxyXG4gICAgICBleHBhbmRhYmxlID0ge30sXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICAgIC4uLm90aGVydGFibGVQYXJhbXNcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgICAgLi4ub3RoZXJ0cmVlUGFyYW1zXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSwgLi4ub3RoZXJ0YWJsZVBhcmFtcyB9IGFzIGFueTtcclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoID09PSB0cnVlIHx8IHRlbXAuc2VhcmNoPy5zaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAuc2VhcmNoPy5sYWJlbCB8fCB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBsYWJlbENvbDogdGVtcC5zZWFyY2g/LmxhYmVsQ29sLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDogdGVtcC5zZWFyY2g/LndyYXBwZXJDb2wsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5zZWFyY2hSdWxlcyA/IHRlbXAuc2VhcmNoUnVsZXMgOiBbXSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzID8gdGVtcC5ydWxlcyA6IFtdLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgICAgZGljdE5hbWU6IHRlbXAuZGljdE5hbWUsXHJcbiAgICAgICAgICBwcm9wczogeyAuLi50ZW1wLnByb3BzIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXg7XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlW25hbWVdID0gdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgaWYgKHRlbXAuc3R5bGUpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgIHt0ZXh0ICE9PSBcIlwiICYmIHRleHQgIT09IG51bGwgJiYgdGV4dCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC1iYWNrXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC10ZXh0XCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmICghdGVtcC5lbGxpcHNpcykge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0ZW1wID0geyAuLi50ZW1wIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIGlmICh0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2VsZkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgaWYgKGVkaXRvckZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwic2VhcmNoXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFeWVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5p+l55yLXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJlZGl0b3JcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiYWRkXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvblNob3dGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgIG9uU2hvd0Zvcm0oKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxQbHVzT3V0bGluZWQgLz59XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5re75YqgXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZGVsZXRlXCIpID4gLTEpIHtcclxuICAgICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwicm93XCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgIDogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgIDogMjAwLFxyXG4gICAgICAgIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFjdGlvblwiKX0+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIGlmIChjb2x1bW5PcmRlcilcclxuICAgICAgdGFibGVDb2x1bW4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6IFwi5bqP5Y+3XCIsXHJcbiAgICAgICAgICB3aWR0aDogODAsXHJcbiAgICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQsIHJlYWNvcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PntpbmRleCArIDF9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRhYmxlQ29sdW1uLFxyXG4gICAgICBdO1xyXG4gICAgbGV0IHNlYXJjaEZsYWcgPSBzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDA7XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sYmFyRmxhZyA9ICEoXHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhciA9PSBmYWxzZSB8fFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnNob3cgPT0gZmFsc2UgfHxcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyPy50b29scz8ubGVuZ3RoID09IDAgfHxcclxuICAgICAgdGFibGVUb29sPy5zaG93ID09IGZhbHNlXHJcbiAgICApO1xyXG4gICAgaWYgKHRhYmxlUHJvcHMucGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcclxuICAgICAgY29uc3Qgc2Nyb2xsID0gdGFibGVQYXJhbXMuc2Nyb2xsO1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICBzY3JvbGw6IHsgeDogXCJtYXgtY29udGVudFwiLCAuLi5zY3JvbGwgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2VcIiksIGNsYXNzTmFtZSl9PlxyXG4gICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtdGl0bGVcIikpfT5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXBhbmVcIikpfVxyXG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7c2hvd0xlZnQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibGVmdFwiKX0+XHJcbiAgICAgICAgICAgICAgPFRyZWVcclxuICAgICAgICAgICAgICAgIHN0b3JlPXt7IC4uLnRyZWVTdG9yZSB9fVxyXG4gICAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgY2hlY2thYmxlPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RyZWVTZWFyY2h9XHJcbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEtleXM9e1t0aGlzLnN0YXRlLnRyZWVTZWxlY3RlZEtleV19XHJcbiAgICAgICAgICAgICAgICB0aXRsZUFsaWFzPXt0aXRsZUFsaWFzfVxyXG4gICAgICAgICAgICAgICAgey4uLm90aGVydHJlZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInJpZ2h0XCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5vLWxlZnQtcmlnaHRcIildOiAhc2hvd0xlZnQsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICA8SGVhZGVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcz17c2VhcmNoRm9ybXN9XHJcbiAgICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb249e3Rvb2xCdXR0b25Qb3NpdGlvbn1cclxuICAgICAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBvblJlc2V0PXt0aGlzLnByb3BzLm9uUmVzZXR9XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybVByb3BzPXt0aGlzLnByb3BzLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmXHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcImJ1dHRvbVwiICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sQnV0dG9ucyhzZWxmQnV0dG9ucywgc2VhcmNoRm9ybXMubGVuZ3RoID09IDApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fCAhdG9vbGJhckZsYWcsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wMlwiKV06ICFzZWFyY2hGbGFnICYmICF0b29sRmxhZyxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudGFibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kSWNvbjogKHsgZXhwYW5kZWQsIG9uRXhwYW5kLCByZWNvcmQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXhwYW5kZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJpZ2h0T3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmV4cGFuZGFibGUsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgY29sdW1uT3JkZXI9e3RydWV9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHBhZ2luYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSBwYWdpbmF0aW9uLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB0b29sYmFyPXt7XHJcbiAgICAgICAgICAgICAgICAgIG9uVG9vbENsaWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZWZyZXNoOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZUxvYWQocGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi50YWJsZVByb3BzLnRvb2xiYXIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgc2hvd1Jvd1NlbGVjdGlvbj17c2hvd1Jvd1NlbGVjdGlvbn1cclxuICAgICAgICAgICAgICAgIHsuLi50YWJsZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAge2VkaXRvckZvcm0gJiYgKFxyXG4gICAgICAgICAgICA8RWRpdG9yRm9ybVxyXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5lZGl0b3JSZWZ9XHJcbiAgICAgICAgICAgICAgY2FsbEJhY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uU3VtYml0Q2FsbEJhY2sgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25TdW1iaXRDYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
1047
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJvblNlYXJjaCIsInNlbGVjdGVkIiwicmVzIiwia2V5Iiwia2V5cyIsImxlbmd0aCIsInN0b3JlUHJlZml4IiwidHlwZSIsImNvbnRlbnQiLCJzaXplIiwic2VsZWN0ZWRSb3dLZXlzIiwic2VsZWN0ZWRSb3dEYXRhcyIsInRyZWVTZWxlY3RlZEtleSIsImV4cGFuZCIsImZvcm1UeXBlIiwidGFibGVTaXplIiwidHJlZVNlYXJjaFByYW1zIiwicG9wb3BlbiIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwic2V0RmllbGRzVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImRhdGEiLCJkZWxldGVVcmwiLCJvbkRlbGV0ZSIsImRlbGV0ZVBhcmFtcyIsImRlbGV0ZVBvc2l0aW9uIiwiX3RoaXMiLCJ0YWJsZVJlZiIsImdldFNlbGVjdGVkUm93S2V5cyIsIndhcm5pbmciLCJjb25maXJtIiwib25PayIsIkVycm9yIiwiZGVmYXVsdFBhcmFtcyIsIm1ldGhvZCIsImF1dG9QcmVmaXgiLCJpZHMiLCJqb2luIiwiaWQiLCJyZXF1ZXN0UGFyYW1zIiwidGhlbiIsImNvZGUiLCJzdWNjZXNzIiwiZ2V0U2VhcmNoVmFsdWVzIiwib25DYWxsQmFja3MiLCJvbkRlbGV0ZUNhbGxCYWNrIiwidGFibGVMb2FkIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJyZXF1ZXN0Q29uZmlnIiwic3RvcmUiLCJsb2FkIiwib25TZWFyY2hDYWxsQmFjayIsImNhbGxiYWNrIiwiYXV0b0xvYWQiLCJyZWxvYWQiLCJyZWNvcmRzIiwiY3VycmVudFBhZ2UiLCJnZXRTZWxlY3RlZFJvd0RhdGFzIiwicmVzZXRTZWxlY3RlZFJvd0tleXMiLCJmcm9tVmFsdWUiLCJ0YWJsZVByb3BzIiwicm93S2V5IiwicmVzS2V5IiwiY2hpbGROb2RlcyIsImNoaWxkcmVuIiwibWFwIiwiaXRlbSIsImluZGV4IiwiZ2V0Q2hpbGRyZW5EYXRhIiwidG9vbGJ1dHRvbnMiLCJtYXJnaW5mbGFnIiwiZmxhZyIsInNob3dTZWFyY2giLCJwYWdlVHlwZSIsIm9uQ2xpY2siLCJpY29uIiwibWFyZ2luTGVmdCIsImNvbHVtbkJ1dHRvbnMiLCJyZWNvcmQiLCJhY3Rpb25Qb3JwcyIsImJhc2VBY3Rpb25Db2x1bW4iLCJuZXdCdXR0b25zIiwic2hvd0ljb24iLCJyZWNvcmRTaG93IiwiZXZhbCIsInB1c2giLCJzZXRTdGF0ZSIsInNlbGVjdGVkS2V5cyIsIm9iaiIsImtleXdvcmQiLCJ0cmVlUHJvcHMiLCJzZWFyY2hLZXkiLCJzZWFyY2hGaWVsZCIsInBhcmFudFNlbGVjdCIsInNlbGVjdGVkTm9kZXMiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiaXNMZWFmIiwib25UcmVlU2VsZWN0IiwidHJlZVNlbGVjdENhbGxCYWNrIiwicmVzZXRGaWVsZHMiLCJ0ZXh0IiwibmV3VGV4dCIsImkiLCJsYWJlbCIsInNldERhdGEiLCJ0cmVlUmVmIiwiY29sdW1ucyIsInN1Ym1pdFVybCIsImZvcm1Qcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJidXR0b25zIiwiZWRpdG9yRm9ybSIsIm9uU2hvd0Zvcm0iLCJmb3JtQ2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwiY29sdW1uT3JkZXIiLCJleHBhbmRhYmxlIiwib3RoZXJ0YWJsZVBhcmFtcyIsInRyZWVTdG9yZSIsInRyZWVTZWFyY2giLCJ0aXRsZUFsaWFzIiwib3RoZXJ0cmVlUGFyYW1zIiwidGFibGVQYXJhbXMiLCJ0YWJsZUNvbHVtbiIsInNlYXJjaEZvcm1zIiwiZWRpdG9yRm9ybXMiLCJkZWZhdWx0VmFsdWUiLCJ0ZW1wIiwic2VhcmNoIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJ0aXRsZSIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInJ1bGVzIiwic2VhcmNoUnVsZXMiLCJlZGl0b3IiLCJzcGFuIiwiZGljdE5hbWUiLCJ1bmRlZmluZWQiLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsInRlbXBQcm9wIiwic3R5bGUiLCJyZW5kZXIiLCJnZXRUZXh0IiwiZWxsaXBzaXMiLCJjb2x1bW5TaG93Iiwic2VsZkJ1dHRvbnMiLCJpbmRleE9mIiwic2hvd0Zvcm0iLCJiaW5kIiwiQXJyYXkiLCJpc0FycmF5IiwiY2hpbGQiLCJhbGlnbiIsInRleHRBbGlnbiIsIndpZHRoIiwiZml4ZWQiLCJyZW5kZXJDbG91bW5CdXR0b24iLCJyZWFjb3JkIiwic2VhcmNoRmxhZyIsInRhYmxlVG9vbCIsInRvb2xGbGFnIiwidG9vbGJhckZsYWciLCJ0b29sYmFyIiwidG9vbHMiLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwib25SZXNldCIsInNlYXJjaEZvcm1Qcm9wcyIsInJlbmRlclRvb2xCdXR0b25zIiwiZXhwYW5kSWNvbiIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwib25Ub29sQ2xpY2siLCJvblJlZnJlc2giLCJvblN1bWJpdENhbGxCYWNrIiwidGFibGVSZWxvYWQiLCJvblN1Ym1pdCIsIm9uSGlkZUZvcm0iLCJvbkZvcm1DaGFuZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBZ0QsT0FBaEQ7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGtCQUFsQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsaUJBQWpCO0FBRUEsT0FBT0MsTUFBUCxNQUFtQixtQkFBbkI7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGtCQUFsQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixvQkFBcEI7QUFHQSxPQUFPQyxVQUFQLE1BQXVCLFFBQXZCO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixZQUFoQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIscUJBQW5CO0FBR0EsU0FBU0MsS0FBVCxRQUFzQix1QkFBdEI7QUFDQSxTQUNFQyxZQURGLEVBRUVDLFdBRkYsRUFHRUMsWUFIRixFQUlFQyxhQUpGLEVBS0VDLFlBTEYsRUFNRUMsZ0JBTkYsRUFPRUMsY0FQRixRQVFPLG1CQVJQO0FBU0EsU0FBU0MsT0FBVCxRQUFpQyxhQUFqQztBQUNBLE9BQU9DLE9BQVAsTUFBb0IsYUFBcEI7QUFFQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFFQSxPQUFPQyxZQUFQLE1BQXlCLGlCQUF6Qjs7SUE4RE1DLFE7Ozs7O0FBTUosb0JBQVlDLEtBQVosRUFBd0I7QUFBQTs7QUFBQTs7QUFB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S0FBSzVKLEtBQUwsQ0FBV3VOLFVBWnpCO0FBYUUsUUFBQSxZQUFZLEVBQUUsS0FBS3ZOLEtBQUwsQ0FBV3dOLFlBYjNCO0FBY0UsUUFBQSxRQUFRLEVBQUUsS0FBS3hOLEtBQUwsQ0FBV3VCLFFBQVgsSUFBdUIsTUFkbkM7QUFlRSxRQUFBLFdBQVcsRUFBRW9ILGVBZmY7QUFnQkUsUUFBQSxVQUFVLG9CQUFPUCxTQUFQO0FBaEJaLFFBbkdKLENBTkYsQ0FERjtBQWdJRDs7OztFQXAyQm9CNUosYTs7QUFzMkJ2QixlQUFldUIsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgRWxsaXBzaXNPdXRsaW5lZCxcclxuICBEZWxldGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW1wb3J0IHsgUGFnaW5hdGlvblByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW4gfCBQYWdpbmF0aW9uUHJvcHM7IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBwYXJhbnRTZWxlY3Q/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PHN0cmluZz4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUG9zaXRpb24/OiBcInRvb2xiYXJcIiB8IFwicm93XCI7XHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIG9uUmVzZXQ/OiAoKSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qb3Jwcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG4gIG9uVHJlZVNlbGVjdD86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkNhbGxCYWNrcz86IHtcclxuICAgIHRyZWVTZWxlY3RDYWxsQmFjaz86IGFueTtcclxuICAgIG9uU2VhcmNoQ2FsbEJhY2s/OiBhbnk7XHJcbiAgICBvblN1bWJpdENhbGxCYWNrPzogYW55O1xyXG4gICAgb25EZWxldGVDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG59XHJcblxyXG5jbGFzcyBCYXNlUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8TlNDQmFzZUJhZ2VQcm9wcywgYW55PiB7XHJcbiAgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHRyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZWRpdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0eXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBsZXQgc2l6ZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwidGFibGVTaXplXCIgOiBcInRhYmxlU2l6ZVwiXHJcbiAgICApO1xyXG4gICAgc2l6ZSA9IHNpemU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBmb3JtVHlwZTogdHlwZSB8fCBcIm1vZGFsXCIsXHJcbiAgICAgIHRhYmxlU2l6ZTogc2l6ZSB8fCBcImRlZmF1bHRcIixcclxuICAgICAgdHJlZVNlYXJjaFByYW1zOiB7fSxcclxuICAgICAgcG9wb3BlbjogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0Rm9ybVZhbHVlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWRpdEZvcm1WYWx1ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICB9XHJcblxyXG4gIC8v5om56YeP5Yig6ZmkXHJcbiAgb25EZWxldGUoZGF0YT86IGFueSkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkZWxldGVVcmwsXHJcbiAgICAgIG9uRGVsZXRlLFxyXG4gICAgICBkZWxldGVQYXJhbXMsXHJcbiAgICAgIGRlbGV0ZVBvc2l0aW9uID0gXCJ0b29sYmFyXCIsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBjb25zdCBzZWxlY3RlZFJvd0tleXMgPSB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICBtZXNzYWdlLndhcm5pbmcoXCLor7fpgInmi6nopoHliKDpmaTnmoTmlbDmja7vvIFcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBNb2RhbC5jb25maXJtKHtcclxuICAgICAgY29udGVudDogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgLy8gY2VudGVyZWQ6dHJ1ZSxcclxuICAgICAgb25PazogKCkgPT4ge1xyXG4gICAgICAgIGlmIChvbkRlbGV0ZSkge1xyXG4gICAgICAgICAgb25EZWxldGUgJiZcclxuICAgICAgICAgICAgb25EZWxldGUoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMgOiBkYXRhKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgIGlkczogZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIgPyBzZWxlY3RlZFJvd0tleXMuam9pbigpIDogZGF0YS5pZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZSA9IF90aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uRGVsZXRlQ2FsbEJhY2sgJiZcclxuICAgICAgICAgICAgICAgIF90aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy5vbkRlbGV0ZUNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgX3RoaXMudGFibGVMb2FkKHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLmVycm9yKFwi5Yig6Zmk5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdGFibGVMb2FkKHBhcmFtczogYW55LCByZXF1ZXN0Q29uZmlnID0ge30pIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2gocGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoLCBvbkNhbGxCYWNrcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaCh7IC4uLnBhcmFtcywgLi4udGhpcy5zdGF0ZS50cmVlU2VhcmNoUHJhbXMgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgIG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2FsbEJhY2tzPy5vblNlYXJjaENhbGxCYWNrLCB0aGlzLCBbcGFyYW1zXSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQocGFyYW1zID0ge30sIGF1dG9Mb2FkID0gdHJ1ZSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgY2FsbGJhY2s6IChyZXMpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBhdXRvTG9hZCAmJlxyXG4gICAgICAgICAgcmVzPy5kYXRhPy5yZWNvcmRzPy5sZW5ndGggPT0gMCAmJlxyXG4gICAgICAgICAgdGhpcy5zdGF0ZS5jdXJyZW50UGFnZSAhPT0gMVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZT8ucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dEYXRhcygpO1xyXG4gIH1cclxuICByZXNldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnJlc2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICByZXR1cm4geyAuLi5mcm9tVmFsdWUsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH07XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG5cclxuICAgICAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AtYm94J119XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICDmm7TlpJogPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgYWN0aW9uUG9ycHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgbmV3QnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgaWYgKGV2YWwocmVjb3JkU2hvdykpIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICBjb25zdCBzaG93ID0gcmVjb3JkU2hvdyhyZWNvcmQpO1xyXG4gICAgICAgICAgc2hvdyAmJiBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgcG9wb3BlbjogZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICB2aXNpYmxlPXt0aGlzLnN0YXRlLnBvcG9wZW59XHJcbiAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfVxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICBwb3BvcGVuOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIG9iajogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEtleSA9IFwia2V5XCIsXHJcbiAgICAgIHNlYXJjaEZpZWxkID0gXCJcIixcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9ID0gb2JqO1xyXG5cclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBrZXl3b3JkID0gc2VsZWN0ZWROb2Rlc1swXS5kYXRhcmVmLmF0dHJpYnV0ZVtzZWFyY2hLZXldO1xyXG4gICAgICBpZiAocGFyYW50U2VsZWN0KSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIHRyZWVTZWFyY2hQcmFtczogeyBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IGtleXdvcmQsXHJcbiAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7fSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblRyZWVTZWxlY3QpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzLCBvYmopO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCkgfHwge307XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLnRhYmxlTG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjayAmJlxyXG4gICAgICB1dGlscy5jYWxsYmFjayh0aGlzLnByb3BzLm9uQ2FsbEJhY2tzPy50cmVlU2VsZWN0Q2FsbEJhY2ssIHRoaXMsIFtcclxuICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgb2JqLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICBnZXRUZXh0KHByb3BzLCB0ZXh0KSB7XHJcbiAgICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGRhdGEgPSBwcm9wcy5kYXRhO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgICAgbmV3VGV4dCA9IGRhdGFbaV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VGV4dDtcclxuICB9XHJcbiAgc2V0VGFibGVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmU/LnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZT8uc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblBvcnBzLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgICAgY29sdW1uT3JkZXIgPSB0cnVlLFxyXG4gICAgICBleHBhbmRhYmxlID0ge30sXHJcbiAgICAgIHBhcmFudFNlbGVjdCA9IHRydWUsXHJcbiAgICAgIC4uLm90aGVydGFibGVQYXJhbXNcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgICAgLi4ub3RoZXJ0cmVlUGFyYW1zXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSwgLi4ub3RoZXJ0YWJsZVBhcmFtcyB9IGFzIGFueTtcclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoID09PSB0cnVlIHx8IHRlbXAuc2VhcmNoPy5zaG93ID09PSB0cnVlKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAuc2VhcmNoPy5sYWJlbCB8fCB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBsYWJlbENvbDogdGVtcC5zZWFyY2g/LmxhYmVsQ29sLFxyXG4gICAgICAgICAgd3JhcHBlckNvbDogdGVtcC5zZWFyY2g/LndyYXBwZXJDb2wsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5zZWFyY2hSdWxlcyA/IHRlbXAuc2VhcmNoUnVsZXMgOiBbXSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzID8gdGVtcC5ydWxlcyA6IFtdLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgICAgZGljdE5hbWU6IHRlbXAuZGljdE5hbWUsXHJcbiAgICAgICAgICBwcm9wczogeyAuLi50ZW1wLnByb3BzIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQgJiZcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IG51bGxcclxuICAgICAgKSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXg7XHJcbiAgICAgICAgZGVmYXVsdFZhbHVlW25hbWVdID0gdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBsZXQgdGVtcFByb3AgPSB7IC4uLnRlbXAucHJvcHMgfTtcclxuICAgICAgaWYgKHRlbXAuc3R5bGUpIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgIHt0ZXh0ICE9PSBcIlwiICYmIHRleHQgIT09IG51bGwgJiYgdGV4dCAhPT0gdW5kZWZpbmVkICYmIChcclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC1iYWNrXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC10ZXh0XCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIGlmICghdGVtcC5lbGxpcHNpcykge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0ZW1wID0geyAuLi50ZW1wIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIGlmICh0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2VsZkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgaWYgKGVkaXRvckZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwic2VhcmNoXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFeWVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5p+l55yLXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJlZGl0b3JcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiYWRkXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvblNob3dGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgIG9uU2hvd0Zvcm0oKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxQbHVzT3V0bGluZWQgLz59XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5re75YqgXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZGVsZXRlXCIpID4gLTEpIHtcclxuICAgICAgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2UgaWYgKGRlbGV0ZVBvc2l0aW9uID09IFwicm93XCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRGVsZXRlKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxEZWxldGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNoaWxkPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgIDogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgIDogMjAwLFxyXG4gICAgICAgIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFjdGlvblwiKX0+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIGlmIChjb2x1bW5PcmRlcilcclxuICAgICAgdGFibGVDb2x1bW4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6IFwi5bqP5Y+3XCIsXHJcbiAgICAgICAgICB3aWR0aDogODAsXHJcbiAgICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQsIHJlYWNvcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PntpbmRleCArIDF9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRhYmxlQ29sdW1uLFxyXG4gICAgICBdO1xyXG4gICAgbGV0IHNlYXJjaEZsYWcgPSBzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDA7XHJcbiAgICBsZXQgeyB0YWJsZVRvb2wgfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHRvb2xGbGFnID0gc2hvd1Rvb2xCdXR0b24gJiYgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sYmFyRmxhZyA9ICEoXHJcbiAgICAgIHRhYmxlUHJvcHMudG9vbGJhciA9PSBmYWxzZSB8fFxyXG4gICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnNob3cgPT0gZmFsc2UgfHxcclxuICAgICAgdGFibGVQcm9wcy50b29sYmFyPy50b29scz8ubGVuZ3RoID09IDAgfHxcclxuICAgICAgdGFibGVUb29sPy5zaG93ID09IGZhbHNlXHJcbiAgICApO1xyXG4gICAgaWYgKHRhYmxlUHJvcHMucGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcclxuICAgICAgY29uc3Qgc2Nyb2xsID0gdGFibGVQYXJhbXMuc2Nyb2xsO1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICBzY3JvbGw6IHsgeDogXCJtYXgtY29udGVudFwiLCAuLi5zY3JvbGwgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2VcIiksIGNsYXNzTmFtZSl9PlxyXG4gICAgICAgIHt0aGlzLnByb3BzLnBhZ2VUaXRsZSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtdGl0bGVcIikpfT5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJwYWdlLXBhbmVcIikpfVxyXG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7c2hvd0xlZnQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibGVmdFwiKX0+XHJcbiAgICAgICAgICAgICAgPFRyZWVcclxuICAgICAgICAgICAgICAgIHN0b3JlPXt7IC4uLnRyZWVTdG9yZSB9fVxyXG4gICAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgY2hlY2thYmxlPXtmYWxzZX1cclxuICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RyZWVTZWFyY2h9XHJcbiAgICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEtleXM9e1t0aGlzLnN0YXRlLnRyZWVTZWxlY3RlZEtleV19XHJcbiAgICAgICAgICAgICAgICB0aXRsZUFsaWFzPXt0aXRsZUFsaWFzfVxyXG4gICAgICAgICAgICAgICAgey4uLm90aGVydHJlZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInJpZ2h0XCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5vLWxlZnQtcmlnaHRcIildOiAhc2hvd0xlZnQsXHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd1NlYXJjaCAmJiBzZWFyY2hGb3Jtcy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICAgICAgICA8SGVhZGVyU2VhcmNoXHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcz17c2VhcmNoRm9ybXN9XHJcbiAgICAgICAgICAgICAgICB0b29sQnV0dG9uUG9zaXRpb249e3Rvb2xCdXR0b25Qb3NpdGlvbn1cclxuICAgICAgICAgICAgICAgIG9uU2VhcmNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICBvblJlc2V0PXt0aGlzLnByb3BzLm9uUmVzZXR9XHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybVByb3BzPXt0aGlzLnByb3BzLnNlYXJjaEZvcm1Qcm9wc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmXHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcImJ1dHRvbVwiICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJUb29sQnV0dG9ucyhzZWxmQnV0dG9ucywgc2VhcmNoRm9ybXMubGVuZ3RoID09IDApfVxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgKHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnKSB8fCAhdG9vbGJhckZsYWcsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidGFibGUtdG9wMlwiKV06ICFzZWFyY2hGbGFnICYmICF0b29sRmxhZyxcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudGFibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kSWNvbjogKHsgZXhwYW5kZWQsIG9uRXhwYW5kLCByZWNvcmQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXhwYW5kZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJpZ2h0T3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmV4cGFuZGFibGUsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgY29sdW1uT3JkZXI9e3RydWV9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHBhZ2luYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSBwYWdpbmF0aW9uLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB0b29sYmFyPXt7XHJcbiAgICAgICAgICAgICAgICAgIG9uVG9vbENsaWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZWZyZXNoOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZUxvYWQocGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi50YWJsZVByb3BzLnRvb2xiYXIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgc2hvd1Jvd1NlbGVjdGlvbj17c2hvd1Jvd1NlbGVjdGlvbn1cclxuICAgICAgICAgICAgICAgIHsuLi50YWJsZVBhcmFtc31cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAge2VkaXRvckZvcm0gJiYgKFxyXG4gICAgICAgICAgICA8RWRpdG9yRm9ybVxyXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5lZGl0b3JSZWZ9XHJcbiAgICAgICAgICAgICAgY2FsbEJhY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYWxsQmFja3M/Lm9uU3VtYml0Q2FsbEJhY2sgJiZcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8ub25TdW1iaXRDYWxsQmFjaygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
package/package.json CHANGED
@@ -1,99 +1,98 @@
1
- {
2
- "name": "nsc-react-component",
3
- "version": "2.11.3",
4
- "main": "lib/index.js",
5
- "scripts": {
6
- "compile": "webpack --config ./webpack.config.js",
7
- "build_dev": "babel src/* src/components/ --out-dir lib/ -D --copy-files --extensions \".js,.jsx,.ts,.tsx\" && npm run tsc",
8
- "build": "yarn rm && babel src/* src/components/ --out-dir lib/ -D --copy-files --extensions \".js,.jsx,.ts,.tsx\" && npm run tsc",
9
- "tsc": "tsc",
10
- "rm": "rimraf lib"
11
- },
12
- "keywords": [],
13
- "author": "WuHan",
14
- "license": "ISC",
15
- "devDependencies": {
16
- "@ant-design/tools": "^13.5.0-beta.0",
17
- "@babel/cli": "^7.13.10",
18
- "@babel/core": "^7.13.10",
19
- "@babel/plugin-proposal-class-properties": "^7.13.0",
20
- "@babel/plugin-proposal-object-rest-spread": "^7.13.8",
21
- "@babel/plugin-transform-runtime": "^7.13.15",
22
- "@babel/preset-env": "^7.13.10",
23
- "@babel/preset-react": "^7.12.13",
24
- "@babel/preset-typescript": "^7.13.0",
25
- "@bj-nsc/msn": "^1.0.20",
26
- "@types/react": "^17.0.3",
27
- "@types/react-dom": "^17.0.2",
28
- "antd": "4.19.1",
29
- "babel-loader": "^8.2.2",
30
- "babel-plugin-import": "^1.13.3",
31
- "classnames": "^2.2.6",
32
- "clean-webpack-plugin": "^4.0.0-alpha.0",
33
- "css-loader": "^5.2.4",
34
- "del": "^6.0.0",
35
- "gulp": "^4.0.2",
36
- "gulp-clean-css": "^4.3.0",
37
- "gulp-cli": "^2.3.0",
38
- "gulp-concat": "^2.6.1",
39
- "gulp-less": "^4.0.1",
40
- "gulp-rename": "^2.0.0",
41
- "less": "3.5.0",
42
- "less-loader": "^8.1.1",
43
- "lodash": "^4.17.21",
44
- "mini-css-extract-plugin": "^1.5.0",
45
- "nsc-file": "2.2.2",
46
- "nsc-request": "^3.0.12",
47
- "react": "^17.0.1",
48
- "react-dom": "^17.0.1",
49
- "rimraf": "^3.0.2",
50
- "typescript": "^4.2.3",
51
- "webpack": "^5.35.1",
52
- "webpack-cli": "^4.6.0"
53
- },
54
- "peerDependencies": {
55
- "@bj-nsc/functions": ">=1.2.25",
56
- "@bj-nsc/msn": ">=1.0.15",
57
- "@types/react": "^17.0.3",
58
- "@types/react-dom": "^17.0.2",
59
- "antd": "^4.19.0",
60
- "nsc-file": "<=2.2.2",
61
- "nsc-request": "<3.1.0",
62
- "react": ">=16.9.0",
63
- "react-dom": ">=16.9.0"
64
- },
65
- "dependencies": {
66
- "@ant-design/icons": "^4.6.2",
67
- "@babel/runtime": "^7.13.17",
68
- "@babel/runtime-corejs3": "^7.13.17",
69
- "@bj-nsc/functions": "^1.4.4",
70
- "classnames": "^2.2.6",
71
- "clone-deep": "^4.0.1",
72
- "core-js": "3",
73
- "draft-js": "^0.11.7",
74
- "draftjs-to-html": "^0.9.1",
75
- "echarts": "^5.4.2",
76
- "html-to-draftjs": "^1.5.0",
77
- "md5": "^2.3.0",
78
- "nsc-react-component": "^2.10.15",
79
- "nsc-request": "^3.1.7",
80
- "omit.js": "^2.0.2",
81
- "pdf.js": "^0.1.0",
82
- "pinyin-match": "^1.2.2",
83
- "react-dnd": "^14.0.2",
84
- "react-dnd-html5-backend": "^14.0.0",
85
- "react-draft-wysiwyg": "^1.15.0",
86
- "react-draggable": "^4.4.6",
87
- "react-pdf": "^5.7.2",
88
- "react-resizable": "^3.0.4"
89
- },
90
- "types": "./lib/index.d.ts",
91
- "directories": {
92
- "lib": "lib"
93
- },
94
- "repository": {
95
- "type": "git",
96
- "url": "http://10.20.0.20:20080/cdp/base/web-framework/nsc-react-components.git"
97
- },
98
- "description": ""
99
- }
1
+ {
2
+ "name": "nsc-react-component",
3
+ "version": "2.11.5",
4
+ "main": "lib/index.js",
5
+ "scripts": {
6
+ "compile": "webpack --config ./webpack.config.js",
7
+ "build_dev": "babel src/* src/components/ --out-dir lib/ -D --copy-files --extensions \".js,.jsx,.ts,.tsx\" && npm run tsc",
8
+ "build": "yarn rm && babel src/* src/components/ --out-dir lib/ -D --copy-files --extensions \".js,.jsx,.ts,.tsx\" && npm run tsc",
9
+ "tsc": "tsc",
10
+ "rm": "rimraf lib"
11
+ },
12
+ "keywords": [],
13
+ "author": "WuHan",
14
+ "license": "ISC",
15
+ "devDependencies": {
16
+ "@ant-design/tools": "^13.5.0-beta.0",
17
+ "@babel/cli": "^7.13.10",
18
+ "@babel/core": "^7.13.10",
19
+ "@babel/plugin-proposal-class-properties": "^7.13.0",
20
+ "@babel/plugin-proposal-object-rest-spread": "^7.13.8",
21
+ "@babel/plugin-transform-runtime": "^7.13.15",
22
+ "@babel/preset-env": "^7.13.10",
23
+ "@babel/preset-react": "^7.12.13",
24
+ "@babel/preset-typescript": "^7.13.0",
25
+ "@bj-nsc/msn": "^1.0.20",
26
+ "@types/react": "^17.0.3",
27
+ "@types/react-dom": "^17.0.2",
28
+ "antd": "4.19.1",
29
+ "babel-loader": "^8.2.2",
30
+ "babel-plugin-import": "^1.13.3",
31
+ "classnames": "^2.2.6",
32
+ "clean-webpack-plugin": "^4.0.0-alpha.0",
33
+ "css-loader": "^5.2.4",
34
+ "del": "^6.0.0",
35
+ "gulp": "^4.0.2",
36
+ "gulp-clean-css": "^4.3.0",
37
+ "gulp-cli": "^2.3.0",
38
+ "gulp-concat": "^2.6.1",
39
+ "gulp-less": "^4.0.1",
40
+ "gulp-rename": "^2.0.0",
41
+ "less": "3.5.0",
42
+ "less-loader": "^8.1.1",
43
+ "lodash": "^4.17.21",
44
+ "mini-css-extract-plugin": "^1.5.0",
45
+ "nsc-file": "^2.3.2",
46
+ "nsc-request": "^3.2.0",
47
+ "react": "^17.0.1",
48
+ "react-dom": "^17.0.1",
49
+ "rimraf": "^3.0.2",
50
+ "typescript": "^4.2.3",
51
+ "webpack": "^5.35.1",
52
+ "webpack-cli": "^4.6.0"
53
+ },
54
+ "peerDependencies": {
55
+ "@bj-nsc/functions": ">=1.2.25",
56
+ "@bj-nsc/msn": ">=1.0.15",
57
+ "@types/react": "^17.0.3",
58
+ "@types/react-dom": "^17.0.2",
59
+ "antd": "^4.19.0",
60
+ "nsc-file": "^2.3.0",
61
+ "nsc-request": "^3.0.5",
62
+ "react": ">=16.9.0",
63
+ "react-dom": ">=16.9.0"
64
+ },
65
+ "dependencies": {
66
+ "@ant-design/icons": "^4.6.2",
67
+ "@babel/runtime": "^7.13.17",
68
+ "@babel/runtime-corejs3": "^7.13.17",
69
+ "@bj-nsc/functions": ">=1.2.25",
70
+ "classnames": "^2.2.6",
71
+ "clone-deep": "^4.0.1",
72
+ "core-js": "3",
73
+ "draft-js": "^0.11.7",
74
+ "draftjs-to-html": "^0.9.1",
75
+ "echarts": "^5.4.2",
76
+ "html-to-draftjs": "^1.5.0",
77
+ "md5": "^2.3.0",
78
+ "omit.js": "^2.0.2",
79
+ "pdf.js": "^0.1.0",
80
+ "pinyin-match": "^1.2.2",
81
+ "react-dnd": "^14.0.2",
82
+ "react-dnd-html5-backend": "^14.0.0",
83
+ "react-draft-wysiwyg": "^1.15.0",
84
+ "react-draggable": "^4.4.6",
85
+ "react-pdf": "^5.7.2",
86
+ "react-resizable": "^3.0.4",
87
+ "nsc-request": "^3.0.5"
88
+ },
89
+ "types": "./lib/index.d.ts",
90
+ "directories": {
91
+ "lib": "lib"
92
+ },
93
+ "repository": {
94
+ "type": "git",
95
+ "url": "http://10.20.0.20:20080/cdp/base/web-framework/nsc-react-components.git"
96
+ },
97
+ "description": ""
98
+ }