@projectcor/maia-components 2.47.0 → 2.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { Switch } from '../Switch';
2
- import { SCOCPWrapper, SCOCPTextContainer, SCOCPTitle, SCOCPDescription } from './OptionCorPermission.styles';
2
+ import { SCOCPWrapper, SCOCPTextContainer, SCOCPTitle, SCOCPDescription, SCOCPAction, SCOCPControlSlot, SCOCPStatusIndicator } from './OptionCorPermission.styles';
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  export var OptionCorPermission = function OptionCorPermission(_ref) {
5
5
  var title = _ref.title,
@@ -8,20 +8,48 @@ export var OptionCorPermission = function OptionCorPermission(_ref) {
8
8
  onChange = _ref.onChange,
9
9
  _ref$disabled = _ref.disabled,
10
10
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
11
- switchAriaLabel = _ref.switchAriaLabel;
11
+ switchAriaLabel = _ref.switchAriaLabel,
12
+ actionLabel = _ref.actionLabel,
13
+ onAction = _ref.onAction,
14
+ _ref$actionBusy = _ref.actionBusy,
15
+ actionBusy = _ref$actionBusy === void 0 ? false : _ref$actionBusy,
16
+ _ref$actionTone = _ref.actionTone,
17
+ actionTone = _ref$actionTone === void 0 ? 'attention' : _ref$actionTone;
18
+ var showAction = Boolean(actionLabel && onAction);
12
19
  return /*#__PURE__*/_jsxs(SCOCPWrapper, {
13
- children: [/*#__PURE__*/_jsx(Switch, {
14
- checked: checked,
15
- onChange: onChange,
16
- disabled: disabled,
17
- "aria-label": switchAriaLabel || title
20
+ children: [/*#__PURE__*/_jsx(SCOCPControlSlot, {
21
+ children: showAction ? /*#__PURE__*/_jsx(SCOCPStatusIndicator, {
22
+ $tone: actionTone,
23
+ "aria-hidden": "true",
24
+ children: "!"
25
+ }) : /*#__PURE__*/_jsx(Switch, {
26
+ checked: checked,
27
+ onChange: onChange,
28
+ disabled: disabled,
29
+ "aria-label": switchAriaLabel || title
30
+ })
18
31
  }), /*#__PURE__*/_jsxs(SCOCPTextContainer, {
19
32
  children: [/*#__PURE__*/_jsx(SCOCPTitle, {
20
33
  children: title
21
34
  }), /*#__PURE__*/_jsx(SCOCPDescription, {
22
35
  children: description
23
36
  })]
37
+ }), actionLabel && onAction && /*#__PURE__*/_jsx(SCOCPAction, {
38
+ role: "button",
39
+ tabIndex: actionBusy ? -1 : 0,
40
+ "aria-label": "".concat(actionLabel, " ").concat(title),
41
+ "aria-disabled": actionBusy,
42
+ onClick: function onClick() {
43
+ if (!actionBusy) onAction();
44
+ },
45
+ onKeyDown: function onKeyDown(event) {
46
+ if (!actionBusy && (event.key === 'Enter' || event.key === ' ')) {
47
+ event.preventDefault();
48
+ onAction();
49
+ }
50
+ },
51
+ children: actionLabel
24
52
  })]
25
53
  });
26
54
  };
27
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTd2l0Y2giLCJTQ09DUFdyYXBwZXIiLCJTQ09DUFRleHRDb250YWluZXIiLCJTQ09DUFRpdGxlIiwiU0NPQ1BEZXNjcmlwdGlvbiIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJPcHRpb25Db3JQZXJtaXNzaW9uIiwiX3JlZiIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJjaGVja2VkIiwib25DaGFuZ2UiLCJfcmVmJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJzd2l0Y2hBcmlhTGFiZWwiLCJjaGlsZHJlbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL09wdGlvbkNvclBlcm1pc3Npb24vT3B0aW9uQ29yUGVybWlzc2lvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3dpdGNoIH0gZnJvbSAnLi4vU3dpdGNoJ1xuaW1wb3J0IHsgU0NPQ1BXcmFwcGVyLCBTQ09DUFRleHRDb250YWluZXIsIFNDT0NQVGl0bGUsIFNDT0NQRGVzY3JpcHRpb24gfSBmcm9tICcuL09wdGlvbkNvclBlcm1pc3Npb24uc3R5bGVzJ1xuXG5pbnRlcmZhY2UgT3B0aW9uQ29yUGVybWlzc2lvblByb3BzIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIGNoZWNrZWQ6IGJvb2xlYW5cbiAgb25DaGFuZ2U6IChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBzd2l0Y2hBcmlhTGFiZWw/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IE9wdGlvbkNvclBlcm1pc3Npb24gPSAoe1xuICB0aXRsZSxcbiAgZGVzY3JpcHRpb24sXG4gIGNoZWNrZWQsXG4gIG9uQ2hhbmdlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBzd2l0Y2hBcmlhTGFiZWwsXG59OiBPcHRpb25Db3JQZXJtaXNzaW9uUHJvcHMpID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U0NPQ1BXcmFwcGVyPlxuICAgICAgPFN3aXRjaCBjaGVja2VkPXtjaGVja2VkfSBvbkNoYW5nZT17b25DaGFuZ2V9IGRpc2FibGVkPXtkaXNhYmxlZH0gYXJpYS1sYWJlbD17c3dpdGNoQXJpYUxhYmVsIHx8IHRpdGxlfSAvPlxuICAgICAgPFNDT0NQVGV4dENvbnRhaW5lcj5cbiAgICAgICAgPFNDT0NQVGl0bGU+e3RpdGxlfTwvU0NPQ1BUaXRsZT5cbiAgICAgICAgPFNDT0NQRGVzY3JpcHRpb24+e2Rlc2NyaXB0aW9ufTwvU0NPQ1BEZXNjcmlwdGlvbj5cbiAgICAgIDwvU0NPQ1BUZXh0Q29udGFpbmVyPlxuICAgIDwvU0NPQ1BXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxXQUFXO0FBQ2xDLFNBQVNDLFlBQVksRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsZ0JBQWdCLFFBQVEsOEJBQThCO0FBQUEsU0FBQUMsR0FBQSxJQUFBQyxJQUFBLEVBQUFDLElBQUEsSUFBQUMsS0FBQTtBQVc3RyxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQUFDLElBQUEsRUFPQTtFQUFBLElBTjlCQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUNMQyxXQUFXLEdBQUFGLElBQUEsQ0FBWEUsV0FBVztJQUNYQyxPQUFPLEdBQUFILElBQUEsQ0FBUEcsT0FBTztJQUNQQyxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtJQUFBQyxhQUFBLEdBQUFMLElBQUEsQ0FDUk0sUUFBUTtJQUFSQSxRQUFRLEdBQUFELGFBQUEsY0FBRyxLQUFLLEdBQUFBLGFBQUE7SUFDaEJFLGVBQWUsR0FBQVAsSUFBQSxDQUFmTyxlQUFlO0VBRWYsb0JBQ0VULEtBQUEsQ0FBQ1AsWUFBWTtJQUFBaUIsUUFBQSxnQkFDWFosSUFBQSxDQUFDTixNQUFNO01BQUNhLE9BQU8sRUFBRUEsT0FBUTtNQUFDQyxRQUFRLEVBQUVBLFFBQVM7TUFBQ0UsUUFBUSxFQUFFQSxRQUFTO01BQUMsY0FBWUMsZUFBZSxJQUFJTjtJQUFNLENBQUUsQ0FBQyxlQUMxR0gsS0FBQSxDQUFDTixrQkFBa0I7TUFBQWdCLFFBQUEsZ0JBQ2pCWixJQUFBLENBQUNILFVBQVU7UUFBQWUsUUFBQSxFQUFFUDtNQUFLLENBQWEsQ0FBQyxlQUNoQ0wsSUFBQSxDQUFDRixnQkFBZ0I7UUFBQWMsUUFBQSxFQUFFTjtNQUFXLENBQW1CLENBQUM7SUFBQSxDQUNoQyxDQUFDO0VBQUEsQ0FDVCxDQUFDO0FBRW5CLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
55
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTd2l0Y2giLCJTQ09DUFdyYXBwZXIiLCJTQ09DUFRleHRDb250YWluZXIiLCJTQ09DUFRpdGxlIiwiU0NPQ1BEZXNjcmlwdGlvbiIsIlNDT0NQQWN0aW9uIiwiU0NPQ1BDb250cm9sU2xvdCIsIlNDT0NQU3RhdHVzSW5kaWNhdG9yIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJfcmVmIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImNoZWNrZWQiLCJvbkNoYW5nZSIsIl9yZWYkZGlzYWJsZWQiLCJkaXNhYmxlZCIsInN3aXRjaEFyaWFMYWJlbCIsImFjdGlvbkxhYmVsIiwib25BY3Rpb24iLCJfcmVmJGFjdGlvbkJ1c3kiLCJhY3Rpb25CdXN5IiwiX3JlZiRhY3Rpb25Ub25lIiwiYWN0aW9uVG9uZSIsInNob3dBY3Rpb24iLCJCb29sZWFuIiwiY2hpbGRyZW4iLCIkdG9uZSIsInJvbGUiLCJ0YWJJbmRleCIsImNvbmNhdCIsIm9uQ2xpY2siLCJvbktleURvd24iLCJldmVudCIsImtleSIsInByZXZlbnREZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbi9PcHRpb25Db3JQZXJtaXNzaW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTd2l0Y2ggfSBmcm9tICcuLi9Td2l0Y2gnXG5pbXBvcnQge1xuICBTQ09DUFdyYXBwZXIsXG4gIFNDT0NQVGV4dENvbnRhaW5lcixcbiAgU0NPQ1BUaXRsZSxcbiAgU0NPQ1BEZXNjcmlwdGlvbixcbiAgU0NPQ1BBY3Rpb24sXG4gIFNDT0NQQ29udHJvbFNsb3QsXG4gIFNDT0NQU3RhdHVzSW5kaWNhdG9yLFxufSBmcm9tICcuL09wdGlvbkNvclBlcm1pc3Npb24uc3R5bGVzJ1xuXG5pbnRlcmZhY2UgT3B0aW9uQ29yUGVybWlzc2lvblByb3BzIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbjogc3RyaW5nXG4gIGNoZWNrZWQ6IGJvb2xlYW5cbiAgb25DaGFuZ2U6IChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICBzd2l0Y2hBcmlhTGFiZWw/OiBzdHJpbmdcbiAgYWN0aW9uTGFiZWw/OiBzdHJpbmdcbiAgb25BY3Rpb24/OiAoKSA9PiB2b2lkXG4gIGFjdGlvbkJ1c3k/OiBib29sZWFuXG4gIGFjdGlvblRvbmU/OiAnYXR0ZW50aW9uJyB8ICdlcnJvcidcbn1cblxuZXhwb3J0IGNvbnN0IE9wdGlvbkNvclBlcm1pc3Npb24gPSAoe1xuICB0aXRsZSxcbiAgZGVzY3JpcHRpb24sXG4gIGNoZWNrZWQsXG4gIG9uQ2hhbmdlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBzd2l0Y2hBcmlhTGFiZWwsXG4gIGFjdGlvbkxhYmVsLFxuICBvbkFjdGlvbixcbiAgYWN0aW9uQnVzeSA9IGZhbHNlLFxuICBhY3Rpb25Ub25lID0gJ2F0dGVudGlvbicsXG59OiBPcHRpb25Db3JQZXJtaXNzaW9uUHJvcHMpID0+IHtcbiAgY29uc3Qgc2hvd0FjdGlvbiA9IEJvb2xlYW4oYWN0aW9uTGFiZWwgJiYgb25BY3Rpb24pXG4gIHJldHVybiAoXG4gICAgPFNDT0NQV3JhcHBlcj5cbiAgICAgIDxTQ09DUENvbnRyb2xTbG90PlxuICAgICAgICB7c2hvd0FjdGlvbiA/IChcbiAgICAgICAgICA8U0NPQ1BTdGF0dXNJbmRpY2F0b3IgJHRvbmU9e2FjdGlvblRvbmV9IGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgIVxuICAgICAgICAgIDwvU0NPQ1BTdGF0dXNJbmRpY2F0b3I+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFN3aXRjaCBjaGVja2VkPXtjaGVja2VkfSBvbkNoYW5nZT17b25DaGFuZ2V9IGRpc2FibGVkPXtkaXNhYmxlZH0gYXJpYS1sYWJlbD17c3dpdGNoQXJpYUxhYmVsIHx8IHRpdGxlfSAvPlxuICAgICAgICApfVxuICAgICAgPC9TQ09DUENvbnRyb2xTbG90PlxuICAgICAgPFNDT0NQVGV4dENvbnRhaW5lcj5cbiAgICAgICAgPFNDT0NQVGl0bGU+e3RpdGxlfTwvU0NPQ1BUaXRsZT5cbiAgICAgICAgPFNDT0NQRGVzY3JpcHRpb24+e2Rlc2NyaXB0aW9ufTwvU0NPQ1BEZXNjcmlwdGlvbj5cbiAgICAgIDwvU0NPQ1BUZXh0Q29udGFpbmVyPlxuICAgICAge2FjdGlvbkxhYmVsICYmIG9uQWN0aW9uICYmIChcbiAgICAgICAgPFNDT0NQQWN0aW9uXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiSW5kZXg9e2FjdGlvbkJ1c3kgPyAtMSA6IDB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17YCR7YWN0aW9uTGFiZWx9ICR7dGl0bGV9YH1cbiAgICAgICAgICBhcmlhLWRpc2FibGVkPXthY3Rpb25CdXN5fVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIGlmICghYWN0aW9uQnVzeSkgb25BY3Rpb24oKVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoIWFjdGlvbkJ1c3kgJiYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykpIHtcbiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICBvbkFjdGlvbigpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHthY3Rpb25MYWJlbH1cbiAgICAgICAgPC9TQ09DUEFjdGlvbj5cbiAgICAgICl9XG4gICAgPC9TQ09DUFdyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsTUFBTSxRQUFRLFdBQVc7QUFDbEMsU0FDRUMsWUFBWSxFQUNaQyxrQkFBa0IsRUFDbEJDLFVBQVUsRUFDVkMsZ0JBQWdCLEVBQ2hCQyxXQUFX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
@@ -2,17 +2,35 @@ import styled from 'styled-components';
2
2
  export var SCOCPWrapper = styled.div.withConfig({
3
3
  displayName: "OptionCorPermissionstyles__SCOCPWrapper",
4
4
  componentId: "sc-xzueda-0"
5
- })(["display:flex;align-items:center;gap:8px;width:100%;padding:10px;border-radius:8px;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;"]);
5
+ })(["display:flex;align-items:center;gap:10px;width:100%;padding:10px;border-radius:8px;border:1px solid #e0e0e0;background:#fff;box-sizing:border-box;"]);
6
+ export var SCOCPControlSlot = styled.span.withConfig({
7
+ displayName: "OptionCorPermissionstyles__SCOCPControlSlot",
8
+ componentId: "sc-xzueda-1"
9
+ })(["display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:20px;"]);
10
+ export var SCOCPStatusIndicator = styled.span.withConfig({
11
+ displayName: "OptionCorPermissionstyles__SCOCPStatusIndicator",
12
+ componentId: "sc-xzueda-2"
13
+ })(["display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:", ";color:", ";font-size:12px;font-weight:700;line-height:1;"], function (_ref) {
14
+ var $tone = _ref.$tone;
15
+ return $tone === 'error' ? '#fef3f2' : '#fff7ed';
16
+ }, function (_ref2) {
17
+ var $tone = _ref2.$tone;
18
+ return $tone === 'error' ? '#b42318' : '#b45309';
19
+ });
6
20
  export var SCOCPTextContainer = styled.div.withConfig({
7
21
  displayName: "OptionCorPermissionstyles__SCOCPTextContainer",
8
- componentId: "sc-xzueda-1"
22
+ componentId: "sc-xzueda-3"
9
23
  })(["display:flex;flex-direction:column;flex:1;min-width:0;"]);
10
24
  export var SCOCPTitle = styled.span.withConfig({
11
25
  displayName: "OptionCorPermissionstyles__SCOCPTitle",
12
- componentId: "sc-xzueda-2"
26
+ componentId: "sc-xzueda-4"
13
27
  })(["font-size:14px;font-weight:500;color:#20201f;line-height:140%;"]);
14
28
  export var SCOCPDescription = styled.span.withConfig({
15
29
  displayName: "OptionCorPermissionstyles__SCOCPDescription",
16
- componentId: "sc-xzueda-3"
30
+ componentId: "sc-xzueda-5"
17
31
  })(["font-size:12px;font-weight:400;color:#666;line-height:130%;"]);
18
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ09DUFdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDT0NQVGV4dENvbnRhaW5lciIsIlNDT0NQVGl0bGUiLCJzcGFuIiwiU0NPQ1BEZXNjcmlwdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL09wdGlvbkNvclBlcm1pc3Npb24vT3B0aW9uQ29yUGVybWlzc2lvbi5zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBTQ09DUFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDhweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQVGV4dENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGZsZXg6IDE7XG4gIG1pbi13aWR0aDogMDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQVGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogIzIwMjAxZjtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09DUERlc2NyaXB0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICM2NjY7XG4gIGxpbmUtaGVpZ2h0OiAxMzAlO1xuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLE9BQU8sSUFBTUMsWUFBWSxHQUFHRCxNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5SkFVckM7QUFFRCxPQUFPLElBQU1DLGtCQUFrQixHQUFHTixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4REFLM0M7QUFFRCxPQUFPLElBQU1FLFVBQVUsR0FBR1AsTUFBTSxDQUFDUSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0VBS3BDO0FBRUQsT0FBTyxJQUFNSSxnQkFBZ0IsR0FBR1QsTUFBTSxDQUFDUSxJQUFJLENBQUFMLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUVBSzFDIiwiaWdub3JlTGlzdCI6W119
32
+ export var SCOCPAction = styled.span.withConfig({
33
+ displayName: "OptionCorPermissionstyles__SCOCPAction",
34
+ componentId: "sc-xzueda-6"
35
+ })(["display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:28px;padding:4px 10px;box-sizing:border-box;border:1px solid #b8dfee;border-radius:6px;background:#f2faff;color:#006e9b;cursor:pointer;font-size:12px;font-weight:600;line-height:16px;white-space:nowrap;&:hover{background:#e4f4fb;border-color:#8acde5;}&:focus-visible{outline:2px solid #08c;outline-offset:2px;}&[aria-disabled='true']{cursor:wait;opacity:0.5;}"]);
36
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJTQ09DUFdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIlNDT0NQQ29udHJvbFNsb3QiLCJzcGFuIiwiU0NPQ1BTdGF0dXNJbmRpY2F0b3IiLCJfcmVmIiwiJHRvbmUiLCJfcmVmMiIsIlNDT0NQVGV4dENvbnRhaW5lciIsIlNDT0NQVGl0bGUiLCJTQ09DUERlc2NyaXB0aW9uIiwiU0NPQ1BBY3Rpb24iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uL09wdGlvbkNvclBlcm1pc3Npb24uc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuXG5leHBvcnQgY29uc3QgU0NPQ1BXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuYFxuXG5leHBvcnQgY29uc3QgU0NPQ1BDb250cm9sU2xvdCA9IHN0eWxlZC5zcGFuYFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleDogMCAwIDM2cHg7XG4gIGhlaWdodDogMjBweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQU3RhdHVzSW5kaWNhdG9yID0gc3R5bGVkLnNwYW48eyAkdG9uZTogJ2F0dGVudGlvbicgfCAnZXJyb3InIH0+YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYmFja2dyb3VuZDogJHsoeyAkdG9uZSB9KSA9PiAoJHRvbmUgPT09ICdlcnJvcicgPyAnI2ZlZjNmMicgOiAnI2ZmZjdlZCcpfTtcbiAgY29sb3I6ICR7KHsgJHRvbmUgfSkgPT4gKCR0b25lID09PSAnZXJyb3InID8gJyNiNDIzMTgnIDogJyNiNDUzMDknKX07XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbGluZS1oZWlnaHQ6IDE7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09DUFRleHRDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ09DUFRpdGxlID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuYFxuXG5leHBvcnQgY29uc3QgU0NPQ1BEZXNjcmlwdGlvbiA9IHN0eWxlZC5zcGFuYFxuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjNjY2O1xuICBsaW5lLWhlaWdodDogMTMwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDT0NQQWN0aW9uID0gc3R5bGVkLnNwYW5gXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIHBhZGRpbmc6IDRweCAxMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDFweCBzb2xpZCAjYjhkZmVlO1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGJhY2tncm91bmQ6ICNmMmZhZmY7XG4gIGNvbG9yOiAjMDA2ZTliO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGluZS1oZWlnaHQ6IDE2cHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2U0ZjRmYjtcbiAgICBib3JkZXItY29sb3I6ICM4YWNkZTU7XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMDhjO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG4gIH1cblxuICAmW2FyaWEtZGlzYWJsZWQ9J3RydWUnXSB7XG4gICAgY3Vyc29yOiB3YWl0O1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLE9BQU8sSUFBTUMsWUFBWSxHQUFHRCxNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwwSkFVckM7QUFFRCxPQUFPLElBQU1DLGdCQUFnQixHQUFHTixNQUFNLENBQUNPLElBQUksQ0FBQUosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx5RkFNMUM7QUFFRCxPQUFPLElBQU1HLG9CQUFvQixHQUFHUixNQUFNLENBQUNPLElBQUksQ0FBQUosVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSx3TEFPL0IsVUFBQUksSUFBQTtFQUFBLElBQUdDLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0VBQUEsT0FBUUEsS0FBSyxLQUFLLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsRUFDL0QsVUFBQUMsS0FBQTtFQUFBLElBQUdELEtBQUssR0FBQUMsS0FBQSxDQUFMRCxLQUFLO0VBQUEsT0FBUUEsS0FBSyxLQUFLLE9BQU8sR0FBRyxTQUFTLEdBQUcsU0FBUztBQUFBLENBQUMsQ0FJcEU7QUFFRCxPQUFPLElBQU1FLGtCQUFrQixHQUFHWixNQUFNLENBQUNFLEdBQUcsQ0FBQUMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSw4REFLM0M7QUFFRCxPQUFPLElBQU1RLFVBQVUsR0FBR2IsTUFBTSxDQUFDTyxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsc0VBS3BDO0FBRUQsT0FBTyxJQUFNUyxnQkFBZ0IsR0FBR2QsTUFBTSxDQUFDTyxJQUFJLENBQUFKLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsbUVBSzFDO0FBRUQsT0FBTyxJQUFNVSxXQUFXLEdBQUdmLE1BQU0sQ0FBQ08sSUFBSSxDQUFBSixVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLHNjQWdDckMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,6 +1,8 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
6
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
7
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
8
  import { useState, useEffect } from 'react';
@@ -8,7 +10,8 @@ import { useTranslation } from 'react-i18next';
8
10
  import { OptionAccessibility } from '../../../atoms/OptionAccessibility';
9
11
  import { OptionCorPermission } from '../../../atoms/OptionCorPermission';
10
12
  import { EVENTS, useEvent } from '../../../../hooks/useEvent';
11
- import { getAvailableConnectors } from '../../../../services/maia/Agents/connectors';
13
+ import { authorizeConnector, getAgentConnectors, getAvailableConnectors, waitForConnectorAuthorization } from '../../../../services/maia/Agents/connectors';
14
+ import { useSnackBarManager } from '../../../../hooks/useSnackBarManager/useSnackBarManager';
12
15
  import { DEFAULT_COR_ACCESS } from '../../../../utils/normalizeAgentConnectors';
13
16
  import { hasMaiaExternalConnectorsAccess } from '../../../../constants/maiaExternalConnectorsAccess';
14
17
  import { SCAASWrapper, SCAASHeader, SCAASTitle, SCAASSubtitle, SCAASContent, SCAASSection, SCAASSectionHeader, SCAASSectionTitle, SCAASSectionSubtitle, SCAASOptionsContainer, SCAASDivider } from './AbmAccessibilitySection.styles';
@@ -28,17 +31,20 @@ var COR_PERMISSION_ROWS = [{
28
31
  descriptionKey: 'taskAccessDescription'
29
32
  }];
30
33
  export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
31
- var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _values$accessibility5, _values$accessibility7, _formValues$clients;
34
+ var _values$accessibility, _values$accessibility2, _values$accessibility3, _values$accessibility4, _values$accessibility5, _values$accessibility6, _values$accessibility8, _formValues$clients;
32
35
  var values = _ref.values,
33
36
  handleSetAgentValues = _ref.handleSetAgentValues;
34
37
  var _useTranslation = useTranslation('abm_agent_section'),
35
38
  t = _useTranslation.t;
36
39
  var eventAmplitude = useEvent();
40
+ var _useSnackBarManager = useSnackBarManager(),
41
+ handleSnackbarError = _useSnackBarManager.handleSnackbarError;
37
42
  var _useState = useState({
38
43
  accessType: (values === null || values === void 0 || (_values$accessibility = values.accessibility) === null || _values$accessibility === void 0 ? void 0 : _values$accessibility.accessType) || 'company',
39
44
  clients: (values === null || values === void 0 || (_values$accessibility2 = values.accessibility) === null || _values$accessibility2 === void 0 ? void 0 : _values$accessibility2.clients) || null,
40
45
  corAccess: (_values$accessibility3 = values === null || values === void 0 || (_values$accessibility4 = values.accessibility) === null || _values$accessibility4 === void 0 ? void 0 : _values$accessibility4.corAccess) !== null && _values$accessibility3 !== void 0 ? _values$accessibility3 : DEFAULT_COR_ACCESS,
41
- selectedConnectors: (values === null || values === void 0 || (_values$accessibility5 = values.accessibility) === null || _values$accessibility5 === void 0 ? void 0 : _values$accessibility5.selectedConnectors) || []
46
+ selectedConnectors: (values === null || values === void 0 || (_values$accessibility5 = values.accessibility) === null || _values$accessibility5 === void 0 ? void 0 : _values$accessibility5.selectedConnectors) || [],
47
+ connectorStatuses: (values === null || values === void 0 || (_values$accessibility6 = values.accessibility) === null || _values$accessibility6 === void 0 ? void 0 : _values$accessibility6.connectorStatuses) || {}
42
48
  }),
43
49
  _useState2 = _slicedToArray(_useState, 2),
44
50
  formValues = _useState2[0],
@@ -48,6 +54,10 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
48
54
  _useState4 = _slicedToArray(_useState3, 2),
49
55
  catalogConnectors = _useState4[0],
50
56
  setCatalogConnectors = _useState4[1];
57
+ var _useState5 = useState(null),
58
+ _useState6 = _slicedToArray(_useState5, 2),
59
+ authorizingSlug = _useState6[0],
60
+ setAuthorizingSlug = _useState6[1];
51
61
  var externalConnectorsEnabled = hasMaiaExternalConnectorsAccess();
52
62
  var _handleSelectOption = function handleSelectOption(option, clients) {
53
63
  var optionMapping = {
@@ -62,7 +72,8 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
62
72
  accessType: option,
63
73
  clients: null,
64
74
  corAccess: formValues.corAccess,
65
- selectedConnectors: formValues.selectedConnectors
75
+ selectedConnectors: formValues.selectedConnectors,
76
+ connectorStatuses: formValues.connectorStatuses
66
77
  };
67
78
  if (option !== 'clients' || !clients) {
68
79
  setFormValues(valueToSend);
@@ -111,9 +122,105 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
111
122
  });
112
123
  });
