@1money/component-ui 0.0.42-alpha.2 → 0.0.42-alpha.4
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/components/Select/Select.js +23 -84
- package/es/components/Select/SelectCustom.d.ts +6 -0
- package/es/components/Select/SelectCustom.js +219 -0
- package/es/components/Select/index.d.ts +1 -0
- package/es/components/Select/index.js +2 -1
- package/es/components/Select/interface.d.ts +69 -1
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +1 -1
- package/es/components/Select/useSelectShell.d.ts +26 -0
- package/es/components/Select/useSelectShell.js +90 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/stories/docs/storybook-docs.css +323 -1
- package/lib/components/Select/Select.js +22 -83
- package/lib/components/Select/SelectCustom.d.ts +6 -0
- package/lib/components/Select/SelectCustom.js +229 -0
- package/lib/components/Select/index.d.ts +1 -0
- package/lib/components/Select/index.js +11 -2
- package/lib/components/Select/interface.d.ts +69 -1
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +1 -1
- package/lib/components/Select/useSelectShell.d.ts +26 -0
- package/lib/components/Select/useSelectShell.js +98 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +7 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +18 -0
- package/scripts/mcp-server/index.generated.json +232 -0
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
1
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
4
|
+
import { FloatingFocusManager, FloatingPortal, useInteractions, useListNavigation, useTypeahead } from '@floating-ui/react';
|
|
4
5
|
import { memo, useEffect, useId, useMemo, useRef, useState } from 'react';
|
|
5
6
|
import { useControlledState, useEventCallback } from '@1money/hooks';
|
|
6
7
|
import { Icons } from '../Icons';
|
|
7
8
|
import { Spinner } from '../Spinner';
|
|
8
9
|
import { TypographyBody, TypographyLabel } from '../Typography';
|
|
9
10
|
import { joinCls, default as rootClassnames } from '../../utils/classnames';
|
|
10
|
-
import { useFloatingAnimation } from '../../hooks/useFloatingAnimation';
|
|
11
11
|
import SelectFieldShell from './SelectFieldShell';
|
|
12
12
|
import SelectOptionContent from './SelectOptionContent';
|
|
13
13
|
import SelectSearchControl from './SelectSearchControl';
|
|
14
14
|
import SelectValueContent from './SelectValueContent';
|
|
15
|
+
import { useSelectShell } from './useSelectShell';
|
|
15
16
|
import { KEYBOARD, SELECT_TYPOGRAPHY } from './constants';
|
|
16
17
|
import { extractOptionText, filterOptionGroups, flattenOptionGroups, getMultipleValue, getOptionsByValues, getSelectedOptions, isOptionSelected, normalizeSize, normalizeOptionGroups, removeMultipleValue, toggleMultipleValue } from './utils';
|
|
17
18
|
import './style';
|
|
@@ -69,8 +70,6 @@ export var Select = function Select(props) {
|
|
|
69
70
|
portal = _props$portal === void 0 ? true : _props$portal,
|
|
70
71
|
_props$allowDeselect = props.allowDeselect,
|
|
71
72
|
allowDeselect = _props$allowDeselect === void 0 ? false : _props$allowDeselect,
|
|
72
|
-
_props$clearable = props.clearable,
|
|
73
|
-
clearable = _props$clearable === void 0 ? false : _props$clearable,
|
|
74
73
|
panelClassName = props.panelClassName,
|
|
75
74
|
optionClassName = props.optionClassName,
|
|
76
75
|
_props$listMaxHeight = props.listMaxHeight,
|
|
@@ -95,14 +94,10 @@ export var Select = function Select(props) {
|
|
|
95
94
|
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
96
95
|
innerValue = _useControlledState2[0],
|
|
97
96
|
setInnerValue = _useControlledState2[1];
|
|
98
|
-
var _useControlledState3 = useControlledState(
|
|
97
|
+
var _useControlledState3 = useControlledState(defaultSearchValue, searchValue),
|
|
99
98
|
_useControlledState4 = _slicedToArray(_useControlledState3, 2),
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
var _useControlledState5 = useControlledState(defaultSearchValue, searchValue),
|
|
103
|
-
_useControlledState6 = _slicedToArray(_useControlledState5, 2),
|
|
104
|
-
innerSearchValue = _useControlledState6[0],
|
|
105
|
-
setInnerSearchValue = _useControlledState6[1];
|
|
99
|
+
innerSearchValue = _useControlledState4[0],
|
|
100
|
+
setInnerSearchValue = _useControlledState4[1];
|
|
106
101
|
var _useState = useState(null),
|
|
107
102
|
_useState2 = _slicedToArray(_useState, 2),
|
|
108
103
|
activeIndex = _useState2[0],
|
|
@@ -144,45 +139,22 @@ export var Select = function Select(props) {
|
|
|
144
139
|
ref.current = node;
|
|
145
140
|
}
|
|
146
141
|
});
|
|
147
|
-
var
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
placement: 'bottom-start',
|
|
155
|
-
whileElementsMounted: autoUpdate,
|
|
156
|
-
transform: false,
|
|
157
|
-
middleware: [offset(0), flip({
|
|
158
|
-
padding: 8
|
|
159
|
-
}), shift({
|
|
160
|
-
padding: 8
|
|
161
|
-
}), floatingSize({
|
|
162
|
-
apply: function apply(_ref) {
|
|
163
|
-
var rects = _ref.rects,
|
|
164
|
-
elements = _ref.elements,
|
|
165
|
-
availableHeight = _ref.availableHeight;
|
|
166
|
-
var nextMaxHeight = Math.max(120, Math.min(listMaxHeight, availableHeight));
|
|
167
|
-
Object.assign(elements.floating.style, {
|
|
168
|
-
width: "".concat(rects.reference.width, "px"),
|
|
169
|
-
maxHeight: "".concat(nextMaxHeight, "px")
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
})]
|
|
142
|
+
var _useSelectShell = useSelectShell({
|
|
143
|
+
open: open,
|
|
144
|
+
defaultOpen: defaultOpen,
|
|
145
|
+
onOpenChange: onOpenChange,
|
|
146
|
+
disabled: disabled,
|
|
147
|
+
listMaxHeight: listMaxHeight,
|
|
148
|
+
animation: animation
|
|
173
149
|
}),
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}, [animation]);
|
|
183
|
-
var _useFloatingAnimation = useFloatingAnimation(context, resolvedPlacement, resolvedAnimation),
|
|
184
|
-
isMounted = _useFloatingAnimation.isMounted,
|
|
185
|
-
transitionStyles = _useFloatingAnimation.styles;
|
|
150
|
+
innerOpen = _useSelectShell.isOpen,
|
|
151
|
+
handleOpenChange = _useSelectShell.setOpen,
|
|
152
|
+
refs = _useSelectShell.refs,
|
|
153
|
+
context = _useSelectShell.context,
|
|
154
|
+
floatingStyles = _useSelectShell.floatingStyles,
|
|
155
|
+
transitionStyles = _useSelectShell.transitionStyles,
|
|
156
|
+
isMounted = _useSelectShell.isMounted,
|
|
157
|
+
baseInteractions = _useSelectShell.baseInteractions;
|
|
186
158
|
var setReference = useEventCallback(function (node) {
|
|
187
159
|
refs.setReference(node);
|
|
188
160
|
handleTriggerRef(node);
|
|
@@ -191,16 +163,6 @@ export var Select = function Select(props) {
|
|
|
191
163
|
refs.setFloating(node);
|
|
192
164
|
floatingRef.current = node;
|
|
193
165
|
});
|
|
194
|
-
var click = useClick(context, {
|
|
195
|
-
enabled: !disabled
|
|
196
|
-
});
|
|
197
|
-
var dismiss = useDismiss(context, {
|
|
198
|
-
enabled: !disabled,
|
|
199
|
-
outsidePressEvent: 'mousedown'
|
|
200
|
-
});
|
|
201
|
-
var role = useRole(context, {
|
|
202
|
-
role: 'select'
|
|
203
|
-
});
|
|
204
166
|
var listNavigation = useListNavigation(context, {
|
|
205
167
|
listRef: listRef,
|
|
206
168
|
activeIndex: activeIndex,
|
|
@@ -216,7 +178,7 @@ export var Select = function Select(props) {
|
|
|
216
178
|
enabled: innerOpen && !searchable,
|
|
217
179
|
onMatch: setActiveIndex
|
|
218
180
|
});
|
|
219
|
-
var _useInteractions = useInteractions([
|
|
181
|
+
var _useInteractions = useInteractions([].concat(_toConsumableArray(baseInteractions), [listNavigation, typeahead])),
|
|
220
182
|
getReferenceProps = _useInteractions.getReferenceProps,
|
|
221
183
|
getFloatingProps = _useInteractions.getFloatingProps,
|
|
222
184
|
getItemProps = _useInteractions.getItemProps;
|
|
@@ -316,15 +278,6 @@ export var Select = function Select(props) {
|
|
|
316
278
|
preventScroll: true
|
|
317
279
|
});
|
|
318
280
|
});
|
|
319
|
-
var handleClear = useEventCallback(function (event) {
|
|
320
|
-
event.preventDefault();
|
|
321
|
-
event.stopPropagation();
|
|
322
|
-
if (multiple) {
|
|
323
|
-
commitChange([], []);
|
|
324
|
-
} else {
|
|
325
|
-
commitChange(undefined, undefined);
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
281
|
var handleRemoveSelectedValue = useEventCallback(function (optionValue) {
|
|
329
282
|
if (!multiple) {
|
|
330
283
|
return;
|
|
@@ -463,20 +416,6 @@ export var Select = function Select(props) {
|
|
|
463
416
|
onRemoveMouseDown: handleTagRemoveMouseDown
|
|
464
417
|
})
|
|
465
418
|
})]
|
|
466
|
-
}), clearable && hasSelection && !disabled && !loading && _jsx("span", {
|
|
467
|
-
className: classes('clear'),
|
|
468
|
-
role: "button",
|
|
469
|
-
"aria-label": "Clear",
|
|
470
|
-
onMouseDown: function onMouseDown(event) {
|
|
471
|
-
event.preventDefault();
|
|
472
|
-
event.stopPropagation();
|
|
473
|
-
},
|
|
474
|
-
onClick: handleClear,
|
|
475
|
-
children: _jsx(Icons, {
|
|
476
|
-
name: "cross",
|
|
477
|
-
size: iconSize,
|
|
478
|
-
color: "currentColor"
|
|
479
|
-
})
|
|
480
419
|
}), _jsx("span", {
|
|
481
420
|
className: classes('icon'),
|
|
482
421
|
children: loading ? _jsx(Spinner, {
|
|
@@ -584,4 +523,4 @@ export var Select = function Select(props) {
|
|
|
584
523
|
};
|
|
585
524
|
Select.displayName = 'Select';
|
|
586
525
|
export default /*#__PURE__*/memo(Select);
|
|
587
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsImF1dG9VcGRhdGUiLCJmbGlwIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJGbG9hdGluZ1BvcnRhbCIsIm9mZnNldCIsInNoaWZ0Iiwic2l6ZSIsImZsb2F0aW5nU2l6ZSIsInVzZUNsaWNrIiwidXNlRGlzbWlzcyIsInVzZUZsb2F0aW5nIiwidXNlSW50ZXJhY3Rpb25zIiwidXNlTGlzdE5hdmlnYXRpb24iLCJ1c2VSb2xlIiwidXNlVHlwZWFoZWFkIiwibWVtbyIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlTWVtbyIsInVzZVJlZiIsInVzZVN0YXRlIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsIkljb25zIiwiU3Bpbm5lciIsIlR5cG9ncmFwaHlCb2R5IiwiVHlwb2dyYXBoeUxhYmVsIiwiam9pbkNscyIsImRlZmF1bHQiLCJyb290Q2xhc3NuYW1lcyIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiU2VsZWN0RmllbGRTaGVsbCIsIlNlbGVjdE9wdGlvbkNvbnRlbnQiLCJTZWxlY3RTZWFyY2hDb250cm9sIiwiU2VsZWN0VmFsdWVDb250ZW50IiwiS0VZQk9BUkQiLCJTRUxFQ1RfVFlQT0dSQVBIWSIsImV4dHJhY3RPcHRpb25UZXh0IiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwiZmxhdHRlbk9wdGlvbkdyb3VwcyIsImdldE11bHRpcGxlVmFsdWUiLCJnZXRPcHRpb25zQnlWYWx1ZXMiLCJnZXRTZWxlY3RlZE9wdGlvbnMiLCJpc09wdGlvblNlbGVjdGVkIiwibm9ybWFsaXplU2l6ZSIsIm5vcm1hbGl6ZU9wdGlvbkdyb3VwcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJ0b2dnbGVNdWx0aXBsZVZhbHVlIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiU2VsZWN0IiwicHJvcHMiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInN0eWxlIiwiaWQiLCJuYW1lIiwiYXJpYUxhYmVsIiwiYXJpYUxhYmVsbGVkQnkiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRvcHRpb25zIiwib3B0aW9ucyIsInZhbHVlIiwiZGVmYXVsdFZhbHVlIiwiX3Byb3BzJHNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJfcHJvcHMkbXVsdGlwbGUiLCJtdWx0aXBsZSIsIm1heFZpc2libGVWYWx1ZXMiLCJfcHJvcHMkc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfcHJvcHMkc2VhcmNoUGxhY2Vob2wiLCJzZWFyY2hQbGFjZWhvbGRlciIsInNlYXJjaFZhbHVlIiwiX3Byb3BzJGRlZmF1bHRTZWFyY2hWIiwiZGVmYXVsdFNlYXJjaFZhbHVlIiwibGFiZWwiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsIl9wcm9wcyRjbGVhcmFibGUiLCJjbGVhcmFibGUiLCJwYW5lbENsYXNzTmFtZSIsIm9wdGlvbkNsYXNzTmFtZSIsIl9wcm9wcyRsaXN0TWF4SGVpZ2h0IiwibGlzdE1heEhlaWdodCIsImFuaW1hdGlvbiIsIm9uQ2hhbmdlIiwib25PcGVuQ2hhbmdlIiwib25TZWFyY2hDaGFuZ2UiLCJvbkJsdXIiLCJmaWx0ZXJPcHRpb24iLCJyZW5kZXJPcHRpb24iLCJyZW5kZXJWYWx1ZSIsInJlZiIsImNsYXNzZXMiLCJhdXRvSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwidW5kZWZpbmVkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyT3BlbiIsInNldElubmVyT3BlbiIsIl91c2VDb250cm9sbGVkU3RhdGU1IiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTYiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJoYW5kbGVPcGVuQ2hhbmdlIiwibmV4dE9wZW4iLCJfdXNlRmxvYXRpbmciLCJwbGFjZW1lbnQiLCJ3aGlsZUVsZW1lbnRzTW91bnRlZCIsInRyYW5zZm9ybSIsIm1pZGRsZXdhcmUiLCJwYWRkaW5nIiwiYXBwbHkiLCJfcmVmIiwicmVjdHMiLCJlbGVtZW50cyIsImF2YWlsYWJsZUhlaWdodCIsIm5leHRNYXhIZWlnaHQiLCJNYXRoIiwibWF4IiwibWluIiwiT2JqZWN0IiwiYXNzaWduIiwiZmxvYXRpbmciLCJ3aWR0aCIsImNvbmNhdCIsInJlZmVyZW5jZSIsIm1heEhlaWdodCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJyZXNvbHZlZFBsYWNlbWVudCIsInJlc29sdmVkQW5pbWF0aW9uIiwia2luZCIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbiIsImlzTW91bnRlZCIsInRyYW5zaXRpb25TdHlsZXMiLCJzdHlsZXMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJvdXRzaWRlUHJlc3NFdmVudCIsInJvbGUiLCJsaXN0TmF2aWdhdGlvbiIsIm9uTmF2aWdhdGUiLCJsb29wIiwidHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJnZXRSZWZlcmVuY2VQcm9wcyIsImdldEZsb2F0aW5nUHJvcHMiLCJnZXRJdGVtUHJvcHMiLCJmaXJzdEVuYWJsZWRJbmRleCIsImxhc3RFbmFibGVkSW5kZXgiLCJfYSIsImluZGV4IiwicHJldiIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInNsaWNlIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsIm5leHRPcHRpb25zIiwiaGFuZGxlQ2xlYXIiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImluY2x1ZGVzIiwiaGFuZGxlVHJpZ2dlcktleURvd24iLCJrZXkiLCJFTlRFUiIsIlNQQUNFIiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiaWNvblNpemUiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwib25Nb3VzZURvd24iLCJvbkNsaWNrIiwiY29sb3IiLCJzdHJva2VXaWR0aCIsInBhbmVsTm9kZSIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsIm9uTW91c2VFbnRlciIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUNFQyxVQUFVLEVBQ1ZDLElBQUksRUFDSkMsb0JBQW9CLEVBQ3BCQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsS0FBSyxFQUNMQyxJQUFJLElBQUlDLFlBQVksRUFD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b0osUUFBQSxFQUFHM0s7VUFBVyxDQUFBLENBQ3REO1FBQUEsQ0FBQSxDQUFBO01BQ0csQ0FBQSxDQUVUO01BRUQsT0FBT0ssTUFBTSxHQUFHdkcsSUFBQSxDQUFDTSxjQUFjLEVBQUE7UUFBQXVRLFFBQUEsRUFBRVU7TUFBUyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEbk8sTUFBTSxDQUFDa1AsV0FBVyxHQUFHLFFBQVE7QUFFN0IsNEJBQWVwUixJQUFJLENBQUNrQyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGF1dG9VcGRhdGUsIGZsaXAsIEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgb2Zmc2V0LCBzaGlmdCwgc2l6ZSBhcyBmbG9hdGluZ1NpemUsIHVzZUNsaWNrLCB1c2VEaXNtaXNzLCB1c2VGbG9hdGluZywgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlUm9sZSwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZsb2F0aW5nQW5pbWF0aW9uIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlRmxvYXRpbmdBbmltYXRpb24nO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRPcHRpb25zQnlWYWx1ZXMsIGdldFNlbGVjdGVkT3B0aW9ucywgaXNPcHRpb25TZWxlY3RlZCwgbm9ybWFsaXplU2l6ZSwgbm9ybWFsaXplT3B0aW9uR3JvdXBzLCByZW1vdmVNdWx0aXBsZVZhbHVlLCB0b2dnbGVNdWx0aXBsZVZhbHVlLCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgc3R5bGUsIGlkLCBuYW1lLCAnYXJpYS1sYWJlbCc6IGFyaWFMYWJlbCwgJ2FyaWEtbGFiZWxsZWRieSc6IGFyaWFMYWJlbGxlZEJ5LCBwbGFjZWhvbGRlciA9ICdWYWx1ZScsIG9wdGlvbnMgPSBbXSwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIG11bHRpcGxlID0gZmFsc2UsIG1heFZpc2libGVWYWx1ZXMsIHNlYXJjaGFibGUgPSBmYWxzZSwgc2VhcmNoUGxhY2Vob2xkZXIgPSAnU2VhcmNoJywgc2VhcmNoVmFsdWUsIGRlZmF1bHRTZWFyY2hWYWx1ZSA9ICcnLCBsYWJlbCwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IGZhbHNlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgY2xlYXJhYmxlID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIGFuaW1hdGlvbiwgb25DaGFuZ2UsIG9uT3BlbkNoYW5nZSwgb25TZWFyY2hDaGFuZ2UsIG9uQmx1ciwgZmlsdGVyT3B0aW9uLCByZW5kZXJPcHRpb24sIHJlbmRlclZhbHVlLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJPcGVuLCBzZXRJbm5lck9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRPcGVuLCBvcGVuKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3BlbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldElubmVyT3BlbihuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IGhhbmRsZU9wZW5DaGFuZ2UsXG4gICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkOiBhdXRvVXBkYXRlLFxuICAgICAgICB0cmFuc2Zvcm06IGZhbHNlLFxuICAgICAgICBtaWRkbGV3YXJlOiBbXG4gICAgICAgICAgICBvZmZzZXQoMCksXG4gICAgICAgICAgICBmbGlwKHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIHNoaWZ0KHsgcGFkZGluZzogOCB9KSxcbiAgICAgICAgICAgIGZsb2F0aW5nU2l6ZSh7XG4gICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRNYXhIZWlnaHQgPSBNYXRoLm1heCgxMjAsIE1hdGgubWluKGxpc3RNYXhIZWlnaHQsIGF2YWlsYWJsZUhlaWdodCkpO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICB9KTtcbiAgICBjb25zdCByZXNvbHZlZEFuaW1hdGlvbiA9IHVzZU1lbW8oKCkgPT4gKGFuaW1hdGlvbiA9PT0gZmFsc2UgPyBmYWxzZSA6IE9iamVjdC5hc3NpZ24oeyBraW5kOiAnaGVpZ2h0JyB9LCAoYW5pbWF0aW9uICE9PSBudWxsICYmIGFuaW1hdGlvbiAhPT0gdm9pZCAwID8gYW5pbWF0aW9uIDoge30pKSksIFthbmltYXRpb25dKTtcbiAgICBjb25zdCB7IGlzTW91bnRlZCwgc3R5bGVzOiB0cmFuc2l0aW9uU3R5bGVzIH0gPSB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCByZXNvbHZlZFBsYWNlbWVudCwgcmVzb2x2ZWRBbmltYXRpb24pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQgfSk7XG4gICAgY29uc3QgZGlzbWlzcyA9IHVzZURpc21pc3MoY29udGV4dCwgeyBlbmFibGVkOiAhZGlzYWJsZWQsIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6ICdzZWxlY3QnIH0pO1xuICAgIGNvbnN0IGxpc3ROYXZpZ2F0aW9uID0gdXNlTGlzdE5hdmlnYXRpb24oY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgb25OYXZpZ2F0ZTogc2V0QWN0aXZlSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbixcbiAgICAgICAgbG9vcDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb25zdCB0eXBlYWhlYWQgPSB1c2VUeXBlYWhlYWQoY29udGV4dCwge1xuICAgICAgICBsaXN0UmVmOiBsaXN0Q29udGVudFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIGVuYWJsZWQ6IGlubmVyT3BlbiAmJiAhc2VhcmNoYWJsZSxcbiAgICAgICAgb25NYXRjaDogc2V0QWN0aXZlSW5kZXgsXG4gICAgfSk7XG4gICAgY29uc3QgeyBnZXRSZWZlcmVuY2VQcm9wcywgZ2V0RmxvYXRpbmdQcm9wcywgZ2V0SXRlbVByb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoW1xuICAgICAgICBjbGljayxcbiAgICAgICAgZGlzbWlzcyxcbiAgICAgICAgcm9sZSxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGxhc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleCAtPSAxKSB7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpbm5lck9wZW4gJiYgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgKF9hID0gc2VhcmNoSW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbik7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQ2xlYXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UoW10sIFtdKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuU1BBQ0UpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKCFpbm5lck9wZW4pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX0RPV04gfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUl0ZW1Nb3VzZUVudGVyID0gdXNlRXZlbnRDYWxsYmFjaygoaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbaW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChpbmRleCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWdSZW1vdmVDbGljayA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIF9ldmVudCkgPT4ge1xuICAgICAgICBzZXRJbm5lclNlYXJjaFZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uU2VhcmNoQ2hhbmdlID09PSBudWxsIHx8IG9uU2VhcmNoQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblNlYXJjaENoYW5nZShuZXh0VmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEtleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiAmJiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoZmlyc3RFbmFibGVkSW5kZXgpO1xuICAgICAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2ZpcnN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCAmJiBsYXN0RW5hYmxlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobGFzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2IgPSBsaXN0UmVmLmN1cnJlbnRbbGFzdEVuYWJsZWRJbmRleF0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2MgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgIH07XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgaXNNdWx0aXBsZVZhbHVlRmlsbGVkID0gKG11bHRpcGxlICYmXG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJlxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzID09PSB1bmRlZmluZWQpO1xuICAgIGNvbnN0IHRyaWdnZXJDbGFzc05hbWUgPSBjbGFzc2VzKCd0cmlnZ2VyJywgam9pbkNscyhjbGFzc2VzKGB0cmlnZ2VyLSR7bm9ybWFsaXplZFNpemV9YCksIGNsYXNzZXMoYHRyaWdnZXItJHt2YXJpYW50fWApLCBpbm5lck9wZW4gJiYgY2xhc3NlcygndHJpZ2dlci1vcGVuJyksIGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLW11bHRpcGxlLWZpbGxlZCcpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnc21hbGwnID8gMTYgOiAyMDtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbXG4gICAgICAgIGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsXG4gICAgICAgIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGwsXG4gICAgXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgY2xlYXJhYmxlICYmIGhhc1NlbGVjdGlvbiAmJiAhZGlzYWJsZWQgJiYgIWxvYWRpbmcgJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjbGVhcicpLCByb2xlOiBcImJ1dHRvblwiLCBcImFyaWEtbGFiZWxcIjogXCJDbGVhclwiLCBvbk1vdXNlRG93bjogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQ2xpY2s6IGhhbmRsZUNsZWFyLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNyb3NzXCIsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpY29uJyksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSkpIDogKF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkpIH0pXSB9KSksIGlzTW91bnRlZCAmJiAhZGlzYWJsZWQgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBvbkJsdXI6IGhhbmRsZVNlYXJjaEJsdXIsIG9uQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIG9uS2V5RG93bjogaGFuZGxlU2VhcmNoS2V5RG93biB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWJvZHknKSwgY2hpbGRyZW46IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGggPT09IDAgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZW1wdHknKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuc2l6ZSwgY29sb3I6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LmNvbG9yLCBjaGlsZHJlbjogZW1wdHlDb250ZW50IH0pIH0pKSA6ICgoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZsYXRJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmlzaWJsZU9wdGlvbkdyb3Vwcy5tYXAoKGdyb3VwKSA9PiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwJyksIGNoaWxkcmVuOiBbZ3JvdXAubGFiZWwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2dyb3VwLWxhYmVsJyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlMYWJlbCwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5ncm91cExhYmVsLnNpemUsIHN0cm9uZzogdHJ1ZSwgY2hpbGRyZW46IGdyb3VwLmxhYmVsIH0pIH0pKSwgZ3JvdXAub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRmxhdEluZGV4ID0gZmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhdEluZGV4ICs9IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGlzT3B0aW9uU2VsZWN0ZWQoaW5uZXJWYWx1ZSwgbXVsdGlwbGUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmUgPSBhY3RpdmVJbmRleCA9PT0gb3B0aW9uRmxhdEluZGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uTWV0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBvcHRpb25GbGF0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlOiAnb3B0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXMoJ29wdGlvbicsIGpvaW5DbHMoYWN0aXZlICYmIGNsYXNzZXMoJ29wdGlvbi1hY3RpdmUnKSwgc2VsZWN0ZWQgJiYgY2xhc3Nlcygnb3B0aW9uLXNlbGVjdGVkJyksIG9wdGlvbi5kaXNhYmxlZCAmJiBjbGFzc2VzKCdvcHRpb24tZGlzYWJsZWQnKSwgb3B0aW9uQ2xhc3NOYW1lKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IG9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJpYS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6IChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gaGFuZGxlSXRlbU1vdXNlRW50ZXIob3B0aW9uRmxhdEluZGV4KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZU9wdGlvbkJsdXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogcmVuZGVyT3B0aW9uID8gKHJlbmRlck9wdGlvbihvcHRpb24sIG9wdGlvbk1ldGEpKSA6IChfanN4KFNlbGVjdE9wdGlvbkNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3Nlcywgb3B0aW9uOiBvcHRpb24sIHNlbGVjdGVkOiBzZWxlY3RlZCB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
526
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZsb2F0aW5nRm9jdXNNYW5hZ2VyIiwiRmxvYXRpbmdQb3J0YWwiLCJ1c2VJbnRlcmFjdGlvbnMiLCJ1c2VMaXN0TmF2aWdhdGlvbiIsInVzZVR5cGVhaGVhZCIsIm1lbW8iLCJ1c2VFZmZlY3QiLCJ1c2VJZCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUV2ZW50Q2FsbGJhY2siLCJJY29ucyIsIlNwaW5uZXIiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlMYWJlbCIsImpvaW5DbHMiLCJkZWZhdWx0Iiwicm9vdENsYXNzbmFtZXMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsIlNlbGVjdFNlYXJjaENvbnRyb2wiLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJ1c2VTZWxlY3RTaGVsbCIsIktFWUJPQVJEIiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJleHRyYWN0T3B0aW9uVGV4dCIsImZpbHRlck9wdGlvbkdyb3VwcyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJnZXRNdWx0aXBsZVZhbHVlIiwiZ2V0T3B0aW9uc0J5VmFsdWVzIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwiaXNPcHRpb25TZWxlY3RlZCIsIm5vcm1hbGl6ZVNpemUiLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJyZW1vdmVNdWx0aXBsZVZhbHVlIiwidG9nZ2xlTXVsdGlwbGVWYWx1ZSIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsInByb3BzIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJzdHlsZSIsImlkIiwibmFtZSIsImFyaWFMYWJlbCIsImFyaWFMYWJlbGxlZEJ5IiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkb3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZSIsImRlZmF1bHRWYWx1ZSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJsYWJlbCIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkZW1wdHlDb250ZW50IiwiZW1wdHlDb250ZW50IiwicGFuZWxGb290ZXIiLCJvcGVuIiwiX3Byb3BzJGRlZmF1bHRPcGVuIiwiZGVmYXVsdE9wZW4iLCJfcHJvcHMkcG9ydGFsIiwicG9ydGFsIiwiX3Byb3BzJGFsbG93RGVzZWxlY3QiLCJhbGxvd0Rlc2VsZWN0IiwicGFuZWxDbGFzc05hbWUiLCJvcHRpb25DbGFzc05hbWUiLCJfcHJvcHMkbGlzdE1heEhlaWdodCIsImxpc3RNYXhIZWlnaHQiLCJhbmltYXRpb24iLCJvbkNoYW5nZSIsIm9uT3BlbkNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwib25CbHVyIiwiZmlsdGVyT3B0aW9uIiwicmVuZGVyT3B0aW9uIiwicmVuZGVyVmFsdWUiLCJyZWYiLCJjbGFzc2VzIiwiYXV0b0lkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVuZGVmaW5lZCIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJpbm5lclZhbHVlIiwic2V0SW5uZXJWYWx1ZSIsIl91c2VDb250cm9sbGVkU3RhdGUzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTQiLCJpbm5lclNlYXJjaFZhbHVlIiwic2V0SW5uZXJTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJhY3RpdmVJbmRleCIsInNldEFjdGl2ZUluZGV4Iiwibm9ybWFsaXplZFNpemUiLCJhbGxPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsInZpc2libGVPcHRpb25Hcm91cHMiLCJ2aXNpYmxlRmxhdE9wdGlvbnMiLCJzZWxlY3RlZE9wdGlvbnMiLCJzZWxlY3RlZEluZGV4IiwibGVuZ3RoIiwibWF0Y2hlZEluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9uIiwiaGFzU2VsZWN0aW9uIiwibGlzdFJlZiIsImxpc3RDb250ZW50UmVmIiwiZmxvYXRpbmdSZWYiLCJ0cmlnZ2VyUmVmIiwic2VhcmNoSW5wdXRSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwibm9kZSIsImN1cnJlbnQiLCJfdXNlU2VsZWN0U2hlbGwiLCJpbm5lck9wZW4iLCJpc09wZW4iLCJoYW5kbGVPcGVuQ2hhbmdlIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwibGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ0eXBlYWhlYWQiLCJvbk1hdGNoIiwiX3VzZUludGVyYWN0aW9ucyIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheSIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsImdldEl0ZW1Qcm9wcyIsImZpcnN0RW5hYmxlZEluZGV4IiwibGFzdEVuYWJsZWRJbmRleCIsIl9hIiwiaW5kZXgiLCJwcmV2IiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwic2xpY2UiLCJub3RpZnlCbHVySWZPdXRzaWRlIiwicmVsYXRlZFRhcmdldCIsImV2ZW50IiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImhhbmRsZU9wdGlvbkJsdXIiLCJjb21taXRDaGFuZ2UiLCJuZXh0VmFsdWUiLCJuZXh0T3B0aW9uIiwiaGFuZGxlU2VsZWN0T3B0aW9uIiwibmV4dE9wdGlvbnMiLCJoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlIiwib3B0aW9uVmFsdWUiLCJpbmNsdWRlcyIsImhhbmRsZVRyaWdnZXJLZXlEb3duIiwia2V5IiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24iLCJzdG9wUHJvcGFnYXRpb24iLCJoYW5kbGVUYWdSZW1vdmVDbGljayIsImhhbmRsZVNlYXJjaEJsdXIiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJfZXZlbnQiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwiX2MiLCJFU0NBUEUiLCJyZW5kZXJWYWx1ZU1ldGEiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiaWNvblNpemUiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImNoaWxkcmVuIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIm9uUmVtb3ZlIiwib25SZW1vdmVDbGljayIsIm9uUmVtb3ZlTW91c2VEb3duIiwic3Ryb2tlV2lkdGgiLCJjb2xvciIsInBhbmVsTm9kZSIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiYWN0aXZlIiwib3B0aW9uTWV0YSIsInJvbGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLEVBQUVDLElBQUksSUFBSUMsS0FBSyxRQUFRLG1CQUFtQjtBQ0E5RCxTQUNFQyxvQkFBb0IsRUFDcEJDLGNBQWMsRUFDZEMsZUFBZSxFQUNmQyxpQkFBaUIsRUFDakJDLFlBQVksUUFDUCxvQkFBb0I7QUFDM0IsU0FBU0MsSUFBSSxFQUFFQyxTQUFTLEVBQUVDLEtBQUssRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGtCQUFrQixFQUFFQyxnQkFBZ0IsUUFBUSxlQUFlO0FBQ3BFLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBQ2hDLFNBQVNDLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLFNBQVNDLGNBQWMsRUFBRUMsZUFBZSxRQUFRLGVBQWU7QUFDL0QsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLElBQUlDLGNBQWMsUUFBUSx3QkFBd0I7QUFnQjNFLE9BQU9DLGdCQUFnQixNQUFNLG9CQUFvQjtBQUNqRCxPQUFPQyxtQkFBbUIsTUFBTSx1QkFBdUI7QUFDdkQsT0FBT0MsbUJBQW1CLE1BQU0sdUJBQXVCO0FBQ3ZELE9BQU9DLGtCQUFrQixNQUFNLHNCQUFzQjtBQUNyRCxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBQ2pELFNBQVNDLFFBQVEsRUFBRUMsaUJBQWlCLFFBQVEsYUFBYTtBQUN6RCxTQUNFQyxpQkFBaUIsRUFDakJDLGtCQUFrQixFQUNsQkMsbUJBQW1CLEVBQ25C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Q0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEcE0sTUFBTSxDQUFDcU4sV0FBVyxHQUFHLFFBQVE7QUFFN0IsNEJBQWV2UCxJQUFJLENBQUNrQyxNQUFNLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zLCB1c2VMaXN0TmF2aWdhdGlvbiwgdXNlVHlwZWFoZWFkLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlZFN0YXRlLCB1c2VFdmVudENhbGxiYWNrIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMsIGRlZmF1bHQgYXMgcm9vdENsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCBTZWxlY3RGaWVsZFNoZWxsIGZyb20gJy4vU2VsZWN0RmllbGRTaGVsbCc7XG5pbXBvcnQgU2VsZWN0T3B0aW9uQ29udGVudCBmcm9tICcuL1NlbGVjdE9wdGlvbkNvbnRlbnQnO1xuaW1wb3J0IFNlbGVjdFNlYXJjaENvbnRyb2wgZnJvbSAnLi9TZWxlY3RTZWFyY2hDb250cm9sJztcbmltcG9ydCBTZWxlY3RWYWx1ZUNvbnRlbnQgZnJvbSAnLi9TZWxlY3RWYWx1ZUNvbnRlbnQnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IEtFWUJPQVJELCBTRUxFQ1RfVFlQT0dSQVBIWSB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGV4dHJhY3RPcHRpb25UZXh0LCBmaWx0ZXJPcHRpb25Hcm91cHMsIGZsYXR0ZW5PcHRpb25Hcm91cHMsIGdldE11bHRpcGxlVmFsdWUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGxhYmVsLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gZmFsc2UsIHByZWZpeCwgZW1wdHlDb250ZW50ID0gJ05vIG9wdGlvbnMnLCBwYW5lbEZvb3Rlciwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgYWxsb3dEZXNlbGVjdCA9IGZhbHNlLCBwYW5lbENsYXNzTmFtZSwgb3B0aW9uQ2xhc3NOYW1lLCBsaXN0TWF4SGVpZ2h0ID0gREVGQVVMVF9NQVhfSEVJR0hULCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICBjb25zdCBsYXN0RW5hYmxlZEluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXggLT0gMSkge1xuICAgICAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHNlbGVjdGVkSW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCAmJiB2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0gJiYgIXZpc2libGVGbGF0T3B0aW9uc1twcmV2XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0gJiZcbiAgICAgICAgICAgICAgICAhdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSW5kZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmlyc3RFbmFibGVkSW5kZXggPj0gMCA/IGZpcnN0RW5hYmxlZEluZGV4IDogbnVsbDtcbiAgICAgICAgfSk7XG4gICAgfSwgW2ZpcnN0RW5hYmxlZEluZGV4LCBpbm5lck9wZW4sIHNlbGVjdGVkSW5kZXgsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFpbm5lck9wZW4gfHwgYWN0aXZlSW5kZXggPT09IG51bGwgfHwgc2VhcmNoYWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIChfYSA9IGxpc3RSZWYuY3VycmVudFthY3RpdmVJbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSwgW2FjdGl2ZUluZGV4LCBpbm5lck9wZW4sIHNlYXJjaGFibGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsaXN0UmVmLmN1cnJlbnQgPSBsaXN0UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnQgPSBsaXN0Q29udGVudFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgIH0sIFt2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5uZXJPcGVuICYmIHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIChfYSA9IHNlYXJjaElucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9LCBbaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3B0aW9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbW1pdENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgbmV4dE9wdGlvbikgPT4ge1xuICAgICAgICBzZXRJbm5lclZhbHVlKG5leHRWYWx1ZSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb24pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlbGVjdE9wdGlvbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAob3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG11bHRpcGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSB0b2dnbGVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWxsb3dEZXNlbGVjdCAmJiBpbm5lclZhbHVlID09PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgICAgIGNvbW1pdENoYW5nZSh1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbW1pdENoYW5nZShvcHRpb24udmFsdWUsIG9wdGlvbik7XG4gICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgKF9iID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUgPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb25WYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoIW11bHRpcGxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFnZXRNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUpLmluY2x1ZGVzKG9wdGlvblZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHJlbW92ZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uVmFsdWUpO1xuICAgICAgICBjb25zdCBuZXh0T3B0aW9ucyA9IGdldE9wdGlvbnNCeVZhbHVlcyhhbGxGbGF0T3B0aW9ucywgbmV4dFZhbHVlKTtcbiAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOICYmIGZpcnN0RW5hYmxlZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChmaXJzdEVuYWJsZWRJbmRleCk7XG4gICAgICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbZmlyc3RFbmFibGVkSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQICYmIGxhc3RFbmFibGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChsYXN0RW5hYmxlZEluZGV4KTtcbiAgICAgICAgICAgIChfYiA9IGxpc3RSZWYuY3VycmVudFtsYXN0RW5hYmxlZEluZGV4XSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYyA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG11bHRpcGxlLFxuICAgICAgICBtYXhWaXNpYmxlVmFsdWVzLFxuICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgIHBsYWNlaG9sZGVyOiAhaGFzU2VsZWN0aW9uLFxuICAgICAgICBzZWxlY3RlZE9wdGlvbnMsXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZyA/IChfanN4KFNwaW5uZXIsIHsgc2l6ZTogaWNvblNpemUsIHN0cm9rZVdpZHRoOiAyIH0pKSA6IChfanN4KEljb25zLCB7IG5hbWU6IGlubmVyT3BlbiA/ICdjaGV2cm9uVXAnIDogJ2NoZXZyb25Eb3duJywgc2l6ZTogaWNvblNpemUsIGNvbG9yOiBcImN1cnJlbnRDb2xvclwiIH0pKSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgIWRpc2FibGVkICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { SelectCustomProps } from './interface';
|
|
3
|
+
import './style';
|
|
4
|
+
export declare const SelectCustom: FC<SelectCustomProps>;
|
|
5
|
+
declare const _default: import("react").NamedExoticComponent<SelectCustomProps>;
|
|
6
|
+
export default _default;
|