@projectcor/maia-components 2.11.100-2 → 2.11.100-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.
Files changed (63) hide show
  1. package/lib/App.js +2 -4
  2. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.js +14 -212
  3. package/lib/components/atoms/AgentActivityIndicator/AgentActivityIndicator.styles.js +9 -99
  4. package/lib/components/atoms/Chip/Chip.js +12 -5
  5. package/lib/components/atoms/Chip/styles.js +6 -6
  6. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.js +121 -28
  7. package/lib/components/atoms/ContextMentionEditor/ContextMentionEditor.styles.js +6 -2
  8. package/lib/components/atoms/ContextMentionPopover/ContextMentionPopover.js +12 -5
  9. package/lib/components/atoms/MAIAInput/MAIAInput.js +390 -270
  10. package/lib/components/atoms/MAIAInput/MAIAInputEditor.js +5 -8
  11. package/lib/components/atoms/MAIAInput/maiaInputLayout.js +25 -0
  12. package/lib/components/atoms/MAIAInput/styles.js +102 -86
  13. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.js +54 -41
  14. package/lib/components/atoms/SlashCommandDropdown/SlashCommandDropdown.styles.js +25 -12
  15. package/lib/components/atoms/icons/MaiaInputAddIcon.js +42 -0
  16. package/lib/components/atoms/icons/MaiaInputAttachIcon.js +29 -0
  17. package/lib/components/atoms/icons/MaiaInputAttachmentImageIcon.js +33 -0
  18. package/lib/components/atoms/icons/MaiaInputDeepSearchIcon.js +35 -0
  19. package/lib/components/atoms/icons/MaiaInputMentionIcon.js +44 -0
  20. package/lib/components/atoms/icons/MaiaInputRobotIcon.js +29 -0
  21. package/lib/components/atoms/icons/MaiaInputSendIcon.js +29 -0
  22. package/lib/components/atoms/icons/MaiaInputSlashIcon.js +29 -0
  23. package/lib/components/atoms/icons/MaiaInputWebSearchIcon.js +35 -0
  24. package/lib/components/atoms/icons/index.js +10 -1
  25. package/lib/components/molecules/AbmSection/AbmAccessibilitySection/AbmAccessibilitySection.js +4 -91
  26. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +18 -7
  27. package/lib/components/molecules/ChatAIHome/styles.js +54 -38
  28. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +44 -191
  29. package/lib/components/molecules/ChatAIMessages/newStyles.js +10 -26
  30. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +1 -2
  31. package/lib/components/molecules/ChatAIModal/components/ChatAiModalFooter/ChatAiModalFooter.js +1 -4
  32. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +1 -8
  33. package/lib/components/molecules/ChatFooter/ChatFooter.js +23 -62
  34. package/lib/components/molecules/Sidebar/Sidebar.js +14 -3
  35. package/lib/components/organisms/AbmAgentModal/AbmAgentModal.js +5 -34
  36. package/lib/hooks/useAgentModel/useCreateAgent.js +14 -40
  37. package/lib/hooks/useAgentModel/useUpdateAgent.js +11 -37
  38. package/lib/hooks/useChatManager/useChatManager.js +46 -145
  39. package/lib/hooks/useEvent.js +1 -2
  40. package/lib/hooks/useMentionPopover.js +4 -2
  41. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +23 -180
  42. package/lib/lang/br/index.js +7 -16
  43. package/lib/lang/en/index.js +7 -16
  44. package/lib/lang/es/index.js +7 -16
  45. package/lib/lang/fr/index.js +9 -15
  46. package/lib/styles/config.js +2 -2
  47. package/lib/types/agentModal.js +1 -1
  48. package/lib/types/streamActivity.js +1 -1
  49. package/lib/utils/normalizeAgentConnectors.js +3 -28
  50. package/package.json +1 -1
  51. package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.js +0 -90
  52. package/lib/components/molecules/StreamAssistantTurnTimeline/StreamAssistantTurnTimeline.styles.js +0 -19
  53. package/lib/components/molecules/StreamAssistantTurnTimeline/index.js +0 -2
  54. package/lib/dev/DevStreamTimelineDemo.js +0 -614
  55. package/lib/dev/mockStreamTimelineDemo.js +0 -417
  56. package/lib/dev/mockStreamTimelineRunner.js +0 -298
  57. package/lib/hooks/useStreamTimeline/index.js +0 -7
  58. package/lib/hooks/useStreamTimeline/streamTimelineStore.js +0 -37
  59. package/lib/services/maia/Agents/connectors.js +0 -124
  60. package/lib/types/streamTimeline.js +0 -2
  61. package/lib/utils/streamDebugLog.js +0 -169
  62. package/lib/utils/streamExecutionSteps.js +0 -96
  63. package/lib/utils/streamTimeline.js +0 -161
@@ -1,4 +1,7 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2
5
  import { forwardRef, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react';
3
6
  import { InformationCircle } from '@projectcor/icons/lib/components/InformationCircle';
4
7
  import { Tooltip } from '@projectcor/tooltipv2/lib/components/Tooltip';
@@ -50,7 +53,8 @@ export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref)
50
53
  searchPlaceholder = _ref.searchPlaceholder,
51
54
  onSearchChange = _ref.onSearchChange,
52
55
  onRequestClose = _ref.onRequestClose,
53
- hideTabPrefix = _ref.hideTabPrefix;
56
+ hideTabPrefix = _ref.hideTabPrefix,
57
+ tooltipZIndex = _ref.tooltipZIndex;
54
58
  var _useT = useT(),
55
59
  t = _useT.t;
56
60
  var _useState = useState(0),
@@ -281,8 +285,11 @@ export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref)
281
285
  $visible: tabsScroll.right,
282
286
  "aria-hidden": true
283
287
  })]
284
- }), /*#__PURE__*/_jsx(Tooltip, {
285
- title: keyboardHint || '',
288
+ }), /*#__PURE__*/_jsx(Tooltip, _objectSpread(_objectSpread({
289
+ title: keyboardHint || ''
290
+ }, tooltipZIndex != null ? {
291
+ zIndex: tooltipZIndex
292
+ } : {}), {}, {
286
293
  children: /*#__PURE__*/_jsx(SCMPKeyboardHint, {
287
294
  children: /*#__PURE__*/_jsx(InformationCircle, {
288
295
  width: 20,
@@ -290,11 +297,11 @@ export var ContextMentionPopover = /*#__PURE__*/forwardRef(function (_ref, ref)
290
297
  color: "#808080"
291
298
  })
292
299
  })
293
- })]
300
+ }))]
294
301
  }), /*#__PURE__*/_jsx(SCMPDividerWrapper, {
295
302
  children: /*#__PURE__*/_jsx(SCMPDivider, {})
296
303
  }), renderBody()]
297
304
  });
298
305
  });
299
306
  ContextMentionPopover.displayName = 'ContextMentionPopover';
300
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJTS0lMTFNfU0VBUkNIX01JTl9RVUVSWV9MRU5HVEgiLCJ1c2VUIiwiZ2V0TWVudGlvblRhYlByZWZpeCIsIkNvbnRleHRNZW50aW9uSXRlbSIsIkxvYWRlciIsIlNDTVBDb250YWluZXIiLCJTQ01QRGl2aWRlciIsIlNDTVBEaXZpZGVyV3JhcHBlciIsIlNDTVBSZWNlbnRzTGFiZWwiLCJTQ01QUmVjZW50c1JvdyIsIlNDTVBSZWNlbnRzVGl0bGUiLCJTQ01QTGlzdCIsIlNDTVBTdGF0ZVdyYXBwZXIiLCJTQ01QS2V5Ym9hcmRIaW50IiwiU0NNUFRhYiIsIlNDTVBUYWJzRmFkZSIsIlNDTVBUYWJzR3JvdXAiLCJTQ01QVGFic1JvdyIsIlNDTVBUYWJzU2Nyb2xsV3JhcCIsIlNDTVBMb2FkTW9yZVJvdyIsIlNDTVBTZWFyY2hSb3ciLCJTQ01QU2VhcmNoSW5wdXQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiVEFCX0kxOE5fS0VZUyIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwidXNlciIsIm1jcCIsInNraWxsIiwiVEFCX0ZBTExCQUNLUyIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIl9yZWYiLCJyZWYiLCJhbGxvd2VkVHlwZXMiLCJhY3RpdmVUeXBlIiwib25UeXBlQ2hhbmdlIiwiaXRlbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoaWRlUmVjZW50c0xhYmVsIiwiX3JlZiRza2lsbHNDYXRhbG9nRW1wIiwic2tpbGxzQ2F0YWxvZ0VtcHR5IiwiaGFzTW9yZSIsImlzTG9hZGluZ01vcmUiLCJvblJlYWNoTGlzdEVuZCIsInNlYXJjaFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJjb250cm9sbGVkSW5kZXgiLCJhY3RpdmVJbmRleCIsIm9uQWN0aXZlSW5kZXhDaGFuZ2UiLCJpc0tleWJvYXJkTmF2QWN0aXZlIiwib25Nb3VzZU1vdmVJbkxpc3QiLCJzdHlsZSIsImtleWJvYXJkSGludCIsInNob3dTZWFyY2hJbnB1dCIsInNlYXJjaFBsYWNlaG9sZGVyIiwib25TZWFyY2hDaGFuZ2UiLCJvblJlcXVlc3RDbG9zZSIsImhpZGVUYWJQcmVmaXgiLCJfdXNlVCIsInQiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbnRlcm5hbEluZGV4Iiwic2V0SW50ZXJuYWxJbmRleCIsImxpc3RSZWYiLCJ0YWJzU2Nyb2xsUmVmIiwiX3VzZVN0YXRlMyIsImxlZnQiLCJyaWdodCIsIl91c2VTdGF0ZTQiLCJ0YWJzU2Nyb2xsIiwic2V0VGFic1Njcm9sbCIsInVwZGF0ZVRhYnNTY3JvbGxTdGF0ZSIsImVsIiwiY3VycmVudCIsInNjcm9sbExlZnQiLCJzY3JvbGxXaWR0aCIsImNsaWVudFdpZHRoIiwiaGFzT3ZlcmZsb3ciLCJ1bmRlZmluZWQiLCJvYnNlcnZlciIsIlJlc2l6ZU9ic2VydmVyIiwib2JzZXJ2ZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwiZGlzY29ubmVjdCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJsZW5ndGgiLCJhY3RpdmVUYWIiLCJxdWVyeVNlbGVjdG9yIiwiY29uY2F0Iiwic2Nyb2xsSW50b1ZpZXciLCJibG9jayIsImlubGluZSIsInVwZGF0ZUFjdGl2ZUluZGV4IiwiaWR4IiwicHJldklzTG9hZGluZ01vcmVSZWYiLCJfaXRlbUVscyRhY3RpdmVJbmRleCIsImxpc3RFbCIsIml0ZW1FbHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiaGFuZGxlU2VhcmNoS2V5RG93biIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJpdGVtIiwiZW1wdHlNZXNzYWdlIiwidHJpbSIsInF1ZXJ5IiwiZGVmYXVsdFZhbHVlIiwic2tpbGxRdWVyeVRvb1Nob3J0IiwicmVuZGVyQm9keSIsImNoaWxkcmVuIiwib25Nb3VzZU1vdmUiLCJvblNjcm9sbCIsImN1cnJlbnRUYXJnZXQiLCJ0aHJlc2hvbGQiLCJuZWFyQm90dG9tIiwic2Nyb2xsVG9wIiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsSGVpZ2h0IiwibWFwIiwid2lkdGgiLCJhY3RpdmUiLCJvblNlbGVjdCIsIm9uSG92ZXIiLCJ0eXBlIiwiaWQiLCJzaXplIiwicm9sZSIsIm9uTW91c2VEb3duIiwic3RvcFByb3BhZ2F0aW9uIiwiYXV0b0ZvY3VzIiwidmFsdWUiLCJwbGFjZWhvbGRlciIsIm9uQ2hhbmdlIiwidGFyZ2V0Iiwib25LZXlEb3duIiwiJHNpZGUiLCIkdmlzaWJsZSIsImxhYmVsIiwiYXRQcmVmaXgiLCIkYWN0aXZlIiwidGl0bGUiLCJoZWlnaHQiLCJjb2xvciIsImRpc3BsYXlOYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvQ29udGV4dE1lbnRpb25Qb3BvdmVyL0NvbnRleHRNZW50aW9uUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ1NTUHJvcGVydGllcyxcbiAgZm9yd2FyZFJlZixcbiAgS2V5Ym9hcmRFdmVudCxcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTGF5b3V0RWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEluZm9ybWF0aW9uQ2lyY2xlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvSW5mb3JtYXRpb25DaXJjbGUnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyBTS0lMTFNfU0VBUkNIX01JTl9RVUVSWV9MRU5HVEggfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb25JdGVtIGFzIENvbnRleHRNZW50aW9uSXRlbVR5cGUgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB7IGdldE1lbnRpb25UYWJQcmVmaXggfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb250ZXh0TWVudGlvblRyaWdnZXJzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25JdGVtIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25JdGVtJ1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vTG9hZGVyJ1xuaW1wb3J0IHtcbiAgU0NNUENvbnRhaW5lcixcbiAgU0NNUERpdmlkZXIsXG4gIFNDTVBEaXZpZGVyV3JhcHBlcixcbiAgU0NNUFJlY2VudHNMYWJlbCxcbiAgU0NNUFJlY2VudHNSb3csXG4gIFNDTVBSZWNlbnRzVGl0bGUsXG4gIFNDTVBMaXN0LFxuICBTQ01QU3RhdGVXcmFwcGVyLFxuICBTQ01QS2V5Ym9hcmRIaW50LFxuICBTQ01QVGFiLFxuICBTQ01QVGFic0ZhZGUsXG4gIFNDTVBUYWJzR3JvdXAsXG4gIFNDTVBUYWJzUm93LFxuICBTQ01QVGFic1Njcm9sbFdyYXAsXG4gIFNDTVBMb2FkTW9yZVJvdyxcbiAgU0NNUFNlYXJjaFJvdyxcbiAgU0NNUFNlYXJjaElucHV0LFxufSBmcm9tICcuL0NvbnRleHRNZW50aW9uUG9wb3Zlci5zdHlsZXMnXG5cbmV4cG9ydCB0eXBlIENvbnRleHRNZW50aW9uUG9wb3ZlclByb3BzID0ge1xuICBhbGxvd2VkVHlwZXM6IENvbnRleHRFbnRpdHlUeXBlW11cbiAgYWN0aXZlVHlwZTogQ29udGV4dEVudGl0eVR5cGVcbiAgb25UeXBlQ2hhbmdlOiAodHlwZTogQ29udGV4dEVudGl0eVR5cGUpID0+IHZvaWRcbiAgaXRlbXM6IENvbnRleHRNZW50aW9uSXRlbVR5cGVbXVxuICBsb2FkaW5nOiBib29sZWFuXG4gIGVycm9yOiBib29sZWFuXG4gIGhpZGVSZWNlbnRzTGFiZWw/OiBib29sZWFuXG4gIHNraWxsc0NhdGFsb2dFbXB0eT86IGJvb2xlYW5cbiAgaGFzTW9yZT86IGJvb2xlYW5cbiAgaXNMb2FkaW5nTW9yZT86IGJvb2xlYW5cbiAgb25SZWFjaExpc3RFbmQ/OiAoKSA9PiB2b2lkXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmdcbiAgb25JdGVtU2VsZWN0ZWQ6IChpdGVtOiBDb250ZXh0TWVudGlvbkl0ZW1UeXBlKSA9PiB2b2lkXG4gIC8qKiDDjW5kaWNlIHByZXNlbGVjY2lvbmFkbyAobmF2ZWdhY2nDs24gcG9yIHRlY2xhZG8gZXh0ZXJuYSkuIFNpIG5vIHNlIHBhc2EsIHNlIG1hbmVqYSBpbnRlcm5hbWVudGUuICovXG4gIGFjdGl2ZUluZGV4PzogbnVtYmVyXG4gIG9uQWN0aXZlSW5kZXhDaGFuZ2U/OiAoaWR4OiBudW1iZXIpID0+IHZvaWRcbiAgaXNLZXlib2FyZE5hdkFjdGl2ZT86IGJvb2xlYW5cbiAgb25Nb3VzZU1vdmVJbkxpc3Q/OiAoKSA9PiB2b2lkXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllc1xuICBrZXlib2FyZEhpbnQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIE1vZG8gXCJwaW5cIiAoc2VndW5kbyBwdW50byBkZSBlbnRyYWRhLCBSRkMgwqc2KTogcmVuZGVyaXphIHVuIGlucHV0IGRlIGLDunNxdWVkYSBwcm9waW9cbiAgICogKGVuIG1lbmNpb25lcyBlbCB0ZXh0byBsbyBwcm92ZWUgZWwgZWRpdG9yKS4gSGFiaWxpdGEgbmF2ZWdhY2nDs24gcG9yIHRlY2xhZG8gaW50ZXJuYS5cbiAgICovXG4gIHNob3dTZWFyY2hJbnB1dD86IGJvb2xlYW5cbiAgLyoqIFBsYWNlaG9sZGVyIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4uICovXG4gIHNlYXJjaFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBDYW1iaW9zIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4gKGNvbnRyb2xhZG8gcG9yIGBzZWFyY2hWYWx1ZWApLiAqL1xuICBvblNlYXJjaENoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkXG4gIC8qKiBFc2NhcGUgZGVudHJvIGRlbCBpbnB1dCBkZSBiw7pzcXVlZGEgZW4gbW9kbyBwaW4uICovXG4gIG9uUmVxdWVzdENsb3NlPzogKCkgPT4gdm9pZFxuICAvKiogT2N1bHRhIGVsIHByZWZpam8gYEBgL2BAQGAgZGUgbGFzIHRhYnMgKG5vIGFwbGljYSBlbiBtb2RvIHBpbikuICovXG4gIGhpZGVUYWJQcmVmaXg/OiBib29sZWFuXG59XG5cbmNvbnN0IFRBQl9JMThOX0tFWVM6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPiA9IHtcbiAgY2xpZW50OiAnY29udGV4dE1lbnRpb24udGFicy5jbGllbnQnLFxuICBwcm9qZWN0OiAnY29udGV4dE1lbnRpb24udGFicy5wcm9qZWN0JyxcbiAgdGFzazogJ2NvbnRleHRNZW50aW9uLnRhYnMudGFzaycsXG4gIHVzZXI6ICdjb250ZXh0TWVudGlvbi50YWJzLnVzZXInLFxuICBtY3A6ICdjb250ZXh0TWVudGlvbi50YWJzLm1jcCcsXG4gIHNraWxsOiAnY29udGV4dE1lbnRpb24udGFicy5za2lsbCcsXG59XG5cbmNvbnN0IFRBQl9GQUxMQkFDS1M6IFJlY29yZDxDb250ZXh0RW50aXR5VHlwZSwgc3RyaW5nPiA9IHtcbiAgY2xpZW50OiAnQ2xpZW50ZScsXG4gIHByb2plY3Q6ICdQcm95ZWN0bycsXG4gIHRhc2s6ICdUYXJlYScsXG4gIHVzZXI6ICdVc3VhcmlvJyxcbiAgbWNwOiAnQ29uZWN0b3JlcycsXG4gIHNraWxsOiAnSGFiaWxpZGFkZXMnLFxufVxuXG5leHBvcnQgY29uc3QgQ29udGV4dE1lbnRpb25Qb3BvdmVyID0gZm9yd2FyZFJlZjxIVE1MRGl2RWxlbWVudCwgQ29udGV4dE1lbnRpb25Qb3BvdmVyUHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgYWxsb3dlZFR5cGVzLFxuICAgICAgYWN0aXZlVHlwZSxcbiAgICAgIG9uVHlwZUNoYW5nZSxcbiAgICAgIGl0ZW1zLFxuICAgICAgbG9hZGluZyxcbiAgICAgIGVycm9yLFxuICAgICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICAgIHNraWxsc0NhdGFsb2dFbXB0eSA9IGZhbHNlLFxuICAgICAgaGFzTW9yZSxcbiAgICAgIGlzTG9hZGluZ01vcmUsXG4gICAgICBvblJlYWNoTGlzdEVuZCxcbiAgICAgIHNlYXJjaFZhbHVlLFxuICAgICAgb25JdGVtU2VsZWN0ZWQsXG4gICAgICBhY3RpdmVJbmRleDogY29udHJvbGxlZEluZGV4LFxuICAgICAgb25BY3RpdmVJbmRleENoYW5nZSxcbiAgICAgIGlzS2V5Ym9hcmROYXZBY3RpdmUsXG4gICAgICBvbk1vdXNlTW92ZUluTGlzdCxcbiAgICAgIHN0eWxlLFxuICAgICAga2V5Ym9hcmRIaW50LFxuICAgICAgc2hvd1NlYXJjaElucHV0LFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgICBvblNlYXJjaENoYW5nZSxcbiAgICAgIG9uUmVxdWVzdENsb3NlLFxuICAgICAgaGlkZVRhYlByZWZpeCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICAgIGNvbnN0IFtpbnRlcm5hbEluZGV4LCBzZXRJbnRlcm5hbEluZGV4XSA9IHVzZVN0YXRlKDApXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBjb250cm9sbGVkSW5kZXggPz8gaW50ZXJuYWxJbmRleFxuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3QgdGFic1Njcm9sbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICBjb25zdCBbdGFic1Njcm9sbCwgc2V0VGFic1Njcm9sbF0gPSB1c2VTdGF0ZSh7IGxlZnQ6IGZhbHNlLCByaWdodDogZmFsc2UgfSlcblxuICAgIGNvbnN0IHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gdGFic1Njcm9sbFJlZi5jdXJyZW50XG4gICAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IGVsXG4gICAgICBjb25zdCBoYXNPdmVyZmxvdyA9IHNjcm9sbFdpZHRoID4gY2xpZW50V2lkdGggKyAxXG5cbiAgICAgIHNldFRhYnNTY3JvbGwoe1xuICAgICAgICBsZWZ0OiBoYXNPdmVyZmxvdyAmJiBzY3JvbGxMZWZ0ID4gMSxcbiAgICAgICAgcmlnaHQ6IGhhc092ZXJmbG93ICYmIHNjcm9sbExlZnQgKyBjbGllbnRXaWR0aCA8IHNjcm9sbFdpZHRoIC0gMSxcbiAgICAgIH0pXG4gICAgfSwgW10pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSB0YWJzU2Nyb2xsUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHJldHVybiB1bmRlZmluZWRcblxuICAgICAgdXBkYXRlVGFic1Njcm9sbFN0YXRlKClcblxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIodXBkYXRlVGFic1Njcm9sbFN0YXRlKVxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbClcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZSwgeyBwYXNzaXZlOiB0cnVlIH0pXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGVUYWJzU2Nyb2xsU3RhdGUpXG4gICAgICB9XG4gICAgfSwgW2FsbG93ZWRUeXBlcy5sZW5ndGgsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSB0YWJzU2Nyb2xsUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHJldHVyblxuXG4gICAgICBjb25zdCBhY3RpdmVUYWIgPSBlbC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1tZW50aW9uLXRhYj1cIiR7YWN0aXZlVHlwZX1cIl1gKVxuICAgICAgYWN0aXZlVGFiPy5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pXG4gICAgICB1cGRhdGVUYWJzU2Nyb2xsU3RhdGUoKVxuICAgIH0sIFthY3RpdmVUeXBlLCBhbGxvd2VkVHlwZXMsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZV0pXG5cbiAgICBjb25zdCB1cGRhdGVBY3RpdmVJbmRleCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChvbkFjdGl2ZUluZGV4Q2hhbmdlKSBvbkFjdGl2ZUluZGV4Q2hhbmdlKGlkeClcbiAgICAgICAgZWxzZSBzZXRJbnRlcm5hbEluZGV4KGlkeClcbiAgICAgIH0sXG4gICAgICBbb25BY3RpdmVJbmRleENoYW5nZV1cbiAgICApXG5cbiAgICAvLyBSZXNldCBhbCBjYW1iaWFyIGRlIHRhYiBvIGNhbnRpZGFkIGRlIHJlc3VsdGFkb3MgKG5vIGVuIGxvYWQgbW9yZSlcbiAgICBjb25zdCBwcmV2SXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgcHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IGlzTG9hZGluZ01vcmUgPz8gZmFsc2VcbiAgICAgIH1cbiAgICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoMClcbiAgICB9LCBbYWN0aXZlVHlwZSwgaXRlbXMubGVuZ3RoLCB1cGRhdGVBY3RpdmVJbmRleF0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdEVsID0gbGlzdFJlZi5jdXJyZW50XG4gICAgICBpZiAoIWxpc3RFbCB8fCBpdGVtcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgICAgY29uc3QgaXRlbUVscyA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tZW50aW9uLWl0ZW1dJylcbiAgICAgIGl0ZW1FbHNbYWN0aXZlSW5kZXhdPy5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSlcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGl0ZW1zLmxlbmd0aF0pXG5cbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoaXRlbXMubGVuZ3RoID4gMCA/IE1hdGgubWluKGFjdGl2ZUluZGV4ICsgMSwgaXRlbXMubGVuZ3RoIC0gMSkgOiAwKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB1cGRhdGVBY3RpdmVJbmRleChNYXRoLm1heChhY3RpdmVJbmRleCAtIDEsIDApKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2FjdGl2ZUluZGV4XVxuICAgICAgICAgIGlmIChpdGVtKSBvbkl0ZW1TZWxlY3RlZChpdGVtKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPy4oKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2l0ZW1zLCBhY3RpdmVJbmRleCwgdXBkYXRlQWN0aXZlSW5kZXgsIG9uSXRlbVNlbGVjdGVkLCBvblJlcXVlc3RDbG9zZV1cbiAgICApXG5cbiAgICBjb25zdCBlbXB0eU1lc3NhZ2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhY3RpdmVUeXBlID09PSAnc2tpbGwnKSB7XG4gICAgICAgIGlmIChzZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkuc2tpbGxXaXRoUXVlcnknLCB7XG4gICAgICAgICAgICBxdWVyeTogc2VhcmNoVmFsdWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkuc2tpbGxOb0l0ZW1zJylcbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LndpdGhRdWVyeScsIHtcbiAgICAgICAgICBxdWVyeTogc2VhcmNoVmFsdWUsXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBgTm8gaGF5IHJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVmFsdWV9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LnJlY2VudHMnLCB7IGRlZmF1bHRWYWx1ZTogJ0VtcGV6w6EgYSBlc2NyaWJpciBwYXJhIGJ1c2NhcicgfSlcbiAgICB9LCBbYWN0aXZlVHlwZSwgc2VhcmNoVmFsdWUsIHRdKVxuXG4gICAgY29uc3Qgc2tpbGxRdWVyeVRvb1Nob3J0ID1cbiAgICAgIGFjdGl2ZVR5cGUgPT09ICdza2lsbCcgJiZcbiAgICAgICFza2lsbHNDYXRhbG9nRW1wdHkgJiZcbiAgICAgIHNlYXJjaFZhbHVlLnRyaW0oKS5sZW5ndGggPiAwICYmXG4gICAgICBzZWFyY2hWYWx1ZS50cmltKCkubGVuZ3RoIDwgU0tJTExTX1NFQVJDSF9NSU5fUVVFUllfTEVOR1RIXG5cbiAgICBjb25zdCByZW5kZXJCb2R5ID0gKCkgPT4ge1xuICAgICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPnt0KCdjb250ZXh0TWVudGlvbi5sb2FkaW5nJywgeyBkZWZhdWx0VmFsdWU6ICdCdXNjYW5kby4uLicgfSl9PC9TQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgfVxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgICAgICB7dCgnY29udGV4dE1lbnRpb24uZXJyb3InLCB7IGRlZmF1bHRWYWx1ZTogJ0h1Ym8gdW4gcHJvYmxlbWEgYWwgYnVzY2FyJyB9KX1cbiAgICAgICAgICA8L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChza2lsbFF1ZXJ5VG9vU2hvcnQpIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPnt0KCdjb250ZXh0TWVudGlvbi5za2lsbFF1ZXJ5VG9vU2hvcnQnKX08L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICB9XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiA8U0NNUFN0YXRlV3JhcHBlcj57ZW1wdHlNZXNzYWdlfTwvU0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01QTGlzdFxuICAgICAgICAgIHJlZj17bGlzdFJlZn1cbiAgICAgICAgICBkYXRhLWtleWJvYXJkLW5hdj17aXNLZXlib2FyZE5hdkFjdGl2ZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgb25Nb3VzZU1vdmU9e29uTW91c2VNb3ZlSW5MaXN0fVxuICAgICAgICAgIG9uU2Nyb2xsPXtlID0+IHtcbiAgICAgICAgICAgIGlmICghb25SZWFjaExpc3RFbmQgfHwgIWhhc01vcmUgfHwgaXNMb2FkaW5nTW9yZSkgcmV0dXJuXG4gICAgICAgICAgICBjb25zdCBlbCA9IGUuY3VycmVudFRhcmdldFxuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMjRcbiAgICAgICAgICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxUb3AgKyBlbC5jbGllbnRIZWlnaHQgPj0gZWwuc2Nyb2xsSGVpZ2h0IC0gdGhyZXNob2xkXG4gICAgICAgICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICAgICAgICBvblJlYWNoTGlzdEVuZCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHshc2VhcmNoVmFsdWUudHJpbSgpICYmIGFjdGl2ZVR5cGUgIT09ICd1c2VyJyAmJiAhaGlkZVJlY2VudHNMYWJlbCA/IChcbiAgICAgICAgICAgIDxTQ01QUmVjZW50c1Jvdz5cbiAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzTGFiZWw+e3QoJ2NvbnRleHRNZW50aW9uLnJlY2VudHNUaXRsZScsIHsgZGVmYXVsdFZhbHVlOiAnUmVjaWVudGVzJyB9KX08L1NDTVBSZWNlbnRzTGFiZWw+XG4gICAgICAgICAgICAgIDwvU0NNUFJlY2VudHNUaXRsZT5cbiAgICAgICAgICAgIDwvU0NNUFJlY2VudHNSb3c+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17YCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YH0gZGF0YS1tZW50aW9uLWl0ZW0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgICAgICAgPENvbnRleHRNZW50aW9uSXRlbVxuICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtpZHggPT09IGFjdGl2ZUluZGV4fVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkl0ZW1TZWxlY3RlZH1cbiAgICAgICAgICAgICAgICBvbkhvdmVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWlzS2V5Ym9hcmROYXZBY3RpdmUpIHVwZGF0ZUFjdGl2ZUluZGV4KGlkeClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAge2lzTG9hZGluZ01vcmUgPyAoXG4gICAgICAgICAgICA8U0NNUExvYWRNb3JlUm93PlxuICAgICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBMb2FkTW9yZVJvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01QTGlzdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBDb250YWluZXJcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ29udGV4dCBtZW50aW9uIHBpY2tlclwiXG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIHtzaG93U2VhcmNoSW5wdXQgPyAoXG4gICAgICAgICAgPFNDTVBTZWFyY2hSb3c+XG4gICAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L25vLWF1dG9mb2N1cyAqL31cbiAgICAgICAgICAgIDxTQ01QU2VhcmNoSW5wdXRcbiAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uU2VhcmNoQ2hhbmdlPy4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZVNlYXJjaEtleURvd259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NNUFNlYXJjaFJvdz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ01QVGFic1Jvdz5cbiAgICAgICAgICA8U0NNUFRhYnNTY3JvbGxXcmFwPlxuICAgICAgICAgICAgPFNDTVBUYWJzRmFkZSAkc2lkZT1cImxlZnRcIiAkdmlzaWJsZT17dGFic1Njcm9sbC5sZWZ0fSBhcmlhLWhpZGRlbiAvPlxuICAgICAgICAgICAgPFNDTVBUYWJzR3JvdXAgcmVmPXt0YWJzU2Nyb2xsUmVmfT5cbiAgICAgICAgICAgICAge2FsbG93ZWRUeXBlcy5tYXAodHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0KFRBQl9JMThOX0tFWVNbdHlwZV0sIHsgZGVmYXVsdFZhbHVlOiBUQUJfRkFMTEJBQ0tTW3R5cGVdIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgYXRQcmVmaXggPSBoaWRlVGFiUHJlZml4ID8gJycgOiBnZXRNZW50aW9uVGFiUHJlZml4KHR5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxTQ01QVGFiXG4gICAgICAgICAgICAgICAgICAgIGtleT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtbWVudGlvbi10YWI9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2F0UHJlZml4ID8gYCR7YXRQcmVmaXh9ICR7bGFiZWx9YCA6IGxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXt0eXBlID09PSBhY3RpdmVUeXBlfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIG9uVHlwZUNoYW5nZSh0eXBlKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YXRQcmVmaXh9XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvU0NNUFRhYj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9TQ01QVGFic0dyb3VwPlxuICAgICAgICAgICAgPFNDTVBUYWJzRmFkZSAkc2lkZT1cInJpZ2h0XCIgJHZpc2libGU9e3RhYnNTY3JvbGwucmlnaHR9IGFyaWEtaGlkZGVuIC8+XG4gICAgICAgICAgPC9TQ01QVGFic1Njcm9sbFdyYXA+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2tleWJvYXJkSGludCB8fCAnJ30+XG4gICAgICAgICAgICA8U0NNUEtleWJvYXJkSGludD5cbiAgICAgICAgICAgICAgPEluZm9ybWF0aW9uQ2lyY2xlIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gY29sb3I9XCIjODA4MDgwXCIgLz5cbiAgICAgICAgICAgIDwvU0NNUEtleWJvYXJkSGludD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgIDwvU0NNUFRhYnNSb3c+XG4gICAgICAgIDxTQ01QRGl2aWRlcldyYXBwZXI+XG4gICAgICAgICAgPFNDTVBEaXZpZGVyIC8+XG4gICAgICAgIDwvU0NNUERpdmlkZXJXcmFwcGVyPlxuICAgICAgICB7cmVuZGVyQm9keSgpfVxuICAgICAgPC9TQ01QQ29udGFpbmVyPlxuICAgIClcbiAgfVxuKVxuXG5Db250ZXh0TWVudGlvblBvcG92ZXIuZGlzcGxheU5hbWUgPSAnQ29udGV4dE1lbnRpb25Qb3BvdmVyJ1xuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FFRUEsVUFBVSxFQUVWQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsZUFBZSxFQUNmQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFDZCxTQUFTQyxpQkFBaUIsUUFBUSxvREFBb0Q7QUFDdEYsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyw4QkFBOEIsUUFBUSwyQkFBMkI7QUFDMUUsU0FBU0MsSUFBSSxRQUFRLHFCQUFxQjtBQUUxQyxTQUFTQyxtQkFBbUIsUUFBUSx1Q0FBdUM7QUFDM0UsU0FBU0Msa0JBQWtCLFFBQVEsdUJBQXVCO0FBQzFELFNBQVNDLE1BQU0sUUFBUSxXQUFXO0FBQ2xDLFNBQ0VDLGFBQWEsRUFDYkMsV0FBVyxFQUNYQyxrQkFBa0IsRUFDbEJDLGdCQUFnQixFQUNoQkMsY0FBYyxFQUNkQyxnQkFBZ0IsRUFDaEJDLFFBQVEsRUFDUkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZDLGFBQWEsRUFDYkMsZUFBZSxRQUNWLGdDQUFnQztBQUFBLFNBQUFDLEdBQUEsSUFBQUMsSUFBQSxFQUFBQyxJQUFBLElBQUFDLEtBQUE7QUFzQ3ZDLElBQU1DLGFBQWdELEdBQUc7RUFDdkRDLE1BQU0sRUFBRSw0QkFBNEI7RUFDcENDLE9BQU8sRUFBRSw2QkFBNkI7RUFDdENDLElBQUksRUFBRSwwQkFBMEI7RUFDaENDLElBQUksRUFBRSwwQkFBMEI7RUFDaENDLEdBQUcsRUFBRSx5QkFBeUI7RUFDOUJD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
307
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmb3J3YXJkUmVmIiwidXNlQ2FsbGJhY2siLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJJbmZvcm1hdGlvbkNpcmNsZSIsIlRvb2x0aXAiLCJTS0lMTFNfU0VBUkNIX01JTl9RVUVSWV9MRU5HVEgiLCJ1c2VUIiwiZ2V0TWVudGlvblRhYlByZWZpeCIsIkNvbnRleHRNZW50aW9uSXRlbSIsIkxvYWRlciIsIlNDTVBDb250YWluZXIiLCJTQ01QRGl2aWRlciIsIlNDTVBEaXZpZGVyV3JhcHBlciIsIlNDTVBSZWNlbnRzTGFiZWwiLCJTQ01QUmVjZW50c1JvdyIsIlNDTVBSZWNlbnRzVGl0bGUiLCJTQ01QTGlzdCIsIlNDTVBTdGF0ZVdyYXBwZXIiLCJTQ01QS2V5Ym9hcmRIaW50IiwiU0NNUFRhYiIsIlNDTVBUYWJzRmFkZSIsIlNDTVBUYWJzR3JvdXAiLCJTQ01QVGFic1JvdyIsIlNDTVBUYWJzU2Nyb2xsV3JhcCIsIlNDTVBMb2FkTW9yZVJvdyIsIlNDTVBTZWFyY2hSb3ciLCJTQ01QU2VhcmNoSW5wdXQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiVEFCX0kxOE5fS0VZUyIsImNsaWVudCIsInByb2plY3QiLCJ0YXNrIiwidXNlciIsIm1jcCIsInNraWxsIiwiVEFCX0ZBTExCQUNLUyIsIkNvbnRleHRNZW50aW9uUG9wb3ZlciIsIl9yZWYiLCJyZWYiLCJhbGxvd2VkVHlwZXMiLCJhY3RpdmVUeXBlIiwib25UeXBlQ2hhbmdlIiwiaXRlbXMiLCJsb2FkaW5nIiwiZXJyb3IiLCJoaWRlUmVjZW50c0xhYmVsIiwiX3JlZiRza2lsbHNDYXRhbG9nRW1wIiwic2tpbGxzQ2F0YWxvZ0VtcHR5IiwiaGFzTW9yZSIsImlzTG9hZGluZ01vcmUiLCJvblJlYWNoTGlzdEVuZCIsInNlYXJjaFZhbHVlIiwib25JdGVtU2VsZWN0ZWQiLCJjb250cm9sbGVkSW5kZXgiLCJhY3RpdmVJbmRleCIsIm9uQWN0aXZlSW5kZXhDaGFuZ2UiLCJpc0tleWJvYXJkTmF2QWN0aXZlIiwib25Nb3VzZU1vdmVJbkxpc3QiLCJzdHlsZSIsImtleWJvYXJkSGludCIsInNob3dTZWFyY2hJbnB1dCIsInNlYXJjaFBsYWNlaG9sZGVyIiwib25TZWFyY2hDaGFuZ2UiLCJvblJlcXVlc3RDbG9zZSIsImhpZGVUYWJQcmVmaXgiLCJ0b29sdGlwWkluZGV4IiwiX3VzZVQiLCJ0IiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaW50ZXJuYWxJbmRleCIsInNldEludGVybmFsSW5kZXgiLCJsaXN0UmVmIiwidGFic1Njcm9sbFJlZiIsIl91c2VTdGF0ZTMiLCJsZWZ0IiwicmlnaHQiLCJfdXNlU3RhdGU0IiwidGFic1Njcm9sbCIsInNldFRhYnNTY3JvbGwiLCJ1cGRhdGVUYWJzU2Nyb2xsU3RhdGUiLCJlbCIsImN1cnJlbnQiLCJzY3JvbGxMZWZ0Iiwic2Nyb2xsV2lkdGgiLCJjbGllbnRXaWR0aCIsImhhc092ZXJmbG93IiwidW5kZWZpbmVkIiwib2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJhZGRFdmVudExpc3RlbmVyIiwicGFzc2l2ZSIsImRpc2Nvbm5lY3QiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwibGVuZ3RoIiwiYWN0aXZlVGFiIiwicXVlcnlTZWxlY3RvciIsImNvbmNhdCIsInNjcm9sbEludG9WaWV3IiwiYmxvY2siLCJpbmxpbmUiLCJ1cGRhdGVBY3RpdmVJbmRleCIsImlkeCIsInByZXZJc0xvYWRpbmdNb3JlUmVmIiwiX2l0ZW1FbHMkYWN0aXZlSW5kZXgiLCJsaXN0RWwiLCJpdGVtRWxzIiwicXVlcnlTZWxlY3RvckFsbCIsImhhbmRsZVNlYXJjaEtleURvd24iLCJlIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJNYXRoIiwibWluIiwibWF4IiwiaXRlbSIsImVtcHR5TWVzc2FnZSIsInRyaW0iLCJxdWVyeSIsImRlZmF1bHRWYWx1ZSIsInNraWxsUXVlcnlUb29TaG9ydCIsInJlbmRlckJvZHkiLCJjaGlsZHJlbiIsIm9uTW91c2VNb3ZlIiwib25TY3JvbGwiLCJjdXJyZW50VGFyZ2V0IiwidGhyZXNob2xkIiwibmVhckJvdHRvbSIsInNjcm9sbFRvcCIsImNsaWVudEhlaWdodCIsInNjcm9sbEhlaWdodCIsIm1hcCIsIndpZHRoIiwiYWN0aXZlIiwib25TZWxlY3QiLCJvbkhvdmVyIiwidHlwZSIsImlkIiwic2l6ZSIsInJvbGUiLCJvbk1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImF1dG9Gb2N1cyIsInZhbHVlIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsInRhcmdldCIsIm9uS2V5RG93biIsIiRzaWRlIiwiJHZpc2libGUiLCJsYWJlbCIsImF0UHJlZml4IiwiJGFjdGl2ZSIsIl9vYmplY3RTcHJlYWQiLCJ0aXRsZSIsInpJbmRleCIsImhlaWdodCIsImNvbG9yIiwiZGlzcGxheU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9Db250ZXh0TWVudGlvblBvcG92ZXIvQ29udGV4dE1lbnRpb25Qb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDU1NQcm9wZXJ0aWVzLFxuICBmb3J3YXJkUmVmLFxuICBLZXlib2FyZEV2ZW50LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSW5mb3JtYXRpb25DaXJjbGUgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9JbmZvcm1hdGlvbkNpcmNsZSdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IFNLSUxMU19TRUFSQ0hfTUlOX1FVRVJZX0xFTkdUSCB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25maWcnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbkl0ZW0gYXMgQ29udGV4dE1lbnRpb25JdGVtVHlwZSB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZ2V0TWVudGlvblRhYlByZWZpeCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbnRleHRNZW50aW9uVHJpZ2dlcnMnXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi9Db250ZXh0TWVudGlvbkl0ZW0nXG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi9Mb2FkZXInXG5pbXBvcnQge1xuICBTQ01QQ29udGFpbmVyLFxuICBTQ01QRGl2aWRlcixcbiAgU0NNUERpdmlkZXJXcmFwcGVyLFxuICBTQ01QUmVjZW50c0xhYmVsLFxuICBTQ01QUmVjZW50c1JvdyxcbiAgU0NNUFJlY2VudHNUaXRsZSxcbiAgU0NNUExpc3QsXG4gIFNDTVBTdGF0ZVdyYXBwZXIsXG4gIFNDTVBLZXlib2FyZEhpbnQsXG4gIFNDTVBUYWIsXG4gIFNDTVBUYWJzRmFkZSxcbiAgU0NNUFRhYnNHcm91cCxcbiAgU0NNUFRhYnNSb3csXG4gIFNDTVBUYWJzU2Nyb2xsV3JhcCxcbiAgU0NNUExvYWRNb3JlUm93LFxuICBTQ01QU2VhcmNoUm93LFxuICBTQ01QU2VhcmNoSW5wdXQsXG59IGZyb20gJy4vQ29udGV4dE1lbnRpb25Qb3BvdmVyLnN0eWxlcydcblxuZXhwb3J0IHR5cGUgQ29udGV4dE1lbnRpb25Qb3BvdmVyUHJvcHMgPSB7XG4gIGFsbG93ZWRUeXBlczogQ29udGV4dEVudGl0eVR5cGVbXVxuICBhY3RpdmVUeXBlOiBDb250ZXh0RW50aXR5VHlwZVxuICBvblR5cGVDaGFuZ2U6ICh0eXBlOiBDb250ZXh0RW50aXR5VHlwZSkgPT4gdm9pZFxuICBpdGVtczogQ29udGV4dE1lbnRpb25JdGVtVHlwZVtdXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgZXJyb3I6IGJvb2xlYW5cbiAgaGlkZVJlY2VudHNMYWJlbD86IGJvb2xlYW5cbiAgc2tpbGxzQ2F0YWxvZ0VtcHR5PzogYm9vbGVhblxuICBoYXNNb3JlPzogYm9vbGVhblxuICBpc0xvYWRpbmdNb3JlPzogYm9vbGVhblxuICBvblJlYWNoTGlzdEVuZD86ICgpID0+IHZvaWRcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xuICBvbkl0ZW1TZWxlY3RlZDogKGl0ZW06IENvbnRleHRNZW50aW9uSXRlbVR5cGUpID0+IHZvaWRcbiAgLyoqIMONbmRpY2UgcHJlc2VsZWNjaW9uYWRvIChuYXZlZ2FjacOzbiBwb3IgdGVjbGFkbyBleHRlcm5hKS4gU2kgbm8gc2UgcGFzYSwgc2UgbWFuZWphIGludGVybmFtZW50ZS4gKi9cbiAgYWN0aXZlSW5kZXg/OiBudW1iZXJcbiAgb25BY3RpdmVJbmRleENoYW5nZT86IChpZHg6IG51bWJlcikgPT4gdm9pZFxuICBpc0tleWJvYXJkTmF2QWN0aXZlPzogYm9vbGVhblxuICBvbk1vdXNlTW92ZUluTGlzdD86ICgpID0+IHZvaWRcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzXG4gIGtleWJvYXJkSGludD86IHN0cmluZ1xuICAvKipcbiAgICogTW9kbyBcInBpblwiIChzZWd1bmRvIHB1bnRvIGRlIGVudHJhZGEsIFJGQyDCpzYpOiByZW5kZXJpemEgdW4gaW5wdXQgZGUgYsO6c3F1ZWRhIHByb3Bpb1xuICAgKiAoZW4gbWVuY2lvbmVzIGVsIHRleHRvIGxvIHByb3ZlZSBlbCBlZGl0b3IpLiBIYWJpbGl0YSBuYXZlZ2FjacOzbiBwb3IgdGVjbGFkbyBpbnRlcm5hLlxuICAgKi9cbiAgc2hvd1NlYXJjaElucHV0PzogYm9vbGVhblxuICAvKiogUGxhY2Vob2xkZXIgZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbi4gKi9cbiAgc2VhcmNoUGxhY2Vob2xkZXI/OiBzdHJpbmdcbiAgLyoqIENhbWJpb3MgZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbiAoY29udHJvbGFkbyBwb3IgYHNlYXJjaFZhbHVlYCkuICovXG4gIG9uU2VhcmNoQ2hhbmdlPzogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWRcbiAgLyoqIEVzY2FwZSBkZW50cm8gZGVsIGlucHV0IGRlIGLDunNxdWVkYSBlbiBtb2RvIHBpbi4gKi9cbiAgb25SZXF1ZXN0Q2xvc2U/OiAoKSA9PiB2b2lkXG4gIC8qKiBPY3VsdGEgZWwgcHJlZmlqbyBgQGAvYEBAYCBkZSBsYXMgdGFicyAobm8gYXBsaWNhIGVuIG1vZG8gcGluKS4gKi9cbiAgaGlkZVRhYlByZWZpeD86IGJvb2xlYW5cbiAgLyoqIHotaW5kZXggZGVsIHRvb2x0aXAgZGVsIMOtY29ubyBkZSBpbmZvICh0YXNrIHBhbmVsIGVsZXZhIE1BSUEgYSB+OTgwMDAwMSkuICovXG4gIHRvb2x0aXBaSW5kZXg/OiBudW1iZXJcbn1cblxuY29uc3QgVEFCX0kxOE5fS0VZUzogUmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+ID0ge1xuICBjbGllbnQ6ICdjb250ZXh0TWVudGlvbi50YWJzLmNsaWVudCcsXG4gIHByb2plY3Q6ICdjb250ZXh0TWVudGlvbi50YWJzLnByb2plY3QnLFxuICB0YXNrOiAnY29udGV4dE1lbnRpb24udGFicy50YXNrJyxcbiAgdXNlcjogJ2NvbnRleHRNZW50aW9uLnRhYnMudXNlcicsXG4gIG1jcDogJ2NvbnRleHRNZW50aW9uLnRhYnMubWNwJyxcbiAgc2tpbGw6ICdjb250ZXh0TWVudGlvbi50YWJzLnNraWxsJyxcbn1cblxuY29uc3QgVEFCX0ZBTExCQUNLUzogUmVjb3JkPENvbnRleHRFbnRpdHlUeXBlLCBzdHJpbmc+ID0ge1xuICBjbGllbnQ6ICdDbGllbnRlJyxcbiAgcHJvamVjdDogJ1Byb3llY3RvJyxcbiAgdGFzazogJ1RhcmVhJyxcbiAgdXNlcjogJ1VzdWFyaW8nLFxuICBtY3A6ICdDb25lY3RvcmVzJyxcbiAgc2tpbGw6ICdIYWJpbGlkYWRlcycsXG59XG5cbmV4cG9ydCBjb25zdCBDb250ZXh0TWVudGlvblBvcG92ZXIgPSBmb3J3YXJkUmVmPEhUTUxEaXZFbGVtZW50LCBDb250ZXh0TWVudGlvblBvcG92ZXJQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBhbGxvd2VkVHlwZXMsXG4gICAgICBhY3RpdmVUeXBlLFxuICAgICAgb25UeXBlQ2hhbmdlLFxuICAgICAgaXRlbXMsXG4gICAgICBsb2FkaW5nLFxuICAgICAgZXJyb3IsXG4gICAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgICAgc2tpbGxzQ2F0YWxvZ0VtcHR5ID0gZmFsc2UsXG4gICAgICBoYXNNb3JlLFxuICAgICAgaXNMb2FkaW5nTW9yZSxcbiAgICAgIG9uUmVhY2hMaXN0RW5kLFxuICAgICAgc2VhcmNoVmFsdWUsXG4gICAgICBvbkl0ZW1TZWxlY3RlZCxcbiAgICAgIGFjdGl2ZUluZGV4OiBjb250cm9sbGVkSW5kZXgsXG4gICAgICBvbkFjdGl2ZUluZGV4Q2hhbmdlLFxuICAgICAgaXNLZXlib2FyZE5hdkFjdGl2ZSxcbiAgICAgIG9uTW91c2VNb3ZlSW5MaXN0LFxuICAgICAgc3R5bGUsXG4gICAgICBrZXlib2FyZEhpbnQsXG4gICAgICBzaG93U2VhcmNoSW5wdXQsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcixcbiAgICAgIG9uU2VhcmNoQ2hhbmdlLFxuICAgICAgb25SZXF1ZXN0Q2xvc2UsXG4gICAgICBoaWRlVGFiUHJlZml4LFxuICAgICAgdG9vbHRpcFpJbmRleCxcbiAgICB9LFxuICAgIHJlZlxuICApID0+IHtcbiAgICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICAgIGNvbnN0IFtpbnRlcm5hbEluZGV4LCBzZXRJbnRlcm5hbEluZGV4XSA9IHVzZVN0YXRlKDApXG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSBjb250cm9sbGVkSW5kZXggPz8gaW50ZXJuYWxJbmRleFxuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3QgdGFic1Njcm9sbFJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbClcbiAgICBjb25zdCBbdGFic1Njcm9sbCwgc2V0VGFic1Njcm9sbF0gPSB1c2VTdGF0ZSh7IGxlZnQ6IGZhbHNlLCByaWdodDogZmFsc2UgfSlcblxuICAgIGNvbnN0IHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gdGFic1Njcm9sbFJlZi5jdXJyZW50XG4gICAgICBpZiAoIWVsKSByZXR1cm5cblxuICAgICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxXaWR0aCwgY2xpZW50V2lkdGggfSA9IGVsXG4gICAgICBjb25zdCBoYXNPdmVyZmxvdyA9IHNjcm9sbFdpZHRoID4gY2xpZW50V2lkdGggKyAxXG5cbiAgICAgIHNldFRhYnNTY3JvbGwoe1xuICAgICAgICBsZWZ0OiBoYXNPdmVyZmxvdyAmJiBzY3JvbGxMZWZ0ID4gMSxcbiAgICAgICAgcmlnaHQ6IGhhc092ZXJmbG93ICYmIHNjcm9sbExlZnQgKyBjbGllbnRXaWR0aCA8IHNjcm9sbFdpZHRoIC0gMSxcbiAgICAgIH0pXG4gICAgfSwgW10pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSB0YWJzU2Nyb2xsUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHJldHVybiB1bmRlZmluZWRcblxuICAgICAgdXBkYXRlVGFic1Njcm9sbFN0YXRlKClcblxuICAgICAgY29uc3Qgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIodXBkYXRlVGFic1Njcm9sbFN0YXRlKVxuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbClcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZSwgeyBwYXNzaXZlOiB0cnVlIH0pXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKVxuICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB1cGRhdGVUYWJzU2Nyb2xsU3RhdGUpXG4gICAgICB9XG4gICAgfSwgW2FsbG93ZWRUeXBlcy5sZW5ndGgsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZV0pXG5cbiAgICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZWwgPSB0YWJzU2Nyb2xsUmVmLmN1cnJlbnRcbiAgICAgIGlmICghZWwpIHJldHVyblxuXG4gICAgICBjb25zdCBhY3RpdmVUYWIgPSBlbC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1tZW50aW9uLXRhYj1cIiR7YWN0aXZlVHlwZX1cIl1gKVxuICAgICAgYWN0aXZlVGFiPy5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ25lYXJlc3QnIH0pXG4gICAgICB1cGRhdGVUYWJzU2Nyb2xsU3RhdGUoKVxuICAgIH0sIFthY3RpdmVUeXBlLCBhbGxvd2VkVHlwZXMsIHVwZGF0ZVRhYnNTY3JvbGxTdGF0ZV0pXG5cbiAgICBjb25zdCB1cGRhdGVBY3RpdmVJbmRleCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGlkeDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChvbkFjdGl2ZUluZGV4Q2hhbmdlKSBvbkFjdGl2ZUluZGV4Q2hhbmdlKGlkeClcbiAgICAgICAgZWxzZSBzZXRJbnRlcm5hbEluZGV4KGlkeClcbiAgICAgIH0sXG4gICAgICBbb25BY3RpdmVJbmRleENoYW5nZV1cbiAgICApXG5cbiAgICAvLyBSZXNldCBhbCBjYW1iaWFyIGRlIHRhYiBvIGNhbnRpZGFkIGRlIHJlc3VsdGFkb3MgKG5vIGVuIGxvYWQgbW9yZSlcbiAgICBjb25zdCBwcmV2SXNMb2FkaW5nTW9yZVJlZiA9IHVzZVJlZihmYWxzZSlcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgcHJldklzTG9hZGluZ01vcmVSZWYuY3VycmVudCA9IGlzTG9hZGluZ01vcmUgPz8gZmFsc2VcbiAgICAgIH1cbiAgICB9LCBbaXNMb2FkaW5nTW9yZV0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByZXZJc0xvYWRpbmdNb3JlUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoMClcbiAgICB9LCBbYWN0aXZlVHlwZSwgaXRlbXMubGVuZ3RoLCB1cGRhdGVBY3RpdmVJbmRleF0pXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdEVsID0gbGlzdFJlZi5jdXJyZW50XG4gICAgICBpZiAoIWxpc3RFbCB8fCBpdGVtcy5sZW5ndGggPT09IDApIHJldHVyblxuICAgICAgY29uc3QgaXRlbUVscyA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1tZW50aW9uLWl0ZW1dJylcbiAgICAgIGl0ZW1FbHNbYWN0aXZlSW5kZXhdPy5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcgfSlcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGl0ZW1zLmxlbmd0aF0pXG5cbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAoZS5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgdXBkYXRlQWN0aXZlSW5kZXgoaXRlbXMubGVuZ3RoID4gMCA/IE1hdGgubWluKGFjdGl2ZUluZGV4ICsgMSwgaXRlbXMubGVuZ3RoIC0gMSkgOiAwKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICB1cGRhdGVBY3RpdmVJbmRleChNYXRoLm1heChhY3RpdmVJbmRleCAtIDEsIDApKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2FjdGl2ZUluZGV4XVxuICAgICAgICAgIGlmIChpdGVtKSBvbkl0ZW1TZWxlY3RlZChpdGVtKVxuICAgICAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPy4oKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW2l0ZW1zLCBhY3RpdmVJbmRleCwgdXBkYXRlQWN0aXZlSW5kZXgsIG9uSXRlbVNlbGVjdGVkLCBvblJlcXVlc3RDbG9zZV1cbiAgICApXG5cbiAgICBjb25zdCBlbXB0eU1lc3NhZ2UgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChhY3RpdmVUeXBlID09PSAnc2tpbGwnKSB7XG4gICAgICAgIGlmIChzZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkuc2tpbGxXaXRoUXVlcnknLCB7XG4gICAgICAgICAgICBxdWVyeTogc2VhcmNoVmFsdWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdCgnY29udGV4dE1lbnRpb24uZW1wdHkuc2tpbGxOb0l0ZW1zJylcbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LndpdGhRdWVyeScsIHtcbiAgICAgICAgICBxdWVyeTogc2VhcmNoVmFsdWUsXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBgTm8gaGF5IHJlc3VsdGFkb3MgcGFyYSBcIiR7c2VhcmNoVmFsdWV9XCJgLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIHQoJ2NvbnRleHRNZW50aW9uLmVtcHR5LnJlY2VudHMnLCB7IGRlZmF1bHRWYWx1ZTogJ0VtcGV6w6EgYSBlc2NyaWJpciBwYXJhIGJ1c2NhcicgfSlcbiAgICB9LCBbYWN0aXZlVHlwZSwgc2VhcmNoVmFsdWUsIHRdKVxuXG4gICAgY29uc3Qgc2tpbGxRdWVyeVRvb1Nob3J0ID1cbiAgICAgIGFjdGl2ZVR5cGUgPT09ICdza2lsbCcgJiZcbiAgICAgICFza2lsbHNDYXRhbG9nRW1wdHkgJiZcbiAgICAgIHNlYXJjaFZhbHVlLnRyaW0oKS5sZW5ndGggPiAwICYmXG4gICAgICBzZWFyY2hWYWx1ZS50cmltKCkubGVuZ3RoIDwgU0tJTExTX1NFQVJDSF9NSU5fUVVFUllfTEVOR1RIXG5cbiAgICBjb25zdCByZW5kZXJCb2R5ID0gKCkgPT4ge1xuICAgICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPnt0KCdjb250ZXh0TWVudGlvbi5sb2FkaW5nJywgeyBkZWZhdWx0VmFsdWU6ICdCdXNjYW5kby4uLicgfSl9PC9TQ01QU3RhdGVXcmFwcGVyPlxuICAgICAgfVxuICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgICAgICB7dCgnY29udGV4dE1lbnRpb24uZXJyb3InLCB7IGRlZmF1bHRWYWx1ZTogJ0h1Ym8gdW4gcHJvYmxlbWEgYWwgYnVzY2FyJyB9KX1cbiAgICAgICAgICA8L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChza2lsbFF1ZXJ5VG9vU2hvcnQpIHtcbiAgICAgICAgcmV0dXJuIDxTQ01QU3RhdGVXcmFwcGVyPnt0KCdjb250ZXh0TWVudGlvbi5za2lsbFF1ZXJ5VG9vU2hvcnQnKX08L1NDTVBTdGF0ZVdyYXBwZXI+XG4gICAgICB9XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiA8U0NNUFN0YXRlV3JhcHBlcj57ZW1wdHlNZXNzYWdlfTwvU0NNUFN0YXRlV3JhcHBlcj5cbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTQ01QTGlzdFxuICAgICAgICAgIHJlZj17bGlzdFJlZn1cbiAgICAgICAgICBkYXRhLWtleWJvYXJkLW5hdj17aXNLZXlib2FyZE5hdkFjdGl2ZSB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgb25Nb3VzZU1vdmU9e29uTW91c2VNb3ZlSW5MaXN0fVxuICAgICAgICAgIG9uU2Nyb2xsPXtlID0+IHtcbiAgICAgICAgICAgIGlmICghb25SZWFjaExpc3RFbmQgfHwgIWhhc01vcmUgfHwgaXNMb2FkaW5nTW9yZSkgcmV0dXJuXG4gICAgICAgICAgICBjb25zdCBlbCA9IGUuY3VycmVudFRhcmdldFxuICAgICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gMjRcbiAgICAgICAgICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxUb3AgKyBlbC5jbGllbnRIZWlnaHQgPj0gZWwuc2Nyb2xsSGVpZ2h0IC0gdGhyZXNob2xkXG4gICAgICAgICAgICBpZiAobmVhckJvdHRvbSkge1xuICAgICAgICAgICAgICBvblJlYWNoTGlzdEVuZCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHshc2VhcmNoVmFsdWUudHJpbSgpICYmIGFjdGl2ZVR5cGUgIT09ICd1c2VyJyAmJiAhaGlkZVJlY2VudHNMYWJlbCA/IChcbiAgICAgICAgICAgIDxTQ01QUmVjZW50c1Jvdz5cbiAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDTVBSZWNlbnRzTGFiZWw+e3QoJ2NvbnRleHRNZW50aW9uLnJlY2VudHNUaXRsZScsIHsgZGVmYXVsdFZhbHVlOiAnUmVjaWVudGVzJyB9KX08L1NDTVBSZWNlbnRzTGFiZWw+XG4gICAgICAgICAgICAgIDwvU0NNUFJlY2VudHNUaXRsZT5cbiAgICAgICAgICAgIDwvU0NNUFJlY2VudHNSb3c+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2l0ZW1zLm1hcCgoaXRlbSwgaWR4KSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17YCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YH0gZGF0YS1tZW50aW9uLWl0ZW0gc3R5bGU9e3sgd2lkdGg6ICcxMDAlJyB9fT5cbiAgICAgICAgICAgICAgPENvbnRleHRNZW50aW9uSXRlbVxuICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgYWN0aXZlPXtpZHggPT09IGFjdGl2ZUluZGV4fVxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXtvbkl0ZW1TZWxlY3RlZH1cbiAgICAgICAgICAgICAgICBvbkhvdmVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoIWlzS2V5Ym9hcmROYXZBY3RpdmUpIHVwZGF0ZUFjdGl2ZUluZGV4KGlkeClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAge2lzTG9hZGluZ01vcmUgPyAoXG4gICAgICAgICAgICA8U0NNUExvYWRNb3JlUm93PlxuICAgICAgICAgICAgICA8TG9hZGVyIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICA8L1NDTVBMb2FkTW9yZVJvdz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9TQ01QTGlzdD5cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNDTVBDb250YWluZXJcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ29udGV4dCBtZW50aW9uIHBpY2tlclwiXG4gICAgICAgIG9uTW91c2VEb3duPXtlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCl9XG4gICAgICA+XG4gICAgICAgIHtzaG93U2VhcmNoSW5wdXQgPyAoXG4gICAgICAgICAgPFNDTVBTZWFyY2hSb3c+XG4gICAgICAgICAgICB7LyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzeC1hMTF5L25vLWF1dG9mb2N1cyAqL31cbiAgICAgICAgICAgIDxTQ01QU2VhcmNoSW5wdXRcbiAgICAgICAgICAgICAgYXV0b0ZvY3VzXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17c2VhcmNoUGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uU2VhcmNoQ2hhbmdlPy4oZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZVNlYXJjaEtleURvd259XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NNUFNlYXJjaFJvdz5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDxTQ01QVGFic1Jvdz5cbiAgICAgICAgICA8U0NNUFRhYnNTY3JvbGxXcmFwPlxuICAgICAgICAgICAgPFNDTVBUYWJzRmFkZSAkc2lkZT1cImxlZnRcIiAkdmlzaWJsZT17dGFic1Njcm9sbC5sZWZ0fSBhcmlhLWhpZGRlbiAvPlxuICAgICAgICAgICAgPFNDTVBUYWJzR3JvdXAgcmVmPXt0YWJzU2Nyb2xsUmVmfT5cbiAgICAgICAgICAgICAge2FsbG93ZWRUeXBlcy5tYXAodHlwZSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSB0KFRBQl9JMThOX0tFWVNbdHlwZV0sIHsgZGVmYXVsdFZhbHVlOiBUQUJfRkFMTEJBQ0tTW3R5cGVdIH0pXG4gICAgICAgICAgICAgICAgY29uc3QgYXRQcmVmaXggPSBoaWRlVGFiUHJlZml4ID8gJycgOiBnZXRNZW50aW9uVGFiUHJlZml4KHR5cGUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxTQ01QVGFiXG4gICAgICAgICAgICAgICAgICAgIGtleT17dHlwZX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtbWVudGlvbi10YWI9e3R5cGV9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2F0UHJlZml4ID8gYCR7YXRQcmVmaXh9ICR7bGFiZWx9YCA6IGxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAkYWN0aXZlPXt0eXBlID09PSBhY3RpdmVUeXBlfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIG9uVHlwZUNoYW5nZSh0eXBlKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YXRQcmVmaXh9XG4gICAgICAgICAgICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvU0NNUFRhYj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgPC9TQ01QVGFic0dyb3VwPlxuICAgICAgICAgICAgPFNDTVBUYWJzRmFkZSAkc2lkZT1cInJpZ2h0XCIgJHZpc2libGU9e3RhYnNTY3JvbGwucmlnaHR9IGFyaWEtaGlkZGVuIC8+XG4gICAgICAgICAgPC9TQ01QVGFic1Njcm9sbFdyYXA+XG4gICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e2tleWJvYXJkSGludCB8fCAnJ30gey4uLih0b29sdGlwWkluZGV4ICE9IG51bGwgPyB7IHpJbmRleDogdG9vbHRpcFpJbmRleCB9IDoge30pfT5cbiAgICAgICAgICAgIDxTQ01QS2V5Ym9hcmRIaW50PlxuICAgICAgICAgICAgICA8SW5mb3JtYXRpb25DaXJjbGUgd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSBjb2xvcj1cIiM4MDgwODBcIiAvPlxuICAgICAgICAgICAgPC9TQ01QS2V5Ym9hcmRIaW50PlxuICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgPC9TQ01QVGFic1Jvdz5cbiAgICAgICAgPFNDTVBEaXZpZGVyV3JhcHBlcj5cbiAgICAgICAgICA8U0NNUERpdmlkZXIgLz5cbiAgICAgICAgPC9TQ01QRGl2aWRlcldyYXBwZXI+XG4gICAgICAgIHtyZW5kZXJCb2R5KCl9XG4gICAgICA8L1NDTVBDb250YWluZXI+XG4gICAgKVxuICB9XG4pXG5cbkNvbnRleHRNZW50aW9uUG9wb3Zlci5kaXNwbGF5TmFtZSA9ICdDb250ZXh0TWVudGlvblBvcG92ZXInXG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxTQUVFQSxVQUFVLEVBRVZDLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxlQUFlLEVBQ2ZDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLGlCQUFpQixRQUFRLG9EQUFvRDtBQUN0RixTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLFNBQVNDLDhCQUE4QixRQUFRLDJCQUEyQjtBQUMxRSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBRTFDLFNBQVNDLG1CQUFtQixRQUFRLHVDQUF1QztBQUMzRSxTQUFTQyxrQkFBa0IsUUFBUSx1QkFBdUI7QUFDMUQsU0FBU0MsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FDRUMsYUFBYSxFQUNiQyxXQUFXLEVBQ1hDLGtCQUFrQixFQUNsQkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLEVBQ2RDLGdCQUFnQixFQUNoQkMsUUFBUSxFQUNSQyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQkMsT0FBTyxFQUNQQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsV0FBVyxFQUNYQyxrQkFBa0IsRUFDbEJD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