113
124
  };
125
+ var connectorActionLabel = function connectorActionLabel(slug) {
126
+ if (!formValues.selectedConnectors.includes(slug)) return undefined;
127
+ if (formValues.connectorStatuses[slug] === 'needs_attention') return t('accessibilitySection.connectorAuthenticateAction');
128
+ if (formValues.connectorStatuses[slug] === 'error') return t('accessibilitySection.connectorReopenAction');
129
+ return undefined;
130
+ };
131
+ var handleConnectorAuthorization = /*#__PURE__*/function () {
132
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(slug) {
133
+ var _values$general;
134
+ var agentId, popup, _yield$waitForConnect, authorized, error, connectors, updated, _t;
135
+ return _regeneratorRuntime.wrap(function (_context) {
136
+ while (1) switch (_context.prev = _context.next) {
137
+ case 0:
138
+ agentId = values === null || values === void 0 || (_values$general = values.general) === null || _values$general === void 0 ? void 0 : _values$general.id;
139
+ if (!(!agentId || authorizingSlug)) {
140
+ _context.next = 1;
141
+ break;
142
+ }
143
+ return _context.abrupt("return");
144
+ case 1:
145
+ // Open synchronously from the click so the browser does not block OAuth.
146
+ popup = window.open('', '_blank', 'popup=yes,width=560,height=760');
147
+ if (popup) {
148
+ _context.next = 2;
149
+ break;
150
+ }
151
+ handleSnackbarError(t('accessibilitySection.connectorPopupBlocked'));
152
+ return _context.abrupt("return");
153
+ case 2:
154
+ setAuthorizingSlug(slug);
155
+ _context.prev = 3;
156
+ _context.next = 4;
157
+ return authorizeConnector(slug);
158
+ case 4:
159
+ popup.location.href = _context.sent;
160
+ _context.next = 5;
161
+ return waitForConnectorAuthorization({
162
+ agentId: agentId.toString(),
163
+ slugs: [slug],
164
+ popup: popup
165
+ });
166
+ case 5:
167
+ _yield$waitForConnect = _context.sent;
168
+ authorized = _yield$waitForConnect.authorized;
169
+ error = _yield$waitForConnect.error;
170
+ if (authorized.includes(slug)) {
171
+ _context.next = 6;
172
+ break;
173
+ }
174
+ if (!popup.closed) popup.close();
175
+ setFormValues(function (prev) {
176
+ return _objectSpread(_objectSpread({}, prev), {}, {
177
+ connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, 'error'))
178
+ });
179
+ });
180
+ handleSnackbarError(error && error !== 'timeout' ? error : t('accessibilitySection.connectorAuthIncomplete'));
181
+ return _context.abrupt("return");
182
+ case 6:
183
+ _context.next = 7;
184
+ return getAgentConnectors(agentId.toString());
185
+ case 7:
186
+ connectors = _context.sent;
187
+ updated = connectors.find(function (connector) {
188
+ return connector.slug === slug;
189
+ });
190
+ setFormValues(function (prev) {
191
+ return _objectSpread(_objectSpread({}, prev), {}, {
192
+ connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, (updated === null || updated === void 0 ? void 0 : updated.connection_status) || 'ok'))
193
+ });
194
+ });
195
+ _context.next = 9;
196
+ break;
197
+ case 8:
198
+ _context.prev = 8;
199
+ _t = _context["catch"](3);
200
+ if (!popup.closed) popup.close();
201
+ setFormValues(function (prev) {
202
+ return _objectSpread(_objectSpread({}, prev), {}, {
203
+ connectorStatuses: _objectSpread(_objectSpread({}, prev.connectorStatuses), {}, _defineProperty({}, slug, 'error'))
204
+ });
205
+ });
206
+ handleSnackbarError(t('accessibilitySection.connectorAuthFailed'));
207
+ case 9:
208
+ _context.prev = 9;
209
+ setAuthorizingSlug(null);
210
+ return _context.finish(9);
211
+ case 10:
212
+ case "end":
213
+ return _context.stop();
214
+ }
215
+ }, _callee, null, [[3, 8, 9, 10]]);
216
+ }));
217
+ return function handleConnectorAuthorization(_x) {
218
+ return _ref2.apply(this, arguments);
219
+ };
220
+ }();
114
221
  useEffect(function () {
115
- var _values$accessibility6;
116
- var nextConnectors = values === null || values === void 0 || (_values$accessibility6 = values.accessibility) === null || _values$accessibility6 === void 0 ? void 0 : _values$accessibility6.selectedConnectors;
222
+ var _values$accessibility7;
223
+ var nextConnectors = values === null || values === void 0 || (_values$accessibility7 = values.accessibility) === null || _values$accessibility7 === void 0 ? void 0 : _values$accessibility7.selectedConnectors;
117
224
  if (!nextConnectors) {
118
225
  return;
119
226
  }
@@ -127,7 +234,7 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
127
234
  selectedConnectors: nextConnectors
128
235
  });
