israeli-bank-scrapers 4.1.1 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,6 +33,8 @@ var _transactions2 = require("../transactions");
33
33
 
34
34
  var _debug = require("../helpers/debug");
35
35
 
36
+ var _constants = require("../constants");
37
+
36
38
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
39
 
38
40
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -159,6 +161,22 @@ function getInstallmentsInfo(comments) {
159
161
  };
160
162
  }
161
163
 
164
+ function getChargedCurrency(currencyId) {
165
+ switch (currencyId) {
166
+ case 376:
167
+ return _constants.SHEKEL_CURRENCY;
168
+
169
+ case 840:
170
+ return _constants.DOLLAR_CURRENCY;
171
+
172
+ case 978:
173
+ return _constants.EURO_CURRENCY;
174
+
175
+ default:
176
+ return undefined;
177
+ }
178
+ }
179
+
162
180
  function mapTransaction(rawTransaction) {
163
181
  var _rawTransaction$dealD, _rawTransaction$dealD2;
164
182
 
@@ -174,6 +192,7 @@ function mapTransaction(rawTransaction) {
174
192
  originalAmount: -rawTransaction.originalAmount,
175
193
  originalCurrency: rawTransaction.originalCurrency,
176
194
  chargedAmount: -rawTransaction.actualPaymentAmount,
195
+ chargedCurrency: getChargedCurrency(rawTransaction.paymentCurrency),
177
196
  description: rawTransaction.merchantName.trim(),
178
197
  memo: rawTransaction.comments,
179
198
  category: categories.get(rawTransaction === null || rawTransaction === void 0 ? void 0 : rawTransaction.categoryId),
@@ -319,4 +338,4 @@ class MaxScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
319
338
 
320
339
  var _default = MaxScraper;
321
340
  exports.default = _default;
322
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyIiwiTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUiLCJDUkVESVRfVFlQRV9OQU1FIiwiQ1JFRElUX09VVFNJREVfVEhFX0xJTUlUIiwiQUNDVU1VTEFUSU5HX0JBU0tFVCIsIlBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFMiLCJSRVBMQUNFTUVOVF9DQVJEIiwiRUFSTFlfUkVQQVlNRU5UIiwiTU9OVEhMWV9DQVJEX0ZFRSIsIklOVkFMSURfREVUQUlMU19TRUxFQ1RPUiIsIkxPR0lOX0VSUk9SX1NFTEVDVE9SIiwiY2F0ZWdvcmllcyIsIk1hcCIsInJlZGlyZWN0T3JEaWFsb2ciLCJwYWdlIiwiUHJvbWlzZSIsInJhY2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJtb250aE1vbWVudCIsIm1vbnRoIiwieWVhciIsImRhdGUiLCJwYXRoIiwibG9hZENhdGVnb3JpZXMiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaWQiLCJuYW1lIiwic2V0IiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwidHhuVHlwZVN0ciIsImNsZWFuZWRVcFR4blR5cGVTdHIiLCJyZXBsYWNlIiwidHJpbSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJFcnJvciIsImdldEluc3RhbGxtZW50c0luZm8iLCJjb21tZW50cyIsInVuZGVmaW5lZCIsIm1hdGNoZXMiLCJtYXRjaCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJtYXBUcmFuc2FjdGlvbiIsInJhd1RyYW5zYWN0aW9uIiwiaXNQZW5kaW5nIiwicGF5bWVudERhdGUiLCJwcm9jZXNzZWREYXRlIiwicHVyY2hhc2VEYXRlIiwidG9JU09TdHJpbmciLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiUGVuZGluZyIsIkNvbXBsZXRlZCIsImluc3RhbGxtZW50cyIsImlkZW50aWZpZXIiLCJkZWFsRGF0YSIsImFybiIsInR5cGUiLCJwbGFuTmFtZSIsIm9yaWdpbmFsQW1vdW50Iiwib3JpZ2luYWxDdXJyZW5jeSIsImNoYXJnZWRBbW91bnQiLCJhY3R1YWxQYXltZW50QW1vdW50IiwiZGVzY3JpcHRpb24iLCJtZXJjaGFudE5hbWUiLCJtZW1vIiwiY2F0ZWdvcnkiLCJnZXQiLCJjYXRlZ29yeUlkIiwiZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aCIsInVybCIsImRhdGEiLCJ0cmFuc2FjdGlvbnNCeUFjY291bnQiLCJ0cmFuc2FjdGlvbnMiLCJmaWx0ZXIiLCJ0cmFuc2FjdGlvbiIsInNob3J0Q2FyZE51bWJlciIsIm1hcHBlZFRyYW5zYWN0aW9uIiwicHVzaCIsImFkZFJlc3VsdCIsImFsbFJlc3VsdHMiLCJjbG9uZWRSZXN1bHRzIiwiT2JqZWN0Iiwia2V5cyIsImFjY291bnROdW1iZXIiLCJwcmVwYXJlVHJhbnNhY3Rpb25zIiwidHhucyIsInN0YXJ0TW9tZW50IiwiY29tYmluZUluc3RhbGxtZW50cyIsImVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSIsImNsb25lZFR4bnMiLCJmcm9tIiwiZmV0Y2hUcmFuc2FjdGlvbnMiLCJvcHRpb25zIiwiZnV0dXJlTW9udGhzVG9TY3JhcGUiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsIm1vbWVudCIsIm1heCIsImFsbE1vbnRocyIsImkiLCJvdXRwdXREYXRhIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJ1cmxzIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIkNoYW5nZVBhc3N3b3JkIiwiSW52YWxpZFBhc3N3b3JkIiwiVW5rbm93bkVycm9yIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiTWF4U2NyYXBlciIsIkJhc2VTY3JhcGVyV2l0aEJyb3dzZXIiLCJnZXRMb2dpbk9wdGlvbnMiLCJsb2dpblVybCIsImZpZWxkcyIsInN1Ym1pdEJ1dHRvblNlbGVjdG9yIiwicHJlQWN0aW9uIiwiY2hlY2tSZWFkaW5lc3MiLCJwb3N0QWN0aW9uIiwicG9zc2libGVSZXN1bHRzIiwid2FpdFVudGlsIiwiZmV0Y2hEYXRhIiwicmVzdWx0cyIsImFjY291bnRzIiwibWFwIiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFHQSxNQUFNQSxLQUFLLEdBQUcscUJBQVMsS0FBVCxDQUFkO0FBa0JBLE1BQU1DLGdCQUFnQixHQUFHLDBCQUF6QjtBQUNBLE1BQU1DLG9CQUFvQixHQUFHLCtCQUE3QjtBQUNBLE1BQU1DLGdCQUFnQixH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RDtBQUZSLE9BQVA7QUFJRCxLQUxnQixDQUFqQjtBQU9BLFdBQU87QUFDTGdELE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxGLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXJDeUU7O2VBd0M3RGIsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSwgTG9hZEV2ZW50IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgU2NyYXBlck9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ21heCcpO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2hvcnRDYXJkTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnREYXRlPzogc3RyaW5nO1xuICBwdXJjaGFzZURhdGU6IHN0cmluZztcbiAgYWN0dWFsUGF5bWVudEFtb3VudDogc3RyaW5nO1xuICBvcmlnaW5hbEN1cnJlbmN5OiBzdHJpbmc7XG4gIG9yaWdpbmFsQW1vdW50OiBudW1iZXI7XG4gIHBsYW5OYW1lOiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBzdHJpbmc7XG4gIG1lcmNoYW50TmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBudW1iZXI7XG4gIGRlYWxEYXRhPzoge1xuICAgIGFybjogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBCQVNFX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX0FQSV9BQ1RJT05TX1VSTCA9ICdodHRwczovL29ubGluZWxjYXBpLm1heC5jby5pbCc7XG5jb25zdCBCQVNFX1dFTENPTUVfVVJMID0gJ2h0dHBzOi8vd3d3Lm1heC5jby5pbCc7XG5cbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3dlbGNvbWVgO1xuY29uc3QgUEFTU1dPUkRfRVhQSVJFRF9VUkwgPSBgJHtCQVNFX0FDVElPTlNfVVJMfS9Bbm9ueW1vdXMvTG9naW4vUGFzc3dvcmRFeHBpcmVkLmFzcHhgO1xuY29uc3QgU1VDQ0VTU19VUkwgPSBgJHtCQVNFX1dFTENPTUVfVVJMfS9ob21lcGFnZS9wZXJzb25hbGA7XG5cbmNvbnN0IE5PUk1BTF9UWVBFX05BTUUgPSAn16jXkteZ15zXlCc7XG5jb25zdCBBVE1fVFlQRV9OQU1FID0gJ9eX15nXldeRINei16HXp9eV16og157XmdeZ15PXmSc7XG5jb25zdCBJTlRFUk5FVF9TSE9QUElOR19UWVBFX05BTUUgPSAn15DXmdeg15jXqNeg15gv15fXlVwi15wnO1xuY29uc3QgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXqtep15zXldee15nXnSc7XG5jb25zdCBNT05USExZX0NIQVJHRV9UWVBFX05BTUUgPSAn15fXmdeV15Eg15fXldeT16nXmSc7XG5jb25zdCBPTkVfTU9OVEhfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSc7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15zXl9eZ15XXkSDXlNeX15XXk9ep15knO1xuY29uc3QgTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSA9ICfXqtep15zXldedINeX15XXk9ep15knO1xuY29uc3QgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORyA9ICfXnteZ157XldefINec16jXm9eZ16nXlCDXoteq15nXk9eZ16onO1xuY29uc3QgTU9OVEhMWV9QT1NUUE9ORURfSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqSDXqtep15zXldee15nXnSc7XG5jb25zdCBUSElSVFlfREFZU19QTFVTX1RZUEVfTkFNRSA9ICfXoteh16fXqiAzMCDXpNec15XXoSc7XG5jb25zdCBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUgPSAn15PXl9eV15kg15fXldeT16nXmdeZ150nO1xuY29uc3QgVFdPX01PTlRIU19QT1NUUE9ORURfVFlQRV9OQU1FMiA9ICfXk9eX15XXmSAyINeXXFwnINeq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FID0gJ9eX15XXk9ep15kgKyDXqNeZ15HXmdeqJztcbmNvbnN0IENSRURJVF9UWVBFX05BTUUgPSAn16fXqNeT15nXmCc7XG5jb25zdCBDUkVESVRfT1VUU0lERV9USEVfTElNSVQgPSAn16fXqNeT15nXmC3XnteX15XXpSDXnNee16HXkteo16onO1xuY29uc3QgQUNDVU1VTEFUSU5HX0JBU0tFVCA9ICfXodecINee16bXmNeR16gnO1xuY29uc3QgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUyA9ICfXpNeo15nXodeqINeU16LXoden15Qg15TXk9eX15XXmdeUJztcbmNvbnN0IFJFUExBQ0VNRU5UX0NBUkQgPSAn15vXqNeY15nXoSDXl9ec15nXpNeZJztcbmNvbnN0IEVBUkxZX1JFUEFZTUVOVCA9ICfXpNeo16LXldefINee15XXp9eT150nO1xuY29uc3QgTU9OVEhMWV9DQVJEX0ZFRSA9ICfXk9ee15kg15vXqNeY15nXoSc7XG5cbmNvbnN0IElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiA9ICcjcG9wdXBXcm9uZ0RldGFpbHMnO1xuY29uc3QgTE9HSU5fRVJST1JfU0VMRUNUT1IgPSAnI3BvcHVwQ2FyZEhvbGRlcnNMb2dpbkVycm9yJztcblxuY29uc3QgY2F0ZWdvcmllcyA9IG5ldyBNYXA8bnVtYmVyLCBzdHJpbmc+KCk7XG5cbmZ1bmN0aW9uIHJlZGlyZWN0T3JEaWFsb2cocGFnZTogUGFnZSkge1xuICByZXR1cm4gUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0Rm9yUmVkaXJlY3QocGFnZSwgMjAwMDAsIGZhbHNlLCBbQkFTRV9XRUxDT01FX1VSTCwgYCR7QkFTRV9XRUxDT01FX1VSTH0vYF0pLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IsIHRydWUpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiwgdHJ1ZSksXG4gIF0pO1xufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvbnNVcmwobW9udGhNb21lbnQ6IE1vbWVudCkge1xuICBjb25zdCBtb250aCA9IG1vbnRoTW9tZW50Lm1vbnRoKCkgKyAxO1xuICBjb25zdCB5ZWFyID0gbW9udGhNb21lbnQueWVhcigpO1xuICBjb25zdCBkYXRlID0gYCR7eWVhcn0tJHttb250aH0tMDFgO1xuXG4gIC8qKlxuICAgICAqIHVybCBleHBsYW5hdGlvbjpcbiAgICAgKiB1c2VySW5kZXg6IC0xIGZvciBhbGwgYWNjb3VudCBvd25lcnNcbiAgICAgKiBjYXJkSW5kZXg6IC0xIGZvciBhbGwgY2FyZHMgdW5kZXIgdGhlIGFjY291bnRcbiAgICAgKiBhbGwgb3RoZXIgcXVlcnkgcGFyYW1zIGFyZSBzdGF0aWMsIGJlc2lkZSB0aGUgZGF0ZSB3aGljaCBjaGFuZ2VzIGZvciByZXF1ZXN0IHBlciBtb250aFxuICAgICAqL1xuICByZXR1cm4gYnVpbGRVcmwoQkFTRV9BUElfQUNUSU9OU19VUkwsIHtcbiAgICBwYXRoOiBgL2FwaS9yZWdpc3RlcmVkL3RyYW5zYWN0aW9uRGV0YWlscy9nZXRUcmFuc2FjdGlvbnNBbmRHcmFwaHM/ZmlsdGVyRGF0YT17XCJ1c2VySW5kZXhcIjotMSxcImNhcmRJbmRleFwiOi0xLFwibW9udGhWaWV3XCI6dHJ1ZSxcImRhdGVcIjpcIiR7ZGF0ZX1cIixcImRhdGVzXCI6e1wic3RhcnREYXRlXCI6XCIwXCIsXCJlbmREYXRlXCI6XCIwXCJ9LFwiYmFua0FjY291bnRcIjp7XCJiYW5rQWNjb3VudEluZGV4XCI6LTEsXCJjYXJkc1wiOm51bGx9fSZmaXJzdENhbGxDYXJkSW5kZXg9LTFgLFxuICB9KTtcbn1cblxuaW50ZXJmYWNlIEZldGNoQ2F0ZWdvcnlSZXN1bHQge1xuICByZXN1bHQ/IDogQXJyYXk8e1xuICAgIGlkOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9Pjtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZENhdGVnb3JpZXMocGFnZTogUGFnZSkge1xuICBkZWJ1ZygnTG9hZGluZyBjYXRlZ29yaWVzJyk7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxGZXRjaENhdGVnb3J5UmVzdWx0PihwYWdlLCBgJHtCQVNFX0FQSV9BQ1RJT05TX1VSTH0vYXBpL2NvbnRlbnRzL2dldENhdGVnb3JpZXNgKTtcbiAgaWYgKHJlcyAmJiBBcnJheS5pc0FycmF5KHJlcy5yZXN1bHQpKSB7XG4gICAgZGVidWcoYCR7cmVzLnJlc3VsdC5sZW5ndGh9IGNhdGVnb3JpZXMgbG9hZGVkYCk7XG4gICAgICByZXMucmVzdWx0Py5mb3JFYWNoKCh7IGlkLCBuYW1lIH0pID0+IGNhdGVnb3JpZXMuc2V0KGlkLCBuYW1lKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25UeXBlKHR4blR5cGVTdHI6IHN0cmluZykge1xuICBjb25zdCBjbGVhbmVkVXBUeG5UeXBlU3RyID0gdHhuVHlwZVN0ci5yZXBsYWNlKCdcXHQnLCAnICcpLnRyaW0oKTtcbiAgc3dpdGNoIChjbGVhbmVkVXBUeG5UeXBlU3RyKSB7XG4gICAgY2FzZSBBVE1fVFlQRV9OQU1FOlxuICAgIGNhc2UgTk9STUFMX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRTpcbiAgICBjYXNlIE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FOlxuICAgIGNhc2UgRlVUVVJFX1BVUkNIQVNFX0ZJTkFOQ0lORzpcbiAgICBjYXNlIE1PTlRITFlfUEFZTUVOVF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyOlxuICAgIGNhc2UgQUNDVU1VTEFUSU5HX0JBU0tFVDpcbiAgICBjYXNlIElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfQ0hBUkdFX1BMVVNfSU5URVJFU1RfVFlQRV9OQU1FOlxuICAgIGNhc2UgUE9TVFBPTkVEX1RSQU5TQUNUSU9OX0lOU1RBTExNRU5UUzpcbiAgICBjYXNlIFJFUExBQ0VNRU5UX0NBUkQ6XG4gICAgY2FzZSBFQVJMWV9SRVBBWU1FTlQ6XG4gICAgY2FzZSBNT05USExZX0NBUkRfRkVFOlxuICAgICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsO1xuICAgIGNhc2UgSU5TVEFMTE1FTlRTX1RZUEVfTkFNRTpcbiAgICBjYXNlIENSRURJVF9UWVBFX05BTUU6XG4gICAgY2FzZSBDUkVESVRfT1VUU0lERV9USEVfTElNSVQ6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5JbnN0YWxsbWVudHM7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0cmFuc2FjdGlvbiB0eXBlICR7Y2xlYW5lZFVwVHhuVHlwZVN0cn1gKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRJbnN0YWxsbWVudHNJbmZvKGNvbW1lbnRzOiBzdHJpbmcpIHtcbiAgaWYgKCFjb21tZW50cykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3QgbWF0Y2hlcyA9IGNvbW1lbnRzLm1hdGNoKC9cXGQrL2cpO1xuICBpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAyKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbnVtYmVyOiBwYXJzZUludChtYXRjaGVzWzBdLCAxMCksXG4gICAgdG90YWw6IHBhcnNlSW50KG1hdGNoZXNbMV0sIDEwKSxcbiAgfTtcbn1cbmZ1bmN0aW9uIG1hcFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBTY3JhcGVkVHJhbnNhY3Rpb24pOiBUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IGlzUGVuZGluZyA9IHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlID09PSBudWxsO1xuICBjb25zdCBwcm9jZXNzZWREYXRlID0gbW9tZW50KGlzUGVuZGluZyA/XG4gICAgcmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlIDpcbiAgICByYXdUcmFuc2FjdGlvbi5wYXltZW50RGF0ZSkudG9JU09TdHJpbmcoKTtcbiAgY29uc3Qgc3RhdHVzID0gaXNQZW5kaW5nID8gVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nIDogVHJhbnNhY3Rpb25TdGF0dXNlcy5Db21wbGV0ZWQ7XG5cbiAgY29uc3QgaW5zdGFsbG1lbnRzID0gZ2V0SW5zdGFsbG1lbnRzSW5mbyhyYXdUcmFuc2FjdGlvbi5jb21tZW50cyk7XG4gIGNvbnN0IGlkZW50aWZpZXIgPSBpbnN0YWxsbWVudHMgP1xuICAgIGAke3Jhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm59XyR7aW5zdGFsbG1lbnRzLm51bWJlcn1gIDpcbiAgICByYXdUcmFuc2FjdGlvbi5kZWFsRGF0YT8uYXJuO1xuXG4gIHJldHVybiB7XG4gICAgdHlwZTogZ2V0VHJhbnNhY3Rpb25UeXBlKHJhd1RyYW5zYWN0aW9uLnBsYW5OYW1lKSxcbiAgICBkYXRlOiBtb21lbnQocmF3VHJhbnNhY3Rpb24ucHVyY2hhc2VEYXRlKS50b0lTT1N0cmluZygpLFxuICAgIHByb2Nlc3NlZERhdGUsXG4gICAgb3JpZ2luYWxBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEFtb3VudCxcbiAgICBvcmlnaW5hbEN1cnJlbmN5OiByYXdUcmFuc2FjdGlvbi5vcmlnaW5hbEN1cnJlbmN5LFxuICAgIGNoYXJnZWRBbW91bnQ6IC1yYXdUcmFuc2FjdGlvbi5hY3R1YWxQYXltZW50QW1vdW50LFxuICAgIGRlc2NyaXB0aW9uOiByYXdUcmFuc2FjdGlvbi5tZXJjaGFudE5hbWUudHJpbSgpLFxuICAgIG1lbW86IHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzLFxuICAgIGNhdGVnb3J5OiBjYXRlZ29yaWVzLmdldChyYXdUcmFuc2FjdGlvbj8uY2F0ZWdvcnlJZCksXG4gICAgaW5zdGFsbG1lbnRzLFxuICAgIGlkZW50aWZpZXIsXG4gICAgc3RhdHVzLFxuICB9O1xufVxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHR7XG4gIHJlc3VsdD86IHtcbiAgICB0cmFuc2FjdGlvbnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoKHBhZ2U6IFBhZ2UsIG1vbnRoTW9tZW50OiBNb21lbnQpIHtcbiAgY29uc3QgdXJsID0gZ2V0VHJhbnNhY3Rpb25zVXJsKG1vbnRoTW9tZW50KTtcblxuICBjb25zdCBkYXRhID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPFNjcmFwZWRUcmFuc2FjdGlvbnNSZXN1bHQ+KHBhZ2UsIHVybCk7XG4gIGNvbnN0IHRyYW5zYWN0aW9uc0J5QWNjb3VudDogUmVjb3JkPHN0cmluZywgVHJhbnNhY3Rpb25bXT4gPSB7fTtcblxuICBpZiAoIWRhdGEgfHwgIWRhdGEucmVzdWx0KSByZXR1cm4gdHJhbnNhY3Rpb25zQnlBY2NvdW50O1xuXG4gIGRhdGEucmVzdWx0LnRyYW5zYWN0aW9uc1xuICAgIC8vIEZpbHRlciBvdXQgbm9uLXRyYW5zYWN0aW9ucyB3aXRob3V0IGEgcGxhbiB0eXBlLCBlLmcuIHN1bW1hcnkgcm93c1xuICAgIC5maWx0ZXIoKHRyYW5zYWN0aW9uKSA9PiAhIXRyYW5zYWN0aW9uLnBsYW5OYW1lKVxuICAgIC5mb3JFYWNoKCh0cmFuc2FjdGlvbjogU2NyYXBlZFRyYW5zYWN0aW9uKSA9PiB7XG4gICAgICBpZiAoIXRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdKSB7XG4gICAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdID0gW107XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1hcHBlZFRyYW5zYWN0aW9uID0gbWFwVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xuICAgICAgdHJhbnNhY3Rpb25zQnlBY2NvdW50W3RyYW5zYWN0aW9uLnNob3J0Q2FyZE51bWJlcl0ucHVzaChtYXBwZWRUcmFuc2FjdGlvbik7XG4gICAgfSk7XG5cbiAgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcbn1cblxuZnVuY3Rpb24gYWRkUmVzdWx0KGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+LCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+KSB7XG4gIGNvbnN0IGNsb25lZFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0geyAuLi5hbGxSZXN1bHRzIH07XG4gIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgIGlmICghY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSkge1xuICAgICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IFtdO1xuICAgIH1cbiAgICBjbG9uZWRSZXN1bHRzW2FjY291bnROdW1iZXJdLnB1c2goLi4ucmVzdWx0W2FjY291bnROdW1iZXJdKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZWRSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnM6IFRyYW5zYWN0aW9uW10sIHN0YXJ0TW9tZW50OiBtb21lbnQuTW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzOiBib29sZWFuLCBlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGU6IGJvb2xlYW4pIHtcbiAgbGV0IGNsb25lZFR4bnMgPSBBcnJheS5mcm9tKHR4bnMpO1xuICBpZiAoIWNvbWJpbmVJbnN0YWxsbWVudHMpIHtcbiAgICBjbG9uZWRUeG5zID0gZml4SW5zdGFsbG1lbnRzKGNsb25lZFR4bnMpO1xuICB9XG4gIGNsb25lZFR4bnMgPSBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlKGNsb25lZFR4bnMpO1xuICBjbG9uZWRUeG5zID0gZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlID9cbiAgICBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMoY2xvbmVkVHhucywgc3RhcnRNb21lbnQsIGNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UpIDpcbiAgICBjbG9uZWRUeG5zO1xuICByZXR1cm4gY2xvbmVkVHhucztcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnMocGFnZTogUGFnZSwgb3B0aW9uczogU2NyYXBlck9wdGlvbnMpIHtcbiAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSBvcHRpb25zLmZ1dHVyZU1vbnRoc1RvU2NyYXBlID8/IDE7XG4gIGNvbnN0IGRlZmF1bHRTdGFydE1vbWVudCA9IG1vbWVudCgpLnN1YnRyYWN0KDEsICd5ZWFycycpO1xuICBjb25zdCBzdGFydERhdGUgPSBvcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIGNvbnN0IHN0YXJ0TW9tZW50ID0gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbiAgY29uc3QgYWxsTW9udGhzID0gZ2V0QWxsTW9udGhNb21lbnRzKHN0YXJ0TW9tZW50LCBmdXR1cmVNb250aHNUb1NjcmFwZSk7XG5cbiAgYXdhaXQgbG9hZENhdGVnb3JpZXMocGFnZSk7XG5cbiAgbGV0IGFsbFJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYWxsTW9udGhzLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlLCBhbGxNb250aHNbaV0pO1xuICAgIGFsbFJlc3VsdHMgPSBhZGRSZXN1bHQoYWxsUmVzdWx0cywgcmVzdWx0KTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGFsbFJlc3VsdHMpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBsZXQgdHhucyA9IGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl07XG4gICAgdHhucyA9IHByZXBhcmVUcmFuc2FjdGlvbnModHhucywgc3RhcnRNb21lbnQsIG9wdGlvbnMuY29tYmluZUluc3RhbGxtZW50cyB8fCBmYWxzZSxcbiAgICAgIChvcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSk7XG4gICAgYWxsUmVzdWx0c1thY2NvdW50TnVtYmVyXSA9IHR4bnM7XG4gIH0pO1xuXG4gIHJldHVybiBhbGxSZXN1bHRzO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICBjb25zdCB1cmxzOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyA9IHt9O1xuICB1cmxzW0xvZ2luUmVzdWx0cy5TdWNjZXNzXSA9IFtTVUNDRVNTX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkNoYW5nZVBhc3N3b3JkXSA9IFtQQVNTV09SRF9FWFBJUkVEX1VSTF07XG4gIHVybHNbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBJTlZBTElEX0RFVEFJTFNfU0VMRUNUT1IpO1xuICB9XTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuVW5rbm93bkVycm9yXSA9IFthc3luYyAoKSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnRQcmVzZW50T25QYWdlKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SKTtcbiAgfV07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgcmV0dXJuIFtcbiAgICB7IHNlbGVjdG9yOiAnI3VzZXItbmFtZScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICcjcGFzc3dvcmQnLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxudHlwZSBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyA9IHt1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nfTtcblxuY2xhc3MgTWF4U2NyYXBlciBleHRlbmRzIEJhc2VTY3JhcGVyV2l0aEJyb3dzZXI8U2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHM+IHtcbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICAgIHJldHVybiB7XG4gICAgICBsb2dpblVybDogTE9HSU5fVVJMLFxuICAgICAgZmllbGRzOiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFscyksXG4gICAgICBzdWJtaXRCdXR0b25TZWxlY3RvcjogJyNsb2dpbi1wYXNzd29yZCAjc2VuZC1jb2RlJyxcbiAgICAgIHByZUFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UodGhpcy5wYWdlLCAnI2Nsb3NlUG9wdXAnKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnKTtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJywgdHJ1ZSk7XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJyNsb2dpbi1wYXNzd29yZC1saW5rJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQudGFiLXBhbmUuYWN0aXZlIGFwcC11c2VyLWxvZ2luLWZvcm0nLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnLnBlcnNvbmFsLWFyZWEgPiBhLmdvLXRvLXBlcnNvbmFsLWFyZWEnLCB0cnVlKTtcbiAgICAgIH0sXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiByZWRpcmVjdE9yRGlhbG9nKHRoaXMucGFnZSksXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHRoaXMucGFnZSksXG4gICAgICB3YWl0VW50aWw6ICdkb21jb250ZW50bG9hZGVkJyBhcyBMb2FkRXZlbnQsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoRGF0YSgpIHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hUcmFuc2FjdGlvbnModGhpcy5wYWdlLCB0aGlzLm9wdGlvbnMpO1xuICAgIGNvbnN0IGFjY291bnRzID0gT2JqZWN0LmtleXMocmVzdWx0cykubWFwKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NvdW50TnVtYmVyLFxuICAgICAgICB0eG5zOiByZXN1bHRzW2FjY291bnROdW1iZXJdLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgYWNjb3VudHMsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNYXhTY3JhcGVyO1xuIl19
341
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9tYXgudHMiXSwibmFtZXMiOlsiZGVidWciLCJCQVNFX0FDVElPTlNfVVJMIiwiQkFTRV9BUElfQUNUSU9OU19VUkwiLCJCQVNFX1dFTENPTUVfVVJMIiwiTE9HSU5fVVJMIiwiUEFTU1dPUkRfRVhQSVJFRF9VUkwiLCJTVUNDRVNTX1VSTCIsIk5PUk1BTF9UWVBFX05BTUUiLCJBVE1fVFlQRV9OQU1FIiwiSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FIiwiSU5TVEFMTE1FTlRTX1RZUEVfTkFNRSIsIk1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSIsIk9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QT1NUUE9ORURfVFlQRV9OQU1FIiwiTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRSIsIkZVVFVSRV9QVVJDSEFTRV9GSU5BTkNJTkciLCJNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FIiwiVEhJUlRZX0RBWVNfUExVU19UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUiLCJUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyIiwiTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUiLCJDUkVESVRfVFlQRV9OQU1FIiwiQ1JFRElUX09VVFNJREVfVEhFX0xJTUlUIiwiQUNDVU1VTEFUSU5HX0JBU0tFVCIsIlBPU1RQT05FRF9UUkFOU0FDVElPTl9JTlNUQUxMTUVOVFMiLCJSRVBMQUNFTUVOVF9DQVJEIiwiRUFSTFlfUkVQQVlNRU5UIiwiTU9OVEhMWV9DQVJEX0ZFRSIsIklOVkFMSURfREVUQUlMU19TRUxFQ1RPUiIsIkxPR0lOX0VSUk9SX1NFTEVDVE9SIiwiY2F0ZWdvcmllcyIsIk1hcCIsInJlZGlyZWN0T3JEaWFsb2ciLCJwYWdlIiwiUHJvbWlzZSIsInJhY2UiLCJnZXRUcmFuc2FjdGlvbnNVcmwiLCJtb250aE1vbWVudCIsIm1vbnRoIiwieWVhciIsImRhdGUiLCJwYXRoIiwibG9hZENhdGVnb3JpZXMiLCJyZXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZXN1bHQiLCJsZW5ndGgiLCJmb3JFYWNoIiwiaWQiLCJuYW1lIiwic2V0IiwiZ2V0VHJhbnNhY3Rpb25UeXBlIiwidHhuVHlwZVN0ciIsImNsZWFuZWRVcFR4blR5cGVTdHIiLCJyZXBsYWNlIiwidHJpbSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJFcnJvciIsImdldEluc3RhbGxtZW50c0luZm8iLCJjb21tZW50cyIsInVuZGVmaW5lZCIsIm1hdGNoZXMiLCJtYXRjaCIsIm51bWJlciIsInBhcnNlSW50IiwidG90YWwiLCJnZXRDaGFyZ2VkQ3VycmVuY3kiLCJjdXJyZW5jeUlkIiwiU0hFS0VMX0NVUlJFTkNZIiwiRE9MTEFSX0NVUlJFTkNZIiwiRVVST19DVVJSRU5DWSIsIm1hcFRyYW5zYWN0aW9uIiwicmF3VHJhbnNhY3Rpb24iLCJpc1BlbmRpbmciLCJwYXltZW50RGF0ZSIsInByb2Nlc3NlZERhdGUiLCJwdXJjaGFzZURhdGUiLCJ0b0lTT1N0cmluZyIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJQZW5kaW5nIiwiQ29tcGxldGVkIiwiaW5zdGFsbG1lbnRzIiwiaWRlbnRpZmllciIsImRlYWxEYXRhIiwiYXJuIiwidHlwZSIsInBsYW5OYW1lIiwib3JpZ2luYWxBbW91bnQiLCJvcmlnaW5hbEN1cnJlbmN5IiwiY2hhcmdlZEFtb3VudCIsImFjdHVhbFBheW1lbnRBbW91bnQiLCJjaGFyZ2VkQ3VycmVuY3kiLCJwYXltZW50Q3VycmVuY3kiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJjYXRlZ29yeSIsImdldCIsImNhdGVnb3J5SWQiLCJmZXRjaFRyYW5zYWN0aW9uc0Zvck1vbnRoIiwidXJsIiwiZGF0YSIsInRyYW5zYWN0aW9uc0J5QWNjb3VudCIsInRyYW5zYWN0aW9ucyIsImZpbHRlciIsInRyYW5zYWN0aW9uIiwic2hvcnRDYXJkTnVtYmVyIiwibWFwcGVkVHJhbnNhY3Rpb24iLCJwdXNoIiwiYWRkUmVzdWx0IiwiYWxsUmVzdWx0cyIsImNsb25lZFJlc3VsdHMiLCJPYmplY3QiLCJrZXlzIiwiYWNjb3VudE51bWJlciIsInByZXBhcmVUcmFuc2FjdGlvbnMiLCJ0eG5zIiwic3RhcnRNb21lbnQiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiY2xvbmVkVHhucyIsImZyb20iLCJmZXRjaFRyYW5zYWN0aW9ucyIsIm9wdGlvbnMiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwibW9tZW50IiwibWF4IiwiYWxsTW9udGhzIiwiaSIsIm91dHB1dERhdGEiLCJnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyIsInVybHMiLCJMb2dpblJlc3VsdHMiLCJTdWNjZXNzIiwiQ2hhbmdlUGFzc3dvcmQiLCJJbnZhbGlkUGFzc3dvcmQiLCJVbmtub3duRXJyb3IiLCJjcmVhdGVMb2dpbkZpZWxkcyIsImNyZWRlbnRpYWxzIiwic2VsZWN0b3IiLCJ2YWx1ZSIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJNYXhTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwcmVBY3Rpb24iLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJ3YWl0VW50aWwiLCJmZXRjaERhdGEiLCJyZXN1bHRzIiwiYWNjb3VudHMiLCJtYXAiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFF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Z0IsQ0FBQyxLQUFLQyxJQUFOLENBaEJuQztBQWlCTCtILE1BQUFBLGVBQWUsRUFBRXRCLHVCQUF1QixDQUFDLEtBQUt6RyxJQUFOLENBakJuQztBQWtCTGdJLE1BQUFBLFNBQVMsRUFBRTtBQWxCTixLQUFQO0FBb0JEOztBQUVELFFBQU1DLFNBQU4sR0FBa0I7QUFDaEIsVUFBTUMsT0FBTyxHQUFHLE1BQU1yQyxpQkFBaUIsQ0FBQyxLQUFLN0YsSUFBTixFQUFZLEtBQUs4RixPQUFqQixDQUF2QztBQUNBLFVBQU1xQyxRQUFRLEdBQUdoRCxNQUFNLENBQUNDLElBQVAsQ0FBWThDLE9BQVosRUFBcUJFLEdBQXJCLENBQTBCL0MsYUFBRCxJQUFtQjtBQUMzRCxhQUFPO0FBQ0xBLFFBQUFBLGFBREs7QUFFTEUsUUFBQUEsSUFBSSxFQUFFMkMsT0FBTyxDQUFDN0MsYUFBRDtBQUZSLE9BQVA7QUFJRCxLQUxnQixDQUFqQjtBQU9BLFdBQU87QUFDTGdELE1BQUFBLE9BQU8sRUFBRSxJQURKO0FBRUxGLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXJDeUU7O2VBd0M3RGIsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBidWlsZFVybCBmcm9tICdidWlsZC11cmwnO1xuaW1wb3J0IG1vbWVudCwgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgUGFnZSwgTG9hZEV2ZW50IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IGZldGNoR2V0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyB3YWl0Rm9yUmVkaXJlY3QgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgd2FpdFVudGlsRWxlbWVudEZvdW5kLCBlbGVtZW50UHJlc2VudE9uUGFnZSwgY2xpY2tCdXR0b24gfSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgZ2V0QWxsTW9udGhNb21lbnRzIGZyb20gJy4uL2hlbHBlcnMvZGF0ZXMnO1xuaW1wb3J0IHsgZml4SW5zdGFsbG1lbnRzLCBzb3J0VHJhbnNhY3Rpb25zQnlEYXRlLCBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyB9IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHsgU2NyYXBlck9wdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBTSEVLRUxfQ1VSUkVOQ1ksIERPTExBUl9DVVJSRU5DWSwgRVVST19DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ21heCcpO1xuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgc2hvcnRDYXJkTnVtYmVyOiBzdHJpbmc7XG4gIHBheW1lbnREYXRlPzogc3RyaW5nO1xuICBwdXJjaGFzZURhdGU6IHN0cmluZztcbiAgYWN0dWFsUGF5bWVudEFtb3VudDogc3RyaW5nO1xuICBwYXltZW50Q3VycmVuY3k6IG51bWJlciB8IG51bGw7XG4gIG9yaWdpbmFsQ3VycmVuY3k6IHN0cmluZztcbiAgb3JpZ2luYWxBbW91bnQ6IG51bWJlcjtcbiAgcGxhbk5hbWU6IHN0cmluZztcbiAgY29tbWVudHM6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5SWQ6IG51bWJlcjtcbiAgZGVhbERhdGE/OiB7XG4gICAgYXJuOiBzdHJpbmc7XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfQUNUSU9OU19VUkwgPSAnaHR0cHM6Ly9vbmxpbmUubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfQVBJX0FDVElPTlNfVVJMID0gJ2h0dHBzOi8vb25saW5lbGNhcGkubWF4LmNvLmlsJztcbmNvbnN0IEJBU0VfV0VMQ09NRV9VUkwgPSAnaHR0cHM6Ly93d3cubWF4LmNvLmlsJztcblxuY29uc3QgTE9HSU5fVVJMID0gYCR7QkFTRV9XRUxDT01FX1VSTH0vaG9tZXBhZ2Uvd2VsY29tZWA7XG5jb25zdCBQQVNTV09SRF9FWFBJUkVEX1VSTCA9IGAke0JBU0VfQUNUSU9OU19VUkx9L0Fub255bW91cy9Mb2dpbi9QYXNzd29yZEV4cGlyZWQuYXNweGA7XG5jb25zdCBTVUNDRVNTX1VSTCA9IGAke0JBU0VfV0VMQ09NRV9VUkx9L2hvbWVwYWdlL3BlcnNvbmFsYDtcblxuY29uc3QgTk9STUFMX1RZUEVfTkFNRSA9ICfXqNeS15nXnNeUJztcbmNvbnN0IEFUTV9UWVBFX05BTUUgPSAn15fXmdeV15Eg16LXoden15XXqiDXnteZ15nXk9eZJztcbmNvbnN0IElOVEVSTkVUX1NIT1BQSU5HX1RZUEVfTkFNRSA9ICfXkNeZ16DXmNeo16DXmC/Xl9eVXCLXnCc7XG5jb25zdCBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eq16nXnNeV157XmdedJztcbmNvbnN0IE1PTlRITFlfQ0hBUkdFX1RZUEVfTkFNRSA9ICfXl9eZ15XXkSDXl9eV15PXqdeZJztcbmNvbnN0IE9ORV9NT05USF9QT1NUUE9ORURfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epJztcbmNvbnN0IE1PTlRITFlfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXnNeX15nXldeRINeU15fXldeT16nXmSc7XG5jb25zdCBNT05USExZX1BBWU1FTlRfVFlQRV9OQU1FID0gJ9eq16nXnNeV150g15fXldeT16nXmSc7XG5jb25zdCBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HID0gJ9ee15nXnteV158g15zXqNeb15nXqdeUINei16rXmdeT15nXqic7XG5jb25zdCBNT05USExZX1BPU1RQT05FRF9JTlNUQUxMTUVOVFNfVFlQRV9OQU1FID0gJ9eT15fXldeZINeX15XXk9epINeq16nXnNeV157XmdedJztcbmNvbnN0IFRISVJUWV9EQVlTX1BMVVNfVFlQRV9OQU1FID0gJ9ei16HXp9eqIDMwINek15zXldehJztcbmNvbnN0IFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRSA9ICfXk9eX15XXmSDXl9eV15PXqdeZ15nXnSc7XG5jb25zdCBUV09fTU9OVEhTX1BPU1RQT05FRF9UWVBFX05BTUUyID0gJ9eT15fXldeZIDIg15dcXCcg16rXqdec15XXnteZ150nO1xuY29uc3QgTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUUgPSAn15fXldeT16nXmSArINeo15nXkdeZ16onO1xuY29uc3QgQ1JFRElUX1RZUEVfTkFNRSA9ICfXp9eo15PXmdeYJztcbmNvbnN0IENSRURJVF9PVVRTSURFX1RIRV9MSU1JVCA9ICfXp9eo15PXmdeYLdee15fXldelINec157XodeS16jXqic7XG5jb25zdCBBQ0NVTVVMQVRJTkdfQkFTS0VUID0gJ9eh15wg157XpteY15HXqCc7XG5jb25zdCBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTID0gJ9ek16jXmdeh16og15TXoteh16fXlCDXlNeT15fXldeZ15QnO1xuY29uc3QgUkVQTEFDRU1FTlRfQ0FSRCA9ICfXm9eo15jXmdehINeX15zXmdek15knO1xuY29uc3QgRUFSTFlfUkVQQVlNRU5UID0gJ9ek16jXoteV158g157Xlden15PXnSc7XG5jb25zdCBNT05USExZX0NBUkRfRkVFID0gJ9eT157XmSDXm9eo15jXmdehJztcblxuY29uc3QgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SID0gJyNwb3B1cFdyb25nRGV0YWlscyc7XG5jb25zdCBMT0dJTl9FUlJPUl9TRUxFQ1RPUiA9ICcjcG9wdXBDYXJkSG9sZGVyc0xvZ2luRXJyb3InO1xuXG5jb25zdCBjYXRlZ29yaWVzID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oKTtcblxuZnVuY3Rpb24gcmVkaXJlY3RPckRpYWxvZyhwYWdlOiBQYWdlKSB7XG4gIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRGb3JSZWRpcmVjdChwYWdlLCAyMDAwMCwgZmFsc2UsIFtCQVNFX1dFTENPTUVfVVJMLCBgJHtCQVNFX1dFTENPTUVfVVJMfS9gXSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIElOVkFMSURfREVUQUlMU19TRUxFQ1RPUiwgdHJ1ZSksXG4gICAgd2FpdFVudGlsRWxlbWVudEZvdW5kKHBhZ2UsIExPR0lOX0VSUk9SX1NFTEVDVE9SLCB0cnVlKSxcbiAgXSk7XG59XG5cbmZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uc1VybChtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IG1vbnRoID0gbW9udGhNb21lbnQubW9udGgoKSArIDE7XG4gIGNvbnN0IHllYXIgPSBtb250aE1vbWVudC55ZWFyKCk7XG4gIGNvbnN0IGRhdGUgPSBgJHt5ZWFyfS0ke21vbnRofS0wMWA7XG5cbiAgLyoqXG4gICAgICogdXJsIGV4cGxhbmF0aW9uOlxuICAgICAqIHVzZXJJbmRleDogLTEgZm9yIGFsbCBhY2NvdW50IG93bmVyc1xuICAgICAqIGNhcmRJbmRleDogLTEgZm9yIGFsbCBjYXJkcyB1bmRlciB0aGUgYWNjb3VudFxuICAgICAqIGFsbCBvdGhlciBxdWVyeSBwYXJhbXMgYXJlIHN0YXRpYywgYmVzaWRlIHRoZSBkYXRlIHdoaWNoIGNoYW5nZXMgZm9yIHJlcXVlc3QgcGVyIG1vbnRoXG4gICAgICovXG4gIHJldHVybiBidWlsZFVybChCQVNFX0FQSV9BQ1RJT05TX1VSTCwge1xuICAgIHBhdGg6IGAvYXBpL3JlZ2lzdGVyZWQvdHJhbnNhY3Rpb25EZXRhaWxzL2dldFRyYW5zYWN0aW9uc0FuZEdyYXBocz9maWx0ZXJEYXRhPXtcInVzZXJJbmRleFwiOi0xLFwiY2FyZEluZGV4XCI6LTEsXCJtb250aFZpZXdcIjp0cnVlLFwiZGF0ZVwiOlwiJHtkYXRlfVwiLFwiZGF0ZXNcIjp7XCJzdGFydERhdGVcIjpcIjBcIixcImVuZERhdGVcIjpcIjBcIn0sXCJiYW5rQWNjb3VudFwiOntcImJhbmtBY2NvdW50SW5kZXhcIjotMSxcImNhcmRzXCI6bnVsbH19JmZpcnN0Q2FsbENhcmRJbmRleD0tMWAsXG4gIH0pO1xufVxuXG5pbnRlcmZhY2UgRmV0Y2hDYXRlZ29yeVJlc3VsdCB7XG4gIHJlc3VsdD8gOiBBcnJheTx7XG4gICAgaWQ6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5hc3luYyBmdW5jdGlvbiBsb2FkQ2F0ZWdvcmllcyhwYWdlOiBQYWdlKSB7XG4gIGRlYnVnKCdMb2FkaW5nIGNhdGVnb3JpZXMnKTtcbiAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2hHZXRXaXRoaW5QYWdlPEZldGNoQ2F0ZWdvcnlSZXN1bHQ+KHBhZ2UsIGAke0JBU0VfQVBJX0FDVElPTlNfVVJMfS9hcGkvY29udGVudHMvZ2V0Q2F0ZWdvcmllc2ApO1xuICBpZiAocmVzICYmIEFycmF5LmlzQXJyYXkocmVzLnJlc3VsdCkpIHtcbiAgICBkZWJ1ZyhgJHtyZXMucmVzdWx0Lmxlbmd0aH0gY2F0ZWdvcmllcyBsb2FkZWRgKTtcbiAgICAgIHJlcy5yZXN1bHQ/LmZvckVhY2goKHsgaWQsIG5hbWUgfSkgPT4gY2F0ZWdvcmllcy5zZXQoaWQsIG5hbWUpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUcmFuc2FjdGlvblR5cGUodHhuVHlwZVN0cjogc3RyaW5nKSB7XG4gIGNvbnN0IGNsZWFuZWRVcFR4blR5cGVTdHIgPSB0eG5UeXBlU3RyLnJlcGxhY2UoJ1xcdCcsICcgJykudHJpbSgpO1xuICBzd2l0Y2ggKGNsZWFuZWRVcFR4blR5cGVTdHIpIHtcbiAgICBjYXNlIEFUTV9UWVBFX05BTUU6XG4gICAgY2FzZSBOT1JNQUxfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9DSEFSR0VfVFlQRV9OQU1FOlxuICAgIGNhc2UgT05FX01PTlRIX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBNT05USExZX1BPU1RQT05FRF9UWVBFX05BTUU6XG4gICAgY2FzZSBGVVRVUkVfUFVSQ0hBU0VfRklOQU5DSU5HOlxuICAgIGNhc2UgTU9OVEhMWV9QQVlNRU5UX1RZUEVfTkFNRTpcbiAgICBjYXNlIE1PTlRITFlfUE9TVFBPTkVEX0lOU1RBTExNRU5UU19UWVBFX05BTUU6XG4gICAgY2FzZSBUSElSVFlfREFZU19QTFVTX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRTpcbiAgICBjYXNlIFRXT19NT05USFNfUE9TVFBPTkVEX1RZUEVfTkFNRTI6XG4gICAgY2FzZSBBQ0NVTVVMQVRJTkdfQkFTS0VUOlxuICAgIGNhc2UgSU5URVJORVRfU0hPUFBJTkdfVFlQRV9OQU1FOlxuICAgIGNhc2UgTU9OVEhMWV9DSEFSR0VfUExVU19JTlRFUkVTVF9UWVBFX05BTUU6XG4gICAgY2FzZSBQT1NUUE9ORURfVFJBTlNBQ1RJT05fSU5TVEFMTE1FTlRTOlxuICAgIGNhc2UgUkVQTEFDRU1FTlRfQ0FSRDpcbiAgICBjYXNlIEVBUkxZX1JFUEFZTUVOVDpcbiAgICBjYXNlIE1PTlRITFlfQ0FSRF9GRUU6XG4gICAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWw7XG4gICAgY2FzZSBJTlNUQUxMTUVOVFNfVFlQRV9OQU1FOlxuICAgIGNhc2UgQ1JFRElUX1RZUEVfTkFNRTpcbiAgICBjYXNlIENSRURJVF9PVVRTSURFX1RIRV9MSU1JVDpcbiAgICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGVzLkluc3RhbGxtZW50cztcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIHRyYW5zYWN0aW9uIHR5cGUgJHtjbGVhbmVkVXBUeG5UeXBlU3RyfWApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEluc3RhbGxtZW50c0luZm8oY29tbWVudHM6IHN0cmluZykge1xuICBpZiAoIWNvbW1lbnRzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBjb25zdCBtYXRjaGVzID0gY29tbWVudHMubWF0Y2goL1xcZCsvZyk7XG4gIGlmICghbWF0Y2hlcyB8fCBtYXRjaGVzLmxlbmd0aCA8IDIpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBudW1iZXI6IHBhcnNlSW50KG1hdGNoZXNbMF0sIDEwKSxcbiAgICB0b3RhbDogcGFyc2VJbnQobWF0Y2hlc1sxXSwgMTApLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRDaGFyZ2VkQ3VycmVuY3koY3VycmVuY3lJZDogbnVtYmVyIHwgbnVsbCkge1xuICBzd2l0Y2ggKGN1cnJlbmN5SWQpIHtcbiAgICBjYXNlIDM3NjpcbiAgICAgIHJldHVybiBTSEVLRUxfQ1VSUkVOQ1k7XG4gICAgY2FzZSA4NDA6XG4gICAgICByZXR1cm4gRE9MTEFSX0NVUlJFTkNZO1xuICAgIGNhc2UgOTc4OlxuICAgICAgcmV0dXJuIEVVUk9fQ1VSUkVOQ1k7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbik6IFRyYW5zYWN0aW9uIHtcbiAgY29uc3QgaXNQZW5kaW5nID0gcmF3VHJhbnNhY3Rpb24ucGF5bWVudERhdGUgPT09IG51bGw7XG4gIGNvbnN0IHByb2Nlc3NlZERhdGUgPSBtb21lbnQoaXNQZW5kaW5nID9cbiAgICByYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUgOlxuICAgIHJhd1RyYW5zYWN0aW9uLnBheW1lbnREYXRlKS50b0lTT1N0cmluZygpO1xuICBjb25zdCBzdGF0dXMgPSBpc1BlbmRpbmcgPyBUcmFuc2FjdGlvblN0YXR1c2VzLlBlbmRpbmcgOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZDtcblxuICBjb25zdCBpbnN0YWxsbWVudHMgPSBnZXRJbnN0YWxsbWVudHNJbmZvKHJhd1RyYW5zYWN0aW9uLmNvbW1lbnRzKTtcbiAgY29uc3QgaWRlbnRpZmllciA9IGluc3RhbGxtZW50cyA/XG4gICAgYCR7cmF3VHJhbnNhY3Rpb24uZGVhbERhdGE/LmFybn1fJHtpbnN0YWxsbWVudHMubnVtYmVyfWAgOlxuICAgIHJhd1RyYW5zYWN0aW9uLmRlYWxEYXRhPy5hcm47XG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBnZXRUcmFuc2FjdGlvblR5cGUocmF3VHJhbnNhY3Rpb24ucGxhbk5hbWUpLFxuICAgIGRhdGU6IG1vbWVudChyYXdUcmFuc2FjdGlvbi5wdXJjaGFzZURhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJvY2Vzc2VkRGF0ZSxcbiAgICBvcmlnaW5hbEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQW1vdW50LFxuICAgIG9yaWdpbmFsQ3VycmVuY3k6IHJhd1RyYW5zYWN0aW9uLm9yaWdpbmFsQ3VycmVuY3ksXG4gICAgY2hhcmdlZEFtb3VudDogLXJhd1RyYW5zYWN0aW9uLmFjdHVhbFBheW1lbnRBbW91bnQsXG4gICAgY2hhcmdlZEN1cnJlbmN5OiBnZXRDaGFyZ2VkQ3VycmVuY3kocmF3VHJhbnNhY3Rpb24ucGF5bWVudEN1cnJlbmN5KSxcbiAgICBkZXNjcmlwdGlvbjogcmF3VHJhbnNhY3Rpb24ubWVyY2hhbnROYW1lLnRyaW0oKSxcbiAgICBtZW1vOiByYXdUcmFuc2FjdGlvbi5jb21tZW50cyxcbiAgICBjYXRlZ29yeTogY2F0ZWdvcmllcy5nZXQocmF3VHJhbnNhY3Rpb24/LmNhdGVnb3J5SWQpLFxuICAgIGluc3RhbGxtZW50cyxcbiAgICBpZGVudGlmaWVyLFxuICAgIHN0YXR1cyxcbiAgfTtcbn1cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0e1xuICByZXN1bHQ/OiB7XG4gICAgdHJhbnNhY3Rpb25zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZmV0Y2hUcmFuc2FjdGlvbnNGb3JNb250aChwYWdlOiBQYWdlLCBtb250aE1vbWVudDogTW9tZW50KSB7XG4gIGNvbnN0IHVybCA9IGdldFRyYW5zYWN0aW9uc1VybChtb250aE1vbWVudCk7XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoR2V0V2l0aGluUGFnZTxTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0PihwYWdlLCB1cmwpO1xuICBjb25zdCB0cmFuc2FjdGlvbnNCeUFjY291bnQ6IFJlY29yZDxzdHJpbmcsIFRyYW5zYWN0aW9uW10+ID0ge307XG5cbiAgaWYgKCFkYXRhIHx8ICFkYXRhLnJlc3VsdCkgcmV0dXJuIHRyYW5zYWN0aW9uc0J5QWNjb3VudDtcblxuICBkYXRhLnJlc3VsdC50cmFuc2FjdGlvbnNcbiAgICAvLyBGaWx0ZXIgb3V0IG5vbi10cmFuc2FjdGlvbnMgd2l0aG91dCBhIHBsYW4gdHlwZSwgZS5nLiBzdW1tYXJ5IHJvd3NcbiAgICAuZmlsdGVyKCh0cmFuc2FjdGlvbikgPT4gISF0cmFuc2FjdGlvbi5wbGFuTmFtZSlcbiAgICAuZm9yRWFjaCgodHJhbnNhY3Rpb246IFNjcmFwZWRUcmFuc2FjdGlvbikgPT4ge1xuICAgICAgaWYgKCF0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXSkge1xuICAgICAgICB0cmFuc2FjdGlvbnNCeUFjY291bnRbdHJhbnNhY3Rpb24uc2hvcnRDYXJkTnVtYmVyXSA9IFtdO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBtYXBwZWRUcmFuc2FjdGlvbiA9IG1hcFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgICAgIHRyYW5zYWN0aW9uc0J5QWNjb3VudFt0cmFuc2FjdGlvbi5zaG9ydENhcmROdW1iZXJdLnB1c2gobWFwcGVkVHJhbnNhY3Rpb24pO1xuICAgIH0pO1xuXG4gIHJldHVybiB0cmFuc2FjdGlvbnNCeUFjY291bnQ7XG59XG5cbmZ1bmN0aW9uIGFkZFJlc3VsdChhbGxSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiwgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPikge1xuICBjb25zdCBjbG9uZWRSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHsgLi4uYWxsUmVzdWx0cyB9O1xuICBPYmplY3Qua2V5cyhyZXN1bHQpLmZvckVhY2goKGFjY291bnROdW1iZXIpID0+IHtcbiAgICBpZiAoIWNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0pIHtcbiAgICAgIGNsb25lZFJlc3VsdHNbYWNjb3VudE51bWJlcl0gPSBbXTtcbiAgICB9XG4gICAgY2xvbmVkUmVzdWx0c1thY2NvdW50TnVtYmVyXS5wdXNoKC4uLnJlc3VsdFthY2NvdW50TnVtYmVyXSk7XG4gIH0pO1xuICByZXR1cm4gY2xvbmVkUmVzdWx0cztcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVRyYW5zYWN0aW9ucyh0eG5zOiBUcmFuc2FjdGlvbltdLCBzdGFydE1vbWVudDogbW9tZW50Lk1vbWVudCwgY29tYmluZUluc3RhbGxtZW50czogYm9vbGVhbiwgZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlOiBib29sZWFuKSB7XG4gIGxldCBjbG9uZWRUeG5zID0gQXJyYXkuZnJvbSh0eG5zKTtcbiAgaWYgKCFjb21iaW5lSW5zdGFsbG1lbnRzKSB7XG4gICAgY2xvbmVkVHhucyA9IGZpeEluc3RhbGxtZW50cyhjbG9uZWRUeG5zKTtcbiAgfVxuICBjbG9uZWRUeG5zID0gc29ydFRyYW5zYWN0aW9uc0J5RGF0ZShjbG9uZWRUeG5zKTtcbiAgY2xvbmVkVHhucyA9IGVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/XG4gICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKGNsb25lZFR4bnMsIHN0YXJ0TW9tZW50LCBjb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKSA6XG4gICAgY2xvbmVkVHhucztcbiAgcmV0dXJuIGNsb25lZFR4bnM7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoVHJhbnNhY3Rpb25zKHBhZ2U6IFBhZ2UsIG9wdGlvbnM6IFNjcmFwZXJPcHRpb25zKSB7XG4gIGNvbnN0IGZ1dHVyZU1vbnRoc1RvU2NyYXBlID0gb3B0aW9ucy5mdXR1cmVNb250aHNUb1NjcmFwZSA/PyAxO1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9ucy5zdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICBjb25zdCBzdGFydE1vbWVudCA9IG1vbWVudC5tYXgoZGVmYXVsdFN0YXJ0TW9tZW50LCBtb21lbnQoc3RhcnREYXRlKSk7XG4gIGNvbnN0IGFsbE1vbnRocyA9IGdldEFsbE1vbnRoTW9tZW50cyhzdGFydE1vbWVudCwgZnV0dXJlTW9udGhzVG9TY3JhcGUpO1xuXG4gIGF3YWl0IGxvYWRDYXRlZ29yaWVzKHBhZ2UpO1xuXG4gIGxldCBhbGxSZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2FjdGlvbltdPiA9IHt9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGFsbE1vbnRocy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zRm9yTW9udGgocGFnZSwgYWxsTW9udGhzW2ldKTtcbiAgICBhbGxSZXN1bHRzID0gYWRkUmVzdWx0KGFsbFJlc3VsdHMsIHJlc3VsdCk7XG4gIH1cblxuICBPYmplY3Qua2V5cyhhbGxSZXN1bHRzKS5mb3JFYWNoKChhY2NvdW50TnVtYmVyKSA9PiB7XG4gICAgbGV0IHR4bnMgPSBhbGxSZXN1bHRzW2FjY291bnROdW1iZXJdO1xuICAgIHR4bnMgPSBwcmVwYXJlVHJhbnNhY3Rpb25zKHR4bnMsIHN0YXJ0TW9tZW50LCBvcHRpb25zLmNvbWJpbmVJbnN0YWxsbWVudHMgfHwgZmFsc2UsXG4gICAgICAob3B0aW9ucy5vdXRwdXREYXRhPy5lbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUgPz8gdHJ1ZSkpO1xuICAgIGFsbFJlc3VsdHNbYWNjb3VudE51bWJlcl0gPSB0eG5zO1xuICB9KTtcblxuICByZXR1cm4gYWxsUmVzdWx0cztcbn1cblxuZnVuY3Rpb24gZ2V0UG9zc2libGVMb2dpblJlc3VsdHMocGFnZTogUGFnZSk6IFBvc3NpYmxlTG9naW5SZXN1bHRzIHtcbiAgY29uc3QgdXJsczogUG9zc2libGVMb2dpblJlc3VsdHMgPSB7fTtcbiAgdXJsc1tMb2dpblJlc3VsdHMuU3VjY2Vzc10gPSBbU1VDQ0VTU19VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF0gPSBbUEFTU1dPUkRfRVhQSVJFRF9VUkxdO1xuICB1cmxzW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdID0gW2FzeW5jICgpID0+IHtcbiAgICByZXR1cm4gZWxlbWVudFByZXNlbnRPblBhZ2UocGFnZSwgSU5WQUxJRF9ERVRBSUxTX1NFTEVDVE9SKTtcbiAgfV07XG4gIHVybHNbTG9naW5SZXN1bHRzLlVua25vd25FcnJvcl0gPSBbYXN5bmMgKCkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50UHJlc2VudE9uUGFnZShwYWdlLCBMT0dJTl9FUlJPUl9TRUxFQ1RPUik7XG4gIH1dO1xuICByZXR1cm4gdXJscztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJyN1c2VyLW5hbWUnLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnI3Bhc3N3b3JkJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7dXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZ307XG5cbmNsYXNzIE1heFNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICcjbG9naW4tcGFzc3dvcmQgI3NlbmQtY29kZScsXG4gICAgICBwcmVBY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKGF3YWl0IGVsZW1lbnRQcmVzZW50T25QYWdlKHRoaXMucGFnZSwgJyNjbG9zZVBvcHVwJykpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjY2xvc2VQb3B1cCcpO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGNsaWNrQnV0dG9uKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJyk7XG4gICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycsIHRydWUpO1xuICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICcjbG9naW4tcGFzc3dvcmQtbGluaycpO1xuICAgICAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQodGhpcy5wYWdlLCAnI2xvZ2luLXBhc3N3b3JkLnRhYi1wYW5lLmFjdGl2ZSBhcHAtdXNlci1sb2dpbi1mb3JtJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJy5wZXJzb25hbC1hcmVhID4gYS5nby10by1wZXJzb25hbC1hcmVhJywgdHJ1ZSk7XG4gICAgICB9LFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4gcmVkaXJlY3RPckRpYWxvZyh0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgICAgd2FpdFVudGlsOiAnZG9tY29udGVudGxvYWRlZCcgYXMgTG9hZEV2ZW50LFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGZldGNoVHJhbnNhY3Rpb25zKHRoaXMucGFnZSwgdGhpcy5vcHRpb25zKTtcbiAgICBjb25zdCBhY2NvdW50cyA9IE9iamVjdC5rZXlzKHJlc3VsdHMpLm1hcCgoYWNjb3VudE51bWJlcikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgICAgdHhuczogcmVzdWx0c1thY2NvdW50TnVtYmVyXSxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWF4U2NyYXBlcjtcbiJdfQ==
@@ -190,9 +190,9 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
190
190
  await this.page.$eval(`a[href*="${OSH_PAGE}"]`, el => el.click());
191
191
  await (0, _elementsInteractions.waitUntilElementFound)(this.page, `a[href*="${TRANSACTIONS_PAGE}"]`);
192
192
  await this.page.$eval(`a[href*="${TRANSACTIONS_PAGE}"]`, el => el.click());
193
- const accountNumberElement = (await this.page.$$('#AccountPicker b'))[0];
194
- const accountNumberHandle = await accountNumberElement.getProperty('title');
195
- const accountNumber = await accountNumberHandle.jsonValue();
193
+ const accountNumberElement = await this.page.$('#dropdownBasic b');
194
+ const accountNumberHandle = await (accountNumberElement === null || accountNumberElement === void 0 ? void 0 : accountNumberElement.getProperty('title'));
195
+ const accountNumber = await (accountNumberHandle === null || accountNumberHandle === void 0 ? void 0 : accountNumberHandle.jsonValue());
196
196
  const response = await Promise.any(TRANSACTIONS_REQUEST_URLS.map(async url => {
197
197
  const request = await this.page.waitForRequest(url);
198
198
  const data = createDataFromRequest(request, this.options.startDate);
@@ -222,4 +222,4 @@ class MizrahiScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
222
222
 
223
223
  var _default = MizrahiScraper;
224
224
  exports.default = _default;
225
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTIiwiUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSIsIkNIQU5HRV9QQVNTV09SRF9VUkwiLCJEQVRFX0ZPUk1BVCIsIk1BWF9ST1dTX1BFUl9SRVFVRVNUIiwidXNlcm5hbWVTZWxlY3RvciIsInBhc3N3b3JkU2VsZWN0b3IiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImludmFsaWRQYXNzd29yZFNlbGVjdG9yIiwiYWZ0ZXJMb2dpblNlbGVjdG9yIiwibG9naW5TcGlubmVyU2VsZWN0b3IiLCJhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IiLCJwZW5kaW5nVHJ4SWRlbnRpZmllcklkIiwiY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSIsImNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIiR4IiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJtaXpyYWhpeHNyZnRva2VuIiwiaGVhZGVycyIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0ZCIsInRleHRDb250ZW50IiwidHhuIiwiYW1vdW50IiwiUGVuZGluZyIsInBvc3RMb2dpbiIsIlByb21pc2UiLCJyYWNlIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCIkZXZhbCIsImVsIiwiY2xpY2siLCJudW1PZkFjY291bnRzIiwiJCQiLCJsZW5ndGgiLCJyZXN1bHRzIiwiaSIsInB1c2giLCJmZXRjaEFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiLCJlIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImdldFBlbmRpbmdUcmFuc2FjdGlvbnMiLCJmcmFtZSIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImlzUGVuZGluZyIsInRoZW4iLCJjYXRjaCIsImFjY291bnROdW1iZXJFbGVtZW50IiwiYWNjb3VudE51bWJlckhhbmRsZSIsImdldFByb3BlcnR5IiwiYWNjb3VudE51bWJlciIsImpzb25WYWx1ZSIsInJlc3BvbnNlIiwiYW55Iiwid2FpdEZvclJlcXVlc3QiLCJvcHRpb25zIiwiaGVhZGVyIiwiRXJyb3IiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImFsbFR4biIsImNvbmNhdCIsImJhbGFuY2UiLCJZaXRyYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7OztBQXlCQSxNQUFNQSxnQkFBZ0IsR0FBRyxtQ0FBekI7QUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLGlDQUF0QztBQUNBLE1BQU1FLFlBQVksR0FBRyxtQ0FBckI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyx1REFBN0I7QUFDQSxNQUFNQyxRQUFRLEdBQUcsNkJBQWpCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsbUNBQTFCO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcsQ0FDL0IsR0FBRUosWUFBYSxxQ0FEZ0IsRUFFL0IsR0FBRUEsWUFBYSxnQ0FGZ0IsQ0FBbEM7QUFJQSxNQUFNSyx5QkFBeUIsR0FBRyw2QkFBbEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxXQUFwQztBQUNBLE1BQU1DLG1C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QkFBbUIsQ0FBQzJGLFlBQUQsQ0FBbEMsQ0F2QjJCLENBeUIzQjs7QUFDQSxVQUFNTSxXQUFXLEdBQUd2SCxjQUFjLENBQUMsS0FBSzRHLE9BQUwsQ0FBYXhHLFNBQWQsQ0FBbEM7QUFDQSxVQUFNb0gsb0JBQW9CLEdBQUdGLE1BQU0sQ0FBQ0YsTUFBUCxDQUFlekQsR0FBRCxJQUFTLHFCQUFPQSxHQUFHLENBQUNyQixJQUFYLEVBQWlCbUYsYUFBakIsQ0FBK0JGLFdBQS9CLENBQXZCLENBQTdCO0FBRUEsVUFBTXBFLFVBQVUsR0FBRyxNQUFNLEtBQUt5QyxzQkFBTCxFQUF6QjtBQUNBLFVBQU04QixNQUFNLEdBQUdGLG9CQUFvQixDQUFDRyxNQUFyQixDQUE0QnhFLFVBQTVCLENBQWY7QUFFQSxXQUFPO0FBQ0xvRCxNQUFBQSxhQURLO0FBRUxoRixNQUFBQSxJQUFJLEVBQUVtRyxNQUZEO0FBR0xFLE1BQUFBLE9BQU8sRUFBRSwyQkFBQ25CLFFBQVEsQ0FBQ1MsSUFBVCxDQUFjN0MsTUFBZiwwREFBQyxzQkFBc0J3RCxLQUF2QjtBQUhKLEtBQVA7QUFLRDs7QUEzRjZFOztlQThGakU1RCxjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRnJhbWUsIFBhZ2UsIFJlcXVlc3QgfSBmcm9tICdwdXBwZXRlZXInO1xuaW1wb3J0IHsgU0hFS0VMX0NVUlJFTkNZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7XG4gIHBhZ2VFdmFsQWxsLCB3YWl0VW50aWxFbGVtZW50RGlzYXBwZWFyLCB3YWl0VW50aWxFbGVtZW50Rm91bmQsIHdhaXRVbnRpbElmcmFtZUZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyB3YWl0Rm9yVXJsIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7XG4gIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvbnNBY2NvdW50LCBUcmFuc2FjdGlvblN0YXR1c2VzLCBUcmFuc2FjdGlvblR5cGVzLFxufSBmcm9tICcuLi90cmFuc2FjdGlvbnMnO1xuaW1wb3J0IHsgQmFzZVNjcmFwZXJXaXRoQnJvd3NlciwgTG9naW5SZXN1bHRzLCBQb3NzaWJsZUxvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY3JhcGVyRXJyb3JUeXBlcyB9IGZyb20gJy4vZXJyb3JzJztcblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIFJlY1R5cGVTcGVjaWZpZWQ6IGJvb2xlYW47XG4gIE1DMDJQZXVsYVRhYUVaOiBzdHJpbmc7XG4gIE1DMDJTY2h1bUVaOiBudW1iZXI7XG4gIE1DMDJBc21haHRhTWVrb3JpdEVaOiBzdHJpbmc7XG4gIE1DMDJUbnVhVGV1ckVaOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb25zUmVzdWx0IHtcbiAgaGVhZGVyOiB7XG4gICAgc3VjY2VzczogYm9vbGVhbjtcbiAgICBtZXNzYWdlczogeyB0ZXh0OiBzdHJpbmcgfVtdO1xuICB9O1xuICBib2R5OiB7XG4gICAgZmllbGRzOiB7XG4gICAgICBZaXRyYTogc3RyaW5nO1xuICAgIH07XG4gICAgdGFibGU6IHtcbiAgICAgIHJvd3M6IFNjcmFwZWRUcmFuc2FjdGlvbltdO1xuICAgIH07XG4gIH07XG59XG5cbmNvbnN0IEJBU0VfV0VCU0lURV9VUkwgPSAnaHR0cHM6Ly93d3cubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IExPR0lOX1VSTCA9IGAke0JBU0VfV0VCU0lURV9VUkx9L2xvZ2luL2luZGV4Lmh0bWwjL2F1dGgtcGFnZS1oZWA7XG5jb25zdCBCQVNFX0FQUF9VUkwgPSAnaHR0cHM6Ly9tdG8ubWl6cmFoaS10ZWZhaG90LmNvLmlsJztcbmNvbnN0IEFGVEVSX0xPR0lOX0JBU0VfVVJMID0gL2h0dHBzOlxcL1xcL210b1xcLm1penJhaGktdGVmYWhvdFxcLmNvXFwuaWxcXC9PbmxpbmVBcHBcXC8uKi87XG5jb25zdCBPU0hfUEFHRSA9ICcvb3NoL2xlZ2FjeS9sZWdhY3ktT3NoLU1haW4nO1xuY29uc3QgVFJBTlNBQ1RJT05TX1BBR0UgPSAnL29zaC9sZWdhY3kvcm9vdC1tYWluLW9zaC1wNDI4TmV3JztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX1VSTFMgPSBbXG4gIGAke0JBU0VfQVBQX1VSTH0vT25saW5lUGlsb3QvYXBpL1NreU9TSC9nZXQ0MjhJbmRleGAsXG4gIGAke0JBU0VfQVBQX1VSTH0vT25saW5lL2FwaS9Ta3lPU0gvZ2V0NDI4SW5kZXhgLFxuXTtcbmNvbnN0IFBFTkRJTkdfVFJBTlNBQ1RJT05TX1BBR0UgPSAnL29zaC9sZWdhY3kvbGVnYWN5LU9zaC1wNDIwJztcbmNvbnN0IFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSA9ICdwNDIwLmFzcHgnO1xuY29uc3QgQ0hBTkdFX1BBU1NXT1JEX1VSTCA9IC9odHRwczpcXC9cXC93d3dcXC5taXpyYWhpLXRlZmFob3RcXC5jb1xcLmlsXFwvbG9naW5cXC9cXHcrXFwvaW5kZXhcXC5odG1sI1xcL2NoYW5nZS1wYXNzLztcbmNvbnN0IERBVEVfRk9STUFUID0gJ0REL01NL1lZWVknO1xuY29uc3QgTUFYX1JPV1NfUEVSX1JFUVVFU1QgPSAxMDAwMDAwMDAwMDtcblxuY29uc3QgdXNlcm5hbWVTZWxlY3RvciA9ICcjZW1haWxEZXNrdG9wSGViJztcbmNvbnN0IHBhc3N3b3JkU2VsZWN0b3IgPSAnI3Bhc3N3b3JkSUREZXNrdG9wSEVCJztcbmNvbnN0IHN1Ym1pdEJ1dHRvblNlbGVjdG9yID0gJy5mb3JtLWRlc2t0b3AgYnV0dG9uJztcbmNvbnN0IGludmFsaWRQYXNzd29yZFNlbGVjdG9yID0gJ2FbaHJlZio9XCJodHRwczovL3NjLm1penJhaGktdGVmYWhvdC5jby5pbC9TQ1NlcnZpY2VzL1NDL1AwMTAuYXNweFwiXSc7XG5jb25zdCBhZnRlckxvZ2luU2VsZWN0b3IgPSAnI2Ryb3Bkb3duQmFzaWMnO1xuY29uc3QgbG9naW5TcGlubmVyU2VsZWN0b3IgPSAnZGl2Lm5neC1vdmVybGF5LmxvYWRpbmctZm9yZWdyb3VuZCc7XG5jb25zdCBhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IgPSAnI0FjY291bnRQaWNrZXIgLml0ZW0nO1xuY29uc3QgcGVuZGluZ1RyeElkZW50aWZpZXJJZCA9ICcjY3RsMDBfQ29udGVudFBsYWNlSG9sZGVyMl9wYW5lbDEnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSA9ICfXoteV15HXqCDXldep15EnO1xuY29uc3QgY2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWUgPSAnQ2hlY2tpbmcgQWNjb3VudCc7XG5cblxuZnVuY3Rpb24gY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogdXNlcm5hbWVTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnVzZXJuYW1lIH0sXG4gICAgeyBzZWxlY3RvcjogcGFzc3dvcmRTZWxlY3RvciwgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKHBhZ2U6IFBhZ2UpOiBQb3NzaWJsZUxvZ2luUmVzdWx0cyB7XG4gIHJldHVybiB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogW0FGVEVSX0xPR0lOX0JBU0VfVVJMLCBhc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiR4KGAvL2EvL3NwYW5bY29udGFpbnMoLiwgXCIke2NoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWV9XCIpIG9yIGNvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJFbmdsaXNoTmFtZX1cIildYCkpXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAoKSA9PiAhIShhd2FpdCBwYWdlLiQoaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtDSEFOR0VfUEFTU1dPUkRfVVJMXSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkZWZhdWx0U3RhcnRNb21lbnQgPSBtb21lbnQoKS5zdWJ0cmFjdCgxLCAneWVhcnMnKTtcbiAgY29uc3Qgc3RhcnREYXRlID0gb3B0aW9uc1N0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gIHJldHVybiBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVEYXRhRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCwgb3B0aW9uc1N0YXJ0RGF0ZTogRGF0ZSkge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShyZXF1ZXN0LnBvc3REYXRhKCkgfHwgJ3t9Jyk7XG5cbiAgZGF0YS5pbkZyb21EYXRlID0gZ2V0U3RhcnRNb21lbnQob3B0aW9uc1N0YXJ0RGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUKTtcbiAgZGF0YS5pblRvRGF0ZSA9IG1vbWVudCgpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEudGFibGUubWF4Um93ID0gTUFYX1JPV1NfUEVSX1JFUVVFU1Q7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIHJldHVybiB7XG4gICAgbWl6cmFoaXhzcmZ0b2tlbjogcmVxdWVzdC5oZWFkZXJzKCkubWl6cmFoaXhzcmZ0b2tlbixcbiAgICAnQ29udGVudC1UeXBlJzogcmVxdWVzdC5oZWFkZXJzKClbJ2NvbnRlbnQtdHlwZSddLFxuICB9O1xufVxuXG5cbmZ1bmN0aW9uIGNvbnZlcnRUcmFuc2FjdGlvbnModHhuczogU2NyYXBlZFRyYW5zYWN0aW9uW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHR4bnMubWFwKChyb3cpID0+IHtcbiAgICBjb25zdCB0eG5EYXRlID0gbW9tZW50KHJvdy5NQzAyUGV1bGFUYWFFWiwgbW9tZW50LkhUTUw1X0ZNVC5EQVRFVElNRV9MT0NBTF9TRUNPTkRTKVxuICAgICAgLnRvSVNPU3RyaW5nKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwsXG4gICAgICBpZGVudGlmaWVyOiByb3cuTUMwMkFzbWFodGFNZWtvcml0RVogPyBwYXJzZUludChyb3cuTUMwMkFzbWFodGFNZWtvcml0RVosIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGRhdGU6IHR4bkRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiB0eG5EYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IHJvdy5NQzAyU2NodW1FWixcbiAgICAgIGRlc2NyaXB0aW9uOiByb3cuTUMwMlRudWFUZXVyRVosXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyhwYWdlOiBGcmFtZSk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgcGFnZUV2YWxBbGwocGFnZSwgJ3RyLnJnUm93JywgW10sICh0cnMpID0+IHtcbiAgICByZXR1cm4gdHJzLm1hcCgodHIpID0+IEFycmF5LmZyb20odHIucXVlcnlTZWxlY3RvckFsbCgndGQnKSwgKHRkOiBIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQpID0+IHRkLnRleHRDb250ZW50IHx8ICcnKSk7XG4gIH0pO1xuXG4gIHJldHVybiBwZW5kaW5nVHhuLm1hcCgodHhuKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG1vbWVudCh0eG5bMF0sICdERC9NTS9ZWScpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgYW1vdW50ID0gcGFyc2VJbnQodHhuWzNdLCAxMCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgZGF0ZSxcbiAgICAgIHByb2Nlc3NlZERhdGU6IGRhdGUsXG4gICAgICBvcmlnaW5hbEFtb3VudDogYW1vdW50LFxuICAgICAgb3JpZ2luYWxDdXJyZW5jeTogU0hFS0VMX0NVUlJFTkNZLFxuICAgICAgY2hhcmdlZEFtb3VudDogYW1vdW50LFxuICAgICAgZGVzY3JpcHRpb246IHR4blsxXSxcbiAgICAgIHN0YXR1czogVHJhbnNhY3Rpb25TdGF0dXNlcy5QZW5kaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwb3N0TG9naW4ocGFnZTogUGFnZSkge1xuICBhd2FpdCBQcm9taXNlLnJhY2UoW1xuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBhZnRlckxvZ2luU2VsZWN0b3IpLFxuICAgIHdhaXRVbnRpbEVsZW1lbnRGb3VuZChwYWdlLCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciksXG4gICAgd2FpdEZvclVybChwYWdlLCBDSEFOR0VfUEFTU1dPUkRfVVJMKSxcbiAgXSk7XG59XG5cbnR5cGUgU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMgPSB7IHVzZXJuYW1lOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcgfTtcblxuY2xhc3MgTWl6cmFoaVNjcmFwZXIgZXh0ZW5kcyBCYXNlU2NyYXBlcldpdGhCcm93c2VyPFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzPiB7XG4gIGdldExvZ2luT3B0aW9ucyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9naW5Vcmw6IExPR0lOX1VSTCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3IsXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudERpc2FwcGVhcih0aGlzLnBhZ2UsIGxvZ2luU3Bpbm5lclNlbGVjdG9yKSxcbiAgICAgIHBvc3RBY3Rpb246IGFzeW5jICgpID0+IHBvc3RMb2dpbih0aGlzLnBhZ2UpLFxuICAgICAgcG9zc2libGVSZXN1bHRzOiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyh0aGlzLnBhZ2UpLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBmZXRjaERhdGEoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKCcjZHJvcGRvd25CYXNpYywgLml0ZW0nLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG5cbiAgICBjb25zdCBudW1PZkFjY291bnRzID0gKGF3YWl0IHRoaXMucGFnZS4kJChhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IpKS5sZW5ndGg7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0czogVHJhbnNhY3Rpb25zQWNjb3VudFtdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtT2ZBY2NvdW50czsgaSArPSAxKSB7XG4gICAgICAgIGlmIChpID4gMCkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGAke2FjY291bnREcm9wRG93bkl0ZW1TZWxlY3Rvcn06bnRoLWNoaWxkKCR7aSArIDF9KWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKChhd2FpdCB0aGlzLmZldGNoQWNjb3VudCgpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGFjY291bnRzOiByZXN1bHRzLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3JUeXBlOiBTY3JhcGVyRXJyb3JUeXBlcy5HZW5lcmljLFxuICAgICAgICBlcnJvck1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRQZW5kaW5nVHJhbnNhY3Rpb25zKCk6IFByb21pc2U8VHJhbnNhY3Rpb25bXT4ge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7UEVORElOR19UUkFOU0FDVElPTlNfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCB3YWl0VW50aWxJZnJhbWVGb3VuZCh0aGlzLnBhZ2UsIChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKFBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSkpO1xuICAgIGNvbnN0IGlzUGVuZGluZyA9IGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZChmcmFtZSwgcGVuZGluZ1RyeElkZW50aWZpZXJJZCkudGhlbigoKSA9PiB0cnVlKS5jYXRjaCgoKSA9PiBmYWxzZSk7XG4gICAgaWYgKCFpc1BlbmRpbmcpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBwZW5kaW5nVHhuID0gYXdhaXQgZXh0cmFjdFBlbmRpbmdUcmFuc2FjdGlvbnMoZnJhbWUpO1xuICAgIHJldHVybiBwZW5kaW5nVHhuO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaEFjY291bnQoKSB7XG4gICAgYXdhaXQgdGhpcy5wYWdlLiRldmFsKGBhW2hyZWYqPVwiJHtPU0hfUEFHRX1cIl1gLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgYGFbaHJlZio9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWApO1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7VFJBTlNBQ1RJT05TX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuXG4gICAgY29uc3QgYWNjb3VudE51bWJlckVsZW1lbnQgPSAoYXdhaXQgdGhpcy5wYWdlLiQkKCcjQWNjb3VudFBpY2tlciBiJykpWzBdO1xuICAgIGNvbnN0IGFjY291bnROdW1iZXJIYW5kbGUgPSBhd2FpdCBhY2NvdW50TnVtYmVyRWxlbWVudC5nZXRQcm9wZXJ0eSgndGl0bGUnKTtcbiAgICBjb25zdCBhY2NvdW50TnVtYmVyID0gKChhd2FpdCBhY2NvdW50TnVtYmVySGFuZGxlLmpzb25WYWx1ZSgpKSBhcyBzdHJpbmcpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQcm9taXNlLmFueShUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTLm1hcChhc3luYyAodXJsKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JSZXF1ZXN0KHVybCk7XG4gICAgICBjb25zdCBkYXRhID0gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3QsIHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgICAgY29uc3QgaGVhZGVycyA9IGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgcmV0dXJuIGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4odGhpcy5wYWdlLCB1cmwsIGRhdGEsIGhlYWRlcnMpO1xuICAgIH0pKTtcblxuXG4gICAgaWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5oZWFkZXIuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24uIFJlc3BvbnNlIG1lc3NhZ2U6ICR7cmVzcG9uc2UgPyByZXNwb25zZS5oZWFkZXIubWVzc2FnZXNbMF0udGV4dCA6ICcnfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGV2YW50Um93cyA9IHJlc3BvbnNlLmJvZHkudGFibGUucm93cy5maWx0ZXIoKHJvdykgPT4gcm93LlJlY1R5cGVTcGVjaWZpZWQpO1xuICAgIGNvbnN0IG9zaFR4biA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmVsZXZhbnRSb3dzKTtcblxuICAgIC8vIHdvcmthcm91bmQgZm9yIGEgYnVnIHdoaWNoIHRoZSBiYW5rJ3MgQVBJIHJldHVybnMgdHJhbnNhY3Rpb25zIGJlZm9yZSB0aGUgcmVxdWVzdGVkIHN0YXJ0IGRhdGVcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IGdldFN0YXJ0TW9tZW50KHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgIGNvbnN0IG9zaFR4bkFmdGVyU3RhcnREYXRlID0gb3NoVHhuLmZpbHRlcigodHhuKSA9PiBtb21lbnQodHhuLmRhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnRNb21lbnQpKTtcblxuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCB0aGlzLmdldFBlbmRpbmdUcmFuc2FjdGlvbnMoKTtcbiAgICBjb25zdCBhbGxUeG4gPSBvc2hUeG5BZnRlclN0YXJ0RGF0ZS5jb25jYXQocGVuZGluZ1R4bik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGFsbFR4bixcbiAgICAgIGJhbGFuY2U6ICtyZXNwb25zZS5ib2R5LmZpZWxkcz8uWWl0cmEsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaXpyYWhpU2NyYXBlcjtcbiJdfQ==
225
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy9taXpyYWhpLnRzIl0sIm5hbWVzIjpbIkJBU0VfV0VCU0lURV9VUkwiLCJMT0dJTl9VUkwiLCJCQVNFX0FQUF9VUkwiLCJBRlRFUl9MT0dJTl9CQVNFX1VSTCIsIk9TSF9QQUdFIiwiVFJBTlNBQ1RJT05TX1BBR0UiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTIiwiUEVORElOR19UUkFOU0FDVElPTlNfUEFHRSIsIlBFTkRJTkdfVFJBTlNBQ1RJT05TX0lGUkFNRSIsIkNIQU5HRV9QQVNTV09SRF9VUkwiLCJEQVRFX0ZPUk1BVCIsIk1BWF9ST1dTX1BFUl9SRVFVRVNUIiwidXNlcm5hbWVTZWxlY3RvciIsInBhc3N3b3JkU2VsZWN0b3IiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsImludmFsaWRQYXNzd29yZFNlbGVjdG9yIiwiYWZ0ZXJMb2dpblNlbGVjdG9yIiwibG9naW5TcGlubmVyU2VsZWN0b3IiLCJhY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3IiLCJwZW5kaW5nVHJ4SWRlbnRpZmllcklkIiwiY2hlY2tpbmdBY2NvdW50VGFiSGVicmV3TmFtZSIsImNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiZ2V0UG9zc2libGVMb2dpblJlc3VsdHMiLCJwYWdlIiwiTG9naW5SZXN1bHRzIiwiU3VjY2VzcyIsIiR4IiwiSW52YWxpZFBhc3N3b3JkIiwiJCIsIkNoYW5nZVBhc3N3b3JkIiwiZ2V0U3RhcnRNb21lbnQiLCJvcHRpb25zU3RhcnREYXRlIiwiZGVmYXVsdFN0YXJ0TW9tZW50Iiwic3VidHJhY3QiLCJzdGFydERhdGUiLCJ0b0RhdGUiLCJtb21lbnQiLCJtYXgiLCJjcmVhdGVEYXRhRnJvbVJlcXVlc3QiLCJyZXF1ZXN0IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsInBvc3REYXRhIiwiaW5Gcm9tRGF0ZSIsImZvcm1hdCIsImluVG9EYXRlIiwidGFibGUiLCJtYXhSb3ciLCJjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QiLCJtaXpyYWhpeHNyZnRva2VuIiwiaGVhZGVycyIsImNvbnZlcnRUcmFuc2FjdGlvbnMiLCJ0eG5zIiwibWFwIiwicm93IiwidHhuRGF0ZSIsIk1DMDJQZXVsYVRhYUVaIiwiSFRNTDVfRk1UIiwiREFURVRJTUVfTE9DQUxfU0VDT05EUyIsInRvSVNPU3RyaW5nIiwidHlwZSIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJpZGVudGlmaWVyIiwiTUMwMkFzbWFodGFNZWtvcml0RVoiLCJwYXJzZUludCIsInVuZGVmaW5lZCIsImRhdGUiLCJwcm9jZXNzZWREYXRlIiwib3JpZ2luYWxBbW91bnQiLCJNQzAyU2NodW1FWiIsIm9yaWdpbmFsQ3VycmVuY3kiLCJTSEVLRUxfQ1VSUkVOQ1kiLCJjaGFyZ2VkQW1vdW50IiwiZGVzY3JpcHRpb24iLCJNQzAyVG51YVRldXJFWiIsInN0YXR1cyIsIlRyYW5zYWN0aW9uU3RhdHVzZXMiLCJDb21wbGV0ZWQiLCJleHRyYWN0UGVuZGluZ1RyYW5zYWN0aW9ucyIsInBlbmRpbmdUeG4iLCJ0cnMiLCJ0ciIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJ0ZCIsInRleHRDb250ZW50IiwidHhuIiwiYW1vdW50IiwiUGVuZGluZyIsInBvc3RMb2dpbiIsIlByb21pc2UiLCJyYWNlIiwiTWl6cmFoaVNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJjaGVja1JlYWRpbmVzcyIsInBvc3RBY3Rpb24iLCJwb3NzaWJsZVJlc3VsdHMiLCJmZXRjaERhdGEiLCIkZXZhbCIsImVsIiwiY2xpY2siLCJudW1PZkFjY291bnRzIiwiJCQiLCJsZW5ndGgiLCJyZXN1bHRzIiwiaSIsInB1c2giLCJmZXRjaEFjY291bnQiLCJzdWNjZXNzIiwiYWNjb3VudHMiLCJlIiwiZXJyb3JUeXBlIiwiU2NyYXBlckVycm9yVHlwZXMiLCJHZW5lcmljIiwiZXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImdldFBlbmRpbmdUcmFuc2FjdGlvbnMiLCJmcmFtZSIsImYiLCJ1cmwiLCJpbmNsdWRlcyIsImlzUGVuZGluZyIsInRoZW4iLCJjYXRjaCIsImFjY291bnROdW1iZXJFbGVtZW50IiwiYWNjb3VudE51bWJlckhhbmRsZSIsImdldFByb3BlcnR5IiwiYWNjb3VudE51bWJlciIsImpzb25WYWx1ZSIsInJlc3BvbnNlIiwiYW55Iiwid2FpdEZvclJlcXVlc3QiLCJvcHRpb25zIiwiaGVhZGVyIiwiRXJyb3IiLCJtZXNzYWdlcyIsInRleHQiLCJyZWxldmFudFJvd3MiLCJib2R5Iiwicm93cyIsImZpbHRlciIsIlJlY1R5cGVTcGVjaWZpZWQiLCJvc2hUeG4iLCJzdGFydE1vbWVudCIsIm9zaFR4bkFmdGVyU3RhcnREYXRlIiwiaXNTYW1lT3JBZnRlciIsImFsbFR4biIsImNvbmNhdCIsImJhbGFuY2UiLCJZaXRyYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFHQTs7QUFDQTs7OztBQXlCQSxNQUFNQSxnQkFBZ0IsR0FBRyxtQ0FBekI7QUFDQSxNQUFNQyxTQUFTLEdBQUksR0FBRUQsZ0JBQWlCLGlDQUF0QztBQUNBLE1BQU1FLFlBQVksR0FBRyxtQ0FBckI7QUFDQSxNQUFNQyxvQkFBb0IsR0FBRyx1REFBN0I7QUFDQSxNQUFNQyxRQUFRLEdBQUcsNkJBQWpCO0FBQ0EsTUFBTUMsaUJBQWlCLEdBQUcsbUNBQTFCO0FBQ0EsTUFBTUMseUJBQXlCLEdBQUcsQ0FDL0IsR0FBRUosWUFBYSxxQ0FEZ0IsRUFFL0IsR0FBRUEsWUFBYSxnQ0FGZ0IsQ0FBbEM7QUFJQSxNQUFNSyx5QkFBeUIsR0FBRyw2QkFBbEM7QUFDQSxNQUFNQywyQkFBMkIsR0FBRyxXQUFwQztBQUNBLE1BQU1DLG1C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Z0JBQTdDLENBQXJCO0FBQ0EsVUFBTUMsTUFBTSxHQUFHaEcsbUJBQW1CLENBQUMyRixZQUFELENBQWxDLENBdkIyQixDQXlCM0I7O0FBQ0EsVUFBTU0sV0FBVyxHQUFHdkgsY0FBYyxDQUFDLEtBQUs0RyxPQUFMLENBQWF4RyxTQUFkLENBQWxDO0FBQ0EsVUFBTW9ILG9CQUFvQixHQUFHRixNQUFNLENBQUNGLE1BQVAsQ0FBZXpELEdBQUQsSUFBUyxxQkFBT0EsR0FBRyxDQUFDckIsSUFBWCxFQUFpQm1GLGFBQWpCLENBQStCRixXQUEvQixDQUF2QixDQUE3QjtBQUVBLFVBQU1wRSxVQUFVLEdBQUcsTUFBTSxLQUFLeUMsc0JBQUwsRUFBekI7QUFDQSxVQUFNOEIsTUFBTSxHQUFHRixvQkFBb0IsQ0FBQ0csTUFBckIsQ0FBNEJ4RSxVQUE1QixDQUFmO0FBRUEsV0FBTztBQUNMb0QsTUFBQUEsYUFESztBQUVMaEYsTUFBQUEsSUFBSSxFQUFFbUcsTUFGRDtBQUdMRSxNQUFBQSxPQUFPLEVBQUUsMkJBQUNuQixRQUFRLENBQUNTLElBQVQsQ0FBYzdDLE1BQWYsMERBQUMsc0JBQXNCd0QsS0FBdkI7QUFISixLQUFQO0FBS0Q7O0FBM0Y2RTs7ZUE4RmpFNUQsYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZyYW1lLCBQYWdlLCBSZXF1ZXN0IH0gZnJvbSAncHVwcGV0ZWVyJztcbmltcG9ydCB7IFNIRUtFTF9DVVJSRU5DWSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBwYWdlRXZhbEFsbCwgd2FpdFVudGlsRWxlbWVudERpc2FwcGVhciwgd2FpdFVudGlsRWxlbWVudEZvdW5kLCB3YWl0VW50aWxJZnJhbWVGb3VuZCxcbn0gZnJvbSAnLi4vaGVscGVycy9lbGVtZW50cy1pbnRlcmFjdGlvbnMnO1xuaW1wb3J0IHsgZmV0Y2hQb3N0V2l0aGluUGFnZSB9IGZyb20gJy4uL2hlbHBlcnMvZmV0Y2gnO1xuaW1wb3J0IHsgd2FpdEZvclVybCB9IGZyb20gJy4uL2hlbHBlcnMvbmF2aWdhdGlvbic7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25zQWNjb3VudCwgVHJhbnNhY3Rpb25TdGF0dXNlcywgVHJhbnNhY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luUmVzdWx0cywgUG9zc2libGVMb2dpblJlc3VsdHMgfSBmcm9tICcuL2Jhc2Utc2NyYXBlci13aXRoLWJyb3dzZXInO1xuaW1wb3J0IHsgU2NyYXBlckVycm9yVHlwZXMgfSBmcm9tICcuL2Vycm9ycyc7XG5cbmludGVyZmFjZSBTY3JhcGVkVHJhbnNhY3Rpb24ge1xuICBSZWNUeXBlU3BlY2lmaWVkOiBib29sZWFuO1xuICBNQzAyUGV1bGFUYWFFWjogc3RyaW5nO1xuICBNQzAyU2NodW1FWjogbnVtYmVyO1xuICBNQzAyQXNtYWh0YU1la29yaXRFWjogc3RyaW5nO1xuICBNQzAyVG51YVRldXJFWjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdCB7XG4gIGhlYWRlcjoge1xuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgbWVzc2FnZXM6IHsgdGV4dDogc3RyaW5nIH1bXTtcbiAgfTtcbiAgYm9keToge1xuICAgIGZpZWxkczoge1xuICAgICAgWWl0cmE6IHN0cmluZztcbiAgICB9O1xuICAgIHRhYmxlOiB7XG4gICAgICByb3dzOiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgICB9O1xuICB9O1xufVxuXG5jb25zdCBCQVNFX1dFQlNJVEVfVVJMID0gJ2h0dHBzOi8vd3d3Lm1penJhaGktdGVmYWhvdC5jby5pbCc7XG5jb25zdCBMT0dJTl9VUkwgPSBgJHtCQVNFX1dFQlNJVEVfVVJMfS9sb2dpbi9pbmRleC5odG1sIy9hdXRoLXBhZ2UtaGVgO1xuY29uc3QgQkFTRV9BUFBfVVJMID0gJ2h0dHBzOi8vbXRvLm1penJhaGktdGVmYWhvdC5jby5pbCc7XG5jb25zdCBBRlRFUl9MT0dJTl9CQVNFX1VSTCA9IC9odHRwczpcXC9cXC9tdG9cXC5taXpyYWhpLXRlZmFob3RcXC5jb1xcLmlsXFwvT25saW5lQXBwXFwvLiovO1xuY29uc3QgT1NIX1BBR0UgPSAnL29zaC9sZWdhY3kvbGVnYWN5LU9zaC1NYWluJztcbmNvbnN0IFRSQU5TQUNUSU9OU19QQUdFID0gJy9vc2gvbGVnYWN5L3Jvb3QtbWFpbi1vc2gtcDQyOE5ldyc7XG5jb25zdCBUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTID0gW1xuICBgJHtCQVNFX0FQUF9VUkx9L09ubGluZVBpbG90L2FwaS9Ta3lPU0gvZ2V0NDI4SW5kZXhgLFxuICBgJHtCQVNFX0FQUF9VUkx9L09ubGluZS9hcGkvU2t5T1NIL2dldDQyOEluZGV4YCxcbl07XG5jb25zdCBQRU5ESU5HX1RSQU5TQUNUSU9OU19QQUdFID0gJy9vc2gvbGVnYWN5L2xlZ2FjeS1Pc2gtcDQyMCc7XG5jb25zdCBQRU5ESU5HX1RSQU5TQUNUSU9OU19JRlJBTUUgPSAncDQyMC5hc3B4JztcbmNvbnN0IENIQU5HRV9QQVNTV09SRF9VUkwgPSAvaHR0cHM6XFwvXFwvd3d3XFwubWl6cmFoaS10ZWZhaG90XFwuY29cXC5pbFxcL2xvZ2luXFwvXFx3K1xcL2luZGV4XFwuaHRtbCNcXC9jaGFuZ2UtcGFzcy87XG5jb25zdCBEQVRFX0ZPUk1BVCA9ICdERC9NTS9ZWVlZJztcbmNvbnN0IE1BWF9ST1dTX1BFUl9SRVFVRVNUID0gMTAwMDAwMDAwMDA7XG5cbmNvbnN0IHVzZXJuYW1lU2VsZWN0b3IgPSAnI2VtYWlsRGVza3RvcEhlYic7XG5jb25zdCBwYXNzd29yZFNlbGVjdG9yID0gJyNwYXNzd29yZElERGVza3RvcEhFQic7XG5jb25zdCBzdWJtaXRCdXR0b25TZWxlY3RvciA9ICcuZm9ybS1kZXNrdG9wIGJ1dHRvbic7XG5jb25zdCBpbnZhbGlkUGFzc3dvcmRTZWxlY3RvciA9ICdhW2hyZWYqPVwiaHR0cHM6Ly9zYy5taXpyYWhpLXRlZmFob3QuY28uaWwvU0NTZXJ2aWNlcy9TQy9QMDEwLmFzcHhcIl0nO1xuY29uc3QgYWZ0ZXJMb2dpblNlbGVjdG9yID0gJyNkcm9wZG93bkJhc2ljJztcbmNvbnN0IGxvZ2luU3Bpbm5lclNlbGVjdG9yID0gJ2Rpdi5uZ3gtb3ZlcmxheS5sb2FkaW5nLWZvcmVncm91bmQnO1xuY29uc3QgYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yID0gJyNBY2NvdW50UGlja2VyIC5pdGVtJztcbmNvbnN0IHBlbmRpbmdUcnhJZGVudGlmaWVySWQgPSAnI2N0bDAwX0NvbnRlbnRQbGFjZUhvbGRlcjJfcGFuZWwxJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkhlYnJld05hbWUgPSAn16LXldeR16gg15XXqdeRJztcbmNvbnN0IGNoZWNraW5nQWNjb3VudFRhYkVuZ2xpc2hOYW1lID0gJ0NoZWNraW5nIEFjY291bnQnO1xuXG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6IHVzZXJuYW1lU2VsZWN0b3IsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6IHBhc3N3b3JkU2VsZWN0b3IsIHZhbHVlOiBjcmVkZW50aWFscy5wYXNzd29yZCB9LFxuICBdO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cyhwYWdlOiBQYWdlKTogUG9zc2libGVMb2dpblJlc3VsdHMge1xuICByZXR1cm4ge1xuICAgIFtMb2dpblJlc3VsdHMuU3VjY2Vzc106IFtBRlRFUl9MT0dJTl9CQVNFX1VSTCwgYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4keChgLy9hLy9zcGFuW2NvbnRhaW5zKC4sIFwiJHtjaGVja2luZ0FjY291bnRUYWJIZWJyZXdOYW1lfVwiKSBvciBjb250YWlucyguLCBcIiR7Y2hlY2tpbmdBY2NvdW50VGFiRW5nbGlzaE5hbWV9XCIpXWApKV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKCkgPT4gISEoYXdhaXQgcGFnZS4kKGludmFsaWRQYXNzd29yZFNlbGVjdG9yKSldLFxuICAgIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbQ0hBTkdFX1BBU1NXT1JEX1VSTF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJyk7XG4gIGNvbnN0IHN0YXJ0RGF0ZSA9IG9wdGlvbnNTdGFydERhdGUgfHwgZGVmYXVsdFN0YXJ0TW9tZW50LnRvRGF0ZSgpO1xuICByZXR1cm4gbW9tZW50Lm1heChkZWZhdWx0U3RhcnRNb21lbnQsIG1vbWVudChzdGFydERhdGUpKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3Q6IFJlcXVlc3QsIG9wdGlvbnNTdGFydERhdGU6IERhdGUpIHtcbiAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UocmVxdWVzdC5wb3N0RGF0YSgpIHx8ICd7fScpO1xuXG4gIGRhdGEuaW5Gcm9tRGF0ZSA9IGdldFN0YXJ0TW9tZW50KG9wdGlvbnNTdGFydERhdGUpLmZvcm1hdChEQVRFX0ZPUk1BVCk7XG4gIGRhdGEuaW5Ub0RhdGUgPSBtb21lbnQoKS5mb3JtYXQoREFURV9GT1JNQVQpO1xuICBkYXRhLnRhYmxlLm1heFJvdyA9IE1BWF9ST1dTX1BFUl9SRVFVRVNUO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVIZWFkZXJzRnJvbVJlcXVlc3QocmVxdWVzdDogUmVxdWVzdCkge1xuICByZXR1cm4ge1xuICAgIG1penJhaGl4c3JmdG9rZW46IHJlcXVlc3QuaGVhZGVycygpLm1penJhaGl4c3JmdG9rZW4sXG4gICAgJ0NvbnRlbnQtVHlwZSc6IHJlcXVlc3QuaGVhZGVycygpWydjb250ZW50LXR5cGUnXSxcbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNhY3Rpb25zKHR4bnM6IFNjcmFwZWRUcmFuc2FjdGlvbltdKTogVHJhbnNhY3Rpb25bXSB7XG4gIHJldHVybiB0eG5zLm1hcCgocm93KSA9PiB7XG4gICAgY29uc3QgdHhuRGF0ZSA9IG1vbWVudChyb3cuTUMwMlBldWxhVGFhRVosIG1vbWVudC5IVE1MNV9GTVQuREFURVRJTUVfTE9DQUxfU0VDT05EUylcbiAgICAgIC50b0lTT1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IFRyYW5zYWN0aW9uVHlwZXMuTm9ybWFsLFxuICAgICAgaWRlbnRpZmllcjogcm93Lk1DMDJBc21haHRhTWVrb3JpdEVaID8gcGFyc2VJbnQocm93Lk1DMDJBc21haHRhTWVrb3JpdEVaLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBkYXRlOiB0eG5EYXRlLFxuICAgICAgcHJvY2Vzc2VkRGF0ZTogdHhuRGF0ZSxcbiAgICAgIG9yaWdpbmFsQW1vdW50OiByb3cuTUMwMlNjaHVtRVosXG4gICAgICBvcmlnaW5hbEN1cnJlbmN5OiBTSEVLRUxfQ1VSUkVOQ1ksXG4gICAgICBjaGFyZ2VkQW1vdW50OiByb3cuTUMwMlNjaHVtRVosXG4gICAgICBkZXNjcmlwdGlvbjogcm93Lk1DMDJUbnVhVGV1ckVaLFxuICAgICAgc3RhdHVzOiBUcmFuc2FjdGlvblN0YXR1c2VzLkNvbXBsZXRlZCxcbiAgICB9O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdFBlbmRpbmdUcmFuc2FjdGlvbnMocGFnZTogRnJhbWUpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IHBhZ2VFdmFsQWxsKHBhZ2UsICd0ci5yZ1JvdycsIFtdLCAodHJzKSA9PiB7XG4gICAgcmV0dXJuIHRycy5tYXAoKHRyKSA9PiBBcnJheS5mcm9tKHRyLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkJyksICh0ZDogSFRNTFRhYmxlRGF0YUNlbGxFbGVtZW50KSA9PiB0ZC50ZXh0Q29udGVudCB8fCAnJykpO1xuICB9KTtcblxuICByZXR1cm4gcGVuZGluZ1R4bi5tYXAoKHR4bikgPT4ge1xuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodHhuWzBdLCAnREQvTU0vWVknKS50b0lTT1N0cmluZygpO1xuICAgIGNvbnN0IGFtb3VudCA9IHBhcnNlSW50KHR4blszXSwgMTApO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBUcmFuc2FjdGlvblR5cGVzLk5vcm1hbCxcbiAgICAgIGRhdGUsXG4gICAgICBwcm9jZXNzZWREYXRlOiBkYXRlLFxuICAgICAgb3JpZ2luYWxBbW91bnQ6IGFtb3VudCxcbiAgICAgIG9yaWdpbmFsQ3VycmVuY3k6IFNIRUtFTF9DVVJSRU5DWSxcbiAgICAgIGNoYXJnZWRBbW91bnQ6IGFtb3VudCxcbiAgICAgIGRlc2NyaXB0aW9uOiB0eG5bMV0sXG4gICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuUGVuZGluZyxcbiAgICB9O1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcG9zdExvZ2luKHBhZ2U6IFBhZ2UpIHtcbiAgYXdhaXQgUHJvbWlzZS5yYWNlKFtcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgYWZ0ZXJMb2dpblNlbGVjdG9yKSxcbiAgICB3YWl0VW50aWxFbGVtZW50Rm91bmQocGFnZSwgaW52YWxpZFBhc3N3b3JkU2VsZWN0b3IpLFxuICAgIHdhaXRGb3JVcmwocGFnZSwgQ0hBTkdFX1BBU1NXT1JEX1VSTCksXG4gIF0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIE1penJhaGlTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBnZXRMb2dpbk9wdGlvbnMoY3JlZGVudGlhbHM6IFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBMT0dJTl9VUkwsXG4gICAgICBmaWVsZHM6IGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzKSxcbiAgICAgIHN1Ym1pdEJ1dHRvblNlbGVjdG9yLFxuICAgICAgY2hlY2tSZWFkaW5lc3M6IGFzeW5jICgpID0+IHdhaXRVbnRpbEVsZW1lbnREaXNhcHBlYXIodGhpcy5wYWdlLCBsb2dpblNwaW5uZXJTZWxlY3RvciksXG4gICAgICBwb3N0QWN0aW9uOiBhc3luYyAoKSA9PiBwb3N0TG9naW4odGhpcy5wYWdlKSxcbiAgICAgIHBvc3NpYmxlUmVzdWx0czogZ2V0UG9zc2libGVMb2dpblJlc3VsdHModGhpcy5wYWdlKSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCkge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbCgnI2Ryb3Bkb3duQmFzaWMsIC5pdGVtJywgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuXG4gICAgY29uc3QgbnVtT2ZBY2NvdW50cyA9IChhd2FpdCB0aGlzLnBhZ2UuJCQoYWNjb3VudERyb3BEb3duSXRlbVNlbGVjdG9yKSkubGVuZ3RoO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdHM6IFRyYW5zYWN0aW9uc0FjY291bnRbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU9mQWNjb3VudHM7IGkgKz0gMSkge1xuICAgICAgICBpZiAoaSA+IDApIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoJyNkcm9wZG93bkJhc2ljLCAuaXRlbScsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgJHthY2NvdW50RHJvcERvd25JdGVtU2VsZWN0b3J9Om50aC1jaGlsZCgke2kgKyAxfSlgLCAoZWwpID0+IChlbCBhcyBIVE1MRWxlbWVudCkuY2xpY2soKSk7XG4gICAgICAgIHJlc3VsdHMucHVzaCgoYXdhaXQgdGhpcy5mZXRjaEFjY291bnQoKSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBhY2NvdW50czogcmVzdWx0cyxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yVHlwZTogU2NyYXBlckVycm9yVHlwZXMuR2VuZXJpYyxcbiAgICAgICAgZXJyb3JNZXNzYWdlOiBlLm1lc3NhZ2UsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGVuZGluZ1RyYW5zYWN0aW9ucygpOiBQcm9taXNlPFRyYW5zYWN0aW9uW10+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke1BFTkRJTkdfVFJBTlNBQ1RJT05TX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgd2FpdFVudGlsSWZyYW1lRm91bmQodGhpcy5wYWdlLCAoZikgPT4gZi51cmwoKS5pbmNsdWRlcyhQRU5ESU5HX1RSQU5TQUNUSU9OU19JRlJBTUUpKTtcbiAgICBjb25zdCBpc1BlbmRpbmcgPSBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsIHBlbmRpbmdUcnhJZGVudGlmaWVySWQpLnRoZW4oKCkgPT4gdHJ1ZSkuY2F0Y2goKCkgPT4gZmFsc2UpO1xuICAgIGlmICghaXNQZW5kaW5nKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcGVuZGluZ1R4biA9IGF3YWl0IGV4dHJhY3RQZW5kaW5nVHJhbnNhY3Rpb25zKGZyYW1lKTtcbiAgICByZXR1cm4gcGVuZGluZ1R4bjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZmV0Y2hBY2NvdW50KCkge1xuICAgIGF3YWl0IHRoaXMucGFnZS4kZXZhbChgYVtocmVmKj1cIiR7T1NIX1BBR0V9XCJdYCwgKGVsKSA9PiAoZWwgYXMgSFRNTEVsZW1lbnQpLmNsaWNrKCkpO1xuICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsIGBhW2hyZWYqPVwiJHtUUkFOU0FDVElPTlNfUEFHRX1cIl1gKTtcbiAgICBhd2FpdCB0aGlzLnBhZ2UuJGV2YWwoYGFbaHJlZio9XCIke1RSQU5TQUNUSU9OU19QQUdFfVwiXWAsIChlbCkgPT4gKGVsIGFzIEhUTUxFbGVtZW50KS5jbGljaygpKTtcblxuICAgIGNvbnN0IGFjY291bnROdW1iZXJFbGVtZW50ID0gYXdhaXQgdGhpcy5wYWdlLiQoJyNkcm9wZG93bkJhc2ljIGInKTtcbiAgICBjb25zdCBhY2NvdW50TnVtYmVySGFuZGxlID0gYXdhaXQgYWNjb3VudE51bWJlckVsZW1lbnQ/LmdldFByb3BlcnR5KCd0aXRsZScpO1xuICAgIGNvbnN0IGFjY291bnROdW1iZXIgPSAoKGF3YWl0IGFjY291bnROdW1iZXJIYW5kbGU/Lmpzb25WYWx1ZSgpKSBhcyBzdHJpbmcpO1xuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBQcm9taXNlLmFueShUUkFOU0FDVElPTlNfUkVRVUVTVF9VUkxTLm1hcChhc3luYyAodXJsKSA9PiB7XG4gICAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5wYWdlLndhaXRGb3JSZXF1ZXN0KHVybCk7XG4gICAgICBjb25zdCBkYXRhID0gY3JlYXRlRGF0YUZyb21SZXF1ZXN0KHJlcXVlc3QsIHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgICAgY29uc3QgaGVhZGVycyA9IGNyZWF0ZUhlYWRlcnNGcm9tUmVxdWVzdChyZXF1ZXN0KTtcblxuICAgICAgcmV0dXJuIGZldGNoUG9zdFdpdGhpblBhZ2U8U2NyYXBlZFRyYW5zYWN0aW9uc1Jlc3VsdD4odGhpcy5wYWdlLCB1cmwsIGRhdGEsIGhlYWRlcnMpO1xuICAgIH0pKTtcblxuXG4gICAgaWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5oZWFkZXIuc3VjY2VzcyA9PT0gZmFsc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgZmV0Y2hpbmcgdHJhbnNhY3Rpb24uIFJlc3BvbnNlIG1lc3NhZ2U6ICR7cmVzcG9uc2UgPyByZXNwb25zZS5oZWFkZXIubWVzc2FnZXNbMF0udGV4dCA6ICcnfWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGV2YW50Um93cyA9IHJlc3BvbnNlLmJvZHkudGFibGUucm93cy5maWx0ZXIoKHJvdykgPT4gcm93LlJlY1R5cGVTcGVjaWZpZWQpO1xuICAgIGNvbnN0IG9zaFR4biA9IGNvbnZlcnRUcmFuc2FjdGlvbnMocmVsZXZhbnRSb3dzKTtcblxuICAgIC8vIHdvcmthcm91bmQgZm9yIGEgYnVnIHdoaWNoIHRoZSBiYW5rJ3MgQVBJIHJldHVybnMgdHJhbnNhY3Rpb25zIGJlZm9yZSB0aGUgcmVxdWVzdGVkIHN0YXJ0IGRhdGVcbiAgICBjb25zdCBzdGFydE1vbWVudCA9IGdldFN0YXJ0TW9tZW50KHRoaXMub3B0aW9ucy5zdGFydERhdGUpO1xuICAgIGNvbnN0IG9zaFR4bkFmdGVyU3RhcnREYXRlID0gb3NoVHhuLmZpbHRlcigodHhuKSA9PiBtb21lbnQodHhuLmRhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnRNb21lbnQpKTtcblxuICAgIGNvbnN0IHBlbmRpbmdUeG4gPSBhd2FpdCB0aGlzLmdldFBlbmRpbmdUcmFuc2FjdGlvbnMoKTtcbiAgICBjb25zdCBhbGxUeG4gPSBvc2hUeG5BZnRlclN0YXJ0RGF0ZS5jb25jYXQocGVuZGluZ1R4bik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudE51bWJlcixcbiAgICAgIHR4bnM6IGFsbFR4bixcbiAgICAgIGJhbGFuY2U6ICtyZXNwb25zZS5ib2R5LmZpZWxkcz8uWWl0cmEsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBNaXpyYWhpU2NyYXBlcjtcbiJdfQ==
@@ -106,20 +106,17 @@ function createLoginFields(credentials) {
106
106
  }
107
107
 
108
108
  function convertParsedDataToTransactions(parsedData) {
109
- return parsedData.flatMap(monthData => monthData.result.bankAccounts).flatMap(accounts => accounts.debitDates).flatMap(debitDate => debitDate.transactions).map(transaction => {
109
+ const bankAccounts = parsedData.flatMap(monthData => monthData.result.bankAccounts);
110
+ const regularDebitDays = bankAccounts.flatMap(accounts => accounts.debitDates);
111
+ const immediateDebitDays = bankAccounts.flatMap(accounts => accounts.immidiateDebits.debitDays);
112
+ return [...regularDebitDays, ...immediateDebitDays].flatMap(debitDate => debitDate.transactions).map(transaction => {
110
113
  const installments = transaction.curPaymentNum && transaction.numOfPayments && {
111
114
  number: transaction.curPaymentNum,
112
115
  total: transaction.numOfPayments
113
116
  } || undefined;
114
117
  const date = (0, _moment.default)(transaction.trnPurchaseDate);
115
- let chargedAmount = transaction.amtBeforeConvAndIndex * -1;
116
- let originalAmount = transaction.trnAmt * -1;
117
-
118
- if (transaction.trnTypeCode === trnTypeCode.credit) {
119
- chargedAmount = transaction.amtBeforeConvAndIndex;
120
- originalAmount = transaction.trnAmt;
121
- }
122
-
118
+ const chargedAmount = transaction.amtBeforeConvAndIndex * -1;
119
+ const originalAmount = transaction.trnAmt * -1;
123
120
  const result = {
124
121
  identifier: transaction.trnIntId,
125
122
  type: [trnTypeCode.regular, trnTypeCode.standingOrder].includes(transaction.trnTypeCode) ? _transactions2.TransactionTypes.Normal : _transactions2.TransactionTypes.Installments,
@@ -297,4 +294,4 @@ class VisaCalScraper extends _baseScraperWithBrowser.BaseScraperWithBrowser {
297
294
 
298
295
  var _default = VisaCalScraper;
299
296
  exports.default = _default;
300
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCIsIkludmFsaWRQYXNzd29yZE1lc3NhZ2UiLCJkZWJ1ZyIsInRyblR5cGVDb2RlIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyIsInBhcnNlZERhdGEiLCJmbGF0TWFwIiwibW9udGhEYXRhIiwicmVzdWx0IiwiYmFua0FjY291bnRzIiwiYWNjb3VudHMiLCJkZWJpdERhdGVzIiwiZGViaXREYXRlIiwidHJhbnNhY3Rpb25zIiwibWFwIiwidHJhbnNhY3Rpb24iLCJpbnN0YWxsbWVudHMiLCJjdXJQYXltZW50TnVtIiwibnVtT2ZQYXltZW50cyIsIm51bWJlciIsInRvdGFsIiwidW5kZWZpbmVkIiwiZGF0ZSIsInRyblB1cmNoYXNlRGF0ZSIsImNoYXJnZWRBbW91bnQiLCJhbXRCZWZvcmVDb252QW5kSW5kZXgiLCJvcmlnaW5hbEFtb3VudCIsInRybkFtdCIsImNyZWRpdCIsImlkZW50aWZpZXIiLCJ0cm5JbnRJZCIsInR5cGUiLCJyZWd1bGFyIiwic3RhbmRpbmdPcmRlciIsIlRyYW5zYWN0aW9uVHlwZXMiLCJOb3JtYWwiLCJJbnN0YWxsbWVudHMiLCJzdGF0dXMiLCJUcmFuc2FjdGlvblN0YXR1c2VzIiwiQ29tcGxldGVkIiwiYWRkIiwidG9JU09TdHJpbmciLCJwcm9jZXNzZWREYXRlIiwiRGF0ZSIsImRlYkNyZERhdGUiLCJvcmlnaW5hbEN1cnJlbmN5IiwidHJuQ3VycmVuY3lTeW1ib2wiLCJjaGFyZ2VkQ3VycmVuY3kiLCJkZWJDcmRDdXJyZW5jeVN5bWJvbCIsImRlc2NyaXB0aW9uIiwibWVyY2hhbnROYW1lIiwibWVtbyIsInRyYW5zVHlwZUNvbW1lbnREZXRhaWxzIiwidG9TdHJpbmciLCJjYXRlZ29yeSIsImJyYW5jaENvZGVEZXNjIiwiVmlzYUNhbFNjcmFwZXIiLCJCYXNlU2NyYXBlcldpdGhCcm93c2VyIiwiZ2V0Q2FyZHMiLCJpbml0RGF0YSIsImNhcmRzIiwiY2FyZFVuaXF1ZUlkIiwibGFzdDREaWdpdHMiLCJnZXRBdXRob3JpemF0aW9uSGVhZGVyIiwiYXV0aE1vZHVsZSIsImF1dGgiLCJjYWxDb25uZWN0VG9rZW4iLCJnZXRYU2l0ZUlkIiwiZ2V0TG9naW5PcHRpb25zIiwibG9naW5VcmwiLCJmaWVsZHMiLCJzdWJtaXRCdXR0b25TZWxlY3RvciIsInBvc3NpYmxlUmVzdWx0cyIsImNoZWNrUmVhZGluZXNzIiwicHJlQWN0aW9uIiwib3BlbkxvZ2luUG9wdXAiLCJwb3N0QWN0aW9uIiwiY3VycmVudFVybCIsImVuZHNXaXRoIiwiZSIsInVzZXJBZ2VudCIsImlzQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyIsImZldGNoRGF0YSIsImRlZmF1bHRTdGFydE1vbWVudCIsInN1YnRyYWN0Iiwic3RhcnREYXRlIiwidG9EYXRlIiwic3RhcnRNb21lbnQiLCJtb21lbnQiLCJtYXgiLCJmb3JtYXQiLCJBdXRob3JpemF0aW9uIiwieFNpdGVJZCIsImZ1dHVyZU1vbnRoc1RvU2NyYXBlIiwiYWxsIiwiY2FyZCIsImZpbmFsTW9udGhUb0ZldGNoTW9tZW50IiwibW9udGhzIiwiZGlmZiIsImFsbE1vbnRoc0RhdGEiLCJpIiwibW9udGgiLCJjbG9uZSIsInllYXIiLCJzdGF0dXNDb2RlIiwidGl0bGUiLCJwdXNoIiwidHhucyIsIm91dHB1dERhdGEiLCJlbmFibGVUcmFuc2FjdGlvbnNGaWx0ZXJCeURhdGUiLCJjb21iaW5lSW5zdGFsbG1lbnRzIiwiYWNjb3VudE51bWJlciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdWNjZXNzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFHQTs7QUFDQTs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFNQTs7Ozs7O0FBR0EsTUFBTUEsU0FBUyxHQUFHLCtCQUFsQjtBQUNBLE1BQU1DLDZCQUE2QixHQUFHLDhGQUF0QztBQUVBLE1BQU1DLHNCQUFzQixHQUFHLG1DQUEvQjtBQUVBLE1BQU1DLEtBQUssR0FBRyxxQkFBUyxVQUFULENBQWQ7SUFFS0MsVzs7V0FBQUEsVztBQUFBQSxFQUFBQSxXO0FBQUFBLEVBQUFBLFc7QUFBQUEsRUFBQUEsVztBQUFBQSxFQUFBQSxXO0dBQUFBLFcsS0FBQUEsVzs7QUFpR0wsZUFBZUMsYUFBZixDQUE2QkMsSUFBN0IsRUFBeUM7QUFDdkMsTUFBSUMsS0FBbUIsR0FBRyxJQUExQjtBQUNBSixFQUFBQSxLQUFLLENBQUMsOEJBQUQsQ0FBTDtBQUNBLFFBQU0sd0JBQVUsTUFBTTtBQUNwQkksSUFBQUEsS0FBSyxHQUFHRCxJQUFJLENBQ1RFLE1BREssR0FFTEMsSUFGSyxDQUVDQyxDQUFELElBQU9BLENBQUMsQ0FBQ0MsR0FBRixHQUFRQyxRQUFSLENBQWlCLFlBQWpCLENBRlAsS0FFMEMsSUFGbEQ7QUFHQSxXQUFPQyxPQUFPLENBQUNDLE9BQVIsQ0FBZ0IsQ0FBQyxDQUFDUCxLQUFsQixDQUFQO0FBQ0QsR0FMSyxFQUtILGlDQUxHLEVBS2dDLEtBTGhDLEVBS3VDLElBTHZDLENBQU47O0FBT0EsTUFBSSxDQUFDQSxLQUFMLEVBQVk7QUFDVkosSUFBQUEsS0FBSyxDQUFDLDJDQUFELENB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QXZELFNBQVMsU0FBVCxJQUFBQSxTQUFTLFdBQVQsWUFBQUEsU0FBUyxDQUFFa0csS0FBWCxLQUFvQixFQUFHLEVBQXhHLENBQU47O0FBRWpDLFlBQUksQ0FBQyxLQUFLeEIsd0JBQUwsQ0FBOEIxRSxTQUE5QixDQUFMLEVBQStDO0FBQzdDLGdCQUFNLElBQUlyQixLQUFKLENBQVUsaURBQVYsQ0FBTjtBQUNEOztBQUVEaUgsUUFBQUEsYUFBYSxDQUFDTyxJQUFkLENBQW1CbkcsU0FBbkI7QUFDRDs7QUFFRCxZQUFNTSxZQUFZLEdBQUdULCtCQUErQixDQUFDK0YsYUFBRCxDQUFwRDtBQUVBN0gsTUFBQUEsS0FBSyxDQUFDLDRCQUFELENBQUw7QUFDQSxZQUFNcUksSUFBSSxHQUFHLG9EQUFDLEtBQUs5RyxPQUFMLENBQWErRyxVQUFkLDJEQUFDLHVCQUF5QkMsOEJBQTFCLHlFQUE0RCxJQUE1RCxJQUNYLHlDQUFzQmhHLFlBQXRCLEVBQW9DLHFCQUFPd0UsU0FBUCxDQUFwQyxFQUF1RCxLQUFLeEYsT0FBTCxDQUFhaUgsbUJBQWIsSUFBb0MsS0FBM0YsQ0FEVyxHQUVYakcsWUFGRjtBQUlBLGFBQU87QUFDTDhGLFFBQUFBLElBREs7QUFFTEksUUFBQUEsYUFBYSxFQUFFaEIsSUFBSSxDQUFDakM7QUFGZixPQUFQO0FBSUQsS0F2Q0QsQ0FEcUIsQ0FBdkI7QUEyQ0F4RixJQUFBQSxLQUFLLENBQUMsNkJBQUQsQ0FBTDtBQUVBQSxJQUFBQSxLQUFLLENBQUMwSSxJQUFJLENBQUNDLFNBQUwsQ0FBZXZHLFFBQWYsRUFBeUIsSUFBekIsRUFBK0IsQ0FBL0IsQ0FBRCxDQUFMO0FBQ0EsV0FBTztBQUNMd0csTUFBQUEsT0FBTyxFQUFFLElBREo7QUFFTHhHLE1BQUFBO0FBRkssS0FBUDtBQUlEOztBQXBKNkU7O2VBdUpqRThDLGMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBGcmFtZSwgUGFnZSB9IGZyb20gJ3B1cHBldGVlcic7XG5cbmltcG9ydCB7IGdldERlYnVnIH0gZnJvbSAnLi4vaGVscGVycy9kZWJ1Zyc7XG5pbXBvcnQge1xuICBjbGlja0J1dHRvbiwgZWxlbWVudFByZXNlbnRPblBhZ2UsIHBhZ2VFdmFsLCB3YWl0VW50aWxFbGVtZW50Rm91bmQsXG59IGZyb20gJy4uL2hlbHBlcnMvZWxlbWVudHMtaW50ZXJhY3Rpb25zJztcbmltcG9ydCB7IGZldGNoUG9zdFdpdGhpblBhZ2UgfSBmcm9tICcuLi9oZWxwZXJzL2ZldGNoJztcbmltcG9ydCB7IGdldEN1cnJlbnRVcmwgfSBmcm9tICcuLi9oZWxwZXJzL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgZ2V0RnJvbVNlc3Npb25TdG9yYWdlIH0gZnJvbSAnLi4vaGVscGVycy9zdG9yYWdlJztcbmltcG9ydCB7IGZpbHRlck9sZFRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL2hlbHBlcnMvdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IHdhaXRVbnRpbCB9IGZyb20gJy4uL2hlbHBlcnMvd2FpdGluZyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25TdGF0dXNlcyxcbiAgVHJhbnNhY3Rpb25UeXBlcyxcbiAgVHJhbnNhY3Rpb25zQWNjb3VudCxcbn0gZnJvbSAnLi4vdHJhbnNhY3Rpb25zJztcbmltcG9ydCB7IEJhc2VTY3JhcGVyV2l0aEJyb3dzZXIsIExvZ2luT3B0aW9ucywgTG9naW5SZXN1bHRzIH0gZnJvbSAnLi9iYXNlLXNjcmFwZXItd2l0aC1icm93c2VyJztcbmltcG9ydCB7IFNjcmFwZXJTY3JhcGluZ1Jlc3VsdCB9IGZyb20gJy4vaW50ZXJmYWNlJztcblxuY29uc3QgTE9HSU5fVVJMID0gJ2h0dHBzOi8vd3d3LmNhbC1vbmxpbmUuY28uaWwvJztcbmNvbnN0IFRSQU5TQUNUSU9OU19SRVFVRVNUX0VORFBPSU5UID0gJ2h0dHBzOi8vYXBpLmNhbC1vbmxpbmUuY28uaWwvVHJhbnNhY3Rpb25zL2FwaS90cmFuc2FjdGlvbnNEZXRhaWxzL2dldENhcmRUcmFuc2FjdGlvbnNEZXRhaWxzJztcblxuY29uc3QgSW52YWxpZFBhc3N3b3JkTWVzc2FnZSA9ICfXqdedINeU157Xqdeq157XqSDXkNeVINeU16HXmdeh157XlCDXqdeU15XXlteg15Ug16nXkteV15nXmdedJztcblxuY29uc3QgZGVidWcgPSBnZXREZWJ1ZygndmlzYS1jYWwnKTtcblxuZW51bSB0cm5UeXBlQ29kZSB7XG4gIHJlZ3VsYXIgPSAnNScsXG4gIGNyZWRpdCA9ICc2JyxcbiAgaW5zdGFsbG1lbnRzID0gJzgnLFxuICBzdGFuZGluZ09yZGVyID0gJzknLFxufVxuXG5pbnRlcmZhY2UgU2NyYXBlZFRyYW5zYWN0aW9uIHtcbiAgYW10QmVmb3JlQ29udkFuZEluZGV4OiBudW1iZXI7XG4gIGJyYW5jaENvZGVEZXNjOiBzdHJpbmc7XG4gIGNhc2hBY2NNYW5hZ2VyTmFtZTogbnVsbDtcbiAgY2FzaEFjY291bnRNYW5hZ2VyOiBudWxsO1xuICBjYXNoQWNjb3VudFRybkFtdDogbnVtYmVyO1xuICBjaGFyZ2VFeHRlcm5hbFRvQ2FyZENvbW1lbnQ6IHN0cmluZztcbiAgY29tbWVudHM6IFtdO1xuICBjdXJQYXltZW50TnVtOiBudW1iZXI7XG4gIGRlYkNyZEN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgZGViQ3JkRGF0ZTogc3RyaW5nO1xuICBkZWJpdFNwcmVhZEluZDogYm9vbGVhbjtcbiAgZGlzY291bnRBbW91bnQ6IHVua25vd247XG4gIGRpc2NvdW50UmVhc29uOiB1bmtub3duO1xuICBpbW1lZGlhdGVDb21tZW50czogW107XG4gIGlzSW1tZWRpYXRlQ29tbWVudEluZDogYm9vbGVhbjtcbiAgaXNJbW1lZGlhdGVISEtJbmQ6IGJvb2xlYW47XG4gIGlzTWFyZ2FyaXRhOiBib29sZWFuO1xuICBpc1NwcmVhZFBheW1lbnN0QWJyb2FkOiBib29sZWFuO1xuICBsaW5rZWRDb21tZW50czogW107XG4gIG1lcmNoYW50QWRkcmVzczogc3RyaW5nO1xuICBtZXJjaGFudE5hbWU6IHN0cmluZztcbiAgbWVyY2hhbnRQaG9uZU5vOiBzdHJpbmc7XG4gIG51bU9mUGF5bWVudHM6IG51bWJlcjtcbiAgb25Hb2luZ1RyYW5zYWN0aW9uc0NvbW1lbnQ6IHN0cmluZztcbiAgcmVmdW5kSW5kOiBib29sZWFuO1xuICByb3VuZGluZ0Ftb3VudDogdW5rbm93bjtcbiAgcm91bmRpbmdSZWFzb246IHVua25vd247XG4gIHRva2VuSW5kOiAwO1xuICB0b2tlbk51bWJlclBhcnQ0OiAnJztcbiAgdHJhbnNDYXJkUHJlc2VudEluZDogYm9vbGVhbjtcbiAgdHJhbnNUeXBlQ29tbWVudERldGFpbHM6IFtdO1xuICB0cm5BbXQ6IG51bWJlcjtcbiAgdHJuQ3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICB0cm5FeGFjV2F5OiBudW1iZXI7XG4gIHRybkludElkOiBzdHJpbmc7XG4gIHRybk51bWFyZXRvcjogbnVtYmVyO1xuICB0cm5QdXJjaGFzZURhdGU6IHN0cmluZztcbiAgdHJuVHlwZTogc3RyaW5nO1xuICB0cm5UeXBlQ29kZTogdHJuVHlwZUNvZGU7XG4gIHdhbGxldFByb3ZpZGVyQ29kZTogMDtcbiAgd2FsbGV0UHJvdmlkZXJEZXNjOiAnJztcbn1cbmludGVyZmFjZSBJbml0UmVzcG9uc2Uge1xuICByZXN1bHQ6IHtcbiAgICBjYXJkczoge1xuICAgICAgY2FyZFVuaXF1ZUlkOiBzdHJpbmc7XG4gICAgICBsYXN0NERpZ2l0czogc3RyaW5nO1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbiAgICB9W107XG4gIH07XG59XG50eXBlIEN1cnJlbmN5U3ltYm9sID0gJ+KCqicgfCBzdHJpbmc7XG5pbnRlcmZhY2UgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufVxuaW50ZXJmYWNlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMgZXh0ZW5kcyBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3Ige1xuICByZXN1bHQ6IHtcbiAgICBiYW5rQWNjb3VudHM6IHtcbiAgICAgIGJhbmtBY2NvdW50TnVtOiBzdHJpbmc7XG4gICAgICBiYW5rTmFtZTogc3RyaW5nO1xuICAgICAgY2hvaWNlRXh0ZXJuYWxUcmFuc2FjdGlvbnM6IGFueTtcbiAgICAgIGN1cnJlbnRCYW5rQWNjb3VudEluZDogYm9vbGVhbjtcbiAgICAgIGRlYml0RGF0ZXM6IHtcbiAgICAgICAgYmFza2V0QW1vdW50Q29tbWVudDogdW5rbm93bjtcbiAgICAgICAgY2hvaWNlSEhLRGViaXQ6IG51bWJlcjtcbiAgICAgICAgZGF0ZTogc3RyaW5nO1xuICAgICAgICBkZWJpdFJlYXNvbjogdW5rbm93bjtcbiAgICAgICAgZml4RGViaXRBbW91bnQ6IG51bWJlcjtcbiAgICAgICAgZnJvbVB1cmNoYXNlRGF0ZTogc3RyaW5nO1xuICAgICAgICBpc0Nob2ljZVJlcGFpbWVudDogYm9vbGVhbjtcbiAgICAgICAgdG9QdXJjaGFzZURhdGU6IHN0cmluZztcbiAgICAgICAgdG90YWxCYXNrZXRBbW91bnQ6IG51bWJlcjtcbiAgICAgICAgdG90YWxEZWJpdHM6IHtcbiAgICAgICAgICBjdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gICAgICAgICAgYW1vdW50OiBudW1iZXI7XG4gICAgICAgIH1bXTtcbiAgICAgICAgdHJhbnNhY3Rpb25zOiBTY3JhcGVkVHJhbnNhY3Rpb25bXTtcbiAgICAgIH1bXTtcbiAgICAgIGltbWlkaWF0ZURlYml0czogeyB0b3RhbERlYml0czogW10sIGRlYml0RGF5czogW10gfTtcbiAgICB9W107XG4gICAgYmxvY2tlZENhcmRJbmQ6IGJvb2xlYW47XG4gIH07XG4gIHN0YXR1c0NvZGU6IDE7XG4gIHN0YXR1c0Rlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHN0YXR1c1RpdGxlOiBzdHJpbmc7XG59XG5cblxuYXN5bmMgZnVuY3Rpb24gZ2V0TG9naW5GcmFtZShwYWdlOiBQYWdlKSB7XG4gIGxldCBmcmFtZTogRnJhbWUgfCBudWxsID0gbnVsbDtcbiAgZGVidWcoJ3dhaXQgdW50aWwgbG9naW4gZnJhbWUgZm91bmQnKTtcbiAgYXdhaXQgd2FpdFVudGlsKCgpID0+IHtcbiAgICBmcmFtZSA9IHBhZ2VcbiAgICAgIC5mcmFtZXMoKVxuICAgICAgLmZpbmQoKGYpID0+IGYudXJsKCkuaW5jbHVkZXMoJ2NhbGNvbm5lY3QnKSkgfHwgbnVsbDtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCEhZnJhbWUpO1xuICB9LCAnd2FpdCBmb3IgaWZyYW1lIHdpdGggbG9naW4gZm9ybScsIDEwMDAwLCAxMDAwKTtcblxuICBpZiAoIWZyYW1lKSB7XG4gICAgZGVidWcoJ2ZhaWxlZCB0byBmaW5kIGxvZ2luIGZyYW1lIGZvciAxMCBzZWNvbmRzJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZXh0cmFjdCBsb2dpbiBpZnJhbWUnKTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IocGFnZTogUGFnZSkge1xuICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUocGFnZSk7XG4gIGNvbnN0IGVycm9yRm91bmQgPSBhd2FpdCBlbGVtZW50UHJlc2VudE9uUGFnZShmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2Jyk7XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yRm91bmQgPyBhd2FpdCBwYWdlRXZhbChmcmFtZSwgJ2Rpdi5nZW5lcmFsLWVycm9yID4gZGl2JywgJycsIChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIChpdGVtIGFzIEhUTUxEaXZFbGVtZW50KS5pbm5lclRleHQ7XG4gIH0pIDogJyc7XG4gIHJldHVybiBlcnJvck1lc3NhZ2UgPT09IEludmFsaWRQYXNzd29yZE1lc3NhZ2U7XG59XG5cbmZ1bmN0aW9uIGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCkge1xuICBkZWJ1ZygncmV0dXJuIHBvc3NpYmxlIGxvZ2luIHJlc3VsdHMnKTtcbiAgY29uc3QgdXJsczogTG9naW5PcHRpb25zWydwb3NzaWJsZVJlc3VsdHMnXSA9IHtcbiAgICBbTG9naW5SZXN1bHRzLlN1Y2Nlc3NdOiBbL2Rhc2hib2FyZC9pXSxcbiAgICBbTG9naW5SZXN1bHRzLkludmFsaWRQYXNzd29yZF06IFthc3luYyAob3B0aW9ucz86IHsgcGFnZT86IFBhZ2UgfSkgPT4ge1xuICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnM/LnBhZ2U7XG4gICAgICBpZiAoIXBhZ2UpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhhc0ludmFsaWRQYXNzd29yZEVycm9yKHBhZ2UpO1xuICAgIH1dLFxuICAgIC8vIFtMb2dpblJlc3VsdHMuQWNjb3VudEJsb2NrZWRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gICAgLy8gW0xvZ2luUmVzdWx0cy5DaGFuZ2VQYXNzd29yZF06IFtdLCAvLyBUT0RPIGFkZCB3aGVuIHJlYWNoaW5nIHRoaXMgc2NlbmFyaW9cbiAgfTtcbiAgcmV0dXJuIHVybHM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvZ2luRmllbGRzKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscykge1xuICBkZWJ1ZygnY3JlYXRlIGxvZ2luIGZpZWxkcyBmb3IgdXNlcm5hbWUgYW5kIHBhc3N3b3JkJyk7XG4gIHJldHVybiBbXG4gICAgeyBzZWxlY3RvcjogJ1tmb3JtY29udHJvbG5hbWU9XCJ1c2VyTmFtZVwiXScsIHZhbHVlOiBjcmVkZW50aWFscy51c2VybmFtZSB9LFxuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwicGFzc3dvcmRcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMucGFzc3dvcmQgfSxcbiAgXTtcbn1cblxuZnVuY3Rpb24gY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyhwYXJzZWREYXRhOiBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzW10pOiBUcmFuc2FjdGlvbltdIHtcbiAgcmV0dXJuIHBhcnNlZERhdGFcbiAgICAuZmxhdE1hcCgobW9udGhEYXRhKSA9PiBtb250aERhdGEucmVzdWx0LmJhbmtBY2NvdW50cylcbiAgICAuZmxhdE1hcCgoYWNjb3VudHMpID0+IGFjY291bnRzLmRlYml0RGF0ZXMpXG4gICAgLmZsYXRNYXAoKGRlYml0RGF0ZSkgPT4gZGViaXREYXRlLnRyYW5zYWN0aW9ucylcbiAgICAubWFwKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaW5zdGFsbG1lbnRzID0gKHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0gJiYgdHJhbnNhY3Rpb24ubnVtT2ZQYXltZW50cyAmJlxuICAgICAge1xuICAgICAgICBudW1iZXI6IHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0sXG4gICAgICAgIHRvdGFsOiB0cmFuc2FjdGlvbi5udW1PZlBheW1lbnRzLFxuICAgICAgfSkgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHRyYW5zYWN0aW9uLnRyblB1cmNoYXNlRGF0ZSk7XG5cbiAgICAgIGxldCBjaGFyZ2VkQW1vdW50ID0gdHJhbnNhY3Rpb24uYW10QmVmb3JlQ29udkFuZEluZGV4ICogKC0xKTtcbiAgICAgIGxldCBvcmlnaW5hbEFtb3VudCA9IHRyYW5zYWN0aW9uLnRybkFtdCAqICgtMSk7XG5cbiAgICAgIGlmICh0cmFuc2FjdGlvbi50cm5UeXBlQ29kZSA9PT0gdHJuVHlwZUNvZGUuY3JlZGl0KSB7XG4gICAgICAgIGNoYXJnZWRBbW91bnQgPSB0cmFuc2FjdGlvbi5hbXRCZWZvcmVDb252QW5kSW5kZXg7XG4gICAgICAgIG9yaWdpbmFsQW1vdW50ID0gdHJhbnNhY3Rpb24udHJuQW10O1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgICBpZGVudGlmaWVyOiB0cmFuc2FjdGlvbi50cm5JbnRJZCxcbiAgICAgICAgdHlwZTogW3RyblR5cGVDb2RlLnJlZ3VsYXIsIHRyblR5cGVDb2RlLnN0YW5kaW5nT3JkZXJdLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlKSA/XG4gICAgICAgICAgVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwgOlxuICAgICAgICAgIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgICBkYXRlOiBpbnN0YWxsbWVudHMgP1xuICAgICAgICAgIGRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDpcbiAgICAgICAgICBkYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIHByb2Nlc3NlZERhdGU6IG5ldyBEYXRlKHRyYW5zYWN0aW9uLmRlYkNyZERhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG9yaWdpbmFsQW1vdW50LFxuICAgICAgICBvcmlnaW5hbEN1cnJlbmN5OiB0cmFuc2FjdGlvbi50cm5DdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgY2hhcmdlZEFtb3VudCxcbiAgICAgICAgY2hhcmdlZEN1cnJlbmN5OiB0cmFuc2FjdGlvbi5kZWJDcmRDdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uLm1lcmNoYW50TmFtZSxcbiAgICAgICAgbWVtbzogdHJhbnNhY3Rpb24udHJhbnNUeXBlQ29tbWVudERldGFpbHMudG9TdHJpbmcoKSxcbiAgICAgICAgY2F0ZWdvcnk6IHRyYW5zYWN0aW9uLmJyYW5jaENvZGVEZXNjLFxuICAgICAgfTtcblxuICAgICAgaWYgKGluc3RhbGxtZW50cykge1xuICAgICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGFzeW5jIGdldENhcmRzKCkge1xuICAgIGNvbnN0IGluaXREYXRhID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgKCkgPT4gZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEluaXRSZXNwb25zZT4odGhpcy5wYWdlLCAnaW5pdCcpLFxuICAgICAgJ2dldCBpbml0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgIDEwMDAwLFxuICAgICAgMTAwMCxcbiAgICApO1xuICAgIGlmICghaW5pdERhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgXFwnaW5pdFxcJyBkYXRhIGluIHNlc3Npb24gc3RvcmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdERhdGE/LnJlc3VsdC5jYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkLCBsYXN0NERpZ2l0cyB9KSA9PiAoeyBjYXJkVW5pcXVlSWQsIGxhc3Q0RGlnaXRzIH0pKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhvcml6YXRpb25IZWFkZXIoKSB7XG4gICAgY29uc3QgYXV0aE1vZHVsZSA9IGF3YWl0IGdldEZyb21TZXNzaW9uU3RvcmFnZTx7IGF1dGg6IHsgY2FsQ29ubmVjdFRva2VuOiBzdHJpbmcgfSB9Pih0aGlzLnBhZ2UsICdhdXRoLW1vZHVsZScpO1xuICAgIGlmICghYXV0aE1vZHVsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBcXCdhdXRoLW1vZHVsZVxcJyBpbiBzZXNzaW9uIHN0b3JhZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGBDQUxBdXRoU2NoZW1lICR7YXV0aE1vZHVsZS5hdXRoLmNhbENvbm5lY3RUb2tlbn1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0WFNpdGVJZCgpIHtcbiAgICAvKlxuICAgICAgSSBkb24ndCBrbm93IGlmIHRoZSBjb25zdGFudCBiZWxvdyB3aWxsIGNoYW5nZSBpbiB0aGUgZmVhdHVyZS5cbiAgICAgIElmIHNvLCB1c2UgdGhlIG5leHQgY29kZTpcblxuICAgICAgcmV0dXJuIHRoaXMucGFnZS5ldmFsdWF0ZSgoKSA9PiBuZXcgVXQoKS54U2l0ZUlkKTtcblxuICAgICAgVG8gZ2V0IHRoZSBjbGFzc25hbWUgc2VhcmNoIGZvciAneFNpdGVJZCcgaW4gdGhlIHBhZ2Ugc291cmNlXG4gICAgICBjbGFzcyBVdCB7XG4gICAgICAgIGNvbnN0cnVjdG9yKF9lLCBvbiwgeW4pIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUgPSBfZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gb24sXG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzU2VydmljZSA9IHluLFxuICAgICAgICAgICAgdGhpcy54U2l0ZUlkID0gXCIwOTAzMTk4Ny0yNzNFLTIzMTEtOTA2Qy04QUY4NUIxN0M4RDlcIixcbiAgICAqL1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJzA5MDMxOTg3LTI3M0UtMjMxMS05MDZDLThBRjg1QjE3QzhEOScpO1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnc2l0ZS10dXRvcmlhbCcpKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnZGFzaGJvYXJkJykpIHJldHVybjtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlckFnZW50OiAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzguMC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2JyxcbiAgICB9O1xuICB9XG5cbiAgaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKHJlc3VsdDogQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyB8IENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvcik6XG4gICAgcmVzdWx0IGlzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMge1xuICAgIHJldHVybiAocmVzdWx0IGFzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuc3VidHJhY3QoNiwgJ21vbnRocycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGNvbnN0IEF1dGhvcml6YXRpb24gPSBhd2FpdCB0aGlzLmdldEF1dGhvcml6YXRpb25IZWFkZXIoKTtcbiAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZ2V0Q2FyZHMoKTtcbiAgICBjb25zdCB4U2l0ZUlkID0gYXdhaXQgdGhpcy5nZXRYU2l0ZUlkKCk7XG4gICAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSB0aGlzLm9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjYXJkcy5tYXAoYXN5bmMgKGNhcmQpID0+IHtcbiAgICAgICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQuY2FyZFVuaXF1ZUlkfWApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50ID0gbW9tZW50KCkuYWRkKGZ1dHVyZU1vbnRoc1RvU2NyYXBlLCAnbW9udGgnKTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gZmluYWxNb250aFRvRmV0Y2hNb21lbnQuZGlmZihzdGFydE1vbWVudCwgJ21vbnRocycpO1xuXG4gICAgICAgIGNvbnN0IGFsbE1vbnRoc0RhdGE6IChDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1vbnRoczsgaSArPSAxKSB7XG4gICAgICAgICAgY29uc3QgbW9udGggPSBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudC5jbG9uZSgpLnN1YnRyYWN0KGksICdtb250aHMnKTtcbiAgICAgICAgICBjb25zdCBtb250aERhdGEgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPENhcmRUcmFuc2FjdGlvbkRldGFpbHMgfCBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3I+KFxuICAgICAgICAgICAgdGhpcy5wYWdlLCBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCxcbiAgICAgICAgICAgIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCwgbW9udGg6IG1vbnRoLmZvcm1hdCgnTScpLCB5ZWFyOiBtb250aC5mb3JtYXQoJ1lZWVknKSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChtb250aERhdGE/LnN0YXR1c0NvZGUgIT09IDEpIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQubGFzdDREaWdpdHN9LiBNZXNzYWdlOiAke21vbnRoRGF0YT8udGl0bGUgfHwgJyd9YCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKG1vbnRoRGF0YSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9udGhEYXRhIGlzIG5vdCBvZiB0eXBlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbGxNb250aHNEYXRhLnB1c2gobW9udGhEYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoYWxsTW9udGhzRGF0YSk7XG5cbiAgICAgICAgZGVidWcoJ2ZpbGVyIG91dCBvbGQgdHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIGNvbnN0IHR4bnMgPSAodGhpcy5vcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSA/XG4gICAgICAgICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9ucywgbW9tZW50KHN0YXJ0RGF0ZSksIHRoaXMub3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKSA6XG4gICAgICAgICAgdHJhbnNhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHhucyxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkLmxhc3Q0RGlnaXRzLFxuICAgICAgICB9IGFzIFRyYW5zYWN0aW9uc0FjY291bnQ7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuXG4gICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoYWNjb3VudHMsIG51bGwsIDIpKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzYUNhbFNjcmFwZXI7XG4iXX0=
297
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JhcGVycy92aXNhLWNhbC50cyJdLCJuYW1lcyI6WyJMT0dJTl9VUkwiLCJUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCIsIkludmFsaWRQYXNzd29yZE1lc3NhZ2UiLCJkZWJ1ZyIsInRyblR5cGVDb2RlIiwiZ2V0TG9naW5GcmFtZSIsInBhZ2UiLCJmcmFtZSIsImZyYW1lcyIsImZpbmQiLCJmIiwidXJsIiwiaW5jbHVkZXMiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkVycm9yIiwiaGFzSW52YWxpZFBhc3N3b3JkRXJyb3IiLCJlcnJvckZvdW5kIiwiZXJyb3JNZXNzYWdlIiwiaXRlbSIsImlubmVyVGV4dCIsImdldFBvc3NpYmxlTG9naW5SZXN1bHRzIiwidXJscyIsIkxvZ2luUmVzdWx0cyIsIlN1Y2Nlc3MiLCJJbnZhbGlkUGFzc3dvcmQiLCJvcHRpb25zIiwiY3JlYXRlTG9naW5GaWVsZHMiLCJjcmVkZW50aWFscyIsInNlbGVjdG9yIiwidmFsdWUiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwiY29udmVydFBhcnNlZERhdGFUb1RyYW5zYWN0aW9ucyIsInBhcnNlZERhdGEiLCJiYW5rQWNjb3VudHMiLCJmbGF0TWFwIiwibW9udGhEYXRhIiwicmVzdWx0IiwicmVndWxhckRlYml0RGF5cyIsImFjY291bnRzIiwiZGViaXREYXRlcyIsImltbWVkaWF0ZURlYml0RGF5cyIsImltbWlkaWF0ZURlYml0cyIsImRlYml0RGF5cyIsImRlYml0RGF0ZSIsInRyYW5zYWN0aW9ucyIsIm1hcCIsInRyYW5zYWN0aW9uIiwiaW5zdGFsbG1lbnRzIiwiY3VyUGF5bWVudE51bSIsIm51bU9mUGF5bWVudHMiLCJudW1iZXIiLCJ0b3RhbCIsInVuZGVmaW5lZCIsImRhdGUiLCJ0cm5QdXJjaGFzZURhdGUiLCJjaGFyZ2VkQW1vdW50IiwiYW10QmVmb3JlQ29udkFuZEluZGV4Iiwib3JpZ2luYWxBbW91bnQiLCJ0cm5BbXQiLCJpZGVudGlmaWVyIiwidHJuSW50SWQiLCJ0eXBlIiwicmVndWxhciIsInN0YW5kaW5nT3JkZXIiLCJUcmFuc2FjdGlvblR5cGVzIiwiTm9ybWFsIiwiSW5zdGFsbG1lbnRzIiwic3RhdHVzIiwiVHJhbnNhY3Rpb25TdGF0dXNlcyIsIkNvbXBsZXRlZCIsImFkZCIsInRvSVNPU3RyaW5nIiwicHJvY2Vzc2VkRGF0ZSIsIkRhdGUiLCJkZWJDcmREYXRlIiwib3JpZ2luYWxDdXJyZW5jeSIsInRybkN1cnJlbmN5U3ltYm9sIiwiY2hhcmdlZEN1cnJlbmN5IiwiZGViQ3JkQ3VycmVuY3lTeW1ib2wiLCJkZXNjcmlwdGlvbiIsIm1lcmNoYW50TmFtZSIsIm1lbW8iLCJ0cmFuc1R5cGVDb21tZW50RGV0YWlscyIsInRvU3RyaW5nIiwiY2F0ZWdvcnkiLCJicmFuY2hDb2RlRGVzYyIsIlZpc2FDYWxTY3JhcGVyIiwiQmFzZVNjcmFwZXJXaXRoQnJvd3NlciIsImdldENhcmRzIiwiaW5pdERhdGEiLCJjYXJkcyIsImNhcmRVbmlxdWVJZCIsImxhc3Q0RGlnaXRzIiwiZ2V0QXV0aG9yaXphdGlvbkhlYWRlciIsImF1dGhNb2R1bGUiLCJhdXRoIiwiY2FsQ29ubmVjdFRva2VuIiwiZ2V0WFNpdGVJZCIsImdldExvZ2luT3B0aW9ucyIsImxvZ2luVXJsIiwiZmllbGRzIiwic3VibWl0QnV0dG9uU2VsZWN0b3IiLCJwb3NzaWJsZVJlc3VsdHMiLCJjaGVja1JlYWRpbmVzcyIsInByZUFjdGlvbiIsIm9wZW5Mb2dpblBvcHVwIiwicG9zdEFjdGlvbiIsImN1cnJlbnRVcmwiLCJlbmRzV2l0aCIsImUiLCJ1c2VyQWdlbnQiLCJpc0NhcmRUcmFuc2FjdGlvbkRldGFpbHMiLCJmZXRjaERhdGEiLCJkZWZhdWx0U3RhcnRNb21lbnQiLCJzdWJ0cmFjdCIsInN0YXJ0RGF0ZSIsInRvRGF0ZSIsInN0YXJ0TW9tZW50IiwibW9tZW50IiwibWF4IiwiZm9ybWF0IiwiQXV0aG9yaXphdGlvbiIsInhTaXRlSWQiLCJmdXR1cmVNb250aHNUb1NjcmFwZSIsImFsbCIsImNhcmQiLCJmaW5hbE1vbnRoVG9GZXRjaE1vbWVudCIsIm1vbnRocyIsImRpZmYiLCJhbGxNb250aHNEYXRhIiwiaSIsIm1vbnRoIiwiY2xvbmUiLCJ5ZWFyIiwic3RhdHVzQ29kZSIsInRpdGxlIiwicHVzaCIsInR4bnMiLCJvdXRwdXREYXRhIiwiZW5hYmxlVHJhbnNhY3Rpb25zRmlsdGVyQnlEYXRlIiwiY29tYmluZUluc3RhbGxtZW50cyIsImFjY291bnROdW1iZXIiLCJKU09OIiwic3RyaW5naWZ5Iiwic3VjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0E7O0FBQ0E7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBTUE7Ozs7OztBQUdBLE1BQU1BLFNBQVMsR0FBRywrQkFBbEI7QUFDQSxNQUFNQyw2QkFBNkIsR0FBRyw4RkFBdEM7QUFFQSxNQUFNQyxzQkFBc0IsR0FBRyxtQ0FBL0I7QUFFQSxNQUFNQyxLQUFLLEdBQUcscUJBQVMsVUFBVCxDQUFkO0lBRUtDLFc7O1dBQUFBLFc7QUFBQUEsRUFBQUEsVztBQUFBQSxFQUFBQSxXO0FBQUFBLEVBQUFBLFc7QUFBQUEsRUFBQUEsVztHQUFBQSxXLEtBQUFBLFc7O0FBaUdMLGVBQWVDLGFBQWYsQ0FBNkJDLElBQTdCLEVBQXlDO0FBQ3ZDLE1BQUlDLEtBQW1CLEdBQUcsSUFBMUI7QUFDQUosRUFBQUEsS0FBSyxDQUFDLDhCQUFELENBQUw7QUFDQSxRQUFNLHdCQUFVLE1BQU07QUFDcEJJLElBQUFBLEtBQUssR0FBR0QsSUFBSSxDQUNURSxNQURLLEdBRUxDLElBRkssQ0FFQ0MsQ0FBRCxJQUFPQSxDQUFDLENBQUNDLEdBQUYsR0FBUUMsUUFBUixDQUFpQixZQUFqQixDQUZQLEtBRTBDLElBRmxEO0FBR0EsV0FBT0MsT0FBTyxDQUFDQyxPQUFSLENBQWdCLENBQUMsQ0FBQ1AsS0FBbEIsQ0FBUDtBQUNELEdBTEssRUFLSCxpQ0FMRyxFQUtnQyxLQUxoQyxFQUt1QyxJQUx2QyxD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QXVKakVnRCxjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRnJhbWUsIFBhZ2UgfSBmcm9tICdwdXBwZXRlZXInO1xuXG5pbXBvcnQgeyBnZXREZWJ1ZyB9IGZyb20gJy4uL2hlbHBlcnMvZGVidWcnO1xuaW1wb3J0IHtcbiAgY2xpY2tCdXR0b24sIGVsZW1lbnRQcmVzZW50T25QYWdlLCBwYWdlRXZhbCwgd2FpdFVudGlsRWxlbWVudEZvdW5kLFxufSBmcm9tICcuLi9oZWxwZXJzL2VsZW1lbnRzLWludGVyYWN0aW9ucyc7XG5pbXBvcnQgeyBmZXRjaFBvc3RXaXRoaW5QYWdlIH0gZnJvbSAnLi4vaGVscGVycy9mZXRjaCc7XG5pbXBvcnQgeyBnZXRDdXJyZW50VXJsIH0gZnJvbSAnLi4vaGVscGVycy9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IGdldEZyb21TZXNzaW9uU3RvcmFnZSB9IGZyb20gJy4uL2hlbHBlcnMvc3RvcmFnZSc7XG5pbXBvcnQgeyBmaWx0ZXJPbGRUcmFuc2FjdGlvbnMgfSBmcm9tICcuLi9oZWxwZXJzL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyB3YWl0VW50aWwgfSBmcm9tICcuLi9oZWxwZXJzL3dhaXRpbmcnO1xuaW1wb3J0IHtcbiAgVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uU3RhdHVzZXMsXG4gIFRyYW5zYWN0aW9uVHlwZXMsXG4gIFRyYW5zYWN0aW9uc0FjY291bnQsXG59IGZyb20gJy4uL3RyYW5zYWN0aW9ucyc7XG5pbXBvcnQgeyBCYXNlU2NyYXBlcldpdGhCcm93c2VyLCBMb2dpbk9wdGlvbnMsIExvZ2luUmVzdWx0cyB9IGZyb20gJy4vYmFzZS1zY3JhcGVyLXdpdGgtYnJvd3Nlcic7XG5pbXBvcnQgeyBTY3JhcGVyU2NyYXBpbmdSZXN1bHQgfSBmcm9tICcuL2ludGVyZmFjZSc7XG5cbmNvbnN0IExPR0lOX1VSTCA9ICdodHRwczovL3d3dy5jYWwtb25saW5lLmNvLmlsLyc7XG5jb25zdCBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCA9ICdodHRwczovL2FwaS5jYWwtb25saW5lLmNvLmlsL1RyYW5zYWN0aW9ucy9hcGkvdHJhbnNhY3Rpb25zRGV0YWlscy9nZXRDYXJkVHJhbnNhY3Rpb25zRGV0YWlscyc7XG5cbmNvbnN0IEludmFsaWRQYXNzd29yZE1lc3NhZ2UgPSAn16nXnSDXlNee16nXqtee16kg15DXlSDXlNeh15nXodee15Qg16nXlNeV15bXoNeVINep15LXldeZ15nXnSc7XG5cbmNvbnN0IGRlYnVnID0gZ2V0RGVidWcoJ3Zpc2EtY2FsJyk7XG5cbmVudW0gdHJuVHlwZUNvZGUge1xuICByZWd1bGFyID0gJzUnLFxuICBjcmVkaXQgPSAnNicsXG4gIGluc3RhbGxtZW50cyA9ICc4JyxcbiAgc3RhbmRpbmdPcmRlciA9ICc5Jyxcbn1cblxuaW50ZXJmYWNlIFNjcmFwZWRUcmFuc2FjdGlvbiB7XG4gIGFtdEJlZm9yZUNvbnZBbmRJbmRleDogbnVtYmVyO1xuICBicmFuY2hDb2RlRGVzYzogc3RyaW5nO1xuICBjYXNoQWNjTWFuYWdlck5hbWU6IG51bGw7XG4gIGNhc2hBY2NvdW50TWFuYWdlcjogbnVsbDtcbiAgY2FzaEFjY291bnRUcm5BbXQ6IG51bWJlcjtcbiAgY2hhcmdlRXh0ZXJuYWxUb0NhcmRDb21tZW50OiBzdHJpbmc7XG4gIGNvbW1lbnRzOiBbXTtcbiAgY3VyUGF5bWVudE51bTogbnVtYmVyO1xuICBkZWJDcmRDdXJyZW5jeVN5bWJvbDogQ3VycmVuY3lTeW1ib2w7XG4gIGRlYkNyZERhdGU6IHN0cmluZztcbiAgZGViaXRTcHJlYWRJbmQ6IGJvb2xlYW47XG4gIGRpc2NvdW50QW1vdW50OiB1bmtub3duO1xuICBkaXNjb3VudFJlYXNvbjogdW5rbm93bjtcbiAgaW1tZWRpYXRlQ29tbWVudHM6IFtdO1xuICBpc0ltbWVkaWF0ZUNvbW1lbnRJbmQ6IGJvb2xlYW47XG4gIGlzSW1tZWRpYXRlSEhLSW5kOiBib29sZWFuO1xuICBpc01hcmdhcml0YTogYm9vbGVhbjtcbiAgaXNTcHJlYWRQYXltZW5zdEFicm9hZDogYm9vbGVhbjtcbiAgbGlua2VkQ29tbWVudHM6IFtdO1xuICBtZXJjaGFudEFkZHJlc3M6IHN0cmluZztcbiAgbWVyY2hhbnROYW1lOiBzdHJpbmc7XG4gIG1lcmNoYW50UGhvbmVObzogc3RyaW5nO1xuICBudW1PZlBheW1lbnRzOiBudW1iZXI7XG4gIG9uR29pbmdUcmFuc2FjdGlvbnNDb21tZW50OiBzdHJpbmc7XG4gIHJlZnVuZEluZDogYm9vbGVhbjtcbiAgcm91bmRpbmdBbW91bnQ6IHVua25vd247XG4gIHJvdW5kaW5nUmVhc29uOiB1bmtub3duO1xuICB0b2tlbkluZDogMDtcbiAgdG9rZW5OdW1iZXJQYXJ0NDogJyc7XG4gIHRyYW5zQ2FyZFByZXNlbnRJbmQ6IGJvb2xlYW47XG4gIHRyYW5zVHlwZUNvbW1lbnREZXRhaWxzOiBbXTtcbiAgdHJuQW10OiBudW1iZXI7XG4gIHRybkN1cnJlbmN5U3ltYm9sOiBDdXJyZW5jeVN5bWJvbDtcbiAgdHJuRXhhY1dheTogbnVtYmVyO1xuICB0cm5JbnRJZDogc3RyaW5nO1xuICB0cm5OdW1hcmV0b3I6IG51bWJlcjtcbiAgdHJuUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gIHRyblR5cGU6IHN0cmluZztcbiAgdHJuVHlwZUNvZGU6IHRyblR5cGVDb2RlO1xuICB3YWxsZXRQcm92aWRlckNvZGU6IDA7XG4gIHdhbGxldFByb3ZpZGVyRGVzYzogJyc7XG59XG5pbnRlcmZhY2UgSW5pdFJlc3BvbnNlIHtcbiAgcmVzdWx0OiB7XG4gICAgY2FyZHM6IHtcbiAgICAgIGNhcmRVbmlxdWVJZDogc3RyaW5nO1xuICAgICAgbGFzdDREaWdpdHM6IHN0cmluZztcbiAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd247XG4gICAgfVtdO1xuICB9O1xufVxudHlwZSBDdXJyZW5jeVN5bWJvbCA9ICfigqonIHwgc3RyaW5nO1xuaW50ZXJmYWNlIENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvciB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHN0YXR1c0NvZGU6IG51bWJlcjtcbn1cbmludGVyZmFjZSBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzIGV4dGVuZHMgQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc0Vycm9yIHtcbiAgcmVzdWx0OiB7XG4gICAgYmFua0FjY291bnRzOiB7XG4gICAgICBiYW5rQWNjb3VudE51bTogc3RyaW5nO1xuICAgICAgYmFua05hbWU6IHN0cmluZztcbiAgICAgIGNob2ljZUV4dGVybmFsVHJhbnNhY3Rpb25zOiBhbnk7XG4gICAgICBjdXJyZW50QmFua0FjY291bnRJbmQ6IGJvb2xlYW47XG4gICAgICBkZWJpdERhdGVzOiB7XG4gICAgICAgIGJhc2tldEFtb3VudENvbW1lbnQ6IHVua25vd247XG4gICAgICAgIGNob2ljZUhIS0RlYml0OiBudW1iZXI7XG4gICAgICAgIGRhdGU6IHN0cmluZztcbiAgICAgICAgZGViaXRSZWFzb246IHVua25vd247XG4gICAgICAgIGZpeERlYml0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIGZyb21QdXJjaGFzZURhdGU6IHN0cmluZztcbiAgICAgICAgaXNDaG9pY2VSZXBhaW1lbnQ6IGJvb2xlYW47XG4gICAgICAgIHRvUHVyY2hhc2VEYXRlOiBzdHJpbmc7XG4gICAgICAgIHRvdGFsQmFza2V0QW1vdW50OiBudW1iZXI7XG4gICAgICAgIHRvdGFsRGViaXRzOiB7XG4gICAgICAgICAgY3VycmVuY3lTeW1ib2w6IEN1cnJlbmN5U3ltYm9sO1xuICAgICAgICAgIGFtb3VudDogbnVtYmVyO1xuICAgICAgICB9W107XG4gICAgICAgIHRyYW5zYWN0aW9uczogU2NyYXBlZFRyYW5zYWN0aW9uW107XG4gICAgICB9W107XG4gICAgICBpbW1pZGlhdGVEZWJpdHM6IHsgdG90YWxEZWJpdHM6IFtdLCBkZWJpdERheXM6IFtdIH07XG4gICAgfVtdO1xuICAgIGJsb2NrZWRDYXJkSW5kOiBib29sZWFuO1xuICB9O1xuICBzdGF0dXNDb2RlOiAxO1xuICBzdGF0dXNEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzdGF0dXNUaXRsZTogc3RyaW5nO1xufVxuXG5cbmFzeW5jIGZ1bmN0aW9uIGdldExvZ2luRnJhbWUocGFnZTogUGFnZSkge1xuICBsZXQgZnJhbWU6IEZyYW1lIHwgbnVsbCA9IG51bGw7XG4gIGRlYnVnKCd3YWl0IHVudGlsIGxvZ2luIGZyYW1lIGZvdW5kJyk7XG4gIGF3YWl0IHdhaXRVbnRpbCgoKSA9PiB7XG4gICAgZnJhbWUgPSBwYWdlXG4gICAgICAuZnJhbWVzKClcbiAgICAgIC5maW5kKChmKSA9PiBmLnVybCgpLmluY2x1ZGVzKCdjYWxjb25uZWN0JykpIHx8IG51bGw7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSghIWZyYW1lKTtcbiAgfSwgJ3dhaXQgZm9yIGlmcmFtZSB3aXRoIGxvZ2luIGZvcm0nLCAxMDAwMCwgMTAwMCk7XG5cbiAgaWYgKCFmcmFtZSkge1xuICAgIGRlYnVnKCdmYWlsZWQgdG8gZmluZCBsb2dpbiBmcmFtZSBmb3IgMTAgc2Vjb25kcycpO1xuICAgIHRocm93IG5ldyBFcnJvcignZmFpbGVkIHRvIGV4dHJhY3QgbG9naW4gaWZyYW1lJyk7XG4gIH1cblxuICByZXR1cm4gZnJhbWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0ludmFsaWRQYXNzd29yZEVycm9yKHBhZ2U6IFBhZ2UpIHtcbiAgY29uc3QgZnJhbWUgPSBhd2FpdCBnZXRMb2dpbkZyYW1lKHBhZ2UpO1xuICBjb25zdCBlcnJvckZvdW5kID0gYXdhaXQgZWxlbWVudFByZXNlbnRPblBhZ2UoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicpO1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBlcnJvckZvdW5kID8gYXdhaXQgcGFnZUV2YWwoZnJhbWUsICdkaXYuZ2VuZXJhbC1lcnJvciA+IGRpdicsICcnLCAoaXRlbSkgPT4ge1xuICAgIHJldHVybiAoaXRlbSBhcyBIVE1MRGl2RWxlbWVudCkuaW5uZXJUZXh0O1xuICB9KSA6ICcnO1xuICByZXR1cm4gZXJyb3JNZXNzYWdlID09PSBJbnZhbGlkUGFzc3dvcmRNZXNzYWdlO1xufVxuXG5mdW5jdGlvbiBnZXRQb3NzaWJsZUxvZ2luUmVzdWx0cygpIHtcbiAgZGVidWcoJ3JldHVybiBwb3NzaWJsZSBsb2dpbiByZXN1bHRzJyk7XG4gIGNvbnN0IHVybHM6IExvZ2luT3B0aW9uc1sncG9zc2libGVSZXN1bHRzJ10gPSB7XG4gICAgW0xvZ2luUmVzdWx0cy5TdWNjZXNzXTogWy9kYXNoYm9hcmQvaV0sXG4gICAgW0xvZ2luUmVzdWx0cy5JbnZhbGlkUGFzc3dvcmRdOiBbYXN5bmMgKG9wdGlvbnM/OiB7IHBhZ2U/OiBQYWdlIH0pID0+IHtcbiAgICAgIGNvbnN0IHBhZ2UgPSBvcHRpb25zPy5wYWdlO1xuICAgICAgaWYgKCFwYWdlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkUGFzc3dvcmRFcnJvcihwYWdlKTtcbiAgICB9XSxcbiAgICAvLyBbTG9naW5SZXN1bHRzLkFjY291bnRCbG9ja2VkXTogW10sIC8vIFRPRE8gYWRkIHdoZW4gcmVhY2hpbmcgdGhpcyBzY2VuYXJpb1xuICAgIC8vIFtMb2dpblJlc3VsdHMuQ2hhbmdlUGFzc3dvcmRdOiBbXSwgLy8gVE9ETyBhZGQgd2hlbiByZWFjaGluZyB0aGlzIHNjZW5hcmlvXG4gIH07XG4gIHJldHVybiB1cmxzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2dpbkZpZWxkcyhjcmVkZW50aWFsczogU2NyYXBlclNwZWNpZmljQ3JlZGVudGlhbHMpIHtcbiAgZGVidWcoJ2NyZWF0ZSBsb2dpbiBmaWVsZHMgZm9yIHVzZXJuYW1lIGFuZCBwYXNzd29yZCcpO1xuICByZXR1cm4gW1xuICAgIHsgc2VsZWN0b3I6ICdbZm9ybWNvbnRyb2xuYW1lPVwidXNlck5hbWVcIl0nLCB2YWx1ZTogY3JlZGVudGlhbHMudXNlcm5hbWUgfSxcbiAgICB7IHNlbGVjdG9yOiAnW2Zvcm1jb250cm9sbmFtZT1cInBhc3N3b3JkXCJdJywgdmFsdWU6IGNyZWRlbnRpYWxzLnBhc3N3b3JkIH0sXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMocGFyc2VkRGF0YTogQ2FyZFRyYW5zYWN0aW9uRGV0YWlsc1tdKTogVHJhbnNhY3Rpb25bXSB7XG4gIGNvbnN0IGJhbmtBY2NvdW50cyA9IHBhcnNlZERhdGFcbiAgICAuZmxhdE1hcCgobW9udGhEYXRhKSA9PiBtb250aERhdGEucmVzdWx0LmJhbmtBY2NvdW50cyk7XG5cbiAgY29uc3QgcmVndWxhckRlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuZGViaXREYXRlcyk7XG4gIGNvbnN0IGltbWVkaWF0ZURlYml0RGF5cyA9IGJhbmtBY2NvdW50c1xuICAgIC5mbGF0TWFwKChhY2NvdW50cykgPT4gYWNjb3VudHMuaW1taWRpYXRlRGViaXRzLmRlYml0RGF5cyk7XG5cbiAgcmV0dXJuIFsuLi5yZWd1bGFyRGViaXREYXlzLCAuLi5pbW1lZGlhdGVEZWJpdERheXNdXG4gICAgLmZsYXRNYXAoKGRlYml0RGF0ZSkgPT4gZGViaXREYXRlLnRyYW5zYWN0aW9ucylcbiAgICAubWFwKCh0cmFuc2FjdGlvbikgPT4ge1xuICAgICAgY29uc3QgaW5zdGFsbG1lbnRzID0gKHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0gJiYgdHJhbnNhY3Rpb24ubnVtT2ZQYXltZW50cyAmJlxuICAgICAge1xuICAgICAgICBudW1iZXI6IHRyYW5zYWN0aW9uLmN1clBheW1lbnROdW0sXG4gICAgICAgIHRvdGFsOiB0cmFuc2FjdGlvbi5udW1PZlBheW1lbnRzLFxuICAgICAgfSkgfHxcbiAgICAgICAgdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHRyYW5zYWN0aW9uLnRyblB1cmNoYXNlRGF0ZSk7XG5cbiAgICAgIGNvbnN0IGNoYXJnZWRBbW91bnQgPSB0cmFuc2FjdGlvbi5hbXRCZWZvcmVDb252QW5kSW5kZXggKiAoLTEpO1xuICAgICAgY29uc3Qgb3JpZ2luYWxBbW91bnQgPSB0cmFuc2FjdGlvbi50cm5BbXQgKiAoLTEpO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uID0ge1xuICAgICAgICBpZGVudGlmaWVyOiB0cmFuc2FjdGlvbi50cm5JbnRJZCxcbiAgICAgICAgdHlwZTogW3RyblR5cGVDb2RlLnJlZ3VsYXIsIHRyblR5cGVDb2RlLnN0YW5kaW5nT3JkZXJdLmluY2x1ZGVzKHRyYW5zYWN0aW9uLnRyblR5cGVDb2RlKSA/XG4gICAgICAgICAgVHJhbnNhY3Rpb25UeXBlcy5Ob3JtYWwgOlxuICAgICAgICAgIFRyYW5zYWN0aW9uVHlwZXMuSW5zdGFsbG1lbnRzLFxuICAgICAgICBzdGF0dXM6IFRyYW5zYWN0aW9uU3RhdHVzZXMuQ29tcGxldGVkLFxuICAgICAgICBkYXRlOiBpbnN0YWxsbWVudHMgP1xuICAgICAgICAgIGRhdGUuYWRkKGluc3RhbGxtZW50cy5udW1iZXIgLSAxLCAnbW9udGgnKS50b0lTT1N0cmluZygpIDpcbiAgICAgICAgICBkYXRlLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIHByb2Nlc3NlZERhdGU6IG5ldyBEYXRlKHRyYW5zYWN0aW9uLmRlYkNyZERhdGUpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIG9yaWdpbmFsQW1vdW50LFxuICAgICAgICBvcmlnaW5hbEN1cnJlbmN5OiB0cmFuc2FjdGlvbi50cm5DdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgY2hhcmdlZEFtb3VudCxcbiAgICAgICAgY2hhcmdlZEN1cnJlbmN5OiB0cmFuc2FjdGlvbi5kZWJDcmRDdXJyZW5jeVN5bWJvbCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRyYW5zYWN0aW9uLm1lcmNoYW50TmFtZSxcbiAgICAgICAgbWVtbzogdHJhbnNhY3Rpb24udHJhbnNUeXBlQ29tbWVudERldGFpbHMudG9TdHJpbmcoKSxcbiAgICAgICAgY2F0ZWdvcnk6IHRyYW5zYWN0aW9uLmJyYW5jaENvZGVEZXNjLFxuICAgICAgfTtcblxuICAgICAgaWYgKGluc3RhbGxtZW50cykge1xuICAgICAgICByZXN1bHQuaW5zdGFsbG1lbnRzID0gaW5zdGFsbG1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xufVxuXG50eXBlIFNjcmFwZXJTcGVjaWZpY0NyZWRlbnRpYWxzID0geyB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nIH07XG5cbmNsYXNzIFZpc2FDYWxTY3JhcGVyIGV4dGVuZHMgQmFzZVNjcmFwZXJXaXRoQnJvd3NlcjxTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscz4ge1xuICBvcGVuTG9naW5Qb3B1cCA9IGFzeW5jICgpID0+IHtcbiAgICBkZWJ1Zygnb3BlbiBsb2dpbiBwb3B1cCwgd2FpdCB1bnRpbCBsb2dpbiBidXR0b24gYXZhaWxhYmxlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicsIHRydWUpO1xuICAgIGRlYnVnKCdjbGljayBvbiB0aGUgbG9naW4gYnV0dG9uJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24odGhpcy5wYWdlLCAnI2NjTG9naW5EZXNrdG9wQnRuJyk7XG4gICAgZGVidWcoJ2dldCB0aGUgZnJhbWUgdGhhdCBob2xkcyB0aGUgbG9naW4nKTtcbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IGdldExvZ2luRnJhbWUodGhpcy5wYWdlKTtcbiAgICBkZWJ1Zygnd2FpdCB1bnRpbCB0aGUgcGFzc3dvcmQgbG9naW4gdGFiIGhlYWRlciBpcyBhdmFpbGFibGUnKTtcbiAgICBhd2FpdCB3YWl0VW50aWxFbGVtZW50Rm91bmQoZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCduYXZpZ2F0ZSB0byB0aGUgcGFzc3dvcmQgbG9naW4gdGFiJyk7XG4gICAgYXdhaXQgY2xpY2tCdXR0b24oZnJhbWUsICcjcmVndWxhci1sb2dpbicpO1xuICAgIGRlYnVnKCd3YWl0IHVudGlsIHRoZSBwYXNzd29yZCBsb2dpbiB0YWIgaXMgYWN0aXZlJyk7XG4gICAgYXdhaXQgd2FpdFVudGlsRWxlbWVudEZvdW5kKGZyYW1lLCAncmVndWxhci1sb2dpbicpO1xuXG4gICAgcmV0dXJuIGZyYW1lO1xuICB9O1xuXG4gIGFzeW5jIGdldENhcmRzKCkge1xuICAgIGNvbnN0IGluaXREYXRhID0gYXdhaXQgd2FpdFVudGlsKFxuICAgICAgKCkgPT4gZ2V0RnJvbVNlc3Npb25TdG9yYWdlPEluaXRSZXNwb25zZT4odGhpcy5wYWdlLCAnaW5pdCcpLFxuICAgICAgJ2dldCBpbml0IGRhdGEgaW4gc2Vzc2lvbiBzdG9yYWdlJyxcbiAgICAgIDEwMDAwLFxuICAgICAgMTAwMCxcbiAgICApO1xuICAgIGlmICghaW5pdERhdGEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY291bGQgbm90IGZpbmQgXFwnaW5pdFxcJyBkYXRhIGluIHNlc3Npb24gc3RvcmFnZScpO1xuICAgIH1cbiAgICByZXR1cm4gaW5pdERhdGE/LnJlc3VsdC5jYXJkcy5tYXAoKHsgY2FyZFVuaXF1ZUlkLCBsYXN0NERpZ2l0cyB9KSA9PiAoeyBjYXJkVW5pcXVlSWQsIGxhc3Q0RGlnaXRzIH0pKTtcbiAgfVxuXG4gIGFzeW5jIGdldEF1dGhvcml6YXRpb25IZWFkZXIoKSB7XG4gICAgY29uc3QgYXV0aE1vZHVsZSA9IGF3YWl0IGdldEZyb21TZXNzaW9uU3RvcmFnZTx7IGF1dGg6IHsgY2FsQ29ubmVjdFRva2VuOiBzdHJpbmcgfSB9Pih0aGlzLnBhZ2UsICdhdXRoLW1vZHVsZScpO1xuICAgIGlmICghYXV0aE1vZHVsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb3VsZCBub3QgZmluZCBcXCdhdXRoLW1vZHVsZVxcJyBpbiBzZXNzaW9uIHN0b3JhZ2UnKTtcbiAgICB9XG4gICAgcmV0dXJuIGBDQUxBdXRoU2NoZW1lICR7YXV0aE1vZHVsZS5hdXRoLmNhbENvbm5lY3RUb2tlbn1gO1xuICB9XG5cbiAgYXN5bmMgZ2V0WFNpdGVJZCgpIHtcbiAgICAvKlxuICAgICAgSSBkb24ndCBrbm93IGlmIHRoZSBjb25zdGFudCBiZWxvdyB3aWxsIGNoYW5nZSBpbiB0aGUgZmVhdHVyZS5cbiAgICAgIElmIHNvLCB1c2UgdGhlIG5leHQgY29kZTpcblxuICAgICAgcmV0dXJuIHRoaXMucGFnZS5ldmFsdWF0ZSgoKSA9PiBuZXcgVXQoKS54U2l0ZUlkKTtcblxuICAgICAgVG8gZ2V0IHRoZSBjbGFzc25hbWUgc2VhcmNoIGZvciAneFNpdGVJZCcgaW4gdGhlIHBhZ2Ugc291cmNlXG4gICAgICBjbGFzcyBVdCB7XG4gICAgICAgIGNvbnN0cnVjdG9yKF9lLCBvbiwgeW4pIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmUgPSBfZSxcbiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gb24sXG4gICAgICAgICAgICB0aGlzLmV2ZW50QnVzU2VydmljZSA9IHluLFxuICAgICAgICAgICAgdGhpcy54U2l0ZUlkID0gXCIwOTAzMTk4Ny0yNzNFLTIzMTEtOTA2Qy04QUY4NUIxN0M4RDlcIixcbiAgICAqL1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJzA5MDMxOTg3LTI3M0UtMjMxMS05MDZDLThBRjg1QjE3QzhEOScpO1xuICB9XG5cbiAgZ2V0TG9naW5PcHRpb25zKGNyZWRlbnRpYWxzOiBTY3JhcGVyU3BlY2lmaWNDcmVkZW50aWFscyk6IExvZ2luT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvZ2luVXJsOiBgJHtMT0dJTl9VUkx9YCxcbiAgICAgIGZpZWxkczogY3JlYXRlTG9naW5GaWVsZHMoY3JlZGVudGlhbHMpLFxuICAgICAgc3VibWl0QnV0dG9uU2VsZWN0b3I6ICdidXR0b25bdHlwZT1cInN1Ym1pdFwiXScsXG4gICAgICBwb3NzaWJsZVJlc3VsdHM6IGdldFBvc3NpYmxlTG9naW5SZXN1bHRzKCksXG4gICAgICBjaGVja1JlYWRpbmVzczogYXN5bmMgKCkgPT4gd2FpdFVudGlsRWxlbWVudEZvdW5kKHRoaXMucGFnZSwgJyNjY0xvZ2luRGVza3RvcEJ0bicpLFxuICAgICAgcHJlQWN0aW9uOiB0aGlzLm9wZW5Mb2dpblBvcHVwLFxuICAgICAgcG9zdEFjdGlvbjogYXN5bmMgKCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHdhaXRVbnRpbEVsZW1lbnRGb3VuZCh0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnc2l0ZS10dXRvcmlhbCcpKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGlja0J1dHRvbih0aGlzLnBhZ2UsICdidXR0b24uYnRuLWNsb3NlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IGdldEN1cnJlbnRVcmwodGhpcy5wYWdlKTtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5lbmRzV2l0aCgnZGFzaGJvYXJkJykpIHJldHVybjtcbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlckFnZW50OiAnTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvNzguMC4zOTA0LjEwOCBTYWZhcmkvNTM3LjM2JyxcbiAgICB9O1xuICB9XG5cbiAgaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKHJlc3VsdDogQ2FyZFRyYW5zYWN0aW9uRGV0YWlscyB8IENhcmRUcmFuc2FjdGlvbkRldGFpbHNFcnJvcik6XG4gICAgcmVzdWx0IGlzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMge1xuICAgIHJldHVybiAocmVzdWx0IGFzIENhcmRUcmFuc2FjdGlvbkRldGFpbHMpLnJlc3VsdCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXN5bmMgZmV0Y2hEYXRhKCk6IFByb21pc2U8U2NyYXBlclNjcmFwaW5nUmVzdWx0PiB7XG4gICAgY29uc3QgZGVmYXVsdFN0YXJ0TW9tZW50ID0gbW9tZW50KCkuc3VidHJhY3QoMSwgJ3llYXJzJykuc3VidHJhY3QoNiwgJ21vbnRocycpLmFkZCgxLCAnZGF5Jyk7XG4gICAgY29uc3Qgc3RhcnREYXRlID0gdGhpcy5vcHRpb25zLnN0YXJ0RGF0ZSB8fCBkZWZhdWx0U3RhcnRNb21lbnQudG9EYXRlKCk7XG4gICAgY29uc3Qgc3RhcnRNb21lbnQgPSBtb21lbnQubWF4KGRlZmF1bHRTdGFydE1vbWVudCwgbW9tZW50KHN0YXJ0RGF0ZSkpO1xuICAgIGRlYnVnKGBmZXRjaCB0cmFuc2FjdGlvbnMgc3RhcnRpbmcgJHtzdGFydE1vbWVudC5mb3JtYXQoKX1gKTtcblxuICAgIGNvbnN0IEF1dGhvcml6YXRpb24gPSBhd2FpdCB0aGlzLmdldEF1dGhvcml6YXRpb25IZWFkZXIoKTtcbiAgICBjb25zdCBjYXJkcyA9IGF3YWl0IHRoaXMuZ2V0Q2FyZHMoKTtcbiAgICBjb25zdCB4U2l0ZUlkID0gYXdhaXQgdGhpcy5nZXRYU2l0ZUlkKCk7XG4gICAgY29uc3QgZnV0dXJlTW9udGhzVG9TY3JhcGUgPSB0aGlzLm9wdGlvbnMuZnV0dXJlTW9udGhzVG9TY3JhcGUgPz8gMTtcblxuICAgIGNvbnN0IGFjY291bnRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjYXJkcy5tYXAoYXN5bmMgKGNhcmQpID0+IHtcbiAgICAgICAgZGVidWcoYGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQuY2FyZFVuaXF1ZUlkfWApO1xuXG4gICAgICAgIGNvbnN0IGZpbmFsTW9udGhUb0ZldGNoTW9tZW50ID0gbW9tZW50KCkuYWRkKGZ1dHVyZU1vbnRoc1RvU2NyYXBlLCAnbW9udGgnKTtcbiAgICAgICAgY29uc3QgbW9udGhzID0gZmluYWxNb250aFRvRmV0Y2hNb21lbnQuZGlmZihzdGFydE1vbWVudCwgJ21vbnRocycpO1xuXG4gICAgICAgIGNvbnN0IGFsbE1vbnRoc0RhdGE6IChDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKVtdID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IG1vbnRoczsgaSArPSAxKSB7XG4gICAgICAgICAgY29uc3QgbW9udGggPSBmaW5hbE1vbnRoVG9GZXRjaE1vbWVudC5jbG9uZSgpLnN1YnRyYWN0KGksICdtb250aHMnKTtcbiAgICAgICAgICBjb25zdCBtb250aERhdGEgPSBhd2FpdCBmZXRjaFBvc3RXaXRoaW5QYWdlPENhcmRUcmFuc2FjdGlvbkRldGFpbHMgfCBDYXJkVHJhbnNhY3Rpb25EZXRhaWxzRXJyb3I+KFxuICAgICAgICAgICAgdGhpcy5wYWdlLCBUUkFOU0FDVElPTlNfUkVRVUVTVF9FTkRQT0lOVCxcbiAgICAgICAgICAgIHsgY2FyZFVuaXF1ZUlkOiBjYXJkLmNhcmRVbmlxdWVJZCwgbW9udGg6IG1vbnRoLmZvcm1hdCgnTScpLCB5ZWFyOiBtb250aC5mb3JtYXQoJ1lZWVknKSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBBdXRob3JpemF0aW9uLFxuICAgICAgICAgICAgICAnWC1TaXRlLUlkJzogeFNpdGVJZCxcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChtb250aERhdGE/LnN0YXR1c0NvZGUgIT09IDEpIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGZldGNoIHRyYW5zYWN0aW9ucyBmb3IgY2FyZCAke2NhcmQubGFzdDREaWdpdHN9LiBNZXNzYWdlOiAke21vbnRoRGF0YT8udGl0bGUgfHwgJyd9YCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuaXNDYXJkVHJhbnNhY3Rpb25EZXRhaWxzKG1vbnRoRGF0YSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignbW9udGhEYXRhIGlzIG5vdCBvZiB0eXBlIENhcmRUcmFuc2FjdGlvbkRldGFpbHMnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhbGxNb250aHNEYXRhLnB1c2gobW9udGhEYXRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9ucyA9IGNvbnZlcnRQYXJzZWREYXRhVG9UcmFuc2FjdGlvbnMoYWxsTW9udGhzRGF0YSk7XG5cbiAgICAgICAgZGVidWcoJ2ZpbGVyIG91dCBvbGQgdHJhbnNhY3Rpb25zJyk7XG4gICAgICAgIGNvbnN0IHR4bnMgPSAodGhpcy5vcHRpb25zLm91dHB1dERhdGE/LmVuYWJsZVRyYW5zYWN0aW9uc0ZpbHRlckJ5RGF0ZSA/PyB0cnVlKSA/XG4gICAgICAgICAgZmlsdGVyT2xkVHJhbnNhY3Rpb25zKHRyYW5zYWN0aW9ucywgbW9tZW50KHN0YXJ0RGF0ZSksIHRoaXMub3B0aW9ucy5jb21iaW5lSW5zdGFsbG1lbnRzIHx8IGZhbHNlKSA6XG4gICAgICAgICAgdHJhbnNhY3Rpb25zO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHhucyxcbiAgICAgICAgICBhY2NvdW50TnVtYmVyOiBjYXJkLmxhc3Q0RGlnaXRzLFxuICAgICAgICB9IGFzIFRyYW5zYWN0aW9uc0FjY291bnQ7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgZGVidWcoJ3JldHVybiB0aGUgc2NyYXBlZCBhY2NvdW50cycpO1xuXG4gICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoYWNjb3VudHMsIG51bGwsIDIpKTtcbiAgICByZXR1cm4ge1xuICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgIGFjY291bnRzLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlzYUNhbFNjcmFwZXI7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "israeli-bank-scrapers",
3
- "version": "4.1.1",
3
+ "version": "4.2.1",
4
4
  "private": false,
5
5
  "description": "Provide scrapers for all major Israeli banks and credit card companies",
6
6
  "engines": {