simpo-component-library 1.4.214 → 1.4.217

Sign up to get free protection for your applications and to get access to all the features.
@@ -157,12 +157,21 @@ export class ProductListComponent extends BaseSection {
157
157
  if (type == 'ADD') {
158
158
  product.whislist = true;
159
159
  this.messageService.add({ severity: 'success', summary: 'Wishlist', detail: 'Item added to your wishlist' });
160
- this.cartService.addItemToFavourite(product);
160
+ if (product.itemVariant.length) {
161
+ const itemVarient = this.getItemVarient(product, product.varientId);
162
+ if (itemVarient) {
163
+ itemVarient.wishlist = true;
164
+ this.cartService.addItemToFavourite(product, itemVarient.variantId);
165
+ }
166
+ }
167
+ else {
168
+ this.cartService.addItemToFavourite(product);
169
+ }
161
170
  }
162
171
  else {
163
172
  product.whislist = false;
164
173
  this.messageService.add({ severity: 'info', summary: 'Wishlist', detail: 'Item removed from your wishlist' });
165
- this.cartService.removeItemFromFavourite(product);
174
+ this.cartService.removeItemFromFavourite(product.varientId);
166
175
  }
167
176
  event.stopPropagation();
168
177
  }
@@ -173,7 +182,6 @@ export class ProductListComponent extends BaseSection {
173
182
  }
174
183
  product.quantity += (type == 'ADD' ? 1 : -1);
175
184
  this.cartService.addItemToCart(product);
176
- // event.stopPropagation();
177
185
  }
