@1money/react-ui 1.12.3 → 1.12.4-alpha.1
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.
|
@@ -244,6 +244,18 @@ var Select = exports.Select = function Select(props) {
|
|
|
244
244
|
var debouncedHandleScroll = (0, _lodash2["default"])(function () {
|
|
245
245
|
return setIsScrolling(false);
|
|
246
246
|
}, 500);
|
|
247
|
+
var refreshDOM = (0, _react.useCallback)(function () {
|
|
248
|
+
var _a, _b;
|
|
249
|
+
var ele = (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
250
|
+
if (!ele) return;
|
|
251
|
+
var originZIndex = ele.style.zIndex;
|
|
252
|
+
if (originZIndex != undefined) {
|
|
253
|
+
ele.style.zIndex = "".concat(parseInt(originZIndex) + 1);
|
|
254
|
+
setTimeout(function () {
|
|
255
|
+
ele.style.zIndex = originZIndex;
|
|
256
|
+
}, 0);
|
|
257
|
+
}
|
|
258
|
+
}, []);
|
|
247
259
|
var SelectComponent = (0, _react.useCallback)(function (props) {
|
|
248
260
|
return multiple ? (0, _jsxRuntime.jsx)(_multiselect.MultiSelect, Object.assign({
|
|
249
261
|
unselectable: unselectable,
|
|
@@ -312,9 +324,75 @@ var Select = exports.Select = function Select(props) {
|
|
|
312
324
|
setSelected(value);
|
|
313
325
|
}
|
|
314
326
|
}, [value]);
|
|
327
|
+
// @ts-expect-error
|
|
315
328
|
(0, _react.useImperativeHandle)(ref !== null && ref !== void 0 ? ref : _ref, function () {
|
|
316
|
-
|
|
317
|
-
|
|
329
|
+
var _a, _b;
|
|
330
|
+
return multiple ? {
|
|
331
|
+
props: (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.props,
|
|
332
|
+
focus: function focus() {
|
|
333
|
+
var _a, _b;
|
|
334
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
335
|
+
},
|
|
336
|
+
hide: function hide() {
|
|
337
|
+
var _a, _b;
|
|
338
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.hide) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
339
|
+
},
|
|
340
|
+
show: function show() {
|
|
341
|
+
var _a, _b;
|
|
342
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
343
|
+
},
|
|
344
|
+
getElement: function getElement() {
|
|
345
|
+
var _a, _b;
|
|
346
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
347
|
+
},
|
|
348
|
+
getInput: function getInput() {
|
|
349
|
+
var _a, _b;
|
|
350
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getInput) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
351
|
+
},
|
|
352
|
+
getOverlay: function getOverlay() {
|
|
353
|
+
var _a, _b;
|
|
354
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
355
|
+
}
|
|
356
|
+
} : {
|
|
357
|
+
props: (_b = selectRef.current) === null || _b === void 0 ? void 0 : _b.props,
|
|
358
|
+
clear: function clear() {
|
|
359
|
+
var _a, _b;
|
|
360
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.clear) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
361
|
+
},
|
|
362
|
+
focus: function focus() {
|
|
363
|
+
var _a, _b;
|
|
364
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
365
|
+
},
|
|
366
|
+
hide: function hide() {
|
|
367
|
+
var _a, _b;
|
|
368
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.hide) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
369
|
+
},
|
|
370
|
+
show: function show() {
|
|
371
|
+
var _a, _b;
|
|
372
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.show) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
373
|
+
},
|
|
374
|
+
getElement: function getElement() {
|
|
375
|
+
var _a, _b;
|
|
376
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getElement) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
377
|
+
},
|
|
378
|
+
getInput: function getInput() {
|
|
379
|
+
var _a, _b;
|
|
380
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getInput) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
381
|
+
},
|
|
382
|
+
getOverlay: function getOverlay() {
|
|
383
|
+
var _a, _b;
|
|
384
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getOverlay) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
385
|
+
},
|
|
386
|
+
getFocusInput: function getFocusInput() {
|
|
387
|
+
var _a, _b;
|
|
388
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getFocusInput) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
389
|
+
},
|
|
390
|
+
getVirtualScroller: function getVirtualScroller() {
|
|
391
|
+
var _a, _b;
|
|
392
|
+
return (_b = (_a = selectRef.current) === null || _a === void 0 ? void 0 : _a.getVirtualScroller) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
}, [multiple]);
|
|
318
396
|
return (0, _jsxRuntime.jsx)(SelectWrapper, {
|
|
319
397
|
label: label,
|
|
320
398
|
message: message,
|
|
@@ -376,6 +454,9 @@ var Select = exports.Select = function Select(props) {
|
|
|
376
454
|
onShow: function onShow() {
|
|
377
455
|
setIsOpen(true);
|
|
378
456
|
_onShow === null || _onShow === void 0 ? void 0 : _onShow();
|
|
457
|
+
setTimeout(function () {
|
|
458
|
+
return refreshDOM();
|
|
459
|
+
}, 0);
|
|
379
460
|
},
|
|
380
461
|
dropdownIcon: function dropdownIcon() {
|
|
381
462
|
return (0, _jsxRuntime.jsx)(_Icons.Icons, {
|
|
@@ -412,4 +493,4 @@ var Select = exports.Select = function Select(props) {
|
|
|
412
493
|
};
|
|
413
494
|
Select.CustomDropdown = CustomDropdown;
|
|
414
495
|
var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(Select);
|
|
415
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoMiIsIl9kcm9wZG93biIsIl9tdWx0aXNlbGVjdCIsIl9jbGFzc25hbWVzIiwiX0ljb25zIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJTZWxlY3RXcmFwcGVyIiwibWVtbyIsInByb3BzIiwibGFiZWwiLCJtZXNzYWdlIiwicmVxdWlyZWQiLCJwcmVmaXhDbHMiLCJ3cmFwcGVyQ2xzIiwibGFiZWxDbHMiLCJtZXNzYWdlQ2xzIiwic3VjY2VzcyIsImludmFsaWQiLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJfanN4cyIsImNsYXNzTmFtZSIsIl9qc3giLCJqb2luIiwidHJpbSIsIkN1c3RvbURyb3Bkb3duIiwicmVmIiwiZGF0YUlkIiwiX3Byb3BzJHByZWZpeENscyIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImVkaXRhYmxlIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkY2xhc3NOYW1lIiwic2VsZWN0ZWRUZW1wbGF0ZSIsInRhaWxUZW1wbGF0ZSIsIm9uQ2xpY2siLCJvbkZvY3VzIiwib25CbHVyIiwiaXNDbGlja0luc2lkZSIsInVzZVJlZiIsImRhdGFJZFJlZiIsImxhc3RGb2N1c1JlZiIsInNlbGVjdFJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwic2VsZWN0Q2xzIiwidXNlTWVtbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJmb2N1cyIsImJsdXIiLCJnZXRET01Ob2RlIiwiY3VycmVudCIsInVzZUVmZmVjdCIsImZpbmRDdXN0b21Ecm9wZG93bkRhdGFJZCIsInRhcmdldCIsIl9hIiwiZGF0YXNldCIsInNlbGVjdEN1c3RvbURyb3Bkb3duSWQiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnROb2RlIiwicGFyZW50RWxlbWVudCIsInJlbW92ZUZvY3VzIiwicHJldiIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udGVudEVkaXRhYmxlIiwiYXV0b0ZvY3VzIiwib25JbnB1dCIsInZhbCIsImN1cnJlbnRUYXJnZXQiLCJpbm5lclRleHQiLCJJY29ucyIsIm5hbWUiLCJjb2xvciIsIlNlbGVjdCIsImV4cG9ydHMiLCJpZCIsIl9wcm9wcyRwcmVmaXhDbHMyIiwiX3Byb3BzJHNpemUyIiwiX3Byb3BzJGNsYXNzTmFtZTIiLCJtdWx0aXBsZSIsIm9wdGlvbnMiLCJwYW5lbENsYXNzTmFtZSIsImRlZmF1bHRWYWx1ZSIsIml0ZW1UZW1wbGF0ZSIsIm9uQ2hhbmdlIiwib25IaWRlIiwib25TaG93IiwidW5zZWxlY3RhYmxlIiwicmVzdCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2VsZWN0ZWQiLCJzZXRTZWxlY3RlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiaXNIb3ZlciIsInNldElzSG92ZXIiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsIl9yZWYiLCJBcnJheSIsImlzQXJyYXkiLCJkZWJvdW5jZWRIYW5kbGVTY3JvbGwiLCJkZWJvdW5jZSIsIlNlbGVjdENvbXBvbmVudCIsInVzZUNhbGxiYWNrIiwiTXVsdGlTZWxlY3QiLCJhc3NpZ24iLCJzaG93U2VsZWN0QWxsIiwiY2hlY2tib3hJY29uIiwicmVtb3ZlSWNvbiIsIl9wcm9wcyRpY29uUHJvcHMiLCJpY29uUHJvcHMiLCJvbktleURvd24iLCJ0YWJJbmRleCIsInBhbmVsSGVhZGVyVGVtcGxhdGUiLCJfYiIsIl9jIiwiX2QiLCJfZSIsImZpbHRlckVsZW1lbnQiLCJzZWxlY3RlZE51bSIsIm1ldGFEYXRhIiwidXBkYXRlTW9kZWwiLCJEcm9wZG93biIsImNvbGxhcHNlSWNvbiIsInVuZGVmaW5lZCIsImlzRXF1YWwiLCJmaWx0ZXJQbGFjZWhvbGRlciIsIm9wdGlvbiIsImNsZWFyIiwiZmlsdGVySWNvbiIsImFwcGVuZFRvIiwiZHJvcGRvd25JY29uIiwicHQiLCJ3cmFwcGVyIiwib25TY3JvbGwiLCJjYW5jZWwiLCJwYW5lbCIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm9uVG91Y2hTdGFydCIsIm9uVG91Y2hFbmQiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUROQSxJQUFJUyxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUss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QUFZLEVBQUUsU0FBZEEsWUFBWUEsQ0FBQTtRQUFBLE9BQVEsSUFBQWxJLGVBQUEsRUFBQzZELFlBQUssRUFBQTtVQUFDQyxJQUFJLEVBQUMsYUFBYTtVQUFDQyxLQUFLLEVBQUMsU0FBUztVQUFDdkQsSUFBSSxFQUFFO1FBQUUsQ0FBQSxDQUFJO01BQUE7TUFDMUUySCxFQUFFLEVBQUU7UUFDRkMsT0FBTyxFQUFFO1VBQ1BDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFBLEVBQU87WUFDYmxDLHFCQUFxQixDQUFDbUMsTUFBTSxDQUFBLENBQUU7WUFDOUJ2QyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3BCSSxxQkFBcUIsQ0FBQSxDQUFFO1VBQ3pCO1FEbExJLENDbUxMO1FBQ0RvQyxLQUFLLEVBQUU7VUFDTEMsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFRN0MsVUFBVSxDQUFDLElBQUksQ0FBQztVQUFBO1VBQ3BDOEMsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFROUMsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1VBQ3JDK0MsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFRL0MsVUFBVSxDQUFDLElBQUksQ0FBQztVQUFBO1VBQ3BDZ0QsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUE7WUFBQSxPQUFRaEQsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1FEbEwvQjtNQUNKO0lDbUxILENBQUEsQ0FBQTtFQUNELENBQUEsQ0FDWTtBQUVwQixDQUFDO0FBRUQzQixNQUFNLENBQUM3RCxjQUFjLEdBQUdBLGNBQWM7QUFBQyxJQUFBeUksUUFBQSxHQUFBM0UsT0FBQSwyQkFFeEIsSUFBQWxGLFdBQUksRUFBQ2lGLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlUmVmLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC5pc2VxdWFsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IHsgRHJvcGRvd24gfSBmcm9tICdwcmltZXJlYWN0L2Ryb3Bkb3duJztcbmltcG9ydCB7IE11bHRpU2VsZWN0IH0gZnJvbSAncHJpbWVyZWFjdC9tdWx0aXNlbGVjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuY29uc3QgU2VsZWN0V3JhcHBlciA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgY2hpbGRyZW4sIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIHdyYXBwZXJDbHMpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIFtyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENsc10uam9pbignICcpKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBjaGlsZHJlbiwgbWVzc2FnZSAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIFtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA/IGNsYXNzZXMoJ21lc3NhZ2Utc3VjY2VzcycpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdtZXNzYWdlLWVycm9yJykgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUNsc1xuICAgICAgICAgICAgICAgIF0uam9pbignICcpLnRyaW0oKSksIGNoaWxkcmVuOiBtZXNzYWdlIH0pXSB9KTtcbn0pO1xuY29uc3QgQ3VzdG9tRHJvcGRvd24gPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyByZWYsIGRhdGFJZCwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHNpemUgPSAnbGFyZ2UnLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgZWRpdGFibGUsIHBsYWNlaG9sZGVyID0gJycsIGNsYXNzTmFtZSA9ICcnLCBzZWxlY3RlZFRlbXBsYXRlLCB0YWlsVGVtcGxhdGUsIG9uQ2xpY2ssIG9uRm9jdXMsIG9uQmx1ciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaXNDbGlja0luc2lkZSA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZGF0YUlkUmVmID0gdXNlUmVmKGRhdGFJZCk7XG4gICAgY29uc3QgbGFzdEZvY3VzUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNlbGVjdENscyA9IHVzZU1lbW8oKCkgPT4gY2xhc3Nlcyh2b2lkIDAsIFtcbiAgICAgICAgY2xhc3NlcyhzaXplKSxcbiAgICAgICAgY2xhc3NlcygnY3VzdG9tJyksXG4gICAgICAgIGlzRm9jdXMgPyBjbGFzc2VzKCdmb2N1cycpIDogJycsXG4gICAgICAgIHN1Y2Nlc3MgPyBjbGFzc2VzKCdzdWNjZXNzJykgOiAnJyxcbiAgICAgICAgaW52YWxpZCA/IGNsYXNzZXMoJ2ludmFsaWQnKSA6ICcnLFxuICAgICAgICBkaXNhYmxlZCA/IGNsYXNzZXMoJ2Rpc2FibGVkJykgOiAnJyxcbiAgICAgICAgZWRpdGFibGUgPyBjbGFzc2VzKCdlZGl0YWJsZScpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzRm9jdXMsIHN1Y2Nlc3MsIGludmFsaWQsIGRpc2FibGVkLCBlZGl0YWJsZSwgY2xhc3NOYW1lXSk7XG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICAgIGZvY3VzOiAoKSA9PiBzZXRJc0ZvY3VzKHRydWUpLFxuICAgICAgICBibHVyOiAoKSA9PiBzZXRJc0ZvY3VzKGZhbHNlKSxcbiAgICAgICAgZ2V0RE9NTm9kZTogKCkgPT4gc2VsZWN0UmVmLmN1cnJlbnRcbiAgICB9KSwgW3JlZl0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRhdGFJZFJlZi5jdXJyZW50ID0gZGF0YUlkO1xuICAgIH0sIFtkYXRhSWRdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaXNGb2N1cyAhPT0gbGFzdEZvY3VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGxhc3RGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtpc0ZvY3VzLCBvbkZvY3VzLCBvbkJsdXJdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQgPSAodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIWRhdGFJZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmICgoKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LmRhdGFzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZWxlY3RDdXN0b21Ecm9wZG93bklkKSA9PT0gZGF0YUlkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5IHx8IHRhcmdldCA9PT0gZG9jdW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGFyZ2V0LnBhcmVudE5vZGUgfHwgdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIXBhcmVudClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkKHBhcmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlbW92ZUZvY3VzID0gKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0NsaWNrSW5zaWRlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpc0NsaWNrSW5zaWRlLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRJc0ZvY3VzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcHJldilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQoZS50YXJnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVtb3ZlRm9jdXMpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZW1vdmVGb2N1cyk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBfanN4KFNlbGVjdFdyYXBwZXIsIHsgbGFiZWw6IGxhYmVsLCBtZXNzYWdlOiBtZXNzYWdlLCByZXF1aXJlZDogcmVxdWlyZWQsIHByZWZpeENsczogcHJlZml4Q2xzLCB3cmFwcGVyQ2xzOiB3cmFwcGVyQ2xzLCBsYWJlbENsczogbGFiZWxDbHMsIG1lc3NhZ2VDbHM6IG1lc3NhZ2VDbHMsIHN1Y2Nlc3M6IHN1Y2Nlc3MsIGludmFsaWQ6IGludmFsaWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBzZWxlY3RSZWYsIGNsYXNzTmFtZTogc2VsZWN0Q2xzLCBjb250ZW50RWRpdGFibGU6ICFkaXNhYmxlZCA/IGVkaXRhYmxlIDogZmFsc2UsIGF1dG9Gb2N1czogZWRpdGFibGUsIFwiZGF0YS1wbGFjZWhvbGRlclwiOiBwbGFjZWhvbGRlciwgXCJkYXRhLXZhbHVlXCI6IHZhbHVlLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNDbGlja0luc2lkZS5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhwcmV2ID0+ICFwcmV2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DbGljayA9PT0gbnVsbCB8fCBvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsaWNrKGUpO1xuICAgICAgICAgICAgfSwgb25JbnB1dDogZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGUuY3VycmVudFRhcmdldC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5pbm5lclRleHQgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUodmFsKTtcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbIWRpc2FibGVkICYmIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBzZWxlY3RlZFRlbXBsYXRlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkVGVtcGxhdGUoaXNGb2N1cylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1c3RvbS1wbGFjZWhvbGRlcicpLCBjaGlsZHJlbjogcGxhY2Vob2xkZXIgfSksIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiB0YWlsVGVtcGxhdGUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFpbFRlbXBsYXRlKGlzRm9jdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25Eb3duJywgY29sb3I6ICcjMTMxMzEzJywgc2l6ZTogMjAsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2N1c3RvbS10YWlsJywgaXNGb2N1cyA/IGNsYXNzZXMoJ2N1c3RvbS10YWlsLWZvY3VzJykgOiAnJykgfSldIH0pIH0pO1xufTtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSBwcm9wcyA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgaWQsIHJlZiwgbmFtZSwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIHBsYWNlaG9sZGVyLCBjbGFzc05hbWUgPSAnJywgbXVsdGlwbGUsIG9wdGlvbnMsIHBhbmVsQ2xhc3NOYW1lLCBkZWZhdWx0VmFsdWUsIGl0ZW1UZW1wbGF0ZSwgb25DaGFuZ2UsIG9uSGlkZSwgb25TaG93LCB1bnNlbGVjdGFibGUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJpZFwiLCBcInJlZlwiLCBcIm5hbWVcIiwgXCJsYWJlbFwiLCBcIm1lc3NhZ2VcIiwgXCJyZXF1aXJlZFwiLCBcInByZWZpeENsc1wiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJ2YWx1ZVwiLCBcInNpemVcIiwgXCJzdWNjZXNzXCIsIFwiaW52YWxpZFwiLCBcImRpc2FibGVkXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJjbGFzc05hbWVcIiwgXCJtdWx0aXBsZVwiLCBcIm9wdGlvbnNcIiwgXCJwYW5lbENsYXNzTmFtZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIml0ZW1UZW1wbGF0ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25IaWRlXCIsIFwib25TaG93XCIsIFwidW5zZWxlY3RhYmxlXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGUoKF9hID0gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogZGVmYXVsdFZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsKTtcbiAgICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0hvdmVyLCBzZXRJc0hvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgX3JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWxlY3RDbHMgPSB1c2VNZW1vKCgpID0+IGNsYXNzZXModm9pZCAwLCBbXG4gICAgICAgIGNsYXNzZXMoc2l6ZSksXG4gICAgICAgIGlzT3BlbiA/IGNsYXNzZXMoJ3Nob3cnKSA6ICcnLFxuICAgICAgICBzdWNjZXNzID8gY2xhc3Nlcygnc3VjY2VzcycpIDogJycsXG4gICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdpbnZhbGlkJykgOiAnJyxcbiAgICAgICAgZGlzYWJsZWQgPyBjbGFzc2VzKCdkaXNhYmxlZCcpIDogJycsXG4gICAgICAgIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/IHNlbGVjdGVkLmxlbmd0aCA6IHNlbGVjdGVkKSA/IGNsYXNzZXMoJ2ZpbGxlZCcpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzT3Blbiwgc3VjY2Vzcywgc2VsZWN0ZWQsIGludmFsaWQsIGRpc2FibGVkLCBjbGFzc05hbWVdKTtcbiAgICBjb25zdCBkZWJvdW5jZWRIYW5kbGVTY3JvbGwgPSBkZWJvdW5jZSgoKSA9PiBzZXRJc1Njcm9sbGluZyhmYWxzZSksIDUwMCk7XG4gICAgY29uc3QgU2VsZWN0Q29tcG9uZW50ID0gdXNlQ2FsbGJhY2soKHByb3BzKSA9PiBtdWx0aXBsZVxuICAgICAgICA/IF9qc3goTXVsdGlTZWxlY3QsIE9iamVjdC5hc3NpZ24oeyB1bnNlbGVjdGFibGU6IHVuc2VsZWN0YWJsZSwgc2hvd1NlbGVjdEFsbDogZmFsc2UsIGNoZWNrYm94SWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiAxMiwgY29sb3I6ICcjRkVGRUZFJyB9KSwgcmVtb3ZlSWNvbjogcHJvcHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgb25DbGljaywgb25LZXlEb3duLCB0YWJJbmRleCB9ID0gcHJvcHMuaWNvblByb3BzO1xuICAgICAgICAgICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyMxMzEzMTMnLCB0YWJJbmRleDogdGFiSW5kZXgsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ3Rva2VuLXJlbW92ZS1pY29uJyksIG9uQ2xpY2s6IG9uQ2xpY2ssIG9uS2V5RG93bjogb25LZXlEb3duIH0pO1xuICAgICAgICAgICAgfSwgcGFuZWxIZWFkZXJUZW1wbGF0ZTogb3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlckVsZW1lbnQsIHByb3BzIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE51bSA9IChfZCA9IChfYyA9IChfYiA9IChfYSA9IHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5tZXRhRGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnByb3BzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudmFsdWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sZW5ndGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXInKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyLWluZm8nKSwgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNvdW50JyksIGNoaWxkcmVuOiBbc2VsZWN0ZWROdW0sIFwiIHNlbGVjdGVkXCJdIH0pLCBfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNsZWFyJyksIG9uQ2xpY2s6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy51cGRhdGVNb2RlbChlLCBbXSwgW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyNBRTAwMDAnLCB3cmFwcGVyQ2xzOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXItaW5mby1jbGVhci1pY29uJykgfSksIFwiQ2xlYXIgYWxsXCJdIH0pXSB9KSwgKF9lID0gZmlsdGVyRWxlbWVudCA9PT0gbnVsbCB8fCBmaWx0ZXJFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWx0ZXJFbGVtZW50LnByb3BzKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuY2hpbGRyZW5dIH0pO1xuICAgICAgICAgICAgfSB9LCBwcm9wcykpXG4gICAgICAgIDogX2pzeChEcm9wZG93biwgT2JqZWN0LmFzc2lnbih7IGNvbGxhcHNlSWNvbjogbXVsdGlwbGUgPyB2b2lkIDAgOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uVXAnLCBjb2xvcjogJyMxMzEzMTMnLCBzaXplOiAyMCB9KSB9LCBwcm9wcykpLCBbbXVsdGlwbGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhaXNFcXVhbChzZWxlY3RlZCwgdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWVdKTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiAhPT0gbnVsbCAmJiByZWYgIT09IHZvaWQgMCA/IHJlZiA6IF9yZWYsICgpID0+IHNlbGVjdFJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0V3JhcHBlciwgeyBsYWJlbDogbGFiZWwsIG1lc3NhZ2U6IG1lc3NhZ2UsIHJlcXVpcmVkOiByZXF1aXJlZCwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHdyYXBwZXJDbHM6IHdyYXBwZXJDbHMsIGxhYmVsQ2xzOiBsYWJlbENscywgbWVzc2FnZUNsczogbWVzc2FnZUNscywgc3VjY2Vzczogc3VjY2VzcywgaW52YWxpZDogaW52YWxpZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBjaGlsZHJlbjogX2pzeChTZWxlY3RDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgaWQ6IGlkLCByZWY6IHNlbGVjdFJlZiwgbmFtZTogbmFtZSwgZmlsdGVyUGxhY2Vob2xkZXI6ICdTZWFyY2gnLCByZXF1aXJlZDogcmVxdWlyZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgaW52YWxpZDogaW52YWxpZCwgb3B0aW9uczogb3B0aW9ucywgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCB2YWx1ZTogc2VsZWN0ZWQgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHNlbGVjdGVkLCBjbGFzc05hbWU6IHNlbGVjdENscywgaXRlbVRlbXBsYXRlOiAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1pdGVtJyksIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbXVsdGlwbGUgJiYgdW5zZWxlY3RhYmxlID09PSAnb24nICYmIG9wdGlvbi52YWx1ZSA9PT0gc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogaXRlbVRlbXBsYXRlID8gaXRlbVRlbXBsYXRlKG9wdGlvbikgOiBvcHRpb24ubGFiZWwgfSksIF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZWNrJywgc2l6ZTogMTYsIGNvbG9yOiAnIzA3MzM4NycgfSldIH0pO1xuICAgICAgICAgICAgfSwgZmlsdGVySWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnc2VhcmNoJywgc2l6ZTogMjAsIGNvbG9yOiAnIzEzMTMxMycsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2ZpbHRlci1pY29uJykgfSksIHBhbmVsQ2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbCcsIFtcbiAgICAgICAgICAgICAgICBwYW5lbENsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBpc0hvdmVyICYmIGNsYXNzZXMoJ3BhbmVsLWhvdmVyJyksXG4gICAgICAgICAgICAgICAgaXNTY3JvbGxpbmcgJiYgY2xhc3NlcygncGFuZWwtc2Nyb2xsaW5nJyksXG4gICAgICAgICAgICAgICAgcmVzdC5hcHBlbmRUbyA9PT0gJ3NlbGYnICYmIGNsYXNzZXMoJ3BhbmVsLWFwcGVuZC1zZWxmJyksXG4gICAgICAgICAgICBdLmpvaW4oJyAnKSksIG9uQ2hhbmdlOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkKGUudmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgICAgICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgICAgICAgICB9LCBvbkhpZGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc09wZW4oZmFsc2UpO1xuICAgICAgICAgICAgICAgIG9uSGlkZSA9PT0gbnVsbCB8fCBvbkhpZGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uSGlkZSgpO1xuICAgICAgICAgICAgfSwgb25TaG93OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXNPcGVuKHRydWUpO1xuICAgICAgICAgICAgICAgIG9uU2hvdyA9PT0gbnVsbCB8fCBvblNob3cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2hvdygpO1xuICAgICAgICAgICAgfSwgZHJvcGRvd25JY29uOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uRG93bicsIGNvbG9yOiAnIzEzMTMxMycsIHNpemU6IDIwIH0pLCBwdDoge1xuICAgICAgICAgICAgICAgIHdyYXBwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkSGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhbmVsOiB7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gc2V0SXNIb3Zlcih0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiAoKSA9PiBzZXRJc0hvdmVyKHRydWUpLFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoRW5kOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IH0pKSB9KSk7XG59O1xuU2VsZWN0LkN1c3RvbURyb3Bkb3duID0gQ3VzdG9tRHJvcGRvd247XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
496
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2xvZGFzaCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoMiIsIl9kcm9wZG93biIsIl9tdWx0aXNlbGVjdCIsIl9jbGFzc25hbWVzIiwiX0ljb25zIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJTZWxlY3RXcmFwcGVyIiwibWVtbyIsInByb3BzIiwibGFiZWwiLCJtZXNzYWdlIiwicmVxdWlyZWQiLCJwcmVmaXhDbHMiLCJ3cmFwcGVyQ2xzIiwibGFiZWxDbHMiLCJtZXNzYWdlQ2xzIiwic3VjY2VzcyIsImludmFsaWQiLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwiY2xhc3NlcyIsImNsYXNzbmFtZXMiLCJfanN4cyIsImNsYXNzTmFtZSIsIl9qc3giLCJqb2luIiwidHJpbSIsIkN1c3RvbURyb3Bkb3duIiwicmVmIiwiZGF0YUlkIiwiX3Byb3BzJHByZWZpeENscyIsIl9wcm9wcyRzaXplIiwic2l6ZSIsImVkaXRhYmxlIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkY2xhc3NOYW1lIiwic2VsZWN0ZWRUZW1wbGF0ZSIsInRhaWxUZW1wbGF0ZSIsIm9uQ2xpY2siLCJvbkZvY3VzIiwib25CbHVyIiwiaXNDbGlja0luc2lkZSIsInVzZVJlZiIsImRhdGFJZFJlZiIsImxhc3RGb2N1c1JlZiIsInNlbGVjdFJlZiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwic2VsZWN0Q2xzIiwidXNlTWVtbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJmb2N1cyIsImJsdXIiLCJnZXRET01Ob2RlIiwiY3VycmVudCIsInVzZUVmZmVjdCIsImZpbmRDdXN0b21Ecm9wZG93bkRhdGFJZCIsInRhcmdldCIsIl9hIiwiZGF0YXNldCIsInNlbGVjdEN1c3RvbURyb3Bkb3duSWQiLCJkb2N1bWVudCIsImJvZHkiLCJwYXJlbnQiLCJwYXJlbnROb2RlIiwicGFyZW50RWxlbWVudCIsInJlbW92ZUZvY3VzIiwicHJldiIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiY29udGVudEVkaXRhYmxlIiwiYXV0b0ZvY3VzIiwib25JbnB1dCIsInZhbCIsImN1cnJlbnRUYXJnZXQiLCJpbm5lclRleHQiLCJJY29ucyIsIm5hbWUiLCJjb2xvciIsIlNlbGVjdCIsImV4cG9ydHMiLCJpZCIsIl9wcm9wcyRwcmVmaXhDbHMyIiwiX3Byb3BzJHNpemUyIiwiX3Byb3BzJGNsYXNzTmFtZTIiLCJtdWx0aXBsZSIsIm9wdGlvbnMiLCJwYW5lbENsYXNzTmFtZSIsImRlZmF1bHRWYWx1ZSIsIml0ZW1UZW1wbGF0ZSIsIm9uQ2hhbmdlIiwib25IaWRlIiwib25TaG93IiwidW5zZWxlY3RhYmxlIiwicmVzdCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2VsZWN0ZWQiLCJzZXRTZWxlY3RlZCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNPcGVuIiwic2V0SXNPcGVuIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiaXNIb3ZlciIsInNldElzSG92ZXIiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiaXNTY3JvbGxpbmciLCJzZXRJc1Njcm9sbGluZyIsIl9yZWYiLCJBcnJheSIsImlzQXJyYXkiLCJkZWJvdW5jZWRIYW5kbGVTY3JvbGwiLCJkZWJvdW5jZSIsInJlZnJlc2hET00iLCJ1c2VDYWxsYmFjayIsIl9iIiwiZWxlIiwiZ2V0T3ZlcmxheSIsIm9yaWdpblpJbmRleCIsInN0eWxlIiwiekluZGV4IiwidW5kZWZpbmVkIiwiY29uY2F0IiwicGFyc2VJbnQiLCJzZXRUaW1lb3V0IiwiU2VsZWN0Q29tcG9uZW50IiwiTXVsdGlTZWxlY3QiLCJhc3NpZ24iLCJzaG93U2VsZWN0QWxsIiwiY2hlY2tib3hJY29uIiwicmVtb3ZlSWNvbiIsIl9wcm9wcyRpY29uUHJvcHMiLCJpY29uUHJvcHMiLCJvbktleURvd24iLCJ0YWJJbmRleCIsInBhbmVsSGVhZGVyVGVtcGxhdGUiLCJfYyIsIl9kIiwiX2UiLCJmaWx0ZXJFbGVtZW50Iiwic2VsZWN0ZWROdW0iLCJtZXRhRGF0YSIsInVwZGF0ZU1vZGVsIiwiRHJvcGRvd24iLCJjb2xsYXBzZUljb24iLCJpc0VxdWFsIiwiaGlkZSIsInNob3ciLCJnZXRFbGVtZW50IiwiZ2V0SW5wdXQiLCJjbGVhciIsImdldEZvY3VzSW5wdXQiLCJnZXRWaXJ0dWFsU2Nyb2xsZXIiLCJmaWx0ZXJQbGFjZWhvbGRlciIsIm9wdGlvbiIsImZpbHRlckljb24iLCJhcHBlbmRUbyIsImRyb3Bkb3duSWNvbiIsInB0Iiwid3JhcHBlciIsIm9uU2Nyb2xsIiwiY2FuY2VsIiwicGFuZWwiLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJvblRvdWNoU3RhcnQiLCJvblRvdWNoRW5kIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsT0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBTixPQUFBO0FBQ0Es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O1VBQ3JDOEQsWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7WUFBQSxPQUFROUQsVUFBVSxDQUFDLElBQUksQ0FBQztVQUFBO1VBQ3BDK0QsVUFBVSxFQUFFLFNBQVpBLFVBQVVBLENBQUE7WUFBQSxPQUFRL0QsVUFBVSxDQUFDLEtBQUssQ0FBQztVQUFBO1FEOUsvQjtNQUNKO0lDK0tILENBQUEsQ0FBQTtFQUNELENBQUEsQ0FDWTtBQUVwQixDQUFDO0FBRUQzQixNQUFNLENBQUM3RCxjQUFjLEdBQUdBLGNBQWM7QUFBQyxJQUFBd0osUUFBQSxHQUFBMUYsT0FBQSwyQkFFeEIsSUFBQWxGLFdBQUksRUFBQ2lGLE1BQU0sQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1NlbGVjdC9TZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlUmVmLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VDYWxsYmFjaywgdXNlSW1wZXJhdGl2ZUhhbmRsZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBpc0VxdWFsIGZyb20gJ2xvZGFzaC5pc2VxdWFsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IHsgRHJvcGRvd24gfSBmcm9tICdwcmltZXJlYWN0L2Ryb3Bkb3duJztcbmltcG9ydCB7IE11bHRpU2VsZWN0IH0gZnJvbSAncHJpbWVyZWFjdC9tdWx0aXNlbGVjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuY29uc3QgU2VsZWN0V3JhcHBlciA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBtZXNzYWdlQ2xzLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgY2hpbGRyZW4sIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIHdyYXBwZXJDbHMpLCBjaGlsZHJlbjogW2xhYmVsICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIFtyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENsc10uam9pbignICcpKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBjaGlsZHJlbiwgbWVzc2FnZSAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIFtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA/IGNsYXNzZXMoJ21lc3NhZ2Utc3VjY2VzcycpIDogJycsXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdtZXNzYWdlLWVycm9yJykgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZUNsc1xuICAgICAgICAgICAgICAgIF0uam9pbignICcpLnRyaW0oKSksIGNoaWxkcmVuOiBtZXNzYWdlIH0pXSB9KTtcbn0pO1xuY29uc3QgQ3VzdG9tRHJvcGRvd24gPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyByZWYsIGRhdGFJZCwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHNpemUgPSAnbGFyZ2UnLCBzdWNjZXNzLCBpbnZhbGlkLCBkaXNhYmxlZCwgZWRpdGFibGUsIHBsYWNlaG9sZGVyID0gJycsIGNsYXNzTmFtZSA9ICcnLCBzZWxlY3RlZFRlbXBsYXRlLCB0YWlsVGVtcGxhdGUsIG9uQ2xpY2ssIG9uRm9jdXMsIG9uQmx1ciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgaXNDbGlja0luc2lkZSA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZGF0YUlkUmVmID0gdXNlUmVmKGRhdGFJZCk7XG4gICAgY29uc3QgbGFzdEZvY3VzUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgW2lzRm9jdXMsIHNldElzRm9jdXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHNlbGVjdENscyA9IHVzZU1lbW8oKCkgPT4gY2xhc3Nlcyh2b2lkIDAsIFtcbiAgICAgICAgY2xhc3NlcyhzaXplKSxcbiAgICAgICAgY2xhc3NlcygnY3VzdG9tJyksXG4gICAgICAgIGlzRm9jdXMgPyBjbGFzc2VzKCdmb2N1cycpIDogJycsXG4gICAgICAgIHN1Y2Nlc3MgPyBjbGFzc2VzKCdzdWNjZXNzJykgOiAnJyxcbiAgICAgICAgaW52YWxpZCA/IGNsYXNzZXMoJ2ludmFsaWQnKSA6ICcnLFxuICAgICAgICBkaXNhYmxlZCA/IGNsYXNzZXMoJ2Rpc2FibGVkJykgOiAnJyxcbiAgICAgICAgZWRpdGFibGUgPyBjbGFzc2VzKCdlZGl0YWJsZScpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzRm9jdXMsIHN1Y2Nlc3MsIGludmFsaWQsIGRpc2FibGVkLCBlZGl0YWJsZSwgY2xhc3NOYW1lXSk7XG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+ICh7XG4gICAgICAgIGZvY3VzOiAoKSA9PiBzZXRJc0ZvY3VzKHRydWUpLFxuICAgICAgICBibHVyOiAoKSA9PiBzZXRJc0ZvY3VzKGZhbHNlKSxcbiAgICAgICAgZ2V0RE9NTm9kZTogKCkgPT4gc2VsZWN0UmVmLmN1cnJlbnRcbiAgICB9KSwgW3JlZl0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGRhdGFJZFJlZi5jdXJyZW50ID0gZGF0YUlkO1xuICAgIH0sIFtkYXRhSWRdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoaXNGb2N1cyAhPT0gbGFzdEZvY3VzUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGxhc3RGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICAgICAgICAgIGlmIChpc0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0sIFtpc0ZvY3VzLCBvbkZvY3VzLCBvbkJsdXJdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQgPSAodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIWRhdGFJZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGlmICgoKF9hID0gdGFyZ2V0ID09PSBudWxsIHx8IHRhcmdldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGFyZ2V0LmRhdGFzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZWxlY3RDdXN0b21Ecm9wZG93bklkKSA9PT0gZGF0YUlkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBkb2N1bWVudC5ib2R5IHx8IHRhcmdldCA9PT0gZG9jdW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGFyZ2V0LnBhcmVudE5vZGUgfHwgdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoIXBhcmVudClcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm4gZmluZEN1c3RvbURyb3Bkb3duRGF0YUlkKHBhcmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlbW92ZUZvY3VzID0gKGUpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0NsaWNrSW5zaWRlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpc0NsaWNrSW5zaWRlLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRJc0ZvY3VzKHByZXYgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghcHJldilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaW5kQ3VzdG9tRHJvcGRvd25EYXRhSWQoZS50YXJnZXQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVtb3ZlRm9jdXMpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZW1vdmVGb2N1cyk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuICAgIHJldHVybiBfanN4KFNlbGVjdFdyYXBwZXIsIHsgbGFiZWw6IGxhYmVsLCBtZXNzYWdlOiBtZXNzYWdlLCByZXF1aXJlZDogcmVxdWlyZWQsIHByZWZpeENsczogcHJlZml4Q2xzLCB3cmFwcGVyQ2xzOiB3cmFwcGVyQ2xzLCBsYWJlbENsczogbGFiZWxDbHMsIG1lc3NhZ2VDbHM6IG1lc3NhZ2VDbHMsIHN1Y2Nlc3M6IHN1Y2Nlc3MsIGludmFsaWQ6IGludmFsaWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBzZWxlY3RSZWYsIGNsYXNzTmFtZTogc2VsZWN0Q2xzLCBjb250ZW50RWRpdGFibGU6ICFkaXNhYmxlZCA/IGVkaXRhYmxlIDogZmFsc2UsIGF1dG9Gb2N1czogZWRpdGFibGUsIFwiZGF0YS1wbGFjZWhvbGRlclwiOiBwbGFjZWhvbGRlciwgXCJkYXRhLXZhbHVlXCI6IHZhbHVlLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIGlmICghZWRpdGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNDbGlja0luc2lkZS5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhwcmV2ID0+ICFwcmV2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DbGljayA9PT0gbnVsbCB8fCBvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsaWNrKGUpO1xuICAgICAgICAgICAgfSwgb25JbnB1dDogZSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGUuY3VycmVudFRhcmdldC5pbm5lclRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gJ1xcbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGUuY3VycmVudFRhcmdldC5pbm5lclRleHQgPSAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUodmFsKTtcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbIWRpc2FibGVkICYmIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiBzZWxlY3RlZFRlbXBsYXRlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHNlbGVjdGVkVGVtcGxhdGUoaXNGb2N1cylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1c3RvbS1wbGFjZWhvbGRlcicpLCBjaGlsZHJlbjogcGxhY2Vob2xkZXIgfSksIGVkaXRhYmxlXG4gICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICA6IHR5cGVvZiB0YWlsVGVtcGxhdGUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdGFpbFRlbXBsYXRlKGlzRm9jdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogJ2NoZXZyb25Eb3duJywgY29sb3I6ICcjMTMxMzEzJywgc2l6ZTogMjAsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ2N1c3RvbS10YWlsJywgaXNGb2N1cyA/IGNsYXNzZXMoJ2N1c3RvbS10YWlsLWZvY3VzJykgOiAnJykgfSldIH0pIH0pO1xufTtcbmV4cG9ydCBjb25zdCBTZWxlY3QgPSBwcm9wcyA9PiB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgaWQsIHJlZiwgbmFtZSwgbGFiZWwsIG1lc3NhZ2UsIHJlcXVpcmVkLCBwcmVmaXhDbHMgPSAnc2VsZWN0Jywgd3JhcHBlckNscywgbGFiZWxDbHMsIG1lc3NhZ2VDbHMsIHZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3VjY2VzcywgaW52YWxpZCwgZGlzYWJsZWQsIHBsYWNlaG9sZGVyLCBjbGFzc05hbWUgPSAnJywgbXVsdGlwbGUsIG9wdGlvbnMsIHBhbmVsQ2xhc3NOYW1lLCBkZWZhdWx0VmFsdWUsIGl0ZW1UZW1wbGF0ZSwgb25DaGFuZ2UsIG9uSGlkZSwgb25TaG93LCB1bnNlbGVjdGFibGUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJpZFwiLCBcInJlZlwiLCBcIm5hbWVcIiwgXCJsYWJlbFwiLCBcIm1lc3NhZ2VcIiwgXCJyZXF1aXJlZFwiLCBcInByZWZpeENsc1wiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJ2YWx1ZVwiLCBcInNpemVcIiwgXCJzdWNjZXNzXCIsIFwiaW52YWxpZFwiLCBcImRpc2FibGVkXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJjbGFzc05hbWVcIiwgXCJtdWx0aXBsZVwiLCBcIm9wdGlvbnNcIiwgXCJwYW5lbENsYXNzTmFtZVwiLCBcImRlZmF1bHRWYWx1ZVwiLCBcIml0ZW1UZW1wbGF0ZVwiLCBcIm9uQ2hhbmdlXCIsIFwib25IaWRlXCIsIFwib25TaG93XCIsIFwidW5zZWxlY3RhYmxlXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtzZWxlY3RlZCwgc2V0U2VsZWN0ZWRdID0gdXNlU3RhdGUoKF9hID0gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHZvaWQgMCA/IHZhbHVlIDogZGVmYXVsdFZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsKTtcbiAgICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0hvdmVyLCBzZXRJc0hvdmVyXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNTY3JvbGxpbmcsIHNldElzU2Nyb2xsaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBzZWxlY3RSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgX3JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzZWxlY3RDbHMgPSB1c2VNZW1vKCgpID0+IGNsYXNzZXModm9pZCAwLCBbXG4gICAgICAgIGNsYXNzZXMoc2l6ZSksXG4gICAgICAgIGlzT3BlbiA/IGNsYXNzZXMoJ3Nob3cnKSA6ICcnLFxuICAgICAgICBzdWNjZXNzID8gY2xhc3Nlcygnc3VjY2VzcycpIDogJycsXG4gICAgICAgIGludmFsaWQgPyBjbGFzc2VzKCdpbnZhbGlkJykgOiAnJyxcbiAgICAgICAgZGlzYWJsZWQgPyBjbGFzc2VzKCdkaXNhYmxlZCcpIDogJycsXG4gICAgICAgIChBcnJheS5pc0FycmF5KHNlbGVjdGVkKSA/IHNlbGVjdGVkLmxlbmd0aCA6IHNlbGVjdGVkKSA/IGNsYXNzZXMoJ2ZpbGxlZCcpIDogJycsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgIF0uam9pbignICcpKSwgW3NpemUsIGlzT3Blbiwgc3VjY2Vzcywgc2VsZWN0ZWQsIGludmFsaWQsIGRpc2FibGVkLCBjbGFzc05hbWVdKTtcbiAgICBjb25zdCBkZWJvdW5jZWRIYW5kbGVTY3JvbGwgPSBkZWJvdW5jZSgoKSA9PiBzZXRJc1Njcm9sbGluZyhmYWxzZSksIDUwMCk7XG4gICAgY29uc3QgcmVmcmVzaERPTSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgZWxlID0gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRPdmVybGF5KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIGlmICghZWxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBvcmlnaW5aSW5kZXggPSBlbGUuc3R5bGUuekluZGV4O1xuICAgICAgICBpZiAob3JpZ2luWkluZGV4ICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZWxlLnN0eWxlLnpJbmRleCA9IGAke3BhcnNlSW50KG9yaWdpblpJbmRleCkgKyAxfWA7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBlbGUuc3R5bGUuekluZGV4ID0gb3JpZ2luWkluZGV4O1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgU2VsZWN0Q29tcG9uZW50ID0gdXNlQ2FsbGJhY2soKHByb3BzKSA9PiBtdWx0aXBsZVxuICAgICAgICA/IF9qc3goTXVsdGlTZWxlY3QsIE9iamVjdC5hc3NpZ24oeyB1bnNlbGVjdGFibGU6IHVuc2VsZWN0YWJsZSwgc2hvd1NlbGVjdEFsbDogZmFsc2UsIGNoZWNrYm94SWNvbjogX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiAxMiwgY29sb3I6ICcjRkVGRUZFJyB9KSwgcmVtb3ZlSWNvbjogcHJvcHMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgb25DbGljaywgb25LZXlEb3duLCB0YWJJbmRleCB9ID0gcHJvcHMuaWNvblByb3BzO1xuICAgICAgICAgICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyMxMzEzMTMnLCB0YWJJbmRleDogdGFiSW5kZXgsIHdyYXBwZXJDbHM6IGNsYXNzZXMoJ3Rva2VuLXJlbW92ZS1pY29uJyksIG9uQ2xpY2s6IG9uQ2xpY2ssIG9uS2V5RG93bjogb25LZXlEb3duIH0pO1xuICAgICAgICAgICAgfSwgcGFuZWxIZWFkZXJUZW1wbGF0ZTogb3B0aW9ucyA9PiB7XG4gICAgICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlckVsZW1lbnQsIHByb3BzIH0gPSBvcHRpb25zO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE51bSA9IChfZCA9IChfYyA9IChfYiA9IChfYSA9IHByb3BzID09PSBudWxsIHx8IHByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwcm9wcy5tZXRhRGF0YSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnByb3BzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IudmFsdWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5sZW5ndGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXInKSwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtaGVhZGVyLWluZm8nKSwgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNvdW50JyksIGNoaWxkcmVuOiBbc2VsZWN0ZWROdW0sIFwiIHNlbGVjdGVkXCJdIH0pLCBfanN4cyhcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWhlYWRlci1pbmZvLWNsZWFyJyksIG9uQ2xpY2s6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy51cGRhdGVNb2RlbChlLCBbXSwgW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtfanN4KEljb25zLCB7IG5hbWU6ICdjbG9zZScsIHNpemU6IDE2LCBjb2xvcjogJyNBRTAwMDAnLCB3cmFwcGVyQ2xzOiBjbGFzc2VzKCdwYW5lbC1oZWFkZXItaW5mby1jbGVhci1pY29uJykgfSksIFwiQ2xlYXIgYWxsXCJdIH0pXSB9KSwgKF9lID0gZmlsdGVyRWxlbWVudCA9PT0gbnVsbCB8fCBmaWx0ZXJFbGVtZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWx0ZXJFbGVtZW50LnByb3BzKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UuY2hpbGRyZW5dIH0pO1xuICAgICAgICAgICAgfSB9LCBwcm9wcykpXG4gICAgICAgIDogX2pzeChEcm9wZG93biwgT2JqZWN0LmFzc2lnbih7IGNvbGxhcHNlSWNvbjogbXVsdGlwbGUgPyB2b2lkIDAgOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uVXAnLCBjb2xvcjogJyMxMzEzMTMnLCBzaXplOiAyMCB9KSB9LCBwcm9wcykpLCBbbXVsdGlwbGVdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiAhaXNFcXVhbChzZWxlY3RlZCwgdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXRTZWxlY3RlZCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWVdKTtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYgIT09IG51bGwgJiYgcmVmICE9PSB2b2lkIDAgPyByZWYgOiBfcmVmLCAoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIHJldHVybiAobXVsdGlwbGUgPyB7XG4gICAgICAgICAgICBwcm9wczogKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5wcm9wcyxcbiAgICAgICAgICAgIGZvY3VzOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBoaWRlOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIHNob3c6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc2hvdykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0RWxlbWVudDogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRFbGVtZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBnZXRJbnB1dDogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRJbnB1dCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0T3ZlcmxheTogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRPdmVybGF5KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgIH0gOiB7XG4gICAgICAgICAgICBwcm9wczogKF9iID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5wcm9wcyxcbiAgICAgICAgICAgIGNsZWFyOiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNsZWFyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBmb2N1czogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgaGlkZTogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBzaG93OiAoKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBzZWxlY3RSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNob3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldEVsZW1lbnQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0RWxlbWVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0SW5wdXQ6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0SW5wdXQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsgfSxcbiAgICAgICAgICAgIGdldE92ZXJsYXk6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0T3ZlcmxheSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LFxuICAgICAgICAgICAgZ2V0Rm9jdXNJbnB1dDogKCkgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gc2VsZWN0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRGb2N1c0lucHV0KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgICAgICBnZXRWaXJ0dWFsU2Nyb2xsZXI6ICgpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0VmlydHVhbFNjcm9sbGVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sXG4gICAgICAgIH0pO1xuICAgIH0sIFttdWx0aXBsZV0pO1xuICAgIHJldHVybiAoX2pzeChTZWxlY3RXcmFwcGVyLCB7IGxhYmVsOiBsYWJlbCwgbWVzc2FnZTogbWVzc2FnZSwgcmVxdWlyZWQ6IHJlcXVpcmVkLCBwcmVmaXhDbHM6IHByZWZpeENscywgd3JhcHBlckNsczogd3JhcHBlckNscywgbGFiZWxDbHM6IGxhYmVsQ2xzLCBtZXNzYWdlQ2xzOiBtZXNzYWdlQ2xzLCBzdWNjZXNzOiBzdWNjZXNzLCBpbnZhbGlkOiBpbnZhbGlkLCBkaXNhYmxlZDogZGlzYWJsZWQsIGNoaWxkcmVuOiBfanN4KFNlbGVjdENvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBpZDogaWQsIHJlZjogc2VsZWN0UmVmLCBuYW1lOiBuYW1lLCBmaWx0ZXJQbGFjZWhvbGRlcjogJ1NlYXJjaCcsIHJlcXVpcmVkOiByZXF1aXJlZCwgZGlzYWJsZWQ6IGRpc2FibGVkLCBpbnZhbGlkOiBpbnZhbGlkLCBvcHRpb25zOiBvcHRpb25zLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHZhbHVlOiBzZWxlY3RlZCA9PSBudWxsID8gdW5kZWZpbmVkIDogc2VsZWN0ZWQsIGNsYXNzTmFtZTogc2VsZWN0Q2xzLCBpdGVtVGVtcGxhdGU6IChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWl0ZW0nKSwgb25DbGljazogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtdWx0aXBsZSAmJiB1bnNlbGVjdGFibGUgPT09ICdvbicgJiYgb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfYSA9IHNlbGVjdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1pdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBpdGVtVGVtcGxhdGUgPyBpdGVtVGVtcGxhdGUob3B0aW9uKSA6IG9wdGlvbi5sYWJlbCB9KSwgX2pzeChJY29ucywgeyBuYW1lOiAnY2hlY2snLCBzaXplOiAxNiwgY29sb3I6ICcjMDczMzg3JyB9KV0gfSk7XG4gICAgICAgICAgICB9LCBmaWx0ZXJJY29uOiBfanN4KEljb25zLCB7IG5hbWU6ICdzZWFyY2gnLCBzaXplOiAyMCwgY29sb3I6ICcjMTMxMzEzJywgd3JhcHBlckNsczogY2xhc3NlcygnZmlsdGVyLWljb24nKSB9KSwgcGFuZWxDbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsJywgW1xuICAgICAgICAgICAgICAgIHBhbmVsQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIGlzSG92ZXIgJiYgY2xhc3NlcygncGFuZWwtaG92ZXInKSxcbiAgICAgICAgICAgICAgICBpc1Njcm9sbGluZyAmJiBjbGFzc2VzKCdwYW5lbC1zY3JvbGxpbmcnKSxcbiAgICAgICAgICAgICAgICByZXN0LmFwcGVuZFRvID09PSAnc2VsZicgJiYgY2xhc3NlcygncGFuZWwtYXBwZW5kLXNlbGYnKSxcbiAgICAgICAgICAgIF0uam9pbignICcpKSwgb25DaGFuZ2U6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWQoZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShlKTtcbiAgICAgICAgICAgIH0sIG9uSGlkZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgICAgICAgICAgICAgb25IaWRlID09PSBudWxsIHx8IG9uSGlkZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25IaWRlKCk7XG4gICAgICAgICAgICB9LCBvblNob3c6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBzZXRJc09wZW4odHJ1ZSk7XG4gICAgICAgICAgICAgICAgb25TaG93ID09PSBudWxsIHx8IG9uU2hvdyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TaG93KCk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWZyZXNoRE9NKCksIDApO1xuICAgICAgICAgICAgfSwgZHJvcGRvd25JY29uOiAoKSA9PiBfanN4KEljb25zLCB7IG5hbWU6ICdjaGV2cm9uRG93bicsIGNvbG9yOiAnIzEzMTMxMycsIHNpemU6IDIwIH0pLCBwdDoge1xuICAgICAgICAgICAgICAgIHdyYXBwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgb25TY3JvbGw6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlYm91bmNlZEhhbmRsZVNjcm9sbC5jYW5jZWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU2Nyb2xsaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VkSGFuZGxlU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHBhbmVsOiB7XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcjogKCkgPT4gc2V0SXNIb3Zlcih0cnVlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUxlYXZlOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgb25Ub3VjaFN0YXJ0OiAoKSA9PiBzZXRJc0hvdmVyKHRydWUpLFxuICAgICAgICAgICAgICAgICAgICBvblRvdWNoRW5kOiAoKSA9PiBzZXRJc0hvdmVyKGZhbHNlKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IH0pKSB9KSk7XG59O1xuU2VsZWN0LkN1c3RvbURyb3Bkb3duID0gQ3VzdG9tRHJvcGRvd247XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|