@agilemotion/oui-react-js 2.0.25 → 2.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/RestService.js +22 -13
- package/dist/RestUtils.js +7 -4
- package/dist/components/AlertBar.js +2 -2
- package/dist/components/Button.js +59 -7
- package/dist/components/DataGrid.js +42 -16
- package/dist/components/DocumentTemplateDesignerComponent.js +2 -2
- package/dist/components/FileThumb.js +69 -7
- package/dist/components/WordDocumentViewer.js +2 -2
- package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +6 -2
- package/dist/components/form/BaseField.js +4 -2
- package/dist/components/form/Checkbox.js +3 -2
- package/dist/components/form/FieldSet.js +2 -2
- package/dist/components/form/Form.css +1 -1
- package/dist/components/form/Form.js +40 -38
- package/dist/components/form/GridField.js +6 -5
- package/dist/components/form/RadioGroup.js +5 -5
- package/dist/components/form/UploadField.js +68 -4
- package/dist/components/layout/Layout.js +9 -1
- package/dist/components/layout/View.css +2 -0
- package/dist/components/media/ChatViewer.js +103 -0
- package/dist/components/media/TrainingRoom.js +5 -5
- package/dist/components/media/VCRoomParticipant.js +7 -3
- package/dist/components/media/VCRoomWorkspace.js +19 -4
- package/dist/components/media/chat/ChatRoom.js +21 -10
- package/dist/components/media/chat/PollContainer.js +85 -18
- package/dist/js/ProcurementMeetings.js +11 -4
- package/dist/view/PortalDashboard.js +6 -5
- package/dist/view/security/ForgotPassword.js +4 -1
- package/dist/view/security/ForgotPasswordBasic.js +4 -1
- package/dist/view/security/RegisterInteractionPortal.js +5 -1
- package/dist/view/security/ResetPassword.js +4 -1
- package/dist/view/security/ResetPasswordBasic.js +4 -1
- package/dist/view/security/Security.js +16 -3
- package/package.json +1 -1
|
@@ -73,7 +73,10 @@ const GridFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
73
73
|
}, [latestAddedRow]);
|
|
74
74
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
75
75
|
className: "MuiFormControl-root MuiTextField-root MuiFormControl-marginDense",
|
|
76
|
-
style: _Utils.default.mergeStyles({
|
|
76
|
+
style: _Utils.default.mergeStyles({
|
|
77
|
+
marginTop: '8px',
|
|
78
|
+
marginBottom: '8px'
|
|
79
|
+
}, props.config)
|
|
77
80
|
}, label && label.trim().length > 0 && /*#__PURE__*/_react.default.createElement(_InputLabel.default, {
|
|
78
81
|
required: base.required,
|
|
79
82
|
error: base.hasError
|
|
@@ -82,9 +85,7 @@ const GridFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
82
85
|
border: "1px solid ".concat(base.hasError ? '#f44336' : '#e1e1e1'),
|
|
83
86
|
width: '100%',
|
|
84
87
|
height: '100%',
|
|
85
|
-
borderRadius: '4px'
|
|
86
|
-
marginTop: '8px',
|
|
87
|
-
marginBottom: '8px'
|
|
88
|
+
borderRadius: '4px'
|
|
88
89
|
}
|
|
89
90
|
}, hasButtons ? /*#__PURE__*/_react.default.createElement("div", {
|
|
90
91
|
style: {
|
|
@@ -215,4 +216,4 @@ const GridField = /*#__PURE__*/_react.default.memo(props => {
|
|
|
215
216
|
}, props)));
|
|
216
217
|
});
|
|
217
218
|
var _default = exports.default = GridField;
|
|
218
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfRGF0YUdyaWQiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX0lucHV0TGFiZWwiLCJfVG9vbGJhciIsIl9EeW5hbWljSlMiLCJfRm9ybUhlbHBlclRleHQiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJjcmVhdGVSZWNvcmQiLCJyb3ciLCJncmlkQ29uZmlnIiwiaW5ib3VuZCIsInJlY29yZCIsImNvbHVtbiIsImNvbHVtbnMiLCJwcm9wZXJ0eSIsIlV0aWxzIiwiaXNOdWxsIiwiZGF0YUJpbmRpbmciLCJpZCIsInZhbCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsInVwZGF0ZU5lc3RlZFByb3BlcnR5IiwiR3JpZEZpZWxkV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm5ld1Jvd0lkQ291bnRlciIsInVzZVJlZiIsInNlbGVjdGlvbiIsInNldFNlbGVjdGlvbiIsInVzZVN0YXRlIiwibGFiZWwiLCJzZXRMYWJlbCIsImxvYWRlZCIsInJvd01vZGVsIiwic2V0Um93TW9kZWwiLCJsYXRlc3RBZGRlZFJvdyIsInNldExhdGVzdEFkZGVkUm93IiwiaGFzRXJyb3JzIiwiY3J1ZFRvb2xzdHJpcFdpZHRoIiwic2V0Q3J1ZFRvb2xzdHJpcFdpZHRoIiwiZWRpdGluZyIsImhhc0J1dHRvbnMiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiYWRkRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwicmVtb3ZlRGlzYWJsZWQiLCJ1c2VFZmZlY3QiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwibnVtQ3J1ZEJ1dHRvbnMiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjdXJyZW50IiwidmFsdWUiLCJncmlkSGFuZGxlIiwiYXBpIiwic2VsZWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJ0cmltIiwicmVxdWlyZWQiLCJlcnJvciIsImhhc0Vycm9yIiwiYm9yZGVyIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwib25DbGljayIsImFkZFJvd3MiLCJkaXNhYmxlZCIsImRlbGV0ZVNlbGVjdGVkUm93cyIsInRvb2xzdHJpcCIsImhhbmRsZSIsInRvb2xzdHJpcEhhbmRsZSIsIkRhdGFHcmlkIiwiZ3JpZCIsInJvd3MiLCJmb3JtVmFsdWVzIiwidmFsdWVzIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwibmV3Um93cyIsImhhc1Jvd0Vycm9ycyIsIm1hcCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwicGFnaW5hdGlvbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwiZmlsdGVyV3JhcHBlckNsYXNzIiwiaGFzQm9yZGVyIiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiY29sb3IiLCJHcmlkRmllbGQiLCJ0b29sSGFuZGxlIiwiQmFzZUZpZWxkIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInB1c2giLCJtb3JlQ2hpbGRyZW4iLCJqIiwidmFsdWVQYXJzZXIiLCJvYmplY3RBcnJheSIsIm51bGxJZFJlY29yZHMiLCJvYmplY3RBcnJheUVsZW1lbnQiLCJjbGVhckhhbmRsZXIiLCJjbGVhciIsInJvd3NIYW5kbGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vR3JpZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtEYXRhR3JpZH0gZnJvbSBcIi4uL0RhdGFHcmlkXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRMYWJlbCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IEZvcm1IZWxwZXJUZXh0IGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKHJvdywgZ3JpZENvbmZpZywgaW5ib3VuZCkge1xuICAgIGxldCByZWNvcmQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncmlkQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgbGV0IHByb3BlcnR5ID0gIVV0aWxzLmlzTnVsbChjb2x1bW4uZGF0YUJpbmRpbmcpID8gY29sdW1uLmRhdGFCaW5kaW5nIDogY29sdW1uLmlkO1xuICAgICAgICBsZXQgdmFsID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHJvdywgcHJvcGVydHkpO1xuICAgICAgICBVdGlscy51cGRhdGVOZXN0ZWRQcm9wZXJ0eShyZWNvcmQsIHByb3BlcnR5LCB2YWw/P251bGwpO1xuICAgIH1cblxuICAgIC8vcmVjb3JkLmlkID0gcm93LmlkID49IDAgPyByb3cuaWQgOiBudWxsO1xuICAgIHJlY29yZC5pZCA9IHJvdy5pZDtcbiAgICByZXR1cm4gcmVjb3JkO1xufVxuXG5jb25zdCBHcmlkRmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBuZXdSb3dJZENvdW50ZXIgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IFtzZWxlY3Rpb24sIHNldFNlbGVjdGlvbl0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW3Jvd01vZGVsLCBzZXRSb3dNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhdGVzdEFkZGVkUm93LCBzZXRMYXRlc3RBZGRlZFJvd10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgaGFzRXJyb3JzID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbY3J1ZFRvb2xzdHJpcFdpZHRoLCBzZXRDcnVkVG9vbHN0cmlwV2lkdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdGluZyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2hhc0J1dHRvbnNdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fFxuICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpIHx8XG4gICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlIHx8XG4gICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCkgfHxcbiAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IG51bUNydWRCdXR0b25zID0gMDtcbiAgICAgICAgbGV0IGFkZERpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIGxldCByZW1vdmVEaXNhYmxlZCA9IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghYWRkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIG51bUNydWRCdXR0b25zKys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW92ZURpc2FibGVkKSB7XG4gICAgICAgICAgICBudW1DcnVkQnV0dG9ucysrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q3J1ZFRvb2xzdHJpcFdpZHRoKChudW1DcnVkQnV0dG9ucyAqIDQwKSArICdweCcpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArICdsYWJlbCcsIFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsICcnKSwgcHJvcHMuY29uZmlnLnZpZXdJZCwgdHJ1ZSwgbnVsbCwgbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgOiBwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXTtcbiAgICAgICAgICAgIHNldExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW10pO1xuXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdGluZy5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0aW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJvd01vZGVsKGJhc2UudmFsdWUpO1xuXG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLnNlbGVjdChbbGF0ZXN0QWRkZWRSb3cuaWRdKTtcbiAgICB9LCBbbGF0ZXN0QWRkZWRSb3ddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIk11aUZvcm1Db250cm9sLXJvb3QgTXVpVGV4dEZpZWxkLXJvb3QgTXVpRm9ybUNvbnRyb2wtbWFyZ2luRGVuc2VcIn1cbiAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsICYmIGxhYmVsLnRyaW0oKS5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgPElucHV0TGFiZWwgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9IGVycm9yPXtiYXNlLmhhc0Vycm9yfT57bGFiZWx9PC9JbnB1dExhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2Jhc2UuaGFzRXJyb3IgPyAnI2Y0NDMzNicgOiAnI2UxZTFlMSd9YCxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7aGFzQnV0dG9ucyA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbC0qLSonfSBzdHlsZT17e3dpZHRoOiBjcnVkVG9vbHN0cmlwV2lkdGh9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5hZGREaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmFkZERpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpID09PSBmYWxzZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3cgPSB7aWQ6IG5ld1Jvd0lkQ291bnRlci5jdXJyZW50LS19O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSb3dNb2RlbChwcm9wcy5ncmlkSGFuZGxlLmFwaS5hZGRSb3dzKFtyb3ddKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldExhdGVzdEFkZGVkUm93KHJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0FERCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgfHwgVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnJlbW92ZURpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMucmVtb3ZlRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3Rpb24ubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZ3JpZEhhbmRsZS5hcGkuZGVsZXRlU2VsZWN0ZWRSb3dzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J1JFTU9WRSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnRvb2xzdHJpcCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtwcm9wcy5jb25maWcudG9vbHN0cmlwfSBoYW5kbGU9e3Byb3BzLnRvb2xzdHJpcEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPERhdGFHcmlkIGNvbmZpZz17cHJvcHMuY29uZmlnLmdyaWR9IGhhbmRsZT17cHJvcHMuZ3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZD17bG9hZGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93TW9kZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsobmV3Um93cywgaGFzUm93RXJyb3JzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuZXdSb3dzKSAmJiAhaGFzUm93RXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZy5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IG5ld1Jvd3MubWFwKHJvdyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVSZWNvcmQocm93LCBwcm9wcy5jb25maWcuZ3JpZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZT17KHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyV3JhcHBlckNsYXNzPXsndHJhbnNmZXJMaXN0RmlsdGVyV3JhcHBlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuZXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dCBzdHlsZT17e21hcmdpbjogXCI4cHhcIiwgY29sb3I6IFwicmdiKDI0NCwgNjcsIDU0KVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuY29uc3QgR3JpZEZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZ3JpZEhhbmRsZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Rvb2xIYW5kbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudG9vbHN0cmlwKSA/IHt9IDogbnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IGdldENoaWxkcmVuPXtcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZ3JpZEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgbGV0IG1vcmVDaGlsZHJlbiA9IGdyaWRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy50b29sc3RyaXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2godG9vbEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSB0b29sSGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vcmVDaGlsZHJlbi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgICAgICAgfX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdEFycmF5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IFtdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9iamVjdEFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bGxJZFJlY29yZHMgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9iamVjdEFycmF5RWxlbWVudCBvZiBvYmplY3RBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluYm91bmQgJiYgVXRpbHMuaXNOdWxsKG9iamVjdEFycmF5RWxlbWVudC5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSAtMSAqIG51bGxJZFJlY29yZHMrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmJvdW5kICYmIG9iamVjdEFycmF5RWxlbWVudC5pZCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWwucHVzaChvYmplY3RBcnJheUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSBjbGVhckhhbmRsZXI9eygpID0+IGdyaWRIYW5kbGUuYXBpLmNsZWFyKCl9IHJvd3NIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ3JpZEhhbmRsZS5hcGkucm93c1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPEdyaWRGaWVsZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZEhhbmRsZT17Z3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgdG9vbHN0cmlwSGFuZGxlPXt0b29sSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvR3JpZEZpZWxkV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkRmllbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFX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
|
|
219
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfRGF0YUdyaWQiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX0lucHV0TGFiZWwiLCJfVG9vbGJhciIsIl9EeW5hbWljSlMiLCJfRm9ybUhlbHBlclRleHQiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJjcmVhdGVSZWNvcmQiLCJyb3ciLCJncmlkQ29uZmlnIiwiaW5ib3VuZCIsInJlY29yZCIsImNvbHVtbiIsImNvbHVtbnMiLCJwcm9wZXJ0eSIsIlV0aWxzIiwiaXNOdWxsIiwiZGF0YUJpbmRpbmciLCJpZCIsInZhbCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsInVwZGF0ZU5lc3RlZFByb3BlcnR5IiwiR3JpZEZpZWxkV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm5ld1Jvd0lkQ291bnRlciIsInVzZVJlZiIsInNlbGVjdGlvbiIsInNldFNlbGVjdGlvbiIsInVzZVN0YXRlIiwibGFiZWwiLCJzZXRMYWJlbCIsImxvYWRlZCIsInJvd01vZGVsIiwic2V0Um93TW9kZWwiLCJsYXRlc3RBZGRlZFJvdyIsInNldExhdGVzdEFkZGVkUm93IiwiaGFzRXJyb3JzIiwiY3J1ZFRvb2xzdHJpcFdpZHRoIiwic2V0Q3J1ZFRvb2xzdHJpcFdpZHRoIiwiZWRpdGluZyIsImhhc0J1dHRvbnMiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiYWRkRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwicmVtb3ZlRGlzYWJsZWQiLCJ1c2VFZmZlY3QiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwibnVtQ3J1ZEJ1dHRvbnMiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjdXJyZW50IiwidmFsdWUiLCJncmlkSGFuZGxlIiwiYXBpIiwic2VsZWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJ0cmltIiwicmVxdWlyZWQiLCJlcnJvciIsImhhc0Vycm9yIiwiYm9yZGVyIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwib25DbGljayIsImFkZFJvd3MiLCJkaXNhYmxlZCIsImRlbGV0ZVNlbGVjdGVkUm93cyIsInRvb2xzdHJpcCIsImhhbmRsZSIsInRvb2xzdHJpcEhhbmRsZSIsIkRhdGFHcmlkIiwiZ3JpZCIsInJvd3MiLCJmb3JtVmFsdWVzIiwidmFsdWVzIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwibmV3Um93cyIsImhhc1Jvd0Vycm9ycyIsIm1hcCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwicGFnaW5hdGlvbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwiZmlsdGVyV3JhcHBlckNsYXNzIiwiaGFzQm9yZGVyIiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiY29sb3IiLCJHcmlkRmllbGQiLCJ0b29sSGFuZGxlIiwiQmFzZUZpZWxkIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInB1c2giLCJtb3JlQ2hpbGRyZW4iLCJqIiwidmFsdWVQYXJzZXIiLCJvYmplY3RBcnJheSIsIm51bGxJZFJlY29yZHMiLCJvYmplY3RBcnJheUVsZW1lbnQiLCJjbGVhckhhbmRsZXIiLCJjbGVhciIsInJvd3NIYW5kbGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vR3JpZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtEYXRhR3JpZH0gZnJvbSBcIi4uL0RhdGFHcmlkXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRMYWJlbCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IEZvcm1IZWxwZXJUZXh0IGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKHJvdywgZ3JpZENvbmZpZywgaW5ib3VuZCkge1xuICAgIGxldCByZWNvcmQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncmlkQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgbGV0IHByb3BlcnR5ID0gIVV0aWxzLmlzTnVsbChjb2x1bW4uZGF0YUJpbmRpbmcpID8gY29sdW1uLmRhdGFCaW5kaW5nIDogY29sdW1uLmlkO1xuICAgICAgICBsZXQgdmFsID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHJvdywgcHJvcGVydHkpO1xuICAgICAgICBVdGlscy51cGRhdGVOZXN0ZWRQcm9wZXJ0eShyZWNvcmQsIHByb3BlcnR5LCB2YWw/P251bGwpO1xuICAgIH1cblxuICAgIC8vcmVjb3JkLmlkID0gcm93LmlkID49IDAgPyByb3cuaWQgOiBudWxsO1xuICAgIHJlY29yZC5pZCA9IHJvdy5pZDtcbiAgICByZXR1cm4gcmVjb3JkO1xufVxuXG5jb25zdCBHcmlkRmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBuZXdSb3dJZENvdW50ZXIgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IFtzZWxlY3Rpb24sIHNldFNlbGVjdGlvbl0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW3Jvd01vZGVsLCBzZXRSb3dNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhdGVzdEFkZGVkUm93LCBzZXRMYXRlc3RBZGRlZFJvd10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgaGFzRXJyb3JzID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbY3J1ZFRvb2xzdHJpcFdpZHRoLCBzZXRDcnVkVG9vbHN0cmlwV2lkdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdGluZyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2hhc0J1dHRvbnNdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fFxuICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpIHx8XG4gICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlIHx8XG4gICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCkgfHxcbiAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IG51bUNydWRCdXR0b25zID0gMDtcbiAgICAgICAgbGV0IGFkZERpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIGxldCByZW1vdmVEaXNhYmxlZCA9IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghYWRkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIG51bUNydWRCdXR0b25zKys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW92ZURpc2FibGVkKSB7XG4gICAgICAgICAgICBudW1DcnVkQnV0dG9ucysrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q3J1ZFRvb2xzdHJpcFdpZHRoKChudW1DcnVkQnV0dG9ucyAqIDQwKSArICdweCcpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArICdsYWJlbCcsIFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsICcnKSwgcHJvcHMuY29uZmlnLnZpZXdJZCwgdHJ1ZSwgbnVsbCwgbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgOiBwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXTtcbiAgICAgICAgICAgIHNldExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW10pO1xuXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdGluZy5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0aW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJvd01vZGVsKGJhc2UudmFsdWUpO1xuXG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLnNlbGVjdChbbGF0ZXN0QWRkZWRSb3cuaWRdKTtcbiAgICB9LCBbbGF0ZXN0QWRkZWRSb3ddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIk11aUZvcm1Db250cm9sLXJvb3QgTXVpVGV4dEZpZWxkLXJvb3QgTXVpRm9ybUNvbnRyb2wtbWFyZ2luRGVuc2VcIn1cbiAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICc4cHgnLFxuICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWwgJiYgbGFiZWwudHJpbSgpLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbCByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH0gZXJyb3I9e2Jhc2UuaGFzRXJyb3J9PntsYWJlbH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7YmFzZS5oYXNFcnJvciA/ICcjZjQ0MzM2JyA6ICcjZTFlMWUxJ31gLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAge2hhc0J1dHRvbnMgP1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogJzMycHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1RvcDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3t3aWR0aDogY3J1ZFRvb2xzdHJpcFdpZHRofX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fCBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5hZGREaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbC0qLSonfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcm93ID0ge2lkOiBuZXdSb3dJZENvdW50ZXIuY3VycmVudC0tfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Um93TW9kZWwocHJvcHMuZ3JpZEhhbmRsZS5hcGkuYWRkUm93cyhbcm93XSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMYXRlc3RBZGRlZFJvdyhyb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydBREQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpID09PSBmYWxzZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VsZWN0aW9uLmxlbmd0aCA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLmRlbGV0ZVNlbGVjdGVkUm93cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydSRU1PVkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy50b29sc3RyaXApID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sYmFyIGNvbmZpZz17cHJvcHMuY29uZmlnLnRvb2xzdHJpcH0gaGFuZGxlPXtwcm9wcy50b29sc3RyaXBIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxEYXRhR3JpZCBjb25maWc9e3Byb3BzLmNvbmZpZy5ncmlkfSBoYW5kbGU9e3Byb3BzLmdyaWRIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ9e2xvYWRlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd01vZGVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtVmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KG5ld1Jvd3MsIGhhc1Jvd0Vycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobmV3Um93cykgJiYgIWhhc1Jvd0Vycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmcuY3VycmVudCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBuZXdSb3dzLm1hcChyb3cgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUmVjb3JkKHJvdywgcHJvcHMuY29uZmlnLmdyaWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U9eyhzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGlvbihzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcldyYXBwZXJDbGFzcz17J3RyYW5zZmVyTGlzdEZpbHRlcldyYXBwZXInfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiYXNlLmVycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybUhlbHBlclRleHQgc3R5bGU9e3ttYXJnaW46IFwiOHB4XCIsIGNvbG9yOiBcInJnYigyNDQsIDY3LCA1NClcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmNvbnN0IEdyaWRGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2dyaWRIYW5kbGVdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt0b29sSGFuZGxlXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnRvb2xzdHJpcCkgPyB7fSA6IG51bGwpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfSBnZXRDaGlsZHJlbj17XG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGdyaWRIYW5kbGUpO1xuICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSBncmlkSGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9yZUNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobW9yZUNoaWxkcmVuW2pdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudG9vbHN0cmlwKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRvb2xIYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9yZUNoaWxkcmVuID0gdG9vbEhhbmRsZS5hcGkuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobW9yZUNoaWxkcmVuW2pdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH19IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGxldCBvYmplY3RBcnJheSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBbXTtcblxuICAgICAgICAgICAgICAgIGlmIChvYmplY3RBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudWxsSWRSZWNvcmRzID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBvYmplY3RBcnJheUVsZW1lbnQgb2Ygb2JqZWN0QXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmJvdW5kICYmIFV0aWxzLmlzTnVsbChvYmplY3RBcnJheUVsZW1lbnQuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0QXJyYXlFbGVtZW50LmlkID0gLTEgKiBudWxsSWRSZWNvcmRzKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5ib3VuZCAmJiBvYmplY3RBcnJheUVsZW1lbnQuaWQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0QXJyYXlFbGVtZW50LmlkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsLnB1c2gob2JqZWN0QXJyYXlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gY2xlYXJIYW5kbGVyPXsoKSA9PiBncmlkSGFuZGxlLmFwaS5jbGVhcigpfSByb3dzSGFuZGxlcj17KCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdyaWRIYW5kbGUuYXBpLnJvd3NcbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxHcmlkRmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGdyaWRIYW5kbGU9e2dyaWRIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgIHRvb2xzdHJpcEhhbmRsZT17dG9vbEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0dyaWRGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxtQkFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBELFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEs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
|
|
@@ -21,10 +21,10 @@ const RadioGroupWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
21
21
|
const base = props.base;
|
|
22
22
|
// TODO : Support calling a rest end-point to get options
|
|
23
23
|
const options = _Utils.default.getComponentAttribute(props.config, 'options', []);
|
|
24
|
-
const [value, setValue] = _react.default.useState(base.value ?
|
|
25
|
-
const [label, setLabel] = _react.default.useState(base.value ?
|
|
24
|
+
const [value, setValue] = _react.default.useState(_Utils.default.isNull(base.value) ? props.defaultValue : base.value);
|
|
25
|
+
const [label, setLabel] = _react.default.useState(_Utils.default.isNull(base.value) ? props.defaultValue : base.value);
|
|
26
26
|
_react.default.useEffect(() => {
|
|
27
|
-
if (base.value) {
|
|
27
|
+
if (!_Utils.default.isNull(base.value)) {
|
|
28
28
|
setValue(base.value);
|
|
29
29
|
}
|
|
30
30
|
}, [base.value]);
|
|
@@ -66,7 +66,7 @@ const RadioGroupWrapper = /*#__PURE__*/_react.default.memo(props => {
|
|
|
66
66
|
value: option.value,
|
|
67
67
|
control: /*#__PURE__*/_react.default.createElement(_Radio.default, {
|
|
68
68
|
disabled: base.disabled,
|
|
69
|
-
checked: option.value === value
|
|
69
|
+
checked: !_Utils.default.isNull(value) && String(option.value) === String(value)
|
|
70
70
|
}),
|
|
71
71
|
label: label
|
|
72
72
|
});
|
|
@@ -93,4 +93,4 @@ const RadioGroup = /*#__PURE__*/_react.default.memo(props => {
|
|
|
93
93
|
}, props)));
|
|
94
94
|
});
|
|
95
95
|
var _default = exports.default = RadioGroup;
|
|
96
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SYWRpb0dyb3VwIiwiX1JhZGlvIiwiX0Zvcm1Db250cm9sTGFiZWwiLCJfRm9ybUxhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsIl9Gb3JtSGVscGVyVGV4dCIsIl9Gb3JtQ29udHJvbCIsIl9EeW5hbWljSlMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJSYWRpb0dyb3VwV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm9wdGlvbnMiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwic2V0TGFiZWwiLCJ1c2VFZmZlY3QiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInByb3AiLCJjcmVhdGVFbGVtZW50IiwiZXJyb3IiLCJoYXNFcnJvciIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJjb21wb25lbnQiLCJyZXF1aXJlZCIsInJvdyIsIm5hbWUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwib25DaGFuZ2UiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsInRhcmdldCIsIm1hcCIsIm9wdGlvbiIsImluZGV4IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNFeHByZXNzaW9uIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImlkIiwia2V5IiwiY29udHJvbCIsImRpc2FibGVkIiwiY2hlY2tlZCIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImNvbG9yIiwiUmFkaW9Hcm91cCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaXNOdWxsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vUmFkaW9Hcm91cC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSYWRpb0dyb3VwQ29tcG9uZW50IGZyb20gJ0BtdWkvbWF0ZXJpYWwvUmFkaW9Hcm91cCc7XG5pbXBvcnQgUmFkaW8gZnJvbSAnQG11aS9tYXRlcmlhbC9SYWRpbyc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IEZvcm1MYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1MYWJlbCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSAnLi9CYXNlRmllbGQnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBGb3JtSGVscGVyVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IEZvcm1Db250cm9sIGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBSYWRpb0dyb3VwV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgLy8gVE9ETyA6IFN1cHBvcnQgY2FsbGluZyBhIHJlc3QgZW5kLXBvaW50IHRvIGdldCBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9ucyA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdvcHRpb25zJywgW10pO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUgOiBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuICAgIGNvbnN0IFtsYWJlbCwgc2V0TGFiZWxdID0gUmVhY3QudXNlU3RhdGUoYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUgOiBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGJhc2UudmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtiYXNlLnZhbHVlXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRyeXtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldExhYmVsKFV0aWxzLnByb3AoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHBhcnNlZENvbmZpZywgJ2xhYmVsJywgbnVsbCkpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBzZXRMYWJlbChVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbGFiZWwnLCAnJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Rm9ybUNvbnRyb2wgZXJyb3I9e2Jhc2UuaGFzRXJyb3J9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICBtYXJnaW5Ub3A6ICc4cHgnXG4gICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsICE9PSBudWxsID9cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1MYWJlbCBjb21wb25lbnQ9XCJsZWdlbmRcIj57YmFzZS5yZXF1aXJlZCA/IGxhYmVsICsgJyonIDogbGFiZWx9PC9Gb3JtTGFiZWw+IDpcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8UmFkaW9Hcm91cENvbXBvbmVudCByb3cgZGVmYXVsdFZhbHVlPXtwcm9wcy5kZWZhdWx0VmFsdWV9IGFyaWEtbGFiZWw9XCJcIiBuYW1lPVwicmFkaW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2Jhc2UuaGFzRXJyb3IgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNmNDQzMzYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCA0cHggNHB4IDhweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihvcHRpb24ubGFiZWwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChwcm9wcy5jb25maWcuaWQgKyAnbGFiZWwnLCBvcHRpb24ubGFiZWwsIHByb3BzLmNvbmZpZy52aWV3SWQsIHRydWUsIG51bGwsIG51bGwsIGZhbHNlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtQ29udHJvbExhYmVsIGtleT17aW5kZXh9IHZhbHVlPXtvcHRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbD17PFJhZGlvIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtvcHRpb24udmFsdWUgPT09IHZhbHVlfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH0vPjtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L1JhZGlvR3JvdXBDb21wb25lbnQ+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmFzZS5lcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgICA8Rm9ybUhlbHBlclRleHQgc3R5bGU9e3ttYXJnaW46IFwiNHB4IDBcIiwgY29sb3I6IFwicmdiKDI0NCwgNjcsIDU0KVwifX0+XG4gICAgICAgICAgICAgICAgICAgIHtiYXNlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICk7XG59KTtcblxuY29uc3QgUmFkaW9Hcm91cCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2RlZmF1bHRWYWx1ZScsIG51bGwpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfVxuICAgICAgICAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L1JhZGlvR3JvdXBXcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGlvR3JvdXA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxZQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxtQkFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBELFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEsQ0FBQVIsQ0FBQSxZQUFBVyxDQUFBLElBQUFELENBQUEsT0FBQUUsY0FBQSxDQUFBQyxJQUFBLENBQUFILENBQUEsRUFBQUMsQ0FBQSxNQUFBSixDQUFBLENBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFB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
|
|
96
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SYWRpb0dyb3VwIiwiX1JhZGlvIiwiX0Zvcm1Db250cm9sTGFiZWwiLCJfRm9ybUxhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsIl9Gb3JtSGVscGVyVGV4dCIsIl9Gb3JtQ29udHJvbCIsIl9EeW5hbWljSlMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJSYWRpb0dyb3VwV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm9wdGlvbnMiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsImlzTnVsbCIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwic2V0TGFiZWwiLCJ1c2VFZmZlY3QiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInByb3AiLCJjcmVhdGVFbGVtZW50IiwiZXJyb3IiLCJoYXNFcnJvciIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJjb21wb25lbnQiLCJyZXF1aXJlZCIsInJvdyIsIm5hbWUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwib25DaGFuZ2UiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsInRhcmdldCIsIm1hcCIsIm9wdGlvbiIsImluZGV4IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNFeHByZXNzaW9uIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImlkIiwia2V5IiwiY29udHJvbCIsImRpc2FibGVkIiwiY2hlY2tlZCIsIlN0cmluZyIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImNvbG9yIiwiUmFkaW9Hcm91cCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vUmFkaW9Hcm91cC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSYWRpb0dyb3VwQ29tcG9uZW50IGZyb20gJ0BtdWkvbWF0ZXJpYWwvUmFkaW9Hcm91cCc7XG5pbXBvcnQgUmFkaW8gZnJvbSAnQG11aS9tYXRlcmlhbC9SYWRpbyc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IEZvcm1MYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1MYWJlbCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSAnLi9CYXNlRmllbGQnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBGb3JtSGVscGVyVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IEZvcm1Db250cm9sIGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBSYWRpb0dyb3VwV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgLy8gVE9ETyA6IFN1cHBvcnQgY2FsbGluZyBhIHJlc3QgZW5kLXBvaW50IHRvIGdldCBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9ucyA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdvcHRpb25zJywgW10pO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID8gcHJvcHMuZGVmYXVsdFZhbHVlIDogYmFzZS52YWx1ZSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBwcm9wcy5kZWZhdWx0VmFsdWUgOiBiYXNlLnZhbHVlKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShiYXNlLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbYmFzZS52YWx1ZV0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0cnl7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBzZXRMYWJlbChVdGlscy5wcm9wKFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsIG51bGwpKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm1Db250cm9sIGVycm9yPXtiYXNlLmhhc0Vycm9yfSBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgbWFyZ2luVG9wOiAnOHB4J1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbCAhPT0gbnVsbCA/XG4gICAgICAgICAgICAgICAgICAgIDxGb3JtTGFiZWwgY29tcG9uZW50PVwibGVnZW5kXCI+e2Jhc2UucmVxdWlyZWQgPyBsYWJlbCArICcqJyA6IGxhYmVsfTwvRm9ybUxhYmVsPiA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPFJhZGlvR3JvdXBDb21wb25lbnQgcm93IGRlZmF1bHRWYWx1ZT17cHJvcHMuZGVmYXVsdFZhbHVlfSBhcmlhLWxhYmVsPVwiXCIgbmFtZT1cInJhZGlvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtiYXNlLmhhc0Vycm9yID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZjQ0MzM2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggNHB4IDRweCA4cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYWJlbCA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24ob3B0aW9uLmxhYmVsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQocHJvcHMuY29uZmlnLmlkICsgJ2xhYmVsJywgb3B0aW9uLmxhYmVsLCBwcm9wcy5jb25maWcudmlld0lkLCB0cnVlLCBudWxsLCBudWxsLCBmYWxzZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8Rm9ybUNvbnRyb2xMYWJlbCBrZXk9e2luZGV4fSB2YWx1ZT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w9ezxSYWRpbyBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17IVV0aWxzLmlzTnVsbCh2YWx1ZSkgJiYgU3RyaW5nKG9wdGlvbi52YWx1ZSkgPT09IFN0cmluZyh2YWx1ZSl9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfS8+O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvUmFkaW9Hcm91cENvbXBvbmVudD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiYXNlLmVycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dCBzdHlsZT17e21hcmdpbjogXCI0cHggMFwiLCBjb2xvcjogXCJyZ2IoMjQ0LCA2NywgNTQpXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAge2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBSYWRpb0dyb3VwID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnZGVmYXVsdFZhbHVlJywgbnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgdmFsdWVQYXJzZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvUmFkaW9Hcm91cFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaW9Hcm91cDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFlBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEs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
|
|
@@ -64,6 +64,7 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
|
|
|
64
64
|
const width = _Utils.default.getComponentAttribute(props.config, 'width', '200px');
|
|
65
65
|
const height = _Utils.default.getComponentAttribute(props.config, 'height', '200px');
|
|
66
66
|
const [errorMessage, setErrorMessage] = _react.default.useState("");
|
|
67
|
+
const [imageObjectUrl, setImageObjectUrl] = _react.default.useState(null);
|
|
67
68
|
const cacheId = _react.default.useRef(!_Utils.default.isNull(props.base.value) ? props.base.value.documentRepositoryCacheId : null);
|
|
68
69
|
const base = props.base;
|
|
69
70
|
_react.default.useEffect(() => {
|
|
@@ -155,6 +156,66 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
|
|
|
155
156
|
}));
|
|
156
157
|
});
|
|
157
158
|
};
|
|
159
|
+
const buildDownloadUrl = documentRepositoryId => location + _ApplicationManager.default.getContextRoot() + '/docs/api/v1/manager/download/' + documentRepositoryId + '?access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken");
|
|
160
|
+
|
|
161
|
+
// Fetch a stored document as an object URL. The docs service resolves the S3 bucket from the
|
|
162
|
+
// tenant (profile) header; a plain browser GET (img/anchor) can't send it, so the tenant falls
|
|
163
|
+
// back to the raw token profile and the bucket name is malformed. getActiveTenant() can be null
|
|
164
|
+
// (e.g. no active tenant selected) — in that case we omit the header and let the service fall back.
|
|
165
|
+
const fetchDocumentObjectUrl = documentRepositoryId => {
|
|
166
|
+
const headers = {};
|
|
167
|
+
const tenant = _ApplicationManager.default.getActiveTenant();
|
|
168
|
+
if (!_Utils.default.isNull(tenant)) {
|
|
169
|
+
headers['tenant'] = tenant;
|
|
170
|
+
}
|
|
171
|
+
return fetch(encodeURI(buildDownloadUrl(documentRepositoryId)), {
|
|
172
|
+
method: 'GET',
|
|
173
|
+
headers
|
|
174
|
+
}).then(status).then(response => response.blob()).then(blob => URL.createObjectURL(blob));
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
// Open a stored document in a new tab. The tab is opened synchronously (before the async fetch)
|
|
178
|
+
// so it isn't blocked as a pop-up; its location is set once the tenant-scoped blob is ready.
|
|
179
|
+
const openDocument = documentRepositoryId => {
|
|
180
|
+
const win = window.open('', '_blank');
|
|
181
|
+
fetchDocumentObjectUrl(documentRepositoryId).then(objectUrl => {
|
|
182
|
+
if (win) {
|
|
183
|
+
win.location = objectUrl;
|
|
184
|
+
}
|
|
185
|
+
}).catch(e => {
|
|
186
|
+
if (win) {
|
|
187
|
+
win.close();
|
|
188
|
+
}
|
|
189
|
+
if (e && e.code === 401) {
|
|
190
|
+
_ApplicationManager.default.clear();
|
|
191
|
+
_ApplicationManager.default.getApplicationHistory().push('/login');
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// IMAGE-style preview: fetch the stored image with the tenant header and hold it as an object URL.
|
|
197
|
+
_react.default.useEffect(() => {
|
|
198
|
+
if (props.style !== 'IMAGE' || !_Utils.default.isNull(viewerFile) || _Utils.default.isNull(base.value) || _Utils.default.isNull(base.value.documentRepositoryId)) {
|
|
199
|
+
setImageObjectUrl(null);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
let active = true;
|
|
203
|
+
let created = null;
|
|
204
|
+
fetchDocumentObjectUrl(base.value.documentRepositoryId).then(objectUrl => {
|
|
205
|
+
if (active) {
|
|
206
|
+
created = objectUrl;
|
|
207
|
+
setImageObjectUrl(objectUrl);
|
|
208
|
+
} else {
|
|
209
|
+
URL.revokeObjectURL(objectUrl);
|
|
210
|
+
}
|
|
211
|
+
}).catch(() => {});
|
|
212
|
+
return () => {
|
|
213
|
+
active = false;
|
|
214
|
+
if (created) {
|
|
215
|
+
URL.revokeObjectURL(created);
|
|
216
|
+
}
|
|
217
|
+
};
|
|
218
|
+
}, [props.style, viewerFile, base.value ? base.value.documentRepositoryId : null]);
|
|
158
219
|
const handleChange = () => event => {
|
|
159
220
|
let files = event.target.files;
|
|
160
221
|
var allFiles = [];
|
|
@@ -242,7 +303,7 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
|
|
|
242
303
|
backgroundColor: 'transparent',
|
|
243
304
|
border: base.hasError ? "1px solid #f44336" : null,
|
|
244
305
|
color: base.hasError ? "#f44336" : null,
|
|
245
|
-
backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(
|
|
306
|
+
backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(imageObjectUrl) ? "url(".concat(imageObjectUrl, ")") : "url(".concat(_noimage.default, ")")
|
|
246
307
|
}
|
|
247
308
|
})), base.hasError ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
248
309
|
style: {
|
|
@@ -269,8 +330,11 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
|
|
|
269
330
|
padding: "0 8px"
|
|
270
331
|
}
|
|
271
332
|
}, base.errorMessage)) : null), /*#__PURE__*/_react.default.createElement("label", null, !_Utils.default.isNull(base.value) ? _Utils.default.isNull(base.value.id) ? base.value.name : /*#__PURE__*/_react.default.createElement("a", {
|
|
272
|
-
href:
|
|
273
|
-
|
|
333
|
+
href: '#',
|
|
334
|
+
onClick: e => {
|
|
335
|
+
e.preventDefault();
|
|
336
|
+
openDocument(base.value.documentRepositoryId);
|
|
337
|
+
}
|
|
274
338
|
}, base.value.name) : null), !base.disabled && nullable && base.value ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
|
|
275
339
|
"aria-controls": "menu-list-grow",
|
|
276
340
|
"aria-haspopup": "true",
|
|
@@ -310,4 +374,4 @@ const UploadField = exports.UploadField = /*#__PURE__*/_react.default.memo(props
|
|
|
310
374
|
}, props)));
|
|
311
375
|
});
|
|
312
376
|
var _default = exports.default = UploadField;
|
|
313
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VTdHlsZXMiLCJtYWtlU3R5bGVzIiwidGhlbWUiLCJidXR0b24iLCJtYXJnaW4iLCJzcGFjaW5nIiwiaW5wdXQiLCJkaXNwbGF5IiwiZXJyb3JNZXNzYWdlRGlzcGxheSIsImNvbG9yIiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29kZSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0IiwianNvbiIsInRleHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJEb2N1bWVudFVwbG9hZCIsImV4cG9ydHMiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiY2FjaGVJZCIsInVzZVJlZiIsImJhc2UiLCJkb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImhhbmRsZVZpZXdlckxvYWQiLCJudW1QYWdlcyIsInVwbG9hZCIsIm1ldGFkYXRhIiwiZmlsZSIsInJlYWRlciIsInVwbG9hZFVybCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiZGF0YSIsIkZvcm1EYXRhIiwiY29ycmVsYXRpb25JZCIsInZpZXdJZCIsImlkIiwicm93SWQiLCJhcHBlbmQiLCJKU09OIiwic3RyaW5naWZ5IiwiZmV0Y2hDb25maWciLCJtZXRob2QiLCJoZWFkZXJzIiwiZ2V0QWN0aXZlVGVuYW50IiwiYm9keSIsInVybCIsInRyYWNrUHJvbWlzZSIsImZldGNoIiwiZW5jb2RlVVJJIiwidGhlbiIsImRvY3VtZW50UmVwb3NpdG9yeUlkIiwiaGFuZGxlVmFsdWVDaGFuZ2UiLCJldmVudCIsIkV2ZW50IiwiaGFuZGxlIiwicmVzdWx0IiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiRE9DVU1FTlRfQ0FDSEVEIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsIm1lc3NhZ2VUeXBlIiwiTUVTU0FHRV9BUlJJVkVEIiwicGF5bG9hZCIsInJlbW92ZSIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImFsbEZpbGVzIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJmaWxlSW5mbyIsIm5hbWUiLCJ0eXBlIiwic2l6ZSIsImJhc2U2NCIsIm9uVXBsb2FkSGFuZGxlciIsIm9ubG9hZGVuZCIsImZvcm0iLCJmaWxlTWV0YURhdGEiLCJkb21haW4iLCJjb250ZW50IiwiY3JlYXRlRWxlbWVudCIsImFjY2VwdCIsInN0eWxlIiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImNvbmNhdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJ2YXJpYW50IiwiY29tcG9uZW50IiwiYmFja2dyb3VuZFJlcGVhdCIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYmFja2dyb3VuZEltYWdlIiwiZGVmYXVsdEltYWdlIiwicGFkZGluZyIsInN0YXJ0SWNvbiIsImxhYmVsIiwiaHJlZiIsIm9uQ2xpY2siLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2hvd1ZpZXdlciIsIm9uRG9jdW1lbnRMb2FkU3VjY2VzcyIsIlVwbG9hZEZpZWxkIiwic2V0RmlsZSIsImNsZWFyVHJpZ2dlciIsIkJhc2VGaWVsZCIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL1VwbG9hZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBEb2N1bWVudFZpZXdlckNvbXBvbmVudCBmcm9tIFwiLi4vRG9jdW1lbnRWaWV3ZXJcIjtcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCB7dHJhY2tQcm9taXNlfSBmcm9tIFwicmVhY3QtcHJvbWlzZS10cmFja2VyXCI7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi8uLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnRUeXBlJztcbmltcG9ydCBkZWZhdWx0SW1hZ2UgZnJvbSAnLi9ub2ltYWdlLnBuZyc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICBidXR0b246IHtcbiAgICAgICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgZXJyb3JNZXNzYWdlRGlzcGxheToge1xuICAgICAgICBjb2xvcjogJ3JlZCdcbiAgICB9XG59KSk7XG5cbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe2NvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRVcGxvYWQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt2aWV3ZXJGaWxlLCBzZXRWaWV3ZXJGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gcHJvcHMuaW5pdGlhbEZpbGUgOiBudWxsKTtcbiAgICBjb25zdCBbcGF5bG9hZFN0b3JhZ2VNb2RlLCBzZXRQYXlsb2FkU3RvcmFnZU1vZGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29uZmlnLnBheWxvYWRTdG9yYWdlTW9kZSB8fCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgW2ZpbGVzLCBzZXRGaWxlc10gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IFtwcm9wcy5pbml0aWFsRmlsZV0gOiBudWxsKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbbnVsbGFibGVdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWxpZGF0b3IpIHx8IHByb3BzLmNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUgPT09IHRydWUpO1xuICAgIGNvbnN0IFttdWx0aXBsZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5tdWx0aXBsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgW3Nob3csIHNldFNob3ddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTtcbiAgICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IHdpZHRoID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3dpZHRoJywgJzIwMHB4Jyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2hlaWdodCcsICcyMDBweCcpO1xuICAgIGNvbnN0IFtlcnJvck1lc3NhZ2UsIHNldEVycm9yTWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBjYWNoZUlkID0gUmVhY3QudXNlUmVmKCFVdGlscy5pc051bGwocHJvcHMuYmFzZS52YWx1ZSkgPyBwcm9wcy5iYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgOiBudWxsKTtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAvL3JlbW92ZSgpLmNhdGNoKChlKSA9PiB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0Vmlld2VyRmlsZShwcm9wcy5pbml0aWFsRmlsZSk7XG4gICAgfSwgW3Byb3BzLmluaXRpYWxGaWxlXSk7XG5cbiAgICBjb25zdCBoYW5kbGVWaWV3ZXJMb2FkID0gKG51bVBhZ2VzKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHJlYWRlcikgPT4ge1xuICAgICAgICBsZXQgdXBsb2FkVXJsID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3VwbG9hZFVybCcsIG51bGwpO1xuICAgICAgICBpZih1cGxvYWRVcmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgXCIvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvc2F2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBheWxvYWRTdG9yYWdlTW9kZSA9IHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGU7XG4gICAgICAgIGlmKHBheWxvYWRTdG9yYWdlTW9kZSA9PT0gJ3Bvc3QnKXtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIG1ldGFkYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy52aWV3SWQgKyBcIi5cIiArIHByb3BzLmNvbmZpZy5pZCArIChwcm9wcy5jb25maWcucm93SWQgPyBcIi5cIiArIHByb3BzLmNvbmZpZy5yb3dJZCA6IFwiXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJtZXRhZGF0YVwiLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ubWV0YWRhdGEsIHVybDogcmVhZGVyLnJlc3VsdH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuRE9DVU1FTlRfQ0FDSEVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQW4gZXJyb3IgaGFzIGFjY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEucGF5bG9hZCA9IHJlYWRlci5yZXN1bHQ7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkLmN1cnJlbnQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKCkgPT4gZXZlbnQgPT4ge1xuICAgICAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYWxsRmlsZXMucHVzaChmaWxlSW5mbyk7XG4gICAgICAgICAgICAgICAgaWYgKGFsbEZpbGVzLmxlbmd0aCA9PT0gZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpZXdlckZpbGUoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0RmlsZXMoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVNZXRhRGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEubmFtZSA9IGFsbEZpbGVzWzBdLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS50eXBlID0gYWxsRmlsZXNbMF0udHlwZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnNpemUgPSBhbGxGaWxlc1swXS5zaXplO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmKGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5pZCA9IGJhc2UudmFsdWUuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPSBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCdiYXNlNjQnID09PSBwYXlsb2FkU3RvcmFnZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5wYXlsb2FkID0gYWxsRmlsZXNbMF0uYmFzZTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShmaWxlTWV0YURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9tYWluID0gcHJvcHMudmlld0lkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5jb3JyZWxhdGlvbklkID0gZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmNvbnRlbnQgPSBhbGxGaWxlc1swXS5maWxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHJlYWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17cHJvcHMuc3R5bGUgPT09ICdJTUFHRScgPyBcImltYWdlL2pwZWcsaW1hZ2UvZ2lmLGltYWdlL3BuZyxpbWFnZS94LWVwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWNjZXB0IHx8IFwiYXBwbGljYXRpb24vcGRmXCIpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW5wdXR9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuc3R5bGUgPT09ICdJTUFHRScgP1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIGNvbXBvbmVudD1cInNwYW5cIiBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwodmlld2VyRmlsZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7dmlld2VyRmlsZS5iYXNlNjR9KWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL2Rvd25sb2FkLycgKyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc/YWNjZXNzX3Rva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIikgKyAnJmlkVG9rZW49JyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7ZGVmYXVsdEltYWdlfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCIwIDhweFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKjxCdXR0b24gdmFyaWFudD17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yID09PSAnc2Vjb25kYXJ5JyB8fCBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgPT09ICdwcmltYXJ5JyA/ICdjb250YWluZWQnIDogJ3RleHQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IpID9wcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBwcm9wcy5jb25maWcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj4qL31cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiMCA4cHhcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChiYXNlLnZhbHVlLmlkKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvZG93bmxvYWQvJyArIGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnP2FjY2Vzc190b2tlbj0nICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXsnX2JsYW5rJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFiYXNlLmRpc2FibGVkICYmIG51bGxhYmxlICYmIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YCkudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiBjYWNoZUlkLmN1cnJlbnQgPSBudWxsKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnREVMRVRFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3BzLnNob3dWaWV3ZXIgJiYgIW11bHRpcGxlIHx8IHNob3cgP1xuICAgICAgICAgICAgICAgICAgICA8RG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZmlsZT17dmlld2VyRmlsZX0gb25Eb2N1bWVudExvYWRTdWNjZXNzPXtoYW5kbGVWaWV3ZXJMb2FkfS8+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yTWVzc2FnZURpc3BsYXl9PntlcnJvck1lc3NhZ2V9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBsb2FkRmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWxlLCBzZXRGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNsZWFyVHJpZ2dlcj0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxEb2N1bWVudFVwbG9hZFxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsZT17ZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0RvY3VtZW50VXBsb2FkPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVwbG9hZEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxtQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxP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
|
|
377
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VTdHlsZXMiLCJtYWtlU3R5bGVzIiwidGhlbWUiLCJidXR0b24iLCJtYXJnaW4iLCJzcGFjaW5nIiwiaW5wdXQiLCJkaXNwbGF5IiwiZXJyb3JNZXNzYWdlRGlzcGxheSIsImNvbG9yIiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29kZSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0IiwianNvbiIsInRleHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJEb2N1bWVudFVwbG9hZCIsImV4cG9ydHMiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiaW1hZ2VPYmplY3RVcmwiLCJzZXRJbWFnZU9iamVjdFVybCIsImNhY2hlSWQiLCJ1c2VSZWYiLCJiYXNlIiwiZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJoYW5kbGVWaWV3ZXJMb2FkIiwibnVtUGFnZXMiLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJyZWFkZXIiLCJ1cGxvYWRVcmwiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsImFjY2Vzc1Rva2VuIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwiaWRUb2tlbiIsImRhdGEiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsInJvd0lkIiwiYXBwZW5kIiwiSlNPTiIsInN0cmluZ2lmeSIsImZldGNoQ29uZmlnIiwibWV0aG9kIiwiaGVhZGVycyIsImdldEFjdGl2ZVRlbmFudCIsImJvZHkiLCJ1cmwiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiZXZlbnQiLCJFdmVudCIsImhhbmRsZSIsInJlc3VsdCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIkRPQ1VNRU5UX0NBQ0hFRCIsImNhdGNoIiwiY2xlYXIiLCJnZXRBcHBsaWNhdGlvbkhpc3RvcnkiLCJtZXNzYWdlVHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInBheWxvYWQiLCJyZW1vdmUiLCJidWlsZERvd25sb2FkVXJsIiwiZmV0Y2hEb2N1bWVudE9iamVjdFVybCIsInRlbmFudCIsImJsb2IiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJvcGVuRG9jdW1lbnQiLCJ3aW4iLCJvcGVuIiwib2JqZWN0VXJsIiwiY2xvc2UiLCJzdHlsZSIsImFjdGl2ZSIsImNyZWF0ZWQiLCJyZXZva2VPYmplY3RVUkwiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJhbGxGaWxlcyIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwib25sb2FkIiwiZmlsZUluZm8iLCJuYW1lIiwidHlwZSIsInNpemUiLCJiYXNlNjQiLCJvblVwbG9hZEhhbmRsZXIiLCJvbmxvYWRlbmQiLCJmb3JtIiwiZmlsZU1ldGFEYXRhIiwiZG9tYWluIiwiY29udGVudCIsImNyZWF0ZUVsZW1lbnQiLCJhY2NlcHQiLCJhdHRyaWJ1dGVzIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwiZGlzYWJsZWQiLCJyZXF1aXJlZCIsIm9uQ2hhbmdlIiwiaHRtbEZvciIsInZhcmlhbnQiLCJjb21wb25lbnQiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJib3JkZXIiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJkZWZhdWx0SW1hZ2UiLCJwYWRkaW5nIiwic3RhcnRJY29uIiwibGFiZWwiLCJocmVmIiwib25DbGljayIsInByZXZlbnREZWZhdWx0IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNob3dWaWV3ZXIiLCJvbkRvY3VtZW50TG9hZFN1Y2Nlc3MiLCJVcGxvYWRGaWVsZCIsInNldEZpbGUiLCJjbGVhclRyaWdnZXIiLCJCYXNlRmllbGQiLCJ2YWx1ZVBhcnNlciIsImluYm91bmQiLCJ2YWx1ZUNoYW5nZUNhbGxiYWNrIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9VcGxvYWRGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgRG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZnJvbSBcIi4uL0RvY3VtZW50Vmlld2VyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgZGVmYXVsdEltYWdlIGZyb20gJy4vbm9pbWFnZS5wbmcnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHRoZW1lID0+ICh7XG4gICAgYnV0dG9uOiB7XG4gICAgICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgIGVycm9yTWVzc2FnZURpc3BsYXk6IHtcbiAgICAgICAgY29sb3I6ICdyZWQnXG4gICAgfVxufSkpO1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHR9KTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuZXhwb3J0IGNvbnN0IERvY3VtZW50VXBsb2FkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdmlld2VyRmlsZSwgc2V0Vmlld2VyRmlsZV0gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IHByb3BzLmluaXRpYWxGaWxlIDogbnVsbCk7XG4gICAgY29uc3QgW3BheWxvYWRTdG9yYWdlTW9kZSwgc2V0UGF5bG9hZFN0b3JhZ2VNb2RlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGUgfHwgJ2Jhc2U2NCcpO1xuICAgIGNvbnN0IFtmaWxlcywgc2V0RmlsZXNdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5pbml0aWFsRmlsZSkgPyBbcHJvcHMuaW5pdGlhbEZpbGVdIDogbnVsbCk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW251bGxhYmxlXSA9IFJlYWN0LnVzZVN0YXRlKFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudmFsaWRhdG9yKSB8fCBwcm9wcy5jb25maWcudmFsaWRhdG9yLm51bGxhYmxlID09PSB0cnVlKTtcbiAgICBjb25zdCBbbXVsdGlwbGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMubXVsdGlwbGUgPT09IHRydWUpO1xuICAgIGNvbnN0IFtzaG93LCBzZXRTaG93XSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBjbGFzc2VzID0gdXNlU3R5bGVzKCk7XG4gICAgY29uc3QgW2hhc0Vycm9yLCBzZXRIYXNFcnJvcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCB3aWR0aCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd3aWR0aCcsICcyMDBweCcpO1xuICAgIGNvbnN0IGhlaWdodCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdoZWlnaHQnLCAnMjAwcHgnKTtcbiAgICBjb25zdCBbZXJyb3JNZXNzYWdlLCBzZXRFcnJvck1lc3NhZ2VdID0gUmVhY3QudXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgW2ltYWdlT2JqZWN0VXJsLCBzZXRJbWFnZU9iamVjdFVybF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjYWNoZUlkID0gUmVhY3QudXNlUmVmKCFVdGlscy5pc051bGwocHJvcHMuYmFzZS52YWx1ZSkgPyBwcm9wcy5iYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgOiBudWxsKTtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAvL3JlbW92ZSgpLmNhdGNoKChlKSA9PiB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0Vmlld2VyRmlsZShwcm9wcy5pbml0aWFsRmlsZSk7XG4gICAgfSwgW3Byb3BzLmluaXRpYWxGaWxlXSk7XG5cbiAgICBjb25zdCBoYW5kbGVWaWV3ZXJMb2FkID0gKG51bVBhZ2VzKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHJlYWRlcikgPT4ge1xuICAgICAgICBsZXQgdXBsb2FkVXJsID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3VwbG9hZFVybCcsIG51bGwpO1xuICAgICAgICBpZih1cGxvYWRVcmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgXCIvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvc2F2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBheWxvYWRTdG9yYWdlTW9kZSA9IHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGU7XG4gICAgICAgIGlmKHBheWxvYWRTdG9yYWdlTW9kZSA9PT0gJ3Bvc3QnKXtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIG1ldGFkYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy52aWV3SWQgKyBcIi5cIiArIHByb3BzLmNvbmZpZy5pZCArIChwcm9wcy5jb25maWcucm93SWQgPyBcIi5cIiArIHByb3BzLmNvbmZpZy5yb3dJZCA6IFwiXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJtZXRhZGF0YVwiLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ubWV0YWRhdGEsIHVybDogcmVhZGVyLnJlc3VsdH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuRE9DVU1FTlRfQ0FDSEVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQW4gZXJyb3IgaGFzIGFjY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEucGF5bG9hZCA9IHJlYWRlci5yZXN1bHQ7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkLmN1cnJlbnQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgYnVpbGREb3dubG9hZFVybCA9IChkb2N1bWVudFJlcG9zaXRvcnlJZCkgPT5cbiAgICAgICAgbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci9kb3dubG9hZC8nICsgZG9jdW1lbnRSZXBvc2l0b3J5SWQgK1xuICAgICAgICAnP2FjY2Vzc190b2tlbj0nICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgIC8vIEZldGNoIGEgc3RvcmVkIGRvY3VtZW50IGFzIGFuIG9iamVjdCBVUkwuIFRoZSBkb2NzIHNlcnZpY2UgcmVzb2x2ZXMgdGhlIFMzIGJ1Y2tldCBmcm9tIHRoZVxuICAgIC8vIHRlbmFudCAocHJvZmlsZSkgaGVhZGVyOyBhIHBsYWluIGJyb3dzZXIgR0VUIChpbWcvYW5jaG9yKSBjYW4ndCBzZW5kIGl0LCBzbyB0aGUgdGVuYW50IGZhbGxzXG4gICAgLy8gYmFjayB0byB0aGUgcmF3IHRva2VuIHByb2ZpbGUgYW5kIHRoZSBidWNrZXQgbmFtZSBpcyBtYWxmb3JtZWQuIGdldEFjdGl2ZVRlbmFudCgpIGNhbiBiZSBudWxsXG4gICAgLy8gKGUuZy4gbm8gYWN0aXZlIHRlbmFudCBzZWxlY3RlZCkg4oCUIGluIHRoYXQgY2FzZSB3ZSBvbWl0IHRoZSBoZWFkZXIgYW5kIGxldCB0aGUgc2VydmljZSBmYWxsIGJhY2suXG4gICAgY29uc3QgZmV0Y2hEb2N1bWVudE9iamVjdFVybCA9IChkb2N1bWVudFJlcG9zaXRvcnlJZCkgPT4ge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0ge307XG4gICAgICAgIGNvbnN0IHRlbmFudCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwodGVuYW50KSkge1xuICAgICAgICAgICAgaGVhZGVyc1sndGVuYW50J10gPSB0ZW5hbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZldGNoKGVuY29kZVVSSShidWlsZERvd25sb2FkVXJsKGRvY3VtZW50UmVwb3NpdG9yeUlkKSksIHttZXRob2Q6ICdHRVQnLCBoZWFkZXJzfSlcbiAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYmxvYigpKVxuICAgICAgICAgICAgLnRoZW4oKGJsb2IpID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpO1xuICAgIH07XG5cbiAgICAvLyBPcGVuIGEgc3RvcmVkIGRvY3VtZW50IGluIGEgbmV3IHRhYi4gVGhlIHRhYiBpcyBvcGVuZWQgc3luY2hyb25vdXNseSAoYmVmb3JlIHRoZSBhc3luYyBmZXRjaClcbiAgICAvLyBzbyBpdCBpc24ndCBibG9ja2VkIGFzIGEgcG9wLXVwOyBpdHMgbG9jYXRpb24gaXMgc2V0IG9uY2UgdGhlIHRlbmFudC1zY29wZWQgYmxvYiBpcyByZWFkeS5cbiAgICBjb25zdCBvcGVuRG9jdW1lbnQgPSAoZG9jdW1lbnRSZXBvc2l0b3J5SWQpID0+IHtcbiAgICAgICAgY29uc3Qgd2luID0gd2luZG93Lm9wZW4oJycsICdfYmxhbmsnKTtcbiAgICAgICAgZmV0Y2hEb2N1bWVudE9iamVjdFVybChkb2N1bWVudFJlcG9zaXRvcnlJZClcbiAgICAgICAgICAgIC50aGVuKChvYmplY3RVcmwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAod2luKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbi5sb2NhdGlvbiA9IG9iamVjdFVybDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHdpbikge1xuICAgICAgICAgICAgICAgICAgICB3aW4uY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGUgJiYgZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLy8gSU1BR0Utc3R5bGUgcHJldmlldzogZmV0Y2ggdGhlIHN0b3JlZCBpbWFnZSB3aXRoIHRoZSB0ZW5hbnQgaGVhZGVyIGFuZCBob2xkIGl0IGFzIGFuIG9iamVjdCBVUkwuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLnN0eWxlICE9PSAnSU1BR0UnIHx8ICFVdGlscy5pc051bGwodmlld2VyRmlsZSlcbiAgICAgICAgICAgIHx8IFV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSB8fCBVdGlscy5pc051bGwoYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZCkpIHtcbiAgICAgICAgICAgIHNldEltYWdlT2JqZWN0VXJsKG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhY3RpdmUgPSB0cnVlO1xuICAgICAgICBsZXQgY3JlYXRlZCA9IG51bGw7XG4gICAgICAgIGZldGNoRG9jdW1lbnRPYmplY3RVcmwoYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZClcbiAgICAgICAgICAgIC50aGVuKChvYmplY3RVcmwpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgPSBvYmplY3RVcmw7XG4gICAgICAgICAgICAgICAgICAgIHNldEltYWdlT2JqZWN0VXJsKG9iamVjdFVybCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4ge30pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoY3JlYXRlZCkge1xuICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoY3JlYXRlZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW3Byb3BzLnN0eWxlLCB2aWV3ZXJGaWxlLCBiYXNlLnZhbHVlID8gYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZCA6IG51bGxdKTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9ICgpID0+IGV2ZW50ID0+IHtcbiAgICAgICAgbGV0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xuICAgICAgICB2YXIgYWxsRmlsZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGZpbGUgPSBmaWxlc1tpXTtcbiAgICAgICAgICAgIGxldCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBmaWxlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmFzZTY0OiByZWFkZXIucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICBmaWxlOiBmaWxlXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGFsbEZpbGVzLnB1c2goZmlsZUluZm8pO1xuICAgICAgICAgICAgICAgIGlmIChhbGxGaWxlcy5sZW5ndGggPT09IGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldEZpbGVzKGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmZvcm0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWxlTWV0YURhdGEgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLm5hbWUgPSBhbGxGaWxlc1swXS5uYW1lO1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEudHlwZSA9IGFsbEZpbGVzWzBdLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5zaXplID0gYWxsRmlsZXNbMF0uc2l6ZTtcblxuICAgICAgICAgICAgICAgICAgICBpZihiYXNlLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuaWQgPSBiYXNlLnZhbHVlLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlJZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICgnYmFzZTY0JyA9PT0gcGF5bG9hZFN0b3JhZ2VNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEucGF5bG9hZCA9IGFsbEZpbGVzWzBdLmJhc2U2NDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UoZmlsZU1ldGFEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmRvbWFpbiA9IHByb3BzLnZpZXdJZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGUgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuY29ycmVsYXRpb25JZCA9IGZpbGVNZXRhRGF0YS5jb3JyZWxhdGlvbklkO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5jb250ZW50ID0gYWxsRmlsZXNbMF0uZmlsZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlSWQuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHJlYWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQoZmlsZU1ldGFEYXRhLCBhbGxGaWxlc1swXS5maWxlLCByZWFkZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBhY2NlcHQ9e3Byb3BzLnN0eWxlID09PSAnSU1BR0UnID8gXCJpbWFnZS9qcGVnLGltYWdlL2dpZixpbWFnZS9wbmcsaW1hZ2UveC1lcHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiAocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmFjY2VwdCB8fCBcImFwcGxpY2F0aW9uL3BkZlwiKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICAgICAgICBpZD17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxlPXttdWx0aXBsZX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZSgpfVxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLnN0eWxlID09PSAnSU1BR0UnID9cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIHZhcmlhbnQ9XCJjb250YWluZWRcIiBjb21wb25lbnQ9XCJzcGFuXCIgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgsIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogJ25vLXJlcGVhdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHZpZXdlckZpbGUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVybCgke3ZpZXdlckZpbGUuYmFzZTY0fSlgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChpbWFnZU9iamVjdFVybCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVybCgke2ltYWdlT2JqZWN0VXJsfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7ZGVmYXVsdEltYWdlfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCIwIDhweFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKjxCdXR0b24gdmFyaWFudD17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yID09PSAnc2Vjb25kYXJ5JyB8fCBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgPT09ICdwcmltYXJ5JyA/ICdjb250YWluZWQnIDogJ3RleHQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IpID9wcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBwcm9wcy5jb25maWcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj4qL31cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiMCA4cHhcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChiYXNlLnZhbHVlLmlkKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9eycjJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5Eb2N1bWVudChiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFiYXNlLmRpc2FibGVkICYmIG51bGxhYmxlICYmIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YCkudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiBjYWNoZUlkLmN1cnJlbnQgPSBudWxsKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnREVMRVRFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3BzLnNob3dWaWV3ZXIgJiYgIW11bHRpcGxlIHx8IHNob3cgP1xuICAgICAgICAgICAgICAgICAgICA8RG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZmlsZT17dmlld2VyRmlsZX0gb25Eb2N1bWVudExvYWRTdWNjZXNzPXtoYW5kbGVWaWV3ZXJMb2FkfS8+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yTWVzc2FnZURpc3BsYXl9PntlcnJvck1lc3NhZ2V9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBsb2FkRmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWxlLCBzZXRGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNsZWFyVHJpZ2dlcj0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxEb2N1bWVudFVwbG9hZFxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsZT17ZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0RvY3VtZW50VXBsb2FkPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVwbG9hZEZpZWxkO1xuIl0sIm1hcHBp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
|