merchi_checkout 1.1.0 → 1.2.0

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.
@@ -5,21 +5,23 @@ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableTo
5
5
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
6
  function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
7
7
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
8
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14
9
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
15
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16
11
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
12
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
18
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
18
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
19
  import * as React from 'react';
20
- import { createContext, useContext, useEffect, useState } from 'react';
21
- import { tabsInit } from '../tabs_utils';
20
+ import { createContext, useContext, useEffect, useLayoutEffect, useState } from 'react';
21
+ import { tabsInit, tabIdConfirm } from '../tabs_utils';
22
22
  import { Merchi } from 'merchi_sdk_ts';
23
+ import { buildCheckoutSession, checkoutSessionChanged, getCheckoutQuoteSignature, getSafeRestoredTabIndex, loadCheckoutSession, mergeJobWithCheckoutSession, saveCheckoutSession } from '../checkoutSession';
24
+ import { isUserRegistered } from '../utils';
23
25
  import { jsx as _jsx } from "react/jsx-runtime";
24
26
  var MerchiCheckoutContext = /*#__PURE__*/createContext({
25
27
  activeTabIndex: 0,
@@ -59,6 +61,7 @@ var MerchiCheckoutContext = /*#__PURE__*/createContext({
59
61
  classNameMerchiCheckoutTabButton: undefined,
60
62
  classNameMerchiInvoiceButtonPayInvoice: undefined,
61
63
  clearCustomer: function clearCustomer() {},
64
+ cancelCheckoutOrder: function cancelCheckoutOrder() {},
62
65
  currentUser: undefined,
63
66
  customer: undefined,
64
67
  discountButtonText: undefined,
@@ -110,126 +113,183 @@ var MerchiCheckoutContext = /*#__PURE__*/createContext({
110
113
  export var useMerchiCheckboutContext = function useMerchiCheckboutContext() {
111
114
  return useContext(MerchiCheckoutContext);
112
115
  };
113
- export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
114
- var children = _ref.children,
115
- _ref$classNameMerchiC = _ref.classNameMerchiCheckoutAlertsContainer,
116
- classNameMerchiCheckoutAlertsContainer = _ref$classNameMerchiC === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref$classNameMerchiC,
117
- _ref$classNameMerchiC2 = _ref.classNameMerchiCheckoutAlert,
118
- classNameMerchiCheckoutAlert = _ref$classNameMerchiC2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref$classNameMerchiC2,
119
- _ref$classNameMerchiC3 = _ref.classNameMerchiCheckoutAlertError,
120
- classNameMerchiCheckoutAlertError = _ref$classNameMerchiC3 === void 0 ? 'alert-danger' : _ref$classNameMerchiC3,
121
- _ref$classNameMerchiC4 = _ref.classNameMerchiCheckoutAlertSuccess,
122
- classNameMerchiCheckoutAlertSuccess = _ref$classNameMerchiC4 === void 0 ? 'alert-success' : _ref$classNameMerchiC4,
123
- _ref$classNameMerchiC5 = _ref.classNameMerchiCheckoutButtonPrimary,
124
- classNameMerchiCheckoutButtonPrimary = _ref$classNameMerchiC5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref$classNameMerchiC5,
125
- _ref$classNameMerchiC6 = _ref.classNameMerchiCheckoutButtonPrimaryBlock,
126
- classNameMerchiCheckoutButtonPrimaryBlock = _ref$classNameMerchiC6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiC6,
127
- _ref$classNameMerchiC7 = _ref.classNameMerchiCheckoutButtonSecondary,
128
- classNameMerchiCheckoutButtonSecondary = _ref$classNameMerchiC7 === void 0 ? 'btn btn-lg btn-secondary' : _ref$classNameMerchiC7,
129
- _ref$classNameMerchiC8 = _ref.classNameMerchiCheckoutButtonSecondaryBlock,
130
- classNameMerchiCheckoutButtonSecondaryBlock = _ref$classNameMerchiC8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref$classNameMerchiC8,
131
- _ref$classNameMerchiC9 = _ref.classNameMerchiCheckoutButtonDownloadInvoice,
132
- classNameMerchiCheckoutButtonDownloadInvoice = _ref$classNameMerchiC9 === void 0 ? 'btn btn-lg btn-primary' : _ref$classNameMerchiC9,
133
- _ref$classNameMerchiC10 = _ref.classNameMerchiCheckoutConfirmInfoPanel,
134
- classNameMerchiCheckoutConfirmInfoPanel = _ref$classNameMerchiC10 === void 0 ? 'd-flex align-items-center' : _ref$classNameMerchiC10,
135
- _ref$classNameMerchiC11 = _ref.classNameMerchiCheckoutFooterActionsContainer,
136
- classNameMerchiCheckoutFooterActionsContainer = _ref$classNameMerchiC11 === void 0 ? 'd-flex justify-content-between mt-4' : _ref$classNameMerchiC11,
137
- _ref$classNameMerchiC12 = _ref.classNameMerchiCheckoutFormCheckbox,
138
- classNameMerchiCheckoutFormCheckbox = _ref$classNameMerchiC12 === void 0 ? 'form-check-input' : _ref$classNameMerchiC12,
139
- _ref$classNameMerchiC13 = _ref.classNameMerchiCheckoutFormGroup,
140
- classNameMerchiCheckoutFormGroup = _ref$classNameMerchiC13 === void 0 ? 'form-group' : _ref$classNameMerchiC13,
141
- _ref$classNameMerchiC14 = _ref.classNameMerchiCheckoutFormGroupCheckbox,
142
- classNameMerchiCheckoutFormGroupCheckbox = _ref$classNameMerchiC14 === void 0 ? 'form-check' : _ref$classNameMerchiC14,
143
- _ref$classNameMerchiC15 = _ref.classNameMerchiCheckoutFormInput,
144
- classNameMerchiCheckoutFormInput = _ref$classNameMerchiC15 === void 0 ? 'form-control' : _ref$classNameMerchiC15,
145
- _ref$classNameMerchiC16 = _ref.classNameMerchiCheckoutFormSelect,
146
- classNameMerchiCheckoutFormSelect = _ref$classNameMerchiC16 === void 0 ? 'form-control' : _ref$classNameMerchiC16,
147
- _ref$classNameMerchiC17 = _ref.classNameMerchiCheckoutGoogleSuggestList,
148
- classNameMerchiCheckoutGoogleSuggestList = _ref$classNameMerchiC17 === void 0 ? 'list-group m-b-0' : _ref$classNameMerchiC17,
149
- _ref$classNameMerchiC18 = _ref.classNameMerchiCheckoutGoogleSuggestListItem,
150
- classNameMerchiCheckoutGoogleSuggestListItem = _ref$classNameMerchiC18 === void 0 ? 'list-group-item cursor-pointer' : _ref$classNameMerchiC18,
151
- _ref$classNameMerchiC19 = _ref.classNameMerchiCheckoutListGroupItemLoader,
152
- classNameMerchiCheckoutListGroupItemLoader = _ref$classNameMerchiC19 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC19,
153
- _ref$classNameMerchiC20 = _ref.classNameMerchiCheckoutInputError,
154
- classNameMerchiCheckoutInputError = _ref$classNameMerchiC20 === void 0 ? 'text-danger' : _ref$classNameMerchiC20,
155
- _ref$classNameMerchiC21 = _ref.classNameMerchiCheckoutFormLabelCheckbox,
156
- classNameMerchiCheckoutFormLabelCheckbox = _ref$classNameMerchiC21 === void 0 ? '' : _ref$classNameMerchiC21,
157
- _ref$classNameMerchiC22 = _ref.classNameMerchiCheckoutListGroup,
158
- classNameMerchiCheckoutListGroup = _ref$classNameMerchiC22 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref$classNameMerchiC22,
159
- _ref$classNameMerchiC23 = _ref.classNameMerchiCheckoutListGroupItem,
160
- classNameMerchiCheckoutListGroupItem = _ref$classNameMerchiC23 === void 0 ? 'list-group-item' : _ref$classNameMerchiC23,
161
- _ref$classNameMerchiC24 = _ref.classNameMerchiCheckoutRow,
162
- classNameMerchiCheckoutRow = _ref$classNameMerchiC24 === void 0 ? 'merchi-row' : _ref$classNameMerchiC24,
163
- _ref$classNameMerchiC25 = _ref.classNameMerchiCheckoutRowColumn,
164
- classNameMerchiCheckoutRowColumn = _ref$classNameMerchiC25 === void 0 ? 'merchi-column' : _ref$classNameMerchiC25,
165
- _ref$classNameMerchiC26 = _ref.classNameMerchiCheckoutSubtitle,
166
- classNameMerchiCheckoutSubtitle = _ref$classNameMerchiC26 === void 0 ? 'merchi-checkout-subtitle' : _ref$classNameMerchiC26,
167
- _ref$classNameMerchiC27 = _ref.classNameMerchiCheckoutTabsContainer,
168
- classNameMerchiCheckoutTabsContainer = _ref$classNameMerchiC27 === void 0 ? 'merchi-checkout-tabs-container' : _ref$classNameMerchiC27,
169
- _ref$classNameMerchiC28 = _ref.classNameMerchiCheckoutTab,
170
- classNameMerchiCheckoutTab = _ref$classNameMerchiC28 === void 0 ? 'merchi-checkout-tab' : _ref$classNameMerchiC28,
171
- _ref$classNameMerchiC29 = _ref.classNameMerchiCheckoutTabButton,
172
- classNameMerchiCheckoutTabButton = _ref$classNameMerchiC29 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref$classNameMerchiC29,
173
- _ref$classNameMerchiC30 = _ref.classNameMerchiCheckoutTabPane,
174
- classNameMerchiCheckoutTabPane = _ref$classNameMerchiC30 === void 0 ? 'tab-pane' : _ref$classNameMerchiC30,
175
- _ref$classNameMerchiC31 = _ref.classNameMerchiCheckoutTabPaneContainer,
176
- classNameMerchiCheckoutTabPaneContainer = _ref$classNameMerchiC31 === void 0 ? 'tab-content' : _ref$classNameMerchiC31,
177
- _ref$classNameMerchiI = _ref.classNameMerchiInvoiceButtonPayInvoice,
178
- classNameMerchiInvoiceButtonPayInvoice = _ref$classNameMerchiI === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref$classNameMerchiI,
179
- currentUser = _ref.currentUser,
180
- _ref$discountButtonTe = _ref.discountButtonText,
181
- discountButtonText = _ref$discountButtonTe === void 0 ? 'Apply' : _ref$discountButtonTe,
182
- _ref$discountClassNam = _ref.discountClassName,
183
- discountClassName = _ref$discountClassNam === void 0 ? 'merchi-checkout-discount-code-container' : _ref$discountClassNam,
184
- _ref$discountClassNam2 = _ref.discountClassNameButton,
185
- discountClassNameButton = _ref$discountClassNam2 === void 0 ? 'btn btn-primary' : _ref$discountClassNam2,
186
- _ref$discountClassNam3 = _ref.discountClassNameButtonContainer,
187
- discountClassNameButtonContainer = _ref$discountClassNam3 === void 0 ? '' : _ref$discountClassNam3,
188
- _ref$discountClassNam4 = _ref.discountClassNameButtonItemRemove,
189
- discountClassNameButtonItemRemove = _ref$discountClassNam4 === void 0 ? 'btn btn-sm btn-link' : _ref$discountClassNam4,
190
- _ref$discountClassNam5 = _ref.discountClassNameErrorMessage,
191
- discountClassNameErrorMessage = _ref$discountClassNam5 === void 0 ? 'text-danger' : _ref$discountClassNam5,
192
- _ref$discountClassNam6 = _ref.discountClassNameInput,
193
- discountClassNameInput = _ref$discountClassNam6 === void 0 ? 'form-control' : _ref$discountClassNam6,
194
- _ref$discountClassNam7 = _ref.discountClassNameInputContainer,
195
- discountClassNameInputContainer = _ref$discountClassNam7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref$discountClassNam7,
196
- _ref$discountClassNam8 = _ref.discountClassNameInputdiscountLabel,
197
- discountClassNameInputdiscountLabel = _ref$discountClassNam8 === void 0 ? 'visually-hidden' : _ref$discountClassNam8,
198
- _ref$discountClassNam9 = _ref.discountClassNameListItem,
199
- discountClassNameListItem = _ref$discountClassNam9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref$discountClassNam9,
200
- _ref$discountClassNam10 = _ref.discountClassNameListItems,
201
- discountClassNameListItems = _ref$discountClassNam10 === void 0 ? 'list-group' : _ref$discountClassNam10,
202
- discountClassNameMainContainer = _ref.discountClassNameMainContainer,
203
- _ref$discountLabel = _ref.discountLabel,
204
- discountLabel = _ref$discountLabel === void 0 ? 'Discount code' : _ref$discountLabel,
205
- _ref$discountShowAppl = _ref.discountShowAppliedItems,
206
- discountShowAppliedItems = _ref$discountShowAppl === void 0 ? true : _ref$discountShowAppl,
207
- _ref$includeDomainSig = _ref.includeDomainSignup,
208
- includeDomainSignup = _ref$includeDomainSig === void 0 ? false : _ref$includeDomainSig,
209
- invoice = _ref.invoice,
116
+ function buildTabsState(jobForTabs, _ref) {
117
+ var includeDomainSignup = _ref.includeDomainSignup,
210
118
  isBuyRequest = _ref.isBuyRequest,
211
- isOpen = _ref.isOpen,
212
- _ref$isProductEmbedFo = _ref.isProductEmbedForm,
213
- isProductEmbedForm = _ref$isProductEmbedFo === void 0 ? false : _ref$isProductEmbedFo,
214
- job = _ref.job,
215
- product = _ref.product,
216
- messageSuccessBuyRequest = _ref.messageSuccessBuyRequest,
217
- messageSuccessQuoteRequest = _ref.messageSuccessQuoteRequest,
218
- redirectAfterSuccessUrl = _ref.redirectAfterSuccessUrl,
219
- redirectAfterQuoteSuccessUrl = _ref.redirectAfterQuoteSuccessUrl,
220
- redirectWithValue = _ref.redirectWithValue,
221
- setInvoice = _ref.setInvoice,
222
- setJob = _ref.setJob,
223
- _ref$showDiscountCode = _ref.showDiscountCode,
224
- showDiscountCode = _ref$showDiscountCode === void 0 ? true : _ref$showDiscountCode,
225
- _ref$showUserTermsAnd = _ref.showUserTermsAndConditions,
226
- showUserTermsAndConditions = _ref$showUserTermsAnd === void 0 ? true : _ref$showUserTermsAnd,
227
- toggleMerchiCheckout = _ref.toggleMerchiCheckout,
228
- _ref$urlApi = _ref.urlApi,
229
- urlApi = _ref$urlApi === void 0 ? 'https://api.merchi.co/v6/' : _ref$urlApi,
230
- _ref$urlFrontend = _ref.urlFrontend,
231
- urlFrontend = _ref$urlFrontend === void 0 ? 'https://merchi.co/' : _ref$urlFrontend;
232
- var _useState = useState(0),
119
+ _ref$tabIndex = _ref.tabIndex,
120
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
121
+ if (!(jobForTabs !== null && jobForTabs !== void 0 && jobForTabs.product)) {
122
+ return {
123
+ tabs: [],
124
+ activeTabIndex: 0
125
+ };
126
+ }
127
+ var baseTabs = tabsInit({
128
+ job: jobForTabs,
129
+ includeDomainSignup: includeDomainSignup,
130
+ isBuyRequest: isBuyRequest
131
+ });
132
+ if (!baseTabs.length) {
133
+ return {
134
+ tabs: [],
135
+ activeTabIndex: 0
136
+ };
137
+ }
138
+ var safeIndex = Math.max(0, Math.min(tabIndex, baseTabs.length - 1));
139
+ var tabsWithProgress = baseTabs.map(function (tab, i) {
140
+ return _objectSpread(_objectSpread({}, tab), {}, {
141
+ disabled: i > safeIndex
142
+ });
143
+ });
144
+ return {
145
+ tabs: tabsWithProgress,
146
+ activeTabIndex: safeIndex
147
+ };
148
+ }
149
+ function getInitialTabsState(job, product, includeDomainSignup, isBuyRequest, invoice) {
150
+ var _session$activeTabInd;
151
+ if (!(product !== null && product !== void 0 && product.id)) {
152
+ return {
153
+ tabs: [],
154
+ activeTabIndex: 0
155
+ };
156
+ }
157
+ var session = loadCheckoutSession(product);
158
+ var mergedJob = mergeJobWithCheckoutSession(job, session);
159
+ var restoredInvoice = invoice !== null && invoice !== void 0 && invoice.id ? invoice : session === null || session === void 0 ? void 0 : session.invoice;
160
+ var tabIndex = getSafeRestoredTabIndex(mergedJob, {
161
+ includeDomainSignup: includeDomainSignup,
162
+ isBuyRequest: isBuyRequest
163
+ }, (_session$activeTabInd = session === null || session === void 0 ? void 0 : session.activeTabIndex) !== null && _session$activeTabInd !== void 0 ? _session$activeTabInd : 0, restoredInvoice);
164
+ return buildTabsState(mergedJob, {
165
+ includeDomainSignup: includeDomainSignup,
166
+ isBuyRequest: isBuyRequest,
167
+ tabIndex: tabIndex
168
+ });
169
+ }
170
+ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref2) {
171
+ var children = _ref2.children,
172
+ _ref2$classNameMerchi = _ref2.classNameMerchiCheckoutAlertsContainer,
173
+ classNameMerchiCheckoutAlertsContainer = _ref2$classNameMerchi === void 0 ? 'd-flex justify-content-center flex-column alerts-container-sm' : _ref2$classNameMerchi,
174
+ _ref2$classNameMerchi2 = _ref2.classNameMerchiCheckoutAlert,
175
+ classNameMerchiCheckoutAlert = _ref2$classNameMerchi2 === void 0 ? 'alert alert-dismissible alert-notify' : _ref2$classNameMerchi2,
176
+ _ref2$classNameMerchi3 = _ref2.classNameMerchiCheckoutAlertError,
177
+ classNameMerchiCheckoutAlertError = _ref2$classNameMerchi3 === void 0 ? 'alert-danger' : _ref2$classNameMerchi3,
178
+ _ref2$classNameMerchi4 = _ref2.classNameMerchiCheckoutAlertSuccess,
179
+ classNameMerchiCheckoutAlertSuccess = _ref2$classNameMerchi4 === void 0 ? 'alert-success' : _ref2$classNameMerchi4,
180
+ _ref2$classNameMerchi5 = _ref2.classNameMerchiCheckoutButtonPrimary,
181
+ classNameMerchiCheckoutButtonPrimary = _ref2$classNameMerchi5 === void 0 ? 'btn btn-lmd btn-primary d-flex align-items-center justify-content-center' : _ref2$classNameMerchi5,
182
+ _ref2$classNameMerchi6 = _ref2.classNameMerchiCheckoutButtonPrimaryBlock,
183
+ classNameMerchiCheckoutButtonPrimaryBlock = _ref2$classNameMerchi6 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi6,
184
+ _ref2$classNameMerchi7 = _ref2.classNameMerchiCheckoutButtonSecondary,
185
+ classNameMerchiCheckoutButtonSecondary = _ref2$classNameMerchi7 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi7,
186
+ _ref2$classNameMerchi8 = _ref2.classNameMerchiCheckoutButtonSecondaryBlock,
187
+ classNameMerchiCheckoutButtonSecondaryBlock = _ref2$classNameMerchi8 === void 0 ? 'btn btn-lg btn-secondary btn-block' : _ref2$classNameMerchi8,
188
+ _ref2$classNameMerchi9 = _ref2.classNameMerchiCheckoutButtonDownloadInvoice,
189
+ classNameMerchiCheckoutButtonDownloadInvoice = _ref2$classNameMerchi9 === void 0 ? 'btn btn-lg btn-primary' : _ref2$classNameMerchi9,
190
+ _ref2$classNameMerchi10 = _ref2.classNameMerchiCheckoutButtonCancelOrder,
191
+ classNameMerchiCheckoutButtonCancelOrder = _ref2$classNameMerchi10 === void 0 ? 'btn btn-lg btn-secondary' : _ref2$classNameMerchi10,
192
+ _ref2$classNameMerchi11 = _ref2.classNameMerchiCheckoutConfirmInfoPanel,
193
+ classNameMerchiCheckoutConfirmInfoPanel = _ref2$classNameMerchi11 === void 0 ? 'd-flex align-items-center' : _ref2$classNameMerchi11,
194
+ _ref2$classNameMerchi12 = _ref2.classNameMerchiCheckoutFooterActionsContainer,
195
+ classNameMerchiCheckoutFooterActionsContainer = _ref2$classNameMerchi12 === void 0 ? 'd-flex justify-content-between mt-4' : _ref2$classNameMerchi12,
196
+ _ref2$classNameMerchi13 = _ref2.classNameMerchiCheckoutFormCheckbox,
197
+ classNameMerchiCheckoutFormCheckbox = _ref2$classNameMerchi13 === void 0 ? 'form-check-input' : _ref2$classNameMerchi13,
198
+ _ref2$classNameMerchi14 = _ref2.classNameMerchiCheckoutFormGroup,
199
+ classNameMerchiCheckoutFormGroup = _ref2$classNameMerchi14 === void 0 ? 'form-group' : _ref2$classNameMerchi14,
200
+ _ref2$classNameMerchi15 = _ref2.classNameMerchiCheckoutFormGroupCheckbox,
201
+ classNameMerchiCheckoutFormGroupCheckbox = _ref2$classNameMerchi15 === void 0 ? 'form-check' : _ref2$classNameMerchi15,
202
+ _ref2$classNameMerchi16 = _ref2.classNameMerchiCheckoutFormInput,
203
+ classNameMerchiCheckoutFormInput = _ref2$classNameMerchi16 === void 0 ? 'form-control' : _ref2$classNameMerchi16,
204
+ _ref2$classNameMerchi17 = _ref2.classNameMerchiCheckoutFormSelect,
205
+ classNameMerchiCheckoutFormSelect = _ref2$classNameMerchi17 === void 0 ? 'form-control' : _ref2$classNameMerchi17,
206
+ _ref2$classNameMerchi18 = _ref2.classNameMerchiCheckoutGoogleSuggestList,
207
+ classNameMerchiCheckoutGoogleSuggestList = _ref2$classNameMerchi18 === void 0 ? 'merchi-checkout-google-suggest-list' : _ref2$classNameMerchi18,
208
+ _ref2$classNameMerchi19 = _ref2.classNameMerchiCheckoutGoogleSuggestListItem,
209
+ classNameMerchiCheckoutGoogleSuggestListItem = _ref2$classNameMerchi19 === void 0 ? 'merchi-checkout-google-suggest-list-item' : _ref2$classNameMerchi19,
210
+ _ref2$classNameMerchi20 = _ref2.classNameMerchiCheckoutListGroupItemLoader,
211
+ classNameMerchiCheckoutListGroupItemLoader = _ref2$classNameMerchi20 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi20,
212
+ _ref2$classNameMerchi21 = _ref2.classNameMerchiCheckoutInputError,
213
+ classNameMerchiCheckoutInputError = _ref2$classNameMerchi21 === void 0 ? 'text-danger' : _ref2$classNameMerchi21,
214
+ _ref2$classNameMerchi22 = _ref2.classNameMerchiCheckoutFormLabelCheckbox,
215
+ classNameMerchiCheckoutFormLabelCheckbox = _ref2$classNameMerchi22 === void 0 ? '' : _ref2$classNameMerchi22,
216
+ _ref2$classNameMerchi23 = _ref2.classNameMerchiCheckoutListGroup,
217
+ classNameMerchiCheckoutListGroup = _ref2$classNameMerchi23 === void 0 ? 'modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi23,
218
+ _ref2$classNameMerchi24 = _ref2.classNameMerchiCheckoutListGroupItem,
219
+ classNameMerchiCheckoutListGroupItem = _ref2$classNameMerchi24 === void 0 ? 'list-group-item modal-merchi-checkout-shipment-option' : _ref2$classNameMerchi24,
220
+ _ref2$classNameMerchi25 = _ref2.classNameMerchiCheckoutRow,
221
+ classNameMerchiCheckoutRow = _ref2$classNameMerchi25 === void 0 ? 'merchi-row' : _ref2$classNameMerchi25,
222
+ _ref2$classNameMerchi26 = _ref2.classNameMerchiCheckoutRowColumn,
223
+ classNameMerchiCheckoutRowColumn = _ref2$classNameMerchi26 === void 0 ? 'merchi-column' : _ref2$classNameMerchi26,
224
+ _ref2$classNameMerchi27 = _ref2.classNameMerchiCheckoutSubtitle,
225
+ classNameMerchiCheckoutSubtitle = _ref2$classNameMerchi27 === void 0 ? 'merchi-checkout-subtitle' : _ref2$classNameMerchi27,
226
+ _ref2$classNameMerchi28 = _ref2.classNameMerchiCheckoutTabsContainer,
227
+ classNameMerchiCheckoutTabsContainer = _ref2$classNameMerchi28 === void 0 ? 'merchi-checkout-tabs-container' : _ref2$classNameMerchi28,
228
+ _ref2$classNameMerchi29 = _ref2.classNameMerchiCheckoutTab,
229
+ classNameMerchiCheckoutTab = _ref2$classNameMerchi29 === void 0 ? 'merchi-checkout-tab' : _ref2$classNameMerchi29,
230
+ _ref2$classNameMerchi30 = _ref2.classNameMerchiCheckoutTabButton,
231
+ classNameMerchiCheckoutTabButton = _ref2$classNameMerchi30 === void 0 ? 'btn merchi-checkout-tab-btn' : _ref2$classNameMerchi30,
232
+ _ref2$classNameMerchi31 = _ref2.classNameMerchiCheckoutTabPane,
233
+ classNameMerchiCheckoutTabPane = _ref2$classNameMerchi31 === void 0 ? 'tab-pane' : _ref2$classNameMerchi31,
234
+ _ref2$classNameMerchi32 = _ref2.classNameMerchiCheckoutTabPaneContainer,
235
+ classNameMerchiCheckoutTabPaneContainer = _ref2$classNameMerchi32 === void 0 ? 'tab-content' : _ref2$classNameMerchi32,
236
+ _ref2$classNameMerchi33 = _ref2.classNameMerchiInvoiceButtonPayInvoice,
237
+ classNameMerchiInvoiceButtonPayInvoice = _ref2$classNameMerchi33 === void 0 ? 'btn btn-lg btn-primary btn-block' : _ref2$classNameMerchi33,
238
+ currentUser = _ref2.currentUser,
239
+ _ref2$discountButtonT = _ref2.discountButtonText,
240
+ discountButtonText = _ref2$discountButtonT === void 0 ? 'Apply' : _ref2$discountButtonT,
241
+ _ref2$discountClassNa = _ref2.discountClassName,
242
+ discountClassName = _ref2$discountClassNa === void 0 ? 'merchi-checkout-discount-code-container' : _ref2$discountClassNa,
243
+ _ref2$discountClassNa2 = _ref2.discountClassNameButton,
244
+ discountClassNameButton = _ref2$discountClassNa2 === void 0 ? 'btn btn-primary' : _ref2$discountClassNa2,
245
+ _ref2$discountClassNa3 = _ref2.discountClassNameButtonContainer,
246
+ discountClassNameButtonContainer = _ref2$discountClassNa3 === void 0 ? '' : _ref2$discountClassNa3,
247
+ _ref2$discountClassNa4 = _ref2.discountClassNameButtonItemRemove,
248
+ discountClassNameButtonItemRemove = _ref2$discountClassNa4 === void 0 ? 'btn btn-sm btn-link' : _ref2$discountClassNa4,
249
+ _ref2$discountClassNa5 = _ref2.discountClassNameErrorMessage,
250
+ discountClassNameErrorMessage = _ref2$discountClassNa5 === void 0 ? 'text-danger' : _ref2$discountClassNa5,
251
+ _ref2$discountClassNa6 = _ref2.discountClassNameInput,
252
+ discountClassNameInput = _ref2$discountClassNa6 === void 0 ? 'form-control' : _ref2$discountClassNa6,
253
+ _ref2$discountClassNa7 = _ref2.discountClassNameInputContainer,
254
+ discountClassNameInputContainer = _ref2$discountClassNa7 === void 0 ? 'merchi-checkout-discount-code-field-container' : _ref2$discountClassNa7,
255
+ _ref2$discountClassNa8 = _ref2.discountClassNameInputdiscountLabel,
256
+ discountClassNameInputdiscountLabel = _ref2$discountClassNa8 === void 0 ? 'merchi-checkout-discount-code-label' : _ref2$discountClassNa8,
257
+ _ref2$discountClassNa9 = _ref2.discountClassNameListItem,
258
+ discountClassNameListItem = _ref2$discountClassNa9 === void 0 ? 'list-group-item d-flex align-items-center justify-content-between mt-2' : _ref2$discountClassNa9,
259
+ _ref2$discountClassNa10 = _ref2.discountClassNameListItems,
260
+ discountClassNameListItems = _ref2$discountClassNa10 === void 0 ? 'list-group' : _ref2$discountClassNa10,
261
+ discountClassNameMainContainer = _ref2.discountClassNameMainContainer,
262
+ _ref2$discountLabel = _ref2.discountLabel,
263
+ discountLabel = _ref2$discountLabel === void 0 ? 'Apply Discount Code' : _ref2$discountLabel,
264
+ _ref2$discountShowApp = _ref2.discountShowAppliedItems,
265
+ discountShowAppliedItems = _ref2$discountShowApp === void 0 ? true : _ref2$discountShowApp,
266
+ _ref2$includeDomainSi = _ref2.includeDomainSignup,
267
+ includeDomainSignup = _ref2$includeDomainSi === void 0 ? false : _ref2$includeDomainSi,
268
+ invoice = _ref2.invoice,
269
+ isBuyRequest = _ref2.isBuyRequest,
270
+ isOpen = _ref2.isOpen,
271
+ _ref2$isProductEmbedF = _ref2.isProductEmbedForm,
272
+ isProductEmbedForm = _ref2$isProductEmbedF === void 0 ? false : _ref2$isProductEmbedF,
273
+ job = _ref2.job,
274
+ product = _ref2.product,
275
+ messageSuccessBuyRequest = _ref2.messageSuccessBuyRequest,
276
+ messageSuccessQuoteRequest = _ref2.messageSuccessQuoteRequest,
277
+ redirectAfterSuccessUrl = _ref2.redirectAfterSuccessUrl,
278
+ redirectAfterQuoteSuccessUrl = _ref2.redirectAfterQuoteSuccessUrl,
279
+ redirectWithValue = _ref2.redirectWithValue,
280
+ setInvoice = _ref2.setInvoice,
281
+ setJob = _ref2.setJob,
282
+ _ref2$showDiscountCod = _ref2.showDiscountCode,
283
+ showDiscountCode = _ref2$showDiscountCod === void 0 ? true : _ref2$showDiscountCod,
284
+ _ref2$showUserTermsAn = _ref2.showUserTermsAndConditions,
285
+ showUserTermsAndConditions = _ref2$showUserTermsAn === void 0 ? true : _ref2$showUserTermsAn,
286
+ toggleMerchiCheckout = _ref2.toggleMerchiCheckout,
287
+ _ref2$urlApi = _ref2.urlApi,
288
+ urlApi = _ref2$urlApi === void 0 ? 'https://api.merchi.co/v6/' : _ref2$urlApi,
289
+ _ref2$urlFrontend = _ref2.urlFrontend,
290
+ urlFrontend = _ref2$urlFrontend === void 0 ? 'https://merchi.co/' : _ref2$urlFrontend;
291
+ var initialTabsState = getInitialTabsState(job, product, includeDomainSignup, isBuyRequest, invoice);
292
+ var _useState = useState(initialTabsState.activeTabIndex),
233
293
  _useState2 = _slicedToArray(_useState, 2),
234
294
  activeTabIndex = _useState2[0],
235
295
  setActiveTabIndex = _useState2[1];
@@ -245,7 +305,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
245
305
  _useState8 = _slicedToArray(_useState7, 2),
246
306
  domain = _useState8[0],
247
307
  setDomain = _useState8[1];
248
- var _useState9 = useState([]),
308
+ var _useState9 = useState(initialTabsState.tabs),
249
309
  _useState10 = _slicedToArray(_useState9, 2),
250
310
  tabs = _useState10[0],
251
311
  setTabs = _useState10[1];
@@ -281,23 +341,44 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
281
341
  }]);
282
342
  setAlerts(newAlerts);
283
343
  }
344
+ function initTabsFromJob(jobForTabs) {
345
+ var tabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
346
+ var _buildTabsState = buildTabsState(jobForTabs, {
347
+ includeDomainSignup: includeDomainSignup,
348
+ isBuyRequest: isBuyRequest,
349
+ tabIndex: tabIndex
350
+ }),
351
+ nextTabs = _buildTabsState.tabs,
352
+ nextIndex = _buildTabsState.activeTabIndex;
353
+ setTabs(nextTabs);
354
+ setActiveTabIndex(nextIndex);
355
+ }
284
356
  function resetTabs() {
285
- var _tabs = tabsInit({
286
- job: job,
287
- includeDomainSignup: includeDomainSignup,
288
- isBuyRequest: isBuyRequest
289
- });
290
- setTabs(_tabs);
357
+ initTabsFromJob(job, activeTabIndex);
291
358
  }
292
359
  function setCustomer(customer) {
293
- setJob(_objectSpread(_objectSpread({}, job), {}, {
360
+ var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
294
361
  client: customer
295
- }));
296
- resetTabs();
362
+ });
363
+ setJob(updatedJob);
364
+ initTabsFromJob(updatedJob, isUserRegistered(customer) ? activeTabIndex : 0);
297
365
  }
