nsc-react-component 2.10.19 → 2.10.20
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.
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React, { PureComponent, ReactNode } from "react";
|
|
2
2
|
import { StoreProps } from "@bj-nsc/msn";
|
|
3
3
|
import { IFormProps } from "../../base/form/Form";
|
|
4
|
+
import { PaginationProps } from "antd";
|
|
4
5
|
interface TableProps {
|
|
5
6
|
actionColumn?: boolean;
|
|
6
7
|
store?: StoreProps;
|
|
7
8
|
filterColumn?: boolean;
|
|
8
9
|
showRowSelection?: boolean;
|
|
9
|
-
pagination?: boolean;
|
|
10
|
+
pagination?: boolean | PaginationProps;
|
|
10
11
|
columnOrder?: boolean;
|
|
11
12
|
[propsName: string]: any;
|
|
12
13
|
}
|
|
@@ -1007,4 +1007,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
1007
1007
|
}(PureComponent);
|
|
1008
1008
|
|
|
1009
1009
|
export default BasePage;
|
|
1010
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsIm9taXQiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJwcm9wcyIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsInN0YXRlIiwibmFtZSIsInVzZXJUeXBlIiwiYWNjb3VudCIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGF0YSIsImRlbGV0ZVVybCIsIm9uRGVsZXRlIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJfdGhpcyIsInRhYmxlUmVmIiwiZ2V0U2VsZWN0ZWRSb3dLZXlzIiwid2FybmluZyIsImNvbmZpcm0iLCJvbk9rIiwiRXJyb3IiLCJkZWZhdWx0UGFyYW1zIiwibWV0aG9kIiwiYXV0b1ByZWZpeCIsImlkcyIsImpvaW4iLCJpZCIsInJlcXVlc3RQYXJhbXMiLCJ0aGVuIiwiY29kZSIsInN1Y2Nlc3MiLCJnZXRTZWFyY2hWYWx1ZXMiLCJ0YWJsZUxvYWQiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInJlcXVlc3RDb25maWciLCJzdG9yZSIsImxvYWQiLCJvbkNhbGxCYWNrcyIsIm9uU2VhcmNoQ2FsbEJhY2siLCJjYWxsYmFjayIsImF1dG9Mb2FkIiwicmVsb2FkIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsInJlc2V0U2VsZWN0ZWRSb3dLZXlzIiwiZnJvbVZhbHVlIiwidGFibGVQcm9wcyIsInJvd0tleSIsInJlc0tleSIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsIm1hcCIsIml0ZW0iLCJpbmRleCIsImdldENoaWxkcmVuRGF0YSIsInRvb2xidXR0b25zIiwibWFyZ2luZmxhZyIsImZsYWciLCJzaG93U2VhcmNoIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjb2x1bW5CdXR0b25zIiwicmVjb3JkIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJwdXNoIiwic2VsZWN0ZWRLZXlzIiwib2JqIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwicGFyYW50U2VsZWN0Iiwic2VsZWN0ZWROb2RlcyIsImRhdGFyZWYiLCJhdHRyaWJ1dGUiLCJzZXRTdGF0ZSIsImlzTGVhZiIsIm9uVHJlZVNlbGVjdCIsInRyZWVTZWxlY3RDYWxsQmFjayIsInJlc2V0RmllbGRzIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJzZXREYXRhIiwidHJlZVJlZiIsImNvbHVtbnMiLCJzdWJtaXRVcmwiLCJmb3JtUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwiYnV0dG9ucyIsImVkaXRvckZvcm0iLCJvblNob3dGb3JtIiwiZm9ybUNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwiZmlsdGVyQ29sdW1uIiwiYWN0aW9uQ29sdW1uIiwic2hvd1Jvd1NlbGVjdGlvbiIsImNvbHVtbk9yZGVyIiwiZXhwYW5kYWJsZSIsIm90aGVydGFibGVQYXJhbXMiLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsIm90aGVydHJlZVBhcmFtcyIsInRhYmxlUGFyYW1zIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwidGl0bGUiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwidW5kZWZpbmVkIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsInN0eWxlIiwicmVuZGVyIiwiZ2V0VGV4dCIsImVsbGlwc2lzIiwiY29sdW1uU2hvdyIsInNlbGZCdXR0b25zIiwiaW5kZXhPZiIsInNob3dGb3JtIiwiYmluZCIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkIiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImZpeGVkIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwicmVhY29yZCIsInNlYXJjaEZsYWciLCJ0b29sRmxhZyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwidGFibGVUb29sIiwicGFnZVRpdGxlIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJvblJlc2V0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYmFyIiwidG9vbHMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBR0EsT0FBT0MsVUFBUCxNQUF1QixRQUF2QjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLHFCQUFuQjtBQUdBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBQ0EsU0FDRUMsWUFERixFQUVFQyxXQUZGLEVBR0VDLFlBSEYsRUFJRUMsYUFKRixFQUtFQyxZQUxGLEVBTUVDLGdCQU5GLEVBT0VDLGNBUEYsUUFRTyxtQkFSUDtBQVNBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQTJETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0QiwrQkFBTUEsS0FBTjs7QUFEc0IsNkVBTGIxQixLQUFLLENBQUMyQixTQUFOLEVBS2E7O0FB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QUEsWUFBWSxFQUFFRyxZQUxoQjtBQU1FLFFBQUEsUUFBUSxFQUFFLEtBQUtsSSxLQUFMLENBQVdnTixRQU52QjtBQU9FLFFBQUEsWUFBWSxFQUFFeEQsWUFQaEI7QUFRRSxRQUFBLFVBQVUsRUFBRSxLQUFLeEosS0FBTCxDQUFXaU4sVUFSekI7QUFTRSxRQUFBLFlBQVksRUFBRSxLQUFLak4sS0FBTCxDQUFXa04sWUFUM0I7QUFVRSxRQUFBLFFBQVEsRUFBRSxLQUFLbE4sS0FBTCxDQUFXdUIsUUFBWCxJQUF1QixNQVZuQztBQVdFLFFBQUEsV0FBVyxFQUFFZ0gsZUFYZjtBQVlFLFFBQUEsVUFBVSxvQkFBT1AsU0FBUDtBQVpaLFFBbEdKLENBTkYsQ0FERjtBQTJIRDs7OztFQWgwQm9CekosYTs7QUFrMEJ2QixlQUFld0IsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgRWxsaXBzaXNPdXRsaW5lZCxcclxuICBEZWxldGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+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/OiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dLZXlzID0gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgIG9uRGVsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRGVsZXRlKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzIDogZGF0YSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICBpZHM6IGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSA6IGRhdGEuaWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBfdGhpcy5zZWFyY2hSZWYuY3VycmVudC5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICBfdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLliKDpmaTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnksIHJlcXVlc3RDb25maWcgPSB7fSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaChwYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2gsIG9uQ2FsbEJhY2tzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWQoeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgb25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2ssIHRoaXMsIFtwYXJhbXNdKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dEYXRhcygpO1xyXG4gIH1cclxuICByZXNldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnJlc2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICByZXR1cm4geyAuLi5mcm9tVmFsdWUsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH07XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcC1ib3gnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIOabtOWkmiA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBhY3Rpb25Qb3JwcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBuZXdCdXR0b25zID0gW107XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgIGNvbnN0IHNob3cgPSByZWNvcmRTaG93KHJlY29yZCk7XHJcbiAgICAgICAgICBzaG93ICYmIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZsYWcgPSBuZXdCdXR0b25zLmxlbmd0aCA+IDM7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoS2V5ID0gXCJrZXlcIixcclxuICAgICAgc2VhcmNoRmllbGQgPSBcIlwiLFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH0gPSBvYmo7XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgIGlmIChwYXJhbnRTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb3BzLm9uVHJlZVNlbGVjdCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uVHJlZVNlbGVjdChzZWxlY3RlZEtleXMsIG9iaik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKSB8fCB7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjaywgdGhpcywgW1xyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgICBvYmosXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBzZXRUcmVlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblBvcnBzLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2ggPT09IHRydWUgfHwgdGVtcC5zZWFyY2g/LnNob3cgPT09IHRydWUpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC5zZWFyY2g/LmxhYmVsIHx8IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIGxhYmVsQ29sOiB0ZW1wLnNlYXJjaD8ubGFiZWxDb2wsXHJcbiAgICAgICAgICB3cmFwcGVyQ29sOiB0ZW1wLnNlYXJjaD8ud3JhcHBlckNvbCxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnNlYXJjaFJ1bGVzID8gdGVtcC5zZWFyY2hSdWxlcyA6IFtdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiBvbWl0KHsgLi4udGVtcC5wcm9wcyB9LCBbXCJkZWZhdWx0VmFsdWVcIiwgXCJ2YWx1ZVwiXSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKCF0ZW1wLmVsbGlwc2lzKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7IC4uLnRlbXAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBpZiAoZWRpdG9yRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJzZWFyY2hcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEV5ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RWRpdE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJyb3dcIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUocmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgOiAyMDAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCLluo/lj7dcIixcclxuICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dCwgcmVhY29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e2luZGV4ICsgMX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4udGFibGVDb2x1bW4sXHJcbiAgICAgIF07XHJcbiAgICBsZXQgc2VhcmNoRmxhZyA9IHNob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sRmxhZyA9IHNob3dUb29sQnV0dG9uICYmIHNlbGZCdXR0b25zLmxlbmd0aCA+IDA7XHJcbiAgICBpZiAodGFibGVQcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzY3JvbGwgPSB0YWJsZVBhcmFtcy5zY3JvbGw7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIC4uLnNjcm9sbCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibm8tbGVmdC1yaWdodFwiKV06ICFzaG93TGVmdCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgIDxIZWFkZXJTZWFyY2hcclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zPXtzZWFyY2hGb3Jtc31cclxuICAgICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbj17dG9vbEJ1dHRvblBvc2l0aW9ufVxyXG4gICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIG9uUmVzZXQ9e3RoaXMucHJvcHMub25SZXNldH1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3JtUHJvcHM9e3RoaXMucHJvcHMuc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiZcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID09IFwiYnV0dG9tXCIgJiZcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zLCBzZWFyY2hGb3Jtcy5sZW5ndGggPT0gMCl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hGbGFnICYmICF0b29sRmxhZykgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyID09IGZhbHNlIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8uc2hvdyA9PSBmYWxzZSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVRvb2w/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVRvb2w/LnNob3cgPT0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBzaG93Um93U2VsZWN0aW9uPXtzaG93Um93U2VsZWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgICAgb25IaWRlRm9ybT17dGhpcy5wcm9wcy5vbkhpZGVGb3JtfVxyXG4gICAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgXCJhdXRvXCJ9XHJcbiAgICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgICAgICBvdGhlclByb3BzPXt7IC4uLmZvcm1Qcm9wcyB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
|
|
1010
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwidXRpbHMiLCJEb3duT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJQbHVzT3V0bGluZWQiLCJFbGxpcHNpc091dGxpbmVkIiwiRGVsZXRlT3V0bGluZWQiLCJnZXRMZXNzIiwicmVxdWVzdCIsIm9taXQiLCJjb25maWciLCJnZXRTdG9yYWdlIiwiSGVhZGVyU2VhcmNoIiwiQmFzZVBhZ2UiLCJwcm9wcyIsImNyZWF0ZVJlZiIsImNoZWNrZWRUcmVlS2V5cyIsInN0YXRlIiwibmFtZSIsInVzZXJUeXBlIiwiYWNjb3VudCIsInZhbHVlIiwiZGVwdElkIiwib25TZWFyY2giLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsInRyZWVTZWFyY2hQcmFtcyIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGF0YSIsImRlbGV0ZVVybCIsIm9uRGVsZXRlIiwiZGVsZXRlUGFyYW1zIiwiZGVsZXRlUG9zaXRpb24iLCJfdGhpcyIsInRhYmxlUmVmIiwiZ2V0U2VsZWN0ZWRSb3dLZXlzIiwid2FybmluZyIsImNvbmZpcm0iLCJvbk9rIiwiRXJyb3IiLCJkZWZhdWx0UGFyYW1zIiwibWV0aG9kIiwiYXV0b1ByZWZpeCIsImlkcyIsImpvaW4iLCJpZCIsInJlcXVlc3RQYXJhbXMiLCJ0aGVuIiwiY29kZSIsInN1Y2Nlc3MiLCJnZXRTZWFyY2hWYWx1ZXMiLCJ0YWJsZUxvYWQiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInJlcXVlc3RDb25maWciLCJzdG9yZSIsImxvYWQiLCJvbkNhbGxCYWNrcyIsIm9uU2VhcmNoQ2FsbEJhY2siLCJjYWxsYmFjayIsImF1dG9Mb2FkIiwicmVsb2FkIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwiZ2V0U2VsZWN0ZWRSb3dEYXRhcyIsInJlc2V0U2VsZWN0ZWRSb3dLZXlzIiwiZnJvbVZhbHVlIiwidGFibGVQcm9wcyIsInJvd0tleSIsInJlc0tleSIsImNoaWxkTm9kZXMiLCJjaGlsZHJlbiIsIm1hcCIsIml0ZW0iLCJpbmRleCIsImdldENoaWxkcmVuRGF0YSIsInRvb2xidXR0b25zIiwibWFyZ2luZmxhZyIsImZsYWciLCJzaG93U2VhcmNoIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjb2x1bW5CdXR0b25zIiwicmVjb3JkIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJwdXNoIiwic2VsZWN0ZWRLZXlzIiwib2JqIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwicGFyYW50U2VsZWN0Iiwic2VsZWN0ZWROb2RlcyIsImRhdGFyZWYiLCJhdHRyaWJ1dGUiLCJzZXRTdGF0ZSIsImlzTGVhZiIsIm9uVHJlZVNlbGVjdCIsInRyZWVTZWxlY3RDYWxsQmFjayIsInJlc2V0RmllbGRzIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJzZXREYXRhIiwidHJlZVJlZiIsImNvbHVtbnMiLCJzdWJtaXRVcmwiLCJmb3JtUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwiYnV0dG9ucyIsImVkaXRvckZvcm0iLCJvblNob3dGb3JtIiwiZm9ybUNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwiZmlsdGVyQ29sdW1uIiwiYWN0aW9uQ29sdW1uIiwic2hvd1Jvd1NlbGVjdGlvbiIsImNvbHVtbk9yZGVyIiwiZXhwYW5kYWJsZSIsIm90aGVydGFibGVQYXJhbXMiLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsIm90aGVydHJlZVBhcmFtcyIsInRhYmxlUGFyYW1zIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwidGl0bGUiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJydWxlcyIsInNlYXJjaFJ1bGVzIiwiZWRpdG9yIiwic3BhbiIsImRpY3ROYW1lIiwidW5kZWZpbmVkIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsInN0eWxlIiwicmVuZGVyIiwiZ2V0VGV4dCIsImVsbGlwc2lzIiwiY29sdW1uU2hvdyIsInNlbGZCdXR0b25zIiwiaW5kZXhPZiIsInNob3dGb3JtIiwiYmluZCIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkIiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImZpeGVkIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwicmVhY29yZCIsInNlYXJjaEZsYWciLCJ0b29sRmxhZyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwidGFibGVUb29sIiwicGFnZVRpdGxlIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJvblJlc2V0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYmFyIiwidG9vbHMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBR0EsT0FBT0MsVUFBUCxNQUF1QixRQUF2QjtBQUNBLE9BQU9DLEdBQVAsTUFBZ0IsWUFBaEI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLHFCQUFuQjtBQUdBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBQ0EsU0FDRUMsWUFERixFQUVFQyxXQUZGLEVBR0VDLFlBSEYsRUFJRUMsYUFKRixFQUtFQyxZQUxGLEVBTUVDLGdCQU5GLEVBT0VDLGNBUEYsUUFRTyxtQkFSUDtBQVNBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQTRETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0QiwrQkFBTUEsS0FBTjs7QUFEc0IsNkVBTGIxQixLQUFLLENBQUMyQixTQUFOLEVBS2E7O0FB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QUEsWUFBWSxFQUFFRyxZQUxoQjtBQU1FLFFBQUEsUUFBUSxFQUFFLEtBQUtsSSxLQUFMLENBQVdnTixRQU52QjtBQU9FLFFBQUEsWUFBWSxFQUFFeEQsWUFQaEI7QUFRRSxRQUFBLFVBQVUsRUFBRSxLQUFLeEosS0FBTCxDQUFXaU4sVUFSekI7QUFTRSxRQUFBLFlBQVksRUFBRSxLQUFLak4sS0FBTCxDQUFXa04sWUFUM0I7QUFVRSxRQUFBLFFBQVEsRUFBRSxLQUFLbE4sS0FBTCxDQUFXdUIsUUFBWCxJQUF1QixNQVZuQztBQVdFLFFBQUEsV0FBVyxFQUFFZ0gsZUFYZjtBQVlFLFFBQUEsVUFBVSxvQkFBT1AsU0FBUDtBQVpaLFFBbEdKLENBTkYsQ0FERjtBQTJIRDs7OztFQWgwQm9CekosYTs7QUFrMEJ2QixlQUFld0IsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgRWxsaXBzaXNPdXRsaW5lZCxcclxuICBEZWxldGVPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW1wb3J0IHsgUGFnaW5hdGlvblByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+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/OiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICAgIHRyZWVTZWFyY2hQcmFtczoge30sXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMub25TZWFyY2gpIHtcclxuICAgICAgdGhpcy5wcm9wcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKGRhdGE/OiBhbnkpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgZGVsZXRlVXJsLFxyXG4gICAgICBvbkRlbGV0ZSxcclxuICAgICAgZGVsZXRlUGFyYW1zLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dLZXlzID0gdGhpcy50YWJsZVJlZi5jdXJyZW50Py5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICAgIGlmIChkZWxldGVQb3NpdGlvbiA9PSBcInRvb2xiYXJcIikge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgICAgIG9uRGVsZXRlICYmXHJcbiAgICAgICAgICAgIG9uRGVsZXRlKGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzIDogZGF0YSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRQYXJhbXMgPSB7XHJcbiAgICAgICAgICBtZXRob2Q6IFwicG9zdFwiLFxyXG4gICAgICAgICAgYXV0b1ByZWZpeDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICBpZHM6IGRlbGV0ZVBvc2l0aW9uID09IFwidG9vbGJhclwiID8gc2VsZWN0ZWRSb3dLZXlzLmpvaW4oKSA6IGRhdGEuaWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbGV0IHJlcXVlc3RQYXJhbXMgPSB7fSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGRlZmF1bHRQYXJhbXMpIHtcclxuICAgICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlbGV0ZVBhcmFtcyB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWZhdWx0UGFyYW1zIH07XHJcbiAgICAgICAgcmVxdWVzdChkZWxldGVVcmwsIHtcclxuICAgICAgICAgIC4uLnJlcXVlc3RQYXJhbXMsXHJcbiAgICAgICAgfSlcclxuICAgICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zdCB7IGNvZGUgfSA9IHJlcztcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhcIuWIoOmZpOaIkOWKn++8gVwiKTtcclxuICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBfdGhpcy5zZWFyY2hSZWYuY3VycmVudC5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICBfdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLliKDpmaTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnksIHJlcXVlc3RDb25maWcgPSB7fSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaChwYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2gsIG9uQ2FsbEJhY2tzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKHsgLi4ucGFyYW1zLCAuLi50aGlzLnN0YXRlLnRyZWVTZWFyY2hQcmFtcyB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWQoeyAuLi5wYXJhbXMsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH0pO1xyXG4gICAgb25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2sgJiZcclxuICAgICAgdXRpbHMuY2FsbGJhY2sob25DYWxsQmFja3M/Lm9uU2VhcmNoQ2FsbEJhY2ssIHRoaXMsIFtwYXJhbXNdKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LmdldFNlbGVjdGVkUm93S2V5cygpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVSZWYuY3VycmVudD8uZ2V0U2VsZWN0ZWRSb3dEYXRhcygpO1xyXG4gIH1cclxuICByZXNldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnJlc2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZj8uY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICByZXR1cm4geyAuLi5mcm9tVmFsdWUsIC4uLnRoaXMuc3RhdGUudHJlZVNlYXJjaFByYW1zIH07XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcC1ib3gnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIOabtOWkmiA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBhY3Rpb25Qb3JwcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBuZXdCdXR0b25zID0gW107XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgIGNvbnN0IHNob3cgPSByZWNvcmRTaG93KHJlY29yZCk7XHJcbiAgICAgICAgICBzaG93ICYmIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZsYWcgPSBuZXdCdXR0b25zLmxlbmd0aCA+IDM7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VhcmNoS2V5ID0gXCJrZXlcIixcclxuICAgICAgc2VhcmNoRmllbGQgPSBcIlwiLFxyXG4gICAgICBwYXJhbnRTZWxlY3QgPSB0cnVlLFxyXG4gICAgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH0gPSBvYmo7XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgIGlmIChwYXJhbnRTZWxlY3QpIHtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIHRyZWVTZWxlY3RlZEtleTogc2VsZWN0ZWRLZXlzWzBdLFxyXG4gICAgICAgICAgdHJlZVNlYXJjaFByYW1zOiB7IFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHsgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9LFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgICB0cmVlU2VhcmNoUHJhbXM6IHt9LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnByb3BzLm9uVHJlZVNlbGVjdCkge1xyXG4gICAgICB0aGlzLnByb3BzLm9uVHJlZVNlbGVjdChzZWxlY3RlZEtleXMsIG9iaik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKSB8fCB7fTtcclxuICAgIHNlYXJjaEZpZWxkICYmIHRoaXMudGFibGVMb2FkKHsgLi4uZnJvbVZhbHVlLCBbc2VhcmNoRmllbGRdOiBrZXl3b3JkIH0pO1xyXG4gICAgdGhpcy5wcm9wcy5vbkNhbGxCYWNrcz8udHJlZVNlbGVjdENhbGxCYWNrICYmXHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKHRoaXMucHJvcHMub25DYWxsQmFja3M/LnRyZWVTZWxlY3RDYWxsQmFjaywgdGhpcywgW1xyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgICBvYmosXHJcbiAgICAgIF0pO1xyXG4gIH1cclxuICByZXNldFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgfVxyXG4gIGdldFRleHQocHJvcHMsIHRleHQpIHtcclxuICAgIGxldCBuZXdUZXh0ID0gdGV4dDtcclxuICAgIGlmIChwcm9wcz8uZGF0YSAmJiBwcm9wcz8uZGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZGF0YSA9IHByb3BzLmRhdGE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YT8ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGF0YVtpXS52YWx1ZSA9PSB0ZXh0KSB7XHJcbiAgICAgICAgICBuZXdUZXh0ID0gZGF0YVtpXS5sYWJlbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBuZXdUZXh0O1xyXG4gIH1cclxuICBzZXRUYWJsZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBzZXRUcmVlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRLZXkgPSAoc2VsZWN0ZWQpID0+IHtcclxuICAgIGxldCByZXMgPSBbXTtcclxuICAgIGZvciAobGV0IGtleSBpbiBzZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBrZXlzID0gc2VsZWN0ZWRba2V5XTtcclxuICAgICAgaWYgKGtleXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlcyA9IFsuLi5yZXMsIC4uLmtleXNdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH07XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblBvcnBzLFxyXG4gICAgICBkZWxldGVQb3NpdGlvbiA9IFwidG9vbGJhclwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIGV4cGFuZGFibGUgPSB7fSxcclxuICAgICAgcGFyYW50U2VsZWN0ID0gdHJ1ZSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2ggPT09IHRydWUgfHwgdGVtcC5zZWFyY2g/LnNob3cgPT09IHRydWUpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC5zZWFyY2g/LmxhYmVsIHx8IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIGxhYmVsQ29sOiB0ZW1wLnNlYXJjaD8ubGFiZWxDb2wsXHJcbiAgICAgICAgICB3cmFwcGVyQ29sOiB0ZW1wLnNlYXJjaD8ud3JhcHBlckNvbCxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnNlYXJjaFJ1bGVzID8gdGVtcC5zZWFyY2hSdWxlcyA6IFtdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiBvbWl0KHsgLi4udGVtcC5wcm9wcyB9LCBbXCJkZWZhdWx0VmFsdWVcIiwgXCJ2YWx1ZVwiXSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2UgaWYgKCF0ZW1wLmVsbGlwc2lzKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57dGhpcy5nZXRUZXh0KHRlbXBQcm9wLCB0ZXh0KX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7IC4uLnRlbXAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBpZiAoZWRpdG9yRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJzZWFyY2hcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEV5ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RWRpdE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJ0b29sYmFyXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBpY29uPXs8RGVsZXRlT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIGRhbmdlclxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDliKDpmaRcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGVsZXRlUG9zaXRpb24gPT0gXCJyb3dcIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25EZWxldGUocmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PERlbGV0ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkge1xyXG4gICAgICAgICAgaXRlbS5tYXAoKGNoaWxkKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjaGlsZD8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgOiAyMDAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCLluo/lj7dcIixcclxuICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dCwgcmVhY29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e2luZGV4ICsgMX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4udGFibGVDb2x1bW4sXHJcbiAgICAgIF07XHJcbiAgICBsZXQgc2VhcmNoRmxhZyA9IHNob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sRmxhZyA9IHNob3dUb29sQnV0dG9uICYmIHNlbGZCdXR0b25zLmxlbmd0aCA+IDA7XHJcbiAgICBpZiAodGFibGVQcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzY3JvbGwgPSB0YWJsZVBhcmFtcy5zY3JvbGw7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIC4uLnNjcm9sbCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibm8tbGVmdC1yaWdodFwiKV06ICFzaG93TGVmdCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgIDxIZWFkZXJTZWFyY2hcclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zPXtzZWFyY2hGb3Jtc31cclxuICAgICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbj17dG9vbEJ1dHRvblBvc2l0aW9ufVxyXG4gICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIG9uUmVzZXQ9e3RoaXMucHJvcHMub25SZXNldH1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3JtUHJvcHM9e3RoaXMucHJvcHMuc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiZcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID09IFwiYnV0dG9tXCIgJiZcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zLCBzZWFyY2hGb3Jtcy5sZW5ndGggPT0gMCl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hGbGFnICYmICF0b29sRmxhZykgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyID09IGZhbHNlIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlUHJvcHMudG9vbGJhcj8uc2hvdyA9PSBmYWxzZSB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVByb3BzLnRvb2xiYXI/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVRvb2w/LnRvb2xzPy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVRvb2w/LnNob3cgPT0gZmFsc2UsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBzaG93Um93U2VsZWN0aW9uPXtzaG93Um93U2VsZWN0aW9ufVxyXG4gICAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgICAgb25IaWRlRm9ybT17dGhpcy5wcm9wcy5vbkhpZGVGb3JtfVxyXG4gICAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgXCJhdXRvXCJ9XHJcbiAgICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgICAgICBvdGhlclByb3BzPXt7IC4uLmZvcm1Qcm9wcyB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
|