@1money/component-ui 0.0.69 → 0.0.71
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.
- package/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
- package/es/business/Select/Network/NetworkSelect.js +2 -2
- package/es/components/Accordion/Accordion.js +3 -2
- package/es/components/Calendar/Calendar.js +3 -2
- package/es/components/Carousel/Carousel.js +3 -2
- package/es/components/Checkbox/BaseCheckbox.js +3 -2
- package/es/components/Checkbox/Checkbox.js +2 -2
- package/es/components/Checkbox/CheckboxGroup.js +3 -2
- package/es/components/CoachMark/CoachMark.js +3 -2
- package/es/components/Copy/Copy.js +2 -2
- package/es/components/Dialog/Dialog.js +2 -2
- package/es/components/Drawer/Drawer.js +2 -2
- package/es/components/Icons/Wrapper.js +6 -4
- package/es/components/Icons/constants.d.ts +11 -0
- package/es/components/Icons/constants.js +32 -0
- package/es/components/Icons/index.d.ts +2 -0
- package/es/components/Icons/index.js +2 -1
- package/es/components/Icons/interface.d.ts +8 -1
- package/es/components/Input/Amount/Amount.js +2 -2
- package/es/components/Input/Input/Input.js +3 -2
- package/es/components/Input/Mask/Mask.js +3 -2
- package/es/components/Input/OTP/OTP.js +3 -2
- package/es/components/Input/Password/Password.js +3 -2
- package/es/components/Input/Search/Search.js +3 -2
- package/es/components/Input/TextArea/TextArea.js +3 -2
- package/es/components/Input/Trade/Trade.js +2 -2
- package/es/components/Input/useAmountInput.js +4 -2
- package/es/components/Input/useSyncRef.js +2 -2
- package/es/components/Navigation/Nav.js +2 -2
- package/es/components/Navigation/Navigation.js +5 -2
- package/es/components/Pagination/Pagination.js +2 -2
- package/es/components/Pagination/usePagination.js +3 -2
- package/es/components/Popconfirm/Popconfirm.js +2 -2
- package/es/components/Portal/Portal.js +2 -2
- package/es/components/ProForm/ProForm.js +6 -3
- package/es/components/ProForm/ProFormGroup.js +2 -2
- package/es/components/ProForm/ProFormList.js +3 -2
- package/es/components/ProForm/Submitter.js +2 -2
- package/es/components/ProForm/core/constants.d.ts +6 -0
- package/es/components/ProForm/core/constants.js +7 -1
- package/es/components/ProForm/core/hooks/useForm.js +25 -195
- package/es/components/ProForm/core/hooks/useFormCore.js +14 -142
- package/es/components/ProForm/core/pathUtils.d.ts +6 -0
- package/es/components/ProForm/core/pathUtils.js +59 -0
- package/es/components/ProForm/core/runRules.d.ts +13 -0
- package/es/components/ProForm/core/runRules.js +186 -0
- package/es/components/ProForm/core/useFormItem.js +10 -28
- package/es/components/ProForm/fields/createProFormField.js +43 -57
- package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
- package/es/components/ProForm/layouts/QueryFilter.js +3 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
- package/es/components/ProForm/utils.d.ts +2 -2
- package/es/components/ProForm/utils.js +5 -51
- package/es/components/ProTable/ProTable.js +3 -2
- package/es/components/ProTable/core/useAwaitableReload.js +3 -2
- package/es/components/ProTable/useFetchData.js +4 -2
- package/es/components/Radio/Radio.js +3 -2
- package/es/components/Radio/RadioGroup.js +3 -2
- package/es/components/ResizeObserver/useResizeObserver.js +2 -2
- package/es/components/Segment/Segment.js +4 -2
- package/es/components/Select/Select.js +3 -2
- package/es/components/Select/SelectCustom.js +2 -2
- package/es/components/Select/useSelectShell.js +3 -2
- package/es/components/Slider/Slider.js +3 -2
- package/es/components/Switch/Switch.js +3 -2
- package/es/components/Table/Table.js +14 -28
- package/es/components/Table/VirtualTable.js +18 -28
- package/es/components/Table/core/columnUtil.d.ts +9 -0
- package/es/components/Table/core/columnUtil.js +34 -0
- package/es/components/Table/core/useTableColumns.d.ts +4 -13
- package/es/components/Table/core/useTableColumns.js +55 -24
- package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/es/components/Table/core/useTableDataPipeline.js +66 -73
- package/es/components/Table/core/useTableExpand.js +3 -2
- package/es/components/Table/core/useTableSelection.js +7 -4
- package/es/components/Table/core/useTableSetup.js +4 -2
- package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/es/components/Table/features/ExpandTrigger.js +14 -8
- package/es/components/Table/features/FilterTrigger.js +21 -17
- package/es/components/Table/features/SelectionColumn.d.ts +11 -6
- package/es/components/Table/features/SelectionColumn.js +12 -5
- package/es/components/Table/features/SortTrigger.d.ts +4 -2
- package/es/components/Table/features/SortTrigger.js +8 -3
- package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
- package/es/components/Table/internal/kernel/Cell/index.js +2 -2
- package/es/components/Table/internal/kernel/Table.js +3 -3
- package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
- package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
- package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
- package/es/components/Table/renderers/HeaderCell.js +3 -2
- package/es/components/Table/renderers/TableShell.d.ts +13 -0
- package/es/components/Table/renderers/TableShell.js +25 -0
- package/es/components/Table/style/Table.css +3 -0
- package/es/components/Tabs/Tabs.js +4 -2
- package/es/components/Tooltip/Tooltip.js +3 -2
- package/es/components/Tour/Tour.js +3 -2
- package/es/components/Trigger/Trigger.js +3 -2
- package/es/components/Typography/Typography.js +2 -2
- package/es/components/Typography/useTypographyEnhancements.js +3 -2
- package/es/components/Upload/Upload.js +2 -2
- package/es/components/Upload/UploadFileBar.js +2 -2
- package/es/components/VirtualList/VirtualList.js +3 -2
- package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
- package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
- package/lib/business/Select/Network/NetworkSelect.js +3 -3
- package/lib/components/Accordion/Accordion.js +5 -4
- package/lib/components/Calendar/Calendar.js +6 -5
- package/lib/components/Carousel/Carousel.js +5 -4
- package/lib/components/Checkbox/BaseCheckbox.js +5 -4
- package/lib/components/Checkbox/Checkbox.js +3 -3
- package/lib/components/Checkbox/CheckboxGroup.js +7 -6
- package/lib/components/CoachMark/CoachMark.js +7 -6
- package/lib/components/Copy/Copy.js +3 -3
- package/lib/components/Dialog/Dialog.js +6 -6
- package/lib/components/Drawer/Drawer.js +10 -10
- package/lib/components/Icons/Wrapper.js +6 -4
- package/lib/components/Icons/constants.d.ts +11 -0
- package/lib/components/Icons/constants.js +38 -0
- package/lib/components/Icons/index.d.ts +2 -0
- package/lib/components/Icons/index.js +10 -2
- package/lib/components/Icons/interface.d.ts +8 -1
- package/lib/components/Input/Amount/Amount.js +6 -5
- package/lib/components/Input/Input/Input.js +7 -6
- package/lib/components/Input/Mask/Mask.js +9 -8
- package/lib/components/Input/OTP/OTP.js +9 -8
- package/lib/components/Input/Password/Password.js +6 -5
- package/lib/components/Input/Search/Search.js +8 -7
- package/lib/components/Input/TextArea/TextArea.js +5 -4
- package/lib/components/Input/Trade/Trade.js +5 -4
- package/lib/components/Input/useAmountInput.js +13 -11
- package/lib/components/Input/useSyncRef.js +4 -3
- package/lib/components/Navigation/Nav.js +3 -3
- package/lib/components/Navigation/Navigation.js +10 -7
- package/lib/components/Pagination/Pagination.js +4 -3
- package/lib/components/Pagination/usePagination.js +7 -6
- package/lib/components/Popconfirm/Popconfirm.js +3 -3
- package/lib/components/Portal/Portal.js +4 -4
- package/lib/components/ProForm/ProForm.js +14 -11
- package/lib/components/ProForm/ProFormGroup.js +3 -3
- package/lib/components/ProForm/ProFormList.js +10 -9
- package/lib/components/ProForm/Submitter.js +4 -4
- package/lib/components/ProForm/core/constants.d.ts +6 -0
- package/lib/components/ProForm/core/constants.js +8 -2
- package/lib/components/ProForm/core/hooks/useForm.js +36 -206
- package/lib/components/ProForm/core/hooks/useFormCore.js +32 -160
- package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
- package/lib/components/ProForm/core/pathUtils.js +68 -0
- package/lib/components/ProForm/core/runRules.d.ts +13 -0
- package/lib/components/ProForm/core/runRules.js +194 -0
- package/lib/components/ProForm/core/useFormItem.js +15 -33
- package/lib/components/ProForm/fields/createProFormField.js +42 -56
- package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
- package/lib/components/ProForm/layouts/QueryFilter.js +8 -7
- package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
- package/lib/components/ProForm/utils.d.ts +2 -2
- package/lib/components/ProForm/utils.js +20 -55
- package/lib/components/ProTable/ProTable.js +10 -9
- package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
- package/lib/components/ProTable/useFetchData.js +15 -13
- package/lib/components/Radio/Radio.js +6 -5
- package/lib/components/Radio/RadioGroup.js +5 -4
- package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
- package/lib/components/Segment/Segment.js +7 -5
- package/lib/components/Select/Select.js +23 -22
- package/lib/components/Select/SelectCustom.js +8 -8
- package/lib/components/Select/useSelectShell.js +5 -4
- package/lib/components/Slider/Slider.js +6 -5
- package/lib/components/Switch/Switch.js +5 -4
- package/lib/components/Table/Table.js +13 -27
- package/lib/components/Table/VirtualTable.js +17 -27
- package/lib/components/Table/core/columnUtil.d.ts +9 -0
- package/lib/components/Table/core/columnUtil.js +42 -0
- package/lib/components/Table/core/useTableColumns.d.ts +4 -13
- package/lib/components/Table/core/useTableColumns.js +57 -26
- package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/lib/components/Table/core/useTableDataPipeline.js +73 -80
- package/lib/components/Table/core/useTableExpand.js +6 -5
- package/lib/components/Table/core/useTableSelection.js +13 -10
- package/lib/components/Table/core/useTableSetup.js +8 -5
- package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/lib/components/Table/features/ExpandTrigger.js +14 -8
- package/lib/components/Table/features/FilterTrigger.js +21 -17
- package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
- package/lib/components/Table/features/SelectionColumn.js +12 -5
- package/lib/components/Table/features/SortTrigger.d.ts +4 -2
- package/lib/components/Table/features/SortTrigger.js +8 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
- package/lib/components/Table/internal/kernel/Table.js +7 -6
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
- package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
- package/lib/components/Table/renderers/HeaderCell.js +3 -2
- package/lib/components/Table/renderers/TableShell.d.ts +13 -0
- package/lib/components/Table/renderers/TableShell.js +31 -0
- package/lib/components/Table/style/Table.css +3 -0
- package/lib/components/Tabs/Tabs.js +7 -5
- package/lib/components/Tooltip/Tooltip.js +5 -4
- package/lib/components/Tour/Tour.js +7 -6
- package/lib/components/Trigger/Trigger.js +5 -4
- package/lib/components/Typography/Typography.js +5 -4
- package/lib/components/Typography/useTypographyEnhancements.js +8 -7
- package/lib/components/Upload/Upload.js +5 -4
- package/lib/components/Upload/UploadFileBar.js +4 -3
- package/lib/components/VirtualList/VirtualList.js +8 -7
- package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +2 -2
- package/scripts/mcp-server/examples.generated.json +12 -6
- package/scripts/mcp-server/index.generated.json +45 -3
|
@@ -9,7 +9,8 @@ exports["default"] = exports.InputMask = void 0;
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
var _react = require("react");
|
|
12
|
-
var
|
|
12
|
+
var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
|
|
13
|
+
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
13
14
|
var _classnames = _interopRequireWildcard(require("../../../utils/classnames"));
|
|
14
15
|
var _FieldShell = require("../FieldShell");
|
|
15
16
|
var _useSyncRef3 = require("../useSyncRef");
|
|
@@ -148,21 +149,21 @@ var InputMask = exports.InputMask = function InputMask(props) {
|
|
|
148
149
|
};
|
|
149
150
|
var initialFormatted = defaultValue ? formatValue(defaultValue) : '';
|
|
150
151
|
var controlledFormatted = value !== undefined ? formatValue(value) : undefined;
|
|
151
|
-
var _useControlledState = (0,
|
|
152
|
+
var _useControlledState = (0, _useControlledState3["default"])(initialFormatted, controlledFormatted),
|
|
152
153
|
_useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
|
|
153
154
|
innerValue = _useControlledState2[0],
|
|
154
155
|
setInnerValue = _useControlledState2[1];
|
|
155
156
|
var isDisabled = disabled || loading;
|
|
156
157
|
var ariaRequired = required ? 'true' : 'false';
|
|
157
158
|
var ariaInvalid = status === 'error' ? 'true' : 'false';
|
|
158
|
-
var emitChange = (0,
|
|
159
|
+
var emitChange = (0, _useEventCallback["default"])(function (formatted, event) {
|
|
159
160
|
var raw = extractRaw(formatted, mask, slotChar);
|
|
160
161
|
onChange === null || onChange === void 0 ? void 0 : onChange(unmask ? raw : formatted, event);
|
|
161
162
|
if (raw.length === totalSlots) {
|
|
162
163
|
onComplete === null || onComplete === void 0 ? void 0 : onComplete(unmask ? raw : formatted);
|
|
163
164
|
}
|
|
164
165
|
});
|
|
165
|
-
var handleChange = (0,
|
|
166
|
+
var handleChange = (0, _useEventCallback["default"])(function (event) {
|
|
166
167
|
var _a;
|
|
167
168
|
if (isComposing.current) return;
|
|
168
169
|
var input = event.target;
|
|
@@ -185,7 +186,7 @@ var InputMask = exports.InputMask = function InputMask(props) {
|
|
|
185
186
|
input.setSelectionRange(nextPos, nextPos);
|
|
186
187
|
});
|
|
187
188
|
});
|
|
188
|
-
var handleKeyDown = (0,
|
|
189
|
+
var handleKeyDown = (0, _useEventCallback["default"])(function (event) {
|
|
189
190
|
var _a, _b, _c;
|
|
190
191
|
var input = inputRef.current;
|
|
191
192
|
if (!input) return;
|
|
@@ -273,7 +274,7 @@ var InputMask = exports.InputMask = function InputMask(props) {
|
|
|
273
274
|
}
|
|
274
275
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
275
276
|
});
|
|
276
|
-
var handleFocus = (0,
|
|
277
|
+
var handleFocus = (0, _useEventCallback["default"])(function (event) {
|
|
277
278
|
// On focus, if empty show the mask placeholder
|
|
278
279
|
if (!innerValue || extractRaw(innerValue, mask, slotChar).length === 0) {
|
|
279
280
|
var formatted = applyMask('', mask, slotChar);
|
|
@@ -288,7 +289,7 @@ var InputMask = exports.InputMask = function InputMask(props) {
|
|
|
288
289
|
});
|
|
289
290
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
290
291
|
});
|
|
291
|
-
var handleBlur = (0,
|
|
292
|
+
var handleBlur = (0, _useEventCallback["default"])(function (event) {
|
|
292
293
|
var raw = extractRaw(innerValue, mask, slotChar);
|
|
293
294
|
if (autoClear && raw.length > 0 && raw.length < totalSlots) {
|
|
294
295
|
var empty = applyMask('', mask, slotChar);
|
|
@@ -353,4 +354,4 @@ InputMask.displayName = 'InputMask';
|
|
|
353
354
|
var MemoizedInputMask = /*#__PURE__*/(0, _react.memo)(InputMask);
|
|
354
355
|
MemoizedInputMask.displayName = 'InputMask';
|
|
355
356
|
var _default = exports["default"] = MemoizedInputMask;
|
|
356
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwiY29tcG9uZW50cy9JbnB1dC9zcmMvY29tcG9uZW50cy9JbnB1dC9NYXNrL01hc2sudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9ob29rcyIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfRmllbGRTaGVsbCIsIl91c2VTeW5jUmVmMyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTUFTS19UT0tFTiIsImlzTWFza1Rva2VuIiwiY2hhciIsImFwcGx5TWFzayIsInJhdyIsIm1hc2siLCJzbG90Q2hhciIsInJlc3VsdCIsInJhd0luZGV4IiwibWFza0NoYXIiLCJyZSIsInRlc3QiLCJleHRyYWN0UmF3IiwiZm9ybWF0dGVkIiwiY291bnRUb2tlblNsb3RzIiwiY291bnQiLCJmaW5kTmV4dFNsb3QiLCJmcm9tSW5kZXgiLCJmaW5kRmlyc3RTbG90IiwiaWR4IiwiSW5wdXRNYXNrIiwiZXhwb3J0cyIsInByb3BzIiwiX2EiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwiX3Byb3BzJHNsb3RDaGFyIiwiX3Byb3BzJHVubWFzayIsInVubWFzayIsIl9wcm9wcyRhdXRvQ2xlYXIiLCJhdXRvQ2xlYXIiLCJsYWJlbCIsImluZm8iLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsInRpcCIsInJlcXVpcmVkIiwicHJlZml4Iiwic3VmZml4IiwidmFsdWUiLCJfcHJvcHMkZGVmYXVsdFZhbHVlIiwiZGVmYXVsdFZhbHVlIiwib25DaGFuZ2UiLCJvbkNvbXBsZXRlIiwib25Gb2N1cyIsIm9uQmx1ciIsIm9uS2V5RG93biIsInJlZiIsImV4dGVybmFsSWQiLCJpZCIsInJlc3QiLCJhdXRvSWQiLCJ1c2VJZCIsImlucHV0SWQiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsIl91c2VTeW5jUmVmIiwidXNlU3luY1JlZiIsIl91c2VTeW5jUmVmMiIsIl9zbGljZWRUb0FycmF5MiIsImlucHV0UmVmIiwic3luY1JlZiIsImlzQ29tcG9zaW5nIiwidXNlUmVmIiwidG90YWxTbG90cyIsImZvcm1hdFZhbHVlIiwidmFsIiwiaW5pdGlhbEZvcm1hdHRlZCIsImNvbnRyb2xsZWRGb3JtYXR0ZWQiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImlzRGlzYWJsZWQiLCJhcmlhUmVxdWlyZWQiLCJhcmlhSW52YWxpZCIsImVtaXRDaGFuZ2UiLCJ1c2VFdmVudENhbGxiYWNrIiwiZXZlbnQiLCJoYW5kbGVDaGFuZ2UiLCJjdXJyZW50IiwiaW5wdXQiLCJ0YXJnZXQiLCJjdXJzb3JQb3MiLCJzZWxlY3Rpb25TdGFydCIsImlucHV0VmFsdWUiLCJzbGljZSIsInJlcGxhY2UiLCJjbGVhblJhdyIsImNoIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwibmV4dFBvcyIsInNldFNlbGVjdGlvblJhbmdlIiwiaGFuZGxlS2V5RG93biIsIl9iIiwiX2MiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsInBvcyIsInNlbEVuZCIsInNlbGVjdGlvbkVuZCIsImN1cnJlbnRSYXciLCJuZXdSYXciLCJyYXdJZHgiLCJ0YXJnZXRQb3MiLCJoYW5kbGVGb2N1cyIsImhhbmRsZUJsdXIiLCJlbXB0eSIsIl9qc3giLCJGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJfanN4cyIsImpvaW5DbHMiLCJhc3NpZ24iLCJwbGFjZWhvbGRlciIsIm9uQ29tcG9zaXRpb25TdGFydCIsIm9uQ29tcG9zaXRpb25FbmQiLCJkaXNwbGF5TmFtZSIsIk1lbW9pemVkSW5wdXRNYXNrIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFDLHVCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFBMkMsU0FBQU8seUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFKLHdCQUFBSSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFH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QUFnQkEsQ0FBRzVKLENBQUMsRUFBSTtVQUN0Qm9HLFdBQVcsQ0FBQ29CLE9BQU8sR0FBRyxLQUFLO1VBQzNCRCxZQUFZLENBQUN2SCxDQUE2QyxDQUFDO1FBQzdELENBQUM7UUFBQSxlQUFBLEVBQ2NrSCxZQUFZO1FBQUEsY0FBQSxFQUNiQztNQUFXLENBQUEsQ0FBQSxDQUN6QixFQUNEdkMsTUFBTSxJQUFJLElBQUF3RSxlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1oRyxTQUFTLEVBQUV3QyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQUEwRCxRQUFBLEVBQUcxRTtNQUFNLENBQUEsQ0FBUTtJQUFBLENBQUE7RUFDMUQsQ0FBQSxDQUNLO0FBRWpCLENBQUM7QUFFRDdCLFNBQVMsQ0FBQzhHLFdBQVcsR0FBRyxXQUFXO0FBRW5DLElBQU1DLGlCQUFpQixnQkFBRyxJQUFBQyxXQUFJLEVBQUNoSCxTQUFTLENBQUM7QUFDekMrRyxpQkFBaUIsQ0FBQ0QsV0FBVyxHQUFHLFdBQVc7QUFBQyxJQUFBRyxRQUFBLEdBQUFoSCxPQUFBLGNBRTdCOEcsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUlkLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRmllbGRTaGVsbCB9IGZyb20gJy4uL0ZpZWxkU2hlbGwnO1xuaW1wb3J0IHsgdXNlU3luY1JlZiB9IGZyb20gJy4uL3VzZVN5bmNSZWYnO1xuLyoqIE1hc2sgdG9rZW4gbWF0Y2hlcnM6IDkgPSBkaWdpdCwgYSA9IGxldHRlciwgKiA9IGFscGhhbnVtZXJpYyAqL1xuY29uc3QgTUFTS19UT0tFTiA9IHtcbiAgICAnOSc6IC9cXGQvLFxuICAgICdhJzogL1thLXpBLVpdLyxcbiAgICAnKic6IC9bYS16QS1aMC05XS8sXG59O1xuY29uc3QgaXNNYXNrVG9rZW4gPSAoY2hhcikgPT4gY2hhciBpbiBNQVNLX1RPS0VOO1xuLyoqIEFwcGx5IG1hc2sgdG8gcmF3IHZhbHVlLCByZXR1cm5pbmcgdGhlIGZvcm1hdHRlZCBzdHJpbmcgKi9cbmNvbnN0IGFwcGx5TWFzayA9IChyYXcsIG1hc2ssIHNsb3RDaGFyKSA9PiB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCByYXdJbmRleCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG1hc2tDaGFyID0gbWFza1tpXTtcbiAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tDaGFyKSkge1xuICAgICAgICAgICAgaWYgKHJhd0luZGV4IDwgcmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlID0gTUFTS19UT0tFTlttYXNrQ2hhcl07XG4gICAgICAgICAgICAgICAgLy8gU2tpcCBpbnZhbGlkIGNoYXJhY3RlcnMgaW4gcmF3XG4gICAgICAgICAgICAgICAgd2hpbGUgKHJhd0luZGV4IDwgcmF3Lmxlbmd0aCAmJiAhcmUudGVzdChyYXdbcmF3SW5kZXhdKSkge1xuICAgICAgICAgICAgICAgICAgICByYXdJbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocmF3SW5kZXggPCByYXcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSByYXdbcmF3SW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICByYXdJbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHNsb3RDaGFyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzbG90Q2hhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBtYXNrQ2hhcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufTtcbi8qKiBFeHRyYWN0IHJhdyB2YWx1ZSAob25seSB1c2VyLXR5cGVkIGNoYXJhY3RlcnMsIG5vIGxpdGVyYWxzIG9yIHNsb3QgY2hhcnMpICovXG5jb25zdCBleHRyYWN0UmF3ID0gKGZvcm1hdHRlZCwgbWFzaywgc2xvdENoYXIpID0+IHtcbiAgICBsZXQgcmF3ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrLmxlbmd0aCAmJiBpIDwgZm9ybWF0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSAmJiBmb3JtYXR0ZWRbaV0gIT09IHNsb3RDaGFyKSB7XG4gICAgICAgICAgICByYXcgKz0gZm9ybWF0dGVkW2ldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByYXc7XG59O1xuLyoqIENvdW50IGhvdyBtYW55IG1hc2sgdG9rZW5zIGV4aXN0IGluIHRoZSBtYXNrIHBhdHRlcm4gKi9cbmNvbnN0IGNvdW50VG9rZW5TbG90cyA9IChtYXNrKSA9PiB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pKVxuICAgICAgICAgICAgY291bnQrKztcbiAgICB9XG4gICAgcmV0dXJuIGNvdW50O1xufTtcbi8qKiBGaW5kIHRoZSBjdXJzb3IgcG9zaXRpb24gZm9yIHRoZSBuZXh0IGF2YWlsYWJsZSBtYXNrIHRva2VuIHNsb3QgKi9cbmNvbnN0IGZpbmROZXh0U2xvdCA9IChtYXNrLCBmb3JtYXR0ZWQsIHNsb3RDaGFyLCBmcm9tSW5kZXgpID0+IHtcbiAgICBmb3IgKGxldCBpID0gZnJvbUluZGV4OyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkgJiYgKGkgPj0gZm9ybWF0dGVkLmxlbmd0aCB8fCBmb3JtYXR0ZWRbaV0gPT09IHNsb3RDaGFyKSkge1xuICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZyb21JbmRleDtcbn07XG4vKiogRmluZCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0IHNsb3QgY2hhciBpbiBmb3JtYXR0ZWQgdmFsdWUgKi9cbmNvbnN0IGZpbmRGaXJzdFNsb3QgPSAoZm9ybWF0dGVkLCBzbG90Q2hhcikgPT4ge1xuICAgIGNvbnN0IGlkeCA9IGZvcm1hdHRlZC5pbmRleE9mKHNsb3RDaGFyKTtcbiAgICByZXR1cm4gaWR4ID09PSAtMSA/IGZvcm1hdHRlZC5sZW5ndGggOiBpZHg7XG59O1xuZXhwb3J0IGNvbnN0IElucHV0TWFzayA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzID0gJ2lucHV0Jywgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgZGlzYWJsZWQgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtYXNrLCBzbG90Q2hhciA9ICdfJywgdW5tYXNrID0gZmFsc2UsIGF1dG9DbGVhciA9IGZhbHNlLCBsYWJlbCwgaW5mbywgZmVlZGJhY2ssIGZlZWRiYWNrSWNvbiwgdGlwLCByZXF1aXJlZCwgcHJlZml4LCBzdWZmaXgsIHZhbHVlLCBkZWZhdWx0VmFsdWUgPSAnJywgb25DaGFuZ2UsIG9uQ29tcGxldGUsIG9uRm9jdXMsIG9uQmx1ciwgb25LZXlEb3duLCByZWYsIGlkOiBleHRlcm5hbElkIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwibGFiZWxDbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJzaXplXCIsIFwic3RhdHVzXCIsIFwiZGlzYWJsZWRcIiwgXCJsb2FkaW5nXCIsIFwibWFza1wiLCBcInNsb3RDaGFyXCIsIFwidW5tYXNrXCIsIFwiYXV0b0NsZWFyXCIsIFwibGFiZWxcIiwgXCJpbmZvXCIsIFwiZmVlZGJhY2tcIiwgXCJmZWVkYmFja0ljb25cIiwgXCJ0aXBcIiwgXCJyZXF1aXJlZFwiLCBcInByZWZpeFwiLCBcInN1ZmZpeFwiLCBcInZhbHVlXCIsIFwiZGVmYXVsdFZhbHVlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkNvbXBsZXRlXCIsIFwib25Gb2N1c1wiLCBcIm9uQmx1clwiLCBcIm9uS2V5RG93blwiLCBcInJlZlwiLCBcImlkXCJdKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGlucHV0SWQgPSBleHRlcm5hbElkICE9PSBudWxsICYmIGV4dGVybmFsSWQgIT09IHZvaWQgMCA/IGV4dGVybmFsSWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbaW5wdXRSZWYsIHN5bmNSZWZdID0gdXNlU3luY1JlZihyZWYpO1xuICAgIGNvbnN0IGlzQ29tcG9zaW5nID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCB0b3RhbFNsb3RzID0gY291bnRUb2tlblNsb3RzKG1hc2spO1xuICAgIC8vIEludGVybmFsIHN0YXRlIGFsd2F5cyBzdG9yZXMgdGhlIGZvcm1hdHRlZCB2YWx1ZVxuICAgIGNvbnN0IGZvcm1hdFZhbHVlID0gKHZhbCkgPT4gYXBwbHlNYXNrKHZhbCwgbWFzaywgc2xvdENoYXIpO1xuICAgIGNvbnN0IGluaXRpYWxGb3JtYXR0ZWQgPSBkZWZhdWx0VmFsdWUgPyBmb3JtYXRWYWx1ZShkZWZhdWx0VmFsdWUpIDogJyc7XG4gICAgY29uc3QgY29udHJvbGxlZEZvcm1hdHRlZCA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyBmb3JtYXRWYWx1ZSh2YWx1ZSkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGluaXRpYWxGb3JtYXR0ZWQsIGNvbnRyb2xsZWRGb3JtYXR0ZWQpO1xuICAgIGNvbnN0IGlzRGlzYWJsZWQgPSBkaXNhYmxlZCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGFyaWFSZXF1aXJlZCA9IHJlcXVpcmVkID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICBjb25zdCBhcmlhSW52YWxpZCA9IHN0YXR1cyA9PT0gJ2Vycm9yJyA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgY29uc3QgZW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGZvcm1hdHRlZCwgZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgcmF3ID0gZXh0cmFjdFJhdyhmb3JtYXR0ZWQsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKHVubWFzayA/IHJhdyA6IGZvcm1hdHRlZCwgZXZlbnQpO1xuICAgICAgICBpZiAocmF3Lmxlbmd0aCA9PT0gdG90YWxTbG90cykge1xuICAgICAgICAgICAgb25Db21wbGV0ZSA9PT0gbnVsbCB8fCBvbkNvbXBsZXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbXBsZXRlKHVubWFzayA/IHJhdyA6IGZvcm1hdHRlZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpc0NvbXBvc2luZy5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgY29uc3QgY3Vyc29yUG9zID0gKF9hID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBpbnB1dC52YWx1ZTtcbiAgICAgICAgLy8gRXh0cmFjdCBvbmx5IHZhbGlkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmF3IGlucHV0XG4gICAgICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RSYXcoaW5wdXRWYWx1ZSwgbWFzaywgc2xvdENoYXIpXG4gICAgICAgICAgICArIGlucHV0VmFsdWUuc2xpY2UoY3Vyc29yUG9zID4gMCA/IGN1cnNvclBvcyAtIDEgOiAwLCBjdXJzb3JQb3MpLnJlcGxhY2UoL1teXFxkYS16QS1aXS9nLCAnJyk7XG4gICAgICAgIC8vIFJlLWV4dHJhY3QgZnJvbSB0aGUgZnVsbCBpbnB1dCB0byBnZXQgY2xlYW4gcmF3XG4gICAgICAgIGxldCBjbGVhblJhdyA9ICcnO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0VmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGNoID0gaW5wdXRWYWx1ZVtpXTtcbiAgICAgICAgICAgIGlmICgvW1xcZGEtekEtWl0vLnRlc3QoY2gpKVxuICAgICAgICAgICAgICAgIGNsZWFuUmF3ICs9IGNoO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzayhjbGVhblJhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICBzZXRJbm5lclZhbHVlKGZvcm1hdHRlZCk7XG4gICAgICAgIGVtaXRDaGFuZ2UoZm9ybWF0dGVkLCBldmVudCk7XG4gICAgICAgIC8vIFBvc2l0aW9uIGN1cnNvciBhZnRlciB0aGUgbGFzdCBmaWxsZWQgc2xvdFxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV4dFBvcyA9IGZpbmRGaXJzdFNsb3QoZm9ybWF0dGVkLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShuZXh0UG9zLCBuZXh0UG9zKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgcG9zID0gKF9hID0gaW5wdXQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgICAgICBjb25zdCBzZWxFbmQgPSAoX2IgPSBpbnB1dC5zZWxlY3Rpb25FbmQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgICAgICAgICBpZiAocG9zID09PSAwICYmIHNlbEVuZCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmF3ID0gZXh0cmFjdFJhdyhpbm5lclZhbHVlLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBpZiAocG9zICE9PSBzZWxFbmQpIHtcbiAgICAgICAgICAgICAgICAvLyBTZWxlY3Rpb246IHJlbW92ZSBhbGwgcmF3IGNoYXJzIGluIHRoZSBzZWxlY3RlZCByYW5nZVxuICAgICAgICAgICAgICAgIGxldCBuZXdSYXcgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcmF3SWR4ID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoICYmIHJhd0lkeCA8IGN1cnJlbnRSYXcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSA8IHBvcyB8fCBpID49IHNlbEVuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld1JhdyArPSBjdXJyZW50UmF3W3Jhd0lkeF07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByYXdJZHgrKztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2sobmV3UmF3LCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWQpO1xuICAgICAgICAgICAgICAgIGVtaXRDaGFuZ2UoZm9ybWF0dGVkLCB7IHRhcmdldDogaW5wdXQgfSk7XG4gICAgICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dFBvcyA9IGZpbmROZXh0U2xvdChtYXNrLCBmb3JtYXR0ZWQsIHNsb3RDaGFyLCBwb3MpO1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShuZXh0UG9zLCBuZXh0UG9zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIFNpbmdsZSBiYWNrc3BhY2U6IGZpbmQgcHJldiB0b2tlbiBwb3NpdGlvbiBhbmQgcmVtb3ZlIGl0XG4gICAgICAgICAgICAgICAgbGV0IHRhcmdldFBvcyA9IHBvcyAtIDE7XG4gICAgICAgICAgICAgICAgd2hpbGUgKHRhcmdldFBvcyA+PSAwICYmICFpc01hc2tUb2tlbihtYXNrW3RhcmdldFBvc10pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFBvcy0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0UG9zIDwgMClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSYXcgPSAnJztcbiAgICAgICAgICAgICAgICBsZXQgcmF3SWR4ID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gdGFyZ2V0UG9zICYmIHJhd0lkeCA8IGN1cnJlbnRSYXcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmF3ICs9IGN1cnJlbnRSYXdbcmF3SWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJhd0lkeCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzayhuZXdSYXcsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgICAgICBzZXRJbm5lclZhbHVlKGZvcm1hdHRlZCk7XG4gICAgICAgICAgICAgICAgZW1pdENoYW5nZShmb3JtYXR0ZWQsIHsgdGFyZ2V0OiBpbnB1dCB9KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSh0YXJnZXRQb3MsIHRhcmdldFBvcyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSAoX2MgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgIGxldCB0YXJnZXRQb3MgPSBwb3M7XG4gICAgICAgICAgICB3aGlsZSAodGFyZ2V0UG9zIDwgbWFzay5sZW5ndGggJiYgIWlzTWFza1Rva2VuKG1hc2tbdGFyZ2V0UG9zXSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRQb3MrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YXJnZXRQb3MgPj0gbWFzay5sZW5ndGgpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJhdyA9IGV4dHJhY3RSYXcoaW5uZXJWYWx1ZSwgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgbGV0IG5ld1JhdyA9ICcnO1xuICAgICAgICAgICAgbGV0IHJhd0lkeCA9IDA7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT09IHRhcmdldFBvcyAmJiByYXdJZHggPCBjdXJyZW50UmF3Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmF3ICs9IGN1cnJlbnRSYXdbcmF3SWR4XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByYXdJZHgrKztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2sobmV3UmF3LCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKGZvcm1hdHRlZCk7XG4gICAgICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgeyB0YXJnZXQ6IGlucHV0IH0pO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBvbktleURvd24gPT09IG51bGwgfHwgb25LZXlEb3duID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbktleURvd24oZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gT24gZm9jdXMsIGlmIGVtcHR5IHNob3cgdGhlIG1hc2sgcGxhY2Vob2xkZXJcbiAgICAgICAgaWYgKCFpbm5lclZhbHVlIHx8IGV4dHJhY3RSYXcoaW5uZXJWYWx1ZSwgbWFzaywgc2xvdENoYXIpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKCcnLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBzZXRJbm5lclZhbHVlKGZvcm1hdHRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IGZpbmRGaXJzdFNsb3QoaW5wdXQudmFsdWUsIHNsb3RDaGFyKTtcbiAgICAgICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShwb3MsIHBvcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgaWYgKGF1dG9DbGVhciAmJiByYXcubGVuZ3RoID4gMCAmJiByYXcubGVuZ3RoIDwgdG90YWxTbG90cykge1xuICAgICAgICAgICAgY29uc3QgZW1wdHkgPSBhcHBseU1hc2soJycsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUoZW1wdHkpO1xuICAgICAgICAgICAgZW1pdENoYW5nZShlbXB0eSwgeyB0YXJnZXQ6IGV2ZW50LnRhcmdldCB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBjb21wbGV0ZWx5IGVtcHR5LCBjbGVhciB0aGUgZm9ybWF0dGVkIG1hc2tcbiAgICAgICAgaWYgKHJhdy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUoJycpO1xuICAgICAgICB9XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4KEZpZWxkU2hlbGwsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHNpemU6IHNpemUsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogaXNEaXNhYmxlZCwgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCB0aXA6IHRpcCwgZmVlZGJhY2s6IGZlZWRiYWNrLCBmZWVkYmFja0ljb246IGZlZWRiYWNrSWNvbiwgcmVxdWlyZWQ6IHJlcXVpcmVkLCBpbnB1dElkOiBpbnB1dElkLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRyb2wnLCBqb2luQ2xzKGlzRGlzYWJsZWQgJiYgY2xhc3NlcygnY29udHJvbC1kaXNhYmxlZCcpKSksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBzeW5jUmVmLCBpZDogaW5wdXRJZCwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmaWVsZCcpLCBkaXNhYmxlZDogaXNEaXNhYmxlZCwgdmFsdWU6IGlubmVyVmFsdWUsIHBsYWNlaG9sZGVyOiAoX2EgPSByZXN0LnBsYWNlaG9sZGVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBhcHBseU1hc2soJycsIG1hc2ssIHNsb3RDaGFyKSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVLZXlEb3duLCBvbkZvY3VzOiBoYW5kbGVGb2N1cywgb25CbHVyOiBoYW5kbGVCbHVyLCBvbkNvbXBvc2l0aW9uU3RhcnQ6ICgpID0+IHsgaXNDb21wb3NpbmcuY3VycmVudCA9IHRydWU7IH0sIG9uQ29tcG9zaXRpb25FbmQ6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0NvbXBvc2luZy5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UoZSk7XG4gICAgICAgICAgICAgICAgICAgIH0sIFwiYXJpYS1yZXF1aXJlZFwiOiBhcmlhUmVxdWlyZWQsIFwiYXJpYS1pbnZhbGlkXCI6IGFyaWFJbnZhbGlkIH0pKSwgc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnKSwgY2hpbGRyZW46IHN1ZmZpeCB9KV0gfSkgfSkpO1xufTtcbklucHV0TWFzay5kaXNwbGF5TmFtZSA9ICdJbnB1dE1hc2snO1xuY29uc3QgTWVtb2l6ZWRJbnB1dE1hc2sgPSBtZW1vKElucHV0TWFzayk7XG5NZW1vaXplZElucHV0TWFzay5kaXNwbGF5TmFtZSA9ICdJbnB1dE1hc2snO1xuZXhwb3J0IGRlZmF1bHQgTWVtb2l6ZWRJbnB1dE1hc2s7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
357
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvTWFzay9NYXNrLmpzIiwiY29tcG9uZW50cy9JbnB1dC9zcmMvY29tcG9uZW50cy9JbnB1dC9NYXNrL01hc2sudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl91c2VFdmVudENhbGxiYWNrIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9GaWVsZFNoZWxsIiwiX3VzZVN5bmNSZWYzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19yZXN0IiwicyIsInAiLCJwcm90b3R5cGUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJNQVNLX1RPS0VOIiwiaXNNYXNrVG9rZW4iLCJjaGFyIiwiYXBwbHlNYXNrIiwicmF3IiwibWFzayIsInNsb3RDaGFyIiwicmVzdWx0IiwicmF3SW5kZXgiLCJtYXNrQ2hhciIsInJlIiwidGVzdCIsImV4dHJhY3RSYXciLCJmb3JtYXR0ZWQiLCJjb3VudFRva2VuU2xvdHMiLCJjb3VudCIsImZpbmROZXh0U2xvdCIsImZyb21JbmRleCIsImZpbmRGaXJzdFNsb3QiLCJpZHgiLCJJbnB1dE1hc2siLCJleHBvcnRzIiwicHJvcHMiLCJfYSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJsYWJlbENsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkc2xvdENoYXIiLCJfcHJvcHMkdW5tYXNrIiwidW5tYXNrIiwiX3Byb3BzJGF1dG9DbGVhciIsImF1dG9DbGVhciIsImxhYmVsIiwiaW5mbyIsImZlZWRiYWNrIiwiZmVlZGJhY2tJY29uIiwidGlwIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJzdWZmaXgiLCJ2YWx1ZSIsIl9wcm9wcyRkZWZhdWx0VmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJvbkNoYW5nZSIsIm9uQ29tcGxldGUiLCJvbkZvY3VzIiwib25CbHVyIiwib25LZXlEb3duIiwicmVmIiwiZXh0ZXJuYWxJZCIsImlkIiwicmVzdCIsImF1dG9JZCIsInVzZUlkIiwiaW5wdXRJZCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiX3VzZVN5bmNSZWYiLCJ1c2VTeW5jUmVmIiwiX3VzZVN5bmNSZWYyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaW5wdXRSZWYiLCJzeW5jUmVmIiwiaXNDb21wb3NpbmciLCJ1c2VSZWYiLCJ0b3RhbFNsb3RzIiwiZm9ybWF0VmFsdWUiLCJ2YWwiLCJpbml0aWFsRm9ybWF0dGVkIiwiY29udHJvbGxlZEZvcm1hdHRlZCIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiaXNEaXNhYmxlZCIsImFyaWFSZXF1aXJlZCIsImFyaWFJbnZhbGlkIiwiZW1pdENoYW5nZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJldmVudCIsImhhbmRsZUNoYW5nZSIsImN1cnJlbnQiLCJpbnB1dCIsInRhcmdldCIsImN1cnNvclBvcyIsInNlbGVjdGlvblN0YXJ0IiwiaW5wdXRWYWx1ZSIsInNsaWNlIiwicmVwbGFjZSIsImNsZWFuUmF3IiwiY2giLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJuZXh0UG9zIiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJoYW5kbGVLZXlEb3duIiwiX2IiLCJfYyIsImtleSIsInByZXZlbnREZWZhdWx0IiwicG9zIiwic2VsRW5kIiwic2VsZWN0aW9uRW5kIiwiY3VycmVudFJhdyIsIm5ld1JhdyIsInJhd0lkeCIsInRhcmdldFBvcyIsImhhbmRsZUZvY3VzIiwiaGFuZGxlQmx1ciIsImVtcHR5IiwiX2pzeCIsIkZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsIl9qc3hzIiwiam9pbkNscyIsImFzc2lnbiIsInBsYWNlaG9sZGVyIiwib25Db21wb3NpdGlvblN0YXJ0Iiwib25Db21wb3NpdGlvbkVuZCIsImRpc3BsYXlOYW1lIiwiTWVtb2l6ZWRJbnB1dE1hc2siLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG9CQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBQyx1QkFBQSxDQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsWUFBQSxHQUFBUixPQUFBO0FBQTJDLFNBQUFTLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSix3QkFBQUksQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxD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UyxrQkFBa0IsRUFBRSxTQUFwQkEsa0JBQWtCQSxDQUFBLEVBQU87VUFBR3ZELFdBQVcsQ0FBQ29CLE9BQU8sR0FBRyxJQUFJO1FBQUUsQ0FBQztRQUN6RG9DLGdCQUFnQixFQUFFLFNBQWxCQSxnQkFBZ0JBLENBQUc1SixDQUFDLEVBQUk7VUFDdEJvRyxXQUFXLENBQUNvQixPQUFPLEdBQUcsS0FBSztVQUMzQkQsWUFBWSxDQUFDdkgsQ0FBNkMsQ0FBQztRQUM3RCxDQUFDO1FBQUEsZUFBQSxFQUNja0gsWUFBWTtRQUFBLGNBQUEsRUFDYkM7TUFBVyxDQUFBLENBQUEsQ0FDekIsRUFDRHZDLE1BQU0sSUFBSSxJQUFBd0UsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUFNaEcsU0FBUyxFQUFFd0MsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFBMEQsUUFBQSxFQUFHMUU7TUFBTSxDQUFBLENBQVE7SUFBQSxDQUFBO0VBQzFELENBQUEsQ0FDSztBQUVqQixDQUFDO0FBRUQ3QixTQUFTLENBQUM4RyxXQUFXLEdBQUcsV0FBVztBQUVuQyxJQUFNQyxpQkFBaUIsZ0JBQUcsSUFBQUMsV0FBSSxFQUFDaEgsU0FBUyxDQUFDO0FBQ3pDK0csaUJBQWlCLENBQUNELFdBQVcsR0FBRyxXQUFXO0FBQUMsSUFBQUcsUUFBQSxHQUFBaEgsT0FBQSxjQUU3QjhHLGlCQUFpQiIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0L01hc2svTWFzay5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBGaWVsZFNoZWxsIH0gZnJvbSAnLi4vRmllbGRTaGVsbCc7XG5pbXBvcnQgeyB1c2VTeW5jUmVmIH0gZnJvbSAnLi4vdXNlU3luY1JlZic7XG4vKiogTWFzayB0b2tlbiBtYXRjaGVyczogOSA9IGRpZ2l0LCBhID0gbGV0dGVyLCAqID0gYWxwaGFudW1lcmljICovXG5jb25zdCBNQVNLX1RPS0VOID0ge1xuICAgICc5JzogL1xcZC8sXG4gICAgJ2EnOiAvW2EtekEtWl0vLFxuICAgICcqJzogL1thLXpBLVowLTldLyxcbn07XG5jb25zdCBpc01hc2tUb2tlbiA9IChjaGFyKSA9PiBjaGFyIGluIE1BU0tfVE9LRU47XG4vKiogQXBwbHkgbWFzayB0byByYXcgdmFsdWUsIHJldHVybmluZyB0aGUgZm9ybWF0dGVkIHN0cmluZyAqL1xuY29uc3QgYXBwbHlNYXNrID0gKHJhdywgbWFzaywgc2xvdENoYXIpID0+IHtcbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgbGV0IHJhd0luZGV4ID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgbWFza0NoYXIgPSBtYXNrW2ldO1xuICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza0NoYXIpKSB7XG4gICAgICAgICAgICBpZiAocmF3SW5kZXggPCByYXcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmUgPSBNQVNLX1RPS0VOW21hc2tDaGFyXTtcbiAgICAgICAgICAgICAgICAvLyBTa2lwIGludmFsaWQgY2hhcmFjdGVycyBpbiByYXdcbiAgICAgICAgICAgICAgICB3aGlsZSAocmF3SW5kZXggPCByYXcubGVuZ3RoICYmICFyZS50ZXN0KHJhd1tyYXdJbmRleF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJhd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyYXdJbmRleCA8IHJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHJhd1tyYXdJbmRleF07XG4gICAgICAgICAgICAgICAgICAgIHJhd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc2xvdENoYXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHNsb3RDaGFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ICs9IG1hc2tDaGFyO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59O1xuLyoqIEV4dHJhY3QgcmF3IHZhbHVlIChvbmx5IHVzZXItdHlwZWQgY2hhcmFjdGVycywgbm8gbGl0ZXJhbHMgb3Igc2xvdCBjaGFycykgKi9cbmNvbnN0IGV4dHJhY3RSYXcgPSAoZm9ybWF0dGVkLCBtYXNrLCBzbG90Q2hhcikgPT4ge1xuICAgIGxldCByYXcgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2subGVuZ3RoICYmIGkgPCBmb3JtYXR0ZWQubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKGlzTWFza1Rva2VuKG1hc2tbaV0pICYmIGZvcm1hdHRlZFtpXSAhPT0gc2xvdENoYXIpIHtcbiAgICAgICAgICAgIHJhdyArPSBmb3JtYXR0ZWRbaV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJhdztcbn07XG4vKiogQ291bnQgaG93IG1hbnkgbWFzayB0b2tlbnMgZXhpc3QgaW4gdGhlIG1hc2sgcGF0dGVybiAqL1xuY29uc3QgY291bnRUb2tlblNsb3RzID0gKG1hc2spID0+IHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkpXG4gICAgICAgICAgICBjb3VudCsrO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQ7XG59O1xuLyoqIEZpbmQgdGhlIGN1cnNvciBwb3NpdGlvbiBmb3IgdGhlIG5leHQgYXZhaWxhYmxlIG1hc2sgdG9rZW4gc2xvdCAqL1xuY29uc3QgZmluZE5leHRTbG90ID0gKG1hc2ssIGZvcm1hdHRlZCwgc2xvdENoYXIsIGZyb21JbmRleCkgPT4ge1xuICAgIGZvciAobGV0IGkgPSBmcm9tSW5kZXg7IGkgPCBtYXNrLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSAmJiAoaSA+PSBmb3JtYXR0ZWQubGVuZ3RoIHx8IGZvcm1hdHRlZFtpXSA9PT0gc2xvdENoYXIpKSB7XG4gICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZnJvbUluZGV4O1xufTtcbi8qKiBGaW5kIHRoZSBwb3NpdGlvbiBvZiB0aGUgZmlyc3Qgc2xvdCBjaGFyIGluIGZvcm1hdHRlZCB2YWx1ZSAqL1xuY29uc3QgZmluZEZpcnN0U2xvdCA9IChmb3JtYXR0ZWQsIHNsb3RDaGFyKSA9PiB7XG4gICAgY29uc3QgaWR4ID0gZm9ybWF0dGVkLmluZGV4T2Yoc2xvdENoYXIpO1xuICAgIHJldHVybiBpZHggPT09IC0xID8gZm9ybWF0dGVkLmxlbmd0aCA6IGlkeDtcbn07XG5leHBvcnQgY29uc3QgSW5wdXRNYXNrID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIGxhYmVsQ2xhc3NOYW1lLCBwcmVmaXhDbHMgPSAnaW5wdXQnLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCBkaXNhYmxlZCA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG1hc2ssIHNsb3RDaGFyID0gJ18nLCB1bm1hc2sgPSBmYWxzZSwgYXV0b0NsZWFyID0gZmFsc2UsIGxhYmVsLCBpbmZvLCBmZWVkYmFjaywgZmVlZGJhY2tJY29uLCB0aXAsIHJlcXVpcmVkLCBwcmVmaXgsIHN1ZmZpeCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSA9ICcnLCBvbkNoYW5nZSwgb25Db21wbGV0ZSwgb25Gb2N1cywgb25CbHVyLCBvbktleURvd24sIHJlZiwgaWQ6IGV4dGVybmFsSWQgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJsYWJlbENsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcInNpemVcIiwgXCJzdGF0dXNcIiwgXCJkaXNhYmxlZFwiLCBcImxvYWRpbmdcIiwgXCJtYXNrXCIsIFwic2xvdENoYXJcIiwgXCJ1bm1hc2tcIiwgXCJhdXRvQ2xlYXJcIiwgXCJsYWJlbFwiLCBcImluZm9cIiwgXCJmZWVkYmFja1wiLCBcImZlZWRiYWNrSWNvblwiLCBcInRpcFwiLCBcInJlcXVpcmVkXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwidmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQ29tcGxldGVcIiwgXCJvbkZvY3VzXCIsIFwib25CbHVyXCIsIFwib25LZXlEb3duXCIsIFwicmVmXCIsIFwiaWRcIl0pO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaW5wdXRJZCA9IGV4dGVybmFsSWQgIT09IG51bGwgJiYgZXh0ZXJuYWxJZCAhPT0gdm9pZCAwID8gZXh0ZXJuYWxJZCA6IGF1dG9JZDtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtpbnB1dFJlZiwgc3luY1JlZl0gPSB1c2VTeW5jUmVmKHJlZik7XG4gICAgY29uc3QgaXNDb21wb3NpbmcgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHRvdGFsU2xvdHMgPSBjb3VudFRva2VuU2xvdHMobWFzayk7XG4gICAgLy8gSW50ZXJuYWwgc3RhdGUgYWx3YXlzIHN0b3JlcyB0aGUgZm9ybWF0dGVkIHZhbHVlXG4gICAgY29uc3QgZm9ybWF0VmFsdWUgPSAodmFsKSA9PiBhcHBseU1hc2sodmFsLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgY29uc3QgaW5pdGlhbEZvcm1hdHRlZCA9IGRlZmF1bHRWYWx1ZSA/IGZvcm1hdFZhbHVlKGRlZmF1bHRWYWx1ZSkgOiAnJztcbiAgICBjb25zdCBjb250cm9sbGVkRm9ybWF0dGVkID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IGZvcm1hdFZhbHVlKHZhbHVlKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoaW5pdGlhbEZvcm1hdHRlZCwgY29udHJvbGxlZEZvcm1hdHRlZCk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9IGRpc2FibGVkIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgYXJpYVJlcXVpcmVkID0gcmVxdWlyZWQgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGNvbnN0IGFyaWFJbnZhbGlkID0gc3RhdHVzID09PSAnZXJyb3InID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICBjb25zdCBlbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZm9ybWF0dGVkLCBldmVudCkgPT4ge1xuICAgICAgICBjb25zdCByYXcgPSBleHRyYWN0UmF3KGZvcm1hdHRlZCwgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UodW5tYXNrID8gcmF3IDogZm9ybWF0dGVkLCBldmVudCk7XG4gICAgICAgIGlmIChyYXcubGVuZ3RoID09PSB0b3RhbFNsb3RzKSB7XG4gICAgICAgICAgICBvbkNvbXBsZXRlID09PSBudWxsIHx8IG9uQ29tcGxldGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29tcGxldGUodW5tYXNrID8gcmF3IDogZm9ybWF0dGVkKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGlzQ29tcG9zaW5nLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBjb25zdCBjdXJzb3JQb3MgPSAoX2EgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMDtcbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0LnZhbHVlO1xuICAgICAgICAvLyBFeHRyYWN0IG9ubHkgdmFsaWQgY2hhcmFjdGVycyBmcm9tIHRoZSByYXcgaW5wdXRcbiAgICAgICAgY29uc3QgcmF3ID0gZXh0cmFjdFJhdyhpbnB1dFZhbHVlLCBtYXNrLCBzbG90Q2hhcilcbiAgICAgICAgICAgICsgaW5wdXRWYWx1ZS5zbGljZShjdXJzb3JQb3MgPiAwID8gY3Vyc29yUG9zIC0gMSA6IDAsIGN1cnNvclBvcykucmVwbGFjZSgvW15cXGRhLXpBLVpdL2csICcnKTtcbiAgICAgICAgLy8gUmUtZXh0cmFjdCBmcm9tIHRoZSBmdWxsIGlucHV0IHRvIGdldCBjbGVhbiByYXdcbiAgICAgICAgbGV0IGNsZWFuUmF3ID0gJyc7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRWYWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2ggPSBpbnB1dFZhbHVlW2ldO1xuICAgICAgICAgICAgaWYgKC9bXFxkYS16QS1aXS8udGVzdChjaCkpXG4gICAgICAgICAgICAgICAgY2xlYW5SYXcgKz0gY2g7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKGNsZWFuUmF3LCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgZW1pdENoYW5nZShmb3JtYXR0ZWQsIGV2ZW50KTtcbiAgICAgICAgLy8gUG9zaXRpb24gY3Vyc29yIGFmdGVyIHRoZSBsYXN0IGZpbGxlZCBzbG90XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXh0UG9zID0gZmluZEZpcnN0U2xvdChmb3JtYXR0ZWQsIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKG5leHRQb3MsIG5leHRQb3MpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwb3MgPSAoX2EgPSBpbnB1dC5zZWxlY3Rpb25TdGFydCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMDtcbiAgICAgICAgICAgIGNvbnN0IHNlbEVuZCA9IChfYiA9IGlucHV0LnNlbGVjdGlvbkVuZCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICAgICAgICAgIGlmIChwb3MgPT09IDAgJiYgc2VsRW5kID09PSAwKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYXcgPSBleHRyYWN0UmF3KGlubmVyVmFsdWUsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIGlmIChwb3MgIT09IHNlbEVuZCkge1xuICAgICAgICAgICAgICAgIC8vIFNlbGVjdGlvbjogcmVtb3ZlIGFsbCByYXcgY2hhcnMgaW4gdGhlIHNlbGVjdGVkIHJhbmdlXG4gICAgICAgICAgICAgICAgbGV0IG5ld1JhdyA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCByYXdJZHggPSAwO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGggJiYgcmF3SWR4IDwgY3VycmVudFJhdy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpIDwgcG9zIHx8IGkgPj0gc2VsRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UmF3ICs9IGN1cnJlbnRSYXdbcmF3SWR4XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJhd0lkeCsrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzayhuZXdSYXcsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgICAgICBzZXRJbm5lclZhbHVlKGZvcm1hdHRlZCk7XG4gICAgICAgICAgICAgICAgZW1pdENoYW5nZShmb3JtYXR0ZWQsIHsgdGFyZ2V0OiBpbnB1dCB9KTtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0UG9zID0gZmluZE5leHRTbG90KG1hc2ssIGZvcm1hdHRlZCwgc2xvdENoYXIsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKG5leHRQb3MsIG5leHRQb3MpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gU2luZ2xlIGJhY2tzcGFjZTogZmluZCBwcmV2IHRva2VuIHBvc2l0aW9uIGFuZCByZW1vdmUgaXRcbiAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0UG9zID0gcG9zIC0gMTtcbiAgICAgICAgICAgICAgICB3aGlsZSAodGFyZ2V0UG9zID49IDAgJiYgIWlzTWFza1Rva2VuKG1hc2tbdGFyZ2V0UG9zXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UG9zLS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRQb3MgPCAwKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgbGV0IG5ld1JhdyA9ICcnO1xuICAgICAgICAgICAgICAgIGxldCByYXdJZHggPSAwO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXNrVG9rZW4obWFza1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpICE9PSB0YXJnZXRQb3MgJiYgcmF3SWR4IDwgY3VycmVudFJhdy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdSYXcgKz0gY3VycmVudFJhd1tyYXdJZHhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmF3SWR4Kys7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYXBwbHlNYXNrKG5ld1JhdywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgICAgICAgICBlbWl0Q2hhbmdlKGZvcm1hdHRlZCwgeyB0YXJnZXQ6IGlucHV0IH0pO1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHRhcmdldFBvcywgdGFyZ2V0UG9zKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRGVsZXRlJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHBvcyA9IChfYyA9IGlucHV0LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgbGV0IHRhcmdldFBvcyA9IHBvcztcbiAgICAgICAgICAgIHdoaWxlICh0YXJnZXRQb3MgPCBtYXNrLmxlbmd0aCAmJiAhaXNNYXNrVG9rZW4obWFza1t0YXJnZXRQb3NdKSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFBvcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRhcmdldFBvcyA+PSBtYXNrLmxlbmd0aClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmF3ID0gZXh0cmFjdFJhdyhpbm5lclZhbHVlLCBtYXNrLCBzbG90Q2hhcik7XG4gICAgICAgICAgICBsZXQgbmV3UmF3ID0gJyc7XG4gICAgICAgICAgICBsZXQgcmF3SWR4ID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFzay5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpc01hc2tUb2tlbihtYXNrW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPT0gdGFyZ2V0UG9zICYmIHJhd0lkeCA8IGN1cnJlbnRSYXcubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdSYXcgKz0gY3VycmVudFJhd1tyYXdJZHhdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJhd0lkeCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGFwcGx5TWFzayhuZXdSYXcsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgICAgIGVtaXRDaGFuZ2UoZm9ybWF0dGVkLCB7IHRhcmdldDogaW5wdXQgfSk7XG4gICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIG9uS2V5RG93biA9PT0gbnVsbCB8fCBvbktleURvd24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uS2V5RG93bihldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICAvLyBPbiBmb2N1cywgaWYgZW1wdHkgc2hvdyB0aGUgbWFzayBwbGFjZWhvbGRlclxuICAgICAgICBpZiAoIWlubmVyVmFsdWUgfHwgZXh0cmFjdFJhdyhpbm5lclZhbHVlLCBtYXNrLCBzbG90Q2hhcikubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBhcHBseU1hc2soJycsIG1hc2ssIHNsb3RDaGFyKTtcbiAgICAgICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKGlucHV0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9zID0gZmluZEZpcnN0U2xvdChpbnB1dC52YWx1ZSwgc2xvdENoYXIpO1xuICAgICAgICAgICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIG9uRm9jdXMgPT09IG51bGwgfHwgb25Gb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Gb2N1cyhldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJhdyA9IGV4dHJhY3RSYXcoaW5uZXJWYWx1ZSwgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICBpZiAoYXV0b0NsZWFyICYmIHJhdy5sZW5ndGggPiAwICYmIHJhdy5sZW5ndGggPCB0b3RhbFNsb3RzKSB7XG4gICAgICAgICAgICBjb25zdCBlbXB0eSA9IGFwcGx5TWFzaygnJywgbWFzaywgc2xvdENoYXIpO1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZShlbXB0eSk7XG4gICAgICAgICAgICBlbWl0Q2hhbmdlKGVtcHR5LCB7IHRhcmdldDogZXZlbnQudGFyZ2V0IH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIGNvbXBsZXRlbHkgZW1wdHksIGNsZWFyIHRoZSBmb3JtYXR0ZWQgbWFza1xuICAgICAgICBpZiAocmF3Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgc2V0SW5uZXJWYWx1ZSgnJyk7XG4gICAgICAgIH1cbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKF9qc3goRmllbGRTaGVsbCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBwcmVmaXhDbHM6IHByZWZpeENscywgc2l6ZTogc2l6ZSwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBpc0Rpc2FibGVkLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIHRpcDogdGlwLCBmZWVkYmFjazogZmVlZGJhY2ssIGZlZWRiYWNrSWNvbjogZmVlZGJhY2tJY29uLCByZXF1aXJlZDogcmVxdWlyZWQsIGlucHV0SWQ6IGlucHV0SWQsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udHJvbCcsIGpvaW5DbHMoaXNEaXNhYmxlZCAmJiBjbGFzc2VzKCdjb250cm9sLWRpc2FibGVkJykpKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IHN5bmNSZWYsIGlkOiBpbnB1dElkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZpZWxkJyksIGRpc2FibGVkOiBpc0Rpc2FibGVkLCB2YWx1ZTogaW5uZXJWYWx1ZSwgcGxhY2Vob2xkZXI6IChfYSA9IHJlc3QucGxhY2Vob2xkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGFwcGx5TWFzaygnJywgbWFzaywgc2xvdENoYXIpLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbktleURvd246IGhhbmRsZUtleURvd24sIG9uRm9jdXM6IGhhbmRsZUZvY3VzLCBvbkJsdXI6IGhhbmRsZUJsdXIsIG9uQ29tcG9zaXRpb25TdGFydDogKCkgPT4geyBpc0NvbXBvc2luZy5jdXJyZW50ID0gdHJ1ZTsgfSwgb25Db21wb3NpdGlvbkVuZDogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzQ29tcG9zaW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShlKTtcbiAgICAgICAgICAgICAgICAgICAgfSwgXCJhcmlhLXJlcXVpcmVkXCI6IGFyaWFSZXF1aXJlZCwgXCJhcmlhLWludmFsaWRcIjogYXJpYUludmFsaWQgfSkpLCBzdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pXSB9KSB9KSk7XG59O1xuSW5wdXRNYXNrLmRpc3BsYXlOYW1lID0gJ0lucHV0TWFzayc7XG5jb25zdCBNZW1vaXplZElucHV0TWFzayA9IG1lbW8oSW5wdXRNYXNrKTtcbk1lbW9pemVkSW5wdXRNYXNrLmRpc3BsYXlOYW1lID0gJ0lucHV0TWFzayc7XG5leHBvcnQgZGVmYXVsdCBNZW1vaXplZElucHV0TWFzazsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -8,7 +8,8 @@ exports["default"] = exports.InputOTP = void 0;
|
|
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
10
|
var _react = require("react");
|
|
11
|
-
var
|
|
11
|
+
var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
|
|
12
|
+
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
12
13
|
var _classnames = _interopRequireDefault(require("../../../utils/classnames"));
|
|
13
14
|
var _FieldShell = require("../FieldShell");
|
|
14
15
|
var _constants = require("../constants");
|
|
@@ -52,7 +53,7 @@ var InputOTP = exports.InputOTP = function InputOTP(props) {
|
|
|
52
53
|
containerRef = _useSyncRef2[0],
|
|
53
54
|
syncContainerRef = _useSyncRef2[1];
|
|
54
55
|
var inputRefs = (0, _react.useRef)([]);
|
|
55
|
-
var _useControlledState = (0,
|
|
56
|
+
var _useControlledState = (0, _useControlledState3["default"])(defaultValue, value),
|
|
56
57
|
_useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
|
|
57
58
|
innerValue = _useControlledState2[0],
|
|
58
59
|
setInnerValue = _useControlledState2[1];
|
|
@@ -63,13 +64,13 @@ var InputOTP = exports.InputOTP = function InputOTP(props) {
|
|
|
63
64
|
var _a;
|
|
64
65
|
return (_a = normalizedValue[index]) !== null && _a !== void 0 ? _a : '';
|
|
65
66
|
});
|
|
66
|
-
var focusCell = (0,
|
|
67
|
+
var focusCell = (0, _useEventCallback["default"])(function (index) {
|
|
67
68
|
var target = inputRefs.current[index];
|
|
68
69
|
if (!target) return;
|
|
69
70
|
target.focus();
|
|
70
71
|
target.select();
|
|
71
72
|
});
|
|
72
|
-
var commitValue = (0,
|
|
73
|
+
var commitValue = (0, _useEventCallback["default"])(function (nextValue, focusIndex) {
|
|
73
74
|
var formattedValue = (formatter ? formatter(nextValue) : nextValue).slice(0, length);
|
|
74
75
|
setInnerValue(formattedValue);
|
|
75
76
|
onChange === null || onChange === void 0 ? void 0 : onChange(formattedValue);
|
|
@@ -80,7 +81,7 @@ var InputOTP = exports.InputOTP = function InputOTP(props) {
|
|
|
80
81
|
focusCell(Math.max(0, Math.min(length - 1, focusIndex)));
|
|
81
82
|
}
|
|
82
83
|
});
|
|
83
|
-
var handleInputChange = (0,
|
|
84
|
+
var handleInputChange = (0, _useEventCallback["default"])(function (index, event) {
|
|
84
85
|
if (disabled) return;
|
|
85
86
|
var _char = event.target.value.slice(-1);
|
|
86
87
|
if (_char && !DIGIT_PATTERN.test(_char)) return;
|
|
@@ -88,7 +89,7 @@ var InputOTP = exports.InputOTP = function InputOTP(props) {
|
|
|
88
89
|
nextChars[index] = _char;
|
|
89
90
|
commitValue(nextChars.join(''), _char ? index + 1 : index);
|
|
90
91
|
});
|
|
91
|
-
var handleInputKeyDown = (0,
|
|
92
|
+
var handleInputKeyDown = (0, _useEventCallback["default"])(function (index, event) {
|
|
92
93
|
if (disabled || event.key !== 'Backspace') return;
|
|
93
94
|
event.preventDefault();
|
|
94
95
|
var nextChars = [].concat(chars);
|
|
@@ -102,7 +103,7 @@ var InputOTP = exports.InputOTP = function InputOTP(props) {
|
|
|
102
103
|
commitValue(nextChars.join(''), index - 1);
|
|
103
104
|
}
|
|
104
105
|
});
|
|
105
|
-
var handleInputPaste = (0,
|
|
106
|
+
var handleInputPaste = (0, _useEventCallback["default"])(function (index, event) {
|
|
106
107
|
if (disabled) return;
|
|
107
108
|
event.preventDefault();
|
|
108
109
|
var pasted = event.clipboardData.getData('text').replace(/\D/g, '').slice(0, length - index);
|
|
@@ -163,4 +164,4 @@ InputOTP.displayName = 'InputOTP';
|
|
|
163
164
|
var MemoizedInputOTP = /*#__PURE__*/(0, _react.memo)(InputOTP);
|
|
164
165
|
MemoizedInputOTP.displayName = 'InputOTP';
|
|
165
166
|
var _default = exports["default"] = MemoizedInputOTP;
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvT1RQL09UUC5qcyIsImNvbXBvbmVudHMvSW5wdXQvc3JjL2NvbXBvbmVudHMvSW5wdXQvT1RQL09UUC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2hvb2tzIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0ZpZWxkU2hlbGwiLCJfY29uc3RhbnRzIiwiX3VzZVN5bmNSZWYzIiwiRElHSVRfUEFUVEVSTiIsIklucHV0T1RQIiwiZXhwb3J0cyIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsImxhYmVsQ2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImxhYmVsIiwiaW5mbyIsImZlZWRiYWNrIiwiZmVlZGJhY2tJY29uIiwidGlwIiwicmVxdWlyZWQiLCJ2YWx1ZSIsIl9wcm9wcyRkZWZhdWx0VmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkbGVuZ3RoIiwibGVuZ3RoIiwiT1RQX0RFRkFVTFRfTEVOR1RIIiwiX3Byb3BzJGF1dG9Gb2N1cyIsImF1dG9Gb2N1cyIsIl9wcm9wcyRtYXNrIiwibWFzayIsImZvcm1hdHRlciIsIm9uQ2hhbmdlIiwib25Db21wbGV0ZSIsInJlZiIsImF1dG9JZCIsInVzZUlkIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJfdXNlU3luY1JlZiIsInVzZVN5bmNSZWYiLCJfdXNlU3luY1JlZjIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb250YWluZXJSZWYiLCJzeW5jQ29udGFpbmVyUmVmIiwiaW5wdXRSZWZzIiwidXNlUmVmIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJub3JtYWxpemVkVmFsdWUiLCJzbGljZSIsImNoYXJzIiwiQXJyYXkiLCJmcm9tIiwiXyIsImluZGV4IiwiX2EiLCJmb2N1c0NlbGwiLCJ1c2VFdmVudENhbGxiYWNrIiwidGFyZ2V0IiwiY3VycmVudCIsImZvY3VzIiwic2VsZWN0IiwiY29tbWl0VmFsdWUiLCJuZXh0VmFsdWUiLCJmb2N1c0luZGV4IiwiZm9ybWF0dGVkVmFsdWUiLCJ1bmRlZmluZWQiLCJNYXRoIiwibWF4IiwibWluIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJldmVudCIsImNoYXIiLCJ0ZXN0IiwibmV4dENoYXJzIiwiY29uY2F0Iiwiam9pbiIsImhhbmRsZUlucHV0S2V5RG93biIsImtleSIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlSW5wdXRQYXN0ZSIsInBhc3RlZCIsImNsaXBib2FyZERhdGEiLCJnZXREYXRhIiwicmVwbGFjZSIsInNwbGl0IiwiZm9yRWFjaCIsIm9mZnNldCIsIl9qc3giLCJGaWVsZFNoZWxsIiwiaW5wdXRJZCIsImNoaWxkcmVuIiwibm9kZSIsImlucHV0TW9kZSIsInBhdHRlcm4iLCJtYXhMZW5ndGgiLCJ0eXBlIiwib25LZXlEb3duIiwib25QYXN0ZSIsImRpc3BsYXlOYW1lIiwiTWVtb2l6ZWRJbnB1dE9UUCIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFJQSxJQUFNUSxhQUFhLEdBQUcsTUFBTTtBQUVyQixJQUFNQyxRQUFRLEdBQUFDLE9BQUEsQ0FBQUQs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QSxPQUFLRCxpQkFBaUIsQ0FBQ2hCLEtBQUssRUFBRWlCLEtBQUssQ0FBQztVQUFBO1VBQ3BEMEIsU0FBUyxFQUFFLFNBQVhBLFNBQVNBLENBQUcxQixLQUFLO1lBQUEsT0FBS00sa0JBQWtCLENBQUN2QixLQUFLLEVBQUVpQixLQUFLLENBQUM7VUFBQTtVQUN0RDJCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHM0IsS0FBSztZQUFBLE9BQUtTLGdCQUFnQixDQUFDMUIsS0FBSyxFQUFFaUIsS0FBSyxDQUFDO1VBQUE7UUFBQSxDQUFBLEVBZjdDakIsS0FBSyxDQWdCVjtNQUFBLENBQ0g7SUFBQyxDQUFBO0VBQ0UsQ0FBQSxDQUNLO0FBRWpCLENBQUM7QUFFRHpELFFBQVEsQ0FBQ3NHLFdBQVcsR0FBRyxVQUFVO0FBRWpDLElBQU1DLGdCQUFnQixnQkFBRyxJQUFBQyxXQUFJLEVBQUN4RyxRQUFRLENBQUM7QUFDdkN1RyxnQkFBZ0IsQ0FBQ0QsV0FBVyxHQUFHLFVBQVU7QUFBQyxJQUFBRyxRQUFBLEdBQUF4RyxPQUFBLGNBRTNCc0csZ0JBQWdCIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXQvT1RQL09UUC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZpZWxkU2hlbGwgfSBmcm9tICcuLi9GaWVsZFNoZWxsJztcbmltcG9ydCB7IE9UUF9ERUZBVUxUX0xFTkdUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VTeW5jUmVmIH0gZnJvbSAnLi4vdXNlU3luY1JlZic7XG5jb25zdCBESUdJVF9QQVRURVJOID0gL15cXGQkLztcbmV4cG9ydCBjb25zdCBJbnB1dE9UUCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIGxhYmVsQ2xhc3NOYW1lLCBwcmVmaXhDbHMgPSAnaW5wdXQnLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCBkaXNhYmxlZCA9IGZhbHNlLCBsYWJlbCwgaW5mbywgZmVlZGJhY2ssIGZlZWRiYWNrSWNvbiwgdGlwLCByZXF1aXJlZCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSA9ICcnLCBsZW5ndGggPSBPVFBfREVGQVVMVF9MRU5HVEgsIGF1dG9Gb2N1cyA9IGZhbHNlLCBtYXNrID0gZmFsc2UsIGZvcm1hdHRlciwgb25DaGFuZ2UsIG9uQ29tcGxldGUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbY29udGFpbmVyUmVmLCBzeW5jQ29udGFpbmVyUmVmXSA9IHVzZVN5bmNSZWYocmVmKTtcbiAgICBjb25zdCBpbnB1dFJlZnMgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUsIHZhbHVlKTtcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSBpbm5lclZhbHVlLnNsaWNlKDAsIGxlbmd0aCk7XG4gICAgY29uc3QgY2hhcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sIChfLCBpbmRleCkgPT4geyB2YXIgX2E7IHJldHVybiAoX2EgPSBub3JtYWxpemVkVmFsdWVbaW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJzsgfSk7XG4gICAgY29uc3QgZm9jdXNDZWxsID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gaW5wdXRSZWZzLmN1cnJlbnRbaW5kZXhdO1xuICAgICAgICBpZiAoIXRhcmdldClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGFyZ2V0LmZvY3VzKCk7XG4gICAgICAgIHRhcmdldC5zZWxlY3QoKTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgZm9jdXNJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IChmb3JtYXR0ZXIgPyBmb3JtYXR0ZXIobmV4dFZhbHVlKSA6IG5leHRWYWx1ZSkuc2xpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShmb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShmb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZS5sZW5ndGggPT09IGxlbmd0aCkge1xuICAgICAgICAgICAgb25Db21wbGV0ZSA9PT0gbnVsbCB8fCBvbkNvbXBsZXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbXBsZXRlKGZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9jdXNJbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmb2N1c0NlbGwoTWF0aC5tYXgoMCwgTWF0aC5taW4obGVuZ3RoIC0gMSwgZm9jdXNJbmRleCkpKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgsIGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgY2hhciA9IGV2ZW50LnRhcmdldC52YWx1ZS5zbGljZSgtMSk7XG4gICAgICAgIGlmIChjaGFyICYmICFESUdJVF9QQVRURVJOLnRlc3QoY2hhcikpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IG5leHRDaGFycyA9IFsuLi5jaGFyc107XG4gICAgICAgIG5leHRDaGFyc1tpbmRleF0gPSBjaGFyO1xuICAgICAgICBjb21taXRWYWx1ZShuZXh0Q2hhcnMuam9pbignJyksIGNoYXIgPyBpbmRleCArIDEgOiBpbmRleCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSW5wdXRLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgsIGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCB8fCBldmVudC5rZXkgIT09ICdCYWNrc3BhY2UnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBuZXh0Q2hhcnMgPSBbLi4uY2hhcnNdO1xuICAgICAgICBpZiAobmV4dENoYXJzW2luZGV4XSkge1xuICAgICAgICAgICAgbmV4dENoYXJzW2luZGV4XSA9ICcnO1xuICAgICAgICAgICAgY29tbWl0VmFsdWUobmV4dENoYXJzLmpvaW4oJycpLCBpbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICAgICAgbmV4dENoYXJzW2luZGV4IC0gMV0gPSAnJztcbiAgICAgICAgICAgIGNvbW1pdFZhbHVlKG5leHRDaGFycy5qb2luKCcnKSwgaW5kZXggLSAxKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUlucHV0UGFzdGUgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCwgZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBwYXN0ZWQgPSBldmVudC5jbGlwYm9hcmREYXRhXG4gICAgICAgICAgICAuZ2V0RGF0YSgndGV4dCcpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxEL2csICcnKVxuICAgICAgICAgICAgLnNsaWNlKDAsIGxlbmd0aCAtIGluZGV4KTtcbiAgICAgICAgY29uc3QgbmV4dENoYXJzID0gWy4uLmNoYXJzXTtcbiAgICAgICAgcGFzdGVkLnNwbGl0KCcnKS5mb3JFYWNoKChjaGFyLCBvZmZzZXQpID0+IHtcbiAgICAgICAgICAgIG5leHRDaGFyc1tpbmRleCArIG9mZnNldF0gPSBjaGFyO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tbWl0VmFsdWUobmV4dENoYXJzLmpvaW4oJycpLCBNYXRoLm1pbihsZW5ndGggLSAxLCBpbmRleCArIHBhc3RlZC5sZW5ndGgpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gKF9qc3goRmllbGRTaGVsbCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBwcmVmaXhDbHM6IHByZWZpeENscywgc2l6ZTogc2l6ZSwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgbGFiZWw6IGxhYmVsLCBpbmZvOiBpbmZvLCB0aXA6IHRpcCwgZmVlZGJhY2s6IGZlZWRiYWNrLCBmZWVkYmFja0ljb246IGZlZWRiYWNrSWNvbiwgcmVxdWlyZWQ6IHJlcXVpcmVkLCBpbnB1dElkOiBhdXRvSWQsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgcmVmOiBzeW5jQ29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ290cCcpLCBjaGlsZHJlbjogQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaW5kZXgpID0+IChfanN4KFwiaW5wdXRcIiwgeyByZWY6IChub2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlucHV0UmVmcy5jdXJyZW50W2luZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfSwgY2xhc3NOYW1lOiBjbGFzc2VzKCdvdHAtY2VsbCcpLCBkaXNhYmxlZDogZGlzYWJsZWQsIGlucHV0TW9kZTogXCJudW1lcmljXCIsIHBhdHRlcm46IFwiWzAtOV0qXCIsIG1heExlbmd0aDogMSwgXCJhcmlhLWxhYmVsXCI6IGBPVFAgZGlnaXQgJHtpbmRleCArIDF9YCwgYXV0b0ZvY3VzOiBhdXRvRm9jdXMgJiYgaW5kZXggPT09IDAsIHR5cGU6IG1hc2sgPyAncGFzc3dvcmQnIDogJ3RleHQnLCB2YWx1ZTogY2hhcnNbaW5kZXhdLCBvbkNoYW5nZTogKGV2ZW50KSA9PiBoYW5kbGVJbnB1dENoYW5nZShpbmRleCwgZXZlbnQpLCBvbktleURvd246IChldmVudCkgPT4gaGFuZGxlSW5wdXRLZXlEb3duKGluZGV4LCBldmVudCksIG9uUGFzdGU6IChldmVudCkgPT4gaGFuZGxlSW5wdXRQYXN0ZShpbmRleCwgZXZlbnQpIH0sIGluZGV4KSkpIH0pIH0pKTtcbn07XG5JbnB1dE9UUC5kaXNwbGF5TmFtZSA9ICdJbnB1dE9UUCc7XG5jb25zdCBNZW1vaXplZElucHV0T1RQID0gbWVtbyhJbnB1dE9UUCk7XG5NZW1vaXplZElucHV0T1RQLmRpc3BsYXlOYW1lID0gJ0lucHV0T1RQJztcbmV4cG9ydCBkZWZhdWx0IE1lbW9pemVkSW5wdXRPVFA7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvT1RQL09UUC5qcyIsImNvbXBvbmVudHMvSW5wdXQvc3JjL2NvbXBvbmVudHMvSW5wdXQvT1RQL09UUC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfY2xhc3NuYW1lcyIsIl9GaWVsZFNoZWxsIiwiX2NvbnN0YW50cyIsIl91c2VTeW5jUmVmMyIsIkRJR0lUX1BBVFRFUk4iLCJJbnB1dE9UUCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJsYWJlbENsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJsYWJlbCIsImluZm8iLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsInRpcCIsInJlcXVpcmVkIiwidmFsdWUiLCJfcHJvcHMkZGVmYXVsdFZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJGxlbmd0aCIsImxlbmd0aCIsIk9UUF9ERUZBVUxUX0xFTkdUSCIsIl9wcm9wcyRhdXRvRm9jdXMiLCJhdXRvRm9jdXMiLCJfcHJvcHMkbWFzayIsIm1hc2siLCJmb3JtYXR0ZXIiLCJvbkNoYW5nZSIsIm9uQ29tcGxldGUiLCJyZWYiLCJhdXRvSWQiLCJ1c2VJZCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiX3VzZVN5bmNSZWYiLCJ1c2VTeW5jUmVmIiwiX3VzZVN5bmNSZWYyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29udGFpbmVyUmVmIiwic3luY0NvbnRhaW5lclJlZiIsImlucHV0UmVmcyIsInVzZVJlZiIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwibm9ybWFsaXplZFZhbHVlIiwic2xpY2UiLCJjaGFycyIsIkFycmF5IiwiZnJvbSIsIl8iLCJpbmRleCIsIl9hIiwiZm9jdXNDZWxsIiwidXNlRXZlbnRDYWxsYmFjayIsInRhcmdldCIsImN1cnJlbnQiLCJmb2N1cyIsInNlbGVjdCIsImNvbW1pdFZhbHVlIiwibmV4dFZhbHVlIiwiZm9jdXNJbmRleCIsImZvcm1hdHRlZFZhbHVlIiwidW5kZWZpbmVkIiwiTWF0aCIsIm1heCIsIm1pbiIsImhhbmRsZUlucHV0Q2hhbmdlIiwiZXZlbnQiLCJjaGFyIiwidGVzdCIsIm5leHRDaGFycyIsImNvbmNhdCIsImpvaW4iLCJoYW5kbGVJbnB1dEtleURvd24iLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsImhhbmRsZUlucHV0UGFzdGUiLCJwYXN0ZWQiLCJjbGlwYm9hcmREYXRhIiwiZ2V0RGF0YSIsInJlcGxhY2UiLCJzcGxpdCIsImZvckVhY2giLCJvZmZzZXQiLCJfanN4IiwiRmllbGRTaGVsbCIsImlucHV0SWQiLCJjaGlsZHJlbiIsIm5vZGUiLCJpbnB1dE1vZGUiLCJwYXR0ZXJuIiwibWF4TGVuZ3RoIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUGFzdGUiLCJkaXNwbGF5TmFtZSIsIk1lbW9pemVkSW5wdXRPVFAiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7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TTtVQUNoQ1QsS0FBSyxFQUFFaUMsS0FBSyxDQUFDSSxLQUFLLENBQUM7VUFDbkIxQixRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBRzJDLEtBQUs7WUFBQSxPQUFLRCxpQkFBaUIsQ0FBQ2hCLEtBQUssRUFBRWlCLEtBQUssQ0FBQztVQUFBO1VBQ3BEMEIsU0FBUyxFQUFFLFNBQVhBLFNBQVNBLENBQUcxQixLQUFLO1lBQUEsT0FBS00sa0JBQWtCLENBQUN2QixLQUFLLEVBQUVpQixLQUFLLENBQUM7VUFBQTtVQUN0RDJCLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHM0IsS0FBSztZQUFBLE9BQUtTLGdCQUFnQixDQUFDMUIsS0FBSyxFQUFFaUIsS0FBSyxDQUFDO1VBQUE7UUFBQSxDQUFBLEVBZjdDakIsS0FBSyxDQWdCVjtNQUFBLENBQ0g7SUFBQyxDQUFBO0VBQ0UsQ0FBQSxDQUNLO0FBRWpCLENBQUM7QUFFRHpELFFBQVEsQ0FBQ3NHLFdBQVcsR0FBRyxVQUFVO0FBRWpDLElBQU1DLGdCQUFnQixnQkFBRyxJQUFBQyxXQUFJLEVBQUN4RyxRQUFRLENBQUM7QUFDdkN1RyxnQkFBZ0IsQ0FBQ0QsV0FBVyxHQUFHLFVBQVU7QUFBQyxJQUFBRyxRQUFBLEdBQUF4RyxPQUFBLGNBRTNCc0csZ0JBQWdCIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXQvT1RQL09UUC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBGaWVsZFNoZWxsIH0gZnJvbSAnLi4vRmllbGRTaGVsbCc7XG5pbXBvcnQgeyBPVFBfREVGQVVMVF9MRU5HVEggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlU3luY1JlZiB9IGZyb20gJy4uL3VzZVN5bmNSZWYnO1xuY29uc3QgRElHSVRfUEFUVEVSTiA9IC9eXFxkJC87XG5leHBvcnQgY29uc3QgSW5wdXRPVFAgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzID0gJ2lucHV0Jywgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgZGlzYWJsZWQgPSBmYWxzZSwgbGFiZWwsIGluZm8sIGZlZWRiYWNrLCBmZWVkYmFja0ljb24sIHRpcCwgcmVxdWlyZWQsIHZhbHVlLCBkZWZhdWx0VmFsdWUgPSAnJywgbGVuZ3RoID0gT1RQX0RFRkFVTFRfTEVOR1RILCBhdXRvRm9jdXMgPSBmYWxzZSwgbWFzayA9IGZhbHNlLCBmb3JtYXR0ZXIsIG9uQ2hhbmdlLCBvbkNvbXBsZXRlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW2NvbnRhaW5lclJlZiwgc3luY0NvbnRhaW5lclJlZl0gPSB1c2VTeW5jUmVmKHJlZik7XG4gICAgY29uc3QgaW5wdXRSZWZzID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlLCB2YWx1ZSk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFZhbHVlID0gaW5uZXJWYWx1ZS5zbGljZSgwLCBsZW5ndGgpO1xuICAgIGNvbnN0IGNoYXJzID0gQXJyYXkuZnJvbSh7IGxlbmd0aCB9LCAoXywgaW5kZXgpID0+IHsgdmFyIF9hOyByZXR1cm4gKF9hID0gbm9ybWFsaXplZFZhbHVlW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJyc7IH0pO1xuICAgIGNvbnN0IGZvY3VzQ2VsbCA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGlucHV0UmVmcy5jdXJyZW50W2luZGV4XTtcbiAgICAgICAgaWYgKCF0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRhcmdldC5mb2N1cygpO1xuICAgICAgICB0YXJnZXQuc2VsZWN0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0VmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIGZvY3VzSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSAoZm9ybWF0dGVyID8gZm9ybWF0dGVyKG5leHRWYWx1ZSkgOiBuZXh0VmFsdWUpLnNsaWNlKDAsIGxlbmd0aCk7XG4gICAgICAgIHNldElubmVyVmFsdWUoZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICBpZiAoZm9ybWF0dGVkVmFsdWUubGVuZ3RoID09PSBsZW5ndGgpIHtcbiAgICAgICAgICAgIG9uQ29tcGxldGUgPT09IG51bGwgfHwgb25Db21wbGV0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Db21wbGV0ZShmb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvY3VzSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZm9jdXNDZWxsKE1hdGgubWF4KDAsIE1hdGgubWluKGxlbmd0aCAtIDEsIGZvY3VzSW5kZXgpKSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4LCBldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGNoYXIgPSBldmVudC50YXJnZXQudmFsdWUuc2xpY2UoLTEpO1xuICAgICAgICBpZiAoY2hhciAmJiAhRElHSVRfUEFUVEVSTi50ZXN0KGNoYXIpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBuZXh0Q2hhcnMgPSBbLi4uY2hhcnNdO1xuICAgICAgICBuZXh0Q2hhcnNbaW5kZXhdID0gY2hhcjtcbiAgICAgICAgY29tbWl0VmFsdWUobmV4dENoYXJzLmpvaW4oJycpLCBjaGFyID8gaW5kZXggKyAxIDogaW5kZXgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUlucHV0S2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4LCBldmVudCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgZXZlbnQua2V5ICE9PSAnQmFja3NwYWNlJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbmV4dENoYXJzID0gWy4uLmNoYXJzXTtcbiAgICAgICAgaWYgKG5leHRDaGFyc1tpbmRleF0pIHtcbiAgICAgICAgICAgIG5leHRDaGFyc1tpbmRleF0gPSAnJztcbiAgICAgICAgICAgIGNvbW1pdFZhbHVlKG5leHRDaGFycy5qb2luKCcnKSwgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgIG5leHRDaGFyc1tpbmRleCAtIDFdID0gJyc7XG4gICAgICAgICAgICBjb21taXRWYWx1ZShuZXh0Q2hhcnMuam9pbignJyksIGluZGV4IC0gMSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJbnB1dFBhc3RlID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgsIGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcGFzdGVkID0gZXZlbnQuY2xpcGJvYXJkRGF0YVxuICAgICAgICAgICAgLmdldERhdGEoJ3RleHQnKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcRC9nLCAnJylcbiAgICAgICAgICAgIC5zbGljZSgwLCBsZW5ndGggLSBpbmRleCk7XG4gICAgICAgIGNvbnN0IG5leHRDaGFycyA9IFsuLi5jaGFyc107XG4gICAgICAgIHBhc3RlZC5zcGxpdCgnJykuZm9yRWFjaCgoY2hhciwgb2Zmc2V0KSA9PiB7XG4gICAgICAgICAgICBuZXh0Q2hhcnNbaW5kZXggKyBvZmZzZXRdID0gY2hhcjtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbW1pdFZhbHVlKG5leHRDaGFycy5qb2luKCcnKSwgTWF0aC5taW4obGVuZ3RoIC0gMSwgaW5kZXggKyBwYXN0ZWQubGVuZ3RoKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4KEZpZWxkU2hlbGwsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHNpemU6IHNpemUsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgdGlwOiB0aXAsIGZlZWRiYWNrOiBmZWVkYmFjaywgZmVlZGJhY2tJY29uOiBmZWVkYmFja0ljb24sIHJlcXVpcmVkOiByZXF1aXJlZCwgaW5wdXRJZDogYXV0b0lkLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IHJlZjogc3luY0NvbnRhaW5lclJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdvdHAnKSwgY2hpbGRyZW46IEFycmF5LmZyb20oeyBsZW5ndGggfSwgKF8sIGluZGV4KSA9PiAoX2pzeChcImlucHV0XCIsIHsgcmVmOiAobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbnB1dFJlZnMuY3VycmVudFtpbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgIH0sIGNsYXNzTmFtZTogY2xhc3Nlcygnb3RwLWNlbGwnKSwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpbnB1dE1vZGU6IFwibnVtZXJpY1wiLCBwYXR0ZXJuOiBcIlswLTldKlwiLCBtYXhMZW5ndGg6IDEsIFwiYXJpYS1sYWJlbFwiOiBgT1RQIGRpZ2l0ICR7aW5kZXggKyAxfWAsIGF1dG9Gb2N1czogYXV0b0ZvY3VzICYmIGluZGV4ID09PSAwLCB0eXBlOiBtYXNrID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0JywgdmFsdWU6IGNoYXJzW2luZGV4XSwgb25DaGFuZ2U6IChldmVudCkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UoaW5kZXgsIGV2ZW50KSwgb25LZXlEb3duOiAoZXZlbnQpID0+IGhhbmRsZUlucHV0S2V5RG93bihpbmRleCwgZXZlbnQpLCBvblBhc3RlOiAoZXZlbnQpID0+IGhhbmRsZUlucHV0UGFzdGUoaW5kZXgsIGV2ZW50KSB9LCBpbmRleCkpKSB9KSB9KSk7XG59O1xuSW5wdXRPVFAuZGlzcGxheU5hbWUgPSAnSW5wdXRPVFAnO1xuY29uc3QgTWVtb2l6ZWRJbnB1dE9UUCA9IG1lbW8oSW5wdXRPVFApO1xuTWVtb2l6ZWRJbnB1dE9UUC5kaXNwbGF5TmFtZSA9ICdJbnB1dE9UUCc7XG5leHBvcnQgZGVmYXVsdCBNZW1vaXplZElucHV0T1RQOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -9,7 +9,8 @@ exports["default"] = exports.InputPassword = void 0;
|
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
11
|
var _react = require("react");
|
|
12
|
-
var
|
|
12
|
+
var _useControlledState3 = _interopRequireDefault(require("@1money/hooks/useControlledState"));
|
|
13
|
+
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
13
14
|
var _Icons = require("../../Icons");
|
|
14
15
|
var _classnames = _interopRequireWildcard(require("../../../utils/classnames"));
|
|
15
16
|
var _FieldShell = require("../FieldShell");
|
|
@@ -73,18 +74,18 @@ var InputPassword = exports.InputPassword = function InputPassword(props) {
|
|
|
73
74
|
var _useSyncRef = (0, _useSyncRef3.useSyncRef)(ref),
|
|
74
75
|
_useSyncRef2 = (0, _slicedToArray2["default"])(_useSyncRef, 2),
|
|
75
76
|
syncRef = _useSyncRef2[1];
|
|
76
|
-
var _useControlledState = (0,
|
|
77
|
+
var _useControlledState = (0, _useControlledState3["default"])(defaultValue, value),
|
|
77
78
|
_useControlledState2 = (0, _slicedToArray2["default"])(_useControlledState, 2),
|
|
78
79
|
innerValue = _useControlledState2[0],
|
|
79
80
|
setInnerValue = _useControlledState2[1];
|
|
80
81
|
var ariaRequired = required ? 'true' : 'false';
|
|
81
82
|
var ariaInvalid = status === 'error' ? 'true' : 'false';
|
|
82
|
-
var handleChange = (0,
|
|
83
|
+
var handleChange = (0, _useEventCallback["default"])(function (event) {
|
|
83
84
|
var nextValue = event.target.value;
|
|
84
85
|
setInnerValue(nextValue);
|
|
85
86
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
86
87
|
});
|
|
87
|
-
var handleToggle = (0,
|
|
88
|
+
var handleToggle = (0, _useEventCallback["default"])(function () {
|
|
88
89
|
if (disabled) return;
|
|
89
90
|
setVisible(function (current) {
|
|
90
91
|
return !current;
|
|
@@ -137,4 +138,4 @@ InputPassword.displayName = 'InputPassword';
|
|
|
137
138
|
var MemoizedInputPassword = /*#__PURE__*/(0, _react.memo)(InputPassword);
|
|
138
139
|
MemoizedInputPassword.displayName = 'InputPassword';
|
|
139
140
|
var _default = exports["default"] = MemoizedInputPassword;
|
|
140
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvUGFzc3dvcmQvUGFzc3dvcmQuanMiLCJjb21wb25lbnRzL0lucHV0L3NyYy9jb21wb25lbnRzL0lucHV0L1Bhc3N3b3JkL1Bhc3N3b3JkLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfaG9va3MiLCJfSWNvbnMiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0ZpZWxkU2hlbGwiLCJfdXNlU3luY1JlZjMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX3Jlc3QiLCJzIiwicCIsInByb3RvdHlwZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIklucHV0UGFzc3dvcmQiLCJleHBvcnRzIiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJHN0YXR1cyIsInN0YXR1cyIsIl9wcm9wcyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX3Byb3BzJHZpc2liaWxpdHlUb2dnIiwidmlzaWJpbGl0eVRvZ2dsZSIsIl9wcm9wcyRzaG93SWNvbiIsInNob3dJY29uIiwiX2pzeCIsIkljb25zIiwibmFtZSIsIl9wcm9wcyRoaWRlSWNvbiIsImhpZGVJY29uIiwibGFiZWwiLCJpbmZvIiwiZmVlZGJhY2siLCJmZWVkYmFja0ljb24iLCJ0aXAiLCJyZXF1aXJlZCIsInByZWZpeCIsInN1ZmZpeCIsInZhbHVlIiwiX3Byb3BzJGRlZmF1bHRWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsIm9uQ2hhbmdlIiwicmVmIiwiZXh0ZXJuYWxJZCIsImlkIiwicmVzdCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiYXV0b0lkIiwidXNlSWQiLCJpbnB1dElkIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJfdXNlU3luY1JlZiIsInVzZVN5bmNSZWYiLCJfdXNlU3luY1JlZjIiLCJzeW5jUmVmIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiaW5uZXJWYWx1ZSIsInNldElubmVyVmFsdWUiLCJhcmlhUmVxdWlyZWQiLCJhcmlhSW52YWxpZCIsImhhbmRsZUNoYW5nZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJldmVudCIsIm5leHRWYWx1ZSIsInRhcmdldCIsImhhbmRsZVRvZ2dsZSIsImN1cnJlbnQiLCJGaWVsZFNoZWxsIiwiY2hpbGRyZW4iLCJfanN4cyIsImpvaW5DbHMiLCJhc3NpZ24iLCJ0eXBlIiwib25DbGljayIsImRpc3BsYXlOYW1lIiwiTWVtb2l6ZWRJbnB1dFBhc3N3b3JkIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFBMkMsU0FBQVEseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFD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QUE7UUFDRXVELElBQUksRUFBQyxRQUFRO1FBQ2JyRSxTQUFTLEVBQUU0QyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzVCbkMsUUFBUSxFQUFFQSxRQUFRO1FBQUEsWUFBQSxFQUNQLDRCQUE0QjtRQUN2QzZELE9BQU8sRUFBRVIsWUFBWTtRQUFBRyxRQUFBLEVBRXBCMUIsT0FBTyxHQUFHMUIsUUFBUSxHQUFHSztNQUFRLENBQUEsQ0FFakMsRUFDQVEsTUFBTSxJQUFJLElBQUFaLGVBQUEsRUFBQSxNQUFBLEVBQUE7UUFBTWQsU0FBUyxFQUFFNEMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFBcUIsUUFBQSxFQUFHdkM7TUFBTSxDQUFBLENBQVE7SUFBQSxDQUFBO0VBQzFELENBQUEsQ0FDSztBQUVqQixDQUFDO0FBRUQ5QixhQUFhLENBQUMyRSxXQUFXLEdBQUcsZUFBZTtBQUUzQyxJQUFNQyxxQkFBcUIsZ0JBQUcsSUFBQUMsV0FBSSxFQUFDN0UsYUFBYSxDQUFDO0FBQ2pENEUscUJBQXFCLENBQUNELFdBQVcsR0FBRyxlQUFlO0FBQUMsSUFBQUcsUUFBQSxHQUFBN0UsT0FBQSxjQUVyQzJFLHFCQUFxQiIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0L1Bhc3N3b3JkL1Bhc3N3b3JkLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUlkLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9JY29ucyc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZpZWxkU2hlbGwgfSBmcm9tICcuLi9GaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVN5bmNSZWYgfSBmcm9tICcuLi91c2VTeW5jUmVmJztcbmV4cG9ydCBjb25zdCBJbnB1dFBhc3N3b3JkID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgbGFiZWxDbGFzc05hbWUsIHByZWZpeENscyA9ICdpbnB1dCcsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIGRpc2FibGVkID0gZmFsc2UsIHZpc2liaWxpdHlUb2dnbGUgPSB0cnVlLCBzaG93SWNvbiA9IF9qc3goSWNvbnMsIHsgbmFtZTogXCJoaWRlQmFsYW5jZVwiLCBzaXplOiAxNiB9KSwgaGlkZUljb24gPSBfanN4KEljb25zLCB7IG5hbWU6IFwidmlld0JhbGFuY2VcIiwgc2l6ZTogMTYgfSksIGxhYmVsLCBpbmZvLCBmZWVkYmFjaywgZmVlZGJhY2tJY29uLCB0aXAsIHJlcXVpcmVkLCBwcmVmaXgsIHN1ZmZpeCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSA9ICcnLCBvbkNoYW5nZSwgcmVmLCBpZDogZXh0ZXJuYWxJZCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcImxhYmVsQ2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwic2l6ZVwiLCBcInN0YXR1c1wiLCBcImRpc2FibGVkXCIsIFwidmlzaWJpbGl0eVRvZ2dsZVwiLCBcInNob3dJY29uXCIsIFwiaGlkZUljb25cIiwgXCJsYWJlbFwiLCBcImluZm9cIiwgXCJmZWVkYmFja1wiLCBcImZlZWRiYWNrSWNvblwiLCBcInRpcFwiLCBcInJlcXVpcmVkXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwidmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIiwgXCJvbkNoYW5nZVwiLCBcInJlZlwiLCBcImlkXCJdKTtcbiAgICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBpbnB1dElkID0gZXh0ZXJuYWxJZCAhPT0gbnVsbCAmJiBleHRlcm5hbElkICE9PSB2b2lkIDAgPyBleHRlcm5hbElkIDogYXV0b0lkO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgWywgc3luY1JlZl0gPSB1c2VTeW5jUmVmKHJlZik7XG4gICAgY29uc3QgW2lubmVyVmFsdWUsIHNldElubmVyVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRWYWx1ZSwgdmFsdWUpO1xuICAgIGNvbnN0IGFyaWFSZXF1aXJlZCA9IHJlcXVpcmVkID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICBjb25zdCBhcmlhSW52YWxpZCA9IHN0YXR1cyA9PT0gJ2Vycm9yJyA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUb2dnbGUgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzZXRWaXNpYmxlKGN1cnJlbnQgPT4gIWN1cnJlbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoX2pzeChGaWVsZFNoZWxsLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIHByZWZpeENsczogcHJlZml4Q2xzLCBzaXplOiBzaXplLCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIHRpcDogdGlwLCBmZWVkYmFjazogZmVlZGJhY2ssIGZlZWRiYWNrSWNvbjogZmVlZGJhY2tJY29uLCByZXF1aXJlZDogcmVxdWlyZWQsIGlucHV0SWQ6IGlucHV0SWQsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udHJvbCcsIGpvaW5DbHMoZGlzYWJsZWQgJiYgY2xhc3NlcygnY29udHJvbC1kaXNhYmxlZCcpKSksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImlucHV0XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBzeW5jUmVmLCBpZDogaW5wdXRJZCwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmaWVsZCcpLCBkaXNhYmxlZDogZGlzYWJsZWQsIHR5cGU6IHZpc2libGUgPyAndGV4dCcgOiAncGFzc3dvcmQnLCB2YWx1ZTogaW5uZXJWYWx1ZSwgb25DaGFuZ2U6IGhhbmRsZUNoYW5nZSwgXCJhcmlhLXJlcXVpcmVkXCI6IGFyaWFSZXF1aXJlZCwgXCJhcmlhLWludmFsaWRcIjogYXJpYUludmFsaWQgfSkpLCB2aXNpYmlsaXR5VG9nZ2xlICYmIChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogXCJidXR0b25cIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdhY3Rpb24nKSwgZGlzYWJsZWQ6IGRpc2FibGVkLCBcImFyaWEtbGFiZWxcIjogXCJ0b2dnbGUgcGFzc3dvcmQgdmlzaWJpbGl0eVwiLCBvbkNsaWNrOiBoYW5kbGVUb2dnbGUsIGNoaWxkcmVuOiB2aXNpYmxlID8gc2hvd0ljb24gOiBoaWRlSWNvbiB9KSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pIH0pKTtcbn07XG5JbnB1dFBhc3N3b3JkLmRpc3BsYXlOYW1lID0gJ0lucHV0UGFzc3dvcmQnO1xuY29uc3QgTWVtb2l6ZWRJbnB1dFBhc3N3b3JkID0gbWVtbyhJbnB1dFBhc3N3b3JkKTtcbk1lbW9pemVkSW5wdXRQYXNzd29yZC5kaXNwbGF5TmFtZSA9ICdJbnB1dFBhc3N3b3JkJztcbmV4cG9ydCBkZWZhdWx0IE1lbW9pemVkSW5wdXRQYXNzd29yZDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXQvUGFzc3dvcmQvUGFzc3dvcmQuanMiLCJjb21wb25lbnRzL0lucHV0L3NyYy9jb21wb25lbnRzL0lucHV0L1Bhc3N3b3JkL1Bhc3N3b3JkLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9JY29ucyIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfRmllbGRTaGVsbCIsIl91c2VTeW5jUmVmMyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiSW5wdXRQYXNzd29yZCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJsYWJlbENsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmlzaWJpbGl0eVRvZ2ciLCJ2aXNpYmlsaXR5VG9nZ2xlIiwiX3Byb3BzJHNob3dJY29uIiwic2hvd0ljb24iLCJfanN4IiwiSWNvbnMiLCJuYW1lIiwiX3Byb3BzJGhpZGVJY29uIiwiaGlkZUljb24iLCJsYWJlbCIsImluZm8iLCJmZWVkYmFjayIsImZlZWRiYWNrSWNvbiIsInRpcCIsInJlcXVpcmVkIiwicHJlZml4Iiwic3VmZml4IiwidmFsdWUiLCJfcHJvcHMkZGVmYXVsdFZhbHVlIiwiZGVmYXVsdFZhbHVlIiwib25DaGFuZ2UiLCJyZWYiLCJleHRlcm5hbElkIiwiaWQiLCJyZXN0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJhdXRvSWQiLCJ1c2VJZCIsImlucHV0SWQiLCJjbGFzc2VzIiwiY2xhc3NuYW1lcyIsIl91c2VTeW5jUmVmIiwidXNlU3luY1JlZiIsIl91c2VTeW5jUmVmMiIsInN5bmNSZWYiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsImFyaWFSZXF1aXJlZCIsImFyaWFJbnZhbGlkIiwiaGFuZGxlQ2hhbmdlIiwidXNlRXZlbnRDYWxsYmFjayIsImV2ZW50IiwibmV4dFZhbHVlIiwidGFyZ2V0IiwiaGFuZGxlVG9nZ2xlIiwiY3VycmVudCIsIkZpZWxkU2hlbGwiLCJjaGlsZHJlbiIsIl9qc3hzIiwiam9pbkNscyIsImFzc2lnbiIsInR5cGUiLCJvbkNsaWNrIiwiZGlzcGxheU5hbWUiLCJNZW1vaXplZElucHV0UGFzc3dvcmQiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLG9CQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBQyx1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RUFBRTJCLFlBQVk7UUFBQSxlQUFBLEVBQ1BGLFlBQVk7UUFBQSxjQUFBLEVBQ2JDO01BQVcsQ0FBQSxDQUFBLENBQ3pCLEVBQ0Q3QyxnQkFBZ0IsSUFDZixJQUFBRyxlQUFBLEVBQUEsUUFBQSxFQUFBO1FBQ0V1RCxJQUFJLEVBQUMsUUFBUTtRQUNickUsU0FBUyxFQUFFNEMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUM1Qm5DLFFBQVEsRUFBRUEsUUFBUTtRQUFBLFlBQUEsRUFDUCw0QkFBNEI7UUFDdkM2RCxPQUFPLEVBQUVSLFlBQVk7UUFBQUcsUUFBQSxFQUVwQjFCLE9BQU8sR0FBRzFCLFFBQVEsR0FBR0s7TUFBUSxDQUFBLENBRWpDLEVBQ0FRLE1BQU0sSUFBSSxJQUFBWixlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1kLFNBQVMsRUFBRTRDLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFBQXFCLFFBQUEsRUFBR3ZDO01BQU0sQ0FBQSxDQUFRO0lBQUEsQ0FBQTtFQUMxRCxDQUFBLENBQ0s7QUFFakIsQ0FBQztBQUVEOUIsYUFBYSxDQUFDMkUsV0FBVyxHQUFHLGVBQWU7QUFFM0MsSUFBTUMscUJBQXFCLGdCQUFHLElBQUFDLFdBQUksRUFBQzdFLGFBQWEsQ0FBQztBQUNqRDRFLHFCQUFxQixDQUFDRCxXQUFXLEdBQUcsZUFBZTtBQUFDLElBQUFHLFFBQUEsR0FBQTdFLE9BQUEsY0FFckMyRSxxQkFBcUIiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dC9QYXNzd29yZC9QYXNzd29yZC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlQ29udHJvbGxlZFN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlQ29udHJvbGxlZFN0YXRlJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uL0ljb25zJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgRmllbGRTaGVsbCB9IGZyb20gJy4uL0ZpZWxkU2hlbGwnO1xuaW1wb3J0IHsgdXNlU3luY1JlZiB9IGZyb20gJy4uL3VzZVN5bmNSZWYnO1xuZXhwb3J0IGNvbnN0IElucHV0UGFzc3dvcmQgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzID0gJ2lucHV0Jywgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgZGlzYWJsZWQgPSBmYWxzZSwgdmlzaWJpbGl0eVRvZ2dsZSA9IHRydWUsIHNob3dJY29uID0gX2pzeChJY29ucywgeyBuYW1lOiBcImhpZGVCYWxhbmNlXCIsIHNpemU6IDE2IH0pLCBoaWRlSWNvbiA9IF9qc3goSWNvbnMsIHsgbmFtZTogXCJ2aWV3QmFsYW5jZVwiLCBzaXplOiAxNiB9KSwgbGFiZWwsIGluZm8sIGZlZWRiYWNrLCBmZWVkYmFja0ljb24sIHRpcCwgcmVxdWlyZWQsIHByZWZpeCwgc3VmZml4LCB2YWx1ZSwgZGVmYXVsdFZhbHVlID0gJycsIG9uQ2hhbmdlLCByZWYsIGlkOiBleHRlcm5hbElkIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwibGFiZWxDbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJzaXplXCIsIFwic3RhdHVzXCIsIFwiZGlzYWJsZWRcIiwgXCJ2aXNpYmlsaXR5VG9nZ2xlXCIsIFwic2hvd0ljb25cIiwgXCJoaWRlSWNvblwiLCBcImxhYmVsXCIsIFwiaW5mb1wiLCBcImZlZWRiYWNrXCIsIFwiZmVlZGJhY2tJY29uXCIsIFwidGlwXCIsIFwicmVxdWlyZWRcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJ2YWx1ZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIm9uQ2hhbmdlXCIsIFwicmVmXCIsIFwiaWRcIl0pO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGlucHV0SWQgPSBleHRlcm5hbElkICE9PSBudWxsICYmIGV4dGVybmFsSWQgIT09IHZvaWQgMCA/IGV4dGVybmFsSWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbLCBzeW5jUmVmXSA9IHVzZVN5bmNSZWYocmVmKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlLCB2YWx1ZSk7XG4gICAgY29uc3QgYXJpYVJlcXVpcmVkID0gcmVxdWlyZWQgPyAndHJ1ZScgOiAnZmFsc2UnO1xuICAgIGNvbnN0IGFyaWFJbnZhbGlkID0gc3RhdHVzID09PSAnZXJyb3InID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHNldFZpc2libGUoY3VycmVudCA9PiAhY3VycmVudCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4KEZpZWxkU2hlbGwsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHNpemU6IHNpemUsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgdGlwOiB0aXAsIGZlZWRiYWNrOiBmZWVkYmFjaywgZmVlZGJhY2tJY29uOiBmZWVkYmFja0ljb24sIHJlcXVpcmVkOiByZXF1aXJlZCwgaW5wdXRJZDogaW5wdXRJZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250cm9sJywgam9pbkNscyhkaXNhYmxlZCAmJiBjbGFzc2VzKCdjb250cm9sLWRpc2FibGVkJykpKSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IHN5bmNSZWYsIGlkOiBpbnB1dElkLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2ZpZWxkJyksIGRpc2FibGVkOiBkaXNhYmxlZCwgdHlwZTogdmlzaWJsZSA/ICd0ZXh0JyA6ICdwYXNzd29yZCcsIHZhbHVlOiBpbm5lclZhbHVlLCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBcImFyaWEtcmVxdWlyZWRcIjogYXJpYVJlcXVpcmVkLCBcImFyaWEtaW52YWxpZFwiOiBhcmlhSW52YWxpZCB9KSksIHZpc2liaWxpdHlUb2dnbGUgJiYgKF9qc3goXCJidXR0b25cIiwgeyB0eXBlOiBcImJ1dHRvblwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2FjdGlvbicpLCBkaXNhYmxlZDogZGlzYWJsZWQsIFwiYXJpYS1sYWJlbFwiOiBcInRvZ2dsZSBwYXNzd29yZCB2aXNpYmlsaXR5XCIsIG9uQ2xpY2s6IGhhbmRsZVRvZ2dsZSwgY2hpbGRyZW46IHZpc2libGUgPyBzaG93SWNvbiA6IGhpZGVJY29uIH0pKSwgc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnKSwgY2hpbGRyZW46IHN1ZmZpeCB9KV0gfSkgfSkpO1xufTtcbklucHV0UGFzc3dvcmQuZGlzcGxheU5hbWUgPSAnSW5wdXRQYXNzd29yZCc7XG5jb25zdCBNZW1vaXplZElucHV0UGFzc3dvcmQgPSBtZW1vKElucHV0UGFzc3dvcmQpO1xuTWVtb2l6ZWRJbnB1dFBhc3N3b3JkLmRpc3BsYXlOYW1lID0gJ0lucHV0UGFzc3dvcmQnO1xuZXhwb3J0IGRlZmF1bHQgTWVtb2l6ZWRJbnB1dFBhc3N3b3JkOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|