129
236
  });
130
- }, [values === null || values === void 0 || (_values$accessibility7 = values.accessibility) === null || _values$accessibility7 === void 0 ? void 0 : _values$accessibility7.selectedConnectors]);
237
+ }, [values === null || values === void 0 || (_values$accessibility8 = values.accessibility) === null || _values$accessibility8 === void 0 ? void 0 : _values$accessibility8.selectedConnectors]);
131
238
  useEffect(function () {
132
239
  if (formValues) {
133
240
  handleSetAgentValues === null || handleSetAgentValues === void 0 || handleSetAgentValues({
@@ -172,10 +279,10 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
172
279
  }), /*#__PURE__*/_jsx(SCAASSectionSubtitle, {
173
280
  children: t('accessibilitySection.corPermissionsSubtitle')
174
281
  })]
175
- }), COR_PERMISSION_ROWS.map(function (_ref2) {
176
- var slug = _ref2.slug,
177
- titleKey = _ref2.titleKey,
178
- descriptionKey = _ref2.descriptionKey;
282
+ }), COR_PERMISSION_ROWS.map(function (_ref3) {
283
+ var slug = _ref3.slug,
284
+ titleKey = _ref3.titleKey,
285
+ descriptionKey = _ref3.descriptionKey;
179
286
  return /*#__PURE__*/_jsx(OptionCorPermission, {
180
287
  title: t("accessibilitySection.".concat(titleKey)),
181
288
  description: t("accessibilitySection.".concat(descriptionKey)),
@@ -202,7 +309,13 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
202
309
  checked: formValues.selectedConnectors.includes(connector.slug),
203
310
  onChange: function onChange(checked) {
204
311
  return handleConnectorAccessChange(connector.slug, checked);
205
- }
312
+ },
313
+ actionLabel: connectorActionLabel(connector.slug),
314
+ actionTone: formValues.connectorStatuses[connector.slug] === 'error' ? 'error' : 'attention',
315
+ onAction: function onAction() {
316
+ return handleConnectorAuthorization(connector.slug);
317
+ },
318
+ actionBusy: authorizingSlug === connector.slug
206
319
  }, connector.slug);
207
320
  })]
