merchi_checkout 1.2.7 → 1.2.8
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/README.md +196 -196
- package/lib/actions/customer.js +1 -1
- package/lib/actions/domain.js +1 -1
- package/lib/actions/files.js +1 -1
- package/lib/actions/helpers.js +1 -1
- package/lib/actions/invoice.js +1 -1
- package/lib/area.js +16 -16
- package/lib/checkoutSession.js +1 -1
- package/lib/components/Alerts.js +1 -1
- package/lib/components/CancelOrderConfirmModal.js +1 -1
- package/lib/components/CheckoutSummaryFields.js +1 -1
- package/lib/components/Collapse.js +1 -1
- package/lib/components/DiscountInputGroup.js +1 -1
- package/lib/components/DraftImageUploaded.js +1 -1
- package/lib/components/FooterButtons.js +1 -1
- package/lib/components/InvoiceInfo.js +1 -1
- package/lib/components/JobInfoContent.js +71 -26
- package/lib/components/MerchiCheckout.js +1 -1
- package/lib/components/MerchiCheckoutProvider.js +1 -1
- package/lib/components/MerchiCheckoutTabs.js +1 -1
- package/lib/components/TabPane.js +1 -1
- package/lib/components/TabPaneAddress.js +1 -1
- package/lib/components/TabPaneConfirm.js +1 -1
- package/lib/components/TabPaneContainer.js +1 -1
- package/lib/components/TabPaneCustomer.js +1 -1
- package/lib/components/TabPaneNewDomain.js +1 -1
- package/lib/components/TabPanePayment.js +1 -1
- package/lib/components/TabPaneSubmitted.js +1 -1
- package/lib/components/TitleStep.js +1 -1
- package/lib/components/buttons/ButtonInvoiceDownload.js +1 -1
- package/lib/components/buttons/ButtonNext.js +1 -1
- package/lib/components/buttons/ButtonPrevious.js +1 -1
- package/lib/components/buttons/index.js +1 -1
- package/lib/components/currency.js +8 -8
- package/lib/components/forms/CheckboxBillingAddressSameAsShippingAddress.js +1 -1
- package/lib/components/forms/FormAddresses.js +1 -1
- package/lib/components/forms/FormCustomerNew.js +1 -1
- package/lib/components/forms/FormCustomerReturning.js +1 -1
- package/lib/components/forms/FormDomainNew.js +1 -1
- package/lib/components/forms/InputAcceptUserTermsAndConditions.js +1 -1
- package/lib/components/forms/InputCheckStoreName.js +1 -1
- package/lib/components/forms/InputError.js +1 -1
- package/lib/components/forms/InputFileUpload.js +1 -1
- package/lib/components/forms/InputSelect.js +1 -1
- package/lib/components/forms/InputText.js +1 -1
- package/lib/components/forms/InputsAddress.js +1 -1
- package/lib/components/forms/index.js +1 -1
- package/lib/components/lists/ListShipmentQuoteOptions.js +1 -1
- package/lib/components/lists/index.js +1 -1
- package/lib/index.js +1 -1
- package/lib/merchi_source.js +1 -1
- package/lib/styles/globals.scss +2663 -2663
- package/lib/tabs_utils.js +1 -1
- package/lib/types.js +1 -1
- package/lib/utils.js +7 -7
- package/package.json +91 -91
- package/lib/actions/shipping.js +0 -39
- package/lib/components/DiscountCode.js +0 -254
- package/lib/components/TabPaneDrafting.js +0 -117
- package/lib/components/merchi_image_editor/EditorImages.js +0 -73
- package/lib/components/merchi_image_editor/ImageEditor.js +0 -253
- package/lib/components/merchi_image_editor/MerchiImageEditor.js +0 -40
- package/lib/components/merchi_image_editor/actions/file.js +0 -132
- package/lib/components/merchi_image_editor/utils.js +0 -4
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
3
4
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
4
5
|
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
6
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -270,8 +271,7 @@ function VariationInfo(_ref4) {
|
|
|
270
271
|
variation = _ref4.variation;
|
|
271
272
|
var _useMerchiCheckboutCo = useMerchiCheckboutContext(),
|
|
272
273
|
urlApi = _useMerchiCheckboutCo.urlApi;
|
|
273
|
-
var
|
|
274
|
-
variationField = variation.variationField,
|
|
274
|
+
var variationField = variation.variationField,
|
|
275
275
|
variationFiles = variation.variationFiles,
|
|
276
276
|
selectableOptions = variation.selectableOptions;
|
|
277
277
|
var fieldType = variationField.fieldType,
|
|
@@ -281,7 +281,7 @@ function VariationInfo(_ref4) {
|
|
|
281
281
|
var isVariationSelectable = isSelectable(fieldType);
|
|
282
282
|
var isTurnaroundTime = fieldType === FieldType.TURNAROUND_TIME;
|
|
283
283
|
var isColourExtract = fieldType === FieldType.COLOUR_EXTRACT;
|
|
284
|
-
var options =
|
|
284
|
+
var options = resolveSelectableSelectedOptions(variation, selectableOptions, fieldOptions);
|
|
285
285
|
var useSelectableDisplay = isVariationSelectable && (Boolean(options === null || options === void 0 ? void 0 : options.length) || isTurnaroundTime && variation.value);
|
|
286
286
|
return /*#__PURE__*/_jsx("div", {
|
|
287
287
|
className: "merchi-checkout-summary-variation",
|
|
@@ -392,27 +392,72 @@ function getOptionId(option) {
|
|
|
392
392
|
var _option$optionId;
|
|
393
393
|
return (_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;
|
|
394
394
|
}
|
|
395
|
+
function splitSelectedOptionIds(value) {
|
|
396
|
+
if (Array.isArray(value)) {
|
|
397
|
+
return value.map(String).filter(Boolean);
|
|
398
|
+
}
|
|
399
|
+
if (value == null || value === '') return [];
|
|
400
|
+
return String(value).split(',').map(function (part) {
|
|
401
|
+
return part.trim();
|
|
402
|
+
}).filter(Boolean);
|
|
403
|
+
}
|
|
404
|
+
function resolveSelectableSelectedOptions(variation) {
|
|
405
|
+
var _variation$variationF;
|
|
406
|
+
var selectableOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
407
|
+
var fieldOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
408
|
+
var fieldType = variation === null || variation === void 0 || (_variation$variationF = variation.variationField) === null || _variation$variationF === void 0 ? void 0 : _variation$variationF.fieldType;
|
|
409
|
+
if (fieldType === FieldType.COLOUR_EXTRACT) {
|
|
410
|
+
return (variation === null || variation === void 0 ? void 0 : variation.selectedOptions) || [];
|
|
411
|
+
}
|
|
412
|
+
var selectedIds = splitSelectedOptionIds(variation === null || variation === void 0 ? void 0 : variation.value);
|
|
413
|
+
if (selectedIds.length > 0) {
|
|
414
|
+
var pools = [selectableOptions, fieldOptions];
|
|
415
|
+
var resolved = [];
|
|
416
|
+
var _iterator = _createForOfIteratorHelper(selectedIds),
|
|
417
|
+
_step;
|
|
418
|
+
try {
|
|
419
|
+
var _loop = function _loop() {
|
|
420
|
+
var id = _step.value;
|
|
421
|
+
for (var _i = 0, _pools = pools; _i < _pools.length; _i++) {
|
|
422
|
+
var pool = _pools[_i];
|
|
423
|
+
var match = pool.find(function (option) {
|
|
424
|
+
return String(getOptionId(option)) === id;
|
|
425
|
+
});
|
|
426
|
+
if (match) {
|
|
427
|
+
resolved.push(match);
|
|
428
|
+
break;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
};
|
|
432
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
433
|
+
_loop();
|
|
434
|
+
}
|
|
435
|
+
} catch (err) {
|
|
436
|
+
_iterator.e(err);
|
|
437
|
+
} finally {
|
|
438
|
+
_iterator.f();
|
|
439
|
+
}
|
|
440
|
+
if (resolved.length > 0) {
|
|
441
|
+
return resolved;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return (variation === null || variation === void 0 ? void 0 : variation.selectedOptions) || [];
|
|
445
|
+
}
|
|
395
446
|
function resolveTurnaroundSelectedOption(variation) {
|
|
396
447
|
var selectableOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
397
448
|
var fieldOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
398
|
-
var
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if (selectedOptions.length > 0) {
|
|
402
|
-
return selectedOptions[0];
|
|
449
|
+
var resolved = resolveSelectableSelectedOptions(variation, selectableOptions, fieldOptions);
|
|
450
|
+
if (resolved.length > 0) {
|
|
451
|
+
return resolved[0];
|
|
403
452
|
}
|
|
404
|
-
var valueStr = value != null && value !== '' ? String(value).trim() : '';
|
|
453
|
+
var valueStr = (variation === null || variation === void 0 ? void 0 : variation.value) != null && (variation === null || variation === void 0 ? void 0 : variation.value) !== '' ? String(variation.value).trim() : '';
|
|
405
454
|
if (!valueStr) return null;
|
|
406
455
|
var pools = [selectableOptions, fieldOptions];
|
|
407
|
-
for (var
|
|
408
|
-
var pool =
|
|
409
|
-
var
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
if (byId) return byId;
|
|
413
|
-
var byValue = pool.find(function (o) {
|
|
414
|
-
var _o$value;
|
|
415
|
-
return String((_o$value = o.value) !== null && _o$value !== void 0 ? _o$value : '') === valueStr;
|
|
456
|
+
for (var _i2 = 0, _pools2 = pools; _i2 < _pools2.length; _i2++) {
|
|
457
|
+
var pool = _pools2[_i2];
|
|
458
|
+
var byValue = pool.find(function (option) {
|
|
459
|
+
var _option$value3;
|
|
460
|
+
return String((_option$value3 = option.value) !== null && _option$value3 !== void 0 ? _option$value3 : '') === valueStr;
|
|
416
461
|
});
|
|
417
462
|
if (byValue) return byValue;
|
|
418
463
|
}
|
|
@@ -430,12 +475,12 @@ function formatTurnaroundDeadline(userDeadline) {
|
|
|
430
475
|
});
|
|
431
476
|
}
|
|
432
477
|
function TurnaroundOptionLabel(_ref7) {
|
|
433
|
-
var _option$
|
|
478
|
+
var _option$value4, _option$value5;
|
|
434
479
|
var option = _ref7.option,
|
|
435
480
|
variationField = _ref7.variationField,
|
|
436
481
|
product = _ref7.product,
|
|
437
482
|
sellerProductEditable = _ref7.sellerProductEditable;
|
|
438
|
-
var days = parseInt(String((_option$
|
|
483
|
+
var days = parseInt(String((_option$value4 = option === null || option === void 0 ? void 0 : option.value) !== null && _option$value4 !== void 0 ? _option$value4 : ''), 10) || 0;
|
|
439
484
|
var deadline = formatTurnaroundDeadline(option === null || option === void 0 ? void 0 : option.userDeadline);
|
|
440
485
|
var shippingTimeIncluded = Boolean(variationField === null || variationField === void 0 ? void 0 : variationField.shippingTimeIncluded);
|
|
441
486
|
var deadlineLabel = shippingTimeIncluded ? 'Delivery by' : 'Produced by';
|
|
@@ -444,7 +489,7 @@ function TurnaroundOptionLabel(_ref7) {
|
|
|
444
489
|
className: "merchi-checkout-summary-turnaround-value",
|
|
445
490
|
children: [/*#__PURE__*/_jsx("span", {
|
|
446
491
|
className: "merchi-checkout-summary-turnaround-days",
|
|
447
|
-
children: days > 0 ? "".concat(days, " business day").concat(days !== 1 ? 's' : '') : (option === null || option === void 0 || (_option$
|
|
492
|
+
children: days > 0 ? "".concat(days, " business day").concat(days !== 1 ? 's' : '') : (option === null || option === void 0 || (_option$value5 = option.value) === null || _option$value5 === void 0 ? void 0 : _option$value5.trim()) || '–'
|
|
448
493
|
}), deadline && /*#__PURE__*/_jsxs("span", {
|
|
449
494
|
className: "merchi-checkout-summary-turnaround-deadline",
|
|
450
495
|
children: [deadlineLabel, " ", deadline]
|
|
@@ -452,7 +497,7 @@ function TurnaroundOptionLabel(_ref7) {
|
|
|
452
497
|
});
|
|
453
498
|
}
|
|
454
499
|
function VariationOptionsInfoBody(_ref8) {
|
|
455
|
-
var _variation$
|
|
500
|
+
var _variation$variationF2;
|
|
456
501
|
var name = _ref8.name,
|
|
457
502
|
selectedOptions = _ref8.selectedOptions,
|
|
458
503
|
sellerProductEditable = _ref8.sellerProductEditable,
|
|
@@ -470,9 +515,9 @@ function VariationOptionsInfoBody(_ref8) {
|
|
|
470
515
|
}, selectableOptions, fieldOptions) : selectedOptions[0];
|
|
471
516
|
var isColourSelect = fieldType === FieldType.COLOUR_SELECT || fieldType === FieldType.COLOUR_EXTRACT;
|
|
472
517
|
var isImageSelect = fieldType === FieldType.IMAGE_SELECT;
|
|
473
|
-
var variationField = (_variation$
|
|
518
|
+
var variationField = (_variation$variationF2 = variation === null || variation === void 0 ? void 0 : variation.variationField) !== null && _variation$variationF2 !== void 0 ? _variation$variationF2 : {};
|
|
474
519
|
function renderOptionLabel(o) {
|
|
475
|
-
var _o$
|
|
520
|
+
var _o$value;
|
|
476
521
|
if (isTurnaroundTime) {
|
|
477
522
|
return /*#__PURE__*/_jsx(TurnaroundOptionLabel, {
|
|
478
523
|
option: o,
|
|
@@ -500,7 +545,7 @@ function VariationOptionsInfoBody(_ref8) {
|
|
|
500
545
|
});
|
|
501
546
|
}
|
|
502
547
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
503
|
-
children: [((_o$
|
|
548
|
+
children: [((_o$value = o.value) === null || _o$value === void 0 ? void 0 : _o$value.trim()) || '–', formatOptionCost(product, o, sellerProductEditable) || '']
|
|
504
549
|
});
|
|
505
550
|
}
|
|
506
551
|
return /*#__PURE__*/_jsx(_Fragment, {
|
|
@@ -682,4 +727,4 @@ export default function JobInfoContent() {
|
|
|
682
727
|
})]
|
|
683
728
|
});
|
|
684
729
|
}
|
|
685
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwiY2FsbCIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJyIiwibCIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsImUiLCJ1IiwiYSIsImYiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImlzQXJyYXkiLCJSZWFjdCIsInVzZVN0YXRlIiwiRmFGaWxlUGRmIiwiRmFSZWdJbWFnZSIsImZvcm1hdEN1cnJlbmN5IiwiY3VycmVuY3lUb3RhbENvc3RTaG93SW5jVGF4IiwiaXNJbnN0cnVjdGlvbnNUeXBlIiwiaXNQcm9kdWN0U3VwcGxpZXJNT0QiLCJpc1NlbGVjdGFibGUiLCJGaWVsZFR5cGUiLCJlc3RpbWF0ZUFyZWFDb3N0cyIsImZvcm1hdEFyZWFTdW1tYXJ5IiwibG9jYWxlUHJlZmVyc0ltcGVyaWFsIiwidXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCIsIlN1bW1hcnlBbW91bnRSb3ciLCJTdW1tYXJ5RmllbGRSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJmb3JtYXRDb3N0IiwicHJvZHVjdCIsImNvc3QiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsInBhcnNlQ29zdEFtb3VudCIsImFtb3VudCIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbCIsIm9uY2VPZmZDb3N0IiwidW5pdENvc3QiLCJwYXJ0cyIsIm9uY2VPZmYiLCJ1bml0IiwiY29uY2F0Iiwiam9pbiIsIm9wdGlvbk9uY2VPZmYiLCJvcHRpb24iLCJ2YXJpYXRpb25Db3N0Iiwib3B0aW9uVW5pdCIsInZhcmlhdGlvblVuaXRDb3N0IiwicHJvZHVjdFNldHVwU3VmZml4Iiwic2V0dXBQcmljZSIsImxhYmVsIiwic2V0dXBQZXJHcm91cCIsImZvcm1hdFVuaXRQcmljZVdpdGhTZXR1cCIsInVuaXRQcmljZSIsImlzUGRmIiwiZmlsZSIsIm1pbWV0eXBlIiwiaXNJbWFnZUZpbGUiLCJzdGFydHNXaXRoIiwidG9Mb3dlckNhc2UiLCJhYnNvbHV0aXplRmlsZVVybCIsInJhdyIsInVybEFwaSIsInVybCIsInRyaW0iLCJiYXNlIiwiVVJMIiwib3JpZ2luIiwiaHJlZiIsIl91bnVzZWQiLCJyZXNvbHZlRmlsZVVybCIsInZpZXdVcmwiLCJkb3dubG9hZFVybCIsIm9wdGlvbkltYWdlVXJsIiwiX29wdGlvbiRsaW5rZWRGaWxlIiwiX29wdGlvbiRsaW5rZWRGaWxlMiIsImxpbmtlZEZpbGUiLCJmaW5kTWF0Y2hpbmdPcHRpb24iLCJvcHRpb25zIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZmluZCIsIlN0cmluZyIsIm9wdGlvbklkIiwicmVzb2x2ZU9wdGlvbkNvbG91ciIsIl9vcHRpb24kY29sb3VyIiwiX2ZpbmRNYXRjaGluZ09wdGlvbiIsIl9maW5kTWF0Y2hpbmdPcHRpb24yIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJmaWVsZE9wdGlvbnMiLCJkaXJlY3QiLCJjb2xvdXIiLCJmcm9tU2VsZWN0YWJsZSIsInJlc29sdmVPcHRpb25JbWFnZVVybCIsImZvcm1hdE9wdGlvbkNvc3QiLCJzZWxsZXJQcm9kdWN0RWRpdGFibGUiLCJvbmNlT2ZmVW5pdCIsInRvdGFsQ29zdCIsInZhcmlhdGlvbkNvc3REZXRhaWwiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJG9uY2VPZmZDb3MiLCJfdmFyaWF0aW9uJHVuaXRDb3N0IiwiX3JlZiIsIl9yZWYkaW5jbHVkZVNlbGVjdGVkTyIsImluY2x1ZGVTZWxlY3RlZE9wdGlvbkNvc3RzIiwiX3JlZiRmaWVsZENvc3RzT25seSIsImZpZWxkQ29zdHNPbmx5IiwiZmllbGQiLCJ2YXJpYXRpb25GaWVsZCIsImZpZWxkVHlwZSIsIkFSRUEiLCJhcmVhQ29zdHMiLCJzZWxlY3RlZCIsInNlbGVjdGVkT3B0aW9ucyIsImZpZWxkT25jZSIsIkNPTE9VUl9FWFRSQUNUIiwiZmllbGRVbml0IiwicmVkdWNlIiwic3VtIiwiVmFyaWF0aW9uRmlsZVByZXZpZXciLCJfcmVmMiIsImZpbGVVcmwiLCJmaWxlTmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpbWFnZUZhaWxlZCIsInNldEltYWdlRmFpbGVkIiwiY2xhc3NOYW1lIiwidGFyZ2V0IiwicmVsIiwidGl0bGUiLCJjaGlsZHJlbiIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJWYXJpYXRpb25JbmZvQm9keSIsIl9yZWYzIiwiY29zdERldGFpbCIsImZpbGVzIiwidHlwZSIsImlzQ29sb3VyUGlja2VyIiwiQ09MT1VSX1BJQ0tFUiIsImlzRmlsZVVwbG9hZCIsIkZJTEVfVVBMT0FEIiwiaGFzRmlsZXMiLCJCb29sZWFuIiwiZGlzcGxheVZhbHVlIiwibWFwIiwiaW5kZXgiLCJpZCIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiVmFyaWF0aW9uSW5mbyIsIl9yZWY0IiwiX3VzZU1lcmNoaUNoZWNrYm91dENvIiwidmFyaWF0aW9uRmlsZXMiLCJfdmFyaWF0aW9uRmllbGQkb3B0aW8iLCJpc1ZhcmlhdGlvblNlbGVjdGFibGUiLCJpc1R1cm5hcm91bmRUaW1lIiwiVFVSTkFST1VORF9USU1FIiwiaXNDb2xvdXJFeHRyYWN0IiwidXNlU2VsZWN0YWJsZURpc3BsYXkiLCJWYXJpYXRpb25PcHRpb25zSW5mb0JvZHkiLCJhcmVhVW5pdCIsIkNvbG91clNlbGVjdE9wdGlvbiIsIl9yZWY1IiwiX29wdGlvbiR2YWx1ZSIsImhleCIsIkltYWdlU2VsZWN0T3B0aW9uIiwiX3JlZjYiLCJfb3B0aW9uJHZhbHVlMiIsIl91c2VNZXJjaGlDaGVja2JvdXRDbzIiLCJpbWFnZVVybCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZ2V0T3B0aW9uSWQiLCJfb3B0aW9uJG9wdGlvbklkIiwicmVzb2x2ZVR1cm5hcm91bmRTZWxlY3RlZE9wdGlvbiIsIl92YXJpYXRpb24kc2VsZWN0ZWRPcCIsInZhbHVlU3RyIiwicG9vbHMiLCJfaSIsIl9wb29scyIsInBvb2wiLCJieUlkIiwiYnlWYWx1ZSIsIl9vJHZhbHVlIiwiZm9ybWF0VHVybmFyb3VuZERlYWRsaW5lIiwidXNlckRlYWRsaW5lIiwic2Vjb25kcyIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJ3ZWVrZGF5IiwieWVhciIsIm1vbnRoIiwiZGF5IiwiVHVybmFyb3VuZE9wdGlvbkxhYmVsIiwiX3JlZjciLCJfb3B0aW9uJHZhbHVlMyIsIl9vcHRpb24kdmFsdWU0IiwiZGF5cyIsInBhcnNlSW50IiwiZGVhZGxpbmUiLCJzaGlwcGluZ1RpbWVJbmNsdWRlZCIsImRlYWRsaW5lTGFiZWwiLCJfcmVmOCIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsIl9yZWY4JHNlbGVjdGFibGVPcHRpbyIsIl9yZWY4JGZpZWxkT3B0aW9ucyIsImZpcnN0T3B0aW9uIiwiaXNDb2xvdXJTZWxlY3QiLCJDT0xPVVJfU0VMRUNUIiwiaXNJbWFnZVNlbGVjdCIsIklNQUdFX1NFTEVDVCIsInJlbmRlck9wdGlvbkxhYmVsIiwiX28kdmFsdWUyIiwiX28kb3B0aW9uSWQiLCJWYXJpYXRpb25zSW5mbyIsIl9yZWY5IiwicXVhbnRpdHkiLCJfcmVmOSR2YXJpYXRpb25zIiwidmFyaWF0aW9ucyIsInYiLCJWYXJpYXRpb25Hcm91cEluZm8iLCJfcmVmMTAiLCJncm91cCIsInNob3dTZXR1cE9uVW5pdFByaWNlIiwiaXNSZXNlbGwiLCJ2aXNpYmxlVmFyaWF0aW9ucyIsImZpbHRlciIsIl92JHZhcmlhdGlvbkZpZWxkIiwiY29zdExhYmVsIiwidW5pdFByaWNlVmFsdWUiLCJncm91cENvc3QiLCJKb2JJbmZvQ29udGVudCIsIl91c2VNZXJjaGlDaGVja2JvdXRDbzMiLCJqb2IiLCJfam9iJHF1YW50aXR5IiwiX2pvYiR2YXJpYXRpb25zIiwiX2pvYiR2YXJpYXRpb25zR3JvdXBzIiwidmFyaWF0aW9uc0dyb3VwcyIsIm5lZWRzU2hpcHBpbmciLCJoYXNHcm91cHMiLCJqb2JMZXZlbFZhcmlhdGlvbnMiLCJfdiR2YXJpYXRpb25GaWVsZDIiLCJ0b3RhbFF1YW50aXR5IiwiZyIsImhhc1NldHVwUHJpY2UiLCJsYWJlbEV4dHJhIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvSm9iSW5mb0NvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEZhRmlsZVBkZiwgRmFSZWdJbWFnZSB9IGZyb20gJ3JlYWN0LWljb25zL2ZhJztcbmltcG9ydCB7IGZvcm1hdEN1cnJlbmN5LCBjdXJyZW5jeVRvdGFsQ29zdFNob3dJbmNUYXggfSBmcm9tICcuL2N1cnJlbmN5JztcbmltcG9ydCB7XG4gIGlzSW5zdHJ1Y3Rpb25zVHlwZSxcbiAgaXNQcm9kdWN0U3VwcGxpZXJNT0QsXG4gIGlzU2VsZWN0YWJsZSxcbiAgRmllbGRUeXBlLFxufSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBlc3RpbWF0ZUFyZWFDb3N0cyxcbiAgZm9ybWF0QXJlYVN1bW1hcnksXG4gIGxvY2FsZVByZWZlcnNJbXBlcmlhbCxcbn0gZnJvbSAnLi4vYXJlYSc7XG5pbXBvcnQgeyB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0IH0gZnJvbSAnLi9NZXJjaGlDaGVja291dFByb3ZpZGVyJztcbmltcG9ydCB7XG4gIFN1bW1hcnlBbW91bnRSb3csXG4gIFN1bW1hcnlGaWVsZFJvdyxcbn0gZnJvbSAnLi9DaGVja291dFN1bW1hcnlGaWVsZHMnO1xuXG5mdW5jdGlvbiBmb3JtYXRDb3N0KHByb2R1Y3Q6IGFueSwgY29zdDogbnVtYmVyKSB7XG4gIGNvbnN0IGN1cnJlbmN5ID0gcHJvZHVjdC5jdXJyZW5jeSA/IHByb2R1Y3QuY3VycmVuY3kgOiAnQVVEJztcbiAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KGNvc3QsIHtcbiAgICBjdXJyZW5jeSxcbiAgICBzaG93Q29kZUlmTm9TeW1ib2w6IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb3N0QW1vdW50KHZhbHVlOiBhbnkpOiBudW1iZXIge1xuICBjb25zdCBhbW91bnQgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShhbW91bnQpICYmIGFtb3VudCA+IDAgPyBhbW91bnQgOiAwO1xufVxuXG4vKiogTWF0Y2ggcHJvZHVjdC1mb3JtIHdvcmRpbmc6IFwiKyAkWCBvbmNlIG9mZlwiIC8gXCIrICRZIHBlciB1bml0XCIuICovXG5mdW5jdGlvbiBmb3JtYXRPbmNlT2ZmVW5pdENvc3REZXRhaWwoXG4gIHByb2R1Y3Q6IGFueSxcbiAgb25jZU9mZkNvc3Q6IGFueSxcbiAgdW5pdENvc3Q6IGFueVxuKSB7XG4gIGNvbnN0IGN1cnJlbmN5ID0gcHJvZHVjdD8uY3VycmVuY3kgfHwgJ0FVRCc7XG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCBvbmNlT2ZmID0gcGFyc2VDb3N0QW1vdW50KG9uY2VPZmZDb3N0KTtcbiAgY29uc3QgdW5pdCA9IHBhcnNlQ29zdEFtb3VudCh1bml0Q29zdCk7XG4gIGlmIChvbmNlT2ZmKSB7XG4gICAgcGFydHMucHVzaChcbiAgICAgIGAgKyAke2Zvcm1hdEN1cnJlbmN5KG9uY2VPZmYsIHsgY3VycmVuY3ksIHNob3dDb2RlSWZOb1N5bWJvbDogZmFsc2UgfSl9IG9uY2Ugb2ZmYFxuICAgICk7XG4gIH1cbiAgaWYgKHVuaXQpIHtcbiAgICBwYXJ0cy5wdXNoKFxuICAgICAgYCArICR7Zm9ybWF0Q3VycmVuY3kodW5pdCwgeyBjdXJyZW5jeSwgc2hvd0NvZGVJZk5vU3ltYm9sOiBmYWxzZSB9KX0gcGVyIHVuaXRgXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcGFydHMuam9pbignJyk7XG59XG5cbmZ1bmN0aW9uIG9wdGlvbk9uY2VPZmYob3B0aW9uOiBhbnkpOiBudW1iZXIge1xuICByZXR1cm4gKFxuICAgIHBhcnNlQ29zdEFtb3VudChvcHRpb24/Lm9uY2VPZmZDb3N0KSB8fFxuICAgIHBhcnNlQ29zdEFtb3VudChvcHRpb24/LnZhcmlhdGlvbkNvc3QpIHx8XG4gICAgMFxuICApO1xufVxuXG5mdW5jdGlvbiBvcHRpb25Vbml0KG9wdGlvbjogYW55KTogbnVtYmVyIHtcbiAgcmV0dXJuIChcbiAgICBwYXJzZUNvc3RBbW91bnQob3B0aW9uPy51bml0Q29zdCkgfHxcbiAgICBwYXJzZUNvc3RBbW91bnQob3B0aW9uPy52YXJpYXRpb25Vbml0Q29zdCkgfHxcbiAgICAwXG4gICk7XG59XG5cbi8qKiBQcm9kdWN0IHNldHVwIGZlZSBzaG93biBuZXh0IHRvIHVuaXQgcHJpY2UsIG1hdGNoaW5nIHByb2R1Y3QtZm9ybSB3b3JkaW5nLiAqL1xuZnVuY3Rpb24gcHJvZHVjdFNldHVwU3VmZml4KHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBzZXR1cFByaWNlID0gTnVtYmVyKHByb2R1Y3Q/LnNldHVwUHJpY2UpO1xuICBpZiAoIXNldHVwUHJpY2UpIHJldHVybiAnJztcbiAgY29uc3QgbGFiZWwgPSBwcm9kdWN0LnNldHVwUGVyR3JvdXAgPyAnc2V0dXAgcGVyIGdyb3VwJyA6ICdzZXR1cCc7XG4gIHJldHVybiBgICsgJHtmb3JtYXRDb3N0KHByb2R1Y3QsIHNldHVwUHJpY2UpfSAke2xhYmVsfWA7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFVuaXRQcmljZVdpdGhTZXR1cChwcm9kdWN0OiBhbnkpIHtcbiAgcmV0dXJuIGAke2Zvcm1hdENvc3QocHJvZHVjdCwgTnVtYmVyKHByb2R1Y3Q/LnVuaXRQcmljZSkgfHwgMCl9JHtwcm9kdWN0U2V0dXBTdWZmaXgocHJvZHVjdCl9YDtcbn1cblxuZnVuY3Rpb24gaXNQZGYoZmlsZTogYW55KSB7XG4gIGNvbnN0IG1pbWV0eXBlID0gZmlsZT8ubWltZXR5cGUgfHwgJyc7XG4gIHJldHVybiBtaW1ldHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHwgbWltZXR5cGUgPT09ICdhcHBsaWNhdGlvbi94LXBkZic7XG59XG5cbmZ1bmN0aW9uIGlzSW1hZ2VGaWxlKGZpbGU6IGFueSkge1xuICBjb25zdCBtaW1ldHlwZSA9IGZpbGU/Lm1pbWV0eXBlIHx8ICcnO1xuICBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHJldHVybiB0cnVlO1xuICBjb25zdCBuYW1lID0gKGZpbGU/Lm5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiAvXFwuKGpwZT9nfHBuZ3xnaWZ8d2VicHxzdmd8Ym1wKSQvLnRlc3QobmFtZSk7XG59XG5cbmZ1bmN0aW9uIGFic29sdXRpemVGaWxlVXJsKHJhdzogc3RyaW5nLCB1cmxBcGk/OiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsID0gKHJhdyB8fCAnJykudHJpbSgpO1xuICBpZiAoIXVybCB8fCB1cmwgPT09ICd1bmRlZmluZWQnIHx8IHVybCA9PT0gJ251bGwnKSByZXR1cm4gJyc7XG4gIGlmICgvXihodHRwcz86fGJsb2I6fGRhdGE6KS9pLnRlc3QodXJsKSkgcmV0dXJuIHVybDtcbiAgaWYgKCF1cmxBcGkpIHJldHVybiB1cmw7XG4gIHRyeSB7XG4gICAgY29uc3QgYmFzZSA9IG5ldyBVUkwodXJsQXBpKTtcbiAgICByZXR1cm4gbmV3IFVSTCh1cmwsIGAke2Jhc2Uub3JpZ2lufS9gKS5ocmVmO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVGaWxlVXJsKGZpbGU6IGFueSwgdXJsQXBpPzogc3RyaW5nKSB7XG4gIHJldHVybiBhYnNvbHV0aXplRmlsZVVybChcbiAgICBmaWxlPy52aWV3VXJsIHx8IGZpbGU/LmRvd25sb2FkVXJsIHx8ICcnLFxuICAgIHVybEFwaVxuICApO1xufVxuXG5mdW5jdGlvbiBvcHRpb25JbWFnZVVybChvcHRpb246IGFueSwgdXJsQXBpPzogc3RyaW5nKSB7XG4gIHJldHVybiBhYnNvbHV0aXplRmlsZVVybChcbiAgICBvcHRpb24/LmxpbmtlZEZpbGU/LnZpZXdVcmwgfHwgb3B0aW9uPy5saW5rZWRGaWxlPy5kb3dubG9hZFVybCB8fCAnJyxcbiAgICB1cmxBcGlcbiAgKTtcbn1cblxuZnVuY3Rpb24gZmluZE1hdGNoaW5nT3B0aW9uKG9wdGlvbjogYW55LCBvcHRpb25zOiBhbnlbXSA9IFtdKSB7XG4gIHJldHVybiBvcHRpb25zLmZpbmQoKG8pID0+IFN0cmluZyhvLm9wdGlvbklkKSA9PT0gU3RyaW5nKG9wdGlvbj8ub3B0aW9uSWQpKTtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbkNvbG91cihcbiAgb3B0aW9uOiBhbnksXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxuICBmaWVsZE9wdGlvbnM6IGFueVtdID0gW11cbikge1xuICBjb25zdCBkaXJlY3QgPSBvcHRpb24/LmNvbG91cj8udHJpbSgpO1xuICBpZiAoZGlyZWN0KSByZXR1cm4gZGlyZWN0O1xuICBjb25zdCBmcm9tU2VsZWN0YWJsZSA9IGZpbmRNYXRjaGluZ09wdGlvbihvcHRpb24sIHNlbGVjdGFibGVPcHRpb25zKT8uY29sb3VyPy50cmltKCk7XG4gIGlmIChmcm9tU2VsZWN0YWJsZSkgcmV0dXJuIGZyb21TZWxlY3RhYmxlO1xuICByZXR1cm4gZmluZE1hdGNoaW5nT3B0aW9uKG9wdGlvbiwgZmllbGRPcHRpb25zKT8uY29sb3VyPy50cmltKCkgfHwgJyc7XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVPcHRpb25JbWFnZVVybChcbiAgb3B0aW9uOiBhbnksXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxuICBmaWVsZE9wdGlvbnM6IGFueVtdID0gW10sXG4gIHVybEFwaT86IHN0cmluZ1xuKSB7XG4gIGNvbnN0IGRpcmVjdCA9IG9wdGlvbkltYWdlVXJsKG9wdGlvbiwgdXJsQXBpKTtcbiAgaWYgKGRpcmVjdCkgcmV0dXJuIGRpcmVjdDtcbiAgY29uc3QgZnJvbVNlbGVjdGFibGUgPSBvcHRpb25JbWFnZVVybChcbiAgICBmaW5kTWF0Y2hpbmdPcHRpb24ob3B0aW9uLCBzZWxlY3RhYmxlT3B0aW9ucyksXG4gICAgdXJsQXBpXG4gICk7XG4gIGlmIChmcm9tU2VsZWN0YWJsZSkgcmV0dXJuIGZyb21TZWxlY3RhYmxlO1xuICByZXR1cm4gb3B0aW9uSW1hZ2VVcmwoZmluZE1hdGNoaW5nT3B0aW9uKG9wdGlvbiwgZmllbGRPcHRpb25zKSwgdXJsQXBpKTtcbn1cblxuZnVuY3Rpb24gZm9ybWF0T3B0aW9uQ29zdChcbiAgcHJvZHVjdDogYW55LFxuICBvcHRpb246IGFueSxcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlOiBib29sZWFuXG4pIHtcbiAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSB8fCAhb3B0aW9uKSByZXR1cm4gbnVsbDtcbiAgY29uc3Qgb25jZU9mZlVuaXQgPSBmb3JtYXRPbmNlT2ZmVW5pdENvc3REZXRhaWwoXG4gICAgcHJvZHVjdCxcbiAgICBvcHRpb25PbmNlT2ZmKG9wdGlvbiksXG4gICAgb3B0aW9uVW5pdChvcHRpb24pXG4gICk7XG4gIGlmIChvbmNlT2ZmVW5pdCkgcmV0dXJuIG9uY2VPZmZVbml0O1xuICBpZiAob3B0aW9uLnRvdGFsQ29zdCkge1xuICAgIHJldHVybiBgICsgJHtmb3JtYXRDb3N0KHByb2R1Y3QsIG9wdGlvbi50b3RhbENvc3QpfWA7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIHZhcmlhdGlvbkNvc3REZXRhaWwoXG4gIHByb2R1Y3Q6IGFueSxcbiAgdmFyaWF0aW9uOiBhbnksXG4gIHNlbGxlclByb2R1Y3RFZGl0YWJsZTogYm9vbGVhbixcbiAge1xuICAgIGluY2x1ZGVTZWxlY3RlZE9wdGlvbkNvc3RzID0gdHJ1ZSxcbiAgICBmaWVsZENvc3RzT25seSA9IGZhbHNlLFxuICB9OiB7XG4gICAgaW5jbHVkZVNlbGVjdGVkT3B0aW9uQ29zdHM/OiBib29sZWFuO1xuICAgIGZpZWxkQ29zdHNPbmx5PzogYm9vbGVhbjtcbiAgfSA9IHt9XG4pIHtcbiAgaWYgKHNlbGxlclByb2R1Y3RFZGl0YWJsZSkgcmV0dXJuICcnO1xuXG4gIGNvbnN0IGZpZWxkID0gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZCB8fCB7fTtcbiAgY29uc3QgZmllbGRUeXBlID0gTnVtYmVyKGZpZWxkLmZpZWxkVHlwZSk7XG5cbiAgaWYgKGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFSRUEpIHtcbiAgICBjb25zdCBhcmVhQ29zdHMgPSBlc3RpbWF0ZUFyZWFDb3N0cyhmaWVsZCwgdmFyaWF0aW9uPy52YWx1ZSk7XG4gICAgaWYgKGFyZWFDb3N0cykge1xuICAgICAgcmV0dXJuIGZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbChcbiAgICAgICAgcHJvZHVjdCxcbiAgICAgICAgYXJlYUNvc3RzLm9uY2VPZmZDb3N0LFxuICAgICAgICBhcmVhQ29zdHMudW5pdENvc3RcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGZpZWxkQ29zdHNPbmx5KSB7XG4gICAgcmV0dXJuIGZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbChcbiAgICAgIHByb2R1Y3QsXG4gICAgICBmaWVsZC52YXJpYXRpb25Db3N0LFxuICAgICAgZmllbGQudmFyaWF0aW9uVW5pdENvc3RcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc2VsZWN0ZWQgPSBBcnJheS5pc0FycmF5KHZhcmlhdGlvbj8uc2VsZWN0ZWRPcHRpb25zKVxuICAgID8gdmFyaWF0aW9uLnNlbGVjdGVkT3B0aW9uc1xuICAgIDogW107XG4gIGlmIChpbmNsdWRlU2VsZWN0ZWRPcHRpb25Db3N0cyAmJiBzZWxlY3RlZC5sZW5ndGgpIHtcbiAgICBjb25zdCBmaWVsZE9uY2UgPVxuICAgICAgZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1RcbiAgICAgICAgPyBwYXJzZUNvc3RBbW91bnQoZmllbGQudmFyaWF0aW9uQ29zdClcbiAgICAgICAgOiAwO1xuICAgIGNvbnN0IGZpZWxkVW5pdCA9XG4gICAgICBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfRVhUUkFDVFxuICAgICAgICA/IHBhcnNlQ29zdEFtb3VudChmaWVsZC52YXJpYXRpb25Vbml0Q29zdClcbiAgICAgICAgOiAwO1xuICAgIHJldHVybiBmb3JtYXRPbmNlT2ZmVW5pdENvc3REZXRhaWwoXG4gICAgICBwcm9kdWN0LFxuICAgICAgZmllbGRPbmNlICtcbiAgICAgICAgc2VsZWN0ZWQucmVkdWNlKFxuICAgICAgICAgIChzdW06IG51bWJlciwgb3B0aW9uOiBhbnkpID0+IHN1bSArIG9wdGlvbk9uY2VPZmYob3B0aW9uKSxcbiAgICAgICAgICAwXG4gICAgICAgICksXG4gICAgICBmaWVsZFVuaXQgK1xuICAgICAgICBzZWxlY3RlZC5yZWR1Y2UoXG4gICAgICAgICAgKHN1bTogbnVtYmVyLCBvcHRpb246IGFueSkgPT4gc3VtICsgb3B0aW9uVW5pdChvcHRpb24pLFxuICAgICAgICAgIDBcbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBjb25zdCBvbmNlT2ZmVW5pdCA9IGZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbChcbiAgICBwcm9kdWN0LFxuICAgIHZhcmlhdGlvbj8ub25jZU9mZkNvc3QgPz8gZmllbGQudmFyaWF0aW9uQ29zdCxcbiAgICB2YXJpYXRpb24/LnVuaXRDb3N0ID8/IGZpZWxkLnZhcmlhdGlvblVuaXRDb3N0XG4gICk7XG4gIGlmIChvbmNlT2ZmVW5pdCkgcmV0dXJuIG9uY2VPZmZVbml0O1xuICBpZiAodmFyaWF0aW9uPy5jb3N0KSB7XG4gICAgcmV0dXJuIGAgKyAke2Zvcm1hdENvc3QocHJvZHVjdCwgdmFyaWF0aW9uLmNvc3QpfWA7XG4gIH1cbiAgcmV0dXJuICcnO1xufVxuXG5mdW5jdGlvbiBWYXJpYXRpb25GaWxlUHJldmlldyh7XG4gIGZpbGUsXG4gIHVybEFwaSxcbn06IHtcbiAgZmlsZTogYW55O1xuICB1cmxBcGk/OiBzdHJpbmc7XG59KSB7XG4gIGNvbnN0IGZpbGVVcmwgPSByZXNvbHZlRmlsZVVybChmaWxlLCB1cmxBcGkpO1xuICBjb25zdCBmaWxlTmFtZSA9IGZpbGU/Lm5hbWUgfHwgJ0ZpbGUnO1xuICBjb25zdCBbaW1hZ2VGYWlsZWQsIHNldEltYWdlRmFpbGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBpZiAoaXNQZGYoZmlsZSkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGFcbiAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1maWxlLWxpbmsnXG4gICAgICAgIGhyZWY9e2ZpbGVVcmwgfHwgdW5kZWZpbmVkfVxuICAgICAgICB0YXJnZXQ9J19ibGFuaydcbiAgICAgICAgcmVsPSdub29wZW5lciBub3JlZmVycmVyJ1xuICAgICAgICB0aXRsZT17ZmlsZU5hbWV9XG4gICAgICA+XG4gICAgICAgIDxGYUZpbGVQZGYgYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgPHNwYW4+e2ZpbGVOYW1lfTwvc3Bhbj5cbiAgICAgIDwvYT5cbiAgICApO1xuICB9XG5cbiAgaWYgKGlzSW1hZ2VGaWxlKGZpbGUpICYmIGZpbGVVcmwgJiYgIWltYWdlRmFpbGVkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxpbWdcbiAgICAgICAgY2xhc3NOYW1lPSdtb2RhbC1tZXJjaGktY2hlY2tvdXQtam9iLWluZm8tY29udGVudC1pbWcnXG4gICAgICAgIHNyYz17ZmlsZVVybH1cbiAgICAgICAgYWx0PXtmaWxlTmFtZX1cbiAgICAgICAgdGl0bGU9e2ZpbGVOYW1lfVxuICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRJbWFnZUZhaWxlZCh0cnVlKX1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIGlmIChpc0ltYWdlRmlsZShmaWxlKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8c3BhblxuICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWZpbGUtZmFsbGJhY2snXG4gICAgICAgIHRpdGxlPXtmaWxlTmFtZX1cbiAgICAgID5cbiAgICAgICAgPEZhUmVnSW1hZ2UgYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgPHNwYW4+e2ZpbGVOYW1lfTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuICB9XG5cbiAgaWYgKGZpbGVVcmwpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPGFcbiAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1maWxlLWxpbmsnXG4gICAgICAgIGhyZWY9e2ZpbGVVcmx9XG4gICAgICAgIHRhcmdldD0nX2JsYW5rJ1xuICAgICAgICByZWw9J25vb3BlbmVyIG5vcmVmZXJyZXInXG4gICAgICAgIHRpdGxlPXtmaWxlTmFtZX1cbiAgICAgID5cbiAgICAgICAge2ZpbGVOYW1lfVxuICAgICAgPC9hPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gPHNwYW4+e2ZpbGVOYW1lfTwvc3Bhbj47XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkluZm9Cb2R5KHtcbiAgY29zdERldGFpbCxcbiAgbmFtZSxcbiAgcHJvZHVjdCxcbiAgdmFsdWUsXG4gIGZpbGVzLFxuICB0eXBlLFxuICB1cmxBcGksXG59OiBhbnkpIHtcbiAgY29uc3QgaXNDb2xvdXJQaWNrZXIgPSB0eXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX1BJQ0tFUjtcbiAgY29uc3QgaXNGaWxlVXBsb2FkID1cbiAgICB0eXBlID09PSBGaWVsZFR5cGUuRklMRV9VUExPQUQgfHwgdHlwZSA9PT0gRmllbGRUeXBlLkNPTE9VUl9FWFRSQUNUO1xuICBjb25zdCBoYXNGaWxlcyA9IEJvb2xlYW4oZmlsZXM/Lmxlbmd0aCk7XG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGlzQ29sb3VyUGlja2VyIHx8IChpc0ZpbGVVcGxvYWQgJiYgaGFzRmlsZXMpID8gbnVsbCA6IHZhbHVlO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi1yb3cnPlxuICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi1sYWJlbCc+e25hbWV9PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXZhbHVlJz5cbiAgICAgICAge2hhc0ZpbGVzICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktZmlsZS1wcmV2aWV3cyc+XG4gICAgICAgICAgICB7ZmlsZXMubWFwKChmaWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IChcbiAgICAgICAgICAgICAgPFZhcmlhdGlvbkZpbGVQcmV2aWV3XG4gICAgICAgICAgICAgICAga2V5PXtmaWxlLnZpZXdVcmwgfHwgZmlsZS5pZCB8fCBgJHtuYW1lfS1maWxlLSR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICBmaWxlPXtmaWxlfVxuICAgICAgICAgICAgICAgIHVybEFwaT17dXJsQXBpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtpc0NvbG91clBpY2tlciAmJiB2YWx1ZSAmJiAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWNvbG91ci12YWx1ZSc+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IHZhbHVlIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nY29sb3ItaW5kaWNhdG9yJ1xuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPnt2YWx1ZX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtkaXNwbGF5VmFsdWUgJiYgZGlzcGxheVZhbHVlfVxuICAgICAgICB7Y29zdERldGFpbCB8fCAnJ31cbiAgICAgICAgeyFoYXNGaWxlcyAmJiAhdmFsdWUgJiYgIWNvc3REZXRhaWwgJiYgJy0nfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkluZm8oeyBwcm9kdWN0LCB2YXJpYXRpb24gfTogYW55KSB7XG4gIGNvbnN0IHsgdXJsQXBpIH0gPSB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0KCk7XG4gIGNvbnN0IHsgc2VsZWN0ZWRPcHRpb25zLCB2YXJpYXRpb25GaWVsZCwgdmFyaWF0aW9uRmlsZXMsIHNlbGVjdGFibGVPcHRpb25zIH0gPVxuICAgIHZhcmlhdGlvbjtcbiAgY29uc3QgeyBmaWVsZFR5cGUsIHNlbGxlclByb2R1Y3RFZGl0YWJsZSwgb3B0aW9uczogZmllbGRPcHRpb25zID0gW10gfSA9XG4gICAgdmFyaWF0aW9uRmllbGQ7XG4gIGNvbnN0IGlzVmFyaWF0aW9uU2VsZWN0YWJsZSA9IGlzU2VsZWN0YWJsZShmaWVsZFR5cGUpO1xuICBjb25zdCBpc1R1cm5hcm91bmRUaW1lID0gZmllbGRUeXBlID09PSBGaWVsZFR5cGUuVFVSTkFST1VORF9USU1FO1xuICBjb25zdCBpc0NvbG91ckV4dHJhY3QgPSBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfRVhUUkFDVDtcbiAgY29uc3Qgb3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucztcbiAgY29uc3QgdXNlU2VsZWN0YWJsZURpc3BsYXkgPVxuICAgIGlzVmFyaWF0aW9uU2VsZWN0YWJsZSAmJlxuICAgIChCb29sZWFuKG9wdGlvbnM/Lmxlbmd0aCkgfHwgKGlzVHVybmFyb3VuZFRpbWUgJiYgdmFyaWF0aW9uLnZhbHVlKSk7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbic+XG4gICAgICB7aXNDb2xvdXJFeHRyYWN0ID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxWYXJpYXRpb25JbmZvQm9keVxuICAgICAgICAgICAgbmFtZT17dmFyaWF0aW9uRmllbGQubmFtZX1cbiAgICAgICAgICAgIHR5cGU9e2ZpZWxkVHlwZX1cbiAgICAgICAgICAgIHZhbHVlPXtudWxsfVxuICAgICAgICAgICAgZmlsZXM9e3ZhcmlhdGlvbkZpbGVzfVxuICAgICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cbiAgICAgICAgICAgIHVybEFwaT17dXJsQXBpfVxuICAgICAgICAgICAgY29zdERldGFpbD17dmFyaWF0aW9uQ29zdERldGFpbChcbiAgICAgICAgICAgICAgcHJvZHVjdCxcbiAgICAgICAgICAgICAgdmFyaWF0aW9uLFxuICAgICAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGUsXG4gICAgICAgICAgICAgIC8vIE9wdGlvbnMgbGlzdCBzaG93cyBlYWNoIGNvbG91ciBjb3N0OyBrZWVwIGZpZWxkIGJhc2UgY29zdCBoZXJlLlxuICAgICAgICAgICAgICBvcHRpb25zPy5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IHsgZmllbGRDb3N0c09ubHk6IHRydWUgfVxuICAgICAgICAgICAgICAgIDogeyBpbmNsdWRlU2VsZWN0ZWRPcHRpb25Db3N0czogZmFsc2UgfVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIHtvcHRpb25zPy5sZW5ndGggPyAoXG4gICAgICAgICAgICA8VmFyaWF0aW9uT3B0aW9uc0luZm9Cb2R5XG4gICAgICAgICAgICAgIG5hbWU9e2Ake3ZhcmlhdGlvbkZpZWxkLm5hbWV9IGNvbG91cnNgfVxuICAgICAgICAgICAgICBmaWVsZFR5cGU9e2ZpZWxkVHlwZX1cbiAgICAgICAgICAgICAgdmFsdWU9e3ZhcmlhdGlvbi52YWx1ZX1cbiAgICAgICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cbiAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgICB2YXJpYXRpb249e3ZhcmlhdGlvbn1cbiAgICAgICAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnM9e3NlbGVjdGFibGVPcHRpb25zfVxuICAgICAgICAgICAgICBmaWVsZE9wdGlvbnM9e2ZpZWxkT3B0aW9uc31cbiAgICAgICAgICAgICAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlPXtzZWxsZXJQcm9kdWN0RWRpdGFibGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiB1c2VTZWxlY3RhYmxlRGlzcGxheSA/IChcbiAgICAgICAgPFZhcmlhdGlvbk9wdGlvbnNJbmZvQm9keVxuICAgICAgICAgIG5hbWU9e3ZhcmlhdGlvbkZpZWxkLm5hbWV9XG4gICAgICAgICAgZmllbGRUeXBlPXtmaWVsZFR5cGV9XG4gICAgICAgICAgdmFsdWU9e3ZhcmlhdGlvbi52YWx1ZX1cbiAgICAgICAgICBwcm9kdWN0PXtwcm9kdWN0fVxuICAgICAgICAgIGZpbGVzPXt2YXJpYXRpb25GaWxlc31cbiAgICAgICAgICBzZWxlY3RlZE9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XG4gICAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnM9e3NlbGVjdGFibGVPcHRpb25zfVxuICAgICAgICAgIGZpZWxkT3B0aW9ucz17ZmllbGRPcHRpb25zfVxuICAgICAgICAgIHNlbGxlclByb2R1Y3RFZGl0YWJsZT17c2VsbGVyUHJvZHVjdEVkaXRhYmxlfVxuICAgICAgICAvPlxuICAgICAgKSA6IChcbiAgICAgICAgPFZhcmlhdGlvbkluZm9Cb2R5XG4gICAgICAgICAgbmFtZT17dmFyaWF0aW9uRmllbGQubmFtZX1cbiAgICAgICAgICB0eXBlPXt2YXJpYXRpb25GaWVsZC5maWVsZFR5cGV9XG4gICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQVJFQSAmJiB2YXJpYXRpb24udmFsdWVcbiAgICAgICAgICAgICAgPyBmb3JtYXRBcmVhU3VtbWFyeShcbiAgICAgICAgICAgICAgICAgIHZhcmlhdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZVByZWZlcnNJbXBlcmlhbCgpID8gJ2ltcGVyaWFsJyA6ICdtZXRyaWMnLFxuICAgICAgICAgICAgICAgICAgdmFyaWF0aW9uRmllbGQuYXJlYVVuaXQgfHwgJ21tJ1xuICAgICAgICAgICAgICAgICkgfHwgdmFyaWF0aW9uLnZhbHVlXG4gICAgICAgICAgICAgIDogdmFyaWF0aW9uLnZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbGVzPXt2YXJpYXRpb25GaWxlc31cbiAgICAgICAgICBwcm9kdWN0PXtwcm9kdWN0fVxuICAgICAgICAgIHVybEFwaT17dXJsQXBpfVxuICAgICAgICAgIGNvc3REZXRhaWw9e3ZhcmlhdGlvbkNvc3REZXRhaWwoXG4gICAgICAgICAgICBwcm9kdWN0LFxuICAgICAgICAgICAgdmFyaWF0aW9uLFxuICAgICAgICAgICAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlLFxuICAgICAgICAgICAgeyBpbmNsdWRlU2VsZWN0ZWRPcHRpb25Db3N0czogZmFsc2UgfVxuICAgICAgICAgICl9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBDb2xvdXJTZWxlY3RPcHRpb24oe1xuICBvcHRpb24sXG4gIHNlbGVjdGFibGVPcHRpb25zLFxuICBmaWVsZE9wdGlvbnMsXG4gIHByb2R1Y3QsXG4gIHNlbGxlclByb2R1Y3RFZGl0YWJsZSxcbn06IHtcbiAgb3B0aW9uOiBhbnk7XG4gIHNlbGVjdGFibGVPcHRpb25zPzogYW55W107XG4gIGZpZWxkT3B0aW9ucz86IGFueVtdO1xuICBwcm9kdWN0PzogYW55O1xuICBzZWxsZXJQcm9kdWN0RWRpdGFibGU/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBsYWJlbCA9IG9wdGlvbj8udmFsdWU/LnRyaW0oKSB8fCAnJztcbiAgY29uc3QgaGV4ID0gcmVzb2x2ZU9wdGlvbkNvbG91cihvcHRpb24sIHNlbGVjdGFibGVPcHRpb25zLCBmaWVsZE9wdGlvbnMpO1xuICBjb25zdCBjb3N0ID0gZm9ybWF0T3B0aW9uQ29zdChcbiAgICBwcm9kdWN0LFxuICAgIG9wdGlvbixcbiAgICBCb29sZWFuKHNlbGxlclByb2R1Y3RFZGl0YWJsZSlcbiAgKTtcbiAgcmV0dXJuIChcbiAgICA8c3BhbiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWNvbG91ci1vcHRpb24nPlxuICAgICAge2hleCAmJiAoXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgc3R5bGU9e3sgYmFja2dyb3VuZENvbG9yOiBoZXggfX1cbiAgICAgICAgICBjbGFzc05hbWU9J2NvbG9yLWluZGljYXRvcidcbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8c3Bhbj5cbiAgICAgICAge2xhYmVsIHx8IGhleCB8fCAn4oCTJ31cbiAgICAgICAge2Nvc3QgfHwgJyd9XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICApO1xufVxuXG5mdW5jdGlvbiBJbWFnZVNlbGVjdE9wdGlvbih7XG4gIG9wdGlvbixcbiAgc2VsZWN0YWJsZU9wdGlvbnMsXG4gIGZpZWxkT3B0aW9ucyxcbiAgcHJvZHVjdCxcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlLFxufToge1xuICBvcHRpb246IGFueTtcbiAgc2VsZWN0YWJsZU9wdGlvbnM/OiBhbnlbXTtcbiAgZmllbGRPcHRpb25zPzogYW55W107XG4gIHByb2R1Y3Q6IGFueTtcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlOiBib29sZWFuO1xufSkge1xuICBjb25zdCB7IHVybEFwaSB9ID0gdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCgpO1xuICBjb25zdCBpbWFnZVVybCA9IHJlc29sdmVPcHRpb25JbWFnZVVybChcbiAgICBvcHRpb24sXG4gICAgc2VsZWN0YWJsZU9wdGlvbnMsXG4gICAgZmllbGRPcHRpb25zLFxuICAgIHVybEFwaVxuICApO1xuICBjb25zdCBsYWJlbCA9IG9wdGlvbj8udmFsdWU/LnRyaW0oKSB8fCAnJztcbiAgY29uc3QgY29zdCA9IGZvcm1hdE9wdGlvbkNvc3QocHJvZHVjdCwgb3B0aW9uLCBzZWxsZXJQcm9kdWN0RWRpdGFibGUpO1xuICBjb25zdCBbaW1hZ2VGYWlsZWQsIHNldEltYWdlRmFpbGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICByZXR1cm4gKFxuICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktaW1hZ2Utc2VsZWN0LW9wdGlvbic+XG4gICAgICB7aW1hZ2VVcmwgJiYgIWltYWdlRmFpbGVkID8gKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgY2xhc3NOYW1lPSdtb2RhbC1tZXJjaGktY2hlY2tvdXQtam9iLWluZm8tY29udGVudC1pbWcnXG4gICAgICAgICAgc3JjPXtpbWFnZVVybH1cbiAgICAgICAgICBhbHQ9e2xhYmVsIHx8ICdTZWxlY3RlZCBvcHRpb24nfVxuICAgICAgICAgIHRpdGxlPXtsYWJlbCB8fCB1bmRlZmluZWR9XG4gICAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0SW1hZ2VGYWlsZWQodHJ1ZSl9XG4gICAgICAgIC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIDxzcGFuPlxuICAgICAgICB7bGFiZWwgfHwgJ+KAkyd9XG4gICAgICAgIHtjb3N0IHx8ICcnfVxuICAgICAgPC9zcGFuPlxuICAgIDwvc3Bhbj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0T3B0aW9uSWQob3B0aW9uOiBhbnkpIHtcbiAgcmV0dXJuIG9wdGlvbj8ub3B0aW9uSWQgPz8gb3B0aW9uPy5pZDtcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZVR1cm5hcm91bmRTZWxlY3RlZE9wdGlvbihcbiAgdmFyaWF0aW9uOiBhbnksXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxuICBmaWVsZE9wdGlvbnM6IGFueVtdID0gW11cbikge1xuICBjb25zdCB7IHNlbGVjdGVkT3B0aW9ucyA9IFtdLCB2YWx1ZSB9ID0gdmFyaWF0aW9uO1xuICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRPcHRpb25zWzBdO1xuICB9XG4gIGNvbnN0IHZhbHVlU3RyID0gdmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycgPyBTdHJpbmcodmFsdWUpLnRyaW0oKSA6ICcnO1xuICBpZiAoIXZhbHVlU3RyKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBwb29scyA9IFtzZWxlY3RhYmxlT3B0aW9ucywgZmllbGRPcHRpb25zXTtcbiAgZm9yIChjb25zdCBwb29sIG9mIHBvb2xzKSB7XG4gICAgY29uc3QgYnlJZCA9IHBvb2wuZmluZChcbiAgICAgIChvOiBhbnkpID0+IFN0cmluZyhnZXRPcHRpb25JZChvKSkgPT09IHZhbHVlU3RyXG4gICAgKTtcbiAgICBpZiAoYnlJZCkgcmV0dXJuIGJ5SWQ7XG4gICAgY29uc3QgYnlWYWx1ZSA9IHBvb2wuZmluZChcbiAgICAgIChvOiBhbnkpID0+IFN0cmluZyhvLnZhbHVlID8/ICcnKSA9PT0gdmFsdWVTdHJcbiAgICApO1xuICAgIGlmIChieVZhbHVlKSByZXR1cm4gYnlWYWx1ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gZm9ybWF0VHVybmFyb3VuZERlYWRsaW5lKHVzZXJEZWFkbGluZTogYW55KSB7XG4gIGlmICghdXNlckRlYWRsaW5lKSByZXR1cm4gbnVsbDtcbiAgY29uc3Qgc2Vjb25kcyA9IE51bWJlcih1c2VyRGVhZGxpbmUpO1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShzZWNvbmRzKSB8fCBzZWNvbmRzIDw9IDApIHJldHVybiBudWxsO1xuICByZXR1cm4gbmV3IERhdGUoc2Vjb25kcyAqIDEwMDApLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tQVUnLCB7XG4gICAgd2Vla2RheTogJ2xvbmcnLFxuICAgIHllYXI6ICdudW1lcmljJyxcbiAgICBtb250aDogJ2xvbmcnLFxuICAgIGRheTogJ251bWVyaWMnLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gVHVybmFyb3VuZE9wdGlvbkxhYmVsKHtcbiAgb3B0aW9uLFxuICB2YXJpYXRpb25GaWVsZCxcbiAgcHJvZHVjdCxcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlLFxufToge1xuICBvcHRpb246IGFueTtcbiAgdmFyaWF0aW9uRmllbGQ6IGFueTtcbiAgcHJvZHVjdDogYW55O1xuICBzZWxsZXJQcm9kdWN0RWRpdGFibGU6IGJvb2xlYW47XG59KSB7XG4gIGNvbnN0IGRheXMgPSBwYXJzZUludChTdHJpbmcob3B0aW9uPy52YWx1ZSA/PyAnJyksIDEwKSB8fCAwO1xuICBjb25zdCBkZWFkbGluZSA9IGZvcm1hdFR1cm5hcm91bmREZWFkbGluZShvcHRpb24/LnVzZXJEZWFkbGluZSk7XG4gIGNvbnN0IHNoaXBwaW5nVGltZUluY2x1ZGVkID0gQm9vbGVhbih2YXJpYXRpb25GaWVsZD8uc2hpcHBpbmdUaW1lSW5jbHVkZWQpO1xuICBjb25zdCBkZWFkbGluZUxhYmVsID0gc2hpcHBpbmdUaW1lSW5jbHVkZWQgPyAnRGVsaXZlcnkgYnknIDogJ1Byb2R1Y2VkIGJ5JztcbiAgY29uc3QgY29zdCA9IGZvcm1hdE9wdGlvbkNvc3QocHJvZHVjdCwgb3B0aW9uLCBzZWxsZXJQcm9kdWN0RWRpdGFibGUpO1xuXG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS10dXJuYXJvdW5kLXZhbHVlJz5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdHVybmFyb3VuZC1kYXlzJz5cbiAgICAgICAge2RheXMgPiAwXG4gICAgICAgICAgPyBgJHtkYXlzfSBidXNpbmVzcyBkYXkke2RheXMgIT09IDEgPyAncycgOiAnJ31gXG4gICAgICAgICAgOiAob3B0aW9uPy52YWx1ZT8udHJpbSgpIHx8ICfigJMnKX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHtkZWFkbGluZSAmJiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdHVybmFyb3VuZC1kZWFkbGluZSc+XG4gICAgICAgICAge2RlYWRsaW5lTGFiZWx9IHtkZWFkbGluZX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgKX1cbiAgICAgIHtjb3N0IHx8ICcnfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn1cblxuZnVuY3Rpb24gVmFyaWF0aW9uT3B0aW9uc0luZm9Cb2R5KHtcbiAgbmFtZSxcbiAgc2VsZWN0ZWRPcHRpb25zLFxuICBzZWxsZXJQcm9kdWN0RWRpdGFibGUsXG4gIHByb2R1Y3QsXG4gIGZpZWxkVHlwZSxcbiAgdmFyaWF0aW9uLFxuICBzZWxlY3RhYmxlT3B0aW9ucyA9IFtdLFxuICBmaWVsZE9wdGlvbnMgPSBbXSxcbn06IGFueSkge1xuICBjb25zdCBpc1R1cm5hcm91bmRUaW1lID0gZmllbGRUeXBlID09PSBGaWVsZFR5cGUuVFVSTkFST1VORF9USU1FO1xuICBjb25zdCBmaXJzdE9wdGlvbiA9IGlzVHVybmFyb3VuZFRpbWVcbiAgICA/IHJlc29sdmVUdXJuYXJvdW5kU2VsZWN0ZWRPcHRpb24oXG4gICAgICAgIHsgc2VsZWN0ZWRPcHRpb25zLCB2YWx1ZTogdmFyaWF0aW9uPy52YWx1ZSB9LFxuICAgICAgICBzZWxlY3RhYmxlT3B0aW9ucyxcbiAgICAgICAgZmllbGRPcHRpb25zXG4gICAgICApXG4gICAgOiBzZWxlY3RlZE9wdGlvbnNbMF07XG4gIGNvbnN0IGlzQ29sb3VyU2VsZWN0ID1cbiAgICBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfU0VMRUNUIHx8XG4gICAgZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1Q7XG4gIGNvbnN0IGlzSW1hZ2VTZWxlY3QgPSBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5JTUFHRV9TRUxFQ1Q7XG4gIGNvbnN0IHZhcmlhdGlvbkZpZWxkID0gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZCA/PyB7fTtcblxuICBmdW5jdGlvbiByZW5kZXJPcHRpb25MYWJlbChvOiBhbnkpIHtcbiAgICBpZiAoaXNUdXJuYXJvdW5kVGltZSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFR1cm5hcm91bmRPcHRpb25MYWJlbFxuICAgICAgICAgIG9wdGlvbj17b31cbiAgICAgICAgICB2YXJpYXRpb25GaWVsZD17dmFyaWF0aW9uRmllbGR9XG4gICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpc0NvbG91clNlbGVjdCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPENvbG91clNlbGVjdE9wdGlvblxuICAgICAgICAgIG9wdGlvbj17b31cbiAgICAgICAgICBzZWxlY3RhYmxlT3B0aW9ucz17c2VsZWN0YWJsZU9wdGlvbnN9XG4gICAgICAgICAgZmllbGRPcHRpb25zPXtmaWVsZE9wdGlvbnN9XG4gICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChpc0ltYWdlU2VsZWN0KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8SW1hZ2VTZWxlY3RPcHRpb25cbiAgICAgICAgICBvcHRpb249e299XG4gICAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnM9e3NlbGVjdGFibGVPcHRpb25zfVxuICAgICAgICAgIGZpZWxkT3B0aW9ucz17ZmllbGRPcHRpb25zfVxuICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XG4gICAgICAgICAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlPXtzZWxsZXJQcm9kdWN0RWRpdGFibGV9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge28udmFsdWU/LnRyaW0oKSB8fCAn4oCTJ31cbiAgICAgICAge2Zvcm1hdE9wdGlvbkNvc3QocHJvZHVjdCwgbywgc2VsbGVyUHJvZHVjdEVkaXRhYmxlKSB8fCAnJ31cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7c2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDEgJiYgIWlzVHVybmFyb3VuZFRpbWUgPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tcm93Jz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLWxhYmVsJz57bmFtZX08L2Rpdj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tdmFsdWUgbGlzdC11bnN0eWxlZCBtLTAnPlxuICAgICAgICAgICAge3NlbGVjdGVkT3B0aW9ucy5tYXAoKG86IGFueSwgaTogbnVtYmVyKSA9PiAoXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2Ake2l9LW9wdGlvbi1rZXktJHtvLm9wdGlvbklkID8/IGl9YH0+XG4gICAgICAgICAgICAgICAge3JlbmRlck9wdGlvbkxhYmVsKG8pfVxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9kaXY+XG4gICAgICApIDogZmlyc3RPcHRpb24gPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tcm93Jz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLWxhYmVsJz57bmFtZX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXZhbHVlJz5cbiAgICAgICAgICAgIHtyZW5kZXJPcHRpb25MYWJlbChmaXJzdE9wdGlvbil9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi1yb3cnPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tbGFiZWwnPntuYW1lfTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tdmFsdWUnPi08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufVxuXG5mdW5jdGlvbiBWYXJpYXRpb25zSW5mbyh7IHByb2R1Y3QsIHF1YW50aXR5LCB2YXJpYXRpb25zID0gW10gfTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbnMnPlxuICAgICAge3ZhcmlhdGlvbnMubWFwKCh2OiBhbnksIGk6IG51bWJlcikgPT5cbiAgICAgICAgIWlzSW5zdHJ1Y3Rpb25zVHlwZSh2LnZhcmlhdGlvbkZpZWxkLmZpZWxkVHlwZSkgPyAoXG4gICAgICAgICAgPFZhcmlhdGlvbkluZm9cbiAgICAgICAgICAgIHF1YW50aXR5PXtxdWFudGl0eX1cbiAgICAgICAgICAgIHZhcmlhdGlvbj17dn1cbiAgICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XG4gICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IG51bGxcbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmZ1bmN0aW9uIFZhcmlhdGlvbkdyb3VwSW5mbyh7XG4gIGdyb3VwLFxuICBpbmRleCxcbiAgcHJvZHVjdCxcbiAgc2hvd1NldHVwT25Vbml0UHJpY2UsXG59OiBhbnkpIHtcbiAgY29uc3QgaXNSZXNlbGwgPSBpc1Byb2R1Y3RTdXBwbGllck1PRChwcm9kdWN0KTtcbiAgY29uc3QgeyBxdWFudGl0eSwgdmFyaWF0aW9ucyB9ID0gZ3JvdXA7XG4gIGNvbnN0IHZpc2libGVWYXJpYXRpb25zID0gKHZhcmlhdGlvbnMgPz8gW10pLmZpbHRlcihcbiAgICAodjogYW55KSA9PiAhaXNJbnN0cnVjdGlvbnNUeXBlKHY/LnZhcmlhdGlvbkZpZWxkPy5maWVsZFR5cGUpXG4gICk7XG4gIGNvbnN0IGNvc3RMYWJlbCA9IGlzUmVzZWxsID8gJ1VuaXQgQ29zdCcgOiAnR3JvdXAgQ29zdCc7XG4gIGNvbnN0IHVuaXRQcmljZVZhbHVlID0gc2hvd1NldHVwT25Vbml0UHJpY2VcbiAgICA/IGZvcm1hdFVuaXRQcmljZVdpdGhTZXR1cChwcm9kdWN0KVxuICAgIDogZm9ybWF0Q29zdChwcm9kdWN0LCBOdW1iZXIocHJvZHVjdD8udW5pdFByaWNlKSB8fCAwKTtcblxuICByZXR1cm4gKFxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktZ3JvdXAnPlxuICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LW9yZGVyLWRldGFpbC10aXRsZSc+XG4gICAgICAgIEdyb3VwIHtpbmRleCArIDF9IEluZm9ybWF0aW9uXG4gICAgICA8L3N0cm9uZz5cbiAgICAgIHshaXNSZXNlbGwgJiYgcXVhbnRpdHkgPiAwICYmIChcbiAgICAgICAgPFN1bW1hcnlGaWVsZFJvdyBsYWJlbD0nUXVhbnRpdHknIHZhbHVlPXtxdWFudGl0eX0gLz5cbiAgICAgICl9XG4gICAgICA8U3VtbWFyeUZpZWxkUm93IGxhYmVsPSdVbml0IFByaWNlJyB2YWx1ZT17dW5pdFByaWNlVmFsdWV9IC8+XG4gICAgICB7dmlzaWJsZVZhcmlhdGlvbnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxWYXJpYXRpb25zSW5mb1xuICAgICAgICAgIHF1YW50aXR5PXtxdWFudGl0eX1cbiAgICAgICAgICB2YXJpYXRpb25zPXt2YXJpYXRpb25zfVxuICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWdyb3VwLWNvc3QnPlxuICAgICAgICB7Y29zdExhYmVsfToge2Zvcm1hdENvc3QocHJvZHVjdCwgZ3JvdXAuZ3JvdXBDb3N0KX1cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvc2VjdGlvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSm9iSW5mb0NvbnRlbnQoKSB7XG4gIGNvbnN0IHsgam9iIH0gPSB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0KCk7XG4gIGNvbnN0IHsgcHJvZHVjdCwgcXVhbnRpdHkgPSAwLCB2YXJpYXRpb25zID0gW10sIHZhcmlhdGlvbnNHcm91cHMgPSBbXSB9ID0gam9iO1xuICBjb25zdCB7IG5lZWRzU2hpcHBpbmcgfSA9IHByb2R1Y3Q7XG4gIGNvbnN0IHRvdGFsQ29zdCA9IGN1cnJlbmN5VG90YWxDb3N0U2hvd0luY1RheChqb2IpO1xuICBjb25zdCBpc1Jlc2VsbCA9IGlzUHJvZHVjdFN1cHBsaWVyTU9EKHByb2R1Y3QpO1xuICBjb25zdCBoYXNHcm91cHMgPSB2YXJpYXRpb25zR3JvdXBzLmxlbmd0aCA+IDA7XG4gIGNvbnN0IGpvYkxldmVsVmFyaWF0aW9ucyA9ICh2YXJpYXRpb25zID8/IFtdKS5maWx0ZXIoXG4gICAgKHY6IGFueSkgPT4gIWlzSW5zdHJ1Y3Rpb25zVHlwZSh2Py52YXJpYXRpb25GaWVsZD8uZmllbGRUeXBlKVxuICApO1xuICBjb25zdCB0b3RhbFF1YW50aXR5ID0gaGFzR3JvdXBzXG4gICAgPyB2YXJpYXRpb25zR3JvdXBzLnJlZHVjZShcbiAgICAgICAgKHN1bTogbnVtYmVyLCBnOiBhbnkpID0+IHN1bSArIChOdW1iZXIoZy5xdWFudGl0eSkgfHwgMCksXG4gICAgICAgIDBcbiAgICAgIClcbiAgICA6IE51bWJlcihxdWFudGl0eSkgfHwgMDtcbiAgY29uc3Qgc2V0dXBQZXJHcm91cCA9IEJvb2xlYW4ocHJvZHVjdD8uc2V0dXBQZXJHcm91cCk7XG4gIGNvbnN0IGhhc1NldHVwUHJpY2UgPSBOdW1iZXIocHJvZHVjdD8uc2V0dXBQcmljZSkgPiAwO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9J21vZGFsLW1lcmNoaS1jaGVja291dC1qb2ItaW5mby1jb250ZW50IG1lcmNoaS1jaGVja291dC1zdW1tYXJ5Jz5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1zZWN0aW9uLXRpdGxlJz57cHJvZHVjdC5uYW1lfTwvZGl2PlxuICAgICAge2hhc0dyb3VwcyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1ncm91cHMnPlxuICAgICAgICAgIHt2YXJpYXRpb25zR3JvdXBzLm1hcCgoZzogYW55LCBpOiBudW1iZXIpID0+XG4gICAgICAgICAgICBnLnF1YW50aXR5ID8gKFxuICAgICAgICAgICAgICA8VmFyaWF0aW9uR3JvdXBJbmZvXG4gICAgICAgICAgICAgICAgZ3JvdXA9e2d9XG4gICAgICAgICAgICAgICAga2V5PXtgJHtpfS1qb2ItaW5mby1jb250ZW50YH1cbiAgICAgICAgICAgICAgICBpbmRleD17aX1cbiAgICAgICAgICAgICAgICBwcm9kdWN0PXtwcm9kdWN0fVxuICAgICAgICAgICAgICAgIHNob3dTZXR1cE9uVW5pdFByaWNlPXtzZXR1cFBlckdyb3VwfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGxcbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7IWhhc0dyb3VwcyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1zdGFuZGFsb25lJz5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktb3JkZXItZGV0YWlsLXRpdGxlJz5cbiAgICAgICAgICAgIE9yZGVyIEluZm9ybWF0aW9uXG4gICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAge3F1YW50aXR5ID4gMCAmJiAoXG4gICAgICAgICAgICA8U3VtbWFyeUZpZWxkUm93IGxhYmVsPSdRdWFudGl0eScgdmFsdWU9e3F1YW50aXR5fSAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN1bW1hcnlGaWVsZFJvd1xuICAgICAgICAgICAgbGFiZWw9J1VuaXQgUHJpY2UnXG4gICAgICAgICAgICB2YWx1ZT17Zm9ybWF0VW5pdFByaWNlV2l0aFNldHVwKHByb2R1Y3QpfVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2pvYkxldmVsVmFyaWF0aW9ucy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDxWYXJpYXRpb25zSW5mb1xuICAgICAgICAgICAgICBxdWFudGl0eT17cXVhbnRpdHl9XG4gICAgICAgICAgICAgIHZhcmlhdGlvbnM9e3ZhcmlhdGlvbnN9XG4gICAgICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIHtoYXNHcm91cHMgJiYgam9iTGV2ZWxWYXJpYXRpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktc3RhbmRhbG9uZSc+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LW9yZGVyLWRldGFpbC10aXRsZSc+XG4gICAgICAgICAgICBPcmRlciBJbmZvcm1hdGlvblxuICAgICAgICAgIDwvc3Ryb25nPlxuICAgICAgICAgIDxWYXJpYXRpb25zSW5mb1xuICAgICAgICAgICAgcXVhbnRpdHk9e3F1YW50aXR5fVxuICAgICAgICAgICAgdmFyaWF0aW9ucz17dmFyaWF0aW9uc31cbiAgICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgeyFpc1Jlc2VsbCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS10b3RhbCc+XG4gICAgICAgICAge3RvdGFsUXVhbnRpdHkgPiAwICYmIChcbiAgICAgICAgICAgIDxTdW1tYXJ5QW1vdW50Um93XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdG90YWwtcXVhbnRpdHknXG4gICAgICAgICAgICAgIGxhYmVsPSdUb3RhbCBRdWFudGl0eSdcbiAgICAgICAgICAgICAgYW1vdW50PXt0b3RhbFF1YW50aXR5fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHtoYXNHcm91cHMgJiYgaGFzU2V0dXBQcmljZSAmJiAhc2V0dXBQZXJHcm91cCAmJiAoXG4gICAgICAgICAgICA8U3VtbWFyeUFtb3VudFJvd1xuICAgICAgICAgICAgICBsYWJlbD0nU2V0dXAnXG4gICAgICAgICAgICAgIGFtb3VudD17Zm9ybWF0Q29zdChwcm9kdWN0LCBOdW1iZXIocHJvZHVjdC5zZXR1cFByaWNlKSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN1bW1hcnlBbW91bnRSb3dcbiAgICAgICAgICAgIGxhYmVsPSdUb3RhbCBPcmRlciBDb3N0J1xuICAgICAgICAgICAgbGFiZWxFeHRyYT17XG4gICAgICAgICAgICAgIG5lZWRzU2hpcHBpbmcgPyAoXG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdG90YWwtbm90ZSc+IGV4IFNoaXBtZW50PC9zbWFsbD5cbiAgICAgICAgICAgICAgKSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW1vdW50PXt0b3RhbENvc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgeyEhKGlzUmVzZWxsICYmICFoYXNHcm91cHMpICYmIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWItMCc+XG4gICAgICAgICAgICB7aXNSZXNlbGwgPyAnQXBwcm94aW1hdGUgVW5pdCcgOiAnVG90YWwnfSBDb3N0XG4gICAgICAgICAgPC9zdHJvbmc+eycgJ31cbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWItMCBkLWJsb2NrJz57dG90YWxDb3N0fTwvc3Ryb25nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsZUFBQUMsR0FBQSxFQUFBQyxDQUFBLFdBQUFDLGVBQUEsQ0FBQUYsR0FBQSxLQUFBRyxxQkFBQSxDQUFBSCxHQUFBLEVBQUFDLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUosR0FBQSxFQUFBQyxDQUFBLEtBQUFJLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBRyxDQUFBLEVBQUFDLE1BQUEsU0FBQUQsQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQUUsaUJBQUEsQ0FBQUYsQ0FBQSxFQUFBQyxNQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLENBQUFDLFFBQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLEVBQUFRLEtB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
|
|
730
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIm8iLCJhbGxvd0FycmF5TGlrZSIsIml0IiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJBcnJheSIsImlzQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJsZW5ndGgiLCJpIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZSIsIl9lIiwiZiIsIlR5cGVFcnJvciIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJlcnIiLCJjYWxsIiwic3RlcCIsIm5leHQiLCJfZTIiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJmcm9tIiwidGVzdCIsImxlbiIsImFycjIiLCJyIiwibCIsInQiLCJ1IiwiYSIsInB1c2giLCJSZWFjdCIsInVzZVN0YXRlIiwiRmFGaWxlUGRmIiwiRmFSZWdJbWFnZSIsImZvcm1hdEN1cnJlbmN5IiwiY3VycmVuY3lUb3RhbENvc3RTaG93SW5jVGF4IiwiaXNJbnN0cnVjdGlvbnNUeXBlIiwiaXNQcm9kdWN0U3VwcGxpZXJNT0QiLCJpc1NlbGVjdGFibGUiLCJGaWVsZFR5cGUiLCJlc3RpbWF0ZUFyZWFDb3N0cyIsImZvcm1hdEFyZWFTdW1tYXJ5IiwibG9jYWxlUHJlZmVyc0ltcGVyaWFsIiwidXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCIsIlN1bW1hcnlBbW91bnRSb3ciLCJTdW1tYXJ5RmllbGRSb3ciLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJmb3JtYXRDb3N0IiwicHJvZHVjdCIsImNvc3QiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsInBhcnNlQ29zdEFtb3VudCIsImFtb3VudCIsInBhcnNlRmxvYXQiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbCIsIm9uY2VPZmZDb3N0IiwidW5pdENvc3QiLCJwYXJ0cyIsIm9uY2VPZmYiLCJ1bml0IiwiY29uY2F0Iiwiam9pbiIsIm9wdGlvbk9uY2VPZmYiLCJvcHRpb24iLCJ2YXJpYXRpb25Db3N0Iiwib3B0aW9uVW5pdCIsInZhcmlhdGlvblVuaXRDb3N0IiwicHJvZHVjdFNldHVwU3VmZml4Iiwic2V0dXBQcmljZSIsImxhYmVsIiwic2V0dXBQZXJHcm91cCIsImZvcm1hdFVuaXRQcmljZVdpdGhTZXR1cCIsInVuaXRQcmljZSIsImlzUGRmIiwiZmlsZSIsIm1pbWV0eXBlIiwiaXNJbWFnZUZpbGUiLCJzdGFydHNXaXRoIiwidG9Mb3dlckNhc2UiLCJhYnNvbHV0aXplRmlsZVVybCIsInJhdyIsInVybEFwaSIsInVybCIsInRyaW0iLCJiYXNlIiwiVVJMIiwib3JpZ2luIiwiaHJlZiIsIl91bnVzZWQiLCJyZXNvbHZlRmlsZVVybCIsInZpZXdVcmwiLCJkb3dubG9hZFVybCIsIm9wdGlvbkltYWdlVXJsIiwiX29wdGlvbiRsaW5rZWRGaWxlIiwiX29wdGlvbiRsaW5rZWRGaWxlMiIsImxpbmtlZEZpbGUiLCJmaW5kTWF0Y2hpbmdPcHRpb24iLCJvcHRpb25zIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiZmluZCIsIlN0cmluZyIsIm9wdGlvbklkIiwicmVzb2x2ZU9wdGlvbkNvbG91ciIsIl9vcHRpb24kY29sb3VyIiwiX2ZpbmRNYXRjaGluZ09wdGlvbiIsIl9maW5kTWF0Y2hpbmdPcHRpb24yIiwic2VsZWN0YWJsZU9wdGlvbnMiLCJmaWVsZE9wdGlvbnMiLCJkaXJlY3QiLCJjb2xvdXIiLCJmcm9tU2VsZWN0YWJsZSIsInJlc29sdmVPcHRpb25JbWFnZVVybCIsImZvcm1hdE9wdGlvbkNvc3QiLCJzZWxsZXJQcm9kdWN0RWRpdGFibGUiLCJvbmNlT2ZmVW5pdCIsInRvdGFsQ29zdCIsInZhcmlhdGlvbkNvc3REZXRhaWwiLCJ2YXJpYXRpb24iLCJfdmFyaWF0aW9uJG9uY2VPZmZDb3MiLCJfdmFyaWF0aW9uJHVuaXRDb3N0IiwiX3JlZiIsIl9yZWYkaW5jbHVkZVNlbGVjdGVkTyIsImluY2x1ZGVTZWxlY3RlZE9wdGlvbkNvc3RzIiwiX3JlZiRmaWVsZENvc3RzT25seSIsImZpZWxkQ29zdHNPbmx5IiwiZmllbGQiLCJ2YXJpYXRpb25GaWVsZCIsImZpZWxkVHlwZSIsIkFSRUEiLCJhcmVhQ29zdHMiLCJzZWxlY3RlZCIsInNlbGVjdGVkT3B0aW9ucyIsImZpZWxkT25jZSIsIkNPTE9VUl9FWFRSQUNUIiwiZmllbGRVbml0IiwicmVkdWNlIiwic3VtIiwiVmFyaWF0aW9uRmlsZVByZXZpZXciLCJfcmVmMiIsImZpbGVVcmwiLCJmaWxlTmFtZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpbWFnZUZhaWxlZCIsInNldEltYWdlRmFpbGVkIiwiY2xhc3NOYW1lIiwidGFyZ2V0IiwicmVsIiwidGl0bGUiLCJjaGlsZHJlbiIsInNyYyIsImFsdCIsIm9uRXJyb3IiLCJWYXJpYXRpb25JbmZvQm9keSIsIl9yZWYzIiwiY29zdERldGFpbCIsImZpbGVzIiwidHlwZSIsImlzQ29sb3VyUGlja2VyIiwiQ09MT1VSX1BJQ0tFUiIsImlzRmlsZVVwbG9hZCIsIkZJTEVfVVBMT0FEIiwiaGFzRmlsZXMiLCJCb29sZWFuIiwiZGlzcGxheVZhbHVlIiwibWFwIiwiaW5kZXgiLCJpZCIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiVmFyaWF0aW9uSW5mbyIsIl9yZWY0IiwiX3VzZU1lcmNoaUNoZWNrYm91dENvIiwidmFyaWF0aW9uRmlsZXMiLCJfdmFyaWF0aW9uRmllbGQkb3B0aW8iLCJpc1ZhcmlhdGlvblNlbGVjdGFibGUiLCJpc1R1cm5hcm91bmRUaW1lIiwiVFVSTkFST1VORF9USU1FIiwiaXNDb2xvdXJFeHRyYWN0IiwicmVzb2x2ZVNlbGVjdGFibGVTZWxlY3RlZE9wdGlvbnMiLCJ1c2VTZWxlY3RhYmxlRGlzcGxheSIsIlZhcmlhdGlvbk9wdGlvbnNJbmZvQm9keSIsImFyZWFVbml0IiwiQ29sb3VyU2VsZWN0T3B0aW9uIiwiX3JlZjUiLCJfb3B0aW9uJHZhbHVlIiwiaGV4IiwiSW1hZ2VTZWxlY3RPcHRpb24iLCJfcmVmNiIsIl9vcHRpb24kdmFsdWUyIiwiX3VzZU1lcmNoaUNoZWNrYm91dENvMiIsImltYWdlVXJsIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJnZXRPcHRpb25JZCIsIl9vcHRpb24kb3B0aW9uSWQiLCJzcGxpdFNlbGVjdGVkT3B0aW9uSWRzIiwiZmlsdGVyIiwic3BsaXQiLCJwYXJ0IiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwic2VsZWN0ZWRJZHMiLCJwb29scyIsInJlc29sdmVkIiwiX2l0ZXJhdG9yIiwiX3N0ZXAiLCJfbG9vcCIsIl9pIiwiX3Bvb2xzIiwicG9vbCIsIm1hdGNoIiwicmVzb2x2ZVR1cm5hcm91bmRTZWxlY3RlZE9wdGlvbiIsInZhbHVlU3RyIiwiX2kyIiwiX3Bvb2xzMiIsImJ5VmFsdWUiLCJfb3B0aW9uJHZhbHVlMyIsImZvcm1hdFR1cm5hcm91bmREZWFkbGluZSIsInVzZXJEZWFkbGluZSIsInNlY29uZHMiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwid2Vla2RheSIsInllYXIiLCJtb250aCIsImRheSIsIlR1cm5hcm91bmRPcHRpb25MYWJlbCIsIl9yZWY3IiwiX29wdGlvbiR2YWx1ZTQiLCJfb3B0aW9uJHZhbHVlNSIsImRheXMiLCJwYXJzZUludCIsImRlYWRsaW5lIiwic2hpcHBpbmdUaW1lSW5jbHVkZWQiLCJkZWFkbGluZUxhYmVsIiwiX3JlZjgiLCJfdmFyaWF0aW9uJHZhcmlhdGlvbkYyIiwiX3JlZjgkc2VsZWN0YWJsZU9wdGlvIiwiX3JlZjgkZmllbGRPcHRpb25zIiwiZmlyc3RPcHRpb24iLCJpc0NvbG91clNlbGVjdCIsIkNPTE9VUl9TRUxFQ1QiLCJpc0ltYWdlU2VsZWN0IiwiSU1BR0VfU0VMRUNUIiwicmVuZGVyT3B0aW9uTGFiZWwiLCJfbyR2YWx1ZSIsIl9vJG9wdGlvbklkIiwiVmFyaWF0aW9uc0luZm8iLCJfcmVmOSIsInF1YW50aXR5IiwiX3JlZjkkdmFyaWF0aW9ucyIsInZhcmlhdGlvbnMiLCJ2IiwiVmFyaWF0aW9uR3JvdXBJbmZvIiwiX3JlZjEwIiwiZ3JvdXAiLCJzaG93U2V0dXBPblVuaXRQcmljZSIsImlzUmVzZWxsIiwidmlzaWJsZVZhcmlhdGlvbnMiLCJfdiR2YXJpYXRpb25GaWVsZCIsImNvc3RMYWJlbCIsInVuaXRQcmljZVZhbHVlIiwiZ3JvdXBDb3N0IiwiSm9iSW5mb0NvbnRlbnQiLCJfdXNlTWVyY2hpQ2hlY2tib3V0Q28zIiwiam9iIiwiX2pvYiRxdWFudGl0eSIsIl9qb2IkdmFyaWF0aW9ucyIsIl9qb2IkdmFyaWF0aW9uc0dyb3VwcyIsInZhcmlhdGlvbnNHcm91cHMiLCJuZWVkc1NoaXBwaW5nIiwiaGFzR3JvdXBzIiwiam9iTGV2ZWxWYXJpYXRpb25zIiwiX3YkdmFyaWF0aW9uRmllbGQyIiwidG90YWxRdWFudGl0eSIsImciLCJoYXNTZXR1cFByaWNlIiwibGFiZWxFeHRyYSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL0pvYkluZm9Db250ZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XHJcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgRmFGaWxlUGRmLCBGYVJlZ0ltYWdlIH0gZnJvbSAncmVhY3QtaWNvbnMvZmEnO1xyXG5pbXBvcnQgeyBmb3JtYXRDdXJyZW5jeSwgY3VycmVuY3lUb3RhbENvc3RTaG93SW5jVGF4IH0gZnJvbSAnLi9jdXJyZW5jeSc7XHJcbmltcG9ydCB7XHJcbiAgaXNJbnN0cnVjdGlvbnNUeXBlLFxyXG4gIGlzUHJvZHVjdFN1cHBsaWVyTU9ELFxyXG4gIGlzU2VsZWN0YWJsZSxcclxuICBGaWVsZFR5cGUsXHJcbn0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIGVzdGltYXRlQXJlYUNvc3RzLFxyXG4gIGZvcm1hdEFyZWFTdW1tYXJ5LFxyXG4gIGxvY2FsZVByZWZlcnNJbXBlcmlhbCxcclxufSBmcm9tICcuLi9hcmVhJztcclxuaW1wb3J0IHsgdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCB9IGZyb20gJy4vTWVyY2hpQ2hlY2tvdXRQcm92aWRlcic7XHJcbmltcG9ydCB7XHJcbiAgU3VtbWFyeUFtb3VudFJvdyxcclxuICBTdW1tYXJ5RmllbGRSb3csXHJcbn0gZnJvbSAnLi9DaGVja291dFN1bW1hcnlGaWVsZHMnO1xyXG5cclxuZnVuY3Rpb24gZm9ybWF0Q29zdChwcm9kdWN0OiBhbnksIGNvc3Q6IG51bWJlcikge1xyXG4gIGNvbnN0IGN1cnJlbmN5ID0gcHJvZHVjdC5jdXJyZW5jeSA/IHByb2R1Y3QuY3VycmVuY3kgOiAnQVVEJztcclxuICByZXR1cm4gZm9ybWF0Q3VycmVuY3koY29zdCwge1xyXG4gICAgY3VycmVuY3ksXHJcbiAgICBzaG93Q29kZUlmTm9TeW1ib2w6IGZhbHNlLFxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwYXJzZUNvc3RBbW91bnQodmFsdWU6IGFueSk6IG51bWJlciB7XHJcbiAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShhbW91bnQpICYmIGFtb3VudCA+IDAgPyBhbW91bnQgOiAwO1xyXG59XHJcblxyXG4vKiogTWF0Y2ggcHJvZHVjdC1mb3JtIHdvcmRpbmc6IFwiKyAkWCBvbmNlIG9mZlwiIC8gXCIrICRZIHBlciB1bml0XCIuICovXHJcbmZ1bmN0aW9uIGZvcm1hdE9uY2VPZmZVbml0Q29zdERldGFpbChcclxuICBwcm9kdWN0OiBhbnksXHJcbiAgb25jZU9mZkNvc3Q6IGFueSxcclxuICB1bml0Q29zdDogYW55XHJcbikge1xyXG4gIGNvbnN0IGN1cnJlbmN5ID0gcHJvZHVjdD8uY3VycmVuY3kgfHwgJ0FVRCc7XHJcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XHJcbiAgY29uc3Qgb25jZU9mZiA9IHBhcnNlQ29zdEFtb3VudChvbmNlT2ZmQ29zdCk7XHJcbiAgY29uc3QgdW5pdCA9IHBhcnNlQ29zdEFtb3VudCh1bml0Q29zdCk7XHJcbiAgaWYgKG9uY2VPZmYpIHtcclxuICAgIHBhcnRzLnB1c2goXHJcbiAgICAgIGAgKyAke2Zvcm1hdEN1cnJlbmN5KG9uY2VPZmYsIHsgY3VycmVuY3ksIHNob3dDb2RlSWZOb1N5bWJvbDogZmFsc2UgfSl9IG9uY2Ugb2ZmYFxyXG4gICAgKTtcclxuICB9XHJcbiAgaWYgKHVuaXQpIHtcclxuICAgIHBhcnRzLnB1c2goXHJcbiAgICAgIGAgKyAke2Zvcm1hdEN1cnJlbmN5KHVuaXQsIHsgY3VycmVuY3ksIHNob3dDb2RlSWZOb1N5bWJvbDogZmFsc2UgfSl9IHBlciB1bml0YFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBvcHRpb25PbmNlT2ZmKG9wdGlvbjogYW55KTogbnVtYmVyIHtcclxuICByZXR1cm4gKFxyXG4gICAgcGFyc2VDb3N0QW1vdW50KG9wdGlvbj8ub25jZU9mZkNvc3QpIHx8XHJcbiAgICBwYXJzZUNvc3RBbW91bnQob3B0aW9uPy52YXJpYXRpb25Db3N0KSB8fFxyXG4gICAgMFxyXG4gICk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG9wdGlvblVuaXQob3B0aW9uOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiAoXHJcbiAgICBwYXJzZUNvc3RBbW91bnQob3B0aW9uPy51bml0Q29zdCkgfHxcclxuICAgIHBhcnNlQ29zdEFtb3VudChvcHRpb24/LnZhcmlhdGlvblVuaXRDb3N0KSB8fFxyXG4gICAgMFxyXG4gICk7XHJcbn1cclxuXHJcbi8qKiBQcm9kdWN0IHNldHVwIGZlZSBzaG93biBuZXh0IHRvIHVuaXQgcHJpY2UsIG1hdGNoaW5nIHByb2R1Y3QtZm9ybSB3b3JkaW5nLiAqL1xyXG5mdW5jdGlvbiBwcm9kdWN0U2V0dXBTdWZmaXgocHJvZHVjdDogYW55KSB7XHJcbiAgY29uc3Qgc2V0dXBQcmljZSA9IE51bWJlcihwcm9kdWN0Py5zZXR1cFByaWNlKTtcclxuICBpZiAoIXNldHVwUHJpY2UpIHJldHVybiAnJztcclxuICBjb25zdCBsYWJlbCA9IHByb2R1Y3Quc2V0dXBQZXJHcm91cCA/ICdzZXR1cCBwZXIgZ3JvdXAnIDogJ3NldHVwJztcclxuICByZXR1cm4gYCArICR7Zm9ybWF0Q29zdChwcm9kdWN0LCBzZXR1cFByaWNlKX0gJHtsYWJlbH1gO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXRVbml0UHJpY2VXaXRoU2V0dXAocHJvZHVjdDogYW55KSB7XHJcbiAgcmV0dXJuIGAke2Zvcm1hdENvc3QocHJvZHVjdCwgTnVtYmVyKHByb2R1Y3Q/LnVuaXRQcmljZSkgfHwgMCl9JHtwcm9kdWN0U2V0dXBTdWZmaXgocHJvZHVjdCl9YDtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNQZGYoZmlsZTogYW55KSB7XHJcbiAgY29uc3QgbWltZXR5cGUgPSBmaWxlPy5taW1ldHlwZSB8fCAnJztcclxuICByZXR1cm4gbWltZXR5cGUgPT09ICdhcHBsaWNhdGlvbi9wZGYnIHx8IG1pbWV0eXBlID09PSAnYXBwbGljYXRpb24veC1wZGYnO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0ltYWdlRmlsZShmaWxlOiBhbnkpIHtcclxuICBjb25zdCBtaW1ldHlwZSA9IGZpbGU/Lm1pbWV0eXBlIHx8ICcnO1xyXG4gIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkgcmV0dXJuIHRydWU7XHJcbiAgY29uc3QgbmFtZSA9IChmaWxlPy5uYW1lIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gIHJldHVybiAvXFwuKGpwZT9nfHBuZ3xnaWZ8d2VicHxzdmd8Ym1wKSQvLnRlc3QobmFtZSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGFic29sdXRpemVGaWxlVXJsKHJhdzogc3RyaW5nLCB1cmxBcGk/OiBzdHJpbmcpIHtcclxuICBjb25zdCB1cmwgPSAocmF3IHx8ICcnKS50cmltKCk7XHJcbiAgaWYgKCF1cmwgfHwgdXJsID09PSAndW5kZWZpbmVkJyB8fCB1cmwgPT09ICdudWxsJykgcmV0dXJuICcnO1xyXG4gIGlmICgvXihodHRwcz86fGJsb2I6fGRhdGE6KS9pLnRlc3QodXJsKSkgcmV0dXJuIHVybDtcclxuICBpZiAoIXVybEFwaSkgcmV0dXJuIHVybDtcclxuICB0cnkge1xyXG4gICAgY29uc3QgYmFzZSA9IG5ldyBVUkwodXJsQXBpKTtcclxuICAgIHJldHVybiBuZXcgVVJMKHVybCwgYCR7YmFzZS5vcmlnaW59L2ApLmhyZWY7XHJcbiAgfSBjYXRjaCB7XHJcbiAgICByZXR1cm4gdXJsO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVzb2x2ZUZpbGVVcmwoZmlsZTogYW55LCB1cmxBcGk/OiBzdHJpbmcpIHtcclxuICByZXR1cm4gYWJzb2x1dGl6ZUZpbGVVcmwoXHJcbiAgICBmaWxlPy52aWV3VXJsIHx8IGZpbGU/LmRvd25sb2FkVXJsIHx8ICcnLFxyXG4gICAgdXJsQXBpXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gb3B0aW9uSW1hZ2VVcmwob3B0aW9uOiBhbnksIHVybEFwaT86IHN0cmluZykge1xyXG4gIHJldHVybiBhYnNvbHV0aXplRmlsZVVybChcclxuICAgIG9wdGlvbj8ubGlua2VkRmlsZT8udmlld1VybCB8fCBvcHRpb24/LmxpbmtlZEZpbGU/LmRvd25sb2FkVXJsIHx8ICcnLFxyXG4gICAgdXJsQXBpXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmluZE1hdGNoaW5nT3B0aW9uKG9wdGlvbjogYW55LCBvcHRpb25zOiBhbnlbXSA9IFtdKSB7XHJcbiAgcmV0dXJuIG9wdGlvbnMuZmluZCgobykgPT4gU3RyaW5nKG8ub3B0aW9uSWQpID09PSBTdHJpbmcob3B0aW9uPy5vcHRpb25JZCkpO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZXNvbHZlT3B0aW9uQ29sb3VyKFxyXG4gIG9wdGlvbjogYW55LFxyXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxyXG4gIGZpZWxkT3B0aW9uczogYW55W10gPSBbXVxyXG4pIHtcclxuICBjb25zdCBkaXJlY3QgPSBvcHRpb24/LmNvbG91cj8udHJpbSgpO1xyXG4gIGlmIChkaXJlY3QpIHJldHVybiBkaXJlY3Q7XHJcbiAgY29uc3QgZnJvbVNlbGVjdGFibGUgPSBmaW5kTWF0Y2hpbmdPcHRpb24ob3B0aW9uLCBzZWxlY3RhYmxlT3B0aW9ucyk/LmNvbG91cj8udHJpbSgpO1xyXG4gIGlmIChmcm9tU2VsZWN0YWJsZSkgcmV0dXJuIGZyb21TZWxlY3RhYmxlO1xyXG4gIHJldHVybiBmaW5kTWF0Y2hpbmdPcHRpb24ob3B0aW9uLCBmaWVsZE9wdGlvbnMpPy5jb2xvdXI/LnRyaW0oKSB8fCAnJztcclxufVxyXG5cclxuZnVuY3Rpb24gcmVzb2x2ZU9wdGlvbkltYWdlVXJsKFxyXG4gIG9wdGlvbjogYW55LFxyXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxyXG4gIGZpZWxkT3B0aW9uczogYW55W10gPSBbXSxcclxuICB1cmxBcGk/OiBzdHJpbmdcclxuKSB7XHJcbiAgY29uc3QgZGlyZWN0ID0gb3B0aW9uSW1hZ2VVcmwob3B0aW9uLCB1cmxBcGkpO1xyXG4gIGlmIChkaXJlY3QpIHJldHVybiBkaXJlY3Q7XHJcbiAgY29uc3QgZnJvbVNlbGVjdGFibGUgPSBvcHRpb25JbWFnZVVybChcclxuICAgIGZpbmRNYXRjaGluZ09wdGlvbihvcHRpb24sIHNlbGVjdGFibGVPcHRpb25zKSxcclxuICAgIHVybEFwaVxyXG4gICk7XHJcbiAgaWYgKGZyb21TZWxlY3RhYmxlKSByZXR1cm4gZnJvbVNlbGVjdGFibGU7XHJcbiAgcmV0dXJuIG9wdGlvbkltYWdlVXJsKGZpbmRNYXRjaGluZ09wdGlvbihvcHRpb24sIGZpZWxkT3B0aW9ucyksIHVybEFwaSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdE9wdGlvbkNvc3QoXHJcbiAgcHJvZHVjdDogYW55LFxyXG4gIG9wdGlvbjogYW55LFxyXG4gIHNlbGxlclByb2R1Y3RFZGl0YWJsZTogYm9vbGVhblxyXG4pIHtcclxuICBpZiAoc2VsbGVyUHJvZHVjdEVkaXRhYmxlIHx8ICFvcHRpb24pIHJldHVybiBudWxsO1xyXG4gIGNvbnN0IG9uY2VPZmZVbml0ID0gZm9ybWF0T25jZU9mZlVuaXRDb3N0RGV0YWlsKFxyXG4gICAgcHJvZHVjdCxcclxuICAgIG9wdGlvbk9uY2VPZmYob3B0aW9uKSxcclxuICAgIG9wdGlvblVuaXQob3B0aW9uKVxyXG4gICk7XHJcbiAgaWYgKG9uY2VPZmZVbml0KSByZXR1cm4gb25jZU9mZlVuaXQ7XHJcbiAgaWYgKG9wdGlvbi50b3RhbENvc3QpIHtcclxuICAgIHJldHVybiBgICsgJHtmb3JtYXRDb3N0KHByb2R1Y3QsIG9wdGlvbi50b3RhbENvc3QpfWA7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiB2YXJpYXRpb25Db3N0RGV0YWlsKFxyXG4gIHByb2R1Y3Q6IGFueSxcclxuICB2YXJpYXRpb246IGFueSxcclxuICBzZWxsZXJQcm9kdWN0RWRpdGFibGU6IGJvb2xlYW4sXHJcbiAge1xyXG4gICAgaW5jbHVkZVNlbGVjdGVkT3B0aW9uQ29zdHMgPSB0cnVlLFxyXG4gICAgZmllbGRDb3N0c09ubHkgPSBmYWxzZSxcclxuICB9OiB7XHJcbiAgICBpbmNsdWRlU2VsZWN0ZWRPcHRpb25Db3N0cz86IGJvb2xlYW47XHJcbiAgICBmaWVsZENvc3RzT25seT86IGJvb2xlYW47XHJcbiAgfSA9IHt9XHJcbikge1xyXG4gIGlmIChzZWxsZXJQcm9kdWN0RWRpdGFibGUpIHJldHVybiAnJztcclxuXHJcbiAgY29uc3QgZmllbGQgPSB2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkIHx8IHt9O1xyXG4gIGNvbnN0IGZpZWxkVHlwZSA9IE51bWJlcihmaWVsZC5maWVsZFR5cGUpO1xyXG5cclxuICBpZiAoZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQVJFQSkge1xyXG4gICAgY29uc3QgYXJlYUNvc3RzID0gZXN0aW1hdGVBcmVhQ29zdHMoZmllbGQsIHZhcmlhdGlvbj8udmFsdWUpO1xyXG4gICAgaWYgKGFyZWFDb3N0cykge1xyXG4gICAgICByZXR1cm4gZm9ybWF0T25jZU9mZlVuaXRDb3N0RGV0YWlsKFxyXG4gICAgICAgIHByb2R1Y3QsXHJcbiAgICAgICAgYXJlYUNvc3RzLm9uY2VPZmZDb3N0LFxyXG4gICAgICAgIGFyZWFDb3N0cy51bml0Q29zdFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKGZpZWxkQ29zdHNPbmx5KSB7XHJcbiAgICByZXR1cm4gZm9ybWF0T25jZU9mZlVuaXRDb3N0RGV0YWlsKFxyXG4gICAgICBwcm9kdWN0LFxyXG4gICAgICBmaWVsZC52YXJpYXRpb25Db3N0LFxyXG4gICAgICBmaWVsZC52YXJpYXRpb25Vbml0Q29zdFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNlbGVjdGVkID0gQXJyYXkuaXNBcnJheSh2YXJpYXRpb24/LnNlbGVjdGVkT3B0aW9ucylcclxuICAgID8gdmFyaWF0aW9uLnNlbGVjdGVkT3B0aW9uc1xyXG4gICAgOiBbXTtcclxuICBpZiAoaW5jbHVkZVNlbGVjdGVkT3B0aW9uQ29zdHMgJiYgc2VsZWN0ZWQubGVuZ3RoKSB7XHJcbiAgICBjb25zdCBmaWVsZE9uY2UgPVxyXG4gICAgICBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfRVhUUkFDVFxyXG4gICAgICAgID8gcGFyc2VDb3N0QW1vdW50KGZpZWxkLnZhcmlhdGlvbkNvc3QpXHJcbiAgICAgICAgOiAwO1xyXG4gICAgY29uc3QgZmllbGRVbml0ID1cclxuICAgICAgZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1RcclxuICAgICAgICA/IHBhcnNlQ29zdEFtb3VudChmaWVsZC52YXJpYXRpb25Vbml0Q29zdClcclxuICAgICAgICA6IDA7XHJcbiAgICByZXR1cm4gZm9ybWF0T25jZU9mZlVuaXRDb3N0RGV0YWlsKFxyXG4gICAgICBwcm9kdWN0LFxyXG4gICAgICBmaWVsZE9uY2UgK1xyXG4gICAgICAgIHNlbGVjdGVkLnJlZHVjZShcclxuICAgICAgICAgIChzdW06IG51bWJlciwgb3B0aW9uOiBhbnkpID0+IHN1bSArIG9wdGlvbk9uY2VPZmYob3B0aW9uKSxcclxuICAgICAgICAgIDBcclxuICAgICAgICApLFxyXG4gICAgICBmaWVsZFVuaXQgK1xyXG4gICAgICAgIHNlbGVjdGVkLnJlZHVjZShcclxuICAgICAgICAgIChzdW06IG51bWJlciwgb3B0aW9uOiBhbnkpID0+IHN1bSArIG9wdGlvblVuaXQob3B0aW9uKSxcclxuICAgICAgICAgIDBcclxuICAgICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgb25jZU9mZlVuaXQgPSBmb3JtYXRPbmNlT2ZmVW5pdENvc3REZXRhaWwoXHJcbiAgICBwcm9kdWN0LFxyXG4gICAgdmFyaWF0aW9uPy5vbmNlT2ZmQ29zdCA/PyBmaWVsZC52YXJpYXRpb25Db3N0LFxyXG4gICAgdmFyaWF0aW9uPy51bml0Q29zdCA/PyBmaWVsZC52YXJpYXRpb25Vbml0Q29zdFxyXG4gICk7XHJcbiAgaWYgKG9uY2VPZmZVbml0KSByZXR1cm4gb25jZU9mZlVuaXQ7XHJcbiAgaWYgKHZhcmlhdGlvbj8uY29zdCkge1xyXG4gICAgcmV0dXJuIGAgKyAke2Zvcm1hdENvc3QocHJvZHVjdCwgdmFyaWF0aW9uLmNvc3QpfWA7XHJcbiAgfVxyXG4gIHJldHVybiAnJztcclxufVxyXG5cclxuZnVuY3Rpb24gVmFyaWF0aW9uRmlsZVByZXZpZXcoe1xyXG4gIGZpbGUsXHJcbiAgdXJsQXBpLFxyXG59OiB7XHJcbiAgZmlsZTogYW55O1xyXG4gIHVybEFwaT86IHN0cmluZztcclxufSkge1xyXG4gIGNvbnN0IGZpbGVVcmwgPSByZXNvbHZlRmlsZVVybChmaWxlLCB1cmxBcGkpO1xyXG4gIGNvbnN0IGZpbGVOYW1lID0gZmlsZT8ubmFtZSB8fCAnRmlsZSc7XHJcbiAgY29uc3QgW2ltYWdlRmFpbGVkLCBzZXRJbWFnZUZhaWxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XHJcblxyXG4gIGlmIChpc1BkZihmaWxlKSkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGFcclxuICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWZpbGUtbGluaydcclxuICAgICAgICBocmVmPXtmaWxlVXJsIHx8IHVuZGVmaW5lZH1cclxuICAgICAgICB0YXJnZXQ9J19ibGFuaydcclxuICAgICAgICByZWw9J25vb3BlbmVyIG5vcmVmZXJyZXInXHJcbiAgICAgICAgdGl0bGU9e2ZpbGVOYW1lfVxyXG4gICAgICA+XHJcbiAgICAgICAgPEZhRmlsZVBkZiBhcmlhLWhpZGRlbiAvPlxyXG4gICAgICAgIDxzcGFuPntmaWxlTmFtZX08L3NwYW4+XHJcbiAgICAgIDwvYT5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAoaXNJbWFnZUZpbGUoZmlsZSkgJiYgZmlsZVVybCAmJiAhaW1hZ2VGYWlsZWQpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxpbWdcclxuICAgICAgICBjbGFzc05hbWU9J21vZGFsLW1lcmNoaS1jaGVja291dC1qb2ItaW5mby1jb250ZW50LWltZydcclxuICAgICAgICBzcmM9e2ZpbGVVcmx9XHJcbiAgICAgICAgYWx0PXtmaWxlTmFtZX1cclxuICAgICAgICB0aXRsZT17ZmlsZU5hbWV9XHJcbiAgICAgICAgb25FcnJvcj17KCkgPT4gc2V0SW1hZ2VGYWlsZWQodHJ1ZSl9XHJcbiAgICAgIC8+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgaWYgKGlzSW1hZ2VGaWxlKGZpbGUpKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktZmlsZS1mYWxsYmFjaydcclxuICAgICAgICB0aXRsZT17ZmlsZU5hbWV9XHJcbiAgICAgID5cclxuICAgICAgICA8RmFSZWdJbWFnZSBhcmlhLWhpZGRlbiAvPlxyXG4gICAgICAgIDxzcGFuPntmaWxlTmFtZX08L3NwYW4+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAoZmlsZVVybCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGFcclxuICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWZpbGUtbGluaydcclxuICAgICAgICBocmVmPXtmaWxlVXJsfVxyXG4gICAgICAgIHRhcmdldD0nX2JsYW5rJ1xyXG4gICAgICAgIHJlbD0nbm9vcGVuZXIgbm9yZWZlcnJlcidcclxuICAgICAgICB0aXRsZT17ZmlsZU5hbWV9XHJcbiAgICAgID5cclxuICAgICAgICB7ZmlsZU5hbWV9XHJcbiAgICAgIDwvYT5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gPHNwYW4+e2ZpbGVOYW1lfTwvc3Bhbj47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFZhcmlhdGlvbkluZm9Cb2R5KHtcclxuICBjb3N0RGV0YWlsLFxyXG4gIG5hbWUsXHJcbiAgcHJvZHVjdCxcclxuICB2YWx1ZSxcclxuICBmaWxlcyxcclxuICB0eXBlLFxyXG4gIHVybEFwaSxcclxufTogYW55KSB7XHJcbiAgY29uc3QgaXNDb2xvdXJQaWNrZXIgPSB0eXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX1BJQ0tFUjtcclxuICBjb25zdCBpc0ZpbGVVcGxvYWQgPVxyXG4gICAgdHlwZSA9PT0gRmllbGRUeXBlLkZJTEVfVVBMT0FEIHx8IHR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfRVhUUkFDVDtcclxuICBjb25zdCBoYXNGaWxlcyA9IEJvb2xlYW4oZmlsZXM/Lmxlbmd0aCk7XHJcbiAgY29uc3QgZGlzcGxheVZhbHVlID0gaXNDb2xvdXJQaWNrZXIgfHwgKGlzRmlsZVVwbG9hZCAmJiBoYXNGaWxlcykgPyBudWxsIDogdmFsdWU7XHJcblxyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXJvdyc+XHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tbGFiZWwnPntuYW1lfTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXZhbHVlJz5cclxuICAgICAgICB7aGFzRmlsZXMgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWZpbGUtcHJldmlld3MnPlxyXG4gICAgICAgICAgICB7ZmlsZXMubWFwKChmaWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IChcclxuICAgICAgICAgICAgICA8VmFyaWF0aW9uRmlsZVByZXZpZXdcclxuICAgICAgICAgICAgICAgIGtleT17ZmlsZS52aWV3VXJsIHx8IGZpbGUuaWQgfHwgYCR7bmFtZX0tZmlsZS0ke2luZGV4fWB9XHJcbiAgICAgICAgICAgICAgICBmaWxlPXtmaWxlfVxyXG4gICAgICAgICAgICAgICAgdXJsQXBpPXt1cmxBcGl9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtpc0NvbG91clBpY2tlciAmJiB2YWx1ZSAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktY29sb3VyLXZhbHVlJz5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IHZhbHVlIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPSdjb2xvci1pbmRpY2F0b3InXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPnt2YWx1ZX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtkaXNwbGF5VmFsdWUgJiYgZGlzcGxheVZhbHVlfVxyXG4gICAgICAgIHtjb3N0RGV0YWlsIHx8ICcnfVxyXG4gICAgICAgIHshaGFzRmlsZXMgJiYgIXZhbHVlICYmICFjb3N0RGV0YWlsICYmICctJ31cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBWYXJpYXRpb25JbmZvKHsgcHJvZHVjdCwgdmFyaWF0aW9uIH06IGFueSkge1xyXG4gIGNvbnN0IHsgdXJsQXBpIH0gPSB1c2VNZXJjaGlDaGVja2JvdXRDb250ZXh0KCk7XHJcbiAgY29uc3QgeyB2YXJpYXRpb25GaWVsZCwgdmFyaWF0aW9uRmlsZXMsIHNlbGVjdGFibGVPcHRpb25zIH0gPSB2YXJpYXRpb247XHJcbiAgY29uc3QgeyBmaWVsZFR5cGUsIHNlbGxlclByb2R1Y3RFZGl0YWJsZSwgb3B0aW9uczogZmllbGRPcHRpb25zID0gW10gfSA9XHJcbiAgICB2YXJpYXRpb25GaWVsZDtcclxuICBjb25zdCBpc1ZhcmlhdGlvblNlbGVjdGFibGUgPSBpc1NlbGVjdGFibGUoZmllbGRUeXBlKTtcclxuICBjb25zdCBpc1R1cm5hcm91bmRUaW1lID0gZmllbGRUeXBlID09PSBGaWVsZFR5cGUuVFVSTkFST1VORF9USU1FO1xyXG4gIGNvbnN0IGlzQ29sb3VyRXh0cmFjdCA9IGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkNPTE9VUl9FWFRSQUNUO1xyXG4gIGNvbnN0IG9wdGlvbnMgPSByZXNvbHZlU2VsZWN0YWJsZVNlbGVjdGVkT3B0aW9ucyhcclxuICAgIHZhcmlhdGlvbixcclxuICAgIHNlbGVjdGFibGVPcHRpb25zLFxyXG4gICAgZmllbGRPcHRpb25zXHJcbiAgKTtcclxuICBjb25zdCB1c2VTZWxlY3RhYmxlRGlzcGxheSA9XHJcbiAgICBpc1ZhcmlhdGlvblNlbGVjdGFibGUgJiZcclxuICAgIChCb29sZWFuKG9wdGlvbnM/Lmxlbmd0aCkgfHwgKGlzVHVybmFyb3VuZFRpbWUgJiYgdmFyaWF0aW9uLnZhbHVlKSk7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24nPlxyXG4gICAgICB7aXNDb2xvdXJFeHRyYWN0ID8gKFxyXG4gICAgICAgIDw+XHJcbiAgICAgICAgICA8VmFyaWF0aW9uSW5mb0JvZHlcclxuICAgICAgICAgICAgbmFtZT17dmFyaWF0aW9uRmllbGQubmFtZX1cclxuICAgICAgICAgICAgdHlwZT17ZmllbGRUeXBlfVxyXG4gICAgICAgICAgICB2YWx1ZT17bnVsbH1cclxuICAgICAgICAgICAgZmlsZXM9e3ZhcmlhdGlvbkZpbGVzfVxyXG4gICAgICAgICAgICBwcm9kdWN0PXtwcm9kdWN0fVxyXG4gICAgICAgICAgICB1cmxBcGk9e3VybEFwaX1cclxuICAgICAgICAgICAgY29zdERldGFpbD17dmFyaWF0aW9uQ29zdERldGFpbChcclxuICAgICAgICAgICAgICBwcm9kdWN0LFxyXG4gICAgICAgICAgICAgIHZhcmlhdGlvbixcclxuICAgICAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGUsXHJcbiAgICAgICAgICAgICAgLy8gT3B0aW9ucyBsaXN0IHNob3dzIGVhY2ggY29sb3VyIGNvc3Q7IGtlZXAgZmllbGQgYmFzZSBjb3N0IGhlcmUuXHJcbiAgICAgICAgICAgICAgb3B0aW9ucz8ubGVuZ3RoXHJcbiAgICAgICAgICAgICAgICA/IHsgZmllbGRDb3N0c09ubHk6IHRydWUgfVxyXG4gICAgICAgICAgICAgICAgOiB7IGluY2x1ZGVTZWxlY3RlZE9wdGlvbkNvc3RzOiBmYWxzZSB9XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICAge29wdGlvbnM/Lmxlbmd0aCA/IChcclxuICAgICAgICAgICAgPFZhcmlhdGlvbk9wdGlvbnNJbmZvQm9keVxyXG4gICAgICAgICAgICAgIG5hbWU9e2Ake3ZhcmlhdGlvbkZpZWxkLm5hbWV9IGNvbG91cnNgfVxyXG4gICAgICAgICAgICAgIGZpZWxkVHlwZT17ZmllbGRUeXBlfVxyXG4gICAgICAgICAgICAgIHZhbHVlPXt2YXJpYXRpb24udmFsdWV9XHJcbiAgICAgICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnM9e29wdGlvbnN9XHJcbiAgICAgICAgICAgICAgdmFyaWF0aW9uPXt2YXJpYXRpb259XHJcbiAgICAgICAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnM9e3NlbGVjdGFibGVPcHRpb25zfVxyXG4gICAgICAgICAgICAgIGZpZWxkT3B0aW9ucz17ZmllbGRPcHRpb25zfVxyXG4gICAgICAgICAgICAgIHNlbGxlclByb2R1Y3RFZGl0YWJsZT17c2VsbGVyUHJvZHVjdEVkaXRhYmxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKSA6IG51bGx9XHJcbiAgICAgICAgPC8+XHJcbiAgICAgICkgOiB1c2VTZWxlY3RhYmxlRGlzcGxheSA/IChcclxuICAgICAgICA8VmFyaWF0aW9uT3B0aW9uc0luZm9Cb2R5XHJcbiAgICAgICAgICBuYW1lPXt2YXJpYXRpb25GaWVsZC5uYW1lfVxyXG4gICAgICAgICAgZmllbGRUeXBlPXtmaWVsZFR5cGV9XHJcbiAgICAgICAgICB2YWx1ZT17dmFyaWF0aW9uLnZhbHVlfVxyXG4gICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgIGZpbGVzPXt2YXJpYXRpb25GaWxlc31cclxuICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucz17b3B0aW9uc31cclxuICAgICAgICAgIHZhcmlhdGlvbj17dmFyaWF0aW9ufVxyXG4gICAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnM9e3NlbGVjdGFibGVPcHRpb25zfVxyXG4gICAgICAgICAgZmllbGRPcHRpb25zPXtmaWVsZE9wdGlvbnN9XHJcbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cclxuICAgICAgICAvPlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIDxWYXJpYXRpb25JbmZvQm9keVxyXG4gICAgICAgICAgbmFtZT17dmFyaWF0aW9uRmllbGQubmFtZX1cclxuICAgICAgICAgIHR5cGU9e3ZhcmlhdGlvbkZpZWxkLmZpZWxkVHlwZX1cclxuICAgICAgICAgIHZhbHVlPXtcclxuICAgICAgICAgICAgZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQVJFQSAmJiB2YXJpYXRpb24udmFsdWVcclxuICAgICAgICAgICAgICA/IGZvcm1hdEFyZWFTdW1tYXJ5KFxyXG4gICAgICAgICAgICAgICAgICB2YXJpYXRpb24udmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgIGxvY2FsZVByZWZlcnNJbXBlcmlhbCgpID8gJ2ltcGVyaWFsJyA6ICdtZXRyaWMnLFxyXG4gICAgICAgICAgICAgICAgICB2YXJpYXRpb25GaWVsZC5hcmVhVW5pdCB8fCAnbW0nXHJcbiAgICAgICAgICAgICAgICApIHx8IHZhcmlhdGlvbi52YWx1ZVxyXG4gICAgICAgICAgICAgIDogdmFyaWF0aW9uLnZhbHVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmaWxlcz17dmFyaWF0aW9uRmlsZXN9XHJcbiAgICAgICAgICBwcm9kdWN0PXtwcm9kdWN0fVxyXG4gICAgICAgICAgdXJsQXBpPXt1cmxBcGl9XHJcbiAgICAgICAgICBjb3N0RGV0YWlsPXt2YXJpYXRpb25Db3N0RGV0YWlsKFxyXG4gICAgICAgICAgICBwcm9kdWN0LFxyXG4gICAgICAgICAgICB2YXJpYXRpb24sXHJcbiAgICAgICAgICAgIHNlbGxlclByb2R1Y3RFZGl0YWJsZSxcclxuICAgICAgICAgICAgeyBpbmNsdWRlU2VsZWN0ZWRPcHRpb25Db3N0czogZmFsc2UgfVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAvPlxyXG4gICAgICApfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gQ29sb3VyU2VsZWN0T3B0aW9uKHtcclxuICBvcHRpb24sXHJcbiAgc2VsZWN0YWJsZU9wdGlvbnMsXHJcbiAgZmllbGRPcHRpb25zLFxyXG4gIHByb2R1Y3QsXHJcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlLFxyXG59OiB7XHJcbiAgb3B0aW9uOiBhbnk7XHJcbiAgc2VsZWN0YWJsZU9wdGlvbnM/OiBhbnlbXTtcclxuICBmaWVsZE9wdGlvbnM/OiBhbnlbXTtcclxuICBwcm9kdWN0PzogYW55O1xyXG4gIHNlbGxlclByb2R1Y3RFZGl0YWJsZT86IGJvb2xlYW47XHJcbn0pIHtcclxuICBjb25zdCBsYWJlbCA9IG9wdGlvbj8udmFsdWU/LnRyaW0oKSB8fCAnJztcclxuICBjb25zdCBoZXggPSByZXNvbHZlT3B0aW9uQ29sb3VyKG9wdGlvbiwgc2VsZWN0YWJsZU9wdGlvbnMsIGZpZWxkT3B0aW9ucyk7XHJcbiAgY29uc3QgY29zdCA9IGZvcm1hdE9wdGlvbkNvc3QoXHJcbiAgICBwcm9kdWN0LFxyXG4gICAgb3B0aW9uLFxyXG4gICAgQm9vbGVhbihzZWxsZXJQcm9kdWN0RWRpdGFibGUpXHJcbiAgKTtcclxuICByZXR1cm4gKFxyXG4gICAgPHNwYW4gY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1jb2xvdXItb3B0aW9uJz5cclxuICAgICAge2hleCAmJiAoXHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogaGV4IH19XHJcbiAgICAgICAgICBjbGFzc05hbWU9J2NvbG9yLWluZGljYXRvcidcclxuICAgICAgICAvPlxyXG4gICAgICApfVxyXG4gICAgICA8c3Bhbj5cclxuICAgICAgICB7bGFiZWwgfHwgaGV4IHx8ICfigJMnfVxyXG4gICAgICAgIHtjb3N0IHx8ICcnfVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gSW1hZ2VTZWxlY3RPcHRpb24oe1xyXG4gIG9wdGlvbixcclxuICBzZWxlY3RhYmxlT3B0aW9ucyxcclxuICBmaWVsZE9wdGlvbnMsXHJcbiAgcHJvZHVjdCxcclxuICBzZWxsZXJQcm9kdWN0RWRpdGFibGUsXHJcbn06IHtcclxuICBvcHRpb246IGFueTtcclxuICBzZWxlY3RhYmxlT3B0aW9ucz86IGFueVtdO1xyXG4gIGZpZWxkT3B0aW9ucz86IGFueVtdO1xyXG4gIHByb2R1Y3Q6IGFueTtcclxuICBzZWxsZXJQcm9kdWN0RWRpdGFibGU6IGJvb2xlYW47XHJcbn0pIHtcclxuICBjb25zdCB7IHVybEFwaSB9ID0gdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCgpO1xyXG4gIGNvbnN0IGltYWdlVXJsID0gcmVzb2x2ZU9wdGlvbkltYWdlVXJsKFxyXG4gICAgb3B0aW9uLFxyXG4gICAgc2VsZWN0YWJsZU9wdGlvbnMsXHJcbiAgICBmaWVsZE9wdGlvbnMsXHJcbiAgICB1cmxBcGlcclxuICApO1xyXG4gIGNvbnN0IGxhYmVsID0gb3B0aW9uPy52YWx1ZT8udHJpbSgpIHx8ICcnO1xyXG4gIGNvbnN0IGNvc3QgPSBmb3JtYXRPcHRpb25Db3N0KHByb2R1Y3QsIG9wdGlvbiwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlKTtcclxuICBjb25zdCBbaW1hZ2VGYWlsZWQsIHNldEltYWdlRmFpbGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktaW1hZ2Utc2VsZWN0LW9wdGlvbic+XHJcbiAgICAgIHtpbWFnZVVybCAmJiAhaW1hZ2VGYWlsZWQgPyAoXHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgY2xhc3NOYW1lPSdtb2RhbC1tZXJjaGktY2hlY2tvdXQtam9iLWluZm8tY29udGVudC1pbWcnXHJcbiAgICAgICAgICBzcmM9e2ltYWdlVXJsfVxyXG4gICAgICAgICAgYWx0PXtsYWJlbCB8fCAnU2VsZWN0ZWQgb3B0aW9uJ31cclxuICAgICAgICAgIHRpdGxlPXtsYWJlbCB8fCB1bmRlZmluZWR9XHJcbiAgICAgICAgICBvbkVycm9yPXsoKSA9PiBzZXRJbWFnZUZhaWxlZCh0cnVlKX1cclxuICAgICAgICAvPlxyXG4gICAgICApIDogbnVsbH1cclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAge2xhYmVsIHx8ICfigJMnfVxyXG4gICAgICAgIHtjb3N0IHx8ICcnfVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0T3B0aW9uSWQob3B0aW9uOiBhbnkpIHtcclxuICByZXR1cm4gb3B0aW9uPy5vcHRpb25JZCA/PyBvcHRpb24/LmlkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzcGxpdFNlbGVjdGVkT3B0aW9uSWRzKHZhbHVlOiBhbnkpOiBzdHJpbmdbXSB7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICByZXR1cm4gdmFsdWUubWFwKFN0cmluZykuZmlsdGVyKEJvb2xlYW4pO1xyXG4gIH1cclxuICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiBbXTtcclxuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxyXG4gICAgLnNwbGl0KCcsJylcclxuICAgIC5tYXAoKHBhcnQpID0+IHBhcnQudHJpbSgpKVxyXG4gICAgLmZpbHRlcihCb29sZWFuKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVzb2x2ZVNlbGVjdGFibGVTZWxlY3RlZE9wdGlvbnMoXHJcbiAgdmFyaWF0aW9uOiBhbnksXHJcbiAgc2VsZWN0YWJsZU9wdGlvbnM6IGFueVtdID0gW10sXHJcbiAgZmllbGRPcHRpb25zOiBhbnlbXSA9IFtdXHJcbik6IGFueVtdIHtcclxuICBjb25zdCBmaWVsZFR5cGUgPSB2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5maWVsZFR5cGU7XHJcbiAgaWYgKGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkNPTE9VUl9FWFRSQUNUKSB7XHJcbiAgICByZXR1cm4gdmFyaWF0aW9uPy5zZWxlY3RlZE9wdGlvbnMgfHwgW107XHJcbiAgfVxyXG5cclxuICBjb25zdCBzZWxlY3RlZElkcyA9IHNwbGl0U2VsZWN0ZWRPcHRpb25JZHModmFyaWF0aW9uPy52YWx1ZSk7XHJcbiAgaWYgKHNlbGVjdGVkSWRzLmxlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IHBvb2xzID0gW3NlbGVjdGFibGVPcHRpb25zLCBmaWVsZE9wdGlvbnNdO1xyXG4gICAgY29uc3QgcmVzb2x2ZWQ6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHNlbGVjdGVkSWRzKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcG9vbCBvZiBwb29scykge1xyXG4gICAgICAgIGNvbnN0IG1hdGNoID0gcG9vbC5maW5kKChvcHRpb246IGFueSkgPT4gU3RyaW5nKGdldE9wdGlvbklkKG9wdGlvbikpID09PSBpZCk7XHJcbiAgICAgICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgICAgICByZXNvbHZlZC5wdXNoKG1hdGNoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHJlc29sdmVkLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHJlc29sdmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHZhcmlhdGlvbj8uc2VsZWN0ZWRPcHRpb25zIHx8IFtdO1xyXG59XHJcblxyXG5mdW5jdGlvbiByZXNvbHZlVHVybmFyb3VuZFNlbGVjdGVkT3B0aW9uKFxyXG4gIHZhcmlhdGlvbjogYW55LFxyXG4gIHNlbGVjdGFibGVPcHRpb25zOiBhbnlbXSA9IFtdLFxyXG4gIGZpZWxkT3B0aW9uczogYW55W10gPSBbXVxyXG4pIHtcclxuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVTZWxlY3RhYmxlU2VsZWN0ZWRPcHRpb25zKFxyXG4gICAgdmFyaWF0aW9uLFxyXG4gICAgc2VsZWN0YWJsZU9wdGlvbnMsXHJcbiAgICBmaWVsZE9wdGlvbnNcclxuICApO1xyXG4gIGlmIChyZXNvbHZlZC5sZW5ndGggPiAwKSB7XHJcbiAgICByZXR1cm4gcmVzb2x2ZWRbMF07XHJcbiAgfVxyXG5cclxuICBjb25zdCB2YWx1ZVN0ciA9XHJcbiAgICB2YXJpYXRpb24/LnZhbHVlICE9IG51bGwgJiYgdmFyaWF0aW9uPy52YWx1ZSAhPT0gJydcclxuICAgICAgPyBTdHJpbmcodmFyaWF0aW9uLnZhbHVlKS50cmltKClcclxuICAgICAgOiAnJztcclxuICBpZiAoIXZhbHVlU3RyKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgY29uc3QgcG9vbHMgPSBbc2VsZWN0YWJsZU9wdGlvbnMsIGZpZWxkT3B0aW9uc107XHJcbiAgZm9yIChjb25zdCBwb29sIG9mIHBvb2xzKSB7XHJcbiAgICBjb25zdCBieVZhbHVlID0gcG9vbC5maW5kKFxyXG4gICAgICAob3B0aW9uOiBhbnkpID0+IFN0cmluZyhvcHRpb24udmFsdWUgPz8gJycpID09PSB2YWx1ZVN0clxyXG4gICAgKTtcclxuICAgIGlmIChieVZhbHVlKSByZXR1cm4gYnlWYWx1ZTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdFR1cm5hcm91bmREZWFkbGluZSh1c2VyRGVhZGxpbmU6IGFueSkge1xyXG4gIGlmICghdXNlckRlYWRsaW5lKSByZXR1cm4gbnVsbDtcclxuICBjb25zdCBzZWNvbmRzID0gTnVtYmVyKHVzZXJEZWFkbGluZSk7XHJcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoc2Vjb25kcykgfHwgc2Vjb25kcyA8PSAwKSByZXR1cm4gbnVsbDtcclxuICByZXR1cm4gbmV3IERhdGUoc2Vjb25kcyAqIDEwMDApLnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tQVUnLCB7XHJcbiAgICB3ZWVrZGF5OiAnbG9uZycsXHJcbiAgICB5ZWFyOiAnbnVtZXJpYycsXHJcbiAgICBtb250aDogJ2xvbmcnLFxyXG4gICAgZGF5OiAnbnVtZXJpYycsXHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFR1cm5hcm91bmRPcHRpb25MYWJlbCh7XHJcbiAgb3B0aW9uLFxyXG4gIHZhcmlhdGlvbkZpZWxkLFxyXG4gIHByb2R1Y3QsXHJcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlLFxyXG59OiB7XHJcbiAgb3B0aW9uOiBhbnk7XHJcbiAgdmFyaWF0aW9uRmllbGQ6IGFueTtcclxuICBwcm9kdWN0OiBhbnk7XHJcbiAgc2VsbGVyUHJvZHVjdEVkaXRhYmxlOiBib29sZWFuO1xyXG59KSB7XHJcbiAgY29uc3QgZGF5cyA9IHBhcnNlSW50KFN0cmluZyhvcHRpb24/LnZhbHVlID8/ICcnKSwgMTApIHx8IDA7XHJcbiAgY29uc3QgZGVhZGxpbmUgPSBmb3JtYXRUdXJuYXJvdW5kRGVhZGxpbmUob3B0aW9uPy51c2VyRGVhZGxpbmUpO1xyXG4gIGNvbnN0IHNoaXBwaW5nVGltZUluY2x1ZGVkID0gQm9vbGVhbih2YXJpYXRpb25GaWVsZD8uc2hpcHBpbmdUaW1lSW5jbHVkZWQpO1xyXG4gIGNvbnN0IGRlYWRsaW5lTGFiZWwgPSBzaGlwcGluZ1RpbWVJbmNsdWRlZCA/ICdEZWxpdmVyeSBieScgOiAnUHJvZHVjZWQgYnknO1xyXG4gIGNvbnN0IGNvc3QgPSBmb3JtYXRPcHRpb25Db3N0KHByb2R1Y3QsIG9wdGlvbiwgc2VsbGVyUHJvZHVjdEVkaXRhYmxlKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdHVybmFyb3VuZC12YWx1ZSc+XHJcbiAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdHVybmFyb3VuZC1kYXlzJz5cclxuICAgICAgICB7ZGF5cyA+IDBcclxuICAgICAgICAgID8gYCR7ZGF5c30gYnVzaW5lc3MgZGF5JHtkYXlzICE9PSAxID8gJ3MnIDogJyd9YFxyXG4gICAgICAgICAgOiAob3B0aW9uPy52YWx1ZT8udHJpbSgpIHx8ICfigJMnKX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICB7ZGVhZGxpbmUgJiYgKFxyXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdHVybmFyb3VuZC1kZWFkbGluZSc+XHJcbiAgICAgICAgICB7ZGVhZGxpbmVMYWJlbH0ge2RlYWRsaW5lfVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgKX1cclxuICAgICAge2Nvc3QgfHwgJyd9XHJcbiAgICA8L3NwYW4+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gVmFyaWF0aW9uT3B0aW9uc0luZm9Cb2R5KHtcclxuICBuYW1lLFxyXG4gIHNlbGVjdGVkT3B0aW9ucyxcclxuICBzZWxsZXJQcm9kdWN0RWRpdGFibGUsXHJcbiAgcHJvZHVjdCxcclxuICBmaWVsZFR5cGUsXHJcbiAgdmFyaWF0aW9uLFxyXG4gIHNlbGVjdGFibGVPcHRpb25zID0gW10sXHJcbiAgZmllbGRPcHRpb25zID0gW10sXHJcbn06IGFueSkge1xyXG4gIGNvbnN0IGlzVHVybmFyb3VuZFRpbWUgPSBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5UVVJOQVJPVU5EX1RJTUU7XHJcbiAgY29uc3QgZmlyc3RPcHRpb24gPSBpc1R1cm5hcm91bmRUaW1lXHJcbiAgICA/IHJlc29sdmVUdXJuYXJvdW5kU2VsZWN0ZWRPcHRpb24oXHJcbiAgICAgICAgeyBzZWxlY3RlZE9wdGlvbnMsIHZhbHVlOiB2YXJpYXRpb24/LnZhbHVlIH0sXHJcbiAgICAgICAgc2VsZWN0YWJsZU9wdGlvbnMsXHJcbiAgICAgICAgZmllbGRPcHRpb25zXHJcbiAgICAgIClcclxuICAgIDogc2VsZWN0ZWRPcHRpb25zWzBdO1xyXG4gIGNvbnN0IGlzQ29sb3VyU2VsZWN0ID1cclxuICAgIGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkNPTE9VUl9TRUxFQ1QgfHxcclxuICAgIGZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkNPTE9VUl9FWFRSQUNUO1xyXG4gIGNvbnN0IGlzSW1hZ2VTZWxlY3QgPSBmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5JTUFHRV9TRUxFQ1Q7XHJcbiAgY29uc3QgdmFyaWF0aW9uRmllbGQgPSB2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkID8/IHt9O1xyXG5cclxuICBmdW5jdGlvbiByZW5kZXJPcHRpb25MYWJlbChvOiBhbnkpIHtcclxuICAgIGlmIChpc1R1cm5hcm91bmRUaW1lKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPFR1cm5hcm91bmRPcHRpb25MYWJlbFxyXG4gICAgICAgICAgb3B0aW9uPXtvfVxyXG4gICAgICAgICAgdmFyaWF0aW9uRmllbGQ9e3ZhcmlhdGlvbkZpZWxkfVxyXG4gICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgIHNlbGxlclByb2R1Y3RFZGl0YWJsZT17c2VsbGVyUHJvZHVjdEVkaXRhYmxlfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNDb2xvdXJTZWxlY3QpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8Q29sb3VyU2VsZWN0T3B0aW9uXHJcbiAgICAgICAgICBvcHRpb249e299XHJcbiAgICAgICAgICBzZWxlY3RhYmxlT3B0aW9ucz17c2VsZWN0YWJsZU9wdGlvbnN9XHJcbiAgICAgICAgICBmaWVsZE9wdGlvbnM9e2ZpZWxkT3B0aW9uc31cclxuICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XHJcbiAgICAgICAgICBzZWxsZXJQcm9kdWN0RWRpdGFibGU9e3NlbGxlclByb2R1Y3RFZGl0YWJsZX1cclxuICAgICAgICAvPlxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzSW1hZ2VTZWxlY3QpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8SW1hZ2VTZWxlY3RPcHRpb25cclxuICAgICAgICAgIG9wdGlvbj17b31cclxuICAgICAgICAgIHNlbGVjdGFibGVPcHRpb25zPXtzZWxlY3RhYmxlT3B0aW9uc31cclxuICAgICAgICAgIGZpZWxkT3B0aW9ucz17ZmllbGRPcHRpb25zfVxyXG4gICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgIHNlbGxlclByb2R1Y3RFZGl0YWJsZT17c2VsbGVyUHJvZHVjdEVkaXRhYmxlfVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8PlxyXG4gICAgICAgIHtvLnZhbHVlPy50cmltKCkgfHwgJ+KAkyd9XHJcbiAgICAgICAge2Zvcm1hdE9wdGlvbkNvc3QocHJvZHVjdCwgbywgc2VsbGVyUHJvZHVjdEVkaXRhYmxlKSB8fCAnJ31cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDw+XHJcbiAgICAgIHtzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMSAmJiAhaXNUdXJuYXJvdW5kVGltZSA/IChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXJvdyc+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLWxhYmVsJz57bmFtZX08L2Rpdj5cclxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi12YWx1ZSBsaXN0LXVuc3R5bGVkIG0tMCc+XHJcbiAgICAgICAgICAgIHtzZWxlY3RlZE9wdGlvbnMubWFwKChvOiBhbnksIGk6IG51bWJlcikgPT4gKFxyXG4gICAgICAgICAgICAgIDxsaSBrZXk9e2Ake2l9LW9wdGlvbi1rZXktJHtvLm9wdGlvbklkID8/IGl9YH0+XHJcbiAgICAgICAgICAgICAgICB7cmVuZGVyT3B0aW9uTGFiZWwobyl9XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgKSl9XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogZmlyc3RPcHRpb24gPyAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi1yb3cnPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi1sYWJlbCc+e25hbWV9PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9uLXZhbHVlJz5cclxuICAgICAgICAgICAge3JlbmRlck9wdGlvbkxhYmVsKGZpcnN0T3B0aW9uKX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApIDogKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tcm93Jz5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS12YXJpYXRpb24tbGFiZWwnPntuYW1lfTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXZhcmlhdGlvbi12YWx1ZSc+LTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgPC8+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gVmFyaWF0aW9uc0luZm8oeyBwcm9kdWN0LCBxdWFudGl0eSwgdmFyaWF0aW9ucyA9IFtdIH06IGFueSkge1xyXG4gIHJldHVybiAoXHJcbiAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdmFyaWF0aW9ucyc+XHJcbiAgICAgIHt2YXJpYXRpb25zLm1hcCgodjogYW55LCBpOiBudW1iZXIpID0+XHJcbiAgICAgICAgIWlzSW5zdHJ1Y3Rpb25zVHlwZSh2LnZhcmlhdGlvbkZpZWxkLmZpZWxkVHlwZSkgPyAoXHJcbiAgICAgICAgICA8VmFyaWF0aW9uSW5mb1xyXG4gICAgICAgICAgICBxdWFudGl0eT17cXVhbnRpdHl9XHJcbiAgICAgICAgICAgIHZhcmlhdGlvbj17dn1cclxuICAgICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgICAga2V5PXtpfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApIDogbnVsbFxyXG4gICAgICApfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gVmFyaWF0aW9uR3JvdXBJbmZvKHtcclxuICBncm91cCxcclxuICBpbmRleCxcclxuICBwcm9kdWN0LFxyXG4gIHNob3dTZXR1cE9uVW5pdFByaWNlLFxyXG59OiBhbnkpIHtcclxuICBjb25zdCBpc1Jlc2VsbCA9IGlzUHJvZHVjdFN1cHBsaWVyTU9EKHByb2R1Y3QpO1xyXG4gIGNvbnN0IHsgcXVhbnRpdHksIHZhcmlhdGlvbnMgfSA9IGdyb3VwO1xyXG4gIGNvbnN0IHZpc2libGVWYXJpYXRpb25zID0gKHZhcmlhdGlvbnMgPz8gW10pLmZpbHRlcihcclxuICAgICh2OiBhbnkpID0+ICFpc0luc3RydWN0aW9uc1R5cGUodj8udmFyaWF0aW9uRmllbGQ/LmZpZWxkVHlwZSlcclxuICApO1xyXG4gIGNvbnN0IGNvc3RMYWJlbCA9IGlzUmVzZWxsID8gJ1VuaXQgQ29zdCcgOiAnR3JvdXAgQ29zdCc7XHJcbiAgY29uc3QgdW5pdFByaWNlVmFsdWUgPSBzaG93U2V0dXBPblVuaXRQcmljZVxyXG4gICAgPyBmb3JtYXRVbml0UHJpY2VXaXRoU2V0dXAocHJvZHVjdClcclxuICAgIDogZm9ybWF0Q29zdChwcm9kdWN0LCBOdW1iZXIocHJvZHVjdD8udW5pdFByaWNlKSB8fCAwKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxzZWN0aW9uIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktZ3JvdXAnPlxyXG4gICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktb3JkZXItZGV0YWlsLXRpdGxlJz5cclxuICAgICAgICBHcm91cCB7aW5kZXggKyAxfSBJbmZvcm1hdGlvblxyXG4gICAgICA8L3N0cm9uZz5cclxuICAgICAgeyFpc1Jlc2VsbCAmJiBxdWFudGl0eSA+IDAgJiYgKFxyXG4gICAgICAgIDxTdW1tYXJ5RmllbGRSb3cgbGFiZWw9J1F1YW50aXR5JyB2YWx1ZT17cXVhbnRpdHl9IC8+XHJcbiAgICAgICl9XHJcbiAgICAgIDxTdW1tYXJ5RmllbGRSb3cgbGFiZWw9J1VuaXQgUHJpY2UnIHZhbHVlPXt1bml0UHJpY2VWYWx1ZX0gLz5cclxuICAgICAge3Zpc2libGVWYXJpYXRpb25zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgIDxWYXJpYXRpb25zSW5mb1xyXG4gICAgICAgICAgcXVhbnRpdHk9e3F1YW50aXR5fVxyXG4gICAgICAgICAgdmFyaWF0aW9ucz17dmFyaWF0aW9uc31cclxuICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XHJcbiAgICAgICAgLz5cclxuICAgICAgKX1cclxuICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LWdyb3VwLWNvc3QnPlxyXG4gICAgICAgIHtjb3N0TGFiZWx9OiB7Zm9ybWF0Q29zdChwcm9kdWN0LCBncm91cC5ncm91cENvc3QpfVxyXG4gICAgICA8L3N0cm9uZz5cclxuICAgIDwvc2VjdGlvbj5cclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBKb2JJbmZvQ29udGVudCgpIHtcclxuICBjb25zdCB7IGpvYiB9ID0gdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCgpO1xyXG4gIGNvbnN0IHsgcHJvZHVjdCwgcXVhbnRpdHkgPSAwLCB2YXJpYXRpb25zID0gW10sIHZhcmlhdGlvbnNHcm91cHMgPSBbXSB9ID0gam9iO1xyXG4gIGNvbnN0IHsgbmVlZHNTaGlwcGluZyB9ID0gcHJvZHVjdDtcclxuICBjb25zdCB0b3RhbENvc3QgPSBjdXJyZW5jeVRvdGFsQ29zdFNob3dJbmNUYXgoam9iKTtcclxuICBjb25zdCBpc1Jlc2VsbCA9IGlzUHJvZHVjdFN1cHBsaWVyTU9EKHByb2R1Y3QpO1xyXG4gIGNvbnN0IGhhc0dyb3VwcyA9IHZhcmlhdGlvbnNHcm91cHMubGVuZ3RoID4gMDtcclxuICBjb25zdCBqb2JMZXZlbFZhcmlhdGlvbnMgPSAodmFyaWF0aW9ucyA/PyBbXSkuZmlsdGVyKFxyXG4gICAgKHY6IGFueSkgPT4gIWlzSW5zdHJ1Y3Rpb25zVHlwZSh2Py52YXJpYXRpb25GaWVsZD8uZmllbGRUeXBlKVxyXG4gICk7XHJcbiAgY29uc3QgdG90YWxRdWFudGl0eSA9IGhhc0dyb3Vwc1xyXG4gICAgPyB2YXJpYXRpb25zR3JvdXBzLnJlZHVjZShcclxuICAgICAgICAoc3VtOiBudW1iZXIsIGc6IGFueSkgPT4gc3VtICsgKE51bWJlcihnLnF1YW50aXR5KSB8fCAwKSxcclxuICAgICAgICAwXHJcbiAgICAgIClcclxuICAgIDogTnVtYmVyKHF1YW50aXR5KSB8fCAwO1xyXG4gIGNvbnN0IHNldHVwUGVyR3JvdXAgPSBCb29sZWFuKHByb2R1Y3Q/LnNldHVwUGVyR3JvdXApO1xyXG4gIGNvbnN0IGhhc1NldHVwUHJpY2UgPSBOdW1iZXIocHJvZHVjdD8uc2V0dXBQcmljZSkgPiAwO1xyXG5cclxuICByZXR1cm4gKFxyXG4gICAgPGRpdiBjbGFzc05hbWU9J21vZGFsLW1lcmNoaS1jaGVja291dC1qb2ItaW5mby1jb250ZW50IG1lcmNoaS1jaGVja291dC1zdW1tYXJ5Jz5cclxuICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1zdW1tYXJ5LXNlY3Rpb24tdGl0bGUnPntwcm9kdWN0Lm5hbWV9PC9kaXY+XHJcbiAgICAgIHtoYXNHcm91cHMgJiYgKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1ncm91cHMnPlxyXG4gICAgICAgICAge3ZhcmlhdGlvbnNHcm91cHMubWFwKChnOiBhbnksIGk6IG51bWJlcikgPT5cclxuICAgICAgICAgICAgZy5xdWFudGl0eSA/IChcclxuICAgICAgICAgICAgICA8VmFyaWF0aW9uR3JvdXBJbmZvXHJcbiAgICAgICAgICAgICAgICBncm91cD17Z31cclxuICAgICAgICAgICAgICAgIGtleT17YCR7aX0tam9iLWluZm8tY29udGVudGB9XHJcbiAgICAgICAgICAgICAgICBpbmRleD17aX1cclxuICAgICAgICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XHJcbiAgICAgICAgICAgICAgICBzaG93U2V0dXBPblVuaXRQcmljZT17c2V0dXBQZXJHcm91cH1cclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICApIDogbnVsbFxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKX1cclxuICAgICAgeyFoYXNHcm91cHMgJiYgKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1zdGFuZGFsb25lJz5cclxuICAgICAgICAgIDxzdHJvbmcgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS1vcmRlci1kZXRhaWwtdGl0bGUnPlxyXG4gICAgICAgICAgICBPcmRlciBJbmZvcm1hdGlvblxyXG4gICAgICAgICAgPC9zdHJvbmc+XHJcbiAgICAgICAgICB7cXVhbnRpdHkgPiAwICYmIChcclxuICAgICAgICAgICAgPFN1bW1hcnlGaWVsZFJvdyBsYWJlbD0nUXVhbnRpdHknIHZhbHVlPXtxdWFudGl0eX0gLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8U3VtbWFyeUZpZWxkUm93XHJcbiAgICAgICAgICAgIGxhYmVsPSdVbml0IFByaWNlJ1xyXG4gICAgICAgICAgICB2YWx1ZT17Zm9ybWF0VW5pdFByaWNlV2l0aFNldHVwKHByb2R1Y3QpfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICAgIHtqb2JMZXZlbFZhcmlhdGlvbnMubGVuZ3RoID4gMCAmJiAoXHJcbiAgICAgICAgICAgIDxWYXJpYXRpb25zSW5mb1xyXG4gICAgICAgICAgICAgIHF1YW50aXR5PXtxdWFudGl0eX1cclxuICAgICAgICAgICAgICB2YXJpYXRpb25zPXt2YXJpYXRpb25zfVxyXG4gICAgICAgICAgICAgIHByb2R1Y3Q9e3Byb2R1Y3R9XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgICB7aGFzR3JvdXBzICYmIGpvYkxldmVsVmFyaWF0aW9ucy5sZW5ndGggPiAwICYmIChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktc3RhbmRhbG9uZSc+XHJcbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktb3JkZXItZGV0YWlsLXRpdGxlJz5cclxuICAgICAgICAgICAgT3JkZXIgSW5mb3JtYXRpb25cclxuICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgICAgPFZhcmlhdGlvbnNJbmZvXHJcbiAgICAgICAgICAgIHF1YW50aXR5PXtxdWFudGl0eX1cclxuICAgICAgICAgICAgdmFyaWF0aW9ucz17dmFyaWF0aW9uc31cclxuICAgICAgICAgICAgcHJvZHVjdD17cHJvZHVjdH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICl9XHJcbiAgICAgIHshaXNSZXNlbGwgJiYgKFxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtc3VtbWFyeS10b3RhbCc+XHJcbiAgICAgICAgICB7dG90YWxRdWFudGl0eSA+IDAgJiYgKFxyXG4gICAgICAgICAgICA8U3VtbWFyeUFtb3VudFJvd1xyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdG90YWwtcXVhbnRpdHknXHJcbiAgICAgICAgICAgICAgbGFiZWw9J1RvdGFsIFF1YW50aXR5J1xyXG4gICAgICAgICAgICAgIGFtb3VudD17dG90YWxRdWFudGl0eX1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7aGFzR3JvdXBzICYmIGhhc1NldHVwUHJpY2UgJiYgIXNldHVwUGVyR3JvdXAgJiYgKFxyXG4gICAgICAgICAgICA8U3VtbWFyeUFtb3VudFJvd1xyXG4gICAgICAgICAgICAgIGxhYmVsPSdTZXR1cCdcclxuICAgICAgICAgICAgICBhbW91bnQ9e2Zvcm1hdENvc3QocHJvZHVjdCwgTnVtYmVyKHByb2R1Y3Quc2V0dXBQcmljZSkpfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxTdW1tYXJ5QW1vdW50Um93XHJcbiAgICAgICAgICAgIGxhYmVsPSdUb3RhbCBPcmRlciBDb3N0J1xyXG4gICAgICAgICAgICBsYWJlbEV4dHJhPXtcclxuICAgICAgICAgICAgICBuZWVkc1NoaXBwaW5nID8gKFxyXG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzTmFtZT0nbWVyY2hpLWNoZWNrb3V0LXN1bW1hcnktdG90YWwtbm90ZSc+IGV4IFNoaXBtZW50PC9zbWFsbD5cclxuICAgICAgICAgICAgICApIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYW1vdW50PXt0b3RhbENvc3R9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgICB7ISEoaXNSZXNlbGwgJiYgIWhhc0dyb3VwcykgJiYgKFxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWItMCc+XHJcbiAgICAgICAgICAgIHtpc1Jlc2VsbCA/ICdBcHByb3hpbWF0ZSBVbml0JyA6ICdUb3RhbCd9IENvc3RcclxuICAgICAgICAgIDwvc3Ryb25nPnsnICd9XHJcbiAgICAgICAgICA8c3Ryb25nIGNsYXNzTmFtZT0nbWItMCBkLWJsb2NrJz57dG90YWxDb3N0fTwvc3Ryb25nPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApfVxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsMkJBQUFDLENBQUEsRUFBQUMsY0FBQSxRQUFBQyxFQUFBLFVBQUFDLE1BQUEsb0JBQUFILENBQUEsQ0FBQUcsTUFBQSxDQUFBQyxRQUFBLEtBQUFKLENBQUEscUJBQUFFLEVBQUEsUUFBQUcsS0FBQSxDQUFBQyxPQUFBLENBQUFOLENBQUEsTUFBQUUsRUFBQSxHQUFBSywyQkFBQSxDQUFBUCxDQUFBLE1BQUFDLGNBQUEsSUFBQUQsQ0FBQSxXQUFBQSxDQUFBLENBQUFRLE1BQUEscUJBQUFOLEVBQUEsRUFBQUYsQ0FBQSxHQUFBRSxFQUFBLE1BQUFPLENBQUEsVUFBQUMsQ0FBQSxZQUFBQSxFQUFBLGVBQUFDLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFBLEVBQUEsUUFBQUgsQ0FBQSxJQUFBVCxDQUFBLENBQUFRLE1BQUEsV0FBQUssSUFBQSxtQkFBQUEsSUFBQSxTQUFBQyxLQUFBLEVBQUFkLENBQUEsQ0FBQVMsQ0FBQSxVQUFBTSxDQUFBLFdBQUFBLEVBQUFDLEVBQUEsVUFBQUEsRUFBQSxLQUFBQyxDQUFBLEVBQUFQLENBQUEsZ0JBQUFRLFNBQUEsaUpBQUFDLGdCQUFBLFNBQUFDLE1BQUEsVUFBQUMsR0FBQSxXQUFBVixDQUFBLFdBQUFBLEVBQUEsSUFBQVQsRUFBQSxHQUFBQSxFQUFBLENBQUFvQixJQUFBLENBQUF0QixDQUFBLE1BQUFZLENBQUEsV0FBQUEsRUFBQSxRQUFBVyxJQUFBLEdB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
|
|
@@ -47,4 +47,4 @@ function MerchiCheckout(props) {
|
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
49
49
|
export default MerchiCheckout;
|
|
50
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJvYmoiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiUmVhY3QiLCJGYVRpbWVzIiwiTWVyY2hpQ2hlY2tvdXRQcm92aWRlciIsInVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQiLCJNZXJjaGlDaGVja291dFRhYnMiLCJUYWJQYW5lQWRkcmVzcyIsIlRhYlBhbmVDb25maXJtIiwiVGFiUGFuZUNvbnRhaW5lciIsIlRhYlBhbmVDdXN0b21lciIsIlRhYlBhbmVTdWJtaXR0ZWQiLCJUYWJQYW5lUGF5bWVudCIsIkFsZXJ0cyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJDaGVja291dENsb3NlQnV0dG9uIiwiX3VzZU1lcmNoaUNoZWNrYm91dENvIiwidG9nZ2xlTWVyY2hpQ2hlY2tvdXQiLCJ0eXBlIiwiY2xhc3NOYW1lIiwib25DbGljayIsImNoaWxkcmVuIiwiQ2hlY2tvdXRIZWFkZXIiLCJNZXJjaGlDaGVja291dCIsInByb3BzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWVyY2hpQ2hlY2tvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcclxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcclxuaW1wb3J0IHsgRmFUaW1lcyB9IGZyb20gJ3JlYWN0LWljb25zL2ZhJztcclxuaW1wb3J0IHsgTWVyY2hpQ2hlY2tvdXRQcm92aWRlciwgdXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCB9IGZyb20gJy4vTWVyY2hpQ2hlY2tvdXRQcm92aWRlcic7XHJcbmltcG9ydCBNZXJjaGlDaGVja291dFRhYnMgZnJvbSAnLi9NZXJjaGlDaGVja291dFRhYnMnO1xyXG5pbXBvcnQgVGFiUGFuZUFkZHJlc3MgZnJvbSAnLi9UYWJQYW5lQWRkcmVzcyc7XHJcbmltcG9ydCBUYWJQYW5lQ29uZmlybSBmcm9tICcuL1RhYlBhbmVDb25maXJtJztcclxuaW1wb3J0IFRhYlBhbmVDb250YWluZXIgZnJvbSAnLi9UYWJQYW5lQ29udGFpbmVyJztcclxuaW1wb3J0IFRhYlBhbmVDdXN0b21lciBmcm9tICcuL1RhYlBhbmVDdXN0b21lcic7XHJcbmltcG9ydCBUYWJQYW5lU3VibWl0dGVkIGZyb20gJy4vVGFiUGFuZVN1Ym1pdHRlZCc7XHJcbmltcG9ydCBUYWJQYW5lUGF5bWVudCBmcm9tICcuL1RhYlBhbmVQYXltZW50JztcclxuaW1wb3J0IEFsZXJ0cyBmcm9tICcuL0FsZXJ0cyc7XHJcbmltcG9ydCAnLi4vc3R5bGVzL2dsb2JhbHMuY3NzJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveD86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdD86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcj86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uPzogc3RyaW5nO1xyXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcclxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI/OiBzdHJpbmc7XHJcbiAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2U/OiBzdHJpbmc7XHJcbiAgY3VycmVudFVzZXI/OiBhbnk7XHJcbiAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XHJcbiAgaW52b2ljZTogYW55O1xyXG4gIGlzQnV5UmVxdWVzdD86IGJvb2xlYW47XHJcbiAgaXNPcGVuOiBib29sZWFuO1xyXG4gIGlzUHJvZHVjdEVtYmVkRm9ybT86IGJvb2xlYW47XHJcbiAgam9iOiBhbnk7XHJcbiAgcHJvZHVjdDogYW55O1xyXG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XHJcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XHJcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xyXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBDaGVja291dENsb3NlQnV0dG9uKCkge1xyXG4gIGNvbnN0IHsgdG9nZ2xlTWVyY2hpQ2hlY2tvdXQgfSA9IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQoKTtcclxuXHJcbiAgcmV0dXJuIChcclxuICAgIDxidXR0b25cclxuICAgICAgdHlwZT0nYnV0dG9uJ1xyXG4gICAgICBjbGFzc05hbWU9J21lcmNoaS1jaGVja291dC1jbG9zZSdcclxuICAgICAgb25DbGljaz17dG9nZ2xlTWVyY2hpQ2hlY2tvdXR9XHJcbiAgICAgIGFyaWEtbGFiZWw9J0Nsb3NlIGNoZWNrb3V0J1xyXG4gICAgPlxyXG4gICAgICA8RmFUaW1lcyBhcmlhLWhpZGRlbiAvPlxyXG4gICAgPC9idXR0b24+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gQ2hlY2tvdXRIZWFkZXIoKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktY2hlY2tvdXQtaGVhZGVyJz5cclxuICAgICAgPE1lcmNoaUNoZWNrb3V0VGFicyAvPlxyXG4gICAgICA8Q2hlY2tvdXRDbG9zZUJ1dHRvbiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gTWVyY2hpQ2hlY2tvdXQocHJvcHM6IFByb3BzKSB7XHJcbiAgcmV0dXJuIChcclxuICAgIDxNZXJjaGlDaGVja291dFByb3ZpZGVyIHsuLi5wcm9wc30+XHJcbiAgICAgIDxBbGVydHMgLz5cclxuICAgICAgPENoZWNrb3V0SGVhZGVyIC8+XHJcbiAgICAgIDxUYWJQYW5lQ29udGFpbmVyPlxyXG4gICAgICAgIDxUYWJQYW5lQ3VzdG9tZXIgLz5cclxuICAgICAgICA8VGFiUGFuZUFkZHJlc3MgLz5cclxuICAgICAgICA8VGFiUGFuZUNvbmZpcm0gLz5cclxuICAgICAgICA8VGFiUGFuZVN1Ym1pdHRlZCAvPlxyXG4gICAgICAgIDxUYWJQYW5lUGF5bWVudCAvPlxyXG4gICAgICA8L1RhYlBhbmVDb250YWluZXI+XHJcbiAgICA8L01lcmNoaUNoZWNrb3V0UHJvdmlkZXI+XHJcbiAgKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTWVyY2hpQ2hlY2tvdXQ7XHJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTs7QUFBQyxTQUFBQSxRQUFBQyxDQUFBLHNDQUFBRCxPQUFBLHdCQUFBRSxNQUFBLHVCQUFBQSxNQUFBLENBQUFDLFFBQUEsYUFBQUYsQ0FBQSxrQkFBQUEsQ0FBQSxnQkFBQUEsQ0FBQSxXQUFBQSxDQUFBLHlCQUFBQyxNQUFBLElBQUFELENBQUEsQ0FBQUcsV0FBQSxLQUFBRixNQUFBLElBQUFELENBQUEsS0FBQUMsTUFBQSxDQUFBRyxTQUFBLHFCQUFBSixDQUFBLEtBQUFELE9BQUEsQ0FBQUMsQ0FBQTtBQUFBLFNBQUFLLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQVgsQ0FBQSxHQUFBUyxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBUCxDQUFBLEdBQUFBLENBQUEsQ0FBQVksTUFBQSxXQUFBTCxDQUFBLFdBQUFFLE1BQUEsQ0FBQUksd0JBQUEsQ0FBQVAsQ0FBQSxFQUFBQyxDQUFBLEVBQUFPLFVBQUEsT0FBQU4sQ0FBQSxDQUFBTyxJQUFBLENBQUFDLEtBQUEsQ0FBQVIsQ0FBQSxFQUFBUixDQUFBLFlBQUFRLENBQUE7QUFBQSxTQUFBUyxjQUFBWCxDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBVyxTQUFBLENBQUFDLE1BQUEsRUFBQVosQ0FBQSxVQUFBQyxDQUFBLFdBQUFVLFNBQUEsQ0FBQVgsQ0FBQSxJQUFBVyxTQUFBLENBQUFYLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBWSxPQUFBLFdBQUFiLENBQUEsSUFBQWMsZUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWEseUJBQUEsR0FBQWIsTUFBQSxDQUFBYyxnQkFBQSxDQUFBakIsQ0FBQSxFQUFBRyxNQUFBLENBQUFhLHlCQUFBLENBQUFkLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQVksT0FBQSxXQUFBYixDQUFBLElBQUFFLE1BQUEsQ0FBQWUsY0FBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFFLE1BQUEsQ0FBQUksd0JBQUEsQ0FBQUwsQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRCxDQUFBO0FBQUEsU0FBQWUsZ0JBQUFJLEdBQUEsRUFBQUMsR0FBQSxFQUFBQyxLQUFBLElBQUFELEdBQUEsR0FBQUUsY0FBQSxDQUFBRixHQUFBLE9BQUFBLEdBQUEsSUFBQUQsR0FBQSxJQUFBaEIsTUFBQSxDQUFBZSxjQUFBLENBQUFDLEdBQUEsRUFBQUMsR0FBQSxJQUFBQyxLQUFBLEVBQUFBLEtBQUEsRUFBQWIsVUFBQSxRQUFBZSxZQUFBLFFBQUFDLFFBQUEsb0JBQUFMLEdBQUEsQ0FBQUMsR0FBQSxJQUFBQyxLQUFBLFdBQUFGLEdBQUE7QUFBQSxTQUFBRyxlQUFBcEIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBQyxZQUFBLENBQUF4QixDQUFBLGdDQUFBVCxPQUFBLENBQUFnQyxDQUFBLElBQUFBLENBQUEsR0FBQUUsTUFBQSxDQUFBRixDQUFBO0FBQUEsU0FBQUMsYUFBQXhCLENBQUEsRUFBQUQsQ0FBQSxvQkFBQVIsT0FBQSxDQUFBUyxDQUFBLE1BQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBRixDQUFBLEdBQUFFLENBQUEsQ0FBQVAsTUFBQSxDQUFBaUMsV0FBQSxrQkFBQTVCLENBQUEsUUFBQXlCLENBQUEsR0FBQXpCLENBQUEsQ0FBQTZCLElBQUEsQ0FBQTNCLENBQUEsRUFBQUQsQ0FBQSxnQ0FBQVIsT0FBQSxDQUFBZ0MsQ0FBQSxVQUFBQSxDQUFBLFlBQUFLLFNBQUEseUVBQUE3QixDQUFBLEdBQUEwQixNQUFBLEdBQUFJLE1BQUEsRUFBQTdCLENBQUE7QUFDYixPQUFPOEIsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsT0FBTyxRQUFRLGdCQUFnQjtBQUN4QyxTQUFTQyxzQkFBc0IsRUFBRUMseUJBQXlCLFFBQVEsMEJBQTBCO0FBQzVGLE9BQU9DLGtCQUFrQixNQUFNLHNCQUFzQjtBQUNyRCxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsZ0JBQWdCLE1BQU0sb0JBQW9CO0FBQ2pELE9BQU9DLGVBQWUsTUFBTSxtQkFBbUI7QUFDL0MsT0FBT0MsZ0JBQWdCLE1BQU0sb0JBQW9CO0FBQ2pELE9BQU9DLGNBQWMsTUFBTSxrQkFBa0I7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLFVBQVU7QUFDN0IsT0FBTyx1QkFBdUI7QUFBQyxTQUFBQyxHQUFBLElBQUFDLElBQUE7QUFBQSxTQUFBQyxJQUFBLElBQUFDLEtBQUE7QUE2Qy9CLFNBQVNDLG1CQUFtQkEsQ0FBQSxFQUFHO0VBQzdCLElBQUFDLHFCQUFBLEdBQWlDZCx5QkFBeUIsQ0FBQyxDQUFDO0lBQXBEZSxvQkFBb0IsR0FBQUQscUJBQUEsQ0FBcEJDLG9CQUFvQjtFQUU1QixvQkFDRUwsSUFBQTtJQUNFTSxJQUFJLEVBQUMsUUFBUTtJQUNiQyxTQUFTLEVBQUMsdUJBQXVCO0lBQ2pDQyxPQUFPLEVBQUVILG9CQUFxQjtJQUM5QixjQUFXLGdCQUFnQjtJQUFBSSxRQUFBLGVBRTNCVCxJQUFBLENBQUNaLE9BQU87TUFBQztJQUFXLENBQUU7RUFBQyxDQUNqQixDQUFDO0FBRWI7QUFFQSxTQUFTc0IsY0FBY0EsQ0FBQSxFQUFHO0VBQ3hCLG9CQUNFUixLQUFBO0lBQUtLLFNBQVMsRUFBQyx3QkFBd0I7SUFBQUUsUUFBQSxnQkFDckNULElBQUEsQ0FBQ1Qsa0JBQWtCLElBQUUsQ0FBQyxlQUN0QlMsSUFBQSxDQUFDRyxtQkFBbUIsSUFBRSxDQUFDO0VBQUEsQ0FDcEIsQ0FBQztBQUVWO0FBRUEsU0FBU1EsY0FBY0EsQ0FBQ0MsS0FBWSxFQUFFO0VBQ3BDLG9CQUNFVixLQUFBLENBQUNiLHNCQUFzQixFQUFBdkIsYUFBQSxDQUFBQSxhQUFBLEtBQUs4QyxLQUFLO0lBQUFILFFBQUEsZ0JBQy9CVCxJQUFBLENBQUNGLE1BQU0sSUFBRSxDQUFDLGVBQ1ZFLElBQUEsQ0FBQ1UsY0FBYyxJQUFFLENBQUMsZUFDbEJSLEtBQUEsQ0FBQ1IsZ0JBQWdCO01BQUFlLFFBQUEsZ0JBQ2ZULElBQUEsQ0FBQ0wsZUFBZSxJQUFFLENBQUMsZUFDbkJLLElBQUEsQ0FBQ1IsY0FBYyxJQUFFLENBQUMsZUFDbEJRLElBQUEsQ0FBQ1AsY0FBYyxJQUFFLENBQUMsZUFDbEJPLElBQUEsQ0FBQ0osZ0JBQWdCLElBQUUsQ0FBQyxlQUNwQkksSUFBQSxDQUFDSCxjQUFjLElBQUUsQ0FBQztJQUFBLENBQ0YsQ0FBQztFQUFBLEVBQ0csQ0FBQztBQUU3QjtBQUVBLGVBQWVjLGNBQWMifQ==
|