simpo-component-library 1.4.113 → 1.4.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2022/lib/ecommerce/sections/address/address.component.mjs +23 -8
  2. package/esm2022/lib/ecommerce/sections/authenticate-user/authenticate-user.component.mjs +35 -16
  3. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +19 -18
  4. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +14 -8
  5. package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +24 -6
  6. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +12 -8
  7. package/esm2022/lib/ecommerce/sections/product-list/product-list.modal.mjs +1 -1
  8. package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +35 -21
  9. package/esm2022/lib/ecommerce/sections/verify-payment/verify-payment.component.mjs +19 -6
  10. package/esm2022/lib/ecommerce/sections/whislist/whislist.component.mjs +2 -1
  11. package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +2 -2
  12. package/esm2022/lib/services/cart.service.mjs +1 -3
  13. package/esm2022/lib/services/storage.service.mjs +8 -1
  14. package/fesm2022/simpo-component-library.mjs +205 -122
  15. package/fesm2022/simpo-component-library.mjs.map +1 -1
  16. package/lib/directive/background-directive.d.ts +1 -1
  17. package/lib/directive/button-directive.directive.d.ts +1 -1
  18. package/lib/directive/color.directive.d.ts +1 -1
  19. package/lib/ecommerce/sections/address/address.component.d.ts +6 -3
  20. package/lib/ecommerce/sections/authenticate-user/authenticate-user.component.d.ts +6 -2
  21. package/lib/ecommerce/sections/cart/cart.component.d.ts +2 -1
  22. package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +3 -2
  23. package/lib/ecommerce/sections/order-details/order-details.component.d.ts +1 -0
  24. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +2 -0
  25. package/lib/ecommerce/sections/product-list/product-list.modal.d.ts +2 -0
  26. package/lib/ecommerce/sections/user-profile/user-profile.component.d.ts +6 -1
  27. package/lib/ecommerce/sections/verify-payment/verify-payment.component.d.ts +4 -1
  28. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  29. package/lib/services/cart.service.d.ts +0 -1
  30. package/package.json +1 -1
  31. package/simpo-component-library-1.4.116.tgz +0 -0
  32. package/simpo-component-library-1.4.113.tgz +0 -0
@@ -84,6 +84,7 @@ export class WhislistComponent extends BaseSection {
84
84
  };
85
85
  this.restService.getUserItems(this.userDetails.userId, "WISHLIST").subscribe((response) => {
86
86
  const tempUserWishlist = response?.data?.[0]?.orderedItems ?? [];
87
+ this.wishlistInfo["cartId"] = response.data?.[0]?.cartId;
87
88
  if (response.data?.[0]?.orderedItems?.length) {
88
89
  this.storageService.addAllProductToWishlist(tempUserWishlist).oncomplete = () => {
89
90
  console.log(tempUserWishlist);
@@ -183,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
183
184
  }], delete: [{
184
185
  type: Input
185
186
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpc2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNL0MsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFrQjFFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBV2hELFlBQ21CLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBTFMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENB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LElBQUksUUFBUTtRQUNWLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDO0lBQ3JDLENBQUM7OEdBOUpVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlNQ2pDOUIsK3RJQTRFc0IsdTFHRHZEbEIsT0FBTywwSUFDUCxvQkFBb0Isb2dCQUNwQixZQUFZLDhWQUdaLGtCQUFrQix5RkFDbEIsbUJBQW1CLG1GQUNuQixjQUFjOzsyRkFLTCxpQkFBaUI7a0JBaEI3QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLHdCQUF3Qjt3QkFDeEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7cUJBQ2Y7MEtBTVEsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0NvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vLi4vc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IEJVU0lORVNTX0NPTlNUQU5UUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9idXNpbmVzcy5jb25zdGFudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXdoaXNsaXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEljb24sXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIC8vRElSRUNUSVZFXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93aGlzbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3doaXNsaXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaGlzbGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWN0aW9uIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBcclxuICBASW5wdXQoKSByZXNwb25zZURhdGE/OiBhbnk7XHJcbiAgQElucHV0KCkgZGF0YT86IGFueTtcclxuICBASW5wdXQoKSBpbmRleD8gOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZWRpdD8gOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBkZWxldGU/IDogYm9vbGVhbjtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgc3R5bGVzOiBhbnk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1c2VyRGV0YWlsczogYW55O1xyXG4gIHByaXZhdGUgVVNFUl9XSVNITElTVF9JVEVNUzogYW55O1xyXG4gIHdpc2hsaXN0SW5mbzogYW55ID0ge1xyXG4gICAgb3JkZXJlZEl0ZW1zOiBudWxsLFxyXG4gICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJiSWRcIikgPz8gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJidXNpbmVzc0lkXCIpLFxyXG4gICAgYmlsbGRldGFpbHM6IHtcclxuICAgICAgXCJ0b3RhbE5ldFZhbHVlXCI6IDAsXHJcbiAgICAgIFwidG90YWxHcm9zc1ZhbHVlXCI6IDAsXHJcbiAgICAgIFwidG90YWxUYXhcIjogMCxcclxuICAgICAgXCJ0b3RhbE9mZmVyZWRWYWx1ZVwiOiAwLFxyXG4gICAgICBcImRlbGl2ZXJ5Q2hhcmdlc1wiOiAwXHJcbiAgICB9LFxyXG4gICAgcGxhdGZvcm06IFwiV0VCXCIsXHJcbiAgICBjYXJ0VHlwZTogXCJXSVNITElTVFwiLFxyXG4gICAgdXNlckRldGFpbHM6IHtcclxuICAgICAgXCJ1c2VySWRcIjogXCJcIixcclxuICAgICAgXCJ1c2VyTmFtZVwiOiBcIlwiLFxyXG4gICAgICBcIm1vYmlsZVwiOiBcIlwiLFxyXG4gICAgICBcImVtYWlsXCI6IFwiXCIsXHJcbiAgICAgIFwiZGVsaXZlcnlBZGRyZXNzXCI6IHtcclxuICAgICAgICBcImFkZHJlc3NUeXBlXCI6IFwiXCIsXHJcbiAgICAgICAgXCJyZWNlaXZlck5hbWVcIjogXCJcIixcclxuICAgICAgICBcInJlY2VpdmVyUGhvbmVcIjogXCJcIixcclxuICAgICAgICBcImNvdW50cnlOYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgXCJzdGF0ZU5hbWVcIjogXCJcIixcclxuICAgICAgICBcImNpdHlOYW1lXCI6IFwiXCIsXHJcbiAgICAgICAgXCJsb2NhbGl0eU5hbWVcIjogXCJcIixcclxuICAgICAgICBcImFkZHJlc3NMaW5lMVwiOiBcIlwiLFxyXG4gICAgICAgIFwiYWRkcmVzc0xpbmUyXCI6IFwiXCIsXHJcbiAgICAgICAgXCJsYW5kbWFya1wiOiBcIlwiLFxyXG4gICAgICAgIFwiemlwQ29kZVwiOiBcIlwiLFxyXG4gICAgICAgIFwiZ2VvbG9jYXRpb25cIjoge1xyXG4gICAgICAgICAgXCJsYXRpdHVkZVwiOiAwLFxyXG4gICAgICAgICAgXCJsb25naXR1ZGVcIjogMFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgXCJzdGF0ZUNvZGVcIjogXCJcIlxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgdG90YWxBbW91bnQ6IDBcclxuICB9XHJcblxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uc3Vic2NyaWJlKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gcmVzcG9uc2U7XHJcbiAgICAgIGlmICghdGhpcy5pc0xvYWRpbmcpIHtcclxuICAgICAgICB0aGlzLmdldFdpc2hsaXN0SW5kZXhEQkRhdGEoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyKCkgYXMgVXNlcjtcclxuICAgICAgdGhpcy53aXNobGlzdEluZm8udXNlckRldGFpbHMgPSB7XHJcbiAgICAgICAgXCJ1c2VySWRcIjogdGhpcy51c2VyRGV0YWlscz8udXNlcklkLFxyXG4gICAgICAgIFwidXNlck5hbWVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5uYW1lLFxyXG4gICAgICAgIFwibW9iaWxlXCI6IHRoaXMudXNlckRldGFpbHM/LmNvbnRhY3QubW9iaWxlLFxyXG4gICAgICAgIFwiZW1haWxcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5lbWFpbCxcclxuICAgICAgICBcImRlbGl2ZXJ5QWRkcmVzc1wiOiBudWxsLFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0VXNlckl0ZW1zKHRoaXMudXNlckRldGFpbHMudXNlcklkLCBcIldJU0hMSVNUXCIpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgICAgY29uc3QgdGVtcFVzZXJXaXNobGlzdCA9IHJlc3BvbnNlPy5kYXRhPy5bMF0/Lm9yZGVyZWRJdGVtcyA/PyBbXVxyXG4gICAgICAgIGlmIChyZXNwb25zZS5kYXRhPy5bMF0/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHRlbXBVc2VyV2lzaGxpc3QpLm9uY29tcGxldGUgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRlbXBVc2VyV2lzaGxpc3QpO1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKCh3aXNodGxpc3RSZXNwb25zZSk9PiB7XHJcbiAgICAgICAgICAgICAgd2lzaHRsaXN0UmVzcG9uc2Uub25zdWNjZXNzID0gKHdpc2hsaXN0RGF0YTogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lzaGxpc3RSZXNwb25zZSA9IHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodGhpcy53aXNobGlzdEluZm8pLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICAgICAgd2lzaGxpc3RSZXNwb25zZS5maW5hbGx5KCgpPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ3aXNodGxpc3QgRGF0YVwiLCB3aXNobGlzdERhdGEpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB3aXNobGlzdERhdGEudGFyZ2V0LnJlc3VsdCBhcyB1bmtub3duIGFzIE9yZGVyZWRJdGVtc1tdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLndpc2hsaXN0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVM7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VEYXRhKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdldFdpc2hsaXN0SW5kZXhEQkRhdGEoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBcclxuICAgICAgdGhpcy5nZXRXaXNobGlzdEluZGV4REJEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb3ZlVG9DYXJ0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3QpO1xyXG4gICAgdHJhbnNhY3Rpb24ub25zdWNjZXNzID0gKHdpc2hsaXN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QuaXRlbUlkKS5vbnN1Y2Nlc3MgPSAod2lzbGlzdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJTdWNjZXNzXCIpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0KS5vbnN1Y2Nlc3MgPSAoY2FydFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS5pdGVtSWQgIT0gcHJvZHVjdC5pdGVtSWQpO1xyXG4gICAgICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xyXG4gICAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSAod2lzaGxpc3RSZXNwb25zZSkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkVycm9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRXaXNobGlzdEluZGV4REJEYXRhKCkge1xyXG4gICAgXHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXJXaGlzaGxpc3QoKS50aGVuKChyZXNwb25zZSk9PiB7XHJcbiAgICAgIHJlc3BvbnNlLm9uc3VjY2VzcyA9ICh1c2VyV2lzaGxpc3RSZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMgPSB1c2VyV2lzaGxpc3RSZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcclxuICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBkZWxldGVGcm9tV2hpc2xpc3QocHJvZHVjdDogT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0Lml0ZW1JZCk7XHJcbiAgICB0cmFuc2FjdGlvbi5vbnN1Y2Nlc3MgPSAoKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLndpc2hsaXN0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVMuZmlsdGVyKChpdGVtOiBPcmRlcmVkSXRlbXMpPT4gaXRlbS5pdGVtSWQgIT0gcHJvZHVjdC5pdGVtSWQpOztcclxuICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcclxuICAgICAgY29uc29sZS5sb2coXCJTdWNjZXNzXCIpO1xyXG4gICAgfVxyXG4gICAgdHJhbnNhY3Rpb24ub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJFcnJvclwiKTtcclxuICAgIH1cclxuICB9IFxyXG4gIGFkZFRvRmF2KGl0ZW06IGFueSwgdHlwZTogJ0FERCcgfCAnU1VCU1RSQUNUJykge1xyXG4gICAgaWYgKHR5cGUgPT0gJ0FERCcpXHJcbiAgICAgIGl0ZW0ucXVhbnRpdHkgKz0gMTtcclxuICAgIGVsc2VcclxuICAgICAgaXRlbS5xdWFudGl0eSAtPSAxO1xyXG4gICAgdGhpcy5jYXJ0U2VydmljZS5hZGRJdGVtVG9DYXJ0KGl0ZW0pO1xyXG4gIH1cclxuICBcclxuICBnZXQgY3VycmVuY3koKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBCVVNJTkVTU19DT05TVEFOVFMuQ1VSUkVOQ1k7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJ0b3RhbC1jb250YWluZXJcIiBbaWRdPVwiZGF0YT8uaWRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FydC1wYXJlbnQgY29udGFpbmVyXCIgKm5nSWY9XCIocmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCB8fCAwKSA+IDBcIiAgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnQtcGFuZWxcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS1iYWdcIj5cclxuICAgICAgICAgICAgTXkgV2hpc2xpc3QmbmJzcDsgPHNwYW4+KHt7cmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aH19IEl0ZW1zKTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIHN0eWxlPVwiZ2FwOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zOyBsZXQgaWR4ID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBpdGVtLXBhcmVudFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMFwiIHN0eWxlPVwicGFkZGluZzogMHB4OyB3aWR0aDogZml0LWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwcm9kdWN0LWltZ1wiIFtzcmNdPVwiaXRlbS5pbWdVcmxcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgaC0xMDAgaXRlbS1kZXNjXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaC0yM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIGhlYWRpbmctbGFyZ2VcIj57e2l0ZW0uaXRlbU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpY2Utd2l0aC10YXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7e2l0ZW0ucHJpY2UgKyAoaXRlbS5pdGVtVGF4ID8/IDApfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tcXVhbnRpdHlcIiAqbmdJZj1cIml0ZW0ucXVhbnRpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvclwiIChjbGljayk9XCJhZGRUb0ZhdihpdGVtLCAnU1VCU1RSQUNUJylcIj4tPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7aXRlbS5xdWFudGl0eX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yXCIgKGNsaWNrKT1cImFkZFRvRmF2KGl0ZW0sICdBREQnKVwiPis8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXF1YW50aXR5XCIgKm5nSWY9XCIhaXRlbS5xdWFudGl0eVwiIChjbGljayk9XCJhZGRUb0ZhdihpdGVtLCAnQUREJylcIj5BZGQgdG8gQ2FydDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tcXVhbnRpdHlcIiAqbmdJZj1cIml0ZW0ucXVhbnRpdHlcIiAoY2xpY2spPVwibW92ZVRvQ2FydChpdGVtKVwiPk1vdmUgdG8gQ2FydDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGl0ZW1QcmljZVwiIHN0eWxlPVwibWFyZ2luLWxlZnQ6IGF1dG87IHdpZHRoOiAzMCU7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXByaWNlXCIgKm5nSWY9XCJpdGVtLnF1YW50aXR5XCI+PHNwYW4gW2lubmVySHRtbF09J2N1cnJlbmN5Jz48L3NwYW4+IHt7KGl0ZW0ucHJpY2UgKyAoaXRlbS5pdGVtVGF4ID8/IDApKSAqIGl0ZW0ucXVhbnRpdHl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkZWxldGUtaXRlbVwiIChjbGljayk9XCJkZWxldGVGcm9tV2hpc2xpc3QoaXRlbSlcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICA8c2VjdGlvbiBjbGFzcz1cImVtcHR5LWNhcnRcIiAqbmdJZj1cIihyZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtcz8ubGVuZ3RoIHx8IDApID09IDBcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtaW1hZ2VcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzEwNzIxM2MxNzE2NTQzMzM0MDQwZW1wdHktY2FydC5wbmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZy1tZWRpdW0gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICBZb3VyIFdoaXNsaXN0IGlzIGVtcHR5XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24gZC1mbGV4IG10LTRcIj5cclxuICAgICAgICAgICAgICBMb29rcyBsaWtlIHlvdSBoYXZlIG5vdCBhZGRlZCBhbnl0aGluZyB0byB5b3VyIFdoaXNsaXN0LiBHbyBhaGVhZCAmIGV4cGxvcmUgdG9wIGNhdGVnb3JpZXMuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGVkaXR9XCIgKm5nSWY9XCJzaG93RWRpdG9yc1wiPlxyXG4gICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dEZWxldGVcIiBbbmdDbGFzc109XCJ7J2hvdmVyX2VmZmVjdCc6IGRlbGV0ZX1cIj5cclxuICAgICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gIFxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZ3gtc2tlbGV0b24tbG9hZGVyICpuZ0lmPVwiaXNMb2FkaW5nXCIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImNpcmNsZVwiIFt0aGVtZV09XCJ7XHJcbiAgd2lkdGg6ICcxMDAlJyxcclxuICBoZWlnaHQ6ICc0MHZoJyxcclxuICAnYm9yZGVyLXJhZGl1cyc6ICcxMHB4JyxcclxuICAncG9zaXRpb24nOiAncmVsYXRpdmUnLFxyXG4gICdyaWdodCc6ICc1cHgnXHJcbn1cIj5cclxuPC9uZ3gtc2tlbGV0b24tbG9hZGVyPiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpc2xpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvd2hpc2xpc3Qvd2hpc2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNL0MsT0FBTyxXQUFXLE1BQU0sK0JBQStCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7QUFrQjFFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBV2hELFlBQ21CLFdBQXdCLEVBQ3hCLGFBQTRCLEVBQzVCLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBTFMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENB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LENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDckMsQ0FBQzs4R0EvSlUsaUJBQWlCO2tHQUFqQixpQkFBaUIseU1DakM5QiwrdElBNEVzQix1MUdEdkRsQixPQUFPLDBJQUNQLG9CQUFvQixvZ0JBQ3BCLFlBQVksOFZBR1osa0JBQWtCLHlGQUNsQixtQkFBbUIsbUZBQ25CLGNBQWM7OzJGQUtMLGlCQUFpQjtrQkFoQjdCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1Asb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsY0FBYztxQkFDZjswS0FNUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi8uLi9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgQlVTSU5FU1NfQ09OU1RBTlRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2J1c2luZXNzLmNvbnN0YW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8td2hpc2xpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SWNvbixcclxuICAgIFNpbXBvQ29tcG9uZW50TW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgLy9ESVJFQ1RJVkVcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3doaXNsaXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vd2hpc2xpc3QuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFdoaXNsaXN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIFxyXG4gIEBJbnB1dCgpIHJlc3BvbnNlRGF0YT86IGFueTtcclxuICBASW5wdXQoKSBkYXRhPzogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlbGV0ZT8gOiBib29sZWFuO1xyXG4gIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzdHlsZXM6IGFueTtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVzZXJEZXRhaWxzOiBhbnk7XHJcbiAgcHJpdmF0ZSBVU0VSX1dJU0hMSVNUX0lURU1TOiBhbnk7XHJcbiAgd2lzaGxpc3RJbmZvOiBhbnkgPSB7XHJcbiAgICBvcmRlcmVkSXRlbXM6IG51bGwsXHJcbiAgICBidXNpbmVzc0lkOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKSA/PyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzSWRcIiksXHJcbiAgICBiaWxsZGV0YWlsczoge1xyXG4gICAgICBcInRvdGFsTmV0VmFsdWVcIjogMCxcclxuICAgICAgXCJ0b3RhbEdyb3NzVmFsdWVcIjogMCxcclxuICAgICAgXCJ0b3RhbFRheFwiOiAwLFxyXG4gICAgICBcInRvdGFsT2ZmZXJlZFZhbHVlXCI6IDAsXHJcbiAgICAgIFwiZGVsaXZlcnlDaGFyZ2VzXCI6IDBcclxuICAgIH0sXHJcbiAgICBwbGF0Zm9ybTogXCJXRUJcIixcclxuICAgIGNhcnRUeXBlOiBcIldJU0hMSVNUXCIsXHJcbiAgICB1c2VyRGV0YWlsczoge1xyXG4gICAgICBcInVzZXJJZFwiOiBcIlwiLFxyXG4gICAgICBcInVzZXJOYW1lXCI6IFwiXCIsXHJcbiAgICAgIFwibW9iaWxlXCI6IFwiXCIsXHJcbiAgICAgIFwiZW1haWxcIjogXCJcIixcclxuICAgICAgXCJkZWxpdmVyeUFkZHJlc3NcIjoge1xyXG4gICAgICAgIFwiYWRkcmVzc1R5cGVcIjogXCJcIixcclxuICAgICAgICBcInJlY2VpdmVyTmFtZVwiOiBcIlwiLFxyXG4gICAgICAgIFwicmVjZWl2ZXJQaG9uZVwiOiBcIlwiLFxyXG4gICAgICAgIFwiY291bnRyeU5hbWVcIjogXCJcIixcclxuICAgICAgICBcInN0YXRlTmFtZVwiOiBcIlwiLFxyXG4gICAgICAgIFwiY2l0eU5hbWVcIjogXCJcIixcclxuICAgICAgICBcImxvY2FsaXR5TmFtZVwiOiBcIlwiLFxyXG4gICAgICAgIFwiYWRkcmVzc0xpbmUxXCI6IFwiXCIsXHJcbiAgICAgICAgXCJhZGRyZXNzTGluZTJcIjogXCJcIixcclxuICAgICAgICBcImxhbmRtYXJrXCI6IFwiXCIsXHJcbiAgICAgICAgXCJ6aXBDb2RlXCI6IFwiXCIsXHJcbiAgICAgICAgXCJnZW9sb2NhdGlvblwiOiB7XHJcbiAgICAgICAgICBcImxhdGl0dWRlXCI6IDAsXHJcbiAgICAgICAgICBcImxvbmdpdHVkZVwiOiAwXHJcbiAgICAgICAgfSxcclxuICAgICAgICBcInN0YXRlQ29kZVwiOiBcIlwiXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICB0b3RhbEFtb3VudDogMFxyXG4gIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLmRhdGE/LnN0eWxlcztcclxuICAgIHRoaXMuX2V2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSByZXNwb25zZTtcclxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGluZykge1xyXG4gICAgICAgIHRoaXMuZ2V0V2lzaGxpc3RJbmRleERCRGF0YSgpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0VXNlcigpKSB7XHJcbiAgICAgIHRoaXMudXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSBhcyBVc2VyO1xyXG4gICAgICB0aGlzLndpc2hsaXN0SW5mby51c2VyRGV0YWlscyA9IHtcclxuICAgICAgICBcInVzZXJJZFwiOiB0aGlzLnVzZXJEZXRhaWxzPy51c2VySWQsXHJcbiAgICAgICAgXCJ1c2VyTmFtZVwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0Lm5hbWUsXHJcbiAgICAgICAgXCJtb2JpbGVcIjogdGhpcy51c2VyRGV0YWlscz8uY29udGFjdC5tb2JpbGUsXHJcbiAgICAgICAgXCJlbWFpbFwiOiB0aGlzLnVzZXJEZXRhaWxzPy5jb250YWN0LmVtYWlsLFxyXG4gICAgICAgIFwiZGVsaXZlcnlBZGRyZXNzXCI6IG51bGwsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModGhpcy51c2VyRGV0YWlscy51c2VySWQsIFwiV0lTSExJU1RcIikuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICBjb25zdCB0ZW1wVXNlcldpc2hsaXN0ID0gcmVzcG9uc2U/LmRhdGE/LlswXT8ub3JkZXJlZEl0ZW1zID8/IFtdXHJcbiAgICAgICAgdGhpcy53aXNobGlzdEluZm9bXCJjYXJ0SWRcIl0gPSByZXNwb25zZS5kYXRhPy5bMF0/LmNhcnRJZDtcclxuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YT8uWzBdPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRBbGxQcm9kdWN0VG9XaXNobGlzdCh0ZW1wVXNlcldpc2hsaXN0KS5vbmNvbXBsZXRlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyh0ZW1wVXNlcldpc2hsaXN0KTtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyV2hpc2hsaXN0KCkudGhlbigod2lzaHRsaXN0UmVzcG9uc2UpPT4ge1xyXG4gICAgICAgICAgICAgIHdpc2h0bGlzdFJlc3BvbnNlLm9uc3VjY2VzcyA9ICh3aXNobGlzdERhdGE6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHdpc2hsaXN0UmVzcG9uc2UgPSB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHRoaXMud2lzaGxpc3RJbmZvKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgICAgIHdpc2hsaXN0UmVzcG9uc2UuZmluYWxseSgoKT0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwid2lzaHRsaXN0IERhdGFcIiwgd2lzaGxpc3REYXRhKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gd2lzaGxpc3REYXRhLnRhcmdldC5yZXN1bHQgYXMgdW5rbm93biBhcyBPcmRlcmVkSXRlbXNbXTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNlRGF0YSA9IHRoaXMud2lzaGxpc3RJbmZvO1xyXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnJlc3BvbnNlRGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5nZXRXaXNobGlzdEluZGV4REJEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgXHJcbiAgICAgIHRoaXMuZ2V0V2lzaGxpc3RJbmRleERCRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbW92ZVRvQ2FydChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChwcm9kdWN0KTtcclxuICAgIHRyYW5zYWN0aW9uLm9uc3VjY2VzcyA9ICh3aXNobGlzdFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0Lml0ZW1JZCkub25zdWNjZXNzID0gKHdpc2xpc3RSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiU3VjY2Vzc1wiKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb0NhcnQocHJvZHVjdCkub25zdWNjZXNzID0gKGNhcnRSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TLmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKT0+IGl0ZW0uaXRlbUlkICE9IHByb2R1Y3QuaXRlbUlkKTtcclxuICAgICAgICAgIHRoaXMud2lzaGxpc3RJbmZvLm9yZGVyZWRJdGVtcyA9IHRoaXMuVVNFUl9XSVNITElTVF9JVEVNUztcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0cmFuc2FjdGlvbi5vbmVycm9yID0gKHdpc2hsaXN0UmVzcG9uc2UpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coXCJFcnJvclwiKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0V2lzaGxpc3RJbmRleERCRGF0YSgpIHtcclxuICAgIFxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5nZXRVc2VyV2hpc2hsaXN0KCkudGhlbigocmVzcG9uc2UpPT4ge1xyXG4gICAgICByZXNwb25zZS5vbnN1Y2Nlc3MgPSAodXNlcldpc2hsaXN0UmVzcG9uc2U6IGFueSk9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TID0gdXNlcldpc2hsaXN0UmVzcG9uc2UudGFyZ2V0LnJlc3VsdDtcclxuICAgICAgICB0aGlzLndpc2hsaXN0SW5mby5vcmRlcmVkSXRlbXMgPSB0aGlzLlVTRVJfV0lTSExJU1RfSVRFTVM7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZURhdGEgPSB0aGlzLndpc2hsaXN0SW5mbztcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGVsZXRlRnJvbVdoaXNsaXN0KHByb2R1Y3Q6IE9yZGVyZWRJdGVtcykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpO1xyXG4gICAgdHJhbnNhY3Rpb24ub25zdWNjZXNzID0gKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy53aXNobGlzdEluZm8ub3JkZXJlZEl0ZW1zID0gdGhpcy5VU0VSX1dJU0hMSVNUX0lURU1TLmZpbHRlcigoaXRlbTogT3JkZXJlZEl0ZW1zKT0+IGl0ZW0uaXRlbUlkICE9IHByb2R1Y3QuaXRlbUlkKTs7XHJcbiAgICAgIHRoaXMucmVzcG9uc2VEYXRhID0gdGhpcy53aXNobGlzdEluZm87XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiU3VjY2Vzc1wiKTtcclxuICAgIH1cclxuICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3JcIik7XHJcbiAgICB9XHJcbiAgfSBcclxuICBhZGRUb0ZhdihpdGVtOiBhbnksIHR5cGU6ICdBREQnIHwgJ1NVQlNUUkFDVCcpIHtcclxuICAgIGlmICh0eXBlID09ICdBREQnKVxyXG4gICAgICBpdGVtLnF1YW50aXR5ICs9IDE7XHJcbiAgICBlbHNlXHJcbiAgICAgIGl0ZW0ucXVhbnRpdHkgLT0gMTtcclxuICAgIHRoaXMuY2FydFNlcnZpY2UuYWRkSXRlbVRvQ2FydChpdGVtKTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IGN1cnJlbmN5KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQlVTSU5FU1NfQ09OU1RBTlRTLkNVUlJFTkNZO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwidG90YWwtY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcnQtcGFyZW50IGNvbnRhaW5lclwiICpuZ0lmPVwiKHJlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGggfHwgMCkgPiAwXCIgIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXBhbmVsXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktYmFnXCI+XHJcbiAgICAgICAgICAgIE15IFdoaXNsaXN0Jm5ic3A7IDxzcGFuPih7e3Jlc3BvbnNlRGF0YT8ub3JkZXJlZEl0ZW1zPy5sZW5ndGh9fSBJdGVtcyk8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW5cIiBzdHlsZT1cImdhcDogMTBweDtcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiByZXNwb25zZURhdGE/Lm9yZGVyZWRJdGVtczsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1pdGVtc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgaXRlbS1wYXJlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDBcIiBzdHlsZT1cInBhZGRpbmc6IDBweDsgd2lkdGg6IGZpdC1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicHJvZHVjdC1pbWdcIiBbc3JjXT1cIml0ZW0uaW1nVXJsXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGgtMTAwIGl0ZW0tZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGgtMjNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbmFtZSBoZWFkaW5nLWxhcmdlXCI+e3tpdGVtLml0ZW1OYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaWNlLXdpdGgtdGF4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIdG1sXT0nY3VycmVuY3knPjwvc3Bhbj4ge3tpdGVtLnByaWNlICsgKGl0ZW0uaXRlbVRheCA/PyAwKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgc3R5bGU9XCJnYXA6IDVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXF1YW50aXR5XCIgKm5nSWY9XCJpdGVtLnF1YW50aXR5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3JcIiAoY2xpY2spPVwiYWRkVG9GYXYoaXRlbSwgJ1NVQlNUUkFDVCcpXCI+LTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0ucXVhbnRpdHl9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvclwiIChjbGljayk9XCJhZGRUb0ZhdihpdGVtLCAnQUREJylcIj4rPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1xdWFudGl0eVwiICpuZ0lmPVwiIWl0ZW0ucXVhbnRpdHlcIiAoY2xpY2spPVwiYWRkVG9GYXYoaXRlbSwgJ0FERCcpXCI+QWRkIHRvIENhcnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLXF1YW50aXR5XCIgKm5nSWY9XCJpdGVtLnF1YW50aXR5XCIgKGNsaWNrKT1cIm1vdmVUb0NhcnQoaXRlbSlcIj5Nb3ZlIHRvIENhcnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBpdGVtUHJpY2VcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvOyB3aWR0aDogMzAlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1wcmljZVwiICpuZ0lmPVwiaXRlbS5xdWFudGl0eVwiPjxzcGFuIFtpbm5lckh0bWxdPSdjdXJyZW5jeSc+PC9zcGFuPiB7eyhpdGVtLnByaWNlICsgKGl0ZW0uaXRlbVRheCA/PyAwKSkgKiBpdGVtLnF1YW50aXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZGVsZXRlLWl0ZW1cIiAoY2xpY2spPVwiZGVsZXRlRnJvbVdoaXNsaXN0KGl0ZW0pXCI+ZGVsZXRlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJlbXB0eS1jYXJ0XCIgKm5nSWY9XCIocmVzcG9uc2VEYXRhPy5vcmRlcmVkSXRlbXM/Lmxlbmd0aCB8fCAwKSA9PSAwXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWltYWdlXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy8xMDcyMTNjMTcxNjU0MzMzNDA0MGVtcHR5LWNhcnQucG5nXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LXRleHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctbWVkaXVtIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgWW91ciBXaGlzbGlzdCBpcyBlbXB0eVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uIGQtZmxleCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgTG9va3MgbGlrZSB5b3UgaGF2ZSBub3QgYWRkZWQgYW55dGhpbmcgdG8geW91ciBXaGlzbGlzdC4gR28gYWhlYWQgJiBleHBsb3JlIHRvcCBjYXRlZ29yaWVzLlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICBcclxuICA8L3NlY3Rpb24+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmd4LXNrZWxldG9uLWxvYWRlciAqbmdJZj1cImlzTG9hZGluZ1wiIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjaXJjbGVcIiBbdGhlbWVdPVwie1xyXG4gIHdpZHRoOiAnMTAwJScsXHJcbiAgaGVpZ2h0OiAnNDB2aCcsXHJcbiAgJ2JvcmRlci1yYWRpdXMnOiAnMTBweCcsXHJcbiAgJ3Bvc2l0aW9uJzogJ3JlbGF0aXZlJyxcclxuICAncmlnaHQnOiAnNXB4J1xyXG59XCI+XHJcbjwvbmd4LXNrZWxldG9uLWxvYWRlcj4iXX0=
@@ -70,7 +70,7 @@ export class NavbarSectionComponent {
70
70
  this.matDialog.open(AuthenticateUserComponent, {
71
71
  height: '50vh',
72
72
  width: '35vw',
73
- data: this.content
73
+ data: this.data
74
74
  });
75
75
  }
76
76
  }
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
223
223
  type: HostListener,
224
224
  args: ['window:resize', ['$event']]
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9uYXZiYXItc2VjdGlvbi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL25hdmJhci1zZWN0aW9uL25hdmJhci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBVSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFHdEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxD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QyxRQUFRLENBQUM7Z0JBbUJ6QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhlYWRlckNvbnRlbnRNb2RlbCwgSGVhZGVyU2VjdGlvbk1vZGVsLCBIZWFkZXJTdHlsZU1vZGVsIH0gZnJvbSAnLi9uYXZiYXItc2VjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc29jaWEtaWNvbnMvc29jaWEtaWNvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9uYXZiYXItYnV0dG9uLWVsZW1lbnQvbmF2YmFyLWJ1dHRvbi1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWZpci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9mb290ZXItbGF5b3V0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9TdGlja3lEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3RpY2t5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuLy8gaW1wb3J0IFVzZXJDYXJ0IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9qc29uL3VzZXItY2FydC5qc29uJztcclxuLy8gaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2Vjb21tZXJjZS9zZWN0aW9ucy9hdXRoZW50aWNhdGUtdXNlci9hdXRoZW50aWNhdGUtdXNlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLW5hdmJhci1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNpbXBvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgXHJcbiAgICBTb2NpYUljb25zQ29tcG9uZW50LFxyXG4gICAgTWF0SWNvbixcclxuICAgIE5hdmJhckJ1dHRvbkVsZW1lbnRDb21wb25lbnQsXHJcbiAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250YWluZXJGaXREaXJlY3RpdmUsXHJcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgZGF0YSA/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudDogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwiY2hpbGRDb250YWluZXJcIikgY2hpbGRDb250YWluZXI6IGFueTtcclxuICBwdWJsaWMgc2Nyb2xsVmFsdWU6IG51bWJlciA9IDA7XHJcbiAgY29udGVudCA/IDogSGVhZGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlID86IEhlYWRlclN0eWxlTW9kZWxcclxuICBhY3Rpb24/OiBBY3Rpb25Nb2RlbFxyXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgXHJcbiAgLy8gbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2VcclxuICApe1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICB9XHJcbiAgc2VhcmNoUHJvZHVjdHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczoge3NlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0fX0pO1xyXG4gIH1cclxuICBnb1RvRmF2KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9BY2NvdW50KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDQ3NSlcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdXRoJ10pO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQsIHtcclxuICAgICAgICAgIGhlaWdodDogJzUwdmgnLFxyXG4gICAgICAgICAgd2lkdGg6ICczNXZ3JyxcclxuICAgICAgICAgIGRhdGE6IHRoaXMuY29udGVudCBcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnb1RvQ2FydCgpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddKTtcclxuICB9XHJcbiAgYXBwbHlGaWx0ZXIodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlWzBdPy5yZXBsYWNlKFwiIFwiLCBcIl9cIik7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH19KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zY3JvbGxWYWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucGFnZVlPZmZzZXQgLyAxMDA7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3Rpb24gPSB0aGlzLmRhdGE/LmFjdGlvbjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxUGFyYW0pPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICB9KVxyXG4gICAgLy8gaWYgKHRoaXMuc3R5bGU/LmJhY2tncm91bmQgJiYgdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5tZXJnZSkge1xyXG4gICAgLy8gICB0aGlzLnN0eWxlLmJhY2tncm91bmQuY29sb3IgPSB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuY29sb3I7XHJcbiAgICAvLyAgIHRoaXMuc3R5bGUuYmFja2dyb3VuZC5hY2NlbnRDb2xvciA9IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZC5hY2NlbnRDb2xvcjtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGdldFBhcmVudEhlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNoaWxkQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMDtcclxuICB9XHJcbiAgZ2V0IGdldERyb3Bkb3duTGlua3MoKSB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50Py5lY29tbGlua3MpXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcyk7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG4gIGdldCBpc0Vjb21tZXJjZVdlYnNpdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy50eXBlID09IFwiRV9DT01NRVJDRVwiO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIGxldCBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJuYXZiYXJOYXZBbHRNYXJrdXBcIik7XHJcbiAgICBpZighYSkgcmV0dXJuO1xyXG4gICAgLy8gYS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCJcclxuICAgIGEuY2xhc3NMaXN0LnJlbW92ZShcInNob3dcIik7XHJcbiAgICBhLmNsYXNzTGlzdC5hZGQoXCJjb2xsYXBzZVwiKVxyXG4gIH1cclxuXHJcbiAgc2hvd0VkaXRvcnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xyXG4gIH1cclxuICBnb1RvSG9tZSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnJ10pO1xyXG4gIH1cclxuICBnZXQgaXNIZWFkZXJTdGlja3koKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5zdHlsZXM/LnN0aWNreTtcclxuICB9XHJcbiAgZ2V0IGJhY2tncm91bmRJbmZvKCkge1xyXG4gICAgbGV0IGJhY2tncm91bmQ6IEJhY2tncm91bmRNb2RlbCB8IHt9ID0ge307XHJcbiAgICBpZiAodGhpcy5zdHlsZSkge1xyXG4gICAgICBiYWNrZ3JvdW5kID0ge1xyXG4gICAgICAgIC4uLnRoaXMuc3R5bGUuYmFja2dyb3VuZCxcclxuICAgICAgICBzaG93SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIGNvbG9yOiBcInRyYW5zcGFyZW50XCJcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB7Li4udGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5iYWNrZ3JvdW5kLCBjb2xvcjogdGhpcy5zdHlsZT8uYmFja2dyb3VuZC5jb2xvcn0gOiB7Li4uYmFja2dyb3VuZH0pIDogey4uLnRoaXMuZGF0YT8uc3R5bGVzLmJhY2tncm91bmR9O1xyXG4gIH1cclxuICBnZXQgc2ltcG9Db2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kLmNvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3IpIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uY29sb3I7XHJcbiAgfVxyXG4gIGdldCBhY2NlbnRDb2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKSA6IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yO1xyXG4gIH1cclxuICBnZXQgaXNUcmFuc3BhcmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgJiYgdGhpcy5zY3JvbGxWYWx1ZSA9PSAwO1xyXG4gIH1cclxuICByZWRpcmVjdFRvKGNvbnRlbnQ6IGFueSl7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7ZGF0YTogY29udGVudH0pO1xyXG4gIH1cclxuICBnZXQgaXNDb21wb25lbnRNZXJnZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpe1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldENhcnRJdGVtc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbENhcnRJdGVtcztcclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gIH1cclxuICBnZXRWYWx1ZXMob2JqZWN0OiBhbnkpOiB1bmtub3duW10ge1xyXG4gICAgY29uc3Qga2V5czogdW5rbm93bltdID0gW107XHJcbiAgICBvYmplY3QuZm9yRWFjaCgoa2V5OiBhbnkpPT4ga2V5cy5wdXNoKE9iamVjdC52YWx1ZXMoa2V5KSkpO1xyXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGtleXMpXTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbaWRdPVwiZGF0YT8uaWRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFBhcmVudEhlaWdodFwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCI+XHJcbiAgPGRpdiAjbWFpbkNvbnRhaW5lciBjbGFzcz1cInctMTAwXCIgc3R5bGU9XCJ6LWluZGV4OiAxMDA7XCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzY3JvbGxWYWx1ZV09XCJpc0NvbXBvbmVudE1lcmdlZCA/IHNjcm9sbFZhbHVlIDogMFwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBbc2ltcG9TdGlja3ldPVwiaXNIZWFkZXJTdGlja3lcIiBbbmdDbGFzc109XCJ7J2Vjb21TdHlsZSc6IGlzRWNvbW1lcmNlV2Vic2l0ZX1cIj5cclxuICAgIDxuYXYgI2NoaWxkQ29udGFpbmVyIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgZC1ibG9jayBtYi0wXCIgW3NpbXBvRm9vdGVyTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcG9zaXRpb24tcmVsYXRpdmUgXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTUwIGxlZnQtbG9nby10ZXh0IGQtZmxleFwiPlxyXG4gICAgICAgIDwhLS0gPGEgY2xhc3M9XCJuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2E+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgZ2FwLWxnLTMgYWxpZ24taXRlbXMtbGctY2VudGVyXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplXCJcclxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cclxuICAgICAgICAgICAgPGIgW25nU3R5bGVdPVwieydmb250LWZhbWlseSc6IGNvbnRlbnQ/LmxvZ28/LnRleHQ/LmZvbnRGYW1pbHl9XCI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgZ2FwLWxnLTMgYWxpZ24taXRlbXMtbGctY2VudGVyXCJcclxuICAgICAgICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIlxyXG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBmcy02IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleFwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tbGVmdDogMjVweDtcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgc2NyZWVuV2lkdGggPiA3NjhcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZ2V0RHJvcGRvd25MaW5rczsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlIG14LTJcIiBocmVmPVwiI1wiIFtpZF09XCInbmF2YmFyRHJvcGRvd25NZW51TGlua18nICsgaWR4XCIgcm9sZT1cImJ1dHRvblwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj57eyBsaW5rIHwgdXBwZXJjYXNlIH19PC9hPlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IGZzLTYgcG9zaXRpb24tYWJzb2x1dGVcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ25hdmJhckRyb3Bkb3duTWVudUxpbmtfJytpZHhcIj5cclxuICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGdldFZhbHVlcyhjb250ZW50Py5lY29tbGlua3M/LltsaW5rXSlcIj48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIodmFsdWUsIGxpbmspXCI+e3t2YWx1ZX19PC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy01MCByaWdodC1idG4gZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2NyZWVuV2lkdGggPD0gNzY4ICYmIGlzRWNvbW1lcmNlV2Vic2l0ZVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBteC0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXgtMlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5hZGRfc2hvcHBpbmdfY2FydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJteC0yXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnBlcnNvbl9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXIgbWVudS1pY29uXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIFtpZF09XCJkYXRhPy5pZFwiIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS1icy10YXJnZXQ9XCIjbmF2YmFyTmF2QWx0TWFya3VwXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8IDc2OVwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibmF2YmFyTmF2QWx0TWFya3VwXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNzY4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJpdGVtXCIgW3NlbGVjdGVkU3R5bGVdPVwic3R5bGU/Lm5hdmlnYXRpb25TdHlsZVwiIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICBbYmdDb2xvcl09XCJzaW1wb0NvbG9yXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTttYXJnaW4tcmlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tc29jaWEtaWNvbnMgW3NvY2lhbEljb25EYXRhXT1cIml0ZW1cIiBbY29sb3JdPVwic2ltcG9Db2xvclwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXNvY2lhLWljb25zPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5IG10LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJyZWRpcmVjdFRvKGJ1dHRvbj8uY29udGVudClcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbc2Nyb2xsVmFsdWVdPVwic2Nyb2xsVmFsdWVcIiBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbY29sb3JdPVwiYWNjZW50Q29sb3JcIj57e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyTmF2QWx0TWFya3VwXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8PSA3NjhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1oZWlnaHQgcC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYWItYmFyLW1vYmlsZSBmbGV4LWNvbHVtbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGIgW25nU3R5bGVdPVwieydmb250LWZhbWlseSc6IGNvbnRlbnQ/LmxvZ28/LnRleHQ/LmZvbnRGYW1pbHl9XCI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYm94IGN1cnNvci1wb2ludGVyIGQtZmxleFwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8ubmF2YmFyQnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJpdGVtXCIgW3NlbGVjdGVkU3R5bGVdPVwic3R5bGU/Lm5hdmlnYXRpb25TdHlsZVwiIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIj48L3NpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgYWxpZ24taXRlbXMtbGctY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGdhcC1sZy0wIGdhcC0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWVuZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LnNvY2lhbExpbmtzPy5jaGFubmVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO21hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tc29jaWEtaWNvbnMgW3NvY2lhbEljb25EYXRhXT1cIml0ZW1cIiBbY29sb3JdPVwic2ltcG9Db2xvclwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXNvY2lhLWljb25zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSBwb3NpdGlvbi1hYnNvbHV0ZSBwci0wXCIgc3R5bGU9XCJyaWdodDogMHB4O1wiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA3NjhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHItMCBkLWZsZXhcIiBzdHlsZT1cIm1heC13aWR0aDogNTB2dztcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0Li5cIiBhcmlhLWxhYmVsPVwiU2VhcmNoIFByb2R1Y3RcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwid2lkdGg6IDYwcHg7IG1hcmdpbi1sZWZ0OiAtMTBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvRmF2KClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmZhdm9yaXRlX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5GYXZvdXJpdGU8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBteC0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJ3aWR0aDogNjBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5hZGRfc2hvcHBpbmdfY2FydDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5CYWc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwid2lkdGg6IDYwcHg7IG1hcmdpbi1sZWZ0OiAtMTBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5wZXJzb25fb3V0bGluZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5BY2NvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmF2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZWN0aW9ucy9uYXZiYXItc2VjdGlvbi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL3NlY3Rpb25zL25hdmJhci1zZWN0aW9uL25hdmJhci1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBVSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFHdEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDekYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRDQUE0QyxD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QyxRQUFRLENBQUM7Z0JBbUJ6QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEhlYWRlckNvbnRlbnRNb2RlbCwgSGVhZGVyU2VjdGlvbk1vZGVsLCBIZWFkZXJTdHlsZU1vZGVsIH0gZnJvbSAnLi9uYXZiYXItc2VjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNpbXBvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc2ltcG8tYnV0dG9uL3NpbXBvLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTb2NpYUljb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWxlbWVudHMvc29jaWEtaWNvbnMvc29jaWEtaWNvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBOYXZiYXJCdXR0b25FbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi9lbGVtZW50cy9uYXZiYXItYnV0dG9uLWVsZW1lbnQvbmF2YmFyLWJ1dHRvbi1lbGVtZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvbnRlbnRGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFubmVyQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9iYW5uZXItY29udGVudC1maXQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm9yZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2JvcmRlci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sdW1uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb250YWluZXJGaXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGFpbmVyLWZpci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29udGVudC1hbGlnbm1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29ybmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2Nvcm5lci1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTaW1wb0Zvb3RlckxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9mb290ZXItbGF5b3V0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSW1hZ2VEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvaW1hZ2UtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvb3ZlcmxheS1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkxheW91dERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZS9wb3NpdGlvbi1sYXlvdXQtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRleHRCYWNrZ3JvdW5kRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL3RleHQtYmFja2dyb3VuZC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSG92ZXJFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gJy4vLi4vLi4vY29tcG9uZW50cy9ob3Zlci1lbGVtZW50cy9ob3Zlci1lbGVtZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25Nb2RlbCwgQmFja2dyb3VuZE1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9TdGlja3lEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvc3RpY2t5LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuLy8gaW1wb3J0IFVzZXJDYXJ0IGZyb20gJy4uLy4uL2Vjb21tZXJjZS9qc29uL3VzZXItY2FydC5qc29uJztcclxuLy8gaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBdXRoZW50aWNhdGVVc2VyQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2Vjb21tZXJjZS9zZWN0aW9ucy9hdXRoZW50aWNhdGUtdXNlci9hdXRoZW50aWNhdGUtdXNlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLW5hdmJhci1zZWN0aW9uJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFNpbXBvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgXHJcbiAgICBTb2NpYUljb25zQ29tcG9uZW50LFxyXG4gICAgTWF0SWNvbixcclxuICAgIE5hdmJhckJ1dHRvbkVsZW1lbnRDb21wb25lbnQsXHJcbiAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICBIb3ZlckVsZW1lbnRzQ29tcG9uZW50LFxyXG4gICAgQW5pbWF0aW9uRGlyZWN0aXZlLFxyXG4gICAgQmFja2dyb3VuZERpcmVjdGl2ZSxcclxuICAgIEJhbm5lckNvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBCb3JkZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb2x1bW5EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250YWluZXJGaXREaXJlY3RpdmUsXHJcbiAgICBzaW1wb0NvbmV0ZW5BbGlnbm1lbnREaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgU2ltcG9Gb290ZXJMYXlvdXREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEltYWdlRGlyZWN0aXZlRGlyZWN0aXZlLFxyXG4gICAgT3ZlcmxheURpcmVjdGl2ZSxcclxuICAgIFNpbXBvU3RpY2t5RGlyZWN0aXZlLFxyXG4gICAgUG9zaXRpb25MYXlvdXREaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBUZXh0QmFja2dyb3VuZERpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9uYXZiYXItc2VjdGlvbi5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTmF2YmFyU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgQElucHV0KCkgZGF0YSA/OiBIZWFkZXJTZWN0aW9uTW9kZWw7XHJcbiAgQElucHV0KCkgbmV4dENvbXBvbmVudDogYW55O1xyXG4gIEBJbnB1dCgpIGluZGV4PyA6IG51bWJlcjtcclxuICBASW5wdXQoKSBlZGl0PyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKFwiY2hpbGRDb250YWluZXJcIikgY2hpbGRDb250YWluZXI6IGFueTtcclxuICBwdWJsaWMgc2Nyb2xsVmFsdWU6IG51bWJlciA9IDA7XHJcbiAgY29udGVudCA/IDogSGVhZGVyQ29udGVudE1vZGVsO1xyXG4gIHN0eWxlID86IEhlYWRlclN0eWxlTW9kZWxcclxuICBhY3Rpb24/OiBBY3Rpb25Nb2RlbFxyXG4gIGNvbG9yID0gJyMwMDAwMDAnO1xyXG4gIHNlYXJjaFRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgXHJcbiAgLy8gbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XHJcbiAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZXZlbnRTZXJ2aWNlIDogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2VcclxuICApe1xyXG4gICAgdGhpcy5nZXRTY3JlZW5TaXplKCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICB9XHJcbiAgc2VhcmNoUHJvZHVjdHMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczoge3NlYXJjaFR4dDogdGhpcy5zZWFyY2hUZXh0fX0pO1xyXG4gIH1cclxuICBnb1RvRmF2KCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2lzaGxpc3QnXSk7XHJcbiAgfVxyXG4gIGdvVG9BY2NvdW50KCkge1xyXG5cclxuICAgIGlmICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFVzZXIoKSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9wcm9maWxlJ10pO1xyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNjcmVlbldpZHRoIDw9IDQ3NSlcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdXRoJ10pO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEF1dGhlbnRpY2F0ZVVzZXJDb21wb25lbnQsIHtcclxuICAgICAgICAgIGhlaWdodDogJzUwdmgnLFxyXG4gICAgICAgICAgd2lkdGg6ICczNXZ3JyxcclxuICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YSBcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBnb1RvQ2FydCgpe1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY2FydCddKTtcclxuICB9XHJcbiAgYXBwbHlGaWx0ZXIodmFsdWU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB2YWx1ZSA9IHZhbHVlWzBdPy5yZXBsYWNlKFwiIFwiLCBcIl9cIik7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9saXN0J10sIHtxdWVyeVBhcmFtczogeyBbdHlwZV06IHZhbHVlIH19KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFsnJGV2ZW50J10pXHJcbiAgb25TY3JvbGwoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zY3JvbGxWYWx1ZSA9IGV2ZW50LmN1cnJlbnRUYXJnZXQucGFnZVlPZmZzZXQgLyAxMDA7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250ZW50ID0gdGhpcy5kYXRhPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdHlsZSA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3Rpb24gPSB0aGlzLmRhdGE/LmFjdGlvbjtcclxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChxUGFyYW0pPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQgPSBxUGFyYW1bXCJzZWFyY2hUeHRcIl07XHJcbiAgICB9KVxyXG4gICAgLy8gaWYgKHRoaXMuc3R5bGU/LmJhY2tncm91bmQgJiYgdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5tZXJnZSkge1xyXG4gICAgLy8gICB0aGlzLnN0eWxlLmJhY2tncm91bmQuY29sb3IgPSB0aGlzLm5leHRDb21wb25lbnQuc3R5bGVzLmJhY2tncm91bmQuY29sb3I7XHJcbiAgICAvLyAgIHRoaXMuc3R5bGUuYmFja2dyb3VuZC5hY2NlbnRDb2xvciA9IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXMuYmFja2dyb3VuZC5hY2NlbnRDb2xvcjtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHNjcmVlbldpZHRoOiBudW1iZXIgPSA0NzU7XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgZ2V0U2NyZWVuU2l6ZShldmVudD86IG51bWJlcikge1xyXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGdldFBhcmVudEhlaWdodCgpIHtcclxuICAgIHJldHVybiB0aGlzLmNoaWxkQ29udGFpbmVyPy5uYXRpdmVFbGVtZW50Py5vZmZzZXRIZWlnaHQgPz8gMDtcclxuICB9XHJcbiAgZ2V0IGdldERyb3Bkb3duTGlua3MoKSB7XHJcbiAgICBpZiAodGhpcy5jb250ZW50Py5lY29tbGlua3MpXHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNvbnRlbnQ/LmVjb21saW5rcyk7XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG4gIGdldCBpc0Vjb21tZXJjZVdlYnNpdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy50eXBlID09IFwiRV9DT01NRVJDRVwiO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKXtcclxuICAgIGxldCBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJuYXZiYXJOYXZBbHRNYXJrdXBcIik7XHJcbiAgICBpZighYSkgcmV0dXJuO1xyXG4gICAgLy8gYS5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCJcclxuICAgIGEuY2xhc3NMaXN0LnJlbW92ZShcInNob3dcIik7XHJcbiAgICBhLmNsYXNzTGlzdC5hZGQoXCJjb2xsYXBzZVwiKVxyXG4gIH1cclxuXHJcbiAgc2hvd0VkaXRvcnMgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dFZGl0VGFicyhpc1Nob3c6Ym9vbGVhbil7XHJcbiAgICB0aGlzLnNob3dFZGl0b3JzID0gaXNTaG93O1xyXG4gIH1cclxuICBnb1RvSG9tZSgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnJ10pO1xyXG4gIH1cclxuICBnZXQgaXNIZWFkZXJTdGlja3koKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhPy5zdHlsZXM/LnN0aWNreTtcclxuICB9XHJcbiAgZ2V0IGJhY2tncm91bmRJbmZvKCkge1xyXG4gICAgbGV0IGJhY2tncm91bmQ6IEJhY2tncm91bmRNb2RlbCB8IHt9ID0ge307XHJcbiAgICBpZiAodGhpcy5zdHlsZSkge1xyXG4gICAgICBiYWNrZ3JvdW5kID0ge1xyXG4gICAgICAgIC4uLnRoaXMuc3R5bGUuYmFja2dyb3VuZCxcclxuICAgICAgICBzaG93SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIGNvbG9yOiBcInRyYW5zcGFyZW50XCJcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB7Li4udGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcy5iYWNrZ3JvdW5kLCBjb2xvcjogdGhpcy5zdHlsZT8uYmFja2dyb3VuZC5jb2xvcn0gOiB7Li4uYmFja2dyb3VuZH0pIDogey4uLnRoaXMuZGF0YT8uc3R5bGVzLmJhY2tncm91bmR9O1xyXG4gIH1cclxuICBnZXQgc2ltcG9Db2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kLmNvbG9yIDogdGhpcy5uZXh0Q29tcG9uZW50LnN0eWxlcz8uYmFja2dyb3VuZD8uY29sb3IpIDogdGhpcy5zdHlsZT8uYmFja2dyb3VuZD8uY29sb3I7XHJcbiAgfVxyXG4gIGdldCBhY2NlbnRDb2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgPyAodGhpcy5zY3JvbGxWYWx1ZSA+IDAgPyB0aGlzLnN0eWxlPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciA6IHRoaXMubmV4dENvbXBvbmVudC5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKSA6IHRoaXMuc3R5bGU/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yO1xyXG4gIH1cclxuICBnZXQgaXNUcmFuc3BhcmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLm5leHRDb21wb25lbnQ/LnN0eWxlcz8ubWVyZ2UgJiYgdGhpcy5zY3JvbGxWYWx1ZSA9PSAwO1xyXG4gIH1cclxuICByZWRpcmVjdFRvKGNvbnRlbnQ6IGFueSl7XHJcbiAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7ZGF0YTogY29udGVudH0pO1xyXG4gIH1cclxuICBnZXQgaXNDb21wb25lbnRNZXJnZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5uZXh0Q29tcG9uZW50Py5zdHlsZXM/Lm1lcmdlO1xyXG4gIH1cclxuICBlZGl0U2VjdGlvbigpe1xyXG4gICAgdGhpcy5fZXZlbnRTZXJ2aWNlLnRvZ2dsZUVkaXRvckV2ZW50LmVtaXQoZmFsc2UpO1xyXG4gICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgdGhpcy5fZXZlbnRTZXJ2aWNlLmVkaXRTZWN0aW9uLmVtaXQoe2RhdGE6dGhpcy5kYXRhfSk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldENhcnRJdGVtc0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRUb3RhbENhcnRJdGVtcztcclxuICB9XHJcbiAgZ2V0S2V5cyhvYmplY3Q6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG4gIH1cclxuICBnZXRWYWx1ZXMob2JqZWN0OiBhbnkpOiB1bmtub3duW10ge1xyXG4gICAgY29uc3Qga2V5czogdW5rbm93bltdID0gW107XHJcbiAgICBvYmplY3QuZm9yRWFjaCgoa2V5OiBhbnkpPT4ga2V5cy5wdXNoKE9iamVjdC52YWx1ZXMoa2V5KSkpO1xyXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KGtleXMpXTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbaWRdPVwiZGF0YT8uaWRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFBhcmVudEhlaWdodFwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBjbGFzcz1cInRvdGFsLWNvbnRhaW5lclwiIHNpbXBvSG92ZXIgKGhvdmVyaW5nKT1cInNob3dFZGl0VGFicygkZXZlbnQpXCI+XHJcbiAgPGRpdiAjbWFpbkNvbnRhaW5lciBjbGFzcz1cInctMTAwXCIgc3R5bGU9XCJ6LWluZGV4OiAxMDA7XCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvT3ZlcmxheV09XCJzdHlsZT8uYmFja2dyb3VuZFwiIFtzY3JvbGxWYWx1ZV09XCJpc0NvbXBvbmVudE1lcmdlZCA/IHNjcm9sbFZhbHVlIDogMFwiIFtzaW1wb0JhY2tncm91bmRdPVwiYmFja2dyb3VuZEluZm9cIiBbc2ltcG9TdGlja3ldPVwiaXNIZWFkZXJTdGlja3lcIiBbbmdDbGFzc109XCJ7J2Vjb21TdHlsZSc6IGlzRWNvbW1lcmNlV2Vic2l0ZX1cIj5cclxuICAgIDxuYXYgI2NoaWxkQ29udGFpbmVyIGNsYXNzPVwibmF2YmFyIG5hdmJhci1leHBhbmQtbGcgZC1ibG9jayBtYi0wXCIgW3NpbXBvRm9vdGVyTGF5b3V0XT1cInN0eWxlPy5sYXlvdXRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcG9zaXRpb24tcmVsYXRpdmUgXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTUwIGxlZnQtbG9nby10ZXh0IGQtZmxleFwiPlxyXG4gICAgICAgIDwhLS0gPGEgY2xhc3M9XCJuYXZiYXItYnJhbmRcIiBocmVmPVwiI1wiPnt7Y29udGVudD8uc2l0ZU5hbWU/LnZhbHVlfX08L2E+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgZ2FwLWxnLTMgYWxpZ24taXRlbXMtbGctY2VudGVyXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiIChjbGljayk9XCJnb1RvSG9tZSgpXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGVudD8ubG9nbz8udGV4dD8uaXNJY29uICYmIGNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiY29udGVudD8ubG9nbz8udGV4dD8udXJsXCIgYWx0PVwibG9nb1wiIFt3aWR0aF09XCJjb250ZW50Py5sb2dvPy5zaXplXCJcclxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRpbmctc21hbGxcIiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzVGV4dFwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5cclxuICAgICAgICAgICAgPGIgW25nU3R5bGVdPVwieydmb250LWZhbWlseSc6IGNvbnRlbnQ/LmxvZ28/LnRleHQ/LmZvbnRGYW1pbHl9XCI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgZ2FwLWxnLTMgYWxpZ24taXRlbXMtbGctY2VudGVyXCJcclxuICAgICAgICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZSAmJiBjb250ZW50Py5sb2dvPy5pbWFnZT8udXJsXCIoY2xpY2spPVwiZ29Ub0hvbWUoKVwiPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIlxyXG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBmcy02IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleFwiIHN0eWxlPVwibWFyZ2luLXRvcDogNXB4OyBtYXJnaW4tbGVmdDogMjVweDtcIiBbc2ltcG9Db2xvcl09XCJzaW1wb0NvbG9yXCIgKm5nSWY9XCJpc0Vjb21tZXJjZVdlYnNpdGUgJiYgc2NyZWVuV2lkdGggPiA3NjhcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZ2V0RHJvcGRvd25MaW5rczsgbGV0IGlkeCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2LWxpbmsgZHJvcGRvd24tdG9nZ2xlIG14LTJcIiBocmVmPVwiI1wiIFtpZF09XCInbmF2YmFyRHJvcGRvd25NZW51TGlua18nICsgaWR4XCIgcm9sZT1cImJ1dHRvblwiIGRhdGEtYnMtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj57eyBsaW5rIHwgdXBwZXJjYXNlIH19PC9hPlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51IGZzLTYgcG9zaXRpb24tYWJzb2x1dGVcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ25hdmJhckRyb3Bkb3duTWVudUxpbmtfJytpZHhcIj5cclxuICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGdldFZhbHVlcyhjb250ZW50Py5lY29tbGlua3M/LltsaW5rXSlcIj48YSBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXIodmFsdWUsIGxpbmspXCI+e3t2YWx1ZX19PC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy01MCByaWdodC1idG4gZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2NyZWVuV2lkdGggPD0gNzY4ICYmIGlzRWNvbW1lcmNlV2Vic2l0ZVwiIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYXJvdW5kXCI+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCBteC0yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibXgtMlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5hZGRfc2hvcHBpbmdfY2FydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJteC0yXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPnBlcnNvbl9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXIgbWVudS1pY29uXCIgW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiIFtpZF09XCJkYXRhPy5pZFwiIHR5cGU9XCJidXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImNvbGxhcHNlXCIgZGF0YS1icy10YXJnZXQ9XCIjbmF2YmFyTmF2QWx0TWFya3VwXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8IDc2OVwiXHJcbiAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibmF2YmFyTmF2QWx0TWFya3VwXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCIgYXJpYS1sYWJlbD1cIlRvZ2dsZSBuYXZpZ2F0aW9uXCI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgICA8aHI+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRWNvbW1lcmNlV2Vic2l0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsYXBzZSBuYXZiYXItY29sbGFwc2VcIiAqbmdJZj1cInNjcmVlbldpZHRoID4gNzY4XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2YmFyLW5hdiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/Lm5hdmJhckJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnNob3dIZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJpdGVtXCIgW3NlbGVjdGVkU3R5bGVdPVwic3R5bGU/Lm5hdmlnYXRpb25TdHlsZVwiIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICBbYmdDb2xvcl09XCJzaW1wb0NvbG9yXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiPjwvc2ltcG8tbmF2YmFyLWJ1dHRvbi1lbGVtZW50PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBhbGlnbi1pdGVtcy1sZy1jZW50ZXIgZmxleC1jb2x1bW4gZmxleC1sZy1yb3cgZ2FwLWxnLTAgZ2FwLTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY29udGVudD8uc29jaWFsTGlua3M/LmRpc3BsYXkgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8uc29jaWFsTGlua3M/LmNoYW5uZWxzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTttYXJnaW4tcmlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tc29jaWEtaWNvbnMgW3NvY2lhbEljb25EYXRhXT1cIml0ZW1cIiBbY29sb3JdPVwic2ltcG9Db2xvclwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXNvY2lhLWljb25zPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5IG10LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBhY3Rpb24/LmJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiIChjbGljayk9XCJyZWRpcmVjdFRvKGJ1dHRvbj8uY29udGVudClcIiBzaW1wb0J1dHRvbkRpcmVjdGl2ZSBbc2Nyb2xsVmFsdWVdPVwic2Nyb2xsVmFsdWVcIiBbaWRdPVwiZGF0YT8uaWQrKGJ1dHRvbj8uaWQgfHwgJycpXCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbi5zdHlsZXNcIiBbY29sb3JdPVwiYWNjZW50Q29sb3JcIj57e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIDxhcHAtYnV0dG9uLWVsZW1lbnQgW2J1dHRvbkNvbnRlbnRdPVwiYnV0dG9uLmNvbnRlbnRcIiBbYnV0dG9uU3R5bGVdPVwiYnV0dG9uLnN0eWxlc1wiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiIGlkPVwibmF2YmFyTmF2QWx0TWFya3VwXCIgKm5nSWY9XCJzY3JlZW5XaWR0aCA8PSA3NjhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbm5lci1oZWlnaHQgcC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYWItYmFyLW1vYmlsZSBmbGV4LWNvbHVtbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCIhY29udGVudD8ubG9nbz8uaXNJbWFnZSB8fCAhY29udGVudD8ubG9nbz8uaW1hZ2U/LnVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LmlzSWNvbiAmJiBjb250ZW50Py5sb2dvPy50ZXh0Py51cmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LnRleHQ/LnVybFwiIGFsdD1cImxvZ29cIiBbd2lkdGhdPVwiY29udGVudD8ubG9nbz8uc2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkaW5nLXNtYWxsXCIgKm5nSWY9XCJjb250ZW50Py5sb2dvPy50ZXh0Py5pc1RleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGIgW25nU3R5bGVdPVwieydmb250LWZhbWlseSc6IGNvbnRlbnQ/LmxvZ28/LnRleHQ/LmZvbnRGYW1pbHl9XCI+e3tjb250ZW50Py5zaXRlTmFtZT8udmFsdWV9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTMgYWxpZ24taXRlbXMtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY29udGVudD8ubG9nbz8uaXNJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImNvbnRlbnQ/LmxvZ28/LmltYWdlPy51cmxcIiBhbHQ9XCJsb2dvXCIgW3dpZHRoXT1cImNvbnRlbnQ/LmxvZ28/LnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2UtYm94IGN1cnNvci1wb2ludGVyIGQtZmxleFwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29udGVudD8ubmF2YmFyQnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudCBbYnV0dG9uRGF0YV09XCJpdGVtXCIgW3NlbGVjdGVkU3R5bGVdPVwic3R5bGU/Lm5hdmlnYXRpb25TdHlsZVwiIFtidXR0b25TdHlsZV09XCJzdHlsZT8ubmF2YmFyQnV0dG9uU3R5bGVcIj48L3NpbXBvLW5hdmJhci1idXR0b24tZWxlbWVudD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgYWxpZ24taXRlbXMtbGctY2VudGVyIGZsZXgtY29sdW1uIGZsZXgtbGctcm93IGdhcC1sZy0wIGdhcC0zXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb250ZW50Py5zb2NpYWxMaW5rcz8uZGlzcGxheSA/ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbicgOiAnanVzdGlmeS1jb250ZW50LWVuZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTBcIiAqbmdJZj1cImNvbnRlbnQ/LnNvY2lhbExpbmtzPy5kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbnRlbnQ/LnNvY2lhbExpbmtzPy5jaGFubmVsc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO21hcmdpbi1yaWdodDogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c2ltcG8tc29jaWEtaWNvbnMgW3NvY2lhbEljb25EYXRhXT1cIml0ZW1cIiBbY29sb3JdPVwic2ltcG9Db2xvclwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIj48L3NpbXBvLXNvY2lhLWljb25zPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpb24/LmRpc3BsYXlcIiBjbGFzcz1cImJ1dHRvbi1kaXNwbGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFjdGlvbj8uYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGFwcC1idXR0b24tZWxlbWVudCBbYnV0dG9uQ29udGVudF09XCJidXR0b24uY29udGVudFwiIFtidXR0b25TdHlsZV09XCJidXR0b24uc3R5bGVzXCIgW3NlY3Rpb25JZF09XCJkYXRhPy5pZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+PC9hcHAtYnV0dG9uLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFY29tbWVyY2VXZWJzaXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZSBwb3NpdGlvbi1hYnNvbHV0ZSBwci0wXCIgc3R5bGU9XCJyaWdodDogMHB4O1wiICpuZ0lmPVwic2NyZWVuV2lkdGggPiA3NjhcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHItMCBkLWZsZXhcIiBzdHlsZT1cIm1heC13aWR0aDogNTB2dztcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2hcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaCBQcm9kdWN0Li5cIiBhcmlhLWxhYmVsPVwiU2VhcmNoIFByb2R1Y3RcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJzZWFyY2hQcm9kdWN0cygpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwid2lkdGg6IDYwcHg7IG1hcmdpbi1sZWZ0OiAtMTBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvRmF2KClcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gW3NpbXBvQ29sb3JdPVwic2ltcG9Db2xvclwiPmZhdm9yaXRlX2JvcmRlcjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5GYXZvdXJpdGU8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciBteC0zIHBvc2l0aW9uLXJlbGF0aXZlXCIgc3R5bGU9XCJ3aWR0aDogNjBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQ2FydCgpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5hZGRfc2hvcHBpbmdfY2FydDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5CYWc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGNhcnRJdGVtQ291bnRcIiAqbmdJZj1cImdldENhcnRJdGVtc0NvdW50XCI+e3tnZXRDYXJ0SXRlbXNDb3VudH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwid2lkdGg6IDYwcHg7IG1hcmdpbi1sZWZ0OiAtMTBweDsgY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJnb1RvQWNjb3VudCgpXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5wZXJzb25fb3V0bGluZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1ub3JtYWwgZnMtNlwiIFtzaW1wb0NvbG9yXT1cInNpbXBvQ29sb3JcIj5BY2NvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmF2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -8,8 +8,6 @@ export class CartService {
8
8
  this.storageService = storageService;
9
9
  this.restService = restService;
10
10
  }
11
- ngOnInit() {
12
- }
13
11
  addItemFromCartPage(product, userCart) {
14
12
  if (product.quantity) {
15
13
  // let productIdx: number = -1;
@@ -99,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
99
97
  providedIn: 'root',
100
98
  }]
101
99
  }], ctorParameters: () => [{ type: i1.StorageServiceService }, { type: i2.RestService }] });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBU3RFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUN4QyxDQUFDO0lBRUosUUFBUTtJQUVSLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFxQixFQUFFLFFBQWE7UUFDN0QsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsK0JBQStCO1lBQy9CLDhEQUE4RDtZQUM5RCx1Q0FBdUM7WUFDdkMsd0JBQXdCO1lBQ3hCLE1BQU07WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLE9BQXVCLENBQUMsQ0FBQztZQUM5RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLE9BQStCO1FBRWxELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRXJCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBa0IsQ0FBQyxDQUFDO1lBQzFELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUEyQixDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFrQixDQUFDLENBQUM7UUFDckQsQ0FBQztJQUNILENBQUM7SUFDTSxrQkFBa0IsQ0FBQyxPQUFnQjtRQUV4QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNNLHVCQUF1QixDQUFDLE9BQWdCO1FBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDTSxrQkFBa0IsQ0FBQyxPQUErQjtRQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQ00sY0FBYyxDQUFDLEVBQVUsRUFBRSxJQUEwQjtRQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUFnQixFQUFFLElBQXlCO1FBQzlELElBQUksSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE1BQU0sWUFBWSxHQUFpQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQyxDQUFDO1lBRW5JLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxZQUFZLEdBQWlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUF1QixDQUFDLENBQUM7WUFFdkksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxZQUFZLENBQUMsTUFBYyxFQUFFLElBQTBCO1FBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JELGlDQUFpQztRQUNqQyxrRUFBa0U7UUFDbEUsdUJBQXVCO1FBQ3ZCLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBZ0I7UUFDbkMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBVTtJQUV2QyxDQUFDO0lBQ00sY0FBYztRQUNuQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsOENBQThDO1FBQzlDLHdEQUF3RDtRQUN4RCxvQ0FBb0M7UUFDcEMsNEJBQTRCO1FBQzVCLHdDQUF3QztRQUN4QyxnQ0FBZ0M7UUFFaEMsb0JBQW9CO1FBQ3BCLDRDQUE0QztRQUM1QyxpREFBaUQ7UUFDakQsTUFBTTtJQUNSLENBQUM7OEdBbkdVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBQcm9kdWN0IH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy9wcm9kdWN0Lm1vZGFsJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FydCB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvY2FydC5tb2RhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FydFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkSXRlbUZyb21DYXJ0UGFnZShwcm9kdWN0OiBPcmRlcmVkSXRlbXMsIHVzZXJDYXJ0OiBhbnkpIHtcclxuICAgIGlmIChwcm9kdWN0LnF1YW50aXR5KSB7XHJcbiAgICAgIC8vIGxldCBwcm9kdWN0SWR4OiBudW1iZXIgPSAtMTtcclxuICAgICAgLy8gVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcywgaWR4KT0+IHtcclxuICAgICAgLy8gICBpZiAoaXRlbS5pdGVtSWQgPT0gcHJvZHVjdC5pdGVtSWQpXHJcbiAgICAgIC8vICAgICBwcm9kdWN0SWR4ID0gaWR4O1xyXG4gICAgICAvLyB9KTtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9DYXJ0KHByb2R1Y3QgYXMgT3JkZXJlZEl0ZW1zKTtcclxuICAgICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlckNhcnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gcmVtb3ZlIGl0ZW0gZnJvbSBjYXJ0XHJcbiAgICAgIHRoaXMucmVtb3ZlSXRlbUZyb21DYXJ0KHByb2R1Y3QpO1xyXG4gICAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQih1c2VyQ2FydCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkSXRlbVRvQ2FydChwcm9kdWN0OiBQcm9kdWN0IHwgT3JkZXJlZEl0ZW1zKSB7XHJcblxyXG4gICAgaWYgKHByb2R1Y3QucXVhbnRpdHkpIHtcclxuXHJcbiAgICAgIGNvbnN0IG9yZGVyZWRJdGVtID0gdGhpcy5vYmplY3RNYXBwZXIocHJvZHVjdCBhcyBQcm9kdWN0KTtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChvcmRlcmVkSXRlbSBhcyBPcmRlcmVkSXRlbXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSXRlbUZyb21DYXJ0KHByb2R1Y3QgYXMgUHJvZHVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBhZGRJdGVtVG9GYXZvdXJpdGUocHJvZHVjdDogUHJvZHVjdCkge1xyXG5cclxuICAgIGNvbnN0IG9yZGVyZWRJdGVtID0gdGhpcy5vYmplY3RNYXBwZXIocHJvZHVjdCk7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KG9yZGVyZWRJdGVtKTsgXHJcbiAgfVxyXG4gIHB1YmxpYyByZW1vdmVJdGVtRnJvbUZhdm91cml0ZShwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpO1xyXG4gIH1cclxuICBwdWJsaWMgcmVtb3ZlSXRlbUZyb21DYXJ0KHByb2R1Y3Q6IFByb2R1Y3QgfCBPcmRlcmVkSXRlbXMpIHtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbUNhcnQocHJvZHVjdC5pdGVtSWQpO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0SXRlbUlkeEpTT04oaWQ6IHN0cmluZywgdHlwZTogJ0ZBVk9VUklURScgfCAnQ0FSVCcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFByb2R1Y3RGcm9tQ2FydChpZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVJdGVtVG9EQihwcm9kdWN0OiBQcm9kdWN0LCB0eXBlOiAnQ0FSVCcgfCAnV0lTSExJU1QnKSB7XHJcbiAgICBpZiAodHlwZSA9PSBcIkNBUlRcIikge1xyXG4gICAgICBjb25zdCBvcmRlclByb2R1Y3Q6IE9yZGVyZWRJdGVtcyA9IHRoaXMub2JqZWN0TWFwcGVyKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0UHJvZHVjdEZyb21DYXJ0KHByb2R1Y3QuaXRlbUlkKSBhcyB1bmtub3duIGFzIFByb2R1Y3QpO1xyXG4gICAgICBcclxuICAgICAgaWYgKG9yZGVyUHJvZHVjdCkge1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChvcmRlclByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBvcmRlclByb2R1Y3Q6IE9yZGVyZWRJdGVtcyA9IHRoaXMub2JqZWN0TWFwcGVyKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0UHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0Lml0ZW1JZCkgYXMgdW5rbm93biBhcyBQcm9kdWN0KTtcclxuICAgICAgXHJcbiAgICAgIGlmIChvcmRlclByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb1dpc2hsaXN0KG9yZGVyUHJvZHVjdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJdGVtQnlJZHgoaXRlbUlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnIHwgJ0NBUlQnKTogT3JkZXJlZEl0ZW1zIHwgbnVsbCB7XHJcbiAgICBjb25zdCBwcm9kdWN0SWR4ID0gdGhpcy5nZXRJdGVtSWR4SlNPTihpdGVtSWQsIHR5cGUpO1xyXG4gICAgLy8gY29uc29sZS5sb2codHlwZSwgcHJvZHVjdElkeCk7XHJcbiAgICAvLyBjb25zdCBqc29uID0gKHR5cGUgPT0gXCJGQVZPVVJJVEVcIikgPyBVc2VyRmF2b3VyaXRlcyA6IFVzZXJDYXJ0O1xyXG4gICAgLy8gaWYgKHByb2R1Y3RJZHggPj0gMClcclxuICAgIC8vICAgcmV0dXJuIGpzb24ub3JkZXJlZEl0ZW1zW3Byb2R1Y3RJZHhdO1xyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JqZWN0TWFwcGVyKHByb2R1Y3Q6IFByb2R1Y3QpOiBPcmRlcmVkSXRlbXMge1xyXG4gICAgcmV0dXJuIG5ldyBPcmRlcmVkSXRlbXMocHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVDYXJ0RGF0YVRvU2VydmVyKGNhcnQ6IENhcnQpIHtcclxuICAgIFxyXG4gIH1cclxuICBwdWJsaWMgY2xlYXJDYXJ0SXRlbXMoKSB7XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyVXNlckNhcnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9yZURhdGFUb1NlcnZlcigpIHtcclxuICAgIC8vIGNvbnN0IHVzZXJDYXJ0ID0gVXNlckNhcnQgYXMgbmV2ZXIgYXMgQ2FydDtcclxuICAgIC8vIGNvbnN0IHVzZXJXaXNobGlzdCA9IFVzZXJGYXZvdXJpdGVzIGFzIG5ldmVyIGFzIENhcnQ7XHJcbiAgICAvLyBpZiAodXNlckNhcnQuY2FydElkPy5sZW5ndGggPT0gMClcclxuICAgIC8vICAgZGVsZXRlIHVzZXJDYXJ0LmNhcnRJZDtcclxuICAgIC8vIGlmICh1c2VyV2lzaGxpc3QuY2FydElkPy5sZW5ndGggPT0gMClcclxuICAgIC8vICAgZGVsZXRlIHVzZXJXaXNobGlzdC5jYXJ0SWQ7XHJcblxyXG4gICAgLy8gcmV0dXJuIGZvcmtKb2luKFtcclxuICAgIC8vICAgdGhpcy5yZXN0U2VydmljZS5hZGRJdGVtVG9EQihVc2VyQ2FydCksXHJcbiAgICAvLyAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckZhdm91cml0ZXMpXHJcbiAgICAvLyBdKTtcclxuICB9XHJcbn0iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7O0FBU3RFLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQ21CLGNBQXFDLEVBQ3JDLFdBQXdCO1FBRHhCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUUzQyxDQUFDO0lBR00sbUJBQW1CLENBQUMsT0FBcUIsRUFBRSxRQUFhO1FBQzdELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLCtCQUErQjtZQUMvQiw4REFBOEQ7WUFDOUQsdUNBQXVDO1lBQ3ZDLHdCQUF3QjtZQUN4QixNQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUF1QixDQUFDLENBQUM7WUFDOUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLHdCQUF3QjtZQUN4QixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVNLGFBQWEsQ0FBQyxPQUErQjtRQUVsRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVyQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQWtCLENBQUMsQ0FBQztZQUMxRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsV0FBMkIsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBa0IsQ0FBQyxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDO0lBQ00sa0JBQWtCLENBQUMsT0FBZ0I7UUFFeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDTSx1QkFBdUIsQ0FBQyxPQUFnQjtRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ00sa0JBQWtCLENBQUMsT0FBK0I7UUFDckQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNNLGNBQWMsQ0FBQyxFQUFVLEVBQUUsSUFBMEI7UUFDMUQsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxhQUFhLENBQUMsT0FBZ0IsRUFBRSxJQUF5QjtRQUM5RCxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLFlBQVksR0FBaUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQXVCLENBQUMsQ0FBQztZQUVuSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sWUFBWSxHQUFpQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBdUIsQ0FBQyxDQUFDO1lBRXZJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDekQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUEwQjtRQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxpQ0FBaUM7UUFDakMsa0VBQWtFO1FBQ2xFLHVCQUF1QjtRQUN2QiwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWdCO1FBQ25DLE9BQU8sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLElBQVU7SUFFdkMsQ0FBQztJQUNNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLDhDQUE4QztRQUM5Qyx3REFBd0Q7UUFDeEQsb0NBQW9DO1FBQ3BDLDRCQUE0QjtRQUM1Qix3Q0FBd0M7UUFDeEMsZ0NBQWdDO1FBRWhDLG9CQUFvQjtRQUNwQiw0Q0FBNEM7UUFDNUMsaURBQWlEO1FBQ2pELE1BQU07SUFDUixDQUFDOzhHQWpHVSxXQUFXO2tIQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9yZGVyZWRJdGVtcyB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvT3JkZXJlZEl0ZW1zLm1vZGFsJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uL2Vjb21tZXJjZS9zdHlsZXMvcHJvZHVjdC5tb2RhbCc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENhcnQgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL2NhcnQubW9kYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcnRTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Gcm9tQ2FydFBhZ2UocHJvZHVjdDogT3JkZXJlZEl0ZW1zLCB1c2VyQ2FydDogYW55KSB7XHJcbiAgICBpZiAocHJvZHVjdC5xdWFudGl0eSkge1xyXG4gICAgICAvLyBsZXQgcHJvZHVjdElkeDogbnVtYmVyID0gLTE7XHJcbiAgICAgIC8vIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcy5mb3JFYWNoKChpdGVtOiBPcmRlcmVkSXRlbXMsIGlkeCk9PiB7XHJcbiAgICAgIC8vICAgaWYgKGl0ZW0uaXRlbUlkID09IHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgICAvLyAgICAgcHJvZHVjdElkeCA9IGlkeDtcclxuICAgICAgLy8gfSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0IGFzIE9yZGVyZWRJdGVtcyk7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKHVzZXJDYXJ0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIHJlbW92ZSBpdGVtIGZyb20gY2FydFxyXG4gICAgICB0aGlzLnJlbW92ZUl0ZW1Gcm9tQ2FydChwcm9kdWN0KTtcclxuICAgICAgcmV0dXJuIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIodXNlckNhcnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEl0ZW1Ub0NhcnQocHJvZHVjdDogUHJvZHVjdCB8IE9yZGVyZWRJdGVtcykge1xyXG5cclxuICAgIGlmIChwcm9kdWN0LnF1YW50aXR5KSB7XHJcblxyXG4gICAgICBjb25zdCBvcmRlcmVkSXRlbSA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QgYXMgUHJvZHVjdCk7XHJcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb0NhcnQob3JkZXJlZEl0ZW0gYXMgT3JkZXJlZEl0ZW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlbW92ZUl0ZW1Gcm9tQ2FydChwcm9kdWN0IGFzIFByb2R1Y3QpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgYWRkSXRlbVRvRmF2b3VyaXRlKHByb2R1Y3Q6IFByb2R1Y3QpIHtcclxuXHJcbiAgICBjb25zdCBvcmRlcmVkSXRlbSA9IHRoaXMub2JqZWN0TWFwcGVyKHByb2R1Y3QpO1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChvcmRlcmVkSXRlbSk7IFxyXG4gIH1cclxuICBwdWJsaWMgcmVtb3ZlSXRlbUZyb21GYXZvdXJpdGUocHJvZHVjdDogUHJvZHVjdCkge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVQcm9kdWN0RnJvbVdpc2hsaXN0KHByb2R1Y3QuaXRlbUlkKTtcclxuICB9XHJcbiAgcHVibGljIHJlbW92ZUl0ZW1Gcm9tQ2FydChwcm9kdWN0OiBQcm9kdWN0IHwgT3JkZXJlZEl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UucmVtb3ZlUHJvZHVjdEZyb21DYXJ0KHByb2R1Y3QuaXRlbUlkKTtcclxuICB9XHJcbiAgcHVibGljIGdldEl0ZW1JZHhKU09OKGlkOiBzdHJpbmcsIHR5cGU6ICdGQVZPVVJJVEUnIHwgJ0NBUlQnKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRQcm9kdWN0RnJvbUNhcnQoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b3JlSXRlbVRvREIocHJvZHVjdDogUHJvZHVjdCwgdHlwZTogJ0NBUlQnIHwgJ1dJU0hMSVNUJykge1xyXG4gICAgaWYgKHR5cGUgPT0gXCJDQVJUXCIpIHtcclxuICAgICAgY29uc3Qgb3JkZXJQcm9kdWN0OiBPcmRlcmVkSXRlbXMgPSB0aGlzLm9iamVjdE1hcHBlcih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFByb2R1Y3RGcm9tQ2FydChwcm9kdWN0Lml0ZW1JZCkgYXMgdW5rbm93biBhcyBQcm9kdWN0KTtcclxuICAgICAgXHJcbiAgICAgIGlmIChvcmRlclByb2R1Y3QpIHtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmFkZFByb2R1Y3RUb0NhcnQob3JkZXJQcm9kdWN0KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgb3JkZXJQcm9kdWN0OiBPcmRlcmVkSXRlbXMgPSB0aGlzLm9iamVjdE1hcHBlcih0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdC5pdGVtSWQpIGFzIHVua25vd24gYXMgUHJvZHVjdCk7XHJcbiAgICAgIFxyXG4gICAgICBpZiAob3JkZXJQcm9kdWN0KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5hZGRQcm9kdWN0VG9XaXNobGlzdChvcmRlclByb2R1Y3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SXRlbUJ5SWR4KGl0ZW1JZDogc3RyaW5nLCB0eXBlOiAnRkFWT1VSSVRFJyB8ICdDQVJUJyk6IE9yZGVyZWRJdGVtcyB8IG51bGwge1xyXG4gICAgY29uc3QgcHJvZHVjdElkeCA9IHRoaXMuZ2V0SXRlbUlkeEpTT04oaXRlbUlkLCB0eXBlKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKHR5cGUsIHByb2R1Y3RJZHgpO1xyXG4gICAgLy8gY29uc3QganNvbiA9ICh0eXBlID09IFwiRkFWT1VSSVRFXCIpID8gVXNlckZhdm91cml0ZXMgOiBVc2VyQ2FydDtcclxuICAgIC8vIGlmIChwcm9kdWN0SWR4ID49IDApXHJcbiAgICAvLyAgIHJldHVybiBqc29uLm9yZGVyZWRJdGVtc1twcm9kdWN0SWR4XTtcclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9iamVjdE1hcHBlcihwcm9kdWN0OiBQcm9kdWN0KTogT3JkZXJlZEl0ZW1zIHtcclxuICAgIHJldHVybiBuZXcgT3JkZXJlZEl0ZW1zKHByb2R1Y3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b3JlQ2FydERhdGFUb1NlcnZlcihjYXJ0OiBDYXJ0KSB7XHJcbiAgICBcclxuICB9XHJcbiAgcHVibGljIGNsZWFyQ2FydEl0ZW1zKCkge1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclVzZXJDYXJ0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RvcmVEYXRhVG9TZXJ2ZXIoKSB7XHJcbiAgICAvLyBjb25zdCB1c2VyQ2FydCA9IFVzZXJDYXJ0IGFzIG5ldmVyIGFzIENhcnQ7XHJcbiAgICAvLyBjb25zdCB1c2VyV2lzaGxpc3QgPSBVc2VyRmF2b3VyaXRlcyBhcyBuZXZlciBhcyBDYXJ0O1xyXG4gICAgLy8gaWYgKHVzZXJDYXJ0LmNhcnRJZD8ubGVuZ3RoID09IDApXHJcbiAgICAvLyAgIGRlbGV0ZSB1c2VyQ2FydC5jYXJ0SWQ7XHJcbiAgICAvLyBpZiAodXNlcldpc2hsaXN0LmNhcnRJZD8ubGVuZ3RoID09IDApXHJcbiAgICAvLyAgIGRlbGV0ZSB1c2VyV2lzaGxpc3QuY2FydElkO1xyXG5cclxuICAgIC8vIHJldHVybiBmb3JrSm9pbihbXHJcbiAgICAvLyAgIHRoaXMucmVzdFNlcnZpY2UuYWRkSXRlbVRvREIoVXNlckNhcnQpLFxyXG4gICAgLy8gICB0aGlzLnJlc3RTZXJ2aWNlLmFkZEl0ZW1Ub0RCKFVzZXJGYXZvdXJpdGVzKVxyXG4gICAgLy8gXSk7XHJcbiAgfVxyXG59Il19
