@merchi/product-form 1.19.43 → 1.19.44
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/lib/components/PantoneColourBrowser.d.ts +18 -0
- package/lib/components/PantoneColourBrowser.js +297 -0
- package/lib/components/VariationPantoneSelect.js +159 -24
- package/lib/components/VariationSelectElements.d.ts +2 -0
- package/lib/components/VariationSelectElements.js +4 -3
- package/lib/styles/globals.css +194 -0
- package/lib/styles/globals.css.map +1 -1
- package/lib/styles/globals.scss +195 -0
- package/package.json +1 -1
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
4
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
6
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
3
7
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
4
8
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
5
9
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -13,16 +17,61 @@ import VariationLabel from './VariationLabel';
|
|
|
13
17
|
import { VariationSelectColour } from './VariationSelectElements';
|
|
14
18
|
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
|
|
15
19
|
import { quoteAfterFieldChange } from './quoteAfterFieldChange';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
import { sortByPosition, splitSelectedOptions } from './utils';
|
|
21
|
+
import { PANTONE_COLOURS, pantoneByCode, searchPantoneColours } from '../utils/pantoneColours';
|
|
22
|
+
import { PantoneColourBrowser } from './PantoneColourBrowser';
|
|
23
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
var LIBRARY_SWATCHES = PANTONE_COLOURS.map(function (colour) {
|
|
25
|
+
return {
|
|
26
|
+
key: colour.code,
|
|
27
|
+
code: colour.code,
|
|
28
|
+
hex: colour.hex,
|
|
29
|
+
book: colour.book
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
function isCheckedFlag(value) {
|
|
33
|
+
return typeof value === 'boolean' ? value : value === 'true';
|
|
34
|
+
}
|
|
35
|
+
function allowsMultiple(variation) {
|
|
36
|
+
var field = (variation === null || variation === void 0 ? void 0 : variation.variationField) || {};
|
|
37
|
+
return isCheckedFlag(field.multipleSelect) || isCheckedFlag(field.sellerProductEditable);
|
|
38
|
+
}
|
|
39
|
+
function ViewAllColoursButton(_ref) {
|
|
20
40
|
var disabled = _ref.disabled,
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
onClick = _ref.onClick;
|
|
42
|
+
return /*#__PURE__*/_jsx("button", {
|
|
43
|
+
type: "button",
|
|
44
|
+
className: "merchi-pantone-view-all",
|
|
45
|
+
disabled: disabled,
|
|
46
|
+
onClick: onClick,
|
|
47
|
+
children: "View all colours"
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function optionSwatches(variation) {
|
|
51
|
+
return sortByPosition((variation === null || variation === void 0 ? void 0 : variation.selectableOptions) || []).map(function (option) {
|
|
52
|
+
var _option$optionId;
|
|
53
|
+
var id = (_option$optionId = option === null || option === void 0 ? void 0 : option.optionId) !== null && _option$optionId !== void 0 ? _option$optionId : option === null || option === void 0 ? void 0 : option.id;
|
|
54
|
+
if (id == null || id === '') return null;
|
|
55
|
+
var code = String(option.value || '');
|
|
56
|
+
var known = pantoneByCode(code);
|
|
57
|
+
var unavailable = (option === null || option === void 0 ? void 0 : option.isVisible) === false || (option === null || option === void 0 ? void 0 : option.available) === false && (option === null || option === void 0 ? void 0 : option.isVisible) !== false;
|
|
58
|
+
return {
|
|
59
|
+
key: String(id),
|
|
60
|
+
code: (known === null || known === void 0 ? void 0 : known.code) || code || 'Colour',
|
|
61
|
+
hex: (known === null || known === void 0 ? void 0 : known.hex) || (option === null || option === void 0 ? void 0 : option.colour) || '#cccccc',
|
|
62
|
+
book: known === null || known === void 0 ? void 0 : known.book,
|
|
63
|
+
disabled: unavailable
|
|
64
|
+
};
|
|
65
|
+
}).filter(Boolean);
|
|
66
|
+
}
|
|
67
|
+
export function VariationPantoneSelect(_ref2) {
|
|
68
|
+
var _variation$variationF;
|
|
69
|
+
var disabled = _ref2.disabled,
|
|
70
|
+
name = _ref2.name,
|
|
71
|
+
variation = _ref2.variation;
|
|
23
72
|
var allowAll = Boolean(variation === null || variation === void 0 || (_variation$variationF = variation.variationField) === null || _variation$variationF === void 0 ? void 0 : _variation$variationF.allowAllPantones);
|
|
24
73
|
if (!allowAll) {
|
|
25
|
-
return /*#__PURE__*/_jsx(
|
|
74
|
+
return /*#__PURE__*/_jsx(PantoneLimitedSelect, {
|
|
26
75
|
disabled: disabled,
|
|
27
76
|
name: name,
|
|
28
77
|
variation: variation
|
|
@@ -34,13 +83,11 @@ export function VariationPantoneSelect(_ref) {
|
|
|
34
83
|
variation: variation
|
|
35
84
|
});
|
|
36
85
|
}
|
|
37
|
-
function
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
variation = _ref2.variation;
|
|
86
|
+
function PantoneLimitedSelect(_ref3) {
|
|
87
|
+
var disabled = _ref3.disabled,
|
|
88
|
+
name = _ref3.name,
|
|
89
|
+
variation = _ref3.variation;
|
|
42
90
|
var _useMerchiFormContext = useMerchiFormContext(),
|
|
43
|
-
classNameInput = _useMerchiFormContext.classNameInput,
|
|
44
91
|
control = _useMerchiFormContext.control,
|
|
45
92
|
getQuote = _useMerchiFormContext.getQuote;
|
|
46
93
|
var _useController = useController({
|
|
@@ -50,21 +97,86 @@ function PantoneLibrarySelect(_ref2) {
|
|
|
50
97
|
field = _useController.field;
|
|
51
98
|
var _React$useState = React.useState(false),
|
|
52
99
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var
|
|
100
|
+
browserOpen = _React$useState2[0],
|
|
101
|
+
setBrowserOpen = _React$useState2[1];
|
|
102
|
+
var swatches = React.useMemo(function () {
|
|
103
|
+
return optionSwatches(variation);
|
|
104
|
+
}, [variation]);
|
|
105
|
+
var multiple = allowsMultiple(variation);
|
|
106
|
+
var selectedKeys = splitSelectedOptions(field.value).map(String).filter(Boolean);
|
|
107
|
+
var choose = function choose(optionId) {
|
|
108
|
+
var updatedIds = _toConsumableArray(selectedKeys);
|
|
109
|
+
if (multiple) {
|
|
110
|
+
updatedIds = updatedIds.includes(optionId) ? updatedIds.filter(function (existingId) {
|
|
111
|
+
return existingId !== optionId;
|
|
112
|
+
}) : [].concat(_toConsumableArray(updatedIds), [optionId]);
|
|
113
|
+
} else {
|
|
114
|
+
updatedIds = [optionId];
|
|
115
|
+
}
|
|
116
|
+
quoteAfterFieldChange(field.onChange, getQuote, updatedIds.filter(Boolean).join(','));
|
|
117
|
+
if (!multiple) setBrowserOpen(false);
|
|
118
|
+
};
|
|
119
|
+
return /*#__PURE__*/_jsx(VariationSelectColour, {
|
|
120
|
+
disabled: disabled,
|
|
121
|
+
name: name,
|
|
122
|
+
variation: variation,
|
|
123
|
+
afterOptions: /*#__PURE__*/_jsxs(_Fragment, {
|
|
124
|
+
children: [/*#__PURE__*/_jsx(ViewAllColoursButton, {
|
|
125
|
+
disabled: disabled,
|
|
126
|
+
onClick: function onClick() {
|
|
127
|
+
return setBrowserOpen(true);
|
|
128
|
+
}
|
|
129
|
+
}), /*#__PURE__*/_jsx(PantoneColourBrowser, {
|
|
130
|
+
open: browserOpen,
|
|
131
|
+
title: "Pantone colours",
|
|
132
|
+
description: "These are the Pantone colours available for this option. Swatches are screen approximations.",
|
|
133
|
+
swatches: swatches,
|
|
134
|
+
selectedKeys: selectedKeys,
|
|
135
|
+
onClose: function onClose() {
|
|
136
|
+
return setBrowserOpen(false);
|
|
137
|
+
},
|
|
138
|
+
onSelect: function onSelect(swatch) {
|
|
139
|
+
if (!swatch.disabled) choose(swatch.key);
|
|
140
|
+
}
|
|
141
|
+
})]
|
|
142
|
+
})
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
function PantoneLibrarySelect(_ref4) {
|
|
146
|
+
var _variation$variationF2;
|
|
147
|
+
var disabled = _ref4.disabled,
|
|
148
|
+
name = _ref4.name,
|
|
149
|
+
variation = _ref4.variation;
|
|
150
|
+
var _useMerchiFormContext2 = useMerchiFormContext(),
|
|
151
|
+
classNameInput = _useMerchiFormContext2.classNameInput,
|
|
152
|
+
control = _useMerchiFormContext2.control,
|
|
153
|
+
getQuote = _useMerchiFormContext2.getQuote;
|
|
154
|
+
var _useController2 = useController({
|
|
155
|
+
name: "".concat(name, ".value"),
|
|
156
|
+
control: control
|
|
157
|
+
}),
|
|
158
|
+
field = _useController2.field;
|
|
159
|
+
var _React$useState3 = React.useState(false),
|
|
56
160
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
var _React$useState5 = React.useState(
|
|
161
|
+
open = _React$useState4[0],
|
|
162
|
+
setOpen = _React$useState4[1];
|
|
163
|
+
var _React$useState5 = React.useState(false),
|
|
60
164
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
61
|
-
|
|
62
|
-
|
|
165
|
+
browserOpen = _React$useState6[0],
|
|
166
|
+
setBrowserOpen = _React$useState6[1];
|
|
167
|
+
var _React$useState7 = React.useState(''),
|
|
168
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
169
|
+
query = _React$useState8[0],
|
|
170
|
+
setQuery = _React$useState8[1];
|
|
171
|
+
var _React$useState9 = React.useState(0),
|
|
172
|
+
_React$useState0 = _slicedToArray(_React$useState9, 2),
|
|
173
|
+
activeIndex = _React$useState0[0],
|
|
174
|
+
setActiveIndex = _React$useState0[1];
|
|
63
175
|
var rootRef = React.useRef(null);
|
|
64
176
|
var listId = React.useId();
|
|
65
177
|
var selected = pantoneByCode(field.value);
|
|
66
178
|
var matches = searchPantoneColours(query, 20);
|
|
67
|
-
var showList = open && query.trim().length > 0;
|
|
179
|
+
var showList = open && query.trim().length > 0 && !browserOpen;
|
|
68
180
|
React.useEffect(function () {
|
|
69
181
|
setActiveIndex(0);
|
|
70
182
|
}, [query]);
|
|
@@ -79,7 +191,9 @@ function PantoneLibrarySelect(_ref2) {
|
|
|
79
191
|
if (!open) return;
|
|
80
192
|
var onPointerDown = function onPointerDown(event) {
|
|
81
193
|
var _rootRef$current;
|
|
82
|
-
|
|
194
|
+
var target = event.target;
|
|
195
|
+
if (target !== null && target !== void 0 && target.closest('.merchi-pantone-browser')) return;
|
|
196
|
+
if (!((_rootRef$current = rootRef.current) !== null && _rootRef$current !== void 0 && _rootRef$current.contains(target))) {
|
|
83
197
|
setOpen(false);
|
|
84
198
|
setQuery('');
|
|
85
199
|
}
|
|
@@ -93,6 +207,7 @@ function PantoneLibrarySelect(_ref2) {
|
|
|
93
207
|
quoteAfterFieldChange(field.onChange, getQuote, code);
|
|
94
208
|
setQuery('');
|
|
95
209
|
setOpen(false);
|
|
210
|
+
setBrowserOpen(false);
|
|
96
211
|
};
|
|
97
212
|
var onKeyDown = function onKeyDown(event) {
|
|
98
213
|
if (event.key === 'ArrowDown') {
|
|
@@ -236,9 +351,29 @@ function PantoneLibrarySelect(_ref2) {
|
|
|
236
351
|
}, colour.code);
|
|
237
352
|
})
|
|
238
353
|
})]
|
|
354
|
+
}), /*#__PURE__*/_jsx(ViewAllColoursButton, {
|
|
355
|
+
disabled: disabled,
|
|
356
|
+
onClick: function onClick() {
|
|
357
|
+
setOpen(false);
|
|
358
|
+
setQuery('');
|
|
359
|
+
setBrowserOpen(true);
|
|
360
|
+
}
|
|
361
|
+
}), /*#__PURE__*/_jsx(PantoneColourBrowser, {
|
|
362
|
+
open: browserOpen,
|
|
363
|
+
title: "All Pantone colours",
|
|
364
|
+
description: "Scroll the library or search for a code. Swatches are screen approximations.",
|
|
365
|
+
swatches: LIBRARY_SWATCHES,
|
|
366
|
+
selectedKeys: selected ? [selected.code] : [],
|
|
367
|
+
showBooks: true,
|
|
368
|
+
onClose: function onClose() {
|
|
369
|
+
return setBrowserOpen(false);
|
|
370
|
+
},
|
|
371
|
+
onSelect: function onSelect(swatch) {
|
|
372
|
+
return choose(swatch.code);
|
|
373
|
+
}
|
|
239
374
|
}), /*#__PURE__*/_jsx(VariationError, {
|
|
240
375
|
name: name
|
|
241
376
|
})]
|
|
242
377
|
});
|
|
243
378
|
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xpY2VkVG9BcnJheSIsInIiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInQiLCJ0b1N0cmluZyIsImNhbGwiLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsZW5ndGgiLCJuIiwibCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiaSIsInUiLCJmIiwibyIsIm5leHQiLCJPYmplY3QiLCJkb25lIiwicHVzaCIsInZhbHVlIiwiaXNBcnJheSIsIlJlYWN0IiwidXNlQ29udHJvbGxlciIsIlZhcmlhdGlvbkVycm9yIiwiVmFyaWF0aW9uTGFiZWwiLCJWYXJpYXRpb25TZWxlY3RDb2xvdXIiLCJ1c2VNZXJjaGlGb3JtQ29udGV4dCIsInF1b3RlQWZ0ZXJGaWVsZENoYW5nZSIsInBhbnRvbmVCeUNvZGUiLCJzZWFyY2hQYW50b25lQ29sb3VycyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJWYXJpYXRpb25QYW50b25lU2VsZWN0IiwiX3JlZiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsImRpc2FibGVkIiwidmFyaWF0aW9uIiwiYWxsb3dBbGwiLCJCb29sZWFuIiwidmFyaWF0aW9uRmllbGQiLCJhbGxvd0FsbFBhbnRvbmVzIiwiUGFudG9uZUxpYnJhcnlTZWxlY3QiLCJfcmVmMiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRjIiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjbGFzc05hbWVJbnB1dCIsImNvbnRyb2wiLCJnZXRRdW90ZSIsIl91c2VDb250cm9sbGVyIiwiY29uY2F0IiwiZmllbGQiLCJfUmVhY3QkdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJvcGVuIiwic2V0T3BlbiIsIl9SZWFjdCR1c2VTdGF0ZTMiLCJfUmVhY3QkdXNlU3RhdGU0IiwicXVlcnkiLCJzZXRRdWVyeSIsIl9SZWFjdCR1c2VTdGF0ZTUiLCJfUmVhY3QkdXNlU3RhdGU2IiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsInJvb3RSZWYiLCJ1c2VSZWYiLCJsaXN0SWQiLCJ1c2VJZCIsInNlbGVjdGVkIiwibWF0Y2hlcyIsInNob3dMaXN0IiwidHJpbSIsInVzZUVmZmVjdCIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzY3JvbGxJbnRvVmlldyIsImJsb2NrIiwib25Qb2ludGVyRG93biIsImV2ZW50IiwiX3Jvb3RSZWYkY3VycmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY2hvb3NlIiwiY29kZSIsIm9uQ2hhbmdlIiwib25LZXlEb3duIiwia2V5IiwicHJldmVudERlZmF1bHQiLCJpbmRleCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJyZWYiLCJjaGlsZHJlbiIsInZhcmlhdGlvbkNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwiaGV4IiwicG9pbnRlckV2ZW50cyIsInJvbGUiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWUiLCJwbGFjZWhvbGRlciIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwidHlwZSIsImF1dG9Db21wbGV0ZSIsIm9uRm9jdXMiLCJyaWdodCIsImJvcmRlckxlZnQiLCJib3JkZXJSaWdodCIsImJvcmRlclRvcCIsIm9wYWNpdHkiLCJpZCIsInpJbmRleCIsIm1heEhlaWdodCIsIm1hcmdpbiIsInBhZGRpbmciLCJvdmVyZmxvd1kiLCJsaXN0U3R5bGUiLCJib3hTaGFkb3ciLCJjb2xvciIsIm1hcCIsImNvbG91ciIsIm9uTW91c2VEb3duIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJjdXJzb3IiLCJmbGV4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uUGFudG9uZVNlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyBWYXJpYXRpb25TZWxlY3RDb2xvdXIgfSBmcm9tICcuL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7XG4gIHBhbnRvbmVCeUNvZGUsXG4gIHNlYXJjaFBhbnRvbmVDb2xvdXJzLFxufSBmcm9tICcuLi91dGlscy9wYW50b25lQ29sb3Vycyc7XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYXRpb246IGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFZhcmlhdGlvblBhbnRvbmVTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IGFsbG93QWxsID0gQm9vbGVhbih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgaWYgKCFhbGxvd0FsbCkge1xuICAgIHJldHVybiAoXG4gICAgICA8VmFyaWF0aW9uU2VsZWN0Q29sb3VyXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8UGFudG9uZUxpYnJhcnlTZWxlY3RcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAvPlxuICApO1xufVxuXG5mdW5jdGlvbiBQYW50b25lTGlicmFyeVNlbGVjdCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3QgeyBjbGFzc05hbWVJbnB1dCwgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3F1ZXJ5LCBzZXRRdWVyeV0gPSBSZWFjdC51c2VTdGF0ZSgnJyk7XG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gIGNvbnN0IHJvb3RSZWYgPSBSZWFjdC51c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBsaXN0SWQgPSBSZWFjdC51c2VJZCgpO1xuICBjb25zdCBzZWxlY3RlZCA9IHBhbnRvbmVCeUNvZGUoZmllbGQudmFsdWUpO1xuICBjb25zdCBtYXRjaGVzID0gc2VhcmNoUGFudG9uZUNvbG91cnMocXVlcnksIDIwKTtcbiAgY29uc3Qgc2hvd0xpc3QgPSBvcGVuICYmIHF1ZXJ5LnRyaW0oKS5sZW5ndGggPiAwO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aXZlSW5kZXgoMCk7XG4gIH0sIFtxdWVyeV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93TGlzdCkgcmV0dXJuO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2xpc3RJZH0tJHthY3RpdmVJbmRleH1gKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICB9KTtcbiAgfSwgW2FjdGl2ZUluZGV4LCBsaXN0SWQsIHNob3dMaXN0XSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICBjb25zdCBvblBvaW50ZXJEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXJvb3RSZWYuY3VycmVudD8uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICBzZXRRdWVyeSgnJyk7XG4gICAgICB9XG4gICAgfTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBvblBvaW50ZXJEb3duKTtcbiAgICByZXR1cm4gKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Qb2ludGVyRG93bik7XG4gIH0sIFtvcGVuXSk7XG5cbiAgY29uc3QgY2hvb3NlID0gKGNvZGU6IHN0cmluZykgPT4ge1xuICAgIHF1b3RlQWZ0ZXJGaWVsZENoYW5nZShmaWVsZC5vbkNoYW5nZSwgZ2V0UXVvdGUsIGNvZGUpO1xuICAgIHNldFF1ZXJ5KCcnKTtcbiAgICBzZXRPcGVuKGZhbHNlKTtcbiAgfTtcblxuICBjb25zdCBvbktleURvd24gPSAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICBzZXRBY3RpdmVJbmRleCgoaW5kZXgpID0+XG4gICAgICAgIE1hdGgubWluKGluZGV4ICsgMSwgTWF0aC5tYXgobWF0Y2hlcy5sZW5ndGggLSAxLCAwKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldEFjdGl2ZUluZGV4KChpbmRleCkgPT4gTWF0aC5tYXgoaW5kZXggLSAxLCAwKSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgJiYgc2hvd0xpc3QgJiYgbWF0Y2hlc1thY3RpdmVJbmRleF0pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBjaG9vc2UobWF0Y2hlc1thY3RpdmVJbmRleF0uY29kZSk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cm9vdFJlZn0+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPSdtZXJjaGktZW1iZWQtZm9ybV9pbnB1dC1zZWxlY3QnXG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICAgIDxkaXYgc3R5bGU9e3sgcG9zaXRpb246ICdyZWxhdGl2ZScgfX0+XG4gICAgICAgIHtzZWxlY3RlZCAmJiAhb3BlbiAmJiAoXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgbGVmdDogMTIsXG4gICAgICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgICAgIHdpZHRoOiAxOCxcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgICAgICAgbWFyZ2luVG9wOiAtOSxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IHNlbGVjdGVkLmhleCxcbiAgICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByb2xlPSdjb21ib2JveCdcbiAgICAgICAgICBhcmlhLWF1dG9jb21wbGV0ZT0nbGlzdCdcbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtzaG93TGlzdH1cbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtsaXN0SWR9XG4gICAgICAgICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PXtcbiAgICAgICAgICAgIHNob3dMaXN0ICYmIG1hdGNoZXNbYWN0aXZlSW5kZXhdXG4gICAgICAgICAgICAgID8gYCR7bGlzdElkfS0ke2FjdGl2ZUluZGV4fWBcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICB9XG4gICAgICAgICAgYXJpYS1sYWJlbD17dmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8ubmFtZSB8fCAnUGFudG9uZSBjb2xvdXInfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lSW5wdXR9XG4gICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgIHBsYWNlaG9sZGVyPSdTZWFyY2ggUGFudG9uZSwgZS5nLiAxODUgQydcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcGFkZGluZ0xlZnQ6IHNlbGVjdGVkICYmICFvcGVuID8gNDAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ6IDMyLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdHlwZT0ndGV4dCdcbiAgICAgICAgICBhdXRvQ29tcGxldGU9J29mZidcbiAgICAgICAgICB2YWx1ZT17b3BlbiA/IHF1ZXJ5IDogc2VsZWN0ZWQ/LmNvZGUgfHwgJyd9XG4gICAgICAgICAgb25Gb2N1cz17KCkgPT4ge1xuICAgICAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgICAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHNldFF1ZXJ5KGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICByaWdodDogMTIsXG4gICAgICAgICAgICB0b3A6ICc1MCUnLFxuICAgICAgICAgICAgbWFyZ2luVG9wOiAtMixcbiAgICAgICAgICAgIGJvcmRlckxlZnQ6ICc1cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgYm9yZGVyUmlnaHQ6ICc1cHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgYm9yZGVyVG9wOiAnNnB4IHNvbGlkIGN1cnJlbnRDb2xvcicsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjU1LFxuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtzaG93TGlzdCAmJiAoXG4gICAgICAgICAgPHVsXG4gICAgICAgICAgICBpZD17bGlzdElkfVxuICAgICAgICAgICAgcm9sZT0nbGlzdGJveCdcbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICB6SW5kZXg6IDMwLFxuICAgICAgICAgICAgICB0b3A6ICcxMDAlJyxcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgIG1heEhlaWdodDogMjQwLFxuICAgICAgICAgICAgICBtYXJnaW46ICc0cHggMCAwJyxcbiAgICAgICAgICAgICAgcGFkZGluZzogNCxcbiAgICAgICAgICAgICAgb3ZlcmZsb3dZOiAnYXV0bycsXG4gICAgICAgICAgICAgIGxpc3RTdHlsZTogJ25vbmUnLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZicsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA4LFxuICAgICAgICAgICAgICBib3hTaGFkb3c6ICcwIDhweCAyNHB4IHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7bWF0Y2hlcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgIDxsaSBzdHlsZT17eyBwYWRkaW5nOiAnOHB4IDEwcHgnLCBjb2xvcjogJyM2YjcyODAnIH19PlxuICAgICAgICAgICAgICAgIE5vIG1hdGNoaW5nIFBhbnRvbmUgY29sb3Vyc1xuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgbWF0Y2hlcy5tYXAoKGNvbG91ciwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgIGtleT17Y29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgICBpZD17YCR7bGlzdElkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICByb2xlPSdvcHRpb24nXG4gICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtmaWVsZC52YWx1ZSA9PT0gY29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNob29zZShjb2xvdXIuY29kZSk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVJbmRleChpbmRleCl9XG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBnYXA6IDEwLFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnOHB4IDEwcHgnLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID09PSBhY3RpdmVJbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAncmdiYSgzNywgOTksIDIzNSwgMC4wOCknXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA0LFxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IGNvbG91ci5oZXgsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXg6ICcwIDAgYXV0bycsXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NvbG91ci5jb2RlfVxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxWYXJpYXRpb25FcnJvciBuYW1lPXtuYW1lfSAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLGVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBQyxlQUFBLENBQUFGLENBQUEsS0FBQUcscUJBQUEsQ0FBQUgsQ0FBQSxFQUFBQyxDQUFBLEtBQUFHLDJCQUFBLENBQUFKLENBQUEsRUFBQUMsQ0FBQSxLQUFBSSxnQkFBQTtBQUFBLFNBQUFBLGlCQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBRiw0QkFBQUosQ0FBQSxFQUFBTyxDQUFBLFFBQUFQLENBQUEsMkJBQUFBLENBQUEsU0FBQVEsaUJBQUEsQ0FBQVIsQ0FBQSxFQUFBTyxDQUFBLE9BQUFFLENBQUEsTUFBQUMsUUFBQSxDQUFBQyxJQUFBLENBQUFYLENBQUEsRUFBQVksS0FBQSw2QkFBQUgsQ0FBQSxJQUFBVCxDQUFBLENBQUFhLFdBQUEsS0FBQUosQ0FBQSxHQUFBVCxDQUFBLENBQUFh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
|
|
379
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJlIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsImEiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJ0ZXN0IiwibGVuZ3RoIiwibiIsImwiLCJpIiwidSIsImYiLCJvIiwibmV4dCIsIk9iamVjdCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJSZWFjdCIsInVzZUNvbnRyb2xsZXIiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwiVmFyaWF0aW9uU2VsZWN0Q29sb3VyIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwiUEFOVE9ORV9DT0xPVVJTIiwicGFudG9uZUJ5Q29kZSIsInNlYXJjaFBhbnRvbmVDb2xvdXJzIiwiUGFudG9uZUNvbG91ckJyb3dzZXIiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJMSUJSQVJZX1NXQVRDSEVTIiwibWFwIiwiY29sb3VyIiwia2V5IiwiY29kZSIsImhleCIsImJvb2siLCJpc0NoZWNrZWRGbGFnIiwiYWxsb3dzTXVsdGlwbGUiLCJ2YXJpYXRpb24iLCJmaWVsZCIsInZhcmlhdGlvbkZpZWxkIiwibXVsdGlwbGVTZWxlY3QiLCJzZWxsZXJQcm9kdWN0RWRpdGFibGUiLCJWaWV3QWxsQ29sb3Vyc0J1dHRvbiIsIl9yZWYiLCJkaXNhYmxlZCIsIm9uQ2xpY2siLCJ0eXBlIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJvcHRpb25Td2F0Y2hlcyIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uIiwiX29wdGlvbiRvcHRpb25JZCIsImlkIiwib3B0aW9uSWQiLCJTdHJpbmciLCJrbm93biIsInVuYXZhaWxhYmxlIiwiaXNWaXNpYmxlIiwiYXZhaWxhYmxlIiwiZmlsdGVyIiwiQm9vbGVhbiIsIlZhcmlhdGlvblBhbnRvbmVTZWxlY3QiLCJfcmVmMiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsImFsbG93QWxsIiwiYWxsb3dBbGxQYW50b25lcyIsIlBhbnRvbmVMaW1pdGVkU2VsZWN0IiwiUGFudG9uZUxpYnJhcnlTZWxlY3QiLCJfcmVmMyIsIl91c2VNZXJjaGlGb3JtQ29udGV4dCIsImNvbnRyb2wiLCJnZXRRdW90ZSIsIl91c2VDb250cm9sbGVyIiwiY29uY2F0IiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJfUmVhY3QkdXNlU3RhdGUyIiwiYnJvd3Nlck9wZW4iLCJzZXRCcm93c2VyT3BlbiIsInN3YXRjaGVzIiwidXNlTWVtbyIsIm11bHRpcGxlIiwic2VsZWN0ZWRLZXlzIiwiY2hvb3NlIiwidXBkYXRlZElkcyIsImluY2x1ZGVzIiwiZXhpc3RpbmdJZCIsIm9uQ2hhbmdlIiwiam9pbiIsImFmdGVyT3B0aW9ucyIsIm9wZW4iLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwib25DbG9zZSIsIm9uU2VsZWN0Iiwic3dhdGNoIiwiX3JlZjQiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYyIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0MiIsImNsYXNzTmFtZUlucHV0IiwiX3VzZUNvbnRyb2xsZXIyIiwiX1JlYWN0JHVzZVN0YXRlMyIsIl9SZWFjdCR1c2VTdGF0ZTQiLCJzZXRPcGVuIiwiX1JlYWN0JHVzZVN0YXRlNSIsIl9SZWFjdCR1c2VTdGF0ZTYiLCJfUmVhY3QkdXNlU3RhdGU3IiwiX1JlYWN0JHVzZVN0YXRlOCIsInF1ZXJ5Iiwic2V0UXVlcnkiLCJfUmVhY3QkdXNlU3RhdGU5IiwiX1JlYWN0JHVzZVN0YXRlMCIsImFjdGl2ZUluZGV4Iiwic2V0QWN0aXZlSW5kZXgiLCJyb290UmVmIiwidXNlUmVmIiwibGlzdElkIiwidXNlSWQiLCJzZWxlY3RlZCIsIm1hdGNoZXMiLCJzaG93TGlzdCIsInRyaW0iLCJ1c2VFZmZlY3QiLCJfZG9jdW1lbnQkZ2V0RWxlbWVudEIiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2Nyb2xsSW50b1ZpZXciLCJibG9jayIsIm9uUG9pbnRlckRvd24iLCJldmVudCIsIl9yb290UmVmJGN1cnJlbnQiLCJ0YXJnZXQiLCJjbG9zZXN0IiwiY3VycmVudCIsImNvbnRhaW5zIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJvbktleURvd24iLCJwcmV2ZW50RGVmYXVsdCIsImluZGV4IiwiTWF0aCIsIm1pbiIsIm1heCIsInJlZiIsInZhcmlhdGlvbkNsYXNzTmFtZSIsInN0eWxlIiwicG9zaXRpb24iLCJsZWZ0IiwidG9wIiwid2lkdGgiLCJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJib3JkZXJSYWRpdXMiLCJib3JkZXIiLCJiYWNrZ3JvdW5kIiwicG9pbnRlckV2ZW50cyIsInJvbGUiLCJ1bmRlZmluZWQiLCJwbGFjZWhvbGRlciIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwiYXV0b0NvbXBsZXRlIiwib25Gb2N1cyIsInJpZ2h0IiwiYm9yZGVyTGVmdCIsImJvcmRlclJpZ2h0IiwiYm9yZGVyVG9wIiwib3BhY2l0eSIsInpJbmRleCIsIm1heEhlaWdodCIsIm1hcmdpbiIsInBhZGRpbmciLCJvdmVyZmxvd1kiLCJsaXN0U3R5bGUiLCJib3hTaGFkb3ciLCJjb2xvciIsIm9uTW91c2VEb3duIiwib25Nb3VzZUVudGVyIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJnYXAiLCJjdXJzb3IiLCJmbGV4Iiwic2hvd0Jvb2tzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uUGFudG9uZVNlbGVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlQ29udHJvbGxlciB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQgVmFyaWF0aW9uRXJyb3IgZnJvbSAnLi9WYXJpYXRpb25FcnJvcic7XG5pbXBvcnQgVmFyaWF0aW9uTGFiZWwgZnJvbSAnLi9WYXJpYXRpb25MYWJlbCc7XG5pbXBvcnQgeyBWYXJpYXRpb25TZWxlY3RDb2xvdXIgfSBmcm9tICcuL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgUEFOVE9ORV9DT0xPVVJTLFxuICBwYW50b25lQnlDb2RlLFxuICBzZWFyY2hQYW50b25lQ29sb3Vycyxcbn0gZnJvbSAnLi4vdXRpbHMvcGFudG9uZUNvbG91cnMnO1xuaW1wb3J0IHtcbiAgUGFudG9uZUNvbG91ckJyb3dzZXIsXG4gIHR5cGUgUGFudG9uZUJyb3dzZXJTd2F0Y2gsXG59IGZyb20gJy4vUGFudG9uZUNvbG91ckJyb3dzZXInO1xuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmNvbnN0IExJQlJBUllfU1dBVENIRVM6IFBhbnRvbmVCcm93c2VyU3dhdGNoW10gPSBQQU5UT05FX0NPTE9VUlMubWFwKChjb2xvdXIpID0+ICh7XG4gIGtleTogY29sb3VyLmNvZGUsXG4gIGNvZGU6IGNvbG91ci5jb2RlLFxuICBoZXg6IGNvbG91ci5oZXgsXG4gIGJvb2s6IGNvbG91ci5ib29rLFxufSkpO1xuXG5mdW5jdGlvbiBpc0NoZWNrZWRGbGFnKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nID8gdmFsdWUgOiB2YWx1ZSA9PT0gJ3RydWUnO1xufVxuXG5mdW5jdGlvbiBhbGxvd3NNdWx0aXBsZSh2YXJpYXRpb246IGFueSkge1xuICBjb25zdCBmaWVsZCA9IHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQgfHwge307XG4gIHJldHVybiBpc0NoZWNrZWRGbGFnKGZpZWxkLm11bHRpcGxlU2VsZWN0KSB8fCBpc0NoZWNrZWRGbGFnKGZpZWxkLnNlbGxlclByb2R1Y3RFZGl0YWJsZSk7XG59XG5cbmZ1bmN0aW9uIFZpZXdBbGxDb2xvdXJzQnV0dG9uKHtcbiAgZGlzYWJsZWQsXG4gIG9uQ2xpY2ssXG59OiB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogKCkgPT4gdm9pZDtcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPSdidXR0b24nXG4gICAgICBjbGFzc05hbWU9J21lcmNoaS1wYW50b25lLXZpZXctYWxsJ1xuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICA+XG4gICAgICBWaWV3IGFsbCBjb2xvdXJzXG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblN3YXRjaGVzKHZhcmlhdGlvbjogYW55KTogUGFudG9uZUJyb3dzZXJTd2F0Y2hbXSB7XG4gIHJldHVybiBzb3J0QnlQb3NpdGlvbih2YXJpYXRpb24/LnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKVxuICAgIC5tYXAoKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICBjb25zdCBpZCA9IG9wdGlvbj8ub3B0aW9uSWQgPz8gb3B0aW9uPy5pZDtcbiAgICAgIGlmIChpZCA9PSBudWxsIHx8IGlkID09PSAnJykgcmV0dXJuIG51bGw7XG4gICAgICBjb25zdCBjb2RlID0gU3RyaW5nKG9wdGlvbi52YWx1ZSB8fCAnJyk7XG4gICAgICBjb25zdCBrbm93biA9IHBhbnRvbmVCeUNvZGUoY29kZSk7XG4gICAgICBjb25zdCB1bmF2YWlsYWJsZSA9XG4gICAgICAgIG9wdGlvbj8uaXNWaXNpYmxlID09PSBmYWxzZSB8fFxuICAgICAgICAob3B0aW9uPy5hdmFpbGFibGUgPT09IGZhbHNlICYmIG9wdGlvbj8uaXNWaXNpYmxlICE9PSBmYWxzZSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IFN0cmluZyhpZCksXG4gICAgICAgIGNvZGU6IGtub3duPy5jb2RlIHx8IGNvZGUgfHwgJ0NvbG91cicsXG4gICAgICAgIGhleDoga25vd24/LmhleCB8fCBvcHRpb24/LmNvbG91ciB8fCAnI2NjY2NjYycsXG4gICAgICAgIGJvb2s6IGtub3duPy5ib29rLFxuICAgICAgICBkaXNhYmxlZDogdW5hdmFpbGFibGUsXG4gICAgICB9O1xuICAgIH0pXG4gICAgLmZpbHRlcihCb29sZWFuKSBhcyBQYW50b25lQnJvd3NlclN3YXRjaFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmFyaWF0aW9uUGFudG9uZVNlbGVjdCh7IGRpc2FibGVkLCBuYW1lLCB2YXJpYXRpb24gfTogUHJvcHMpIHtcbiAgY29uc3QgYWxsb3dBbGwgPSBCb29sZWFuKHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQ/LmFsbG93QWxsUGFudG9uZXMpO1xuICBpZiAoIWFsbG93QWxsKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYW50b25lTGltaXRlZFNlbGVjdFxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgLz5cbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgPFBhbnRvbmVMaWJyYXJ5U2VsZWN0XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGFudG9uZUxpbWl0ZWRTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IFticm93c2VyT3Blbiwgc2V0QnJvd3Nlck9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBzd2F0Y2hlcyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4gb3B0aW9uU3dhdGNoZXModmFyaWF0aW9uKSwgW3ZhcmlhdGlvbl0pO1xuICBjb25zdCBtdWx0aXBsZSA9IGFsbG93c011bHRpcGxlKHZhcmlhdGlvbik7XG4gIGNvbnN0IHNlbGVjdGVkS2V5cyA9IHNwbGl0U2VsZWN0ZWRPcHRpb25zKGZpZWxkLnZhbHVlKS5tYXAoU3RyaW5nKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgY29uc3QgY2hvb3NlID0gKG9wdGlvbklkOiBzdHJpbmcpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5zZWxlY3RlZEtleXNdO1xuICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuaW5jbHVkZXMob3B0aW9uSWQpXG4gICAgICAgID8gdXBkYXRlZElkcy5maWx0ZXIoKGV4aXN0aW5nSWQpID0+IGV4aXN0aW5nSWQgIT09IG9wdGlvbklkKVxuICAgICAgICA6IFsuLi51cGRhdGVkSWRzLCBvcHRpb25JZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZWRJZHMgPSBbb3B0aW9uSWRdO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgICBpZiAoIW11bHRpcGxlKSBzZXRCcm93c2VyT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8VmFyaWF0aW9uU2VsZWN0Q29sb3VyXG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICBhZnRlck9wdGlvbnM9e1xuICAgICAgICA8PlxuICAgICAgICAgIDxWaWV3QWxsQ29sb3Vyc0J1dHRvblxuICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0QnJvd3Nlck9wZW4odHJ1ZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgICA8UGFudG9uZUNvbG91ckJyb3dzZXJcbiAgICAgICAgICAgIG9wZW49e2Jyb3dzZXJPcGVufVxuICAgICAgICAgICAgdGl0bGU9J1BhbnRvbmUgY29sb3VycydcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdUaGVzZSBhcmUgdGhlIFBhbnRvbmUgY29sb3VycyBhdmFpbGFibGUgZm9yIHRoaXMgb3B0aW9uLiBTd2F0Y2hlcyBhcmUgc2NyZWVuIGFwcHJveGltYXRpb25zLidcbiAgICAgICAgICAgIHN3YXRjaGVzPXtzd2F0Y2hlc31cbiAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17c2VsZWN0ZWRLZXlzfVxuICAgICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0QnJvd3Nlck9wZW4oZmFsc2UpfVxuICAgICAgICAgICAgb25TZWxlY3Q9eyhzd2F0Y2gpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFzd2F0Y2guZGlzYWJsZWQpIGNob29zZShzd2F0Y2gua2V5KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC8+XG4gICAgICB9XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gUGFudG9uZUxpYnJhcnlTZWxlY3QoeyBkaXNhYmxlZCwgbmFtZSwgdmFyaWF0aW9uIH06IFByb3BzKSB7XG4gIGNvbnN0IHsgY2xhc3NOYW1lSW5wdXQsIGNvbnRyb2wsIGdldFF1b3RlIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuICBjb25zdCB7IGZpZWxkIH0gPSB1c2VDb250cm9sbGVyKHsgbmFtZTogYCR7bmFtZX0udmFsdWVgLCBjb250cm9sIH0pO1xuICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFticm93c2VyT3Blbiwgc2V0QnJvd3Nlck9wZW5dID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbcXVlcnksIHNldFF1ZXJ5XSA9IFJlYWN0LnVzZVN0YXRlKCcnKTtcbiAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgY29uc3Qgcm9vdFJlZiA9IFJlYWN0LnVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IGxpc3RJZCA9IFJlYWN0LnVzZUlkKCk7XG4gIGNvbnN0IHNlbGVjdGVkID0gcGFudG9uZUJ5Q29kZShmaWVsZC52YWx1ZSk7XG4gIGNvbnN0IG1hdGNoZXMgPSBzZWFyY2hQYW50b25lQ29sb3VycyhxdWVyeSwgMjApO1xuICBjb25zdCBzaG93TGlzdCA9IG9wZW4gJiYgcXVlcnkudHJpbSgpLmxlbmd0aCA+IDAgJiYgIWJyb3dzZXJPcGVuO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aXZlSW5kZXgoMCk7XG4gIH0sIFtxdWVyeV0pO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFzaG93TGlzdCkgcmV0dXJuO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGAke2xpc3RJZH0tJHthY3RpdmVJbmRleH1gKT8uc2Nyb2xsSW50b1ZpZXcoe1xuICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICB9KTtcbiAgfSwgW2FjdGl2ZUluZGV4LCBsaXN0SWQsIHNob3dMaXN0XSk7XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIW9wZW4pIHJldHVybjtcbiAgICBjb25zdCBvblBvaW50ZXJEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgICAgaWYgKHRhcmdldD8uY2xvc2VzdCgnLm1lcmNoaS1wYW50b25lLWJyb3dzZXInKSkgcmV0dXJuO1xuICAgICAgaWYgKCFyb290UmVmLmN1cnJlbnQ/LmNvbnRhaW5zKHRhcmdldCBhcyBOb2RlKSkge1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgc2V0UXVlcnkoJycpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Qb2ludGVyRG93bik7XG4gICAgcmV0dXJuICgpID0+IGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uUG9pbnRlckRvd24pO1xuICB9LCBbb3Blbl0pO1xuXG4gIGNvbnN0IGNob29zZSA9IChjb2RlOiBzdHJpbmcpID0+IHtcbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoZmllbGQub25DaGFuZ2UsIGdldFF1b3RlLCBjb2RlKTtcbiAgICBzZXRRdWVyeSgnJyk7XG4gICAgc2V0T3BlbihmYWxzZSk7XG4gICAgc2V0QnJvd3Nlck9wZW4oZmFsc2UpO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICAgIHNldEFjdGl2ZUluZGV4KChpbmRleCkgPT5cbiAgICAgICAgTWF0aC5taW4oaW5kZXggKyAxLCBNYXRoLm1heChtYXRjaGVzLmxlbmd0aCAtIDEsIDApKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0QWN0aXZlSW5kZXgoKGluZGV4KSA9PiBNYXRoLm1heChpbmRleCAtIDEsIDApKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiBzaG93TGlzdCAmJiBtYXRjaGVzW2FjdGl2ZUluZGV4XSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNob29zZShtYXRjaGVzW2FjdGl2ZUluZGV4XS5jb2RlKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgc2V0UXVlcnkoJycpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtyb290UmVmfT5cbiAgICAgIDxWYXJpYXRpb25MYWJlbFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YXJpYXRpb25DbGFzc05hbWU9J21lcmNoaS1lbWJlZC1mb3JtX2lucHV0LXNlbGVjdCdcbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICAgPGRpdiBzdHlsZT17eyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9fT5cbiAgICAgICAge3NlbGVjdGVkICYmICFvcGVuICYmIChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICBsZWZ0OiAxMixcbiAgICAgICAgICAgICAgdG9wOiAnNTAlJyxcbiAgICAgICAgICAgICAgd2lkdGg6IDE4LFxuICAgICAgICAgICAgICBoZWlnaHQ6IDE4LFxuICAgICAgICAgICAgICBtYXJnaW5Ub3A6IC05LFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpJyxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogc2VsZWN0ZWQuaGV4LFxuICAgICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJvbGU9J2NvbWJvYm94J1xuICAgICAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPSdsaXN0J1xuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3Nob3dMaXN0fVxuICAgICAgICAgIGFyaWEtY29udHJvbHM9e2xpc3RJZH1cbiAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9e1xuICAgICAgICAgICAgc2hvd0xpc3QgJiYgbWF0Y2hlc1thY3RpdmVJbmRleF1cbiAgICAgICAgICAgICAgPyBgJHtsaXN0SWR9LSR7YWN0aXZlSW5kZXh9YFxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXt2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5uYW1lIHx8ICdQYW50b25lIGNvbG91cid9XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVJbnB1dH1cbiAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9J1NlYXJjaCBQYW50b25lLCBlLmcuIDE4NSBDJ1xuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogc2VsZWN0ZWQgJiYgIW9wZW4gPyA0MCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhZGRpbmdSaWdodDogMzIsXG4gICAgICAgICAgfX1cbiAgICAgICAgICB0eXBlPSd0ZXh0J1xuICAgICAgICAgIGF1dG9Db21wbGV0ZT0nb2ZmJ1xuICAgICAgICAgIHZhbHVlPXtvcGVuID8gcXVlcnkgOiBzZWxlY3RlZD8uY29kZSB8fCAnJ31cbiAgICAgICAgICBvbkZvY3VzPXsoKSA9PiB7XG4gICAgICAgICAgICBzZXRPcGVuKHRydWUpO1xuICAgICAgICAgICAgc2V0UXVlcnkoJycpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgc2V0UXVlcnkoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgICAgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgIHJpZ2h0OiAxMixcbiAgICAgICAgICAgIHRvcDogJzUwJScsXG4gICAgICAgICAgICBtYXJnaW5Ub3A6IC0yLFxuICAgICAgICAgICAgYm9yZGVyTGVmdDogJzVweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICBib3JkZXJSaWdodDogJzVweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICBib3JkZXJUb3A6ICc2cHggc29saWQgY3VycmVudENvbG9yJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuNTUsXG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiAnbm9uZScsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAge3Nob3dMaXN0ICYmIChcbiAgICAgICAgICA8dWxcbiAgICAgICAgICAgIGlkPXtsaXN0SWR9XG4gICAgICAgICAgICByb2xlPSdsaXN0Ym94J1xuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIHpJbmRleDogMzAsXG4gICAgICAgICAgICAgIHRvcDogJzEwMCUnLFxuICAgICAgICAgICAgICBsZWZ0OiAwLFxuICAgICAgICAgICAgICByaWdodDogMCxcbiAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAyNDAsXG4gICAgICAgICAgICAgIG1hcmdpbjogJzRweCAwIDAnLFxuICAgICAgICAgICAgICBwYWRkaW5nOiA0LFxuICAgICAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgICAgICAgbGlzdFN0eWxlOiAnbm9uZScsXG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJyxcbiAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMiknLFxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDgsXG4gICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgOHB4IDI0cHggcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttYXRjaGVzLmxlbmd0aCA9PT0gMCA/IChcbiAgICAgICAgICAgICAgPGxpIHN0eWxlPXt7IHBhZGRpbmc6ICc4cHggMTBweCcsIGNvbG9yOiAnIzZiNzI4MCcgfX0+XG4gICAgICAgICAgICAgICAgTm8gbWF0Y2hpbmcgUGFudG9uZSBjb2xvdXJzXG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICBtYXRjaGVzLm1hcCgoY29sb3VyLCBpbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAga2V5PXtjb2xvdXIuY29kZX1cbiAgICAgICAgICAgICAgICAgIGlkPXtgJHtsaXN0SWR9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICAgIHJvbGU9J29wdGlvbidcbiAgICAgICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2ZpZWxkLnZhbHVlID09PSBjb2xvdXIuY29kZX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgY2hvb3NlKGNvbG91ci5jb2RlKTtcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEFjdGl2ZUluZGV4KGluZGV4KX1cbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGdhcDogMTAsXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggMTBweCcsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiAncG9pbnRlcicsXG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgICAgICAgICAgICAgaW5kZXggPT09IGFjdGl2ZUluZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdyZ2JhKDM3LCA5OSwgMjM1LCAwLjA4KSdcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTgsXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOCxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogY29sb3VyLmhleCxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLDAsMCwwLjEyKScsXG4gICAgICAgICAgICAgICAgICAgICAgZmxleDogJzAgMCBhdXRvJyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB7Y29sb3VyLmNvZGV9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAgPFZpZXdBbGxDb2xvdXJzQnV0dG9uXG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgIHNldFF1ZXJ5KCcnKTtcbiAgICAgICAgICBzZXRCcm93c2VyT3Blbih0cnVlKTtcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICA8UGFudG9uZUNvbG91ckJyb3dzZXJcbiAgICAgICAgb3Blbj17YnJvd3Nlck9wZW59XG4gICAgICAgIHRpdGxlPSdBbGwgUGFudG9uZSBjb2xvdXJzJ1xuICAgICAgICBkZXNjcmlwdGlvbj0nU2Nyb2xsIHRoZSBsaWJyYXJ5IG9yIHNlYXJjaCBmb3IgYSBjb2RlLiBTd2F0Y2hlcyBhcmUgc2NyZWVuIGFwcHJveGltYXRpb25zLidcbiAgICAgICAgc3dhdGNoZXM9e0xJQlJBUllfU1dBVENIRVN9XG4gICAgICAgIHNlbGVjdGVkS2V5cz17c2VsZWN0ZWQgPyBbc2VsZWN0ZWQuY29kZV0gOiBbXX1cbiAgICAgICAgc2hvd0Jvb2tzXG4gICAgICAgIG9uQ2xvc2U9eygpID0+IHNldEJyb3dzZXJPcGVuKGZhbHNlKX1cbiAgICAgICAgb25TZWxlY3Q9eyhzd2F0Y2gpID0+IGNob29zZShzd2F0Y2guY29kZSl9XG4gICAgICAvPlxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUgsaUJBQUFGLENBQUEsOEJBQUFNLE1BQUEsWUFBQU4sQ0FBQSxDQUFBTSxNQUFBLENBQUFDLFFBQUEsYUFBQVAsQ0FBQSx1QkFBQVEsS0FBQSxDQUFBQyxJQUFBLENBQUFULENBQUE7QUFBQSxTQUFBQyxtQkFBQUQsQ0FBQSxRQUFBUSxLQUFBLENBQUFFLE9BQUEsQ0FBQVYsQ0FBQSxVQUFBVyxpQkFBQSxDQUFBWCxDQUFBO0FBQUEsU0FBQVksZUFBQVosQ0FBQSxFQUFBYSxDQUFBLFdBQUFDLGVBQUEsQ0FBQWQsQ0FBQSxLQUFBZSxxQkFBQSxDQUFBZixDQUFBLEVBQUFhLENBQUEsS0FBQVYsMkJBQUEsQ0FBQUgsQ0FBQSxFQUFBYSxDQUFBLEtBQUFHLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQVgsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFpQixDQUFBLFFBQUFqQixDQUFBLDJCQUFBQSxDQUFBLFNBQUFXLGlCQUFBLENBQUFYLENBQUEsRUFBQWlCLENBQUEsT0FBQUMsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FB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
|
|
@@ -4,12 +4,14 @@ interface Props {
|
|
|
4
4
|
inputType?: string;
|
|
5
5
|
name: string;
|
|
6
6
|
variation: any;
|
|
7
|
+
afterOptions?: React.ReactNode;
|
|
7
8
|
}
|
|
8
9
|
export declare const VariationSelectElements: React.FC<Props>;
|
|
9
10
|
interface FieldProps {
|
|
10
11
|
disabled?: boolean;
|
|
11
12
|
name: string;
|
|
12
13
|
variation: any;
|
|
14
|
+
afterOptions?: React.ReactNode;
|
|
13
15
|
}
|
|
14
16
|
export declare const VariationSelectImage: (props: FieldProps) => React.JSX.Element;
|
|
15
17
|
export declare const VariationSelectColour: (props: FieldProps) => React.JSX.Element;
|
|
@@ -101,7 +101,8 @@ export var VariationSelectElements = function VariationSelectElements(_ref2) {
|
|
|
101
101
|
_ref2$inputType = _ref2.inputType,
|
|
102
102
|
inputType = _ref2$inputType === void 0 ? 'image' : _ref2$inputType,
|
|
103
103
|
name = _ref2.name,
|
|
104
|
-
variation = _ref2.variation
|
|
104
|
+
variation = _ref2.variation,
|
|
105
|
+
afterOptions = _ref2.afterOptions;
|
|
105
106
|
var _variation$selectable = variation.selectableOptions,
|
|
106
107
|
selectableOptions = _variation$selectable === void 0 ? [] : _variation$selectable;
|
|
107
108
|
var isImage = inputType === 'image';
|
|
@@ -123,7 +124,7 @@ export var VariationSelectElements = function VariationSelectElements(_ref2) {
|
|
|
123
124
|
variation: variation
|
|
124
125
|
}, "variation-option-".concat(option.optionId, "-").concat(index));
|
|
125
126
|
})
|
|
126
|
-
}), /*#__PURE__*/_jsx(VariationError, {
|
|
127
|
+
}), afterOptions, /*#__PURE__*/_jsx(VariationError, {
|
|
127
128
|
name: name
|
|
128
129
|
})]
|
|
129
130
|
});
|
|
@@ -138,4 +139,4 @@ export var VariationSelectColour = function VariationSelectColour(props) {
|
|
|
138
139
|
inputType: "colour"
|
|
139
140
|
}));
|
|
140
141
|
};
|
|
141
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJuIiwiUmVhY3QiLCJ1c2VDb250cm9sbGVyIiwiaXNCb29sZWFuIiwiVmFyaWF0aW9uT3B0aW9uQ29sb3VyIiwiVmFyaWF0aW9uT3B0aW9uSW1hZ2UiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiZGV0ZXJtaW5lQm9vbGVhbiIsIm9wdGlvblR5cGUiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJ2YXJpYXRpb25GaWVsZCIsIm11bHRpcGxlU2VsZWN0Iiwic2VsbGVyUHJvZHVjdEVkaXRhYmxlIiwiVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50IiwiX3JlZiIsImRpc2FibGVkIiwiaW5kZXgiLCJpbnB1dFR5cGUiLCJvcHRpb24iLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiZ2V0UXVvdGUiLCJfdXNlQ29udHJvbGxlciIsImNvbmNhdCIsImZpZWxkIiwib3B0aW9uSWQiLCJpbnB1dElkIiwiYWN0aXZlSWRzIiwibWFwIiwiQm9vbGVhbiIsImlzQWN0aXZlIiwiaW5jbHVkZXMiLCJvcHRpb25JbnB1dFR5cGUiLCJkb0NsaWNrIiwidXBkYXRlZElkcyIsImV4aXN0aW5nSWQiLCJvbkNoYW5nZSIsImpvaW4iLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImNoZWNrZWQiLCJ0eXBlIiwiaWQiLCJpc0NoZWNrZWQiLCJWYXJpYXRpb25TZWxlY3RFbGVtZW50cyIsIl9yZWYyIiwiX3JlZjIkaW5wdXRUeXBlIiwiX3ZhcmlhdGlvbiRzZWxlY3RhYmxlIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJpc0ltYWdlIiwiY2xhc3NOYW1lIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiVmFyaWF0aW9uU2VsZWN0SW1hZ2UiLCJwcm9wcyIsIlZhcmlhdGlvblNlbGVjdENvbG91ciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgVmFyaWF0aW9uT3B0aW9uQ29sb3VyIGZyb20gJy4vVmFyaWF0aW9uT3B0aW9uQ29sb3VyJztcbmltcG9ydCBWYXJpYXRpb25PcHRpb25JbWFnZSBmcm9tICcuL1ZhcmlhdGlvbk9wdGlvbkltYWdlJztcbmltcG9ydCBWYXJpYXRpb25FcnJvciBmcm9tICcuL1ZhcmlhdGlvbkVycm9yJztcbmltcG9ydCBWYXJpYXRpb25MYWJlbCBmcm9tICcuL1ZhcmlhdGlvbkxhYmVsJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBkZXRlcm1pbmVCb29sZWFuKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblR5cGUodmFyaWF0aW9uOiBhbnkpIHtcbiAgY29uc3QgeyBtdWx0aXBsZVNlbGVjdCwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlIH0gPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBkZXRlcm1pbmVCb29sZWFuKG11bHRpcGxlU2VsZWN0KSB8fFxuICAgIGRldGVybWluZUJvb2xlYW4oc2VsbGVyUHJvZHVjdEVkaXRhYmxlKVxuICAgID8gJ2NoZWNrYm94J1xuICAgIDogJ3JhZGlvJztcbn1cblxuaW50ZXJmYWNlIE9wdGlvblByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbmRleDogbnVtYmVyO1xuICBpbnB1dFR5cGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkZpZWxkT3B0aW9uRWxlbWVudCh7XG4gIGRpc2FibGVkLFxuICBpbmRleCxcbiAgaW5wdXRUeXBlLFxuICBuYW1lLFxuICBvcHRpb24sXG4gIHZhcmlhdGlvbixcbn06IE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IHsgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCB7IG9wdGlvbklkIH0gPSBvcHRpb247XG4gIGNvbnN0IGlucHV0SWQgPSBgJHtuYW1lfS5vcHRpb25zLmlkLSR7b3B0aW9uSWR9YDtcbiAgY29uc3QgYWN0aXZlSWRzID0gc3BsaXRTZWxlY3RlZE9wdGlvbnMoZmllbGQudmFsdWUpLm1hcChTdHJpbmcpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSk7XG4gIGNvbnN0IG9wdGlvbklucHV0VHlwZSA9IG9wdGlvblR5cGUodmFyaWF0aW9uKTtcbiAgY29uc3QgZG9DbGljayA9ICgpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5hY3RpdmVJZHNdO1xuXG4gICAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSB8fCBvcHRpb25JbnB1dFR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIC8vIENoZWNrYm94IExvZ2ljXG4gICAgICBpZiAoIXVwZGF0ZWRJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSkpIHtcbiAgICAgICAgdXBkYXRlZElkcy5wdXNoKFN0cmluZyhvcHRpb25JZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgIChleGlzdGluZ0lkKSA9PiBleGlzdGluZ0lkICE9PSBTdHJpbmcob3B0aW9uSWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25JbnB1dFR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgIC8vIFJhZGlvIExvZ2ljXG4gICAgICB1cGRhdGVkSWRzID0gW1N0cmluZyhvcHRpb25JZCldO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGlucHV0XG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgdmFsdWU9e29wdGlvbklkfVxuICAgICAgICB0eXBlPXtvcHRpb25JbnB1dFR5cGV9XG4gICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICBuYW1lPXtgJHtuYW1lfS52YWx1ZWB9XG4gICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB0cnVlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuICAgICAge2lucHV0VHlwZSA9PT0gJ2ltYWdlJyA/IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkltYWdlXG4gICAgICAgICAgZG9DbGljaz17ZG9DbGlja31cbiAgICAgICAgICBpc0NoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkNvbG91clxuICAgICAgICAgIGRvQ2xpY2s9e2RvQ2xpY2t9XG4gICAgICAgICAgaXNDaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xufVxuXG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0RWxlbWVudHM6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGRpc2FibGVkLFxuICBpbnB1dFR5cGUgPSAnaW1hZ2UnLFxuICBuYW1lLFxuICB2YXJpYXRpb24sXG59KSA9PiB7XG4gIGNvbnN0IHsgc2VsZWN0YWJsZU9wdGlvbnMgPSBbXSB9ID0gdmFyaWF0aW9uO1xuICBjb25zdCBpc0ltYWdlID0gaW5wdXRUeXBlID09PSAnaW1hZ2UnO1xuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtpc0ltYWdlID8gJ21lcmNoaS1pbWFnZS1zZWxlY3QtY29udGFpbmVyJyA6ICcnfT5cbiAgICAgIDxWYXJpYXRpb25MYWJlbFxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICB2YXJpYXRpb25DbGFzc05hbWU9e2BtZXJjaGktZW1iZWQtZm9ybV9pbnB1dCR7XG4gICAgICAgICAgaXNJbWFnZSA/ICctaW1hZ2UnIDogJydcbiAgICAgICAgfS1zZWxlY3RgfVxuICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgaXNJbWFnZVxuICAgICAgICAgICAgPyAnbWVyY2hpLWVtYmVkLWZvcm1faW1hZ2Utc2VsZWN0LW9wdGlvbi1jb250YWluZXInXG4gICAgICAgICAgICA6ICdtZXJjaGktZW1iZWQtZm9ybV9jb2xvci1zZWxlY3QtY29udGFpbmVyJ1xuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIHtzb3J0QnlQb3NpdGlvbihzZWxlY3RhYmxlT3B0aW9ucykubWFwKChvcHRpb246IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKFxuICAgICAgICAgIDxWYXJpYXRpb25GaWVsZE9wdGlvbkVsZW1lbnRcbiAgICAgICAgICAgIGtleT17YHZhcmlhdGlvbi1vcHRpb24tJHtvcHRpb24ub3B0aW9uSWR9LSR7aW5kZXh9YH1cbiAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgIGlucHV0VHlwZT17aW5wdXRUeXBlfVxuICAgICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxWYXJpYXRpb25FcnJvciBuYW1lPXtuYW1lfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuaW50ZXJmYWNlIEZpZWxkUHJvcHMge1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RJbWFnZSA9IChwcm9wczogRmllbGRQcm9wcykgPT4gKFxuICA8VmFyaWF0aW9uU2VsZWN0RWxlbWVudHMgey4uLnByb3BzfSBpbnB1dFR5cGU9J2ltYWdlJyAvPlxuKTtcbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RDb2xvdXIgPSAocHJvcHM6IEZpZWxkUHJvcHMpID0+IChcbiAgPFZhcmlhdGlvblNlbGVjdEVsZW1lbnRzIHsuLi5wcm9wc30gaW5wdXRUeXBlPSdjb2xvdXInIC8+XG4pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUFDLFNBQUFBLFFBQUFDLENBQUEs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
|
|
142
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsImEiLCJfYXJyYXlMaWtlVG9BcnJheSIsInRvU3RyaW5nIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJuIiwiUmVhY3QiLCJ1c2VDb250cm9sbGVyIiwiaXNCb29sZWFuIiwiVmFyaWF0aW9uT3B0aW9uQ29sb3VyIiwiVmFyaWF0aW9uT3B0aW9uSW1hZ2UiLCJWYXJpYXRpb25FcnJvciIsIlZhcmlhdGlvbkxhYmVsIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJxdW90ZUFmdGVyRmllbGRDaGFuZ2UiLCJzb3J0QnlQb3NpdGlvbiIsInNwbGl0U2VsZWN0ZWRPcHRpb25zIiwianN4IiwiX2pzeCIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwianN4cyIsIl9qc3hzIiwiZGV0ZXJtaW5lQm9vbGVhbiIsIm9wdGlvblR5cGUiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYiLCJ2YXJpYXRpb25GaWVsZCIsIm11bHRpcGxlU2VsZWN0Iiwic2VsbGVyUHJvZHVjdEVkaXRhYmxlIiwiVmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50IiwiX3JlZiIsImRpc2FibGVkIiwiaW5kZXgiLCJpbnB1dFR5cGUiLCJvcHRpb24iLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjb250cm9sIiwiZ2V0UXVvdGUiLCJfdXNlQ29udHJvbGxlciIsImNvbmNhdCIsImZpZWxkIiwib3B0aW9uSWQiLCJpbnB1dElkIiwiYWN0aXZlSWRzIiwibWFwIiwiQm9vbGVhbiIsImlzQWN0aXZlIiwiaW5jbHVkZXMiLCJvcHRpb25JbnB1dFR5cGUiLCJkb0NsaWNrIiwidXBkYXRlZElkcyIsImV4aXN0aW5nSWQiLCJvbkNoYW5nZSIsImpvaW4iLCJjaGlsZHJlbiIsInN0eWxlIiwiZGlzcGxheSIsImNoZWNrZWQiLCJ0eXBlIiwiaWQiLCJpc0NoZWNrZWQiLCJWYXJpYXRpb25TZWxlY3RFbGVtZW50cyIsIl9yZWYyIiwiX3JlZjIkaW5wdXRUeXBlIiwiYWZ0ZXJPcHRpb25zIiwiX3ZhcmlhdGlvbiRzZWxlY3RhYmxlIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJpc0ltYWdlIiwiY2xhc3NOYW1lIiwidmFyaWF0aW9uQ2xhc3NOYW1lIiwiVmFyaWF0aW9uU2VsZWN0SW1hZ2UiLCJwcm9wcyIsIlZhcmlhdGlvblNlbGVjdENvbG91ciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL1ZhcmlhdGlvblNlbGVjdEVsZW1lbnRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVyIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGlzQm9vbGVhbiB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgVmFyaWF0aW9uT3B0aW9uQ29sb3VyIGZyb20gJy4vVmFyaWF0aW9uT3B0aW9uQ29sb3VyJztcbmltcG9ydCBWYXJpYXRpb25PcHRpb25JbWFnZSBmcm9tICcuL1ZhcmlhdGlvbk9wdGlvbkltYWdlJztcbmltcG9ydCBWYXJpYXRpb25FcnJvciBmcm9tICcuL1ZhcmlhdGlvbkVycm9yJztcbmltcG9ydCBWYXJpYXRpb25MYWJlbCBmcm9tICcuL1ZhcmlhdGlvbkxhYmVsJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCB7IHF1b3RlQWZ0ZXJGaWVsZENoYW5nZSB9IGZyb20gJy4vcXVvdGVBZnRlckZpZWxkQ2hhbmdlJztcbmltcG9ydCB7IHNvcnRCeVBvc2l0aW9uLCBzcGxpdFNlbGVjdGVkT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMnO1xuXG5mdW5jdGlvbiBkZXRlcm1pbmVCb29sZWFuKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSkgPyB2YWx1ZSA6IHZhbHVlID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG59XG5cbmZ1bmN0aW9uIG9wdGlvblR5cGUodmFyaWF0aW9uOiBhbnkpIHtcbiAgY29uc3QgeyBtdWx0aXBsZVNlbGVjdCwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlIH0gPSB2YXJpYXRpb24udmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBkZXRlcm1pbmVCb29sZWFuKG11bHRpcGxlU2VsZWN0KSB8fFxuICAgIGRldGVybWluZUJvb2xlYW4oc2VsbGVyUHJvZHVjdEVkaXRhYmxlKVxuICAgID8gJ2NoZWNrYm94J1xuICAgIDogJ3JhZGlvJztcbn1cblxuaW50ZXJmYWNlIE9wdGlvblByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbmRleDogbnVtYmVyO1xuICBpbnB1dFR5cGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uOiBhbnk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkZpZWxkT3B0aW9uRWxlbWVudCh7XG4gIGRpc2FibGVkLFxuICBpbmRleCxcbiAgaW5wdXRUeXBlLFxuICBuYW1lLFxuICBvcHRpb24sXG4gIHZhcmlhdGlvbixcbn06IE9wdGlvblByb3BzKSB7XG4gIGNvbnN0IHsgY29udHJvbCwgZ2V0UXVvdGUgfSA9IHVzZU1lcmNoaUZvcm1Db250ZXh0KCk7XG4gIGNvbnN0IHsgZmllbGQgfSA9IHVzZUNvbnRyb2xsZXIoeyBuYW1lOiBgJHtuYW1lfS52YWx1ZWAsIGNvbnRyb2wgfSk7XG4gIGNvbnN0IHsgdmFyaWF0aW9uRmllbGQgfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgeyBzZWxsZXJQcm9kdWN0RWRpdGFibGUgfSA9IHZhcmlhdGlvbkZpZWxkO1xuICBjb25zdCB7IG9wdGlvbklkIH0gPSBvcHRpb247XG4gIGNvbnN0IGlucHV0SWQgPSBgJHtuYW1lfS5vcHRpb25zLmlkLSR7b3B0aW9uSWR9YDtcbiAgY29uc3QgYWN0aXZlSWRzID0gc3BsaXRTZWxlY3RlZE9wdGlvbnMoZmllbGQudmFsdWUpLm1hcChTdHJpbmcpLmZpbHRlcihCb29sZWFuKTtcbiAgY29uc3QgaXNBY3RpdmUgPSBhY3RpdmVJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSk7XG4gIGNvbnN0IG9wdGlvbklucHV0VHlwZSA9IG9wdGlvblR5cGUodmFyaWF0aW9uKTtcbiAgY29uc3QgZG9DbGljayA9ICgpID0+IHtcbiAgICBsZXQgdXBkYXRlZElkcyA9IFsuLi5hY3RpdmVJZHNdO1xuXG4gICAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSB8fCBvcHRpb25JbnB1dFR5cGUgPT09ICdjaGVja2JveCcpIHtcbiAgICAgIC8vIENoZWNrYm94IExvZ2ljXG4gICAgICBpZiAoIXVwZGF0ZWRJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbklkKSkpIHtcbiAgICAgICAgdXBkYXRlZElkcy5wdXNoKFN0cmluZyhvcHRpb25JZCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdXBkYXRlZElkcyA9IHVwZGF0ZWRJZHMuZmlsdGVyKFxuICAgICAgICAgIChleGlzdGluZ0lkKSA9PiBleGlzdGluZ0lkICE9PSBTdHJpbmcob3B0aW9uSWQpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChvcHRpb25JbnB1dFR5cGUgPT09ICdyYWRpbycpIHtcbiAgICAgIC8vIFJhZGlvIExvZ2ljXG4gICAgICB1cGRhdGVkSWRzID0gW1N0cmluZyhvcHRpb25JZCldO1xuICAgIH1cbiAgICBxdW90ZUFmdGVyRmllbGRDaGFuZ2UoXG4gICAgICBmaWVsZC5vbkNoYW5nZSxcbiAgICAgIGdldFF1b3RlLFxuICAgICAgdXBkYXRlZElkcy5maWx0ZXIoQm9vbGVhbikuam9pbignLCcpXG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGlucHV0XG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICBjaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgdmFsdWU9e29wdGlvbklkfVxuICAgICAgICB0eXBlPXtvcHRpb25JbnB1dFR5cGV9XG4gICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICBuYW1lPXtgJHtuYW1lfS52YWx1ZWB9XG4gICAgICAgIG9uQ2hhbmdlPXsoKSA9PiB0cnVlfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAvPlxuICAgICAge2lucHV0VHlwZSA9PT0gJ2ltYWdlJyA/IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkltYWdlXG4gICAgICAgICAgZG9DbGljaz17ZG9DbGlja31cbiAgICAgICAgICBpc0NoZWNrZWQ9e2lzQWN0aXZlfVxuICAgICAgICAgIG9wdGlvbj17b3B0aW9ufVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbkNvbG91clxuICAgICAgICAgIGRvQ2xpY2s9e2RvQ2xpY2t9XG4gICAgICAgICAgaXNDaGVja2VkPXtpc0FjdGl2ZX1cbiAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gICk7XG59XG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW5wdXRUeXBlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhcmlhdGlvbjogYW55O1xuICBhZnRlck9wdGlvbnM/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBjb25zdCBWYXJpYXRpb25TZWxlY3RFbGVtZW50czogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgZGlzYWJsZWQsXG4gIGlucHV0VHlwZSA9ICdpbWFnZScsXG4gIG5hbWUsXG4gIHZhcmlhdGlvbixcbiAgYWZ0ZXJPcHRpb25zLFxufSkgPT4ge1xuICBjb25zdCB7IHNlbGVjdGFibGVPcHRpb25zID0gW10gfSA9IHZhcmlhdGlvbjtcbiAgY29uc3QgaXNJbWFnZSA9IGlucHV0VHlwZSA9PT0gJ2ltYWdlJztcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17aXNJbWFnZSA/ICdtZXJjaGktaW1hZ2Utc2VsZWN0LWNvbnRhaW5lcicgOiAnJ30+XG4gICAgICA8VmFyaWF0aW9uTGFiZWxcbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdmFyaWF0aW9uQ2xhc3NOYW1lPXtgbWVyY2hpLWVtYmVkLWZvcm1faW5wdXQke1xuICAgICAgICAgIGlzSW1hZ2UgPyAnLWltYWdlJyA6ICcnXG4gICAgICAgIH0tc2VsZWN0YH1cbiAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgIGlzSW1hZ2VcbiAgICAgICAgICAgID8gJ21lcmNoaS1lbWJlZC1mb3JtX2ltYWdlLXNlbGVjdC1vcHRpb24tY29udGFpbmVyJ1xuICAgICAgICAgICAgOiAnbWVyY2hpLWVtYmVkLWZvcm1fY29sb3Itc2VsZWN0LWNvbnRhaW5lcidcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7c29ydEJ5UG9zaXRpb24oc2VsZWN0YWJsZU9wdGlvbnMpLm1hcCgob3B0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICA8VmFyaWF0aW9uRmllbGRPcHRpb25FbGVtZW50XG4gICAgICAgICAgICBrZXk9e2B2YXJpYXRpb24tb3B0aW9uLSR7b3B0aW9uLm9wdGlvbklkfS0ke2luZGV4fWB9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICBpbnB1dFR5cGU9e2lucHV0VHlwZX1cbiAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICBvcHRpb249e29wdGlvbn1cbiAgICAgICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgICB7YWZ0ZXJPcHRpb25zfVxuICAgICAgPFZhcmlhdGlvbkVycm9yIG5hbWU9e25hbWV9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgRmllbGRQcm9wcyB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YXJpYXRpb246IGFueTtcbiAgYWZ0ZXJPcHRpb25zPzogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0SW1hZ2UgPSAocHJvcHM6IEZpZWxkUHJvcHMpID0+IChcbiAgPFZhcmlhdGlvblNlbGVjdEVsZW1lbnRzIHsuLi5wcm9wc30gaW5wdXRUeXBlPSdpbWFnZScgLz5cbik7XG5leHBvcnQgY29uc3QgVmFyaWF0aW9uU2VsZWN0Q29sb3VyID0gKHByb3BzOiBGaWVsZFByb3BzKSA9PiAoXG4gIDxWYXJpYXRpb25TZWxlY3RFbGVtZW50cyB7Li4ucHJvcHN9IGlucHV0VHlwZT0nY29sb3VyJyAvPlxuKTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQyxTQUFBQSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMsQ0FBQTtBQUFBLFNBQUFLLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQVgsQ0FBQSxHQUFBUyxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQVksTUFBQSxXQUFBTCxDQUFBLFdBQUFFLE1BQUEsQ0FBQUksd0JBQUEsQ0FBQVAsQ0FBQSxFQUFBQyxDQUFBLEVBQUFPLFVBQUEsT0FBQU4sQ0FBQSxDQUFBTyxJQUFBLENBQUFDLEtBQUEsQ0FBQVIsQ0FBQSxFQUFBUixDQUFBLFlBQUFRLENBQUE7QUFBQSxTQUFBUyxjQUFBWCxDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBVyxTQUFBLENBQUFDLE1BQUEsRUFBQVosQ0FBQSxVQUFBQyxDQUFBLFdBQUFVLFNBQUEsQ0FBQVgsQ0FBQSxJQUFBVyxTQUFBLENBQUFYLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBWSxPQUFBLFdBQUFiLENBQUEsSUFBQWMsZUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxD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
|