@1money/react-ui 1.14.0-alpha.0 → 1.14.0-alpha.2
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/InputAmount/InputAmount.js +56 -7
- package/es/components/InputAmount/interface.d.ts +3 -0
- package/es/index.css +1 -1
- package/lib/components/InputAmount/InputAmount.js +56 -7
- package/lib/components/InputAmount/interface.d.ts +3 -0
- package/lib/index.css +1 -1
- package/package.json +1 -1
|
@@ -28,6 +28,33 @@ var MIN_INPUT_WIDTH = 33;
|
|
|
28
28
|
var normalizeNumberInput = function normalizeNumberInput(val) {
|
|
29
29
|
return val.replace(/[\u3002\uff0e\uff61]/g, '.').replace(/[\uFF0C]/g, ',');
|
|
30
30
|
};
|
|
31
|
+
var clampValueInRange = function clampValueInRange(val, min, max) {
|
|
32
|
+
if (val === '' || val === '-' || isNaN(+val)) return {
|
|
33
|
+
val: val,
|
|
34
|
+
clamped: false
|
|
35
|
+
};
|
|
36
|
+
var clampedVal = val;
|
|
37
|
+
var clamped = false;
|
|
38
|
+
var bnVal = (0, _bignumber["default"])(val);
|
|
39
|
+
if (typeof min === 'number' || typeof min === 'bigint') {
|
|
40
|
+
var minBn = (0, _bignumber["default"])(min);
|
|
41
|
+
if (bnVal.lt(minBn)) {
|
|
42
|
+
clampedVal = '' + min;
|
|
43
|
+
clamped = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (typeof max === 'number' || typeof max === 'bigint') {
|
|
47
|
+
var maxBn = (0, _bignumber["default"])(max);
|
|
48
|
+
if (bnVal.gt(maxBn)) {
|
|
49
|
+
clampedVal = '' + max;
|
|
50
|
+
clamped = true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
val: clampedVal,
|
|
55
|
+
clamped: clamped
|
|
56
|
+
};
|
|
57
|
+
};
|
|
31
58
|
var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
32
59
|
var value = props.value,
|
|
33
60
|
_props$type = props.type,
|
|
@@ -36,6 +63,8 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
36
63
|
children = props.children,
|
|
37
64
|
_props$placeholder = props.placeholder,
|
|
38
65
|
placeholder = _props$placeholder === void 0 ? '0' : _props$placeholder,
|
|
66
|
+
min = props.min,
|
|
67
|
+
max = props.max,
|
|
39
68
|
_props$size = props.size,
|
|
40
69
|
size = _props$size === void 0 ? 'large' : _props$size,
|
|
41
70
|
footnote = props.footnote,
|
|
@@ -61,7 +90,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
61
90
|
onChange = props.onChange,
|
|
62
91
|
_onBlur = props.onBlur,
|
|
63
92
|
_onFocus = props.onFocus,
|
|
64
|
-
rest = __rest(props, ["value", "type", "maxFractionDigits", "children", "placeholder", "size", "footnote", "footnoteCls", "className", "wrapperCls", "labelCls", "prefixCls", "messageCls", "invalid", "negative", "required", "loading", "success", "disabled", "readOnly", "label", "prefix", "suffix", "currency", "message", "onChange", "onBlur", "onFocus"]);
|
|
93
|
+
rest = __rest(props, ["value", "type", "maxFractionDigits", "children", "placeholder", "min", "max", "size", "footnote", "footnoteCls", "className", "wrapperCls", "labelCls", "prefixCls", "messageCls", "invalid", "negative", "required", "loading", "success", "disabled", "readOnly", "label", "prefix", "suffix", "currency", "message", "onChange", "onBlur", "onFocus"]);
|
|
65
94
|
var classes = (0, _classnames["default"])("".concat(prefixCls, "-").concat(type));
|
|
66
95
|
var inputRef = (0, _react.useRef)(null);
|
|
67
96
|
var fakeEleRef = (0, _react.useRef)(null);
|
|
@@ -70,6 +99,9 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
70
99
|
var currencyRef = (0, _react.useRef)(null);
|
|
71
100
|
var containerRef = (0, _react.useRef)(null);
|
|
72
101
|
var inputCaretPositionRef = (0, _react.useRef)(0);
|
|
102
|
+
var prevValueRef = (0, _react.useRef)(null);
|
|
103
|
+
var prevFocusRef = (0, _react.useRef)(false);
|
|
104
|
+
var pendingCaretSyncRef = (0, _react.useRef)(false);
|
|
73
105
|
var _useState = (0, _react.useState)(null),
|
|
74
106
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
75
107
|
_value = _useState2[0],
|
|
@@ -107,6 +139,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
107
139
|
}, []);
|
|
108
140
|
var handleChange = (0, _react.useCallback)(function (e) {
|
|
109
141
|
var _a, _b, _c, _d, _e, _f;
|
|
142
|
+
if (disabled || readOnly) return;
|
|
110
143
|
var val = e.target.value;
|
|
111
144
|
var truncatedFraction = false;
|
|
112
145
|
if (val != null) val = normalizeNumberInput(val).split(',').join('');
|
|
@@ -126,6 +159,12 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
126
159
|
truncatedFraction = true;
|
|
127
160
|
}
|
|
128
161
|
}
|
|
162
|
+
var clampedByRange = false;
|
|
163
|
+
if (typeof min === 'number' || typeof min === 'bigint' || typeof max === 'number' || typeof max === 'bigint') {
|
|
164
|
+
var res = clampValueInRange(val, min, max);
|
|
165
|
+
val = res.val;
|
|
166
|
+
clampedByRange = res.clamped;
|
|
167
|
+
}
|
|
129
168
|
if (inputRef.current) {
|
|
130
169
|
var selectionStart = (_a = inputRef.current.selectionStart) !== null && _a !== void 0 ? _a : 0;
|
|
131
170
|
var currentSlice = (_c = (_b = e.target.value) === null || _b === void 0 ? void 0 : _b.slice(0, selectionStart)) !== null && _c !== void 0 ? _c : '';
|
|
@@ -149,7 +188,8 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
149
188
|
if (hasDecimalPoint && !truncatedFraction && targetRawPos === val.length) {
|
|
150
189
|
caretPos = Math.min(formattedNewVal.length + 1, caretPos + 1);
|
|
151
190
|
}
|
|
152
|
-
inputCaretPositionRef.current = truncatedFraction ? formattedNewVal.length : caretPos;
|
|
191
|
+
inputCaretPositionRef.current = truncatedFraction ? formattedNewVal.length : clampedByRange ? formattedNewVal.length : caretPos;
|
|
192
|
+
pendingCaretSyncRef.current = true;
|
|
153
193
|
}
|
|
154
194
|
if (typeof value === 'undefined') {
|
|
155
195
|
if (val === '') {
|
|
@@ -167,7 +207,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
167
207
|
}
|
|
168
208
|
}
|
|
169
209
|
onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
170
|
-
}, [onChange, _value, value, formattedValue, maxFractionDigits, negative]);
|
|
210
|
+
}, [onChange, _value, value, formattedValue, maxFractionDigits, min, max, negative, disabled, readOnly]);
|
|
171
211
|
(0, _react.useEffect)(function () {
|
|
172
212
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
173
213
|
var containerWidth = (_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : MIN_INPUT_WIDTH;
|
|
@@ -180,8 +220,13 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
180
220
|
var isMax = fakeWidth >= maxWidth;
|
|
181
221
|
setWidth(Math.min(maxWidth, Math.max(fakeWidth, MIN_INPUT_WIDTH)));
|
|
182
222
|
setIsMaxWidth(isMax);
|
|
183
|
-
if (isFocus
|
|
184
|
-
|
|
223
|
+
if (isFocus && (_value !== prevValueRef.current || !prevFocusRef.current) && pendingCaretSyncRef.current) {
|
|
224
|
+
scrollToEnd(true);
|
|
225
|
+
pendingCaretSyncRef.current = false;
|
|
226
|
+
}
|
|
227
|
+
prevValueRef.current = _value;
|
|
228
|
+
prevFocusRef.current = isFocus;
|
|
229
|
+
}, [_value, prefix, suffix, currency, isFocus, scrollToEnd]);
|
|
185
230
|
(0, _react.useEffect)(function () {
|
|
186
231
|
// clear negative sign if not allowed
|
|
187
232
|
if (negative) return;
|
|
@@ -229,6 +274,10 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
229
274
|
val = _int2 + '.' + decimal.slice(0, Number(maxFractionDigits));
|
|
230
275
|
}
|
|
231
276
|
}
|
|
277
|
+
if (typeof val === 'string' || typeof val === 'number' || typeof val === 'bigint') {
|
|
278
|
+
var res = clampValueInRange('' + val, min, max);
|
|
279
|
+
val = res.val;
|
|
280
|
+
}
|
|
232
281
|
if (val === '' || val == null) {
|
|
233
282
|
setValue(null);
|
|
234
283
|
} else {
|
|
@@ -241,7 +290,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
241
290
|
}
|
|
242
291
|
setValue("".concat(normalized).concat(hasDecimalPoint ? '.' : '').trim());
|
|
243
292
|
}
|
|
244
|
-
}, [value, maxFractionDigits, negative]);
|
|
293
|
+
}, [value, maxFractionDigits, min, max, negative]);
|
|
245
294
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
246
295
|
className: classes('wrapper', (0, _classnames.joinCls)(wrapperCls, invalid && classes('invalid'), success && classes('success'), disabled && classes('disabled'), readOnly && classes('readonly'), _value && classes('filled'))),
|
|
247
296
|
children: [label ? loading ? (0, _jsxRuntime.jsx)(_skeleton.Skeleton, {
|
|
@@ -320,4 +369,4 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
|
|
|
320
369
|
});
|
|
321
370
|
};
|
|
322
371
|
var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(InputAmount);
|
|
323
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfYmlnbnVtYmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE51bWJlckZvcm1hdCIsIl9za2VsZXRvbiIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiSW5wdXRBbW91bnQiLCJleHBvcnRzIiwicHJvcHMiLCJ2YWx1ZSIsIl9wcm9wcyR0eXBlIiwidHlwZSIsIm1heEZyYWN0aW9uRGlnaXRzIiwiY2hpbGRyZW4iLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImZvb3Rub3RlIiwiZm9vdG5vdGVDbHMiLCJjbGFzc05hbWUiLCJ3cmFwcGVyQ2xzIiwibGFiZWxDbHMiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwibWVzc2FnZUNscyIsImludmFsaWQiLCJuZWdhdGl2ZSIsInJlcXVpcmVkIiwibG9hZGluZyIsInN1Y2Nlc3MiLCJkaXNhYmxlZCIsInJlYWRPbmx5IiwibGFiZWwiLCJwcmVmaXgiLCJzdWZmaXgiLCJjdXJyZW5jeSIsIm1lc3NhZ2UiLCJvbkNoYW5nZSIsIm9uQmx1ciIsIm9uRm9jdXMiLCJyZXN0IiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsInVzZVJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ1c2VNZW1vIiwibnVtZXJpY0Zvcm1hdHRlciIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInNjcm9sbFRvRW5kIiwidXNlQ2FsbGJhY2siLCJzdGlja3kiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInBvc2l0aW9uIiwic2Nyb2xsTGVmdCIsInNob3VsZFRvRW5kIiwic3RhcnQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJoYW5kbGVDaGFuZ2UiLCJfYiIsIl9jIiwiX2QiLCJfZSIsIl9mIiwidGFyZ2V0IiwidHJ1bmNhdGVkRnJhY3Rpb24iLCJzcGxpdCIsImpvaW4iLCJoYXNEZWNpbWFsUG9pbnQiLCJlbmRzV2l0aCIsInNsaWNlIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsImlzTmFOIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIk51bWJlciIsInNlbGVjdGlvblN0YXJ0IiwiY3VycmVudFNsaWNlIiwiY2FyZXRSYXdMZW5ndGgiLCJmb3JtYXR0ZWROZXdWYWwiLCJ0YXJnZXRSYXdQb3MiLCJNYXRoIiwibWluIiwiY2FyZXRQb3MiLCJzZWVuIiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwiQmlnTnVtYmVyIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsInVzZUVmZmVjdCIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwibWF4IiwiYWJzIiwiemVybyIsIkJpZ0ludCIsIl9zcGxpdCIsIl9zcGxpdDIiLCJzdHJWYWwiLCJfanN4cyIsImpvaW5DbHMiLCJfanN4IiwiU2tlbGV0b24iLCJ3aWR0aCIsImhlaWdodCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJTcGlubmVyIiwic3Ryb2tlV2lkdGgiLCJzdG9wUHJvcGFnYXRpb24iLCJfZGVmYXVsdCIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFDLHVCQUFBLENBQUFSLE9BQUE7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U0FBVEEsT0FBT0EsQ0FBRXhMLENBQUM7VUFBQSxPQUFJQSxDQUFDLENBQUM4TCxlQUFlLENBQUEsQ0FBRTtRQUFBO1FBQUF4SixRQUFBLEVBRy9CLElBQUE0RCxtQ0FBZ0IsRUFBQyxFQUFFLElBQUloQixNQUFNLElBQUksSUFBSSxHQUFHLEVBQUUsR0FBR0EsTUFBTSxDQUFDLEVBQUU7VUFDcERpQixpQkFBaUIsRUFBRSxJQUFJO1VBQ3ZCQyxhQUFhLEVBQUVoRDtRRG5ESCxDQ29EYjtNQUFDLENBQUEsQ0FFQztJQUFBLENBQUEsQ0FDSCxFQUVKLENBQUNVLE9BQU8sSUFBSW5CLFFBQVEsS0FBSyxJQUFBc0ksZ0JBQUEsRUFBQSxLQUFBLEVBQUE7TUFBS3BJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxPQUFPLENBQUM7TUFBQTdCLFFBQUEsRUFBQSxDQUN0RHdCLE9BQU8sSUFBSSxJQUFBcUgsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLdEksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFNBQVMsRUFBRWpCLFVBQVUsQ0FBQztRQUFBWixRQUFBLEVBQUd3QjtNQUFPLENBQUEsQ0FBTyxFQUMxRW5CLFFBQVEsSUFBSSxJQUFBd0ksZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLdEksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFVBQVUsRUFBRXZCLFdBQVcsQ0FBQztRQUFBTixRQUFBLEVBQUdLO01BQVEsQ0FBQSxDQUFPO0lBQUEsQ0FBQSxDQUMzRTtFQUFBLENBQUEsQ0FFSjtBQUNSLENBQUM7QUFBQyxJQUFBb0osUUFBQSxHQUFBL0osT0FBQSwyQkFFYSxJQUFBZ0ssV0FBSSxFQUFDakssV0FBVyxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUNhbGxiYWNrLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IG51bWVyaWNGb3JtYXR0ZXIgfSBmcm9tICdyZWFjdC1udW1iZXItZm9ybWF0JztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAncHJpbWVyZWFjdC9za2VsZXRvbic7XG5pbXBvcnQgU3Bpbm5lciBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgTUlOX0lOUFVUX1dJRFRIID0gMzM7XG5jb25zdCBub3JtYWxpemVOdW1iZXJJbnB1dCA9ICh2YWwpID0+IHZhbFxuICAgIC5yZXBsYWNlKC9bXFx1MzAwMlxcdWZmMGVcXHVmZjYxXS9nLCAnLicpXG4gICAgLnJlcGxhY2UoL1tcXHVGRjBDXS9nLCAnLCcpO1xuZXhwb3J0IGNvbnN0IElucHV0QW1vdW50ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGUgPSAncHJpbWFyeScsIG1heEZyYWN0aW9uRGlnaXRzLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSAnMCcsIFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBzaXplID0gJ2xhcmdlJywgZm9vdG5vdGUsIGZvb3Rub3RlQ2xzLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBwcmVmaXhDbHMgPSAnaW5wdXQtYW1vdW50JywgbWVzc2FnZUNscywgaW52YWxpZCwgbmVnYXRpdmUsIHJlcXVpcmVkLCBsb2FkaW5nLCBzdWNjZXNzLCBkaXNhYmxlZCwgcmVhZE9ubHksIGxhYmVsLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIG1lc3NhZ2UsIG9uQ2hhbmdlLCBvbkJsdXIsIG9uRm9jdXMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJ2YWx1ZVwiLCBcInR5cGVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJzaXplXCIsIFwiZm9vdG5vdGVcIiwgXCJmb290bm90ZUNsc1wiLCBcImNsYXNzTmFtZVwiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJpbnZhbGlkXCIsIFwibmVnYXRpdmVcIiwgXCJyZXF1aXJlZFwiLCBcImxvYWRpbmdcIiwgXCJzdWNjZXNzXCIsIFwiZGlzYWJsZWRcIiwgXCJyZWFkT25seVwiLCBcImxhYmVsXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwiY3VycmVuY3lcIiwgXCJtZXNzYWdlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtwcmVmaXhDbHN9LSR7dHlwZX1gKTtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmYWtlRWxlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZWZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVuY3lSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGlucHV0Q2FyZXRQb3NpdGlvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IFtpc01heFdpZHRoLCBzZXRJc01heFdpZHRoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNGb2N1cywgc2V0SXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgIH0pO1xuICAgIH0sIFtfdmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoc3RpY2t5ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IGlucHV0LnZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlucHV0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZFRvRW5kID0gIXN0aWNreTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzaG91bGRUb0VuZCA/IGxlbiA6IGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RhcnQpO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gc2hvdWxkVG9FbmQgPyBpbnB1dC5zY3JvbGxXaWR0aCA6IHBvc2l0aW9uO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgbGV0IHZhbCA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICBsZXQgdHJ1bmNhdGVkRnJhY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNTdGFuZGFsb25lTWludXMgPSBuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHZhbCA9PT0gX3ZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSkge1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHtkZWNpbWFsLnNsaWNlKDAsIE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpfWA7XG4gICAgICAgICAgICAgICAgdHJ1bmNhdGVkRnJhY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IChfYSA9IGlucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDA7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U2xpY2UgPSAoX2MgPSAoX2IgPSBlLnRhcmdldC52YWx1ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnNsaWNlKDAsIHNlbGVjdGlvblN0YXJ0KSkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogJyc7XG4gICAgICAgICAgICBjb25zdCBjYXJldFJhd0xlbmd0aCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KGN1cnJlbnRTbGljZSkuc3BsaXQoJywnKS5qb2luKCcnKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRSYXdQb3MgPSBNYXRoLm1pbihjYXJldFJhd0xlbmd0aCwgdmFsLmxlbmd0aCk7XG4gICAgICAgICAgICBsZXQgY2FyZXRQb3MgPSBmb3JtYXR0ZWROZXdWYWwubGVuZ3RoO1xuICAgICAgICAgICAgbGV0IHNlZW4gPSAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWROZXdWYWwubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0dGVkTmV3VmFsW2ldID09PSAnLCcpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHNlZW4gKz0gMTtcbiAgICAgICAgICAgICAgICBpZiAoc2VlbiA9PT0gdGFyZ2V0UmF3UG9zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gaSArIDE7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0YXJnZXRSYXdQb3MgPT09IDApXG4gICAgICAgICAgICAgICAgY2FyZXRQb3MgPSAwO1xuICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludCAmJiAhdHJ1bmNhdGVkRnJhY3Rpb24gJiYgdGFyZ2V0UmF3UG9zID09PSB2YWwubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY2FyZXRQb3MgPSBNYXRoLm1pbihmb3JtYXR0ZWROZXdWYWwubGVuZ3RoICsgMSwgY2FyZXRQb3MgKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gdHJ1bmNhdGVkRnJhY3Rpb25cbiAgICAgICAgICAgICAgICA/IGZvcm1hdHRlZE5ld1ZhbC5sZW5ndGhcbiAgICAgICAgICAgICAgICA6IGNhcmV0UG9zO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNTdGFuZGFsb25lTWludXMpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSgnLScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2YgPSAoX2UgPSAoX2QgPSB2YWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kWzFdKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgIH0sIFtvbkNoYW5nZSwgX3ZhbHVlLCB2YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaztcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSAoX2IgPSAoX2EgPSBjb250YWluZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNSU5fSU5QVVRfV0lEVEg7XG4gICAgICAgIGNvbnN0IHByZWZpeFdpZHRoID0gKF9kID0gKF9jID0gcHJlZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMDtcbiAgICAgICAgY29uc3Qgc3VmZml4V2lkdGggPSAoX2YgPSAoX2UgPSBzdWZmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwO1xuICAgICAgICBjb25zdCBjdXJyZW5jeVdpZHRoID0gKF9oID0gKF9nID0gY3VycmVuY3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfaCAhPT0gdm9pZCAwID8gX2ggOiAwO1xuICAgICAgICBjb25zdCBmYWtlV2lkdGggPSAoX2sgPSAoX2ogPSBmYWtlRWxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9qID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfai5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogMDtcbiAgICAgICAgY29uc3QgZ2FwV2lkdGggPSBwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICA/IDI0XG4gICAgICAgICAgICA6IChwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCkgfHwgKHByZWZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpIHx8IChzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKVxuICAgICAgICAgICAgICAgID8gMTZcbiAgICAgICAgICAgICAgICA6IHByZWZpeFdpZHRoIHx8IHN1ZmZpeFdpZHRoIHx8IGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgPyA4XG4gICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBjb250YWluZXJXaWR0aCAtIHByZWZpeFdpZHRoIC0gc3VmZml4V2lkdGggLSBjdXJyZW5jeVdpZHRoIC0gZ2FwV2lkdGg7XG4gICAgICAgIGNvbnN0IGlzTWF4ID0gZmFrZVdpZHRoID49IG1heFdpZHRoO1xuICAgICAgICBzZXRXaWR0aChNYXRoLm1pbihtYXhXaWR0aCwgTWF0aC5tYXgoZmFrZVdpZHRoLCBNSU5fSU5QVVRfV0lEVEgpKSk7XG4gICAgICAgIHNldElzTWF4V2lkdGgoaXNNYXgpO1xuICAgICAgICBpZiAoaXNGb2N1cylcbiAgICAgICAgICAgIHNjcm9sbFRvRW5kKHRydWUpO1xuICAgIH0sIFtfdmFsdWUsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgaXNGb2N1c10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIGNsZWFyIG5lZ2F0aXZlIHNpZ24gaWYgbm90IGFsbG93ZWRcbiAgICAgICAgaWYgKG5lZ2F0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKF92YWx1ZSA9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09PSAnLScpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChfdmFsdWUuc3RhcnRzV2l0aCgnLScpKVxuICAgICAgICAgICAgc2V0VmFsdWUoX3ZhbHVlLnNsaWNlKDEpKTtcbiAgICB9LCBbbmVnYXRpdmUsIHZhbHVlLCBfdmFsdWVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgbGV0IHZhbCA9IHZhbHVlO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICAgICAgICAgIGhhc0RlY2ltYWxQb2ludCA9ICEhdmFsICYmIHZhbC5lbmRzV2l0aCgnLicpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgICAgICAgICAgaWYgKCFuZWdhdGl2ZSlcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnJlcGxhY2UoLy0vZywgJycpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwgPT09ICctJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSgnLScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc05hTigrdmFsKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsICE9PSAnYmlnaW50JylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gTWF0aC5hYnModmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgemVybyA9IEJpZ0ludCgwKTtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwgPCB6ZXJvID8gLXZhbCA6IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSAmJiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSAoJycgKyB2YWwpLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSkge1xuICAgICAgICAgICAgICAgIHZhbCA9IGludCArICcuJyArIGRlY2ltYWwuc2xpY2UoMCwgTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY29uc3Qgc3RyVmFsID0gJycgKyB2YWw7XG4gICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfYyA9IChfYiA9IChfYSA9IHN0clZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMV0pID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5sZW5ndGgpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcihzdHJWYWwpO1xuICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiBzdHJWYWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG5lZ2F0aXZlXSk7XG4gICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgam9pbkNscyh3cmFwcGVyQ2xzLCBpbnZhbGlkICYmIGNsYXNzZXMoJ2ludmFsaWQnKSwgc3VjY2VzcyAmJiBjbGFzc2VzKCdzdWNjZXNzJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2Rpc2FibGVkJyksIHJlYWRPbmx5ICYmIGNsYXNzZXMoJ3JlYWRvbmx5JyksIF92YWx1ZSAmJiBjbGFzc2VzKCdmaWxsZWQnKSkpLCBjaGlsZHJlbjogW2xhYmVsXG4gICAgICAgICAgICAgICAgPyBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgID8gX2pzeChTa2VsZXRvbiwgeyB3aWR0aDogJzcycHgnLCBoZWlnaHQ6ICcxOHB4JywgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1sb2FkaW5nJykgfSlcbiAgICAgICAgICAgICAgICAgICAgOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnLCBqb2luQ2xzKHJlcXVpcmVkICYmIGNsYXNzZXMoJ2xhYmVsLXJlcXVpcmVkJyksIGxhYmVsQ2xzKSksIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgICAgICAgICAgIDogbnVsbCwgX2pzeHMoXCJkaXZcIiwgeyByZWY6IGNvbnRhaW5lclJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjbGFzc05hbWUsIGlzRm9jdXMgJiYgY2xhc3NlcygnZm9jdXMnKSkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXhXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IHByZWZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVhZE9ubHk6IHJlYWRPbmx5LCBkaXNhYmxlZDogZGlzYWJsZWQsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIGxvYWRpbmcgPyBfanN4KFNwaW5uZXIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgtbG9hZGluZycpLCBzdHJva2VXaWR0aDogJzQnIH0pIDogc3VmZml4ID8gX2pzeChcInNwYW5cIiwgeyByZWY6IHN1ZmZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnKSwgY2hpbGRyZW46IHN1ZmZpeCB9KSA6IG51bGwsIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBmYWtlRWxlUmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zha2UnKSwgb25DbGljazogZSA9PiBlLnN0b3BQcm9wYWdhdGlvbigpLCBjaGlsZHJlbjogbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSldIH0pLCAobWVzc2FnZSB8fCBmb290bm90ZSkgJiYgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2V4dHJhJyksIGNoaWxkcmVuOiBbbWVzc2FnZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdtZXNzYWdlJywgbWVzc2FnZUNscyksIGNoaWxkcmVuOiBtZXNzYWdlIH0pLCBmb290bm90ZSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdmb290bm90ZScsIGZvb3Rub3RlQ2xzKSwgY2hpbGRyZW46IGZvb3Rub3RlIH0pXSB9KV0gfSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhJbnB1dEFtb3VudCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
372
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfYmlnbnVtYmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE51bWJlckZvcm1hdCIsIl9za2VsZXRvbiIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2xhbXBWYWx1ZUluUmFuZ2UiLCJtaW4iLCJtYXgiLCJpc05hTiIsImNsYW1wZWQiLCJjbGFtcGVkVmFsIiwiYm5WYWwiLCJCaWdOdW1iZXIiLCJtaW5CbiIsImx0IiwibWF4Qm4iLCJndCIsIklucHV0QW1vdW50IiwiZXhwb3J0cyIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiaW5wdXRSZWYiLCJ1c2VSZWYiLCJmYWtlRWxlUmVmIiwicHJlZml4UmVmIiwic3VmZml4UmVmIiwiY3VycmVuY3lSZWYiLCJjb250YWluZXJSZWYiLCJpbnB1dENhcmV0UG9zaXRpb25SZWYiLCJwcmV2VmFsdWVSZWYiLCJwcmV2Rm9jdXNSZWYiLCJwZW5kaW5nQ2FyZXRTeW5jUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInVzZU1lbW8iLCJudW1lcmljRm9ybWF0dGVyIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJhbGxvd05lZ2F0aXZlIiwic2Nyb2xsVG9FbmQiLCJ1c2VDYWxsYmFjayIsInN0aWNreSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9hIiwiaW5wdXQiLCJjdXJyZW50IiwibGVuIiwicG9zaXRpb24iLCJzY3JvbGxMZWZ0Iiwic2hvdWxkVG9FbmQiLCJzdGFydCIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsV2lkdGgiLCJmb2N1cyIsImhhbmRsZUNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJ0YXJnZXQiLCJ0cnVuY2F0ZWRGcmFjdGlvbiIsInNwbGl0Iiwiam9pbiIsImhhc0RlY2ltYWxQb2ludCIsImVuZHNXaXRoIiwic2xpY2UiLCJpbmNsdWRlcyIsImlzU3RhbmRhbG9uZU1pbnVzIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIk51bWJlciIsImNsYW1wZWRCeVJhbmdlIiwicmVzIiwic2VsZWN0aW9uU3RhcnQiLCJjdXJyZW50U2xpY2UiLCJjYXJldFJhd0xlbmd0aCIsImZvcm1hdHRlZE5ld1ZhbCIsInRhcmdldFJhd1BvcyIsIk1hdGgiLCJjYXJldFBvcyIsInNlZW4iLCJkZWNpbWFscyIsIm1hdGNoIiwiYm4iLCJub3JtYWxpemVkIiwidG9GaXhlZCIsInRyaW0iLCJzdGFydHNXaXRoIiwiaXNaZXJvIiwidXNlRWZmZWN0IiwiX2ciLCJfaCIsIl9qIiwiX2siLCJjb250YWluZXJXaWR0aCIsIm9mZnNldFdpZHRoIiwicHJlZml4V2lkdGgiLCJzdWZmaXhXaWR0aCIsImN1cnJlbmN5V2lkdGgiLCJmYWtlV2lkdGgiLCJnYXBXaWR0aCIsIm1heFdpZHRoIiwiaXNNYXgiLCJhYnMiLCJ6ZXJvIiwiQmlnSW50IiwiX3NwbGl0IiwiX3NwbGl0MiIsInN0clZhbCIsIl9qc3hzIiwiam9pbkNscyIsIl9qc3giLCJTa2VsZXRvbiIsIndpZHRoIiwiaGVpZ2h0IiwicmVmIiwib25DbGljayIsIkhUTUxJbnB1dEVsZW1lbnQiLCJhc3NpZ24iLCJzdHlsZSIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsInN0b3BQcm9wYWdhdGlvbiIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksa0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUF3RSxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUYsd0JBQUFFLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QURMeEUsSUFBSVcsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRXBCLENBQUMsRUFBRTtFQUNsRCxJQUFJRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJa0IsQ0FBQyxJQUFJRCxDQUFDLEVBQUUsSUFBSVQsTUFBTSxDQUFDVyxTQUFTLENBQUNQLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSSxDQUFDLEVBQUVDLENBQUMsQ0FBQyxJQUFJckIsQ0FBQyxDQUFDdUIsT0FBTyxDQUFDRixDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FbEIsQ0FBQyxDQUFDa0IsQ0FBQyxDQUFDLEdBQUdELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDO0VBQ2YsSUFBSUQsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPVCxNQUFNLENBQUNhLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJUCxDQUFDLEdBQUcsQ0FBQyxFQUFFSSxDQUFDLEdBQUdWLE1BQU0sQ0FBQ2EscUJBQXFCLENBQUNKLENBQUMsQ0FBQyxFQUFFSCxDQUFDLEdBQUdJLENBQUMsQ0FBQ0ksTUFBTSxFQUFFUixDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJakIsQ0FBQyxDQUFDdUIsT0FBTyxDQUFDRixDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNXLFNBQVMsQ0FBQ0ksb0JBQW9CLENBQUNWLElBQUksQ0FBQ0ksQ0FBQyxFQUFFQyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEVBQzFFZCxDQUFDLENBQUNrQixDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUdHLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9kLENBQUM7QUFDWixDQUFDO0FDQUQsSUFBTXdCLGVBQWUsR0FBRyxFQUFFO0FBRTFCLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEdBQVc7RUFBQSxPQUN2Q0EsR0FBRyxDQUNBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQ3JDQSxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztBQUFBO0FBRTlCLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQ3JCRixHQUFXLEVBQ1hHLEdBQStCLEVBQy9CQyxHQUErQixFQUM3QjtFQUNGLElBQUlKLEdBQUcsS0FBSyxFQUFFLElBQUlBLEdBQUcsS0FBSyxHQUFHLElBQUlLLEtBQUssQ0FBQyxDQUFDTCxHQUFHLENBQUMsRUFBRSxPQUFPO0lBQUVBLEdBQUcsRUFBSEEsR0FBRztJQUFFTSxPQUFPLEVBQUU7RUFBSyxDQUFFO0VBRTVFLElBQUlDLFVBQVUsR0FBR1AsR0FBRztFQUNwQixJQUFJTSxPQUFPLEdBQUcsS0FBSztFQUNuQixJQUFNRSxLQUFLLEdBQUcsSUFBQUMscUJBQVMsRUFBQ1QsR0FBRyxDQUFDO0VBRTVCLElBQUksT0FBT0csR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQ3RELElBQU1PLEtBQUssR0FBRyxJQUFBRCxxQkFBUyxFQUFDTixHQUFHLENBQUM7SUFDNUIsSUFBSUssS0FBSyxDQUFDRyxFQUFFLENBQUNELEtBQUssQ0FBQyxFQUFFO01BQ25CSCxVQUFVLEdBQUcsRUFBRSxHQUFHSixHQUFHO01BQ3JCRyxPQUFPLEdBQUcsSUFBSTtJQUNoQjtFQUNGO0VBRUEsSUFBSSxPQUFPRixHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7SUFDdEQsSUFBTVEsS0FBSyxHQUFHLElBQUFILHFCQUFTLEVBQUNMLEdBQUcsQ0FBQztJQUM1QixJQUFJSSxLQUFLLENBQUNLLEVBQUUsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFDbkJMLFVBQVUsR0FBRyxFQUFFLEdBQUdILEdBQUc7TUFDckJFLE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0VBQ0Y7RUFFQSxPQUFPO0lBQUVOLEdBQUcsRUFBRU8sVUFBVTtJQUFFRCxPQUFPLEVBQVBBO0VBQU8sQ0FBRTtBQUNyQyxDQUFDO0FBRU0sSUFBTVEsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBNEMsU0FBdkRBLFdBQVdBLENBQTRDRSxLQUFLLEVBQUc7RUFDMUUsSUFDRUMsS0FBSyxHQWFIRCxLQUFLLENBYlBDLEtBQUs7SUFBQUMsV0FBQSxHQWFIRixLQUFLLENBWlBHLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxXQUFBLGNBQUcsU0FBUyxHQUFBQSxXQUFBO0lBQ2hCRSxpQkFBaUIsR0FXZkosS0FBSyxDQVhQSSxpQkFBaUI7SUFDakJDLFFBQVEsR0FVTkwsS0FBSyxDQVZQSyxRQUFRO0lBQUFDLGtCQUFBLEdBVU5OLEtBQUssQ0FUUE8sV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsR0FBRyxHQUFBQSxrQkFBQTtJQUNqQm5CLEdBQUcsR0FRRGEsS0FBSyxDQVJQYixHQUFHO0lBQUVDLEdBQUcsR0FRTlksS0FBSyxDQVJGWixHQUFHO0lBQUFvQixXQUFBLEdBUU5SLEtBQUssQ0FOUFMsSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxPQUFPLEdBQUFBLFdBQUE7SUFBRUUsUUFBUSxHQU10QlYsS0FBSyxDQU5TVSxRQUFRO0lBQUVDLFdBQVcsR0FNbkNYLEtBQUssQ0FObUJXLFdBQVc7SUFDckNDLFNBQVMsR0FLUFosS0FBSyxDQUxQWSxTQUFTO0lBQUVDLFVBQVUsR0FLbkJiLEtBQUssQ0FMSWEsVUFBVTtJQUFFQyxRQUFRLEdBSzdCZCxLQUFLLENBTGdCYyxRQUFRO0lBQUFDLGdCQUFBLEdBSzdCZixLQUFLLENBTDBCZ0IsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsY0FBYyxHQUFBQSxnQkFBQTtJQUFFRSxVQUFVLEdBS3JFakIsS0FBSyxDQUxzRGlCLFVBQVU7SUFDdkVDLE9BQU8sR0FJTGxCLEtBQUssQ0FKUGtCLE9BQU87SUFBRUMsUUFBUSxHQUlmbkIsS0FBSyxDQUpFbUIsUUFBUTtJQUFFQyxRQUFRLEdBSXpCcEIsS0FBSyxDQUpZb0IsUUFBUTtJQUFFQyxPQUFPLEdBSWxDckIsS0FBSyxDQUpzQnFCLE9BQU87SUFBRUMsT0FBTyxHQUkzQ3RCLEtBQUssQ0FKK0JzQixPQUFPO0lBQUVDLFFBQVEsR0FJckR2QixLQUFLLENBSndDdUIsUUFBUTtJQUFFQyxRQUFRLEdBSS9EeEIsS0FBSyxDQUprRHdCLFFBQVE7SUFDakVDLEtBQUssR0FHSHpCLEtBQUssQ0FIUHlCLEtBQUs7SUFBRUMsTUFBTSxHQUdYMUIsS0FBSyxDQUhBMEIsTUFBTTtJQUFFQyxNQUFNLEdBR25CM0IsS0FBSyxDQUhRMkIsTUFBTTtJQUFFQyxRQUFRLEdBRzdCNUIsS0FBSyxDQUhnQjRCLFFBQVE7SUFBRUMsT0FBTyxHQUd0QzdCLEtBQUssQ0FIMEI2QixPQUFPO0lBQ3hDQyxRQUFRLEdBRU45QixLQUFLLENBRlA4QixRQUFRO0lBQUVDLE9BQU0sR0FFZC9CLEtBQUssQ0FGRytCLE1BQU07SUFBRUMsUUFBTyxHQUV2QmhDLEtBQUssQ0FGV2dDLE9BQU87SUFDdEJDLElBQUksR0FBQTNELE1BQUEsQ0FDTDBCLEtBQUssRUFkSCxDQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsbUJBQUEsRUFBQSxVQUFBLEVBQUEsYUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxhQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxTQUFBLEVBQUEsVUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsT0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsQ0FjTCxDQUFRO0VBQ1QsSUFBTWtDLE9BQU8sR0FBRyxJQUFBQyxzQkFBVSxLQUFBQyxNQUFBLENBQUlwQixTQUFTLE9BQUFvQixNQUFBLENBQUlqQyxJQUFJLENBQUUsQ0FBQztFQUVsRCxJQUFNa0MsUUFBUSxHQUFHLElBQUFDLGFBQU0sRUFBbUIsSUFBSSxDQUFDO0VBQy9DLElBQU1DLFVBQVUsR0FBRyxJQUFBRCxhQUFNLEVBQWtCLElBQUksQ0FBQztFQUNoRCxJQUFNRSxTQUFTLEdBQUcsSUFBQUYsYUFBTSxFQUFrQixJQUFJLENBQUM7RUFDL0MsSUFBTUcsU0FBUyxHQUFHLElBQUFILGFBQU0sRUFBa0IsSUFBSSxDQUFDO0VBQy9DLElBQU1JLFdBQVcsR0FBRyxJQUFBSixhQUFNLEVBQWtCLElBQUksQ0FBQztFQUNqRCxJQUFNSyxZQUFZLEdBQUcsSUFBQUwsYUFBTSxFQUFpQixJQUFJLENBQUM7RUFDakQsSUFBTU0scUJBQXFCLEdBQUcsSUFBQU4sYUFBTSxFQUFTLENBQUMsQ0FBQztFQUMvQyxJQUFNTyxZQUFZLEdBQUcsSUFBQVAsYUFBTSxFQUFnQixJQUFJLENBQUM7RUFDaEQsSUFBTVEsWUFBWSxHQUFHLElBQUFSLGFBQU0sRUFBVSxLQUFLLENBQUM7RUFDM0MsSUFBTVMsbUJBQW1CLEdBQUcsSUFBQVQsYUFBTSxFQUFVLEtBQUssQ0FBQztFQUVsRCxJQUFBVSxTQUFBLEdBQTJCLElBQUFDLGVBQVEsRUFBZ0IsSUFBSSxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQWpESSxNQUFNLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBQ3ZCLElBQUFJLFVBQUEsR0FBMkIsSUFBQUwsZUFBUSxFQUFTbkUsZUFBZSxDQUFDO0lBQUF5RSxVQUFBLE9BQUFKLGVBQUEsYUFBQUcsVUFBQTtJQUFyREUsTUFBTSxHQUFBRCxVQUFBO0lBQUVFLFFBQVEsR0FBQUYsVUFBQTtFQUN2QixJQUFBRyxVQUFBLEdBQW9DLElBQUFULGVBQVEsRUFBVSxLQUFLLENBQUM7SUFBQVUsVUFBQSxPQUFBUixlQUFBLGFBQUFPLFVBQUE7SUFBckRFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUE4QixJQUFBYixlQUFRLEVBQVUsS0FBSyxDQUFDO0lBQUFjLFVBQUEsT0FBQVosZUFBQSxhQUFBVyxVQUFBO0lBQS9DRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBRTFCLElBQU1HLGNBQWMsR0FBRyxJQUFBQyxjQUFPLEVBQUMsWUFBSztJQUNsQyxPQUFPLElBQUFDLG1DQUFnQixFQUFDLEVBQUUsSUFBSWhCLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHQSxNQUFNLENBQUMsRUFBRTtNQUMzRGlCLGlCQUFpQixFQUFFLElBQUk7TUFDdkJDLGFBQWEsRUFBRW5EO0lEakJiLENDa0JILENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQ2lDLE1BQU0sRUFBRWpDLFFBQVEsQ0FBQyxDQUFDO0VBRXRCLElBQU1vRCxXQUFXLEdBQUcsSUFBQUMsa0JBQVcsRUFBQyxZQUE0QjtJQUFBLElBQTNCQyxNQUFBLEdBQUFDLFNBQUEsQ0FBQTlGLE1BQUEsUUFBQThGLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQWtCLEtBQUs7SURsQmxELElBQUlFLEVBQUU7SUNtQlYsSUFBTUMsS0FBSyxHQUFHeEMsUUFBUSxDQUFDeUMsT0FBTztJQUM5QixJQUFJLENBQUNELEtBQUssRUFBRTtJQUNaLElBQU1FLEdBQUcsR0FBRyxDQUFBSCxFQUFBLEdBQUFDLEtBQUssQ0FBQzVFLEtBQUssTUFBQSxJQUFBLElBQUEyRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRWhHLE1BQU07SUFDL0IsSUFBTW9HLFFBQVEsR0FBR0gsS0FBSyxDQUFDSSxVQUFVO0lBQ2pDLElBQU1DLFdBQVcsR0FBRyxDQUFDVCxNQUFNO0lBQzNCLElBQU1VLEtBQUssR0FBR0QsV0FBVyxHQUFHSCxHQUFHLEdBQUduQyxxQkFBcUIsQ0FBQ2tDLE9BQU87SUFDL0RELEtBQUssQ0FBQ08saUJBQWlCLENBQUNELEtBQUssRUFBRUEsS0FBSyxDQUFDO0lBQ3JDTixLQUFLLENBQUNJLFVBQVUsR0FBR0MsV0FBVyxHQUFHTCxLQUFLLENBQUNRLFdBQVcsR0FBR0wsUUFBUTtJQUM3REgsS0FBSyxDQUFDUyxLQUFLLENBQUEsQ0FBRTtFQUNmLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNQyxZQUFZLEdBQUcsSUFBQWYsa0JBQVcsRUFBQyxVQUFDckgsQ0FBZ0MsRUFBSTtJRGpCaEUsSUFBSXlILEVBQUUsRUFBRVksRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFO0lDa0I5QixJQUFJckUsUUFBUSxJQUFJQyxRQUFRLEVBQUU7SUFDMUIsSUFBSXhDLEdBQUcsR0FBRzdCLENBQUMsQ0FBQzBJLE1BQU0sQ0FBQzVGLEtBQUs7SUFDeEIsSUFBSTZGLGlCQUFpQixHQUFHLEtBQUs7SUFDN0IsSUFBSTlHLEdBQUcsSUFBSSxJQUFJLEVBQUVBLEdBQUcsR0FBR0Qsb0JBQW9CLENBQUNDLEdBQUcsQ0FBQyxDQUFDK0csS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BFLElBQU1DLGVBQWUsR0FBRyxDQUFDLENBQUNqSCxHQUFHLElBQUlBLEdBQUcsQ0FBQ2tILFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDbEQsSUFBSUQsZUFBZSxFQUFFakgsR0FBRyxHQUFHQSxHQUFHLENBQUNtSCxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQ2hGLFFBQVEsS0FBSW5DLEdBQUcsS0FBQSxJQUFBLElBQUhBLEdBQUcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBSEEsR0FBRyxDQUFFb0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBLEVBQUU7SUFDckMsSUFBTUMsaUJBQWlCLEdBQUdsRixRQUFRLElBQUluQyxHQUFHLEtBQUssR0FBRztJQUNqRCxJQUFJLENBQUNxSCxpQkFBaUIsSUFBSWhILEtBQUssQ0FBQyxDQUFDTCxHQUFHLENBQUMsRUFBRTtJQUN2QyxJQUFJQSxHQUFHLEtBQUtvRSxNQUFNLElBQUksQ0FBQzZDLGVBQWUsRUFBRTtJQUN4QyxJQUFJLE9BQU83RixpQkFBaUIsS0FBSyxRQUFRLElBQUksT0FBT0EsaUJBQWlCLEtBQUssUUFBUSxFQUFFO01BQ2xGLElBQUFrRyxVQUFBLEdBQXVCdEgsR0FBRyxDQUFDK0csS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUFBUSxXQUFBLE9BQUFwRCxlQUFBLGFBQUFtRCxVQUFBO1FBQTlCRSxJQUFHLEdBQUFELFdBQUE7UUFBRUUsT0FBTyxHQUFBRixXQUFBO01BQ25CLElBQUlFLE9BQU8sSUFBSSxJQUFJLElBQUlBLE9BQU8sQ0FBQzdILE1BQU0sR0FBRzhILE1BQU0sQ0FBQ3RHLGlCQUFpQixDQUFDLEVBQUU7UUFDakVwQixHQUFHLE1BQUFvRCxNQUFBLENBQU1vRSxJQUFHLE9BQUFwRSxNQUFBLENBQUlxRSxPQUFPLENBQUNOLEtBQUssQ0FBQyxDQUFDLEVBQUVPLE1BQU0sQ0FBQ3RHLGlCQUFpQixDQUFDLENBQUMsQ0FBRTtRQUM3RDBGLGlCQUFpQixHQUFHLElBQUk7TUFDMUI7SUFDRjtJQUVBLElBQUlhLGNBQWMsR0FBRyxLQUFLO0lBQzFCLElBQUssT0FBT3hILEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBTSxPQUFPQyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFTLEVBQUU7TUFDaEgsSUFBTXdILEdBQUcsR0FBRzFILGlCQUFpQixDQUFDRixHQUFHLEVBQUVHLEdBQUcsRUFBRUMsR0FBRyxDQUFDO01BQzVDSixHQUFHLEdBQUc0SCxHQUFHLENBQUM1SCxHQUFHO01BQ2IySCxjQUFjLEdBQUdDLEdBQUcsQ0FBQ3RILE9BQU87SUFDOUI7SUFFQSxJQUFJK0MsUUFBUSxDQUFDeUMsT0FBTyxFQUFFO01BQ3BCLElBQU0rQixjQUFjLEdBQUcsQ0FBQWpDLEVBQUEsR0FBQXZDLFFBQVEsQ0FBQ3lDLE9BQU8sQ0FBQytCLGNBQWMsTUFBQSxJQUFBLElBQUFqQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO01BQzNELElBQU1rQyxZQUFZLEdBQUcsQ0FBQXJCLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUFySSxDQUFDLENBQUMwSSxNQUFNLENBQUM1RixLQUFLLE1BQUEsSUFBQSxJQUFBdUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVXLEtBQUssQ0FBQyxDQUFDLEVBQUVVLGNBQWMsQ0FBQyxNQUFBLElBQUEsSUFBQXBCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEVBQUU7TUFDbkUsSUFBTXNCLGNBQWMsR0FBR2hJLG9CQUFvQixDQUFDK0gsWUFBWSxDQUFDLENBQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDcEgsTUFBTTtNQUVwRixJQUFNb0ksZUFBZSxHQUFHLElBQUE1QyxtQ0FBZ0IsRUFBQ3BGLEdBQUcsRUFBRTtRQUM1Q3FGLGlCQUFpQixFQUFFLElBQUk7UUFDdkJDLGFBQWEsRUFBRW5EO01EYlgsQ0NjTCxDQUFDO01BRUYsSUFBTThGLFlBQVksR0FBR0MsSUFBSSxDQUFDL0gsR0FBRyxDQUFDNEgsY0FBYyxFQUFFL0gsR0FBRyxDQUFDSixNQUFNLENBQUM7TUFDekQsSUFBSXVJLFFBQVEsR0FBR0gsZUFBZSxDQUFDcEksTUFBTTtNQUNyQyxJQUFJd0ksSUFBSSxHQUFHLENBQUM7TUFDWixLQUFLLElBQUloSixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUc0SSxlQUFlLENBQUNwSSxNQUFNLEVBQUVSLENBQUMsRUFBRSxFQUFFO1FBQy9DLElBQUk0SSxlQUFlLENBQUM1SSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDaENnSixJQUFJLElBQUksQ0FBQztRQUNULElBQUlBLElBQUksS0FBS0gsWUFBWSxFQUFFO1VBQ3pCRSxRQUFRLEdBQUcvSSxDQUFDLEdBQUcsQ0FBQztVQUNoQjtRQUNGO01BQ0Y7TUFDQSxJQUFJNkksWUFBWSxLQUFLLENBQUMsRUFBRUUsUUFBUSxHQUFHLENBQUM7TUFFcEMsSUFBSWxCLGVBQWUsSUFBSSxDQUFDSCxpQkFBaUIsSUFBSW1CLFlBQVksS0FBS2pJLEdBQUcsQ0FBQ0osTUFBTSxFQUFFO1FBQ3hFdUksUUFBUSxHQUFHRCxJQUFJLENBQUMvSCxHQUFHLENBQUM2SCxlQUFlLENBQUNwSSxNQUFNLEdBQUcsQ0FBQyxFQUFFdUksUUFBUSxHQUFHLENBQUMsQ0FBQztNQUMvRDtNQUVBdkUscUJBQXFCLENBQUNrQyxPQUFPLEdBQUdnQixpQkFBaUIsR0FDN0NrQixlQUFlLENBQUNwSSxNQUFNLEdBQ3RCK0gsY0FBYyxHQUNaSyxlQUFlLENBQUNwSSxNQUFNLEdBQ3RCdUksUUFBUTtNQUNkcEUsbUJBQW1CLENBQUMrQixPQUFPLEdBQUcsSUFBSTtJQUNwQztJQUVBLElBQUksT0FBTzdFLEtBQUssS0FBSyxXQUFXLEVBQUU7TUFDaEMsSUFBSWpCLEdBQUcsS0FBSyxFQUFFLEVBQUU7UUFDZHFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7TUFDaEIsQ0FBQyxNQUFNLElBQUlnRCxpQkFBaUIsRUFBRTtRQUM1QmhELFFBQVEsQ0FBQyxHQUFHLENBQUM7TUFDZixDQUFDLE1BQU07UUFDTCxJQUFNZ0UsUUFBUSxHQUFHLENBQUF6QixFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBLENBQUFELEVBQUEsR0FBQTFHLEdBQUcsQ0FBQ3NJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBQSxJQUFBLElBQUE1QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRyxDQUFDLENBQUMsTUFBQSxJQUFBLElBQUFDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFL0csTUFBTSxNQUFBLElBQUEsSUFBQWdILEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7UUFDeEQsSUFBTTJCLEVBQUUsR0FBRyxJQUFBOUgscUJBQVMsRUFBQ1QsR0FBRyxDQUFDO1FBQ3pCLElBQUl3SSxVQUFVLEdBQUdELEVBQUUsQ0FBQ0UsT0FBTyxDQUFDSixRQUFRLENBQUM7UUFDckMsSUFBSWxHLFFBQVEsSUFBSW5DLEdBQUcsQ0FBQzBJLElBQUksQ0FBQSxDQUFFLENBQUNDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSUosRUFBRSxDQUFDSyxNQUFNLENBQUEsQ0FBRSxFQUFFO1VBQ3pESixVQUFVLEdBQUdBLFVBQVUsQ0FBQ0csVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHSCxVQUFVLE9BQUFwRixNQUFBLENBQU9vRixVQUFVLENBQUU7UUFDekU7UUFDQW5FLFFBQVEsQ0FBQyxHQUFBakIsTUFBQSxDQUFHb0YsVUFBVSxFQUFBcEYsTUFBQSxDQUFHNkQsZUFBZSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUd5QixJQUFJLENBQUEsQ0FBRSxDQUFDO01BQy9EO0lBQ0Y7SUFFQTVGLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUFHM0UsQ0FBQyxDQUFDO0VBQ2YsQ0FBQyxFQUFFLENBQUMyRSxRQUFRLEVBQUVzQixNQUFNLEVBQUVuRCxLQUFLLEVBQUVpRSxjQUFjLEVBQUU5RCxpQkFBaUIsRUFBRWpCLEdBQUcsRUFBRUMsR0FBRyxFQUFFK0IsUUFBUSxFQUFFSSxRQUFRLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0VBRXhHLElBQUFxRyxnQkFBUyxFQUFDLFlBQUs7SURmVCxJQUFJakQsRUFBRSxFQUFFWSxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRWtDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUU7SUNnQjlDLElBQU1DLGNBQWMsR0FBRyxDQUFBMUMsRUFBQSxHQUFBLENBQUFaLEVBQUEsR0FBQWpDLFlBQVksQ0FBQ21DLE9BQU8sTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFdUQsV0FBVyxNQUFBLElBQUEsSUFBQTNDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJMUcsZUFBZTtJQUMzRSxJQUFNc0osV0FBVyxHQUFHLENBQUExQyxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBakQsU0FBUyxDQUFDc0MsT0FBTyxNQUFBLElBQUEsSUFBQVcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUUwQyxXQUFXLE1BQUEsSUFBQSxJQUFBekMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztJQUN2RCxJQUFNMkMsV0FBVyxHQUFHLENBQUF6QyxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBbEQsU0FBUyxDQUFDcUMsT0FBTyxNQUFBLElBQUEsSUFBQWEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV3QyxXQUFXLE1BQUEsSUFBQSxJQUFBdkMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztJQUN2RCxJQUFNMEMsYUFBYSxHQUFHLENBQUFQLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUFwRixXQUFXLENBQUNvQyxPQUFPLE1BQUEsSUFBQSxJQUFBZ0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVLLFdBQVcsTUFBQSxJQUFBLElBQUFKLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7SUFDM0QsSUFBTVEsU0FBUyxHQUFHLENBQUFOLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUF6RixVQUFVLENBQUN1QyxPQUFPLE1BQUEsSUFBQSxJQUFBa0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVHLFdBQVcsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7SUFDdEQsSUFBTU8sUUFBUSxHQUFHSixXQUFXLElBQUlDLFdBQVcsSUFBSUMsYUFBYSxHQUN4RCxFQUFFLEdBQ0RGLFdBQVcsSUFBSUMsV0FBVyxJQUFNRCxXQUFXLElBQUlFLGFBQWMsSUFBS0QsV0FBVyxJQUFJQyxhQUFjLEdBQzlGLEVBQUUsR0FDRkYsV0FBVyxJQUFJQyxXQUFXLElBQUlDLGFBQWEsR0FDekMsQ0FBQyxHQUNELENBQUM7SUFFVCxJQUFNRyxRQUFRLEdBQUdQLGNBQWMsR0FBR0UsV0FBVyxHQUFHQyxXQUFXLEdBQUdDLGFBQWEsR0FBR0UsUUFBUTtJQUN0RixJQUFNRSxLQUFLLEdBQUdILFNBQVMsSUFBSUUsUUFBUTtJQUNuQ2hGLFFBQVEsQ0FBQ3lELElBQUksQ0FBQy9ILEdBQUcsQ0FBQ3NKLFFBQVEsRUFBRXZCLElBQUksQ0FBQzlILEdBQUcsQ0FBQ21KLFNBQVMsRUFBRXpKLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDbEUrRSxhQUFhLENBQUM2RSxLQUFLLENBQUM7SUFFcEIsSUFDRTFFLE9BQU8sS0FDTlosTUFBTSxLQUFLUCxZQUFZLENBQUNpQyxPQUFPLElBQUksQ0FBQ2hDLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQyxJQUMxRC9CLG1CQUFtQixDQUFDK0IsT0FBTyxFQUMzQjtNQUNBUCxXQUFXLENBQUMsSUFBSSxDQUFDO01BQ2pCeEIsbUJBQW1CLENBQUMrQixPQUFPLEdBQUcsS0FBSztJQUNyQztJQUNBakMsWUFBWSxDQUFDaUMsT0FBTyxHQUFHMUIsTUFBTTtJQUM3Qk4sWUFBWSxDQUFDZ0MsT0FBTyxHQUFHZCxPQUFPO0VBQ2hDLENBQUMsRUFBRSxDQUFDWixNQUFNLEVBQUUxQixNQUFNLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFb0MsT0FBTyxFQUFFTyxXQUFXLENBQUMsQ0FBQztFQUU1RCxJQUFBc0QsZ0JBQVMsRUFBQyxZQUFLO0lBQ2I7SUFDQSxJQUFJMUcsUUFBUSxFQUFFO0lBQ2QsSUFBSSxPQUFPbEIsS0FBSyxLQUFLLFdBQVcsRUFBRTtJQUNsQyxJQUFJbUQsTUFBTSxJQUFJLElBQUksRUFBRTtJQUNwQixJQUFJQSxNQUFNLEtBQUssR0FBRyxFQUFFO01BQ2xCQyxRQUFRLENBQUMsSUFBSSxDQUFDO01BQ2Q7SUFDRjtJQUNBLElBQUlELE1BQU0sQ0FBQ3VFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRXRFLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDK0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsRUFBRSxDQUFDaEYsUUFBUSxFQUFFbEIsS0FBSyxFQUFFbUQsTUFBTSxDQUFDLENBQUM7RUFFN0IsSUFBQXlFLGdCQUFTLEVBQUMsWUFBSztJRGhCVCxJQUFJakQsRUFBRSxFQUFFWSxFQUFFLEVBQUVDLEVBQUU7SUNpQmxCLElBQUl6RyxHQUFHLEdBQUdpQixLQUFLO0lBQ2YsSUFBSWdHLGVBQWUsR0FBRyxLQUFLO0lBQzNCLElBQUksT0FBT2pILEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFDM0IsSUFBSUEsR0FBRyxLQUFLLEVBQUUsRUFBRTtRQUNkQSxHQUFHLEdBQUcsSUFBSTtNQUNaLENBQUMsTUFBTTtRQUNMQSxHQUFHLEdBQUdELG9CQUFvQixDQUFDQyxHQUFHLENBQUMsQ0FBQytHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuREMsZUFBZSxHQUFHLENBQUMsQ0FBQ2pILEdBQUcsSUFBSUEsR0FBRyxDQUFDa0gsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUM1QyxJQUFJRCxlQUFlLEVBQUVqSCxHQUFHLEdBQUdBLEdBQUcsQ0FBQ21ILEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDaEYsUUFBUSxFQUFFbkMsR0FBRyxHQUFHQSxHQUFHLENBQUNDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUlrQyxRQUFRLElBQUluQyxHQUFHLEtBQUssR0FBRyxFQUFFO1VBQzNCcUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztVQUNiO1FBQ0Y7UUFDQSxJQUFJaEUsS0FBSyxDQUFDLENBQUNMLEdBQUcsQ0FBQyxFQUFFO01BQ25CO0lBQ0YsQ0FBQyxNQUFNLElBQUlBLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBRS9FLElBQUksQ0FBQ21DLFFBQVEsRUFBRTtNQUNiLElBQUksT0FBT25DLEdBQUcsS0FBSyxRQUFRLEVBQUU7UUFDM0JBLEdBQUcsR0FBR2tJLElBQUksQ0FBQ3lCLEdBQUcsQ0FBQzNKLEdBQUcsQ0FBQztNQUNyQixDQUFDLE1BQU0sSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ2xDLElBQU00SixJQUFJLEdBQUdDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEI3SixHQUFHLEdBQUdBLEdBQUcsR0FBRzRKLElBQUksR0FBRyxDQUFDNUosR0FBRyxHQUFHQSxHQUFHO01BQy9CO0lBQ0Y7SUFFQSxJQUFJLENBQUMsT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxNQUFNLE9BQU9vQixpQkFBaUIsS0FBSyxRQUFRLElBQUksT0FBT0EsaUJBQWlCLEtBQUssUUFBUSxDQUFDLEVBQUU7TUFDNUksSUFBQTBJLE1BQUEsR0FBdUIsQ0FBQyxFQUFFLEdBQUc5SixHQUFHLEVBQUUrRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQUFnRCxPQUFBLE9BQUE1RixlQUFBLGFBQUEyRixNQUFBO1FBQXJDdEMsS0FBRyxHQUFBdUMsT0FBQTtRQUFFdEMsT0FBTyxHQUFBc0MsT0FBQTtNQUNuQixJQUFJdEMsT0FBTyxJQUFJLElBQUksSUFBSUEsT0FBTyxDQUFDN0gsTUFBTSxHQUFHOEgsTUFBTSxDQUFDdEcsaUJBQWlCLENBQUMsRUFBRTtRQUNqRXBCLEdBQUcsR0FBR3dILEtBQUcsR0FBRyxHQUFHLEdBQUdDLE9BQU8sQ0FBQ04sS0FBSyxDQUFDLENBQUMsRUFBRU8sTUFBTSxDQUFDdEcsaUJBQWlCLENBQUMsQ0FBQztNQUMvRDtJQUNGO0lBRUEsSUFBSSxPQUFPcEIsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFDakYsSUFBTTRILEdBQUcsR0FBRzFILGlCQUFpQixDQUFDLEVBQUUsR0FBR0YsR0FBRyxFQUFFRyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztNQUNqREosR0FBRyxHQUFHNEgsR0FBRyxDQUFDNUgsR0FBRztJQUNmO0lBRUEsSUFBSUEsR0FBRyxLQUFLLEVBQUUsSUFBSUEsR0FBRyxJQUFJLElBQUksRUFBRTtNQUM3QnFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxNQUFNO01BQ0wsSUFBTTJGLE1BQU0sR0FBRyxFQUFFLEdBQUdoSyxHQUFHO01BQ3ZCLElBQU1xSSxRQUFRLEdBQUcsQ0FBQTVCLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUEsQ0FBQVosRUFBQSxHQUFBb0UsTUFBTSxDQUFDMUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFBLElBQUEsSUFBQTFDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFHLENBQUMsQ0FBQyxNQUFBLElBQUEsSUFBQVksRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUU1RyxNQUFNLE1BQUEsSUFBQSxJQUFBNkcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztNQUMzRCxJQUFNOEIsRUFBRSxHQUFHLElBQUE5SCxxQkFBUyxFQUFDdUosTUFBTSxDQUFDO01BQzVCLElBQUl4QixVQUFVLEdBQUdELEVBQUUsQ0FBQ0UsT0FBTyxDQUFDSixRQUFRLENBQUM7TUFDckMsSUFBSWxHLFFBQVEsSUFBSTZILE1BQU0sQ0FBQ3RCLElBQUksQ0FBQSxDQUFFLENBQUNDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSUosRUFBRSxDQUFDSyxNQUFNLENBQUEsQ0FBRSxFQUFFO1FBQzVESixVQUFVLEdBQUdBLFVBQVUsQ0FBQ0csVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHSCxVQUFVLE9BQUFwRixNQUFBLENBQU9vRixVQUFVLENBQUU7TUFDekU7TUFDQW5FLFFBQVEsQ0FBQyxHQUFBakIsTUFBQSxDQUFHb0YsVUFBVSxFQUFBcEYsTUFBQSxDQUFHNkQsZUFBZSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUd5QixJQUFJLENBQUEsQ0FBRSxDQUFDO0lBQy9EO0VBQ0YsQ0FBQyxFQUFFLENBQUN6SCxLQUFLLEVBQUVHLGlCQUFpQixFQUFFakIsR0FBRyxFQUFFQyxHQUFHLEVBQUUrQixRQUFRLENBQUMsQ0FBQztFQUVsRCxPQUFPLElBQUE4SCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtJQUNMckksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFBZ0gsbUJBQU8sRUFDbkNySSxVQUFVLEVBQ1ZLLE9BQU8sSUFBSWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0JaLE9BQU8sSUFBSVksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM3QlgsUUFBUSxJQUFJVyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQy9CVixRQUFRLElBQUlVLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFDL0JrQixNQUFNLElBQUlsQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQzVCLENBQUM7SUFBQTdCLFFBQUEsRUFBQSxDQUdBb0IsS0FBSyxHQUNESixPQUFPLEdBQ0wsSUFBQThILGVBQUEsRUFBQ0Msa0JBQVEsRUFBQTtNQUFDQyxLQUFLLEVBQUMsTUFBTTtNQUFDQyxNQUFNLEVBQUMsTUFBTTtNQUFDMUksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLGVBQWU7SUFBQyxDQUFBLENBQUksR0FDNUUsSUFBQWlILGVBQUEsRUFBQSxNQUFBLEVBQUE7TUFBTXZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBQWdILG1CQUFPLEVBQUM5SCxRQUFRLElBQUljLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFcEIsUUFBUSxDQUFDLENBQUM7TUFBQVQsUUFBQSxFQUFHb0I7SUFBSyxDQUFBLENBQVEsR0FDN0csSUFBSSxFQUVWLElBQUF3SCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtNQUNFTSxHQUFHLEVBQUU1RyxZQUFZO01BQ2pCL0IsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUFnSCxtQkFBTyxFQUFDdEksU0FBUyxFQUFFb0QsT0FBTyxJQUFJOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDM0VzSCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBR3JNLENBQUMsRUFBSTtRRDVCRCxJQUFJeUgsRUFBRTtRQzZCbEIsSUFBSXpILENBQUMsQ0FBQzBJLE1BQU0sWUFBWTRELGdCQUFnQixFQUFFO1FBQzFDLENBQUE3RSxFQUFBLEdBQUF2QyxRQUFRLENBQUN5QyxPQUFPLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRVUsS0FBSyxDQUFBLENBQUU7UUFDekIsSUFBSTFCLFVBQVUsRUFBRVcsV0FBVyxDQUFBLENBQUU7TUFDL0IsQ0FBQztNQUFBbEUsUUFBQSxFQUFBLENBR0NxQixNQUFNLElBQUksSUFBQXlILGVBQUEsRUFBQSxNQUFBLEVBQUE7UUFDUkksR0FBRyxFQUFFL0csU0FBUztRQUNkNUIsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFBN0IsUUFBQSxFQUUzQnFCO01BQU0sQ0FBQSxDQUNGLEVBRVQsSUFBQXlILGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFDRXZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxTQUFTLEVBQUcsQ0FBQzhCLE9BQU8sSUFBSUosVUFBVSxHQUFJMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUFBN0IsUUFBQSxFQUVyRixJQUFBOEksZUFBQSxFQUFBLE9BQUEsRUFBQXJMLE1BQUEsQ0FBQTRMLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTXpILElBQUksRUFBQTtVQUNSc0gsR0FBRyxFQUFFbEgsUUFBUTtVQUNicEMsS0FBSyxFQUFFaUUsY0FBYztVQUNyQjNELFdBQVcsRUFBRUEsV0FBVztVQUN4QmlCLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkQsUUFBUSxFQUFFQSxRQUFRO1VBQ2xCb0ksS0FBSyxFQUFFO1lBQUUsZUFBZSxLQUFBdkgsTUFBQSxDQUFLb0IsTUFBTTtVQUFJLENBQW1CO1VBQzFEMUIsUUFBUSxFQUFFeUQsWUFBWTtVQUN0QnZELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFN0UsQ0FBQyxFQUFHO1lBQ1g4RyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2hCakMsUUFBTyxLQUFBLElBQUEsSUFBUEEsUUFBTyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFQQSxRQUFPLENBQUc3RSxDQUFDLENBQUM7VUFDZCxDQUFDO1VBQ0Q0RSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRTVFLENBQUMsRUFBRztZQUNWOEcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNqQmxDLE9BQU0sS0FBQSxJQUFBLElBQU5BLE9BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsT0FBTSxDQUFHNUUsQ0FBQyxDQUFDO1VBQ2I7UUFBQyxDQUFBLENBQUE7TUFDRCxDQUFBLENBQ0UsRUFFSnlFLFFBQVEsSUFBSSxJQUFBdUgsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUNWSSxHQUFHLEVBQUU3RyxXQUFXO1FBQ2hCOUIsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUFBN0IsUUFBQSxFQUU3QnVCO01BQVEsQ0FBQSxDQUNKLEVBRVJQLE9BQU8sR0FBRyxJQUFBOEgsZUFBQSxFQUFDUyxtQkFBTyxFQUFBO1FBQUNoSixTQUFTLEVBQUVzQixPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFBRTJILFdBQVcsRUFBQztNQUFHLENBQUEsQ0FBRyxHQUFHbEksTUFBTSxHQUFHLElBQUF3SCxlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1JLEdBQUcsRUFBRTlHLFNBQVM7UUFBRTdCLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFBQTdCLFFBQUEsRUFBR3NCO01BQU0sQ0FBQSxDQUFRLEdBQUcsSUFBSSxFQUNsSyxJQUFBd0gsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUNFSSxHQUFHLEVBQUVoSCxVQUFVO1FBQ2YzQixTQUFTLEVBQUVzQixPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzFCc0gsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUVyTSxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDMk0sZUFBZSxDQUFBLENBQUU7UUFBQTtRQUFBekosUUFBQSxFQUcvQixJQUFBK0QsbUNBQWdCLEVBQUMsRUFBRSxJQUFJaEIsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUdBLE1BQU0sQ0FBQyxFQUFFO1VBQ3BEaUIsaUJBQWlCLEVBQUUsSUFBSTtVQUN2QkMsYUFBYSxFQUFFbkQ7UURsRUgsQ0NtRWI7TUFBQyxDQUFBLENBRUM7SUFBQSxDQUFBLENBQ0gsRUFFSixDQUFDVSxPQUFPLElBQUluQixRQUFRLEtBQUssSUFBQXVJLGdCQUFBLEVBQUEsS0FBQSxFQUFBO01BQUtySSxTQUFTLEVBQUVzQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUE3QixRQUFBLEVBQUEsQ0FDdER3QixPQUFPLElBQUksSUFBQXNILGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFBS3ZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxTQUFTLEVBQUVqQixVQUFVLENBQUM7UUFBQVosUUFBQSxFQUFHd0I7TUFBTyxDQUFBLENBQU8sRUFDMUVuQixRQUFRLElBQUksSUFBQXlJLGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFBS3ZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxVQUFVLEVBQUV2QixXQUFXLENBQUM7UUFBQU4sUUFBQSxFQUFHSztNQUFRLENBQUEsQ0FBTztJQUFBLENBQUEsQ0FDM0U7RUFBQSxDQUFBLENBRUo7QUFDUixDQUFDO0FBQUMsSUFBQXFKLFFBQUEsR0FBQWhLLE9BQUEsMkJBRWEsSUFBQWlLLFdBQUksRUFBQ2xLLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNsYW1wVmFsdWVJblJhbmdlID0gKHZhbCwgbWluLCBtYXgpID0+IHtcbiAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT09ICctJyB8fCBpc05hTigrdmFsKSlcbiAgICAgICAgcmV0dXJuIHsgdmFsLCBjbGFtcGVkOiBmYWxzZSB9O1xuICAgIGxldCBjbGFtcGVkVmFsID0gdmFsO1xuICAgIGxldCBjbGFtcGVkID0gZmFsc2U7XG4gICAgY29uc3QgYm5WYWwgPSBCaWdOdW1iZXIodmFsKTtcbiAgICBpZiAodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWluQm4gPSBCaWdOdW1iZXIobWluKTtcbiAgICAgICAgaWYgKGJuVmFsLmx0KG1pbkJuKSkge1xuICAgICAgICAgICAgY2xhbXBlZFZhbCA9ICcnICsgbWluO1xuICAgICAgICAgICAgY2xhbXBlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1heEJuID0gQmlnTnVtYmVyKG1heCk7XG4gICAgICAgIGlmIChiblZhbC5ndChtYXhCbikpIHtcbiAgICAgICAgICAgIGNsYW1wZWRWYWwgPSAnJyArIG1heDtcbiAgICAgICAgICAgIGNsYW1wZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZhbDogY2xhbXBlZFZhbCwgY2xhbXBlZCB9O1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IHByZXZWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2Rm9jdXNSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHBlbmRpbmdDYXJldFN5bmNSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW192YWx1ZSwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgbGV0IHRydW5jYXRlZEZyYWN0aW9uID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWwuaW5jbHVkZXMoJy0nKSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlzU3RhbmRhbG9uZU1pbnVzID0gbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgIGlmICghaXNTdGFuZGFsb25lTWludXMgJiYgaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7ZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKX1gO1xuICAgICAgICAgICAgICAgIHRydW5jYXRlZEZyYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgY2xhbXBlZEJ5UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKCh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50JykgfHwgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gY2xhbXBWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICAgICAgY2xhbXBlZEJ5UmFuZ2UgPSByZXMuY2xhbXBlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNsaWNlID0gKF9jID0gKF9iID0gZS50YXJnZXQudmFsdWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zbGljZSgwLCBzZWxlY3Rpb25TdGFydCkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY2FyZXRSYXdMZW5ndGggPSBub3JtYWxpemVOdW1iZXJJbnB1dChjdXJyZW50U2xpY2UpLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwsIHtcbiAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UmF3UG9zID0gTWF0aC5taW4oY2FyZXRSYXdMZW5ndGgsIHZhbC5sZW5ndGgpO1xuICAgICAgICAgICAgbGV0IGNhcmV0UG9zID0gZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBzZWVuID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZE5ld1ZhbFtpXSA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBzZWVuICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHNlZW4gPT09IHRhcmdldFJhd1Bvcykge1xuICAgICAgICAgICAgICAgICAgICBjYXJldFBvcyA9IGkgKyAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0UmF3UG9zID09PSAwKVxuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gMDtcbiAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQgJiYgIXRydW5jYXRlZEZyYWN0aW9uICYmIHRhcmdldFJhd1BvcyA9PT0gdmFsLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gTWF0aC5taW4oZm9ybWF0dGVkTmV3VmFsLmxlbmd0aCArIDEsIGNhcmV0UG9zICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCA9IHRydW5jYXRlZEZyYWN0aW9uXG4gICAgICAgICAgICAgICAgPyBmb3JtYXR0ZWROZXdWYWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgOiBjbGFtcGVkQnlSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1hdHRlZE5ld1ZhbC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiBjYXJldFBvcztcbiAgICAgICAgICAgIHBlbmRpbmdDYXJldFN5bmNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfZiA9IChfZSA9IChfZCA9IHZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RbMV0pID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5sZW5ndGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzICYmXG4gICAgICAgICAgICAoX3ZhbHVlICE9PSBwcmV2VmFsdWVSZWYuY3VycmVudCB8fCAhcHJldkZvY3VzUmVmLmN1cnJlbnQpICYmXG4gICAgICAgICAgICBwZW5kaW5nQ2FyZXRTeW5jUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvRW5kKHRydWUpO1xuICAgICAgICAgICAgcGVuZGluZ0NhcmV0U3luY1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcHJldlZhbHVlUmVmLmN1cnJlbnQgPSBfdmFsdWU7XG4gICAgICAgIHByZXZGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXMsIHNjcm9sbFRvRW5kXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgbmVnYXRpdmUgc2lnbiBpZiBub3QgYWxsb3dlZFxuICAgICAgICBpZiAobmVnYXRpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT09ICctJykge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF92YWx1ZS5zdGFydHNXaXRoKCctJykpXG4gICAgICAgICAgICBzZXRWYWx1ZShfdmFsdWUuc2xpY2UoMSkpO1xuICAgIH0sIFtuZWdhdGl2ZSwgdmFsdWUsIF92YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gaW50ICsgJy4nICsgZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGNsYW1wVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmVdKTtcbiAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCBqb2luQ2xzKHdyYXBwZXJDbHMsIGludmFsaWQgJiYgY2xhc3NlcygnaW52YWxpZCcpLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygncmVhZG9ubHknKSwgX3ZhbHVlICYmIGNsYXNzZXMoJ2ZpbGxlZCcpKSksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBqb2luQ2xzKGNsYXNzTmFtZSwgaXNGb2N1cyAmJiBjbGFzc2VzKCdmb2N1cycpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01heFdpZHRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogcHJlZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbGVtZW50JywgKCFpc0ZvY3VzICYmIGlzTWF4V2lkdGgpID8gY2xhc3NlcygnZWxlbWVudC1tYXgnKSA6ICcnKSwgY2hpbGRyZW46IF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaW5wdXRSZWYsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZWFkT25seTogcmVhZE9ubHksIGRpc2FibGVkOiBkaXNhYmxlZCwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgbG9hZGluZyA/IF9qc3goU3Bpbm5lciwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeC1sb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXggPyBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -2,6 +2,9 @@ import type { RefObject, ReactNode, MouseEvent, ChangeEvent, KeyboardEvent, Focu
|
|
|
2
2
|
export interface InputAmountBaseProps {
|
|
3
3
|
ref?: RefObject<HTMLInputElement | null>;
|
|
4
4
|
value?: string | number | bigint | null;
|
|
5
|
+
name?: string;
|
|
6
|
+
min?: number | bigint;
|
|
7
|
+
max?: number | bigint;
|
|
5
8
|
maxFractionDigits?: number | bigint;
|
|
6
9
|
placeholder?: string;
|
|
7
10
|
className?: string;
|