@@ -19,6 +19,12 @@ export class StorageServiceService {
19
19
  this.favouriteCollectionRef = null;
20
20
  this.userCollectionRef = null;
21
21
  this.createDataBase();
22
+ const userDetails = this.getUser();
23
+ if (!!userDetails) {
24
+ this.restService.getUserInfo(userDetails.userId).subscribe((response) => {
25
+ this.setUser(response.data);
26
+ });
27
+ }
22
28
  }
23
29
  get getTotalCartItems() {
24
30
  return this.totalCartItems;
@@ -168,6 +174,7 @@ export class StorageServiceService {
168
174
  return await transaction.objectStore(this.favouriteCollectionName).get(productId);
169
175
  }
170
176
  clearUserCart() {
177
+ this.totalCartItems = 0;
171
178
  const transaction = this.database.transaction(this.cartCollectionName, "readwrite");
172
179
  return transaction.objectStore(this.cartCollectionName).clear();
173
180
  }
@@ -200,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
200
207
  providedIn: 'root'
201
208
  }]
202
209
  }], ctorParameters: () => [{ type: i1.EventsService }, { type: i2.CookieService }, { type: i3.RestService }] });
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9oQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ21CLFlBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFdBQXdCO1FBRnhCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBS25DLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBS25DLGlCQUFZLEdBQVcsTUFBTSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLFdBQVcsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCx1QkFBa0IsR0FBVyxNQUFNLENBQUM7UUFHcEMsc0JBQWlCLEdBQTBCLElBQUksQ0FBQztRQUNoRCwyQkFBc0IsR0FBMEIsSUFBSSxDQUFDO1FBQ3JELHNCQUFpQixHQUEwQixJQUFJLENBQUM7UUFqQjlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBR0QsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFhRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBcUIsTUFBTSxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXBGLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMs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QUNkLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZUFBZSxDQUFDLFVBQWtCO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0FuTlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT3JkZXJlZEl0ZW1zIH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy9PcmRlcmVkSXRlbXMubW9kYWwnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vZWNvbW1lcmNlL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4vZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQge0Nvb2tpZVNlcnZpY2V9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXJ0IH0gZnJvbSAnLi8uLi9lY29tbWVyY2Uvc3R5bGVzL2NhcnQubW9kYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNyZWF0ZURhdGFCYXNlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvdGFsQ2FydEl0ZW1zOiBudW1iZXIgPSAwO1xyXG4gIGdldCBnZXRUb3RhbENhcnRJdGVtcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsQ2FydEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBcIlVTRVJcIjtcclxuICBkYXRhYmFzZVZlcnNpb246IG51bWJlciA9IDE7XHJcbiAgY2FydENvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfQ0FSVFwiO1xyXG4gIGZhdm91cml0ZUNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfRkFWT1VSSVRFXCI7XHJcbiAgdXNlckNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJcIjtcclxuICBkYXRhYmFzZSE6IElEQkRhdGFiYXNlO1xyXG5cclxuICBjYXJ0Q29sbGVjdGlvblJlZjogSURCT2JqZWN0U3RvcmUgfCBudWxsID0gbnVsbDtcclxuICBmYXZvdXJpdGVDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG4gIHVzZXJDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBhc3luYyBjcmVhdGVEYXRhQmFzZSgpIHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IElEQk9wZW5EQlJlcXVlc3QgPSBhd2FpdCB3aW5kb3cuaW5kZXhlZERCLm9wZW4odGhpcy5kYXRhYmFzZU5hbWUsIDEpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7IH07XHJcbiAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFiYXNlID0gYXdhaXQgKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFVzZXJDYXJ0KCk7XHJcbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAoYXdhaXQgdGhpcy5nZXRVc2VyQ2FydCgpKS5vbnN1Y2Nlc3MgPSAodXNlckNhcnRSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gdXNlckNhcnRSZXNwb25zZS50YXJnZXQucmVzdWx0Lmxlbmd0aDtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5hZGRBbGxQcm9kdWN0c1RvQ2FydCh1c2VyQ2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpO1xyXG4gICAgICAgICAgICByZXNwb25zZS5vbmNvbXBsZXRlID0gKCk9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzcG9uc2Uub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBjYXRjaChleGNlcHRpb246IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFiYXNlIGNyZWF0ZWRcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IGF3YWl0IHJlc3BvbnNlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IChldmVudCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5kYXRhYmFzZSA9IChldmVudC50YXJnZXQgYXMgSURCT3BlbkRCUmVxdWVzdCkucmVzdWx0O1xyXG4gICAgICB0aGlzLmNhcnRDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcIml0ZW1JZFwiIH0pO1xyXG4gICAgICB0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIHsga2V5UGF0aDogXCJpdGVtSWRcIiB9KTtcclxuICAgICAgdGhpcy51c2VyQ29sbGVjdGlvblJlZiA9IHRoaXMuZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy51c2VyQ29sbGVjdGlvbk5hbWUsIHsga2V5UGF0aDogXCJ1c2VySWRcIiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHN0b3JlRGF0YVRvSlNPTigpIHtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5nZXRVc2VyQ2FydCgpO1xyXG4gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAvLyBVc2VyQ2FydC5vcmRlcmVkSXRlbXMgPSBhd2FpdCByZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIkNhclwiLCBVc2VyQ2FydCk7XHJcbiAgICAgIGNvbnN0IGZhdlJlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFVzZXJXaGlzaGxpc3QoKTtcclxuICAgICAgZmF2UmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAoZmF2UmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY3VsYXRlQmlsbGluZ0RldGFpbHMoKSB7XHJcbiAgICBcclxuICAgIC8vIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgIC8vIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbE9mZmVyZWRWYWx1ZSA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcblxyXG4gICAgLy8gVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAvLyAgIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSArPSAoaXRlbS5wcmljZSAqIGl0ZW0ucXVhbnRpdHkpO1xyXG4gICAgLy8gICBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCArPSAoaXRlbS5pdGVtVGF4ICogaXRlbS5xdWFudGl0eSk7XHJcbiAgICAvLyB9KVxyXG4gICAgLy8gVXNlckNhcnQuYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSA9IChVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCArIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcykgLSBVc2VyQ2FydC5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudDtcclxuICAgIC8vIHJldHVybiBVc2VyQ2FydDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsbERhdGEoKSB7XHJcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgaWYgKHVzZXJEZXRhaWxzKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBmb3JrSm9pbihbXHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlckRldGFpbHMudXNlcklkLCBcIkNBUlRcIiksXHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlckRldGFpbHMudXNlcklkLCBcIldJU0hMSVNUXCIpXHJcbiAgICAgIF0pO1xyXG4gICAgICByZXF1ZXN0LnN1YnNjcmliZSgoY2FydFJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhcnQgUmVzcG9uc2UgOiBcIiwgY2FydFJlc3BvbnNlKTtcclxuICAgICAgICBjYXJ0UmVzcG9uc2U/LlswXS5kYXRhPy5vcmRlcmVkSXRlbXM/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICB0aGlzLmFkZFByb2R1Y3RUb0NhcnQoaXRlbSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyBjYXJ0UmVzcG9uc2U/LlsxXS5kYXRhPy5vcmRlcmVkSXRlbXM/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLmFkZFByb2R1Y3RUb1dpc2hsaXN0KGl0ZW0pO1xyXG4gICAgICAgIC8vICAgVXNlckZhdm91cml0ZS5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5zdG9yZURhdGFUb0pTT04oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyBDQVJUIFNFUlZJQ0VcclxuICBhc3luYyBnZXRVc2VyQ2FydCgpOiBQcm9taXNlPElEQlJlcXVlc3Q8T3JkZXJlZEl0ZW1zW10+PiB7XHJcbiAgICBcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkuZ2V0KHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgcmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnRSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2FydCBSZXNwcG5zZSA6IFwiLCBjYXJ0UmVzcG9uc2UpO1xyXG4gICAgICBpZiAoY2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpIHt9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLnB1dChwcm9kdWN0KTtcclxuICB9XHJcblxyXG4gIGFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3RzOiBPcmRlcmVkSXRlbXNbXSk6IElEQlRyYW5zYWN0aW9uIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhwcm9kdWN0ICsgXCJ3aXNobGlzdFwiKTtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICBhZGRBbGxQcm9kdWN0c1RvQ2FydChwcm9kdWN0czogT3JkZXJlZEl0ZW1zW10pOiBJREJUcmFuc2FjdGlvbiB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhwcm9kdWN0ICsgXCJpbmZvXCIpO1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICByZW1vdmVQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgLT0gMTtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmRlbGV0ZShwcm9kdWN0SWQpO1xyXG4gIH1cclxuICBhc3luYyBnZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gV0lTSExJU1QgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJXaGlzaGxpc3QoKTogUHJvbWlzZTxJREJSZXF1ZXN0PE9yZGVyZWRJdGVtc1tdPj4ge1xyXG4gICAgXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuZ2V0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBhZGRQcm9kdWN0VG9XaXNobGlzdChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgfVxyXG4gIHJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5kZWxldGUocHJvZHVjdElkKTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0UHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJVc2VyQ2FydCgpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmNsZWFyKCk7XHJcbiAgfVxyXG4gIGNsZWFyVXNlcldpc2hsaXN0KCkge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvLyBVU0VSIFNFUlZJQ0VcclxuICBzZXRVc2VyKHVzZXI6IFVzZXIpOiBVc2VyIHtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoXCJ1c2VyXCIsIEpTT04uc3RyaW5naWZ5KHVzZXIgPz8gXCJ7fVwiKSwgNyk7XHJcbiAgICByZXR1cm4gdXNlcjtcclxuICB9XHJcbiAgZ2V0VXNlcigpOiBVc2VyIHwgbnVsbCB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFwidXNlclwiKSk7XHJcbiAgICB9IGNhdGNoKGV4Y2VwdGlvbikge31cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gcGF5bWVudCBpc3N1ZVxyXG4gIHN0b3JlUGF5bWVudEZvcihwYXltZW50Rm9yOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoXCJwYXltZW50Rm9yXCIsIHBheW1lbnRGb3IsIDcpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIGNsZWFyQWxsSXRlbXNGcm9tQ2FydCgpIHtcclxuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmRhdGFiYXNlICE9IHVuZGVmaW5lZCkge1xyXG4gIC8vICAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLmRhdGFiYXNlXHJcbiAgLy8gICAgICAgICAudHJhbnNhY3Rpb24odGhpcy5vYmplY3RTdG9yYWdlTmFtZSwgJ3JlYWR3cml0ZScpXHJcbiAgLy8gICAgICAgICAub2JqZWN0U3RvcmUodGhpcy5vYmplY3RTdG9yYWdlTmFtZSlcclxuICAvLyAgICAgICAgIC5jbGVhcigpO1xyXG5cclxuICAvLyAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGF3YWl0IGZ1bmN0aW9uIChldmVudDogYW55KSB7XHJcblxyXG4gIC8vICAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5yZXN1bHQpIHtcclxuICAvLyAgICAgICAgICAgcmVzb2x2ZShldmVudC5yZXN1bHQpO1xyXG4gIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICAgICAgcmVzb2x2ZSgnU1VDQ0VTUycpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH07XHJcbiAgLy8gICAgICAgcmVxdWVzdC5vbmVycm9yID0gYXdhaXQgZnVuY3Rpb24gKF9ldmVudCkge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KFwiTm8gZGF0YVwiKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxufVxyXG4iXX0=
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUtuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQU9oQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ21CLFlBQTJCLEVBQzNCLGFBQTRCLEVBQzVCLFdBQXdCO1FBRnhCLGlCQUFZLEdBQVosWUFBWSxDQUFlO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBV25DLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBS25DLGlCQUFZLEdBQVcsTUFBTSxDQUFDO1FBQzlCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLHVCQUFrQixHQUFXLFdBQVcsQ0FBQztRQUN6Qyw0QkFBdUIsR0FBVyxnQkFBZ0IsQ0FBQztRQUNuRCx1QkFBa0IsR0FBVyxNQUFNLENBQUM7UUFHcEMsc0JBQWlCLEdBQTBCLElBQUksQ0FBQztRQUNoRCwyQkFBc0IsR0FBMEIsSUFBSSxDQUFDO1FBQ3JELHNCQUFpQixHQUEwQixJQUFJLENBQUM7UUF2QjlDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBQyxFQUFFO2dCQUMxRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMs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YSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFBQyxPQUFNLFNBQVMsRUFBRSxDQUFDLENBQUEsQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZUFBZSxDQUFDLFVBQWtCO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0ExTlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPcmRlcmVkSXRlbXMgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL09yZGVyZWRJdGVtcy5tb2RhbCc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9lY29tbWVyY2Uvc3R5bGVzL3VzZXIubW9kYWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7Q29va2llU2VydmljZX0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IENhcnQgfSBmcm9tICcuLy4uL2Vjb21tZXJjZS9zdHlsZXMvY2FydC5tb2RhbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yYWdlU2VydmljZVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY3JlYXRlRGF0YUJhc2UoKTtcclxuICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5nZXRVc2VyKCk7XHJcbiAgICBpZiAoISF1c2VyRGV0YWlscykge1xyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldFVzZXJJbmZvKHVzZXJEZXRhaWxzLnVzZXJJZCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KT0+IHtcclxuICAgICAgICB0aGlzLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvdGFsQ2FydEl0ZW1zOiBudW1iZXIgPSAwO1xyXG4gIGdldCBnZXRUb3RhbENhcnRJdGVtcygpIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsQ2FydEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgZGF0YWJhc2VOYW1lOiBzdHJpbmcgPSBcIlVTRVJcIjtcclxuICBkYXRhYmFzZVZlcnNpb246IG51bWJlciA9IDE7XHJcbiAgY2FydENvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfQ0FSVFwiO1xyXG4gIGZhdm91cml0ZUNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJfRkFWT1VSSVRFXCI7XHJcbiAgdXNlckNvbGxlY3Rpb25OYW1lOiBzdHJpbmcgPSBcIlVTRVJcIjtcclxuICBkYXRhYmFzZSE6IElEQkRhdGFiYXNlO1xyXG5cclxuICBjYXJ0Q29sbGVjdGlvblJlZjogSURCT2JqZWN0U3RvcmUgfCBudWxsID0gbnVsbDtcclxuICBmYXZvdXJpdGVDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG4gIHVzZXJDb2xsZWN0aW9uUmVmOiBJREJPYmplY3RTdG9yZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBhc3luYyBjcmVhdGVEYXRhQmFzZSgpIHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IElEQk9wZW5EQlJlcXVlc3QgPSBhd2FpdCB3aW5kb3cuaW5kZXhlZERCLm9wZW4odGhpcy5kYXRhYmFzZU5hbWUsIDEpO1xyXG5cclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICByZXF1ZXN0Lm9uZXJyb3IgPSAoKSA9PiB7IH07XHJcbiAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmRhdGFiYXNlID0gYXdhaXQgKGV2ZW50LnRhcmdldCBhcyBJREJPcGVuREJSZXF1ZXN0KS5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFVzZXJDYXJ0KCk7XHJcbiAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAoYXdhaXQgdGhpcy5nZXRVc2VyQ2FydCgpKS5vbnN1Y2Nlc3MgPSAodXNlckNhcnRSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsQ2FydEl0ZW1zID0gdXNlckNhcnRSZXNwb25zZS50YXJnZXQucmVzdWx0Lmxlbmd0aDtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gdGhpcy5hZGRBbGxQcm9kdWN0c1RvQ2FydCh1c2VyQ2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpO1xyXG4gICAgICAgICAgICByZXNwb25zZS5vbmNvbXBsZXRlID0gKCk9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0xvYWRpbmdTY3JlZW4uZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmVzcG9uc2Uub25lcnJvciA9ICgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBjYXRjaChleGNlcHRpb246IGFueSkge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS5zaG93TG9hZGluZ1NjcmVlbi5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIkRhdGFiYXNlIGNyZWF0ZWRcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFVzZXJDYXJ0Lm9yZGVyZWRJdGVtcyA9IGF3YWl0IHJlc3BvbnNlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IChldmVudCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5kYXRhYmFzZSA9IChldmVudC50YXJnZXQgYXMgSURCT3BlbkRCUmVxdWVzdCkucmVzdWx0O1xyXG4gICAgICB0aGlzLmNhcnRDb2xsZWN0aW9uUmVmID0gdGhpcy5kYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgeyBrZXlQYXRoOiBcIml0ZW1JZFwiIH0pO1xyXG4gICAgICB0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25SZWYgPSB0aGlzLmRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIHsga2V5UGF0aDogXCJpdGVtSWRcIiB9KTtcclxuICAgICAgdGhpcy51c2VyQ29sbGVjdGlvblJlZiA9IHRoaXMuZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUodGhpcy51c2VyQ29sbGVjdGlvbk5hbWUsIHsga2V5UGF0aDogXCJ1c2VySWRcIiB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIHN0b3JlRGF0YVRvSlNPTigpIHtcclxuICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gYXdhaXQgdGhpcy5nZXRVc2VyQ2FydCgpO1xyXG4gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAvLyBVc2VyQ2FydC5vcmRlcmVkSXRlbXMgPSBhd2FpdCByZXNwb25zZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIkNhclwiLCBVc2VyQ2FydCk7XHJcbiAgICAgIGNvbnN0IGZhdlJlcXVlc3QgPSBhd2FpdCB0aGlzLmdldFVzZXJXaGlzaGxpc3QoKTtcclxuICAgICAgZmF2UmVxdWVzdC5vbnN1Y2Nlc3MgPSBhc3luYyAoZmF2UmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY3VsYXRlQmlsbGluZ0RldGFpbHMoKSB7XHJcbiAgICBcclxuICAgIC8vIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbE5ldFZhbHVlID0gMDtcclxuICAgIC8vIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcyA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudCA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbE9mZmVyZWRWYWx1ZSA9IDA7XHJcbiAgICAvLyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCA9IDA7XHJcblxyXG4gICAgLy8gVXNlckNhcnQub3JkZXJlZEl0ZW1zLmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAvLyAgIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLnRvdGFsR3Jvc3NWYWx1ZSArPSAoaXRlbS5wcmljZSAqIGl0ZW0ucXVhbnRpdHkpO1xyXG4gICAgLy8gICBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCArPSAoaXRlbS5pdGVtVGF4ICogaXRlbS5xdWFudGl0eSk7XHJcbiAgICAvLyB9KVxyXG4gICAgLy8gVXNlckNhcnQuYmlsbGRldGFpbHMudG90YWxOZXRWYWx1ZSA9IChVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbEdyb3NzVmFsdWUgKyBVc2VyQ2FydC5iaWxsZGV0YWlscy50b3RhbFRheCArIFVzZXJDYXJ0LmJpbGxkZXRhaWxzLmRlbGl2ZXJ5Q2hhcmdlcykgLSBVc2VyQ2FydC5iaWxsZGV0YWlscy5kaXNjb3VudEFtb3VudDtcclxuICAgIC8vIHJldHVybiBVc2VyQ2FydDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFsbERhdGEoKSB7XHJcbiAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuZ2V0VXNlcigpO1xyXG4gICAgaWYgKHVzZXJEZXRhaWxzKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQodHJ1ZSk7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3QgPSBmb3JrSm9pbihbXHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlckRldGFpbHMudXNlcklkLCBcIkNBUlRcIiksXHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5nZXRVc2VySXRlbXModXNlckRldGFpbHMudXNlcklkLCBcIldJU0hMSVNUXCIpXHJcbiAgICAgIF0pO1xyXG4gICAgICByZXF1ZXN0LnN1YnNjcmliZSgoY2FydFJlc3BvbnNlOiBhbnkpPT4ge1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNhcnQgUmVzcG9uc2UgOiBcIiwgY2FydFJlc3BvbnNlKTtcclxuICAgICAgICBjYXJ0UmVzcG9uc2U/LlswXS5kYXRhPy5vcmRlcmVkSXRlbXM/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgICB0aGlzLmFkZFByb2R1Y3RUb0NhcnQoaXRlbSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAvLyBjYXJ0UmVzcG9uc2U/LlsxXS5kYXRhPy5vcmRlcmVkSXRlbXM/LmZvckVhY2goKGl0ZW06IE9yZGVyZWRJdGVtcyk9PiB7XHJcbiAgICAgICAgLy8gICB0aGlzLmFkZFByb2R1Y3RUb1dpc2hsaXN0KGl0ZW0pO1xyXG4gICAgICAgIC8vICAgVXNlckZhdm91cml0ZS5vcmRlcmVkSXRlbXMucHVzaChpdGVtIGFzIG5ldmVyKTtcclxuICAgICAgICAvLyB9KVxyXG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dMb2FkaW5nU2NyZWVuLmVtaXQoZmFsc2UpO1xyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gdGhpcy5zdG9yZURhdGFUb0pTT04oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyBDQVJUIFNFUlZJQ0VcclxuICBhc3luYyBnZXRVc2VyQ2FydCgpOiBQcm9taXNlPElEQlJlcXVlc3Q8T3JkZXJlZEl0ZW1zW10+PiB7XHJcbiAgICBcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgYWRkUHJvZHVjdFRvQ2FydChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkuZ2V0KHByb2R1Y3QuaXRlbUlkKVxyXG4gICAgcmVzcG9uc2Uub25zdWNjZXNzID0gKGNhcnRSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQ2FydCBSZXNwcG5zZSA6IFwiLCBjYXJ0UmVzcG9uc2UpO1xyXG4gICAgICBpZiAoY2FydFJlc3BvbnNlLnRhcmdldC5yZXN1bHQpIHt9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgKz0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLnB1dChwcm9kdWN0KTtcclxuICB9XHJcblxyXG4gIGFkZEFsbFByb2R1Y3RUb1dpc2hsaXN0KHByb2R1Y3RzOiBPcmRlcmVkSXRlbXNbXSk6IElEQlRyYW5zYWN0aW9uIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhwcm9kdWN0ICsgXCJ3aXNobGlzdFwiKTtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICBhZGRBbGxQcm9kdWN0c1RvQ2FydChwcm9kdWN0czogT3JkZXJlZEl0ZW1zW10pOiBJREJUcmFuc2FjdGlvbiB7XHJcblxyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhwcm9kdWN0ICsgXCJpbmZvXCIpO1xyXG4gICAgICBjb25zdCByZXNwb25zZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9uO1xyXG4gIH1cclxuICByZW1vdmVQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgLT0gMTtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmRlbGV0ZShwcm9kdWN0SWQpO1xyXG4gIH1cclxuICBhc3luYyBnZXRQcm9kdWN0RnJvbUNhcnQocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5jYXJ0Q29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgLy8gV0lTSExJU1QgU0VSVklDRVxyXG4gIGFzeW5jIGdldFVzZXJXaGlzaGxpc3QoKTogUHJvbWlzZTxJREJSZXF1ZXN0PE9yZGVyZWRJdGVtc1tdPj4ge1xyXG4gICAgXHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gYXdhaXQgdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuZ2V0QWxsKCk7XHJcbiAgfVxyXG5cclxuICBhZGRQcm9kdWN0VG9XaXNobGlzdChwcm9kdWN0OiBPcmRlcmVkSXRlbXMpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5wdXQocHJvZHVjdCk7XHJcbiAgfVxyXG4gIHJlbW92ZVByb2R1Y3RGcm9tV2lzaGxpc3QocHJvZHVjdElkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5kYXRhYmFzZS50cmFuc2FjdGlvbih0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmZhdm91cml0ZUNvbGxlY3Rpb25OYW1lKS5kZWxldGUocHJvZHVjdElkKTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0UHJvZHVjdEZyb21XaXNobGlzdChwcm9kdWN0SWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUsIFwicmVhZHdyaXRlXCIpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKHRoaXMuZmF2b3VyaXRlQ29sbGVjdGlvbk5hbWUpLmdldChwcm9kdWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJVc2VyQ2FydCgpIHtcclxuICAgIHRoaXMudG90YWxDYXJ0SXRlbXMgPSAwO1xyXG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSB0aGlzLmRhdGFiYXNlLnRyYW5zYWN0aW9uKHRoaXMuY2FydENvbGxlY3Rpb25OYW1lLCBcInJlYWR3cml0ZVwiKTtcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLmNhcnRDb2xsZWN0aW9uTmFtZSkuY2xlYXIoKTtcclxuICB9XHJcbiAgY2xlYXJVc2VyV2lzaGxpc3QoKSB7XHJcbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuZGF0YWJhc2UudHJhbnNhY3Rpb24odGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSwgXCJyZWFkd3JpdGVcIik7XHJcbiAgICByZXR1cm4gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUodGhpcy5mYXZvdXJpdGVDb2xsZWN0aW9uTmFtZSkuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8vIFVTRVIgU0VSVklDRVxyXG4gIHNldFVzZXIodXNlcjogVXNlcik6IFVzZXIge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcInVzZXJcIiwgSlNPTi5zdHJpbmdpZnkodXNlciA/PyBcInt9XCIpLCA3KTtcclxuICAgIHJldHVybiB1c2VyO1xyXG4gIH1cclxuICBnZXRVc2VyKCk6IFVzZXIgfCBudWxsIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHRoaXMuY29va2llU2VydmljZS5nZXQoXCJ1c2VyXCIpKTtcclxuICAgIH0gY2F0Y2goZXhjZXB0aW9uKSB7fVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLyBwYXltZW50IGlzc3VlXHJcbiAgc3RvcmVQYXltZW50Rm9yKHBheW1lbnRGb3I6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcInBheW1lbnRGb3JcIiwgcGF5bWVudEZvciwgNyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gY2xlYXJBbGxJdGVtc0Zyb21DYXJ0KCkge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAvLyAgICAgaWYgKHRoaXMuZGF0YWJhc2UgIT0gdW5kZWZpbmVkKSB7XHJcbiAgLy8gICAgICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMuZGF0YWJhc2VcclxuICAvLyAgICAgICAgIC50cmFuc2FjdGlvbih0aGlzLm9iamVjdFN0b3JhZ2VOYW1lLCAncmVhZHdyaXRlJylcclxuICAvLyAgICAgICAgIC5vYmplY3RTdG9yZSh0aGlzLm9iamVjdFN0b3JhZ2VOYW1lKVxyXG4gIC8vICAgICAgICAgLmNsZWFyKCk7XHJcblxyXG4gIC8vICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gYXdhaXQgZnVuY3Rpb24gKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgLy8gICAgICAgICBpZiAoZXZlbnQudGFyZ2V0LnJlc3VsdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKGV2ZW50LnJlc3VsdCk7XHJcbiAgLy8gICAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKCdTVUNDRVNTJyk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfTtcclxuICAvLyAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBhd2FpdCBmdW5jdGlvbiAoX2V2ZW50KSB7XHJcbiAgLy8gICAgICAgICByZWplY3QoXCJObyBkYXRhXCIpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG59XHJcbiJdfQ==