298
366
  function clearCustomer() {
299
- setCustomer({});
300
- resetTabs();
367
+ var updatedJob = _objectSpread(_objectSpread({}, job), {}, {
368
+ client: {}
369
+ });
370
+ setJob(updatedJob);
371
+ initTabsFromJob(updatedJob, 0);
372
+ }
373
+ function cancelCheckoutOrder() {
374
+ var updatedJob = _objectSpread({}, job);
375
+ delete updatedJob.id;
376
+ setInvoice({});
377
+ setJob(updatedJob);
378
+ var confirmIndex = tabs.findIndex(function (t) {
379
+ return t.id === tabIdConfirm;
380
+ });
381
+ initTabsFromJob(updatedJob, confirmIndex >= 0 ? confirmIndex : 0);
301
382
  }
302
383
  function nextTab() {
303
384
  var ndextIndex = activeTabIndex + 1;
@@ -312,14 +393,48 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
312
393
  });
313
394
  setActiveTabIndex(index);
314
395
  }
315
- useEffect(function () {
316
- if (job.product && !tabs.length) {
317
- resetTabs();
396
+ var quoteSignature = getCheckoutQuoteSignature(job);
397
+ var quoteSignatureRef = React.useRef('');
398
+ useLayoutEffect(function () {
399
+ if (!(product !== null && product !== void 0 && product.id)) return;
400
+ var session = loadCheckoutSession(product);
401
+ var mergedJob = mergeJobWithCheckoutSession(job, session);
402
+ if (checkoutSessionChanged(job, mergedJob)) {
403
+ setJob(mergedJob);
318
404
  }
319
- if (!job.client) {
320
- setCustomer(currentUser || {});
405
+ var quoteChanged = quoteSignatureRef.current !== quoteSignature;
406
+ quoteSignatureRef.current = quoteSignature;
407
+ if (!tabs.length || quoteChanged) {
408
+ var _session$activeTabInd2;
409
+ var restoredInvoice = invoice !== null && invoice !== void 0 && invoice.id ? invoice : session === null || session === void 0 ? void 0 : session.invoice;
410
+ var restoredIndex = quoteChanged && !(restoredInvoice !== null && restoredInvoice !== void 0 && restoredInvoice.id) ? 0 : getSafeRestoredTabIndex(mergedJob, {
411
+ includeDomainSignup: includeDomainSignup,
412
+ isBuyRequest: isBuyRequest
413
+ }, (_session$activeTabInd2 = session === null || session === void 0 ? void 0 : session.activeTabIndex) !== null && _session$activeTabInd2 !== void 0 ? _session$activeTabInd2 : 0, restoredInvoice);
414
+ initTabsFromJob(mergedJob, restoredIndex);
321
415
  }
322
- }, [job]);
416
+ if (!isUserRegistered(mergedJob.client) && !isUserRegistered(session === null || session === void 0 ? void 0 : session.client) && isUserRegistered(currentUser)) {
417
+ setJob(_objectSpread(_objectSpread({}, mergedJob), {}, {
418
+ client: currentUser
419
+ }));
420
+ }
421
+ }, [product === null || product === void 0 ? void 0 : product.id, quoteSignature]);
422
+ useEffect(function () {
423
+ var _session$invoice;
424
+ if (!(product !== null && product !== void 0 && product.id)) return;
425
+ var session = loadCheckoutSession(product);
426
+ if (!(invoice !== null && invoice !== void 0 && invoice.id) && session !== null && session !== void 0 && (_session$invoice = session.invoice) !== null && _session$invoice !== void 0 && _session$invoice.id) {
427
+ setInvoice(session.invoice);
428
+ }
429
+ }, [product === null || product === void 0 ? void 0 : product.id]);
430
+ useEffect(function () {
431
+ if (!(product !== null && product !== void 0 && product.id)) return;
432
+ saveCheckoutSession(product, buildCheckoutSession(job, activeTabIndex, {
433
+ invoice: invoice,
434
+ checkoutOpen: isOpen,
435
+ isBuyRequest: isBuyRequest
436
+ }, loadCheckoutSession(product)));
437
+ }, [product === null || product === void 0 ? void 0 : product.id, job.client, job.shipping, job.billing, job.shipment, job.items, activeTabIndex, invoice, isOpen, isBuyRequest]);
323
438
  function discountCallbackSuccess(items) {
324
439
  setJob(_objectSpread(_objectSpread({}, job), {}, {
325
440
  items: items
@@ -345,6 +460,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
345
460
  classNameMerchiCheckoutButtonSecondary: classNameMerchiCheckoutButtonSecondary,
346
461
  classNameMerchiCheckoutButtonSecondaryBlock: classNameMerchiCheckoutButtonSecondaryBlock,
347
462
  classNameMerchiCheckoutButtonDownloadInvoice: classNameMerchiCheckoutButtonDownloadInvoice,
463
+ classNameMerchiCheckoutButtonCancelOrder: classNameMerchiCheckoutButtonCancelOrder,
348
464
  classNameMerchiCheckoutConfirmInfoPanel: classNameMerchiCheckoutConfirmInfoPanel,
349
465
  classNameMerchiCheckoutFooterActionsContainer: classNameMerchiCheckoutFooterActionsContainer,
350
466
  classNameMerchiCheckoutFormCheckbox: classNameMerchiCheckoutFormCheckbox,
@@ -369,6 +485,7 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
369
485
  classNameMerchiCheckoutTabPaneContainer: classNameMerchiCheckoutTabPaneContainer,
370
486
  classNameMerchiInvoiceButtonPayInvoice: classNameMerchiInvoiceButtonPayInvoice,
371
487
  clearCustomer: clearCustomer,
488
+ cancelCheckoutOrder: cancelCheckoutOrder,
372
489
  currentUser: currentUser,
373
490
  customer: job.client || {},
374
491
  discountButtonText: discountButtonText,
@@ -417,7 +534,10 @@ export var MerchiCheckoutProvider = function MerchiCheckoutProvider(_ref) {
417
534
  urlApi: urlApi,
418
535
  urlFrontend: urlFrontend
419
536
  },
420
- children: children
537
+ children: /*#__PURE__*/_jsx("div", {
538
+ className: "merchi-checkout",
539
+ children: children
540
+ })
421
541
  });
422
542
  };
423
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsImNhbGwiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwidG9TdHJpbmciLCJzbGljZSIsIm5hbWUiLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImwiLCJ1IiwiYSIsImYiLCJuZXh0IiwiZG9uZSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsInRhYnNJbml0IiwiTWVyY2hpIiwianN4IiwiX2pzeCIsIk1lcmNoaUNoZWNrb3V0Q29udGV4dCIsImFjdGl2ZVRhYkluZGV4IiwiYWxlcnRzIiwiYWxlcnRDbG9zZSIsImFsZXJ0RXJyb3JTaG93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiIsImNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlIiwiY2xlYXJDdXN0b21lciIsImN1cnJlbnRVc2VyIiwiY3VzdG9tZXIiLCJkaXNjb3VudEJ1dHRvblRleHQiLCJkaXNjb3VudENhbGxiYWNrRXJyb3IiLCJkaXNjb3VudENhbGxiYWNrU3VjY2VzcyIsImRpc2NvdW50Q2xhc3NOYW1lIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b24iLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZSIsImRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlIiwiZGlzY291bnRDbGFzc05hbWVJbnB1dCIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXIiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCIsImRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0iLCJkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcyIsImRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lciIsImRpc2NvdW50TGFiZWwiLCJkaXNjb3VudFNob3dBcHBsaWVkSXRlbXMiLCJkb21haW4iLCJlZGl0RHJhZnRUZW1wbGF0ZSIsImlzQnV5UmVxdWVzdCIsImlzT3BlbiIsImxvYWRpbmciLCJtZXJjaGkiLCJtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3QiLCJtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCIsIm5leHRUYWIiLCJpbmNsdWRlRG9tYWluU2lnbnVwIiwiaW52b2ljZSIsImlzUHJvZHVjdEVtYmVkRm9ybSIsImpvYiIsInByb2R1Y3QiLCJyZWRpcmVjdEFmdGVyU3VjY2Vzc1VybCIsInJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwiLCJyZWRpcmVjdFdpdGhWYWx1ZSIsInNldEFjdGl2ZVRhYkJ5SWQiLCJzZXRBY3RpdmVUYWJJbmRleCIsInNldEN1c3RvbWVyIiwic2V0RG9tYWluIiwic2V0SW52b2ljZSIsInNldEpvYiIsInNob3dEaXNjb3VudENvZGUiLCJzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyIsInRhYnMiLCJ0b2dnbGVNZXJjaGlDaGVja291dCIsInVybEZyb250ZW5kIiwidXJsQXBpIiwidXNlTWVyY2hpQ2hlY2tib3V0Q29udGV4dCIsIk1lcmNoaUNoZWNrb3V0UHJvdmlkZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDNiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUM4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDOSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEwIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTEiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxMiIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzEzIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTQiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxNSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE2IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMTciLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMxOCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzE5IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjAiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyMSIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzIyIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjMiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI1IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjYiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMyNyIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzI4IiwiX3JlZiRjbGFzc05hbWVNZXJjaGlDMjkiLCJfcmVmJGNsYXNzTmFtZU1lcmNoaUMzMCIsIl9yZWYkY2xhc3NOYW1lTWVyY2hpQzMxIiwiX3JlZiRjbGFzc05hbWVNZXJjaGlJIiwiX3JlZiRkaXNjb3VudEJ1dHRvblRlIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtIiwiX3JlZiRkaXNjb3VudENsYXNzTmFtMiIsIl9yZWYkZGlzY291bnRDbGFzc05hbTMiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW00IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtNSIsIl9yZWYkZGlzY291bnRDbGFzc05hbTYiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW03IiwiX3JlZiRkaXNjb3VudENsYXNzTmFtOCIsIl9yZWYkZGlzY291bnRDbGFzc05hbTkiLCJfcmVmJGRpc2NvdW50Q2xhc3NOYW0xMCIsIl9yZWYkZGlzY291bnRMYWJlbCIsIl9yZWYkZGlzY291bnRTaG93QXBwbCIsIl9yZWYkaW5jbHVkZURvbWFpblNpZyIsIl9yZWYkaXNQcm9kdWN0RW1iZWRGbyIsIl9yZWYkc2hvd0Rpc2NvdW50Q29kZSIsIl9yZWYkc2hvd1VzZXJUZXJtc0FuZCIsIl9yZWYkdXJsQXBpIiwiX3JlZiR1cmxGcm9udGVuZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInNldExvYWRpbmciLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldEFsZXJ0cyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2V0VGFicyIsImluZGV4IiwiZHJhZnQiLCJqb2JKc29uIiwiZHJhZnRUZW1wbGF0ZXMiLCJkcmFmdFRlbXBsYXRlRmlsZXMiLCJtYXAiLCJkIiwiZmlsZSIsIm93bkRyYWZ0Iiwib3duRHJhZnRzIiwiaW1hZ2VzIiwidXBkYXRlZEFsZXJ0cyIsIl8iLCJpZHgiLCJtZXNzYWdlIiwibmV3QWxlcnRzIiwiY29uY2F0IiwiYWxlcnRUeXBlIiwidGl0bGUiLCJyZXNldFRhYnMiLCJfdGFicyIsImNsaWVudCIsIm5kZXh0SW5kZXgiLCJkaXNhYmxlZCIsInRhYklkIiwiZmluZEluZGV4IiwiaWQiLCJpdGVtcyIsIlByb3ZpZGVyIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvTWVyY2hpQ2hlY2tvdXRQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgUmVhY3ROb2RlLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgTWVyY2hpQ2hlY2tvdXRUYWIgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyB0YWJzSW5pdCB9IGZyb20gJy4uL3RhYnNfdXRpbHMnO1xuaW1wb3J0IHsgTWVyY2hpIH0gZnJvbSAnbWVyY2hpX3Nka190cyc7XG5cbmludGVyZmFjZSBJTWVyY2hpQ2hlY2tvdXQge1xuICBhY3RpdmVUYWJJbmRleDogbnVtYmVyO1xuICBhbGVydHM6IGFueVtdO1xuICBhbGVydENsb3NlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgYWxlcnRFcnJvclNob3c6IChtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRTdWNjZXNzPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblNlY29uZGFyeT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3Q/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXA/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlPzogc3RyaW5nO1xuICBjbGVhckN1c3RvbWVyOiAoKSA9PiB2b2lkO1xuICBjdXJyZW50VXNlcj86IGFueTtcbiAgY3VzdG9tZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yOiAoKSA9PiB2b2lkO1xuICBkaXNjb3VudENhbGxiYWNrU3VjY2VzczogKGl0ZW1zOiBhbnlbXSkgPT4gdm9pZDtcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGRvbWFpbj86IGFueTtcbiAgZWRpdERyYWZ0VGVtcGxhdGU6IChpbmRleDogbnVtYmVyLCBkcmFmdDogYW55KSA9PiB2b2lkO1xuICBpbmNsdWRlRG9tYWluU2lnbnVwPzogYm9vbGVhbjtcbiAgaW52b2ljZTogYW55O1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW4/OiBib29sZWFuO1xuICBpc1Byb2R1Y3RFbWJlZEZvcm0/OiBib29sZWFuO1xuICBqb2I6IGFueTtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgbWVyY2hpOiBNZXJjaGk7XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG5leHRUYWI6ICgpID0+IHZvaWQ7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0QWN0aXZlVGFiQnlJZDogKGlkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHNldEFjdGl2ZVRhYkluZGV4OiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgc2V0Q3VzdG9tZXI6IChjdXN0b21lcjogYW55KSA9PiB2b2lkO1xuICBzZXREb21haW46IChkb21haW46IGFueSkgPT4gdm9pZDtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIHRhYnM6IE1lcmNoaUNoZWNrb3V0VGFiW107XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxGcm9udGVuZDogc3RyaW5nO1xuICB1cmxBcGk6IHN0cmluZztcbn1cblxuY29uc3QgTWVyY2hpQ2hlY2tvdXRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxJTWVyY2hpQ2hlY2tvdXQ+KHtcbiAgYWN0aXZlVGFiSW5kZXg6IDAsXG4gIGFsZXJ0czogW10sXG4gIGFsZXJ0Q2xvc2UoKSB7fSxcbiAgYWxlcnRFcnJvclNob3coKSB7fSxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW06IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZTogdW5kZWZpbmVkLFxuICBjbGVhckN1c3RvbWVyKCkge30sXG4gIGN1cnJlbnRVc2VyOiB1bmRlZmluZWQsXG4gIGN1c3RvbWVyOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50QnV0dG9uVGV4dDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENhbGxiYWNrRXJyb3IoKSB7fSxcbiAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MoKSB7fSxcbiAgZGlzY291bnRDbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b246IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudExhYmVsOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtczogdHJ1ZSxcbiAgZG9tYWluOiB1bmRlZmluZWQsXG4gIGVkaXREcmFmdFRlbXBsYXRlKCkge30sXG4gIGlzQnV5UmVxdWVzdDogZmFsc2UsXG4gIGlzT3BlbjogZmFsc2UsXG4gIGxvYWRpbmc6IGZhbHNlLFxuICBtZXJjaGk6IHVuZGVmaW5lZCxcbiAgbWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0OiB1bmRlZmluZWQsXG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0OiB1bmRlZmluZWQsXG4gIG5leHRUYWIoKSB7fSxcbiAgaW5jbHVkZURvbWFpblNpZ251cDogZmFsc2UsXG4gIGludm9pY2U6IHt9LFxuICBpc1Byb2R1Y3RFbWJlZEZvcm06IGZhbHNlLFxuICBqb2I6IHt9LFxuICBwcm9kdWN0OiB7fSxcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw6IHVuZGVmaW5lZCxcbiAgcmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdFdpdGhWYWx1ZTogdHJ1ZSxcbiAgc2V0QWN0aXZlVGFiQnlJZCgpIHt9LFxuICBzZXRBY3RpdmVUYWJJbmRleCgpIHt9LFxuICBzZXRDdXN0b21lcigpIHt9LFxuICBzZXREb21haW4oKSB7fSxcbiAgc2V0SW52b2ljZSgpIHt9LFxuICBzZXRKb2IoKSB7fSxcbiAgc2hvd0Rpc2NvdW50Q29kZTogdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM6IHRydWUsXG4gIHRhYnM6IFtdLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCgpIHt9LFxuICB1cmxGcm9udGVuZDogJycsXG4gIHVybEFwaTogJycsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQgPSAoKSA9PlxuICB1c2VDb250ZXh0KE1lcmNoaUNoZWNrb3V0Q29udGV4dCk7XG5cbmludGVyZmFjZSBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuO1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzUHJvZHVjdEVtYmVkRm9ybT86IGJvb2xlYW47XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgam9iOiBhbnk7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxBcGk/OiBzdHJpbmc7XG4gIHVybEZyb250ZW5kPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgTWVyY2hpQ2hlY2tvdXRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGVydHMtY29udGFpbmVyLXNtJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCA9ICdhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1ub3RpZnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3IgPSAnYWxlcnQtZGFuZ2VyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MgPSAnYWxlcnQtc3VjY2VzcycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeSA9ICdidG4gYnRuLWxtZCBidG4tcHJpbWFyeSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5ID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tc2Vjb25kYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlID0gJ2J0biBidG4tbGcgYnRuLXByaW1hcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwgPSAnZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtNCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94ID0gJ2Zvcm0tY2hlY2staW5wdXQnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCA9ICdmb3JtLWdyb3VwJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveCA9ICdmb3JtLWNoZWNrJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQgPSAnZm9ybS1jb250cm9sJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QgPSAnbGlzdC1ncm91cCBtLWItMCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtID0gJ2xpc3QtZ3JvdXAtaXRlbSBjdXJzb3ItcG9pbnRlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciA9ICdsaXN0LWdyb3VwLWl0ZW0gbW9kYWwtbWVyY2hpLWNoZWNrb3V0LXNoaXBtZW50LW9wdGlvbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvciA9ICd0ZXh0LWRhbmdlcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3ggPSAnJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXAgPSAnbW9kYWwtbWVyY2hpLWNoZWNrb3V0LXNoaXBtZW50LW9wdGlvbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyA9ICdtZXJjaGktcm93JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4gPSAnbWVyY2hpLWNvbHVtbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUgPSAnbWVyY2hpLWNoZWNrb3V0LXN1YnRpdGxlJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC10YWJzLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiID0gJ21lcmNoaS1jaGVja291dC10YWInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiA9ICdidG4gbWVyY2hpLWNoZWNrb3V0LXRhYi1idG4nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUgPSAndGFiLXBhbmUnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIgPSAndGFiLWNvbnRlbnQnLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGN1cnJlbnRVc2VyLFxuICBkaXNjb3VudEJ1dHRvblRleHQgPSAnQXBwbHknLFxuICBkaXNjb3VudENsYXNzTmFtZSA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1jb250YWluZXInLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbiA9ICdidG4gYnRuLXByaW1hcnknLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciA9ICcnLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUgPSAnYnRuIGJ0bi1zbSBidG4tbGluaycsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlID0gJ3RleHQtZGFuZ2VyJyxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWZpZWxkLWNvbnRhaW5lcicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsID0gJ3Zpc3VhbGx5LWhpZGRlbicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0gPSAnbGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zID0gJ2xpc3QtZ3JvdXAnLFxuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIsXG4gIGRpc2NvdW50TGFiZWwgPSAnRGlzY291bnQgY29kZScsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyA9IHRydWUsXG4gIGluY2x1ZGVEb21haW5TaWdudXAgPSBmYWxzZSxcbiAgaW52b2ljZSxcbiAgaXNCdXlSZXF1ZXN0LFxuICBpc09wZW4sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybSA9IGZhbHNlLFxuICBqb2IsXG4gIHByb2R1Y3QsXG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCxcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QsXG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsLFxuICByZWRpcmVjdFdpdGhWYWx1ZSxcbiAgc2V0SW52b2ljZSxcbiAgc2V0Sm9iLFxuICBzaG93RGlzY291bnRDb2RlID0gdHJ1ZSxcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMgPSB0cnVlLFxuICB0b2dnbGVNZXJjaGlDaGVja291dCxcbiAgdXJsQXBpID0gJ2h0dHBzOi8vYXBpLm1lcmNoaS5jby92Ni8nLFxuICB1cmxGcm9udGVuZCA9ICdodHRwczovL21lcmNoaS5jby8nLFxufTogUHJvcHNNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyKSA9PiB7XG4gIGNvbnN0IFthY3RpdmVUYWJJbmRleCwgc2V0QWN0aXZlVGFiSW5kZXhdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbYWxlcnRzLCBzZXRBbGVydHNdID0gdXNlU3RhdGUoW10pO1xuICBjb25zdCBbZG9tYWluLCBzZXREb21haW5dID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFt0YWJzLCBzZXRUYWJzXSA9IHVzZVN0YXRlKFtdIGFzIGFueVtdKTtcbiAgY29uc3QgbWVyY2hpID0gbmV3IE1lcmNoaSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVybEFwaSk7XG4gIGZ1bmN0aW9uIGVkaXREcmFmdFRlbXBsYXRlKGluZGV4OiBudW1iZXIsIGRyYWZ0OiBhbnkpIHtcbiAgICBjb25zdCBqb2JKc29uID0geyAuLi5qb2IgfTtcbiAgICBjb25zdCBkcmFmdFRlbXBsYXRlcyA9IHByb2R1Y3QuZHJhZnRUZW1wbGF0ZXMgfHwgW107XG4gICAgY29uc3QgZHJhZnRUZW1wbGF0ZUZpbGVzID0gZHJhZnRUZW1wbGF0ZXMubWFwKChkOiBhbnkpID0+IGQuZmlsZSk7XG4gICAgY29uc3Qgb3duRHJhZnQgPSAoam9iSnNvbi5vd25EcmFmdHMgJiYgam9iSnNvbi5vd25EcmFmdHNbMF0pIHx8IHtcbiAgICAgIGltYWdlczogZHJhZnRUZW1wbGF0ZUZpbGVzLFxuICAgIH07XG4gICAgaWYgKG93bkRyYWZ0LmltYWdlcykge1xuICAgICAgb3duRHJhZnQuaW1hZ2VzW2luZGV4XSA9IGRyYWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25EcmFmdC5pbWFnZXMgPSBbZHJhZnRdO1xuICAgIH1cbiAgICBqb2JKc29uLm93bkRyYWZ0cyA9IFtvd25EcmFmdF07XG4gICAgc2V0Sm9iKGpvYkpzb24pO1xuICB9XG4gIGZ1bmN0aW9uIGFsZXJ0Q2xvc2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGVydHMgPSBhbGVydHMuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAhPT0gaW5kZXgpO1xuICAgIHNldEFsZXJ0cyh1cGRhdGVkQWxlcnRzKTtcbiAgfVxuICBmdW5jdGlvbiBhbGVydEVycm9yU2hvdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdBbGVydHM6IGFueVtdID0gW1xuICAgICAgLi4uYWxlcnRzLFxuICAgICAgeyBhbGVydFR5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIHRpdGxlOiAnRXJyb3IhJyB9LFxuICAgIF07XG4gICAgc2V0QWxlcnRzKG5ld0FsZXJ0cyBhcyBhbnkpO1xuICB9XG4gIGZ1bmN0aW9uIHJlc2V0VGFicygpIHtcbiAgICBjb25zdCBfdGFicyA9IHRhYnNJbml0KHtcbiAgICAgIGpvYixcbiAgICAgIGluY2x1ZGVEb21haW5TaWdudXAsXG4gICAgICBpc0J1eVJlcXVlc3QsXG4gICAgfSk7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0Q3VzdG9tZXIoY3VzdG9tZXI6IGFueSkge1xuICAgIHNldEpvYih7IC4uLmpvYiwgY2xpZW50OiBjdXN0b21lciB9KTtcbiAgICByZXNldFRhYnMoKTtcbiAgfVxuICBmdW5jdGlvbiBjbGVhckN1c3RvbWVyKCkge1xuICAgIHNldEN1c3RvbWVyKHt9KTtcbiAgICByZXNldFRhYnMoKTtcbiAgfVxuICBmdW5jdGlvbiBuZXh0VGFiKCkge1xuICAgIGNvbnN0IG5kZXh0SW5kZXggPSBhY3RpdmVUYWJJbmRleCArIDE7XG4gICAgY29uc3QgX3RhYnM6IGFueVtdID0gWy4uLnRhYnNdO1xuICAgIF90YWJzW25kZXh0SW5kZXhdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgobmRleHRJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0QWN0aXZlVGFiQnlJZCh0YWJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0YWJzLmZpbmRJbmRleCgodDogTWVyY2hpQ2hlY2tvdXRUYWIpID0+IHQuaWQgPT09IHRhYklkKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChpbmRleCk7XG4gIH1cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoam9iLnByb2R1Y3QgJiYgIXRhYnMubGVuZ3RoKSB7XG4gICAgICByZXNldFRhYnMoKTtcbiAgICB9XG4gICAgaWYgKCFqb2IuY2xpZW50KSB7XG4gICAgICBzZXRDdXN0b21lcihjdXJyZW50VXNlciB8fCB7fSk7XG4gICAgfVxuICB9LCBbam9iXSk7XG4gIGZ1bmN0aW9uIGRpc2NvdW50Q2FsbGJhY2tTdWNjZXNzKGl0ZW1zOiBhbnlbXSkge1xuICAgIHNldEpvYih7Li4uam9iLCBpdGVtc30pO1xuICB9XG4gIGZ1bmN0aW9uIGRpc2NvdW50Q2FsbGJhY2tFcnJvcigpIHtcbiAgICBzZXRKb2Ioey4uLmpvYiwgaXRlbXM6IFtdfSk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8TWVyY2hpQ2hlY2tvdXRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17XG4gICAgICAgIHtcbiAgICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBhbGVydHMsXG4gICAgICAgICAgYWxlcnRDbG9zZSxcbiAgICAgICAgICBhbGVydEVycm9yU2hvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2VzcyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2ssXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWwsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUNoZWNrYm94LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdEl0ZW0sXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRJbnB1dEVycm9yLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFic0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlLFxuICAgICAgICAgIGNsZWFyQ3VzdG9tZXIsXG4gICAgICAgICAgY3VycmVudFVzZXIsXG4gICAgICAgICAgY3VzdG9tZXI6IGpvYi5jbGllbnQgfHwge30sXG4gICAgICAgICAgZGlzY291bnRCdXR0b25UZXh0LFxuICAgICAgICAgIGRpc2NvdW50Q2FsbGJhY2tFcnJvcixcbiAgICAgICAgICBkaXNjb3VudENhbGxiYWNrU3VjY2VzcyxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZSxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVJbnB1dCxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW0sXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVNYWluQ29udGFpbmVyLFxuICAgICAgICAgIGRpc2NvdW50TGFiZWwsXG4gICAgICAgICAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zLFxuICAgICAgICAgIGRvbWFpbixcbiAgICAgICAgICBlZGl0RHJhZnRUZW1wbGF0ZSxcbiAgICAgICAgICBpbmNsdWRlRG9tYWluU2lnbnVwLFxuICAgICAgICAgIGludm9pY2UsXG4gICAgICAgICAgaXNCdXlSZXF1ZXN0LFxuICAgICAgICAgIGlzT3BlbixcbiAgICAgICAgICBpc1Byb2R1Y3RFbWJlZEZvcm0sXG4gICAgICAgICAgam9iLFxuICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgbWVyY2hpLFxuICAgICAgICAgIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdCxcbiAgICAgICAgICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCxcbiAgICAgICAgICBuZXh0VGFiLFxuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgICAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwsXG4gICAgICAgICAgcmVkaXJlY3RBZnRlclF1b3RlU3VjY2Vzc1VybCxcbiAgICAgICAgICByZWRpcmVjdFdpdGhWYWx1ZSxcbiAgICAgICAgICBzZXRBY3RpdmVUYWJCeUlkLFxuICAgICAgICAgIHNldEFjdGl2ZVRhYkluZGV4LFxuICAgICAgICAgIHNldEN1c3RvbWVyLFxuICAgICAgICAgIHNldERvbWFpbixcbiAgICAgICAgICBzZXRJbnZvaWNlLFxuICAgICAgICAgIHNldEpvYixcbiAgICAgICAgICBzaG93RGlzY291bnRDb2RlLFxuICAgICAgICAgIHNob3dVc2VyVGVybXNBbmRDb25kaXRpb25zLFxuICAgICAgICAgIHRhYnMsXG4gICAgICAgICAgdG9nZ2xlTWVyY2hpQ2hlY2tvdXQsXG4gICAgICAgICAgdXJsQXBpLFxuICAgICAgICAgIHVybEZyb250ZW5kLFxuICAgICAgICB9IGFzIElNZXJjaGlDaGVja291dFxuICAgICAgfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L01lcmNoaUNoZWNrb3V0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxH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
543
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiVHlwZUVycm9yIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiaSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJuIiwiT2JqZWN0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJyIiwibCIsInQiLCJlIiwidSIsImEiLCJmIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImtleSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJ0b1ByaW1pdGl2ZSIsIk51bWJlciIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1c2VTdGF0ZSIsInRhYnNJbml0IiwidGFiSWRDb25maXJtIiwiTWVyY2hpIiwiYnVpbGRDaGVja291dFNlc3Npb24iLCJjaGVja291dFNlc3Npb25DaGFuZ2VkIiwiZ2V0Q2hlY2tvdXRRdW90ZVNpZ25hdHVyZSIsImdldFNhZmVSZXN0b3JlZFRhYkluZGV4IiwibG9hZENoZWNrb3V0U2Vzc2lvbiIsIm1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbiIsInNhdmVDaGVja291dFNlc3Npb24iLCJpc1VzZXJSZWdpc3RlcmVkIiwianN4IiwiX2pzeCIsIk1lcmNoaUNoZWNrb3V0Q29udGV4dCIsImFjdGl2ZVRhYkluZGV4IiwiYWxlcnRzIiwiYWxlcnRDbG9zZSIsImFsZXJ0RXJyb3JTaG93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXIiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnkiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3QiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlciIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUxhYmVsQ2hlY2tib3giLCJjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbSIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93IiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4iLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFN1YnRpdGxlIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyIiwiY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIiLCJjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiIsImNsYXNzTmFtZU1lcmNoaUludm9pY2VCdXR0b25QYXlJbnZvaWNlIiwiY2xlYXJDdXN0b21lciIsImNhbmNlbENoZWNrb3V0T3JkZXIiLCJjdXJyZW50VXNlciIsImN1c3RvbWVyIiwiZGlzY291bnRCdXR0b25UZXh0IiwiZGlzY291bnRDYWxsYmFja0Vycm9yIiwiZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MiLCJkaXNjb3VudENsYXNzTmFtZSIsImRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uIiwiZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXIiLCJkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUiLCJkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZSIsImRpc2NvdW50Q2xhc3NOYW1lSW5wdXQiLCJkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyIiwiZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWwiLCJkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtIiwiZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMiLCJkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXIiLCJkaXNjb3VudExhYmVsIiwiZGlzY291bnRTaG93QXBwbGllZEl0ZW1zIiwiZG9tYWluIiwiZWRpdERyYWZ0VGVtcGxhdGUiLCJpc0J1eVJlcXVlc3QiLCJpc09wZW4iLCJsb2FkaW5nIiwibWVyY2hpIiwibWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0IiwibWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QiLCJuZXh0VGFiIiwiaW5jbHVkZURvbWFpblNpZ251cCIsImludm9pY2UiLCJpc1Byb2R1Y3RFbWJlZEZvcm0iLCJqb2IiLCJwcm9kdWN0IiwicmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwiLCJyZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsIiwicmVkaXJlY3RXaXRoVmFsdWUiLCJzZXRBY3RpdmVUYWJCeUlkIiwic2V0QWN0aXZlVGFiSW5kZXgiLCJzZXRDdXN0b21lciIsInNldERvbWFpbiIsInNldEludm9pY2UiLCJzZXRKb2IiLCJzaG93RGlzY291bnRDb2RlIiwic2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnMiLCJ0YWJzIiwidG9nZ2xlTWVyY2hpQ2hlY2tvdXQiLCJ1cmxGcm9udGVuZCIsInVybEFwaSIsInVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQiLCJidWlsZFRhYnNTdGF0ZSIsImpvYkZvclRhYnMiLCJfcmVmIiwiX3JlZiR0YWJJbmRleCIsInRhYkluZGV4IiwiYmFzZVRhYnMiLCJzYWZlSW5kZXgiLCJNYXRoIiwibWF4IiwibWluIiwidGFic1dpdGhQcm9ncmVzcyIsIm1hcCIsInRhYiIsImRpc2FibGVkIiwiZ2V0SW5pdGlhbFRhYnNTdGF0ZSIsIl9zZXNzaW9uJGFjdGl2ZVRhYkluZCIsImlkIiwic2Vzc2lvbiIsIm1lcmdlZEpvYiIsInJlc3RvcmVkSW52b2ljZSIsIk1lcmNoaUNoZWNrb3V0UHJvdmlkZXIiLCJfcmVmMiIsImNoaWxkcmVuIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk0IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpNSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTYiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGk3IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpOCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxMCIsImNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uQ2FuY2VsT3JkZXIiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxMSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTEyIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTMiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxNCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE1IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTYiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkxNyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTE4IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMTkiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyMCIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTIxIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjIiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyMyIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI0IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjUiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyNiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTI3IiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMjgiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkyOSIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMwIiwiX3JlZjIkY2xhc3NOYW1lTWVyY2hpMzEiLCJfcmVmMiRjbGFzc05hbWVNZXJjaGkzMiIsIl9yZWYyJGNsYXNzTmFtZU1lcmNoaTMzIiwiX3JlZjIkZGlzY291bnRCdXR0b25UIiwiX3JlZjIkZGlzY291bnRDbGFzc05hIiwiX3JlZjIkZGlzY291bnRDbGFzc05hMiIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTMiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE0IiwiX3JlZjIkZGlzY291bnRDbGFzc05hNSIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTYiLCJfcmVmMiRkaXNjb3VudENsYXNzTmE3IiwiX3JlZjIkZGlzY291bnRDbGFzc05hOCIsIl9yZWYyJGRpc2NvdW50Q2xhc3NOYTkiLCJfcmVmMiRkaXNjb3VudENsYXNzTmExMCIsIl9yZWYyJGRpc2NvdW50TGFiZWwiLCJfcmVmMiRkaXNjb3VudFNob3dBcHAiLCJfcmVmMiRpbmNsdWRlRG9tYWluU2kiLCJfcmVmMiRpc1Byb2R1Y3RFbWJlZEYiLCJfcmVmMiRzaG93RGlzY291bnRDb2QiLCJfcmVmMiRzaG93VXNlclRlcm1zQW4iLCJfcmVmMiR1cmxBcGkiLCJfcmVmMiR1cmxGcm9udGVuZCIsImluaXRpYWxUYWJzU3RhdGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZXRMb2FkaW5nIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJzZXRBbGVydHMiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUxMCIsInNldFRhYnMiLCJpbmRleCIsImRyYWZ0Iiwiam9iSnNvbiIsImRyYWZ0VGVtcGxhdGVzIiwiZHJhZnRUZW1wbGF0ZUZpbGVzIiwiZCIsImZpbGUiLCJvd25EcmFmdCIsIm93bkRyYWZ0cyIsImltYWdlcyIsInVwZGF0ZWRBbGVydHMiLCJfIiwiaWR4IiwibWVzc2FnZSIsIm5ld0FsZXJ0cyIsImNvbmNhdCIsImFsZXJ0VHlwZSIsInRpdGxlIiwiaW5pdFRhYnNGcm9tSm9iIiwiX2J1aWxkVGFic1N0YXRlIiwibmV4dFRhYnMiLCJuZXh0SW5kZXgiLCJyZXNldFRhYnMiLCJ1cGRhdGVkSm9iIiwiY2xpZW50IiwiY29uZmlybUluZGV4IiwiZmluZEluZGV4IiwibmRleHRJbmRleCIsIl90YWJzIiwidGFiSWQiLCJxdW90ZVNpZ25hdHVyZSIsInF1b3RlU2lnbmF0dXJlUmVmIiwidXNlUmVmIiwicXVvdGVDaGFuZ2VkIiwiY3VycmVudCIsIl9zZXNzaW9uJGFjdGl2ZVRhYkluZDIiLCJyZXN0b3JlZEluZGV4IiwiX3Nlc3Npb24kaW52b2ljZSIsImNoZWNrb3V0T3BlbiIsInNoaXBwaW5nIiwiYmlsbGluZyIsInNoaXBtZW50IiwiaXRlbXMiLCJQcm92aWRlciIsImNsYXNzTmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL01lcmNoaUNoZWNrb3V0UHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7XG4gIGNyZWF0ZUNvbnRleHQsXG4gIFJlYWN0Tm9kZSxcbiAgdXNlQ29udGV4dCxcbiAgdXNlRWZmZWN0LFxuICB1c2VMYXlvdXRFZmZlY3QsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBNZXJjaGlDaGVja291dFRhYiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHRhYnNJbml0LCB0YWJJZENvbmZpcm0gfSBmcm9tICcuLi90YWJzX3V0aWxzJztcbmltcG9ydCB7IE1lcmNoaSB9IGZyb20gJ21lcmNoaV9zZGtfdHMnO1xuaW1wb3J0IHtcbiAgYnVpbGRDaGVja291dFNlc3Npb24sXG4gIGNoZWNrb3V0U2Vzc2lvbkNoYW5nZWQsXG4gIGdldENoZWNrb3V0UXVvdGVTaWduYXR1cmUsXG4gIGdldFNhZmVSZXN0b3JlZFRhYkluZGV4LFxuICBsb2FkQ2hlY2tvdXRTZXNzaW9uLFxuICBtZXJnZUpvYldpdGhDaGVja291dFNlc3Npb24sXG4gIHNhdmVDaGVja291dFNlc3Npb24sXG59IGZyb20gJy4uL2NoZWNrb3V0U2Vzc2lvbic7XG5pbXBvcnQgeyBpc1VzZXJSZWdpc3RlcmVkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgSU1lcmNoaUNoZWNrb3V0IHtcbiAgYWN0aXZlVGFiSW5kZXg6IG51bWJlcjtcbiAgYWxlcnRzOiBhbnlbXTtcbiAgYWxlcnRDbG9zZTogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIGFsZXJ0RXJyb3JTaG93OiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY2xlYXJDdXN0b21lcjogKCkgPT4gdm9pZDtcbiAgY2FuY2VsQ2hlY2tvdXRPcmRlcjogKCkgPT4gdm9pZDtcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGN1c3RvbWVyPzogYW55O1xuICBkaXNjb3VudEJ1dHRvblRleHQ/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2FsbGJhY2tFcnJvcjogKCkgPT4gdm9pZDtcbiAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3M6IChpdGVtczogYW55W10pID0+IHZvaWQ7XG4gIGRpc2NvdW50Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZU1haW5Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uSXRlbVJlbW92ZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b24/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lQnV0dG9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbT86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXM/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudExhYmVsPzogc3RyaW5nO1xuICBkaXNjb3VudFNob3dBcHBsaWVkSXRlbXM/OiBib29sZWFuO1xuICBkb21haW4/OiBhbnk7XG4gIGVkaXREcmFmdFRlbXBsYXRlOiAoaW5kZXg6IG51bWJlciwgZHJhZnQ6IGFueSkgPT4gdm9pZDtcbiAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaXNQcm9kdWN0RW1iZWRGb3JtPzogYm9vbGVhbjtcbiAgam9iOiBhbnk7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIG1lcmNoaTogTWVyY2hpO1xuICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3Q/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdWNjZXNzUXVvdGVSZXF1ZXN0Pzogc3RyaW5nO1xuICBuZXh0VGFiOiAoKSA9PiB2b2lkO1xuICBwcm9kdWN0OiBhbnk7XG4gIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsPzogc3RyaW5nO1xuICByZWRpcmVjdFdpdGhWYWx1ZT86IGJvb2xlYW47XG4gIHNldEFjdGl2ZVRhYkJ5SWQ6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBzZXRBY3RpdmVUYWJJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIHNldEN1c3RvbWVyOiAoY3VzdG9tZXI6IGFueSkgPT4gdm9pZDtcbiAgc2V0RG9tYWluOiAoZG9tYWluOiBhbnkpID0+IHZvaWQ7XG4gIHNldEludm9pY2U6IChpbnZvaWNlOiBhbnkpID0+IHZvaWQ7XG4gIHNldEpvYjogKGpvYjogYW55KSA9PiB2b2lkO1xuICBzaG93RGlzY291bnRDb2RlPzogYm9vbGVhbjtcbiAgc2hvd1VzZXJUZXJtc0FuZENvbmRpdGlvbnM/OiBib29sZWFuO1xuICB0YWJzOiBNZXJjaGlDaGVja291dFRhYltdO1xuICB0b2dnbGVNZXJjaGlDaGVja291dDogKCkgPT4gdm9pZDtcbiAgdXJsRnJvbnRlbmQ6IHN0cmluZztcbiAgdXJsQXBpOiBzdHJpbmc7XG59XG5cbmNvbnN0IE1lcmNoaUNoZWNrb3V0Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8SU1lcmNoaUNoZWNrb3V0Pih7XG4gIGFjdGl2ZVRhYkluZGV4OiAwLFxuICBhbGVydHM6IFtdLFxuICBhbGVydENsb3NlKCkgeyB9LFxuICBhbGVydEVycm9yU2hvdygpIHsgfSxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydHNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3I6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3M6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeUJsb2NrOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25Eb3dubG9hZEludm9pY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRDb25maXJtSW5mb1BhbmVsOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1DaGVja2JveDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybVNlbGVjdDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwSXRlbUxvYWRlcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0SW5wdXRFcnJvcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW06IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3c6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW46IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYnNDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZUNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZTogdW5kZWZpbmVkLFxuICBjbGVhckN1c3RvbWVyKCkgeyB9LFxuICBjYW5jZWxDaGVja291dE9yZGVyKCkgeyB9LFxuICBjdXJyZW50VXNlcjogdW5kZWZpbmVkLFxuICBjdXN0b21lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudEJ1dHRvblRleHQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDYWxsYmFja0Vycm9yKCkgeyB9LFxuICBkaXNjb3VudENhbGxiYWNrU3VjY2VzcygpIHsgfSxcbiAgZGlzY291bnRDbGFzc05hbWU6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b246IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQ6IHVuZGVmaW5lZCxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbDogdW5kZWZpbmVkLFxuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBkaXNjb3VudExhYmVsOiB1bmRlZmluZWQsXG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtczogdHJ1ZSxcbiAgZG9tYWluOiB1bmRlZmluZWQsXG4gIGVkaXREcmFmdFRlbXBsYXRlKCkgeyB9LFxuICBpc0J1eVJlcXVlc3Q6IGZhbHNlLFxuICBpc09wZW46IGZhbHNlLFxuICBsb2FkaW5nOiBmYWxzZSxcbiAgbWVyY2hpOiB1bmRlZmluZWQsXG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdDogdW5kZWZpbmVkLFxuICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdDogdW5kZWZpbmVkLFxuICBuZXh0VGFiKCkgeyB9LFxuICBpbmNsdWRlRG9tYWluU2lnbnVwOiBmYWxzZSxcbiAgaW52b2ljZToge30sXG4gIGlzUHJvZHVjdEVtYmVkRm9ybTogZmFsc2UsXG4gIGpvYjoge30sXG4gIHByb2R1Y3Q6IHt9LFxuICByZWRpcmVjdEFmdGVyU3VjY2Vzc1VybDogdW5kZWZpbmVkLFxuICByZWRpcmVjdEFmdGVyUXVvdGVTdWNjZXNzVXJsOiB1bmRlZmluZWQsXG4gIHJlZGlyZWN0V2l0aFZhbHVlOiB0cnVlLFxuICBzZXRBY3RpdmVUYWJCeUlkKCkgeyB9LFxuICBzZXRBY3RpdmVUYWJJbmRleCgpIHsgfSxcbiAgc2V0Q3VzdG9tZXIoKSB7IH0sXG4gIHNldERvbWFpbigpIHsgfSxcbiAgc2V0SW52b2ljZSgpIHsgfSxcbiAgc2V0Sm9iKCkgeyB9LFxuICBzaG93RGlzY291bnRDb2RlOiB0cnVlLFxuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9uczogdHJ1ZSxcbiAgdGFiczogW10sXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0KCkgeyB9LFxuICB1cmxGcm9udGVuZDogJycsXG4gIHVybEFwaTogJycsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUNoZWNrYm91dENvbnRleHQgPSAoKSA9PlxuICB1c2VDb250ZXh0KE1lcmNoaUNoZWNrb3V0Q29udGV4dCk7XG5cbmludGVyZmFjZSBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydEVycm9yPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2Vzcz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jaz86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnk/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2s/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dENvbmZpcm1JbmZvUGFuZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9vdGVyQWN0aW9uc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3g/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtU2VsZWN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtTG9hZGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3I/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvd0NvbHVtbj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRTdWJ0aXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94Pzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYj86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZT86IHN0cmluZztcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJQYW5lQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZT86IHN0cmluZztcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGRpc2NvdW50QnV0dG9uVGV4dD86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXI/OiBzdHJpbmc7XG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Pzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtPzogc3RyaW5nO1xuICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtcz86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcj86IHN0cmluZztcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50TGFiZWw/OiBzdHJpbmc7XG4gIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcz86IGJvb2xlYW47XG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuO1xuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuO1xuICBpc09wZW46IGJvb2xlYW47XG4gIGlzUHJvZHVjdEVtYmVkRm9ybT86IGJvb2xlYW47XG4gIG1lc3NhZ2VTdWNjZXNzQnV5UmVxdWVzdD86IHN0cmluZztcbiAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3Q/OiBzdHJpbmc7XG4gIHNob3dEaXNjb3VudENvZGU/OiBib29sZWFuO1xuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucz86IGJvb2xlYW47XG4gIGludm9pY2U6IGFueTtcbiAgam9iOiBhbnk7XG4gIHByb2R1Y3Q6IGFueTtcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmw/OiBzdHJpbmc7XG4gIHJlZGlyZWN0V2l0aFZhbHVlPzogYm9vbGVhbjtcbiAgc2V0SW52b2ljZTogKGludm9pY2U6IGFueSkgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0OiAoKSA9PiB2b2lkO1xuICB1cmxBcGk/OiBzdHJpbmc7XG4gIHVybEZyb250ZW5kPzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBidWlsZFRhYnNTdGF0ZShcbiAgam9iRm9yVGFiczogYW55LFxuICB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgdGFiSW5kZXggPSAwLFxuICB9OiB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cD86IGJvb2xlYW47XG4gICAgaXNCdXlSZXF1ZXN0PzogYm9vbGVhbjtcbiAgICB0YWJJbmRleD86IG51bWJlcjtcbiAgfVxuKTogeyB0YWJzOiBNZXJjaGlDaGVja291dFRhYltdOyBhY3RpdmVUYWJJbmRleDogbnVtYmVyIH0ge1xuICBpZiAoIWpvYkZvclRhYnM/LnByb2R1Y3QpIHtcbiAgICByZXR1cm4geyB0YWJzOiBbXSwgYWN0aXZlVGFiSW5kZXg6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IGJhc2VUYWJzID0gdGFic0luaXQoe1xuICAgIGpvYjogam9iRm9yVGFicyxcbiAgICBpbmNsdWRlRG9tYWluU2lnbnVwLFxuICAgIGlzQnV5UmVxdWVzdCxcbiAgfSk7XG5cbiAgaWYgKCFiYXNlVGFicy5sZW5ndGgpIHtcbiAgICByZXR1cm4geyB0YWJzOiBbXSwgYWN0aXZlVGFiSW5kZXg6IDAgfTtcbiAgfVxuXG4gIGNvbnN0IHNhZmVJbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHRhYkluZGV4LCBiYXNlVGFicy5sZW5ndGggLSAxKSk7XG4gIGNvbnN0IHRhYnNXaXRoUHJvZ3Jlc3MgPSBiYXNlVGFicy5tYXAoKHRhYiwgaSkgPT4gKHtcbiAgICAuLi50YWIsXG4gICAgZGlzYWJsZWQ6IGkgPiBzYWZlSW5kZXgsXG4gIH0pKTtcblxuICByZXR1cm4geyB0YWJzOiB0YWJzV2l0aFByb2dyZXNzLCBhY3RpdmVUYWJJbmRleDogc2FmZUluZGV4IH07XG59XG5cbmZ1bmN0aW9uIGdldEluaXRpYWxUYWJzU3RhdGUoXG4gIGpvYjogYW55LFxuICBwcm9kdWN0OiBhbnksXG4gIGluY2x1ZGVEb21haW5TaWdudXA/OiBib29sZWFuLFxuICBpc0J1eVJlcXVlc3Q/OiBib29sZWFuLFxuICBpbnZvaWNlPzogYW55XG4pIHtcbiAgaWYgKCFwcm9kdWN0Py5pZCkge1xuICAgIHJldHVybiB7IHRhYnM6IFtdIGFzIE1lcmNoaUNoZWNrb3V0VGFiW10sIGFjdGl2ZVRhYkluZGV4OiAwIH07XG4gIH1cblxuICBjb25zdCBzZXNzaW9uID0gbG9hZENoZWNrb3V0U2Vzc2lvbihwcm9kdWN0KTtcbiAgY29uc3QgbWVyZ2VkSm9iID0gbWVyZ2VKb2JXaXRoQ2hlY2tvdXRTZXNzaW9uKGpvYiwgc2Vzc2lvbik7XG4gIGNvbnN0IHJlc3RvcmVkSW52b2ljZSA9IGludm9pY2U/LmlkID8gaW52b2ljZSA6IHNlc3Npb24/Lmludm9pY2U7XG4gIGNvbnN0IHRhYkluZGV4ID0gZ2V0U2FmZVJlc3RvcmVkVGFiSW5kZXgoXG4gICAgbWVyZ2VkSm9iLFxuICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0IH0sXG4gICAgc2Vzc2lvbj8uYWN0aXZlVGFiSW5kZXggPz8gMCxcbiAgICByZXN0b3JlZEludm9pY2VcbiAgKTtcblxuICByZXR1cm4gYnVpbGRUYWJzU3RhdGUobWVyZ2VkSm9iLCB7XG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgdGFiSW5kZXgsXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgTWVyY2hpQ2hlY2tvdXRQcm92aWRlciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lciA9ICdkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGVydHMtY29udGFpbmVyLXNtJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydCA9ICdhbGVydCBhbGVydC1kaXNtaXNzaWJsZSBhbGVydC1ub3RpZnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0RXJyb3IgPSAnYWxlcnQtZGFuZ2VyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRBbGVydFN1Y2Nlc3MgPSAnYWxlcnQtc3VjY2VzcycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uUHJpbWFyeSA9ICdidG4gYnRuLWxtZCBidG4tcHJpbWFyeSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnlCbG9jayA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5ID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uU2Vjb25kYXJ5QmxvY2sgPSAnYnRuIGJ0bi1sZyBidG4tc2Vjb25kYXJ5IGJ0bi1ibG9jaycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QnV0dG9uRG93bmxvYWRJbnZvaWNlID0gJ2J0biBidG4tbGcgYnRuLXByaW1hcnknLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyID0gJ2J0biBidG4tbGcgYnRuLXNlY29uZGFyeScsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbCA9ICdkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb290ZXJBY3Rpb25zQ29udGFpbmVyID0gJ2QtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC00JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3ggPSAnZm9ybS1jaGVjay1pbnB1dCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Rm9ybUdyb3VwID0gJ2Zvcm0tZ3JvdXAnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1Hcm91cENoZWNrYm94ID0gJ2Zvcm0tY2hlY2snLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3QgPSAnZm9ybS1jb250cm9sJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdCA9ICdtZXJjaGktY2hlY2tvdXQtZ29vZ2xlLXN1Z2dlc3QtbGlzdCcsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0R29vZ2xlU3VnZ2VzdExpc3RJdGVtID0gJ21lcmNoaS1jaGVja291dC1nb29nbGUtc3VnZ2VzdC1saXN0LWl0ZW0nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIgPSAnbGlzdC1ncm91cC1pdGVtIG1vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IgPSAndGV4dC1kYW5nZXInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1MYWJlbENoZWNrYm94ID0gJycsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0TGlzdEdyb3VwID0gJ21vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW0gPSAnbGlzdC1ncm91cC1pdGVtIG1vZGFsLW1lcmNoaS1jaGVja291dC1zaGlwbWVudC1vcHRpb24nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFJvdyA9ICdtZXJjaGktcm93JyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRSb3dDb2x1bW4gPSAnbWVyY2hpLWNvbHVtbicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUgPSAnbWVyY2hpLWNoZWNrb3V0LXN1YnRpdGxlJyxcbiAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC10YWJzLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiID0gJ21lcmNoaS1jaGVja291dC10YWInLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYkJ1dHRvbiA9ICdidG4gbWVyY2hpLWNoZWNrb3V0LXRhYi1idG4nLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmUgPSAndGFiLXBhbmUnLFxuICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIgPSAndGFiLWNvbnRlbnQnLFxuICBjbGFzc05hbWVNZXJjaGlJbnZvaWNlQnV0dG9uUGF5SW52b2ljZSA9ICdidG4gYnRuLWxnIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jaycsXG4gIGN1cnJlbnRVc2VyLFxuICBkaXNjb3VudEJ1dHRvblRleHQgPSAnQXBwbHknLFxuICBkaXNjb3VudENsYXNzTmFtZSA9ICdtZXJjaGktY2hlY2tvdXQtZGlzY291bnQtY29kZS1jb250YWluZXInLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbiA9ICdidG4gYnRuLXByaW1hcnknLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkNvbnRhaW5lciA9ICcnLFxuICBkaXNjb3VudENsYXNzTmFtZUJ1dHRvbkl0ZW1SZW1vdmUgPSAnYnRuIGJ0bi1zbSBidG4tbGluaycsXG4gIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlID0gJ3RleHQtZGFuZ2VyJyxcbiAgZGlzY291bnRDbGFzc05hbWVJbnB1dCA9ICdmb3JtLWNvbnRyb2wnLFxuICBkaXNjb3VudENsYXNzTmFtZUlucHV0Q29udGFpbmVyID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWZpZWxkLWNvbnRhaW5lcicsXG4gIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXRkaXNjb3VudExhYmVsID0gJ21lcmNoaS1jaGVja291dC1kaXNjb3VudC1jb2RlLWxhYmVsJyxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0yJyxcbiAgZGlzY291bnRDbGFzc05hbWVMaXN0SXRlbXMgPSAnbGlzdC1ncm91cCcsXG4gIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcixcbiAgZGlzY291bnRMYWJlbCA9ICdBcHBseSBEaXNjb3VudCBDb2RlJyxcbiAgZGlzY291bnRTaG93QXBwbGllZEl0ZW1zID0gdHJ1ZSxcbiAgaW5jbHVkZURvbWFpblNpZ251cCA9IGZhbHNlLFxuICBpbnZvaWNlLFxuICBpc0J1eVJlcXVlc3QsXG4gIGlzT3BlbixcbiAgaXNQcm9kdWN0RW1iZWRGb3JtID0gZmFsc2UsXG4gIGpvYixcbiAgcHJvZHVjdCxcbiAgbWVzc2FnZVN1Y2Nlc3NCdXlSZXF1ZXN0LFxuICBtZXNzYWdlU3VjY2Vzc1F1b3RlUmVxdWVzdCxcbiAgcmVkaXJlY3RBZnRlclN1Y2Nlc3NVcmwsXG4gIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwsXG4gIHJlZGlyZWN0V2l0aFZhbHVlLFxuICBzZXRJbnZvaWNlLFxuICBzZXRKb2IsXG4gIHNob3dEaXNjb3VudENvZGUgPSB0cnVlLFxuICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyA9IHRydWUsXG4gIHRvZ2dsZU1lcmNoaUNoZWNrb3V0LFxuICB1cmxBcGkgPSAnaHR0cHM6Ly9hcGkubWVyY2hpLmNvL3Y2LycsXG4gIHVybEZyb250ZW5kID0gJ2h0dHBzOi8vbWVyY2hpLmNvLycsXG59OiBQcm9wc01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIpID0+IHtcbiAgY29uc3QgaW5pdGlhbFRhYnNTdGF0ZSA9IGdldEluaXRpYWxUYWJzU3RhdGUoXG4gICAgam9iLFxuICAgIHByb2R1Y3QsXG4gICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICBpc0J1eVJlcXVlc3QsXG4gICAgaW52b2ljZVxuICApO1xuICBjb25zdCBbYWN0aXZlVGFiSW5kZXgsIHNldEFjdGl2ZVRhYkluZGV4XSA9IHVzZVN0YXRlPG51bWJlcj4oXG4gICAgaW5pdGlhbFRhYnNTdGF0ZS5hY3RpdmVUYWJJbmRleFxuICApO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFthbGVydHMsIHNldEFsZXJ0c10gPSB1c2VTdGF0ZShbXSk7XG4gIGNvbnN0IFtkb21haW4sIHNldERvbWFpbl0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3RhYnMsIHNldFRhYnNdID0gdXNlU3RhdGUoaW5pdGlhbFRhYnNTdGF0ZS50YWJzKTtcbiAgY29uc3QgbWVyY2hpID0gbmV3IE1lcmNoaSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVybEFwaSk7XG4gIGZ1bmN0aW9uIGVkaXREcmFmdFRlbXBsYXRlKGluZGV4OiBudW1iZXIsIGRyYWZ0OiBhbnkpIHtcbiAgICBjb25zdCBqb2JKc29uID0geyAuLi5qb2IgfTtcbiAgICBjb25zdCBkcmFmdFRlbXBsYXRlcyA9IHByb2R1Y3QuZHJhZnRUZW1wbGF0ZXMgfHwgW107XG4gICAgY29uc3QgZHJhZnRUZW1wbGF0ZUZpbGVzID0gZHJhZnRUZW1wbGF0ZXMubWFwKChkOiBhbnkpID0+IGQuZmlsZSk7XG4gICAgY29uc3Qgb3duRHJhZnQgPSAoam9iSnNvbi5vd25EcmFmdHMgJiYgam9iSnNvbi5vd25EcmFmdHNbMF0pIHx8IHtcbiAgICAgIGltYWdlczogZHJhZnRUZW1wbGF0ZUZpbGVzLFxuICAgIH07XG4gICAgaWYgKG93bkRyYWZ0LmltYWdlcykge1xuICAgICAgb3duRHJhZnQuaW1hZ2VzW2luZGV4XSA9IGRyYWZ0O1xuICAgIH0gZWxzZSB7XG4gICAgICBvd25EcmFmdC5pbWFnZXMgPSBbZHJhZnRdO1xuICAgIH1cbiAgICBqb2JKc29uLm93bkRyYWZ0cyA9IFtvd25EcmFmdF07XG4gICAgc2V0Sm9iKGpvYkpzb24pO1xuICB9XG4gIGZ1bmN0aW9uIGFsZXJ0Q2xvc2UoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGVydHMgPSBhbGVydHMuZmlsdGVyKChfLCBpZHgpID0+IGlkeCAhPT0gaW5kZXgpO1xuICAgIHNldEFsZXJ0cyh1cGRhdGVkQWxlcnRzKTtcbiAgfVxuICBmdW5jdGlvbiBhbGVydEVycm9yU2hvdyhtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBuZXdBbGVydHM6IGFueVtdID0gW1xuICAgICAgLi4uYWxlcnRzLFxuICAgICAgeyBhbGVydFR5cGU6ICdlcnJvcicsIG1lc3NhZ2UsIHRpdGxlOiAnRXJyb3IhJyB9LFxuICAgIF07XG4gICAgc2V0QWxlcnRzKG5ld0FsZXJ0cyBhcyBhbnkpO1xuICB9XG4gIGZ1bmN0aW9uIGluaXRUYWJzRnJvbUpvYihqb2JGb3JUYWJzOiBhbnksIHRhYkluZGV4ID0gMCkge1xuICAgIGNvbnN0IHsgdGFiczogbmV4dFRhYnMsIGFjdGl2ZVRhYkluZGV4OiBuZXh0SW5kZXggfSA9IGJ1aWxkVGFic1N0YXRlKFxuICAgICAgam9iRm9yVGFicyxcbiAgICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0LCB0YWJJbmRleCB9XG4gICAgKTtcbiAgICBzZXRUYWJzKG5leHRUYWJzKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChuZXh0SW5kZXgpO1xuICB9XG4gIGZ1bmN0aW9uIHJlc2V0VGFicygpIHtcbiAgICBpbml0VGFic0Zyb21Kb2Ioam9iLCBhY3RpdmVUYWJJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0Q3VzdG9tZXIoY3VzdG9tZXI6IGFueSkge1xuICAgIGNvbnN0IHVwZGF0ZWRKb2IgPSB7IC4uLmpvYiwgY2xpZW50OiBjdXN0b21lciB9O1xuICAgIHNldEpvYih1cGRhdGVkSm9iKTtcbiAgICBpbml0VGFic0Zyb21Kb2IoXG4gICAgICB1cGRhdGVkSm9iLFxuICAgICAgaXNVc2VyUmVnaXN0ZXJlZChjdXN0b21lcikgPyBhY3RpdmVUYWJJbmRleCA6IDBcbiAgICApO1xuICB9XG4gIGZ1bmN0aW9uIGNsZWFyQ3VzdG9tZXIoKSB7XG4gICAgY29uc3QgdXBkYXRlZEpvYiA9IHsgLi4uam9iLCBjbGllbnQ6IHt9IH07XG4gICAgc2V0Sm9iKHVwZGF0ZWRKb2IpO1xuICAgIGluaXRUYWJzRnJvbUpvYih1cGRhdGVkSm9iLCAwKTtcbiAgfVxuICBmdW5jdGlvbiBjYW5jZWxDaGVja291dE9yZGVyKCkge1xuICAgIGNvbnN0IHVwZGF0ZWRKb2IgPSB7IC4uLmpvYiB9O1xuICAgIGRlbGV0ZSB1cGRhdGVkSm9iLmlkO1xuICAgIHNldEludm9pY2Uoe30pO1xuICAgIHNldEpvYih1cGRhdGVkSm9iKTtcbiAgICBjb25zdCBjb25maXJtSW5kZXggPSB0YWJzLmZpbmRJbmRleCgodCkgPT4gdC5pZCA9PT0gdGFiSWRDb25maXJtKTtcbiAgICBpbml0VGFic0Zyb21Kb2IodXBkYXRlZEpvYiwgY29uZmlybUluZGV4ID49IDAgPyBjb25maXJtSW5kZXggOiAwKTtcbiAgfVxuICBmdW5jdGlvbiBuZXh0VGFiKCkge1xuICAgIGNvbnN0IG5kZXh0SW5kZXggPSBhY3RpdmVUYWJJbmRleCArIDE7XG4gICAgY29uc3QgX3RhYnM6IGFueVtdID0gWy4uLnRhYnNdO1xuICAgIF90YWJzW25kZXh0SW5kZXhdLmRpc2FibGVkID0gZmFsc2U7XG4gICAgc2V0VGFicyhfdGFicyBhcyBbXSk7XG4gICAgc2V0QWN0aXZlVGFiSW5kZXgobmRleHRJbmRleCk7XG4gIH1cbiAgZnVuY3Rpb24gc2V0QWN0aXZlVGFiQnlJZCh0YWJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5kZXggPSB0YWJzLmZpbmRJbmRleCgodDogTWVyY2hpQ2hlY2tvdXRUYWIpID0+IHQuaWQgPT09IHRhYklkKTtcbiAgICBzZXRBY3RpdmVUYWJJbmRleChpbmRleCk7XG4gIH1cbiAgY29uc3QgcXVvdGVTaWduYXR1cmUgPSBnZXRDaGVja291dFF1b3RlU2lnbmF0dXJlKGpvYik7XG4gIGNvbnN0IHF1b3RlU2lnbmF0dXJlUmVmID0gUmVhY3QudXNlUmVmKCcnKTtcblxuICB1c2VMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvZHVjdD8uaWQpIHJldHVybjtcblxuICAgIGNvbnN0IHNlc3Npb24gPSBsb2FkQ2hlY2tvdXRTZXNzaW9uKHByb2R1Y3QpO1xuICAgIGNvbnN0IG1lcmdlZEpvYiA9IG1lcmdlSm9iV2l0aENoZWNrb3V0U2Vzc2lvbihqb2IsIHNlc3Npb24pO1xuXG4gICAgaWYgKGNoZWNrb3V0U2Vzc2lvbkNoYW5nZWQoam9iLCBtZXJnZWRKb2IpKSB7XG4gICAgICBzZXRKb2IobWVyZ2VkSm9iKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdW90ZUNoYW5nZWQgPSBxdW90ZVNpZ25hdHVyZVJlZi5jdXJyZW50ICE9PSBxdW90ZVNpZ25hdHVyZTtcbiAgICBxdW90ZVNpZ25hdHVyZVJlZi5jdXJyZW50ID0gcXVvdGVTaWduYXR1cmU7XG5cbiAgICBpZiAoIXRhYnMubGVuZ3RoIHx8IHF1b3RlQ2hhbmdlZCkge1xuICAgICAgY29uc3QgcmVzdG9yZWRJbnZvaWNlID0gaW52b2ljZT8uaWQgPyBpbnZvaWNlIDogc2Vzc2lvbj8uaW52b2ljZTtcbiAgICAgIGNvbnN0IHJlc3RvcmVkSW5kZXggPVxuICAgICAgICBxdW90ZUNoYW5nZWQgJiYgIXJlc3RvcmVkSW52b2ljZT8uaWRcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IGdldFNhZmVSZXN0b3JlZFRhYkluZGV4KFxuICAgICAgICAgICAgICBtZXJnZWRKb2IsXG4gICAgICAgICAgICAgIHsgaW5jbHVkZURvbWFpblNpZ251cCwgaXNCdXlSZXF1ZXN0IH0sXG4gICAgICAgICAgICAgIHNlc3Npb24/LmFjdGl2ZVRhYkluZGV4ID8/IDAsXG4gICAgICAgICAgICAgIHJlc3RvcmVkSW52b2ljZVxuICAgICAgICAgICAgKTtcbiAgICAgIGluaXRUYWJzRnJvbUpvYihtZXJnZWRKb2IsIHJlc3RvcmVkSW5kZXgpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFpc1VzZXJSZWdpc3RlcmVkKG1lcmdlZEpvYi5jbGllbnQpICYmXG4gICAgICAhaXNVc2VyUmVnaXN0ZXJlZChzZXNzaW9uPy5jbGllbnQpICYmXG4gICAgICBpc1VzZXJSZWdpc3RlcmVkKGN1cnJlbnRVc2VyKVxuICAgICkge1xuICAgICAgc2V0Sm9iKHsgLi4ubWVyZ2VkSm9iLCBjbGllbnQ6IGN1cnJlbnRVc2VyIH0pO1xuICAgIH1cbiAgfSwgW3Byb2R1Y3Q/LmlkLCBxdW90ZVNpZ25hdHVyZV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFwcm9kdWN0Py5pZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2Vzc2lvbiA9IGxvYWRDaGVja291dFNlc3Npb24ocHJvZHVjdCk7XG4gICAgaWYgKCFpbnZvaWNlPy5pZCAmJiBzZXNzaW9uPy5pbnZvaWNlPy5pZCkge1xuICAgICAgc2V0SW52b2ljZShzZXNzaW9uLmludm9pY2UpO1xuICAgIH1cbiAgfSwgW3Byb2R1Y3Q/LmlkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXByb2R1Y3Q/LmlkKSByZXR1cm47XG4gICAgc2F2ZUNoZWNrb3V0U2Vzc2lvbihcbiAgICAgIHByb2R1Y3QsXG4gICAgICBidWlsZENoZWNrb3V0U2Vzc2lvbihcbiAgICAgICAgam9iLFxuICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAge1xuICAgICAgICAgIGludm9pY2UsXG4gICAgICAgICAgY2hlY2tvdXRPcGVuOiBpc09wZW4sXG4gICAgICAgICAgaXNCdXlSZXF1ZXN0LFxuICAgICAgICB9LFxuICAgICAgICBsb2FkQ2hlY2tvdXRTZXNzaW9uKHByb2R1Y3QpXG4gICAgICApXG4gICAgKTtcbiAgfSwgW1xuICAgIHByb2R1Y3Q/LmlkLFxuICAgIGpvYi5jbGllbnQsXG4gICAgam9iLnNoaXBwaW5nLFxuICAgIGpvYi5iaWxsaW5nLFxuICAgIGpvYi5zaGlwbWVudCxcbiAgICBqb2IuaXRlbXMsXG4gICAgYWN0aXZlVGFiSW5kZXgsXG4gICAgaW52b2ljZSxcbiAgICBpc09wZW4sXG4gICAgaXNCdXlSZXF1ZXN0LFxuICBdKTtcbiAgZnVuY3Rpb24gZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MoaXRlbXM6IGFueVtdKSB7XG4gICAgc2V0Sm9iKHsgLi4uam9iLCBpdGVtcyB9KTtcbiAgfVxuICBmdW5jdGlvbiBkaXNjb3VudENhbGxiYWNrRXJyb3IoKSB7XG4gICAgc2V0Sm9iKHsgLi4uam9iLCBpdGVtczogW10gfSk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8TWVyY2hpQ2hlY2tvdXRDb250ZXh0LlByb3ZpZGVyXG4gICAgICB2YWx1ZT17XG4gICAgICAgIHtcbiAgICAgICAgICBhY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBhbGVydHMsXG4gICAgICAgICAgYWxlcnRDbG9zZSxcbiAgICAgICAgICBhbGVydEVycm9yU2hvdyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0c0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0QWxlcnRFcnJvcixcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEFsZXJ0U3VjY2VzcyxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvblByaW1hcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25QcmltYXJ5QmxvY2ssXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnksXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRCdXR0b25TZWNvbmRhcnlCbG9jayxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkRvd25sb2FkSW52b2ljZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEJ1dHRvbkNhbmNlbE9yZGVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Q29uZmlybUluZm9QYW5lbCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvb3RlckFjdGlvbnNDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtQ2hlY2tib3gsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXAsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtR3JvdXBDaGVja2JveCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1JbnB1dCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEZvcm1TZWxlY3QsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRHb29nbGVTdWdnZXN0TGlzdCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dEdvb2dsZVN1Z2dlc3RMaXN0SXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dExpc3RHcm91cEl0ZW1Mb2FkZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRGb3JtTGFiZWxDaGVja2JveCxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dElucHV0RXJyb3IsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXAsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRMaXN0R3JvdXBJdGVtLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93LFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0Um93Q29sdW1uLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0U3VidGl0bGUsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpQ2hlY2tvdXRUYWJzQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiQnV0dG9uLFxuICAgICAgICAgIGNsYXNzTmFtZU1lcmNoaUNoZWNrb3V0VGFiUGFuZSxcbiAgICAgICAgICBjbGFzc05hbWVNZXJjaGlDaGVja291dFRhYlBhbmVDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lTWVyY2hpSW52b2ljZUJ1dHRvblBheUludm9pY2UsXG4gICAgICAgICAgY2xlYXJDdXN0b21lcixcbiAgICAgICAgICBjYW5jZWxDaGVja291dE9yZGVyLFxuICAgICAgICAgIGN1cnJlbnRVc2VyLFxuICAgICAgICAgIGN1c3RvbWVyOiBqb2IuY2xpZW50IHx8IHt9LFxuICAgICAgICAgIGRpc2NvdW50QnV0dG9uVGV4dCxcbiAgICAgICAgICBkaXNjb3VudENhbGxiYWNrRXJyb3IsXG4gICAgICAgICAgZGlzY291bnRDYWxsYmFja1N1Y2Nlc3MsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWUsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b24sXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b25Db250YWluZXIsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVCdXR0b25JdGVtUmVtb3ZlLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lRXJyb3JNZXNzYWdlLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lSW5wdXQsXG4gICAgICAgICAgZGlzY291bnRDbGFzc05hbWVJbnB1dENvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUlucHV0ZGlzY291bnRMYWJlbCxcbiAgICAgICAgICBkaXNjb3VudENsYXNzTmFtZUxpc3RJdGVtLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTGlzdEl0ZW1zLFxuICAgICAgICAgIGRpc2NvdW50Q2xhc3NOYW1lTWFpbkNvbnRhaW5lcixcbiAgICAgICAgICBkaXNjb3VudExhYmVsLFxuICAgICAgICAgIGRpc2NvdW50U2hvd0FwcGxpZWRJdGVtcyxcbiAgICAgICAgICBkb21haW4sXG4gICAgICAgICAgZWRpdERyYWZ0VGVtcGxhdGUsXG4gICAgICAgICAgaW5jbHVkZURvbWFpblNpZ251cCxcbiAgICAgICAgICBpbnZvaWNlLFxuICAgICAgICAgIGlzQnV5UmVxdWVzdCxcbiAgICAgICAgICBpc09wZW4sXG4gICAgICAgICAgaXNQcm9kdWN0RW1iZWRGb3JtLFxuICAgICAgICAgIGpvYixcbiAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgIG1lcmNoaSxcbiAgICAgICAgICBtZXNzYWdlU3VjY2Vzc0J1eVJlcXVlc3QsXG4gICAgICAgICAgbWVzc2FnZVN1Y2Nlc3NRdW90ZVJlcXVlc3QsXG4gICAgICAgICAgbmV4dFRhYixcbiAgICAgICAgICBwcm9kdWN0LFxuICAgICAgICAgIHJlZGlyZWN0QWZ0ZXJTdWNjZXNzVXJsLFxuICAgICAgICAgIHJlZGlyZWN0QWZ0ZXJRdW90ZVN1Y2Nlc3NVcmwsXG4gICAgICAgICAgcmVkaXJlY3RXaXRoVmFsdWUsXG4gICAgICAgICAgc2V0QWN0aXZlVGFiQnlJZCxcbiAgICAgICAgICBzZXRBY3RpdmVUYWJJbmRleCxcbiAgICAgICAgICBzZXRDdXN0b21lcixcbiAgICAgICAgICBzZXREb21haW4sXG4gICAgICAgICAgc2V0SW52b2ljZSxcbiAgICAgICAgICBzZXRKb2IsXG4gICAgICAgICAgc2hvd0Rpc2NvdW50Q29kZSxcbiAgICAgICAgICBzaG93VXNlclRlcm1zQW5kQ29uZGl0aW9ucyxcbiAgICAgICAgICB0YWJzLFxuICAgICAgICAgIHRvZ2dsZU1lcmNoaUNoZWNrb3V0LFxuICAgICAgICAgIHVybEFwaSxcbiAgICAgICAgICB1cmxGcm9udGVuZCxcbiAgICAgICAgfSBhcyBJTWVyY2hpQ2hlY2tvdXRcbiAgICAgIH1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1lcmNoaS1jaGVja291dFwiPntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L01lcmNoaUNoZWNrb3V0Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxtQkFBQUMsR0FBQSxXQUFBQyxrQkFBQSxDQUFBRCxHQUFBLEtBQUFFLGdCQUFBLENBQUFGLEdBQUEsS0FBQUcsMkJBQUEsQ0FBQUgsR0FBQSxLQUFBSSxrQkFBQTtBQUFBLFNBQUFBLG1CQUFBLGNBQUFDLFNBQUE7QUFBQSxTQUFBSCxpQkFBQUksSUFBQSxlQUFBWCxNQUFBLG9CQUFBVyxJQUFBLENBQUFYLE1BQUEsQ0FBQUMsUUFBQSxhQUFBVSxJQUFBLCtCQUFBQyxLQUFBLENBQUFDLElBQUEsQ0FBQUYsSUFBQTtBQUFBLFNBQUFMLG1CQUFBRCxHQUFBLFFBQUFPLEtBQUEsQ0FBQUUsT0FBQSxDQUFBVCxHQUFBLFVBQUFVLGlCQUFBLENBQUFWLEdBQUE7QUFBQSxTQUFBVyxlQUFBWCxHQUFBLEVBQUFZLENBQUEsV0FBQUMsZUFBQSxDQUFBYixHQUFBLEtBQUFjLHFCQUFBLENBQUFkLEdBQUEsRUFBQVksQ0FBQSxLQUFBVCwyQkFBQSxDQUFBSCxHQUFBLEVBQUFZLENBQUEsS0FBQUcsZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBVixTQUFBO0FBQUEsU0FBQUYsNEJBQUFULENBQUEsRUFBQXNCLE1BQUEsU0FBQXRCLENBQUEscUJBQUFBLENBQUEs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