@projectcor/maia-components 2.11.54-2 → 2.11.54-3

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.
@@ -474,23 +474,7 @@ var MessageItem = /*#__PURE__*/memo(function (props) {
474
474
  }
475
475
  }, "".concat(attachment.id, "-").concat(attachment.name));
476
476
  })
477
- }), approval && approval.pending_actions && /*#__PURE__*/_jsx(SCApprovalActionsColumn, {
478
- children: /*#__PURE__*/_jsx(ApprovalBox, {
479
- actions: approval.pending_actions,
480
- status: approvalStatus,
481
- onApprove: function onApprove(threadIds) {
482
- return handleApprovalDecision(threadIds, 'approve');
483
- },
484
- onReject: function onReject(threadIds) {
485
- return handleApprovalDecision(threadIds, 'reject');
486
- },
487
- isProjectDeleted: ((_props$projectMetadat = props.projectMetadata) === null || _props$projectMetadat === void 0 ? void 0 : _props$projectMetadat.is_deleted) === true,
488
- isExpanded: props.expanded,
489
- hitlInstanceId: approval.original_thread_id,
490
- warningMessage: approval.warning_message,
491
- manualApprovalDetected: approval.manual_approval_detected
492
- })
493
- }), (!!message || isStreaming) && !approval && !(isAssistant && !!messageAttachments.length) && /*#__PURE__*/_jsx(StreamingMessageBody, {
477
+ }), (!!message || isStreaming) && !(isAssistant && !!messageAttachments.length) && /*#__PURE__*/_jsx(StreamingMessageBody, {
494
478
  message: message !== null && message !== void 0 ? message : '',
495
479
  isStreaming: !!isStreaming,
496
480
  isCurrentUser: isCurrentUser,
@@ -507,6 +491,22 @@ var MessageItem = /*#__PURE__*/memo(function (props) {
507
491
  suggestionsDisabled: !!props.isStreaming || !!hasSelectedSuggestion,
508
492
  messageId: id,
509
493
  isLastMessage: isLastMessage
494
+ }), approval && approval.pending_actions && /*#__PURE__*/_jsx(SCApprovalActionsColumn, {
495
+ children: /*#__PURE__*/_jsx(ApprovalBox, {
496
+ actions: approval.pending_actions,
497
+ status: approvalStatus,
498
+ onApprove: function onApprove(threadIds) {
499
+ return handleApprovalDecision(threadIds, 'approve');
500
+ },
501
+ onReject: function onReject(threadIds) {
502
+ return handleApprovalDecision(threadIds, 'reject');
503
+ },
504
+ isProjectDeleted: ((_props$projectMetadat = props.projectMetadata) === null || _props$projectMetadat === void 0 ? void 0 : _props$projectMetadat.is_deleted) === true,
505
+ isExpanded: props.expanded,
506
+ hitlInstanceId: approval.original_thread_id,
507
+ warningMessage: approval.warning_message,
508
+ manualApprovalDetected: approval.manual_approval_detected
509
+ })
510
510
  })]
511
511
  }), /*#__PURE__*/_jsx(AttachmentPreviewModal, {
512
512
  isOpen: !!previewAttachment,
@@ -903,4 +903,4 @@ var ChatAIMessagesInner = function ChatAIMessagesInner(_ref7) {
903
903
  });
904
904
  };
905
905
  export var ChatAIMessages = /*#__PURE__*/React.memo(ChatAIMessagesInner);
906
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsIk1BSUFfU1RSRUFNRE9XTl9SRUhZUEVfUExVR0lOUyIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJyZW5kZXJNZW50aW9uTGluayIsImhhc0lubGluZU1hcmtlcnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwidXNlVXNlciIsInVzZVQiLCJ1c2VDaGF0TWFuYWdlciIsInVzZVRhc2tQYW5lbCIsInVzZVNtb290aFN0cmVhbVRleHQiLCJ1c2VTdHJlYW1pbmdNZXNzYWdlIiwiTG9hZGluZ1RleHQiLCJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiaXNTdHJlYW1pbmdQbGFjZWhvbGRlck1lc3NhZ2VJZCIsInJlc29sdmVTdHJlYW1Mb2FkaW5nRGlzcGxheSIsIkxvYWRlciIsIkZhZGUiLCJNZXNzYWdlRnJvbVVzZXIiLCJNZXNzYWdlRnJvbU90aGVyIiwiTWVzc2FnZUNvbnRlbnRGcm9tVXNlciIsIk1lc3NhZ2VDb250ZW50RnJvbU90aGVyIiwiTWVzc2FnZUZlZWRiYWNrIiwiU0NDQUlNZXNzYWdlV3JhcHBlciIsIlNjcm9sbFRvQm90dG9tQnV0dG9uIiwiU0NNZXNzYWdlc091dGVyIiwiU0NNZXNzYWdlc1Njcm9sbCIsIlNDTWVzc2FnZXNJbm5lciIsIlNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uIiwiU0NPcHRpb25zTGlzdCIsIlNDT3B0aW9uSXRlbSIsIlNDQXNzaXN0YW50TWVzc2FnZUhlYWRlciIsIlNDQXNzaXN0YW50TmFtZSIsIlNDQXNzaXN0YW50QXZhdGFyIiwiU0NUYXNrTGluayIsIlNDTWVzc2FnZUl0ZW1XcmFwcGVyIiwiU0NNZXNzYWdlSXRlbUlubmVyIiwiU0NBdHRhY2htZW50c1JvdyIsIlNDQXBwcm92YWxBY3Rpb25zQ29sdW1uIiwiRmVlZGJhY2siLCJ1c2VHbG9iYWxDb250ZXh0IiwiTUFJQUljb24iLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwiQ2hhdEFJU3VnZ2VzdGlvbnMiLCJDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsImRvd25sb2FkRmlsZUZyb21VcmwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFySW5uZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIkFzc2lzdGFudEF2YXRhciIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkT3B0aW9uIiwic2V0U2VsZWN0ZWRPcHRpb24iLCJoYW5kbGVTZWxlY3QiLCJvcHRpb24iLCJtYXAiLCIkaGFzU2VsZWN0aW9uIiwiJGRpbW1lZCIsImlkIiwib25DbGljayIsIm5hbWUiLCJBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2NhbEFnZW50Iiwic2V0TG9jYWxBZ2VudCIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJleHRyYWN0VGFza3NGcm9tTWVzc2FnZSIsIm1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidGFza0lkIiwidXJsIiwiaGFzIiwiYWRkIiwiZXNjYXBlZFVybCIsInJlcGxhY2UiLCJtYXJrZG93bkxpbmtSZWdleCIsImNvbmNhdCIsImxpbmtNYXRjaCIsInRpdGxlIiwicHVzaCIsImhhc1Rhc2tMaW5rcyIsInRleHQiLCJsZW5ndGgiLCJUQVNLX01FTlRJT05fTUFSS0VSX1JFIiwiTUFJQV9UQVNLX01FTlRJT05fSFJFRl9SRSIsImhhc1Rhc2tMaW5rc09yVGFza01lbnRpb25zIiwiVGFza0xpbmsiLCJfcmVmNCIsInRhYlNlZ21lbnQiLCJfdXNlVGFza1BhbmVsIiwiYnVpbGRPcGVuVGFzayIsIm9wZW5UYXNrIiwiaGFuZGxlQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsIkN1c3RvbUxpbmsiLCJfcmVmNSIsInJlc3QiLCJfZXhjbHVkZWQzIiwibWVudGlvbk5vZGUiLCJ0YXNrTWF0Y2giLCJTdHJlYW1pbmdNZXNzYWdlQm9keSIsIl9wcm9wcyRjcmVhdGVBZ2VudEZvbCIsInN0cmVhbWluZ1RleHQiLCJpc1N0cmVhbWluZyIsIm1lc3NhZ2VJZCIsInJhd1RleHQiLCJ3aW5GbGFncyIsIndpbmRvdyIsImRpc3BsYXlUZXh0IiwiZW5hYmxlZCIsIm1heENoYXJzUGVyRnJhbWUiLCJzbmFwVG9Xb3JkQm91bmRhcnkiLCJzdHJlYW1MYWdNcyIsInRhcmdldExhZ01zIiwic3RyZWFtQWRhcHQiLCJhZGFwdFRvQmFja2VuZFJhdGUiLCJzdHJlYW1CdWZmZXJNcyIsInRhcmdldEJ1ZmZlck1zIiwic3RyZWFtTWluQnVmZmVyIiwibWluQnVmZmVyQ2hhcnMiLCJzdHJlYW1XYXJtdXBNcyIsIndhcm11cE1zIiwiY3JlYXRlQWdlbnRBY3Rpb25zQWdlbnRJZCIsImNyZWF0ZUFnZW50Rm9sbG93VXAiLCJhZ2VudElkIiwiaGFzTWVudGlvbnMiLCJtZW50aW9uTm9kZXMiLCJpc0Zyb250ZW5kQ2FuY2VsbGVkIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJkaXNwbGF5IiwicGx1Z2lucyIsInJlaHlwZVBsdWdpbnMiLCJjb21wb25lbnRzIiwiYSIsImxpbmtTYWZldHkiLCJpc0FuaW1hdGluZyIsInNoaWtpVGhlbWUiLCJjb250cm9scyIsInRhYmxlIiwiaXNBc3Npc3RhbnQiLCJpc0Vycm9yIiwiYXBwcm92YWwiLCJjb250ZW50Iiwic291cmNlcyIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlRmVlZGJhY2tDbGljayIsImRpc2FibGVGZWVkYmFjayIsInN1Z2dlc3Rpb25zIiwib25TZWxlY3RTdWdnZXN0aW9uIiwic3VnZ2VzdGlvbiIsImhhbmRsZVN1Z2dlc3Rpb25DbGljayIsImRpc2FibGVkIiwic3VnZ2VzdGlvbnNEaXNhYmxlZCIsImhpZGRlbiIsImlzTGFzdE1lc3NhZ2UiLCJNZXNzYWdlSXRlbSIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInVzZXIiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUFwcHJvdmFsRGVjaXNpb24iLCJyb2xlIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbFN0YXR1cyIsImhhc1NlbGVjdGVkU3VnZ2VzdGlvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIlVTRVIiLCJ0b1N0cmluZyIsIkFTU0lTVEFOVCIsImlzVGhpbmtpbmciLCJtZXNzYWdlQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYW5kbGVBdHRhY2htZW50RG93bmxvYWQiLCJfcmVmNiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZXh0ZW5zaW9uIiwiZmlsZU5hbWUiLCJmaWxlVXJsIiwiYmxvYlVybCIsImRvd25sb2FkZWRGaWxlIiwibGluayIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJpbmNsdWRlcyIsInNlbnQiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJhYnJ1cHQiLCJkb2N1bWVudCIsImRvd25sb2FkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJzZXRUaW1lb3V0IiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhc0ZlZWRiYWNrIiwiJGlzQXNzaXN0YW50IiwibWVzc2FnZUV4dHJhQ29udGVudCIsImZlZWRiYWNrIiwic2Vzc2lvbklkIiwic3BsaXQiLCJmaWx0ZXIiLCJxdWVzdGlvbklkIiwiam9pbiIsImluZGV4IiwiX2F0dGFjaG1lbnQkdHlwZSIsIl9hdHRhY2htZW50JG5hbWUiLCJhdHRhY2htZW50VHlwZSIsInRvTG93ZXJDYXNlIiwiYXR0YWNobWVudE5hbWUiLCJpc0F1ZGlvRmlsZSIsInN0YXJ0c1dpdGgiLCJzb21lIiwiZXh0IiwiZW5kc1dpdGgiLCJwb3NpdGlvbkluZGV4Iiwib25Eb3dubG9hZCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbnMiLCJzdGF0dXMiLCJvbkFwcHJvdmUiLCJ0aHJlYWRJZHMiLCJvblJlamVjdCIsImlzUHJvamVjdERlbGV0ZWQiLCJwcm9qZWN0TWV0YWRhdGEiLCJpc19kZWxldGVkIiwiaXNFeHBhbmRlZCIsImV4cGFuZGVkIiwiaGl0bEluc3RhbmNlSWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJ3YXJuaW5nTWVzc2FnZSIsIndhcm5pbmdfbWVzc2FnZSIsIm1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQiLCJtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY3IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJldmVudCIsIm1lc3NhZ2VzUmVmIiwiY2hhdEluaXRpYWxpemVkUmVmIiwiaXNMb2FkaW5nTW9yZVJlZiIsInVzZXJTY3JvbGxpbmdSZWYiLCJzY3JvbGxUaHJlc2hvbGRSZWYiLCJsYXN0U2Nyb2xsVG9wUmVmIiwic2hvd1Njcm9sbFRvQm90dG9tUmVmIiwic2Nyb2xsUmFmUmVmIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzaG93U2Nyb2xsVG9Cb3R0b20iLCJzZXRTaG93U2Nyb2xsVG9Cb3R0b20iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInNlbGVjdGVkU3VnZ2VzdGlvbk1lc3NhZ2VJZHMiLCJzZXRTZWxlY3RlZFN1Z2dlc3Rpb25NZXNzYWdlSWRzIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsInN0cmVhbUFjdGl2aXR5IiwiYWN0aXZlTG9hZGluZ3MiLCJzZW5kTWVzc2FnZSIsImNoYW5nZVByb2plY3QiLCJpbml0aWFsaXplQ2hhdCIsImhhbmRsZVNjcm9sbCIsInN0b3BHZW5lcmF0aW9uIiwidHJpbSIsImlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCIsImVudGl0eSIsImFpQ2hhdFN1Z2dlc3RlZEFuc3dlciIsImFnZW50X3R5cGUiLCJfZGVmaW5lUHJvcGVydHkiLCJ1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5IiwiZWwiLCJjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwic2hvdWxkU2hvdyIsInNjcm9sbFRvQm90dG9tUmFmIiwib3B0cyIsIl9vcHRzJHNraXBJZlVzZXJTY3JvbCIsInNraXBJZlVzZXJTY3JvbGxpbmciLCJfb3B0cyRkZWxheU1zIiwiZGVsYXlNcyIsInJ1biIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUbyIsInRvcCIsImJlaGF2aW9yIiwiaGFuZGxlU2Nyb2xsVG9Cb3R0b20iLCJjb250YWluZXIiLCJjdXJyZW50VGFyZ2V0IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJpc1Njcm9sbGluZ1VwIiwiaXNOZWFyQm90dG9tIiwic2VuZE1lc3NhZ2VSZWYiLCJzdG9wR2VuZXJhdGlvblJlZiIsIm9uU2VuZE1lc3NhZ2VSZWFkeVJlZiIsInJhZklkIiwibGFzdEhlaWdodCIsInRpY2siLCJjdXJyZW50SGVpZ2h0IiwibGFzdE1lc3NhZ2VJZFJlZiIsImxhc3RNZXNzYWdlc0xlbmd0aFJlZiIsIl9sYXN0TWVzc2FnZSRpZCIsImxhc3RNZXNzYWdlIiwibGFzdElkIiwicHJldklkIiwicHJldkxlbiIsImlzTmV3TWVzc2FnZSIsImlzQXRCb3R0b20iLCJoYXNJbml0aWFsTWVzc2FnZSIsIm1zZyIsImlzQXBwcm92YWwiLCJpc0Fuc3dlck9yUXVlc3Rpb24iLCJsYXN0VXNlck1lc3NhZ2UiLCJhdCIsImF0dGFjaG1lbnRzQ291bnQiLCJzdHJlYW1Mb2FkaW5nRGlzcGxheSIsImhhc0F0dGFjaG1lbnRzIiwiQm9vbGVhbiIsImlzU2Nyb2xsT25QYXJlbnQiLCJleHBhbmRlZFJlZiIsInNhdmVkU2Nyb2xsVG9wIiwiZmlsbCIsIm1lc3NhZ2VzQ29udGVudCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJfbWVzc2FnZSRpZCIsImlzQXNzaXN0YW50TWVzc2FnZSIsInByb2plY3QiLCJtZXNzYWdlRmVlZGJhY2siLCJ3YXNIZWxwZnVsIiwiVEhVTUJTX1VQIiwiVEhVTUJTX0RPV04iLCJtZXNzYWdlS2V5Iiwia2V5IiwiYWN0aXZpdHkiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsIiRpc01hcmtldHBsYWNlR2xvYmFsIiwiY29sb3IiLCJDaGF0QUlNZXNzYWdlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9DaGF0QUlNZXNzYWdlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby11bnN0YWJsZS1uZXN0ZWQtY29tcG9uZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgbWVtbywgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFN0cmVhbWRvd24gfSBmcm9tICdzdHJlYW1kb3duJ1xuaW1wb3J0IHsgY3JlYXRlQ29kZVBsdWdpbiB9IGZyb20gJ0BzdHJlYW1kb3duL2NvZGUnXG5pbXBvcnQgeyBBcnJvd1NtYWxsRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Fycm93U21hbGxEb3duJ1xuXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkJ1xuaW1wb3J0IHsgQXBwcm92YWxCb3ggfSBmcm9tICcuLi8uLi9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveCdcbmltcG9ydCB7IEF0dGFjaG1lbnRQcmV2aWV3TW9kYWwgfSBmcm9tICcuLi8uLi9hdG9tcy9BdHRhY2htZW50UHJldmlld01vZGFsJ1xuaW1wb3J0IHsgQXR0YWNobWVudENhcmRBdWRpbyB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkQXVkaW8nXG5pbXBvcnQgeyBNQUlBTWVzc2FnZVByb3BzIH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQU1lc3NhZ2UvTUFJQU1lc3NhZ2UuaW50ZXJmYWNlcydcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0SGlzdG9yeVJvbGUsIFRhc2tJbmZvIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IE1BSUFfU1RSRUFNRE9XTl9SRUhZUEVfUExVR0lOUyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21haWFTdHJlYW1kb3duUmVoeXBlUGx1Z2lucydcbmltcG9ydCB7IHJlbmRlclRleHRXaXRoTWVudGlvbnMsIHJlbmRlck1lbnRpb25MaW5rLCBoYXNJbmxpbmVNYXJrZXJzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuXG5pbXBvcnQgeyBnZXRBZ2VudERpc3BsYXlOYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IENPUlVzZXIsIHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZUNoYXRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdE1hbmFnZXIvdXNlQ2hhdE1hbmFnZXInXG5pbXBvcnQgeyB1c2VUYXNrUGFuZWwgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUYXNrUGFuZWwnXG5pbXBvcnQgeyB1c2VTbW9vdGhTdHJlYW1UZXh0IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU21vb3RoU3RyZWFtVGV4dCdcbmltcG9ydCB7IHVzZVN0cmVhbWluZ01lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTdHJlYW1pbmdNZXNzYWdlJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgQWdlbnRBY3Rpdml0eUluZGljYXRvciB9IGZyb20gJy4uLy4uL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3InXG5pbXBvcnQgeyBpc1N0cmVhbWluZ1BsYWNlaG9sZGVyTWVzc2FnZUlkLCByZXNvbHZlU3RyZWFtTG9hZGluZ0Rpc3BsYXkgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4uLy4uL2F0b21zL0ZhZGUnXG5cbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuXG5pbXBvcnQgeyBNZXNzYWdlRnJvbVVzZXIsIE1lc3NhZ2VGcm9tT3RoZXIsIE1lc3NhZ2VDb250ZW50RnJvbVVzZXIsIE1lc3NhZ2VDb250ZW50RnJvbU90aGVyIH0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyBNZXNzYWdlRmVlZGJhY2sgfSBmcm9tICcuLi9NZXNzYWdlRmVlZGJhY2snXG5pbXBvcnQge1xuICBTQ0NBSU1lc3NhZ2VXcmFwcGVyLFxuICBTY3JvbGxUb0JvdHRvbUJ1dHRvbixcbiAgU0NNZXNzYWdlc091dGVyLFxuICBTQ01lc3NhZ2VzU2Nyb2xsLFxuICBTQ01lc3NhZ2VzSW5uZXIsXG4gIFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uLFxuICBTQ09wdGlvbnNMaXN0LFxuICBTQ09wdGlvbkl0ZW0sXG4gIFNDQXNzaXN0YW50TWVzc2FnZUhlYWRlcixcbiAgU0NBc3Npc3RhbnROYW1lLFxuICBTQ0Fzc2lzdGFudEF2YXRhcixcbiAgU0NUYXNrTGluayxcbiAgU0NNZXNzYWdlSXRlbVdyYXBwZXIsXG4gIFNDTWVzc2FnZUl0ZW1Jbm5lcixcbiAgU0NBdHRhY2htZW50c1JvdyxcbiAgU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4sXG59IGZyb20gJy4vbmV3U3R5bGVzJ1xuaW1wb3J0IHsgRmVlZGJhY2sgfSBmcm9tICcuLi9NZXNzYWdlRmVlZGJhY2svTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBDaGF0QUlTdWdnZXN0aW9ucyB9IGZyb20gJy4vQ2hhdEFJU3VnZ2VzdGlvbnMnXG5pbXBvcnQgeyBDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMgfSBmcm9tICcuL0NoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IGRvd25sb2FkRmlsZUZyb21VcmwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9maWxlRG93bmxvYWRIZWxwZXInXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXJJbm5lcjogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudEF2YXRhcj5cbiAgICAgIHthZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IDxNQUlBSWNvbiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+IDogYWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxuY29uc3QgQXNzaXN0YW50QXZhdGFyID0gbWVtbyhBc3Npc3RhbnRBdmF0YXJJbm5lcilcblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgIGZhcUlkPzogc3RyaW5nXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW11cbiAgICBmdWFJZD86IHN0cmluZ1xuICAgIHNjSWQ/OiBzdHJpbmdcbiAgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrOiAobWVzc2FnZUlkOiBzdHJpbmcsIHN1Z2dlc3Rpb246IHN0cmluZykgPT4gdm9pZFxuICBoYXNTZWxlY3RlZFN1Z2dlc3Rpb24/OiBib29sZWFuXG4gIGhhbmRsZUZlZWRiYWNrOiAoZmVlZGJhY2s6IEZlZWRiYWNrLCBjaGF0TWVzc2FnZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbjogKHRocmVhZElkczogc3RyaW5nW10sIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAncmVqZWN0JykgPT4gdm9pZFxuICBkaXNhYmxlRmVlZGJhY2s/OiBGZWVkYmFjayB8IG51bGxcbiAgc291cmNlcz86IGFueVxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzTGFzdE1lc3NhZ2U/OiBib29sZWFuXG4gIGV4cGFuZGVkPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTWVzc2FnZVdyYXBwZXJQcm9wcyB7XG4gIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAnZGF0YS1tZXNzYWdlLWlkJz86IHN0cmluZ1xuICBoYXNGZWVkYmFjaz86IGJvb2xlYW5cbn1cblxudHlwZSBNZXNzYWdlQ29udGVudFdyYXBwZXJQcm9wcyA9IE1BSUFNZXNzYWdlUHJvcHMgJiB7XG4gIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgaXNFcnJvcj86IGJvb2xlYW5cbiAgaXNDaGFuZ2VQcm9qZWN0PzogYm9vbGVhblxufVxuXG5jb25zdCBNZXNzYWdlV3JhcHBlcjogRkM8TWVzc2FnZVdyYXBwZXJQcm9wcz4gPSAoeyBpc0N1cnJlbnRVc2VyLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCBNZXNzYWdlQ29tcG9uZW50ID0gaXNDdXJyZW50VXNlciA/IE1lc3NhZ2VGcm9tVXNlciA6IE1lc3NhZ2VGcm9tT3RoZXJcbiAgcmV0dXJuIDxNZXNzYWdlQ29tcG9uZW50IHsuLi5wcm9wc30+e2NoaWxkcmVufTwvTWVzc2FnZUNvbXBvbmVudD5cbn1cblxuY29uc3QgTWVzc2FnZUNvbnRlbnRXcmFwcGVyOiBGQzxNZXNzYWdlQ29udGVudFdyYXBwZXJQcm9wcz4gPSAoeyBpc0N1cnJlbnRVc2VyLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb250ZW50Q29tcG9uZW50ID0gaXNDdXJyZW50VXNlciA/IE1lc3NhZ2VDb250ZW50RnJvbVVzZXIgOiBNZXNzYWdlQ29udGVudEZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb250ZW50Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbn1cblxuZnVuY3Rpb24gTWVzc2FnZU9wdGlvbnMoe1xuICBvcHRpb25zLFxuICBoYW5kbGVTZWxlY3RPcHRpb24sXG59OiB7XG4gIG9wdGlvbnM6IFByb2plY3RbXSB8IG51bGxcbiAgaGFuZGxlU2VsZWN0T3B0aW9uOiAob3B0aW9uOiBQcm9qZWN0KSA9PiB2b2lkXG59KSB7XG4gIGNvbnN0IFtzZWxlY3RlZE9wdGlvbiwgc2V0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZE9wdGlvbikgcmV0dXJuXG4gICAgc2V0U2VsZWN0ZWRPcHRpb24ob3B0aW9uKVxuICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ09wdGlvbnNMaXN0PlxuICAgICAgeyhvcHRpb25zIHx8IFtdKS5tYXAob3B0aW9uID0+IChcbiAgICAgICAgPFNDT3B0aW9uSXRlbVxuICAgICAgICAgICRoYXNTZWxlY3Rpb249eyEhc2VsZWN0ZWRPcHRpb259XG4gICAgICAgICAgJGRpbW1lZD17ISFzZWxlY3RlZE9wdGlvbiAmJiBzZWxlY3RlZE9wdGlvbj8uaWQgIT09IG9wdGlvbi5pZH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3Qob3B0aW9uKX1cbiAgICAgICAgICBrZXk9e29wdGlvbi5pZH1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb24ubmFtZX1cbiAgICAgICAgPC9TQ09wdGlvbkl0ZW0+XG4gICAgICApKX1cbiAgICA8L1NDT3B0aW9uc0xpc3Q+XG4gIClcbn1cblxuY29uc3QgQXNzaXN0YW50TWVzc2FnZUhlYWRlciA9ICgpID0+IHtcbiAgY29uc3QgW2xvY2FsQWdlbnQsIHNldExvY2FsQWdlbnRdID0gdXNlU3RhdGU8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsQWdlbnQoYWdlbnQpXG4gIH0sIFthZ2VudF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyPlxuICAgICAgPEFzc2lzdGFudEF2YXRhciAvPlxuICAgICAge2xvY2FsQWdlbnQ/Lm5hbWUgJiYgPFNDQXNzaXN0YW50TmFtZT57Z2V0QWdlbnREaXNwbGF5TmFtZShsb2NhbEFnZW50Py50eXBlLCBsb2NhbEFnZW50Py5uYW1lKX08L1NDQXNzaXN0YW50TmFtZT59XG4gICAgPC9TQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gIClcbn1cblxuLy8gRXh0cmFlIGVsIHNlZ21lbnRvIGRlIHRhYiAoZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykgZGVsIGhyZWYgcGFyYSBhYnJpciBlbCBtb2RhbCBjb24gZWwgdGFiIGNvcnJlY3RvXG5jb25zdCBnZXRUYWJTZWdtZW50RnJvbUhyZWYgPSAoaHJlZjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbWF0Y2ggPSBocmVmLm1hdGNoKC9cXC90YXNrc1xcL1xcZCtcXC8oW14vP10rKS8pXG4gIHJldHVybiBtYXRjaCAmJiAvXihkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSQvLnRlc3QobWF0Y2hbMV0pID8gbWF0Y2hbMV0gOiAnZGV0YWlsJ1xufVxuXG4vKiogRXh0cmFlIGxhcyB0YXJlYXMgZW5sYXphZGFzIGVuIGVsIHRleHRvIChVUkxzIHF1ZSBjb2luY2lkZW4gY29uIFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pLiAqL1xuY29uc3QgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nKTogVGFza0luZm9bXSA9PiB7XG4gIGlmICghbWVzc2FnZSkgcmV0dXJuIFtdXG4gIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICBjb25zdCB0YXNrczogVGFza0luZm9bXSA9IFtdXG4gIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBudWxsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGFza0lkID0gbWF0Y2hbMV1cbiAgICBjb25zdCB1cmwgPSBtYXRjaFswXVxuICAgIGlmICghc2Vlbklkcy5oYXModGFza0lkKSkge1xuICAgICAgc2Vlbklkcy5hZGQodGFza0lkKVxuICAgICAgY29uc3QgZXNjYXBlZFVybCA9IHVybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBjb25zdCBtYXJrZG93bkxpbmtSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbKFteXFxcXF1dKylcXFxcXVxcXFwoJHtlc2NhcGVkVXJsfVxcXFwpYClcbiAgICAgIGNvbnN0IGxpbmtNYXRjaCA9IG1lc3NhZ2UubWF0Y2gobWFya2Rvd25MaW5rUmVnZXgpXG4gICAgICBjb25zdCB0aXRsZSA9IGxpbmtNYXRjaCA/IGxpbmtNYXRjaFsxXSA6IGBUYXJlYSAjJHt0YXNrSWR9YFxuICAgICAgdGFza3MucHVzaCh7IGlkOiB0YXNrSWQsIHRpdGxlLCB1cmwgfSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhc2tzXG59XG5cbmNvbnN0IGhhc1Rhc2tMaW5rcyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IGV4dHJhY3RUYXNrc0Zyb21NZXNzYWdlKHRleHQpLmxlbmd0aCA+IDBcblxuY29uc3QgVEFTS19NRU5USU9OX01BUktFUl9SRSA9IC9cXFtcXFttZW50aW9uOnRhc2s6L2lcbmNvbnN0IE1BSUFfVEFTS19NRU5USU9OX0hSRUZfUkUgPSAvbWFpYS1tZW50aW9uOlxcL1xcL3Rhc2tcXC8vaVxuXG4vKiogVVJMcyBkZSB0YXJlYSBlbiBtYXJrZG93biArIG1hcmNhZG9yZXMgW1ttZW50aW9uOnRhc2s64oCmXV0gKyBsaW5rcyBtYWlhLW1lbnRpb24gKG1pc21vIGFzcGVjdG8gcXVlIGVubGFjZXMgZGVsIGFnZW50ZSkuICovXG5jb25zdCBoYXNUYXNrTGlua3NPclRhc2tNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+XG4gIGhhc1Rhc2tMaW5rcyh0ZXh0KSB8fCBUQVNLX01FTlRJT05fTUFSS0VSX1JFLnRlc3QodGV4dCkgfHwgTUFJQV9UQVNLX01FTlRJT05fSFJFRl9SRS50ZXN0KHRleHQpXG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgbWVudGlvbk5vZGUgPSByZW5kZXJNZW50aW9uTGluayhocmVmLCBjaGlsZHJlbilcbiAgaWYgKG1lbnRpb25Ob2RlKSByZXR1cm4gbWVudGlvbk5vZGUgYXMgUmVhY3QuUmVhY3RFbGVtZW50XG5cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG4vKiogU29sbyBlc3RlIGNvbXBvbmVudGUgcmUtcmVuZGVyaXphIGN1YW5kbyBjYW1iaWEgZWwgdGV4dG8gZW4gc3RyZWFtaW5nIChsZWUgZGVsIGNvbnRleHQpLiAqL1xuY29uc3QgU3RyZWFtaW5nTWVzc2FnZUJvZHkgPSBtZW1vKFxuICAocHJvcHM6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc1N0cmVhbWluZzogYm9vbGVhblxuICAgIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgICBpc0Fzc2lzdGFudDogYm9vbGVhblxuICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ/OiBib29sZWFuXG4gICAgYXBwcm92YWw/OiBNZXNzYWdlSXRlbVByb3BzWydhcHByb3ZhbCddXG4gICAgaXNFcnJvcj86IGJvb2xlYW5cbiAgICBzb3VyY2VzPzogTWVzc2FnZUl0ZW1Qcm9wc1snc291cmNlcyddXG4gICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGxcbiAgICBjcmVhdGVBZ2VudEZvbGxvd1VwPzogeyBhZ2VudElkOiBzdHJpbmcgfSB8IG51bGxcbiAgICBoYW5kbGVGZWVkYmFja0NsaWNrOiAoZjogRmVlZGJhY2spID0+IHZvaWRcbiAgICBkaXNhYmxlRmVlZGJhY2s6IEZlZWRiYWNrIHwgbnVsbFxuICAgIGhhbmRsZVN1Z2dlc3Rpb25DbGljazogKG1lc3NhZ2VJZDogc3RyaW5nLCBzdWdnZXN0aW9uOiBzdHJpbmcpID0+IHZvaWRcbiAgICBzdWdnZXN0aW9uc0Rpc2FibGVkPzogYm9vbGVhblxuICAgIG1lc3NhZ2VJZDogc3RyaW5nXG4gICAgaXNMYXN0TWVzc2FnZT86IGJvb2xlYW5cbiAgfSkgPT4ge1xuICAgIC8vIFRleHRvIGRlbCBzdHJlYW06IHNvbG8gc2UgbGVlIGRlbCBzdG9yZSBjdWFuZG8gZXN0ZSBtZW5zYWplIGVzIGVsXG4gICAgLy8gcXVlIGVzdMOhIGVuIHN0cmVhbWluZy4gdXNlU3luY0V4dGVybmFsU3RvcmUgYcOtc2xhIGVsIHJlLXJlbmRlciBhXG4gICAgLy8gZXN0ZSBjb21wb25lbnRlLCBzaW4gdG9jYXIgZWwgcmVzdG8gZGVsIMOhcmJvbC5cbiAgICBjb25zdCBzdHJlYW1pbmdUZXh0ID0gdXNlU3RyZWFtaW5nTWVzc2FnZShwcm9wcy5pc1N0cmVhbWluZyA/IHByb3BzLm1lc3NhZ2VJZCA6IG51bGwpXG4gICAgY29uc3QgcmF3VGV4dCA9IHByb3BzLmlzU3RyZWFtaW5nID8gc3RyZWFtaW5nVGV4dCA6IHByb3BzLm1lc3NhZ2VcbiAgICAvLyBTbW9vdGggc3RyZWFtaW5nOiBkZXNhY29wbGEgbGEgY2FkZW5jaWEgZGVsIGJhY2tlbmQgZGVsIHJlbmRlci5cbiAgICAvLyBEdXJhbnRlIGVsIHN0cmVhbWluZyBsaWJlcmEgY2hhcnMgYSByaXRtbyBjb25zdGFudGUgdsOtYSByQUY7IGN1YW5kb1xuICAgIC8vIHRlcm1pbmEsIG11ZXN0cmEgZWwgdGV4dG8gZmluYWwgYWwgaW5zdGFudGUgKHNpbiBhbmltYWNpw7NuIHJlc2lkdWFsKS5cbiAgICAvLyBMb3MgZGVmYXVsdHMgZGVsIGhvb2sgc2UgYWp1c3Rhcm9uIGVtcMOtcmljYW1lbnRlIGVuIHN0YWdpbmc7IGF1biBhc8OtXG4gICAgLy8gc2UgZXhwb25lbiBmbGFncyBkZSBydW50aW1lICh3aW5kb3cuKikgcGFyYSBwb2RlciB0dW5lYXIgc2luIHJlY29tcGlsYXJcbiAgICAvLyBzaSBhbGfDum4gYmFja2VuZCBwcmVzZW50YSB1bmEgY2FkZW5jaWEgbXV5IGRpc3RpbnRhIGVuIHByb2R1Y2Npw7NuLlxuICAgIC8vICAgd2luZG93LnN0cmVhbUFkYXB0ID0gZmFsc2UgICAgICAvLyBkZXNhY3RpdmEgYWRhcHRhY2nDs24gYWwgYmFja2VuZFxuICAgIC8vICAgd2luZG93LnN0cmVhbUJ1ZmZlck1zID0gNjAwICAgICAvLyBjb2xjaMOzbiBvYmpldGl2byAobXMpXG4gICAgLy8gICB3aW5kb3cuc3RyZWFtTGFnTXMgPSA0NTAgICAgICAgIC8vIGxhZyBtw6F4aW1vIGJhc2UgKG1zKVxuICAgIC8vICAgd2luZG93LnN0cmVhbU1pbkJ1ZmZlciA9IDcwICAgICAvLyBwaXNvIGRlbCBjb2xjaMOzbiBlbiBjaGFyc1xuICAgIC8vICAgd2luZG93LnN0cmVhbVdhcm11cE1zID0gNDAwICAgICAvLyB3YXJtdXAgaW5pY2lhbCAobXMpXG4gICAgY29uc3Qgd2luRmxhZ3MgPVxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyAod2luZG93IGFzIHVua25vd24gYXMge1xuICAgICAgICAgICAgc3RyZWFtQWRhcHQ/OiBib29sZWFuXG4gICAgICAgICAgICBzdHJlYW1CdWZmZXJNcz86IG51bWJlclxuICAgICAgICAgICAgc3RyZWFtTGFnTXM/OiBudW1iZXJcbiAgICAgICAgICAgIHN0cmVhbU1pbkJ1ZmZlcj86IG51bWJlclxuICAgICAgICAgICAgc3RyZWFtV2FybXVwTXM/OiBudW1iZXJcbiAgICAgICAgICB9KVxuICAgICAgICA6IHt9XG4gICAgY29uc3QgZGlzcGxheVRleHQgPSB1c2VTbW9vdGhTdHJlYW1UZXh0KHJhd1RleHQsIHtcbiAgICAgIGVuYWJsZWQ6ICEhcHJvcHMuaXNTdHJlYW1pbmcsXG4gICAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICAgIHNuYXBUb1dvcmRCb3VuZGFyeTogdHJ1ZSxcbiAgICAgIC4uLih3aW5GbGFncy5zdHJlYW1MYWdNcyAhPSBudWxsICYmIHsgdGFyZ2V0TGFnTXM6IHdpbkZsYWdzLnN0cmVhbUxhZ01zIH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbUFkYXB0ICE9IG51bGwgJiYgeyBhZGFwdFRvQmFja2VuZFJhdGU6IHdpbkZsYWdzLnN0cmVhbUFkYXB0IH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbUJ1ZmZlck1zICE9IG51bGwgJiYgeyB0YXJnZXRCdWZmZXJNczogd2luRmxhZ3Muc3RyZWFtQnVmZmVyTXMgfSksXG4gICAgICAuLi4od2luRmxhZ3Muc3RyZWFtTWluQnVmZmVyICE9IG51bGwgJiYgeyBtaW5CdWZmZXJDaGFyczogd2luRmxhZ3Muc3RyZWFtTWluQnVmZmVyIH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbVdhcm11cE1zICE9IG51bGwgJiYgeyB3YXJtdXBNczogd2luRmxhZ3Muc3RyZWFtV2FybXVwTXMgfSksXG4gICAgfSlcbiAgICBjb25zdCBjcmVhdGVBZ2VudEFjdGlvbnNBZ2VudElkID0gcHJvcHMuY3JlYXRlQWdlbnRGb2xsb3dVcD8uYWdlbnRJZFxuXG4gICAgaWYgKCFkaXNwbGF5VGV4dCAmJiAhcHJvcHMuaXNTdHJlYW1pbmcpIHJldHVybiBudWxsXG4gICAgY29uc3QgaGFzTWVudGlvbnMgPSBoYXNJbmxpbmVNYXJrZXJzKGRpc3BsYXlUZXh0KVxuICAgIGNvbnN0IG1lbnRpb25Ob2RlcyA9IGhhc01lbnRpb25zID8gcmVuZGVyVGV4dFdpdGhNZW50aW9ucyhkaXNwbGF5VGV4dCkgOiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgaXNDdXJyZW50VXNlcj17cHJvcHMuaXNDdXJyZW50VXNlcn1cbiAgICAgICAgICBpc0Zyb250ZW5kQ2FuY2VsbGVkPXtwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17aGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMoZGlzcGxheVRleHQpID8gJ2hhcy10YXNrLWxpbmtzJyA6ICcnfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc01lbnRpb25zICYmIG1lbnRpb25Ob2RlcyA/IChcbiAgICAgICAgICAgIC8vIFNpIGhheSBtZW50aW9ucywgcmVuZGVyaXphciBkaXJlY3RhbWVudGUgKHNpbiBtYXJrZG93biBlbiBlbCBtaXNtbyBww6FycmFmbylcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUnIH19PnttZW50aW9uTm9kZXN9PC9zcGFuPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAvLyBTaW4gbWVudGlvbnMsIHBhc2FyIGEgU3RyZWFtZG93biBwYXJhIG1hcmtkb3duIHN1cHBvcnRcbiAgICAgICAgICAgIDxTdHJlYW1kb3duXG4gICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICByZWh5cGVQbHVnaW5zPXtNQUlBX1NUUkVBTURPV05fUkVIWVBFX1BMVUdJTlN9XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgIGxpbmtTYWZldHk9e3sgZW5hYmxlZDogZmFsc2UgfX1cbiAgICAgICAgICAgICAgaXNBbmltYXRpbmc9eyEhcHJvcHMuaXNTdHJlYW1pbmd9XG4gICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICBjb250cm9scz17eyB0YWJsZTogZmFsc2UsIGNvZGU6IGZhbHNlIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtkaXNwbGF5VGV4dH1cbiAgICAgICAgICAgIDwvU3RyZWFtZG93bj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJiAhcHJvcHMuaXNFcnJvciAmJiAhcHJvcHMuaXNGcm9udGVuZENhbmNlbGxlZCAmJiAhcHJvcHMuYXBwcm92YWwgJiYgIXByb3BzLmlzU3RyZWFtaW5nICYmIChcbiAgICAgICAgICA8TWVzc2FnZUZlZWRiYWNrXG4gICAgICAgICAgICBjb250ZW50PXtkaXNwbGF5VGV4dH1cbiAgICAgICAgICAgIHNvdXJjZXM9e3Byb3BzLnNvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17cHJvcHMuaGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17cHJvcHMuZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJiAhcHJvcHMuaXNFcnJvciAmJiAhcHJvcHMuaXNGcm9udGVuZENhbmNlbGxlZCAmJiAhcHJvcHMuYXBwcm92YWwgJiYgKFxuICAgICAgICAgIDxDaGF0QUlTdWdnZXN0aW9uc1xuICAgICAgICAgICAgc3VnZ2VzdGlvbnM9e3Byb3BzLnN1Z2dlc3Rpb25zIHx8IFtdfVxuICAgICAgICAgICAgb25TZWxlY3RTdWdnZXN0aW9uPXtzdWdnZXN0aW9uID0+IHByb3BzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayhwcm9wcy5tZXNzYWdlSWQsIHN1Z2dlc3Rpb24pfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLnN1Z2dlc3Rpb25zRGlzYWJsZWR9XG4gICAgICAgICAgICBoaWRkZW49eyEhcHJvcHMuaXNTdHJlYW1pbmcgfHwgIXByb3BzLmlzTGFzdE1lc3NhZ2UgfHwgISFwcm9wcy5zdWdnZXN0aW9uc0Rpc2FibGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJlxuICAgICAgICAgICFwcm9wcy5pc0Vycm9yICYmXG4gICAgICAgICAgIXByb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWQgJiZcbiAgICAgICAgICAhcHJvcHMuYXBwcm92YWwgJiZcbiAgICAgICAgICAhIWNyZWF0ZUFnZW50QWN0aW9uc0FnZW50SWQgJiYgKFxuICAgICAgICAgICAgPENoYXRBSUNyZWF0ZUFnZW50QWN0aW9uc1xuICAgICAgICAgICAgICBhZ2VudElkPXtjcmVhdGVBZ2VudEFjdGlvbnNBZ2VudElkfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17cHJvcHMuc3VnZ2VzdGlvbnNEaXNhYmxlZH1cbiAgICAgICAgICAgICAgaGlkZGVuPXshIXByb3BzLmlzU3RyZWFtaW5nIHx8ICFwcm9wcy5pc0xhc3RNZXNzYWdlIHx8ICEhcHJvcHMuc3VnZ2VzdGlvbnNEaXNhYmxlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNTdHJlYW1pbmcsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrLFxuICAgIGhhbmRsZUZlZWRiYWNrLFxuICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb24sXG4gICAgZGlzYWJsZUZlZWRiYWNrLFxuICAgIHJvbGUsXG4gICAgc291cmNlcyxcbiAgICBhdHRhY2htZW50cyxcbiAgICBhcHByb3ZhbCxcbiAgICBhcHByb3ZhbFN0YXR1cyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBjcmVhdGVBZ2VudEZvbGxvd1VwLFxuICAgIGhhc1NlbGVjdGVkU3VnZ2VzdGlvbixcbiAgICBpc0xhc3RNZXNzYWdlLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBbcHJldmlld0F0dGFjaG1lbnQsIHNldFByZXZpZXdBdHRhY2htZW50XSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNDdXJyZW50VXNlciA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5VU0VSIHx8IHVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKClcbiAgY29uc3QgaXNBc3Npc3RhbnQgPSByb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IHVzZXIuaWQgPT09ICdhc3Npc3RhbnQnXG4gIC8vIE1pZW50cmFzIGVsIGFnZW50ZSBcInBpZW5zYVwiIChzdHJlYW1pbmcgc2luIHRleHRvIGHDum4pIG9jdWx0YW1vcyBlbCBoZWFkZXIuXG4gIC8vIEVuIGN1YW50byBlbXBpZXphIGEgZXNjcmliaXIsIGVsIGF2YXRhciB5IGVsIG5vbWJyZSB2dWVsdmVuIGEgbW9zdHJhcnNlLlxuICBjb25zdCBzdHJlYW1pbmdUZXh0ID0gdXNlU3RyZWFtaW5nTWVzc2FnZShpc1N0cmVhbWluZyA/IGlkIDogbnVsbClcbiAgY29uc3QgaXNUaGlua2luZyA9ICEhaXNTdHJlYW1pbmcgJiYgIXN0cmVhbWluZ1RleHRcbiAgY29uc3QgbWVzc2FnZUF0dGFjaG1lbnRzID1cbiAgICBhdHRhY2htZW50cyAmJiBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgICA/IGF0dGFjaG1lbnRzXG4gICAgICA6ICFpc0Fzc2lzdGFudCAmJiBBcnJheS5pc0FycmF5KHNvdXJjZXMpXG4gICAgICAgID8gKHNvdXJjZXMgYXMgQXR0YWNobWVudEZpbGVbXSlcbiAgICAgICAgOiBbXVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRDbGljayA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgIC8vIFBlcm1pdGlyIHByZXZpc3VhbGl6YWNpw7NuIHNpIHRpZW5lIGFyY2hpdm8gbG9jYWwgbyBVUkxzIGRlbCBiYWNrZW5kXG4gICAgaWYgKFxuICAgICAgYXR0YWNobWVudC5maWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgICBhdHRhY2htZW50LnVybF90aHVtYm5haWwgfHxcbiAgICAgIGF0dGFjaG1lbnQudXJsX29yaWdpbmFsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9maWxlXG4gICAgKSB7XG4gICAgICBzZXRQcmV2aWV3QXR0YWNobWVudChhdHRhY2htZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlUHJldmlldyA9ICgpID0+IHtcbiAgICBzZXRQcmV2aWV3QXR0YWNobWVudChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQXR0YWNobWVudERvd25sb2FkID0gYXN5bmMgKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRGaWxlKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gYXR0YWNobWVudC5uYW1lLmluY2x1ZGVzKCcuJykgPyAnJyA6IGAuJHthdHRhY2htZW50LnR5cGV9YFxuICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7YXR0YWNobWVudC5uYW1lfSR7ZXh0ZW5zaW9ufWBcbiAgICBjb25zdCBmaWxlVXJsID0gYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfHwgYXR0YWNobWVudC51cmxfZmlsZSB8fCBhdHRhY2htZW50LnVybF90aHVtYm5haWxcblxuICAgIHRyeSB7XG4gICAgICBsZXQgYmxvYlVybDogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICAgICAgaWYgKGZpbGVVcmwpIHtcbiAgICAgICAgY29uc3QgZG93bmxvYWRlZEZpbGUgPSBhd2FpdCBkb3dubG9hZEZpbGVGcm9tVXJsKGZpbGVVcmwsIGZpbGVOYW1lLCBhdHRhY2htZW50LnR5cGUpXG4gICAgICAgIGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvd25sb2FkZWRGaWxlKVxuICAgICAgfSBlbHNlIGlmIChhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgIGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGF0dGFjaG1lbnQuZmlsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKCFibG9iVXJsKSByZXR1cm5cblxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gYmxvYlVybFxuICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluaylcbiAgICAgIGxpbmsuY2xpY2soKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKVxuICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVcmwpXG4gICAgICB9LCAxMDApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkb3dubG9hZCBhdHRhY2htZW50JywgZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzQ2hhbmdlUHJvamVjdCAmJiBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZXNzYWdlV3JhcHBlciBrZXk9e2lkfSBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfSBkYXRhLW1lc3NhZ2UtaWQ9e2lkfSBoYXNGZWVkYmFjaz17ZmFsc2V9PlxuICAgICAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc1RoaW5raW5nICYmIDxBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIC8+fVxuICAgICAgICAgIDxNZXNzYWdlQ29udGVudFdyYXBwZXJcbiAgICAgICAgICAgIGlzQ2hhbmdlUHJvamVjdD17aXNDaGFuZ2VQcm9qZWN0fVxuICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZX1cbiAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICBpc0Vycm9yPXtpc0Vycm9yfVxuICAgICAgICAgICAgbWVzc2FnZUV4dHJhQ29udGVudD17PE1lc3NhZ2VPcHRpb25zIG9wdGlvbnM9e29wdGlvbnMgYXMgYW55fSBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn0gLz59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgICAgIDwvTWVzc2FnZVdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmVlZGJhY2tDbGljayA9IChmZWVkYmFjazogRmVlZGJhY2spID0+IHtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSBpZFxuICAgICAgLnNwbGl0KCctJylcbiAgICAgIC5maWx0ZXIocXVlc3Rpb25JZCA9PiBxdWVzdGlvbklkICE9PSAnYW5zd2VyJylcbiAgICAgIC5qb2luKCctJylcbiAgICBoYW5kbGVGZWVkYmFjaz8uKGZlZWRiYWNrLCBzZXNzaW9uSWQpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VJdGVtV3JhcHBlciAkaXNBc3Npc3RhbnQ9e2lzQXNzaXN0YW50fT5cbiAgICAgIHtpc0Fzc2lzdGFudCAmJiAhaXNUaGlua2luZyAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgIDxTQ01lc3NhZ2VJdGVtSW5uZXI+XG4gICAgICAgIHshIW1lc3NhZ2VBdHRhY2htZW50cy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93ICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgICAge21lc3NhZ2VBdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIC8vIERldGVjdGFyIHNpIGVzIHVuIGFyY2hpdm8gZGUgYXVkaW9cbiAgICAgICAgICAgICAgY29uc3QgYXR0YWNobWVudFR5cGUgPSBhdHRhY2htZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpIHx8ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnROYW1lID0gYXR0YWNobWVudD8ubmFtZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBpc0F1ZGlvRmlsZSA9XG4gICAgICAgICAgICAgICAgYXR0YWNobWVudFR5cGUuc3RhcnRzV2l0aCgnYXVkaW8vJykgfHxcbiAgICAgICAgICAgICAgICBbJ2ZsYWMnLCAnbTRhJywgJ21wMycsICdtcDQnLCAnb2dhJywgJ29nZycsICd3YXYnLCAnd2VibSddLmluY2x1ZGVzKGF0dGFjaG1lbnRUeXBlKSB8fFxuICAgICAgICAgICAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5zb21lKGV4dCA9PlxuICAgICAgICAgICAgICAgICAgYXR0YWNobWVudE5hbWUuZW5kc1dpdGgoZXh0KVxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICBpZiAoaXNBdWRpb0ZpbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPEF0dGFjaG1lbnRDYXJkQXVkaW8ga2V5PXtgJHthdHRhY2htZW50LmlkfS0ke2F0dGFjaG1lbnQubmFtZX1gfSBhdHRhY2htZW50PXthdHRhY2htZW50fSAvPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8QXR0YWNobWVudENhcmRcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH1cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ9e2F0dGFjaG1lbnR9XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbkluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQ9eygpID0+IGhhbmRsZUF0dGFjaG1lbnREb3dubG9hZChhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRDbGljayhhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDQXR0YWNobWVudHNSb3c+XG4gICAgICAgICl9XG4gICAgICAgIHthcHByb3ZhbCAmJiBhcHByb3ZhbC5wZW5kaW5nX2FjdGlvbnMgJiYgKFxuICAgICAgICAgIDxTQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgICAgIDxBcHByb3ZhbEJveFxuICAgICAgICAgICAgICBhY3Rpb25zPXthcHByb3ZhbC5wZW5kaW5nX2FjdGlvbnN9XG4gICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgIG9uQXBwcm92ZT17dGhyZWFkSWRzID0+IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24odGhyZWFkSWRzLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICBvblJlamVjdD17dGhyZWFkSWRzID0+IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24odGhyZWFkSWRzLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgIGlzUHJvamVjdERlbGV0ZWQ9e3Byb3BzLnByb2plY3RNZXRhZGF0YT8uaXNfZGVsZXRlZCA9PT0gdHJ1ZX1cbiAgICAgICAgICAgICAgaXNFeHBhbmRlZD17cHJvcHMuZXhwYW5kZWR9XG4gICAgICAgICAgICAgIGhpdGxJbnN0YW5jZUlkPXthcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWR9XG4gICAgICAgICAgICAgIHdhcm5pbmdNZXNzYWdlPXthcHByb3ZhbC53YXJuaW5nX21lc3NhZ2V9XG4gICAgICAgICAgICAgIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ9e2FwcHJvdmFsLm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgICAgeyghIW1lc3NhZ2UgfHwgaXNTdHJlYW1pbmcpICYmICFhcHByb3ZhbCAmJiAhKGlzQXNzaXN0YW50ICYmICEhbWVzc2FnZUF0dGFjaG1lbnRzLmxlbmd0aCkgJiYgKFxuICAgICAgICAgIDxTdHJlYW1pbmdNZXNzYWdlQm9keVxuICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZSA/PyAnJ31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXshIWlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn1cbiAgICAgICAgICAgIGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH1cbiAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICBhcHByb3ZhbD17YXBwcm92YWx9XG4gICAgICAgICAgICBpc0Vycm9yPXtpc0Vycm9yfVxuICAgICAgICAgICAgc291cmNlcz17c291cmNlc31cbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zPXtzdWdnZXN0aW9uc31cbiAgICAgICAgICAgIGNyZWF0ZUFnZW50Rm9sbG93VXA9e2NyZWF0ZUFnZW50Rm9sbG93VXB9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFja0NsaWNrPXtoYW5kbGVGZWVkYmFja0NsaWNrfVxuICAgICAgICAgICAgZGlzYWJsZUZlZWRiYWNrPXtkaXNhYmxlRmVlZGJhY2sgPz8gbnVsbH1cbiAgICAgICAgICAgIGhhbmRsZVN1Z2dlc3Rpb25DbGljaz17aGFuZGxlU3VnZ2VzdGlvbkNsaWNrfVxuICAgICAgICAgICAgc3VnZ2VzdGlvbnNEaXNhYmxlZD17ISFwcm9wcy5pc1N0cmVhbWluZyB8fCAhIWhhc1NlbGVjdGVkU3VnZ2VzdGlvbn1cbiAgICAgICAgICAgIG1lc3NhZ2VJZD17aWR9XG4gICAgICAgICAgICBpc0xhc3RNZXNzYWdlPXtpc0xhc3RNZXNzYWdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1NDTWVzc2FnZUl0ZW1Jbm5lcj5cbiAgICAgIDxBdHRhY2htZW50UHJldmlld01vZGFsXG4gICAgICAgIGlzT3Blbj17ISFwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgICAgb25DbG9zZT17aGFuZGxlQ2xvc2VQcmV2aWV3fVxuICAgICAgICBhdHRhY2htZW50PXtwcmV2aWV3QXR0YWNobWVudH1cbiAgICAgIC8+XG4gICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgKVxufSlcblxuY29uc3QgQ2hhdEFJTWVzc2FnZXNJbm5lciA9ICh7XG4gIHVzZXJJbml0aWFsTWVzc2FnZSxcbiAgaW5pdGlhbENoYXRJZCxcbiAgb25FcnJvcixcbiAgb25TZW5kTWVzc2FnZVJlYWR5LFxuICBvblNjcm9sbFRvQm90dG9tLFxuICBhdHRhY2htZW50cyxcbiAgYWdlbnRzLFxuICBleHBhbmRlZCxcbn06IENoYXRBSU1lc3NhZ2VzUHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgeyBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlLCBhZ2VudCB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IGV2ZW50ID0gdXNlRXZlbnQoKVxuICBjb25zdCBhdXRoVXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCBtZXNzYWdlc1JlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgY29uc3QgY2hhdEluaXRpYWxpemVkUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBpc0xvYWRpbmdNb3JlUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCB1c2VyU2Nyb2xsaW5nUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBzY3JvbGxUaHJlc2hvbGRSZWYgPSB1c2VSZWYoMzkpXG4gIGNvbnN0IGxhc3RTY3JvbGxUb3BSZWYgPSB1c2VSZWYoMClcbiAgY29uc3Qgc2hvd1Njcm9sbFRvQm90dG9tUmVmID0gdXNlUmVmKGZhbHNlKVxuICBjb25zdCBzY3JvbGxSYWZSZWYgPSB1c2VSZWY8bnVtYmVyIHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3Nob3dTY3JvbGxUb0JvdHRvbSwgc2V0U2hvd1Njcm9sbFRvQm90dG9tXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkcywgc2V0U2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkc10gPSB1c2VTdGF0ZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oe30pXG5cbiAgY29uc3Qge1xuICAgIG1lc3NhZ2VzLFxuICAgIGxvYWRpbmdNZXNzYWdlcyxcbiAgICBpc0xvYWRpbmdNb3JlTWVzc2FnZXMsXG4gICAgd2FpdGluZ1Jlc3BvbnNlLFxuICAgIGlzV3JpdGluZyxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICBzdHJlYW1BY3Rpdml0eSxcbiAgICBhY3RpdmVMb2FkaW5ncyxcbiAgICBzZW5kTWVzc2FnZSxcbiAgICBjaGFuZ2VQcm9qZWN0LFxuICAgIGhhbmRsZUZlZWRiYWNrLFxuICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb24sXG4gICAgaW5pdGlhbGl6ZUNoYXQsXG4gICAgaGFuZGxlU2Nyb2xsLFxuICAgIHN0b3BHZW5lcmF0aW9uLFxuICB9ID0gdXNlQ2hhdE1hbmFnZXIoe1xuICAgIGNoYXRJZDogaW5pdGlhbENoYXRJZCB8fCB1bmRlZmluZWQsXG4gICAgdXNlckluaXRpYWxNZXNzYWdlLFxuICAgIG9uRXJyb3IsXG4gICAgYXR0YWNobWVudHMsXG4gICAgYWdlbnRzLFxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRpb246IFByb2plY3QpID0+IHtcbiAgICAgIGNoYW5nZVByb2plY3Qob3B0aW9uKVxuICAgIH0sXG4gICAgW2NoYW5nZVByb2plY3RdXG4gIClcblxuICBjb25zdCBoYW5kbGVTdWdnZXN0aW9uQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZUlkOiBzdHJpbmcsIHN1Z2dlc3Rpb246IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFzdWdnZXN0aW9uPy50cmltKCkpIHJldHVyblxuICAgICAgaWYgKHNlbGVjdGVkU3VnZ2VzdGlvbk1lc3NhZ2VJZHNbbWVzc2FnZUlkXSkgcmV0dXJuXG4gICAgICBjb25zdCBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPSBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJyAmJiAvKG1haWFrZXJ8bWFya2V0cGxhY2UpL2kudGVzdChhZ2VudD8ubmFtZSB8fCAnJylcbiAgICAgIGV2ZW50KEVWRU5UUy5haUNoYXRTdWdnZXN0ZWRBbnN3ZXIsIHtcbiAgICAgICAgYWdlbnRfdHlwZTogaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID8gJ21hcmtldHBsYWNlJyA6IGFnZW50Py50eXBlLFxuICAgICAgfSlcbiAgICAgIHNldFNlbGVjdGVkU3VnZ2VzdGlvbk1lc3NhZ2VJZHMocHJldiA9PiAoeyAuLi5wcmV2LCBbbWVzc2FnZUlkXTogdHJ1ZSB9KSlcbiAgICAgIHNlbmRNZXNzYWdlKHN1Z2dlc3Rpb24pXG4gICAgfSxcbiAgICBbc2VuZE1lc3NhZ2UsIHNlbGVjdGVkU3VnZ2VzdGlvbk1lc3NhZ2VJZHMsIGV2ZW50LCBhZ2VudD8uZW50aXR5LCBhZ2VudD8ubmFtZSwgYWdlbnQ/LnR5cGVdXG4gIClcblxuICAvKipcbiAgICogQWN0dWFsaXphIGVsIGVzdGFkbyBkZWwgYm90w7NuIFwic2Nyb2xsIHRvIGJvdHRvbVwiIGNvbXBhcmFuZG8gbGEgcG9zaWNpw7NuXG4gICAqIGFjdHVhbCBkZWwgc2Nyb2xsIGNvbiBlbCBmb25kby4gVXNhIHVuIHJlZiBwYXJhIGV2aXRhciBgc2V0U3RhdGVgIGN1YW5kb1xuICAgKiBlbCB2YWxvciBubyBjYW1iaWEuXG4gICAqL1xuICBjb25zdCB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IGVsID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgIGlmICghZWwpIHJldHVyblxuICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gZWxcbiAgICBjb25zdCBkaXN0YW5jZUZyb21Cb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHRcbiAgICBjb25zdCBzaG91bGRTaG93ID0gZGlzdGFuY2VGcm9tQm90dG9tID4gNTBcbiAgICBpZiAoc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgIT09IHNob3VsZFNob3cpIHtcbiAgICAgIHNob3dTY3JvbGxUb0JvdHRvbVJlZi5jdXJyZW50ID0gc2hvdWxkU2hvd1xuICAgICAgc2V0U2hvd1Njcm9sbFRvQm90dG9tKHNob3VsZFNob3cpXG4gICAgfVxuICB9LCBbXSlcblxuICAvKipcbiAgICogU2Nyb2xsIGlubWVkaWF0byBhbCBmb25kbyAoZGVudHJvIGRlIHJBRiBwYXJhIGNvb3JkaW5hciBjb24gZWwgcGFpbnQpXG4gICAqIHkgYWN0dWFsaXphIGxhIHZpc2liaWxpZGFkIGRlbCBib3TDs24uIFJlc3BldGEgYHNraXBJZlVzZXJTY3JvbGxpbmdgIHBhcmFcbiAgICogbm8gc29icmVzY3JpYmlyIGVsIHNjcm9sbCBtYW51YWwgZGVsIHVzdWFyaW8gZHVyYW50ZSBlbCBzdHJlYW1pbmcuXG4gICAqL1xuICBjb25zdCBzY3JvbGxUb0JvdHRvbVJhZiA9IHVzZUNhbGxiYWNrKFxuICAgIChvcHRzOiB7IHNraXBJZlVzZXJTY3JvbGxpbmc/OiBib29sZWFuOyBkZWxheU1zPzogbnVtYmVyIH0gPSB7fSkgPT4ge1xuICAgICAgY29uc3QgeyBza2lwSWZVc2VyU2Nyb2xsaW5nID0gZmFsc2UsIGRlbGF5TXMgPSAwIH0gPSBvcHRzXG4gICAgICBjb25zdCBydW4gPSAoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgZWwgPSBtZXNzYWdlc1JlZi5jdXJyZW50XG4gICAgICAgICAgaWYgKCFlbCkgcmV0dXJuXG4gICAgICAgICAgaWYgKHNraXBJZlVzZXJTY3JvbGxpbmcgJiYgdXNlclNjcm9sbGluZ1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBlbC5zY3JvbGxUb3AgPSBlbC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5KClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGlmIChkZWxheU1zID4gMCkgc2V0VGltZW91dChydW4sIGRlbGF5TXMpXG4gICAgICBlbHNlIHJ1bigpXG4gICAgfSxcbiAgICBbdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50KSByZXR1cm5cbiAgICBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbFRvKHtcbiAgICAgIHRvcDogbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgfSlcbiAgICAvLyBEYXIgdGllbXBvIGFsIHNtb290aC1zY3JvbGwgYW50ZXMgZGUgcmVjYWxjdWxhciBsYSB2aXNpYmlsaWRhZCBkZWwgYm90w7NuLlxuICAgIHNldFRpbWVvdXQodXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eSwgNTAwKVxuICB9LCBbdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eV0pXG5cbiAgY29uc3QgaGFuZGxlU2Nyb2xsVG9Cb3R0b20gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuVUlFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGUuY3VycmVudFRhcmdldFxuXG4gICAgICBpZiAoc2Nyb2xsUmFmUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUoc2Nyb2xsUmFmUmVmLmN1cnJlbnQpXG4gICAgICB9XG5cbiAgICAgIHNjcm9sbFJhZlJlZi5jdXJyZW50ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsVG9wLCBzY3JvbGxIZWlnaHQsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyXG5cbiAgICAgICAgY29uc3QgaXNTY3JvbGxpbmdVcCA9IHNjcm9sbFRvcCA8IGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc1Njcm9sbGluZ1VwKSB7XG4gICAgICAgICAgc2Nyb2xsVGhyZXNob2xkUmVmLmN1cnJlbnQgPSAxNVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNOZWFyQm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVG9wIC0gY2xpZW50SGVpZ2h0IDwgc2Nyb2xsVGhyZXNob2xkUmVmLmN1cnJlbnRcblxuICAgICAgICBpZiAoaXNOZWFyQm90dG9tKSB7XG4gICAgICAgICAgc2Nyb2xsVGhyZXNob2xkUmVmLmN1cnJlbnQgPSAzOVxuICAgICAgICB9XG5cbiAgICAgICAgdXNlclNjcm9sbGluZ1JlZi5jdXJyZW50ID0gIWlzTmVhckJvdHRvbVxuICAgICAgICBsYXN0U2Nyb2xsVG9wUmVmLmN1cnJlbnQgPSBzY3JvbGxUb3BcblxuICAgICAgICB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5KClcblxuICAgICAgICBpZiAoaXNOZWFyQm90dG9tICYmIG9uU2Nyb2xsVG9Cb3R0b20pIHtcbiAgICAgICAgICBvblNjcm9sbFRvQm90dG9tKClcbiAgICAgICAgfVxuXG4gICAgICAgIGhhbmRsZVNjcm9sbChjb250YWluZXIpXG4gICAgICB9KVxuICAgIH0sXG4gICAgW29uU2Nyb2xsVG9Cb3R0b20sIGhhbmRsZVNjcm9sbCwgdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eV1cbiAgKVxuXG4gIC8vIHJlZnMgdG8gc3RhYmlsaXplIGZ1bmN0aW9ucyBhbmQgYXZvaWQgdW5uZWNlc3NhcnkgcmUtcmVuZGVyc1xuICBjb25zdCBzZW5kTWVzc2FnZVJlZiA9IHVzZVJlZihzZW5kTWVzc2FnZSlcbiAgY29uc3Qgc3RvcEdlbmVyYXRpb25SZWYgPSB1c2VSZWYoc3RvcEdlbmVyYXRpb24pXG4gIGNvbnN0IG9uU2VuZE1lc3NhZ2VSZWFkeVJlZiA9IHVzZVJlZihvblNlbmRNZXNzYWdlUmVhZHkpXG5cbiAgLy8gdXBkYXRlIHJlZnMgd2hlbiBmdW5jdGlvbnMgY2hhbmdlXG4gIHNlbmRNZXNzYWdlUmVmLmN1cnJlbnQgPSBzZW5kTWVzc2FnZVxuICBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50ID0gc3RvcEdlbmVyYXRpb25cbiAgb25TZW5kTWVzc2FnZVJlYWR5UmVmLmN1cnJlbnQgPSBvblNlbmRNZXNzYWdlUmVhZHlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCkge1xuICAgICAgb25TZW5kTWVzc2FnZVJlYWR5UmVmLmN1cnJlbnQoc2VuZE1lc3NhZ2VSZWYuY3VycmVudCwgc3RvcEdlbmVyYXRpb25SZWYuY3VycmVudCwgd2FpdGluZ1Jlc3BvbnNlLCBpc1dyaXRpbmcpXG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlLCBpc1dyaXRpbmddKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaXNMb2FkaW5nTW9yZVJlZi5jdXJyZW50ID0gaXNMb2FkaW5nTW9yZU1lc3NhZ2VzXG4gIH0sIFtpc0xvYWRpbmdNb3JlTWVzc2FnZXNdKVxuXG4gIC8vIEN1YW5kbyBlbCBhZ2VudGUgZW1waWV6YSBhIHJlc3BvbmRlciwgcmVzZXRlYXIgZWwgZmxhZyB5IGVsIHVtYnJhbCBwYXJhIGFjdGl2YXIgZWwgYXV0by1zY3JvbGxcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlKSB7XG4gICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgc2Nyb2xsVGhyZXNob2xkUmVmLmN1cnJlbnQgPSAzOVxuICAgIH1cbiAgfSwgW3dhaXRpbmdSZXNwb25zZV0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50KSB7XG4gICAgICBjaGF0SW5pdGlhbGl6ZWRSZWYuY3VycmVudCA9IHRydWVcbiAgICAgIGluaXRpYWxpemVDaGF0KClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIEF1dG9zY3JvbGwgbWllbnRyYXMgZWwgdGV4dG8gZGVsIHN0cmVhbSBjcmVjZS4gRWwgdGV4dG8gc2UgcGludGEgYWwgcml0bW9cbiAgLy8gZGUgYHVzZVNtb290aFN0cmVhbVRleHRgICh+NjBmcHMpLCBubyBhbCByaXRtbyBkZSBsbGVnYWRhIGRlIHRva2VucyBkZWxcbiAgLy8gYmFja2VuZDogcG9yIGVzbyBhY8OhIHVzYW1vcyB1biBsb29wIGRlIHJBRiBxdWUgY29tcGFyYSBgc2Nyb2xsSGVpZ2h0YFxuICAvLyBjb250cmEgZWwgw7psdGltbyB2YWxvciBvYnNlcnZhZG8geSBhanVzdGEgc29sbyBjdWFuZG8gY2FtYmlhLiBBc8OtIGVsXG4gIC8vIHNjcm9sbCBxdWVkYSBwZXJmZWN0YW1lbnRlIHNpbmNyb25pemFkbyBjb24gbGEgYW5pbWFjacOzbiBkZWwgdGV4dG8gc2luXG4gIC8vIGRlcGVuZGVyIGRlIGxhIGNhZGVuY2lhIGRlbCBzdHJlYW1pbmdTdG9yZS5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXdhaXRpbmdSZXNwb25zZSAmJiAhaXNXcml0aW5nKSByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKCFtZXNzYWdlc1JlZi5jdXJyZW50KSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgcmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsXG4gICAgbGV0IGxhc3RIZWlnaHQgPSBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodFxuXG4gICAgY29uc3QgdGljayA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gbWVzc2FnZXNSZWYuY3VycmVudFxuICAgICAgaWYgKCFlbCkge1xuICAgICAgICByYWZJZCA9IG51bGxcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50SGVpZ2h0ID0gZWwuc2Nyb2xsSGVpZ2h0XG4gICAgICBpZiAoY3VycmVudEhlaWdodCAhPT0gbGFzdEhlaWdodCkge1xuICAgICAgICBsYXN0SGVpZ2h0ID0gY3VycmVudEhlaWdodFxuICAgICAgICBpZiAoIXVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCkge1xuICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IGN1cnJlbnRIZWlnaHRcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5KClcbiAgICAgIH1cbiAgICAgIHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spXG4gICAgfVxuXG4gICAgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljaylcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJhZklkICE9IG51bGwpIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKVxuICAgIH1cbiAgfSwgW3dhaXRpbmdSZXNwb25zZSwgaXNXcml0aW5nLCB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5XSlcblxuICAvLyBBbCBjb21lbnphciBhIGVzcGVyYXIgbGEgcmVzcHVlc3RhIGRlbCBiYWNrZW5kLCBzY3JvbGwgaW5pY2lhbCBhbCBmb25kby5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAod2FpdGluZ1Jlc3BvbnNlICYmIG1lc3NhZ2VzUmVmLmN1cnJlbnQpIHtcbiAgICAgIHNjcm9sbFRvQm90dG9tUmFmKHsgc2tpcElmVXNlclNjcm9sbGluZzogdHJ1ZSB9KVxuICAgIH1cbiAgfSwgW3dhaXRpbmdSZXNwb25zZSwgc2Nyb2xsVG9Cb3R0b21SYWZdKVxuXG4gIC8vIFNjcm9sbCBjdWFuZG8gY2FtYmlhbiBsb3MgbWVuc2FqZXM6IGRpc3Rpbmd1ZSBcIm51ZXZvIG1lbnNhamVcIiAoYWdyZWdhZG8pXG4gIC8vIGRlIFwicmVlbXBsYXpvXCIgKG1pc21vIGlkL2xlbmd0aCwgZWouIGZlZWRiYWNrIG8gYXBwcm92YWxTdGF0dXMpLiBFblxuICAvLyByZWVtcGxhem9zIHNvbG8gc2UgcmVjYWxjdWxhIGxhIHZpc2liaWxpZGFkIGRlbCBib3TDs24gc2luIGZvcnphciBzY3JvbGwuXG4gIGNvbnN0IGxhc3RNZXNzYWdlSWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgbGFzdE1lc3NhZ2VzTGVuZ3RoUmVmID0gdXNlUmVmPG51bWJlcj4oMClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW1lc3NhZ2VzUmVmLmN1cnJlbnQgfHwgbG9hZGluZ01lc3NhZ2VzIHx8IGlzTG9hZGluZ01vcmVNZXNzYWdlcyB8fCBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGxhc3RNZXNzYWdlID0gbWVzc2FnZXNbbWVzc2FnZXMubGVuZ3RoIC0gMV1cbiAgICBjb25zdCBsYXN0SWQgPSBsYXN0TWVzc2FnZT8uaWQgPz8gbnVsbFxuICAgIGNvbnN0IHByZXZJZCA9IGxhc3RNZXNzYWdlSWRSZWYuY3VycmVudFxuICAgIGNvbnN0IHByZXZMZW4gPSBsYXN0TWVzc2FnZXNMZW5ndGhSZWYuY3VycmVudFxuICAgIGxhc3RNZXNzYWdlSWRSZWYuY3VycmVudCA9IGxhc3RJZFxuICAgIGxhc3RNZXNzYWdlc0xlbmd0aFJlZi5jdXJyZW50ID0gbWVzc2FnZXMubGVuZ3RoXG5cbiAgICBjb25zdCBpc05ld01lc3NhZ2UgPSBsYXN0SWQgIT09IHByZXZJZCB8fCBtZXNzYWdlcy5sZW5ndGggIT09IHByZXZMZW5cbiAgICBpZiAoIWlzTmV3TWVzc2FnZSkge1xuICAgICAgdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eSgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBjb250YWluZXIgPSBtZXNzYWdlc1JlZi5jdXJyZW50XG4gICAgY29uc3QgaXNBdEJvdHRvbSA9IGNvbnRhaW5lci5zY3JvbGxIZWlnaHQgLSBjb250YWluZXIuc2Nyb2xsVG9wIDw9IGNvbnRhaW5lci5jbGllbnRIZWlnaHQgKyAxMDBcbiAgICBjb25zdCBoYXNJbml0aWFsTWVzc2FnZSA9IG1lc3NhZ2VzLnNvbWUobXNnID0+IG1zZy5pZCA9PT0gJ3VzZXItaW5pdGlhbC1tZXNzYWdlJylcbiAgICBjb25zdCBpc0FwcHJvdmFsID0gISFsYXN0TWVzc2FnZSAmJiAobGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgnYXBwcm92YWwtJykgfHwgISFsYXN0TWVzc2FnZS5hcHByb3ZhbClcbiAgICBjb25zdCBpc0Fuc3dlck9yUXVlc3Rpb24gPVxuICAgICAgISFsYXN0TWVzc2FnZSAmJiAobGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgnYW5zd2VyLScpIHx8IGxhc3RNZXNzYWdlLmlkLnN0YXJ0c1dpdGgoJ3F1ZXN0aW9uLScpKVxuXG4gICAgLy8gQXBwcm92YWw6IHNlY3VlbmNpYSBkZSBzY3JvbGxzIGNvbiBkZWxheSBwb3JxdWUgZWwgQXBwcm92YWxCb3ggbmVjZXNpdGFcbiAgICAvLyB1biB0aWNrIHBhcmEgbWVkaXJzZS4gU2Nyb2xsZWEgYXVucXVlIGVsIHVzdWFyaW8gbm8gZXN0w6kgYWwgZm9uZG8gc2kgbm9cbiAgICAvLyBlc3TDoSBzY3JvbGxlYW5kbyBtYW51YWxtZW50ZS5cbiAgICBpZiAoaXNBcHByb3ZhbCAmJiAoaXNBdEJvdHRvbSB8fCAhdXNlclNjcm9sbGluZ1JlZi5jdXJyZW50KSkge1xuICAgICAgc2Nyb2xsVG9Cb3R0b21SYWYoKVxuICAgICAgc2Nyb2xsVG9Cb3R0b21SYWYoKVxuICAgICAgc2Nyb2xsVG9Cb3R0b21SYWYoeyBkZWxheU1zOiAxMDAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIE51ZXZvcyBhbnN3ZXIvcXVlc3Rpb246IHNjcm9sbCBzaSBlbCB1c3VhcmlvIHlhIGVzdGFiYSBhbCBmb25kby5cbiAgICBpZiAoaXNBbnN3ZXJPclF1ZXN0aW9uICYmIGlzQXRCb3R0b20pIHtcbiAgICAgIHNjcm9sbFRvQm90dG9tUmFmKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIENhc28gYm9yZGU6IGNhbWJpb3MgZGUgbWVuc2FqZXMgc2luIHNlciBudWV2byBhbnN3ZXIvdXNlci9hcHByb3ZhbFxuICAgIC8vIHBlcm8gc8OtIHVuIG1lbnNhamUgbnVldm8gKG5vIGVsIFwidXNlci1pbml0aWFsLW1lc3NhZ2VcIikuIFNjcm9sbGVhLlxuICAgIGlmICghaXNBbnN3ZXJPclF1ZXN0aW9uICYmICFpc0FwcHJvdmFsICYmICFoYXNJbml0aWFsTWVzc2FnZSAmJiBtZXNzYWdlcy5sZW5ndGggPiBwcmV2TGVuKSB7XG4gICAgICBzY3JvbGxUb0JvdHRvbVJhZigpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5KClcbiAgfSwgW21lc3NhZ2VzLCBsb2FkaW5nTWVzc2FnZXMsIGlzTG9hZGluZ01vcmVNZXNzYWdlcywgc2Nyb2xsVG9Cb3R0b21SYWYsIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHldKVxuXG4gIC8vIEVzdGFkbyBpbmljaWFsIGRlbCBib3TDs24gc2Nyb2xsLXRvLWJvdHRvbSBhbCB0ZXJtaW5hciBsb2FkaW5nTWVzc2FnZXMuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsb2FkaW5nTWVzc2FnZXMpIHtcbiAgICAgIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkoKVxuICAgIH1cbiAgfSwgW2xvYWRpbmdNZXNzYWdlcywgbWVzc2FnZXMubGVuZ3RoLCB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5XSlcblxuICAvLyBPYnRlbmVyIGVsIMO6bHRpbW8gbWVuc2FqZSBkZWwgdXN1YXJpbyBwYXJhIHZlcmlmaWNhciBzaSB0aWVuZSBhdHRhY2htZW50c1xuICBjb25zdCBsYXN0VXNlck1lc3NhZ2UgPSBtZXNzYWdlc1xuICAgIC5maWx0ZXIobXNnID0+IG1zZy5yb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuVVNFUiB8fCBtc2cudXNlci5pZCA9PT0gYXV0aFVzZXIuaWQudG9TdHJpbmcoKSlcbiAgICAuYXQoLTEpXG5cbiAgY29uc3QgYXR0YWNobWVudHNDb3VudCA9XG4gICAgKEFycmF5LmlzQXJyYXkobGFzdFVzZXJNZXNzYWdlPy5hdHRhY2htZW50cykgPyBsYXN0VXNlck1lc3NhZ2UuYXR0YWNobWVudHMubGVuZ3RoIDogMCkgfHxcbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LnNvdXJjZXMpID8gbGFzdFVzZXJNZXNzYWdlLnNvdXJjZXMubGVuZ3RoIDogMClcblxuICBjb25zdCBzdHJlYW1Mb2FkaW5nRGlzcGxheSA9IHJlc29sdmVTdHJlYW1Mb2FkaW5nRGlzcGxheSh7XG4gICAgc3RyZWFtQWN0aXZpdHksXG4gICAgbG9hZGluZ01lc3NhZ2UsXG4gICAgYWN0aXZlTG9hZGluZ3M6IGFjdGl2ZUxvYWRpbmdzIHx8IHt9LFxuICAgIHdhaXRpbmdSZXNwb25zZSxcbiAgICBpc1dlYlNlYXJjaEFjdGl2ZSxcbiAgICBpc0RlZXBTZWFyY2hBY3RpdmUsXG4gICAgaGFzQXR0YWNobWVudHM6IEJvb2xlYW4oYXR0YWNobWVudHNDb3VudCksXG4gICAgYXR0YWNobWVudHNDb3VudCxcbiAgICB0LFxuICB9KVxuXG4gIGNvbnN0IGlzU2Nyb2xsT25QYXJlbnQgPSAhIWV4cGFuZGVkXG4gIGNvbnN0IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA9IGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuXG4gIC8vIEFsIGV4cGFuZGlyL2NvbnRyYWVyIGVsIG1vZGFsIGVsIHJlZiBwYXNhIGEgb3RybyBjb250ZW5lZG9yIChzY3JvbGxUb3Agc2UgcmVzZXRlYSBhIDApLlxuICAvLyBSZXN0YXVyYXIgbGEgcG9zaWNpw7NuIGRlIHNjcm9sbCBhbnRlcyBkZWwgcGFpbnQgcGFyYSBldml0YXIgcXVlIGxhIGNvbnZlcnNhY2nDs24gc2FsdGUgYXJyaWJhLlxuICBjb25zdCBleHBhbmRlZFJlZiA9IHVzZVJlZihleHBhbmRlZClcbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZXhwYW5kZWRSZWYuY3VycmVudCAhPT0gZXhwYW5kZWQgJiYgbWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgY29uc3Qgc2F2ZWRTY3JvbGxUb3AgPSBsYXN0U2Nyb2xsVG9wUmVmLmN1cnJlbnRcbiAgICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gc2F2ZWRTY3JvbGxUb3BcbiAgICAgIGV4cGFuZGVkUmVmLmN1cnJlbnQgPSBleHBhbmRlZFxuICAgIH0gZWxzZSB7XG4gICAgICBleHBhbmRlZFJlZi5jdXJyZW50ID0gZXhwYW5kZWRcbiAgICB9XG4gIH0sIFtleHBhbmRlZF0pXG5cbiAgaWYgKGxvYWRpbmdNZXNzYWdlcykge1xuICAgIHJldHVybiAoXG4gICAgICA8RmFkZSBmaWxsPlxuICAgICAgICA8TG9hZGVyIC8+XG4gICAgICA8L0ZhZGU+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgbWVzc2FnZXNDb250ZW50ID0gKFxuICAgIDw+XG4gICAgICB7aXNMb2FkaW5nTW9yZU1lc3NhZ2VzICYmIDxMb2FkaW5nVGV4dCB0ZXh0PXt0KCdjaGF0LmxvYWRpbmdNb3JlJyl9IC8+fVxuICAgICAgPD5cbiAgICAgICAge21lc3NhZ2VzLm1hcCgobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0Fzc2lzdGFudE1lc3NhZ2UgPSBtZXNzYWdlLnJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5BU1NJU1RBTlQgfHwgbWVzc2FnZS51c2VyLmlkID09PSAnYXNzaXN0YW50J1xuICAgICAgICAgIGNvbnN0IGlzTGFzdE1lc3NhZ2UgPSBpbmRleCA9PT0gbWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICAgIGNvbnN0IGlzU3RyZWFtaW5nID1cbiAgICAgICAgICAgIGlzQXNzaXN0YW50TWVzc2FnZSAmJlxuICAgICAgICAgICAgaXNMYXN0TWVzc2FnZSAmJlxuICAgICAgICAgICAgKHdhaXRpbmdSZXNwb25zZSB8fCBpc1dyaXRpbmcpICYmXG4gICAgICAgICAgICBpc1N0cmVhbWluZ1BsYWNlaG9sZGVyTWVzc2FnZUlkKG1lc3NhZ2UuaWQpXG5cbiAgICAgICAgICAvLyBObyBmaWx0cmFyIGVsIHBsYWNlaG9sZGVyIGRlbCBtZW5zYWplIGVuIHN0cmVhbWluZzogc3UgdGV4dG8gdml2ZVxuICAgICAgICAgIC8vIGVuIGVsIHN0cmVhbWluZ1N0b3JlIHkgYG1lc3NhZ2UubWVzc2FnZWAgZXMgJycgaGFzdGEgZWwgY29tcGxldGUuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWlzU3RyZWFtaW5nICYmXG4gICAgICAgICAgICAhKG1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aCB8fCBtZXNzYWdlLnNvdXJjZXM/Lmxlbmd0aCkgJiZcbiAgICAgICAgICAgICFtZXNzYWdlLm1lc3NhZ2UgJiZcbiAgICAgICAgICAgICFtZXNzYWdlLnByb2plY3Q/Lm5hbWUgJiZcbiAgICAgICAgICAgICFtZXNzYWdlLmFwcHJvdmFsXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIG51bGxcblxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2VGZWVkYmFjayA9XG4gICAgICAgICAgICBtZXNzYWdlPy53YXNIZWxwZnVsID09PSB1bmRlZmluZWQgfHwgbWVzc2FnZS53YXNIZWxwZnVsID09PSBudWxsXG4gICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICA6IG1lc3NhZ2Uud2FzSGVscGZ1bFxuICAgICAgICAgICAgICAgID8gRmVlZGJhY2suVEhVTUJTX1VQXG4gICAgICAgICAgICAgICAgOiBGZWVkYmFjay5USFVNQlNfRE9XTlxuXG4gICAgICAgICAgLy8gS2V5IGVzdGFibGU6IHNvbG8gbWVzc2FnZS5pZCBwYXJhIGV2aXRhciByZW1vdW50IGR1cmFudGUgc3RyZWFtaW5nIChtZXNzYWdlLmRhdGUgcHVlZGUgY2FtYmlhcilcbiAgICAgICAgICBjb25zdCBtZXNzYWdlS2V5ID0gbWVzc2FnZS5pZCA/PyBgbXNnLSR7aW5kZXh9YFxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxNZXNzYWdlSXRlbVxuICAgICAgICAgICAgICB7Li4ubWVzc2FnZX1cbiAgICAgICAgICAgICAga2V5PXttZXNzYWdlS2V5fVxuICAgICAgICAgICAgICBhdXRoVXNlcj17YXV0aFVzZXJ9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17aGFuZGxlU2VsZWN0T3B0aW9ufVxuICAgICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17aGFuZGxlRmVlZGJhY2t9XG4gICAgICAgICAgICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb249e2hhbmRsZUFwcHJvdmFsRGVjaXNpb259XG4gICAgICAgICAgICAgIGhhbmRsZVN1Z2dlc3Rpb25DbGljaz17aGFuZGxlU3VnZ2VzdGlvbkNsaWNrfVxuICAgICAgICAgICAgICBoYXNTZWxlY3RlZFN1Z2dlc3Rpb249eyEhc2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkc1ttZXNzYWdlLmlkXX1cbiAgICAgICAgICAgICAgZGlzYWJsZUZlZWRiYWNrPXttZXNzYWdlRmVlZGJhY2t9XG4gICAgICAgICAgICAgIGlzU3RyZWFtaW5nPXtpc1N0cmVhbWluZ31cbiAgICAgICAgICAgICAgaXNMYXN0TWVzc2FnZT17aXNMYXN0TWVzc2FnZX1cbiAgICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgICB7c3RyZWFtTG9hZGluZ0Rpc3BsYXkgJiYgKFxuICAgICAgICA8U0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4+XG4gICAgICAgICAgPEFnZW50QWN0aXZpdHlJbmRpY2F0b3IgYWN0aXZpdHk9e3N0cmVhbUxvYWRpbmdEaXNwbGF5fSAvPlxuICAgICAgICA8L1NDTG9hZGluZ01lc3NhZ2VzQ29sdW1uPlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPFNDTWVzc2FnZXNPdXRlciAkc2Nyb2xsT25QYXJlbnQ9e2lzU2Nyb2xsT25QYXJlbnR9PlxuICAgICAge2lzU2Nyb2xsT25QYXJlbnQgPyAoXG4gICAgICAgIDxTQ01lc3NhZ2VzU2Nyb2xsIHJlZj17bWVzc2FnZXNSZWZ9IG9uU2Nyb2xsPXtoYW5kbGVTY3JvbGxUb0JvdHRvbX0+XG4gICAgICAgICAgPFNDTWVzc2FnZXNJbm5lciAkc2Nyb2xsT25QYXJlbnQ9e2lzU2Nyb2xsT25QYXJlbnR9ICRpc01hcmtldHBsYWNlR2xvYmFsPXtpc01hcmtldHBsYWNlR2xvYmFsQWdlbnR9PlxuICAgICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgICA8L1NDTWVzc2FnZXNJbm5lcj5cbiAgICAgICAgPC9TQ01lc3NhZ2VzU2Nyb2xsPlxuICAgICAgKSA6IChcbiAgICAgICAgPFNDTWVzc2FnZXNJbm5lclxuICAgICAgICAgIHJlZj17bWVzc2FnZXNSZWZ9XG4gICAgICAgICAgb25TY3JvbGw9e2hhbmRsZVNjcm9sbFRvQm90dG9tfVxuICAgICAgICAgICRzY3JvbGxPblBhcmVudD17ZmFsc2V9XG4gICAgICAgICAgJGlzTWFya2V0cGxhY2VHbG9iYWw9e2lzTWFya2V0cGxhY2VHbG9iYWxBZ2VudH1cbiAgICAgICAgPlxuICAgICAgICAgIHttZXNzYWdlc0NvbnRlbnR9XG4gICAgICAgIDwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgKX1cblxuICAgICAge3Nob3dTY3JvbGxUb0JvdHRvbSAmJiAoXG4gICAgICAgIDxTY3JvbGxUb0JvdHRvbUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgb25DbGljaz17aGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbX0+XG4gICAgICAgICAgPEFycm93U21hbGxEb3duIGNvbG9yPVwiIzY2NlwiIHdpZHRoPVwiMjBweFwiIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICA8L1Njcm9sbFRvQm90dG9tQnV0dG9uPlxuICAgICAgKX1cbiAgICA8L1NDTWVzc2FnZXNPdXRlcj5cbiAgKVxufVxuXG5leHBvcnQgY29uc3QgQ2hhdEFJTWVzc2FnZXMgPSBSZWFjdC5tZW1vKENoYXRBSU1lc3NhZ2VzSW5uZXIpXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBT0EsS0FBSyxJQUFRQyxJQUFJLEVBQWFDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxlQUFlLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFBQyxhQUFBLElBQUFDLGNBQUEsUUFBUSxPQUFPO0FBQzdHLFNBQVNDLFVBQVUsUUFBUSxZQUFZO0FBQ3ZDLFNBQVNDLGdCQUFnQixRQUFRLGtCQUFrQjtBQUNuRCxTQUFTQyxjQUFjLFFBQVEsaURBQWlEO0FBRWhGLFNBQVNDLGNBQWMsUUFBUSwyQ0FBMkM7QUFDMUUsU0FBU0MsV0FBVyxRQUFRLHFDQUFxQztBQUNqRSxTQUFTQyxzQkFBc0IsUUFBUSxvQ0FBb0M7QUFDM0UsU0FBU0MsbUJBQW1CLFFB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
906
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwiY3JlYXRlRWxlbWVudCIsIl9jcmVhdGVFbGVtZW50IiwiU3RyZWFtZG93biIsImNyZWF0ZUNvZGVQbHVnaW4iLCJBcnJvd1NtYWxsRG93biIsIkF0dGFjaG1lbnRDYXJkIiwiQXBwcm92YWxCb3giLCJBdHRhY2htZW50UHJldmlld01vZGFsIiwiQXR0YWNobWVudENhcmRBdWRpbyIsIkNoYXRIaXN0b3J5Um9sZSIsIk1BSUFfU1RSRUFNRE9XTl9SRUhZUEVfUExVR0lOUyIsInJlbmRlclRleHRXaXRoTWVudGlvbnMiLCJyZW5kZXJNZW50aW9uTGluayIsImhhc0lubGluZU1hcmtlcnMiLCJnZXRBZ2VudERpc3BsYXlOYW1lIiwidXNlVXNlciIsInVzZVQiLCJ1c2VDaGF0TWFuYWdlciIsInVzZVRhc2tQYW5lbCIsInVzZVNtb290aFN0cmVhbVRleHQiLCJ1c2VTdHJlYW1pbmdNZXNzYWdlIiwiTG9hZGluZ1RleHQiLCJBZ2VudEFjdGl2aXR5SW5kaWNhdG9yIiwiaXNTdHJlYW1pbmdQbGFjZWhvbGRlck1lc3NhZ2VJZCIsInJlc29sdmVTdHJlYW1Mb2FkaW5nRGlzcGxheSIsIkxvYWRlciIsIkZhZGUiLCJNZXNzYWdlRnJvbVVzZXIiLCJNZXNzYWdlRnJvbU90aGVyIiwiTWVzc2FnZUNvbnRlbnRGcm9tVXNlciIsIk1lc3NhZ2VDb250ZW50RnJvbU90aGVyIiwiTWVzc2FnZUZlZWRiYWNrIiwiU0NDQUlNZXNzYWdlV3JhcHBlciIsIlNjcm9sbFRvQm90dG9tQnV0dG9uIiwiU0NNZXNzYWdlc091dGVyIiwiU0NNZXNzYWdlc1Njcm9sbCIsIlNDTWVzc2FnZXNJbm5lciIsIlNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uIiwiU0NPcHRpb25zTGlzdCIsIlNDT3B0aW9uSXRlbSIsIlNDQXNzaXN0YW50TWVzc2FnZUhlYWRlciIsIlNDQXNzaXN0YW50TmFtZSIsIlNDQXNzaXN0YW50QXZhdGFyIiwiU0NUYXNrTGluayIsIlNDTWVzc2FnZUl0ZW1XcmFwcGVyIiwiU0NNZXNzYWdlSXRlbUlubmVyIiwiU0NBdHRhY2htZW50c1JvdyIsIlNDQXBwcm92YWxBY3Rpb25zQ29sdW1uIiwiRmVlZGJhY2siLCJ1c2VHbG9iYWxDb250ZXh0IiwiTUFJQUljb24iLCJUQVNLX1VSTF9SRUdFWF9QQVRURVJOIiwiQ2hhdEFJU3VnZ2VzdGlvbnMiLCJDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMiLCJFVkVOVFMiLCJ1c2VFdmVudCIsImRvd25sb2FkRmlsZUZyb21VcmwiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJjb2RlIiwidGhlbWVzIiwiQXNzaXN0YW50QXZhdGFySW5uZXIiLCJfdXNlR2xvYmFsQ29udGV4dCIsImFnZW50IiwiY2hpbGRyZW4iLCJ0eXBlIiwid2lkdGgiLCJoZWlnaHQiLCJlbW9qaSIsIkFzc2lzdGFudEF2YXRhciIsIk1lc3NhZ2VXcmFwcGVyIiwiX3JlZiIsImlzQ3VycmVudFVzZXIiLCJwcm9wcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIk1lc3NhZ2VDb21wb25lbnQiLCJfb2JqZWN0U3ByZWFkIiwiTWVzc2FnZUNvbnRlbnRXcmFwcGVyIiwiX3JlZjIiLCJfZXhjbHVkZWQyIiwiTWVzc2FnZUNvbnRlbnRDb21wb25lbnQiLCJNZXNzYWdlT3B0aW9ucyIsIl9yZWYzIiwib3B0aW9ucyIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlbGVjdGVkT3B0aW9uIiwic2V0U2VsZWN0ZWRPcHRpb24iLCJoYW5kbGVTZWxlY3QiLCJvcHRpb24iLCJtYXAiLCIkaGFzU2VsZWN0aW9uIiwiJGRpbW1lZCIsImlkIiwib25DbGljayIsIm5hbWUiLCJBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJsb2NhbEFnZW50Iiwic2V0TG9jYWxBZ2VudCIsIl91c2VHbG9iYWxDb250ZXh0MiIsImdldFRhYlNlZ21lbnRGcm9tSHJlZiIsImhyZWYiLCJtYXRjaCIsInRlc3QiLCJleHRyYWN0VGFza3NGcm9tTWVzc2FnZSIsIm1lc3NhZ2UiLCJ0YXNrVXJsUmVnZXgiLCJSZWdFeHAiLCJ0YXNrcyIsInNlZW5JZHMiLCJTZXQiLCJleGVjIiwidGFza0lkIiwidXJsIiwiaGFzIiwiYWRkIiwiZXNjYXBlZFVybCIsInJlcGxhY2UiLCJtYXJrZG93bkxpbmtSZWdleCIsImNvbmNhdCIsImxpbmtNYXRjaCIsInRpdGxlIiwicHVzaCIsImhhc1Rhc2tMaW5rcyIsInRleHQiLCJsZW5ndGgiLCJUQVNLX01FTlRJT05fTUFSS0VSX1JFIiwiTUFJQV9UQVNLX01FTlRJT05fSFJFRl9SRSIsImhhc1Rhc2tMaW5rc09yVGFza01lbnRpb25zIiwiVGFza0xpbmsiLCJfcmVmNCIsInRhYlNlZ21lbnQiLCJfdXNlVGFza1BhbmVsIiwiYnVpbGRPcGVuVGFzayIsIm9wZW5UYXNrIiwiaGFuZGxlQ2xpY2siLCJlIiwibWV0YUtleSIsImN0cmxLZXkiLCJwcmV2ZW50RGVmYXVsdCIsIkN1c3RvbUxpbmsiLCJfcmVmNSIsInJlc3QiLCJfZXhjbHVkZWQzIiwibWVudGlvbk5vZGUiLCJ0YXNrTWF0Y2giLCJTdHJlYW1pbmdNZXNzYWdlQm9keSIsIl9wcm9wcyRjcmVhdGVBZ2VudEZvbCIsInN0cmVhbWluZ1RleHQiLCJpc1N0cmVhbWluZyIsIm1lc3NhZ2VJZCIsInJhd1RleHQiLCJ3aW5GbGFncyIsIndpbmRvdyIsImRpc3BsYXlUZXh0IiwiZW5hYmxlZCIsIm1heENoYXJzUGVyRnJhbWUiLCJzbmFwVG9Xb3JkQm91bmRhcnkiLCJzdHJlYW1MYWdNcyIsInRhcmdldExhZ01zIiwic3RyZWFtQWRhcHQiLCJhZGFwdFRvQmFja2VuZFJhdGUiLCJzdHJlYW1CdWZmZXJNcyIsInRhcmdldEJ1ZmZlck1zIiwic3RyZWFtTWluQnVmZmVyIiwibWluQnVmZmVyQ2hhcnMiLCJzdHJlYW1XYXJtdXBNcyIsIndhcm11cE1zIiwiY3JlYXRlQWdlbnRBY3Rpb25zQWdlbnRJZCIsImNyZWF0ZUFnZW50Rm9sbG93VXAiLCJhZ2VudElkIiwiaGFzTWVudGlvbnMiLCJtZW50aW9uTm9kZXMiLCJpc0Zyb250ZW5kQ2FuY2VsbGVkIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJkaXNwbGF5IiwicGx1Z2lucyIsInJlaHlwZVBsdWdpbnMiLCJjb21wb25lbnRzIiwiYSIsImxpbmtTYWZldHkiLCJpc0FuaW1hdGluZyIsInNoaWtpVGhlbWUiLCJjb250cm9scyIsInRhYmxlIiwiaXNBc3Npc3RhbnQiLCJpc0Vycm9yIiwiYXBwcm92YWwiLCJjb250ZW50Iiwic291cmNlcyIsImhhbmRsZUZlZWRiYWNrIiwiaGFuZGxlRmVlZGJhY2tDbGljayIsImRpc2FibGVGZWVkYmFjayIsInN1Z2dlc3Rpb25zIiwib25TZWxlY3RTdWdnZXN0aW9uIiwic3VnZ2VzdGlvbiIsImhhbmRsZVN1Z2dlc3Rpb25DbGljayIsImRpc2FibGVkIiwic3VnZ2VzdGlvbnNEaXNhYmxlZCIsImhpZGRlbiIsImlzTGFzdE1lc3NhZ2UiLCJNZXNzYWdlSXRlbSIsIl9wcm9wcyRwcm9qZWN0TWV0YWRhdCIsInVzZXIiLCJhdXRoVXNlciIsImlzQ2hhbmdlUHJvamVjdCIsImhhbmRsZUFwcHJvdmFsRGVjaXNpb24iLCJyb2xlIiwiYXR0YWNobWVudHMiLCJhcHByb3ZhbFN0YXR1cyIsImhhc1NlbGVjdGVkU3VnZ2VzdGlvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwicHJldmlld0F0dGFjaG1lbnQiLCJzZXRQcmV2aWV3QXR0YWNobWVudCIsIlVTRVIiLCJ0b1N0cmluZyIsIkFTU0lTVEFOVCIsImlzVGhpbmtpbmciLCJtZXNzYWdlQXR0YWNobWVudHMiLCJBcnJheSIsImlzQXJyYXkiLCJoYW5kbGVBdHRhY2htZW50Q2xpY2siLCJhdHRhY2htZW50IiwiZmlsZSIsIkZpbGUiLCJvcmlnaW5hbEZpbGUiLCJ1cmxfdGh1bWJuYWlsIiwidXJsX29yaWdpbmFsIiwidXJsX2ZpbGUiLCJoYW5kbGVDbG9zZVByZXZpZXciLCJoYW5kbGVBdHRhY2htZW50RG93bmxvYWQiLCJfcmVmNiIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZXh0ZW5zaW9uIiwiZmlsZU5hbWUiLCJmaWxlVXJsIiwiYmxvYlVybCIsImRvd25sb2FkZWRGaWxlIiwibGluayIsIl90Iiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJpbmNsdWRlcyIsInNlbnQiLCJVUkwiLCJjcmVhdGVPYmplY3RVUkwiLCJhYnJ1cHQiLCJkb2N1bWVudCIsImRvd25sb2FkIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJzZXRUaW1lb3V0IiwicmVtb3ZlQ2hpbGQiLCJyZXZva2VPYmplY3RVUkwiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsImhhc0ZlZWRiYWNrIiwiJGlzQXNzaXN0YW50IiwibWVzc2FnZUV4dHJhQ29udGVudCIsImZlZWRiYWNrIiwic2Vzc2lvbklkIiwic3BsaXQiLCJmaWx0ZXIiLCJxdWVzdGlvbklkIiwiam9pbiIsImluZGV4IiwiX2F0dGFjaG1lbnQkdHlwZSIsIl9hdHRhY2htZW50JG5hbWUiLCJhdHRhY2htZW50VHlwZSIsInRvTG93ZXJDYXNlIiwiYXR0YWNobWVudE5hbWUiLCJpc0F1ZGlvRmlsZSIsInN0YXJ0c1dpdGgiLCJzb21lIiwiZXh0IiwiZW5kc1dpdGgiLCJwb3NpdGlvbkluZGV4Iiwib25Eb3dubG9hZCIsInBlbmRpbmdfYWN0aW9ucyIsImFjdGlvbnMiLCJzdGF0dXMiLCJvbkFwcHJvdmUiLCJ0aHJlYWRJZHMiLCJvblJlamVjdCIsImlzUHJvamVjdERlbGV0ZWQiLCJwcm9qZWN0TWV0YWRhdGEiLCJpc19kZWxldGVkIiwiaXNFeHBhbmRlZCIsImV4cGFuZGVkIiwiaGl0bEluc3RhbmNlSWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJ3YXJuaW5nTWVzc2FnZSIsIndhcm5pbmdfbWVzc2FnZSIsIm1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQiLCJtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQiLCJpc09wZW4iLCJvbkNsb3NlIiwiQ2hhdEFJTWVzc2FnZXNJbm5lciIsIl9yZWY3IiwidXNlckluaXRpYWxNZXNzYWdlIiwiaW5pdGlhbENoYXRJZCIsIm9uRXJyb3IiLCJvblNlbmRNZXNzYWdlUmVhZHkiLCJvblNjcm9sbFRvQm90dG9tIiwiYWdlbnRzIiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQzIiwiaXNXZWJTZWFyY2hBY3RpdmUiLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJldmVudCIsIm1lc3NhZ2VzUmVmIiwiY2hhdEluaXRpYWxpemVkUmVmIiwiaXNMb2FkaW5nTW9yZVJlZiIsInVzZXJTY3JvbGxpbmdSZWYiLCJzY3JvbGxUaHJlc2hvbGRSZWYiLCJsYXN0U2Nyb2xsVG9wUmVmIiwic2hvd1Njcm9sbFRvQm90dG9tUmVmIiwic2Nyb2xsUmFmUmVmIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJzaG93U2Nyb2xsVG9Cb3R0b20iLCJzZXRTaG93U2Nyb2xsVG9Cb3R0b20iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInNlbGVjdGVkU3VnZ2VzdGlvbk1lc3NhZ2VJZHMiLCJzZXRTZWxlY3RlZFN1Z2dlc3Rpb25NZXNzYWdlSWRzIiwiX3VzZUNoYXRNYW5hZ2VyIiwiY2hhdElkIiwidW5kZWZpbmVkIiwibWVzc2FnZXMiLCJsb2FkaW5nTWVzc2FnZXMiLCJpc0xvYWRpbmdNb3JlTWVzc2FnZXMiLCJ3YWl0aW5nUmVzcG9uc2UiLCJpc1dyaXRpbmciLCJsb2FkaW5nTWVzc2FnZSIsInN0cmVhbUFjdGl2aXR5IiwiYWN0aXZlTG9hZGluZ3MiLCJzZW5kTWVzc2FnZSIsImNoYW5nZVByb2plY3QiLCJpbml0aWFsaXplQ2hhdCIsImhhbmRsZVNjcm9sbCIsInN0b3BHZW5lcmF0aW9uIiwidHJpbSIsImlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCIsImVudGl0eSIsImFpQ2hhdFN1Z2dlc3RlZEFuc3dlciIsImFnZW50X3R5cGUiLCJfZGVmaW5lUHJvcGVydHkiLCJ1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5IiwiZWwiLCJjdXJyZW50Iiwic2Nyb2xsVG9wIiwic2Nyb2xsSGVpZ2h0IiwiY2xpZW50SGVpZ2h0IiwiZGlzdGFuY2VGcm9tQm90dG9tIiwic2hvdWxkU2hvdyIsInNjcm9sbFRvQm90dG9tUmFmIiwib3B0cyIsIl9vcHRzJHNraXBJZlVzZXJTY3JvbCIsInNraXBJZlVzZXJTY3JvbGxpbmciLCJfb3B0cyRkZWxheU1zIiwiZGVsYXlNcyIsInJ1biIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImhhbmRsZUNsaWNrU2Nyb2xsVG9Cb3R0b20iLCJzY3JvbGxUbyIsInRvcCIsImJlaGF2aW9yIiwiaGFuZGxlU2Nyb2xsVG9Cb3R0b20iLCJjb250YWluZXIiLCJjdXJyZW50VGFyZ2V0IiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJpc1Njcm9sbGluZ1VwIiwiaXNOZWFyQm90dG9tIiwic2VuZE1lc3NhZ2VSZWYiLCJzdG9wR2VuZXJhdGlvblJlZiIsIm9uU2VuZE1lc3NhZ2VSZWFkeVJlZiIsInJhZklkIiwibGFzdEhlaWdodCIsInRpY2siLCJjdXJyZW50SGVpZ2h0IiwibGFzdE1lc3NhZ2VJZFJlZiIsImxhc3RNZXNzYWdlc0xlbmd0aFJlZiIsIl9sYXN0TWVzc2FnZSRpZCIsImxhc3RNZXNzYWdlIiwibGFzdElkIiwicHJldklkIiwicHJldkxlbiIsImlzTmV3TWVzc2FnZSIsImlzQXRCb3R0b20iLCJoYXNJbml0aWFsTWVzc2FnZSIsIm1zZyIsImlzQXBwcm92YWwiLCJpc0Fuc3dlck9yUXVlc3Rpb24iLCJsYXN0VXNlck1lc3NhZ2UiLCJhdCIsImF0dGFjaG1lbnRzQ291bnQiLCJzdHJlYW1Mb2FkaW5nRGlzcGxheSIsImhhc0F0dGFjaG1lbnRzIiwiQm9vbGVhbiIsImlzU2Nyb2xsT25QYXJlbnQiLCJleHBhbmRlZFJlZiIsInNhdmVkU2Nyb2xsVG9wIiwiZmlsbCIsIm1lc3NhZ2VzQ29udGVudCIsIl9tZXNzYWdlJGF0dGFjaG1lbnRzIiwiX21lc3NhZ2Ukc291cmNlcyIsIl9tZXNzYWdlJHByb2plY3QiLCJfbWVzc2FnZSRpZCIsImlzQXNzaXN0YW50TWVzc2FnZSIsInByb2plY3QiLCJtZXNzYWdlRmVlZGJhY2siLCJ3YXNIZWxwZnVsIiwiVEhVTUJTX1VQIiwiVEhVTUJTX0RPV04iLCJtZXNzYWdlS2V5Iiwia2V5IiwiYWN0aXZpdHkiLCIkc2Nyb2xsT25QYXJlbnQiLCJyZWYiLCJvblNjcm9sbCIsIiRpc01hcmtldHBsYWNlR2xvYmFsIiwiY29sb3IiLCJDaGF0QUlNZXNzYWdlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DaGF0QUlNZXNzYWdlcy9DaGF0QUlNZXNzYWdlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby11bnN0YWJsZS1uZXN0ZWQtY29tcG9uZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvdyAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbmVzdGVkLXRlcm5hcnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVuZGVmICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcmVxdWlyZS1kZWZhdWx0LXByb3BzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgbWVtbywgUmVhY3ROb2RlLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFN0cmVhbWRvd24gfSBmcm9tICdzdHJlYW1kb3duJ1xuaW1wb3J0IHsgY3JlYXRlQ29kZVBsdWdpbiB9IGZyb20gJ0BzdHJlYW1kb3duL2NvZGUnXG5pbXBvcnQgeyBBcnJvd1NtYWxsRG93biB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0Fycm93U21hbGxEb3duJ1xuXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FyZCB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkJ1xuaW1wb3J0IHsgQXBwcm92YWxCb3ggfSBmcm9tICcuLi8uLi9hdG9tcy9BcHByb3ZhbEJveC9BcHByb3ZhbEJveCdcbmltcG9ydCB7IEF0dGFjaG1lbnRQcmV2aWV3TW9kYWwgfSBmcm9tICcuLi8uLi9hdG9tcy9BdHRhY2htZW50UHJldmlld01vZGFsJ1xuaW1wb3J0IHsgQXR0YWNobWVudENhcmRBdWRpbyB9IGZyb20gJy4uLy4uL2F0b21zL0F0dGFjaG1lbnRDYXJkL0F0dGFjaG1lbnRDYXJkQXVkaW8nXG5pbXBvcnQgeyBNQUlBTWVzc2FnZVByb3BzIH0gZnJvbSAnLi4vLi4vYXRvbXMvTUFJQU1lc3NhZ2UvTUFJQU1lc3NhZ2UuaW50ZXJmYWNlcydcbmltcG9ydCB7IENoYXRNZXNzYWdlLCBDaGF0SGlzdG9yeVJvbGUsIFRhc2tJbmZvIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvQ2hhdCdcbmltcG9ydCB7IE1BSUFfU1RSRUFNRE9XTl9SRUhZUEVfUExVR0lOUyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21haWFTdHJlYW1kb3duUmVoeXBlUGx1Z2lucydcbmltcG9ydCB7IHJlbmRlclRleHRXaXRoTWVudGlvbnMsIHJlbmRlck1lbnRpb25MaW5rLCBoYXNJbmxpbmVNYXJrZXJzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcmVuZGVyQ29udGV4dE1lbnRpb25zJ1xuXG5pbXBvcnQgeyBnZXRBZ2VudERpc3BsYXlOYW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWdlbnREaXNwbGF5TmFtZSdcbmltcG9ydCB7IENPUlVzZXIsIHVzZVVzZXIgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2Nvci11c2VyJ1xuXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZUNoYXRNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlQ2hhdE1hbmFnZXIvdXNlQ2hhdE1hbmFnZXInXG5pbXBvcnQgeyB1c2VUYXNrUGFuZWwgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUYXNrUGFuZWwnXG5pbXBvcnQgeyB1c2VTbW9vdGhTdHJlYW1UZXh0IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU21vb3RoU3RyZWFtVGV4dCdcbmltcG9ydCB7IHVzZVN0cmVhbWluZ01lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VTdHJlYW1pbmdNZXNzYWdlJ1xuXG5pbXBvcnQgeyBMb2FkaW5nVGV4dCB9IGZyb20gJy4uLy4uL2F0b21zL0xvYWRpbmdUZXh0J1xuaW1wb3J0IHsgQWdlbnRBY3Rpdml0eUluZGljYXRvciB9IGZyb20gJy4uLy4uL2F0b21zL0FnZW50QWN0aXZpdHlJbmRpY2F0b3InXG5pbXBvcnQgeyBpc1N0cmVhbWluZ1BsYWNlaG9sZGVyTWVzc2FnZUlkLCByZXNvbHZlU3RyZWFtTG9hZGluZ0Rpc3BsYXkgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdHJlYW1BY3Rpdml0eU1lc3NhZ2VzJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vYXRvbXMvTG9hZGVyJ1xuaW1wb3J0IHsgRmFkZSB9IGZyb20gJy4uLy4uL2F0b21zL0ZhZGUnXG5cbmltcG9ydCB7IFByb2plY3QgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9Qcm9qZWN0J1xuXG5pbXBvcnQgeyBNZXNzYWdlRnJvbVVzZXIsIE1lc3NhZ2VGcm9tT3RoZXIsIE1lc3NhZ2VDb250ZW50RnJvbVVzZXIsIE1lc3NhZ2VDb250ZW50RnJvbU90aGVyIH0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyBNZXNzYWdlRmVlZGJhY2sgfSBmcm9tICcuLi9NZXNzYWdlRmVlZGJhY2snXG5pbXBvcnQge1xuICBTQ0NBSU1lc3NhZ2VXcmFwcGVyLFxuICBTY3JvbGxUb0JvdHRvbUJ1dHRvbixcbiAgU0NNZXNzYWdlc091dGVyLFxuICBTQ01lc3NhZ2VzU2Nyb2xsLFxuICBTQ01lc3NhZ2VzSW5uZXIsXG4gIFNDTG9hZGluZ01lc3NhZ2VzQ29sdW1uLFxuICBTQ09wdGlvbnNMaXN0LFxuICBTQ09wdGlvbkl0ZW0sXG4gIFNDQXNzaXN0YW50TWVzc2FnZUhlYWRlcixcbiAgU0NBc3Npc3RhbnROYW1lLFxuICBTQ0Fzc2lzdGFudEF2YXRhcixcbiAgU0NUYXNrTGluayxcbiAgU0NNZXNzYWdlSXRlbVdyYXBwZXIsXG4gIFNDTWVzc2FnZUl0ZW1Jbm5lcixcbiAgU0NBdHRhY2htZW50c1JvdyxcbiAgU0NBcHByb3ZhbEFjdGlvbnNDb2x1bW4sXG59IGZyb20gJy4vbmV3U3R5bGVzJ1xuaW1wb3J0IHsgRmVlZGJhY2sgfSBmcm9tICcuLi9NZXNzYWdlRmVlZGJhY2svTWVzc2FnZUZlZWRiYWNrJ1xuaW1wb3J0IHsgdXNlR2xvYmFsQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL2NvbnRleHQvZ2xvYmFsLWNvbnRleHQnXG5pbXBvcnQgeyBBZ2VudCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2FnZW50J1xuaW1wb3J0IHsgQXR0YWNobWVudEZpbGUgfSBmcm9tICcuLi9DaGF0Rm9vdGVyL0NoYXRGb290ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgTUFJQUljb24gfSBmcm9tICcuLi8uLi9hdG9tcy9pY29ucydcbmltcG9ydCB7IFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4gfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvdGFza1VybHMnXG5pbXBvcnQgeyBDaGF0QUlTdWdnZXN0aW9ucyB9IGZyb20gJy4vQ2hhdEFJU3VnZ2VzdGlvbnMnXG5pbXBvcnQgeyBDaGF0QUlDcmVhdGVBZ2VudEFjdGlvbnMgfSBmcm9tICcuL0NoYXRBSUNyZWF0ZUFnZW50QWN0aW9ucydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IGRvd25sb2FkRmlsZUZyb21VcmwgfSBmcm9tICcuLi8uLi8uLi91dGlscy9maWxlRG93bmxvYWRIZWxwZXInXG5cbmNvbnN0IGNvZGUgPSBjcmVhdGVDb2RlUGx1Z2luKHsgdGhlbWVzOiBbJ2dpdGh1Yi1saWdodCcsICdnaXRodWItbGlnaHQnXSB9KVxuXG5jb25zdCBBc3Npc3RhbnRBdmF0YXJJbm5lcjogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IHsgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICByZXR1cm4gKFxuICAgIDxTQ0Fzc2lzdGFudEF2YXRhcj5cbiAgICAgIHthZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IDxNQUlBSWNvbiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+IDogYWdlbnQ/LmVtb2ppfVxuICAgIDwvU0NBc3Npc3RhbnRBdmF0YXI+XG4gIClcbn1cblxuY29uc3QgQXNzaXN0YW50QXZhdGFyID0gbWVtbyhBc3Npc3RhbnRBdmF0YXJJbm5lcilcblxudHlwZSBDaGF0QUlNZXNzYWdlc1Byb3BzID0ge1xuICB1c2VySW5pdGlhbE1lc3NhZ2U6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBhdHRhY2htZW50czogQXR0YWNobWVudEZpbGVbXVxuICAgIGZhcUlkPzogc3RyaW5nXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmdcbiAgICBtZW50aW9ucz86IENvbnRleHRNZW50aW9uW11cbiAgICBmdWFJZD86IHN0cmluZ1xuICAgIHNjSWQ/OiBzdHJpbmdcbiAgfVxuICBpbml0aWFsQ2hhdElkOiBzdHJpbmcgfCBudWxsXG4gIG9uRXJyb3I6ICgpID0+IHZvaWRcbiAgb25TZW5kTWVzc2FnZVJlYWR5PzogKFxuICAgIHNlbmRNZXNzYWdlOiAoXG4gICAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgICBmYXFJZD86IHN0cmluZyxcbiAgICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgICAgZnVhSWQ/OiBzdHJpbmcsXG4gICAgICBzY0lkPzogc3RyaW5nXG4gICAgKSA9PiB2b2lkLFxuICAgIHN0b3BHZW5lcmF0aW9uOiAoKSA9PiB2b2lkLFxuICAgIGlzU3RyZWFtaW5nOiBib29sZWFuLFxuICAgIGlzV3JpdGluZzogYm9vbGVhblxuICApID0+IHZvaWRcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TY3JvbGxUb0JvdHRvbT86ICgpID0+IHZvaWRcbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50RmlsZVtdXG4gIGFnZW50cz86IEFnZW50W11cbiAgZXhwYW5kZWQ/OiBib29sZWFuXG59XG5cbnR5cGUgTWVzc2FnZUl0ZW1Qcm9wcyA9IENoYXRNZXNzYWdlICYge1xuICBhdXRoVXNlcjogQ09SVXNlclxuICBoYW5kbGVTZWxlY3RPcHRpb246IChvcHRpb246IFByb2plY3QpID0+IHZvaWRcbiAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrOiAobWVzc2FnZUlkOiBzdHJpbmcsIHN1Z2dlc3Rpb246IHN0cmluZykgPT4gdm9pZFxuICBoYXNTZWxlY3RlZFN1Z2dlc3Rpb24/OiBib29sZWFuXG4gIGhhbmRsZUZlZWRiYWNrOiAoZmVlZGJhY2s6IEZlZWRiYWNrLCBjaGF0TWVzc2FnZUlkOiBzdHJpbmcpID0+IHZvaWRcbiAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbjogKHRocmVhZElkczogc3RyaW5nW10sIGRlY2lzaW9uOiAnYXBwcm92ZScgfCAncmVqZWN0JykgPT4gdm9pZFxuICBkaXNhYmxlRmVlZGJhY2s/OiBGZWVkYmFjayB8IG51bGxcbiAgc291cmNlcz86IGFueVxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgaXNTdHJlYW1pbmc/OiBib29sZWFuXG4gIGlzTGFzdE1lc3NhZ2U/OiBib29sZWFuXG4gIGV4cGFuZGVkPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTWVzc2FnZVdyYXBwZXJQcm9wcyB7XG4gIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICAnZGF0YS1tZXNzYWdlLWlkJz86IHN0cmluZ1xuICBoYXNGZWVkYmFjaz86IGJvb2xlYW5cbn1cblxudHlwZSBNZXNzYWdlQ29udGVudFdyYXBwZXJQcm9wcyA9IE1BSUFNZXNzYWdlUHJvcHMgJiB7XG4gIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgaXNFcnJvcj86IGJvb2xlYW5cbiAgaXNDaGFuZ2VQcm9qZWN0PzogYm9vbGVhblxufVxuXG5jb25zdCBNZXNzYWdlV3JhcHBlcjogRkM8TWVzc2FnZVdyYXBwZXJQcm9wcz4gPSAoeyBpc0N1cnJlbnRVc2VyLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSkgPT4ge1xuICBjb25zdCBNZXNzYWdlQ29tcG9uZW50ID0gaXNDdXJyZW50VXNlciA/IE1lc3NhZ2VGcm9tVXNlciA6IE1lc3NhZ2VGcm9tT3RoZXJcbiAgcmV0dXJuIDxNZXNzYWdlQ29tcG9uZW50IHsuLi5wcm9wc30+e2NoaWxkcmVufTwvTWVzc2FnZUNvbXBvbmVudD5cbn1cblxuY29uc3QgTWVzc2FnZUNvbnRlbnRXcmFwcGVyOiBGQzxNZXNzYWdlQ29udGVudFdyYXBwZXJQcm9wcz4gPSAoeyBpc0N1cnJlbnRVc2VyLCAuLi5wcm9wcyB9KSA9PiB7XG4gIGNvbnN0IE1lc3NhZ2VDb250ZW50Q29tcG9uZW50ID0gaXNDdXJyZW50VXNlciA/IE1lc3NhZ2VDb250ZW50RnJvbVVzZXIgOiBNZXNzYWdlQ29udGVudEZyb21PdGhlclxuICByZXR1cm4gPE1lc3NhZ2VDb250ZW50Q29tcG9uZW50IHsuLi5wcm9wc30gLz5cbn1cblxuZnVuY3Rpb24gTWVzc2FnZU9wdGlvbnMoe1xuICBvcHRpb25zLFxuICBoYW5kbGVTZWxlY3RPcHRpb24sXG59OiB7XG4gIG9wdGlvbnM6IFByb2plY3RbXSB8IG51bGxcbiAgaGFuZGxlU2VsZWN0T3B0aW9uOiAob3B0aW9uOiBQcm9qZWN0KSA9PiB2b2lkXG59KSB7XG4gIGNvbnN0IFtzZWxlY3RlZE9wdGlvbiwgc2V0U2VsZWN0ZWRPcHRpb25dID0gdXNlU3RhdGU8UHJvamVjdCB8IG51bGw+KG51bGwpXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgIGlmIChzZWxlY3RlZE9wdGlvbikgcmV0dXJuXG4gICAgc2V0U2VsZWN0ZWRPcHRpb24ob3B0aW9uKVxuICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ09wdGlvbnNMaXN0PlxuICAgICAgeyhvcHRpb25zIHx8IFtdKS5tYXAob3B0aW9uID0+IChcbiAgICAgICAgPFNDT3B0aW9uSXRlbVxuICAgICAgICAgICRoYXNTZWxlY3Rpb249eyEhc2VsZWN0ZWRPcHRpb259XG4gICAgICAgICAgJGRpbW1lZD17ISFzZWxlY3RlZE9wdGlvbiAmJiBzZWxlY3RlZE9wdGlvbj8uaWQgIT09IG9wdGlvbi5pZH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVTZWxlY3Qob3B0aW9uKX1cbiAgICAgICAgICBrZXk9e29wdGlvbi5pZH1cbiAgICAgICAgPlxuICAgICAgICAgIHtvcHRpb24ubmFtZX1cbiAgICAgICAgPC9TQ09wdGlvbkl0ZW0+XG4gICAgICApKX1cbiAgICA8L1NDT3B0aW9uc0xpc3Q+XG4gIClcbn1cblxuY29uc3QgQXNzaXN0YW50TWVzc2FnZUhlYWRlciA9ICgpID0+IHtcbiAgY29uc3QgW2xvY2FsQWdlbnQsIHNldExvY2FsQWdlbnRdID0gdXNlU3RhdGU8QWdlbnQgfCBudWxsPihudWxsKVxuICBjb25zdCB7IGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldExvY2FsQWdlbnQoYWdlbnQpXG4gIH0sIFthZ2VudF0pXG5cbiAgcmV0dXJuIChcbiAgICA8U0NBc3Npc3RhbnRNZXNzYWdlSGVhZGVyPlxuICAgICAgPEFzc2lzdGFudEF2YXRhciAvPlxuICAgICAge2xvY2FsQWdlbnQ/Lm5hbWUgJiYgPFNDQXNzaXN0YW50TmFtZT57Z2V0QWdlbnREaXNwbGF5TmFtZShsb2NhbEFnZW50Py50eXBlLCBsb2NhbEFnZW50Py5uYW1lKX08L1NDQXNzaXN0YW50TmFtZT59XG4gICAgPC9TQ0Fzc2lzdGFudE1lc3NhZ2VIZWFkZXI+XG4gIClcbn1cblxuLy8gRXh0cmFlIGVsIHNlZ21lbnRvIGRlIHRhYiAoZGV0YWlsfG1lc3NhZ2V8bWVzc2FnZXN8ZmlsZXN8aGlzdG9yeXxob3VycykgZGVsIGhyZWYgcGFyYSBhYnJpciBlbCBtb2RhbCBjb24gZWwgdGFiIGNvcnJlY3RvXG5jb25zdCBnZXRUYWJTZWdtZW50RnJvbUhyZWYgPSAoaHJlZjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbWF0Y2ggPSBocmVmLm1hdGNoKC9cXC90YXNrc1xcL1xcZCtcXC8oW14vP10rKS8pXG4gIHJldHVybiBtYXRjaCAmJiAvXihkZXRhaWx8bWVzc2FnZXxtZXNzYWdlc3xmaWxlc3xoaXN0b3J5fGhvdXJzKSQvLnRlc3QobWF0Y2hbMV0pID8gbWF0Y2hbMV0gOiAnZGV0YWlsJ1xufVxuXG4vKiogRXh0cmFlIGxhcyB0YXJlYXMgZW5sYXphZGFzIGVuIGVsIHRleHRvIChVUkxzIHF1ZSBjb2luY2lkZW4gY29uIFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pLiAqL1xuY29uc3QgZXh0cmFjdFRhc2tzRnJvbU1lc3NhZ2UgPSAobWVzc2FnZTogc3RyaW5nKTogVGFza0luZm9bXSA9PiB7XG4gIGlmICghbWVzc2FnZSkgcmV0dXJuIFtdXG4gIGNvbnN0IHRhc2tVcmxSZWdleCA9IG5ldyBSZWdFeHAoVEFTS19VUkxfUkVHRVhfUEFUVEVSTiwgJ2cnKVxuICBjb25zdCB0YXNrczogVGFza0luZm9bXSA9IFtdXG4gIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBsZXQgbWF0Y2g6IFJlZ0V4cEV4ZWNBcnJheSB8IG51bGwgPSBudWxsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25kLWFzc2lnblxuICB3aGlsZSAoKG1hdGNoID0gdGFza1VybFJlZ2V4LmV4ZWMobWVzc2FnZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgdGFza0lkID0gbWF0Y2hbMV1cbiAgICBjb25zdCB1cmwgPSBtYXRjaFswXVxuICAgIGlmICghc2Vlbklkcy5oYXModGFza0lkKSkge1xuICAgICAgc2Vlbklkcy5hZGQodGFza0lkKVxuICAgICAgY29uc3QgZXNjYXBlZFVybCA9IHVybC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgICBjb25zdCBtYXJrZG93bkxpbmtSZWdleCA9IG5ldyBSZWdFeHAoYFxcXFxbKFteXFxcXF1dKylcXFxcXVxcXFwoJHtlc2NhcGVkVXJsfVxcXFwpYClcbiAgICAgIGNvbnN0IGxpbmtNYXRjaCA9IG1lc3NhZ2UubWF0Y2gobWFya2Rvd25MaW5rUmVnZXgpXG4gICAgICBjb25zdCB0aXRsZSA9IGxpbmtNYXRjaCA/IGxpbmtNYXRjaFsxXSA6IGBUYXJlYSAjJHt0YXNrSWR9YFxuICAgICAgdGFza3MucHVzaCh7IGlkOiB0YXNrSWQsIHRpdGxlLCB1cmwgfSlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRhc2tzXG59XG5cbmNvbnN0IGhhc1Rhc2tMaW5rcyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+IGV4dHJhY3RUYXNrc0Zyb21NZXNzYWdlKHRleHQpLmxlbmd0aCA+IDBcblxuY29uc3QgVEFTS19NRU5USU9OX01BUktFUl9SRSA9IC9cXFtcXFttZW50aW9uOnRhc2s6L2lcbmNvbnN0IE1BSUFfVEFTS19NRU5USU9OX0hSRUZfUkUgPSAvbWFpYS1tZW50aW9uOlxcL1xcL3Rhc2tcXC8vaVxuXG4vKiogVVJMcyBkZSB0YXJlYSBlbiBtYXJrZG93biArIG1hcmNhZG9yZXMgW1ttZW50aW9uOnRhc2s64oCmXV0gKyBsaW5rcyBtYWlhLW1lbnRpb24gKG1pc21vIGFzcGVjdG8gcXVlIGVubGFjZXMgZGVsIGFnZW50ZSkuICovXG5jb25zdCBoYXNUYXNrTGlua3NPclRhc2tNZW50aW9ucyA9ICh0ZXh0OiBzdHJpbmcpOiBib29sZWFuID0+XG4gIGhhc1Rhc2tMaW5rcyh0ZXh0KSB8fCBUQVNLX01FTlRJT05fTUFSS0VSX1JFLnRlc3QodGV4dCkgfHwgTUFJQV9UQVNLX01FTlRJT05fSFJFRl9SRS50ZXN0KHRleHQpXG5cbi8vIENvbXBvbmVudCBmb3IgdGFzayBsaW5rcyB0aGF0IHVzZXMgdGhlIHVzZVRhc2tQYW5lbCBob29rXG5jb25zdCBUYXNrTGluazogRkM8eyBocmVmOiBzdHJpbmc7IHRhc2tJZDogc3RyaW5nOyBjaGlsZHJlbjogUmVhY3ROb2RlIH0+ID0gKHsgaHJlZiwgdGFza0lkLCBjaGlsZHJlbiB9KSA9PiB7XG4gIGNvbnN0IHRhYlNlZ21lbnQgPSBnZXRUYWJTZWdtZW50RnJvbUhyZWYoaHJlZilcbiAgY29uc3QgeyBidWlsZE9wZW5UYXNrIH0gPSB1c2VUYXNrUGFuZWwodGFza0lkLCB0YWJTZWdtZW50KVxuICBjb25zdCBvcGVuVGFzayA9IGJ1aWxkT3BlblRhc2soKVxuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQ+KSA9PiB7XG4gICAgLy8gU2kgZXMgQ21kL0N0cmwgKyBjbGljaywgZGVqYXIgcXVlIHNlIGFicmEgZW4gbnVldmEgcGVzdGHDsWEgKGNvbXBvcnRhbWllbnRvIHBvciBkZWZlY3RvKVxuICAgIGlmIChlLm1ldGFLZXkgfHwgZS5jdHJsS2V5KSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBvcGVuVGFzaygpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ1Rhc2tMaW5rIGhyZWY9e2hyZWZ9IG9uQ2xpY2s9e2hhbmRsZUNsaWNrfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1NDVGFza0xpbms+XG4gIClcbn1cblxuLy8gQ3VzdG9tIGxpbmsgY29tcG9uZW50IGZvciBTdHJlYW1kb3duOiB0YXNrIFVSTHMgb3BlbiB0aGUgdGFzayBwYW5lbCwgb3RoZXIgbGlua3MgcmVuZGVyIG5vcm1hbGx5XG50eXBlIEN1c3RvbUxpbmtQcm9wcyA9IFJlYWN0LkFuY2hvckhUTUxBdHRyaWJ1dGVzPEhUTUxBbmNob3JFbGVtZW50PiAmIHsgbm9kZT86IHVua25vd24gfVxuY29uc3QgQ3VzdG9tTGluazogRkM8Q3VzdG9tTGlua1Byb3BzPiA9ICh7IGhyZWYsIGNoaWxkcmVuLCAuLi5yZXN0IH0pID0+IHtcbiAgaWYgKCFocmVmIHx8IHR5cGVvZiBocmVmICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiAoXG4gICAgICA8YSBocmVmPXtocmVmfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgY29uc3QgbWVudGlvbk5vZGUgPSByZW5kZXJNZW50aW9uTGluayhocmVmLCBjaGlsZHJlbilcbiAgaWYgKG1lbnRpb25Ob2RlKSByZXR1cm4gbWVudGlvbk5vZGUgYXMgUmVhY3QuUmVhY3RFbGVtZW50XG5cbiAgY29uc3QgdGFza01hdGNoID0gaHJlZi5tYXRjaChuZXcgUmVnRXhwKFRBU0tfVVJMX1JFR0VYX1BBVFRFUk4pKVxuICBpZiAodGFza01hdGNoKSB7XG4gICAgY29uc3QgdGFza0lkID0gdGFza01hdGNoWzFdXG4gICAgcmV0dXJuIChcbiAgICAgIDxUYXNrTGluayBocmVmPXtocmVmfSB0YXNrSWQ9e3Rhc2tJZH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvVGFza0xpbms+XG4gICAgKVxuICB9XG4gIHJldHVybiAoXG4gICAgPGEgaHJlZj17aHJlZn0gey4uLnJlc3R9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKVxufVxuXG4vKiogU29sbyBlc3RlIGNvbXBvbmVudGUgcmUtcmVuZGVyaXphIGN1YW5kbyBjYW1iaWEgZWwgdGV4dG8gZW4gc3RyZWFtaW5nIChsZWUgZGVsIGNvbnRleHQpLiAqL1xuY29uc3QgU3RyZWFtaW5nTWVzc2FnZUJvZHkgPSBtZW1vKFxuICAocHJvcHM6IHtcbiAgICBtZXNzYWdlOiBzdHJpbmdcbiAgICBpc1N0cmVhbWluZzogYm9vbGVhblxuICAgIGlzQ3VycmVudFVzZXI6IGJvb2xlYW5cbiAgICBpc0Fzc2lzdGFudDogYm9vbGVhblxuICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ/OiBib29sZWFuXG4gICAgYXBwcm92YWw/OiBNZXNzYWdlSXRlbVByb3BzWydhcHByb3ZhbCddXG4gICAgaXNFcnJvcj86IGJvb2xlYW5cbiAgICBzb3VyY2VzPzogTWVzc2FnZUl0ZW1Qcm9wc1snc291cmNlcyddXG4gICAgc3VnZ2VzdGlvbnM/OiBzdHJpbmdbXSB8IG51bGxcbiAgICBjcmVhdGVBZ2VudEZvbGxvd1VwPzogeyBhZ2VudElkOiBzdHJpbmcgfSB8IG51bGxcbiAgICBoYW5kbGVGZWVkYmFja0NsaWNrOiAoZjogRmVlZGJhY2spID0+IHZvaWRcbiAgICBkaXNhYmxlRmVlZGJhY2s6IEZlZWRiYWNrIHwgbnVsbFxuICAgIGhhbmRsZVN1Z2dlc3Rpb25DbGljazogKG1lc3NhZ2VJZDogc3RyaW5nLCBzdWdnZXN0aW9uOiBzdHJpbmcpID0+IHZvaWRcbiAgICBzdWdnZXN0aW9uc0Rpc2FibGVkPzogYm9vbGVhblxuICAgIG1lc3NhZ2VJZDogc3RyaW5nXG4gICAgaXNMYXN0TWVzc2FnZT86IGJvb2xlYW5cbiAgfSkgPT4ge1xuICAgIC8vIFRleHRvIGRlbCBzdHJlYW06IHNvbG8gc2UgbGVlIGRlbCBzdG9yZSBjdWFuZG8gZXN0ZSBtZW5zYWplIGVzIGVsXG4gICAgLy8gcXVlIGVzdMOhIGVuIHN0cmVhbWluZy4gdXNlU3luY0V4dGVybmFsU3RvcmUgYcOtc2xhIGVsIHJlLXJlbmRlciBhXG4gICAgLy8gZXN0ZSBjb21wb25lbnRlLCBzaW4gdG9jYXIgZWwgcmVzdG8gZGVsIMOhcmJvbC5cbiAgICBjb25zdCBzdHJlYW1pbmdUZXh0ID0gdXNlU3RyZWFtaW5nTWVzc2FnZShwcm9wcy5pc1N0cmVhbWluZyA/IHByb3BzLm1lc3NhZ2VJZCA6IG51bGwpXG4gICAgY29uc3QgcmF3VGV4dCA9IHByb3BzLmlzU3RyZWFtaW5nID8gc3RyZWFtaW5nVGV4dCA6IHByb3BzLm1lc3NhZ2VcbiAgICAvLyBTbW9vdGggc3RyZWFtaW5nOiBkZXNhY29wbGEgbGEgY2FkZW5jaWEgZGVsIGJhY2tlbmQgZGVsIHJlbmRlci5cbiAgICAvLyBEdXJhbnRlIGVsIHN0cmVhbWluZyBsaWJlcmEgY2hhcnMgYSByaXRtbyBjb25zdGFudGUgdsOtYSByQUY7IGN1YW5kb1xuICAgIC8vIHRlcm1pbmEsIG11ZXN0cmEgZWwgdGV4dG8gZmluYWwgYWwgaW5zdGFudGUgKHNpbiBhbmltYWNpw7NuIHJlc2lkdWFsKS5cbiAgICAvLyBMb3MgZGVmYXVsdHMgZGVsIGhvb2sgc2UgYWp1c3Rhcm9uIGVtcMOtcmljYW1lbnRlIGVuIHN0YWdpbmc7IGF1biBhc8OtXG4gICAgLy8gc2UgZXhwb25lbiBmbGFncyBkZSBydW50aW1lICh3aW5kb3cuKikgcGFyYSBwb2RlciB0dW5lYXIgc2luIHJlY29tcGlsYXJcbiAgICAvLyBzaSBhbGfDum4gYmFja2VuZCBwcmVzZW50YSB1bmEgY2FkZW5jaWEgbXV5IGRpc3RpbnRhIGVuIHByb2R1Y2Npw7NuLlxuICAgIC8vICAgd2luZG93LnN0cmVhbUFkYXB0ID0gZmFsc2UgICAgICAvLyBkZXNhY3RpdmEgYWRhcHRhY2nDs24gYWwgYmFja2VuZFxuICAgIC8vICAgd2luZG93LnN0cmVhbUJ1ZmZlck1zID0gNjAwICAgICAvLyBjb2xjaMOzbiBvYmpldGl2byAobXMpXG4gICAgLy8gICB3aW5kb3cuc3RyZWFtTGFnTXMgPSA0NTAgICAgICAgIC8vIGxhZyBtw6F4aW1vIGJhc2UgKG1zKVxuICAgIC8vICAgd2luZG93LnN0cmVhbU1pbkJ1ZmZlciA9IDcwICAgICAvLyBwaXNvIGRlbCBjb2xjaMOzbiBlbiBjaGFyc1xuICAgIC8vICAgd2luZG93LnN0cmVhbVdhcm11cE1zID0gNDAwICAgICAvLyB3YXJtdXAgaW5pY2lhbCAobXMpXG4gICAgY29uc3Qgd2luRmxhZ3MgPVxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICAgPyAod2luZG93IGFzIHVua25vd24gYXMge1xuICAgICAgICAgICAgc3RyZWFtQWRhcHQ/OiBib29sZWFuXG4gICAgICAgICAgICBzdHJlYW1CdWZmZXJNcz86IG51bWJlclxuICAgICAgICAgICAgc3RyZWFtTGFnTXM/OiBudW1iZXJcbiAgICAgICAgICAgIHN0cmVhbU1pbkJ1ZmZlcj86IG51bWJlclxuICAgICAgICAgICAgc3RyZWFtV2FybXVwTXM/OiBudW1iZXJcbiAgICAgICAgICB9KVxuICAgICAgICA6IHt9XG4gICAgY29uc3QgZGlzcGxheVRleHQgPSB1c2VTbW9vdGhTdHJlYW1UZXh0KHJhd1RleHQsIHtcbiAgICAgIGVuYWJsZWQ6ICEhcHJvcHMuaXNTdHJlYW1pbmcsXG4gICAgICBtYXhDaGFyc1BlckZyYW1lOiAyNCxcbiAgICAgIHNuYXBUb1dvcmRCb3VuZGFyeTogdHJ1ZSxcbiAgICAgIC4uLih3aW5GbGFncy5zdHJlYW1MYWdNcyAhPSBudWxsICYmIHsgdGFyZ2V0TGFnTXM6IHdpbkZsYWdzLnN0cmVhbUxhZ01zIH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbUFkYXB0ICE9IG51bGwgJiYgeyBhZGFwdFRvQmFja2VuZFJhdGU6IHdpbkZsYWdzLnN0cmVhbUFkYXB0IH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbUJ1ZmZlck1zICE9IG51bGwgJiYgeyB0YXJnZXRCdWZmZXJNczogd2luRmxhZ3Muc3RyZWFtQnVmZmVyTXMgfSksXG4gICAgICAuLi4od2luRmxhZ3Muc3RyZWFtTWluQnVmZmVyICE9IG51bGwgJiYgeyBtaW5CdWZmZXJDaGFyczogd2luRmxhZ3Muc3RyZWFtTWluQnVmZmVyIH0pLFxuICAgICAgLi4uKHdpbkZsYWdzLnN0cmVhbVdhcm11cE1zICE9IG51bGwgJiYgeyB3YXJtdXBNczogd2luRmxhZ3Muc3RyZWFtV2FybXVwTXMgfSksXG4gICAgfSlcbiAgICBjb25zdCBjcmVhdGVBZ2VudEFjdGlvbnNBZ2VudElkID0gcHJvcHMuY3JlYXRlQWdlbnRGb2xsb3dVcD8uYWdlbnRJZFxuXG4gICAgaWYgKCFkaXNwbGF5VGV4dCAmJiAhcHJvcHMuaXNTdHJlYW1pbmcpIHJldHVybiBudWxsXG4gICAgY29uc3QgaGFzTWVudGlvbnMgPSBoYXNJbmxpbmVNYXJrZXJzKGRpc3BsYXlUZXh0KVxuICAgIGNvbnN0IG1lbnRpb25Ob2RlcyA9IGhhc01lbnRpb25zID8gcmVuZGVyVGV4dFdpdGhNZW50aW9ucyhkaXNwbGF5VGV4dCkgOiBudWxsXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxTQ0NBSU1lc3NhZ2VXcmFwcGVyXG4gICAgICAgICAgaXNDdXJyZW50VXNlcj17cHJvcHMuaXNDdXJyZW50VXNlcn1cbiAgICAgICAgICBpc0Zyb250ZW5kQ2FuY2VsbGVkPXtwcm9wcy5pc0Zyb250ZW5kQ2FuY2VsbGVkfVxuICAgICAgICAgIGNsYXNzTmFtZT17aGFzVGFza0xpbmtzT3JUYXNrTWVudGlvbnMoZGlzcGxheVRleHQpID8gJ2hhcy10YXNrLWxpbmtzJyA6ICcnfVxuICAgICAgICA+XG4gICAgICAgICAge2hhc01lbnRpb25zICYmIG1lbnRpb25Ob2RlcyA/IChcbiAgICAgICAgICAgIC8vIFNpIGhheSBtZW50aW9ucywgcmVuZGVyaXphciBkaXJlY3RhbWVudGUgKHNpbiBtYXJrZG93biBlbiBlbCBtaXNtbyBww6FycmFmbylcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUnIH19PnttZW50aW9uTm9kZXN9PC9zcGFuPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAvLyBTaW4gbWVudGlvbnMsIHBhc2FyIGEgU3RyZWFtZG93biBwYXJhIG1hcmtkb3duIHN1cHBvcnRcbiAgICAgICAgICAgIDxTdHJlYW1kb3duXG4gICAgICAgICAgICAgIHBsdWdpbnM9e3sgY29kZSB9fVxuICAgICAgICAgICAgICByZWh5cGVQbHVnaW5zPXtNQUlBX1NUUkVBTURPV05fUkVIWVBFX1BMVUdJTlN9XG4gICAgICAgICAgICAgIGNvbXBvbmVudHM9e3sgYTogQ3VzdG9tTGluayB9IGFzIFBhcmFtZXRlcnM8dHlwZW9mIFN0cmVhbWRvd24+WzBdWydjb21wb25lbnRzJ119XG4gICAgICAgICAgICAgIGxpbmtTYWZldHk9e3sgZW5hYmxlZDogZmFsc2UgfX1cbiAgICAgICAgICAgICAgaXNBbmltYXRpbmc9eyEhcHJvcHMuaXNTdHJlYW1pbmd9XG4gICAgICAgICAgICAgIHNoaWtpVGhlbWU9e1snZ2l0aHViLWxpZ2h0JywgJ2dpdGh1Yi1saWdodCddfVxuICAgICAgICAgICAgICBjb250cm9scz17eyB0YWJsZTogZmFsc2UsIGNvZGU6IGZhbHNlIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtkaXNwbGF5VGV4dH1cbiAgICAgICAgICAgIDwvU3RyZWFtZG93bj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDQ0FJTWVzc2FnZVdyYXBwZXI+XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJiAhcHJvcHMuaXNFcnJvciAmJiAhcHJvcHMuaXNGcm9udGVuZENhbmNlbGxlZCAmJiAhcHJvcHMuYXBwcm92YWwgJiYgIXByb3BzLmlzU3RyZWFtaW5nICYmIChcbiAgICAgICAgICA8TWVzc2FnZUZlZWRiYWNrXG4gICAgICAgICAgICBjb250ZW50PXtkaXNwbGF5VGV4dH1cbiAgICAgICAgICAgIHNvdXJjZXM9e3Byb3BzLnNvdXJjZXN9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFjaz17cHJvcHMuaGFuZGxlRmVlZGJhY2tDbGlja31cbiAgICAgICAgICAgIGRpc2FibGVGZWVkYmFjaz17cHJvcHMuZGlzYWJsZUZlZWRiYWNrfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJiAhcHJvcHMuaXNFcnJvciAmJiAhcHJvcHMuaXNGcm9udGVuZENhbmNlbGxlZCAmJiAhcHJvcHMuYXBwcm92YWwgJiYgKFxuICAgICAgICAgIDxDaGF0QUlTdWdnZXN0aW9uc1xuICAgICAgICAgICAgc3VnZ2VzdGlvbnM9e3Byb3BzLnN1Z2dlc3Rpb25zIHx8IFtdfVxuICAgICAgICAgICAgb25TZWxlY3RTdWdnZXN0aW9uPXtzdWdnZXN0aW9uID0+IHByb3BzLmhhbmRsZVN1Z2dlc3Rpb25DbGljayhwcm9wcy5tZXNzYWdlSWQsIHN1Z2dlc3Rpb24pfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLnN1Z2dlc3Rpb25zRGlzYWJsZWR9XG4gICAgICAgICAgICBoaWRkZW49eyEhcHJvcHMuaXNTdHJlYW1pbmcgfHwgIXByb3BzLmlzTGFzdE1lc3NhZ2UgfHwgISFwcm9wcy5zdWdnZXN0aW9uc0Rpc2FibGVkfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtwcm9wcy5pc0Fzc2lzdGFudCAmJlxuICAgICAgICAgICFwcm9wcy5pc0Vycm9yICYmXG4gICAgICAgICAgIXByb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWQgJiZcbiAgICAgICAgICAhcHJvcHMuYXBwcm92YWwgJiZcbiAgICAgICAgICAhIWNyZWF0ZUFnZW50QWN0aW9uc0FnZW50SWQgJiYgKFxuICAgICAgICAgICAgPENoYXRBSUNyZWF0ZUFnZW50QWN0aW9uc1xuICAgICAgICAgICAgICBhZ2VudElkPXtjcmVhdGVBZ2VudEFjdGlvbnNBZ2VudElkfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17cHJvcHMuc3VnZ2VzdGlvbnNEaXNhYmxlZH1cbiAgICAgICAgICAgICAgaGlkZGVuPXshIXByb3BzLmlzU3RyZWFtaW5nIHx8ICFwcm9wcy5pc0xhc3RNZXNzYWdlIHx8ICEhcHJvcHMuc3VnZ2VzdGlvbnNEaXNhYmxlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuXG5jb25zdCBNZXNzYWdlSXRlbSA9IG1lbW8oKHByb3BzOiBNZXNzYWdlSXRlbVByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBpZCxcbiAgICB1c2VyLFxuICAgIG1lc3NhZ2UsXG4gICAgaXNTdHJlYW1pbmcsXG4gICAgaXNFcnJvcixcbiAgICBhdXRoVXNlcixcbiAgICBvcHRpb25zLFxuICAgIGlzQ2hhbmdlUHJvamVjdCxcbiAgICBoYW5kbGVTZWxlY3RPcHRpb24sXG4gICAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrLFxuICAgIGhhbmRsZUZlZWRiYWNrLFxuICAgIGhhbmRsZUFwcHJvdmFsRGVjaXNpb24sXG4gICAgZGlzYWJsZUZlZWRiYWNrLFxuICAgIHJvbGUsXG4gICAgc291cmNlcyxcbiAgICBhdHRhY2htZW50cyxcbiAgICBhcHByb3ZhbCxcbiAgICBhcHByb3ZhbFN0YXR1cyxcbiAgICBzdWdnZXN0aW9ucyxcbiAgICBjcmVhdGVBZ2VudEZvbGxvd1VwLFxuICAgIGhhc1NlbGVjdGVkU3VnZ2VzdGlvbixcbiAgICBpc0xhc3RNZXNzYWdlLFxuICB9ID0gcHJvcHNcblxuICBjb25zdCBbcHJldmlld0F0dGFjaG1lbnQsIHNldFByZXZpZXdBdHRhY2htZW50XSA9IHVzZVN0YXRlPEF0dGFjaG1lbnRGaWxlIHwgbnVsbD4obnVsbClcbiAgY29uc3QgaXNDdXJyZW50VXNlciA9IHJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5VU0VSIHx8IHVzZXIuaWQgPT09IGF1dGhVc2VyLmlkLnRvU3RyaW5nKClcbiAgY29uc3QgaXNBc3Npc3RhbnQgPSByb2xlID09PSBDaGF0SGlzdG9yeVJvbGUuQVNTSVNUQU5UIHx8IHVzZXIuaWQgPT09ICdhc3Npc3RhbnQnXG4gIC8vIE1pZW50cmFzIGVsIGFnZW50ZSBcInBpZW5zYVwiIChzdHJlYW1pbmcgc2luIHRleHRvIGHDum4pIG9jdWx0YW1vcyBlbCBoZWFkZXIuXG4gIC8vIEVuIGN1YW50byBlbXBpZXphIGEgZXNjcmliaXIsIGVsIGF2YXRhciB5IGVsIG5vbWJyZSB2dWVsdmVuIGEgbW9zdHJhcnNlLlxuICBjb25zdCBzdHJlYW1pbmdUZXh0ID0gdXNlU3RyZWFtaW5nTWVzc2FnZShpc1N0cmVhbWluZyA/IGlkIDogbnVsbClcbiAgY29uc3QgaXNUaGlua2luZyA9ICEhaXNTdHJlYW1pbmcgJiYgIXN0cmVhbWluZ1RleHRcbiAgY29uc3QgbWVzc2FnZUF0dGFjaG1lbnRzID1cbiAgICBhdHRhY2htZW50cyAmJiBhdHRhY2htZW50cy5sZW5ndGggPiAwXG4gICAgICA/IGF0dGFjaG1lbnRzXG4gICAgICA6ICFpc0Fzc2lzdGFudCAmJiBBcnJheS5pc0FycmF5KHNvdXJjZXMpXG4gICAgICAgID8gKHNvdXJjZXMgYXMgQXR0YWNobWVudEZpbGVbXSlcbiAgICAgICAgOiBbXVxuXG4gIGNvbnN0IGhhbmRsZUF0dGFjaG1lbnRDbGljayA9IChhdHRhY2htZW50OiBBdHRhY2htZW50RmlsZSkgPT4ge1xuICAgIC8vIFBlcm1pdGlyIHByZXZpc3VhbGl6YWNpw7NuIHNpIHRpZW5lIGFyY2hpdm8gbG9jYWwgbyBVUkxzIGRlbCBiYWNrZW5kXG4gICAgaWYgKFxuICAgICAgYXR0YWNobWVudC5maWxlIGluc3RhbmNlb2YgRmlsZSB8fFxuICAgICAgYXR0YWNobWVudC5vcmlnaW5hbEZpbGUgaW5zdGFuY2VvZiBGaWxlIHx8XG4gICAgICBhdHRhY2htZW50LnVybF90aHVtYm5haWwgfHxcbiAgICAgIGF0dGFjaG1lbnQudXJsX29yaWdpbmFsIHx8XG4gICAgICBhdHRhY2htZW50LnVybF9maWxlXG4gICAgKSB7XG4gICAgICBzZXRQcmV2aWV3QXR0YWNobWVudChhdHRhY2htZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNsb3NlUHJldmlldyA9ICgpID0+IHtcbiAgICBzZXRQcmV2aWV3QXR0YWNobWVudChudWxsKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQXR0YWNobWVudERvd25sb2FkID0gYXN5bmMgKGF0dGFjaG1lbnQ6IEF0dGFjaG1lbnRGaWxlKSA9PiB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gYXR0YWNobWVudC5uYW1lLmluY2x1ZGVzKCcuJykgPyAnJyA6IGAuJHthdHRhY2htZW50LnR5cGV9YFxuICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7YXR0YWNobWVudC5uYW1lfSR7ZXh0ZW5zaW9ufWBcbiAgICBjb25zdCBmaWxlVXJsID0gYXR0YWNobWVudC51cmxfb3JpZ2luYWwgfHwgYXR0YWNobWVudC51cmxfZmlsZSB8fCBhdHRhY2htZW50LnVybF90aHVtYm5haWxcblxuICAgIHRyeSB7XG4gICAgICBsZXQgYmxvYlVybDogc3RyaW5nIHwgbnVsbCA9IG51bGxcblxuICAgICAgaWYgKGZpbGVVcmwpIHtcbiAgICAgICAgY29uc3QgZG93bmxvYWRlZEZpbGUgPSBhd2FpdCBkb3dubG9hZEZpbGVGcm9tVXJsKGZpbGVVcmwsIGZpbGVOYW1lLCBhdHRhY2htZW50LnR5cGUpXG4gICAgICAgIGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGRvd25sb2FkZWRGaWxlKVxuICAgICAgfSBlbHNlIGlmIChhdHRhY2htZW50LmZpbGUgaW5zdGFuY2VvZiBGaWxlKSB7XG4gICAgICAgIGJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGF0dGFjaG1lbnQuZmlsZSlcbiAgICAgIH1cblxuICAgICAgaWYgKCFibG9iVXJsKSByZXR1cm5cblxuICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKVxuICAgICAgbGluay5ocmVmID0gYmxvYlVybFxuICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lXG4gICAgICBsaW5rLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSdcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluaylcbiAgICAgIGxpbmsuY2xpY2soKVxuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKVxuICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGJsb2JVcmwpXG4gICAgICB9LCAxMDApXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBkb3dubG9hZCBhdHRhY2htZW50JywgZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzQ2hhbmdlUHJvamVjdCAmJiBvcHRpb25zKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxNZXNzYWdlV3JhcHBlciBrZXk9e2lkfSBpc0N1cnJlbnRVc2VyPXtpc0N1cnJlbnRVc2VyfSBkYXRhLW1lc3NhZ2UtaWQ9e2lkfSBoYXNGZWVkYmFjaz17ZmFsc2V9PlxuICAgICAgICA8U0NNZXNzYWdlSXRlbVdyYXBwZXIgJGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH0+XG4gICAgICAgICAge2lzQXNzaXN0YW50ICYmICFpc1RoaW5raW5nICYmIDxBc3Npc3RhbnRNZXNzYWdlSGVhZGVyIC8+fVxuICAgICAgICAgIDxNZXNzYWdlQ29udGVudFdyYXBwZXJcbiAgICAgICAgICAgIGlzQ2hhbmdlUHJvamVjdD17aXNDaGFuZ2VQcm9qZWN0fVxuICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZX1cbiAgICAgICAgICAgIGlzQ3VycmVudFVzZXI9e2lzQ3VycmVudFVzZXJ9XG4gICAgICAgICAgICBpc0Vycm9yPXtpc0Vycm9yfVxuICAgICAgICAgICAgbWVzc2FnZUV4dHJhQ29udGVudD17PE1lc3NhZ2VPcHRpb25zIG9wdGlvbnM9e29wdGlvbnMgYXMgYW55fSBoYW5kbGVTZWxlY3RPcHRpb249e2hhbmRsZVNlbGVjdE9wdGlvbn0gLz59XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9TQ01lc3NhZ2VJdGVtV3JhcHBlcj5cbiAgICAgIDwvTWVzc2FnZVdyYXBwZXI+XG4gICAgKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmVlZGJhY2tDbGljayA9IChmZWVkYmFjazogRmVlZGJhY2spID0+IHtcbiAgICBjb25zdCBzZXNzaW9uSWQgPSBpZFxuICAgICAgLnNwbGl0KCctJylcbiAgICAgIC5maWx0ZXIocXVlc3Rpb25JZCA9PiBxdWVzdGlvbklkICE9PSAnYW5zd2VyJylcbiAgICAgIC5qb2luKCctJylcbiAgICBoYW5kbGVGZWVkYmFjaz8uKGZlZWRiYWNrLCBzZXNzaW9uSWQpXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxTQ01lc3NhZ2VJdGVtV3JhcHBlciAkaXNBc3Npc3RhbnQ9e2lzQXNzaXN0YW50fT5cbiAgICAgIHtpc0Fzc2lzdGFudCAmJiAhaXNUaGlua2luZyAmJiA8QXNzaXN0YW50TWVzc2FnZUhlYWRlciAvPn1cbiAgICAgIDxTQ01lc3NhZ2VJdGVtSW5uZXI+XG4gICAgICAgIHshIW1lc3NhZ2VBdHRhY2htZW50cy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxTQ0F0dGFjaG1lbnRzUm93ICRpc0Fzc2lzdGFudD17aXNBc3Npc3RhbnR9PlxuICAgICAgICAgICAge21lc3NhZ2VBdHRhY2htZW50cy5tYXAoKGF0dGFjaG1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIC8vIERldGVjdGFyIHNpIGVzIHVuIGFyY2hpdm8gZGUgYXVkaW9cbiAgICAgICAgICAgICAgY29uc3QgYXR0YWNobWVudFR5cGUgPSBhdHRhY2htZW50Py50eXBlPy50b0xvd2VyQ2FzZSgpIHx8ICcnXG4gICAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnROYW1lID0gYXR0YWNobWVudD8ubmFtZT8udG9Mb3dlckNhc2UoKSB8fCAnJ1xuICAgICAgICAgICAgICBjb25zdCBpc0F1ZGlvRmlsZSA9XG4gICAgICAgICAgICAgICAgYXR0YWNobWVudFR5cGUuc3RhcnRzV2l0aCgnYXVkaW8vJykgfHxcbiAgICAgICAgICAgICAgICBbJ2ZsYWMnLCAnbTRhJywgJ21wMycsICdtcDQnLCAnb2dhJywgJ29nZycsICd3YXYnLCAnd2VibSddLmluY2x1ZGVzKGF0dGFjaG1lbnRUeXBlKSB8fFxuICAgICAgICAgICAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5zb21lKGV4dCA9PlxuICAgICAgICAgICAgICAgICAgYXR0YWNobWVudE5hbWUuZW5kc1dpdGgoZXh0KVxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICBpZiAoaXNBdWRpb0ZpbGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gPEF0dGFjaG1lbnRDYXJkQXVkaW8ga2V5PXtgJHthdHRhY2htZW50LmlkfS0ke2F0dGFjaG1lbnQubmFtZX1gfSBhdHRhY2htZW50PXthdHRhY2htZW50fSAvPlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8QXR0YWNobWVudENhcmRcbiAgICAgICAgICAgICAgICAgIGtleT17YCR7YXR0YWNobWVudC5pZH0tJHthdHRhY2htZW50Lm5hbWV9YH1cbiAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQ9e2F0dGFjaG1lbnR9XG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbkluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQ9eygpID0+IGhhbmRsZUF0dGFjaG1lbnREb3dubG9hZChhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZUF0dGFjaG1lbnRDbGljayhhdHRhY2htZW50KX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1NDQXR0YWNobWVudHNSb3c+XG4gICAgICAgICl9XG4gICAgICAgIHsoISFtZXNzYWdlIHx8IGlzU3RyZWFtaW5nKSAmJiAhKGlzQXNzaXN0YW50ICYmICEhbWVzc2FnZUF0dGFjaG1lbnRzLmxlbmd0aCkgJiYgKFxuICAgICAgICAgIDxTdHJlYW1pbmdNZXNzYWdlQm9keVxuICAgICAgICAgICAgbWVzc2FnZT17bWVzc2FnZSA/PyAnJ31cbiAgICAgICAgICAgIGlzU3RyZWFtaW5nPXshIWlzU3RyZWFtaW5nfVxuICAgICAgICAgICAgaXNDdXJyZW50VXNlcj17aXNDdXJyZW50VXNlcn1cbiAgICAgICAgICAgIGlzQXNzaXN0YW50PXtpc0Fzc2lzdGFudH1cbiAgICAgICAgICAgIGlzRnJvbnRlbmRDYW5jZWxsZWQ9e3Byb3BzLmlzRnJvbnRlbmRDYW5jZWxsZWR9XG4gICAgICAgICAgICBhcHByb3ZhbD17YXBwcm92YWx9XG4gICAgICAgICAgICBpc0Vycm9yPXtpc0Vycm9yfVxuICAgICAgICAgICAgc291cmNlcz17c291cmNlc31cbiAgICAgICAgICAgIHN1Z2dlc3Rpb25zPXtzdWdnZXN0aW9uc31cbiAgICAgICAgICAgIGNyZWF0ZUFnZW50Rm9sbG93VXA9e2NyZWF0ZUFnZW50Rm9sbG93VXB9XG4gICAgICAgICAgICBoYW5kbGVGZWVkYmFja0NsaWNrPXtoYW5kbGVGZWVkYmFja0NsaWNrfVxuICAgICAgICAgICAgZGlzYWJsZUZlZWRiYWNrPXtkaXNhYmxlRmVlZGJhY2sgPz8gbnVsbH1cbiAgICAgICAgICAgIGhhbmRsZVN1Z2dlc3Rpb25DbGljaz17aGFuZGxlU3VnZ2VzdGlvbkNsaWNrfVxuICAgICAgICAgICAgc3VnZ2VzdGlvbnNEaXNhYmxlZD17ISFwcm9wcy5pc1N0cmVhbWluZyB8fCAhIWhhc1NlbGVjdGVkU3VnZ2VzdGlvbn1cbiAgICAgICAgICAgIG1lc3NhZ2VJZD17aWR9XG4gICAgICAgICAgICBpc0xhc3RNZXNzYWdlPXtpc0xhc3RNZXNzYWdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHthcHByb3ZhbCAmJiBhcHByb3ZhbC5wZW5kaW5nX2FjdGlvbnMgJiYgKFxuICAgICAgICAgIDxTQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgICAgIDxBcHByb3ZhbEJveFxuICAgICAgICAgICAgICBhY3Rpb25zPXthcHByb3ZhbC5wZW5kaW5nX2FjdGlvbnN9XG4gICAgICAgICAgICAgIHN0YXR1cz17YXBwcm92YWxTdGF0dXN9XG4gICAgICAgICAgICAgIG9uQXBwcm92ZT17dGhyZWFkSWRzID0+IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24odGhyZWFkSWRzLCAnYXBwcm92ZScpfVxuICAgICAgICAgICAgICBvblJlamVjdD17dGhyZWFkSWRzID0+IGhhbmRsZUFwcHJvdmFsRGVjaXNpb24odGhyZWFkSWRzLCAncmVqZWN0Jyl9XG4gICAgICAgICAgICAgIGlzUHJvamVjdERlbGV0ZWQ9e3Byb3BzLnByb2plY3RNZXRhZGF0YT8uaXNfZGVsZXRlZCA9PT0gdHJ1ZX1cbiAgICAgICAgICAgICAgaXNFeHBhbmRlZD17cHJvcHMuZXhwYW5kZWR9XG4gICAgICAgICAgICAgIGhpdGxJbnN0YW5jZUlkPXthcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWR9XG4gICAgICAgICAgICAgIHdhcm5pbmdNZXNzYWdlPXthcHByb3ZhbC53YXJuaW5nX21lc3NhZ2V9XG4gICAgICAgICAgICAgIG1hbnVhbEFwcHJvdmFsRGV0ZWN0ZWQ9e2FwcHJvdmFsLm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FwcHJvdmFsQWN0aW9uc0NvbHVtbj5cbiAgICAgICAgKX1cbiAgICAgIDwvU0NNZXNzYWdlSXRlbUlubmVyPlxuICAgICAgPEF0dGFjaG1lbnRQcmV2aWV3TW9kYWxcbiAgICAgICAgaXNPcGVuPXshIXByZXZpZXdBdHRhY2htZW50fVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVByZXZpZXd9XG4gICAgICAgIGF0dGFjaG1lbnQ9e3ByZXZpZXdBdHRhY2htZW50fVxuICAgICAgLz5cbiAgICA8L1NDTWVzc2FnZUl0ZW1XcmFwcGVyPlxuICApXG59KVxuXG5jb25zdCBDaGF0QUlNZXNzYWdlc0lubmVyID0gKHtcbiAgdXNlckluaXRpYWxNZXNzYWdlLFxuICBpbml0aWFsQ2hhdElkLFxuICBvbkVycm9yLFxuICBvblNlbmRNZXNzYWdlUmVhZHksXG4gIG9uU2Nyb2xsVG9Cb3R0b20sXG4gIGF0dGFjaG1lbnRzLFxuICBhZ2VudHMsXG4gIGV4cGFuZGVkLFxufTogQ2hhdEFJTWVzc2FnZXNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IGlzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGFnZW50IH0gPSB1c2VHbG9iYWxDb250ZXh0KClcbiAgY29uc3QgZXZlbnQgPSB1c2VFdmVudCgpXG4gIGNvbnN0IGF1dGhVc2VyID0gdXNlVXNlcigpXG4gIGNvbnN0IG1lc3NhZ2VzUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBjaGF0SW5pdGlhbGl6ZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IGlzTG9hZGluZ01vcmVSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHVzZXJTY3JvbGxpbmdSZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFRocmVzaG9sZFJlZiA9IHVzZVJlZigzOSlcbiAgY29uc3QgbGFzdFNjcm9sbFRvcFJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBzaG93U2Nyb2xsVG9Cb3R0b21SZWYgPSB1c2VSZWYoZmFsc2UpXG4gIGNvbnN0IHNjcm9sbFJhZlJlZiA9IHVzZVJlZjxudW1iZXIgfCBudWxsPihudWxsKVxuICBjb25zdCBbc2hvd1Njcm9sbFRvQm90dG9tLCBzZXRTaG93U2Nyb2xsVG9Cb3R0b21dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzZWxlY3RlZFN1Z2dlc3Rpb25NZXNzYWdlSWRzLCBzZXRTZWxlY3RlZFN1Z2dlc3Rpb25NZXNzYWdlSWRzXSA9IHVzZVN0YXRlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pih7fSlcblxuICBjb25zdCB7XG4gICAgbWVzc2FnZXMsXG4gICAgbG9hZGluZ01lc3NhZ2VzLFxuICAgIGlzTG9hZGluZ01vcmVNZXNzYWdlcyxcbiAgICB3YWl0aW5nUmVzcG9uc2UsXG4gICAgaXNXcml0aW5nLFxuICAgIGxvYWRpbmdNZXNzYWdlLFxuICAgIHN0cmVhbUFjdGl2aXR5LFxuICAgIGFjdGl2ZUxvYWRpbmdzLFxuICAgIHNlbmRNZXNzYWdlLFxuICAgIGNoYW5nZVByb2plY3QsXG4gICAgaGFuZGxlRmVlZGJhY2ssXG4gICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbixcbiAgICBpbml0aWFsaXplQ2hhdCxcbiAgICBoYW5kbGVTY3JvbGwsXG4gICAgc3RvcEdlbmVyYXRpb24sXG4gIH0gPSB1c2VDaGF0TWFuYWdlcih7XG4gICAgY2hhdElkOiBpbml0aWFsQ2hhdElkIHx8IHVuZGVmaW5lZCxcbiAgICB1c2VySW5pdGlhbE1lc3NhZ2UsXG4gICAgb25FcnJvcixcbiAgICBhdHRhY2htZW50cyxcbiAgICBhZ2VudHMsXG4gIH0pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdGlvbjogUHJvamVjdCkgPT4ge1xuICAgICAgY2hhbmdlUHJvamVjdChvcHRpb24pXG4gICAgfSxcbiAgICBbY2hhbmdlUHJvamVjdF1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZVN1Z2dlc3Rpb25DbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChtZXNzYWdlSWQ6IHN0cmluZywgc3VnZ2VzdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXN1Z2dlc3Rpb24/LnRyaW0oKSkgcmV0dXJuXG4gICAgICBpZiAoc2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkc1ttZXNzYWdlSWRdKSByZXR1cm5cbiAgICAgIGNvbnN0IGlzTWFya2V0cGxhY2VHbG9iYWxBZ2VudCA9IGFnZW50Py5lbnRpdHkgPT09ICdnbG9iYWwnICYmIC8obWFpYWtlcnxtYXJrZXRwbGFjZSkvaS50ZXN0KGFnZW50Py5uYW1lIHx8ICcnKVxuICAgICAgZXZlbnQoRVZFTlRTLmFpQ2hhdFN1Z2dlc3RlZEFuc3dlciwge1xuICAgICAgICBhZ2VudF90eXBlOiBpc01hcmtldHBsYWNlR2xvYmFsQWdlbnQgPyAnbWFya2V0cGxhY2UnIDogYWdlbnQ/LnR5cGUsXG4gICAgICB9KVxuICAgICAgc2V0U2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkcyhwcmV2ID0+ICh7IC4uLnByZXYsIFttZXNzYWdlSWRdOiB0cnVlIH0pKVxuICAgICAgc2VuZE1lc3NhZ2Uoc3VnZ2VzdGlvbilcbiAgICB9LFxuICAgIFtzZW5kTWVzc2FnZSwgc2VsZWN0ZWRTdWdnZXN0aW9uTWVzc2FnZUlkcywgZXZlbnQsIGFnZW50Py5lbnRpdHksIGFnZW50Py5uYW1lLCBhZ2VudD8udHlwZV1cbiAgKVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgZXN0YWRvIGRlbCBib3TDs24gXCJzY3JvbGwgdG8gYm90dG9tXCIgY29tcGFyYW5kbyBsYSBwb3NpY2nDs25cbiAgICogYWN0dWFsIGRlbCBzY3JvbGwgY29uIGVsIGZvbmRvLiBVc2EgdW4gcmVmIHBhcmEgZXZpdGFyIGBzZXRTdGF0ZWAgY3VhbmRvXG4gICAqIGVsIHZhbG9yIG5vIGNhbWJpYS5cbiAgICovXG4gIGNvbnN0IHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgY29uc3QgZWwgPSBtZXNzYWdlc1JlZi5jdXJyZW50XG4gICAgaWYgKCFlbCkgcmV0dXJuXG4gICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBlbFxuICAgIGNvbnN0IGRpc3RhbmNlRnJvbUJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIHNjcm9sbFRvcCAtIGNsaWVudEhlaWdodFxuICAgIGNvbnN0IHNob3VsZFNob3cgPSBkaXN0YW5jZUZyb21Cb3R0b20gPiA1MFxuICAgIGlmIChzaG93U2Nyb2xsVG9Cb3R0b21SZWYuY3VycmVudCAhPT0gc2hvdWxkU2hvdykge1xuICAgICAgc2hvd1Njcm9sbFRvQm90dG9tUmVmLmN1cnJlbnQgPSBzaG91bGRTaG93XG4gICAgICBzZXRTaG93U2Nyb2xsVG9Cb3R0b20oc2hvdWxkU2hvdylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8qKlxuICAgKiBTY3JvbGwgaW5tZWRpYXRvIGFsIGZvbmRvIChkZW50cm8gZGUgckFGIHBhcmEgY29vcmRpbmFyIGNvbiBlbCBwYWludClcbiAgICogeSBhY3R1YWxpemEgbGEgdmlzaWJpbGlkYWQgZGVsIGJvdMOzbi4gUmVzcGV0YSBgc2tpcElmVXNlclNjcm9sbGluZ2AgcGFyYVxuICAgKiBubyBzb2JyZXNjcmliaXIgZWwgc2Nyb2xsIG1hbnVhbCBkZWwgdXN1YXJpbyBkdXJhbnRlIGVsIHN0cmVhbWluZy5cbiAgICovXG4gIGNvbnN0IHNjcm9sbFRvQm90dG9tUmFmID0gdXNlQ2FsbGJhY2soXG4gICAgKG9wdHM6IHsgc2tpcElmVXNlclNjcm9sbGluZz86IGJvb2xlYW47IGRlbGF5TXM/OiBudW1iZXIgfSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCB7IHNraXBJZlVzZXJTY3JvbGxpbmcgPSBmYWxzZSwgZGVsYXlNcyA9IDAgfSA9IG9wdHNcbiAgICAgIGNvbnN0IHJ1biA9ICgpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBlbCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICAgICAgICBpZiAoIWVsKSByZXR1cm5cbiAgICAgICAgICBpZiAoc2tpcElmVXNlclNjcm9sbGluZyAmJiB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICAgIGVsLnNjcm9sbFRvcCA9IGVsLnNjcm9sbEhlaWdodFxuICAgICAgICAgIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkoKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgaWYgKGRlbGF5TXMgPiAwKSBzZXRUaW1lb3V0KHJ1biwgZGVsYXlNcylcbiAgICAgIGVsc2UgcnVuKClcbiAgICB9LFxuICAgIFt1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5XVxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xpY2tTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoIW1lc3NhZ2VzUmVmLmN1cnJlbnQpIHJldHVyblxuICAgIG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsVG8oe1xuICAgICAgdG9wOiBtZXNzYWdlc1JlZi5jdXJyZW50LnNjcm9sbEhlaWdodCxcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICB9KVxuICAgIC8vIERhciB0aWVtcG8gYWwgc21vb3RoLXNjcm9sbCBhbnRlcyBkZSByZWNhbGN1bGFyIGxhIHZpc2liaWxpZGFkIGRlbCBib3TDs24uXG4gICAgc2V0VGltZW91dCh1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5LCA1MDApXG4gIH0sIFt1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5XSlcblxuICBjb25zdCBoYW5kbGVTY3JvbGxUb0JvdHRvbSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5VSUV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gZS5jdXJyZW50VGFyZ2V0XG5cbiAgICAgIGlmIChzY3JvbGxSYWZSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZShzY3JvbGxSYWZSZWYuY3VycmVudClcbiAgICAgIH1cblxuICAgICAgc2Nyb2xsUmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBzY3JvbGxSYWZSZWYuY3VycmVudCA9IG51bGxcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIHNjcm9sbEhlaWdodCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJcblxuICAgICAgICBjb25zdCBpc1Njcm9sbGluZ1VwID0gc2Nyb2xsVG9wIDwgbGFzdFNjcm9sbFRvcFJlZi5jdXJyZW50XG5cbiAgICAgICAgaWYgKGlzU2Nyb2xsaW5nVXApIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDE1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc05lYXJCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSBzY3JvbGxUb3AgLSBjbGllbnRIZWlnaHQgPCBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20pIHtcbiAgICAgICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgICAgIH1cblxuICAgICAgICB1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQgPSAhaXNOZWFyQm90dG9tXG4gICAgICAgIGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudCA9IHNjcm9sbFRvcFxuXG4gICAgICAgIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkoKVxuXG4gICAgICAgIGlmIChpc05lYXJCb3R0b20gJiYgb25TY3JvbGxUb0JvdHRvbSkge1xuICAgICAgICAgIG9uU2Nyb2xsVG9Cb3R0b20oKVxuICAgICAgICB9XG5cbiAgICAgICAgaGFuZGxlU2Nyb2xsKGNvbnRhaW5lcilcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbb25TY3JvbGxUb0JvdHRvbSwgaGFuZGxlU2Nyb2xsLCB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5XVxuICApXG5cbiAgLy8gcmVmcyB0byBzdGFiaWxpemUgZnVuY3Rpb25zIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByZS1yZW5kZXJzXG4gIGNvbnN0IHNlbmRNZXNzYWdlUmVmID0gdXNlUmVmKHNlbmRNZXNzYWdlKVxuICBjb25zdCBzdG9wR2VuZXJhdGlvblJlZiA9IHVzZVJlZihzdG9wR2VuZXJhdGlvbilcbiAgY29uc3Qgb25TZW5kTWVzc2FnZVJlYWR5UmVmID0gdXNlUmVmKG9uU2VuZE1lc3NhZ2VSZWFkeSlcblxuICAvLyB1cGRhdGUgcmVmcyB3aGVuIGZ1bmN0aW9ucyBjaGFuZ2VcbiAgc2VuZE1lc3NhZ2VSZWYuY3VycmVudCA9IHNlbmRNZXNzYWdlXG4gIHN0b3BHZW5lcmF0aW9uUmVmLmN1cnJlbnQgPSBzdG9wR2VuZXJhdGlvblxuICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudCA9IG9uU2VuZE1lc3NhZ2VSZWFkeVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG9uU2VuZE1lc3NhZ2VSZWFkeVJlZi5jdXJyZW50KSB7XG4gICAgICBvblNlbmRNZXNzYWdlUmVhZHlSZWYuY3VycmVudChzZW5kTWVzc2FnZVJlZi5jdXJyZW50LCBzdG9wR2VuZXJhdGlvblJlZi5jdXJyZW50LCB3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZylcbiAgICB9XG4gIH0sIFt3YWl0aW5nUmVzcG9uc2UsIGlzV3JpdGluZ10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQgPSBpc0xvYWRpbmdNb3JlTWVzc2FnZXNcbiAgfSwgW2lzTG9hZGluZ01vcmVNZXNzYWdlc10pXG5cbiAgLy8gQ3VhbmRvIGVsIGFnZW50ZSBlbXBpZXphIGEgcmVzcG9uZGVyLCByZXNldGVhciBlbCBmbGFnIHkgZWwgdW1icmFsIHBhcmEgYWN0aXZhciBlbCBhdXRvLXNjcm9sbFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UpIHtcbiAgICAgIHVzZXJTY3JvbGxpbmdSZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICBzY3JvbGxUaHJlc2hvbGRSZWYuY3VycmVudCA9IDM5XG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghY2hhdEluaXRpYWxpemVkUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNoYXRJbml0aWFsaXplZFJlZi5jdXJyZW50ID0gdHJ1ZVxuICAgICAgaW5pdGlhbGl6ZUNoYXQoKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgLy8gQXV0b3Njcm9sbCBtaWVudHJhcyBlbCB0ZXh0byBkZWwgc3RyZWFtIGNyZWNlLiBFbCB0ZXh0byBzZSBwaW50YSBhbCByaXRtb1xuICAvLyBkZSBgdXNlU21vb3RoU3RyZWFtVGV4dGAgKH42MGZwcyksIG5vIGFsIHJpdG1vIGRlIGxsZWdhZGEgZGUgdG9rZW5zIGRlbFxuICAvLyBiYWNrZW5kOiBwb3IgZXNvIGFjw6EgdXNhbW9zIHVuIGxvb3AgZGUgckFGIHF1ZSBjb21wYXJhIGBzY3JvbGxIZWlnaHRgXG4gIC8vIGNvbnRyYSBlbCDDumx0aW1vIHZhbG9yIG9ic2VydmFkbyB5IGFqdXN0YSBzb2xvIGN1YW5kbyBjYW1iaWEuIEFzw60gZWxcbiAgLy8gc2Nyb2xsIHF1ZWRhIHBlcmZlY3RhbWVudGUgc2luY3Jvbml6YWRvIGNvbiBsYSBhbmltYWNpw7NuIGRlbCB0ZXh0byBzaW5cbiAgLy8gZGVwZW5kZXIgZGUgbGEgY2FkZW5jaWEgZGVsIHN0cmVhbWluZ1N0b3JlLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghd2FpdGluZ1Jlc3BvbnNlICYmICFpc1dyaXRpbmcpIHJldHVybiB1bmRlZmluZWRcbiAgICBpZiAoIW1lc3NhZ2VzUmVmLmN1cnJlbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGxldCByYWZJZDogbnVtYmVyIHwgbnVsbCA9IG51bGxcbiAgICBsZXQgbGFzdEhlaWdodCA9IG1lc3NhZ2VzUmVmLmN1cnJlbnQuc2Nyb2xsSGVpZ2h0XG5cbiAgICBjb25zdCB0aWNrID0gKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSBtZXNzYWdlc1JlZi5jdXJyZW50XG4gICAgICBpZiAoIWVsKSB7XG4gICAgICAgIHJhZklkID0gbnVsbFxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1cnJlbnRIZWlnaHQgPSBlbC5zY3JvbGxIZWlnaHRcbiAgICAgIGlmIChjdXJyZW50SGVpZ2h0ICE9PSBsYXN0SGVpZ2h0KSB7XG4gICAgICAgIGxhc3RIZWlnaHQgPSBjdXJyZW50SGVpZ2h0XG4gICAgICAgIGlmICghdXNlclNjcm9sbGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZWwuc2Nyb2xsVG9wID0gY3VycmVudEhlaWdodFxuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkoKVxuICAgICAgfVxuICAgICAgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljaylcbiAgICB9XG5cbiAgICByYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmFmSWQgIT0gbnVsbCkgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpXG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlLCBpc1dyaXRpbmcsIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHldKVxuXG4gIC8vIEFsIGNvbWVuemFyIGEgZXNwZXJhciBsYSByZXNwdWVzdGEgZGVsIGJhY2tlbmQsIHNjcm9sbCBpbmljaWFsIGFsIGZvbmRvLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh3YWl0aW5nUmVzcG9uc2UgJiYgbWVzc2FnZXNSZWYuY3VycmVudCkge1xuICAgICAgc2Nyb2xsVG9Cb3R0b21SYWYoeyBza2lwSWZVc2VyU2Nyb2xsaW5nOiB0cnVlIH0pXG4gICAgfVxuICB9LCBbd2FpdGluZ1Jlc3BvbnNlLCBzY3JvbGxUb0JvdHRvbVJhZl0pXG5cbiAgLy8gU2Nyb2xsIGN1YW5kbyBjYW1iaWFuIGxvcyBtZW5zYWplczogZGlzdGluZ3VlIFwibnVldm8gbWVuc2FqZVwiIChhZ3JlZ2FkbylcbiAgLy8gZGUgXCJyZWVtcGxhem9cIiAobWlzbW8gaWQvbGVuZ3RoLCBlai4gZmVlZGJhY2sgbyBhcHByb3ZhbFN0YXR1cykuIEVuXG4gIC8vIHJlZW1wbGF6b3Mgc29sbyBzZSByZWNhbGN1bGEgbGEgdmlzaWJpbGlkYWQgZGVsIGJvdMOzbiBzaW4gZm9yemFyIHNjcm9sbC5cbiAgY29uc3QgbGFzdE1lc3NhZ2VJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCBudWxsPihudWxsKVxuICBjb25zdCBsYXN0TWVzc2FnZXNMZW5ndGhSZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWVzc2FnZXNSZWYuY3VycmVudCB8fCBsb2FkaW5nTWVzc2FnZXMgfHwgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzIHx8IGlzTG9hZGluZ01vcmVSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBtZXNzYWdlc1ttZXNzYWdlcy5sZW5ndGggLSAxXVxuICAgIGNvbnN0IGxhc3RJZCA9IGxhc3RNZXNzYWdlPy5pZCA/PyBudWxsXG4gICAgY29uc3QgcHJldklkID0gbGFzdE1lc3NhZ2VJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgcHJldkxlbiA9IGxhc3RNZXNzYWdlc0xlbmd0aFJlZi5jdXJyZW50XG4gICAgbGFzdE1lc3NhZ2VJZFJlZi5jdXJyZW50ID0gbGFzdElkXG4gICAgbGFzdE1lc3NhZ2VzTGVuZ3RoUmVmLmN1cnJlbnQgPSBtZXNzYWdlcy5sZW5ndGhcblxuICAgIGNvbnN0IGlzTmV3TWVzc2FnZSA9IGxhc3RJZCAhPT0gcHJldklkIHx8IG1lc3NhZ2VzLmxlbmd0aCAhPT0gcHJldkxlblxuICAgIGlmICghaXNOZXdNZXNzYWdlKSB7XG4gICAgICB1cGRhdGVTY3JvbGxCb3R0b21WaXNpYmlsaXR5KClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRhaW5lciA9IG1lc3NhZ2VzUmVmLmN1cnJlbnRcbiAgICBjb25zdCBpc0F0Qm90dG9tID0gY29udGFpbmVyLnNjcm9sbEhlaWdodCAtIGNvbnRhaW5lci5zY3JvbGxUb3AgPD0gY29udGFpbmVyLmNsaWVudEhlaWdodCArIDEwMFxuICAgIGNvbnN0IGhhc0luaXRpYWxNZXNzYWdlID0gbWVzc2FnZXMuc29tZShtc2cgPT4gbXNnLmlkID09PSAndXNlci1pbml0aWFsLW1lc3NhZ2UnKVxuICAgIGNvbnN0IGlzQXBwcm92YWwgPSAhIWxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhcHByb3ZhbC0nKSB8fCAhIWxhc3RNZXNzYWdlLmFwcHJvdmFsKVxuICAgIGNvbnN0IGlzQW5zd2VyT3JRdWVzdGlvbiA9XG4gICAgICAhIWxhc3RNZXNzYWdlICYmIChsYXN0TWVzc2FnZS5pZC5zdGFydHNXaXRoKCdhbnN3ZXItJykgfHwgbGFzdE1lc3NhZ2UuaWQuc3RhcnRzV2l0aCgncXVlc3Rpb24tJykpXG5cbiAgICAvLyBBcHByb3ZhbDogc2VjdWVuY2lhIGRlIHNjcm9sbHMgY29uIGRlbGF5IHBvcnF1ZSBlbCBBcHByb3ZhbEJveCBuZWNlc2l0YVxuICAgIC8vIHVuIHRpY2sgcGFyYSBtZWRpcnNlLiBTY3JvbGxlYSBhdW5xdWUgZWwgdXN1YXJpbyBubyBlc3TDqSBhbCBmb25kbyBzaSBub1xuICAgIC8vIGVzdMOhIHNjcm9sbGVhbmRvIG1hbnVhbG1lbnRlLlxuICAgIGlmIChpc0FwcHJvdmFsICYmIChpc0F0Qm90dG9tIHx8ICF1c2VyU2Nyb2xsaW5nUmVmLmN1cnJlbnQpKSB7XG4gICAgICBzY3JvbGxUb0JvdHRvbVJhZigpXG4gICAgICBzY3JvbGxUb0JvdHRvbVJhZigpXG4gICAgICBzY3JvbGxUb0JvdHRvbVJhZih7IGRlbGF5TXM6IDEwMCB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gTnVldm9zIGFuc3dlci9xdWVzdGlvbjogc2Nyb2xsIHNpIGVsIHVzdWFyaW8geWEgZXN0YWJhIGFsIGZvbmRvLlxuICAgIGlmIChpc0Fuc3dlck9yUXVlc3Rpb24gJiYgaXNBdEJvdHRvbSkge1xuICAgICAgc2Nyb2xsVG9Cb3R0b21SYWYoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gQ2FzbyBib3JkZTogY2FtYmlvcyBkZSBtZW5zYWplcyBzaW4gc2VyIG51ZXZvIGFuc3dlci91c2VyL2FwcHJvdmFsXG4gICAgLy8gcGVybyBzw60gdW4gbWVuc2FqZSBudWV2byAobm8gZWwgXCJ1c2VyLWluaXRpYWwtbWVzc2FnZVwiKS4gU2Nyb2xsZWEuXG4gICAgaWYgKCFpc0Fuc3dlck9yUXVlc3Rpb24gJiYgIWlzQXBwcm92YWwgJiYgIWhhc0luaXRpYWxNZXNzYWdlICYmIG1lc3NhZ2VzLmxlbmd0aCA+IHByZXZMZW4pIHtcbiAgICAgIHNjcm9sbFRvQm90dG9tUmFmKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHkoKVxuICB9LCBbbWVzc2FnZXMsIGxvYWRpbmdNZXNzYWdlcywgaXNMb2FkaW5nTW9yZU1lc3NhZ2VzLCBzY3JvbGxUb0JvdHRvbVJhZiwgdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eV0pXG5cbiAgLy8gRXN0YWRvIGluaWNpYWwgZGVsIGJvdMOzbiBzY3JvbGwtdG8tYm90dG9tIGFsIHRlcm1pbmFyIGxvYWRpbmdNZXNzYWdlcy5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxvYWRpbmdNZXNzYWdlcykge1xuICAgICAgdXBkYXRlU2Nyb2xsQm90dG9tVmlzaWJpbGl0eSgpXG4gICAgfVxuICB9LCBbbG9hZGluZ01lc3NhZ2VzLCBtZXNzYWdlcy5sZW5ndGgsIHVwZGF0ZVNjcm9sbEJvdHRvbVZpc2liaWxpdHldKVxuXG4gIC8vIE9idGVuZXIgZWwgw7psdGltbyBtZW5zYWplIGRlbCB1c3VhcmlvIHBhcmEgdmVyaWZpY2FyIHNpIHRpZW5lIGF0dGFjaG1lbnRzXG4gIGNvbnN0IGxhc3RVc2VyTWVzc2FnZSA9IG1lc3NhZ2VzXG4gICAgLmZpbHRlcihtc2cgPT4gbXNnLnJvbGUgPT09IENoYXRIaXN0b3J5Um9sZS5VU0VSIHx8IG1zZy51c2VyLmlkID09PSBhdXRoVXNlci5pZC50b1N0cmluZygpKVxuICAgIC5hdCgtMSlcblxuICBjb25zdCBhdHRhY2htZW50c0NvdW50ID1cbiAgICAoQXJyYXkuaXNBcnJheShsYXN0VXNlck1lc3NhZ2U/LmF0dGFjaG1lbnRzKSA/IGxhc3RVc2VyTWVzc2FnZS5hdHRhY2htZW50cy5sZW5ndGggOiAwKSB8fFxuICAgIChBcnJheS5pc0FycmF5KGxhc3RVc2VyTWVzc2FnZT8uc291cmNlcykgPyBsYXN0VXNlck1lc3NhZ2Uuc291cmNlcy5sZW5ndGggOiAwKVxuXG4gIGNvbnN0IHN0cmVhbUxvYWRpbmdEaXNwbGF5ID0gcmVzb2x2ZVN0cmVhbUxvYWRpbmdEaXNwbGF5KHtcbiAgICBzdHJlYW1BY3Rpdml0eSxcbiAgICBsb2FkaW5nTWVzc2FnZSxcbiAgICBhY3RpdmVMb2FkaW5nczogYWN0aXZlTG9hZGluZ3MgfHwge30sXG4gICAgd2FpdGluZ1Jlc3BvbnNlLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIGlzRGVlcFNlYXJjaEFjdGl2ZSxcbiAgICBoYXNBdHRhY2htZW50czogQm9vbGVhbihhdHRhY2htZW50c0NvdW50KSxcbiAgICBhdHRhY2htZW50c0NvdW50LFxuICAgIHQsXG4gIH0pXG5cbiAgY29uc3QgaXNTY3JvbGxPblBhcmVudCA9ICEhZXhwYW5kZWRcbiAgY29uc3QgaXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50ID0gYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcgJiYgLyhtYWlha2VyfG1hcmtldHBsYWNlKS9pLnRlc3QoYWdlbnQ/Lm5hbWUgfHwgJycpXG5cbiAgLy8gQWwgZXhwYW5kaXIvY29udHJhZXIgZWwgbW9kYWwgZWwgcmVmIHBhc2EgYSBvdHJvIGNvbnRlbmVkb3IgKHNjcm9sbFRvcCBzZSByZXNldGVhIGEgMCkuXG4gIC8vIFJlc3RhdXJhciBsYSBwb3NpY2nDs24gZGUgc2Nyb2xsIGFudGVzIGRlbCBwYWludCBwYXJhIGV2aXRhciBxdWUgbGEgY29udmVyc2FjacOzbiBzYWx0ZSBhcnJpYmEuXG4gIGNvbnN0IGV4cGFuZGVkUmVmID0gdXNlUmVmKGV4cGFuZGVkKVxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChleHBhbmRlZFJlZi5jdXJyZW50ICE9PSBleHBhbmRlZCAmJiBtZXNzYWdlc1JlZi5jdXJyZW50KSB7XG4gICAgICBjb25zdCBzYXZlZFNjcm9sbFRvcCA9IGxhc3RTY3JvbGxUb3BSZWYuY3VycmVudFxuICAgICAgbWVzc2FnZXNSZWYuY3VycmVudC5zY3JvbGxUb3AgPSBzYXZlZFNjcm9sbFRvcFxuICAgICAgZXhwYW5kZWRSZWYuY3VycmVudCA9IGV4cGFuZGVkXG4gICAgfSBlbHNlIHtcbiAgICAgIGV4cGFuZGVkUmVmLmN1cnJlbnQgPSBleHBhbmRlZFxuICAgIH1cbiAgfSwgW2V4cGFuZGVkXSlcblxuICBpZiAobG9hZGluZ01lc3NhZ2VzKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxGYWRlIGZpbGw+XG4gICAgICAgIDxMb2FkZXIgLz5cbiAgICAgIDwvRmFkZT5cbiAgICApXG4gIH1cblxuICBjb25zdCBtZXNzYWdlc0NvbnRlbnQgPSAoXG4gICAgPD5cbiAgICAgIHtpc0xvYWRpbmdNb3JlTWVzc2FnZXMgJiYgPExvYWRpbmdUZXh0IHRleHQ9e3QoJ2NoYXQubG9hZGluZ01vcmUnKX0gLz59XG4gICAgICA8PlxuICAgICAgICB7bWVzc2FnZXMubWFwKChtZXNzYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzQXNzaXN0YW50TWVzc2FnZSA9IG1lc3NhZ2Uucm9sZSA9PT0gQ2hhdEhpc3RvcnlSb2xlLkFTU0lTVEFOVCB8fCBtZXNzYWdlLnVzZXIuaWQgPT09ICdhc3Npc3RhbnQnXG4gICAgICAgICAgY29uc3QgaXNMYXN0TWVzc2FnZSA9IGluZGV4ID09PSBtZXNzYWdlcy5sZW5ndGggLSAxXG4gICAgICAgICAgY29uc3QgaXNTdHJlYW1pbmcgPVxuICAgICAgICAgICAgaXNBc3Npc3RhbnRNZXNzYWdlICYmXG4gICAgICAgICAgICBpc0xhc3RNZXNzYWdlICYmXG4gICAgICAgICAgICAod2FpdGluZ1Jlc3BvbnNlIHx8IGlzV3JpdGluZykgJiZcbiAgICAgICAgICAgIGlzU3RyZWFtaW5nUGxhY2Vob2xkZXJNZXNzYWdlSWQobWVzc2FnZS5pZClcblxuICAgICAgICAgIC8vIE5vIGZpbHRyYXIgZWwgcGxhY2Vob2xkZXIgZGVsIG1lbnNhamUgZW4gc3RyZWFtaW5nOiBzdSB0ZXh0byB2aXZlXG4gICAgICAgICAgLy8gZW4gZWwgc3RyZWFtaW5nU3RvcmUgeSBgbWVzc2FnZS5tZXNzYWdlYCBlcyAnJyBoYXN0YSBlbCBjb21wbGV0ZS5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhaXNTdHJlYW1pbmcgJiZcbiAgICAgICAgICAgICEobWVzc2FnZS5hdHRhY2htZW50cz8ubGVuZ3RoIHx8IG1lc3NhZ2Uuc291cmNlcz8ubGVuZ3RoKSAmJlxuICAgICAgICAgICAgIW1lc3NhZ2UubWVzc2FnZSAmJlxuICAgICAgICAgICAgIW1lc3NhZ2UucHJvamVjdD8ubmFtZSAmJlxuICAgICAgICAgICAgIW1lc3NhZ2UuYXBwcm92YWxcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuXG4gICAgICAgICAgY29uc3QgbWVzc2FnZUZlZWRiYWNrID1cbiAgICAgICAgICAgIG1lc3NhZ2U/Lndhc0hlbHBmdWwgPT09IHVuZGVmaW5lZCB8fCBtZXNzYWdlLndhc0hlbHBmdWwgPT09IG51bGxcbiAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgIDogbWVzc2FnZS53YXNIZWxwZnVsXG4gICAgICAgICAgICAgICAgPyBGZWVkYmFjay5USFVNQlNfVVBcbiAgICAgICAgICAgICAgICA6IEZlZWRiYWNrLlRIVU1CU19ET1dOXG5cbiAgICAgICAgICAvLyBLZXkgZXN0YWJsZTogc29sbyBtZXNzYWdlLmlkIHBhcmEgZXZpdGFyIHJlbW91bnQgZHVyYW50ZSBzdHJlYW1pbmcgKG1lc3NhZ2UuZGF0ZSBwdWVkZSBjYW1iaWFyKVxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2VLZXkgPSBtZXNzYWdlLmlkID8/IGBtc2ctJHtpbmRleH1gXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1lc3NhZ2VJdGVtXG4gICAgICAgICAgICAgIHsuLi5tZXNzYWdlfVxuICAgICAgICAgICAgICBrZXk9e21lc3NhZ2VLZXl9XG4gICAgICAgICAgICAgIGF1dGhVc2VyPXthdXRoVXNlcn1cbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uPXtoYW5kbGVTZWxlY3RPcHRpb259XG4gICAgICAgICAgICAgIGhhbmRsZUZlZWRiYWNrPXtoYW5kbGVGZWVkYmFja31cbiAgICAgICAgICAgICAgaGFuZGxlQXBwcm92YWxEZWNpc2lvbj17aGFuZGxlQXBwcm92YWxEZWNpc2lvbn1cbiAgICAgICAgICAgICAgaGFuZGxlU3VnZ2VzdGlvbkNsaWNrPXtoYW5kbGVTdWdnZXN0aW9uQ2xpY2t9XG4gICAgICAgICAgICAgIGhhc1NlbGVjdGVkU3VnZ2VzdGlvbj17ISFzZWxlY3RlZFN1Z2dlc3Rpb25NZXNzYWdlSWRzW21lc3NhZ2UuaWRdfVxuICAgICAgICAgICAgICBkaXNhYmxlRmVlZGJhY2s9e21lc3NhZ2VGZWVkYmFja31cbiAgICAgICAgICAgICAgaXNTdHJlYW1pbmc9e2lzU3RyZWFtaW5nfVxuICAgICAgICAgICAgICBpc0xhc3RNZXNzYWdlPXtpc0xhc3RNZXNzYWdlfVxuICAgICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSl9XG4gICAgICA8Lz5cbiAgICAgIHtzdHJlYW1Mb2FkaW5nRGlzcGxheSAmJiAoXG4gICAgICAgIDxTQ0xvYWRpbmdNZXNzYWdlc0NvbHVtbj5cbiAgICAgICAgICA8QWdlbnRBY3Rpdml0eUluZGljYXRvciBhY3Rpdml0eT17c3RyZWFtTG9hZGluZ0Rpc3BsYXl9IC8+XG4gICAgICAgIDwvU0NMb2FkaW5nTWVzc2FnZXNDb2x1bW4+XG4gICAgICApfVxuICAgIDwvPlxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8U0NNZXNzYWdlc091dGVyICRzY3JvbGxPblBhcmVudD17aXNTY3JvbGxPblBhcmVudH0+XG4gICAgICB7aXNTY3JvbGxPblBhcmVudCA/IChcbiAgICAgICAgPFNDTWVzc2FnZXNTY3JvbGwgcmVmPXttZXNzYWdlc1JlZn0gb25TY3JvbGw9e2hhbmRsZVNjcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8U0NNZXNzYWdlc0lubmVyICRzY3JvbGxPblBhcmVudD17aXNTY3JvbGxPblBhcmVudH0gJGlzTWFya2V0cGxhY2VHbG9iYWw9e2lzTWFya2V0cGxhY2VHbG9iYWxBZ2VudH0+XG4gICAgICAgICAgICB7bWVzc2FnZXNDb250ZW50fVxuICAgICAgICAgIDwvU0NNZXNzYWdlc0lubmVyPlxuICAgICAgICA8L1NDTWVzc2FnZXNTY3JvbGw+XG4gICAgICApIDogKFxuICAgICAgICA8U0NNZXNzYWdlc0lubmVyXG4gICAgICAgICAgcmVmPXttZXNzYWdlc1JlZn1cbiAgICAgICAgICBvblNjcm9sbD17aGFuZGxlU2Nyb2xsVG9Cb3R0b219XG4gICAgICAgICAgJHNjcm9sbE9uUGFyZW50PXtmYWxzZX1cbiAgICAgICAgICAkaXNNYXJrZXRwbGFjZUdsb2JhbD17aXNNYXJrZXRwbGFjZUdsb2JhbEFnZW50fVxuICAgICAgICA+XG4gICAgICAgICAge21lc3NhZ2VzQ29udGVudH1cbiAgICAgICAgPC9TQ01lc3NhZ2VzSW5uZXI+XG4gICAgICApfVxuXG4gICAgICB7c2hvd1Njcm9sbFRvQm90dG9tICYmIChcbiAgICAgICAgPFNjcm9sbFRvQm90dG9tQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVDbGlja1Njcm9sbFRvQm90dG9tfT5cbiAgICAgICAgICA8QXJyb3dTbWFsbERvd24gY29sb3I9XCIjNjY2XCIgd2lkdGg9XCIyMHB4XCIgaGVpZ2h0PVwiMjBweFwiIC8+XG4gICAgICAgIDwvU2Nyb2xsVG9Cb3R0b21CdXR0b24+XG4gICAgICApfVxuICAgIDwvU0NNZXNzYWdlc091dGVyPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBDaGF0QUlNZXNzYWdlcyA9IFJlYWN0Lm1lbW8oQ2hhdEFJTWVzc2FnZXNJbm5lcilcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPQSxLQUFLLElBQVFDLElBQUksRUFBYUMsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLGVBQWUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUFDLGFBQUEsSUFBQUMsY0FBQSxRQUFRLE9BQU87QUFDN0csU0FBU0MsVUFBVSxRQUFRLFlBQVk7QUFDdkMsU0FBU0MsZ0JBQWdCLFFBQVEsa0JBQWtCO0FBQ25ELFNBQVNDLGNBQWMsUUFBUSxpREFBaUQ7QUFFaEYsU0FBU0MsY0FBYyxRQUFRLDJDQUEyQztBQUMxRSxTQUFTQyxXQUFXLFFBQVEscUNBQXFDO0FBQ2pFLFNBQVNDLHNCQUFzQixRQUFRLG9DQUFvQztBQUMzRSxTQUFTQyxtQkFBbUIsUUFBUSxnREFBZ0Q7QUFFcEYsU0FBc0JDLGVBQWUsUUFBa0IscUJBQXFCO0FBQzVFLFNBQVNDLDhCQUE4QixRQUFRLDRDQUE0QztBQUMzRixTQUFTQyxzQkFBc0IsRUFBRUMsaUJBQWlCLEVBQUVDLGdCQUFnQixRQUFRLHNDQUFzQztBQUVsSCxTQUFTQyxtQkFBbUIsUUFBUSxpQ0FBaUM7QUFDckUsU0FBa0JDLE9BQU8sUUFBUSwyQkFBMkI7QUFFNUQsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUMxQyxTQUFTQyxjQUFjLFFBQVEsOENBQThDO0FBQzdFLFNBQVNDLFlBQVksUUFBUSw2QkFBNkI7QUFDMUQsU0FBU0MsbUJBQW1CLFFBQVEsb0NBQW9DO0FBQ3hFLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUV4RSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLHNCQUFzQixRQUFRLG9DQUFvQztBQUMzRSxTQUFTQywrQkFBK0IsRUFBRUMsMkJBQTJCLFFBQVEsdUNBQXVDO0FBQ3BILFNBQVNDLE1BQU0sUUFBUSxvQkFBb0I7QUFDM0MsU0FBU0MsSUFBSSxRQUFRLGtCQUFrQjtBQUl2QyxTQUFTQyxlQUFlLEVBQUVDLGdCQUFnQixFQUFFQyxzQkFBc0IsRUFBRUMsdUJBQXVCLFFBQVEsVUFBVTtBQUM3RyxTQUFTQyxlQUFlLFFBQVEsb0JBQW9CO0FBQ3BELFNBQ0VDLG1CQUFtQixFQUNuQkMsb0JBQW9CLEVBQ3BCQyxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsZUFBZSxFQUNmQyx1QkFBdUIsRUFDdkJDLGFBQWEsRUFDYkMsWUFBWSxFQUNaQyx3QkFBd0IsRUFDeEJDLGVBQWUsRUFDZkMsaUJBQWlCLEVBQ2pCQyxVQUFVLEVBQ1ZDLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxnQkFBZ0IsRUFDaEJDLHVCQUF1QixRQUNsQixhQUFhO0FBQ3BCLFNBQVNDLFFBQVEsUUFBUSxvQ0FBb0M7QUFDN0QsU0FBU0MsZ0JBQWdCLFFBQVEsaUNBQWlDO0FBSWxFLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7QUFDNUMsU0FBU0Msc0JBQXNCLFFBQVEsNkJBQTZCO0FBQ3BFLFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyx3QkFBd0IsUUFBUSw0QkFBNEI7QUFDckUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEseUJBQXlCO0FBQzFELFNBQVNDLG1CQUFtQixRQUFRLG1DQUFtQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUEsRUFBQUMsUUFBQSxJQUFBQyxTQUFBO0FBRXZFLElBQU1DLElBQUksR0FBRzVELGdCQUFnQixDQUFDO0VBQUU2RCxNQUFNLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYztBQUFFLENBQUMsQ0FBQztBQUUzRSxJQUFNQyxvQkFBd0IsR0FBRyxTQUEzQkEsb0JBQXdCQSxDQUFBLEVBQVM7RUFDckMsSUFBQUMsaUJBQUEsR0FBa0JqQixnQkFBZ0IsQ0FBQyxDQUFDO0lBQTVCa0IsS0FBSyxHQUFBRCxpQkFBQSxDQUFMQyxLQUFLO0VBQ2Isb0JBQ0VULElBQUEsQ0FBQ2hCLGlCQUFpQjtJQUFBMEIsUUFBQSxFQUNmLENBQUFELEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFRSxJQUFJLE1BQUssT0FBTyxnQkFBR1gsSUFBQSxDQUFDUixRQUFRO01BQUNvQixLQUFLLEVBQUUsRUFBRztNQUFDQyxNQUFNLEVBQUU7SUFBRyxDQUFFLENBQUMsR0FBR0osS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVLO0VBQUssQ0FDNUQsQ0FBQztBQUV4QixDQUFDO0FBRUQsSUFBTUMsZUFBZSxnQkFBRy9FLElBQUksQ0FBQ3VFLG9CQUFvQixDQUFDO0FBK0RsRCxJQUFNUyxjQUF1QyxHQUFHLFNBQTFDQSxjQUF1Q0EsQ0FBQUMsSUFBQSxFQUE4QztFQUFBLElBQXhDQyxhQUFhLEdBQUFELElBQUEsQ0FBYkMsYUFBYTtJQUFFUixRQUFRLEdBQUFPLElBQUEsQ0FBUlAsUUFBUTtJQUFLUyxLQUFLLEdBQUFDLHdCQUFBLENBQUFILElBQUEsRUFBQUksU0FBQTtFQUNsRixJQUFNQyxnQkFBZ0IsR0FBR0osYUFBYSxHQUFHakQsZUFBZSxHQUFHQyxnQkFBZ0I7RUFDM0Usb0JBQU84QixJQUFBLENBQUNzQixnQkFBZ0IsRUFBQUMsYUFBQSxDQUFBQSxhQUFBLEtBQUtKLEtBQUs7SUFBQVQsUUFBQSxFQUFHQTtFQUFRLEVBQW1CLENBQUM7QUFDbkUsQ0FBQztBQUVELElBQU1jLHFCQUFxRCxHQUFHLFNBQXhEQSxxQkFBcURBLENBQUFDLEtBQUEsRUFBb0M7RUFBQSxJQUE5QlAsYUFBYSxHQUFBTyxLQUFBLENBQWJQLGFBQWE7SUFBS0MsS0FBSyxHQUFBQyx3QkFBQSxDQUFBSyxLQUFBLEVBQUFDLFVBQUE7RUFDdEYsSUFBTUMsdUJBQXVCLEdBQUdULGFBQWEsR0FBRy9DLHNCQUFzQixHQUFHQyx1QkFBdUI7RUFDaEcsb0JBQU80QixJQUFBLENBQUMyQix1QkFBdUIsRUFBQUosYUFBQSxLQUFLSixLQUFLLENBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBU1MsY0FBY0EsQ0FBQUMsS0FBQSxFQU1wQjtFQUFBLElBTERDLE9BQU8sR0FBQUQsS0FBQSxDQUFQQyxPQUFPO0lBQ1BDLGtCQUFrQixHQUFBRixLQUFBLENBQWxCRSxrQkFBa0I7RUFLbEIsSUFBQUMsU0FBQSxHQUE0QzNGLFFBQVEsQ0FBaUIsSUFBSSxDQUFDO0lBQUE0RixVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFuRUcsY0FBYyxHQUFBRixVQUFBO0lBQUVHLGlCQUFpQixHQUFBSCxVQUFBO0VBRXhDLElBQU1JLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxNQUFlLEVBQUs7SUFDeEMsSUFBSUgsY0FBYyxFQUFFO0lBQ3BCQyxpQkFBaUIsQ0FBQ0UsTUFBTSxDQUFDO0lBQ3pCUCxrQkFBa0IsQ0FBQ08sTUFBTSxDQUFDO0VBQzVCLENBQUM7RUFFRCxvQkFDRXRDLElBQUEsQ0FBQ3BCLGFBQWE7SUFBQThCLFFBQUEsRUFDWCxDQUFDb0IsT0FBTyxJQUFJLEVBQUUsRUFBRVMsR0FBRyxDQUFDLFVBQUFELE1BQU07TUFBQSxvQkFDekJ0QyxJQUFBLENBQUNuQixZQUFZO1FBQ1gyRCxhQUFhLEVBQUUsQ0FBQyxDQUFDTCxjQUFlO1FBQ2hDTSxPQUFPLEVBQUUsQ0FBQyxDQUFDTixjQUFjLElBQUksQ0FBQUEsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUVPLEVBQUUsTUFBS0osTUFBTSxDQUFDSSxFQUFHO1FBQzlEQyxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQTtVQUFBLE9BQVFOLFlBQVksQ0FBQ0MsTUFBTSxDQUFDO1FBQUEsQ0FBQztRQUFBNUIsUUFBQSxFQUduQzRCLE1BQU0sQ0FBQ007TUFBSSxHQUZQTixNQUFNLENBQUNJLEVBR0EsQ0FBQztJQUFBLENBQ2hCO0VBQUMsQ0FDVyxDQUFDO0FBRXBCO0FBRUEsSUFBTUcsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBQSxFQUFTO0VBQ25DLElBQUFDLFVBQUEsR0FBb0N6RyxRQUFRLENBQWUsSUFBSSxDQUFDO0lBQUEwRyxVQUFBLEdBQUFiLGNBQUEsQ0FBQVksVUFBQTtJQUF6REUsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxrQkFBQSxHQUFrQjNELGdCQUFnQixDQUFDLENBQUM7SUFBNUJrQixLQUFLLEdBQUF5QyxrQkFBQSxDQUFMekMsS0FBSztFQUVidkUsU0FBUyxDQUFDLFlBQU07SUFDZCtHLGFBQWEsQ0FBQ3hDLEtBQUssQ0FBQztFQUN0QixDQUFDLEVBQUUsQ0FBQ0EsS0FBSyxDQUFDLENBQUM7RUFFWCxvQkFDRVAsS0FBQSxDQUFDcEIsd0JBQXdCO0lBQUE0QixRQUFBLGdCQUN2QlYsSUFBQSxDQUFDZSxlQUFlLElBQUUsQ0FBQyxFQUNsQixDQUFBaUMsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUVKLElBQUksa0JBQUk1QyxJQUFBLENBQUNqQixlQUFlO01BQUEyQixRQUFBLEVBQUV0RCxtQkFBbUIsQ0FBQzRGLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFckMsSUFBSSxFQUFFcUMsVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUVKLElBQUk7SUFBQyxDQUFrQixDQUFDO0VBQUEsQ0FDekYsQ0FBQztBQUUvQixDQUFDOztBQUVEO0FBQ0EsSUFBTU8scUJBQXFCLEdBQUcsU0FBeEJBLHFCQUFxQkEsQ0FBSUMsSUFBWSxFQUFhO0VBQ3RELElBQU1DLEtBQUssR0FBR0QsSUFBSSxDQUFDQyxLQUFLLENBQUMsd0JBQXdCLENBQUM7RUFDbEQsT0FBT0EsS0FBSyxJQUFJLGlEQUFpRCxDQUFDQyxJQUFJLENBQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHQSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUTtBQUN4RyxDQUFDOztBQUVEO0FBQ0EsSUFBTUUsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBSUMsT0FBZSxFQUFpQjtFQUMvRCxJQUFJLENBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUU7RUFDdkIsSUFBTUMsWUFBWSxHQUFHLElBQUlDLE1BQU0sQ0FBQ2pFLHNCQUFzQixFQUFFLEdBQUcsQ0FBQztFQUM1RCxJQUFNa0UsS0FBaUIsR0FBRyxFQUFFO0VBQzVCLElBQU1DLE9BQU8sR0FBRyxJQUFJQyxHQUFHLENBQVMsQ0FBQztFQUNqQyxJQUFJUixLQUE2QixHQUFHLElBQUk7RUFDeEM7RUFDQSxPQUFPLENBQUNBLEtBQUssR0FBR0ksWUFBWSxDQUFDSyxJQUFJLENBQUNOLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRTtJQUNwRCxJQUFNTyxNQUFNLEdBQUdWLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkIsSUFBTVcsR0FBRyxHQUFHWCxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLElBQUksQ0FBQ08sT0FBTyxDQUFDSyxHQUFHLENBQUNGLE1BQU0sQ0FBQyxFQUFFO01BQ3hCSCxPQUFPLENBQUNNLEdBQUcsQ0FBQ0gsTUFBTSxDQUFDO01BQ25CLElBQU1JLFVBQVUsR0FBR0gsR0FBRyxDQUFDSSxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO01BQzdELElBQU1DLGlCQUFpQixHQUFHLElBQUlYLE1BQU0sc0JBQUFZLE1BQUEsQ0FBc0JILFVBQVUsUUFBSyxDQUFDO01BQzFFLElBQU1JLFNBQVMsR0FBR2YsT0FBTyxDQUFDSCxLQUFLLENBQUNnQixpQkFBaUIsQ0FBQztNQUNsRCxJQUFNRyxLQUFLLEdBQUdELFNBQVMsR0FBR0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFBRCxNQUFBLENBQWFQLE1BQU0sQ0FBRTtNQUMzREosS0FBSyxDQUFDYyxJQUFJLENBQUM7UUFBRS9CLEVBQUUsRUFBRXFCLE1BQU07UUFBRVMsS0FBSyxFQUFMQSxLQUFLO1FBQUVSLEdBQUcsRUFBSEE7TUFBSSxDQUFDLENBQUM7SUFDeEM7RUFDRjtFQUNBLE9BQU9MLEtBQUs7QUFDZCxDQUFDO0FBRUQsSUFBTWUsWUFBWSxHQUFHLFNBQWZBLFlBQVlBLENBQUlDLElBQVk7RUFBQSxPQUFjcEIsdUJBQXVCLENBQUNvQixJQUFJLENBQUMsQ0FBQ0MsTUFBTSxHQUFHLENBQUM7QUFBQTtBQUV4RixJQUFNQyxzQkFBc0IsR0FBRyxvQkFBb0I7QUFDbkQsSUFBTUMseUJBQXlCLEdBQUcsMEJBQTBCOztBQUU1RDtBQUNBLElBQU1DLDBCQUEwQixHQUFHLFNBQTdCQSwwQkFBMEJBLENBQUlKLElBQVk7RUFBQSxPQUM5Q0QsWUFBWSxDQUFDQyxJQUFJLENBQUMsSUFBSUUsc0JBQXNCLENBQUN2QixJQUFJLENBQUNxQixJQUFJLENBQUMsSUFBSUcseUJBQXlCLENBQUN4QixJQUFJLENBQUNxQixJQUFJLENBQUM7QUFBQTs7QUFFakc7QUFDQSxJQUFNSyxRQUFtRSxHQUFHLFNBQXRFQSxRQUFtRUEsQ0FBQUMsS0FBQSxFQUFtQztFQUFBLElBQTdCN0IsSUFBSSxHQUFBNkIsS0FBQSxDQUFKN0IsSUFBSTtJQUFFVyxNQUFNLEdBQUFrQixLQUFBLENBQU5sQixNQUFNO0lBQUVyRCxRQUFRLEdBQUF1RSxLQUFBLENBQVJ2RSxRQUFRO0VBQ25HLElBQU13RSxVQUFVLEdBQUcvQixxQkFBcUIsQ0FBQ0MsSUFBSSxDQUFDO0VBQzlDLElBQUErQixhQUFBLEdBQTBCM0gsWUFBWSxDQUFDdUcsTUFBTSxFQUFFbUIsVUFBVSxDQUFDO0lBQWxERSxhQUFhLEdBQUFELGFBQUEsQ0FBYkMsYUFBYTtFQUNyQixJQUFNQyxRQUFRLEdBQUdELGFBQWEsQ0FBQyxDQUFDO0VBRWhDLElBQU1FLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFJQyxDQUFzQyxFQUFLO0lBQzlEO0lBQ0EsSUFBSUEsQ0FBQyxDQUFDQyxPQUFPLElBQUlELENBQUMsQ0FBQ0UsT0FBTyxFQUFFO01BQzFCO0lBQ0Y7SUFFQUYsQ0FBQyxDQUFDRyxjQUFjLENBQUMsQ0FBQztJQUNsQkwsUUFBUSxDQUFDLENBQUM7RUFDWixDQUFDO0VBRUQsb0JBQ0VyRixJQUFBLENBQUNmLFVBQVU7SUFBQ21FLElBQUksRUFBRUEsSUFBSztJQUFDVCxPQUFPLEVBQUUyQyxXQUFZO0lBQUE1RSxRQUFBLEVBQzFDQTtFQUFRLENBQ0MsQ0FBQztBQUVqQixDQUFDOztBQUVEOztBQUVBLElBQU1pRixVQUErQixHQUFHLFNBQWxDQSxVQUErQkEsQ0FBQUMsS0FBQSxFQUFvQztFQUFBLElBQTlCeEMsSUFBSSxHQUFBd0MsS0FBQSxDQUFKeEMsSUFBSTtJQUFFMUMsUUFBUSxHQUFBa0YsS0FBQSxDQUFSbEYsUUFBUTtJQUFLbUYsSUFBSSxHQUFBekUsd0JBQUEsQ0FBQXdFLEtBQUEsRUFBQUUsVUFBQTtFQUNoRSxJQUFJLENBQUMxQyxJQUFJLElBQUksT0FBT0EsSUFBSSxLQUFLLFFBQVEsRUFBRTtJQUNyQyxvQkFDRXBELElBQUEsTUFBQXVCLGFBQUEsQ0FBQUEsYUFBQTtNQUFHNkIsSUFBSSxFQUFFQTtJQUFLLEdBQUt5QyxJQUFJO01BQUFuRixRQUFBLEVBQ3BCQTtJQUFRLEVBQ1IsQ0FBQztFQUVSO0VBQ0EsSUFBTXFGLFdBQVcsR0FBRzdJLGlCQUFpQixDQUFDa0csSUFBSSxFQUFFMUMsUUFBUSxDQUFDO0VBQ3JELElBQUlxRixXQUFXLEVBQUUsT0FBT0EsV0FBVztFQUVuQyxJQUFNQyxTQUFTLEdBQUc1QyxJQUFJLENBQUNDLEtBQUssQ0FBQyxJQUFJSyxNQUFNLENBQUNqRSxzQkFBc0IsQ0FBQyxDQUFDO0VBQ2hFLElBQUl1RyxTQUFTLEVBQUU7SUFDYixJQUFNakMsTUFBTSxHQUFHaUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMzQixvQkFDRWhHLElBQUEsQ0FBQ2dGLFFBQVE7TUFBQzVCLElBQUksRUFBRUEsSUFBSztNQUFDVyxNQUFNLEVBQUVBLE1BQU87TUFBQXJELFFBQUEsRUFDbENBO0lBQVEsQ0FDRCxDQUFDO0VBRWY7RUFDQSxvQkFDRVYsSUFBQSxNQUFBdUIsYUFBQSxDQUFBQSxhQUFBO0lBQUc2QixJQUFJLEVBQUVBO0VBQUssR0FBS3lDLElBQUk7SUFBQW5GLFFBQUEsRUFDcEJBO0VBQVEsRUFDUixDQUFDO0FBRVIsQ0FBQzs7QUFFRDtBQUNBLElBQU11RixvQkFBb0IsZ0JBQUdqSyxJQUFJLENBQy9CLFVBQUNtRixLQWlCQSxFQUFLO0VBQUEsSUFBQStFLHFCQUFBO0VBQ0o7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsYUFBYSxHQUFHekksbUJBQW1CLENBQUN5RCxLQUFLLENBQUNpRixXQUFXLEdBQUdqRixLQUFLLENBQUNrRixTQUFTLEdBQUcsSUFBSSxDQUFDO0VBQ3JGLElBQU1DLE9BQU8sR0FBR25GLEtBQUssQ0FBQ2lGLFdBQVcsR0FBR0QsYUFBYSxHQUFHaEYsS0FBSyxDQUFDcUMsT0FBTztFQUNqRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTStDLFFBQVEsR0FDWixPQUFPQyxNQUFNLEtBQUssV0FBVyxHQUN4QkEsTUFBTSxHQU9QLENBQUMsQ0FBQztFQUNSLElBQU1DLFdBQVcsR0FBR2hKLG1CQUFtQixDQUFDNkksT0FBTyxFQUFBL0UsYUFBQSxDQUFBQSxhQUFBLENBQUFBLGFBQUEsQ0FBQUEsYUFBQSxDQUFBQSxhQUFBO0lBQzdDbUYsT0FBTyxFQUFFLENBQUMsQ0FBQ3ZGLEtBQUssQ0FBQ2lGLFdBQVc7SUFDNUJPLGdCQUFnQixFQUFFLEVBQUU7SUFDcEJDLGtCQUFrQixFQUFFO0VBQUksR0FDcEJMLFFBQVEsQ0FBQ00sV0FBVyxJQUFJLElBQUksSUFBSTtJQUFFQyxXQUFXLEVBQUVQLFFBQVEsQ0FBQ007RUFBWSxDQUFDLEdBQ3JFTixRQUFRLENBQUNRLFdBQVcsSUFBSSxJQUFJLElBQUk7SUFBRUMsa0JBQWtCLEVBQUVULFFBQVEsQ0FBQ1E7RUFBWSxDQUFDLEdBQzVFUixRQUFRLENBQUNVLGNBQWMsSUFBSSxJQUFJLElBQUk7SUFBRUMsY0FBYyxFQUFFWCxRQUFRLENBQUNVO0VBQWUsQ0FBQyxHQUM5RVYsUUFBUSxDQUFDWSxlQUFlLElBQUksSUFBSSxJQUFJO0lBQUVDLGNBQWMsRUFBRWIsUUFBUSxDQUFDWTtFQUFnQixDQUFDLEdBQ2hGWixRQUFRLENBQUNjLGNBQWMsSUFBSSxJQUFJLElBQUk7SUFBRUMsUUFBUSxFQUFFZixRQUFRLENBQUNjO0VBQWUsQ0FBQyxDQUM3RSxDQUFDO0VBQ0YsSUFBTUUseUJBQXlCLElBQUFyQixxQkFBQSxHQUFHL0UsS0FBSyxDQUFDcUcsbUJBQW1CLGNBQUF0QixxQkFBQSx1QkFBekJBLHFCQUFBLENBQTJCdUIsT0FBTztFQUVwRSxJQUFJLENBQUNoQixXQUFXLElBQUksQ0FBQ3RGLEtBQUssQ0FBQ2lGLFdBQVcsRUFBRSxPQUFPLElBQUk7RUFDbkQsSUFBTXNCLFdBQVcsR0FBR3ZLLGdCQUFnQixDQUFDc0osV0FBVyxDQUFDO0VBQ2pELElBQU1rQixZQUFZLEdBQUdELFdBQVcsR0FBR3pLLHNCQUFzQixDQUFDd0osV0FBVyxDQUFDLEdBQUcsSUFBSTtFQUM3RSxvQkFDRXZHLEtBQUEsQ0FBQUUsU0FBQTtJQUFBTSxRQUFBLGdCQUNFVixJQUFBLENBQUMxQixtQkFBbUI7TUFDbEI0QyxhQUFhLEVBQUVDLEtBQUssQ0FBQ0QsYUFBYztNQUNuQzBHLG1CQUFtQixFQUFFekcsS0FBSyxDQUFDeUcsbUJBQW9CO01BQy9DQyxTQUFTLEVBQUU5QywwQkFBMEIsQ0FBQzBCLFdBQVcsQ0FBQyxHQUFHLGdCQUFnQixHQUFHLEVBQUc7TUFBQS9GLFFBQUEsRUFFMUVnSCxXQUFXLElBQUlDLFlBQVk7TUFBQTtNQUMxQjtNQUNBM0gsSUFBQTtRQUFNOEgsS0FBSyxFQUFFO1VBQUVDLE9BQU8sRUFBRTtRQUFTLENBQUU7UUFBQXJILFFBQUEsRUFBRWlIO01BQVksQ0FBTyxDQUFDO01BQUE7TUFFekQ7TUFDQTNILElBQUEsQ0FBQ3hELFVBQVU7UUFDVHdMLE9BQU8sRUFBRTtVQUFFM0gsSUFBSSxFQUFKQTtRQUFLLENBQUU7UUFDbEI0SCxhQUFhLEVBQUVqTCw4QkFBK0I7UUFDOUNrTCxVQUFVLEVBQUU7VUFBRUMsQ0FBQyxFQUFFeEM7UUFBVyxDQUFvRDtRQUNoRnlDLFVBQVUsRUFBRTtVQUFFMUIsT0FBTyxFQUFFO1FBQU0sQ0FBRTtRQUMvQjJCLFdBQVcsRUFBRSxDQUFDLENBQUNsSCxLQUFLLENBQUNpRixXQUFZO1FBQ2pDa0MsVUFBVSxFQUFFLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBRTtRQUM3Q0MsUUFBUSxFQUFFO1VBQUVDLEtBQUssRUFBRSxLQUFLO1VBQUVuSSxJQUFJLEVBQUU7UUFBTSxDQUFFO1FBQUFLLFFBQUEsRUFFdkMrRjtNQUFXLENBQ0Y7SUFDYixDQUNrQixDQUFDLEVBQ3JCdEYsS0FBSyxDQUFDc0gsV0FBVyxJQUFJLENBQUN0SCxLQUFLLENBQUN1SCxPQUFPLElBQUksQ0FBQ3ZILEtBQUssQ0FBQ3lHLG1CQUFtQixJQUFJLENBQUN6RyxLQUFLLENBQUN3SCxRQUFRLElBQUksQ0FBQ3hILEtBQUssQ0FBQ2lGLFdBQVcsaUJBQ3pHcEcsSUFBQSxDQUFDM0IsZUFBZTtNQUNkdUssT0FBTyxFQUFFbkMsV0FBWTtNQUNyQm9DLE9BQU8sRUFBRTFILEtBQUssQ0FBQzBILE9BQVE7TUFDdkJDLGNBQWMsRUFBRTNILEtBQUssQ0FBQzRILG1CQUFvQjtNQUMxQ0MsZUFBZSxFQUFFN0gsS0FBSyxDQUFDNkg7SUFBZ0IsQ0FDeEMsQ0FDRixFQUNBN0gsS0FBSyxDQUFDc0gsV0FBVyxJQUFJLENBQUN0SCxLQUFLLENBQUN1SCxPQUFPLElBQUksQ0FBQ3ZILEtBQUssQ0FBQ3lHLG1CQUFtQixJQUFJLENBQUN6RyxLQUFLLENBQUN3SCxRQUFRLGlCQUNuRjNJLElBQUEsQ0FBQ04saUJBQWlCO01BQ2hCdUosV0FBVyxFQUFFOUgsS0FBSyxDQUFDOEgsV0FBVyxJQUFJLEVBQUc7TUFDckNDLGtCQUFrQixFQUFFLFNBQXBCQSxrQkFBa0JBLENBQUVDLFVBQVU7UUFBQSxPQUFJaEksS0FBSyxDQUFDaUkscUJBQXFCLENBQUNqSSxLQUFLLENBQUNrRixTQUFTLEVBQUU4QyxVQUFVLENBQUM7TUFBQSxDQUFDO01BQzNGRSxRQUFRLEVBQUVsSSxLQUFLLENBQUNtSSxtQkFBb0I7TUFDcENDLE1BQU0sRUFBRSxDQUFDLENBQUNwSSxLQUFLLENBQUNpRixXQUFXLElBQUksQ0FBQ2pGLEtBQUssQ0FBQ3FJLGFBQWEsSUFBSSxDQUFDLENBQUNySSxLQUFLLENBQUNtSTtJQUFvQixDQUNwRixDQUNGLEVBQ0FuSSxLQUFLLENBQUNzSCxXQUFXLElBQ2hCLENBQUN0SCxLQUFLLENBQUN1SCxPQUFPLElBQ2QsQ0FBQ3ZILEtBQUssQ0FBQ3lHLG1CQUFtQixJQUMxQixDQUFDekcsS0FBSyxDQUFDd0gsUUFBUSxJQUNmLENBQUMsQ0FBQ3BCLHlCQUF5QixpQkFDekJ2SCxJQUFBLENBQUNMLHdCQUF3QjtNQUN2QjhILE9BQU8sRUFBRUYseUJBQTBCO01BQ25DOEIsUUFBUSxFQUFFbEksS0FBSyxDQUFDbUksbUJBQW9CO01BQ3BDQyxNQUFNLEVBQUUsQ0FBQyxDQUFDcEksS0FBSyxDQUFDaUYsV0FBVyxJQUFJLENBQUNqRixLQUFLLENBQUNxSSxhQUFhLElBQUksQ0FBQyxDQUFDckksS0FBSyxDQUFDbUk7SUFBb0IsQ0FDcEYsQ0FDRjtFQUFBLENBQ0gsQ0FBQztBQUVQLENBQ0YsQ0FBQztBQUVELElBQU1HLFdBQVcsZ0JBQUd6TixJQUFJLENBQUMsVUFBQ21GLEtBQXVCLEVBQUs7RUFBQSxJQUFBdUkscUJBQUE7RUFDcEQsSUFDRWhILEVBQUUsR0FzQkF2QixLQUFLLENBdEJQdUIsRUFBRTtJQUNGaUgsSUFBSSxHQXFCRnhJLEtBQUssQ0FyQlB3SSxJQUFJO0lBQ0puRyxPQUFPLEdBb0JMckMsS0FBSyxDQXBCUHFDLE9BQU87SUFDUDRDLFdBQVcsR0FtQlRqRixLQUFLLENBbkJQaUYsV0FBVztJQUNYc0MsT0FBTyxHQWtCTHZILEtBQUssQ0FsQlB1SCxPQUFPO0lBQ1BrQixRQUFRLEdBaUJOekksS0FBSyxDQWpCUHlJLFFBQVE7SUFDUjlILE9BQU8sR0FnQkxYLEtBQUssQ0FoQlBXLE9BQU87SUFDUCtILGVBQWUsR0FlYjFJLEtBQUssQ0FmUDBJLGVBQWU7SUFDZjlILGtCQUFrQixHQWNoQlosS0FBSyxDQWRQWSxrQkFBa0I7SUFDbEJxSCxxQkFBcUIsR0FhbkJqSSxLQUFLLENBYlBpSSxxQkFBcUI7SUFDckJOLGNBQWMsR0FZWjNILEtBQUssQ0FaUDJILGNBQWM7SUFDZGdCLHNCQUFzQixHQVdwQjNJLEtBQUssQ0FYUDJJLHNCQUFzQjtJQUN0QmQsZUFBZSxHQVViN0gsS0FBSyxDQVZQNkgsZUFBZTtJQUNmZSxJQUFJLEdBU0Y1SSxLQUFLLENBVFA0SSxJQUFJO0lBQ0psQixPQUFPLEdBUUwxSCxLQUFLLENBUlAwSCxPQUFPO0lBQ1BtQixXQUFXLEdBT1Q3SSxLQUFLLENBUFA2SSxXQUFXO0lBQ1hyQixRQUFRLEdBTU54SCxLQUFLLENBTlB3SCxRQUFRO0lBQ1JzQixjQUFjLEdBS1o5SSxLQUFLLENBTFA4SSxjQUFjO0lBQ2RoQixXQUFXLEdBSVQ5SCxLQUFLLENBSlA4SCxXQUFXO0lBQ1h6QixtQkFBbUIsR0FHakJyRyxLQUFLLENBSFBxRyxtQkFBbUI7SUFDbkIwQyxxQkFBcUIsR0FFbkIvSSxLQUFLLENBRlArSSxxQkFBcUI7SUFDckJWLGFBQWEsR0FDWHJJLEtBQUssQ0FEUHFJLGFBQWE7RUFHZixJQUFBVyxVQUFBLEdBQWtEOU4sUUFBUSxDQUF3QixJQUFJLENBQUM7SUFBQStOLFVBQUEsR0FBQWxJLGNBQUEsQ0FBQWlJLFVBQUE7SUFBaEZFLGlCQUFpQixHQUFBRCxVQUFBO0lBQUVFLG9CQUFvQixHQUFBRixVQUFBO0VBQzlDLElBQU1sSixhQUFhLEdBQUc2SSxJQUFJLEtBQUtoTixlQUFlLENBQUN3TixJQUFJLElBQUlaLElBQUksQ0FBQ2pILEVBQUUsS0FBS2tILFFBQVEsQ0FBQ2xILEVBQUUsQ0FBQzhILFFBQVEsQ0FBQyxDQUFDO0VBQ3pGLElBQU0vQixXQUFXLEdBQUdzQixJQUFJLEtBQUtoTixlQUFlLENBQUMwTixTQUFTLElBQUlkLElBQUksQ0FBQ2pILEVBQUUsS0FBSyxXQUFXO0VBQ2pGO0VBQ0E7RUFDQSxJQUFNeUQsYUFBYSxHQUFHekksbUJBQW1CLENBQUMwSSxXQUFXLEdBQUcxRCxFQUFFLEdBQUcsSUFBSSxDQUFDO0VBQ2xFLElBQU1nSSxVQUFVLEdBQUcsQ0FBQyxDQUFDdEUsV0FBVyxJQUFJLENBQUNELGFBQWE7RUFDbEQsSUFBTXdFLGtCQUFrQixHQUN0QlgsV0FBVyxJQUFJQSxXQUFXLENBQUNwRixNQUFNLEdBQUcsQ0FBQyxHQUNqQ29GLFdBQVcsR0FDWCxDQUFDdkIsV0FBVyxJQUFJbUMsS0FBSyxDQUFDQyxPQUFPLENBQUNoQyxPQUFPLENBQUMsR0FDbkNBLE9BQU8sR0FDUixFQUFFO0VBRVYsSUFBTWlDLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUlDLFVBQTBCLEVBQUs7SUFDNUQ7SUFDQSxJQUNFQSxVQUFVLENBQUNDLElBQUksWUFBWUMsSUFBSSxJQUMvQkYsVUFBVSxDQUFDRyxZQUFZLFlBQVlELElBQUksSUFDdkNGLFVBQVUsQ0FBQ0ksYUFBYSxJQUN4QkosVUFBVSxDQUFDSyxZQUFZLElBQ3ZCTCxVQUFVLENBQUNNLFFBQVEsRUFDbkI7TUFDQWYsb0JBQW9CLENBQUNTLFVBQVUsQ0FBQztJQUNsQztFQUNGLENBQUM7RUFFRCxJQUFNTyxrQkFBa0IsR0FBRyxTQUFyQkEsa0JBQWtCQSxDQUFBLEVBQVM7SUFDL0JoQixvQkFBb0IsQ0FBQyxJQUFJLENBQUM7RUFDNUIsQ0FBQztFQUVELElBQU1pQix3QkFBd0I7SUFBQSxJQUFBQyxLQUFBLEdBQUFDLGlCQUFBLGNBQUFDLG1CQUFBLENBQUFDLElBQUEsQ0FBRyxTQUFBQyxRQUFPYixVQUEwQjtNQUFBLElBQUFjLFNBQUEsRUFBQUMsUUFBQSxFQUFBQyxPQUFBLEVBQUFDLE9BQUEsRUFBQUMsY0FBQSxFQUFBQyxJQUFBLEVBQUFDLEVBQUE7TUFBQSxPQUFBVCxtQkFBQSxDQUFBVSxJQUFBLFdBQUFDLFFBQUE7UUFBQSxrQkFBQUEsUUFBQSxDQUFBQyxJQUFBLEdBQUFELFFBQUEsQ0FBQUUsSUFBQTtVQUFBO1lBQzFEVixTQUFTLEdBQUdkLFVBQVUsQ0FBQ25JLElBQUksQ0FBQzRKLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQUFsSSxNQUFBLENBQU95RyxVQUFVLENBQUNwSyxJQUFJLENBQUU7WUFDdEVtTCxRQUFRLE1BQUF4SCxNQUFBLENBQU15RyxVQUFVLENBQUNuSSxJQUFJLEVBQUEwQixNQUFBLENBQUd1SCxTQUFTO1lBQ3pDRSxPQUFPLEdBQUdoQixVQUFVLENBQUNLLFlBQVksSUFBSUwsVUFBVSxDQUFDTSxRQUFRLElBQUlOLFVBQVUsQ0FBQ0ksYUFBYTtZQUFBa0IsUUFBQSxDQUFBQyxJQUFBO1lBR3BGTixPQUFzQixHQUFHLElBQUk7WUFBQSxLQUU3QkQsT0FBTztjQUFBTSxRQUFBLENBQUFFLElBQUE7Y0FBQTtZQUFBO1lBQUFGLFFBQUEsQ0FBQUUsSUFBQTtZQUFBLE9BQ29Cek0sbUJBQW1CLENBQUNpTSxPQUFPLEVBQUVELFFBQVEsRUFBRWYsVUFBVSxDQUFDcEssSUFBSSxDQUFDO1VBQUE7WUFBOUVzTCxjQUFjLEdBQUFJLFFBQUEsQ0FBQUksSUFBQTtZQUNwQlQsT0FBTyxHQUFHVSxHQUFHLENBQUNDLGVBQWUsQ0FBQ1YsY0FBYyxDQUFDO1lBQUFJLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7WUFDeEMsSUFBSXhCLFVBQVUsQ0FBQ0MsSUFBSSxZQUFZQyxJQUFJLEVBQUU7Y0FDMUNlLE9BQU8sR0FBR1UsR0FBRyxDQUFDQyxlQUFlLENBQUM1QixVQUFVLENBQUNDLElBQUksQ0FBQztZQUNoRDtVQUFDO1lBQUEsSUFFSWdCLE9BQU87Y0FBQUssUUFBQSxDQUFBRSxJQUFBO2NBQUE7WUFBQTtZQUFBLE9BQUFGLFFBQUEsQ0FBQU8sTUFBQTtVQUFBO1lBRU5WLElBQUksR0FBR1csUUFBUSxDQUFDdlEsYUFBYSxDQUFDLEdBQUcsQ0FBQztZQUN4QzRQLElBQUksQ0FBQzlJLElBQUksR0FBRzRJLE9BQU87WUFDbkJFLElBQUksQ0FBQ1ksUUFBUSxHQUFHaEIsUUFBUTtZQUN4QkksSUFBSSxDQUFDcEUsS0FBSyxDQUFDQyxPQUFPLEdBQUcsTUFBTTtZQUMzQjhFLFFBQVEsQ0FBQ0UsSUFBSSxDQUFDQyxXQUFXLENBQUNkLElBQUksQ0FBQztZQUMvQkEsSUFBSSxDQUFDZSxLQUFLLENBQUMsQ0FBQztZQUVaQyxVQUFVLENBQUMsWUFBTTtjQUNmTCxRQUFRLENBQUNFLElBQUksQ0FBQ0ksV0FBVyxDQUFDakIsSUFBSSxDQUFDO2NBQy9CUSxHQUFHLENBQUNVLGVBQWUsQ0FBQ3BCLE9BQU8sQ0FBQztZQUM5QixDQUFDLEVBQUUsR0FBRyxDQUFDO1lBQUFLLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUE7WUFBQUYsUUFBQSxDQUFBQyxJQUFBO1lBQUFILEVBQUEsR0FBQUUsUUFBQTtZQUVQZ0IsT0FBTyxDQUFDQyxLQUFLLENBQUMsK0JBQStCLEVBQUFuQixFQUFPLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQUUsUUFBQSxDQUFBa0IsSUFBQTtRQUFBO01BQUEsR0FBQTNCLE9BQUE7SUFBQSxDQUV4RDtJQUFBLGdCQS9CS0wsd0JBQXdCQSxDQUFBaUMsRUFBQTtNQUFBLE9BQUFoQyxLQUFBLENBQUFpQyxLQUFBLE9BQUFDLFNBQUE7SUFBQTtFQUFBLEdBK0I3QjtFQUVELElBQUk3RCxlQUFlLElBQUkvSCxPQUFPLEVBQUU7SUFDOUIsb0JBQ0U5QixJQUFBLENBQUNnQixjQUFjO01BQVVFLGFBQWEsRUFBRUEsYUFBYztNQUFDLG1CQUFpQndCLEVBQUc7TUFBQ2lMLFdBQVcsRUFBRSxLQUFNO01BQUFqTixRQUFBLGVBQzdGUixLQUFBLENBQUNoQixvQkFBb0I7UUFBQzBPLFlBQVksRUFBRW5GLFdBQVk7UUFBQS9ILFFBQUEsR0FDN0MrSCxXQUFXLElBQUksQ0FBQ2lDLFVBQVUsaUJBQUkxSyxJQUFBLENBQUM2QyxzQkFBc0IsSUFBRSxDQUFDLGVBQ3pEN0MsSUFBQSxDQUFDd0IscUJBQXFCO1VBQ3BCcUksZUFBZSxFQUFFQSxlQUFnQjtVQUNqQ3JHLE9BQU8sRUFBRUEsT0FBUTtVQUNqQnRDLGFBQWEsRUFBRUEsYUFBYztVQUM3QndILE9BQU8sRUFBRUEsT0FBUTtVQUNqQm1GLG1CQUFtQixlQUFFN04sSUFBQSxDQUFDNEIsY0FBYztZQUFDRSxPQUFPLEVBQUVBLE9BQWU7WUFBQ0Msa0JBQWtCLEVBQUVBO1VBQW1CLENBQUU7UUFBRSxDQUMxRyxDQUFDO01BQUEsQ0FDa0I7SUFBQyxHQVZKVyxFQVdMLENBQUM7RUFFckI7RUFFQSxJQUFNcUcsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSStFLFFBQWtCLEVBQUs7SUFDbEQsSUFBTUMsU0FBUyxHQUFHckwsRUFBRSxDQUNqQnNMLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDVkMsTUFBTSxDQUFDLFVBQUFDLFVBQVU7TUFBQSxPQUFJQSxVQUFVLEtBQUssUUFBUTtJQUFBLEVBQUMsQ0FDN0NDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDWnJGLGNBQWMsYUFBZEEsY0FBYyxlQUFkQSxjQUFjLENBQUdnRixRQUFRLEVBQUVDLFNBQVMsQ0FBQztFQUN2QyxDQUFDO0VBRUQsb0JBQ0U3TixLQUFBLENBQUNoQixvQkFBb0I7SUFBQzBPLFlBQVksRUFBRW5GLFdBQVk7SUFBQS9ILFFBQUEsR0FDN0MrSCxXQUFXLElBQUksQ0FBQ2lDLFVBQVUsaUJBQUkxSyxJQUFBLENBQUM2QyxzQkFBc0IsSUFBRSxDQUFDLGVBQ3pEM0MsS0FBQSxDQUFDZixrQkFBa0I7TUFBQXVCLFFBQUEsR0FDaEIsQ0FBQyxDQUFDaUssa0JBQWtCLENBQUMvRixNQUFNLGlCQUMxQjVFLElBQUEsQ0FBQ1osZ0JBQWdCO1FBQUN3TyxZQUFZLEVBQUVuRixXQUFZO1FBQUEvSCxRQUFBLEVBQ3pDaUssa0JBQWtCLENBQUNwSSxHQUFHLENBQUMsVUFBQ3dJLFVBQVUsRUFBRXFELEtBQUssRUFBSztVQUFBLElBQUFDLGdCQUFBLEVBQUFDLGdCQUFBO1VBQzdDO1VBQ0EsSUFBTUMsY0FBYyxHQUFHLENBQUF4RCxVQUFVLGFBQVZBLFVBQVUsZ0JBQUFzRCxnQkFBQSxHQUFWdEQsVUFBVSxDQUFFcEssSUFBSSxjQUFBME4sZ0JBQUEsdUJBQWhCQSxnQkFBQSxDQUFrQkcsV0FBVyxDQUFDLENBQUMsS0FBSSxFQUFFO1VBQzVELElBQU1DLGNBQWMsR0FBRyxDQUFBMUQsVUFBVSxhQUFWQSxVQUFVLGdCQUFBdUQsZ0JBQUEsR0FBVnZELFVBQVUsQ0FBRW5JLElBQUksY0FBQTBMLGdCQUFBLHVCQUFoQkEsZ0JBQUEsQ0FBa0JFLFdBQVcsQ0FBQyxDQUFDLEtBQUksRUFBRTtVQUM1RCxJQUFNRSxXQUFXLEdBQ2ZILGNBQWMsQ0FBQ0ksVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUNuQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQ25DLFFBQVEsQ0FBQytCLGNBQWMsQ0FBQyxJQUNuRixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQ0ssSUFBSSxDQUFDLFVBQUFDLEdBQUc7WUFBQSxPQUN6RUosY0FBYyxDQUFDSyxRQUFRLENBQUNELEdBQUcsQ0FBQztVQUFBLENBQzlCLENBQUM7VUFFSCxJQUFJSCxXQUFXLEVBQUU7WUFDZixvQkFBTzFPLElBQUEsQ0FBQ2xELG1CQUFtQjtjQUE2Q2lPLFVBQVUsRUFBRUE7WUFBVyxNQUFBekcsTUFBQSxDQUEzRHlHLFVBQVUsQ0FBQ3JJLEVBQUUsT0FBQTRCLE1BQUEsQ0FBSXlHLFVBQVUsQ0FBQ25JLElBQUksQ0FBNkIsQ0FBQztVQUNwRztVQUVBLG9CQUNFNUMsSUFBQSxDQUFDckQsY0FBYztZQUVib08sVUFBVSxFQUFFQSxVQUFXO1lBQ3ZCZ0UsYUFBYSxFQUFFWCxLQUFNO1lBQ3JCWSxVQUFVLEVBQUUsU0FBWkEsVUFBVUEsQ0FBQTtjQUFBLE9BQVF6RCx3QkFBd0IsQ0FBQ1IsVUFBVSxDQUFDO1lBQUEsQ0FBQztZQUN2RHBJLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2NBQUEsT0FBUW1JLHFCQUFxQixDQUFDQyxVQUFVLENBQUM7WUFBQTtVQUFDLE1BQUF6RyxNQUFBLENBSnpDeUcsVUFBVSxDQUFDckksRUFBRSxPQUFBNEIsTUFBQSxDQUFJeUcsVUFBVSxDQUFDbkksSUFBSSxDQUt6QyxDQUFDO1FBRU4sQ0FBQztNQUFDLENBQ2MsQ0FDbkIsRUFDQSxDQUFDLENBQUMsQ0FBQ1ksT0FBTyxJQUFJNEMsV0FBVyxLQUFLLEVBQUVxQyxXQUFXLElBQUksQ0FBQyxDQUFDa0Msa0JBQWtCLENBQUMvRixNQUFNLENBQUMsaUJBQzFFNUUsSUFBQSxDQUFDaUcsb0JBQW9CO1FBQ25CekMsT0FBTyxFQUFFQSxPQUFPLGFBQVBBLE9BQU8sY0FBUEEsT0FBTyxHQUFJLEVBQUc7UUFDdkI0QyxXQUFXLEVBQUUsQ0FBQyxDQUFDQSxXQUFZO1FBQzNCbEYsYUFBYSxFQUFFQSxhQUFjO1FBQzdCdUgsV0FBVyxFQUFFQSxXQUFZO1FBQ3pCYixtQkFBbUIsRUFBRXpHLEtBQUssQ0FBQ3lHLG1CQUFvQjtRQUMvQ2UsUUFBUSxFQUFFQSxRQUFTO1FBQ25CRCxPQUFPLEVBQUVBLE9BQVE7UUFDakJHLE9BQU8sRUFBRUEsT0FBUTtRQUNqQkksV0FBVyxFQUFFQSxXQUFZO1FBQ3pCekIsbUJBQW1CLEVBQUVBLG1CQUFvQjtRQUN6Q3VCLG1CQUFtQixFQUFFQSxtQkFBb0I7UUFDekNDLGVBQWUsRUFBRUEsZUFBZSxhQUFmQSxlQUFlLGNBQWZBLGVBQWUsR0FBSSxJQUFLO1FBQ3pDSSxxQkFBcUIsRUFBRUEscUJBQXNCO1FBQzdDRSxtQkFBbUIsRUFBRSxDQUFDLENBQUNuSSxLQUFLLENBQUNpRixXQUFXLElBQUksQ0FBQyxDQUFDOEQscUJBQXNCO1FBQ3BFN0QsU0FBUyxFQUFFM0QsRUFBRztRQUNkOEcsYUFBYSxFQUFFQTtNQUFjLENBQzlCLENBQ0YsRUFDQWIsUUFBUSxJQUFJQSxRQUFRLENBQUNzRyxlQUFlLGlCQUNuQ2pQLElBQUEsQ0FBQ1gsdUJBQXVCO1FBQUFxQixRQUFBLGVBQ3RCVixJQUFBLENBQUNwRCxXQUFXO1VBQ1ZzUyxPQUFPLEVBQUV2RyxRQUFRLENBQUNzRyxlQUFnQjtVQUNsQ0UsTUFBTSxFQUFFbEYsY0FBZTtVQUN2Qm1GLFNBQVMsRUFBRSxTQUFYQSxTQUFTQSxDQUFFQyxTQUFTO1lBQUEsT0FBSXZGLHNCQUFzQixDQUFDdUYsU0FBUyxFQUFFLFNBQVMsQ0FBQztVQUFBLENBQUM7VUFDckVDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFFRCxTQUFTO1lBQUEsT0FBSXZGLHNCQUFzQixDQUFDdUYsU0FBUyxFQUFFLFFBQVEsQ0FBQztVQUFBLENBQUM7VUFDbkVFLGdCQUFnQixFQUFFLEVBQUE3RixxQkFBQSxHQUFBdkksS0FBSyxDQUFDcU8sZUFBZSxjQUFBOUYscUJBQUEsdUJBQXJCQSxxQkFBQSxDQUF1QitGLFVBQVUsTUFBSyxJQUFLO1VBQzdEQyxVQUFVLEVBQUV2TyxLQUFLLENBQUN3TyxRQUFTO1VBQzNCQyxjQUFjLEVBQUVqSCxRQUFRLENBQUNrSCxrQkFBbUI7VUFDNUNDLGNBQWMsRUFBRW5ILFFBQVEsQ0FBQ29ILGVBQWdCO1VBQ3pDQyxzQkFBc0IsRUFBRXJILFFBQVEsQ0FBQ3NIO1FBQXlCLENBQzNEO01BQUMsQ0FDcUIsQ0FDMUI7SUFBQSxDQUNpQixDQUFDLGVBQ3JCalEsSUFBQSxDQUFDbkQsc0JBQXNCO01BQ3JCcVQsTUFBTSxFQUFFLENBQUMsQ0FBQzdGLGlCQUFrQjtNQUM1QjhGLE9BQU8sRUFBRTdFLGtCQUFtQjtNQUM1QlAsVUFBVSxFQUFFVjtJQUFrQixDQUMvQixDQUFDO0VBQUEsQ0FDa0IsQ0FBQztBQUUzQixDQUFDLENBQUM7QUFFRixJQUFNK0YsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBQUMsS0FBQSxFQVNFO0VBQUEsSUFSekJDLGtCQUFrQixHQUFBRCxLQUFBLENBQWxCQyxrQkFBa0I7SUFDbEJDLGFBQWEsR0FBQUYsS0FBQSxDQUFiRSxhQUFhO0lBQ2JDLE9BQU8sR0FBQUgsS0FBQSxDQUFQRyxPQUFPO0lBQ1BDLGtCQUFrQixHQUFBSixLQUFBLENBQWxCSSxrQkFBa0I7SUFDbEJDLGdCQUFnQixHQUFBTCxLQUFBLENBQWhCSyxnQkFBZ0I7SUFDaEIxRyxXQUFXLEdBQUFxRyxLQUFBLENBQVhyRyxXQUFXO0lBQ1gyRyxNQUFNLEdBQUFOLEtBQUEsQ0FBTk0sTUFBTTtJQUNOaEIsUUFBUSxHQUFBVSxLQUFBLENBQVJWLFFBQVE7RUFFUixJQUFBaUIsS0FBQSxHQUFjdFQsSUFBSSxDQUFDLENBQUM7SUFBWnVULENBQUMsR0FBQUQsS0FBQSxDQUFEQyxDQUFDO0VBQ1QsSUFBQUMsa0JBQUEsR0FBeUR2UixnQkFBZ0IsQ0FBQyxDQUFDO0lBQW5Fd1IsaUJBQWlCLEdBQUFELGtCQUFBLENBQWpCQyxpQkFBaUI7SUFBRUMsa0JBQWtCLEdBQUFGLGtCQUFBLENBQWxCRSxrQkFBa0I7SUFBRXZRLEtBQUssR0FBQXFRLGtCQUFBLENBQUxyUSxLQUFLO0VBQ3BELElBQU13USxLQUFLLEdBQUdwUixRQUFRLENBQUMsQ0FBQztFQUN4QixJQUFNK0osUUFBUSxHQUFHdk0sT0FBTyxDQUFDLENBQUM7RUFDMUIsSUFBTTZULFdBQVcsR0FBRzlVLE1BQU0sQ0FBaUIsSUFBSSxDQUFDO0VBQ2hELElBQU0rVSxrQkFBa0IsR0FBRy9VLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFDeEMsSUFBTWdWLGdCQUFnQixHQUFHaFYsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUN0QyxJQUFNaVYsZ0JBQWdCLEdBQUdqVixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQ3RDLElBQU1rVixrQkFBa0IsR0FBR2xWLE1BQU0sQ0FBQyxFQUFFLENBQUM7RUFDckMsSUFBTW1WLGdCQUFnQixHQUFHblYsTUFBTSxDQUFDLENBQUMsQ0FBQztFQUNsQyxJQUFNb1YscUJBQXFCLEdBQUdwVixNQUFNLENBQUMsS0FBSyxDQUFDO0VBQzNDLElBQU1xVixZQUFZLEdBQUdyVixNQUFNLENBQWdCLElBQUksQ0FBQztFQUNoRCxJQUFBc1YsVUFBQSxHQUFvRHJWLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFBQXNWLFVBQUEsR0FBQXpQLGNBQUEsQ0FBQXdQLFVBQUE7SUFBNURFLGtCQUFrQixHQUFBRCxVQUFBO0lBQUVFLHFCQUFxQixHQUFBRixVQUFBO0VBQ2hELElBQUFHLFVBQUEsR0FBd0V6VixRQUFRLENBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQUEwVixVQUFBLEdBQUE3UCxjQUFBLENBQUE0UCxVQUFBO0lBQXRHRSw0QkFBNEIsR0FBQUQsVUFBQTtJQUFFRSwrQkFBK0IsR0FBQUYsVUFBQTtFQUVwRSxJQUFBRyxlQUFBLEdBZ0JJM1UsY0FBYyxDQUFDO01BQ2pCNFUsTUFBTSxFQUFFNUIsYUFBYSxJQUFJNkIsU0FBUztNQUNsQzlCLGtCQUFrQixFQUFsQkEsa0JBQWtCO01BQ2xCRSxPQUFPLEVBQVBBLE9BQU87TUFDUHhHLFdBQVcsRUFBWEEsV0FBVztNQUNYMkcsTUFBTSxFQUFOQTtJQUNGLENBQUMsQ0FBQztJQXJCQTBCLFFBQVEsR0FBQUgsZUFBQSxDQUFSRyxRQUFRO0lBQ1JDLGVBQWUsR0FBQUosZUFBQSxDQUFmSSxlQUFlO0lBQ2ZDLHFCQUFxQixHQUFBTCxlQUFBLENBQXJCSyxxQkFBcUI7SUFDckJDLGVBQWUsR0FBQU4sZUFBQSxDQUFmTSxlQUFlO0lBQ2ZDLFNBQVMsR0FBQVAsZUFBQSxDQUFUTyxTQUFTO0lBQ1RDLGNBQWMsR0FBQVIsZUFBQSxDQUFkUSxjQUFjO0lBQ2RDLGNBQWMsR0FBQVQsZUFBQSxDQUFkUyxjQUFjO0lBQ2RDLGNBQWMsR0FBQVYsZUFBQSxDQUFkVSxjQUFjO0lBQ2RDLFdBQVcsR0FBQVgsZUFBQSxDQUFYVyxXQUFXO0lBQ1hDLGFBQWEsR0FBQVosZUFBQSxDQUFiWSxhQUFhO0lBQ2JoSyxjQUFjLEdBQUFvSixlQUFBLENBQWRwSixjQUFjO0lBQ2RnQixzQkFBc0IsR0FBQW9JLGVBQUEsQ0FBdEJwSSxzQkFBc0I7SUFDdEJpSixjQUFjLEdBQUFiLGVBQUEsQ0FBZGEsY0FBYztJQUNkQyxZQUFZLEdBQUFkLGVBQUEsQ0FBWmMsWUFBWTtJQUNaQyxjQUFjLEdBQUFmLGVBQUEsQ0FBZGUsY0FBYztFQVNoQixJQUFNbFIsa0JBQWtCLEdBQUc5RixXQUFXLENBQ3BDLFVBQUNxRyxNQUFlLEVBQUs7SUFDbkJ3USxhQUFhLENBQUN4USxNQUFNLENBQUM7RUFDdkIsQ0FBQyxFQUNELENBQUN3USxhQUFhLENBQ2hCLENBQUM7RUFFRCxJQUFNMUoscUJBQXFCLEdBQUduTixXQUFXLENBQ3ZDLFVBQUNvSyxTQUFpQixFQUFFOEMsVUFBa0IsRUFBSztJQUN6QyxJQUFJLEVBQUNBLFVBQVUsYUFBVkEsVUFBVSxlQUFWQSxVQUFVLENBQUUrSixJQUFJLENBQUMsQ0FBQyxHQUFFO0lBQ3pCLElBQUlsQiw0QkFBNEIsQ0FBQzNMLFNBQVMsQ0FBQyxFQUFFO0lBQzdDLElBQU04TSx3QkFBd0IsR0FBRyxDQUFBMVMsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUyUyxNQUFNLE1BQUssUUFBUSxJQUFJLHdCQUF3QixDQUFDOVAsSUFBSSxDQUFDLENBQUE3QyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW1DLElBQUksS0FBSSxFQUFFLENBQUM7SUFDL0dxTyxLQUFLLENBQUNyUixNQUFNLENBQUN5VCxxQkFBcUIsRUFBRTtNQUNsQ0MsVUFBVSxFQUFFSCx3QkFBd0IsR0FBRyxhQUFhLEdBQUcxUyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRUU7SUFDaEUsQ0FBQyxDQUFDO0lBQ0ZzUiwrQkFBK0IsQ0FBQyxVQUFBM0YsSUFBSTtNQUFBLE9BQUEvSyxhQUFBLENBQUFBLGFBQUEsS0FBVStLLElBQUksT0FBQWlILGVBQUEsS0FBR2xOLFNBQVMsRUFBRyxJQUFJO0lBQUEsQ0FBRyxDQUFDO0lBQ3pFd00sV0FBVyxDQUFDMUosVUFBVSxDQUFDO0VBQ3pCLENBQUMsRUFDRCxDQUFDMEosV0FBVyxFQUFFYiw0QkFBNEIsRUFBRWYsS0FBSyxFQUFFeFEsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUUyUyxNQUFNLEVBQUUzUyxLQUFLLGFBQUxBLEtBQUssdUJBQUxBLEtBQUssQ0FBRW1DLElBQUksRUFBRW5DLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFRSxJQUFJLENBQzVGLENBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLElBQU02Uyw0QkFBNEIsR0FBR3ZYLFdBQVcsQ0FBQyxZQUFNO0lBQ3JELElBQU13WCxFQUFFLEdBQUd2QyxXQUFXLENBQUN3QyxPQUFPO0lBQzlCLElBQUksQ0FBQ0QsRUFBRSxFQUFFO0lBQ1QsSUFBUUUsU0FBUyxHQUFpQ0YsRUFBRSxDQUE1Q0UsU0FBUztNQUFFQyxZQUFZLEdBQW1CSCxFQUFFLENBQWpDRyxZQUFZO01BQUVDLFlBQVksR0FBS0osRUFBRSxDQUFuQkksWUFBWTtJQUM3QyxJQUFNQyxrQkFBa0IsR0FBR0YsWUFBWSxHQUFHRCxTQUFTLEdBQUdFLFlBQVk7SUFDbEUsSUFBTUUsVUFBVSxHQUFHRCxrQkFBa0IsR0FBRyxFQUFFO0lBQzFDLElBQUl0QyxxQkFBcUIsQ0FBQ2tDLE9BQU8sS0FBS0ssVUFBVSxFQUFFO01BQ2hEdkMscUJBQXFCLENBQUNrQyxPQUFPLEdBQUdLLFVBQVU7TUFDMUNsQyxxQkFBcUIsQ0FBQ2tDLFVBQVUsQ0FBQztJQUNuQztFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7O0VBRU47QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLElBQU1DLGlCQUFpQixHQUFHL1gsV0FBVyxDQUNuQyxZQUFvRTtJQUFBLElBQW5FZ1ksSUFBeUQsR0FBQXZHLFNBQUEsQ0FBQTlJLE1BQUEsUUFBQThJLFNBQUEsUUFBQTBFLFNBQUEsR0FBQTFFLFNBQUEsTUFBRyxDQUFDLENBQUM7SUFDN0QsSUFBQXdHLHFCQUFBLEdBQXFERCxJQUFJLENBQWpERSxtQkFBbUI7TUFBbkJBLG1CQUFtQixHQUFBRCxxQkFBQSxjQUFHLEtBQUssR0FBQUEscUJBQUE7TUFBQUUsYUFBQSxHQUFrQkgsSUFBSSxDQUFwQkksT0FBTztNQUFQQSxPQUFPLEdBQUFELGFBQUEsY0FBRyxDQUFDLEdBQUFBLGFBQUE7SUFDaEQsSUFBTUUsR0FBRyxHQUFHLFNBQU5BLEdBQUdBLENBQUEsRUFBUztNQUNoQkMscUJBQXFCLENBQUMsWUFBTTtRQUMxQixJQUFNZCxFQUFFLEdBQUd2QyxXQUFXLENBQUN3QyxPQUFPO1FBQzlCLElBQUksQ0FBQ0QsRUFBRSxFQUFFO1FBQ1QsSUFBSVUsbUJBQW1CLElBQUk5QyxnQkFBZ0IsQ0FBQ3FDLE9BQU8sRUFBRTtRQUNyREQsRUFBRSxDQUFDRSxTQUFTLEdBQUdGLEVBQUUsQ0FBQ0csWUFBWTtRQUM5QkosNEJBQTRCLENBQUMsQ0FBQztNQUNoQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsSUFBSWEsT0FBTyxHQUFHLENBQUMsRUFBRW5ILFVBQVUsQ0FBQ29ILEdBQUcsRUFBRUQsT0FBTyxDQUFDLE1BQ3BDQyxHQUFHLENBQUMsQ0FBQztFQUNaLENBQUMsRUFDRCxDQUFDZCw0QkFBNEIsQ0FDL0IsQ0FBQztFQUVELElBQU1nQix5QkFBeUIsR0FBR3ZZLFdBQVcsQ0FBQyxZQUFNO0lBQ2xELElBQUksQ0FBQ2lWLFdBQVcsQ0FBQ3dDLE9BQU8sRUFBRTtJQUMxQnhDLFdBQVcsQ0FBQ3dDLE9BQU8sQ0FBQ2UsUUFBUSxDQUFDO01BQzNCQyxHQUFHLEVBQUV4RCxXQUFXLENBQUN3QyxPQUFPLENBQUNFLFlBQVk7TUFDckNlLFFBQVEsRUFBRTtJQUNaLENBQUMsQ0FBQztJQUNGO0lBQ0F6SCxVQUFVLENBQUNzRyw0QkFBNEIsRUFBRSxHQUFHLENBQUM7RUFDL0MsQ0FBQyxFQUFFLENBQUNBLDRCQUE0QixDQUFDLENBQUM7RUFFbEMsSUFBTW9CLG9CQUFvQixHQUFHM1ksV0FBVyxDQUN0QyxVQUFDc0osQ0FBZ0MsRUFBSztJQUNwQyxJQUFNc1AsU0FBUyxHQUFHdFAsQ0FBQyxDQUFDdVAsYUFBYTtJQUVqQyxJQUFJckQsWUFBWSxDQUFDaUMsT0FBTyxLQUFLLElBQUksRUFBRTtNQUNqQ3FCLG9CQUFvQixDQUFDdEQsWUFBWSxDQUFDaUMsT0FBTyxDQUFDO0lBQzVDO0lBRUFqQyxZQUFZLENBQUNpQyxPQUFPLEdBQUdhLHFCQUFxQixDQUFDLFlBQU07TUFDakQ5QyxZQUFZLENBQUNpQyxPQUFPLEdBQUcsSUFBSTtNQUMzQixJQUFRQyxTQUFTLEdBQWlDa0IsU0FBUyxDQUFuRGxCLFNBQVM7UUFBRUMsWUFBWSxHQUFtQmlCLFNBQVMsQ0FBeENqQixZQUFZO1FBQUVDLFlBQVksR0FBS2dCLFNBQVMsQ0FBMUJoQixZQUFZO01BRTdDLElBQU1tQixhQUFhLEdBQUdyQixTQUFTLEdBQUdwQyxnQkFBZ0IsQ0FBQ21DLE9BQU87TUFFMUQsSUFBSXNCLGFBQWEsRUFBRTtRQUNqQjFELGtCQUFrQixDQUFDb0MsT0FBTyxHQUFHLEVBQUU7TUFDakM7TUFFQSxJQUFNdUIsWUFBWSxHQUFHckIsWUFBWSxHQUFHRCxTQUFTLEdBQUdFLFlBQVksR0FBR3ZDLGtCQUFrQixDQUFDb0MsT0FBTztNQUV6RixJQUFJdUIsWUFBWSxFQUFFO1FBQ2hCM0Qsa0JBQWtCLENBQUNvQyxPQUFPLEdBQUcsRUFBRTtNQUNqQztNQUVBckMsZ0JBQWdCLENBQUNxQyxPQUFPLEdBQUcsQ0FBQ3VCLFlBQVk7TUFDeEMxRCxnQkFBZ0IsQ0FBQ21DLE9BQU8sR0FBR0MsU0FBUztNQUVwQ0gsNEJBQTRCLENBQUMsQ0FBQztNQUU5QixJQUFJeUIsWUFBWSxJQUFJdkUsZ0JBQWdCLEVBQUU7UUFDcENBLGdCQUFnQixDQUFDLENBQUM7TUFDcEI7TUFFQXNDLFlBQVksQ0FBQzZCLFNBQVMsQ0FBQztJQUN6QixDQUFDLENBQUM7RUFDSixDQUFDLEVBQ0QsQ0FBQ25FLGdCQUFnQixFQUFFc0MsWUFBWSxFQUFFUSw0QkFBNEIsQ0FDL0QsQ0FBQzs7RUFFRDtFQUNBLElBQU0wQixjQUFjLEdBQUc5WSxNQUFNLENBQUN5VyxXQUFXLENBQUM7RUFDMUMsSUFBTXNDLGlCQUFpQixHQUFHL1ksTUFBTSxDQUFDNlcsY0FBYyxDQUFDO0VBQ2hELElBQU1tQyxxQkFBcUIsR0FBR2haLE1BQU0sQ0FBQ3FVLGtCQUFrQixDQUFDOztFQUV4RDtFQUNBeUUsY0FBYyxDQUFDeEIsT0FBTyxHQUFHYixXQUFXO0VBQ3BDc0MsaUJBQWlCLENBQUN6QixPQUFPLEdBQUdULGNBQWM7RUFDMUNtQyxxQkFBcUIsQ0FBQzFCLE9BQU8sR0FBR2pELGtCQUFrQjtFQUVsRHZVLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSWtaLHFCQUFxQixDQUFDMUIsT0FBTyxFQUFFO01BQ2pDMEIscUJBQXFCLENBQUMxQixPQUFPLENBQUN3QixjQUFjLENBQUN4QixPQUFPLEVBQUV5QixpQkFBaUIsQ0FBQ3pCLE9BQU8sRUFBRWxCLGVBQWUsRUFBRUMsU0FBUyxDQUFDO0lBQzlHO0VBQ0YsQ0FBQyxFQUFFLENBQUNELGVBQWUsRUFBRUMsU0FBUyxDQUFDLENBQUM7RUFFaEN2VyxTQUFTLENBQUMsWUFBTTtJQUNka1YsZ0JBQWdCLENBQUNzQyxPQUFPLEdBQUduQixxQkFBcUI7RUFDbEQsQ0FBQyxFQUFFLENBQUNBLHFCQUFxQixDQUFDLENBQUM7O0VBRTNCO0VBQ0FyVyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUlzVyxlQUFlLEVBQUU7TUFDbkJuQixnQkFBZ0IsQ0FBQ3FDLE9BQU8sR0FBRyxLQUFLO01BQ2hDcEMsa0JBQWtCLENBQUNvQyxPQUFPLEdBQUcsRUFBRTtJQUNqQztFQUNGLENBQUMsRUFBRSxDQUFDbEIsZUFBZSxDQUFDLENBQUM7RUFFckJ0VyxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ2lWLGtCQUFrQixDQUFDdUMsT0FBTyxFQUFFO01BQy9CdkMsa0JBQWtCLENBQUN1QyxPQUFPLEdBQUcsSUFBSTtNQUNqQ1gsY0FBYyxDQUFDLENBQUM7SUFDbEI7RUFDRixDQUFDLEVBQUUsRUFBRSxDQUFDOztFQUVOO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBN1csU0FBUyxDQUFDLFlBQU07SUFDZCxJQUFJLENBQUNzVyxlQUFlLElBQUksQ0FBQ0MsU0FBUyxFQUFFLE9BQU9MLFNBQVM7SUFDcEQsSUFBSSxDQUFDbEIsV0FBVyxDQUFDd0MsT0FBTyxFQUFFLE9BQU90QixTQUFTO0lBRTFDLElBQUlpRCxLQUFvQixHQUFHLElBQUk7SUFDL0IsSUFBSUMsVUFBVSxHQUFHcEUsV0FBVyxDQUFDd0MsT0FBTyxDQUFDRSxZQUFZO0lBRWpELElBQU0yQixLQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBQSxFQUFTO01BQ2pCLElBQU05QixFQUFFLEdBQUd2QyxXQUFXLENBQUN3QyxPQUFPO01BQzlCLElBQUksQ0FBQ0QsRUFBRSxFQUFFO1FBQ1A0QixLQUFLLEdBQUcsSUFBSTtRQUNaO01BQ0Y7TUFDQSxJQUFNRyxhQUFhLEdBQUcvQixFQUFFLENBQUNHLFlBQVk7TUFDckMsSUFBSTRCLGFBQWEsS0FBS0YsVUFBVSxFQUFFO1FBQ2hDQSxVQUFVLEdBQUdFLGFBQWE7UUFDMUIsSUFBSSxDQUFDbkUsZ0JBQWdCLENBQUNxQyxPQUFPLEVBQUU7VUFDN0JELEVBQUUsQ0FBQ0UsU0FBUyxHQUFHNkIsYUFBYTtRQUM5QjtRQUNBaEMsNEJBQTRCLENBQUMsQ0FBQztNQUNoQztNQUNBNkIsS0FBSyxHQUFHZCxxQkFBcUIsQ0FBQ2dCLEtBQUksQ0FBQztJQUNyQyxDQUFDO0lBRURGLEtBQUssR0FBR2QscUJBQXFCLENBQUNnQixLQUFJLENBQUM7SUFDbkMsT0FBTyxZQUFNO01BQ1gsSUFBSUYsS0FBSyxJQUFJLElBQUksRUFBRU4sb0JBQW9CLENBQUNNLEtBQUssQ0FBQztJQUNoRCxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUM3QyxlQUFlLEVBQUVDLFNBQVMsRUFBRWUsNEJBQTRCLENBQUMsQ0FBQzs7RUFFOUQ7RUFDQXRYLFNBQVMsQ0FBQyxZQUFNO0lBQ2QsSUFBSXNXLGVBQWUsSUFBSXRCLFdBQVcsQ0FBQ3dDLE9BQU8sRUFBRTtNQUMxQ00saUJBQWlCLENBQUM7UUFBRUcsbUJBQW1CLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFDbEQ7RUFDRixDQUFDLEVBQUUsQ0FBQzNCLGVBQWUsRUFBRXdCLGlCQUFpQixDQUFDLENBQUM7O0VBRXhDO0VBQ0E7RUFDQTtFQUNBLElBQU15QixnQkFBZ0IsR0FBR3JaLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDO0VBQ3BELElBQU1zWixxQkFBcUIsR0FBR3RaLE1BQU0sQ0FBUyxDQUFDLENBQUM7RUFDL0NGLFNBQVMsQ0FBQyxZQUFNO0lBQUEsSUFBQXlaLGVBQUE7SUFDZCxJQUFJLENBQUN6RSxXQUFXLENBQUN3QyxPQUFPLElBQUlwQixlQUFlLElBQUlDLHFCQUFxQixJQUFJbkIsZ0JBQWdCLENBQUNzQyxPQUFPLEVBQUU7TUFDaEc7SUFDRjtJQUVBLElBQU1rQyxXQUFXLEdBQUd2RCxRQUFRLENBQUNBLFFBQVEsQ0FBQ3pOLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakQsSUFBTWlSLE1BQU0sSUFBQUYsZUFBQSxHQUFHQyxXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRWxULEVBQUUsY0FBQWlULGVBQUEsY0FBQUEsZUFBQSxHQUFJLElBQUk7SUFDdEMsSUFBTUcsTUFBTSxHQUFHTCxnQkFBZ0IsQ0FBQy9CLE9BQU87SUFDdkMsSUFBTXFDLE9BQU8sR0FBR0wscUJBQXFCLENBQUNoQyxPQUFPO0lBQzdDK0IsZ0JBQWdCLENBQUMvQixPQUFPLEdBQUdtQyxNQUFNO0lBQ2pDSCxxQkFBcUIsQ0FBQ2hDLE9BQU8sR0FBR3JCLFFBQVEsQ0FBQ3pOLE1BQU07SUFFL0MsSUFBTW9SLFlBQVksR0FBR0gsTUFBTSxLQUFLQyxNQUFNLElBQUl6RCxRQUFRLENBQUN6TixNQUFNLEtBQUttUixPQUFPO0lBQ3JFLElBQUksQ0FBQ0MsWUFBWSxFQUFFO01BQ2pCeEMsNEJBQTRCLENBQUMsQ0FBQztNQUM5QjtJQUNGO0lBRUEsSUFBTXFCLFNBQVMsR0FBRzNELFdBQVcsQ0FBQ3dDLE9BQU87SUFDckMsSUFBTXVDLFVBQVUsR0FBR3BCLFNBQVMsQ0FBQ2pCLFlBQVksR0FBR2lCLFNBQVMsQ0FBQ2xCLFNBQVMsSUFBSWtCLFNBQVMsQ0FBQ2hCLFlBQVksR0FBRyxHQUFHO0lBQy9GLElBQU1xQyxpQkFBaUIsR0FBRzdELFFBQVEsQ0FBQ3pELElBQUksQ0FBQyxVQUFBdUgsR0FBRztNQUFBLE9BQUlBLEdBQUcsQ0FBQ3pULEVBQUUsS0FBSyxzQkFBc0I7SUFBQSxFQUFDO0lBQ2pGLElBQU0wVCxVQUFVLEdBQUcsQ0FBQyxDQUFDUixXQUFXLEtBQUtBLFdBQVcsQ0FBQ2xULEVBQUUsQ0FBQ2lNLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUNpSCxXQUFXLENBQUNqTixRQUFRLENBQUM7SUFDdEcsSUFBTTBOLGtCQUFrQixHQUN0QixDQUFDLENBQUNULFdBQVcsS0FBS0EsV0FBVyxDQUFDbFQsRUFBRSxDQUFDaU0sVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJaUgsV0FBVyxDQUFDbFQsRUFBRSxDQUFDaU0sVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDOztJQUVuRztJQUNBO0lBQ0E7SUFDQSxJQUFJeUgsVUFBVSxLQUFLSCxVQUFVLElBQUksQ0FBQzVFLGdCQUFnQixDQUFDcUMsT0FBTyxDQUFDLEVBQUU7TUFDM0RNLGlCQUFpQixDQUFDLENBQUM7TUFDbkJBLGlCQUFpQixDQUFDLENBQUM7TUFDbkJBLGlCQUFpQixDQUFDO1FBQUVLLE9BQU8sRUFBRTtNQUFJLENBQUMsQ0FBQztNQUNuQztJQUNGOztJQUVBO0lBQ0EsSUFBSWdDLGtCQUFrQixJQUFJSixVQUFVLEVBQUU7TUFDcENqQyxpQkFBaUIsQ0FBQyxDQUFDO01BQ25CO0lBQ0Y7O0lBRUE7SUFDQTtJQUNBLElBQUksQ0FBQ3FDLGtCQUFrQixJQUFJLENBQUNELFVBQVUsSUFBSSxDQUFDRixpQkFBaUIsSUFBSTdELFFBQVEsQ0FBQ3pOLE1BQU0sR0FBR21SLE9BQU8sRUFBRTtNQUN6Ri9CLGlCQUFpQixDQUFDLENBQUM7TUFDbkI7SUFDRjtJQUVBUiw0QkFBNEIsQ0FBQyxDQUFDO0VBQ2hDLENBQUMsRUFBRSxDQUFDbkIsUUFBUSxFQUFFQyxlQUFlLEVBQUVDLHFCQUFxQixFQUFFeUIsaUJBQWlCLEVBQUVSLDRCQUE0QixDQUFDLENBQUM7O0VBRXZHO0VBQ0F0WCxTQUFTLENBQUMsWUFBTTtJQUNkLElBQUksQ0FBQ29XLGVBQWUsRUFBRTtNQUNwQmtCLDRCQUE0QixDQUFDLENBQUM7SUFDaEM7RUFDRixDQUFDLEVBQUUsQ0FBQ2xCLGVBQWUsRUFBRUQsUUFBUSxDQUFDek4sTUFBTSxFQUFFNE8sNEJBQTRCLENBQUMsQ0FBQzs7RUFFcEU7RUFDQSxJQUFNOEMsZUFBZSxHQUFHakUsUUFBUSxDQUM3QnBFLE1BQU0sQ0FBQyxVQUFBa0ksR0FBRztJQUFBLE9BQUlBLEdBQUcsQ0FBQ3BNLElBQUksS0FBS2hOLGVBQWUsQ0FBQ3dOLElBQUksSUFBSTRMLEdBQUcsQ0FBQ3hNLElBQUksQ0FBQ2pILEVBQUUsS0FBS2tILFFBQVEsQ0FBQ2xILEVBQUUsQ0FBQzhILFFBQVEsQ0FBQyxDQUFDO0VBQUEsRUFBQyxDQUMxRitMLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUVULElBQU1DLGdCQUFnQixHQUNwQixDQUFDNUwsS0FBSyxDQUFDQyxPQUFPLENBQUN5TCxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRXRNLFdBQVcsQ0FBQyxHQUFHc00sZUFBZSxDQUFDdE0sV0FBVyxDQUFDcEYsTUFBTSxHQUFHLENBQUMsTUFDcEZnRyxLQUFLLENBQUNDLE9BQU8sQ0FBQ3lMLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFek4sT0FBTyxDQUFDLEdBQUd5TixlQUFlLENBQUN6TixPQUFPLENBQUNqRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0VBRWhGLElBQU02UixvQkFBb0IsR0FBRzNZLDJCQUEyQixDQUFDO0lBQ3ZENlUsY0FBYyxFQUFkQSxjQUFjO0lBQ2RELGNBQWMsRUFBZEEsY0FBYztJQUNkRSxjQUFjLEVBQUVBLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDcENKLGVBQWUsRUFBZkEsZUFBZTtJQUNmekIsaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJDLGtCQUFrQixFQUFsQkEsa0JBQWtCO0lBQ2xCMEYsY0FBYyxFQUFFQyxPQUFPLENBQUNILGdCQUFnQixDQUFDO0lBQ3pDQSxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQjNGLENBQUMsRUFBREE7RUFDRixDQUFDLENBQUM7RUFFRixJQUFNK0YsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDakgsUUFBUTtFQUNuQyxJQUFNd0Qsd0JBQXdCLEdBQUcsQ0FBQTFTLEtBQUssYUFBTEEsS0FBSyx1QkFBTEEsS0FBSyxDQUFFMlMsTUFBTSxNQUFLLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQzlQLElBQUksQ0FBQyxDQUFBN0MsS0FBSyxhQUFMQSxLQUFLLHVCQUFMQSxLQUFLLENBQUVtQyxJQUFJLEtBQUksRUFBRSxDQUFDOztFQUUvRztFQUNBO0VBQ0EsSUFBTWlVLFdBQVcsR0FBR3phLE1BQU0sQ0FBQ3VULFFBQVEsQ0FBQztFQUNwQ3hULGVBQWUsQ0FBQyxZQUFNO0lBQ3BCLElBQUkwYSxXQUFXLENBQUNuRCxPQUFPLEtBQUsvRCxRQUFRLElBQUl1QixXQUFXLENBQUN3QyxPQUFPLEVBQUU7TUFDM0QsSUFBTW9ELGNBQWMsR0FBR3ZGLGdCQUFnQixDQUFDbUMsT0FBTztNQUMvQ3hDLFdBQVcsQ0FBQ3dDLE9BQU8sQ0FBQ0MsU0FBUyxHQUFHbUQsY0FBYztNQUM5Q0QsV0FBVyxDQUFDbkQsT0FBTyxHQUFHL0QsUUFBUTtJQUNoQyxDQUFDLE1BQU07TUFDTGtILFdBQVcsQ0FBQ25ELE9BQU8sR0FBRy9ELFFBQVE7SUFDaEM7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsUUFBUSxDQUFDLENBQUM7RUFFZCxJQUFJMkMsZUFBZSxFQUFFO0lBQ25CLG9CQUNFdFMsSUFBQSxDQUFDaEMsSUFBSTtNQUFDK1ksSUFBSTtNQUFBclcsUUFBQSxlQUNSVixJQUFBLENBQUNqQyxNQUFNLElBQUU7SUFBQyxDQUNOLENBQUM7RUFFWDtFQUVBLElBQU1pWixlQUFlLGdCQUNuQjlXLEtBQUEsQ0FBQUUsU0FBQTtJQUFBTSxRQUFBLEdBQ0c2UixxQkFBcUIsaUJBQUl2UyxJQUFBLENBQUNyQyxXQUFXO01BQUNnSCxJQUFJLEVBQUVrTSxDQUFDLENBQUMsa0JBQWtCO0lBQUUsQ0FBRSxDQUFDLGVBQ3RFN1EsSUFBQSxDQUFBSSxTQUFBO01BQUFNLFFBQUEsRUFDRzJSLFFBQVEsQ0FBQzlQLEdBQUcsQ0FBQyxVQUFDaUIsT0FBTyxFQUFFNEssS0FBSyxFQUFLO1FBQUEsSUFBQTZJLG9CQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLFdBQUE7UUFDaEMsSUFBTUMsa0JBQWtCLEdBQUc3VCxPQUFPLENBQUN1RyxJQUFJLEtBQUtoTixlQUFlLENBQUMwTixTQUFTLElBQUlqSCxPQUFPLENBQUNtRyxJQUFJLENBQUNqSCxFQUFFLEtBQUssV0FBVztRQUN4RyxJQUFNOEcsYUFBYSxHQUFHNEUsS0FBSyxLQUFLaUUsUUFBUSxDQUFDek4sTUFBTSxHQUFHLENBQUM7UUFDbkQsSUFBTXdCLFdBQVcsR0FDZmlSLGtCQUFrQixJQUNsQjdOLGFBQWEsS0FDWmdKLGVBQWUsSUFBSUMsU0FBUyxDQUFDLElBQzlCNVUsK0JBQStCLENBQUMyRixPQUFPLENBQUNkLEVBQUUsQ0FBQzs7UUFFN0M7UUFDQTtRQUNBLElBQ0UsQ0FBQzBELFdBQVcsSUFDWixFQUFFLENBQUE2USxvQkFBQSxHQUFBelQsT0FBTyxDQUFDd0csV0FBVyxjQUFBaU4sb0JBQUEsZUFBbkJBLG9CQUFBLENBQXFCclMsTUFBTSxLQUFBc1MsZ0JBQUEsR0FBSTFULE9BQU8sQ0FBQ3FGLE9BQU8sY0FBQXFPLGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCdFMsTUFBTSxDQUFDLElBQ3pELENBQUNwQixPQUFPLENBQUNBLE9BQU8sSUFDaEIsR0FBQTJULGdCQUFBLEdBQUMzVCxPQUFPLENBQUM4VCxPQUFPLGNBQUFILGdCQUFBLGVBQWZBLGdCQUFBLENBQWlCdlUsSUFBSSxLQUN0QixDQUFDWSxPQUFPLENBQUNtRixRQUFRLEVBRWpCLE9BQU8sSUFBSTtRQUViLElBQU00TyxlQUFlLEdBQ25CLENBQUEvVCxPQUFPLGFBQVBBLE9BQU8sdUJBQVBBLE9BQU8sQ0FBRWdVLFVBQVUsTUFBS3BGLFNBQVMsSUFBSTVPLE9BQU8sQ0FBQ2dVLFVBQVUsS0FBSyxJQUFJLEdBQzVELElBQUksR0FDSmhVLE9BQU8sQ0FBQ2dVLFVBQVUsR0FDaEJsWSxRQUFRLENBQUNtWSxTQUFTLEdBQ2xCblksUUFBUSxDQUFDb1ksV0FBVzs7UUFFNUI7UUFDQSxJQUFNQyxVQUFVLElBQUFQLFdBQUEsR0FBRzVULE9BQU8sQ0FBQ2QsRUFBRSxjQUFBMFUsV0FBQSxjQUFBQSxXQUFBLFVBQUE5UyxNQUFBLENBQVc4SixLQUFLLENBQUU7UUFFL0Msb0JBQ0U3UixjQUFBLENBQUNrTixXQUFXLEVBQUFsSSxhQUFBLENBQUFBLGFBQUEsS0FDTmlDLE9BQU87VUFDWG9VLEdBQUcsRUFBRUQsVUFBVztVQUNoQi9OLFFBQVEsRUFBRUEsUUFBUztVQUNuQjdILGtCQUFrQixFQUFFQSxrQkFBbUI7VUFDdkMrRyxjQUFjLEVBQUVBLGNBQWU7VUFDL0JnQixzQkFBc0IsRUFBRUEsc0JBQXVCO1VBQy9DVixxQkFBcUIsRUFBRUEscUJBQXNCO1VBQzdDYyxxQkFBcUIsRUFBRSxDQUFDLENBQUM4SCw0QkFBNEIsQ0FBQ3hPLE9BQU8sQ0FBQ2QsRUFBRSxDQUFFO1VBQ2xFc0csZUFBZSxFQUFFdU8sZUFBZ0I7VUFDakNuUixXQUFXLEVBQUVBLFdBQVk7VUFDekJvRCxhQUFhLEVBQUVBLGFBQWM7VUFDN0JtRyxRQUFRLEVBQUVBO1FBQVMsRUFDcEIsQ0FBQztNQUVOLENBQUM7SUFBQyxDQUNGLENBQUMsRUFDRjhHLG9CQUFvQixpQkFDbkJ6VyxJQUFBLENBQUNyQix1QkFBdUI7TUFBQStCLFFBQUEsZUFDdEJWLElBQUEsQ0FBQ3BDLHNCQUFzQjtRQUFDaWEsUUFBUSxFQUFFcEI7TUFBcUIsQ0FBRTtJQUFDLENBQ25DLENBQzFCO0VBQUEsQ0FDRCxDQUNIO0VBRUQsb0JBQ0V2VyxLQUFBLENBQUMxQixlQUFlO0lBQUNzWixlQUFlLEVBQUVsQixnQkFBaUI7SUFBQWxXLFFBQUEsR0FDaERrVyxnQkFBZ0IsZ0JBQ2Y1VyxJQUFBLENBQUN2QixnQkFBZ0I7TUFBQ3NaLEdBQUcsRUFBRTdHLFdBQVk7TUFBQzhHLFFBQVEsRUFBRXBELG9CQUFxQjtNQUFBbFUsUUFBQSxlQUNqRVYsSUFBQSxDQUFDdEIsZUFBZTtRQUFDb1osZUFBZSxFQUFFbEIsZ0JBQWlCO1FBQUNxQixvQkFBb0IsRUFBRTlFLHdCQUF5QjtRQUFBelMsUUFBQSxFQUNoR3NXO01BQWUsQ0FDRDtJQUFDLENBQ0YsQ0FBQyxnQkFFbkJoWCxJQUFBLENBQUN0QixlQUFlO01BQ2RxWixHQUFHLEVBQUU3RyxXQUFZO01BQ2pCOEcsUUFBUSxFQUFFcEQsb0JBQXFCO01BQy9Ca0QsZUFBZSxFQUFFLEtBQU07TUFDdkJHLG9CQUFvQixFQUFFOUUsd0JBQXlCO01BQUF6UyxRQUFBLEVBRTlDc1c7SUFBZSxDQUNELENBQ2xCLEVBRUFwRixrQkFBa0IsaUJBQ2pCNVIsSUFBQSxDQUFDekIsb0JBQW9CO01BQUNvQyxJQUFJLEVBQUMsUUFBUTtNQUFDZ0MsT0FBTyxFQUFFNlIseUJBQTBCO01BQUE5VCxRQUFBLGVBQ3JFVixJQUFBLENBQUN0RCxjQUFjO1FBQUN3YixLQUFLLEVBQUMsTUFBTTtRQUFDdFgsS0FBSyxFQUFDLE1BQU07UUFBQ0MsTUFBTSxFQUFDO01BQU0sQ0FBRTtJQUFDLENBQ3RDLENBQ3ZCO0VBQUEsQ0FDYyxDQUFDO0FBRXRCLENBQUM7QUFFRCxPQUFPLElBQU1zWCxjQUFjLGdCQUFHcGMsS0FBSyxDQUFDQyxJQUFJLENBQUNvVSxtQkFBbUIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -126,10 +126,14 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
126
126
  })) {
127
127
  groupStatus = 'rejected';
128
128
  }
129
+
130
+ // Texto que el agente envió junto al pedido de aprobación. Cuando está
131
+ // pendiente el backend manda un placeholder `[Pendiente...]` que no debe mostrarse.
132
+ var approvalMessage = firstItem.answer && !firstItem.answer.startsWith('[Pendiente') ? firstItem.answer : '';
129
133
  var _answerMessage = _objectSpread(_objectSpread({
130
134
  id: "approval-".concat(otid),
131
135
  agentId: firstItem.agent_id,
132
- message: '',
136
+ message: approvalMessage,
133
137
  date: new Date(firstItem.timestamp),
134
138
  user: ASSISTANT_USER,
135
139
  projectId: (_firstItem$project_me3 = firstItem.project_metadata) === null || _firstItem$project_me3 === void 0 ? void 0 : _firstItem$project_me3.id,
@@ -276,4 +280,4 @@ export var mapChatMessages = function mapChatMessages(items, currentUser, cancel
276
280
  });
277
281
  return mappedItems;
278
282
  };
279
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb3JMb2dvIiwianN4IiwiX2pzeCIsIkFTU0lTVEFOVF9VU0VSIiwiaWQiLCJuYW1lIiwiYXZhdGFySWNvbiIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBvc2l0aW9uIiwidG9wIiwiY2hpbGRyZW4iLCJnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUiLCJhdHRhY2htZW50cyIsInJvbGUiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiYXR0YWNobWVudFJvbGUiLCJyZXNvbHZlQXBwcm92YWxTdGF0dXMiLCJzdGF0dXMiLCJtYXBDaGF0TWVzc2FnZXMiLCJpdGVtcyIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsImhpdGxHcm91cHMiLCJNYXAiLCJmb3JFYWNoIiwiaXRlbSIsImluZGV4IiwicGVuZGluZ19hcHByb3ZhbCIsIm90aWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJ0aHJlYWRfaWQiLCJtZXNzYWdlX2lkIiwiZXhpc3RpbmciLCJnZXQiLCJwdXNoIiwic2V0IiwiZmlyc3RJbmRleCIsImVtaXR0ZWRHcm91cHMiLCJTZXQiLCJtYXBwZWRJdGVtcyIsIl9pdGVtJHBlbmRpbmdfYXBwcm92YSIsIl9pdGVtJHByb2plY3RfbWV0YWRhdCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDIiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEyIiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0MyIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDQiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEzIiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNCIsImlzSGl0bEl0ZW0iLCJfZmlyc3RJdGVtJHByb2plY3RfbWUzIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lNCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDMiLCJfZmlyc3RJdGVtJGNsaWVudF9tZXQ0IiwiX2dyb3VwJGl0ZW1zJGZpbmQiLCJoYXMiLCJhZGQiLCJncm91cCIsImZpcnN0SXRlbSIsImlzTWFudWFsQXBwcm92YWwiLCJzb21lIiwiZ2kiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsInF1ZXN0aW9uIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lMiIsIl9maXJzdEl0ZW0kY2xpZW50X21ldCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDIiLCJfb2JqZWN0U3ByZWFkIiwiY29uY2F0IiwibWVtb3J5X3Nlc3Npb25faWQiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJtZXNzYWdlIiwiZGF0ZSIsIkRhdGUiLCJ0aW1lc3RhbXAiLCJ1c2VyIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwiY2xpZW50SWQiLCJjbGllbnRfbWV0YWRhdGEiLCJjbGllbnROYW1lIiwic291cmNlcyIsInByb2plY3RNZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJjb250ZXh0X21lc3NhZ2UiLCJjb250ZXh0TWVzc2FnZSIsInBlbmRpbmdBY3Rpb25zIiwibWFwIiwidG9vbF9jYWxsX2lkIiwidG9vbF9uYW1lIiwidG9vbF9hcmdzIiwic3RhdHVzZXMiLCJncm91cFN0YXR1cyIsInMiLCJhbnN3ZXJNZXNzYWdlIiwid2FzSGVscGZ1bCIsIndhc19oZWxwZnVsIiwiYXBwcm92YWwiLCJ0eXBlIiwicGVuZGluZ19hY3Rpb25zIiwidG90YWxfYWN0aW9ucyIsImxlbmd0aCIsInNlc3Npb25faWQiLCJtZXRhZGF0YSIsIl9naSRwZW5kaW5nX2FwcHJvdmFsMiIsIndhcm5pbmdfbWVzc2FnZSIsImZpbmQiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbDMiLCJ1bmRlZmluZWQiLCJhcHByb3ZhbFN0YXR1cyIsInJlamVjdGVkSXRlbSIsImFuc3dlciIsInN0YXJ0c1dpdGgiLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QiLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QyIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfMiIsInN1Z2dlc3Rpb25zIiwic3VnZ2VzdF9yZXBseSIsImlzX2NhbmNlbGxlZCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDUiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ2IiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNSIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTYiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ3IiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0OCIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTciLCJfaXRlbSRjbGllbnRfbWV0YWRhdGE4IiwiaXNGcm9udGVuZENhbmNlbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy91dGlscy9tYXBDaGF0TWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuaW1wb3J0IHsgQ29yTG9nbyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2UsIENoYXRNZXNzYWdlVXNlciB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuXG5leHBvcnQgY29uc3QgQVNTSVNUQU5UX1VTRVI6IENoYXRNZXNzYWdlVXNlciA9IHtcbiAgaWQ6ICdhc3Npc3RhbnQnLFxuICBuYW1lOiAnTWFpYScsXG4gIGF2YXRhckljb246IChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgcG9zaXRpb246ICdzdGlja3knLCB0b3A6IDAgfX0+XG4gICAgICA8Q29yTG9nbyAvPlxuICAgIDwvZGl2PlxuICApLFxufVxuXG5jb25zdCBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUgPSAoXG4gIGF0dGFjaG1lbnRzOiBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZVsnYXR0YWNobWVudHMnXSxcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbikgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXR0YWNobWVudHMpKSByZXR1cm4gW11cblxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4ge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRSb2xlID0gYXR0YWNobWVudD8ucm9sZSB8fCAndXNlcidcbiAgICByZXR1cm4gcm9sZSA9PT0gJ2Fzc2lzdGFudCcgPyBhdHRhY2htZW50Um9sZSA9PT0gJ2Fzc2lzdGFudCcgOiBhdHRhY2htZW50Um9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgfSlcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmcm9udGVuZCBhcHByb3ZhbFN0YXR1cyBmcm9tIHRoZSBiYWNrZW5kIE1lbW9yeVNlc3Npb24gc3RhdHVzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQXBwcm92YWxTdGF0dXMoc3RhdHVzPzogc3RyaW5nKTogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCcge1xuICBpZiAoc3RhdHVzID09PSAnY29tcGxldGVkJyB8fCBzdGF0dXMgPT09ICdhcHByb3ZlZCcpIHJldHVybiAnYXBwcm92ZWQnXG4gIGlmIChzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiAncmVqZWN0ZWQnXG4gIHJldHVybiAncGVuZGluZydcbn1cblxuZXhwb3J0IGNvbnN0IG1hcENoYXRNZXNzYWdlcyA9IChcbiAgaXRlbXM6IENoYXRNZXNzYWdlSXRlbVJlc3BvbnNlW10sXG4gIGN1cnJlbnRVc2VyOiBDaGF0TWVzc2FnZVVzZXIsXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbik6IENoYXRNZXNzYWdlW10gPT4ge1xuICAvLyDilIDilIAgMS4gR3JvdXAgSElUTCBpdGVtcyB0aGF0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbmFsX3RocmVhZF9pZCDilIDilIBcbiAgLy8gU28gbXVsdGlwbGUgTWVtb3J5U2Vzc2lvbnMgZnJvbSBhIHNpbmdsZSBISVRMIGJhdGNoIHJlbmRlciBpbiBvbmUgQXBwcm92YWxCb3guXG4gIGNvbnN0IGhpdGxHcm91cHMgPSBuZXcgTWFwPHN0cmluZywgeyBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXTsgZmlyc3RJbmRleDogbnVtYmVyIH0+KClcbiAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICBpZiAoIWl0ZW0ucGVuZGluZ19hcHByb3ZhbCkgcmV0dXJuXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWQgfHwgaXRlbS50aHJlYWRfaWQgfHwgaXRlbS5tZXNzYWdlX2lkXG4gICAgaWYgKCFvdGlkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gaGl0bEdyb3Vwcy5nZXQob3RpZClcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLml0ZW1zLnB1c2goaXRlbSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGl0bEdyb3Vwcy5zZXQob3RpZCwgeyBpdGVtczogW2l0ZW1dLCBmaXJzdEluZGV4OiBpbmRleCB9KVxuICAgIH1cbiAgfSlcblxuICAvLyBUcmFjayB3aGljaCBvcmlnaW5hbF90aHJlYWRfaWRzIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWRcbiAgY29uc3QgZW1pdHRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgY29uc3QgbWFwcGVkSXRlbXM6IENoYXRNZXNzYWdlW10gPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3QgaXNIaXRsSXRlbSA9ICEhaXRlbS5wZW5kaW5nX2FwcHJvdmFsXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbD8ub3JpZ2luYWxfdGhyZWFkX2lkIHx8IGl0ZW0udGhyZWFkX2lkIHx8IGl0ZW0ubWVzc2FnZV9pZCB8fCAnJ1xuXG4gICAgLy8g4pSA4pSAIEhJVEwgaXRlbXM6IGVtaXQgb25jZSBwZXIgZ3JvdXAgKG9uIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBncm91cCkg4pSA4pSAXG4gICAgaWYgKGlzSGl0bEl0ZW0gJiYgb3RpZCkge1xuICAgICAgaWYgKGVtaXR0ZWRHcm91cHMuaGFzKG90aWQpKSByZXR1cm4gLy8gQWxyZWFkeSBlbWl0dGVkIHRoaXMgZ3JvdXBcbiAgICAgIGVtaXR0ZWRHcm91cHMuYWRkKG90aWQpXG5cbiAgICAgIGNvbnN0IGdyb3VwID0gaGl0bEdyb3Vwcy5nZXQob3RpZCkhXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBncm91cC5pdGVtc1swXVxuICAgICAgY29uc3QgaXNNYW51YWxBcHByb3ZhbCA9IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKVxuXG4gICAgICAvLyBPbmx5IGVtaXQgcXVlc3Rpb24gaWYgaXQgaGFzIGNvbnRlbnQgKGF2b2lkIGR1cGxpY2F0ZSBlbXB0eSBxdWVzdGlvbnMpXG4gICAgICBpZiAoZmlyc3RJdGVtLnF1ZXN0aW9uKSB7XG4gICAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGlkOiBgJHtmaXJzdEl0ZW0ubWVzc2FnZV9pZCB8fCBmaXJzdEl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXF1ZXN0aW9uYCxcbiAgICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgICAgbWVzc2FnZTogZmlyc3RJdGVtLnF1ZXN0aW9uLFxuICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKGZpcnN0SXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgIHByb2plY3RJZDogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBjbGllbnRJZDogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgICAgY2xpZW50TmFtZTogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGZpcnN0SXRlbS5hdHRhY2htZW50cywgJ3VzZXInKSxcbiAgICAgICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgICAgLi4uKGZpcnN0SXRlbS5jb250ZXh0X21lc3NhZ2UgPyB7IGNvbnRleHRNZXNzYWdlOiBmaXJzdEl0ZW0uY29udGV4dF9tZXNzYWdlIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIE9taXRpciBlbCBtZW5zYWplIGNvbiBBcHByb3ZhbEJveCBwYXJhIGFwcm9iYWNpb25lcyBtYW51YWxlczogZGVqYSB2aXNpYmxlIHNvbG8gbGEgcHJlZ3VudGEgZGVsIHVzdWFyaW9cbiAgICAgIGlmIChpc01hbnVhbEFwcHJvdmFsKSByZXR1cm5cblxuICAgICAgLy8gQnVpbGQgbWVyZ2VkIHBlbmRpbmdfYWN0aW9ucyBmcm9tIGFsbCBpdGVtcyBpbiB0aGUgZ3JvdXBcbiAgICAgIGNvbnN0IHBlbmRpbmdBY3Rpb25zID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+ICh7XG4gICAgICAgIHRocmVhZF9pZDogZ2kudGhyZWFkX2lkIHx8ICcnLFxuICAgICAgICB0b29sX2NhbGxfaWQ6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfY2FsbF9pZCB8fCAnJyxcbiAgICAgICAgdG9vbF9uYW1lOiBnaS5wZW5kaW5nX2FwcHJvdmFsIS50b29sX25hbWUgfHwgJ3Vua25vd24nLFxuICAgICAgICB0b29sX2FyZ3M6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfYXJncyB8fCB7fSxcbiAgICAgIH0pKVxuXG4gICAgICAvLyBSZXNvbHZlIHN0YXR1czogaWYgQU5ZIGlzIHBlbmRpbmcg4oaSIHBlbmRpbmc7IGlmIEFMTCBhcHByb3ZlZCDihpIgYXBwcm92ZWQ7IGVsc2UgcmVqZWN0ZWRcbiAgICAgIGNvbnN0IHN0YXR1c2VzID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+IHJlc29sdmVBcHByb3ZhbFN0YXR1cyhnaS5zdGF0dXMpKVxuICAgICAgbGV0IGdyb3VwU3RhdHVzOiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyA9ICdhcHByb3ZlZCdcbiAgICAgIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3BlbmRpbmcnKSkge1xuICAgICAgICBncm91cFN0YXR1cyA9ICdwZW5kaW5nJ1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3JlamVjdGVkJykpIHtcbiAgICAgICAgZ3JvdXBTdGF0dXMgPSAncmVqZWN0ZWQnXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFuc3dlck1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICBpZDogYGFwcHJvdmFsLSR7b3RpZH1gLFxuICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShmaXJzdEl0ZW0udGltZXN0YW1wKSxcbiAgICAgICAgdXNlcjogQVNTSVNUQU5UX1VTRVIsXG4gICAgICAgIHByb2plY3RJZDogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBmaXJzdEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgY2xpZW50TmFtZTogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgd2FzSGVscGZ1bDogZmlyc3RJdGVtLndhc19oZWxwZnVsLFxuICAgICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGZpcnN0SXRlbS5hdHRhY2htZW50cywgJ2Fzc2lzdGFudCcpLFxuICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgLi4uKGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhLmlzX2RlbGV0ZWQgfSB9KSxcbiAgICAgICAgYXBwcm92YWw6IHtcbiAgICAgICAgICB0eXBlOiAnYXBwcm92YWxfcmVxdWlyZWQnLFxuICAgICAgICAgIHBlbmRpbmdfYWN0aW9uczogcGVuZGluZ0FjdGlvbnMsXG4gICAgICAgICAgdG90YWxfYWN0aW9uczogcGVuZGluZ0FjdGlvbnMubGVuZ3RoLFxuICAgICAgICAgIG9yaWdpbmFsX3RocmVhZF9pZDogb3RpZCxcbiAgICAgICAgICBzZXNzaW9uX2lkOiBmaXJzdEl0ZW0ucGVuZGluZ19hcHByb3ZhbCEuc2Vzc2lvbl9pZCB8fCAnJyxcbiAgICAgICAgICBtZXRhZGF0YTogZmlyc3RJdGVtLnBlbmRpbmdfYXBwcm92YWwhLm1ldGFkYXRhIHx8IHt9LFxuICAgICAgICAgIG1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZDogZ3JvdXAuaXRlbXMuc29tZShnaSA9PiBnaS5wZW5kaW5nX2FwcHJvdmFsPy5tYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQpLFxuICAgICAgICAgIHdhcm5pbmdfbWVzc2FnZTpcbiAgICAgICAgICAgIGdyb3VwLml0ZW1zLmZpbmQoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ud2FybmluZ19tZXNzYWdlKT8ucGVuZGluZ19hcHByb3ZhbD8ud2FybmluZ19tZXNzYWdlIHx8XG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIGFwcHJvdmFsU3RhdHVzOiBncm91cFN0YXR1cyxcbiAgICAgIH1cblxuICAgICAgbWFwcGVkSXRlbXMucHVzaChhbnN3ZXJNZXNzYWdlKVxuXG4gICAgICAvLyBJZiByZWplY3RlZCwgYWRkIHRoZSByZWplY3Rpb24gbWVzc2FnZVxuICAgICAgaWYgKGdyb3VwU3RhdHVzID09PSAncmVqZWN0ZWQnKSB7XG4gICAgICAgIGNvbnN0IHJlamVjdGVkSXRlbSA9IGdyb3VwLml0ZW1zLmZpbmQoXG4gICAgICAgICAgZ2kgPT4gZ2kuc3RhdHVzID09PSAncmVqZWN0ZWQnICYmIGdpLmFuc3dlciAmJiAhZ2kuYW5zd2VyLnN0YXJ0c1dpdGgoJ1tQZW5kaWVudGUnKVxuICAgICAgICApXG4gICAgICAgIGlmIChyZWplY3RlZEl0ZW0pIHtcbiAgICAgICAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBgJHtyZWplY3RlZEl0ZW0ubWVzc2FnZV9pZCB8fCByZWplY3RlZEl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXJlamVjdGlvbmAsXG4gICAgICAgICAgICBhZ2VudElkOiByZWplY3RlZEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgICAgICBtZXNzYWdlOiByZWplY3RlZEl0ZW0uYW5zd2VyLFxuICAgICAgICAgICAgZGF0ZTogbmV3IERhdGUocmVqZWN0ZWRJdGVtLnRpbWVzdGFtcCksXG4gICAgICAgICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgICAgICAgIHByb2plY3RJZDogcmVqZWN0ZWRJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICAgICAgcHJvamVjdE5hbWU6IHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICAgICAgY2xpZW50SWQ6IHJlamVjdGVkSXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgICAgICAgY2xpZW50TmFtZTogcmVqZWN0ZWRJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICAgIGF0dGFjaG1lbnRzOiBbXSxcbiAgICAgICAgICAgIHNvdXJjZXM6IFtdLFxuICAgICAgICAgICAgLi4uKHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHtcbiAgICAgICAgICAgICAgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhLmlzX2RlbGV0ZWQgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8g4pSA4pSAIE5vcm1hbCAobm9uLUhJVEwpIGl0ZW1zIOKUgOKUgFxuICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgaWQ6IGAke2l0ZW0ubWVzc2FnZV9pZCB8fCBpdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1xdWVzdGlvbmAsXG4gICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgbWVzc2FnZTogaXRlbS5xdWVzdGlvbixcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGl0ZW0udGltZXN0YW1wKSxcbiAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIGF0dGFjaG1lbnRzOiBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUoaXRlbS5hdHRhY2htZW50cywgJ3VzZXInKSxcbiAgICAgIHNvdXJjZXM6IG51bGwsXG4gICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAuLi4oaXRlbS5jb250ZXh0X21lc3NhZ2UgPyB7IGNvbnRleHRNZXNzYWdlOiBpdGVtLmNvbnRleHRfbWVzc2FnZSB9IDoge30pLFxuICAgIH0pXG5cbiAgICBjb25zdCBhbnN3ZXJNZXNzYWdlOiBDaGF0TWVzc2FnZSA9IHtcbiAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tYW5zd2VyYCxcbiAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICBtZXNzYWdlOiBpdGVtLmFuc3dlcixcbiAgICAgIGRhdGU6IG5ldyBEYXRlKGl0ZW0udGltZXN0YW1wKSxcbiAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgcHJvamVjdE5hbWU6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgIHdhc0hlbHBmdWw6IGl0ZW0ud2FzX2hlbHBmdWwsXG4gICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGl0ZW0uYXR0YWNobWVudHMsICdhc3Npc3RhbnQnKSxcbiAgICAgIHNvdXJjZXM6IGl0ZW0uc291cmNlcyB8fCBbXSxcbiAgICAgIHN1Z2dlc3Rpb25zOiBpdGVtLnN1Z2dlc3RfcmVwbHkgfHwgaXRlbS5zdWdnZXN0aW9ucyB8fCBbXSxcbiAgICAgIGlzX2NhbmNlbGxlZDogaXRlbS5pc19jYW5jZWxsZWQsXG4gICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgfVxuXG4gICAgbWFwcGVkSXRlbXMucHVzaChhbnN3ZXJNZXNzYWdlKVxuXG4gICAgaWYgKGl0ZW0uc3RhdHVzID09PSAncmVqZWN0ZWQnICYmIGl0ZW0uYW5zd2VyICYmICFpdGVtLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJykpIHtcbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXJlamVjdGlvbmAsXG4gICAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGl0ZW0uYW5zd2VyLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgIHNvdXJjZXM6IFtdLFxuICAgICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChpdGVtLmlzX2NhbmNlbGxlZCkge1xuICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tY2FuY2VsbGVkYCxcbiAgICAgICAgYWdlbnRJZDogaXRlbS5hZ2VudF9pZCxcbiAgICAgICAgbWVzc2FnZTogY2FuY2VsbGVkVGV4dCB8fCAnU2UgaGEgY2FuY2VsYWRvIGxhIGLDunNxdWVkYS4nLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIGNsaWVudElkOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGl0ZW0uY2xpZW50X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBpc0Zyb250ZW5kQ2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAuLi4oaXRlbS5wcm9qZWN0X21ldGFkYXRhICYmIHsgcHJvamVjdE1ldGFkYXRhOiB7IGlzX2RlbGV0ZWQ6IGl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gbWFwcGVkSXRlbXNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQSxTQUFTQSxPQUFPLFFBQVEsOEJBQThCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBRXREOztBQUVBLE9BQU8sSUFBTUMsY0FBK0IsR0FBRztFQUM3Q0MsRUFBRSxFQUFFLFdBQVc7RUFDZkMsSUFBSSxFQUFFLE1BQU07RUFDWkMsVUFBVSxlQUNSSixJQUFBO0lBQUtLLEtBQUssRUFBRTtNQUFFQyxPQUFPLEVBQUUsTUFBTTtNQUFFQyxVQUFVLEVBQUUsUUFBUTtNQUFFQyxjQUFjLEVBQUUsUUFBUTtNQUFFQyxRQUFRLEVBQUUsUUFBUTtNQUFFQyxHQUFHLEVBQUU7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
283
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb3JMb2dvIiwianN4IiwiX2pzeCIsIkFTU0lTVEFOVF9VU0VSIiwiaWQiLCJuYW1lIiwiYXZhdGFySWNvbiIsInN0eWxlIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsInBvc2l0aW9uIiwidG9wIiwiY2hpbGRyZW4iLCJnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUiLCJhdHRhY2htZW50cyIsInJvbGUiLCJBcnJheSIsImlzQXJyYXkiLCJmaWx0ZXIiLCJhdHRhY2htZW50IiwiYXR0YWNobWVudFJvbGUiLCJyZXNvbHZlQXBwcm92YWxTdGF0dXMiLCJzdGF0dXMiLCJtYXBDaGF0TWVzc2FnZXMiLCJpdGVtcyIsImN1cnJlbnRVc2VyIiwiY2FuY2VsbGVkVGV4dCIsImhpdGxHcm91cHMiLCJNYXAiLCJmb3JFYWNoIiwiaXRlbSIsImluZGV4IiwicGVuZGluZ19hcHByb3ZhbCIsIm90aWQiLCJvcmlnaW5hbF90aHJlYWRfaWQiLCJ0aHJlYWRfaWQiLCJtZXNzYWdlX2lkIiwiZXhpc3RpbmciLCJnZXQiLCJwdXNoIiwic2V0IiwiZmlyc3RJbmRleCIsImVtaXR0ZWRHcm91cHMiLCJTZXQiLCJtYXBwZWRJdGVtcyIsIl9pdGVtJHBlbmRpbmdfYXBwcm92YSIsIl9pdGVtJHByb2plY3RfbWV0YWRhdCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDIiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEyIiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0MyIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDQiLCJfaXRlbSRjbGllbnRfbWV0YWRhdGEzIiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNCIsImlzSGl0bEl0ZW0iLCJfZmlyc3RJdGVtJHByb2plY3RfbWUzIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lNCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDMiLCJfZmlyc3RJdGVtJGNsaWVudF9tZXQ0IiwiX2dyb3VwJGl0ZW1zJGZpbmQiLCJoYXMiLCJhZGQiLCJncm91cCIsImZpcnN0SXRlbSIsImlzTWFudWFsQXBwcm92YWwiLCJzb21lIiwiZ2kiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbCIsIm1hbnVhbF9hcHByb3ZhbF9kZXRlY3RlZCIsInF1ZXN0aW9uIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lIiwiX2ZpcnN0SXRlbSRwcm9qZWN0X21lMiIsIl9maXJzdEl0ZW0kY2xpZW50X21ldCIsIl9maXJzdEl0ZW0kY2xpZW50X21ldDIiLCJfb2JqZWN0U3ByZWFkIiwiY29uY2F0IiwibWVtb3J5X3Nlc3Npb25faWQiLCJhZ2VudElkIiwiYWdlbnRfaWQiLCJtZXNzYWdlIiwiZGF0ZSIsIkRhdGUiLCJ0aW1lc3RhbXAiLCJ1c2VyIiwicHJvamVjdElkIiwicHJvamVjdF9tZXRhZGF0YSIsInByb2plY3ROYW1lIiwiY2xpZW50SWQiLCJjbGllbnRfbWV0YWRhdGEiLCJjbGllbnROYW1lIiwic291cmNlcyIsInByb2plY3RNZXRhZGF0YSIsImlzX2RlbGV0ZWQiLCJjb250ZXh0X21lc3NhZ2UiLCJjb250ZXh0TWVzc2FnZSIsInBlbmRpbmdBY3Rpb25zIiwibWFwIiwidG9vbF9jYWxsX2lkIiwidG9vbF9uYW1lIiwidG9vbF9hcmdzIiwic3RhdHVzZXMiLCJncm91cFN0YXR1cyIsInMiLCJhcHByb3ZhbE1lc3NhZ2UiLCJhbnN3ZXIiLCJzdGFydHNXaXRoIiwiYW5zd2VyTWVzc2FnZSIsIndhc0hlbHBmdWwiLCJ3YXNfaGVscGZ1bCIsImFwcHJvdmFsIiwidHlwZSIsInBlbmRpbmdfYWN0aW9ucyIsInRvdGFsX2FjdGlvbnMiLCJsZW5ndGgiLCJzZXNzaW9uX2lkIiwibWV0YWRhdGEiLCJfZ2kkcGVuZGluZ19hcHByb3ZhbDIiLCJ3YXJuaW5nX21lc3NhZ2UiLCJmaW5kIiwiX2dpJHBlbmRpbmdfYXBwcm92YWwzIiwidW5kZWZpbmVkIiwiYXBwcm92YWxTdGF0dXMiLCJyZWplY3RlZEl0ZW0iLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QiLCJfcmVqZWN0ZWRJdGVtJHByb2plY3QyIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfIiwiX3JlamVjdGVkSXRlbSRjbGllbnRfMiIsInN1Z2dlc3Rpb25zIiwic3VnZ2VzdF9yZXBseSIsImlzX2NhbmNlbGxlZCIsIl9pdGVtJHByb2plY3RfbWV0YWRhdDUiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ2IiwiX2l0ZW0kY2xpZW50X21ldGFkYXRhNSIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTYiLCJfaXRlbSRwcm9qZWN0X21ldGFkYXQ3IiwiX2l0ZW0kcHJvamVjdF9tZXRhZGF0OCIsIl9pdGVtJGNsaWVudF9tZXRhZGF0YTciLCJfaXRlbSRjbGllbnRfbWV0YWRhdGE4IiwiaXNGcm9udGVuZENhbmNlbGxlZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy91dGlscy9tYXBDaGF0TWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuaW1wb3J0IHsgQ29yTG9nbyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvaWNvbnMnXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSwgQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2UsIENoYXRNZXNzYWdlVXNlciB9IGZyb20gJy4uLy4uL3R5cGVzL0NoYXQnXG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC9uby1jeWNsZSAqL1xuXG5leHBvcnQgY29uc3QgQVNTSVNUQU5UX1VTRVI6IENoYXRNZXNzYWdlVXNlciA9IHtcbiAgaWQ6ICdhc3Npc3RhbnQnLFxuICBuYW1lOiAnTWFpYScsXG4gIGF2YXRhckljb246IChcbiAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicsIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJywgcG9zaXRpb246ICdzdGlja3knLCB0b3A6IDAgfX0+XG4gICAgICA8Q29yTG9nbyAvPlxuICAgIDwvZGl2PlxuICApLFxufVxuXG5jb25zdCBnZXRNZXNzYWdlQXR0YWNobWVudHNCeVJvbGUgPSAoXG4gIGF0dGFjaG1lbnRzOiBDaGF0TWVzc2FnZUl0ZW1SZXNwb25zZVsnYXR0YWNobWVudHMnXSxcbiAgcm9sZTogJ3VzZXInIHwgJ2Fzc2lzdGFudCdcbikgPT4ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXR0YWNobWVudHMpKSByZXR1cm4gW11cblxuICByZXR1cm4gYXR0YWNobWVudHMuZmlsdGVyKGF0dGFjaG1lbnQgPT4ge1xuICAgIGNvbnN0IGF0dGFjaG1lbnRSb2xlID0gYXR0YWNobWVudD8ucm9sZSB8fCAndXNlcidcbiAgICByZXR1cm4gcm9sZSA9PT0gJ2Fzc2lzdGFudCcgPyBhdHRhY2htZW50Um9sZSA9PT0gJ2Fzc2lzdGFudCcgOiBhdHRhY2htZW50Um9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgfSlcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBmcm9udGVuZCBhcHByb3ZhbFN0YXR1cyBmcm9tIHRoZSBiYWNrZW5kIE1lbW9yeVNlc3Npb24gc3RhdHVzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQXBwcm92YWxTdGF0dXMoc3RhdHVzPzogc3RyaW5nKTogJ3BlbmRpbmcnIHwgJ2FwcHJvdmVkJyB8ICdyZWplY3RlZCcge1xuICBpZiAoc3RhdHVzID09PSAnY29tcGxldGVkJyB8fCBzdGF0dXMgPT09ICdhcHByb3ZlZCcpIHJldHVybiAnYXBwcm92ZWQnXG4gIGlmIChzdGF0dXMgPT09ICdyZWplY3RlZCcpIHJldHVybiAncmVqZWN0ZWQnXG4gIHJldHVybiAncGVuZGluZydcbn1cblxuZXhwb3J0IGNvbnN0IG1hcENoYXRNZXNzYWdlcyA9IChcbiAgaXRlbXM6IENoYXRNZXNzYWdlSXRlbVJlc3BvbnNlW10sXG4gIGN1cnJlbnRVc2VyOiBDaGF0TWVzc2FnZVVzZXIsXG4gIGNhbmNlbGxlZFRleHQ/OiBzdHJpbmdcbik6IENoYXRNZXNzYWdlW10gPT4ge1xuICAvLyDilIDilIAgMS4gR3JvdXAgSElUTCBpdGVtcyB0aGF0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbmFsX3RocmVhZF9pZCDilIDilIBcbiAgLy8gU28gbXVsdGlwbGUgTWVtb3J5U2Vzc2lvbnMgZnJvbSBhIHNpbmdsZSBISVRMIGJhdGNoIHJlbmRlciBpbiBvbmUgQXBwcm92YWxCb3guXG4gIGNvbnN0IGhpdGxHcm91cHMgPSBuZXcgTWFwPHN0cmluZywgeyBpdGVtczogQ2hhdE1lc3NhZ2VJdGVtUmVzcG9uc2VbXTsgZmlyc3RJbmRleDogbnVtYmVyIH0+KClcbiAgaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICBpZiAoIWl0ZW0ucGVuZGluZ19hcHByb3ZhbCkgcmV0dXJuXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbC5vcmlnaW5hbF90aHJlYWRfaWQgfHwgaXRlbS50aHJlYWRfaWQgfHwgaXRlbS5tZXNzYWdlX2lkXG4gICAgaWYgKCFvdGlkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4aXN0aW5nID0gaGl0bEdyb3Vwcy5nZXQob3RpZClcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGV4aXN0aW5nLml0ZW1zLnB1c2goaXRlbSlcbiAgICB9IGVsc2Uge1xuICAgICAgaGl0bEdyb3Vwcy5zZXQob3RpZCwgeyBpdGVtczogW2l0ZW1dLCBmaXJzdEluZGV4OiBpbmRleCB9KVxuICAgIH1cbiAgfSlcblxuICAvLyBUcmFjayB3aGljaCBvcmlnaW5hbF90aHJlYWRfaWRzIGhhdmUgYWxyZWFkeSBiZWVuIGVtaXR0ZWRcbiAgY29uc3QgZW1pdHRlZEdyb3VwcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgY29uc3QgbWFwcGVkSXRlbXM6IENoYXRNZXNzYWdlW10gPSBbXVxuXG4gIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgY29uc3QgaXNIaXRsSXRlbSA9ICEhaXRlbS5wZW5kaW5nX2FwcHJvdmFsXG4gICAgY29uc3Qgb3RpZCA9IGl0ZW0ucGVuZGluZ19hcHByb3ZhbD8ub3JpZ2luYWxfdGhyZWFkX2lkIHx8IGl0ZW0udGhyZWFkX2lkIHx8IGl0ZW0ubWVzc2FnZV9pZCB8fCAnJ1xuXG4gICAgLy8g4pSA4pSAIEhJVEwgaXRlbXM6IGVtaXQgb25jZSBwZXIgZ3JvdXAgKG9uIHRoZSBmaXJzdCBpdGVtIG9mIHRoZSBncm91cCkg4pSA4pSAXG4gICAgaWYgKGlzSGl0bEl0ZW0gJiYgb3RpZCkge1xuICAgICAgaWYgKGVtaXR0ZWRHcm91cHMuaGFzKG90aWQpKSByZXR1cm4gLy8gQWxyZWFkeSBlbWl0dGVkIHRoaXMgZ3JvdXBcbiAgICAgIGVtaXR0ZWRHcm91cHMuYWRkKG90aWQpXG5cbiAgICAgIGNvbnN0IGdyb3VwID0gaGl0bEdyb3Vwcy5nZXQob3RpZCkhXG4gICAgICBjb25zdCBmaXJzdEl0ZW0gPSBncm91cC5pdGVtc1swXVxuICAgICAgY29uc3QgaXNNYW51YWxBcHByb3ZhbCA9IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKVxuXG4gICAgICAvLyBPbmx5IGVtaXQgcXVlc3Rpb24gaWYgaXQgaGFzIGNvbnRlbnQgKGF2b2lkIGR1cGxpY2F0ZSBlbXB0eSBxdWVzdGlvbnMpXG4gICAgICBpZiAoZmlyc3RJdGVtLnF1ZXN0aW9uKSB7XG4gICAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICAgIGlkOiBgJHtmaXJzdEl0ZW0ubWVzc2FnZV9pZCB8fCBmaXJzdEl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LXF1ZXN0aW9uYCxcbiAgICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgICAgbWVzc2FnZTogZmlyc3RJdGVtLnF1ZXN0aW9uLFxuICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKGZpcnN0SXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgIHVzZXI6IGN1cnJlbnRVc2VyLFxuICAgICAgICAgIHByb2plY3RJZDogZmlyc3RJdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICAgIHByb2plY3ROYW1lOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBjbGllbnRJZDogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgICAgY2xpZW50TmFtZTogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGZpcnN0SXRlbS5hdHRhY2htZW50cywgJ3VzZXInKSxcbiAgICAgICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgICAgLi4uKGZpcnN0SXRlbS5jb250ZXh0X21lc3NhZ2UgPyB7IGNvbnRleHRNZXNzYWdlOiBmaXJzdEl0ZW0uY29udGV4dF9tZXNzYWdlIH0gOiB7fSksXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIC8vIE9taXRpciBlbCBtZW5zYWplIGNvbiBBcHByb3ZhbEJveCBwYXJhIGFwcm9iYWNpb25lcyBtYW51YWxlczogZGVqYSB2aXNpYmxlIHNvbG8gbGEgcHJlZ3VudGEgZGVsIHVzdWFyaW9cbiAgICAgIGlmIChpc01hbnVhbEFwcHJvdmFsKSByZXR1cm5cblxuICAgICAgLy8gQnVpbGQgbWVyZ2VkIHBlbmRpbmdfYWN0aW9ucyBmcm9tIGFsbCBpdGVtcyBpbiB0aGUgZ3JvdXBcbiAgICAgIGNvbnN0IHBlbmRpbmdBY3Rpb25zID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+ICh7XG4gICAgICAgIHRocmVhZF9pZDogZ2kudGhyZWFkX2lkIHx8ICcnLFxuICAgICAgICB0b29sX2NhbGxfaWQ6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfY2FsbF9pZCB8fCAnJyxcbiAgICAgICAgdG9vbF9uYW1lOiBnaS5wZW5kaW5nX2FwcHJvdmFsIS50b29sX25hbWUgfHwgJ3Vua25vd24nLFxuICAgICAgICB0b29sX2FyZ3M6IGdpLnBlbmRpbmdfYXBwcm92YWwhLnRvb2xfYXJncyB8fCB7fSxcbiAgICAgIH0pKVxuXG4gICAgICAvLyBSZXNvbHZlIHN0YXR1czogaWYgQU5ZIGlzIHBlbmRpbmcg4oaSIHBlbmRpbmc7IGlmIEFMTCBhcHByb3ZlZCDihpIgYXBwcm92ZWQ7IGVsc2UgcmVqZWN0ZWRcbiAgICAgIGNvbnN0IHN0YXR1c2VzID0gZ3JvdXAuaXRlbXMubWFwKGdpID0+IHJlc29sdmVBcHByb3ZhbFN0YXR1cyhnaS5zdGF0dXMpKVxuICAgICAgbGV0IGdyb3VwU3RhdHVzOiAncGVuZGluZycgfCAnYXBwcm92ZWQnIHwgJ3JlamVjdGVkJyA9ICdhcHByb3ZlZCdcbiAgICAgIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3BlbmRpbmcnKSkge1xuICAgICAgICBncm91cFN0YXR1cyA9ICdwZW5kaW5nJ1xuICAgICAgfSBlbHNlIGlmIChzdGF0dXNlcy5zb21lKHMgPT4gcyA9PT0gJ3JlamVjdGVkJykpIHtcbiAgICAgICAgZ3JvdXBTdGF0dXMgPSAncmVqZWN0ZWQnXG4gICAgICB9XG5cbiAgICAgIC8vIFRleHRvIHF1ZSBlbCBhZ2VudGUgZW52acOzIGp1bnRvIGFsIHBlZGlkbyBkZSBhcHJvYmFjacOzbi4gQ3VhbmRvIGVzdMOhXG4gICAgICAvLyBwZW5kaWVudGUgZWwgYmFja2VuZCBtYW5kYSB1biBwbGFjZWhvbGRlciBgW1BlbmRpZW50ZS4uLl1gIHF1ZSBubyBkZWJlIG1vc3RyYXJzZS5cbiAgICAgIGNvbnN0IGFwcHJvdmFsTWVzc2FnZSA9IGZpcnN0SXRlbS5hbnN3ZXIgJiYgIWZpcnN0SXRlbS5hbnN3ZXIuc3RhcnRzV2l0aCgnW1BlbmRpZW50ZScpID8gZmlyc3RJdGVtLmFuc3dlciA6ICcnXG5cbiAgICAgIGNvbnN0IGFuc3dlck1lc3NhZ2U6IENoYXRNZXNzYWdlID0ge1xuICAgICAgICBpZDogYGFwcHJvdmFsLSR7b3RpZH1gLFxuICAgICAgICBhZ2VudElkOiBmaXJzdEl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGFwcHJvdmFsTWVzc2FnZSxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoZmlyc3RJdGVtLnRpbWVzdGFtcCksXG4gICAgICAgIHVzZXI6IEFTU0lTVEFOVF9VU0VSLFxuICAgICAgICBwcm9qZWN0SWQ6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgICAgcHJvamVjdE5hbWU6IGZpcnN0SXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogZmlyc3RJdGVtLmNsaWVudF9tZXRhZGF0YT8uaWQsXG4gICAgICAgIGNsaWVudE5hbWU6IGZpcnN0SXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgIHdhc0hlbHBmdWw6IGZpcnN0SXRlbS53YXNfaGVscGZ1bCxcbiAgICAgICAgYXR0YWNobWVudHM6IGdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZShmaXJzdEl0ZW0uYXR0YWNobWVudHMsICdhc3Npc3RhbnQnKSxcbiAgICAgICAgc291cmNlczogW10sXG4gICAgICAgIC4uLihmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBmaXJzdEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0gfSksXG4gICAgICAgIGFwcHJvdmFsOiB7XG4gICAgICAgICAgdHlwZTogJ2FwcHJvdmFsX3JlcXVpcmVkJyxcbiAgICAgICAgICBwZW5kaW5nX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLFxuICAgICAgICAgIHRvdGFsX2FjdGlvbnM6IHBlbmRpbmdBY3Rpb25zLmxlbmd0aCxcbiAgICAgICAgICBvcmlnaW5hbF90aHJlYWRfaWQ6IG90aWQsXG4gICAgICAgICAgc2Vzc2lvbl9pZDogZmlyc3RJdGVtLnBlbmRpbmdfYXBwcm92YWwhLnNlc3Npb25faWQgfHwgJycsXG4gICAgICAgICAgbWV0YWRhdGE6IGZpcnN0SXRlbS5wZW5kaW5nX2FwcHJvdmFsIS5tZXRhZGF0YSB8fCB7fSxcbiAgICAgICAgICBtYW51YWxfYXBwcm92YWxfZGV0ZWN0ZWQ6IGdyb3VwLml0ZW1zLnNvbWUoZ2kgPT4gZ2kucGVuZGluZ19hcHByb3ZhbD8ubWFudWFsX2FwcHJvdmFsX2RldGVjdGVkKSxcbiAgICAgICAgICB3YXJuaW5nX21lc3NhZ2U6XG4gICAgICAgICAgICBncm91cC5pdGVtcy5maW5kKGdpID0+IGdpLnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSk/LnBlbmRpbmdfYXBwcm92YWw/Lndhcm5pbmdfbWVzc2FnZSB8fFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgICBhcHByb3ZhbFN0YXR1czogZ3JvdXBTdGF0dXMsXG4gICAgICB9XG5cbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goYW5zd2VyTWVzc2FnZSlcblxuICAgICAgLy8gSWYgcmVqZWN0ZWQsIGFkZCB0aGUgcmVqZWN0aW9uIG1lc3NhZ2VcbiAgICAgIGlmIChncm91cFN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBjb25zdCByZWplY3RlZEl0ZW0gPSBncm91cC5pdGVtcy5maW5kKFxuICAgICAgICAgIGdpID0+IGdpLnN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiBnaS5hbnN3ZXIgJiYgIWdpLmFuc3dlci5zdGFydHNXaXRoKCdbUGVuZGllbnRlJylcbiAgICAgICAgKVxuICAgICAgICBpZiAocmVqZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgbWFwcGVkSXRlbXMucHVzaCh7XG4gICAgICAgICAgICBpZDogYCR7cmVqZWN0ZWRJdGVtLm1lc3NhZ2VfaWQgfHwgcmVqZWN0ZWRJdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1yZWplY3Rpb25gLFxuICAgICAgICAgICAgYWdlbnRJZDogcmVqZWN0ZWRJdGVtLmFnZW50X2lkLFxuICAgICAgICAgICAgbWVzc2FnZTogcmVqZWN0ZWRJdGVtLmFuc3dlcixcbiAgICAgICAgICAgIGRhdGU6IG5ldyBEYXRlKHJlamVjdGVkSXRlbS50aW1lc3RhbXApLFxuICAgICAgICAgICAgdXNlcjogQVNTSVNUQU5UX1VTRVIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IHJlamVjdGVkSXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIHByb2plY3ROYW1lOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgICAgIGNsaWVudElkOiByZWplY3RlZEl0ZW0uY2xpZW50X21ldGFkYXRhPy5pZCxcbiAgICAgICAgICAgIGNsaWVudE5hbWU6IHJlamVjdGVkSXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICAgICAgICBhdHRhY2htZW50czogW10sXG4gICAgICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgICAgIC4uLihyZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7XG4gICAgICAgICAgICAgIHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiByZWplY3RlZEl0ZW0ucHJvamVjdF9tZXRhZGF0YS5pc19kZWxldGVkIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIOKUgOKUgCBOb3JtYWwgKG5vbi1ISVRMKSBpdGVtcyDilIDilIBcbiAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgIGlkOiBgJHtpdGVtLm1lc3NhZ2VfaWQgfHwgaXRlbS5tZW1vcnlfc2Vzc2lvbl9pZH0tcXVlc3Rpb25gLFxuICAgICAgYWdlbnRJZDogaXRlbS5hZ2VudF9pZCxcbiAgICAgIG1lc3NhZ2U6IGl0ZW0ucXVlc3Rpb24sXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBjdXJyZW50VXNlcixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBhdHRhY2htZW50czogZ2V0TWVzc2FnZUF0dGFjaG1lbnRzQnlSb2xlKGl0ZW0uYXR0YWNobWVudHMsICd1c2VyJyksXG4gICAgICBzb3VyY2VzOiBudWxsLFxuICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgLi4uKGl0ZW0uY29udGV4dF9tZXNzYWdlID8geyBjb250ZXh0TWVzc2FnZTogaXRlbS5jb250ZXh0X21lc3NhZ2UgfSA6IHt9KSxcbiAgICB9KVxuXG4gICAgY29uc3QgYW5zd2VyTWVzc2FnZTogQ2hhdE1lc3NhZ2UgPSB7XG4gICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LWFuc3dlcmAsXG4gICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgbWVzc2FnZTogaXRlbS5hbnN3ZXIsXG4gICAgICBkYXRlOiBuZXcgRGF0ZShpdGVtLnRpbWVzdGFtcCksXG4gICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgIHByb2plY3RJZDogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5pZCxcbiAgICAgIHByb2plY3ROYW1lOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgY2xpZW50TmFtZTogaXRlbS5jbGllbnRfbWV0YWRhdGE/Lm5hbWUsXG4gICAgICB3YXNIZWxwZnVsOiBpdGVtLndhc19oZWxwZnVsLFxuICAgICAgYXR0YWNobWVudHM6IGdldE1lc3NhZ2VBdHRhY2htZW50c0J5Um9sZShpdGVtLmF0dGFjaG1lbnRzLCAnYXNzaXN0YW50JyksXG4gICAgICBzb3VyY2VzOiBpdGVtLnNvdXJjZXMgfHwgW10sXG4gICAgICBzdWdnZXN0aW9uczogaXRlbS5zdWdnZXN0X3JlcGx5IHx8IGl0ZW0uc3VnZ2VzdGlvbnMgfHwgW10sXG4gICAgICBpc19jYW5jZWxsZWQ6IGl0ZW0uaXNfY2FuY2VsbGVkLFxuICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgIH1cblxuICAgIG1hcHBlZEl0ZW1zLnB1c2goYW5zd2VyTWVzc2FnZSlcblxuICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ3JlamVjdGVkJyAmJiBpdGVtLmFuc3dlciAmJiAhaXRlbS5hbnN3ZXIuc3RhcnRzV2l0aCgnW1BlbmRpZW50ZScpKSB7XG4gICAgICBtYXBwZWRJdGVtcy5wdXNoKHtcbiAgICAgICAgaWQ6IGAke2l0ZW0ubWVzc2FnZV9pZCB8fCBpdGVtLm1lbW9yeV9zZXNzaW9uX2lkfS1yZWplY3Rpb25gLFxuICAgICAgICBhZ2VudElkOiBpdGVtLmFnZW50X2lkLFxuICAgICAgICBtZXNzYWdlOiBpdGVtLmFuc3dlcixcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS50aW1lc3RhbXApLFxuICAgICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgYXR0YWNobWVudHM6IFtdLFxuICAgICAgICBzb3VyY2VzOiBbXSxcbiAgICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoaXRlbS5pc19jYW5jZWxsZWQpIHtcbiAgICAgIG1hcHBlZEl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogYCR7aXRlbS5tZXNzYWdlX2lkIHx8IGl0ZW0ubWVtb3J5X3Nlc3Npb25faWR9LWNhbmNlbGxlZGAsXG4gICAgICAgIGFnZW50SWQ6IGl0ZW0uYWdlbnRfaWQsXG4gICAgICAgIG1lc3NhZ2U6IGNhbmNlbGxlZFRleHQgfHwgJ1NlIGhhIGNhbmNlbGFkbyBsYSBiw7pzcXVlZGEuJyxcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoaXRlbS50aW1lc3RhbXApLFxuICAgICAgICB1c2VyOiBBU1NJU1RBTlRfVVNFUixcbiAgICAgICAgcHJvamVjdElkOiBpdGVtLnByb2plY3RfbWV0YWRhdGE/LmlkLFxuICAgICAgICBwcm9qZWN0TmFtZTogaXRlbS5wcm9qZWN0X21ldGFkYXRhPy5uYW1lLFxuICAgICAgICBjbGllbnRJZDogaXRlbS5jbGllbnRfbWV0YWRhdGE/LmlkLFxuICAgICAgICBjbGllbnROYW1lOiBpdGVtLmNsaWVudF9tZXRhZGF0YT8ubmFtZSxcbiAgICAgICAgaXNGcm9udGVuZENhbmNlbGxlZDogdHJ1ZSxcbiAgICAgICAgLi4uKGl0ZW0ucHJvamVjdF9tZXRhZGF0YSAmJiB7IHByb2plY3RNZXRhZGF0YTogeyBpc19kZWxldGVkOiBpdGVtLnByb2plY3RfbWV0YWRhdGEuaXNfZGVsZXRlZCB9IH0pLFxuICAgICAgfSlcbiAgICB9XG4g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LHNCQUFBLHVCQUFwQkEsc0JBQUEsQ0FBc0JqSSxJQUFJO1FBQ3RDVSxXQUFXLEVBQUUsRUFBRTtRQUNmNEUsT0FBTyxFQUFFO01BQUUsR0FDUDVELElBQUksQ0FBQ3VELGdCQUFnQixJQUFJO1FBQUVNLGVBQWUsRUFBRTtVQUFFQyxVQUFVLEVBQUU5RCxJQUFJLENBQUN1RCxnQkFBZ0IsQ0FBQ087UUFBVztNQUFFLENBQUMsQ0FDbkcsQ0FBQztJQUNKO0lBRUEsSUFBSTlELElBQUksQ0FBQ21HLFlBQVksRUFBRTtNQUFBLElBQUFLLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBO01BQ3JCN0YsV0FBVyxDQUFDTCxJQUFJLENBQUFtQyxhQUFBO1FBQ2R2RSxFQUFFLEtBQUF3RSxNQUFBLENBQUs3QyxJQUFJLENBQUNNLFVBQVUsSUFBSU4sSUFBSSxDQUFDOEMsaUJBQWlCLGVBQVk7UUFDNURDLE9BQU8sRUFBRS9DLElBQUksQ0FBQ2dELFFBQVE7UUFDdEJDLE9BQU8sRUFBRXJELGFBQWEsSUFBSSw4QkFBOEI7UUFDeERzRCxJQUFJLEVBQUUsSUFBSUMsSUFBSSxDQUFDbkQsSUFBSSxDQUFDb0QsU0FBUyxDQUFDO1FBQzlCQyxJQUFJLEVBQUVqRixjQUFjO1FBQ3BCa0YsU0FBUyxHQUFBa0Qsc0JBQUEsR0FBRXhHLElBQUksQ0FBQ3VELGdCQUFnQixjQUFBaUQsc0JBQUEsdUJBQXJCQSxzQkFBQSxDQUF1Qm5JLEVBQUU7UUFDcENtRixXQUFXLEdBQUFpRCxzQkFBQSxHQUFFekcsSUFBSSxDQUFDdUQsZ0JBQWdCLGNBQUFrRCxzQkFBQSx1QkFBckJBLHNCQUFBLENBQXVCbkksSUFBSTtRQUN4Q21GLFFBQVEsR0FBQWlELHNCQUFBLEdBQUUxRyxJQUFJLENBQUMwRCxlQUFlLGNBQUFnRCxzQkFBQSx1QkFBcEJBLHNCQUFBLENBQXNCckksRUFBRTtRQUNsQ3NGLFVBQVUsR0FBQWdELHNCQUFBLEdBQUUzRyxJQUFJLENBQUMwRCxlQUFlLGNBQUFpRCxzQkFBQSx1QkFBcEJBLHNCQUFBLENBQXNCckksSUFBSTtRQUN0Q3NJLG1CQUFtQixFQUFFO01BQUksR0FDckI1RyxJQUFJLENBQUN1RCxnQkFBZ0IsSUFBSTtRQUFFTSxlQUFlLEVBQUU7VUFBRUMsVUFBVSxFQUFFOUQsSUFBSSxDQUFDdUQsZ0JBQWdCLENBQUNPO1FBQVc7TUFBRSxDQUFDLENBQ25HLENBQUM7SUFDSjtFQUNGLENBQUMsQ0FBQztFQUVGLE9BQU9oRCxXQUFXO0FBQ3BCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.54-2",
3
+ "version": "2.11.54-3",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {