@projectcor/maia-components 2.11.90-5 → 2.11.90-6

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.
@@ -8,7 +8,7 @@ import { useResizeListener } from '../../../hooks/useResize';
8
8
  import { useGlobalContext } from '../../../context/global-context';
9
9
  import { useFrequentlyUsedActions } from '../../../hooks/useFrequentlyUsedActions';
10
10
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
11
- import { quickActionTitleToType } from '../../../utils/slashCommandMarker';
11
+ import { resolveQuickActionOrigin, resolveQuickActionType } from '../../../utils/hoursPlannerQuickActionType';
12
12
  import { FaqsIcon } from '../icons/FaqsIcon';
13
13
  import { getActionIcon } from '../../../utils/actionIconMap';
14
14
  import { FrequentlyUsedActionsSkeleton } from './FrequentlyUsedActions.skeleton';
@@ -76,11 +76,9 @@ export var FrequentlyUsedActions = function FrequentlyUsedActions(_ref2) {
76
76
  var loading = loadingProp !== null && loadingProp !== void 0 ? loadingProp : fetched.loading;
77
77
  var error = errorProp !== null && errorProp !== void 0 ? errorProp : fetched.error;
78
78
  var handleActionClick = function handleActionClick(action) {
79
- var originQuickAction = 'home';
80
- if (section === 'task') originQuickAction = 'task';else if (section === 'planner' || variant === 'planner') originQuickAction = 'planner';
81
79
  eventAmplitude(EVENTS.aiChatQuickActionSelect, {
82
- type_quick_action: quickActionTitleToType(action.id, action.title),
83
- origin_quick_action: originQuickAction
80
+ type_quick_action: resolveQuickActionType(action),
81
+ origin_quick_action: resolveQuickActionOrigin(section, variant)
84
82
  });
85
83
  onStartChat(action.title, null, undefined, undefined, null, action.id);
86
84
  };
@@ -122,4 +120,4 @@ export var FrequentlyUsedActions = function FrequentlyUsedActions(_ref2) {
122
120
  })]
123
121
  });
124
122
  };
125
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJUb29sdGlwIiwidXNlVCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIkVWRU5UUyIsInVzZUV2ZW50IiwicXVpY2tBY3Rpb25UaXRsZVRvVHlwZSIsIkZhcXNJY29uIiwiZ2V0QWN0aW9uSWNvbiIsIkZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIiwiRXJyb3JTZWFyY2hGYXFzIiwiRmFkZSIsIlNDRlVBQ29udGFpbmVyIiwiU0NGVUFUaXRsZSIsIlNDRlVBTmV3QmFkZ2UiLCJTQ0ZVQUxpc3RDb250YWluZXIiLCJTQ0ZVQUxpc3QiLCJTQ0ZVQUl0ZW0iLCJTQ0ZVQUl0ZW1JY29uIiwiU0NGVUFJdGVtQ29udGVudCIsIlNDRlVBSXRlbVRpdGxlIiwiU0NGVUFJdGVtU3VidGl0bGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRlVBTGlzdEl0ZW0iLCJfcmVmIiwiYWN0aW9uIiwiaXNTY3JvbGxpbmciLCJvbkNsaWNrIiwiaW5kZXgiLCJfcmVmJGhpZ2hsaWdodGVkIiwiaGlnaGxpZ2h0ZWQiLCJ0aXRsZVJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1RpdGxlVG9vbHRpcCIsInNob3dUb29sdGlwIiwidGl0bGVXaXRoUHJlZml4IiwiY29uY2F0IiwiQ3VzdG9tSWNvbiIsImljb24iLCIkaW5kZXgiLCIkaGlnaGxpZ2h0ZWQiLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwidXNlR3JhZGllbnQiLCJyZWYiLCJzdWJ0aXRsZSIsIkZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYyIiwib25TdGFydENoYXQiLCJhZ2VudElkIiwiX3JlZjIkaXNTY3JvbGxpbmciLCJhY3Rpb25zUHJvcCIsImFjdGlvbnMiLCJsb2FkaW5nUHJvcCIsImxvYWRpbmciLCJlcnJvclByb3AiLCJlcnJvciIsIl9yZWYyJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWN0aW9uIiwiZXZlbnRBbXBsaXR1ZGUiLCJmZXRjaGVkIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9uQ2xpY2siLCJvcmlnaW5RdWlja0FjdGlvbiIsImFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0IiwidHlwZV9xdWlja19hY3Rpb24iLCJpZCIsIm9yaWdpbl9xdWlja19hY3Rpb24iLCJsZW5ndGgiLCJnZXRBY3Rpb25zU3RhdHVzIiwiaXNQbGFubmVyU2VjdGlvbiIsInNob3dUaXRsZSIsIm1lc3NhZ2UiLCJtYXAiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9GcmVxdWVudGx5VXNlZEFjdGlvbnMvRnJlcXVlbnRseVVzZWRBY3Rpb25zLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9mdW5jdGlvbi1jb21wb25lbnQtZGVmaW5pdGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgeyB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgdXNlUmVzaXplTGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VSZXNpemUnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZUdsb2JhbENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9jb250ZXh0L2dsb2JhbC1jb250ZXh0J1xuaW1wb3J0IHsgdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRnJlcXVlbnRseVVzZWRBY3Rpb25zJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgcXVpY2tBY3Rpb25UaXRsZVRvVHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3NsYXNoQ29tbWFuZE1hcmtlcidcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZhcXNJY29uIH0gZnJvbSAnLi4vaWNvbnMvRmFxc0ljb24nXG5pbXBvcnQgeyBnZXRBY3Rpb25JY29uIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWN0aW9uSWNvbk1hcCdcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIH0gZnJvbSAnLi9GcmVxdWVudGx5VXNlZEFjdGlvbnMuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclNlYXJjaEZhcXMgfSBmcm9tICcuLi9FcnJvclNlYXJjaEZhcXMnXG5pbXBvcnQgeyBGYWRlIH0gZnJvbSAnLi4vRmFkZSdcbmltcG9ydCB7XG4gIFNDRlVBQ29udGFpbmVyLFxuICBTQ0ZVQVRpdGxlLFxuICBTQ0ZVQU5ld0JhZGdlLFxuICBTQ0ZVQUxpc3RDb250YWluZXIsXG4gIFNDRlVBTGlzdCxcbiAgU0NGVUFJdGVtLFxuICBTQ0ZVQUl0ZW1JY29uLFxuICBTQ0ZVQUl0ZW1Db250ZW50LFxuICBTQ0ZVQUl0ZW1UaXRsZSxcbiAgU0NGVUFJdGVtU3VidGl0bGUsXG59IGZyb20gJy4vRnJlcXVlbnRseVVzZWRBY3Rpb25zLnN0eWxlcydcblxuZnVuY3Rpb24gRlVBTGlzdEl0ZW0oe1xuICBhY3Rpb24sXG4gIGlzU2Nyb2xsaW5nLFxuICBvbkNsaWNrLFxuICBpbmRleCxcbiAgaGlnaGxpZ2h0ZWQgPSBmYWxzZSxcbn06IHtcbiAgYWN0aW9uOiBBY3Rpb25cbiAgaXNTY3JvbGxpbmc6IGJvb2xlYW5cbiAgb25DbGljazogKCkgPT4gdm9pZFxuICBpbmRleDogbnVtYmVyXG4gIGhpZ2hsaWdodGVkPzogYm9vbGVhblxufSkge1xuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUaXRsZVRvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRpdGxlUmVmLCBbYWN0aW9uLnRpdGxlXSlcbiAgY29uc3QgdGl0bGVXaXRoUHJlZml4ID0gYC8ke2FjdGlvbi50aXRsZX1gXG4gIGNvbnN0IEN1c3RvbUljb24gPSBnZXRBY3Rpb25JY29uKGFjdGlvbi5pY29uKVxuXG4gIHJldHVybiAoXG4gICAgPFNDRlVBSXRlbSAkaW5kZXg9e2luZGV4fSAkaGlnaGxpZ2h0ZWQ9e2hpZ2hsaWdodGVkfSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTQ0ZVQUl0ZW1JY29uPlxuICAgICAgICB7Q3VzdG9tSWNvbiA/IDxDdXN0b21JY29uIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz4gOiA8RmFxc0ljb24gdXNlR3JhZGllbnQgaGVpZ2h0PXsyMH0gd2lkdGg9ezIwfSAvPn1cbiAgICAgIDwvU0NGVUFJdGVtSWNvbj5cbiAgICAgIDxTQ0ZVQUl0ZW1Db250ZW50PlxuICAgICAgICA8U0NGVUFJdGVtVGl0bGUgcmVmPXt0aXRsZVJlZn0+XG4gICAgICAgICAge2lzU2Nyb2xsaW5nID8gKFxuICAgICAgICAgICAgdGl0bGVXaXRoUHJlZml4XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gdGl0bGVXaXRoUHJlZml4IDogJyd9PlxuICAgICAgICAgICAgICA8c3Bhbj57dGl0bGVXaXRoUHJlZml4fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDRlVBSXRlbVRpdGxlPlxuICAgICAgICB7YWN0aW9uLnN1YnRpdGxlID8gPFNDRlVBSXRlbVN1YnRpdGxlPnthY3Rpb24uc3VidGl0bGV9PC9TQ0ZVQUl0ZW1TdWJ0aXRsZT4gOiBudWxsfVxuICAgICAgPC9TQ0ZVQUl0ZW1Db250ZW50PlxuICAgIDwvU0NGVUFJdGVtPlxuICApXG59XG5cbnR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBudWxsLFxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBhZ2VudElkPzogc3RyaW5nXG4gIGlzU2Nyb2xsaW5nPzogYm9vbGVhblxuICBhY3Rpb25zPzogQWN0aW9uW11cbiAgbG9hZGluZz86IGJvb2xlYW5cbiAgZXJyb3I/OiBzdHJpbmcgfCBudWxsXG4gIHZhcmlhbnQ/OiAnZGVmYXVsdCcgfCAncGxhbm5lcidcbn1cblxuZXhwb3J0IGNvbnN0IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9ICh7XG4gIG9uU3RhcnRDaGF0LFxuICBhZ2VudElkLFxuICBpc1Njcm9sbGluZyA9IGZhbHNlLFxuICBhY3Rpb25zOiBhY3Rpb25zUHJvcCxcbiAgbG9hZGluZzogbG9hZGluZ1Byb3AsXG4gIGVycm9yOiBlcnJvclByb3AsXG4gIHZhcmlhbnQgPSAnZGVmYXVsdCcsXG59OiBGcmVxdWVudGx5VXNlZEFjdGlvbnNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgZmV0Y2hlZCA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhhY3Rpb25zUHJvcCA9PSBudWxsID8gYWdlbnRJZCA6IHVuZGVmaW5lZCwgc2VjdGlvbilcbiAgY29uc3QgYWN0aW9ucyA9IGFjdGlvbnNQcm9wID8/IGZldGNoZWQuYWN0aW9uc1xuICBjb25zdCBsb2FkaW5nID0gbG9hZGluZ1Byb3AgPz8gZmV0Y2hlZC5sb2FkaW5nXG4gIGNvbnN0IGVycm9yID0gZXJyb3JQcm9wID8/IGZldGNoZWQuZXJyb3JcblxuICBjb25zdCBoYW5kbGVBY3Rpb25DbGljayA9IChhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgIGxldCBvcmlnaW5RdWlja0FjdGlvbjogJ3Rhc2snIHwgJ3BsYW5uZXInIHwgJ2hvbWUnID0gJ2hvbWUnXG4gICAgaWYgKHNlY3Rpb24gPT09ICd0YXNrJykgb3JpZ2luUXVpY2tBY3Rpb24gPSAndGFzaydcbiAgICBlbHNlIGlmIChzZWN0aW9uID09PSAncGxhbm5lcicgfHwgdmFyaWFudCA9PT0gJ3BsYW5uZXInKSBvcmlnaW5RdWlja0FjdGlvbiA9ICdwbGFubmVyJ1xuXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICB0eXBlX3F1aWNrX2FjdGlvbjogcXVpY2tBY3Rpb25UaXRsZVRvVHlwZShhY3Rpb24uaWQsIGFjdGlvbi50aXRsZSksXG4gICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiBvcmlnaW5RdWlja0FjdGlvbixcbiAgICB9KVxuICAgIG9uU3RhcnRDaGF0KGFjdGlvbi50aXRsZSwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG51bGwsIGFjdGlvbi5pZClcbiAgfVxuXG4gIGlmICghbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZ2V0QWN0aW9uc1N0YXR1cyA9ICgpID0+IHtcbiAgICBpZiAobG9hZGluZykgcmV0dXJuICdsb2FkaW5nJ1xuICAgIGlmIChlcnJvcikgcmV0dXJuICdlcnJvcidcbiAgICByZXR1cm4gJ2xpc3QnXG4gIH1cblxuICBjb25zdCBpc1BsYW5uZXJTZWN0aW9uID0gc2VjdGlvbiA9PT0gJ3BsYW5uZXInIHx8IHZhcmlhbnQgPT09ICdwbGFubmVyJ1xuICBjb25zdCBzaG93VGl0bGUgPSAhaXNQbGFubmVyU2VjdGlvbiAmJiAhbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwXG5cbiAgcmV0dXJuIChcbiAgICA8U0NGVUFDb250YWluZXI+XG4gICAgICB7c2hvd1RpdGxlICYmIChcbiAgICAgICAgPFNDRlVBVGl0bGU+XG4gICAgICAgICAgPHNwYW4+e3QoJ2hvbWVNZW51LmZ1YS50aXRsZScpfTwvc3Bhbj5cbiAgICAgICAgICA8U0NGVUFOZXdCYWRnZT57dCgnaG9tZU1lbnUuZnVhLm5ld0JhZGdlJyl9PC9TQ0ZVQU5ld0JhZGdlPlxuICAgICAgICA8L1NDRlVBVGl0bGU+XG4gICAgICApfVxuICAgICAgPFNDRlVBTGlzdENvbnRhaW5lcj5cbiAgICAgICAgPEZhZGUga2V5PXtnZXRBY3Rpb25zU3RhdHVzKCl9PlxuICAgICAgICAgIHtsb2FkaW5nICYmICFlcnJvciAmJiA8RnJlcXVlbnRseVVzZWRBY3Rpb25zU2tlbGV0b24gLz59XG4gICAgICAgICAge2Vycm9yICYmIDxFcnJvclNlYXJjaEZhcXMgbWVzc2FnZT17dCgnaG9tZU1lbnUuZnVhLmVycm9yJyl9IC8+fVxuICAgICAgICAgIHshbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxTQ0ZVQUxpc3Q+XG4gICAgICAgICAgICAgIHthY3Rpb25zLm1hcCgoYWN0aW9uLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxGVUFMaXN0SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXthY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkPXtpc1BsYW5uZXJTZWN0aW9uICYmIGluZGV4ID09PSAwfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NGVUFMaXN0PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRmFkZT5cbiAgICAgIDwvU0NGVUFMaXN0Q29udGFpbmVyPlxuICAgIDwvU0NGVUFDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxRQUFRLE9BQU87QUFDOUIsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGlCQUFpQixRQUFRLDBCQUEwQjtBQUU1RCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0Msd0JBQXdCLFFBQVEseUNBQXlDO0FBQ2xGLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyxzQkFBc0IsUUFBUSxtQ0FBbUM7QUFFMUUsU0FBU0MsUUFBUSxRQUFRLG1CQUFtQjtBQUM1QyxTQUFTQyxhQUFhLFFBQVEsOEJBQThCO0FBQzVELFNBQVNDLDZCQUE2QixRQUFRLGtDQUFrQztBQUNoRixTQUFTQyxlQUFlLFFBQVEsb0JBQW9CO0FBQ3BELFNBQVNDLElBQUksUUFBUSxTQUFTO0FBQzlCLFNBQ0VDLGNBQWMsRUFDZEMsVUFBVSxFQUNWQyxhQUFhLEVBQ2JDLGtCQUFrQixFQUNsQkMsU0FBUyxFQUNUQyxTQUFTLEVBQ1RDLGFBQWEsRUFDYkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLEVBQ2RD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
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VSZWYiLCJUb29sdGlwIiwidXNlVCIsInVzZVJlc2l6ZUxpc3RlbmVyIiwidXNlR2xvYmFsQ29udGV4dCIsInVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIkVWRU5UUyIsInVzZUV2ZW50IiwicmVzb2x2ZVF1aWNrQWN0aW9uT3JpZ2luIiwicmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSIsIkZhcXNJY29uIiwiZ2V0QWN0aW9uSWNvbiIsIkZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIiwiRXJyb3JTZWFyY2hGYXFzIiwiRmFkZSIsIlNDRlVBQ29udGFpbmVyIiwiU0NGVUFUaXRsZSIsIlNDRlVBTmV3QmFkZ2UiLCJTQ0ZVQUxpc3RDb250YWluZXIiLCJTQ0ZVQUxpc3QiLCJTQ0ZVQUl0ZW0iLCJTQ0ZVQUl0ZW1JY29uIiwiU0NGVUFJdGVtQ29udGVudCIsIlNDRlVBSXRlbVRpdGxlIiwiU0NGVUFJdGVtU3VidGl0bGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRlVBTGlzdEl0ZW0iLCJfcmVmIiwiYWN0aW9uIiwiaXNTY3JvbGxpbmciLCJvbkNsaWNrIiwiaW5kZXgiLCJfcmVmJGhpZ2hsaWdodGVkIiwiaGlnaGxpZ2h0ZWQiLCJ0aXRsZVJlZiIsIl91c2VSZXNpemVMaXN0ZW5lciIsInRpdGxlIiwic2hvd1RpdGxlVG9vbHRpcCIsInNob3dUb29sdGlwIiwidGl0bGVXaXRoUHJlZml4IiwiY29uY2F0IiwiQ3VzdG9tSWNvbiIsImljb24iLCIkaW5kZXgiLCIkaGlnaGxpZ2h0ZWQiLCJjaGlsZHJlbiIsIndpZHRoIiwiaGVpZ2h0IiwidXNlR3JhZGllbnQiLCJyZWYiLCJzdWJ0aXRsZSIsIkZyZXF1ZW50bHlVc2VkQWN0aW9ucyIsIl9yZWYyIiwib25TdGFydENoYXQiLCJhZ2VudElkIiwiX3JlZjIkaXNTY3JvbGxpbmciLCJhY3Rpb25zUHJvcCIsImFjdGlvbnMiLCJsb2FkaW5nUHJvcCIsImxvYWRpbmciLCJlcnJvclByb3AiLCJlcnJvciIsIl9yZWYyJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3VzZVQiLCJ0IiwiX3VzZUdsb2JhbENvbnRleHQiLCJzZWN0aW9uIiwiZXZlbnRBbXBsaXR1ZGUiLCJmZXRjaGVkIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9uQ2xpY2siLCJhaUNoYXRRdWlja0FjdGlvblNlbGVjdCIsInR5cGVfcXVpY2tfYWN0aW9uIiwib3JpZ2luX3F1aWNrX2FjdGlvbiIsImlkIiwibGVuZ3RoIiwiZ2V0QWN0aW9uc1N0YXR1cyIsImlzUGxhbm5lclNlY3Rpb24iLCJzaG93VGl0bGUiLCJtZXNzYWdlIiwibWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvRnJlcXVlbnRseVVzZWRBY3Rpb25zL0ZyZXF1ZW50bHlVc2VkQWN0aW9ucy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvZnVuY3Rpb24tY29tcG9uZW50LWRlZmluaXRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLXN0YXRpYy1lbGVtZW50LWludGVyYWN0aW9ucyAqL1xuaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgeyB1c2VUIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVCdcbmltcG9ydCB7IHVzZVJlc2l6ZUxpc3RlbmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlUmVzaXplJ1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi90eXBlcy9BY3Rpb24nXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucydcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7IHJlc29sdmVRdWlja0FjdGlvbk9yaWdpbiwgcmVzb2x2ZVF1aWNrQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2hvdXJzUGxhbm5lclF1aWNrQWN0aW9uVHlwZSdcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWxlIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL0NoYXRGb290ZXIvQ2hhdEZvb3RlcidcbmltcG9ydCB7IEZhcXNJY29uIH0gZnJvbSAnLi4vaWNvbnMvRmFxc0ljb24nXG5pbXBvcnQgeyBnZXRBY3Rpb25JY29uIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYWN0aW9uSWNvbk1hcCdcbmltcG9ydCB7IEZyZXF1ZW50bHlVc2VkQWN0aW9uc1NrZWxldG9uIH0gZnJvbSAnLi9GcmVxdWVudGx5VXNlZEFjdGlvbnMuc2tlbGV0b24nXG5pbXBvcnQgeyBFcnJvclNlYXJjaEZhcXMgfSBmcm9tICcuLi9FcnJvclNlYXJjaEZhcXMnXG5pbXBvcnQgeyBGYWRlIH0gZnJvbSAnLi4vRmFkZSdcbmltcG9ydCB7XG4gIFNDRlVBQ29udGFpbmVyLFxuICBTQ0ZVQVRpdGxlLFxuICBTQ0ZVQU5ld0JhZGdlLFxuICBTQ0ZVQUxpc3RDb250YWluZXIsXG4gIFNDRlVBTGlzdCxcbiAgU0NGVUFJdGVtLFxuICBTQ0ZVQUl0ZW1JY29uLFxuICBTQ0ZVQUl0ZW1Db250ZW50LFxuICBTQ0ZVQUl0ZW1UaXRsZSxcbiAgU0NGVUFJdGVtU3VidGl0bGUsXG59IGZyb20gJy4vRnJlcXVlbnRseVVzZWRBY3Rpb25zLnN0eWxlcydcblxuZnVuY3Rpb24gRlVBTGlzdEl0ZW0oe1xuICBhY3Rpb24sXG4gIGlzU2Nyb2xsaW5nLFxuICBvbkNsaWNrLFxuICBpbmRleCxcbiAgaGlnaGxpZ2h0ZWQgPSBmYWxzZSxcbn06IHtcbiAgYWN0aW9uOiBBY3Rpb25cbiAgaXNTY3JvbGxpbmc6IGJvb2xlYW5cbiAgb25DbGljazogKCkgPT4gdm9pZFxuICBpbmRleDogbnVtYmVyXG4gIGhpZ2hsaWdodGVkPzogYm9vbGVhblxufSkge1xuICBjb25zdCB0aXRsZVJlZiA9IHVzZVJlZjxIVE1MU3BhbkVsZW1lbnQ+KG51bGwpXG4gIGNvbnN0IHsgc2hvd1Rvb2x0aXA6IHNob3dUaXRsZVRvb2x0aXAgfSA9IHVzZVJlc2l6ZUxpc3RlbmVyKHRpdGxlUmVmLCBbYWN0aW9uLnRpdGxlXSlcbiAgY29uc3QgdGl0bGVXaXRoUHJlZml4ID0gYC8ke2FjdGlvbi50aXRsZX1gXG4gIGNvbnN0IEN1c3RvbUljb24gPSBnZXRBY3Rpb25JY29uKGFjdGlvbi5pY29uKVxuXG4gIHJldHVybiAoXG4gICAgPFNDRlVBSXRlbSAkaW5kZXg9e2luZGV4fSAkaGlnaGxpZ2h0ZWQ9e2hpZ2hsaWdodGVkfSBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgIDxTQ0ZVQUl0ZW1JY29uPlxuICAgICAgICB7Q3VzdG9tSWNvbiA/IDxDdXN0b21JY29uIHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz4gOiA8RmFxc0ljb24gdXNlR3JhZGllbnQgaGVpZ2h0PXsyMH0gd2lkdGg9ezIwfSAvPn1cbiAgICAgIDwvU0NGVUFJdGVtSWNvbj5cbiAgICAgIDxTQ0ZVQUl0ZW1Db250ZW50PlxuICAgICAgICA8U0NGVUFJdGVtVGl0bGUgcmVmPXt0aXRsZVJlZn0+XG4gICAgICAgICAge2lzU2Nyb2xsaW5nID8gKFxuICAgICAgICAgICAgdGl0bGVXaXRoUHJlZml4XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXtzaG93VGl0bGVUb29sdGlwID8gdGl0bGVXaXRoUHJlZml4IDogJyd9PlxuICAgICAgICAgICAgICA8c3Bhbj57dGl0bGVXaXRoUHJlZml4fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NDRlVBSXRlbVRpdGxlPlxuICAgICAgICB7YWN0aW9uLnN1YnRpdGxlID8gPFNDRlVBSXRlbVN1YnRpdGxlPnthY3Rpb24uc3VidGl0bGV9PC9TQ0ZVQUl0ZW1TdWJ0aXRsZT4gOiBudWxsfVxuICAgICAgPC9TQ0ZVQUl0ZW1Db250ZW50PlxuICAgIDwvU0NGVUFJdGVtPlxuICApXG59XG5cbnR5cGUgRnJlcXVlbnRseVVzZWRBY3Rpb25zUHJvcHMgPSB7XG4gIG9uU3RhcnRDaGF0OiAoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudEZpbGVbXSB8IG51bGwsXG4gICAgZmFxSWQ/OiBzdHJpbmcsXG4gICAgYWdlbnRTdWdnZXN0aW9uSWQ/OiBzdHJpbmcsXG4gICAgbWVudGlvbnM/OiBudWxsLFxuICAgIGZ1YUlkPzogc3RyaW5nXG4gICkgPT4gdm9pZFxuICBhZ2VudElkPzogc3RyaW5nXG4gIGlzU2Nyb2xsaW5nPzogYm9vbGVhblxuICBhY3Rpb25zPzogQWN0aW9uW11cbiAgbG9hZGluZz86IGJvb2xlYW5cbiAgZXJyb3I/OiBzdHJpbmcgfCBudWxsXG4gIHZhcmlhbnQ/OiAnZGVmYXVsdCcgfCAncGxhbm5lcidcbn1cblxuZXhwb3J0IGNvbnN0IEZyZXF1ZW50bHlVc2VkQWN0aW9ucyA9ICh7XG4gIG9uU3RhcnRDaGF0LFxuICBhZ2VudElkLFxuICBpc1Njcm9sbGluZyA9IGZhbHNlLFxuICBhY3Rpb25zOiBhY3Rpb25zUHJvcCxcbiAgbG9hZGluZzogbG9hZGluZ1Byb3AsXG4gIGVycm9yOiBlcnJvclByb3AsXG4gIHZhcmlhbnQgPSAnZGVmYXVsdCcsXG59OiBGcmVxdWVudGx5VXNlZEFjdGlvbnNQcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICBjb25zdCB7IHNlY3Rpb24gfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBldmVudEFtcGxpdHVkZSA9IHVzZUV2ZW50KClcbiAgY29uc3QgZmV0Y2hlZCA9IHVzZUZyZXF1ZW50bHlVc2VkQWN0aW9ucyhhY3Rpb25zUHJvcCA9PSBudWxsID8gYWdlbnRJZCA6IHVuZGVmaW5lZCwgc2VjdGlvbilcbiAgY29uc3QgYWN0aW9ucyA9IGFjdGlvbnNQcm9wID8/IGZldGNoZWQuYWN0aW9uc1xuICBjb25zdCBsb2FkaW5nID0gbG9hZGluZ1Byb3AgPz8gZmV0Y2hlZC5sb2FkaW5nXG4gIGNvbnN0IGVycm9yID0gZXJyb3JQcm9wID8/IGZldGNoZWQuZXJyb3JcblxuICBjb25zdCBoYW5kbGVBY3Rpb25DbGljayA9IChhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRRdWlja0FjdGlvblNlbGVjdCwge1xuICAgICAgdHlwZV9xdWlja19hY3Rpb246IHJlc29sdmVRdWlja0FjdGlvblR5cGUoYWN0aW9uKSxcbiAgICAgIG9yaWdpbl9xdWlja19hY3Rpb246IHJlc29sdmVRdWlja0FjdGlvbk9yaWdpbihzZWN0aW9uLCB2YXJpYW50KSxcbiAgICB9KVxuICAgIG9uU3RhcnRDaGF0KGFjdGlvbi50aXRsZSwgbnVsbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG51bGwsIGFjdGlvbi5pZClcbiAgfVxuXG4gIGlmICghbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZ2V0QWN0aW9uc1N0YXR1cyA9ICgpID0+IHtcbiAgICBpZiAobG9hZGluZykgcmV0dXJuICdsb2FkaW5nJ1xuICAgIGlmIChlcnJvcikgcmV0dXJuICdlcnJvcidcbiAgICByZXR1cm4gJ2xpc3QnXG4gIH1cblxuICBjb25zdCBpc1BsYW5uZXJTZWN0aW9uID0gc2VjdGlvbiA9PT0gJ3BsYW5uZXInIHx8IHZhcmlhbnQgPT09ICdwbGFubmVyJ1xuICBjb25zdCBzaG93VGl0bGUgPSAhaXNQbGFubmVyU2VjdGlvbiAmJiAhbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwXG5cbiAgcmV0dXJuIChcbiAgICA8U0NGVUFDb250YWluZXI+XG4gICAgICB7c2hvd1RpdGxlICYmIChcbiAgICAgICAgPFNDRlVBVGl0bGU+XG4gICAgICAgICAgPHNwYW4+e3QoJ2hvbWVNZW51LmZ1YS50aXRsZScpfTwvc3Bhbj5cbiAgICAgICAgICA8U0NGVUFOZXdCYWRnZT57dCgnaG9tZU1lbnUuZnVhLm5ld0JhZGdlJyl9PC9TQ0ZVQU5ld0JhZGdlPlxuICAgICAgICA8L1NDRlVBVGl0bGU+XG4gICAgICApfVxuICAgICAgPFNDRlVBTGlzdENvbnRhaW5lcj5cbiAgICAgICAgPEZhZGUga2V5PXtnZXRBY3Rpb25zU3RhdHVzKCl9PlxuICAgICAgICAgIHtsb2FkaW5nICYmICFlcnJvciAmJiA8RnJlcXVlbnRseVVzZWRBY3Rpb25zU2tlbGV0b24gLz59XG4gICAgICAgICAge2Vycm9yICYmIDxFcnJvclNlYXJjaEZhcXMgbWVzc2FnZT17dCgnaG9tZU1lbnUuZnVhLmVycm9yJyl9IC8+fVxuICAgICAgICAgIHshbG9hZGluZyAmJiAhZXJyb3IgJiYgYWN0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxTQ0ZVQUxpc3Q+XG4gICAgICAgICAgICAgIHthY3Rpb25zLm1hcCgoYWN0aW9uLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxGVUFMaXN0SXRlbVxuICAgICAgICAgICAgICAgICAga2V5PXthY3Rpb24uaWR9XG4gICAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICAgICAgICAgIGlzU2Nyb2xsaW5nPXtpc1Njcm9sbGluZ31cbiAgICAgICAgICAgICAgICAgIGhpZ2hsaWdodGVkPXtpc1BsYW5uZXJTZWN0aW9uICYmIGluZGV4ID09PSAwfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlQWN0aW9uQ2xpY2soYWN0aW9uKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NGVUFMaXN0PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRmFkZT5cbiAgICAgIDwvU0NGVUFMaXN0Q29udGFpbmVyPlxuICAgIDwvU0NGVUFDb250YWluZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsTUFBTSxRQUFRLE9BQU87QUFDOUIsU0FBU0MsT0FBTyxRQUFRLDhDQUE4QztBQUN0RSxTQUFTQyxJQUFJLFFBQVEscUJBQXFCO0FBQzFDLFNBQVNDLGlCQUFpQixRQUFRLDBCQUEwQjtBQUU1RCxTQUFTQyxnQkFBZ0IsUUFBUSxpQ0FBaUM7QUFDbEUsU0FBU0Msd0JBQXdCLFFBQVEseUNBQXlDO0FBQ2xGLFNBQVNDLE1BQU0sRUFBRUMsUUFBUSxRQUFRLHlCQUF5QjtBQUMxRCxTQUFTQyx3QkFBd0IsRUFBRUMsc0JBQXNCLFFBQVEsNENBQTRDO0FBRTdHLFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7QUFDNUMsU0FBU0MsYUFBYSxRQUFRLDhCQUE4QjtBQUM1RCxTQUFTQyw2QkFBNkIsUUFBUSxrQ0FBa0M7QUFDaEYsU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTQyxJQUFJLFFBQVEsU0FBUztBQUM5QixTQUNFQyxjQUFjLEVBQ2RDLFVBQVUsRUFDVkMsYUFBYSxFQUNiQyxrQkFBa0IsRUFDbEJDLFNBQVMsRUFDVEMsU0FBUyxFQUNUQyxhQUFhLEVBQ2JDLGdCQUFnQixFQUNoQkMsY0FBYyxFQUNkQyxpQkFBaUIsUUFDWixnQ0FBZ0M7QUFBQSxTQUFBQyxHQUFBLElBQUFDLElBQUEsRUFBQUMsSUFBQSxJQUFBQyxLQUFBO0FBRXZDLFNBQVNDLFdBQVdBLENBQUFDLElBQUEsRUFZakI7RUFBQSxJQVhEQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtJQUNOQyxXQUFX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QUssU0FBUztFQUN2RSxJQUFNZ0IsU0FBUyxHQUFHLENBQUNELGdCQUFnQixJQUFJLENBQUNuQixPQUFPLElBQUksQ0FBQ0UsS0FBSyxJQUFJSixPQUFPLENBQUNtQixNQUFNLEdBQUcsQ0FBQztFQUUvRSxvQkFDRW5ELEtBQUEsQ0FBQ2IsY0FBYztJQUFBaUMsUUFBQSxHQUNaa0MsU0FBUyxpQkFDUnRELEtBQUEsQ0FBQ1osVUFBVTtNQUFBZ0MsUUFBQSxnQkFDVHRCLElBQUE7UUFBQXNCLFFBQUEsRUFBT29CLENBQUMsQ0FBQyxvQkFBb0I7TUFBQyxDQUFPLENBQUMsZUFDdEMxQyxJQUFBLENBQUNULGFBQWE7UUFBQStCLFFBQUEsRUFBRW9CLENBQUMsQ0FBQyx1QkFBdUI7TUFBQyxDQUFnQixDQUFDO0lBQUEsQ0FDakQsQ0FDYixlQUNEMUMsSUFBQSxDQUFDUixrQkFBa0I7TUFBQThCLFFBQUEsZUFDakJwQixLQUFBLENBQUNkLElBQUk7UUFBQWtDLFFBQUEsR0FDRmMsT0FBTyxJQUFJLENBQUNFLEtBQUssaUJBQUl0QyxJQUFBLENBQUNkLDZCQUE2QixJQUFFLENBQUMsRUFDdERvRCxLQUFLLGlCQUFJdEMsSUFBQSxDQUFDYixlQUFlO1VBQUNzRSxPQUFPLEVBQUVmLENBQUMsQ0FBQyxvQkFBb0I7UUFBRSxDQUFFLENBQUMsRUFDOUQsQ0FBQ04sT0FBTyxJQUFJLENBQUNFLEtBQUssSUFBSUosT0FBTyxDQUFDbUIsTUFBTSxHQUFHLENBQUMsaUJBQ3ZDckQsSUFBQSxDQUFDUCxTQUFTO1VBQUE2QixRQUFBLEVBQ1BZLE9BQU8sQ0FBQ3dCLEdBQUcsQ0FBQyxVQUFDckQsTUFBTSxFQUFFRyxLQUFLO1lBQUEsb0JBQ3pCUixJQUFBLENBQUNHLFdBQVc7Y0FFVkssS0FBSyxFQUFFQSxLQUFNO2NBQ2JILE1BQU0sRUFBRUEsTUFBTztjQUNmQyxXQUFXLEVBQUVBLFdBQVk7Y0FDekJJLFdBQVcsRUFBRTZDLGdCQUFnQixJQUFJL0MsS0FBSyxLQUFLLENBQUU7Y0FDN0NELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO2dCQUFBLE9BQVF5QyxpQkFBaUIsQ0FBQzNDLE1BQU0sQ0FBQztjQUFBO1lBQUMsR0FMcENBLE1BQU0sQ0FBQytDLEVBTWIsQ0FBQztVQUFBLENBQ0g7UUFBQyxDQUNPLENBQ1o7TUFBQSxHQWhCUUUsZ0JBQWdCLENBQUMsQ0FpQnRCO0lBQUMsQ0FDVyxDQUFDO0VBQUEsQ0FDUCxDQUFDO0FBRXJCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -28,7 +28,7 @@ import { useGlobalContext } from '../../../context/global-context';
28
28
  import { ModalFileExceeds } from '../../organisms/ModalFileExceeds';
29
29
  import { SlashCommandDropdown } from '../SlashCommandDropdown';
30
30
  import { useSlashCommands } from '../../../hooks/useSlashCommands';
31
- import { quickActionTitleToType } from '../../../utils/slashCommandMarker';
31
+ import { resolveQuickActionType } from '../../../utils/hoursPlannerQuickActionType';
32
32
  import { useT } from '../../../hooks/useT';
33
33
  import { TelescopeIcon } from '../icons/TelescopeIcon';
34
34
  import { EVENTS, useEvent } from '../../../hooks/useEvent';
@@ -392,7 +392,7 @@ export var MAIAInput = function MAIAInput(_ref) {
392
392
  var handleSelectSlashCommand = useCallback(function (command) {
393
393
  var _editorRef$current9, _state$text2, _editorRef$current1;
394
394
  eventAmplitude(EVENTS.aiChatQuickActionSelect, {
395
- type_quick_action: quickActionTitleToType(command.id, command.title),
395
+ type_quick_action: resolveQuickActionType(command),
396
396
  origin_quick_action: 'slash_menu'
397
397
  });
398
398
  var state = (_editorRef$current9 = editorRef.current) === null || _editorRef$current9 === void 0 ? void 0 : _editorRef$current9.serialize();
@@ -831,4 +831,4 @@ export var MAIAInput = function MAIAInput(_ref) {
831
831
  }), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
832
832
  });
833
833
  };
834
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJxdWlja0FjdGlvblRpdGxlVG9UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2FnZW50JGVudGl0eSIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwiZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmIiwicG9wb3ZlckFuY2hvclJlZiIsImxheW91dE1vZGUiLCJfdXNlVCIsInQiLCJlZGl0b3JSZWYiLCJmaWxlSW5wdXRSZWYiLCJpbnRlcm5hbFdyYXBwZXJSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsInNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhhc1R5cGluZ1ByZXNlbmNlIiwic2V0SGFzVHlwaW5nUHJlc2VuY2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRm9jdXNlZCIsInNldElzRm9jdXNlZCIsIl91c2VTdGF0ZTciLCJpc09wZW4iLCJleGNsdWRlZEZpbGVzIiwiZXhjZWVkZWRGaWxlcyIsImZpbGVTaXplcyIsIl91c2VTdGF0ZTgiLCJtb2RhbFByb3BzIiwic2V0TW9kYWxQcm9wcyIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInRvZ2dsZURlZXBTZWFyY2giLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJhZ2VudCIsInBsdXNNZW51WkluZGV4IiwiX3VzZU1lbnRpb25Qb3BvdmVyIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlUG9wb3ZlcktleURvd24iLCJoYW5kbGVLZXlEb3duIiwicG9wb3Zlck5vZGUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInBsdXNNZW51QW5jaG9yIiwic2V0UGx1c01lbnVBbmNob3IiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG9vbENoaXBFeGl0aW5nIiwic2V0VG9vbENoaXBFeGl0aW5nIiwidG9vbENoaXBFeGl0VGltZXJSZWYiLCJzZWFyY2hNb2RlQWN0aXZlUmVmIiwid2ViIiwiZGVlcCIsInBsdXNNZW51T3BlbiIsIkJvb2xlYW4iLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsInByZXZpb3VzTGF5b3V0TW9kZVJlZiIsImFuYWx5dGljc0FnZW50VHlwZSIsImFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCIsInR5cGUiLCJlbnRpdHkiLCJfdXNlU2xhc2hDb21tYW5kcyIsImlkIiwic2xhc2hDb21tYW5kcyIsImNvbW1hbmRzIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNob3dTbGFzaERyb3Bkb3duIiwic2V0U2hvd1NsYXNoRHJvcGRvd24iLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2Iiwic2xhc2hRdWVyeSIsInNldFNsYXNoUXVlcnkiLCJzbGFzaE1lbnVXYXNPcGVuUmVmIiwic2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwid2luZG93Iiwic2V0VGltZW91dCIsIl9lZGl0b3JSZWYkY3VycmVudCIsImN1cnJlbnQiLCJmb2N1cyIsImNsb3NlUGx1c01lbnUiLCJjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0IiwiY2xlYXJUaW1lb3V0IiwiaGFuZGxlUGx1c0J1dHRvbkNsaWNrIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImN1cnJlbnRUYXJnZXQiLCJhaUNoYXRQbHVzT3BlbiIsIl9vYmplY3RTcHJlYWQiLCJhZ2VudF90eXBlIiwiaGFuZGxlUGx1c01lbnVBdHRhY2giLCJfZmlsZUlucHV0UmVmJGN1cnJlbnQiLCJhaUNoYXRUb29scyIsIm9wdGlvbiIsImxlbmd0aCIsImNsaWNrIiwiYmVnaW5Ub29sQ2hpcEV4aXQiLCJ3YXNXZWIiLCJ3YXNEZWVwIiwiX3NlYXJjaE1vZGVBY3RpdmVSZWYkIiwiaGFuZGxlUGx1c01lbnVXZWJTZWFyY2giLCJoYW5kbGVQbHVzTWVudURlZXBTZWFyY2giLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwiY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIiLCJzZW5kRGlzYWJsZWQiLCJhZ2VudENoYW5nZWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsIl9lZGl0b3JSZWYkY3VycmVudDMiLCJwcmV2aW91c0xheW91dE1vZGUiLCJ0aW1lb3V0SWQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwiaXNTcGVjaWFsaXN0QWdlbnQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiX3JlZjIiLCJfcmVmMyIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJtYWlhQ29udGV4dE1lbnRpb25Jbml0IiwiZGlzY29ubmVjdCIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50NSIsImNsZWFyIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVJlZm9jdXMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ2IiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQ3IiwiX3N0YXRlJHRleHQiLCJfc3RhdGUkbWVudGlvbnMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ4Iiwic3RhdGUiLCJzZXJpYWxpemUiLCJ0ZXh0IiwidHJpbSIsIm1lbnRpb25zIiwiaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kIiwiY29tbWFuZCIsIl9lZGl0b3JSZWYkY3VycmVudDkiLCJfc3RhdGUkdGV4dDIiLCJfZWRpdG9yUmVmJGN1cnJlbnQxIiwiYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QiLCJ0eXBlX3F1aWNrX2FjdGlvbiIsInRpdGxlIiwib3JpZ2luX3F1aWNrX2FjdGlvbiIsInRyaWdnZXJQYXJ0IiwiY29uY2F0IiwiYmVmb3JlVHJpZ2dlciIsImVuZHNXaXRoIiwic2xpY2UiLCJpc0VtcHR5QmVmb3JlVHJpZ2dlciIsIl9lZGl0b3JSZWYkY3VycmVudDAiLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJsYWJlbCIsImhhbmRsZUNsb3NlU2xhc2hEcm9wZG93biIsImhhbmRsZUVkaXRvcklucHV0IiwiX3JlZjQiLCJfZWRpdG9yUmVmJGN1cnJlbnQxMCIsInRyaWdnZXIiLCJzbGFzaFRyaWdnZXIiLCJ2aXN1YWxNdWx0aWxpbmUiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJleHBsaWNpdE11bHRpbGluZSIsImluY2x1ZGVzIiwiaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCIsInN0YWJsZVZpc3VhbE11bHRpbGluZSIsIm5leHRJc011bHRpbGluZSIsIm5leHRIYXNUeXBpbmdQcmVzZW5jZSIsIm5leHRUeXBpbmdQcmVzZW5jZSIsInByZXYiLCJuZXh0IiwiYWN0aXZlIiwiYWlDaGF0UXVpY2tBY3Rpb25PcGVuIiwicXVlcnkiLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRmlsZVNlbGVjdCIsImZpbGVzIiwidGFyZ2V0IiwiZmlsZXNJbnNlcnRlZCIsImlzTmV3Rm9ybWF0IiwiZXh0ZW5zaW9uIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJleGNsdWRlZEZpbGUiLCJmaWxlTmFtZVBhcnRzIiwibmFtZSIsInNwbGl0IiwiZmlsZUV4dGVuc2lvbiIsInBvcCIsInRvTG93ZXJDYXNlIiwic2l6ZSIsInB1c2giLCJ0eXBlRmlsZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwidmFsdWUiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiaGFuZGxlV3JhcHBlckZvY3VzIiwiaGFuZGxlV3JhcHBlckJsdXIiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiY29udGFpbnMiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJwbHVzSWNvbkNvbG9yIiwic2Vjb25kYXJ5IiwibWVkaXVtR3JheSIsInBsdXNNZW51SWNvbkNvbG9yIiwibWVudUljb24iLCJwbHVzTWVudVNlbGVjdGVkQ29sb3IiLCJ0ZXh0QnJhbmRCb2xkIiwiYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiIsImNvbG9yIiwiY2hpcENsb3NlSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2hpbGRyZW4iLCJyZWYiLCJoYXNBdHRhY2htZW50cyIsIm9uRm9jdXMiLCJvbkJsdXIiLCJzdHlsZSIsInBvc2l0aW9uIiwib25TZWxlY3QiLCJvbkNsb3NlIiwiZGlzcGxheSIsImdhcCIsImFsaWduSXRlbXMiLCJtYXAiLCJhdHRhY2htZW50IiwiaW5kZXgiLCJfZmlsZU5hbWVQYXJ0cyRwb3AyIiwiX2F0dGFjaG1lbnQkdHlwZSIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJzdGFydHNXaXRoIiwiaXNJbWFnZSIsInpJbmRleCIsImljb24iLCJvbkNsaWNrIiwiJGNvbXBhY3RSb3ciLCIkbWVudU9wZW4iLCJvcGVuIiwiYW5jaG9yRWwiLCJhbmNob3JPcmlnaW4iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJzeCIsInNsb3RQcm9wcyIsInBhcGVyIiwiZWxldmF0aW9uIiwib3ZlcmZsb3ciLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5Ub3AiLCIkc2VsZWN0ZWQiLCIkaG92ZXJlZCIsIiRleGl0aW5nIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwiJGNsb3NlU2hvd24iLCJncmlkQ29sdW1uIiwiZ3JpZFJvdyIsIm1pbldpZHRoIiwiYWxpZ25TZWxmIiwib25JbnB1dCIsIm9uS2V5RG93biIsImhhc1ZhbHVlcyIsIm11bHRpcGxlIiwiYWNjZXB0IiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdm9pZCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1sb25lbHktaWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7XG4gIENoYW5nZUV2ZW50LFxuICBLZXlib2FyZEV2ZW50LFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG4gIE11dGFibGVSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBQYXBlclBsYW5lIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGFwZXJQbGFuZSdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IEdsb2JlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvR2xvYmUnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BsdXMnXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZWNrJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5pbXBvcnQge1xuICBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24sXG4gIEFjdGl2ZVRvb2xDaGlwTGFiZWwsXG4gIEFjdGl2ZVRvb2xDaGlwUm9vdCxcbiAgUGx1c01lbnVEaXZpZGVyLFxuICBQbHVzTWVudUlubmVyQ29sdW1uLFxuICBQbHVzTWVudUl0ZW1CdXR0b24sXG4gIFBsdXNNZW51SXRlbUxhYmVsLFxuICBQbHVzTWVudVBhcGVyLFxuICBQbHVzTWVudVRvb2xzUm93LFxuICBQbHVzVG9nZ2xlQnV0dG9uLFxuICBTQ01JQXR0YWNobWVudCxcbiAgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uLFxuICBTdHlsZWRNQUlBSW5wdXRXcmFwcGVyLFxuICBTdHlsZWRNQUlBU2VuZEJ1dHRvbixcbiAgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCxcbiAgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCxcbiAgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCxcbiAgU3R5bGVkTUFJQVN0b3BCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wSWNvbixcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IFNsYXNoQ29tbWFuZERyb3Bkb3duIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kRHJvcGRvd24nXG5pbXBvcnQgeyB1c2VTbGFzaENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU2xhc2hDb21tYW5kcydcbmltcG9ydCB7IHF1aWNrQWN0aW9uVGl0bGVUb1R5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zbGFzaENvbW1hbmRNYXJrZXInXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcbmltcG9ydCB7IE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxuICBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5pbXBvcnQgeyBBUFBDVUVTX0VWRU5UUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3IsIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25FZGl0b3InXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZU1lbnRpb25Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBUT09MX0NISVBfRVhJVF9NUyA9IDIyMFxuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICAvKiogRXhwb25lIGVsIHdyYXBwZXIgZGVsIGlucHV0IHBhcmEgYW5jbGFyIHBvcG92ZXJzIChtZW5jaW9uZXMsIHBpbiBkZSBjb250ZXh0bykuICovXG4gIHBvcG92ZXJBbmNob3JSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgbGF5b3V0TW9kZT86ICdzaWRlYmFyJyB8ICdmdWxsc2NyZWVuJyB8ICdmbG9hdGluZydcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbiAgcG9wb3ZlckFuY2hvclJlZjogZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmLFxuICBsYXlvdXRNb2RlLFxufTogTUFJQUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlPihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgaW50ZXJuYWxXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmID8/IGludGVybmFsV3JhcHBlclJlZlxuICBjb25zdCBbaGFzV3JhcHBlZFRvU2Vjb25kTGluZSwgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc1R5cGluZ1ByZXNlbmNlLCBzZXRIYXNUeXBpbmdQcmVzZW5jZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZURlZXBTZWFyY2gsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBwbHVzTWVudVpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTMwMCwgJ292ZXJsYXknKVxuXG4gIGNvbnN0IHtcbiAgICBwb3BvdmVyT3BlbixcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsXG4gICAgaGFuZGxlVHJpZ2dlcixcbiAgICBoYW5kbGVLZXlEb3duOiBoYW5kbGVQb3BvdmVyS2V5RG93bixcbiAgICBwb3BvdmVyTm9kZSxcbiAgfSA9IHVzZU1lbnRpb25Qb3BvdmVyKHtcbiAgICBlZGl0b3JSZWYsXG4gICAgcG9wb3ZlckFuY2hvclJlZjogd3JhcHBlclJlZixcbiAgfSlcblxuICBjb25zdCBbcGx1c01lbnVBbmNob3IsIHNldFBsdXNNZW51QW5jaG9yXSA9IHVzZVN0YXRlPEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FjdGl2ZVRvb2xDaGlwSG92ZXJlZCwgc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdG9vbENoaXBFeGl0aW5nLCBzZXRUb29sQ2hpcEV4aXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRvb2xDaGlwRXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcbiAgY29uc3Qgc2VhcmNoTW9kZUFjdGl2ZVJlZiA9IHVzZVJlZih7IHdlYjogZmFsc2UsIGRlZXA6IGZhbHNlIH0pXG4gIGNvbnN0IHBsdXNNZW51T3BlbiA9IEJvb2xlYW4ocGx1c01lbnVBbmNob3IpXG5cbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNMYXlvdXRNb2RlUmVmID0gdXNlUmVmPE1BSUFJbnB1dFByb3BzWydsYXlvdXRNb2RlJ10+KHVuZGVmaW5lZClcblxuICBjb25zdCBhbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlKGFnZW50KVxuICBjb25zdCBhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuICAvLyBTbGFzaCBjb21tYW5kcyBhcGxpY2FuIGEgY2xvbmVzIGVzcGVjaWFsaXN0YXMgeSBhbCBvcmNoZXN0cmF0b3IgZ2xvYmFsIChlc3RlIGFncmVnYSBsb3MgZGUgc3VzIHN1YmFnZW50ZXMpLlxuICAvLyBMb3MgY3VzdG9tIHkgbG9zIGNsb25lIGdsb2JhbC9tYWlha2VyIG5vIGxvcyB0aWVuZW4gaGFiaWxpdGFkb3MuXG4gIGNvbnN0IHsgY29tbWFuZHM6IHNsYXNoQ29tbWFuZHMgfSA9IHVzZVNsYXNoQ29tbWFuZHMoXG4gICAgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJyAmJiBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJykgfHxcbiAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiBhZ2VudD8uZW50aXR5ICE9PSAnZ2xvYmFsJylcbiAgICAgID8gYWdlbnQ/LmlkXG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4gIGNvbnN0IFtzaG93U2xhc2hEcm9wZG93biwgc2V0U2hvd1NsYXNoRHJvcGRvd25dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzbGFzaFF1ZXJ5LCBzZXRTbGFzaFF1ZXJ5XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBzbGFzaE1lbnVXYXNPcGVuUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIC8qKiBUcmFzIGVsZWdpciBvIHF1aXRhciBiw7pzcXVlZGEgd2ViL3Byb2Z1bmRhOiB2b2x2ZXIgYWwgdGV4dGFyZWEgKFBvcG92ZXIvbWVudSBwdWVkZSByb2JhciBmb2NvKS4gKi9cbiAgY29uc3Qgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCAwKVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjbG9zZVBsdXNNZW51ID0gKCkgPT4ge1xuICAgIHNldFBsdXNNZW51QW5jaG9yKG51bGwpXG4gIH1cblxuICBjb25zdCBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgfVxuICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNCdXR0b25DbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAocGx1c01lbnVBbmNob3IpIHtcbiAgICAgIGNsb3NlUGx1c01lbnUoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFBsdXNNZW51QW5jaG9yKGUuY3VycmVudFRhcmdldClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UGx1c09wZW4sIHsgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLCAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51QXR0YWNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZmlsZXMnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+PSBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGJlZ2luVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgd2FzV2ViID0gaXNXZWJTZWFyY2hBY3RpdmVcbiAgICBjb25zdCB3YXNEZWVwID0gaXNEZWVwU2VhcmNoQWN0aXZlXG4gICAgaWYgKCF3YXNXZWIgJiYgIXdhc0RlZXApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcodHJ1ZSlcbiAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgY29uc3QgeyB3ZWIsIGRlZXAgfSA9IHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudFxuICAgICAgaWYgKHdhc1dlYiAmJiB3ZWIpIHtcbiAgICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICAgIH0gZWxzZSBpZiAod2FzRGVlcCAmJiBkZWVwKSB7XG4gICAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgICAgfVxuICAgICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICAgICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgICB9LCBUT09MX0NISVBfRVhJVF9NUylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51V2ViU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnc2VhcmNoJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudURlZXBTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQoKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdkZWVwX3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgIH1cbiAgfSwgW2Rpc2FibGVkXSlcblxuICBjb25zdCBjb21wYWN0U2luZ2xlUm93VG9vbGJhciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gYXR0YWNobWVudHMubGVuZ3RoID09PSAwICYmICFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlICYmICFoYXNXcmFwcGVkVG9TZWNvbmRMaW5lLFxuICAgIFthdHRhY2htZW50cy5sZW5ndGgsIGlzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGhhc1dyYXBwZWRUb1NlY29uZExpbmVdXG4gIClcblxuICBjb25zdCBzZW5kRGlzYWJsZWQgPSB1c2VNZW1vKFxuICAgICgpID0+ICFoYXNUeXBpbmdQcmVzZW5jZSAmJiBhdHRhY2htZW50cy5sZW5ndGggPT09IDAsXG4gICAgW2hhc1R5cGluZ1ByZXNlbmNlLCBhdHRhY2htZW50cy5sZW5ndGhdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudCA9IHsgd2ViOiBpc1dlYlNlYXJjaEFjdGl2ZSwgZGVlcDogaXNEZWVwU2VhcmNoQWN0aXZlIH1cbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzV2ViU2VhcmNoQWN0aXZlICYmICFpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSlcbiAgICB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICAvLyBBdXRvLWZvY3VzIGN1YW5kbyBjYW1iaWEgZWwgYWdlbnRlIG8gbGEgY29udmVyc2FjacOzbiwgbyBhbCBtb250YXIgZWwgY29tcG9uZW50ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFnZW50Q2hhbmdlZCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ICE9PSBhZ2VudD8uaWRcbiAgICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnRcbiAgICBjb25zdCBjdXJyZW50Q2hhdElkID0gY2hhdElkXG4gICAgY29uc3QgY2hhdENoYW5nZWQgPSBwcmV2aW91c0NoYXRJZCAhPT0gY3VycmVudENoYXRJZFxuICAgIGNvbnN0IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA9XG4gICAgICAocHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0NoYXRJZCA9PT0gbnVsbCkgJiYgY3VycmVudENoYXRJZCAhPT0gdW5kZWZpbmVkICYmIGN1cnJlbnRDaGF0SWQgIT09IG51bGxcbiAgICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ICE9PSBuZXdDaGF0S2V5XG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZFxuXG4gICAgaWYgKChhZ2VudENoYW5nZWQgfHwgY2hhdENoYW5nZWQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0IHx8IG5ld0NoYXRTdGFydGVkIHx8IGlzSW5pdGlhbE1vdW50KSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGRlbGF5ID0gaXNJbml0aWFsTW91bnQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID8gMjAwIDogMTAwXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlZCkgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0sIGRlbGF5KVxuICAgIH1cblxuICAgIHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID0gYWdlbnQ/LmlkXG4gICAgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9IGNoYXRJZFxuICAgIHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ID0gbmV3Q2hhdEtleVxuICB9LCBbYWdlbnQ/LmlkLCBjaGF0SWQsIG5ld0NoYXRLZXksIGRpc2FibGVkXSlcblxuICAvLyBBdXRvLWZvY3VzIGN1YW5kbyBjYW1iaWEgbGEgZGlzcG9zaWNpw7NuIGRlbCBtb2RhbCAoc2lkZWJhciAvIGZ1bGxzY3JlZW4gLyBmbG9hdGluZylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxheW91dE1vZGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0xheW91dE1vZGUgPSBwcmV2aW91c0xheW91dE1vZGVSZWYuY3VycmVudFxuICAgIHByZXZpb3VzTGF5b3V0TW9kZVJlZi5jdXJyZW50ID0gbGF5b3V0TW9kZVxuXG4gICAgaWYgKHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gbGF5b3V0TW9kZSB8fCBkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH1cbiAgICB9LCAyMDApXG5cbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gIH0sIFtsYXlvdXRNb2RlLCBkaXNhYmxlZF0pXG5cbiAgLy8gQXBwY3Vlczogbm90aWZ5IHRoYXQgdGhlIGlucHV0IGlzIHZpc2libGUgZm9yIHNwZWNpYWxpc3QgYWdlbnRzIChjbG9uZSArIHByb2plY3QvY2xpZW50KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3BlY2lhbGlzdEFnZW50ID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcbiAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudCB8fCAhaXNTcGVjaWFsaXN0QWdlbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgdHJhY2tBcHBjdWVzRXZlbnQoQVBQQ1VFU19FVkVOVFMubWFpYUNvbnRleHRNZW50aW9uSW5pdClcbiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgdGhyZXNob2xkOiAwLjEgfVxuICAgIClcblxuICAgIG9ic2VydmVyLm9ic2VydmUod3JhcHBlclJlZi5jdXJyZW50KVxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LnR5cGUsIGFnZW50Py5lbnRpdHldKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICB9LCBbcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICAvLyBNYW50ZW5lciBmb2NvIGFsIHNlbGVjY2lvbmFyIHVuIGNvbnRleHRvIHJlY2llbnRlIChlbCBjbGljayBlbiBlbCBwaWxsIGxvIHJvYmEgYWwgaW5wdXQpLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVJlZm9jdXMgPSAoKSA9PiB7XG4gICAgICBpZiAoZGlzYWJsZWQpIHJldHVyblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1pbnB1dC1yZWZvY3VzJywgaGFuZGxlUmVmb2N1cylcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1pbnB1dC1yZWZvY3VzJywgaGFuZGxlUmVmb2N1cylcbiAgfSwgW2Rpc2FibGVkXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgIGNvbnN0IHRleHQgPSBzdGF0ZT8udGV4dCA/PyAnJ1xuICAgIGlmICghdGV4dC50cmltKCkgJiYgIWF0dGFjaG1lbnRzLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgbWVudGlvbnMgPSBzdGF0ZT8ubWVudGlvbnMgPz8gW11cbiAgICBvblNlbmRNZXNzYWdlKHRleHQsIGF0dGFjaG1lbnRzLCBtZW50aW9ucylcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICB9LCBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZ10pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbW1hbmQ6IEFjdGlvbikgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICAgIHR5cGVfcXVpY2tfYWN0aW9uOiBxdWlja0FjdGlvblRpdGxlVG9UeXBlKGNvbW1hbmQuaWQsIGNvbW1hbmQudGl0bGUpLFxuICAgICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiAnc2xhc2hfbWVudScsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgICAgIGNvbnN0IGJlZm9yZVRyaWdnZXIgPSB0ZXh0LmVuZHNXaXRoKHRyaWdnZXJQYXJ0KSA/IHRleHQuc2xpY2UoMCwgLXRyaWdnZXJQYXJ0Lmxlbmd0aCkgOiB0ZXh0XG4gICAgICBjb25zdCBpc0VtcHR5QmVmb3JlVHJpZ2dlciA9IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoaXNFbXB0eUJlZm9yZVRyaWdnZXIpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZShjb21tYW5kLnRpdGxlLCBhdHRhY2htZW50cywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21tYW5kLmlkKVxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0U2xhc2hDb21tYW5kKHsgaWQ6IGNvbW1hbmQuaWQsIGxhYmVsOiBjb21tYW5kLnRpdGxlIH0pXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIHNsYXNoUXVlcnksIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duID0gKCkgPT4ge1xuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgdHJpZ2dlcixcbiAgICAgIHNsYXNoVHJpZ2dlcixcbiAgICB9OiB7XG4gICAgICB0ZXh0OiBzdHJpbmdcbiAgICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICBzbGFzaFRyaWdnZXI/OiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgdmlzdWFsTXVsdGlsaW5lID0gISFlZGl0b3JSZWYuY3VycmVudD8uaGFzVmlzdWFsTXVsdGlsaW5lKClcbiAgICAgIGNvbnN0IGV4cGxpY2l0TXVsdGlsaW5lID0gdGV4dC5pbmNsdWRlcygnXFxuJylcbiAgICAgIGNvbnN0IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPSB0ZXh0Lmxlbmd0aCA8PSAxICYmICFleHBsaWNpdE11bHRpbGluZSAmJiB2aXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IHN0YWJsZVZpc3VhbE11bHRpbGluZSA9IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPyBmYWxzZSA6IHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3QgbmV4dElzTXVsdGlsaW5lID0gZXhwbGljaXRNdWx0aWxpbmUgfHwgc3RhYmxlVmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SGFzVHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBuZXh0VHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKG5leHRUeXBpbmdQcmVzZW5jZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUocHJldiA9PiB7XG4gICAgICAgIGxldCBuZXh0ID0gcHJldlxuICAgICAgICBpZiAoIW5leHRIYXNUeXBpbmdQcmVzZW5jZSkge1xuICAgICAgICAgIG5leHQgPSBmYWxzZVxuICAgICAgICB9IGVsc2UgaWYgKG5leHRJc011bHRpbGluZSkge1xuICAgICAgICAgIG5leHQgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgfSlcbiAgICAgIG9uQ2hhbmdlPy4oKVxuICAgICAgaGFuZGxlVHJpZ2dlcih0cmlnZ2VyKVxuXG4gICAgICBpZiAoc2xhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2xhc2hDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uT3BlbilcbiAgICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24odHJ1ZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeShzbGFzaFRyaWdnZXIucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlciwgc2xhc2hDb21tYW5kcywgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSBoYW5kbGVTZW5kTWVzc2FnZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlUG9wb3ZlcktleURvd24sIHBvcG92ZXJPcGVuLCBzZW5kRGlzYWJsZWQsIGRpc2FibGVkLCBoYW5kbGVTZW5kTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBhcmNoaXZvcyBkZSBhdWRpbzogaGFzdGEgMTBNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBwbHVzSWNvbkNvbG9yID0gaXNGb2N1c2VkID8gY29sb3JzLnRleHQuc2Vjb25kYXJ5IDogY29sb3JzLnRleHQubWVkaXVtR3JheVxuICBjb25zdCBwbHVzTWVudUljb25Db2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS5tZW51SWNvblxuICBjb25zdCBwbHVzTWVudVNlbGVjdGVkQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkudGV4dEJyYW5kQm9sZFxuXG4gIGxldCBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uOiBSZWFjdE5vZGVcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8Q3Jvc3MgY29sb3I9e01BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwQ2xvc2VJY29ufSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPEdsb2JlIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2Uge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8VGVsZXNjb3BlSWNvbiBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcj17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9XG4gICAgICAgIGRhdGEtYXBwY3Vlcz1cIm1haWFfY2hhdF9pbnB1dFwiXG4gICAgICAgIGRhdGEtbWFpYS1zdHJlYW1pbmc9e2lzU3RyZWFtaW5nID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fVxuICAgICAgPlxuICAgICAgICB7c2hvd1NsYXNoRHJvcGRvd24gJiYgKFxuICAgICAgICAgIDxTbGFzaENvbW1hbmREcm9wZG93blxuICAgICAgICAgICAgY29tbWFuZHM9e3NsYXNoQ29tbWFuZHN9XG4gICAgICAgICAgICBxdWVyeT17c2xhc2hRdWVyeX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmR9XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgIDxTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5vcGVuUGx1c01lbnVBcmlhJyl9XG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlUGx1c01lbnV9XG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgc3g9e3sgekluZGV4OiBwbHVzTWVudVpJbmRleCB9fVxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEF0dGFjaCBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51RGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICB7KGlzV2ViU2VhcmNoQWN0aXZlIHx8IGlzRGVlcFNlYXJjaEFjdGl2ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAkZXhpdGluZz17dG9vbENoaXBFeGl0aW5nfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NlU2hvd249e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwUm9vdD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICA8L1N0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGw+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uOiAyLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCwgYWxpZ25TZWxmOiAnY2VudGVyJyB9XG4gICAgICAgICAgICAgICAgOiB7IGdyaWRDb2x1bW46ICcxIC8gLTEnLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc2VuZCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTZW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3NlbmREaXNhYmxlZCB8fCBkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWVzPXtoYXNUeXBpbmdQcmVzZW5jZSB8fCBhdHRhY2htZW50cy5sZW5ndGggPiAwfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFwZXJQbGFuZSBjb2xvcj1cIiNCRkJGQkZcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGw+XG4gICAgICAgIDwvU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgYWNjZXB0PVwiLnR4dCwubWQsLmNzdiwuZG9jLC5kb2N4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRNQUlBSW5wdXRXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiBmYWxzZSwgZXhjbHVkZWRGaWxlczogW10sIGV4Y2VlZGVkRmlsZXM6IFtdLCBmaWxlU2l6ZXM6IHt9IH0pfVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjbHVkZWRGaWxlc31cbiAgICAgICAgICBleGNlZWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2VlZGVkRmlsZXN9XG4gICAgICAgICAgZmlsZVNpemVzPXttb2RhbFByb3BzLmZpbGVTaXplc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7cG9wb3Zlck5vZGUgJiYgY3JlYXRlUG9ydGFsKHBvcG92ZXJOb2RlLCBkb2N1bWVudC5ib2R5KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FNRUEsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLFlBQVksUUFBUSxXQUFXO0FBQ3hDLFNBQVNDLE9BQU8sUUFBUSxlQUFlO0FBQ3ZDLFNBQVNDLFVBQVUsUUFBUSw2Q0FBNkM7QUFDeEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUss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
834
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJyZXNvbHZlUXVpY2tBY3Rpb25UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVE9PTF9DSElQX0VYSVRfTVMiLCJNQUlBSW5wdXQiLCJfcmVmIiwiX2FnZW50JGVudGl0eSIsIm9uU2VuZE1lc3NhZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsImlzU3RyZWFtaW5nIiwiaXNXcml0aW5nIiwib25TdG9wR2VuZXJhdGlvbiIsInBsYWNlaG9sZGVyIiwib25DaGFuZ2UiLCJfcmVmJGFsaWduQnV0dG9ucyIsImFsaWduQnV0dG9ucyIsIm9uRmlsZUF0dGFjaCIsIm9uRGVsZXRlQXR0YWNobWVudCIsIl9yZWYkYXR0YWNobWVudHMiLCJhdHRhY2htZW50cyIsImNoYXRJZCIsIm5ld0NoYXRLZXkiLCJ0b29sdGlwWkluZGV4IiwiZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmIiwicG9wb3ZlckFuY2hvclJlZiIsImxheW91dE1vZGUiLCJfdXNlVCIsInQiLCJlZGl0b3JSZWYiLCJmaWxlSW5wdXRSZWYiLCJpbnRlcm5hbFdyYXBwZXJSZWYiLCJ3cmFwcGVyUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiaGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsInNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImhhc1R5cGluZ1ByZXNlbmNlIiwic2V0SGFzVHlwaW5nUHJlc2VuY2UiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzRm9jdXNlZCIsInNldElzRm9jdXNlZCIsIl91c2VTdGF0ZTciLCJpc09wZW4iLCJleGNsdWRlZEZpbGVzIiwiZXhjZWVkZWRGaWxlcyIsImZpbGVTaXplcyIsIl91c2VTdGF0ZTgiLCJtb2RhbFByb3BzIiwic2V0TW9kYWxQcm9wcyIsImV2ZW50QW1wbGl0dWRlIiwiX3VzZUdsb2JhbENvbnRleHQiLCJ0b2dnbGVXZWJTZWFyY2giLCJpc1dlYlNlYXJjaEFjdGl2ZSIsInRvZ2dsZURlZXBTZWFyY2giLCJpc0RlZXBTZWFyY2hBY3RpdmUiLCJhZ2VudCIsInBsdXNNZW51WkluZGV4IiwiX3VzZU1lbnRpb25Qb3BvdmVyIiwicG9wb3Zlck9wZW4iLCJyZXNldE1lbnRpb25PcGVuVHJhY2tpbmciLCJoYW5kbGVUcmlnZ2VyIiwiaGFuZGxlUG9wb3ZlcktleURvd24iLCJoYW5kbGVLZXlEb3duIiwicG9wb3Zlck5vZGUiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInBsdXNNZW51QW5jaG9yIiwic2V0UGx1c01lbnVBbmNob3IiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJhY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwidG9vbENoaXBFeGl0aW5nIiwic2V0VG9vbENoaXBFeGl0aW5nIiwidG9vbENoaXBFeGl0VGltZXJSZWYiLCJzZWFyY2hNb2RlQWN0aXZlUmVmIiwid2ViIiwiZGVlcCIsInBsdXNNZW51T3BlbiIsIkJvb2xlYW4iLCJwcmV2aW91c0FnZW50SWRSZWYiLCJ1bmRlZmluZWQiLCJwcmV2aW91c0NoYXRJZFJlZiIsInByZXZpb3VzTmV3Q2hhdEtleVJlZiIsInByZXZpb3VzTGF5b3V0TW9kZVJlZiIsImFuYWx5dGljc0FnZW50VHlwZSIsImFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCIsInR5cGUiLCJlbnRpdHkiLCJfdXNlU2xhc2hDb21tYW5kcyIsImlkIiwic2xhc2hDb21tYW5kcyIsImNvbW1hbmRzIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNob3dTbGFzaERyb3Bkb3duIiwic2V0U2hvd1NsYXNoRHJvcGRvd24iLCJfdXNlU3RhdGUxNSIsIl91c2VTdGF0ZTE2Iiwic2xhc2hRdWVyeSIsInNldFNsYXNoUXVlcnkiLCJzbGFzaE1lbnVXYXNPcGVuUmVmIiwic2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwid2luZG93Iiwic2V0VGltZW91dCIsIl9lZGl0b3JSZWYkY3VycmVudCIsImN1cnJlbnQiLCJmb2N1cyIsImNsb3NlUGx1c01lbnUiLCJjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0IiwiY2xlYXJUaW1lb3V0IiwiaGFuZGxlUGx1c0J1dHRvbkNsaWNrIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImN1cnJlbnRUYXJnZXQiLCJhaUNoYXRQbHVzT3BlbiIsIl9vYmplY3RTcHJlYWQiLCJhZ2VudF90eXBlIiwiaGFuZGxlUGx1c01lbnVBdHRhY2giLCJfZmlsZUlucHV0UmVmJGN1cnJlbnQiLCJhaUNoYXRUb29scyIsIm9wdGlvbiIsImxlbmd0aCIsImNsaWNrIiwiYmVnaW5Ub29sQ2hpcEV4aXQiLCJ3YXNXZWIiLCJ3YXNEZWVwIiwiX3NlYXJjaE1vZGVBY3RpdmVSZWYkIiwiaGFuZGxlUGx1c01lbnVXZWJTZWFyY2giLCJoYW5kbGVQbHVzTWVudURlZXBTZWFyY2giLCJfZWRpdG9yUmVmJGN1cnJlbnQyIiwiY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIiLCJzZW5kRGlzYWJsZWQiLCJhZ2VudENoYW5nZWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsIl9lZGl0b3JSZWYkY3VycmVudDMiLCJwcmV2aW91c0xheW91dE1vZGUiLCJ0aW1lb3V0SWQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwiaXNTcGVjaWFsaXN0QWdlbnQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiX3JlZjIiLCJfcmVmMyIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJtYWlhQ29udGV4dE1lbnRpb25Jbml0IiwiZGlzY29ubmVjdCIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50NSIsImNsZWFyIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVJlZm9jdXMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ2IiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQ3IiwiX3N0YXRlJHRleHQiLCJfc3RhdGUkbWVudGlvbnMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ4Iiwic3RhdGUiLCJzZXJpYWxpemUiLCJ0ZXh0IiwidHJpbSIsIm1lbnRpb25zIiwiaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kIiwiY29tbWFuZCIsIl9lZGl0b3JSZWYkY3VycmVudDkiLCJfc3RhdGUkdGV4dDIiLCJfZWRpdG9yUmVmJGN1cnJlbnQxIiwiYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QiLCJ0eXBlX3F1aWNrX2FjdGlvbiIsIm9yaWdpbl9xdWlja19hY3Rpb24iLCJ0cmlnZ2VyUGFydCIsImNvbmNhdCIsImJlZm9yZVRyaWdnZXIiLCJlbmRzV2l0aCIsInNsaWNlIiwiaXNFbXB0eUJlZm9yZVRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQwIiwidGl0bGUiLCJpbnNlcnRTbGFzaENvbW1hbmQiLCJsYWJlbCIsImhhbmRsZUNsb3NlU2xhc2hEcm9wZG93biIsImhhbmRsZUVkaXRvcklucHV0IiwiX3JlZjQiLCJfZWRpdG9yUmVmJGN1cnJlbnQxMCIsInRyaWdnZXIiLCJzbGFzaFRyaWdnZXIiLCJ2aXN1YWxNdWx0aWxpbmUiLCJoYXNWaXN1YWxNdWx0aWxpbmUiLCJleHBsaWNpdE11bHRpbGluZSIsImluY2x1ZGVzIiwiaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCIsInN0YWJsZVZpc3VhbE11bHRpbGluZSIsIm5leHRJc011bHRpbGluZSIsIm5leHRIYXNUeXBpbmdQcmVzZW5jZSIsIm5leHRUeXBpbmdQcmVzZW5jZSIsInByZXYiLCJuZXh0IiwiYWN0aXZlIiwiYWlDaGF0UXVpY2tBY3Rpb25PcGVuIiwicXVlcnkiLCJrZXkiLCJzaGlmdEtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRmlsZVNlbGVjdCIsImZpbGVzIiwidGFyZ2V0IiwiZmlsZXNJbnNlcnRlZCIsImlzTmV3Rm9ybWF0IiwiZXh0ZW5zaW9uIiwiaXNPbGRGb3JtYXQiLCJpc0F1ZGlvRm9ybWF0IiwiQXJyYXkiLCJmcm9tIiwiZm9yRWFjaCIsImZpbGUiLCJfZmlsZU5hbWVQYXJ0cyRwb3AiLCJleGNsdWRlZEZpbGUiLCJmaWxlTmFtZVBhcnRzIiwibmFtZSIsInNwbGl0IiwiZmlsZUV4dGVuc2lvbiIsInBvcCIsInRvTG93ZXJDYXNlIiwic2l6ZSIsInB1c2giLCJ0eXBlRmlsZSIsInBhcnNlZEZpbGUiLCJGaWxlIiwidmFsdWUiLCJoYW5kbGVEZWxldGVBdHRhY2htZW50IiwiZmlsZUlkIiwiaGFuZGxlV3JhcHBlckZvY3VzIiwiaGFuZGxlV3JhcHBlckJsdXIiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiY29udGFpbnMiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJwbHVzSWNvbkNvbG9yIiwic2Vjb25kYXJ5IiwibWVkaXVtR3JheSIsInBsdXNNZW51SWNvbkNvbG9yIiwibWVudUljb24iLCJwbHVzTWVudVNlbGVjdGVkQ29sb3IiLCJ0ZXh0QnJhbmRCb2xkIiwiYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiIsImNvbG9yIiwiY2hpcENsb3NlSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2hpbGRyZW4iLCJyZWYiLCJoYXNBdHRhY2htZW50cyIsIm9uRm9jdXMiLCJvbkJsdXIiLCJzdHlsZSIsInBvc2l0aW9uIiwib25TZWxlY3QiLCJvbkNsb3NlIiwiZGlzcGxheSIsImdhcCIsImFsaWduSXRlbXMiLCJtYXAiLCJhdHRhY2htZW50IiwiaW5kZXgiLCJfZmlsZU5hbWVQYXJ0cyRwb3AyIiwiX2F0dGFjaG1lbnQkdHlwZSIsImlzSW1hZ2VCeUV4dGVuc2lvbiIsImlzSW1hZ2VCeU1pbWUiLCJzdGFydHNXaXRoIiwiaXNJbWFnZSIsInpJbmRleCIsImljb24iLCJvbkNsaWNrIiwiJGNvbXBhY3RSb3ciLCIkbWVudU9wZW4iLCJvcGVuIiwiYW5jaG9yRWwiLCJhbmNob3JPcmlnaW4iLCJ2ZXJ0aWNhbCIsImhvcml6b250YWwiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJzeCIsInNsb3RQcm9wcyIsInBhcGVyIiwiZWxldmF0aW9uIiwib3ZlcmZsb3ciLCJib3JkZXJSYWRpdXMiLCJib3hTaGFkb3ciLCJiYWNrZ3JvdW5kQ29sb3IiLCJtYXJnaW5Ub3AiLCIkc2VsZWN0ZWQiLCIkaG92ZXJlZCIsIiRleGl0aW5nIiwib25Nb3VzZUVudGVyIiwib25Nb3VzZUxlYXZlIiwiJGNsb3NlU2hvd24iLCJncmlkQ29sdW1uIiwiZ3JpZFJvdyIsIm1pbldpZHRoIiwiYWxpZ25TZWxmIiwib25JbnB1dCIsIm9uS2V5RG93biIsImhhc1ZhbHVlcyIsIm11bHRpcGxlIiwiYWNjZXB0IiwiYm9keSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9NQUlBSW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb250aW51ZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdm9pZCAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1sb25lbHktaWYgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIHByZWZlci1kZXN0cnVjdHVyaW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9jbGljay1ldmVudHMtaGF2ZS1rZXktZXZlbnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnMgKi9cbmltcG9ydCB7XG4gIENoYW5nZUV2ZW50LFxuICBLZXlib2FyZEV2ZW50LFxuICBNb3VzZUV2ZW50LFxuICBSZWFjdE5vZGUsXG4gIE11dGFibGVSZWZPYmplY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgUG9wb3ZlciB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBQYXBlclBsYW5lIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvUGFwZXJQbGFuZSdcbmltcG9ydCB7IEF0dGFjaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0F0dGFjaCdcbmltcG9ydCB7IEdsb2JlIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvR2xvYmUnXG5pbXBvcnQgeyBUcmFzaCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1RyYXNoJ1xuaW1wb3J0IHsgUGx1cyB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BsdXMnXG5pbXBvcnQgeyBDaGVjayB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0NoZWNrJ1xuaW1wb3J0IHsgQ3Jvc3MgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9Dcm9zcydcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdAcHJvamVjdGNvci90b29sdGlwdjIvbGliL2NvbXBvbmVudHMvVG9vbHRpcCdcbmltcG9ydCBjb2xvcnMgZnJvbSAnQHByb2plY3Rjb3IvdGhlbWUvbGliL2Jhc2UvY29sb3JzJ1xuXG5pbXBvcnQge1xuICBBY3RpdmVUb29sQ2hpcEljb25CdXR0b24sXG4gIEFjdGl2ZVRvb2xDaGlwTGFiZWwsXG4gIEFjdGl2ZVRvb2xDaGlwUm9vdCxcbiAgUGx1c01lbnVEaXZpZGVyLFxuICBQbHVzTWVudUlubmVyQ29sdW1uLFxuICBQbHVzTWVudUl0ZW1CdXR0b24sXG4gIFBsdXNNZW51SXRlbUxhYmVsLFxuICBQbHVzTWVudVBhcGVyLFxuICBQbHVzTWVudVRvb2xzUm93LFxuICBQbHVzVG9nZ2xlQnV0dG9uLFxuICBTQ01JQXR0YWNobWVudCxcbiAgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uLFxuICBTdHlsZWRNQUlBSW5wdXRXcmFwcGVyLFxuICBTdHlsZWRNQUlBU2VuZEJ1dHRvbixcbiAgU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCxcbiAgU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCxcbiAgU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCxcbiAgU3R5bGVkTUFJQVN0b3BCdXR0b24sXG4gIFN0eWxlZE1BSUFTdG9wSWNvbixcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IFNsYXNoQ29tbWFuZERyb3Bkb3duIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kRHJvcGRvd24nXG5pbXBvcnQgeyB1c2VTbGFzaENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU2xhc2hDb21tYW5kcydcbmltcG9ydCB7IHJlc29sdmVRdWlja0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ob3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcbmltcG9ydCB7IE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxuICBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5pbXBvcnQgeyBBUFBDVUVTX0VWRU5UUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3IsIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25FZGl0b3InXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZU1lbnRpb25Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuXG5jb25zdCBUT09MX0NISVBfRVhJVF9NUyA9IDIyMFxuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICAvKiogRXhwb25lIGVsIHdyYXBwZXIgZGVsIGlucHV0IHBhcmEgYW5jbGFyIHBvcG92ZXJzIChtZW5jaW9uZXMsIHBpbiBkZSBjb250ZXh0bykuICovXG4gIHBvcG92ZXJBbmNob3JSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgbGF5b3V0TW9kZT86ICdzaWRlYmFyJyB8ICdmdWxsc2NyZWVuJyB8ICdmbG9hdGluZydcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbiAgcG9wb3ZlckFuY2hvclJlZjogZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmLFxuICBsYXlvdXRNb2RlLFxufTogTUFJQUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlPihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgaW50ZXJuYWxXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmID8/IGludGVybmFsV3JhcHBlclJlZlxuICBjb25zdCBbaGFzV3JhcHBlZFRvU2Vjb25kTGluZSwgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc1R5cGluZ1ByZXNlbmNlLCBzZXRIYXNUeXBpbmdQcmVzZW5jZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IHRvZ2dsZVdlYlNlYXJjaCwgaXNXZWJTZWFyY2hBY3RpdmUsIHRvZ2dsZURlZXBTZWFyY2gsIGlzRGVlcFNlYXJjaEFjdGl2ZSwgYWdlbnQgfSA9IHVzZUdsb2JhbENvbnRleHQoKVxuICBjb25zdCBwbHVzTWVudVpJbmRleCA9IHVzZU1haWFUYXNrUGFuZWxaSW5kZXgoMTMwMCwgJ292ZXJsYXknKVxuXG4gIGNvbnN0IHtcbiAgICBwb3BvdmVyT3BlbixcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsXG4gICAgaGFuZGxlVHJpZ2dlcixcbiAgICBoYW5kbGVLZXlEb3duOiBoYW5kbGVQb3BvdmVyS2V5RG93bixcbiAgICBwb3BvdmVyTm9kZSxcbiAgfSA9IHVzZU1lbnRpb25Qb3BvdmVyKHtcbiAgICBlZGl0b3JSZWYsXG4gICAgcG9wb3ZlckFuY2hvclJlZjogd3JhcHBlclJlZixcbiAgfSlcblxuICBjb25zdCBbcGx1c01lbnVBbmNob3IsIHNldFBsdXNNZW51QW5jaG9yXSA9IHVzZVN0YXRlPEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW2FjdGl2ZVRvb2xDaGlwSG92ZXJlZCwgc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbdG9vbENoaXBFeGl0aW5nLCBzZXRUb29sQ2hpcEV4aXRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRvb2xDaGlwRXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcbiAgY29uc3Qgc2VhcmNoTW9kZUFjdGl2ZVJlZiA9IHVzZVJlZih7IHdlYjogZmFsc2UsIGRlZXA6IGZhbHNlIH0pXG4gIGNvbnN0IHBsdXNNZW51T3BlbiA9IEJvb2xlYW4ocGx1c01lbnVBbmNob3IpXG5cbiAgLy8gSW5pY2lhbGl6YXIgbGFzIHJlZmVyZW5jaWFzIGNvbW8gdW5kZWZpbmVkIHBhcmEgZGV0ZWN0YXIgZWwgcHJpbWVyIGNhbWJpbyBjb3JyZWN0YW1lbnRlXG4gIGNvbnN0IHByZXZpb3VzQWdlbnRJZFJlZiA9IHVzZVJlZjxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNDaGF0SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTmV3Q2hhdEtleVJlZiA9IHVzZVJlZjxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcbiAgY29uc3QgcHJldmlvdXNMYXlvdXRNb2RlUmVmID0gdXNlUmVmPE1BSUFJbnB1dFByb3BzWydsYXlvdXRNb2RlJ10+KHVuZGVmaW5lZClcblxuICBjb25zdCBhbmFseXRpY3NBZ2VudFR5cGUgPSBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlKGFnZW50KVxuICBjb25zdCBhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgPSBhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyA/IHsgZW50aXR5OiBhZ2VudC5lbnRpdHkgPz8gbnVsbCB9IDoge31cblxuICAvLyBTbGFzaCBjb21tYW5kcyBhcGxpY2FuIGEgY2xvbmVzIGVzcGVjaWFsaXN0YXMgeSBhbCBvcmNoZXN0cmF0b3IgZ2xvYmFsIChlc3RlIGFncmVnYSBsb3MgZGUgc3VzIHN1YmFnZW50ZXMpLlxuICAvLyBMb3MgY3VzdG9tIHkgbG9zIGNsb25lIGdsb2JhbC9tYWlha2VyIG5vIGxvcyB0aWVuZW4gaGFiaWxpdGFkb3MuXG4gIGNvbnN0IHsgY29tbWFuZHM6IHNsYXNoQ29tbWFuZHMgfSA9IHVzZVNsYXNoQ29tbWFuZHMoXG4gICAgKGFnZW50Py50eXBlID09PSAnb3JjaGVzdHJhdG9yJyAmJiBhZ2VudD8uZW50aXR5ID09PSAnZ2xvYmFsJykgfHxcbiAgICAgIChhZ2VudD8udHlwZSA9PT0gJ2Nsb25lJyAmJiBhZ2VudD8uZW50aXR5ICE9PSAnZ2xvYmFsJylcbiAgICAgID8gYWdlbnQ/LmlkXG4gICAgICA6IHVuZGVmaW5lZFxuICApXG4gIGNvbnN0IFtzaG93U2xhc2hEcm9wZG93biwgc2V0U2hvd1NsYXNoRHJvcGRvd25dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtzbGFzaFF1ZXJ5LCBzZXRTbGFzaFF1ZXJ5XSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBzbGFzaE1lbnVXYXNPcGVuUmVmID0gdXNlUmVmKGZhbHNlKVxuXG4gIC8qKiBUcmFzIGVsZWdpciBvIHF1aXRhciBiw7pzcXVlZGEgd2ViL3Byb2Z1bmRhOiB2b2x2ZXIgYWwgdGV4dGFyZWEgKFBvcG92ZXIvbWVudSBwdWVkZSByb2JhciBmb2NvKS4gKi9cbiAgY29uc3Qgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uID0gKCkgPT4ge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCAwKVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjbG9zZVBsdXNNZW51ID0gKCkgPT4ge1xuICAgIHNldFBsdXNNZW51QW5jaG9yKG51bGwpXG4gIH1cblxuICBjb25zdCBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgfVxuICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNCdXR0b25DbGljayA9IChlOiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAocGx1c01lbnVBbmNob3IpIHtcbiAgICAgIGNsb3NlUGx1c01lbnUoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNldFBsdXNNZW51QW5jaG9yKGUuY3VycmVudFRhcmdldClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UGx1c09wZW4sIHsgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLCAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQgfSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51QXR0YWNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZmlsZXMnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgaWYgKGF0dGFjaG1lbnRzLmxlbmd0aCA+PSBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykgcmV0dXJuXG4gICAgZmlsZUlucHV0UmVmLmN1cnJlbnQ/LmNsaWNrKClcbiAgfVxuXG4gIGNvbnN0IGJlZ2luVG9vbENoaXBFeGl0ID0gKCkgPT4ge1xuICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgd2FzV2ViID0gaXNXZWJTZWFyY2hBY3RpdmVcbiAgICBjb25zdCB3YXNEZWVwID0gaXNEZWVwU2VhcmNoQWN0aXZlXG4gICAgaWYgKCF3YXNXZWIgJiYgIXdhc0RlZXApIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcodHJ1ZSlcbiAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgY29uc3QgeyB3ZWIsIGRlZXAgfSA9IHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudFxuICAgICAgaWYgKHdhc1dlYiAmJiB3ZWIpIHtcbiAgICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICAgIH0gZWxzZSBpZiAod2FzRGVlcCAmJiBkZWVwKSB7XG4gICAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgICAgfVxuICAgICAgc2V0VG9vbENoaXBFeGl0aW5nKGZhbHNlKVxuICAgICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgICB9LCBUT09MX0NISVBfRVhJVF9NUylcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBsdXNNZW51V2ViU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIH1cbiAgICB0b2dnbGVXZWJTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnc2VhcmNoJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudURlZXBTZWFyY2ggPSAoKSA9PiB7XG4gICAgY2xvc2VQbHVzTWVudSgpXG4gICAgaWYgKGlzRGVlcFNlYXJjaEFjdGl2ZSkge1xuICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhbmNlbFBlbmRpbmdUb29sQ2hpcEV4aXQoKVxuICAgIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlRGVlcFNlYXJjaCgpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFRvb2xzLCB7XG4gICAgICBhZ2VudF90eXBlOiBhbmFseXRpY3NBZ2VudFR5cGUsXG4gICAgICBvcHRpb246ICdkZWVwX3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgIH1cbiAgfSwgW2Rpc2FibGVkXSlcblxuICBjb25zdCBjb21wYWN0U2luZ2xlUm93VG9vbGJhciA9IHVzZU1lbW8oXG4gICAgKCkgPT4gYXR0YWNobWVudHMubGVuZ3RoID09PSAwICYmICFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlICYmICFoYXNXcmFwcGVkVG9TZWNvbmRMaW5lLFxuICAgIFthdHRhY2htZW50cy5sZW5ndGgsIGlzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmUsIGhhc1dyYXBwZWRUb1NlY29uZExpbmVdXG4gIClcblxuICBjb25zdCBzZW5kRGlzYWJsZWQgPSB1c2VNZW1vKFxuICAgICgpID0+ICFoYXNUeXBpbmdQcmVzZW5jZSAmJiBhdHRhY2htZW50cy5sZW5ndGggPT09IDAsXG4gICAgW2hhc1R5cGluZ1ByZXNlbmNlLCBhdHRhY2htZW50cy5sZW5ndGhdXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNlYXJjaE1vZGVBY3RpdmVSZWYuY3VycmVudCA9IHsgd2ViOiBpc1dlYlNlYXJjaEFjdGl2ZSwgZGVlcDogaXNEZWVwU2VhcmNoQWN0aXZlIH1cbiAgfSwgW2lzV2ViU2VhcmNoQWN0aXZlLCBpc0RlZXBTZWFyY2hBY3RpdmVdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmICh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgIH1cbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzV2ViU2VhcmNoQWN0aXZlICYmICFpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSlcbiAgICB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICAvLyBBdXRvLWZvY3VzIGN1YW5kbyBjYW1iaWEgZWwgYWdlbnRlIG8gbGEgY29udmVyc2FjacOzbiwgbyBhbCBtb250YXIgZWwgY29tcG9uZW50ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFnZW50Q2hhbmdlZCA9IHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ICE9PSBhZ2VudD8uaWRcbiAgICBjb25zdCBwcmV2aW91c0NoYXRJZCA9IHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnRcbiAgICBjb25zdCBjdXJyZW50Q2hhdElkID0gY2hhdElkXG4gICAgY29uc3QgY2hhdENoYW5nZWQgPSBwcmV2aW91c0NoYXRJZCAhPT0gY3VycmVudENoYXRJZFxuICAgIGNvbnN0IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA9XG4gICAgICAocHJldmlvdXNDaGF0SWQgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0NoYXRJZCA9PT0gbnVsbCkgJiYgY3VycmVudENoYXRJZCAhPT0gdW5kZWZpbmVkICYmIGN1cnJlbnRDaGF0SWQgIT09IG51bGxcbiAgICBjb25zdCBuZXdDaGF0U3RhcnRlZCA9IHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ICE9PSBuZXdDaGF0S2V5XG4gICAgY29uc3QgaXNJbml0aWFsTW91bnQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9PT0gdW5kZWZpbmVkICYmIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZFxuXG4gICAgaWYgKChhZ2VudENoYW5nZWQgfHwgY2hhdENoYW5nZWQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0IHx8IG5ld0NoYXRTdGFydGVkIHx8IGlzSW5pdGlhbE1vdW50KSAmJiAhZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGRlbGF5ID0gaXNJbml0aWFsTW91bnQgfHwgY2hhbmdlZEZyb21OZXdDaGF0VG9PbGRDaGF0ID8gMjAwIDogMTAwXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFkaXNhYmxlZCkgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0sIGRlbGF5KVxuICAgIH1cblxuICAgIHByZXZpb3VzQWdlbnRJZFJlZi5jdXJyZW50ID0gYWdlbnQ/LmlkXG4gICAgcHJldmlvdXNDaGF0SWRSZWYuY3VycmVudCA9IGNoYXRJZFxuICAgIHByZXZpb3VzTmV3Q2hhdEtleVJlZi5jdXJyZW50ID0gbmV3Q2hhdEtleVxuICB9LCBbYWdlbnQ/LmlkLCBjaGF0SWQsIG5ld0NoYXRLZXksIGRpc2FibGVkXSlcblxuICAvLyBBdXRvLWZvY3VzIGN1YW5kbyBjYW1iaWEgbGEgZGlzcG9zaWNpw7NuIGRlbCBtb2RhbCAoc2lkZWJhciAvIGZ1bGxzY3JlZW4gLyBmbG9hdGluZylcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWxheW91dE1vZGUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c0xheW91dE1vZGUgPSBwcmV2aW91c0xheW91dE1vZGVSZWYuY3VycmVudFxuICAgIHByZXZpb3VzTGF5b3V0TW9kZVJlZi5jdXJyZW50ID0gbGF5b3V0TW9kZVxuXG4gICAgaWYgKHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gdW5kZWZpbmVkIHx8IHByZXZpb3VzTGF5b3V0TW9kZSA9PT0gbGF5b3V0TW9kZSB8fCBkaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIH1cblxuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH1cbiAgICB9LCAyMDApXG5cbiAgICByZXR1cm4gKCkgPT4gd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gIH0sIFtsYXlvdXRNb2RlLCBkaXNhYmxlZF0pXG5cbiAgLy8gQXBwY3Vlczogbm90aWZ5IHRoYXQgdGhlIGlucHV0IGlzIHZpc2libGUgZm9yIHNwZWNpYWxpc3QgYWdlbnRzIChjbG9uZSArIHByb2plY3QvY2xpZW50KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGlzU3BlY2lhbGlzdEFnZW50ID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgKGFnZW50Py5lbnRpdHkgPT09ICdwcm9qZWN0JyB8fCBhZ2VudD8uZW50aXR5ID09PSAnY2xpZW50JylcbiAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudCB8fCAhaXNTcGVjaWFsaXN0QWdlbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgKFtlbnRyeV0pID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LmlzSW50ZXJzZWN0aW5nKSB7XG4gICAgICAgICAgdHJhY2tBcHBjdWVzRXZlbnQoQVBQQ1VFU19FVkVOVFMubWFpYUNvbnRleHRNZW50aW9uSW5pdClcbiAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgdGhyZXNob2xkOiAwLjEgfVxuICAgIClcblxuICAgIG9ic2VydmVyLm9ic2VydmUod3JhcHBlclJlZi5jdXJyZW50KVxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KClcbiAgfSwgW2FnZW50Py5pZCwgYWdlbnQ/LnR5cGUsIGFnZW50Py5lbnRpdHldKVxuXG4gIC8vIENsZWFyIGlucHV0IHdoZW4gc2Vzc2lvbiBjaGFuZ2VzICh1c2VyIHN3aXRjaGVzIHRvIGEgZGlmZmVyZW50IGNoYXQpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlU2Vzc2lvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYXQtc2Vzc2lvbi1jaGFuZ2VkJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSlcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICB9LCBbcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICAvLyBNYW50ZW5lciBmb2NvIGFsIHNlbGVjY2lvbmFyIHVuIGNvbnRleHRvIHJlY2llbnRlIChlbCBjbGljayBlbiBlbCBwaWxsIGxvIHJvYmEgYWwgaW5wdXQpLlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVJlZm9jdXMgPSAoKSA9PiB7XG4gICAgICBpZiAoZGlzYWJsZWQpIHJldHVyblxuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbWFpYS1pbnB1dC1yZWZvY3VzJywgaGFuZGxlUmVmb2N1cylcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWFpYS1pbnB1dC1yZWZvY3VzJywgaGFuZGxlUmVmb2N1cylcbiAgfSwgW2Rpc2FibGVkXSlcblxuICBjb25zdCBoYW5kbGVTZW5kTWVzc2FnZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgIGNvbnN0IHRleHQgPSBzdGF0ZT8udGV4dCA/PyAnJ1xuICAgIGlmICghdGV4dC50cmltKCkgJiYgIWF0dGFjaG1lbnRzLmxlbmd0aCkgcmV0dXJuXG4gICAgY29uc3QgbWVudGlvbnMgPSBzdGF0ZT8ubWVudGlvbnMgPz8gW11cbiAgICBvblNlbmRNZXNzYWdlKHRleHQsIGF0dGFjaG1lbnRzLCBtZW50aW9ucylcbiAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUoZmFsc2UpXG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcoKVxuICB9LCBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZ10pXG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0U2xhc2hDb21tYW5kID0gdXNlQ2FsbGJhY2soXG4gICAgKGNvbW1hbmQ6IEFjdGlvbikgPT4ge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uU2VsZWN0LCB7XG4gICAgICAgIHR5cGVfcXVpY2tfYWN0aW9uOiByZXNvbHZlUXVpY2tBY3Rpb25UeXBlKGNvbW1hbmQpLFxuICAgICAgICBvcmlnaW5fcXVpY2tfYWN0aW9uOiAnc2xhc2hfbWVudScsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzdGF0ZSA9IGVkaXRvclJlZi5jdXJyZW50Py5zZXJpYWxpemUoKVxuICAgICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgICBjb25zdCB0cmlnZ2VyUGFydCA9IGAvJHtzbGFzaFF1ZXJ5fWBcbiAgICAgIGNvbnN0IGJlZm9yZVRyaWdnZXIgPSB0ZXh0LmVuZHNXaXRoKHRyaWdnZXJQYXJ0KSA/IHRleHQuc2xpY2UoMCwgLXRyaWdnZXJQYXJ0Lmxlbmd0aCkgOiB0ZXh0XG4gICAgICBjb25zdCBpc0VtcHR5QmVmb3JlVHJpZ2dlciA9IGJlZm9yZVRyaWdnZXIudHJpbSgpID09PSAnJ1xuXG4gICAgICBpZiAoaXNFbXB0eUJlZm9yZVRyaWdnZXIpIHtcbiAgICAgICAgb25TZW5kTWVzc2FnZShjb21tYW5kLnRpdGxlLCBhdHRhY2htZW50cywgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb21tYW5kLmlkKVxuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uY2xlYXIoKVxuICAgICAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZShmYWxzZSlcbiAgICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBlZGl0b3JSZWYuY3VycmVudD8uaW5zZXJ0U2xhc2hDb21tYW5kKHsgaWQ6IGNvbW1hbmQuaWQsIGxhYmVsOiBjb21tYW5kLnRpdGxlIH0pXG4gICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgIHNldFNsYXNoUXVlcnkoJycpXG4gICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH0sXG4gICAgW2F0dGFjaG1lbnRzLCBvblNlbmRNZXNzYWdlLCByZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIHNsYXNoUXVlcnksIGV2ZW50QW1wbGl0dWRlXVxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2xvc2VTbGFzaERyb3Bkb3duID0gKCkgPT4ge1xuICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gIH1cblxuICBjb25zdCBoYW5kbGVFZGl0b3JJbnB1dCA9IHVzZUNhbGxiYWNrKFxuICAgICh7XG4gICAgICB0ZXh0LFxuICAgICAgdHJpZ2dlcixcbiAgICAgIHNsYXNoVHJpZ2dlcixcbiAgICB9OiB7XG4gICAgICB0ZXh0OiBzdHJpbmdcbiAgICAgIG1lbnRpb25zOiBDb250ZXh0TWVudGlvbltdXG4gICAgICB0cmlnZ2VyOiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZzsgYXRSdW5MZW5ndGg6IG51bWJlciB9XG4gICAgICBzbGFzaFRyaWdnZXI/OiB7IGFjdGl2ZTogYm9vbGVhbjsgcXVlcnk6IHN0cmluZyB9XG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgdmlzdWFsTXVsdGlsaW5lID0gISFlZGl0b3JSZWYuY3VycmVudD8uaGFzVmlzdWFsTXVsdGlsaW5lKClcbiAgICAgIGNvbnN0IGV4cGxpY2l0TXVsdGlsaW5lID0gdGV4dC5pbmNsdWRlcygnXFxuJylcbiAgICAgIGNvbnN0IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPSB0ZXh0Lmxlbmd0aCA8PSAxICYmICFleHBsaWNpdE11bHRpbGluZSAmJiB2aXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IHN0YWJsZVZpc3VhbE11bHRpbGluZSA9IGlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2ggPyBmYWxzZSA6IHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3QgbmV4dElzTXVsdGlsaW5lID0gZXhwbGljaXRNdWx0aWxpbmUgfHwgc3RhYmxlVmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SGFzVHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG4gICAgICBjb25zdCBuZXh0VHlwaW5nUHJlc2VuY2UgPSB0ZXh0LnRyaW0oKS5sZW5ndGggPiAwXG5cbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKG5leHRUeXBpbmdQcmVzZW5jZSlcbiAgICAgIHNldEhhc1dyYXBwZWRUb1NlY29uZExpbmUocHJldiA9PiB7XG4gICAgICAgIGxldCBuZXh0ID0gcHJldlxuICAgICAgICBpZiAoIW5leHRIYXNUeXBpbmdQcmVzZW5jZSkge1xuICAgICAgICAgIG5leHQgPSBmYWxzZVxuICAgICAgICB9IGVsc2UgaWYgKG5leHRJc011bHRpbGluZSkge1xuICAgICAgICAgIG5leHQgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgfSlcbiAgICAgIG9uQ2hhbmdlPy4oKVxuICAgICAgaGFuZGxlVHJpZ2dlcih0cmlnZ2VyKVxuXG4gICAgICBpZiAoc2xhc2hUcmlnZ2VyPy5hY3RpdmUgJiYgc2xhc2hDb21tYW5kcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICghc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFF1aWNrQWN0aW9uT3BlbilcbiAgICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgc2V0U2hvd1NsYXNoRHJvcGRvd24odHJ1ZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeShzbGFzaFRyaWdnZXIucXVlcnkpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgaGFuZGxlVHJpZ2dlciwgc2xhc2hDb21tYW5kcywgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IEtleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgICBpZiAoaGFuZGxlUG9wb3ZlcktleURvd24oZSkpIHJldHVyblxuICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInICYmICFlLnNoaWZ0S2V5ICYmICFwb3BvdmVyT3Blbikge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKCFzZW5kRGlzYWJsZWQgJiYgIWRpc2FibGVkKSBoYW5kbGVTZW5kTWVzc2FnZSgpXG4gICAgICB9XG4gICAgfSxcbiAgICBbaGFuZGxlUG9wb3ZlcktleURvd24sIHBvcG92ZXJPcGVuLCBzZW5kRGlzYWJsZWQsIGRpc2FibGVkLCBoYW5kbGVTZW5kTWVzc2FnZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKCFmaWxlcykgcmV0dXJuXG5cbiAgICBjb25zdCBleGNlZWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZXhjbHVkZWRGaWxlczogc3RyaW5nW10gPSBbXVxuICAgIGNvbnN0IGZpbGVTaXplczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gICAgbGV0IGZpbGVzSW5zZXJ0ZWQgPSBhdHRhY2htZW50cy5sZW5ndGhcblxuICAgIC8vIERlZmluaXIgbMOtbWl0ZXMgcGFyYSBkaWZlcmVudGVzIHRpcG9zIGRlIGFyY2hpdm9zXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgQXJyYXkuZnJvbShmaWxlcykuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIC8vIFZhbGlkYWNpb25lcyBlc3BlY8OtZmljYXMgc2Vnw7puIGVsIHRpcG8gZGUgYXJjaGl2b1xuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIC8vIFBhcmEgbnVldm9zIGZvcm1hdG9zOiBoYXN0YSA0Ljk5TUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBmb3JtYXRvcyBhbnRlcmlvcmVzOiBoYXN0YSAxTUIgcG9yIGFyY2hpdm8sIGhhc3RhIE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIGFyY2hpdm9zXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgLy8gUGFyYSBhcmNoaXZvcyBkZSBhdWRpbzogaGFzdGEgMTBNQiBwb3IgYXJjaGl2bywgaGFzdGEgTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMgYXJjaGl2b3NcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cblxuICAgIGlmIChmaWxlSW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgZmlsZUlucHV0UmVmLmN1cnJlbnQudmFsdWUgPSAnJ1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQgPSAoZmlsZUlkOiBzdHJpbmcpID0+IHtcbiAgICBvbkRlbGV0ZUF0dGFjaG1lbnQ/LihmaWxlSWQpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyRm9jdXMgPSAoKSA9PiBzZXRJc0ZvY3VzZWQodHJ1ZSlcbiAgY29uc3QgaGFuZGxlV3JhcHBlckJsdXIgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudD8uY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgc2V0SXNGb2N1c2VkKGZhbHNlKVxuICAgICAgfVxuICAgIH0sIDApXG4gIH1cblxuICBjb25zdCBoYW5kbGVTdG9wR2VuZXJhdGlvbiA9ICgpID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0U3RvcFJlc3BvbnNlKVxuICAgIG9uU3RvcEdlbmVyYXRpb24/LigpXG4gIH1cblxuICBjb25zdCBwbHVzSWNvbkNvbG9yID0gaXNGb2N1c2VkID8gY29sb3JzLnRleHQuc2Vjb25kYXJ5IDogY29sb3JzLnRleHQubWVkaXVtR3JheVxuICBjb25zdCBwbHVzTWVudUljb25Db2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS5tZW51SWNvblxuICBjb25zdCBwbHVzTWVudVNlbGVjdGVkQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkudGV4dEJyYW5kQm9sZFxuXG4gIGxldCBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uOiBSZWFjdE5vZGVcbiAgaWYgKGFjdGl2ZVRvb2xDaGlwSG92ZXJlZCkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8Q3Jvc3MgY29sb3I9e01BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwQ2xvc2VJY29ufSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPEdsb2JlIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2Uge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8VGVsZXNjb3BlSWNvbiBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRNQUlBSW5wdXRXcmFwcGVyXG4gICAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgICAgZGlzYWJsZWQ9e2ZhbHNlfVxuICAgICAgICBhbGlnbkJ1dHRvbnM9e2FsaWduQnV0dG9uc31cbiAgICAgICAgaGFzQXR0YWNobWVudHM9eyEhYXR0YWNobWVudHMubGVuZ3RofVxuICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhcj17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9XG4gICAgICAgIGRhdGEtYXBwY3Vlcz1cIm1haWFfY2hhdF9pbnB1dFwiXG4gICAgICAgIGRhdGEtbWFpYS1zdHJlYW1pbmc9e2lzU3RyZWFtaW5nID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fVxuICAgICAgPlxuICAgICAgICB7c2hvd1NsYXNoRHJvcGRvd24gJiYgKFxuICAgICAgICAgIDxTbGFzaENvbW1hbmREcm9wZG93blxuICAgICAgICAgICAgY29tbWFuZHM9e3NsYXNoQ29tbWFuZHN9XG4gICAgICAgICAgICBxdWVyeT17c2xhc2hRdWVyeX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmR9XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgIDxTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5vcGVuUGx1c01lbnVBcmlhJyl9XG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlUGx1c01lbnV9XG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgc3g9e3sgekluZGV4OiBwbHVzTWVudVpJbmRleCB9fVxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEF0dGFjaCBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51RGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICB7KGlzV2ViU2VhcmNoQWN0aXZlIHx8IGlzRGVlcFNlYXJjaEFjdGl2ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAkZXhpdGluZz17dG9vbENoaXBFeGl0aW5nfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NlU2hvd249e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwUm9vdD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICA8L1N0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGw+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uOiAyLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCwgYWxpZ25TZWxmOiAnY2VudGVyJyB9XG4gICAgICAgICAgICAgICAgOiB7IGdyaWRDb2x1bW46ICcxIC8gLTEnLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgICAge2lzV3JpdGluZyA/IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc3RvcCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEJ1dHRvbiBkaXNhYmxlZD17ZmFsc2V9IG9uQ2xpY2s9e2hhbmRsZVN0b3BHZW5lcmF0aW9ufSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BJY29uIC8+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU3RvcEJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoJ2NoYXQuc2VuZCcpfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGRpc3BsYXk6ICdpbmxpbmUtZmxleCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTZW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRNZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3NlbmREaXNhYmxlZCB8fCBkaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgaGFzVmFsdWVzPXtoYXNUeXBpbmdQcmVzZW5jZSB8fCBhdHRhY2htZW50cy5sZW5ndGggPiAwfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8UGFwZXJQbGFuZSBjb2xvcj1cIiNCRkJGQkZcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L1N0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGw+XG4gICAgICAgIDwvU3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgcmVmPXtmaWxlSW5wdXRSZWZ9XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgYWNjZXB0PVwiLnR4dCwubWQsLmNzdiwuZG9jLC5kb2N4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgPC9TdHlsZWRNQUlBSW5wdXRXcmFwcGVyPlxuICAgICAge21vZGFsUHJvcHMuaXNPcGVuICYmIChcbiAgICAgICAgPE1vZGFsRmlsZUV4Y2VlZHNcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRNb2RhbFByb3BzKHsgaXNPcGVuOiBmYWxzZSwgZXhjbHVkZWRGaWxlczogW10sIGV4Y2VlZGVkRmlsZXM6IFtdLCBmaWxlU2l6ZXM6IHt9IH0pfVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjbHVkZWRGaWxlc31cbiAgICAgICAgICBleGNlZWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2VlZGVkRmlsZXN9XG4gICAgICAgICAgZmlsZVNpemVzPXttb2RhbFByb3BzLmZpbGVTaXplc31cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICB7cG9wb3Zlck5vZGUgJiYgY3JlYXRlUG9ydGFsKHBvcG92ZXJOb2RlLCBkb2N1bWVudC5ib2R5KX1cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FNRUEsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLFNBQVNDLFlBQVksUUFBUSxXQUFXO0FBQ3hDLFNBQVNDLE9BQU8sUUFBUSxlQUFlO0FBQ3ZDLFNBQVNDLFVBQVUsUUFBUSw2Q0FBNkM7QUFDeEUsU0FBU0MsTUFBTSxRQUFRLHlDQUF5QztBQUNoRSxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsSUFBSSxRQUFRLHVDQUF1QztBQUM1RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLEtBQUssUUFBUSx3Q0FB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