178
186
  searchProduct() {
179
187
  this.navigateFilter(this.sortBy ?? "lowestPrice");
@@ -218,8 +226,19 @@ export class ProductListComponent extends BaseSection {
218
226
  this.USER_CART = cartData.target.result;
219
227
  this.responseData?.forEach((product) => {
220
228
  this.USER_CART?.forEach((item) => {
221
- if (item.itemId == product.itemId)
222
- product.quantity = item.quantity;
229
+ if (item.itemId == product.itemId) {
230
+ if (product.itemVariant.length > 0) {
231
+ const itemVarient = product.itemVariant[0];
232
+ if (itemVarient.variantId == item.varientId) {
233
+ product.itemImages = itemVarient.variantImages ?? [];
234
+ product.price = itemVarient.itemVariantPrice;
235
+ product.quantity = item.quantity;
236
+ }
237
+ }
238
+ else {
239
+ product.quantity = item.quantity;
240
+ }
241
+ }
223
242
  });
224
243
  });
225
244
  };
@@ -229,8 +248,19 @@ export class ProductListComponent extends BaseSection {
229
248
  this.USER_WISHLIST = whislistData.target.result;
230
249
  this.responseData?.forEach((product) => {
231
250
  this.USER_WISHLIST?.forEach((item) => {
232
- if (item.itemId == product.itemId)
233
- product.wishlist = true;
251
+ if (item.itemId == product.itemId) {
252
+ if (product.itemVariant.length > 0) {
253
+ const itemVarient = product.itemVariant[0];
254
+ if (itemVarient.variantId == item.varientId) {
255
+ product.itemImages = itemVarient?.variantImages ?? [];
256
+ product.price = itemVarient.itemVariantPrice;
257
+ product.whislist = true;
258
+ }
259
+ }
260
+ else {
261
+ product.whislist = true;
262
+ }
263
+ }
234
264
  });
235
265
  });
236
266
  };
@@ -260,6 +290,14 @@ export class ProductListComponent extends BaseSection {
260
290
  isItemOutOfStock(product) {
261
291
  return product.itemInventory.openingStock == 0;
262
292
  }
293
+ getItemVarient(product, varientId) {
294
+ let selectedVarient = null;
295
+ product.itemVariant?.forEach((varient) => {
296
+ if (varient.variantId == varientId)
297
+ selectedVarient = varient;
298
+ });
299
+ return selectedVarient;
300
+ }
263
301
  get isMobile() {
264
302
  return window.innerWidth < 475;
265
303
  }
@@ -311,4 +349,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
311
349
  type: HostListener,
312
350
  args: ["window: resize", ["$event"]]
313
351
  }] } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUt4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9C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b0I7d0JBQ3BCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFdBQVc7cUJBQ1osYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBZ0J4QixNQUFNOzJCQUFDLFdBQVc7aVNBWFosWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBK0NOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vLi4vc3R5bGVzL3Byb2R1Y3QubW9kYWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFByb2R1Y3RMaXN0Q29udGVudE1vZGFsLCBQcm9kdWN0TGlzdE1vZGFsLCBQcm9kdWN0TGlzdFN0eWxlc01vZGFsIH0gZnJvbSAnLi9wcm9kdWN0LWxpc3QubW9kYWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IFBhZ25pbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcGFnbmluYXRpb24vcGFnbmluYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0LCBNYXRCb3R0b21TaGVldE1vZHVsZSwgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQge01hdFJhZGlvTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEJVU0lORVNTX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEZvcm1hdGVBbW91bnQgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9hbW91bnQucGlwZSc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcblxyXG5pbnRlcmZhY2UgQmFzZU1vZGVsIHtcclxuICBvcHRpb246IHN0cmluZyxcclxuICBpZDogc3RyaW5nLFxyXG4gIHN0YXR1czogYm9vbGVhblxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXByb2R1Y3QtbGlzdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgTWF0U2xpZGVyTW9kdWxlLFxyXG4gICAgUGFnbmluYXRpb25Db21wb25lbnQsXHJcbiAgICAvL2RpcmVjdGl2ZVxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQ29udGVudEZpdERpcmVjdGl2ZSxcclxuICAgIEhvdmVyRGlyZWN0aXZlLFxyXG4gICAgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgTWF0SWNvbixcclxuICAgIE1hdEJvdHRvbVNoZWV0TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBGb3JtYXRlQW1vdW50LFxyXG4gICAgVG9hc3RNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJvZHVjdC1saXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIHtcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBQcm9kdWN0W11cclxuICBASW5wdXQoKSBkYXRhPzogUHJvZHVjdExpc3RNb2RhbDtcclxuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT8gOiBib29sZWFuO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnRlbnQ/OiBQcm9kdWN0TGlzdENvbnRlbnRNb2RhbDtcclxuICBidXR0b24/OiBCdXR0b25Nb2RlbDtcclxuICB0b3RhbFBhZ2VzOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXRCb3R0b21TaGVldDogTWF0Qm90dG9tU2hlZXQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcbiAgICAgIHRoaXMuZ2V0U2NyZWVuU2l6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJCb3R0b21TaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuICAvLyBwcml2YXRlIHNvcnRpbmdEaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgc29ydGluZ0RpYWxvZ1JlZjogTWF0Qm90dG9tU2hlZXRSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIHByaWNpbmdNaW46IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHByaWNpbmdNYXg6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHNvcnRCeTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHByaXZhdGUgVVNFUl9DQVJUOiBPcmRlcmVkSXRlbXNbXSB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgVVNFUl9XSVNITElTVDogT3JkZXJlZEl0ZW1zW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIG1pblByb2R1Y3RQcmljZTogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgbWF4UHJvZHVjdFByaWNlOiBudW1iZXIgPSAwO1xyXG5cclxuICAvLyB3aWxsIGNvbWUgZnJvbSBiYWNrZW5kIGFzIHNob3AgYW5kIHJlc3R1cmFudCBjYW4gaGF2ZSBkaWZmcmVudCBmaWx0ZXJzXHJcbiAgcHVibGljIGZpbHRlcmluZ0FycmF5ID0gW1xyXG4gICAgeyBuYW1lOiBcIkxvd2VzdCBGaXJzdFwiLCB2YWx1ZTogXCJsb3dlc3RQcmljZVwiIH0sXHJcbiAgICB7IG5hbWU6IFwiSGlnaGVzdCBGaXJzdFwiLCB2YWx1ZTogXCJoaWdoZXN0UHJpY2VcIiB9XHJcbiAgXTtcclxuXHJcbiAgc2NyZWVuV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzogcmVzaXplXCIsIFtcIiRldmVudFwiXSlcclxuICBnZXRTY3JlZW5TaXplKCkge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyTGlzdDogYW55W10gPSBbXCJXb21lblwiLCBcIk1lblwiXTtcclxuICBzdHlsZXM/OiBQcm9kdWN0TGlzdFN0eWxlc01vZGFsO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlciA9IDA7XHJcbiAgcGFnZU5vOiBudW1iZXIgPSAwO1xyXG4gIHNpemU6IG51bWJlciA9IDIwO1xyXG4gIHNlYXJjaFR4dDogc3RyaW5nID0gXCJcIjtcclxuICBmaWx0ZXJMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmRhdGE/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5idXR0b24gPSB0aGlzLmRhdGE/LmFjdGlvbi5idXR0b25zWzBdO1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHJlc3BvbnNlO1xyXG4gICAgfSlcclxuICAgIHRoaXMuZ2V0QWxsQ2F0ZWdvcmllcygpO1xyXG4gICAgdGhpcy5nZXRBbGxDb2xsZWN0aW9ucygpO1xyXG5cclxuICAgIHRoaXMubWluUHJvZHVjdFByaWNlID0gdGhpcy5wcmljaW5nTWluID0gdGhpcy5kYXRhPy5zdHlsZXMubWluUHJpY2UgPz8gMDtcclxuICAgIHRoaXMubWF4UHJvZHVjdFByaWNlID0gdGhpcy5wcmljaW5nTWF4ID0gdGhpcy5kYXRhPy5zdHlsZXMubWF4UHJpY2UgPz8gMTAwMDtcclxuXHJcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocVBhcmFtOiBhbnkpPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFR4dCA9IHFQYXJhbVtcInNlYXJjaFR4dFwiXTtcclxuICAgICAgdGhpcy5wYWdlTm8gPSBxUGFyYW1bXCJwYWdlTm9cIl0gPyBOdW1iZXIocVBhcmFtW1wicGFnZU5vXCJdKSA6IDE7XHJcbiAgICAgIHRoaXMuc29ydEJ5ID0gcVBhcmFtW1wic29ydGluZ1wiXSA/PyBcImxvd2VzdFByaWNlXCI7XHJcbiAgICAgIHRoaXMucHJpY2luZ01pbiA9IGlzTmFOKE51bWJlcihxUGFyYW1bXCJtaW5QcmljZVwiXSkpID8gdGhpcy5taW5Qcm9kdWN0UHJpY2UgOiBOdW1iZXIocVBhcmFtW1wibWluUHJpY2VcIl0pO1xyXG4gICAgICB0aGlzLnByaWNpbmdNYXggPSBpc05hTihOdW1iZXIocVBhcmFtW1wibWF4UHJpY2VcIl0pKSA/IHRoaXMubWF4UHJvZHVjdFByaWNlIDogTnVtYmVyKHFQYXJhbVtcIm1heFByaWNlXCJdKTtcclxuICAgICAgdGhpcy5maWx0ZXJCeUNhdGVnb3J5Q29sbGVjdGlvblBhcmFtKHFQYXJhbVtcImNhdGVnb3J5XCJdLCBxUGFyYW1bXCJjb2xsZWN0aW9uc1wiXSk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyQnlDYXRlZ29yeUNvbGxlY3Rpb25QYXJhbShxQ2F0ZWdvcmllczogYW55LCBxQ29sbGVjdGlvbnM6IGFueSkge1xyXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IHFDYXRlZ29yaWVzPy5zcGxpdChcIitcIik/Lm1hcCgoY2F0ZWdvcnk6IHN0cmluZyk9PiBjYXRlZ29yeS5yZXBsYWNlQWxsKFwiX1wiLCBcIiBcIikudG9Mb3dlckNhc2UoKSkuZmlsdGVyKChjYXRlZ29yeTogc3RyaW5nKT0+IGNhdGVnb3J5Lmxlbmd0aCA+IDApO1xyXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSBxQ29sbGVjdGlvbnM/LnNwbGl0KFwiK1wiKT8ubWFwKChjb2xsZWN0aW9uOiBzdHJpbmcpPT4gY29sbGVjdGlvbi5yZXBsYWNlQWxsKFwiX1wiLCBcIiBcIikudG9Mb3dlckNhc2UoKSkuZmlsdGVyKChjb2xsZWN0aW9uOiBzdHJpbmcpPT4gY29sbGVjdGlvbi5sZW5ndGggPiAwKTtcclxuXHJcbiAgICB0aGlzLmNhdGVnb3JpZXM/LmZvckVhY2goKGNhdGVnb3J5KT0+IGNhdGVnb3J5LnN0YXR1cyA9IGNhdGVnb3JpZXM/LmluY2x1ZGVzKGNhdGVnb3J5Py5vcHRpb24/LnRvTG93ZXJDYXNlKCkpID8/IGZhbHNlKTtcclxuICAgIHRoaXMuY29sbGVjdGlvbnM/LmZvckVhY2goKGNvbGxlY3Rpb24pPT4gY29sbGVjdGlvbi5zdGF0dXMgPSBjb2xsZWN0aW9ucz8uaW5jbHVkZXMoY29sbGVjdGlvbj8ub3B0aW9uPy50b0xvd2VyQ2FzZSgpKSA/PyBmYWxzZSk7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNhdGVnb3JpZXMsIHRoaXMuY29sbGVjdGlvbnMpO1xyXG4gICAgdGhpcy5maWx0ZXJMaXN0ID0gW1xyXG4gICAgICAuLi50aGlzLmNhdGVnb3JpZXM/LmZpbHRlcigoY2F0ZWdvcnk6IGFueSk9PiBjYXRlZ29yeS5zdGF0dXMpLm1hcCgoY2F0ZWdvcnkpPT4geyByZXR1cm4geyBpZDogY2F0ZWdvcnkuaWQsIG5hbWU6IGNhdGVnb3J5Lm9wdGlvbiB9IH0pLFxyXG4gICAgICAuLi50aGlzLmNvbGxlY3Rpb25zPy5maWx0ZXIoKGNvbGxlY3Rpb246IGFueSk9PiBjb2xsZWN0aW9uLnN0YXR1cykubWFwKChjb2xsZWN0aW9uKSA9PiB7IHJldHVybiB7IGlkOiBjb2xsZWN0aW9uLmlkLCBuYW1lOiBjb2xsZWN0aW9uLm9wdGlvbiB9IH0pXHJcbiAgICBdO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5maWx0ZXJMaXN0KTtcclxuICAgIHRoaXMuZmlsdGVySXRlbUxpc3QoKTtcclxuICB9XHJcblxyXG4gIGdldEFsbENhdGVnb3JpZXMoKSB7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbENhdGVnb3JpZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5jYXRlZ29yaWVzID0gcmVzcG9uc2UuZmlsdGVyKChjYXRlZ29yeTogYW55KT0+IGNhdGVnb3J5LmZlYXR1cmVkQ29sbGVjdGlvbiB8fCB0cnVlKS5tYXAoKGNhdGVnb3J5OiBhbnkpPT4geyByZXR1cm4geyBvcHRpb246IGNhdGVnb3J5LmNhdGVnb3J5TmFtZSwgaWQ6IGNhdGVnb3J5LmNhdGVnb3J5SWQsIHN0YXR1czogZmFsc2UgfSB9KTtcclxuICAgICAgY29uc3QgcVBhcmFtQ29sbGVjdGlvbnMgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1wiY29sbGVjdGlvbnNcIl07XHJcbiAgICAgIGNvbnN0IHFQYXJhbUNhdGVnb3J5ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcImNhdGVnb3J5XCJdO1xyXG4gICAgICB0aGlzLmZpbHRlckJ5Q2F0ZWdvcnlDb2xsZWN0aW9uUGFyYW0ocVBhcmFtQ2F0ZWdvcnksIHFQYXJhbUNvbGxlY3Rpb25zKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRBbGxDb2xsZWN0aW9ucygpIHtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0QWxsQ29sbGVjdGlvbnMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9ucyA9IHJlc3BvbnNlLmZpbHRlcigoY29sbGVjdGlvbjogYW55KT0+IGNvbGxlY3Rpb24uZmVhdHVyZWRDYXRlZ29yeSB8fCB0cnVlKS5tYXAoKGNvbGxlY3Rpb246IGFueSk9PiB7IHJldHVybiB7IG9wdGlvbjogY29sbGVjdGlvbi5jb2xsZWN0aW9uTmFtZSwgaWQ6IGNvbGxlY3Rpb24uY29sbGVjdGlvbklkLCBzdGF0dXM6IGZhbHNlIH0gfSk7XHJcbiAgICAgIGNvbnN0IHFQYXJhbUNvbGxlY3Rpb25zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcImNvbGxlY3Rpb25zXCJdO1xyXG4gICAgICBjb25zdCBxUGFyYW1DYXRlZ29yeSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJjYXRlZ29yeVwiXTtcclxuICAgICAgdGhpcy5maWx0ZXJCeUNhdGVnb3J5Q29sbGVjdGlvblBhcmFtKHFQYXJhbUNhdGVnb3J5LCBxUGFyYW1Db2xsZWN0aW9ucyk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsdGVyKGZpbHRlcjogYW55KSB7XHJcbiAgICB0aGlzLmZpbHRlckxpc3QgPSB0aGlzLmZpbHRlckxpc3QuZmlsdGVyKChmKT0+IGYuaWQgIT0gZmlsdGVyLmlkKTtcclxuICAgIGNvbnN0IGZpbHRlckxpc3RJZHMgPSB0aGlzLmZpbHRlckxpc3QubWFwKChmaWx0ZXIpPT4gZmlsdGVyLmlkKTtcclxuICAgIHRoaXMuY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSk9PiBjYXRlZ29yeS5zdGF0dXMgPSBmaWx0ZXJMaXN0SWRzLmluY2x1ZGVzKGNhdGVnb3J5LmlkKSk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pPT4gY29sbGVjdGlvbi5zdGF0dXMgPSBmaWx0ZXJMaXN0SWRzLmluY2x1ZGVzKGNvbGxlY3Rpb24uaWQpKTtcclxuICAgIHRoaXMucGFnZU5vID0gMTtcclxuICAgIC8vIHNvcnRpbmcgc2hvdWxkIGFkZFxyXG4gICAgdGhpcy5uYXZpZ2F0ZUZpbHRlcih0aGlzLnNvcnRCeSA/PyBcImxvd2VzdFByaWNlXCIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZHVjdFdpZHRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2NyZWVuV2lkdGggPiA0NzUgPyAodGhpcy5zY3JlZW5XaWR0aCA8IDEwMjUgPyAnMjUlJyA6ICdjYWxjKCcgKyAoKDEwMCAvICh0aGlzLnN0eWxlcz8uZWxlbWVudEluUm93IHx8IDQpKSkgKyAnJSknKSA6ICh0aGlzLnN0eWxlcz8ubW9iaWxlQ29sdW1uID09PSAxID8gJzEwMCUnIDogJzUwJScpXHJcbiAgfVxyXG5cclxuICBwcm9jZWVkVG9Qcm9kdWN0RGVzYyhwcm9kdWN0SWQ6IGFueSl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2RldGFpbHMnXSwgeyBxdWVyeVBhcmFtczogeyBpZDogcHJvZHVjdElkIH0gfSk7XHJcbiAgICAvLyB0aGlzLl9ldmVudFNlcnZpY2UucmVkaXJlY3RUb1BhZ2UuZW1pdCh7cmVkaXJlY3RUbzogJy9kZXRhaWxzJywgZGF0YToge3Byb2R1Y3RJZDogcHJvZHVjdElkfX0pXHJcbiAgfVxyXG4gIGNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5jYXRlZ29yaWVzLmZvckVhY2goKGNhdGVnb3J5KT0+IGNhdGVnb3J5LnN0YXR1cyA9IGZhbHNlKTtcclxuICAgIHRoaXMuY29sbGVjdGlvbnMuZm9yRWFjaCgoY29sbGVjdGlvbik9PiBjb2xsZWN0aW9uLnN0YXR1cyA9IGZhbHNlKTtcclxuICAgIHRoaXMucHJpY2luZ01pbiA9IHRoaXMubWluUHJvZHVjdFByaWNlO1xyXG4gICAgdGhpcy5wcmljaW5nTWF4ID0gdGhpcy5tYXhQcm9kdWN0UHJpY2U7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2xpc3QnXSk7XHJcbiAgfVxyXG4gIHRvZ2dsZUl0ZW1Ub0ZhdihldmVudDogUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCwgcHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0FERCcgfCAnUkVNT1ZFJykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IHRydWU7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ1dpc2hsaXN0JywgZGV0YWlsOiAnSXRlbSBhZGRlZCB0byB5b3VyIHdpc2hsaXN0JyB9KTtcclxuICAgICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3QpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIGFkZEl0ZW1Ub0NhcnQoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1NVQlNUUkFDVCcpIHtcclxuICAgIGlmICh0aGlzLmlzSXRlbU91dE9mU3RvY2socHJvZHVjdCkpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ3dhcm4nLCBzdW1tYXJ5OiAnQ2FydCcsIGRldGFpbDogJ0l0ZW0gaXMgbm90IGF2YWlsYWJsZSBhcyBvZiBub3cuIFdlIHdpbGwgbm90aWZ5IHlvdSBvbmNlIGF2YWlsYWJsZScgfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHByb2R1Y3QucXVhbnRpdHkgKz0gKHR5cGUgPT0gJ0FERCcgPyAxIDogLTEpOyBcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChwcm9kdWN0KTtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBzZWFyY2hQcm9kdWN0KCkge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZUZpbHRlcih0aGlzLnNvcnRCeSA/PyBcImxvd2VzdFByaWNlXCIpO1xyXG4gIH1cclxuXHJcbiAgY2F0ZWdvcmllczogQmFzZU1vZGVsW10gPSBbXTtcclxuICBjb2xsZWN0aW9uczogQmFzZU1vZGVsW10gPSBbXTtcclxuICBhcHBseUZpbHRlcihjYXRlZ29yeT86YW55LCB0eXBlPzogJ1NPUlQnfCdGSUxURVInKSB7XHJcbiAgICBsZXQgc29ydGluZyA9IFwiXCI7XHJcbiAgICB0aGlzLnBhZ2VObyA9IDE7XHJcblxyXG4gICAgaWYgKHR5cGUgPT0gXCJGSUxURVJcIilcclxuICAgICAgY2F0ZWdvcnkuc3RhdHVzID0gIWNhdGVnb3J5LnN0YXR1cztcclxuICAgIGVsc2UgaWYgKHR5cGUgPT0gXCJTT1JUXCIpXHJcbiAgICAgIHNvcnRpbmcgPSBjYXRlZ29yeT8udGFyZ2V0Py52YWx1ZTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckJvdHRvbVNoZWV0UmVmPy5kaXNtaXNzKCk7XHJcbiAgICB0aGlzLm5hdmlnYXRlRmlsdGVyKHNvcnRpbmcpO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVGaWx0ZXIoc29ydGluZzogc3RyaW5nKSB7XHJcblxyXG4gICAgbGV0IHNlbGVjdGVkQ2F0ZWdvcnkgPSBcIlwiO1xyXG4gICAgbGV0IHNlbGVjdGVkQ29sbGVjdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLmNhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSk9PiBjYXRlZ29yeS5zdGF0dXMpLm1hcCgoY2F0ZWdvcnkpPT4ge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIC4uLmNhdGVnb3J5LFxyXG4gICAgICAgIHNsdWc6IGNhdGVnb3J5Lm9wdGlvbi5yZXBsYWNlQWxsKFwiIFwiLCBcIl9cIilcclxuICAgICAgfVxyXG4gICAgfSkuZm9yRWFjaCgoY2F0ZWdvcnkpPT4gc2VsZWN0ZWRDYXRlZ29yeSArPSAoY2F0ZWdvcnkuc2x1ZyArIFwiK1wiKSk7XHJcblxyXG4gICAgdGhpcy5jb2xsZWN0aW9ucy5maWx0ZXIoKGNvbGxlY3Rpb24pPT4gY29sbGVjdGlvbi5zdGF0dXMpLm1hcCgoY29sbGVjdGlvbik9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uY29sbGVjdGlvbixcclxuICAgICAgICBzbHVnOiBjb2xsZWN0aW9uLm9wdGlvbi5yZXBsYWNlQWxsKFwiIFwiLCBcIl9cIilcclxuICAgICAgfVxyXG4gICAgfSkuZm9yRWFjaCgoY29sbGVjdGlvbik9PiBzZWxlY3RlZENvbGxlY3Rpb24gKz0gKGNvbGxlY3Rpb24uc2x1ZyArIFwiK1wiKSk7XHJcblxyXG4gICAgdGhpcy5zb3J0aW5nRGlhbG9nUmVmPy5kaXNtaXNzKCk7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2xpc3QnXSwge3F1ZXJ5UGFyYW1zOiB7bWluUHJpY2U6IHRoaXMucHJpY2luZ01pbiwgbWF4UHJpY2U6IHRoaXMucHJpY2luZ01heCwgY2F0ZWdvcnk6IHNlbGVjdGVkQ2F0ZWdvcnksIGNvbGxlY3Rpb25zOiBzZWxlY3RlZENvbGxlY3Rpb24sIHNvcnRpbmc6IHNvcnRpbmcsIHBhZ2VObzogdGhpcy5wYWdlTm8sIHNlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0fX0pO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVySXRlbUxpc3QoKSB7XHJcbiAgICBjb25zdCBjb2xsZWN0aW9uSWRzID0gdGhpcy5jb2xsZWN0aW9ucy5maWx0ZXIoKGNvbGxlY3Rpb24pPT4gY29sbGVjdGlvbi5zdGF0dXMpLm1hcCgoY29sbGVjdGlvbik9PiBjb2xsZWN0aW9uLmlkKTtcclxuICAgIGNvbnN0IGNhdGVnb3J5SWRzID0gdGhpcy5jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpPT4gY2F0ZWdvcnkuc3RhdHVzKS5tYXAoKGNhdGVnb3J5KT0+IGNhdGVnb3J5LmlkKTtcclxuICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEZpbHRlcmVkUHJvZHVjdChjb2xsZWN0aW9uSWRzLCBjYXRlZ29yeUlkcywgdGhpcy5zZWFyY2hUeHQsIHRoaXMucHJpY2luZ01pbiwgdGhpcy5wcmljaW5nTWF4LCB0aGlzLnNvcnRCeSA/PyBcImxvd2VzdFByaWNlXCIsIHRoaXMucGFnZU5vIC0xLCB0aGlzLnNpemUpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gcmVzcG9uc2UuZGF0YS5kYXRhO1xyXG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwocmVzcG9uc2UuZGF0YS5jb3VudCAvIHRoaXMuc2l6ZSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlckNhcnQoKS50aGVuKChjYXJ0UmVzcG9uc2UpPT4ge1xyXG4gICAgICAgIGNhcnRSZXNwb25zZS5vbnN1Y2Nlc3MgPSAoY2FydERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5VU0VSX0NBUlQgPSBjYXJ0RGF0YS50YXJnZXQucmVzdWx0IGFzIHVua25vd24gYXMgT3JkZXJlZEl0ZW1zW107XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YT8uZm9yRWFjaCgocHJvZHVjdDogYW55KT0+IHtcclxuICAgICAgICAgICAgdGhpcy5VU0VSX0NBUlQ/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAgICAgICAgICAgcHJvZHVjdC5xdWFudGl0eSA9IGl0ZW0ucXVhbnRpdHk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyV2hpc2hsaXN0KCkudGhlbigod2lzaGxpc3RSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgd2lzaGxpc3RSZXNwb25zZS5vbnN1Y2Nlc3MgPSAod2hpc2xpc3REYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHdoaXNsaXN0RGF0YS50YXJnZXQucmVzdWx0IGFzIHVua25vd24gYXMgT3JkZXJlZEl0ZW1zW107XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YT8uZm9yRWFjaCgocHJvZHVjdDogYW55KT0+IHtcclxuICAgICAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUPy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtLml0ZW1JZCA9PSBwcm9kdWN0Lml0ZW1JZClcclxuICAgICAgICAgICAgICAgIHByb2R1Y3Qud2lzaGxpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMudG90YWxDb3VudCA9IHJlc3BvbnNlLmRhdGEuY291bnQ7XHJcbiAgICAgIFxyXG4gICAgICB0aGlzLmZpbHRlckxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvcGVuRmlsdGVyKEZpbHRlclNlY3Rpb246IGFueSkge1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQm90dG9tU2hlZXRSZWYgPSB0aGlzLm1hdEJvdHRvbVNoZWV0Lm9wZW4oRmlsdGVyU2VjdGlvbik7XHJcbiAgfVxyXG4gIG9wZW5Tb3J0aW5nKFNvcnRpbmdTZWN0aW9uOiBhbnkpIHtcclxuXHJcbiAgICAvLyB0aGlzLnNvcnRpbmdEaWFsb2dSZWYgPSB0aGlzLm1hdERpYWxvZy5vcGVuKFNvcnRpbmdTZWN0aW9uLCB7XHJcbiAgICAvLyAgIHdpZHRoOiAnNTB2dydcclxuICAgIC8vIH0pO1xyXG4gICAgdGhpcy5zb3J0aW5nRGlhbG9nUmVmID0gdGhpcy5tYXRCb3R0b21TaGVldC5vcGVuKFNvcnRpbmdTZWN0aW9uLCB7XHJcbiAgICAgIC8vIHdpZHRoOiAnNTB2dydcclxuICAgIH0pO1xyXG4gIH1cclxuICBwYWdpbmF0aW9uQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgdGhpcy5wYWdlTm8gPSBwYWdlO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZUZpbHRlcih0aGlzLnNvcnRCeSA/PyBcImxvd2VzdFByaWNlXCIpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLnNvcnRpbmdEaWFsb2dSZWY/LmRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIGlzSXRlbU91dE9mU3RvY2socHJvZHVjdDogUHJvZHVjdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHByb2R1Y3QuaXRlbUludmVudG9yeS5vcGVuaW5nU3RvY2sgPT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBpc01vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB3aW5kb3cuaW5uZXJXaWR0aCA8IDQ3NTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbmN5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xyXG4gIH1cclxuICBnZXQgbWluU2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIE1hdGgubWluKHRoaXMudG90YWxDb3VudCwgKCgodGhpcy5wYWdlTm8gLTEpKnRoaXMuc2l6ZSArMSkgKyB0aGlzLnNpemUpKTtcclxuICB9XHJcbn1cclxuIiwiPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIj48L3AtdG9hc3Q+XHJcblxyXG48ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiAqbmdJZj1cImlzTW9iaWxlXCI+XHJcbiAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0Li5cIiBhcmlhLWxhYmVsPVwiU2VhcmNoIFByb2R1Y3RcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hQcm9kdWN0KClcIj5cclxuPC9kaXY+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiY29udGFpbmVyLWZsdWlkIHRvdGFsLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXM/LmxheW91dFwiIHNpbXBvSG92ZXJcclxuICAgIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHctMTAwIG9ubHlEZXNrdG9wXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItdG9wLXNlY3Rpb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWJhc2VsaW5lXCIgc3R5bGU9XCJ3aWR0aDogMjAlO1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXIgYm9keS1sYXJnZVwiPlxyXG4gICAgICAgICAgRmlsdGVyc1xyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbGVhclwiIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XHJcbiAgICAgICAgICBDbGVhciBhbGxcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgc3R5bGU9XCJ3aWR0aDogODAlO21hcmdpbi1sZWZ0OiAxMHB4O1wiPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiY29sb3I6ICM2Yzc1N2Q4MjtcIiBjbGFzcz1cImZzLTYgZnctbm9ybWFsXCI+U2hvd2luZyB7eyhwYWdlTm8gLTEpKnNpemUgKzF9fS17e21pblNpemV9fSBvZiB7eyB0b3RhbENvdW50IH19IFJlc3VsdHM8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiBzdHlsZT1cImdhcDogMTBweDtcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy02IGZ3LW5vcm1hbCBtci0zXCIgc3R5bGU9XCJjb2xvcjogIzZjNzU3ZDgyO1wiPlNvcnQgYnk8L2Rpdj5cclxuICAgICAgICAgIDxzZWxlY3QgKGNoYW5nZSk9XCJhcHBseUZpbHRlcigkZXZlbnQsICdTT1JUJylcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJmaWx0ZXIudmFsdWVcIiAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlcmluZ0FycmF5XCI+e3tmaWx0ZXIubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggdy0xMDAgb25seU1vYmlsZVwiIHN0eWxlPVwiZ2FwOiA1cHg7IG92ZXJmbG93LXg6IGF1dG87XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBmaWx0ZXJMaXN0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTEwMCBjaGlwXCI+XHJcbiAgICAgICAgICA8c3Bhbj57e2ZpbHRlci5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjsgbWFyZ2luLWxlZnQ6IDVweDtcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGZpbHRlcilcIj5YPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXNpZGUgb25seURlc2t0b3BcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRmlsdGVyU2VjdGlvblwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9BbmltYXRpb25dPVwic3R5bGVzPy5hbmltYXRpb25cIiBjbGFzcz1cInJpZ2h0LXNpZGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpbHRlckxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtcGFyZW50XCIgKm5nSWY9XCJyZXNwb25zZURhdGEgJiYgcmVzcG9uc2VEYXRhLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwcm9kdWN0IG9mIHJlc3BvbnNlRGF0YVwiIGNsYXNzPVwicHJvZHVjdFwiIFtzdHlsZS53aWR0aF09XCJnZXRQcm9kdWN0V2lkdGgoKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiEocHJvZHVjdC5pdGVtSW1hZ2VzPy5sZW5ndGggJiYgcHJvZHVjdC5pdGVtSW1hZ2VzPy5bMF0/LmltZ1VybClcIiBjbGFzcz1cImRlZmF1bHQtaW1hZ2UgcG9zaXRpb24tcmVsYXRpdmVcIiAoY2xpY2spPVwicHJvY2VlZFRvUHJvZHVjdERlc2MocHJvZHVjdC5pdGVtSWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9pLnBvc3RpbWcuY2MvaFBTMkpwVjAvbm8taW1hZ2UtYXZhaWxhYmxlLmpwZ1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRmF2b3VyaXRlVGFnczsgY29udGV4dDoge2RhdGE6IHByb2R1Y3R9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9kdWN0Lml0ZW1JbWFnZXM/Lmxlbmd0aCAmJiBwcm9kdWN0Lml0ZW1JbWFnZXM/LlswXT8uaW1nVXJsXCIgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCJwcm9jZWVkVG9Qcm9kdWN0RGVzYyhwcm9kdWN0Lml0ZW1JZClcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByb2R1Y3Q/Lml0ZW1JbWFnZXM/LlswXT8uaW1nVXJsXCIgYWx0PVwiXCIgY2xhc3M9XCJwcm9kdWN0LWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRmF2b3VyaXRlVGFnczsgY29udGV4dDoge2RhdGE6IHByb2R1Y3R9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9kdWN0LW5hbWUgaGVhZGluZy1sYXJnZSB0ZXh0LWxlZnRcIj57e3Byb2R1Y3QubmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbS1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UgYm9keS1sYXJnZSB0ZXh0LWxlZnQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwicHJvZHVjdC5wcmljZS52YWx1ZSAhPSBwcm9kdWN0LnByaWNlLmRpc2NvdW50ZWRQcmljZVwiIGNsYXNzPVwic2VsbGluZy1wcmljZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT0nY3VycmVuY3knPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3twcm9kdWN0LnByaWNlLnZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXNjb3VudGVkLXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPSdjdXJyZW5jeSc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2R1Y3QucHJpY2UuZGlzY291bnRlZFByaWNlfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb250ZW50Py5kaXNwbGF5Py5zaG93QnV0dG9uXCIgY2xhc3M9XCJhZGQtdG8tY2FydC1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiIFtidXR0b25TdHlsZV09XCJidXR0b24/LnN0eWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJzdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKm5nSWY9XCIhcHJvZHVjdC5xdWFudGl0eSAmJiAhaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KVwiIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+e3tidXR0b24/LmNvbnRlbnQ/LmxhYmVsID8/ICdBZGQgdG8gQ2FydCd9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1YW50aXR5XCIgKm5nSWY9XCJwcm9kdWN0LnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ1NVQlNUUkFDVCcpXCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3twcm9kdWN0LnF1YW50aXR5fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJhZGRJdGVtVG9DYXJ0KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCI+Kzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cIm91dC1vZi1zdG9ja1wiICpuZ0lmPVwiaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0KVwiPk91dCBPZiBTdG9jazwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxzaW1wby1wYWduaW5hdGlvbiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIGNsYXNzPVwibXQtMTVcIiBbdG90YWxQYWdlc109XCJ0b3RhbFBhZ2VzXCIgW2N1cnJlbnRQYWdlXT1cInBhZ2VOb1wiIChwYWdpbmF0aW9uQ2hhbmdlKT1cInBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiPjwvc2ltcG8tcGFnbmluYXRpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJlbXB0eS1jYXJ0XCIgKm5nSWY9XCJyZXNwb25zZURhdGE/Lmxlbmd0aCA9PSAwXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbWcgc3R5bGU9XCJoZWlnaHQ6IDE1MHB4OyB3aWR0aDogMTUwcHg7XCIgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8xMDcyMTNjMTcxNjU0MzMzNDA0MGVtcHR5LWNhcnQucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBsaXN0IGlzIGVtcHR5XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIExvb2tzIGxpa2Ugbm8gaXRlbSBpcyBwcmVzZW50IHdpdGggZmlsdGVyLiBHbyBhaGVhZCAmIGV4cGxvcmUgdG9wIGNhdGVnb3JpZXMuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLWZpbHRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmlsdGVyLXRleHRcIiBzdHlsZT1cImdhcDogMTBweFwiIChjbGljayk9XCJvcGVuU29ydGluZyhTb3J0aW5nU2VjdGlvbilcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zb3J0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPlNvcnQgYnk8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZpbHRlci10ZXh0IFwiIHN0eWxlPVwiZ2FwOiAxMHB4XCIgKGNsaWNrKT1cIm9wZW5GaWx0ZXIoRmlsdGVyU2VjdGlvbilcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWx0ZXJfbGlzdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj5GaWx0ZXI8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5neC1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmcgfHwgZmlsdGVyTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gIHdpZHRoOiAnMTAwJScsXHJcbiAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcclxuICAncmlnaHQnOiAnNXB4J1xyXG59XCI+XHJcbjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuPG5nLXRlbXBsYXRlICNGYXZvdXJpdGVUYWdzIGxldC1wcm9kdWN0PVwiZGF0YVwiPlxyXG4gIDxtYXQtaWNvbiBjbGFzcz1cImZhdi1pY29uXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAoY2xpY2spPVwidG9nZ2xlSXRlbVRvRmF2KCRldmVudCwgcHJvZHVjdCwgJ0FERCcpXCIgKm5nSWY9XCIhcHJvZHVjdC53aGlzbGlzdFwiPmZhdm9yaXRlX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgPG1hdC1pY29uIGNsYXNzPVwiZmF2LWljb25cIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJ0b2dnbGVJdGVtVG9GYXYoJGV2ZW50LCBwcm9kdWN0LCAnUkVNT1ZFJylcIiAqbmdJZj1cInByb2R1Y3Qud2hpc2xpc3RcIj5mYXZvcml0ZTwvbWF0LWljb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI0ZpbHRlclNlY3Rpb24+XHJcbiAgPHNlY3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIG0tYXV0b1wiIHN0eWxlPVwid2lkdGg6IDk1JTtcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlckxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwIGNoaXBcIj5cclxuICAgICAgICAgIDxzcGFuPnt7ZmlsdGVyLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoZmlsdGVyKVwiPlg8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zZWN0aW9uXCIgKm5nSWY9XCJjYXRlZ29yaWVzPy5sZW5ndGhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMgaGVhZGluZy1zbWFsbFwiPlxyXG4gICAgICAgIFNob3AgYnkgY2F0ZWdvcmllc1xyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3J5LW9wdGlvbnNcIiAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllc1wiIChjbGljayk9XCJhcHBseUZpbHRlcihjYXRlZ29yeSwgJ0ZJTFRFUicpXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJcIiBpZD1cIlwiIFtjaGVja2VkXT1cImNhdGVnb3J5LnN0YXR1c1wiIC8+XHJcbiAgICAgICAgPGRpdj57e2NhdGVnb3J5Lm9wdGlvbiB8IHVwcGVyY2FzZX19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcy1zZWN0aW9uXCIgKm5nSWY9XCJjb2xsZWN0aW9ucz8ubGVuZ3RoXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzIGhlYWRpbmctc21hbGxcIj5cclxuICAgICAgICBTaG9wIGJ5IGNvbGxlY3Rpb25zXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktb3B0aW9uc1wiICpuZ0Zvcj1cImxldCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVyKGNvbGxlY3Rpb24sICdGSUxURVInKVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiXCIgaWQ9XCJcIiBbY2hlY2tlZF09XCJjb2xsZWN0aW9uLnN0YXR1c1wiIC8+XHJcbiAgICAgICAgPGRpdj57e2NvbGxlY3Rpb24ub3B0aW9uIHwgdXBwZXJjYXNlfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpY2Utc2VjdGlvblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcyBoZWFkaW5nLXNtYWxsXCI+XHJcbiAgICAgICAgU2hvcCBieSBwcmljZVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bWF0LXNsaWRlciBjbGFzcz1cIm1hdC1zbGlkZXJcIiBbbWluXT1cIm1pblByb2R1Y3RQcmljZVwiIFttYXhdPVwibWF4UHJvZHVjdFByaWNlXCIgc3R5bGU9XCJ3aWR0aDogMjUwcHg7XCI+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0U2xpZGVyU3RhcnRUaHVtYiBbKG5nTW9kZWwpXT1cInByaWNpbmdNaW5cIj5cclxuICAgICAgICAgIDxpbnB1dCBtYXRTbGlkZXJFbmRUaHVtYiBbKG5nTW9kZWwpXT1cInByaWNpbmdNYXhcIj5cclxuICAgICAgICA8L21hdC1zbGlkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtYnV0dG9uLXNlY3Rpb25cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXNlY3Rpb25cIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFwcGx5RmlsdGVyKClcIj5GaWx0ZXI8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2UtcmFuZ2VcIj5cclxuICAgICAgICAgIFByaWNlOiA8c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj57eyBwcmljaW5nTWluIH19IC0gPHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+e3sgcHJpY2luZ01heCB8IGZvcm1hdGVBbW91bnQgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjU29ydGluZ1NlY3Rpb24+XHJcbiAgPHNlY3Rpb24gc3R5bGU9XCJwYWRkaW5nOiAxMHB4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcyBoZWFkaW5nLXNtYWxsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtLWNlbnRlciBcIiBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgPHNwYW4+U29ydCBieTwvc3Bhbj5cclxuICAgICAgPG1hdC1pY29uIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IHNvcnRpbmdUeXBlIG9mIGZpbHRlcmluZ0FycmF5XCIgKGNsaWNrKT1cImFwcGx5RmlsdGVyKCRldmVudCwgJ1NPUlQnKVwiPnt7c29ydGluZ1R5cGUubmFtZX19PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3NlY3Rpb25zL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUt4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9C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QUNsRixDQUFDOzhHQXhUVSxvQkFBb0Isa0JBWXJCLFdBQVc7a0dBWlYsb0JBQW9CLDZPQUpwQixDQUFDLGNBQWMsQ0FBQyxpREN6RDdCLDJ1VkFvTUEsMnFIRDVKSSxZQUFZLGlrQkFDWixlQUFlLDhCQUNmLFdBQVcsZzBCQUNYLG9CQUFvQix1Z0JBQ3BCLGVBQWUseVlBQ2Ysb0JBQW9CO2dCQUNwQixXQUFXO2dCQUNYLGtCQUFrQix5RkFDbEIsbUJBQW1CLG1GQUNuQixjQUFjLGdGQUNkLHdCQUF3QixvSEFDeEIsT0FBTywwSUFDUCxvQkFBb0IsOEJBQ3BCLGNBQWMsb2lCQUNkLGFBQWEscURBQ2IsV0FBVzs7MkZBTUYsb0JBQW9CO2tCQXpCaEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFdBQVc7cUJBQ1osYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBZ0J4QixNQUFNOzJCQUFDLFdBQVc7aVNBWFosWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBK0NOLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJdGVtVmFyaWFudCwgUHJvZHVjdCB9IGZyb20gJy4uLy4uL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbnRlbnRNb2RhbCwgUHJvZHVjdExpc3RNb2RhbCwgUHJvZHVjdExpc3RTdHlsZXNNb2RhbCB9IGZyb20gJy4vcHJvZHVjdC1saXN0Lm1vZGFsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBQYWduaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3BhZ25pbmF0aW9uL3BhZ25pbmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uLy4uL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldCwgTWF0Qm90dG9tU2hlZXRNb2R1bGUsIE1hdEJvdHRvbVNoZWV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHtNYXRSYWRpb01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBCVVNJTkVTU19DT05TVEFOVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYnVzaW5lc3MuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBGb3JtYXRlQW1vdW50IH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvYW1vdW50LnBpcGUnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VNb2RlbCB7XHJcbiAgb3B0aW9uOiBzdHJpbmcsXHJcbiAgaWQ6IHN0cmluZyxcclxuICBzdGF0dXM6IGJvb2xlYW5cclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1wcm9kdWN0LWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIE1hdFNsaWRlck1vZHVsZSxcclxuICAgIFBhZ25pbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgLy9kaXJlY3RpdmVcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBNYXRCb3R0b21TaGVldE1vZHVsZSxcclxuICAgIE1hdFJhZGlvTW9kdWxlLFxyXG4gICAgRm9ybWF0ZUFtb3VudCxcclxuICAgIFRvYXN0TW9kdWxlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Byb2R1Y3QtbGlzdC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdExpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcbiAgQElucHV0KCkgcmVzcG9uc2VEYXRhPzogUHJvZHVjdFtdXHJcbiAgQElucHV0KCkgZGF0YT86IFByb2R1Y3RMaXN0TW9kYWw7XHJcbiAgQElucHV0KCkgaW5kZXg/IDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGVkaXQ/IDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkZWxldGU/IDogYm9vbGVhbjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjb250ZW50PzogUHJvZHVjdExpc3RDb250ZW50TW9kYWw7XHJcbiAgYnV0dG9uPzogQnV0dG9uTW9kZWw7XHJcbiAgdG90YWxQYWdlczogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZSA6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Qm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0LFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xyXG4gICAgICB0aGlzLmdldFNjcmVlblNpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyQm90dG9tU2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcbiAgLy8gcHJpdmF0ZSBzb3J0aW5nRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHNvcnRpbmdEaWFsb2dSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBwcmljaW5nTWluOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBwcmljaW5nTWF4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBzb3J0Qnk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBzZWFyY2hUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBwcml2YXRlIFVTRVJfQ0FSVDogT3JkZXJlZEl0ZW1zW10gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIFVTRVJfV0lTSExJU1Q6IE9yZGVyZWRJdGVtc1tdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHB1YmxpYyBtaW5Qcm9kdWN0UHJpY2U6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIG1heFByb2R1Y3RQcmljZTogbnVtYmVyID0gMDtcclxuXHJcbiAgLy8gd2lsbCBjb21lIGZyb20gYmFja2VuZCBhcyBzaG9wIGFuZCByZXN0dXJhbnQgY2FuIGhhdmUgZGlmZnJlbnQgZmlsdGVyc1xyXG4gIHB1YmxpYyBmaWx0ZXJpbmdBcnJheSA9IFtcclxuICAgIHsgbmFtZTogXCJMb3dlc3QgRmlyc3RcIiwgdmFsdWU6IFwibG93ZXN0UHJpY2VcIiB9LFxyXG4gICAgeyBuYW1lOiBcIkhpZ2hlc3QgRmlyc3RcIiwgdmFsdWU6IFwiaGlnaGVzdFByaWNlXCIgfVxyXG4gIF07XHJcblxyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSAwO1xyXG4gIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6IHJlc2l6ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgZ2V0U2NyZWVuU2l6ZSgpIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIGZpbHRlckxpc3Q6IGFueVtdID0gW1wiV29tZW5cIiwgXCJNZW5cIl07XHJcbiAgc3R5bGVzPzogUHJvZHVjdExpc3RTdHlsZXNNb2RhbDtcclxuICB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VObzogbnVtYmVyID0gMDtcclxuICBzaXplOiBudW1iZXIgPSAyMDtcclxuICBzZWFyY2hUeHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgZmlsdGVyTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuYnV0dG9uID0gdGhpcy5kYXRhPy5hY3Rpb24uYnV0dG9uc1swXTtcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgIH0pXHJcbiAgICB0aGlzLmdldEFsbENhdGVnb3JpZXMoKTtcclxuICAgIHRoaXMuZ2V0QWxsQ29sbGVjdGlvbnMoKTtcclxuXHJcbiAgICB0aGlzLm1pblByb2R1Y3RQcmljZSA9IHRoaXMucHJpY2luZ01pbiA9IHRoaXMuZGF0YT8uc3R5bGVzLm1pblByaWNlID8/IDA7XHJcbiAgICB0aGlzLm1heFByb2R1Y3RQcmljZSA9IHRoaXMucHJpY2luZ01heCA9IHRoaXMuZGF0YT8uc3R5bGVzLm1heFByaWNlID8/IDEwMDA7XHJcblxyXG4gICAgdGhpcy5hY3RpdmF0ZWRSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHFQYXJhbTogYW55KT0+IHtcclxuICAgICAgdGhpcy5zZWFyY2hUeHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICAgIHRoaXMucGFnZU5vID0gcVBhcmFtW1wicGFnZU5vXCJdID8gTnVtYmVyKHFQYXJhbVtcInBhZ2VOb1wiXSkgOiAxO1xyXG4gICAgICB0aGlzLnNvcnRCeSA9IHFQYXJhbVtcInNvcnRpbmdcIl0gPz8gXCJsb3dlc3RQcmljZVwiO1xyXG4gICAgICB0aGlzLnByaWNpbmdNaW4gPSBpc05hTihOdW1iZXIocVBhcmFtW1wibWluUHJpY2VcIl0pKSA/IHRoaXMubWluUHJvZHVjdFByaWNlIDogTnVtYmVyKHFQYXJhbVtcIm1pblByaWNlXCJdKTtcclxuICAgICAgdGhpcy5wcmljaW5nTWF4ID0gaXNOYU4oTnVtYmVyKHFQYXJhbVtcIm1heFByaWNlXCJdKSkgPyB0aGlzLm1heFByb2R1Y3RQcmljZSA6IE51bWJlcihxUGFyYW1bXCJtYXhQcmljZVwiXSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyQnlDYXRlZ29yeUNvbGxlY3Rpb25QYXJhbShxUGFyYW1bXCJjYXRlZ29yeVwiXSwgcVBhcmFtW1wiY29sbGVjdGlvbnNcIl0pO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGZpbHRlckJ5Q2F0ZWdvcnlDb2xsZWN0aW9uUGFyYW0ocUNhdGVnb3JpZXM6IGFueSwgcUNvbGxlY3Rpb25zOiBhbnkpIHtcclxuICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBxQ2F0ZWdvcmllcz8uc3BsaXQoXCIrXCIpPy5tYXAoKGNhdGVnb3J5OiBzdHJpbmcpPT4gY2F0ZWdvcnkucmVwbGFjZUFsbChcIl9cIiwgXCIgXCIpLnRvTG93ZXJDYXNlKCkpLmZpbHRlcigoY2F0ZWdvcnk6IHN0cmluZyk9PiBjYXRlZ29yeS5sZW5ndGggPiAwKTtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gcUNvbGxlY3Rpb25zPy5zcGxpdChcIitcIik/Lm1hcCgoY29sbGVjdGlvbjogc3RyaW5nKT0+IGNvbGxlY3Rpb24ucmVwbGFjZUFsbChcIl9cIiwgXCIgXCIpLnRvTG93ZXJDYXNlKCkpLmZpbHRlcigoY29sbGVjdGlvbjogc3RyaW5nKT0+IGNvbGxlY3Rpb24ubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgdGhpcy5jYXRlZ29yaWVzPy5mb3JFYWNoKChjYXRlZ29yeSk9PiBjYXRlZ29yeS5zdGF0dXMgPSBjYXRlZ29yaWVzPy5pbmNsdWRlcyhjYXRlZ29yeT8ub3B0aW9uPy50b0xvd2VyQ2FzZSgpKSA/PyBmYWxzZSk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zPy5mb3JFYWNoKChjb2xsZWN0aW9uKT0+IGNvbGxlY3Rpb24uc3RhdHVzID0gY29sbGVjdGlvbnM/LmluY2x1ZGVzKGNvbGxlY3Rpb24/Lm9wdGlvbj8udG9Mb3dlckNhc2UoKSkgPz8gZmFsc2UpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5jYXRlZ29yaWVzLCB0aGlzLmNvbGxlY3Rpb25zKTtcclxuICAgIHRoaXMuZmlsdGVyTGlzdCA9IFtcclxuICAgICAgLi4udGhpcy5jYXRlZ29yaWVzPy5maWx0ZXIoKGNhdGVnb3J5OiBhbnkpPT4gY2F0ZWdvcnkuc3RhdHVzKS5tYXAoKGNhdGVnb3J5KT0+IHsgcmV0dXJuIHsgaWQ6IGNhdGVnb3J5LmlkLCBuYW1lOiBjYXRlZ29yeS5vcHRpb24gfSB9KSxcclxuICAgICAgLi4udGhpcy5jb2xsZWN0aW9ucz8uZmlsdGVyKChjb2xsZWN0aW9uOiBhbnkpPT4gY29sbGVjdGlvbi5zdGF0dXMpLm1hcCgoY29sbGVjdGlvbikgPT4geyByZXR1cm4geyBpZDogY29sbGVjdGlvbi5pZCwgbmFtZTogY29sbGVjdGlvbi5vcHRpb24gfSB9KVxyXG4gICAgXTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZmlsdGVyTGlzdCk7XHJcbiAgICB0aGlzLmZpbHRlckl0ZW1MaXN0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDYXRlZ29yaWVzKCkge1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS5nZXRBbGxDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IHJlc3BvbnNlLmZpbHRlcigoY2F0ZWdvcnk6IGFueSk9PiBjYXRlZ29yeS5mZWF0dXJlZENvbGxlY3Rpb24gfHwgdHJ1ZSkubWFwKChjYXRlZ29yeTogYW55KT0+IHsgcmV0dXJuIHsgb3B0aW9uOiBjYXRlZ29yeS5jYXRlZ29yeU5hbWUsIGlkOiBjYXRlZ29yeS5jYXRlZ29yeUlkLCBzdGF0dXM6IGZhbHNlIH0gfSk7XHJcbiAgICAgIGNvbnN0IHFQYXJhbUNvbGxlY3Rpb25zID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1tcImNvbGxlY3Rpb25zXCJdO1xyXG4gICAgICBjb25zdCBxUGFyYW1DYXRlZ29yeSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJjYXRlZ29yeVwiXTtcclxuICAgICAgdGhpcy5maWx0ZXJCeUNhdGVnb3J5Q29sbGVjdGlvblBhcmFtKHFQYXJhbUNhdGVnb3J5LCBxUGFyYW1Db2xsZWN0aW9ucyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0QWxsQ29sbGVjdGlvbnMoKSB7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbENvbGxlY3Rpb25zKCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHRoaXMuY29sbGVjdGlvbnMgPSByZXNwb25zZS5maWx0ZXIoKGNvbGxlY3Rpb246IGFueSk9PiBjb2xsZWN0aW9uLmZlYXR1cmVkQ2F0ZWdvcnkgfHwgdHJ1ZSkubWFwKChjb2xsZWN0aW9uOiBhbnkpPT4geyByZXR1cm4geyBvcHRpb246IGNvbGxlY3Rpb24uY29sbGVjdGlvbk5hbWUsIGlkOiBjb2xsZWN0aW9uLmNvbGxlY3Rpb25JZCwgc3RhdHVzOiBmYWxzZSB9IH0pO1xyXG4gICAgICBjb25zdCBxUGFyYW1Db2xsZWN0aW9ucyA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJjb2xsZWN0aW9uc1wiXTtcclxuICAgICAgY29uc3QgcVBhcmFtQ2F0ZWdvcnkgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1wiY2F0ZWdvcnlcIl07XHJcbiAgICAgIHRoaXMuZmlsdGVyQnlDYXRlZ29yeUNvbGxlY3Rpb25QYXJhbShxUGFyYW1DYXRlZ29yeSwgcVBhcmFtQ29sbGVjdGlvbnMpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXI6IGFueSkge1xyXG4gICAgdGhpcy5maWx0ZXJMaXN0ID0gdGhpcy5maWx0ZXJMaXN0LmZpbHRlcigoZik9PiBmLmlkICE9IGZpbHRlci5pZCk7XHJcbiAgICBjb25zdCBmaWx0ZXJMaXN0SWRzID0gdGhpcy5maWx0ZXJMaXN0Lm1hcCgoZmlsdGVyKT0+IGZpbHRlci5pZCk7XHJcbiAgICB0aGlzLmNhdGVnb3JpZXMuZm9yRWFjaCgoY2F0ZWdvcnkpPT4gY2F0ZWdvcnkuc3RhdHVzID0gZmlsdGVyTGlzdElkcy5pbmNsdWRlcyhjYXRlZ29yeS5pZCkpO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKT0+IGNvbGxlY3Rpb24uc3RhdHVzID0gZmlsdGVyTGlzdElkcy5pbmNsdWRlcyhjb2xsZWN0aW9uLmlkKSk7XHJcbiAgICB0aGlzLnBhZ2VObyA9IDE7XHJcbiAgICAvLyBzb3J0aW5nIHNob3VsZCBhZGRcclxuICAgIHRoaXMubmF2aWdhdGVGaWx0ZXIodGhpcy5zb3J0QnkgPz8gXCJsb3dlc3RQcmljZVwiKTtcclxuICB9XHJcblxyXG4gIGdldFByb2R1Y3RXaWR0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcmVlbldpZHRoID4gNDc1ID8gKHRoaXMuc2NyZWVuV2lkdGggPCAxMDI1ID8gJzI1JScgOiAnY2FsYygnICsgKCgxMDAgLyAodGhpcy5zdHlsZXM/LmVsZW1lbnRJblJvdyB8fCA0KSkpICsgJyUpJykgOiAodGhpcy5zdHlsZXM/Lm1vYmlsZUNvbHVtbiA9PT0gMSA/ICcxMDAlJyA6ICc1MCUnKVxyXG4gIH1cclxuXHJcbiAgcHJvY2VlZFRvUHJvZHVjdERlc2MocHJvZHVjdElkOiBhbnkpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydkZXRhaWxzJ10sIHsgcXVlcnlQYXJhbXM6IHsgaWQ6IHByb2R1Y3RJZCB9IH0pO1xyXG4gICAgLy8gdGhpcy5fZXZlbnRTZXJ2aWNlLnJlZGlyZWN0VG9QYWdlLmVtaXQoe3JlZGlyZWN0VG86ICcvZGV0YWlscycsIGRhdGE6IHtwcm9kdWN0SWQ6IHByb2R1Y3RJZH19KVxyXG4gIH1cclxuICBjbGVhckZpbHRlcigpIHtcclxuICAgIHRoaXMuY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSk9PiBjYXRlZ29yeS5zdGF0dXMgPSBmYWxzZSk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pPT4gY29sbGVjdGlvbi5zdGF0dXMgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnByaWNpbmdNaW4gPSB0aGlzLm1pblByb2R1Y3RQcmljZTtcclxuICAgIHRoaXMucHJpY2luZ01heCA9IHRoaXMubWF4UHJvZHVjdFByaWNlO1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsaXN0J10pO1xyXG4gIH1cclxuICB0b2dnbGVJdGVtVG9GYXYoZXZlbnQ6IFBvaW50ZXJFdmVudCB8IE1vdXNlRXZlbnQsIHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdBREQnIHwgJ1JFTU9WRScpIHtcclxuICAgIGlmICh0eXBlID09ICdBREQnKSB7XHJcbiAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSB0cnVlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gYWRkZWQgdG8geW91ciB3aXNobGlzdCcgfSk7XHJcbiAgICAgIGlmIChwcm9kdWN0Lml0ZW1WYXJpYW50Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSB0aGlzLmdldEl0ZW1WYXJpZW50KHByb2R1Y3QsIHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgICAgICBpZiAoaXRlbVZhcmllbnQpIHtcclxuICAgICAgICAgIGl0ZW1WYXJpZW50Lndpc2hsaXN0ID0gdHJ1ZTsgXHJcbiAgICAgICAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0IGFzIFByb2R1Y3QsIGl0ZW1WYXJpZW50LnZhcmlhbnRJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcHJvZHVjdC53aGlzbGlzdCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6ICdXaXNobGlzdCcsIGRldGFpbDogJ0l0ZW0gcmVtb3ZlZCBmcm9tIHlvdXIgd2lzaGxpc3QnIH0pO1xyXG4gICAgICB0aGlzLmNhcnRTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3QudmFyaWVudElkKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBhZGRJdGVtVG9DYXJ0KGV2ZW50OiBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50LCBwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQUREJyB8ICdTVUJTVFJBQ1QnKSB7XHJcbiAgICBpZiAodGhpcy5pc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICd3YXJuJywgc3VtbWFyeTogJ0NhcnQnLCBkZXRhaWw6ICdJdGVtIGlzIG5vdCBhdmFpbGFibGUgYXMgb2Ygbm93LiBXZSB3aWxsIG5vdGlmeSB5b3Ugb25jZSBhdmFpbGFibGUnIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwcm9kdWN0LnF1YW50aXR5ICs9ICh0eXBlID09ICdBREQnID8gMSA6IC0xKTsgXHJcbiAgICB0aGlzLmNhcnRTZXJ2aWNlLmFkZEl0ZW1Ub0NhcnQocHJvZHVjdCk7XHJcbiAgfVxyXG4gIHNlYXJjaFByb2R1Y3QoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlRmlsdGVyKHRoaXMuc29ydEJ5ID8/IFwibG93ZXN0UHJpY2VcIik7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yaWVzOiBCYXNlTW9kZWxbXSA9IFtdO1xyXG4gIGNvbGxlY3Rpb25zOiBCYXNlTW9kZWxbXSA9IFtdO1xyXG4gIGFwcGx5RmlsdGVyKGNhdGVnb3J5PzphbnksIHR5cGU/OiAnU09SVCd8J0ZJTFRFUicpIHtcclxuICAgIGxldCBzb3J0aW5nID0gXCJcIjtcclxuICAgIHRoaXMucGFnZU5vID0gMTtcclxuXHJcbiAgICBpZiAodHlwZSA9PSBcIkZJTFRFUlwiKVxyXG4gICAgICBjYXRlZ29yeS5zdGF0dXMgPSAhY2F0ZWdvcnkuc3RhdHVzO1xyXG4gICAgZWxzZSBpZiAodHlwZSA9PSBcIlNPUlRcIilcclxuICAgICAgc29ydGluZyA9IGNhdGVnb3J5Py50YXJnZXQ/LnZhbHVlO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyQm90dG9tU2hlZXRSZWY/LmRpc21pc3MoKTtcclxuICAgIHRoaXMubmF2aWdhdGVGaWx0ZXIoc29ydGluZyk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZUZpbHRlcihzb3J0aW5nOiBzdHJpbmcpIHtcclxuXHJcbiAgICBsZXQgc2VsZWN0ZWRDYXRlZ29yeSA9IFwiXCI7XHJcbiAgICBsZXQgc2VsZWN0ZWRDb2xsZWN0aW9uID0gXCJcIjtcclxuICAgIHRoaXMuY2F0ZWdvcmllcy5maWx0ZXIoKGNhdGVnb3J5KT0+IGNhdGVnb3J5LnN0YXR1cykubWFwKChjYXRlZ29yeSk9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgLi4uY2F0ZWdvcnksXHJcbiAgICAgICAgc2x1ZzogY2F0ZWdvcnkub3B0aW9uLnJlcGxhY2VBbGwoXCIgXCIsIFwiX1wiKVxyXG4gICAgICB9XHJcbiAgICB9KS5mb3JFYWNoKChjYXRlZ29yeSk9PiBzZWxlY3RlZENhdGVnb3J5ICs9IChjYXRlZ29yeS5zbHVnICsgXCIrXCIpKTtcclxuXHJcbiAgICB0aGlzLmNvbGxlY3Rpb25zLmZpbHRlcigoY29sbGVjdGlvbik9PiBjb2xsZWN0aW9uLnN0YXR1cykubWFwKChjb2xsZWN0aW9uKT0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICAuLi5jb2xsZWN0aW9uLFxyXG4gICAgICAgIHNsdWc6IGNvbGxlY3Rpb24ub3B0aW9uLnJlcGxhY2VBbGwoXCIgXCIsIFwiX1wiKVxyXG4gICAgICB9XHJcbiAgICB9KS5mb3JFYWNoKChjb2xsZWN0aW9uKT0+IHNlbGVjdGVkQ29sbGVjdGlvbiArPSAoY29sbGVjdGlvbi5zbHVnICsgXCIrXCIpKTtcclxuXHJcbiAgICB0aGlzLnNvcnRpbmdEaWFsb2dSZWY/LmRpc21pc3MoKTtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbGlzdCddLCB7cXVlcnlQYXJhbXM6IHttaW5QcmljZTogdGhpcy5wcmljaW5nTWluLCBtYXhQcmljZTogdGhpcy5wcmljaW5nTWF4LCBjYXRlZ29yeTogc2VsZWN0ZWRDYXRlZ29yeSwgY29sbGVjdGlvbnM6IHNlbGVjdGVkQ29sbGVjdGlvbiwgc29ydGluZzogc29ydGluZywgcGFnZU5vOiB0aGlzLnBhZ2VObywgc2VhcmNoVHh0OiB0aGlzLnNlYXJjaFRleHR9fSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJJdGVtTGlzdCgpIHtcclxuICAgIGNvbnN0IGNvbGxlY3Rpb25JZHMgPSB0aGlzLmNvbGxlY3Rpb25zLmZpbHRlcigoY29sbGVjdGlvbik9PiBjb2xsZWN0aW9uLnN0YXR1cykubWFwKChjb2xsZWN0aW9uKT0+IGNvbGxlY3Rpb24uaWQpO1xyXG4gICAgY29uc3QgY2F0ZWdvcnlJZHMgPSB0aGlzLmNhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSk9PiBjYXRlZ29yeS5zdGF0dXMpLm1hcCgoY2F0ZWdvcnkpPT4gY2F0ZWdvcnkuaWQpO1xyXG4gICAgdGhpcy5maWx0ZXJMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0RmlsdGVyZWRQcm9kdWN0KGNvbGxlY3Rpb25JZHMsIGNhdGVnb3J5SWRzLCB0aGlzLnNlYXJjaFR4dCwgdGhpcy5wcmljaW5nTWluLCB0aGlzLnByaWNpbmdNYXgsIHRoaXMuc29ydEJ5ID8/IFwibG93ZXN0UHJpY2VcIiwgdGhpcy5wYWdlTm8gLTEsIHRoaXMuc2l6ZSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSByZXNwb25zZS5kYXRhLmRhdGE7XHJcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbChyZXNwb25zZS5kYXRhLmNvdW50IC8gdGhpcy5zaXplKTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyQ2FydCgpLnRoZW4oKGNhcnRSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgY2FydFJlc3BvbnNlLm9uc3VjY2VzcyA9IChjYXJ0RGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLlVTRVJfQ0FSVCA9IGNhcnREYXRhLnRhcmdldC5yZXN1bHQgYXMgdW5rbm93biBhcyBPcmRlcmVkSXRlbXNbXTtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhPy5mb3JFYWNoKChwcm9kdWN0OiBQcm9kdWN0KT0+IHtcclxuICAgICAgICAgICAgdGhpcy5VU0VSX0NBUlQ/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5pdGVtVmFyaWFudC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1WYXJpZW50OiBJdGVtVmFyaWFudCA9IHByb2R1Y3QuaXRlbVZhcmlhbnRbMF07XHJcbiAgICAgICAgICAgICAgICAgIGlmIChpdGVtVmFyaWVudC52YXJpYW50SWQgPT0gaXRlbS52YXJpZW50SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1JbWFnZXMgPSBpdGVtVmFyaWVudC52YXJpYW50SW1hZ2VzID8/IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2UgPSBpdGVtVmFyaWVudC5pdGVtVmFyaWFudFByaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucXVhbnRpdHkgPSBpdGVtLnF1YW50aXR5O1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBwcm9kdWN0LnF1YW50aXR5ID0gaXRlbS5xdWFudGl0eTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyV2hpc2hsaXN0KCkudGhlbigod2lzaGxpc3RSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgd2lzaGxpc3RSZXNwb25zZS5vbnN1Y2Nlc3MgPSAod2hpc2xpc3REYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuVVNFUl9XSVNITElTVCA9IHdoaXNsaXN0RGF0YS50YXJnZXQucmVzdWx0IGFzIHVua25vd24gYXMgT3JkZXJlZEl0ZW1zW107XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YT8uZm9yRWFjaCgocHJvZHVjdDogUHJvZHVjdCk9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuVVNFUl9XSVNITElTVD8uZm9yRWFjaCgoaXRlbTogT3JkZXJlZEl0ZW1zKT0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5pdGVtSWQgPT0gcHJvZHVjdC5pdGVtSWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0Lml0ZW1WYXJpYW50Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbVZhcmllbnQ6IEl0ZW1WYXJpYW50ID0gcHJvZHVjdC5pdGVtVmFyaWFudFswXTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1WYXJpZW50LnZhcmlhbnRJZCA9PSBpdGVtLnZhcmllbnRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbUltYWdlcyA9IGl0ZW1WYXJpZW50Py52YXJpYW50SW1hZ2VzID8/IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2UgPSBpdGVtVmFyaWVudC5pdGVtVmFyaWFudFByaWNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3Qud2hpc2xpc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICBwcm9kdWN0LndoaXNsaXN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgdGhpcy50b3RhbENvdW50ID0gcmVzcG9uc2UuZGF0YS5jb3VudDtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9wZW5GaWx0ZXIoRmlsdGVyU2VjdGlvbjogYW55KSB7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJCb3R0b21TaGVldFJlZiA9IHRoaXMubWF0Qm90dG9tU2hlZXQub3BlbihGaWx0ZXJTZWN0aW9uKTtcclxuICB9XHJcbiAgb3BlblNvcnRpbmcoU29ydGluZ1NlY3Rpb246IGFueSkge1xyXG5cclxuICAgIC8vIHRoaXMuc29ydGluZ0RpYWxvZ1JlZiA9IHRoaXMubWF0RGlhbG9nLm9wZW4oU29ydGluZ1NlY3Rpb24sIHtcclxuICAgIC8vICAgd2lkdGg6ICc1MHZ3J1xyXG4gICAgLy8gfSk7XHJcbiAgICB0aGlzLnNvcnRpbmdEaWFsb2dSZWYgPSB0aGlzLm1hdEJvdHRvbVNoZWV0Lm9wZW4oU29ydGluZ1NlY3Rpb24sIHtcclxuICAgICAgLy8gd2lkdGg6ICc1MHZ3J1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHBhZ2luYXRpb25DaGFuZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhZ2VObyA9IHBhZ2U7XHJcbiAgICB0aGlzLm5hdmlnYXRlRmlsdGVyKHRoaXMuc29ydEJ5ID8/IFwibG93ZXN0UHJpY2VcIik7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuc29ydGluZ0RpYWxvZ1JlZj8uZGlzbWlzcygpO1xyXG4gIH1cclxuXHJcbiAgaXNJdGVtT3V0T2ZTdG9jayhwcm9kdWN0OiBQcm9kdWN0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcHJvZHVjdC5pdGVtSW52ZW50b3J5Lm9wZW5pbmdTdG9jayA9PSAwO1xyXG4gIH1cclxuICBnZXRJdGVtVmFyaWVudChwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ6IHN0cmluZyk6IEl0ZW1WYXJpYW50IHwgbnVsbCB7XHJcbiAgICBsZXQgc2VsZWN0ZWRWYXJpZW50OiBJdGVtVmFyaWFudCB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJvZHVjdC5pdGVtVmFyaWFudD8uZm9yRWFjaCgodmFyaWVudDogSXRlbVZhcmlhbnQpPT4ge1xyXG4gICAgICBpZiAodmFyaWVudC52YXJpYW50SWQgPT0gdmFyaWVudElkKVxyXG4gICAgICAgIHNlbGVjdGVkVmFyaWVudCA9IHZhcmllbnQ7XHJcbiAgICB9KVxyXG4gICAgXHJcbiAgICByZXR1cm4gc2VsZWN0ZWRWYXJpZW50O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoIDwgNDc1O1xyXG4gIH1cclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG4gIGdldCBtaW5TaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5taW4odGhpcy50b3RhbENvdW50LCAoKCh0aGlzLnBhZ2VObyAtMSkqdGhpcy5zaXplICsxKSArIHRoaXMuc2l6ZSkpO1xyXG4gIH1cclxufVxyXG4iLCI8cC10b2FzdCBwb3NpdGlvbj1cImJvdHRvbS1yaWdodFwiIFtiYXNlWkluZGV4XT1cIjEwMDAwMDAwMDAwXCIgW2F1dG9aSW5kZXhdPVwidHJ1ZVwiPjwvcC10b2FzdD5cclxuXHJcbjxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiICpuZ0lmPVwiaXNNb2JpbGVcIj5cclxuICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFByb2R1Y3QuLlwiIGFyaWEtbGFiZWw9XCJTZWFyY2ggUHJvZHVjdFwiIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cInNlYXJjaFByb2R1Y3QoKVwiPlxyXG48L2Rpdj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJjb250YWluZXItZmx1aWQgdG90YWwtY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCIgc2ltcG9Ib3ZlclxyXG4gICAgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgb25seURlc2t0b3BcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci10b3Atc2VjdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtYmFzZWxpbmVcIiBzdHlsZT1cIndpZHRoOiAyMCU7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlciBib2R5LWxhcmdlXCI+XHJcbiAgICAgICAgICBGaWx0ZXJzXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsZWFyXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cclxuICAgICAgICAgIENsZWFyIGFsbFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cIndpZHRoOiA4MCU7bWFyZ2luLWxlZnQ6IDEwcHg7XCI+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJjb2xvcjogIzZjNzU3ZDgyO1wiIGNsYXNzPVwiZnMtNiBmdy1ub3JtYWxcIj5TaG93aW5nIHt7KHBhZ2VObyAtMSkqc2l6ZSArMX19LXt7bWluU2l6ZX19IG9mIHt7IHRvdGFsQ291bnQgfX0gUmVzdWx0czwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwiZ2FwOiAxMHB4O1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZzLTYgZnctbm9ybWFsIG1yLTNcIiBzdHlsZT1cImNvbG9yOiAjNmM3NTdkODI7XCI+U29ydCBieTwvZGl2PlxyXG4gICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT1cImFwcGx5RmlsdGVyKCRldmVudCwgJ1NPUlQnKVwiPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImZpbHRlci52YWx1ZVwiICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyaW5nQXJyYXlcIj57e2ZpbHRlci5uYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCB3LTEwMCBvbmx5TW9iaWxlXCIgc3R5bGU9XCJnYXA6IDVweDsgb3ZlcmZsb3cteDogYXV0bztcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIGZpbHRlckxpc3RcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHctMTAwIGNoaXBcIj5cclxuICAgICAgICAgIDxzcGFuPnt7ZmlsdGVyLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyOyBtYXJnaW4tbGVmdDogNXB4O1wiIChjbGljayk9XCJyZW1vdmVGaWx0ZXIoZmlsdGVyKVwiPlg8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItc2lkZSBvbmx5RGVza3RvcFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGaWx0ZXJTZWN0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiIGNsYXNzPVwicmlnaHQtc2lkZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmlsdGVyTG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZHVjdC1wYXJlbnRcIiAqbmdJZj1cInJlc3BvbnNlRGF0YSAmJiByZXNwb25zZURhdGEubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHByb2R1Y3Qgb2YgcmVzcG9uc2VEYXRhXCIgY2xhc3M9XCJwcm9kdWN0XCIgW3N0eWxlLndpZHRoXT1cImdldFByb2R1Y3RXaWR0aCgpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIShwcm9kdWN0Lml0ZW1JbWFnZXM/Lmxlbmd0aCAmJiBwcm9kdWN0Lml0ZW1JbWFnZXM/LlswXT8uaW1nVXJsKVwiIGNsYXNzPVwiZGVmYXVsdC1pbWFnZSBwb3NpdGlvbi1yZWxhdGl2ZVwiIChjbGljayk9XCJwcm9jZWVkVG9Qcm9kdWN0RGVzYyhwcm9kdWN0Lml0ZW1JZClcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2kucG9zdGltZy5jYy9oUFMySnBWMC9uby1pbWFnZS1hdmFpbGFibGUuanBnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGYXZvdXJpdGVUYWdzOyBjb250ZXh0OiB7ZGF0YTogcHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInByb2R1Y3QuaXRlbUltYWdlcz8ubGVuZ3RoICYmIHByb2R1Y3QuaXRlbUltYWdlcz8uWzBdPy5pbWdVcmxcIiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCIgKGNsaWNrKT1cInByb2NlZWRUb1Byb2R1Y3REZXNjKHByb2R1Y3QuaXRlbUlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwicHJvZHVjdD8uaXRlbUltYWdlcz8uWzBdPy5pbWdVcmxcIiBhbHQ9XCJcIiBjbGFzcz1cInByb2R1Y3QtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJGYXZvdXJpdGVUYWdzOyBjb250ZXh0OiB7ZGF0YTogcHJvZHVjdH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2R1Y3QtbmFtZSBoZWFkaW5nLWxhcmdlIHRleHQtbGVmdFwiPnt7cHJvZHVjdC5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZSBib2R5LWxhcmdlIHRleHQtbGVmdCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgKm5nSWY9XCJwcm9kdWN0LnByaWNlLnZhbHVlICE9IHByb2R1Y3QucHJpY2UuZGlzY291bnRlZFByaWNlXCIgY2xhc3M9XCJzZWxsaW5nLXByaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPSdjdXJyZW5jeSc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3Byb2R1Y3QucHJpY2UudmFsdWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpc2NvdW50ZWQtcHJpY2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09J2N1cnJlbmN5Jz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cHJvZHVjdC5wcmljZS5kaXNjb3VudGVkUHJpY2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmRpc3BsYXk/LnNob3dCdXR0b25cIiBjbGFzcz1cImFkZC10by1jYXJ0LWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cInN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIiAqbmdJZj1cIiFwcm9kdWN0LnF1YW50aXR5ICYmICFpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpXCIgKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIj57e2J1dHRvbj8uY29udGVudD8ubGFiZWwgPz8gJ0FkZCB0byBDYXJ0J319PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicXVhbnRpdHlcIiAqbmdJZj1cInByb2R1Y3QucXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnU1VCU1RSQUNUJylcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3Byb2R1Y3QucXVhbnRpdHl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImFkZEl0ZW1Ub0NhcnQoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIj4rPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkIGNsYXNzPVwib3V0LW9mLXN0b2NrXCIgKm5nSWY9XCJpc0l0ZW1PdXRPZlN0b2NrKHByb2R1Y3QpXCI+T3V0IE9mIFN0b2NrPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPHNpbXBvLXBhZ25pbmF0aW9uIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgY2xhc3M9XCJtdC0xNVwiIFt0b3RhbFBhZ2VzXT1cInRvdGFsUGFnZXNcIiBbY3VycmVudFBhZ2VdPVwicGFnZU5vXCIgKHBhZ2luYXRpb25DaGFuZ2UpPVwicGFnaW5hdGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9zaW1wby1wYWduaW5hdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImVtcHR5LWNhcnRcIiAqbmdJZj1cInJlc3BvbnNlRGF0YT8ubGVuZ3RoID09IDBcIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtaW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPGltZyBzdHlsZT1cImhlaWdodDogMTUwcHg7IHdpZHRoOiAxNTBweDtcIiBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzEwNzIxM2MxNzE2NTQzMzM0MDQwZW1wdHktY2FydC5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICBQcm9kdWN0IGxpc3QgaXMgZW1wdHlcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgTG9va3MgbGlrZSBubyBpdGVtIGlzIHByZXNlbnQgd2l0aCBmaWx0ZXIuIEdvIGFoZWFkICYgZXhwbG9yZSB0b3AgY2F0ZWdvcmllcy5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tZmlsdGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmaWx0ZXItdGV4dFwiIHN0eWxlPVwiZ2FwOiAxMHB4XCIgKGNsaWNrKT1cIm9wZW5Tb3J0aW5nKFNvcnRpbmdTZWN0aW9uKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnNvcnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4+U29ydCBieTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmlsdGVyLXRleHQgXCIgc3R5bGU9XCJnYXA6IDEwcHhcIiAoY2xpY2spPVwib3BlbkZpbHRlcihGaWx0ZXJTZWN0aW9uKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDxzcGFuPkZpbHRlcjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZyB8fCBmaWx0ZXJMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG48bmctdGVtcGxhdGUgI0Zhdm91cml0ZVRhZ3MgbGV0LXByb2R1Y3Q9XCJkYXRhXCI+XHJcbiAgPG1hdC1pY29uIGNsYXNzPVwiZmF2LWljb25cIiBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiIChjbGljayk9XCJ0b2dnbGVJdGVtVG9GYXYoJGV2ZW50LCBwcm9kdWN0LCAnQUREJylcIiAqbmdJZj1cIiFwcm9kdWN0LndoaXNsaXN0XCI+ZmF2b3JpdGVfYm9yZGVyPC9tYXQtaWNvbj5cclxuICA8bWF0LWljb24gY2xhc3M9XCJmYXYtaWNvblwiIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCIgKGNsaWNrKT1cInRvZ2dsZUl0ZW1Ub0ZhdigkZXZlbnQsIHByb2R1Y3QsICdSRU1PVkUnKVwiICpuZ0lmPVwicHJvZHVjdC53aGlzbGlzdFwiPmZhdm9yaXRlPC9tYXQtaWNvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjRmlsdGVyU2VjdGlvbj5cclxuICA8c2VjdGlvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbS1hdXRvXCIgc3R5bGU9XCJ3aWR0aDogOTUlO1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWx0ZXIgb2YgZmlsdGVyTGlzdFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDAgY2hpcFwiPlxyXG4gICAgICAgICAgPHNwYW4+e3tmaWx0ZXIubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cInJlbW92ZUZpbHRlcihmaWx0ZXIpXCI+WDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLXNlY3Rpb25cIiAqbmdJZj1cImNhdGVnb3JpZXM/Lmxlbmd0aFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllcyBoZWFkaW5nLXNtYWxsXCI+XHJcbiAgICAgICAgU2hvcCBieSBjYXRlZ29yaWVzXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnktb3B0aW9uc1wiICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVyKGNhdGVnb3J5LCAnRklMVEVSJylcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cIlwiIGlkPVwiXCIgW2NoZWNrZWRdPVwiY2F0ZWdvcnkuc3RhdHVzXCIgLz5cclxuICAgICAgICA8ZGl2Pnt7Y2F0ZWdvcnkub3B0aW9uIHwgdXBwZXJjYXNlfX08L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzLXNlY3Rpb25cIiAqbmdJZj1cImNvbGxlY3Rpb25zPy5sZW5ndGhcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZXMgaGVhZGluZy1zbWFsbFwiPlxyXG4gICAgICAgIFNob3AgYnkgY29sbGVjdGlvbnNcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeS1vcHRpb25zXCIgKm5nRm9yPVwibGV0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnNcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoY29sbGVjdGlvbiwgJ0ZJTFRFUicpXCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJcIiBpZD1cIlwiIFtjaGVja2VkXT1cImNvbGxlY3Rpb24uc3RhdHVzXCIgLz5cclxuICAgICAgICA8ZGl2Pnt7Y29sbGVjdGlvbi5vcHRpb24gfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmljZS1zZWN0aW9uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzIGhlYWRpbmctc21hbGxcIj5cclxuICAgICAgICBTaG9wIGJ5IHByaWNlXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtc2xpZGVyIGNsYXNzPVwibWF0LXNsaWRlclwiIFttaW5dPVwibWluUHJvZHVjdFByaWNlXCIgW21heF09XCJtYXhQcm9kdWN0UHJpY2VcIiBzdHlsZT1cIndpZHRoOiAyNTBweDtcIj5cclxuICAgICAgICAgIDxpbnB1dCBtYXRTbGlkZXJTdGFydFRodW1iIFsobmdNb2RlbCldPVwicHJpY2luZ01pblwiPlxyXG4gICAgICAgICAgPGlucHV0IG1hdFNsaWRlckVuZFRodW1iIFsobmdNb2RlbCldPVwicHJpY2luZ01heFwiPlxyXG4gICAgICAgIDwvbWF0LXNsaWRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1idXR0b24tc2VjdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24tc2VjdGlvblwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoKVwiPkZpbHRlcjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcmljZS1yYW5nZVwiPlxyXG4gICAgICAgICAgUHJpY2U6IDxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPnt7IHByaWNpbmdNaW4gfX0gLSA8c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj57eyBwcmljaW5nTWF4IHwgZm9ybWF0ZUFtb3VudCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNTb3J0aW5nU2VjdGlvbj5cclxuICA8c2VjdGlvbiBzdHlsZT1cInBhZGRpbmc6IDEwcHhcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yaWVzIGhlYWRpbmctc21hbGwgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW0tY2VudGVyIFwiIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICA8c3Bhbj5Tb3J0IGJ5PC9zcGFuPlxyXG4gICAgICA8bWF0LWljb24gKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiAqbmdGb3I9XCJsZXQgc29ydGluZ1R5cGUgb2YgZmlsdGVyaW5nQXJyYXlcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIoJGV2ZW50LCAnU09SVCcpXCI+e3tzb3J0aW5nVHlwZS5uYW1lfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  export class OrderedItems {
2
- constructor(json) {
2
+ constructor(json, varientId) {
3
3
  this.itemId = json?.["itemId"] ?? "";
4
- this.variantId = json?.["variantId"] ?? "";
4
+ this.varientId = varientId ?? this.itemId;
5
5
  this.businessId = json?.["businessId"];
6
6
  this.itemName = json?.["name"];
7
7
  this.businessName = json?.["businessName"];
@@ -14,4 +14,4 @@ export class OrderedItems {
14
14
  this.taxAfterDiscount = json?.["taxAfterDiscount"];
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJlZEl0ZW1zLm1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sWUFBWTtJQWNyQixZQUFZLElBQTBCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdkQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdjEgYXMgdXVpZHYxIH0gZnJvbSAndXVpZCc7XHJcbmV4cG9ydCBjbGFzcyBPcmRlcmVkSXRlbXMge1xyXG4gICAgaXRlbUlkOiBzdHJpbmc7XHJcbiAgICB2YXJpYW50SWQ6IHN0cmluZztcclxuICAgIGJ1c2luZXNzSWQ6IHN0cmluZztcclxuICAgIGl0ZW1OYW1lOiBzdHJpbmc7XHJcbiAgICBidXNpbmVzc05hbWU6IHN0cmluZztcclxuICAgIGltZ1VybDogc3RyaW5nO1xyXG4gICAgcHJpY2U6IG51bWJlcjtcclxuICAgIHNlbGxpbmdQcmljZTogbnVtYmVyO1xyXG4gICAgaXRlbVRheDogbnVtYmVyO1xyXG4gICAgcXVhbnRpdHk6IG51bWJlcjtcclxuICAgIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyO1xyXG4gICAgdGF4QWZ0ZXJEaXNjb3VudDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGpzb24/Ontba2V5OiBzdHJpbmddOiBhbnl9KSB7XHJcbiAgICAgICAgdGhpcy5pdGVtSWQgPSBqc29uPy5bXCJpdGVtSWRcIl0gPz8gXCJcIjtcclxuICAgICAgICB0aGlzLnZhcmlhbnRJZCA9IGpzb24/LltcInZhcmlhbnRJZFwiXSA/PyBcIlwiO1xyXG4gICAgICAgIHRoaXMuYnVzaW5lc3NJZCA9IGpzb24/LltcImJ1c2luZXNzSWRcIl07XHJcbiAgICAgICAgdGhpcy5pdGVtTmFtZSA9IGpzb24/LltcIm5hbWVcIl07XHJcbiAgICAgICAgdGhpcy5idXNpbmVzc05hbWUgPSBqc29uPy5bXCJidXNpbmVzc05hbWVcIl07XHJcbiAgICAgICAgdGhpcy5pbWdVcmwgPSBqc29uPy5bXCJpdGVtSW1hZ2VzXCJdPy5bMF0/LltcImltZ1VybFwiXTtcclxuICAgICAgICB0aGlzLnNlbGxpbmdQcmljZSA9IGpzb24/LltcInByaWNlXCJdPy5bXCJzZWxsaW5nUHJpY2VcIl07XHJcbiAgICAgICAgdGhpcy5wcmljZSA9IGpzb24/LltcInByaWNlXCJdPy5bXCJ2YWx1ZVwiXTtcclxuICAgICAgICB0aGlzLml0ZW1UYXggPSBqc29uPy5bXCJwcmljZVwiXT8uW1widGF4QW1vdW50XCJdO1xyXG4gICAgICAgIHRoaXMucXVhbnRpdHkgPSBqc29uPy5bXCJxdWFudGl0eVwiXTtcclxuICAgICAgICB0aGlzLmRpc2NvdW50ZWRQcmljZSA9IGpzb24/LltcInByaWNlXCJdPy5bXCJkaXNjb3VudGVkUHJpY2VcIl07XHJcbiAgICAgICAgdGhpcy50YXhBZnRlckRpc2NvdW50ID0ganNvbj8uW1widGF4QWZ0ZXJEaXNjb3VudFwiXTtcclxuICAgIH1cclxufVxyXG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJlZEl0ZW1zLm1vZGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sWUFBWTtJQWNyQixZQUFZLElBQTBCLEVBQUUsU0FBa0I7UUFDdEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHYxIGFzIHV1aWR2MSB9IGZyb20gJ3V1aWQnO1xyXG5leHBvcnQgY2xhc3MgT3JkZXJlZEl0ZW1zIHtcclxuICAgIGl0ZW1JZDogc3RyaW5nO1xyXG4gICAgdmFyaWVudElkOiBzdHJpbmc7XHJcbiAgICBidXNpbmVzc0lkOiBzdHJpbmc7XHJcbiAgICBpdGVtTmFtZTogc3RyaW5nO1xyXG4gICAgYnVzaW5lc3NOYW1lOiBzdHJpbmc7XHJcbiAgICBpbWdVcmw6IHN0cmluZztcclxuICAgIHByaWNlOiBudW1iZXI7XHJcbiAgICBzZWxsaW5nUHJpY2U6IG51bWJlcjtcclxuICAgIGl0ZW1UYXg6IG51bWJlcjtcclxuICAgIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgICBkaXNjb3VudGVkUHJpY2U6IG51bWJlcjtcclxuICAgIHRheEFmdGVyRGlzY291bnQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihqc29uPzp7W2tleTogc3RyaW5nXTogYW55fSwgdmFyaWVudElkPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtSWQgPSBqc29uPy5bXCJpdGVtSWRcIl0gPz8gXCJcIjtcclxuICAgICAgICB0aGlzLnZhcmllbnRJZCA9IHZhcmllbnRJZCA/PyB0aGlzLml0ZW1JZDtcclxuICAgICAgICB0aGlzLmJ1c2luZXNzSWQgPSBqc29uPy5bXCJidXNpbmVzc0lkXCJdO1xyXG4gICAgICAgIHRoaXMuaXRlbU5hbWUgPSBqc29uPy5bXCJuYW1lXCJdO1xyXG4gICAgICAgIHRoaXMuYnVzaW5lc3NOYW1lID0ganNvbj8uW1wiYnVzaW5lc3NOYW1lXCJdO1xyXG4gICAgICAgIHRoaXMuaW1nVXJsID0ganNvbj8uW1wiaXRlbUltYWdlc1wiXT8uWzBdPy5bXCJpbWdVcmxcIl07XHJcbiAgICAgICAgdGhpcy5zZWxsaW5nUHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1wic2VsbGluZ1ByaWNlXCJdO1xyXG4gICAgICAgIHRoaXMucHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1widmFsdWVcIl07XHJcbiAgICAgICAgdGhpcy5pdGVtVGF4ID0ganNvbj8uW1wicHJpY2VcIl0/LltcInRheEFtb3VudFwiXTtcclxuICAgICAgICB0aGlzLnF1YW50aXR5ID0ganNvbj8uW1wicXVhbnRpdHlcIl07XHJcbiAgICAgICAgdGhpcy5kaXNjb3VudGVkUHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXT8uW1wiZGlzY291bnRlZFByaWNlXCJdO1xyXG4gICAgICAgIHRoaXMudGF4QWZ0ZXJEaXNjb3VudCA9IGpzb24/LltcInRheEFmdGVyRGlzY291bnRcIl07XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -4,7 +4,7 @@ export class Product {
4
4
  constructor(json) {
5
5
  this.itemId = json?.["itemId"];
6
6
  this.storeId = json?.["storeId"];
7
- this.varientId = json?.["varientId"];
7
+ this.varientId = json?.["itemId"];
8
8
  this.name = json?.["name"];
9
9
  this.itemCategorisation = json?.["itemCategorisation"];
10
10
  this.itemInventory = json?.["itemInventory"];
@@ -26,6 +26,12 @@ export class Product {
26
26
  this.prviewIdx = 0;
27
27
  this.quantity = json?.["quantity"] ?? 0;
28
28
  this.whislist = false;
29
+ if (this.itemVariant.length > 0) {
30
+ this.itemImages = this.itemVariant[0].variantImages;
31
+ this.price = this.itemVariant[0].itemVariantPrice;
32
+ this.varientId = this.itemVariant[0].variantId;
33
+ this.itemInventory = this.itemVariant[0].itemInventory;
34
+ }
29
35
  }
30
36
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxPQUFPO0lBc0NsQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBRTNCLFlBQVksSUFBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQXVCLENBQUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUHJvZHVjdCB7XHJcbiAgaXRlbUlkOiBzdHJpbmdcclxuICB2YXJpZW50SWQ6IHN0cmluZyB8IG51bGxcclxuICBzdG9yZUlkOiBzdHJpbmdbXVxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGl0ZW1DYXRlZ29yaXNhdGlvbjogSXRlbUNhdGVnb3Jpc2F0aW9uXHJcbiAgaXRlbUludmVudG9yeTogSXRlbUludmVudG9yeVxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG4gIGl0ZW1UeXBlOiBzdHJpbmdcclxuICBpdGVtVmFyaWFudDogSXRlbVZhcmlhbnRbXVxyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFjazJbXVxyXG4gIGFkZE9uVG9JdGVtOiBBZGRPblRvSXRlbVtdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIHVuaXQ6IFVuaXQ7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBwcmljZTogUHJpY2U7XHJcbiAgcHJ2aWV3SWR4OiBudW1iZXI7XHJcbiAgd2hpc2xpc3Q6IGJvb2xlYW47XHJcbiAgLy8gY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzMlxyXG4gIC8vIGF2YWlsYWJsZU9ubGluZTogYm9vbGVhblxyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIC8vIGZ1bGZpbGxtZW50SWQ6IHN0cmluZ1xyXG4gIC8vIGxvY2F0aW9uSWQ6IHN0cmluZ1xyXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3JcclxuICByYXRpbmc6IG51bWJlclxyXG4gIC8vIHJldHVybldpbmRvdzogbnVtYmVyXHJcbiAgLy8gdGltZVRvU2hpcDogbnVtYmVyXHJcbiAgLy8gcmF0ZWFibGU6IGJvb2xlYW5cclxuICAvLyBtYXRjaGVkOiBib29sZWFuXHJcbiAgLy8gcmVsYXRlZDogYm9vbGVhblxyXG4gIHJlY29tbWVuZGVkOiBib29sZWFuXHJcbiAgcmV0dXJuYWJsZTogYm9vbGVhblxyXG4gIC8vIGFjdGl2ZTogYm9vbGVhblxyXG4gIC8vIGNhbmNlbGxhYmxlOiBib29sZWFuXHJcbiAgLy8gc2VsbGVyUmV0dXJuUGlja1VwOiBib29sZWFuXHJcbiAgYXZhaWxhYmxlT25Db2Q6IGJvb2xlYW5cclxuICBicmllZjogc3RyaW5nXHJcbiAgLy8gY3JlYXRlZFRpbWVTdGFtcDogc3RyaW5nXHJcbiAgLy8gdXBkYXRlZFRpbWVTdGFtcDogc3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKGpzb24/Ontba2V5OiBzdHJpbmddOiBhbnl9KSB7XHJcbiAgICB0aGlzLml0ZW1JZCA9IGpzb24/LltcIml0ZW1JZFwiXTtcclxuICAgIHRoaXMuc3RvcmVJZCA9IGpzb24/LltcInN0b3JlSWRcIl07XHJcbiAgICB0aGlzLnZhcmllbnRJZCA9IGpzb24/LltcInZhcmllbnRJZFwiXTtcclxuICAgIHRoaXMubmFtZSA9IGpzb24/LltcIm5hbWVcIl07XHJcbiAgICB0aGlzLml0ZW1DYXRlZ29yaXNhdGlvbiA9IGpzb24/LltcIml0ZW1DYXRlZ29yaXNhdGlvblwiXSBhcyBJdGVtQ2F0ZWdvcmlzYXRpb247XHJcbiAgICB0aGlzLml0ZW1JbnZlbnRvcnkgPSBqc29uPy5bXCJpdGVtSW52ZW50b3J5XCJdIGFzIEl0ZW1JbnZlbnRvcnk7XHJcbiAgICB0aGlzLml0ZW1TdGF0dXMgPSBqc29uPy5bXCJpdGVtU3RhdHVzXCJdO1xyXG4gICAgdGhpcy5pdGVtVHlwZSA9IGpzb24/LltcIml0ZW1UeXBlXCJdO1xyXG4gICAgdGhpcy5pdGVtVmFyaWFudCA9IGpzb24/LltcIml0ZW1WYXJpYW50XCJdO1xyXG4gICAgdGhpcy5pdGVtSW1hZ2VzID0ganNvbj8uW1wiaXRlbUltYWdlc1wiXTtcclxuICAgIHRoaXMuaXRlbVBhY2tzID0ganNvbj8uW1wiaXRlbVBhY2tzXCJdO1xyXG4gICAgdGhpcy5hZGRPblRvSXRlbSA9IGpzb24/LltcImFkZE9uVG9JdGVtXCJdO1xyXG4gICAgdGhpcy51bml0ID0ganNvbj8uW1widW5pdFwiXTtcclxuICAgIHRoaXMucHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlJZCA9IGpzb24/LltcImNhdGVnb3J5SWRcIl07XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBqc29uPy5bXCJkZXNjcmlwdG9yXCJdO1xyXG4gICAgdGhpcy5yYXRpbmcgPSBqc29uPy5bXCJyYXRpbmdcIl07XHJcbiAgICB0aGlzLmJyaWVmID0ganNvbj8uW1wiYnJpZWZcIl07XHJcbiAgICB0aGlzLnJlY29tbWVuZGVkID0ganNvbj8uW1wicmVjb21tZW5kZWRcIl07XHJcbiAgICB0aGlzLnJldHVybmFibGUgPSBqc29uPy5bXCJyZXR1cm5hYmxlXCJdO1xyXG4gICAgdGhpcy5hdmFpbGFibGVPbkNvZCA9IGpzb24/LltcImF2YWlsYWJsZU9uQ29kXCJdO1xyXG4gICAgdGhpcy5wcnZpZXdJZHggPSAwO1xyXG4gICAgdGhpcy5xdWFudGl0eSA9IGpzb24/LltcInF1YW50aXR5XCJdID8/IDA7XHJcbiAgICB0aGlzLndoaXNsaXN0ID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1DYXRlZ29yaXNhdGlvbiB7XHJcbiAgaXRlbUNhdGVnb3JpZXM6IEl0ZW1DYXRlZ29yeVtdXHJcbiAgcHJvZHVjdFRhZ3M6IFByb2R1Y3RUYWdbXVxyXG4gIGl0ZW1Db2xsZWN0aW9uOiBJdGVtQ29sbGVjdGlvbltdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUNhdGVnb3J5IHtcclxuICByZWZJZDogc3RyaW5nXHJcbiAgcmVmTmFtZTogc3RyaW5nXHJcbiAgaW1nVXJsOiBzdHJpbmdcclxuICBtYXhRdWFudGl0eTogbnVtYmVyXHJcbiAgcHJpY2U6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RUYWcge1xyXG4gIHRhZ0lkOiBzdHJpbmdcclxuICBidXNpbmVzc0lkOiBzdHJpbmdcclxuICBzdG9yZUlkOiBzdHJpbmdbXVxyXG4gIGNvbGxlY3Rpb25JZDogc3RyaW5nXHJcbiAgc3ViQ2F0ZWdvcnlJZDogc3RyaW5nXHJcbiAgY2F0ZWdvcnlJZDogc3RyaW5nXHJcbiAgaXRlbUlkOiBzdHJpbmdcclxuICB0YWdOYW1lOiBzdHJpbmdcclxuICBhY3RpdmU6IGJvb2xlYW5cclxuICBvdGhlckRldGFpbHM6IGFueTtcclxuICBjcmVhdGVkRGV0YWlsczogQ3JlYXRlZERldGFpbHNcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVkRGV0YWlscyB7XHJcbiAgY3JlYXRlZEJ5SWQ6IHN0cmluZ1xyXG4gIGNyZWF0ZWRCeU5hbWU6IHN0cmluZ1xyXG4gIGNyZWF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG4gIHVwZGF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1Db2xsZWN0aW9uIHtcclxuICByZWZJZDogc3RyaW5nXHJcbiAgcmVmTmFtZTogc3RyaW5nXHJcbiAgaW1nVXJsOiBzdHJpbmdcclxuICBtYXhRdWFudGl0eTogbnVtYmVyXHJcbiAgcHJpY2U6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1JbnZlbnRvcnkge1xyXG4gIG9wZW5pbmdTdG9jazogbnVtYmVyXHJcbiAgc2t1OiBzdHJpbmdcclxuICBiYXJjb2RlOiBzdHJpbmdcclxuICBwcmVzZW50U3RvY2tEYXRlOiBzdHJpbmdcclxuICBsb3dTdG9ja0FsZXJ0OiBib29sZWFuXHJcbiAgbG93U3RvY2tRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVZhcmlhbnQge1xyXG4gIHZhcmlhbnRJZDogc3RyaW5nXHJcbiAgaXRlbUlkOiBzdHJpbmdcclxuICBxdWFudGl0eTogbnVtYmVyXHJcbiAgd2lzaGxpc3Q6IGJvb2xlYW5cclxuICB2YXJpYW50TmFtZTogc3RyaW5nXHJcbiAgdmFyaWFudEltYWdlczogVmFyaWFudEltYWdlW11cclxuICBpdGVtUGFja3M6IEl0ZW1QYWNrW11cclxuICBwcm9wZXJ0aWVzOiBhbnk7XHJcbiAgaXRlbVZhcmlhbnRQcmljZTogSXRlbVZhcmlhbnRQcmljZVxyXG4gIGl0ZW1JbnZlbnRvcnk6IEl0ZW1JbnZlbnRvcnkyXHJcbiAgaXRlbVN0YXR1czogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVmFyaWFudEltYWdlIHtcclxuICBpbWdVcmw6IHN0cmluZ1xyXG4gIGltZ0Rlc2M6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrIHtcclxuICBpdGVtUGFja0lkOiBzdHJpbmdcclxuICBwYWNrTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgYWN0dWFsUHJpY2U6IG51bWJlclxyXG4gIG9mZmVyZWRQcmljZTogbnVtYmVyXHJcbiAgcGFja1F1YW50aXR5OiBudW1iZXJcclxuICBtYXhPcmRlclF1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtVmFyaWFudFByaWNlIHtcclxuICBjdXJyZW5jeTogc3RyaW5nXHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIGVzdGltYXRlZFZhbHVlOiBudW1iZXJcclxuICBjb21wdXRlZFZhbHVlOiBudW1iZXJcclxuICBsaXN0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgb2ZmZXJlZFZhbHVlOiBudW1iZXJcclxuICBtaW5pbXVtVmFsdWU6IG51bWJlclxyXG4gIG1heGltdW1WYWx1ZTogbnVtYmVyXHJcbiAgcHVyY2hhc2VQcmljZTogbnVtYmVyXHJcbiAgd2hvbGVTYWxlUHJpY2U6IG51bWJlclxyXG4gIG1heFdob2xlU2FsZUxpbWl0OiBudW1iZXJcclxuICBtYXJnaW46IG51bWJlclxyXG4gIHByb2ZpdDogbnVtYmVyXHJcbiAgZGlzY291bnRlZFByaWNlOiBudW1iZXJcclxuICB0YXhSZWY6IFRheFJlZlxyXG4gIHRheEFtb3VudDogbnVtYmVyXHJcbiAgc2VsbGluZ1ByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYXhSZWYge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5MiB7XHJcbiAgb3BlbmluZ1N0b2NrOiBudW1iZXJcclxuICBza3U6IHN0cmluZ1xyXG4gIGJhcmNvZGU6IHN0cmluZ1xyXG4gIHByZXNlbnRTdG9ja0RhdGU6IHN0cmluZ1xyXG4gIGxvd1N0b2NrQWxlcnQ6IGJvb2xlYW5cclxuICBsb3dTdG9ja1F1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW1hZ2Uge1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgaW1nRGVzYzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVBhY2syIHtcclxuICBpdGVtUGFja0lkOiBzdHJpbmdcclxuICBwYWNrTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgYWN0dWFsUHJpY2U6IG51bWJlclxyXG4gIG9mZmVyZWRQcmljZTogbnVtYmVyXHJcbiAgcGFja1F1YW50aXR5OiBudW1iZXJcclxuICBtYXhPcmRlclF1YW50aXR5OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBZGRPblRvSXRlbSB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVW5pdCB7XHJcbiAgaWQ6IHN0cmluZ1xyXG4gIGtleTogc3RyaW5nXHJcbiAgdmFsdWU6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlIHtcclxuICBjdXJyZW5jeTogc3RyaW5nXHJcbiAgdmFsdWU6IG51bWJlclxyXG4gIGVzdGltYXRlZFZhbHVlOiBudW1iZXJcclxuICBjb21wdXRlZFZhbHVlOiBudW1iZXJcclxuICBsaXN0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgb2ZmZXJlZFZhbHVlOiBudW1iZXJcclxuICBtaW5pbXVtVmFsdWU6IG51bWJlclxyXG4gIG1heGltdW1WYWx1ZTogbnVtYmVyXHJcbiAgcHVyY2hhc2VQcmljZTogbnVtYmVyXHJcbiAgd2hvbGVTYWxlUHJpY2U6IG51bWJlclxyXG4gIG1heFdob2xlU2FsZUxpbWl0OiBudW1iZXJcclxuICBtYXJnaW46IG51bWJlclxyXG4gIHByb2ZpdDogbnVtYmVyXHJcbiAgZGlzY291bnRlZFByaWNlOiBudW1iZXJcclxuICB0YXhSZWY6IFRheFJlZjJcclxuICB0YXhBbW91bnQ6IG51bWJlclxyXG4gIHNlbGxpbmdQcmljZTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGF4UmVmMiB7XHJcbiAgdGF4SWQ6IHN0cmluZ1xyXG4gIHRheFBlcmNlbnQ6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZWREZXRhaWxzMiB7XHJcbiAgY3JlYXRlZEJ5SWQ6IHN0cmluZ1xyXG4gIGNyZWF0ZWRCeU5hbWU6IHN0cmluZ1xyXG4gIGNyZWF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG4gIHVwZGF0ZWRUaW1lU3RhbXA6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2NyaXB0b3Ige1xyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGNvZGU6IHN0cmluZ1xyXG4gIHN5bWJvbDogc3RyaW5nXHJcbiAgc2hvcnREZXNjOiBzdHJpbmdcclxuICBsb25nRGVzYzogc3RyaW5nXHJcbiAgaXRlbUltYWdlczogSXRlbUltYWdlMltdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUltYWdlMiB7XHJcbiAgaW1nVXJsOiBzdHJpbmdcclxuICBpbWdEZXNjOiBzdHJpbmdcclxufVxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxPQUFPO0lBc0NsQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBRTNCLFlBQVksSUFBMEI7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQXVCLENBQUM7UUFDN0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQWtCLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFByb2R1Y3Qge1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgdmFyaWVudElkOiBzdHJpbmdcclxuICBzdG9yZUlkOiBzdHJpbmdbXVxyXG4gIG5hbWU6IHN0cmluZ1xyXG4gIGl0ZW1DYXRlZ29yaXNhdGlvbjogSXRlbUNhdGVnb3Jpc2F0aW9uXHJcbiAgaXRlbUludmVudG9yeTogSXRlbUludmVudG9yeVxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG4gIGl0ZW1UeXBlOiBzdHJpbmdcclxuICBpdGVtVmFyaWFudDogSXRlbVZhcmlhbnRbXVxyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFjazJbXVxyXG4gIGFkZE9uVG9JdGVtOiBBZGRPblRvSXRlbVtdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIHVuaXQ6IFVuaXQ7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICBwcmljZTogUHJpY2U7XHJcbiAgcHJ2aWV3SWR4OiBudW1iZXI7XHJcbiAgd2hpc2xpc3Q6IGJvb2xlYW47XHJcbiAgLy8gY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzMlxyXG4gIC8vIGF2YWlsYWJsZU9ubGluZTogYm9vbGVhblxyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIC8vIGZ1bGZpbGxtZW50SWQ6IHN0cmluZ1xyXG4gIC8vIGxvY2F0aW9uSWQ6IHN0cmluZ1xyXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3JcclxuICByYXRpbmc6IG51bWJlclxyXG4gIC8vIHJldHVybldpbmRvdzogbnVtYmVyXHJcbiAgLy8gdGltZVRvU2hpcDogbnVtYmVyXHJcbiAgLy8gcmF0ZWFibGU6IGJvb2xlYW5cclxuICAvLyBtYXRjaGVkOiBib29sZWFuXHJcbiAgLy8gcmVsYXRlZDogYm9vbGVhblxyXG4gIHJlY29tbWVuZGVkOiBib29sZWFuXHJcbiAgcmV0dXJuYWJsZTogYm9vbGVhblxyXG4gIC8vIGFjdGl2ZTogYm9vbGVhblxyXG4gIC8vIGNhbmNlbGxhYmxlOiBib29sZWFuXHJcbiAgLy8gc2VsbGVyUmV0dXJuUGlja1VwOiBib29sZWFuXHJcbiAgYXZhaWxhYmxlT25Db2Q6IGJvb2xlYW5cclxuICBicmllZjogc3RyaW5nXHJcbiAgLy8gY3JlYXRlZFRpbWVTdGFtcDogc3RyaW5nXHJcbiAgLy8gdXBkYXRlZFRpbWVTdGFtcDogc3RyaW5nXHJcblxyXG4gIGNvbnN0cnVjdG9yKGpzb24/Ontba2V5OiBzdHJpbmddOiBhbnl9KSB7XHJcbiAgICB0aGlzLml0ZW1JZCA9IGpzb24/LltcIml0ZW1JZFwiXTtcclxuICAgIHRoaXMuc3RvcmVJZCA9IGpzb24/LltcInN0b3JlSWRcIl07XHJcbiAgICB0aGlzLnZhcmllbnRJZCA9IGpzb24/LltcIml0ZW1JZFwiXTtcclxuICAgIHRoaXMubmFtZSA9IGpzb24/LltcIm5hbWVcIl07XHJcbiAgICB0aGlzLml0ZW1DYXRlZ29yaXNhdGlvbiA9IGpzb24/LltcIml0ZW1DYXRlZ29yaXNhdGlvblwiXSBhcyBJdGVtQ2F0ZWdvcmlzYXRpb247XHJcbiAgICB0aGlzLml0ZW1JbnZlbnRvcnkgPSBqc29uPy5bXCJpdGVtSW52ZW50b3J5XCJdIGFzIEl0ZW1JbnZlbnRvcnk7XHJcbiAgICB0aGlzLml0ZW1TdGF0dXMgPSBqc29uPy5bXCJpdGVtU3RhdHVzXCJdO1xyXG4gICAgdGhpcy5pdGVtVHlwZSA9IGpzb24/LltcIml0ZW1UeXBlXCJdO1xyXG4gICAgdGhpcy5pdGVtVmFyaWFudCA9IGpzb24/LltcIml0ZW1WYXJpYW50XCJdO1xyXG4gICAgdGhpcy5pdGVtSW1hZ2VzID0ganNvbj8uW1wiaXRlbUltYWdlc1wiXTtcclxuICAgIHRoaXMuaXRlbVBhY2tzID0ganNvbj8uW1wiaXRlbVBhY2tzXCJdO1xyXG4gICAgdGhpcy5hZGRPblRvSXRlbSA9IGpzb24/LltcImFkZE9uVG9JdGVtXCJdO1xyXG4gICAgdGhpcy51bml0ID0ganNvbj8uW1widW5pdFwiXTtcclxuICAgIHRoaXMucHJpY2UgPSBqc29uPy5bXCJwcmljZVwiXTtcclxuICAgIHRoaXMuY2F0ZWdvcnlJZCA9IGpzb24/LltcImNhdGVnb3J5SWRcIl07XHJcbiAgICB0aGlzLmRlc2NyaXB0b3IgPSBqc29uPy5bXCJkZXNjcmlwdG9yXCJdO1xyXG4gICAgdGhpcy5yYXRpbmcgPSBqc29uPy5bXCJyYXRpbmdcIl07XHJcbiAgICB0aGlzLmJyaWVmID0ganNvbj8uW1wiYnJpZWZcIl07XHJcbiAgICB0aGlzLnJlY29tbWVuZGVkID0ganNvbj8uW1wicmVjb21tZW5kZWRcIl07XHJcbiAgICB0aGlzLnJldHVybmFibGUgPSBqc29uPy5bXCJyZXR1cm5hYmxlXCJdO1xyXG4gICAgdGhpcy5hdmFpbGFibGVPbkNvZCA9IGpzb24/LltcImF2YWlsYWJsZU9uQ29kXCJdO1xyXG4gICAgdGhpcy5wcnZpZXdJZHggPSAwO1xyXG4gICAgdGhpcy5xdWFudGl0eSA9IGpzb24/LltcInF1YW50aXR5XCJdID8/IDA7XHJcbiAgICB0aGlzLndoaXNsaXN0ID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5pdGVtVmFyaWFudC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaXRlbUltYWdlcyA9IHRoaXMuaXRlbVZhcmlhbnRbMF0udmFyaWFudEltYWdlcztcclxuICAgICAgdGhpcy5wcmljZSA9IHRoaXMuaXRlbVZhcmlhbnRbMF0uaXRlbVZhcmlhbnRQcmljZTtcclxuICAgICAgdGhpcy52YXJpZW50SWQgPSB0aGlzLml0ZW1WYXJpYW50WzBdLnZhcmlhbnRJZDtcclxuICAgICAgdGhpcy5pdGVtSW52ZW50b3J5ID0gdGhpcy5pdGVtVmFyaWFudFswXS5pdGVtSW52ZW50b3J5O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ2F0ZWdvcmlzYXRpb24ge1xyXG4gIGl0ZW1DYXRlZ29yaWVzOiBJdGVtQ2F0ZWdvcnlbXVxyXG4gIHByb2R1Y3RUYWdzOiBQcm9kdWN0VGFnW11cclxuICBpdGVtQ29sbGVjdGlvbjogSXRlbUNvbGxlY3Rpb25bXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1DYXRlZ29yeSB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0VGFnIHtcclxuICB0YWdJZDogc3RyaW5nXHJcbiAgYnVzaW5lc3NJZDogc3RyaW5nXHJcbiAgc3RvcmVJZDogc3RyaW5nW11cclxuICBjb2xsZWN0aW9uSWQ6IHN0cmluZ1xyXG4gIHN1YkNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGNhdGVnb3J5SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgdGFnTmFtZTogc3RyaW5nXHJcbiAgYWN0aXZlOiBib29sZWFuXHJcbiAgb3RoZXJEZXRhaWxzOiBhbnk7XHJcbiAgY3JlYXRlZERldGFpbHM6IENyZWF0ZWREZXRhaWxzXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlZERldGFpbHMge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtQ29sbGVjdGlvbiB7XHJcbiAgcmVmSWQ6IHN0cmluZ1xyXG4gIHJlZk5hbWU6IHN0cmluZ1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgbWF4UXVhbnRpdHk6IG51bWJlclxyXG4gIHByaWNlOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtSW52ZW50b3J5IHtcclxuICBvcGVuaW5nU3RvY2s6IG51bWJlclxyXG4gIHNrdTogc3RyaW5nXHJcbiAgYmFyY29kZTogc3RyaW5nXHJcbiAgcHJlc2VudFN0b2NrRGF0ZTogc3RyaW5nXHJcbiAgbG93U3RvY2tBbGVydDogYm9vbGVhblxyXG4gIGxvd1N0b2NrUXVhbnRpdHk6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1WYXJpYW50IHtcclxuICB2YXJpYW50SWQ6IHN0cmluZ1xyXG4gIGl0ZW1JZDogc3RyaW5nXHJcbiAgcXVhbnRpdHk6IG51bWJlclxyXG4gIHdpc2hsaXN0OiBib29sZWFuXHJcbiAgdmFyaWFudE5hbWU6IHN0cmluZ1xyXG4gIHZhcmlhbnRJbWFnZXM6IFZhcmlhbnRJbWFnZVtdXHJcbiAgaXRlbVBhY2tzOiBJdGVtUGFja1tdXHJcbiAgcHJvcGVydGllczogYW55O1xyXG4gIGl0ZW1WYXJpYW50UHJpY2U6IEl0ZW1WYXJpYW50UHJpY2VcclxuICBpdGVtSW52ZW50b3J5OiBJdGVtSW52ZW50b3J5MlxyXG4gIGl0ZW1TdGF0dXM6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZhcmlhbnRJbWFnZSB7XHJcbiAgaW1nVXJsOiBzdHJpbmdcclxuICBpbWdEZXNjOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtUGFjayB7XHJcbiAgaXRlbVBhY2tJZDogc3RyaW5nXHJcbiAgcGFja05hbWU6IHN0cmluZ1xyXG4gIGFjdGl2ZTogYm9vbGVhblxyXG4gIGFjdHVhbFByaWNlOiBudW1iZXJcclxuICBvZmZlcmVkUHJpY2U6IG51bWJlclxyXG4gIHBhY2tRdWFudGl0eTogbnVtYmVyXHJcbiAgbWF4T3JkZXJRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbVZhcmlhbnRQcmljZSB7XHJcbiAgY3VycmVuY3k6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBlc3RpbWF0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgY29tcHV0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgbGlzdGVkVmFsdWU6IG51bWJlclxyXG4gIG9mZmVyZWRWYWx1ZTogbnVtYmVyXHJcbiAgbWluaW11bVZhbHVlOiBudW1iZXJcclxuICBtYXhpbXVtVmFsdWU6IG51bWJlclxyXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlclxyXG4gIHdob2xlU2FsZVByaWNlOiBudW1iZXJcclxuICBtYXhXaG9sZVNhbGVMaW1pdDogbnVtYmVyXHJcbiAgbWFyZ2luOiBudW1iZXJcclxuICBwcm9maXQ6IG51bWJlclxyXG4gIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyXHJcbiAgdGF4UmVmOiBUYXhSZWZcclxuICB0YXhBbW91bnQ6IG51bWJlclxyXG4gIHNlbGxpbmdQcmljZTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGF4UmVmIHtcclxuICB0YXhJZDogc3RyaW5nXHJcbiAgdGF4UGVyY2VudDogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUludmVudG9yeTIge1xyXG4gIG9wZW5pbmdTdG9jazogbnVtYmVyXHJcbiAgc2t1OiBzdHJpbmdcclxuICBiYXJjb2RlOiBzdHJpbmdcclxuICBwcmVzZW50U3RvY2tEYXRlOiBzdHJpbmdcclxuICBsb3dTdG9ja0FsZXJ0OiBib29sZWFuXHJcbiAgbG93U3RvY2tRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUltYWdlIHtcclxuICBpbWdVcmw6IHN0cmluZ1xyXG4gIGltZ0Rlc2M6IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1QYWNrMiB7XHJcbiAgaXRlbVBhY2tJZDogc3RyaW5nXHJcbiAgcGFja05hbWU6IHN0cmluZ1xyXG4gIGFjdGl2ZTogYm9vbGVhblxyXG4gIGFjdHVhbFByaWNlOiBudW1iZXJcclxuICBvZmZlcmVkUHJpY2U6IG51bWJlclxyXG4gIHBhY2tRdWFudGl0eTogbnVtYmVyXHJcbiAgbWF4T3JkZXJRdWFudGl0eTogbnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWRkT25Ub0l0ZW0ge1xyXG4gIHJlZklkOiBzdHJpbmdcclxuICByZWZOYW1lOiBzdHJpbmdcclxuICBpbWdVcmw6IHN0cmluZ1xyXG4gIG1heFF1YW50aXR5OiBudW1iZXJcclxuICBwcmljZTogbnVtYmVyXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVuaXQge1xyXG4gIGlkOiBzdHJpbmdcclxuICBrZXk6IHN0cmluZ1xyXG4gIHZhbHVlOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XHJcbiAgY3VycmVuY3k6IHN0cmluZ1xyXG4gIHZhbHVlOiBudW1iZXJcclxuICBlc3RpbWF0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgY29tcHV0ZWRWYWx1ZTogbnVtYmVyXHJcbiAgbGlzdGVkVmFsdWU6IG51bWJlclxyXG4gIG9mZmVyZWRWYWx1ZTogbnVtYmVyXHJcbiAgbWluaW11bVZhbHVlOiBudW1iZXJcclxuICBtYXhpbXVtVmFsdWU6IG51bWJlclxyXG4gIHB1cmNoYXNlUHJpY2U6IG51bWJlclxyXG4gIHdob2xlU2FsZVByaWNlOiBudW1iZXJcclxuICBtYXhXaG9sZVNhbGVMaW1pdDogbnVtYmVyXHJcbiAgbWFyZ2luOiBudW1iZXJcclxuICBwcm9maXQ6IG51bWJlclxyXG4gIGRpc2NvdW50ZWRQcmljZTogbnVtYmVyXHJcbiAgdGF4UmVmOiBUYXhSZWYyXHJcbiAgdGF4QW1vdW50OiBudW1iZXJcclxuICBzZWxsaW5nUHJpY2U6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheFJlZjIge1xyXG4gIHRheElkOiBzdHJpbmdcclxuICB0YXhQZXJjZW50OiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVkRGV0YWlsczIge1xyXG4gIGNyZWF0ZWRCeUlkOiBzdHJpbmdcclxuICBjcmVhdGVkQnlOYW1lOiBzdHJpbmdcclxuICBjcmVhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxuICB1cGRhdGVkVGltZVN0YW1wOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdG9yIHtcclxuICBuYW1lOiBzdHJpbmdcclxuICBjb2RlOiBzdHJpbmdcclxuICBzeW1ib2w6IHN0cmluZ1xyXG4gIHNob3J0RGVzYzogc3RyaW5nXHJcbiAgbG9uZ0Rlc2M6IHN0cmluZ1xyXG4gIGl0ZW1JbWFnZXM6IEl0ZW1JbWFnZTJbXVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1JbWFnZTIge1xyXG4gIGltZ1VybDogc3RyaW5nXHJcbiAgaW1nRGVzYzogc3RyaW5nXHJcbn1cclxuIl19
@@ -29,20 +29,20 @@ export class CartService {
29
29
  return this.restService.addItemToDB(userWishlist);
30
30
  }
31
31
  removeItemFromWishlistPage(product, userWishlist) {
32
- this.storageService.removeProductFromWishlist(product.itemId);
32
+ this.storageService.removeProductFromWishlist(product.varientId);
33
33
  return this.restService.addItemToDB(userWishlist);
34
34
  }
35
- addItemToCart(product) {
35
+ addItemToCart(product, varientId) {
36
36
  if (product.quantity) {
37
- const orderedItem = this.objectMapper(product);
37
+ const orderedItem = this.objectMapper(product, varientId);
38
38
  return this.storageService.addProductToCart(orderedItem);
39
39
  }
40
40
  else {
41
41
  return this.removeItemFromCart(product);
42
42
  }
43
43
  }
44
- addItemToFavourite(product) {
45
- const orderedItem = this.objectMapper(product);
44
+ addItemToFavourite(product, varientId) {
45
+ const orderedItem = this.objectMapper(product, varientId);
46
46
  this.storageService.addProductToWishlist(orderedItem);
47
47
  }
48
48
  addItemToFavFromCart(product) {
@@ -51,39 +51,31 @@ export class CartService {
51
51
  addOrderedItemToFavourite(orderedItem) {
52
52
  this.storageService.addProductToWishlist(orderedItem);
53
53
  }
54
- removeItemFromFavourite(product) {
55
- this.storageService.removeProductFromWishlist(product.itemId);
54
+ removeItemFromFavourite(varientId) {
55
+ this.storageService.removeProductFromWishlist(varientId);
56
56
  }
57
57
  removeItemFromCart(product) {
58
- this.storageService.removeProductFromCart(product.itemId);
58
+ this.storageService.removeProductFromCart(product.varientId);
59
59
  }
60
60
  getItemIdxJSON(id, type) {
61
61
  return this.storageService.getProductFromCart(id);
62
62
  }
63
63
  storeItemToDB(product, type) {
64
64
  if (type == "CART") {
65
- const orderProduct = this.objectMapper(this.storageService.getProductFromCart(product.itemId));
65
+ const orderProduct = this.objectMapper(this.storageService.getProductFromCart(product.varientId));
66
66
  if (orderProduct) {
67
67
  this.storageService.addProductToCart(orderProduct);
68
68
  }
69
69
  }
70
70
  else {
71
- const orderProduct = this.objectMapper(this.storageService.getProductFromWishlist(product.itemId));
71
+ const orderProduct = this.objectMapper(this.storageService.getProductFromWishlist(product.varientId));
72
72
  if (orderProduct) {
73
73
  this.storageService.addProductToWishlist(orderProduct);
74
74
  }
75
75
  }
76
76
  }
77
- getItemByIdx(itemId, type) {
78
- const productIdx = this.getItemIdxJSON(itemId, type);
79
- // console.log(type, productIdx);
80
- // const json = (type == "FAVOURITE") ? UserFavourites : UserCart;
81
- // if (productIdx >= 0)
82
- // return json.orderedItems[productIdx];
83
- return null;
84
- }
85
- objectMapper(product) {
86
- return new OrderedItems(product);
77
+ objectMapper(product, variantId) {
78
+ return new OrderedItems(product, variantId);
87
79
  }
88
80
  storeCartDataToServer(cart) {
89
81
  }
@@ -111,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
111
103
  providedIn: 'root',
112
104
  }]
113
105
  }], ctorParameters: () => [{ type: i1.StorageServiceService }, { type: i2.RestService }] });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBU3RFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUUzQyxDQUFDO0lBR00sbUJBQW1CLENBQUMsT0FBcUIsRUFBRSxRQUFhO1FBQzdELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLCtCQUErQjtZQUMvQiw4REFBOEQ7WUFDOUQsdUNBQXVDO1lBQ3ZDLHdCQUF3QjtZQUN4QixNQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUF1QixDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUNNLHVCQUF1QixDQUFDLE9BQXFCLEVBQUUsWUFBaUI7UUFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDTSwwQkFBMEIsQ0FBQyxPQUFxQixFQUFFLFlBQWlCO1FBQ3hFLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUErQjtRQUVsRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVyQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQWtCLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBMkIsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBa0IsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBQ00sa0JBQWtCLENBQUMsT0FBZ0I7UUFFeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDTSxvQkFBb0IsQ0FBQyxPQUFxQjtRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDTSx5QkFBeUIsQ0FBQyxXQUF5QjtRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDTSx1QkFBdUIsQ0FBQyxPQUFnQjtRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ00sa0JBQWtCLENBQUMsT0FBK0I7UUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNNLGNBQWMsQ0FBQyxFQUFVLEVBQUUsSUFBMEI7UUFDMUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxhQUFhLENBQUMsT0FBZ0IsRUFBRSxJQUF5QjtRQUM5RCxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLFlBQVksR0FBaUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQXVCLENBQUMsQ0FBQztZQUVuSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sWUFBWSxHQUFpQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQyxDQUFDO1lBRXZJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUEwQjtRQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxpQ0FBaUM7UUFDakMsa0VBQWtFO1FBQ2xFLHVCQUF1QjtRQUN2QiwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLElBQVU7SUFFdkMsQ0FBQztJQUNNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFDeEQsb0NBQW9DO1FBQ3BDLDRCQUE0QjtRQUM1Qix3Q0FBd0M7UUFDeEMsZ0NBQWdDO1FBRWhDLG9CQUFvQjtRQUNwQiw0Q0FBNEM7UUFDNUMsaURBQWlEO1FBQ2pELE1BQU07SUFDUixDQUFDOzhHQS9HVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvcHJvZHVjdC5tb2RhbCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcnQgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL2NhcnQubW9kYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Gcm9tQ2FydFBhZ2UocHJvZHVjdDogT3JkZXJlZEl0ZW1zLCB1c2VyQ2FydDogYW55KSB7XHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG4gICAgICAvLyBsZXQgcHJvZHVjdElkeDogbnVtYmVyID0gLTE7XHJcbiAgICAgIC8vIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMsIGlkeCk9PiB7XHJcbiAgICAgIC8vICAgaWYgKGl0ZW0uaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAvLyAgICAgcHJvZHVjdElkeCA9IGlkeDtcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0IGFzIE9yZGVyZWRJdGVtcyk7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHVzZXJDYXJ0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHJlbW92ZSBpdGVtIGZyb20gY2FydFxyXG4gICAgICB0aGlzLnJlbW92ZUl0ZW1Gcm9tQ2FydChwcm9kdWN0KTtcclxuICAgICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlckNhcnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgYWRkSXRlbUZyb21XaXNobGlzdFBhZ2UocHJvZHVjdDogT3JkZXJlZEl0ZW1zLCB1c2VyV2lzaGxpc3Q6IGFueSkge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChwcm9kdWN0KTtcclxuICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHVzZXJXaXNobGlzdCk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtRnJvbVdpc2hsaXN0UGFnZShwcm9kdWN0OiBPcmRlcmVkSXRlbXMsIHVzZXJXaXNobGlzdDogYW55KSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlcldpc2hsaXN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRJdGVtVG9DYXJ0KHByb2R1Y3Q6IFByb2R1Y3QgfCBPcmRlcmVkSXRlbXMpIHtcclxuXHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG5cclxuICAgICAgY29uc3Qgb3JkZXJlZEl0ZW0gPSB0aGlzLm9iamVjdE1hcHBlcihwcm9kdWN0IGFzIFByb2R1Y3QpO1xyXG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyZWRJdGVtIGFzIE9yZGVyZWRJdGVtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZW1vdmVJdGVtRnJvbUNhcnQocHJvZHVjdCBhcyBQcm9kdWN0KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcblxyXG4gICAgY29uc3Qgb3JkZXJlZEl0ZW0gPSB0aGlzLm9iamVjdE1hcHBlcihwcm9kdWN0KTtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3Qob3JkZXJlZEl0ZW0pOyBcclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0ZhdkZyb21DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChwcm9kdWN0KTsgXHJcbiAgfVxyXG4gIHB1YmxpYyBhZGRPcmRlcmVkSXRlbVRvRmF2b3VyaXRlKG9yZGVyZWRJdGVtOiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3Qob3JkZXJlZEl0ZW0pOyBcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZUl0ZW1Gcm9tRmF2b3VyaXRlKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0Lml0ZW1JZCk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtRnJvbUNhcnQocHJvZHVjdDogUHJvZHVjdCB8IE9yZGVyZWRJdGVtcykge1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tQ2FydChwcm9kdWN0Lml0ZW1JZCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRJdGVtSWR4SlNPTihpZDogc3RyaW5nLCB0eXBlOiAnRkFWT1VSSVRFJyB8ICdDQVJUJykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0UHJvZHVjdEZyb21DYXJ0KGlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0RCKHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdDQVJUJyB8ICdXSVNITElTVCcpIHtcclxuICAgIGlmICh0eXBlID09IFwiQ0FSVFwiKSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyUHJvZHVjdDogT3JkZXJlZEl0ZW1zID0gdGhpcy5vYmplY3RNYXBwZXIodGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdC5pdGVtSWQpIGFzIHVua25vd24gYXMgUHJvZHVjdCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JkZXJQcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyUHJvZHVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyUHJvZHVjdDogT3JkZXJlZEl0ZW1zID0gdGhpcy5vYmplY3RNYXBwZXIodGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QuaXRlbUlkKSBhcyB1bmtub3duIGFzIFByb2R1Y3QpO1xyXG4gICAgICBcclxuICAgICAgaWYgKG9yZGVyUHJvZHVjdCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3Qob3JkZXJQcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEl0ZW1CeUlkeChpdGVtSWQ6IHN0cmluZywgdHlwZTogJ0ZBVk9VUklURScgfCAnQ0FSVCcpOiBPcmRlcmVkSXRlbXMgfCBudWxsIHtcclxuICAgIGNvbnN0IHByb2R1Y3RJZHggPSB0aGlzLmdldEl0ZW1JZHhKU09OKGl0ZW1JZCwgdHlwZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0eXBlLCBwcm9kdWN0SWR4KTtcclxuICAgIC8vIGNvbnN0IGpzb24gPSAodHlwZSA9PSBcIkZBVk9VUklURVwiKSA/IFVzZXJGYXZvdXJpdGVzIDogVXNlckNhcnQ7XHJcbiAgICAvLyBpZiAocHJvZHVjdElkeCA+PSAwKVxyXG4gICAgLy8gICByZXR1cm4ganNvbi5vcmRlcmVkSXRlbXNbcHJvZHVjdElkeF07XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvYmplY3RNYXBwZXIocHJvZHVjdDogUHJvZHVjdCk6IE9yZGVyZWRJdGVtcyB7XHJcbiAgICByZXR1cm4gbmV3IE9yZGVyZWRJdGVtcyhwcm9kdWN0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUNhcnREYXRhVG9TZXJ2ZXIoY2FydDogQ2FydCkge1xyXG4gICAgXHJcbiAgfVxyXG4gIHB1YmxpYyBjbGVhckNhcnRJdGVtcygpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJVc2VyQ2FydCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b3JlRGF0YVRvU2VydmVyKCkge1xyXG4gICAgLy8gY29uc3QgdXNlckNhcnQgPSBVc2VyQ2FydCBhcyBuZXZlciBhcyBDYXJ0O1xyXG4gICAgLy8gY29uc3QgdXNlcldpc2hsaXN0ID0gVXNlckZhdm91cml0ZXMgYXMgbmV2ZXIgYXMgQ2FydDtcclxuICAgIC8vIGlmICh1c2VyQ2FydC5jYXJ0SWQ/Lmxlbmd0aCA9PSAwKVxyXG4gICAgLy8gICBkZWxldGUgdXNlckNhcnQuY2FydElkO1xyXG4gICAgLy8gaWYgKHVzZXJXaXNobGlzdC5jYXJ0SWQ/Lmxlbmd0aCA9PSAwKVxyXG4gICAgLy8gICBkZWxldGUgdXNlcldpc2hsaXN0LmNhcnRJZDtcclxuXHJcbiAgICAvLyByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKFVzZXJDYXJ0KSxcclxuICAgIC8vICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyRmF2b3VyaXRlcylcclxuICAgIC8vIF0pO1xyXG4gIH1cclxufSJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBU3RFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUUzQyxDQUFDO0lBR00sbUJBQW1CLENBQUMsT0FBcUIsRUFBRSxRQUFhO1FBQzdELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLCtCQUErQjtZQUMvQiw4REFBOEQ7WUFDOUQsdUNBQXVDO1lBQ3ZDLHdCQUF3QjtZQUN4QixNQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUF1QixDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUNNLHVCQUF1QixDQUFDLE9BQXFCLEVBQUUsWUFBaUI7UUFDckUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lB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QUF3RDtRQUN4RCxvQ0FBb0M7UUFDcEMsNEJBQTRCO1FBQzVCLHdDQUF3QztRQUN4QyxnQ0FBZ0M7UUFFaEMsb0JBQW9CO1FBQ3BCLDRDQUE0QztRQUM1QyxpREFBaUQ7UUFDakQsTUFBTTtJQUNSLENBQUM7OEdBckdVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FydCB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvY2FydC5tb2RhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYWRkSXRlbUZyb21DYXJ0UGFnZShwcm9kdWN0OiBPcmRlcmVkSXRlbXMsIHVzZXJDYXJ0OiBhbnkpIHtcclxuICAgIGlmIChwcm9kdWN0LnF1YW50aXR5KSB7XHJcbiAgICAgIC8vIGxldCBwcm9kdWN0SWR4OiBudW1iZXIgPSAtMTtcclxuICAgICAgLy8gVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcywgaWR4KT0+IHtcclxuICAgICAgLy8gICBpZiAoaXRlbS5pdGVtSWQgPT0gcHJvZHVjdC5pdGVtSWQpXHJcbiAgICAgIC8vICAgICBwcm9kdWN0SWR4ID0gaWR4O1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3QgYXMgT3JkZXJlZEl0ZW1zKTtcclxuICAgICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlckNhcnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gcmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0XHJcbiAgICAgIHRoaXMucmVtb3ZlSXRlbUZyb21DYXJ0KHByb2R1Y3QpO1xyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih1c2VyQ2FydCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBhZGRJdGVtRnJvbVdpc2hsaXN0UGFnZShwcm9kdWN0OiBPcmRlcmVkSXRlbXMsIHVzZXJXaXNobGlzdDogYW55KSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3QpO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlcldpc2hsaXN0KTtcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZUl0ZW1Gcm9tV2lzaGxpc3RQYWdlKHByb2R1Y3Q6IE9yZGVyZWRJdGVtcywgdXNlcldpc2hsaXN0OiBhbnkpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih1c2VyV2lzaGxpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Ub0NhcnQocHJvZHVjdDogUHJvZHVjdCB8IE9yZGVyZWRJdGVtcywgdmFyaWVudElkPzogc3RyaW5nKSB7XHJcblxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuXHJcbiAgICAgIGNvbnN0IG9yZGVyZWRJdGVtID0gdGhpcy5vYmplY3RNYXBwZXIocHJvZHVjdCBhcyBQcm9kdWN0LCB2YXJpZW50SWQpO1xyXG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyZWRJdGVtIGFzIE9yZGVyZWRJdGVtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZW1vdmVJdGVtRnJvbUNhcnQocHJvZHVjdCBhcyBQcm9kdWN0KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGFkZEl0ZW1Ub0Zhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0LCB2YXJpZW50SWQ/OiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBvcmRlcmVkSXRlbSA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QsIHZhcmllbnRJZCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KG9yZGVyZWRJdGVtKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyBhZGRJdGVtVG9GYXZGcm9tQ2FydChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3QocHJvZHVjdCk7IFxyXG4gIH1cclxuICBwdWJsaWMgYWRkT3JkZXJlZEl0ZW1Ub0Zhdm91cml0ZShvcmRlcmVkSXRlbTogT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KG9yZGVyZWRJdGVtKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtRnJvbUZhdm91cml0ZSh2YXJpZW50SWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHZhcmllbnRJZCk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtRnJvbUNhcnQocHJvZHVjdDogUHJvZHVjdCB8IE9yZGVyZWRJdGVtcykge1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tQ2FydChwcm9kdWN0LnZhcmllbnRJZCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXRJdGVtSWR4SlNPTihpZDogc3RyaW5nLCB0eXBlOiAnRkFWT1VSSVRFJyB8ICdDQVJUJykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0UHJvZHVjdEZyb21DYXJ0KGlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUl0ZW1Ub0RCKHByb2R1Y3Q6IFByb2R1Y3QsIHR5cGU6ICdDQVJUJyB8ICdXSVNITElTVCcpIHtcclxuICAgIGlmICh0eXBlID09IFwiQ0FSVFwiKSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyUHJvZHVjdDogT3JkZXJlZEl0ZW1zID0gdGhpcy5vYmplY3RNYXBwZXIodGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdC52YXJpZW50SWQpIGFzIHVua25vd24gYXMgUHJvZHVjdCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JkZXJQcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KG9yZGVyUHJvZHVjdCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IG9yZGVyUHJvZHVjdDogT3JkZXJlZEl0ZW1zID0gdGhpcy5vYmplY3RNYXBwZXIodGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QudmFyaWVudElkKSBhcyB1bmtub3duIGFzIFByb2R1Y3QpO1xyXG4gICAgICBcclxuICAgICAgaWYgKG9yZGVyUHJvZHVjdCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvV2lzaGxpc3Qob3JkZXJQcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIG9iamVjdE1hcHBlcihwcm9kdWN0OiBQcm9kdWN0LCB2YXJpYW50SWQ/OiBzdHJpbmcpOiBPcmRlcmVkSXRlbXMge1xyXG4gICAgcmV0dXJuIG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCwgdmFyaWFudElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZUNhcnREYXRhVG9TZXJ2ZXIoY2FydDogQ2FydCkge1xyXG4gICAgXHJcbiAgfVxyXG4gIHB1YmxpYyBjbGVhckNhcnRJdGVtcygpIHtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXJVc2VyQ2FydCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b3JlRGF0YVRvU2VydmVyKCkge1xyXG4gICAgLy8gY29uc3QgdXNlckNhcnQgPSBVc2VyQ2FydCBhcyBuZXZlciBhcyBDYXJ0O1xyXG4gICAgLy8gY29uc3QgdXNlcldpc2hsaXN0ID0gVXNlckZhdm91cml0ZXMgYXMgbmV2ZXIgYXMgQ2FydDtcclxuICAgIC8vIGlmICh1c2VyQ2FydC5jYXJ0SWQ/Lmxlbmd0aCA9PSAwKVxyXG4gICAgLy8gICBkZWxldGUgdXNlckNhcnQuY2FydElkO1xyXG4gICAgLy8gaWYgKHVzZXJXaXNobGlzdC5jYXJ0SWQ/Lmxlbmd0aCA9PSAwKVxyXG4gICAgLy8gICBkZWxldGUgdXNlcldpc2hsaXN0LmNhcnRJZDtcclxuXHJcbiAgICAvLyByZXR1cm4gZm9ya0pvaW4oW1xyXG4gICAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKFVzZXJDYXJ0KSxcclxuICAgIC8vICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyRmF2b3VyaXRlcylcclxuICAgIC8vIF0pO1xyXG4gIH1cclxufSJdfQ==