@1money/component-ui 0.0.77 → 0.0.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/es/components/Button/Button.js +17 -15
  2. package/es/components/Button/constants.d.ts +0 -1
  3. package/es/components/Button/constants.js +1 -2
  4. package/es/components/Button/interface.d.ts +7 -0
  5. package/es/components/Dialog/Dialog.js +64 -210
  6. package/es/components/Dialog/DialogContent.d.ts +16 -0
  7. package/es/components/Dialog/DialogContent.js +72 -0
  8. package/es/components/Dialog/DialogControls.d.ts +27 -0
  9. package/es/components/Dialog/DialogControls.js +65 -0
  10. package/es/components/Dialog/className.d.ts +12 -0
  11. package/es/components/Dialog/className.js +16 -0
  12. package/es/components/Dialog/hooks.d.ts +5 -0
  13. package/es/components/Dialog/hooks.js +69 -0
  14. package/es/components/Dialog/interface.d.ts +1 -0
  15. package/es/components/Dialog/style/Dialog.css +2 -11
  16. package/es/components/Dialog/types.d.ts +1 -0
  17. package/es/components/Dialog/types.js +2 -0
  18. package/es/components/Grid/Col.js +60 -4
  19. package/es/components/Grid/Grid.d.ts +4 -1
  20. package/es/components/Grid/Grid.js +5 -4
  21. package/es/components/Grid/Row.js +7 -5
  22. package/es/components/Grid/constants.d.ts +5 -3
  23. package/es/components/Grid/constants.js +13 -4
  24. package/es/components/Grid/helper.d.ts +8 -6
  25. package/es/components/Grid/helper.js +63 -15
  26. package/es/components/Grid/interface.d.ts +2 -1
  27. package/es/components/Grid/style/Grid.css +240 -196
  28. package/es/components/ProForm/ProForm.js +3 -3
  29. package/es/components/ProForm/constants.d.ts +1 -1
  30. package/es/components/ProForm/constants.js +5 -2
  31. package/es/components/ProForm/core/devWarning.d.ts +1 -3
  32. package/es/components/ProForm/core/devWarning.js +5 -15
  33. package/es/components/ProForm/layouts/DialogForm.js +2 -4
  34. package/es/index.css +1 -1
  35. package/es/utils/devWarn.d.ts +4 -0
  36. package/es/utils/devWarn.js +23 -0
  37. package/lib/components/Button/Button.js +17 -15
  38. package/lib/components/Button/constants.d.ts +0 -1
  39. package/lib/components/Button/constants.js +2 -3
  40. package/lib/components/Button/interface.d.ts +7 -0
  41. package/lib/components/Dialog/Dialog.js +66 -212
  42. package/lib/components/Dialog/DialogContent.d.ts +16 -0
  43. package/lib/components/Dialog/DialogContent.js +78 -0
  44. package/lib/components/Dialog/DialogControls.d.ts +27 -0
  45. package/lib/components/Dialog/DialogControls.js +72 -0
  46. package/lib/components/Dialog/className.d.ts +12 -0
  47. package/lib/components/Dialog/className.js +23 -0
  48. package/lib/components/Dialog/hooks.d.ts +5 -0
  49. package/lib/components/Dialog/hooks.js +75 -0
  50. package/lib/components/Dialog/interface.d.ts +1 -0
  51. package/lib/components/Dialog/style/Dialog.css +2 -11
  52. package/lib/components/Dialog/types.d.ts +1 -0
  53. package/lib/components/Dialog/types.js +6 -0
  54. package/lib/components/Grid/Col.js +59 -3
  55. package/lib/components/Grid/Grid.d.ts +4 -1
  56. package/lib/components/Grid/Grid.js +5 -4
  57. package/lib/components/Grid/Row.js +6 -4
  58. package/lib/components/Grid/constants.d.ts +5 -3
  59. package/lib/components/Grid/constants.js +14 -5
  60. package/lib/components/Grid/helper.d.ts +8 -6
  61. package/lib/components/Grid/helper.js +63 -15
  62. package/lib/components/Grid/interface.d.ts +2 -1
  63. package/lib/components/Grid/style/Grid.css +240 -196
  64. package/lib/components/ProForm/ProForm.js +2 -2
  65. package/lib/components/ProForm/constants.d.ts +1 -1
  66. package/lib/components/ProForm/constants.js +5 -2
  67. package/lib/components/ProForm/core/devWarning.d.ts +1 -3
  68. package/lib/components/ProForm/core/devWarning.js +23 -24
  69. package/lib/components/ProForm/layouts/DialogForm.js +2 -4
  70. package/lib/index.css +1 -1
  71. package/lib/utils/devWarn.d.ts +4 -0
  72. package/lib/utils/devWarn.js +31 -0
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +171 -57
  75. package/scripts/mcp-server/index.generated.json +94 -10
@@ -6,158 +6,17 @@ var __rest = this && this.__rest || function (s, e) {
6
6
  }
7
7
  return t;
8
8
  };
9
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import useEventCallback from '@1money/hooks/useEventCallback';
11
- import classNames from 'classnames';
12
- import { forwardRef, isValidElement, memo, useCallback, useEffect, useId, useRef } from 'react';
13
- import { Button } from '../Button';
14
- import { Icons } from '../Icons';
11
+ import { forwardRef, memo, useCallback, useId, useRef } from 'react';
15
12
  import { Portal } from '../Portal';
16
- import { TypographyBody, TypographyHeadline } from '../Typography';
17
13
  import { fillRef } from '../../utils/ref';