208
321
  })]
@@ -254,4 +367,4 @@ export var AbmAccessibilitySection = function AbmAccessibilitySection(_ref) {
254
367
  })]
255
368
  });
256
369
  };
257
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJERUZBVUxUX0NPUl9BQ0NFU1MiLCJoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIiwiU0NBQVNXcmFwcGVyIiwiU0NBQVNIZWFkZXIiLCJTQ0FBU1RpdGxlIiwiU0NBQVNTdWJ0aXRsZSIsIlNDQUFTQ29udGVudCIsIlNDQUFTU2VjdGlvbiIsIlNDQUFTU2VjdGlvbkhlYWRlciIsIlNDQUFTU2VjdGlvblRpdGxlIiwiU0NBQVNTZWN0aW9uU3VidGl0bGUiLCJTQ0FBU09wdGlvbnNDb250YWluZXIiLCJTQ0FBU0RpdmlkZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDT1JfUEVSTUlTU0lPTl9ST1dTIiwic2x1ZyIsInRpdGxlS2V5IiwiZGVzY3JpcHRpb25LZXkiLCJBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiIsIl9yZWYiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkyIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5MyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTQiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk1IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NyIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTdGF0ZSIsImFjY2Vzc1R5cGUiLCJhY2Nlc3NpYmlsaXR5IiwiY2xpZW50cyIsImNvckFjY2VzcyIsInNlbGVjdGVkQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImZvcm1WYWx1ZXMiLCJzZXRGb3JtVmFsdWVzIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJjYXRhbG9nQ29ubmVjdG9ycyIsInNldENhdGFsb2dDb25uZWN0b3JzIiwiZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZUNvckFjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTYiLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiY29ubmVjdG9ycyIsImZpbHRlciIsImNvbm5lY3RvciIsImVycm9yIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwiX3JlZjIiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJpbmNsdWRlcyIsIm9wdGlvblNlbGVjdGVkIiwiaXNDbGllbnQiLCJwcm9wcyIsInNlbGVjdGVkQ2xpZW50cyIsIl9jbGllbnQkbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL21vbGVjdWxlcy9BYm1TZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyBPcHRpb25BY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQWNjZXNzaWJpbGl0eSdcbmltcG9ydCB7IE9wdGlvbkNvclBlcm1pc3Npb24gfSBmcm9tICcuLi8uLi8uLi9hdG9tcy9PcHRpb25Db3JQZXJtaXNzaW9uJ1xuaW1wb3J0IHsgRVZFTlRTLCB1c2VFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2hvb2tzL3VzZUV2ZW50J1xuaW1wb3J0IHsgZ2V0QXZhaWxhYmxlQ29ubmVjdG9ycywgdHlwZSBDYXRhbG9nQ29ubmVjdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvbWFpYS9BZ2VudHMvY29ubmVjdG9ycydcbmltcG9ydCB7IENvckFjY2VzcywgQ29yVG9vbEdyb3VwU2x1ZywgREVGQVVMVF9DT1JfQUNDRVNTIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMvbm9ybWFsaXplQWdlbnRDb25uZWN0b3JzJ1xuaW1wb3J0IHsgaGFzTWFpYUV4dGVybmFsQ29ubmVjdG9yc0FjY2VzcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0YW50cy9tYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzJ1xuaW1wb3J0IHtcbiAgU0NBQVNXcmFwcGVyLFxuICBTQ0FBU0hlYWRlcixcbiAgU0NBQVNUaXRsZSxcbiAgU0NBQVNTdWJ0aXRsZSxcbiAgU0NBQVNDb250ZW50LFxuICBTQ0FBU1NlY3Rpb24sXG4gIFNDQUFTU2VjdGlvbkhlYWRlcixcbiAgU0NBQVNTZWN0aW9uVGl0bGUsXG4gIFNDQUFTU2VjdGlvblN1YnRpdGxlLFxuICBTQ0FBU09wdGlvbnNDb250YWluZXIsXG4gIFNDQUFTRGl2aWRlcixcbn0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5zdHlsZXMnXG5pbXBvcnQgeyBDbGllbnRGb3JtRGF0YSB9IGZyb20gJy4vQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb24uaW50ZXJmYWNlJ1xuXG5pbnRlcmZhY2UgQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcyB7XG4gIHZhbHVlcz86IHtcbiAgICBhY2Nlc3NpYmlsaXR5Pzoge1xuICAgICAgYWNjZXNzVHlwZT86IHN0cmluZ1xuICAgICAgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgICBjb3JBY2Nlc3M/OiBDb3JBY2Nlc3NcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9ycz86IHN0cmluZ1tdXG4gICAgfVxuICB9XG4gIGhhbmRsZVNldEFnZW50VmFsdWVzPzogKHsga2V5LCB2YWx1ZSB9OiB7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93biB9KSA9PiB2b2lkXG59XG5cbi8vIE9yZGVuID0gamVyYXJxdcOtYSBkZSBDT1IgKGNsaWVudGUgPiBwcm95ZWN0byA+IHRhcmVhKSwgZGUgbcOhcyBhbXBsaW8gYSBtw6FzIGVzcGVjw61maWNvLlxuY29uc3QgQ09SX1BFUk1JU1NJT05fUk9XUzogeyBzbHVnOiBDb3JUb29sR3JvdXBTbHVnOyB0aXRsZUtleTogc3RyaW5nOyBkZXNjcmlwdGlvbktleTogc3RyaW5nIH1bXSA9IFtcbiAgeyBzbHVnOiAnY2xpZW50ZXMnLCB0aXRsZUtleTogJ2NsaWVudEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdjbGllbnRBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAncHJveWVjdG9zJywgdGl0bGVLZXk6ICdwcm9qZWN0QWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Byb2plY3RBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbiAgeyBzbHVnOiAndGFyZWFzJywgdGl0bGVLZXk6ICd0YXNrQWNjZXNzVGl0bGUnLCBkZXNjcmlwdGlvbktleTogJ3Rhc2tBY2Nlc3NEZXNjcmlwdGlvbicgfSxcbl1cblxuZXhwb3J0IGNvbnN0IEFibUFjY2Vzc2liaWxpdHlTZWN0aW9uID0gKHsgdmFsdWVzLCBoYW5kbGVTZXRBZ2VudFZhbHVlcyB9OiBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzKSA9PiB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2FibV9hZ2VudF9zZWN0aW9uJylcbiAgY29uc3QgZXZlbnRBbXBsaXR1ZGUgPSB1c2VFdmVudCgpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCA9IGhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MoKVxuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IChvcHRpb246IHN0cmluZywgY2xpZW50cz86IENsaWVudEZvcm1EYXRhW10gfCBudWxsKSA9PiB7XG4gICAgY29uc3Qgb3B0aW9uTWFwcGluZzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIGNvbXBhbnk6ICdhbGxfY29tcGFueScsXG4gICAgICBjbGllbnRzOiAnYnlfY2xpZW50ZXMnLFxuICAgICAgb25seV9tZTogJ2p1c3RfbWUnLFxuICAgIH1cblxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5hY2Nlc3NpYmlsaXR5VHlwZSwgeyBvcHRpb246IG9wdGlvbk1hcHBpbmdbb3B0aW9uXSB9KVxuXG4gICAgY29uc3QgdmFsdWVUb1NlbmQgPSB7XG4gICAgICBhY2Nlc3NUeXBlOiBvcHRpb24sXG4gICAgICBjbGllbnRzOiBudWxsIGFzIENsaWVudEZvcm1EYXRhW10gfCBudWxsLFxuICAgICAgY29yQWNjZXNzOiBmb3JtVmFsdWVzLmNvckFjY2VzcyxcbiAgICAgIHNlbGVjdGVkQ29ubmVjdG9yczogZm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMsXG4gICAgfVxuICAgIGlmIChvcHRpb24gIT09ICdjbGllbnRzJyB8fCAhY2xpZW50cykge1xuICAgICAgc2V0Rm9ybVZhbHVlcyh2YWx1ZVRvU2VuZClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudEZvcm1EYXRhID0gY2xpZW50cy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICBpc19kZWxldGVkOiBjbGllbnQuaXNfZGVsZXRlZCxcbiAgICB9KSlcblxuICAgIGlmIChjbGllbnRzICYmIGNsaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7IC4uLnZhbHVlVG9TZW5kLCBjbGllbnRzOiBjbGllbnRGb3JtRGF0YSB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuXG4gICAgICAgIDxTQ0FBU0RpdmlkZXIgLz5cblxuICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgIDxTQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uVGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLnZpc2liaWxpdHlUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uU3VidGl0bGU+e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLndob0NhbkFjY2VzcycpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgPFNDQUFTT3B0aW9uc0NvbnRhaW5lcj5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55VGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmFsbENvbXBhbnlEZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY29tcGFueScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY29tcGFueVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNsaWVudFRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnREZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBpc0NsaWVudD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlID09PSAnY2xpZW50cyd9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KHByb3BzPzogQ2xpZW50Rm9ybURhdGFbXSkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdjbGllbnRzJywgcHJvcHMpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwiY2xpZW50c1wiXG4gICAgICAgICAgICAgIHNlbGVjdGVkQ2xpZW50cz17Zm9ybVZhbHVlcy5jbGllbnRzPy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IGNsaWVudC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBjbGllbnQubmFtZSA/PyAnJyxcbiAgICAgICAgICAgICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICAgICAgICAgICAgaXNfZGVsZXRlZDogY2xpZW50LmlzX2RlbGV0ZWQsXG4gICAgICAgICAgICAgIH0pKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ub3duVGl0bGUnKX1cbiAgICAgICAgICAgICAgZGVzY3JpcHRpb249e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93bkRlc2NyaXB0aW9uJyl9XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbj17KCkgPT4gaGFuZGxlU2VsZWN0T3B0aW9uKCdvbmx5X21lJyl9XG4gICAgICAgICAgICAgIG9wdGlvblNlbGVjdGVkPXtmb3JtVmFsdWVzLmFjY2Vzc1R5cGV9XG4gICAgICAgICAgICAgIG5hbWU9XCJvbmx5X21lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuICAgICAgPC9TQ0FBU0NvbnRlbnQ+XG4gICAgPC9TQ0FBU1dyYXBwZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNBQWMsUUFBUSxlQUFlO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLG9DQUFvQztBQUN4RSxTQUFTQyxtQkFBbUIsUUFBUSxvQ0FBb0M7QUFDeEUsU0FBU0MsTUFBTSxFQUFFQyxRQUFRLFFBQVEsNEJBQTRCO0FBQzdELFNBQVNDLHNCQUFzQixRQUErQiw2Q0FBNkM7QUFDM0csU0FB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
370
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsInVzZVRyYW5zbGF0aW9uIiwiT3B0aW9uQWNjZXNzaWJpbGl0eSIsIk9wdGlvbkNvclBlcm1pc3Npb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImF1dGhvcml6ZUNvbm5lY3RvciIsImdldEFnZW50Q29ubmVjdG9ycyIsImdldEF2YWlsYWJsZUNvbm5lY3RvcnMiLCJ3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbiIsInVzZVNuYWNrQmFyTWFuYWdlciIsIkRFRkFVTFRfQ09SX0FDQ0VTUyIsImhhc01haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MiLCJTQ0FBU1dyYXBwZXIiLCJTQ0FBU0hlYWRlciIsIlNDQUFTVGl0bGUiLCJTQ0FBU1N1YnRpdGxlIiwiU0NBQVNDb250ZW50IiwiU0NBQVNTZWN0aW9uIiwiU0NBQVNTZWN0aW9uSGVhZGVyIiwiU0NBQVNTZWN0aW9uVGl0bGUiLCJTQ0FBU1NlY3Rpb25TdWJ0aXRsZSIsIlNDQUFTT3B0aW9uc0NvbnRhaW5lciIsIlNDQUFTRGl2aWRlciIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNPUl9QRVJNSVNTSU9OX1JPV1MiLCJzbHVnIiwidGl0bGVLZXkiLCJkZXNjcmlwdGlvbktleSIsIkFibUFjY2Vzc2liaWxpdHlTZWN0aW9uIiwiX3JlZiIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eSIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTIiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHkzIiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5NCIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTUiLCJfdmFsdWVzJGFjY2Vzc2liaWxpdHk2IiwiX3ZhbHVlcyRhY2Nlc3NpYmlsaXR5OCIsIl9mb3JtVmFsdWVzJGNsaWVudHMiLCJ2YWx1ZXMiLCJoYW5kbGVTZXRBZ2VudFZhbHVlcyIsIl91c2VUcmFuc2xhdGlvbiIsInQiLCJldmVudEFtcGxpdHVkZSIsIl91c2VTbmFja0Jhck1hbmFnZXIiLCJoYW5kbGVTbmFja2JhckVycm9yIiwiX3VzZVN0YXRlIiwiYWNjZXNzVHlwZSIsImFjY2Vzc2liaWxpdHkiLCJjbGllbnRzIiwiY29yQWNjZXNzIiwic2VsZWN0ZWRDb25uZWN0b3JzIiwiY29ubmVjdG9yU3RhdHVzZXMiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJmb3JtVmFsdWVzIiwic2V0Rm9ybVZhbHVlcyIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiY2F0YWxvZ0Nvbm5lY3RvcnMiLCJzZXRDYXRhbG9nQ29ubmVjdG9ycyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYXV0aG9yaXppbmdTbHVnIiwic2V0QXV0aG9yaXppbmdTbHVnIiwiZXh0ZXJuYWxDb25uZWN0b3JzRW5hYmxlZCIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm9wdGlvbiIsIm9wdGlvbk1hcHBpbmciLCJjb21wYW55Iiwib25seV9tZSIsImFjY2Vzc2liaWxpdHlUeXBlIiwidmFsdWVUb1NlbmQiLCJjbGllbnRGb3JtRGF0YSIsIm1hcCIsImNsaWVudCIsImlkIiwibmFtZSIsImlzX2FjdGl2ZSIsImlzX2RlbGV0ZWQiLCJsZW5ndGgiLCJhY2Nlc3NpYmlsaXR5U2VsZWN0Q2xpZW50IiwiX29iamVjdFNwcmVhZCIsImhhbmRsZUNvckFjY2Vzc0NoYW5nZSIsImNoZWNrZWQiLCJjb25uZWN0b3JDb3IiLCJwcmV2IiwiX2RlZmluZVByb3BlcnR5IiwiaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlIiwiY29ubmVjdG9yTWNwIiwibmV4dCIsIlNldCIsImFkZCIsIkFycmF5IiwiZnJvbSIsImNvbm5lY3RvckFjdGlvbkxhYmVsIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uIiwiX3JlZjIiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl92YWx1ZXMkZ2VuZXJhbCIsImFnZW50SWQiLCJwb3B1cCIsIl95aWVsZCR3YWl0Rm9yQ29ubmVjdCIsImF1dGhvcml6ZWQiLCJlcnJvciIsImNvbm5lY3RvcnMiLCJ1cGRhdGVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJnZW5lcmFsIiwiYWJydXB0Iiwid2luZG93Iiwib3BlbiIsImxvY2F0aW9uIiwiaHJlZiIsInNlbnQiLCJ0b1N0cmluZyIsInNsdWdzIiwiY2xvc2VkIiwiY2xvc2UiLCJmaW5kIiwiY29ubmVjdG9yIiwiY29ubmVjdGlvbl9zdGF0dXMiLCJmaW5pc2giLCJzdG9wIiwiX3giLCJhcHBseSIsImFyZ3VtZW50cyIsIl92YWx1ZXMkYWNjZXNzaWJpbGl0eTciLCJuZXh0Q29ubmVjdG9ycyIsImN1cnJlbnQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJzb3J0Iiwiam9pbiIsImluY29taW5nIiwia2V5IiwidmFsdWUiLCJjYW5jZWxsZWQiLCJ0aGVuIiwiZmlsdGVyIiwiY29uc29sZSIsImNoaWxkcmVuIiwiJGluZGV4IiwiX3JlZjMiLCJ0aXRsZSIsImNvbmNhdCIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJhY3Rpb25MYWJlbCIsImFjdGlvblRvbmUiLCJvbkFjdGlvbiIsImFjdGlvbkJ1c3kiLCJvcHRpb25TZWxlY3RlZCIsImlzQ2xpZW50IiwicHJvcHMiLCJzZWxlY3RlZENsaWVudHMiLCJfY2xpZW50JG5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQWJtU2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgT3B0aW9uQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL2F0b21zL09wdGlvbkFjY2Vzc2liaWxpdHknXG5pbXBvcnQgeyBPcHRpb25Db3JQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vLi4vYXRvbXMvT3B0aW9uQ29yUGVybWlzc2lvbidcbmltcG9ydCB7IEVWRU5UUywgdXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VFdmVudCdcbmltcG9ydCB7XG4gIGF1dGhvcml6ZUNvbm5lY3RvcixcbiAgZ2V0QWdlbnRDb25uZWN0b3JzLFxuICBnZXRBdmFpbGFibGVDb25uZWN0b3JzLFxuICB3YWl0Rm9yQ29ubmVjdG9yQXV0aG9yaXphdGlvbixcbiAgdHlwZSBDYXRhbG9nQ29ubmVjdG9yLFxuICB0eXBlIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXMsXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL21haWEvQWdlbnRzL2Nvbm5lY3RvcnMnXG5pbXBvcnQgeyB1c2VTbmFja0Jhck1hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9ob29rcy91c2VTbmFja0Jhck1hbmFnZXIvdXNlU25hY2tCYXJNYW5hZ2VyJ1xuaW1wb3J0IHsgQ29yQWNjZXNzLCBDb3JUb29sR3JvdXBTbHVnLCBERUZBVUxUX0NPUl9BQ0NFU1MgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9ub3JtYWxpemVBZ2VudENvbm5lY3RvcnMnXG5pbXBvcnQgeyBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RhbnRzL21haWFFeHRlcm5hbENvbm5lY3RvcnNBY2Nlc3MnXG5pbXBvcnQge1xuICBTQ0FBU1dyYXBwZXIsXG4gIFNDQUFTSGVhZGVyLFxuICBTQ0FBU1RpdGxlLFxuICBTQ0FBU1N1YnRpdGxlLFxuICBTQ0FBU0NvbnRlbnQsXG4gIFNDQUFTU2VjdGlvbixcbiAgU0NBQVNTZWN0aW9uSGVhZGVyLFxuICBTQ0FBU1NlY3Rpb25UaXRsZSxcbiAgU0NBQVNTZWN0aW9uU3VidGl0bGUsXG4gIFNDQUFTT3B0aW9uc0NvbnRhaW5lcixcbiAgU0NBQVNEaXZpZGVyLFxufSBmcm9tICcuL0FibUFjY2Vzc2liaWxpdHlTZWN0aW9uLnN0eWxlcydcbmltcG9ydCB7IENsaWVudEZvcm1EYXRhIH0gZnJvbSAnLi9BYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbi5pbnRlcmZhY2UnXG5cbmludGVyZmFjZSBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvblByb3BzIHtcbiAgdmFsdWVzPzoge1xuICAgIGdlbmVyYWw/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9XG4gICAgYWNjZXNzaWJpbGl0eT86IHtcbiAgICAgIGFjY2Vzc1R5cGU/OiBzdHJpbmdcbiAgICAgIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbFxuICAgICAgY29yQWNjZXNzPzogQ29yQWNjZXNzXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM/OiBzdHJpbmdbXVxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM/OiBSZWNvcmQ8c3RyaW5nLCBDb25uZWN0b3JDb25uZWN0aW9uU3RhdHVzPlxuICAgIH1cbiAgfVxuICBoYW5kbGVTZXRBZ2VudFZhbHVlcz86ICh7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSkgPT4gdm9pZFxufVxuXG4vLyBPcmRlbiA9IGplcmFycXXDrWEgZGUgQ09SIChjbGllbnRlID4gcHJveWVjdG8gPiB0YXJlYSksIGRlIG3DoXMgYW1wbGlvIGEgbcOhcyBlc3BlY8OtZmljby5cbmNvbnN0IENPUl9QRVJNSVNTSU9OX1JPV1M6IHsgc2x1ZzogQ29yVG9vbEdyb3VwU2x1ZzsgdGl0bGVLZXk6IHN0cmluZzsgZGVzY3JpcHRpb25LZXk6IHN0cmluZyB9W10gPSBbXG4gIHsgc2x1ZzogJ2NsaWVudGVzJywgdGl0bGVLZXk6ICdjbGllbnRBY2Nlc3NUaXRsZScsIGRlc2NyaXB0aW9uS2V5OiAnY2xpZW50QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3Byb3llY3RvcycsIHRpdGxlS2V5OiAncHJvamVjdEFjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICdwcm9qZWN0QWNjZXNzRGVzY3JpcHRpb24nIH0sXG4gIHsgc2x1ZzogJ3RhcmVhcycsIHRpdGxlS2V5OiAndGFza0FjY2Vzc1RpdGxlJywgZGVzY3JpcHRpb25LZXk6ICd0YXNrQWNjZXNzRGVzY3JpcHRpb24nIH0sXG5dXG5cbmV4cG9ydCBjb25zdCBBYm1BY2Nlc3NpYmlsaXR5U2VjdGlvbiA9ICh7IHZhbHVlcywgaGFuZGxlU2V0QWdlbnRWYWx1ZXMgfTogQWJtQWNjZXNzaWJpbGl0eVNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdhYm1fYWdlbnRfc2VjdGlvbicpXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7IGhhbmRsZVNuYWNrYmFyRXJyb3IgfSA9IHVzZVNuYWNrQmFyTWFuYWdlcigpXG5cbiAgY29uc3QgW2Zvcm1WYWx1ZXMsIHNldEZvcm1WYWx1ZXNdID0gdXNlU3RhdGU8e1xuICAgIGFjY2Vzc1R5cGU6IHN0cmluZ1xuICAgIGNsaWVudHM6IENsaWVudEZvcm1EYXRhW10gfCBudWxsXG4gICAgY29yQWNjZXNzOiBDb3JBY2Nlc3NcbiAgICBzZWxlY3RlZENvbm5lY3RvcnM6IHN0cmluZ1tdXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IFJlY29yZDxzdHJpbmcsIENvbm5lY3RvckNvbm5lY3Rpb25TdGF0dXM+XG4gIH0+KHtcbiAgICBhY2Nlc3NUeXBlOiB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LmFjY2Vzc1R5cGUgfHwgJ2NvbXBhbnknLFxuICAgIGNsaWVudHM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY2xpZW50cyB8fCBudWxsLFxuICAgIGNvckFjY2VzczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5jb3JBY2Nlc3MgPz8gREVGQVVMVF9DT1JfQUNDRVNTLFxuICAgIHNlbGVjdGVkQ29ubmVjdG9yczogdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnMgfHwgW10sXG4gICAgY29ubmVjdG9yU3RhdHVzZXM6IHZhbHVlcz8uYWNjZXNzaWJpbGl0eT8uY29ubmVjdG9yU3RhdHVzZXMgfHwge30sXG4gIH0pXG4gIC8vIEVsIGNhdMOhbG9nbyBsbyBkZWZpbmUgZWwgYmFjayAoYEdFVCAvdjEvY29ubmVjdG9yc2ApOyBlbCBBQk0gcmVuZGVyaXphIHVuYSBmaWxhIHBvciBjb25lY3RvciBhY3Rpdm8uXG4gIGNvbnN0IFtjYXRhbG9nQ29ubmVjdG9ycywgc2V0Q2F0YWxvZ0Nvbm5lY3RvcnNdID0gdXNlU3RhdGU8Q2F0YWxvZ0Nvbm5lY3RvcltdPihbXSlcbiAgY29uc3QgW2F1dGhvcml6aW5nU2x1Zywgc2V0QXV0aG9yaXppbmdTbHVnXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGV4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWQgPSBoYXNNYWlhRXh0ZXJuYWxDb25uZWN0b3JzQWNjZXNzKClcblxuICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSAob3B0aW9uOiBzdHJpbmcsIGNsaWVudHM/OiBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCkgPT4ge1xuICAgIGNvbnN0IG9wdGlvbk1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBjb21wYW55OiAnYWxsX2NvbXBhbnknLFxuICAgICAgY2xpZW50czogJ2J5X2NsaWVudGVzJyxcbiAgICAgIG9ubHlfbWU6ICdqdXN0X21lJyxcbiAgICB9XG5cbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWNjZXNzaWJpbGl0eVR5cGUsIHsgb3B0aW9uOiBvcHRpb25NYXBwaW5nW29wdGlvbl0gfSlcblxuICAgIGNvbnN0IHZhbHVlVG9TZW5kID0ge1xuICAgICAgYWNjZXNzVHlwZTogb3B0aW9uLFxuICAgICAgY2xpZW50czogbnVsbCBhcyBDbGllbnRGb3JtRGF0YVtdIHwgbnVsbCxcbiAgICAgIGNvckFjY2VzczogZm9ybVZhbHVlcy5jb3JBY2Nlc3MsXG4gICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IGZvcm1WYWx1ZXMuc2VsZWN0ZWRDb25uZWN0b3JzLFxuICAgICAgY29ubmVjdG9yU3RhdHVzZXM6IGZvcm1WYWx1ZXMuY29ubmVjdG9yU3RhdHVzZXMsXG4gICAgfVxuICAgIGlmIChvcHRpb24gIT09ICdjbGllbnRzJyB8fCAhY2xpZW50cykge1xuICAgICAgc2V0Rm9ybVZhbHVlcyh2YWx1ZVRvU2VuZClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGNsaWVudEZvcm1EYXRhID0gY2xpZW50cy5tYXAoY2xpZW50ID0+ICh7XG4gICAgICBpZDogY2xpZW50LmlkLFxuICAgICAgbmFtZTogY2xpZW50Lm5hbWUsXG4gICAgICBpc19hY3RpdmU6IGNsaWVudC5pc19hY3RpdmUsXG4gICAgICBpc19kZWxldGVkOiBjbGllbnQuaXNfZGVsZXRlZCxcbiAgICB9KSlcblxuICAgIGlmIChjbGllbnRzICYmIGNsaWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFjY2Vzc2liaWxpdHlTZWxlY3RDbGllbnQpXG4gICAgfVxuXG4gICAgc2V0Rm9ybVZhbHVlcyh7IC4uLnZhbHVlVG9TZW5kLCBjbGllbnRzOiBjbGllbnRGb3JtRGF0YSB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ29yQWNjZXNzQ2hhbmdlID0gKHNsdWc6IENvclRvb2xHcm91cFNsdWcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yQ29yLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAuLi5wcmV2LFxuICAgICAgY29yQWNjZXNzOiB7IC4uLnByZXYuY29yQWNjZXNzLCBbc2x1Z106IGNoZWNrZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUNvbm5lY3RvckFjY2Vzc0NoYW5nZSA9IChzbHVnOiBzdHJpbmcsIGNoZWNrZWQ6IGJvb2xlYW4pID0+IHtcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuY29ubmVjdG9yTWNwLCB7IG9wdGlvbjogY2hlY2tlZCA/ICdvbicgOiAnb2ZmJywgc2x1ZyB9KVxuXG4gICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYuc2VsZWN0ZWRDb25uZWN0b3JzKVxuICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgbmV4dC5hZGQoc2x1ZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHQuZGVsZXRlKHNsdWcpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5wcmV2LFxuICAgICAgICBzZWxlY3RlZENvbm5lY3RvcnM6IEFycmF5LmZyb20obmV4dCksXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbm5lY3RvckFjdGlvbkxhYmVsID0gKHNsdWc6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKCFmb3JtVmFsdWVzLnNlbGVjdGVkQ29ubmVjdG9ycy5pbmNsdWRlcyhzbHVnKSkgcmV0dXJuIHVuZGVmaW5lZFxuICAgIGlmIChmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW3NsdWddID09PSAnbmVlZHNfYXR0ZW50aW9uJylcbiAgICAgIHJldHVybiB0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JBdXRoZW50aWNhdGVBY3Rpb24nKVxuICAgIGlmIChmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW3NsdWddID09PSAnZXJyb3InKSByZXR1cm4gdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yUmVvcGVuQWN0aW9uJylcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uID0gYXN5bmMgKHNsdWc6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGFnZW50SWQgPSB2YWx1ZXM/LmdlbmVyYWw/LmlkXG4gICAgaWYgKCFhZ2VudElkIHx8IGF1dGhvcml6aW5nU2x1ZykgcmV0dXJuXG5cbiAgICAvLyBPcGVuIHN5bmNocm9ub3VzbHkgZnJvbSB0aGUgY2xpY2sgc28gdGhlIGJyb3dzZXIgZG9lcyBub3QgYmxvY2sgT0F1dGguXG4gICAgY29uc3QgcG9wdXAgPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycsICdwb3B1cD15ZXMsd2lkdGg9NTYwLGhlaWdodD03NjAnKVxuICAgIGlmICghcG9wdXApIHtcbiAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IodCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yUG9wdXBCbG9ja2VkJykpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRBdXRob3JpemluZ1NsdWcoc2x1ZylcbiAgICB0cnkge1xuICAgICAgcG9wdXAubG9jYXRpb24uaHJlZiA9IGF3YWl0IGF1dGhvcml6ZUNvbm5lY3RvcihzbHVnKVxuICAgICAgY29uc3QgeyBhdXRob3JpemVkLCBlcnJvciB9ID0gYXdhaXQgd2FpdEZvckNvbm5lY3RvckF1dGhvcml6YXRpb24oe1xuICAgICAgICBhZ2VudElkOiBhZ2VudElkLnRvU3RyaW5nKCksXG4gICAgICAgIHNsdWdzOiBbc2x1Z10sXG4gICAgICAgIHBvcHVwLFxuICAgICAgfSlcbiAgICAgIGlmICghYXV0aG9yaXplZC5pbmNsdWRlcyhzbHVnKSkge1xuICAgICAgICBpZiAoIXBvcHVwLmNsb3NlZCkgcG9wdXAuY2xvc2UoKVxuICAgICAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4gKHsgLi4ucHJldiwgY29ubmVjdG9yU3RhdHVzZXM6IHsgLi4ucHJldi5jb25uZWN0b3JTdGF0dXNlcywgW3NsdWddOiAnZXJyb3InIH0gfSkpXG4gICAgICAgIGhhbmRsZVNuYWNrYmFyRXJyb3IoZXJyb3IgJiYgZXJyb3IgIT09ICd0aW1lb3V0JyA/IGVycm9yIDogdCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29ubmVjdG9yQXV0aEluY29tcGxldGUnKSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBjb25uZWN0b3JzID0gYXdhaXQgZ2V0QWdlbnRDb25uZWN0b3JzKGFnZW50SWQudG9TdHJpbmcoKSlcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBjb25uZWN0b3JzLmZpbmQoY29ubmVjdG9yID0+IGNvbm5lY3Rvci5zbHVnID09PSBzbHVnKVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7XG4gICAgICAgIC4uLnByZXYsXG4gICAgICAgIGNvbm5lY3RvclN0YXR1c2VzOiB7IC4uLnByZXYuY29ubmVjdG9yU3RhdHVzZXMsIFtzbHVnXTogdXBkYXRlZD8uY29ubmVjdGlvbl9zdGF0dXMgfHwgJ29rJyB9LFxuICAgICAgfSkpXG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoIXBvcHVwLmNsb3NlZCkgcG9wdXAuY2xvc2UoKVxuICAgICAgc2V0Rm9ybVZhbHVlcyhwcmV2ID0+ICh7IC4uLnByZXYsIGNvbm5lY3RvclN0YXR1c2VzOiB7IC4uLnByZXYuY29ubmVjdG9yU3RhdHVzZXMsIFtzbHVnXTogJ2Vycm9yJyB9IH0pKVxuICAgICAgaGFuZGxlU25hY2tiYXJFcnJvcih0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb25uZWN0b3JBdXRoRmFpbGVkJykpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldEF1dGhvcml6aW5nU2x1ZyhudWxsKVxuICAgIH1cbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV4dENvbm5lY3RvcnMgPSB2YWx1ZXM/LmFjY2Vzc2liaWxpdHk/LnNlbGVjdGVkQ29ubmVjdG9yc1xuICAgIGlmICghbmV4dENvbm5lY3RvcnMpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRGb3JtVmFsdWVzKHByZXYgPT4ge1xuICAgICAgY29uc3QgY3VycmVudCA9IFsuLi5wcmV2LnNlbGVjdGVkQ29ubmVjdG9yc10uc29ydCgpLmpvaW4oJ3wnKVxuICAgICAgY29uc3QgaW5jb21pbmcgPSBbLi4ubmV4dENvbm5lY3RvcnNdLnNvcnQoKS5qb2luKCd8JylcbiAgICAgIGlmIChjdXJyZW50ID09PSBpbmNvbWluZykge1xuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucHJldixcbiAgICAgICAgc2VsZWN0ZWRDb25uZWN0b3JzOiBuZXh0Q29ubmVjdG9ycyxcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbdmFsdWVzPy5hY2Nlc3NpYmlsaXR5Py5zZWxlY3RlZENvbm5lY3RvcnNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZvcm1WYWx1ZXMpIHtcbiAgICAgIGhhbmRsZVNldEFnZW50VmFsdWVzPy4oe1xuICAgICAgICBrZXk6ICdhY2Nlc3NpYmlsaXR5JyxcbiAgICAgICAgdmFsdWU6IGZvcm1WYWx1ZXMsXG4gICAgICB9KVxuICAgIH1cbiAgfSwgW2Zvcm1WYWx1ZXNdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkKSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgICBnZXRBdmFpbGFibGVDb25uZWN0b3JzKClcbiAgICAgIC50aGVuKGNvbm5lY3RvcnMgPT4ge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldENhdGFsb2dDb25uZWN0b3JzKGNvbm5lY3RvcnMuZmlsdGVyKGNvbm5lY3RvciA9PiBjb25uZWN0b3IuaXNfYWN0aXZlKSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbm5lY3RvcnMgY2F0YWxvZzonLCBlcnJvcilcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRDYXRhbG9nQ29ubmVjdG9ycyhbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgfSwgW2V4dGVybmFsQ29ubmVjdG9yc0VuYWJsZWRdKVxuXG4gIHJldHVybiAoXG4gICAgPFNDQUFTV3JhcHBlcj5cbiAgICAgIDxTQ0FBU0hlYWRlciAkaW5kZXg9ezB9PlxuICAgICAgICA8U0NBQVNUaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24udGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1RpdGxlPlxuICAgICAgICA8U0NBQVNTdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uc3VidGl0bGVTZWN0aW9uJyl9PC9TQ0FBU1N1YnRpdGxlPlxuICAgICAgPC9TQ0FBU0hlYWRlcj5cbiAgICAgIDxTQ0FBU0NvbnRlbnQgJGluZGV4PXsxfT5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jb3JQZXJtaXNzaW9uc1RpdGxlJyl9PC9TQ0FBU1NlY3Rpb25UaXRsZT5cbiAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25TdWJ0aXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY29yUGVybWlzc2lvbnNTdWJ0aXRsZScpfTwvU0NBQVNTZWN0aW9uU3VidGl0bGU+XG4gICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAge0NPUl9QRVJNSVNTSU9OX1JPV1MubWFwKCh7IHNsdWcsIHRpdGxlS2V5LCBkZXNjcmlwdGlvbktleSB9KSA9PiAoXG4gICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICBrZXk9e3NsdWd9XG4gICAgICAgICAgICAgIHRpdGxlPXt0KGBhY2Nlc3NpYmlsaXR5U2VjdGlvbi4ke3RpdGxlS2V5fWApfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dChgYWNjZXNzaWJpbGl0eVNlY3Rpb24uJHtkZXNjcmlwdGlvbktleX1gKX1cbiAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5jb3JBY2Nlc3Nbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXtjaGVja2VkID0+IGhhbmRsZUNvckFjY2Vzc0NoYW5nZShzbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgIDwvU0NBQVNTZWN0aW9uPlxuXG4gICAgICAgIHtleHRlcm5hbENvbm5lY3RvcnNFbmFibGVkICYmIChcbiAgICAgICAgICA8PlxuICAgICAgICAgICAgPFNDQUFTRGl2aWRlciAvPlxuXG4gICAgICAgICAgICA8U0NBQVNTZWN0aW9uPlxuICAgICAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxTQ0FBU1NlY3Rpb25UaXRsZT57dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24ubWNwUGVybWlzc2lvbnNUaXRsZScpfTwvU0NBQVNTZWN0aW9uVGl0bGU+XG4gICAgICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5tY3BQZXJtaXNzaW9uc1N1YnRpdGxlJyl9PC9TQ0FBU1NlY3Rpb25TdWJ0aXRsZT5cbiAgICAgICAgICAgICAgPC9TQ0FBU1NlY3Rpb25IZWFkZXI+XG4gICAgICAgICAgICAgIHtjYXRhbG9nQ29ubmVjdG9ycy5tYXAoY29ubmVjdG9yID0+IChcbiAgICAgICAgICAgICAgICA8T3B0aW9uQ29yUGVybWlzc2lvblxuICAgICAgICAgICAgICAgICAga2V5PXtjb25uZWN0b3Iuc2x1Z31cbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtjb25uZWN0b3IubmFtZX1cbiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLmRlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgIHQoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLmNvbm5lY3RvckFjY2Vzc0Rlc2NyaXB0aW9uJywgeyBuYW1lOiBjb25uZWN0b3IubmFtZSB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY2hlY2tlZD17Zm9ybVZhbHVlcy5zZWxlY3RlZENvbm5lY3RvcnMuaW5jbHVkZXMoY29ubmVjdG9yLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2NoZWNrZWQgPT4gaGFuZGxlQ29ubmVjdG9yQWNjZXNzQ2hhbmdlKGNvbm5lY3Rvci5zbHVnLCBjaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkxhYmVsPXtjb25uZWN0b3JBY3Rpb25MYWJlbChjb25uZWN0b3Iuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25Ub25lPXtmb3JtVmFsdWVzLmNvbm5lY3RvclN0YXR1c2VzW2Nvbm5lY3Rvci5zbHVnXSA9PT0gJ2Vycm9yJyA/ICdlcnJvcicgOiAnYXR0ZW50aW9uJ31cbiAgICAgICAgICAgICAgICAgIG9uQWN0aW9uPXsoKSA9PiBoYW5kbGVDb25uZWN0b3JBdXRob3JpemF0aW9uKGNvbm5lY3Rvci5zbHVnKX1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbkJ1c3k9e2F1dGhvcml6aW5nU2x1ZyA9PT0gY29ubmVjdG9yLnNsdWd9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cblxuICAgICAgICA8U0NBQVNEaXZpZGVyIC8+XG5cbiAgICAgICAgPFNDQUFTU2VjdGlvbj5cbiAgICAgICAgICA8U0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi52aXNpYmlsaXR5VGl0bGUnKX08L1NDQUFTU2VjdGlvblRpdGxlPlxuICAgICAgICAgICAgPFNDQUFTU2VjdGlvblN1YnRpdGxlPnt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi53aG9DYW5BY2Nlc3MnKX08L1NDQUFTU2VjdGlvblN1YnRpdGxlPlxuICAgICAgICAgIDwvU0NBQVNTZWN0aW9uSGVhZGVyPlxuICAgICAgICAgIDxTQ0FBU09wdGlvbnNDb250YWluZXI+XG4gICAgICAgICAgICA8T3B0aW9uQWNjZXNzaWJpbGl0eVxuICAgICAgICAgICAgICB0aXRsZT17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uYWxsQ29tcGFueVRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5hbGxDb21wYW55RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uPXsoKSA9PiBoYW5kbGVTZWxlY3RPcHRpb24oJ2NvbXBhbnknKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNvbXBhbnlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxPcHRpb25BY2Nlc3NpYmlsaXR5XG4gICAgICAgICAgICAgIHRpdGxlPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5jbGllbnRUaXRsZScpfVxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbj17dCgnYWNjZXNzaWJpbGl0eVNlY3Rpb24uY2xpZW50RGVzY3JpcHRpb24nKX1cbiAgICAgICAgICAgICAgaXNDbGllbnQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZSA9PT0gJ2NsaWVudHMnfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eyhwcm9wcz86IENsaWVudEZvcm1EYXRhW10pID0+IGhhbmRsZVNlbGVjdE9wdGlvbignY2xpZW50cycsIHByb3BzKX1cbiAgICAgICAgICAgICAgb3B0aW9uU2VsZWN0ZWQ9e2Zvcm1WYWx1ZXMuYWNjZXNzVHlwZX1cbiAgICAgICAgICAgICAgbmFtZT1cImNsaWVudHNcIlxuICAgICAgICAgICAgICBzZWxlY3RlZENsaWVudHM9e2Zvcm1WYWx1ZXMuY2xpZW50cz8ubWFwKGNsaWVudCA9PiAoe1xuICAgICAgICAgICAgICAgIGlkOiBjbGllbnQuaWQsXG4gICAgICAgICAgICAgICAgbmFtZTogY2xpZW50Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICAgICAgaXNfYWN0aXZlOiBjbGllbnQuaXNfYWN0aXZlLFxuICAgICAgICAgICAgICAgIGlzX2RlbGV0ZWQ6IGNsaWVudC5pc19kZWxldGVkLFxuICAgICAgICAgICAgICB9KSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPE9wdGlvbkFjY2Vzc2liaWxpdHlcbiAgICAgICAgICAgICAgdGl0bGU9e3QoJ2FjY2Vzc2liaWxpdHlTZWN0aW9uLm93blRpdGxlJyl9XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXt0KCdhY2Nlc3NpYmlsaXR5U2VjdGlvbi5vd25EZXNjcmlwdGlvbicpfVxuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb249eygpID0+IGhhbmRsZVNlbGVjdE9wdGlvbignb25seV9tZScpfVxuICAgICAgICAgICAgICBvcHRpb25TZWxlY3RlZD17Zm9ybVZhbHVlcy5hY2Nlc3NUeXBlfVxuICAgICAgICAgICAgICBuYW1lPVwib25seV9tZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU0NBQVNPcHRpb25zQ29udGFpbmVyPlxuICAgICAgICA8L1NDQUFTU2VjdGlvbj5cbiAgICAgIDwvU0NBQVNDb250ZW50PlxuICAgIDwvU0NBQVNXcmFwcGVyPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxTQUFTQSxRQUFRLEVBQUVDLFNBQVMsUUFBUSxPQUFPO0FBQzNDLFNBQVNDLGNB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