18
- import { DIALOG_ACTION_KIND, DIALOG_CONTROL_LABELS, DIALOG_CONTROL_TYPE, DIALOG_DEFAULT_BUTTON_COLORS, DIALOG_DEFAULT_ICONS, DIALOG_DEFAULT_PREFIX, DIALOG_DEFAULTS, DIALOG_MODIFIER, DIALOG_NAMESPACE, DIALOG_SIZE, DIALOG_SLOT } from './constants';
14
+ import { getDialogClassName, getDialogPanelClassName } from './className';
15
+ import { DIALOG_ACTION_KIND, DIALOG_CONTROL_TYPE, DIALOG_DEFAULT_PREFIX, DIALOG_DEFAULTS, DIALOG_SIZE, DIALOG_SLOT } from './constants';
16
+ import { DialogHeading, hasDialogHeadingContent, renderDialogBodyContent } from './DialogContent';
17
+ import { renderDialogActionButton, renderDialogControlButton, resolveDialogFooter } from './DialogControls';
18
+ import { useBodyScrollLock, useDialogFocus, useEscapeClose } from './hooks';
19
19
  import './style';
20
- var scrollLockCount = 0;
21
- var getClassName = function getClassName(prefixCls, slot, modifier) {
22
- var baseClassName = "".concat(DIALOG_NAMESPACE, "-").concat(prefixCls).concat(slot ? "-".concat(slot) : '');
23
- return modifier ? "".concat(baseClassName, "-").concat(modifier) : baseClassName;
24
- };
25
- var setBodyOverflow = function setBodyOverflow(value) {
26
- if (typeof document === 'undefined') return;
27
- document.body.style.overflow = value;
28
- };
29
- var lockBodyScroll = function lockBodyScroll() {
30
- scrollLockCount += 1;
31
- setBodyOverflow(DIALOG_DEFAULTS.overflowHidden);
32
- };
33
- var unlockBodyScroll = function unlockBodyScroll() {
34
- scrollLockCount = Math.max(0, scrollLockCount - 1);
35
- if (scrollLockCount === 0) {
36
- requestAnimationFrame(function () {
37
- if (scrollLockCount === 0) {
38
- setBodyOverflow(DIALOG_DEFAULTS.overflowReset);
39
- }
40
- });
41
- }
42
- };
43
- var useBodyScrollLock = function useBodyScrollLock(locked) {
44
- var isLockedRef = useRef(false);
45
- useEffect(function () {
46
- if (!locked || isLockedRef.current) return undefined;
47
- isLockedRef.current = true;
48
- lockBodyScroll();
49
- return function () {
50
- if (!isLockedRef.current) return;
51
- isLockedRef.current = false;
52
- unlockBodyScroll();
53
- };
54
- }, [locked]);
55
- };
56
- var useDialogFocus = function useDialogFocus(active, dialogRef) {
57
- var previousActiveElementRef = useRef(null);
58
- useEffect(function () {
59
- if (!active || typeof document === 'undefined') return undefined;
60
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
61
- var frame = window.requestAnimationFrame(function () {
62
- var _a;
63
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
64
- });
65
- return function () {
66
- window.cancelAnimationFrame(frame);
67
- };
68
- }, [active, dialogRef]);
69
- useEffect(function () {
70
- var _a, _b;
71
- if (active) return;
72
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
73
- previousActiveElementRef.current = null;
74
- }, [active]);
75
- };
76
- var useEscapeClose = function useEscapeClose(enabled, onClose) {
77
- useEffect(function () {
78
- if (!enabled || typeof document === 'undefined') return undefined;
79
- var handleKeyDown = function handleKeyDown(event) {
80
- if (event.key !== DIALOG_DEFAULTS.escapeKey) return;
81
- event.preventDefault();
82
- void (onClose === null || onClose === void 0 ? void 0 : onClose());
83
- };
84
- document.addEventListener(DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
85
- return function () {
86
- document.removeEventListener(DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
87
- };
88
- }, [enabled, onClose]);
89
- };
90
- var renderTypographyNode = function renderTypographyNode(node, renderText) {
91
- if (node == null || typeof node === 'boolean') return null;
92
- if (typeof node === 'string' || typeof node === 'number') {
93
- return renderText(node);
94
- }
95
- return node;
96
- };
97
- var renderIllustrationNode = function renderIllustrationNode(illustration) {
98
- if (!illustration) return null;
99
- if (typeof illustration === 'string') {
100
- return _jsx(Icons, {
101
- name: illustration,
102
- size: DIALOG_DEFAULTS.illustrationSize
103
- });
104
- }
105
- return /*#__PURE__*/isValidElement(illustration) ? illustration : null;
106
- };
107
- var toVoidHandler = function toVoidHandler(action) {
108
- return function () {
109
- void (action === null || action === void 0 ? void 0 : action());
110
- };
111
- };
112
- var createActionHandler = function createActionHandler(action, buttonClick) {
113
- return function (event) {
114
- buttonClick === null || buttonClick === void 0 ? void 0 : buttonClick(event);
115
- if (event.defaultPrevented || !action) return;
116
- void action();
117
- };
118
- };
119
- var renderControlButton = function renderControlButton(prefixCls, type, iconNode, onClick) {
120
- return _jsx("button", {
121
- type: DIALOG_DEFAULTS.buttonHtmlType,
122
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.control), getClassName(prefixCls, DIALOG_SLOT.control, type)),
123
- "aria-label": DIALOG_CONTROL_LABELS[type],
124
- onClick: toVoidHandler(onClick),
125
- children: iconNode
126
- });
127
- };
128
- var renderActionButton = function renderActionButton(_ref) {
129
- var prefixCls = _ref.prefixCls,
130
- kind = _ref.kind,
131
- text = _ref.text,
132
- action = _ref.action,
133
- buttonProps = _ref.buttonProps;
134
- var _a;
135
- if (text == null || !action) return null;
136
- return _jsx(Button, Object.assign({}, buttonProps, {
137
- type: DIALOG_DEFAULTS.buttonHtmlType,
138
- size: DIALOG_DEFAULTS.buttonSize,
139
- color: (_a = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.color) !== null && _a !== void 0 ? _a : DIALOG_DEFAULT_BUTTON_COLORS[kind],
140
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.actionButton), getClassName(prefixCls, DIALOG_SLOT.actionButton, kind), buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className),
141
- style: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.style,
142
- onClick: createActionHandler(action, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.onClick),
143
- children: text
144
- }));
145
- };
146
- var resolveFooterNode = function resolveFooterNode(_ref2) {
147
- var footer = _ref2.footer,
148
- size = _ref2.size,
149
- cancelButton = _ref2.cancelButton,
150
- okButton = _ref2.okButton;
151
- if (footer === null) return null;
152
- if (typeof footer === 'function') return footer(cancelButton, okButton);
153
- if (footer !== undefined) return footer;
154
- if (!cancelButton && !okButton) return null;
155
- return size === DIALOG_SIZE.large ? _jsxs(_Fragment, {
156
- children: [cancelButton, okButton]
157
- }) : _jsxs(_Fragment, {
158
- children: [okButton, cancelButton]
159
- });
160
- };
161
20
  var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
162
21
  var className = props.className,
163
22
  style = props.style,
@@ -177,6 +36,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
177
36
  fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
178
37
  _props$fixed = props.fixed,
179
38
  fixed = _props$fixed === void 0 ? false : _props$fixed,
39
+ width = props.width,
180
40
  title = props.title,
181
41
  children = props.children,
182
42
  illustration = props.illustration,
@@ -199,7 +59,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
199
59
  footerStyle = props.footerStyle,
200
60
  cancelButtonProps = props.cancelButtonProps,
201
61
  okButtonProps = props.okButtonProps,
202
- rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
62
+ rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "width", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
203
63
  var dialogRef = useRef(null);
204
64
  var titleId = useId();
205
65
  var handleSetDialogRef = useCallback(function (node) {
@@ -209,9 +69,6 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
209
69
  var handleCancel = useEventCallback(function () {
210
70
  void (onCancel === null || onCancel === void 0 ? void 0 : onCancel());
211
71
  });
212
- var handleOk = useEventCallback(function () {
213
- void (onOk === null || onOk === void 0 ? void 0 : onOk());
214
- });
215
72
  var handleBack = useEventCallback(function () {
216
73
  void (onBack === null || onBack === void 0 ? void 0 : onBack());
217
74
  });
@@ -223,106 +80,103 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
223
80
  useDialogFocus(open, dialogRef);
224
81
  useEscapeClose(open, handleCancel);
225
82
  var hasMedia = media != null;
226
- var closeControlNode = showCloseIcon ? renderControlButton(prefixCls, DIALOG_CONTROL_TYPE.close, closeIcon !== null && closeIcon !== void 0 ? closeIcon : _jsx(Icons, {
227
- name: DIALOG_DEFAULT_ICONS[DIALOG_CONTROL_TYPE.close],
228
- size: DIALOG_DEFAULTS.controlIconSize
229
- }), handleCancel) : null;
230
- var backControlNode = showBackIcon ? renderControlButton(prefixCls, DIALOG_CONTROL_TYPE.back, backIcon !== null && backIcon !== void 0 ? backIcon : _jsx(Icons, {
231
- name: DIALOG_DEFAULT_ICONS[DIALOG_CONTROL_TYPE.back],
232
- size: DIALOG_DEFAULTS.controlIconSize
233
- }), handleBack) : null;
234
- var illustrationNode = renderIllustrationNode(illustration);
235
- var titleNode = renderTypographyNode(title, function (value) {
236
- return _jsx(TypographyHeadline, {
237
- size: "md",
238
- as: "h2",
239
- color: "default",
240
- children: value
241
- });
242
- });
243
- var childrenNode = renderTypographyNode(children, function (value) {
244
- return _jsx(TypographyBody, {
245
- size: "md",
246
- as: "p",
247
- strong: true,
248
- color: "default-secondary",
249
- children: value
250
- });
83
+ var closeControlNode = showCloseIcon ? renderDialogControlButton({
84
+ prefixCls: prefixCls,
85
+ type: DIALOG_CONTROL_TYPE.close,
86
+ icon: closeIcon,
87
+ onClick: handleCancel
88
+ }) : null;
89
+ var backControlNode = showBackIcon ? renderDialogControlButton({
90
+ prefixCls: prefixCls,
91
+ type: DIALOG_CONTROL_TYPE.back,
92
+ icon: backIcon,
93
+ onClick: handleBack
94
+ }) : null;
95
+ var hasHeading = hasDialogHeadingContent({
96
+ title: title,
97
+ illustration: illustration
251
98
  });
252
- var cancelButton = renderActionButton({
99
+ var headingNode = hasHeading ? _jsx(DialogHeading, {
100
+ prefixCls: prefixCls,
101
+ titleId: titleId,
102
+ title: title,
103
+ illustration: illustration
104
+ }) : null;
105
+ var childrenNode = renderDialogBodyContent(children);
106
+ var cancelButton = renderDialogActionButton({
253
107
  prefixCls: prefixCls,
254
108
  kind: DIALOG_ACTION_KIND.cancel,
255
109
  text: cancelText,
256
110
  action: onCancel,
257
111
  buttonProps: cancelButtonProps
258
112
  });
259
- var okButton = renderActionButton({
113
+ var okButton = renderDialogActionButton({
260
114
  prefixCls: prefixCls,
261
115
  kind: DIALOG_ACTION_KIND.ok,
262
116
  text: okText,
263
117
  action: onOk,
264
118
  buttonProps: okButtonProps
265
119
  });
266
- var footerNode = resolveFooterNode({
120
+ var footerNode = resolveDialogFooter({
267
121
  footer: footer,
268
- size: size,
269
122
  cancelButton: cancelButton,
270
123
  okButton: okButton
271
124
  });
125
+ var panelClassName = getDialogPanelClassName({
126
+ prefixCls: prefixCls,
127
+ size: size,
128
+ fullWidth: fullWidth,
129
+ fixed: fixed,
130
+ hasMedia: hasMedia,
131
+ className: className
132
+ });
133
+ // `width` is a convenience that sets the panel's width inline, overriding the
134
+ // `size` preset's class-level width. An explicit `style.width` still wins (it is
135
+ // spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
136
+ // `max-width: none` / `width: 100%` rules govern sizing on their own.
137
+ var panelStyle = Object.assign({
138
+ width: width
139
+ }, style);
272
140
  if (!open) return null;
273
141
  return _jsx(Portal, {
274
142
  children: _jsxs("div", {
275
143
  style: rootStyle,
276
- className: getClassName(prefixCls, DIALOG_SLOT.root),
144
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.root),
277
145
  children: [_jsx("div", {
278
146
  "aria-hidden": "true",
279
- className: getClassName(prefixCls, DIALOG_SLOT.overlay),
147
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.overlay),
280
148
  onClick: handleOverlayClick
281
149
  }), _jsx("div", {
282
150
  style: wrapperStyle,
283
- className: getClassName(prefixCls, DIALOG_SLOT.wrapper),
151
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.wrapper),
284
152
  children: _jsxs("div", Object.assign({}, rest, {
285
153
  ref: handleSetDialogRef,
286
154
  role: "dialog",
287
155
  "aria-modal": "true",
288
156
  "aria-labelledby": title ? titleId : undefined,
289
157
  tabIndex: -1,
290
- style: style,
291
- className: classNames(getClassName(prefixCls), getClassName(prefixCls, undefined, size), fullWidth && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fullWidth), fixed && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fixed), hasMedia && getClassName(prefixCls, undefined, DIALOG_MODIFIER.withMedia), className),
158
+ style: panelStyle,
159
+ className: panelClassName,
292
160
  children: [closeControlNode, hasMedia && _jsx("div", {
293
- className: getClassName(prefixCls, DIALOG_SLOT.media),
161
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.media),
294
162
  children: media
295
163
  }), _jsxs("div", {
296
- className: getClassName(prefixCls, DIALOG_SLOT.inner),
297
- children: [(backControlNode || fixed && (illustrationNode || titleNode)) && _jsxs("div", {
164
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.inner),
165
+ children: [(backControlNode || fixed && headingNode) && _jsxs("div", {
298
166
  style: headerStyle,
299
- className: getClassName(prefixCls, DIALOG_SLOT.header),
300
- children: [backControlNode, fixed && illustrationNode && _jsx("div", {
301
- className: getClassName(prefixCls, DIALOG_SLOT.illustration),
302
- children: illustrationNode
303
- }), fixed && titleNode && _jsx("div", {
304
- id: titleId,
305
- className: getClassName(prefixCls, DIALOG_SLOT.title),
306
- children: titleNode
307
- })]
167
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.header),
168
+ children: [backControlNode, fixed && headingNode]
308
169
  }), _jsxs("div", {
309
170
  style: bodyStyle,
310
- className: getClassName(prefixCls, DIALOG_SLOT.body),
311
- children: [!fixed && illustrationNode && _jsx("div", {
312
- className: getClassName(prefixCls, DIALOG_SLOT.illustration),
313
- children: illustrationNode
314
- }), !fixed && titleNode && _jsx("div", {
315
- id: titleId,
316
- className: getClassName(prefixCls, DIALOG_SLOT.title),
317
- children: titleNode
318
- }), childrenNode && _jsx("div", {
171
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.body),
172
+ children: [!fixed && headingNode, childrenNode && _jsx("div", {
319
173
  style: contentStyle,
320
- className: getClassName(prefixCls, DIALOG_SLOT.content),
174
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.content),
321
175
  children: childrenNode
322
176
  })]
323
177
  }), footerNode && _jsx("div", {
324
178
  style: footerStyle,
325
- className: classNames(getClassName(prefixCls, DIALOG_SLOT.footer), getClassName(prefixCls, DIALOG_SLOT.footer, size)),
179
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.footer),
326
180
  children: footerNode
327
181
  })]
328
182
  })]
@@ -335,4 +189,4 @@ DialogBase.displayName = 'Dialog';
335
189
  export var Dialog = /*#__PURE__*/memo(DialogBase);
336
190
  Dialog.displayName = 'Dialog';
337
191
  export default Dialog;
338
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwidGl0bGUiLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsImhhbmRsZUNhbmNlbCIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsImNsb3NlIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJhcyIsImNoaWxkcmVuTm9kZSIsInN0cm9uZyIsImNhbmNlbCIsIm9rIiwiZm9vdGVyTm9kZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciXSwibWFwcGluZ3MiOiJB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QztnQkFBQWxDLFFBQUEsRUFDcEVtRTtjQUFTLENBQUEsQ0FFYixFQUNBRSxZQUFZLElBQ1h4SyxJQUFBLENBQUEsS0FBQSxFQUFBO2dCQUNFMEMsS0FBSyxFQUFFMEcsWUFBWTtnQkFDbkJuRCxTQUFTLEVBQUVqRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDd0osT0FBTyxDQUFDO2dCQUFBbkYsUUFBQSxFQUV0RHFFO2NBQVksQ0FBQSxDQUVoQjtZQUFBLENBQUEsQ0FDRyxFQUNMSSxVQUFVLElBQ1Q1SyxJQUFBLENBQUEsS0FBQSxFQUFBO2NBQ0UwQyxLQUFLLEVBQUUyRyxXQUFXO2NBQ2xCcEQsU0FBUyxFQUFFM0YsVUFBVSxDQUNuQjBCLFlBQVksQ0FBQ0MsU0FBUyxFQUFFSCxXQUFXLENBQUNpRixNQUFNLENBQUMsRUFDM0MvRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDaUYsTUFBTSxFQUFFMUIsSUFBSSxDQUFDLENBQ2xEO2NBQUFjLFFBQUEsRUFFQXlFO1lBQVUsQ0FBQSxDQUVkO1VBQUEsQ0FBQSxDQUNHO1FBQUEsQ0FBQSxDQUFBO01BQ0YsQ0FBQSxDQUNGO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGekQsVUFBVSxDQUFDb0UsV0FBVyxHQUFHLFFBQVE7QUFFakMsT0FBTyxJQUFNQyxNQUFNLGdCQUFHL0ssSUFBSSxDQUFDMEcsVUFBVSxDQUFDO0FBRXRDcUUsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUU3QixlQUFlQyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGlmICghb3BlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KFBvcnRhbCwgeyBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogcm9vdFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnJvb3QpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscyksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgc2l6ZSksIGZ1bGxXaWR0aCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5mdWxsV2lkdGgpLCBmaXhlZCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5maXhlZCksIGhhc01lZGlhICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLndpdGhNZWRpYSksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbY2xvc2VDb250cm9sTm9kZSwgaGFzTWVkaWEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QubWVkaWEpLCBjaGlsZHJlbjogbWVkaWEgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgKGlsbHVzdHJhdGlvbk5vZGUgfHwgdGl0bGVOb2RlKSkpICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5oZWFkZXIpLCBjaGlsZHJlbjogW2JhY2tDb250cm9sTm9kZSwgZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCBmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCAhZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKSwgY2hpbGRyZW5Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGNvbnRlbnRTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250ZW50KSwgY2hpbGRyZW46IGNoaWxkcmVuTm9kZSB9KSldIH0pLCBmb290ZXJOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyLCBzaXplKSksIGNoaWxkcmVuOiBmb290ZXJOb2RlIH0pKV0gfSldIH0pKSB9KV0gfSkgfSkpO1xufSk7XG5EaWFsb2dCYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgY29uc3QgRGlhbG9nID0gbWVtbyhEaWFsb2dCYXNlKTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGRlZmF1bHQgRGlhbG9nOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
192
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwidXNlRXZlbnRDYWxsYmFjayIsImZvcndhcmRSZWYiLCJtZW1vIiwidXNlQ2FsbGJhY2siLCJ1c2VJZCIsInVzZVJlZiIsIlBvcnRhbCIsImZpbGxSZWYiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJnZXREaWFsb2dQYW5lbENsYXNzTmFtZSIsIkRJQUxPR19BQ1RJT05fS0lORCIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJESUFMT0dfREVGQVVMVF9QUkVGSVgiLCJESUFMT0dfREVGQVVMVFMiLCJESUFMT0dfU0laRSIsIkRJQUxPR19TTE9UIiwiRGlhbG9nSGVhZGluZyIsImhhc0RpYWxvZ0hlYWRpbmdDb250ZW50IiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJyZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24iLCJyZW5kZXJEaWFsb2dDb250cm9sQnV0dG9uIiwicmVzb2x2ZURpYWxvZ0Zvb3RlciIsInVzZUJvZHlTY3JvbGxMb2NrIiwidXNlRGlhbG9nRm9jdXMiLCJ1c2VFc2NhcGVDbG9zZSIsIkRpYWxvZ0Jhc2UiLCJwcm9wcyIsInJlZiIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIl9wcm9wcyRvcGVuIiwib3BlbiIsIl9wcm9wcyRzaXplIiwic2l6ZSIsInNtYWxsIiwiX3Byb3BzJG1hc2tDbG9zYWJsZSIsIm1hc2tDbG9zYWJsZSIsIl9wcm9wcyRzaG93Q2xvc2VJY29uIiwic2hvd0Nsb3NlSWNvbiIsIl9wcm9wcyRzaG93QmFja0ljb24iLCJzaG93QmFja0ljb24iLCJfcHJvcHMkZnVsbFdpZHRoIiwiZnVsbFdpZHRoIiwiX3Byb3BzJGZpeGVkIiwiZml4ZWQiLCJ3aWR0aCIsInRpdGxlIiwiY2hpbGRyZW4iLCJpbGx1c3RyYXRpb24iLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwiZm9vdGVyIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwiZGlhbG9nUmVmIiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsIm5vZGUiLCJjdXJyZW50IiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsInR5cGUiLCJjbG9zZSIsImljb24iLCJvbkNsaWNrIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImhhc0hlYWRpbmciLCJoZWFkaW5nTm9kZSIsImNoaWxkcmVuTm9kZSIsImNhbmNlbEJ1dHRvbiIsImtpbmQiLCJjYW5jZWwiLCJ0ZXh0IiwiYWN0aW9uIiwiYnV0dG9uUHJvcHMiLCJva0J1dHRvbiIsIm9rIiwiZm9vdGVyTm9kZSIsInBhbmVsQ2xhc3NOYW1lIiwicGFuZWxTdHlsZSIsImFzc2lnbiIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ1bmRlZmluZWQiLCJ0YWJJbmRleCIsImlubmVyIiwiaGVhZGVyIiwiYm9keSIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZyJdLCJtYXBw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QixTQUFTLEVBQUVoQixXQUFXLENBQUNnRyxPQUFPLENBQUM7Z0JBQUE5RCxRQUFBLEVBRTVEd0M7Y0FBWSxDQUFBLENBRWhCO1lBQUEsQ0FBQSxDQUNHLEVBQ0xTLFVBQVUsSUFDVHJHLElBQUEsQ0FBQSxLQUFBLEVBQUE7Y0FDRWdDLEtBQUssRUFBRXNDLFdBQVc7Y0FDbEJ2QyxTQUFTLEVBQUVwQixrQkFBa0IsQ0FBQ3VCLFNBQVMsRUFBRWhCLFdBQVcsQ0FBQ3VDLE1BQU0sQ0FBQztjQUFBTCxRQUFBLEVBRTNEaUQ7WUFBVSxDQUFBLENBRWQ7VUFBQSxDQUFBLENBQ0c7UUFBQSxDQUFBLENBQUE7TUFDRixDQUFBLENBQ0Y7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUNDO0FBRWIsQ0FBQyxDQUFDO0FBRUZ6RSxVQUFVLENBQUN1RixXQUFXLEdBQUcsUUFBUTtBQUVqQyxPQUFPLElBQU1DLE1BQU0sZ0JBQUcvRyxJQUFJLENBQUN1QixVQUFVLENBQUM7QUFFdEN3RixNQUFNLENBQUNELFdBQVcsR0FBRyxRQUFRO0FBRTdCLGVBQWVDLE1BQU0iLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IGdldERpYWxvZ0NsYXNzTmFtZSwgZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzTmFtZSc7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX1RZUEUsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0laRSwgRElBTE9HX1NMT1QsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGlhbG9nSGVhZGluZywgaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQsIHJlbmRlckRpYWxvZ0JvZHlDb250ZW50LCB9IGZyb20gJy4vRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24sIHJlbmRlckRpYWxvZ0NvbnRyb2xCdXR0b24sIHJlc29sdmVEaWFsb2dGb290ZXIsIH0gZnJvbSAnLi9EaWFsb2dDb250cm9scyc7XG5pbXBvcnQgeyB1c2VCb2R5U2Nyb2xsTG9jaywgdXNlRGlhbG9nRm9jdXMsIHVzZUVzY2FwZUNsb3NlIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgRGlhbG9nQmFzZSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IERJQUxPR19ERUZBVUxUX1BSRUZJWCwgb3BlbiA9IGZhbHNlLCBzaXplID0gRElBTE9HX1NJWkUuc21hbGwsIG1hc2tDbG9zYWJsZSA9IHRydWUsIHNob3dDbG9zZUljb24gPSB0cnVlLCBzaG93QmFja0ljb24gPSBmYWxzZSwgZnVsbFdpZHRoID0gZmFsc2UsIGZpeGVkID0gZmFsc2UsIHdpZHRoLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwid2lkdGhcIiwgXCJ0aXRsZVwiLCBcImNoaWxkcmVuXCIsIFwiaWxsdXN0cmF0aW9uXCIsIFwibWVkaWFcIiwgXCJjbG9zZUljb25cIiwgXCJiYWNrSWNvblwiLCBcImZvb3RlclwiLCBcIm9uT2tcIiwgXCJvbkNhbmNlbFwiLCBcIm9uQmFja1wiLCBcIm9rVGV4dFwiLCBcImNhbmNlbFRleHRcIiwgXCJyb290U3R5bGVcIiwgXCJ3cmFwcGVyU3R5bGVcIiwgXCJib2R5U3R5bGVcIiwgXCJoZWFkZXJTdHlsZVwiLCBcImNvbnRlbnRTdHlsZVwiLCBcImZvb3RlclN0eWxlXCIsIFwiY2FuY2VsQnV0dG9uUHJvcHNcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdGl0bGVJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaGFuZGxlU2V0RGlhbG9nUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgZGlhbG9nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBmaWxsUmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZl0pO1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkNhbmNlbCA9PT0gbnVsbCB8fCBvbkNhbmNlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DYW5jZWwoKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghbWFza0Nsb3NhYmxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9KTtcbiAgICB1c2VCb2R5U2Nyb2xsTG9jayhvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhvcGVuLCBkaWFsb2dSZWYpO1xuICAgIHVzZUVzY2FwZUNsb3NlKG9wZW4sIGhhbmRsZUNhbmNlbCk7XG4gICAgY29uc3QgaGFzTWVkaWEgPSBtZWRpYSAhPSBudWxsO1xuICAgIGNvbnN0IGNsb3NlQ29udHJvbE5vZGUgPSBzaG93Q2xvc2VJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlLFxuICAgICAgICAgICAgaWNvbjogY2xvc2VJY29uLFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlQ2FuY2VsLFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgYmFja0NvbnRyb2xOb2RlID0gc2hvd0JhY2tJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2ssXG4gICAgICAgICAgICBpY29uOiBiYWNrSWNvbixcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUJhY2ssXG4gICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBoYXNIZWFkaW5nID0gaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQoeyB0aXRsZSwgaWxsdXN0cmF0aW9uIH0pO1xuICAgIGNvbnN0IGhlYWRpbmdOb2RlID0gaGFzSGVhZGluZyA/IChfanN4KERpYWxvZ0hlYWRpbmcsIHsgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHRpdGxlSWQ6IHRpdGxlSWQsIHRpdGxlOiB0aXRsZSwgaWxsdXN0cmF0aW9uOiBpbGx1c3RyYXRpb24gfSkpIDogbnVsbDtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJEaWFsb2dCb2R5Q29udGVudChjaGlsZHJlbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcmVuZGVyRGlhbG9nQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQuY2FuY2VsLFxuICAgICAgICB0ZXh0OiBjYW5jZWxUZXh0LFxuICAgICAgICBhY3Rpb246IG9uQ2FuY2VsLFxuICAgICAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5vayxcbiAgICAgICAgdGV4dDogb2tUZXh0LFxuICAgICAgICBhY3Rpb246IG9uT2ssXG4gICAgICAgIGJ1dHRvblByb3BzOiBva0J1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IGZvb3Rlck5vZGUgPSByZXNvbHZlRGlhbG9nRm9vdGVyKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGNvbnN0IHBhbmVsQ2xhc3NOYW1lID0gZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUoe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGZ1bGxXaWR0aCxcbiAgICAgICAgZml4ZWQsXG4gICAgICAgIGhhc01lZGlhLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgfSk7XG4gICAgLy8gYHdpZHRoYCBpcyBhIGNvbnZlbmllbmNlIHRoYXQgc2V0cyB0aGUgcGFuZWwncyB3aWR0aCBpbmxpbmUsIG92ZXJyaWRpbmcgdGhlXG4gICAgLy8gYHNpemVgIHByZXNldCdzIGNsYXNzLWxldmVsIHdpZHRoLiBBbiBleHBsaWNpdCBgc3R5bGUud2lkdGhgIHN0aWxsIHdpbnMgKGl0IGlzXG4gICAgLy8gc3ByZWFkIGxhc3QpLiBOb3RlOiBgd2lkdGhgIGlzIG5vdCBtZWFudCB0byBiZSBjb21iaW5lZCB3aXRoIGBmdWxsV2lkdGhgLCB3aG9zZVxuICAgIC8vIGBtYXgtd2lkdGg6IG5vbmVgIC8gYHdpZHRoOiAxMDAlYCBydWxlcyBnb3Zlcm4gc2l6aW5nIG9uIHRoZWlyIG93bi5cbiAgICBjb25zdCBwYW5lbFN0eWxlID0gT2JqZWN0LmFzc2lnbih7IHdpZHRoIH0sIHN0eWxlKTtcbiAgICBpZiAoIW9wZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHJvb3RTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5yb290KSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5vdmVybGF5KSwgb25DbGljazogaGFuZGxlT3ZlcmxheUNsaWNrIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHdyYXBwZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC53cmFwcGVyKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBoYW5kbGVTZXREaWFsb2dSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGUgPyB0aXRsZUlkIDogdW5kZWZpbmVkLCB0YWJJbmRleDogLTEsIHN0eWxlOiBwYW5lbFN0eWxlLCBjbGFzc05hbWU6IHBhbmVsQ2xhc3NOYW1lLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5tZWRpYSksIGNoaWxkcmVuOiBtZWRpYSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgaGVhZGluZ05vZGUpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGhlYWRpbmdOb2RlXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaGVhZGluZ05vZGUsIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5mb290ZXIpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { IconName } from "../Icons";
3
+ interface DialogHeadingProps {
4
+ prefixCls: string;
5
+ titleId: string;
6
+ title?: ReactNode;
7
+ illustration?: ReactNode | IconName;
8
+ }
9
+ interface DialogHeadingContentOptions {
10
+ title?: ReactNode;
11
+ illustration?: ReactNode | IconName;
12
+ }
13
+ export declare const hasDialogHeadingContent: ({ title, illustration, }: DialogHeadingContentOptions) => boolean;
14
+ export declare const DialogHeading: ({ prefixCls, titleId, title, illustration, }: DialogHeadingProps) => import("react/jsx-runtime").JSX.Element | null;
15
+ export declare const renderDialogBodyContent: (children: ReactNode) => ReactNode;
16
+ export {};
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isValidElement } from 'react';
3
+ import { Icons } from '../Icons';
4
+ import { TypographyBody, TypographyHeadline } from '../Typography';
5
+ import { getDialogClassName } from './className';
6
+ import { DIALOG_DEFAULTS, DIALOG_SLOT } from './constants';
7
+ var hasTextNode = function hasTextNode(node) {
8
+ return node != null && typeof node !== 'boolean';
9
+ };
10
+ var hasIllustrationNode = function hasIllustrationNode(illustration) {
11
+ return Boolean(illustration && (typeof illustration === 'string' || /*#__PURE__*/isValidElement(illustration)));
12
+ };
13
+ var renderTypographyNode = function renderTypographyNode(node, renderText) {
14
+ if (!hasTextNode(node)) return null;
15
+ if (typeof node === 'string' || typeof node === 'number') {
16
+ return renderText(node);
17
+ }
18
+ return node;
19
+ };
20
+ var renderIllustrationNode = function renderIllustrationNode(illustration) {
21
+ if (!illustration) return null;
22
+ if (typeof illustration === 'string') {
23
+ return _jsx(Icons, {
24
+ name: illustration,
25
+ size: DIALOG_DEFAULTS.illustrationSize
26
+ });
27
+ }
28
+ return /*#__PURE__*/isValidElement(illustration) ? illustration : null;
29
+ };
30
+ export var hasDialogHeadingContent = function hasDialogHeadingContent(_ref) {
31
+ var title = _ref.title,
32
+ illustration = _ref.illustration;
33
+ return hasIllustrationNode(illustration) || hasTextNode(title);
34
+ };
35
+ export var DialogHeading = function DialogHeading(_ref2) {
36
+ var prefixCls = _ref2.prefixCls,
37
+ titleId = _ref2.titleId,
38
+ title = _ref2.title,
39
+ illustration = _ref2.illustration;
40
+ var illustrationNode = renderIllustrationNode(illustration);
41
+ var titleNode = renderTypographyNode(title, function (value) {
42
+ return _jsx(TypographyHeadline, {
43
+ size: "md",
44
+ as: "h2",
45
+ color: "default",
46
+ children: value
47
+ });
48
+ });
49
+ if (!illustrationNode && !titleNode) return null;
50
+ return _jsxs(_Fragment, {
51
+ children: [illustrationNode && _jsx("div", {
52
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.illustration),
53
+ children: illustrationNode
54
+ }), titleNode && _jsx("div", {
55
+ id: titleId,
56
+ className: getDialogClassName(prefixCls, DIALOG_SLOT.title),
57
+ children: titleNode
58
+ })]
59
+ });
60
+ };
61
+ export var renderDialogBodyContent = function renderDialogBodyContent(children) {
62
+ return renderTypographyNode(children, function (value) {
63
+ return _jsx(TypographyBody, {
64
+ size: "md",
65
+ as: "p",
66
+ strong: true,
67
+ color: "default-secondary",
68
+ children: value
69
+ });
70
+ });
71
+ };
72
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJpc1ZhbGlkRWxlbWVudCIsIkljb25zIiwiVHlwb2dyYXBoeUJvZHkiLCJUeXBvZ3JhcGh5SGVhZGxpbmUiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJESUFMT0dfREVGQVVMVFMiLCJESUFMT0dfU0xPVCIsImhhc1RleHROb2RlIiwibm9kZSIsImhhc0lsbHVzdHJhdGlvbk5vZGUiLCJpbGx1c3RyYXRpb24iLCJCb29sZWFuIiwicmVuZGVyVHlwb2dyYXBoeU5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsImhhc0RpYWxvZ0hlYWRpbmdDb250ZW50IiwiX3JlZiIsInRpdGxlIiwiRGlhbG9nSGVhZGluZyIsIl9yZWYyIiwicHJlZml4Q2xzIiwidGl0bGVJZCIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJ2YWx1ZSIsImFzIiwiY29sb3IiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImlkIiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJzdHJvbmciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxRQUFRLElBQUlDLFNBQVMsRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQXJGLFNBQVNDLGNBQWMsUUFBUSxPQUFPO0FBQ3RDLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLGNBQWMsRUFBRUMsa0JBQWtCLFFBQVEsZUFBZTtBQUNsRSxTQUFTQyxrQkFBa0IsUUFBUSxhQUFhO0FBQ2hELFNBQVNDLGVBQWUsRUFBRUMsV0FB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LEVBQUVqQixXQUFXLENBQUNjLEtBQUssQ0FBQztNQUFBVSxRQUFBLEVBQzFFSjtJQUFTLENBQUEsQ0FFYjtFQUFBLENBQUEsQ0FDQTtBQUVQLENBQUM7QUFFRCxPQUFPLElBQU1PLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlILFFBQW1CO0VBQUEsT0FDekRsQixvQkFBb0IsQ0FBQ2tCLFFBQVEsRUFBRSxVQUFDSCxLQUFLO0lBQUEsT0FDbkNoQyxJQUFBLENBQUNPLGNBQWMsRUFBQTtNQUFDYyxJQUFJLEVBQUMsSUFBSTtNQUFDWSxFQUFFLEVBQUMsR0FBRztNQUFDTSxNQUFNLEVBQUEsSUFBQTtNQUFDTCxLQUFLLEVBQUMsbUJBQW1CO01BQUFDLFFBQUEsRUFDOURIO0lBQUssQ0FBQSxDQUNTO0VBQUEsQ0FDbEIsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZ2V0RGlhbG9nQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzc05hbWUnO1xuaW1wb3J0IHsgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0xPVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGhhc1RleHROb2RlID0gKG5vZGUpID0+IG5vZGUgIT0gbnVsbCAmJiB0eXBlb2Ygbm9kZSAhPT0gJ2Jvb2xlYW4nO1xuY29uc3QgaGFzSWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IEJvb2xlYW4oaWxsdXN0cmF0aW9uICYmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJyB8fCBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pKSk7XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKCFoYXNUZXh0Tm9kZShub2RlKSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygbm9kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcbmNvbnN0IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUgPSAoaWxsdXN0cmF0aW9uKSA9PiB7XG4gICAgaWYgKCFpbGx1c3RyYXRpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpbGx1c3RyYXRpb24sIHNpemU6IERJQUxPR19ERUZBVUxUUy5pbGx1c3RyYXRpb25TaXplIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnQoaWxsdXN0cmF0aW9uKSA/IGlsbHVzdHJhdGlvbiA6IG51bGw7XG59O1xuZXhwb3J0IGNvbnN0IGhhc0RpYWxvZ0hlYWRpbmdDb250ZW50ID0gKHsgdGl0bGUsIGlsbHVzdHJhdGlvbiwgfSkgPT4gaGFzSWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pIHx8IGhhc1RleHROb2RlKHRpdGxlKTtcbmV4cG9ydCBjb25zdCBEaWFsb2dIZWFkaW5nID0gKHsgcHJlZml4Q2xzLCB0aXRsZUlkLCB0aXRsZSwgaWxsdXN0cmF0aW9uLCB9KSA9PiB7XG4gICAgY29uc3QgaWxsdXN0cmF0aW9uTm9kZSA9IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUoaWxsdXN0cmF0aW9uKTtcbiAgICBjb25zdCB0aXRsZU5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZSh0aXRsZSwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5SGVhZGxpbmUsIHsgc2l6ZTogXCJtZFwiLCBhczogXCJoMlwiLCBjb2xvcjogXCJkZWZhdWx0XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGlmICghaWxsdXN0cmF0aW9uTm9kZSAmJiAhdGl0bGVOb2RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2lsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldERpYWxvZ0NsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dCb2R5Q29udGVudCA9IChjaGlsZHJlbikgPT4gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ButtonProps } from "../Button";
3
+ import type { DialogActionKind, DialogControlType } from './constants';
4
+ import type { DialogProps } from './interface';
5
+ import type { DialogAction } from './types';
6
+ interface DialogControlButtonOptions {
7
+ prefixCls: string;
8
+ type: DialogControlType;
9
+ icon?: ReactNode;
10
+ onClick?: DialogAction;
11
+ }
12
+ interface DialogActionButtonOptions {
13
+ prefixCls: string;
14
+ kind: DialogActionKind;
15
+ text: ReactNode;
16
+ action?: DialogAction;
17
+ buttonProps?: Partial<ButtonProps>;
18
+ }
19
+ interface DialogFooterOptions {
20
+ footer: DialogProps['footer'];
21
+ cancelButton: ReactNode;
22
+ okButton: ReactNode;
23
+ }
24
+ export declare const renderDialogControlButton: ({ prefixCls, type, icon, onClick, }: DialogControlButtonOptions) => import("react/jsx-runtime").JSX.Element;
25
+ export declare const renderDialogActionButton: ({ prefixCls, kind, text, action, buttonProps, }: DialogActionButtonOptions) => import("react/jsx-runtime").JSX.Element | null;
26
+ export declare const resolveDialogFooter: ({ footer, cancelButton, okButton, }: DialogFooterOptions) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
27
+ export {};