ng-easycommerce-v18 0.3.14-beta.10 → 0.3.14-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Version 0.3.14-beta.7-8-9-10
1
+ # Version 0.3.14-beta.7-8-9-10-11
2
2
  - Ajuste en stores-ec platform id privado.
3
3
  # Version 0.3.14-beta.6
4
4
  - Se modifica archivos para ssr y que no usen document
@@ -13,6 +13,7 @@ export class LoginFormEcComponent {
13
13
  _formBuilder = inject(FormBuilder);
14
14
  _toastService = inject(ToastService);
15
15
  _router = inject(Router);
16
+ platformId = inject(PLATFORM_ID);
16
17
  showPassword = false;
17
18
  /**
18
19
  * Parametro para indicar si tras loguear
@@ -58,7 +59,7 @@ export class LoginFormEcComponent {
58
59
  this.loggedIn = true;
59
60
  if (this.inCart) {
60
61
  // Si se está en el carrito, se cierra el modal de login
61
- if (isPlatformBrowser(inject(PLATFORM_ID))) {
62
+ if (isPlatformBrowser(this.platformId)) {
62
63
  const modal = document.getElementById('modalInvitado');
63
64
  if (modal) {
64
65
  const modalInstance = window.bootstrap?.Modal?.getInstance(modal);
@@ -122,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
122
123
  }], inCart: [{
123
124
  type: Input
124
125
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FB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S0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTTtnQkFPUyxNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgc2lnbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IExvYWRpbmdTZWN0aW9uRWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi93aWRnZXRzLWVjJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgVXNlclJvbGVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLWxvZ2luLWZvcm0tZWMnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0xvYWRpbmdTZWN0aW9uRWNDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFJvdXRlckxpbmssIEpzb25QaXBlXSxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbG9naW4tZm9ybS1lYy5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmw6ICcuL2xvZ2luLWZvcm0tZWMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dpbkZvcm1FY0NvbXBvbmVudCB7XHJcblx0cHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5cdHByaXZhdGUgX3RvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XHJcblx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRzaG93UGFzc3dvcmQgPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBzaSB0cmFzIGxvZ3VlYXJcclxuXHQgKiBkZWJlIHJlZGlyZWNjaW9uYXIgbyBuby5cclxuXHQgKi9cclxuXHRASW5wdXQoKSByZWRpcmVjdDogYm9vbGVhbiA9IHRydWU7XHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBhIGRvbmRlIHJlZGlyZWNjaW9uYXIuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVkaXJlY3RUbzogc3RyaW5nID0gJy8nO1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBNdWVzdHJhIHNpIGVzdGEgY2FyZ2FuZG8gbyBuby5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBsb2dnZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBwdWJsaWMgaW5DYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHF1ZSBndWFyZGEgZWwgZm9ybXVsYXJpbyBkZSBsb2dpbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9naW5Gb3JtOiBhbnkgPSBzaWduYWw8Rm9ybUdyb3VwPihcclxuXHRcdHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0dXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcblx0XHR9KVxyXG5cdCk7XHJcblx0LyoqXHJcblx0ICogTG9ndWVhIGFsIHVzdWFyaW8gZW4gbGEgcGxhdGFmb3JtYS5cclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqIEBwYXJhbSB3aXRoUm9sZXMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGxvZ2luKCRldmVudDogRXZlbnQsIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSkge1xyXG5cdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0aWYgKCF0aGlzLmxvZ2luRm9ybSgpLnZhbGlkKSB7XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dpbi1mb3JtLWluY29tcGxldGUnKVxyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fYXV0aFNlcnZpY2UubG9naW4odGhpcy5sb2dpbkZvcm0oKS52YWx1ZSwgd2l0aFJvbGVzKSkudGhlbihcclxuXHRcdFx0KHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlcyA9PSAnb2snKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodGhpcy5sb2dpbkZvcm0oKS52YWx1ZS51c2VybmFtZSk7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnbG9naW4tc3VjY2VzcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5pbkNhcnQpIHtcclxuXHRcdFx0XHRcdFx0Ly8gU2kgc2UgZXN0w6EgZW4gZWwgY2Fycml0bywgc2UgY2llcnJhIGVsIG1vZGFsIGRlIGxvZ2luXHJcblx0XHRcdFx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbnN0IG1vZGFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vZGFsSW52aXRhZG8nKTtcclxuXHRcdFx0XHRcdFx0XHRpZiAobW9kYWwpIHtcclxuXHRcdFx0XHRcdFx0XHRcdGNvbnN0IG1vZGFsSW5zdGFuY2UgPSAod2luZG93IGFzIGFueSkuYm9vdHN0cmFwPy5Nb2RhbD8uZ2V0SW5zdGFuY2UobW9kYWwpO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG1vZGFsSW5zdGFuY2UpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0bW9kYWxJbnN0YW5jZS5oaWRlKCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBjbG9zZUJ1dHRvbiA9IG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWJzLWRpc21pc3M9XCJtb2RhbFwiXScpIGFzIEhUTUxFbGVtZW50O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2xvc2VCdXR0b24pIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbG9zZUJ1dHRvbi5jbGljaygpO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvY2hlY2tvdXQnKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRoaXMucmVkaXJlY3QgJiYgdGhpcy5yZWRpcmVjdEhvbWUoKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0fSBlbHNlIGlmIChyZXMgPT0gJ2Vycm9yJykge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdsb2dpbi1lcnJvcicpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQoZXJyOiBhbnkpID0+IHtcclxuXHRcdFx0XHQvLyBNYW5lam8gZGUgZXJyb3IgNDAxXHJcblx0XHRcdFx0aWYgKGVycj8uc3RhdHVzID09PSA0MDEpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdpbnZhbGlkLWNyZWRlbnRpYWxzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5lcnJvcignbG9naW4tZXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdClcclxuXHR9XHJcblx0LyoqXHJcblx0ICogU2kgZWwgc2VydmljaW8gZGUgYXV0aCB0aWVuZSBjb25maWd1cmFkbyBhIGRvbmRlIHZvbHZlciwgc2UgZWplY3V0YXIgZXNlIGNhc28uXHJcblx0ICogRGUgbG8gY29udHJhcmlvIHJlZGlyaWdlIGFsIGNvbnRlbmlkbyBkZSBsYSB2YXJpYWJsZSBgcmVkaXJlY3RUb2AuXHJcblx0ICovXHJcblx0cmVkaXJlY3RIb21lKCkge1xyXG5cdFx0Y29uc3QgcmVzb2x2ZXJGdW5jdGlvbiA9IHRoaXMuX2F1dGhTZXJ2aWNlLmdldEhvbWVSZXNvbHZlcigpXHJcblx0XHRyZXNvbHZlckZ1bmN0aW9uXHJcblx0XHRcdD8gcmVzb2x2ZXJGdW5jdGlvbigpXHJcblx0XHRcdDogdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwodGhpcy5yZWRpcmVjdFRvKVxyXG5cdH1cclxuXHR0b2dnbGVQYXNzd29yZCgpIHtcclxuXHRcdHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xyXG5cdH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gcG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgIDxoMSBjbGFzcz1cInJpZ2h0LWxpbmUgZmYtdWJ1bnR1LWxpZ2h0IG1iLTRcIj48c3Bhbj5JbmdyZXNhcjwvc3Bhbj48L2gxPlxyXG4gICAgPHAgY2xhc3M9XCJmZi11YnVudHUtbGlnaHQgZm9udC1zbSBwci00IG1iLTRcIj5cclxuICAgICAgICBTaSB5YSBlc3TDoXMgcmVnaXN0cmFkby4gSW5ncmVzYSBlbiB0dSBjdWVudGEgY29uIHR1IGVtYWlsIHkgbGFcclxuICAgICAgICBjb250cmFzZcOxYSBhZGVjdWFkYS5cclxuICAgIDwvcD5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LW1kLTUwIHctMTAwIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm0oKVwiIChzdWJtaXQpPVwibG9naW4oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItNCByYWRpdXMtMFwiIHR5cGU9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJuYW1lXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29ycmVvIEVsZWN0csOzbmljb1wiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbWItNCByYWRpdXMtMFwiIHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQ29udHJhc2XDsWFcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJnLWdyYXkgYm9yZGVyLTAgcHgtNCBweS0yIGNvbG9yLXdoaXRlIGZmLXVidW50dS1saWdodFwiPklOR1JFU0FSPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9hdXRoL2ZvcmdvdC1wYXNzd29yZCdcIiBjbGFzcz1cImZvbnQtbWQgZmYtdWJ1bnR1LWxpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIMK/T2x2aWTDsyBzdSBjb250cmFzZcOxYT9cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYobG9hZGluZyl7XHJcbiAgICA8YXBwLWxvYWRpbmctc2VjdGlvbi1lYz48L2FwcC1sb2FkaW5nLXNlY3Rpb24tZWM+XHJcbiAgICB9XHJcbjwvZGl2PiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tZm9ybS1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL2xvZ2luLWZvcm0tZWMvbG9naW4tZm9ybS1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQWEsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFTM0MsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FB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VSxFQUFFLFFBQVEsQ0FBQzs4QkFnQnRFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBT1MsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPdXRwdXQsIHNpZ25hbCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFVzZXJSb2xlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1sb2dpbi1mb3JtLWVjJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdGltcG9ydHM6IFtMb2FkaW5nU2VjdGlvbkVjQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBSb3V0ZXJMaW5rLCBKc29uUGlwZV0sXHJcblx0dGVtcGxhdGVVcmw6ICcuL2xvZ2luLWZvcm0tZWMuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsOiAnLi9sb2dpbi1mb3JtLWVjLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Gb3JtRWNDb21wb25lbnQge1xyXG5cdHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblx0cHJpdmF0ZSBfZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX3JvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcblx0cHJpdmF0ZSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcclxuXHRzaG93UGFzc3dvcmQgPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBzaSB0cmFzIGxvZ3VlYXJcclxuXHQgKiBkZWJlIHJlZGlyZWNjaW9uYXIgbyBuby5cclxuXHQgKi9cclxuXHRASW5wdXQoKSByZWRpcmVjdDogYm9vbGVhbiA9IHRydWU7XHJcblx0LyoqXHJcblx0ICogUGFyYW1ldHJvIHBhcmEgaW5kaWNhciBhIGRvbmRlIHJlZGlyZWNjaW9uYXIuXHJcblx0ICovXHJcblx0QElucHV0KCkgcmVkaXJlY3RUbzogc3RyaW5nID0gJy8nO1xyXG5cdEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKipcclxuXHQgKiBNdWVzdHJhIHNpIGVzdGEgY2FyZ2FuZG8gbyBuby5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdHB1YmxpYyBsb2dnZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRASW5wdXQoKSBwdWJsaWMgaW5DYXJ0OiBib29sZWFuID0gZmFsc2U7XHJcblx0LyoqXHJcblx0ICogU2lnbmFsIHF1ZSBndWFyZGEgZWwgZm9ybXVsYXJpbyBkZSBsb2dpbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgbG9naW5Gb3JtOiBhbnkgPSBzaWduYWw8Rm9ybUdyb3VwPihcclxuXHRcdHRoaXMuX2Zvcm1CdWlsZGVyLmdyb3VwKHtcclxuXHRcdFx0dXNlcm5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcblx0XHRcdHBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdXHJcblx0XHR9KVxyXG5cdCk7XHJcblx0LyoqXHJcblx0ICogTG9ndWVhIGFsIHVzdWFyaW8gZW4gbGEgcGxhdGFmb3JtYS5cclxuXHQgKiBAcGFyYW0gJGV2ZW50IFxyXG5cdCAqIEBwYXJhbSB3aXRoUm9sZXMgXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGxvZ2luKCRldmVudDogRXZlbnQsIHdpdGhSb2xlczogVXNlclJvbGVUeXBlW10gPSBbXSkge1xyXG5cdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHR0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG5cdFx0aWYgKCF0aGlzLmxvZ2luRm9ybSgpLnZhbGlkKSB7XHJcblx0XHRcdHRoaXMuX3RvYXN0U2VydmljZS5zaG93KCdsb2dpbi1mb3JtLWluY29tcGxldGUnKVxyXG5cdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Zmlyc3RWYWx1ZUZyb20odGhpcy5fYXV0aFNlcnZpY2UubG9naW4odGhpcy5sb2dpbkZvcm0oKS52YWx1ZSwgd2l0aFJvbGVzKSkudGhlbihcclxuXHRcdFx0KHJlczogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlcyA9PSAnb2snKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlYWR5LmVtaXQodGhpcy5sb2dpbkZvcm0oKS52YWx1ZS51c2VybmFtZSk7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnbG9naW4tc3VjY2VzcycpO1xyXG5cdFx0XHRcdFx0dGhpcy5sb2dnZWRJbiA9IHRydWU7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5pbkNhcnQpIHtcclxuXHRcdFx0XHRcdFx0Ly8gU2kgc2UgZXN0w6EgZW4gZWwgY2Fycml0bywgc2UgY2llcnJhIGVsIG1vZGFsIGRlIGxvZ2luXHJcblx0XHRcdFx0XHRcdGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgbW9kYWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kYWxJbnZpdGFkbycpO1xyXG5cdFx0XHRcdFx0XHRcdGlmIChtb2RhbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgbW9kYWxJbnN0YW5jZSA9ICh3aW5kb3cgYXMgYW55KS5ib290c3RyYXA/Lk1vZGFsPy5nZXRJbnN0YW5jZShtb2RhbCk7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAobW9kYWxJbnN0YW5jZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRtb2RhbEluc3RhbmNlLmhpZGUoKTtcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IGNsb3NlQnV0dG9uID0gbW9kYWwucXVlcnlTZWxlY3RvcignW2RhdGEtYnMtZGlzbWlzcz1cIm1vZGFsXCJdJykgYXMgSFRNTEVsZW1lbnQ7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChjbG9zZUJ1dHRvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNsb3NlQnV0dG9uLmNsaWNrKCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0dGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9jaGVja291dCcpO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5yZWRpcmVjdCAmJiB0aGlzLnJlZGlyZWN0SG9tZSgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJlcyA9PSAnZXJyb3InKSB7XHJcblx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2UuZXJyb3IoJ2xvZ2luLWVycm9yJylcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblx0XHRcdH0sXHJcblx0XHRcdChlcnI6IGFueSkgPT4ge1xyXG5cdFx0XHRcdC8vIE1hbmVqbyBkZSBlcnJvciA0MDFcclxuXHRcdFx0XHRpZiAoZXJyPy5zdGF0dXMgPT09IDQwMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ2ludmFsaWQtY3JlZGVudGlhbHMnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLmVycm9yKCdsb2dpbi1lcnJvcicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHR0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0KVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBTaSBlbCBzZXJ2aWNpbyBkZSBhdXRoIHRpZW5lIGNvbmZpZ3VyYWRvIGEgZG9uZGUgdm9sdmVyLCBzZSBlamVjdXRhciBlc2UgY2Fzby5cclxuXHQgKiBEZSBsbyBjb250cmFyaW8gcmVkaXJpZ2UgYWwgY29udGVuaWRvIGRlIGxhIHZhcmlhYmxlIGByZWRpcmVjdFRvYC5cclxuXHQgKi9cclxuXHRyZWRpcmVjdEhvbWUoKSB7XHJcblx0XHRjb25zdCByZXNvbHZlckZ1bmN0aW9uID0gdGhpcy5fYXV0aFNlcnZpY2UuZ2V0SG9tZVJlc29sdmVyKClcclxuXHRcdHJlc29sdmVyRnVuY3Rpb25cclxuXHRcdFx0PyByZXNvbHZlckZ1bmN0aW9uKClcclxuXHRcdFx0OiB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJlZGlyZWN0VG8pXHJcblx0fVxyXG5cdHRvZ2dsZVBhc3N3b3JkKCkge1xyXG5cdFx0dGhpcy5zaG93UGFzc3dvcmQgPSAhdGhpcy5zaG93UGFzc3dvcmQ7XHJcblx0fVxyXG5cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgPGgxIGNsYXNzPVwicmlnaHQtbGluZSBmZi11YnVudHUtbGlnaHQgbWItNFwiPjxzcGFuPkluZ3Jlc2FyPC9zcGFuPjwvaDE+XHJcbiAgICA8cCBjbGFzcz1cImZmLXVidW50dS1saWdodCBmb250LXNtIHByLTQgbWItNFwiPlxyXG4gICAgICAgIFNpIHlhIGVzdMOhcyByZWdpc3RyYWRvLiBJbmdyZXNhIGVuIHR1IGN1ZW50YSBjb24gdHUgZW1haWwgeSBsYVxyXG4gICAgICAgIGNvbnRyYXNlw7FhIGFkZWN1YWRhLlxyXG4gICAgPC9wPlxyXG4gICAgPGRpdiBjbGFzcz1cInctbWQtNTAgdy0xMDAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luRm9ybSgpXCIgKHN1Ym1pdCk9XCJsb2dpbigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBtYi00IHJhZGl1cy0wXCIgdHlwZT1cImVtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb3JyZW8gRWxlY3Ryw7NuaWNvXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBtYi00IHJhZGl1cy0wXCIgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwicGFzc3dvcmRcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJDb250cmFzZcOxYVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmctZ3JheSBib3JkZXItMCBweC00IHB5LTIgY29sb3Itd2hpdGUgZmYtdWJ1bnR1LWxpZ2h0XCI+SU5HUkVTQVI8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCInL2F1dGgvZm9yZ290LXBhc3N3b3JkJ1wiIGNsYXNzPVwiZm9udC1tZCBmZi11YnVudHUtbGlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgwr9PbHZpZMOzIHN1IGNvbnRyYXNlw7FhP1xyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihsb2FkaW5nKXtcclxuICAgIDxhcHAtbG9hZGluZy1zZWN0aW9uLWVjPjwvYXBwLWxvYWRpbmctc2VjdGlvbi1lYz5cclxuICAgIH1cclxuPC9kaXY+Il19
@@ -20,6 +20,7 @@ export class PasswordResetEcComponent extends ComponentHelper {
20
20
  ready = false;
21
21
  token;
22
22
  formGroup;
23
+ platformId = inject(PLATFORM_ID);
23
24
  constructor(authService, toastr, activedRoute, router, formBuilder) {
24
25
  super();
25
26
  this.authService = authService;
@@ -71,7 +72,7 @@ export class PasswordResetEcComponent extends ComponentHelper {
71
72
  };
72
73
  sendToLogin = () => this.router.navigateByUrl('/auth/login');
73
74
  showPassword = () => {
74
- if (!isPlatformBrowser(inject(PLATFORM_ID)))
75
+ if (!isPlatformBrowser(this.platformId))
75
76
  return;
76
77
  const passwordInput = document.getElementById('contraseña1');
77
78
  const showIcon = document.getElementById('show1');
@@ -86,7 +87,7 @@ export class PasswordResetEcComponent extends ComponentHelper {
86
87
  hideIcon?.classList.toggle('d-none');
87
88
  };
88
89
  showPassword2 = () => {
89
- if (!isPlatformBrowser(inject(PLATFORM_ID)))
90
+ if (!isPlatformBrowser(this.platformId))
90
91
  return;
91
92
  const passwordInput = document.getElementById('contraseña2');
92
93
  const showIcon = document.getElementById('show2');
@@ -107,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
107
108
  type: Component,
108
109
  args: [{ selector: 'app-password-reset-ec', imports: [TranslateModule, LoadingInlineEcComponent, ReactiveFormsModule], standalone: true, template: "<div class=\"container\">\r\n <div class=\"row justify-content-center py-5\">\r\n <div class=\"col-12 col-md-6 col-lg-4\">\r\n @if(!ready){\r\n <form [formGroup]=\"formGroup\" (submit)=\"sendNewPassword($event)\">\r\n <div class=\"mb-4 text-center\">\r\n <h3>{{ 'set-new-password' | translate }}</h3>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'set-password' | translate }}</label>\r\n <div class=\"input-group\">\r\n <input type=\"password\" formControlName=\"first\" class=\"form-control\" id=\"contrase\u00F1a1\" />\r\n <button class=\"btn btn-outline-secondary btn-password\" type=\"button\" (click)=\"showPassword()\">\r\n <i id=\"show1\" class=\"fas fa-eye i-show-password\"></i>\r\n <i id=\"hide1\" class=\"fas fa-eye-slash d-none i-show-password\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\">{{ 'repeat-password' | translate }}</label>\r\n <div class=\"input-group\">\r\n <input type=\"password\" formControlName=\"second\" class=\"form-control\" id=\"contrase\u00F1a2\" />\r\n <button class=\"btn btn-outline-secondary btn-password\" type=\"button\" (click)=\"showPassword2()\">\r\n <i id=\"show2\" class=\"fas fa-eye i-show-password\"></i>\r\n <i id=\"hide2\" class=\"fas fa-eye-slash d-none i-show-password\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mt-4 text-center\">\r\n <button type=\"submit\" class=\"comprar w-100\">{{ 'update' | translate }}</button>\r\n </div>\r\n @if(loading){\r\n <app-loading-inline-ec></app-loading-inline-ec>\r\n }\r\n </form>\r\n }@else {<div class=\"row justify-content-center mt-5 mb-5\">\r\n <div class=\"text-center\">\r\n <div class=\"mb-4\">\r\n <h3>{{ 'updated-password' | translate }}</h3>\r\n </div>\r\n <div class=\"mb-4\">\r\n <h5>{{ 'updated-password-detail' | translate }}</h5>\r\n </div>\r\n <button class=\"comprar\" (click)=\"sendToLogin()\">{{ 'login' | translate }}</button>\r\n </div>\r\n </div>}\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n</div>" }]
109
110
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i1.ToastService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.FormBuilder }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYXV0aC1lYy9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3Bhc3N3b3JkLXJlc2V0LWVjL3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVE1RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVFsQztJQUFvQztJQUFnQztJQUM5RTtJQUEwQjtJQVAvQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ1gsS0FBSyxDQUFxQjtJQUM3QixTQUFTLENBQWE7SUFFN0IsWUFBc0IsV0FBd0IsRUFBWSxNQUFvQixFQUFZLFlBQTRCLEVBQzFHLE1BQWMsRUFBWSxXQUF3QjtR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LENBQUMsQ0FBQztRQUNyQyxRQUFRLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDLENBQUE7d0dBekZPLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLHdHQ2ZyQywrdkZBbURNLHlERHZDUyxlQUFlLDRGQUFFLHdCQUF3QixtRkFBRSxtQkFBbUI7OzRGQUdoRSx3QkFBd0I7a0JBUHBDLFNBQVM7K0JBQ0ssdUJBQXVCLFdBR3hCLENBQUMsZUFBZSxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixDQUFDLGNBQzdELElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSwgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy1lYyc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgIHNlbGVjdG9yOiAnYXBwLXBhc3N3b3JkLXJlc2V0LWVjJyxcclxuICAgICB0ZW1wbGF0ZVVybDogJ3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgICBzdHlsZVVybHM6IFsncGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMb2FkaW5nSW5saW5lRWNDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gICAgIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkUmVzZXRFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gICAgIHB1YmxpYyBlbWFpbCA9IFwiXCI7XHJcbiAgICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgICBwdWJsaWMgcmVhZHkgPSBmYWxzZTtcclxuICAgICBwcm90ZWN0ZWQgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgICBwdWJsaWMgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG5cclxuICAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgICB9XHJcblxyXG4gICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgICAgdGhpcy50b2tlbiA9IHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWyd0b2tlbiddO1xyXG4gICAgICAgICAgIXRoaXMudG9rZW4gJiYgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgZmlyc3Q6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgIHNlY29uZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuZWNPbkluaXQoKVxyXG5cclxuICAgICB9XHJcblxyXG4gICAgIHNlbmROZXdQYXNzd29yZCA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pbnZhbGlkRm9ybSgpKSByZXR1cm47XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wYXNzd29yZFJlc2V0KHRoaXMuZm9ybUdyb3VwLnZhbHVlLmZpcnN0LCB0aGlzLnRva2VuID8/ICcnKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAgICAudGhlbih0aGlzLnByb2Nlc3NPaylcclxuICAgICAgICAgICAgICAgLmNhdGNoKHRoaXMucHJvY2Vzc0Vycm9yKTtcclxuICAgICB9XHJcblxyXG4gICAgIGludmFsaWRGb3JtID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IHBhc3N3b3JkcyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG4gICAgICAgICAgICAgICBpZiAocGFzc3dvcmRzLmZpcnN0ID09IHBhc3N3b3Jkcy5zZWNvbmQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdwYXNzd29yZC1kb2VzbnQtbWF0Y2gnKTtcclxuICAgICAgICAgIH0gZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdpbnZhbGlkLWZvcm0nKTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgIH1cclxuXHJcbiAgICAgcHJvY2Vzc09rID0gKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgICAgfVxyXG5cclxuICAgICBwcm9jZXNzRXJyb3IgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmVycm9yKVxyXG4gICAgICAgICAgICAgICA/IHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcbiAgICAgICAgICAgICAgIDogdGhpcy50b2FzdHIuc2hvdyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgfVxyXG5cclxuICAgICBzZW5kVG9Mb2dpbiA9ICgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9hdXRoL2xvZ2luJyk7XHJcblxyXG4gICAgIHNob3dQYXNzd29yZCA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSkpIHJldHVybjtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgY29uc3QgcGFzc3dvcmRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250cmFzZcOxYTEnKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgICAgICAgY29uc3Qgc2hvd0ljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hvdzEnKTtcclxuICAgICAgICAgIGNvbnN0IGhpZGVJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZGUxJyk7XHJcblxyXG4gICAgICAgICAgaWYgKHBhc3N3b3JkSW5wdXQudHlwZSA9PT0gJ3Bhc3N3b3JkJykge1xyXG4gICAgICAgICAgICAgICBwYXNzd29yZElucHV0LnR5cGUgPSAndGV4dCc7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICBwYXNzd29yZElucHV0LnR5cGUgPSAncGFzc3dvcmQnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNob3dJY29uPy5jbGFzc0xpc3QudG9nZ2xlKCdkLW5vbmUnKTtcclxuICAgICAgICAgIGhpZGVJY29uPy5jbGFzc0xpc3QudG9nZ2xlKCdkLW5vbmUnKTtcclxuICAgICB9XHJcblxyXG4gICAgIHNob3dQYXNzd29yZDIgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKGluamVjdChQTEFURk9STV9JRCkpKSByZXR1cm47XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGNvbnN0IHBhc3N3b3JkSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udHJhc2XDsWEyJykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgICAgIGNvbnN0IHNob3dJY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Nob3cyJyk7XHJcbiAgICAgICAgICBjb25zdCBoaWRlSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaWRlMicpO1xyXG5cclxuICAgICAgICAgIGlmIChwYXNzd29yZElucHV0LnR5cGUgPT09ICdwYXNzd29yZCcpIHtcclxuICAgICAgICAgICAgICAgcGFzc3dvcmRJbnB1dC50eXBlID0gJ3RleHQnO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgcGFzc3dvcmRJbnB1dC50eXBlID0gJ3Bhc3N3b3JkJztcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBzaG93SWNvbj8uY2xhc3NMaXN0LnRvZ2dsZSgnZC1ub25lJyk7XHJcbiAgICAgICAgICBoaWRlSWNvbj8uY2xhc3NMaXN0LnRvZ2dsZSgnZC1ub25lJyk7XHJcbiAgICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHB5LTVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1tZC02IGNvbC1sZy00XCI+XHJcbiAgICAgICAgICAgIEBpZighcmVhZHkpe1xyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIChzdWJtaXQpPVwic2VuZE5ld1Bhc3N3b3JkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi00IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICdzZXQtbmV3LXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdzZXQtcGFzc3dvcmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cImZpcnN0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImNvbnRyYXNlw7FhMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1wYXNzd29yZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwic2hvdzFcIiBjbGFzcz1cImZhcyBmYS1leWUgaS1zaG93LXBhc3N3b3JkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJoaWRlMVwiIGNsYXNzPVwiZmFzIGZhLWV5ZS1zbGFzaCBkLW5vbmUgaS1zaG93LXBhc3N3b3JkXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgJ3JlcGVhdC1wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImNvbnRyYXNlw7FhMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGJ0bi1wYXNzd29yZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkMigpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cInNob3cyXCIgY2xhc3M9XCJmYXMgZmEtZXllIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiaGlkZTJcIiBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2ggZC1ub25lIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJjb21wcmFyIHctMTAwXCI+e3sgJ3VwZGF0ZScgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgQGlmKGxvYWRpbmcpe1xyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbG9hZGluZy1pbmxpbmUtZWM+PC9hcHAtbG9hZGluZy1pbmxpbmUtZWM+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgfUBlbHNlIHs8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtNSBtYi01XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDM+e3sgJ3VwZGF0ZWQtcGFzc3dvcmQnIHwgdHJhbnNsYXRlIH19PC9oMz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDU+e3sgJ3VwZGF0ZWQtcGFzc3dvcmQtZGV0YWlsJyB8IHRyYW5zbGF0ZSB9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbXByYXJcIiAoY2xpY2spPVwic2VuZFRvTG9naW4oKVwiPnt7ICdsb2dpbicgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj59XHJcblxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtcmVzZXQtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLWNvbXBvbmVudHMvYXV0aC1lYy9wYXNzd29yZC1yZXNldC1lYy9wYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy9hdXRoLWVjL3Bhc3N3b3JkLXJlc2V0LWVjL3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQTBCLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQVE1RCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTtJQVNsQztJQUFvQztJQUFnQztJQUM5RTtJQUEwQjtJQVIvQixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ1gsS0FBSyxDQUFxQjtJQUM3QixTQUFTLENBQWE7SUFDckIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxZQUFzQixXQUF3QixFQUFZLE1BQW9CLEVBQVksWUFBNEIsRUFDMUcsTUFBYyxFQUFZLFdBQXdCO1FBQ3pELEtBQUssRUFBRSxDQUFDO1FBRlMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBWSxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQVksaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQzFHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUV6RCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELFFBQVE7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNuQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNoQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNyQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7SUFFcEIsQ0FBQztJQUVELGVBQWUsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFBRSxPQUFPO1FBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRTthQUNsRixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQTtJQUVELFdBQVcsR0FBRyxHQUFHLEVBQUU7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDdkMsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sS0FBSyxDQUFDOztnQkFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNwRCxDQUFDOztZQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2pCLENBQUMsQ0FBQTtJQUVELFNBQVMsR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQTtJQUVELFlBQVksR0FBRyxDQUFDLFFBQWEsRUFBRSxFQUFFO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUE7SUFFRCxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFN0QsWUFBWSxHQUFHLEdBQUcsRUFBRTtRQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTztRQUVoRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBcUIsQ0FBQztRQUNqRixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEQsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ25DLGFBQWEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ0gsYUFBYSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLFFBQVEsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUMsQ0FBQTtJQUVELGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFBRSxPQUFPO1FBRWhELE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFxQixDQUFDO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsRCxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDbkMsYUFBYSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDSCxhQUFhLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFBO3dHQTFGTyx3QkFBd0I7NEZBQXhCLHdCQUF3Qix3R0NmckMsK3ZGQW1ETSx5RER2Q1MsZUFBZSw0RkFBRSx3QkFBd0IsbUZBQUUsbUJBQW1COzs0RkFHaEUsd0JBQXdCO2tCQVBwQyxTQUFTOytCQUNLLHVCQUF1QixXQUd4QixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxtQkFBbUIsQ0FBQyxjQUM3RCxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IExvYWRpbmdJbmxpbmVFY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3dpZGdldHMtZWMnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgICBzZWxlY3RvcjogJ2FwcC1wYXNzd29yZC1yZXNldC1lYycsXHJcbiAgICAgdGVtcGxhdGVVcmw6ICdwYXNzd29yZC1yZXNldC1lYy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICAgc3R5bGVVcmxzOiBbJ3Bhc3N3b3JkLXJlc2V0LWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSwgTG9hZGluZ0lubGluZUVjQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcclxuICAgICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFJlc2V0RWNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRIZWxwZXIgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgICBwdWJsaWMgZW1haWwgPSBcIlwiO1xyXG4gICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgcHVibGljIHJlYWR5ID0gZmFsc2U7XHJcbiAgICAgcHJvdGVjdGVkIHRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICAgcHVibGljIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcclxuICAgICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xyXG5cclxuICAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcm90ZWN0ZWQgdG9hc3RyOiBUb2FzdFNlcnZpY2UsIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgICB9XHJcblxyXG4gICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgICAgdGhpcy50b2tlbiA9IHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWyd0b2tlbiddO1xyXG4gICAgICAgICAgIXRoaXMudG9rZW4gJiYgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICAgICAgICAgZmlyc3Q6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgICAgICAgIHNlY29uZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIHRoaXMuZWNPbkluaXQoKVxyXG5cclxuICAgICB9XHJcblxyXG4gICAgIHNlbmROZXdQYXNzd29yZCA9IChldmVudDogRXZlbnQpID0+IHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5pbnZhbGlkRm9ybSgpKSByZXR1cm47XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5wYXNzd29yZFJlc2V0KHRoaXMuZm9ybUdyb3VwLnZhbHVlLmZpcnN0LCB0aGlzLnRva2VuID8/ICcnKS50b1Byb21pc2UoKVxyXG4gICAgICAgICAgICAgICAudGhlbih0aGlzLnByb2Nlc3NPaylcclxuICAgICAgICAgICAgICAgLmNhdGNoKHRoaXMucHJvY2Vzc0Vycm9yKTtcclxuICAgICB9XHJcblxyXG4gICAgIGludmFsaWRGb3JtID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IHBhc3N3b3JkcyA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlO1xyXG4gICAgICAgICAgICAgICBpZiAocGFzc3dvcmRzLmZpcnN0ID09IHBhc3N3b3Jkcy5zZWNvbmQpIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdwYXNzd29yZC1kb2VzbnQtbWF0Y2gnKTtcclxuICAgICAgICAgIH0gZWxzZSB0aGlzLnRvYXN0ci5zaG93KCdpbnZhbGlkLWZvcm0nKTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgIH1cclxuXHJcbiAgICAgcHJvY2Vzc09rID0gKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWFkeSA9IHRydWU7XHJcbiAgICAgfVxyXG5cclxuICAgICBwcm9jZXNzRXJyb3IgPSAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAoIXJlc3BvbnNlIHx8IHJlc3BvbnNlLmVycm9yKVxyXG4gICAgICAgICAgICAgICA/IHRoaXMudG9hc3RyLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcbiAgICAgICAgICAgICAgIDogdGhpcy50b2FzdHIuc2hvdyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgfVxyXG5cclxuICAgICBzZW5kVG9Mb2dpbiA9ICgpID0+IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9hdXRoL2xvZ2luJyk7XHJcblxyXG4gICAgIHNob3dQYXNzd29yZCA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBjb25zdCBwYXNzd29yZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyYXNlw7FhMScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBzaG93SWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93MScpO1xyXG4gICAgICAgICAgY29uc3QgaGlkZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlkZTEnKTtcclxuXHJcbiAgICAgICAgICBpZiAocGFzc3dvcmRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2hvd0ljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgaGlkZUljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgIH1cclxuXHJcbiAgICAgc2hvd1Bhc3N3b3JkMiA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkgcmV0dXJuO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICBjb25zdCBwYXNzd29yZElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRyYXNlw7FhMicpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgICAgICBjb25zdCBzaG93SWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93MicpO1xyXG4gICAgICAgICAgY29uc3QgaGlkZUljb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlkZTInKTtcclxuXHJcbiAgICAgICAgICBpZiAocGFzc3dvcmRJbnB1dC50eXBlID09PSAncGFzc3dvcmQnKSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICd0ZXh0JztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgIHBhc3N3b3JkSW5wdXQudHlwZSA9ICdwYXNzd29yZCc7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgc2hvd0ljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgICAgICAgaGlkZUljb24/LmNsYXNzTGlzdC50b2dnbGUoJ2Qtbm9uZScpO1xyXG4gICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBweS01XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbWQtNiBjb2wtbGctNFwiPlxyXG4gICAgICAgICAgICBAaWYoIXJlYWR5KXtcclxuICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAoc3VibWl0KT1cInNlbmROZXdQYXNzd29yZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMz57eyAnc2V0LW5ldy1wYXNzd29yZCcgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyAnc2V0LXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJmaXJzdFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cInNob3cxXCIgY2xhc3M9XCJmYXMgZmEtZXllIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGlkPVwiaGlkZTFcIiBjbGFzcz1cImZhcyBmYS1leWUtc2xhc2ggZC1ub25lIGktc2hvdy1wYXNzd29yZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7ICdyZXBlYXQtcGFzc3dvcmQnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJwYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjb250cmFzZcOxYTJcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBidG4tcGFzc3dvcmRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNob3dQYXNzd29yZDIoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgaWQ9XCJzaG93MlwiIGNsYXNzPVwiZmFzIGZhLWV5ZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBpZD1cImhpZGUyXCIgY2xhc3M9XCJmYXMgZmEtZXllLXNsYXNoIGQtbm9uZSBpLXNob3ctcGFzc3dvcmRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY29tcHJhciB3LTEwMFwiPnt7ICd1cGRhdGUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIEBpZihsb2FkaW5nKXtcclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWxvYWRpbmctaW5saW5lLWVjPjwvYXBwLWxvYWRpbmctaW5saW5lLWVjPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7PGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTUgbWItNVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzPnt7ICd1cGRhdGVkLXBhc3N3b3JkJyB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1Pnt7ICd1cGRhdGVkLXBhc3N3b3JkLWRldGFpbCcgfCB0cmFuc2xhdGUgfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb21wcmFyXCIgKGNsaWNrKT1cInNlbmRUb0xvZ2luKClcIj57eyAnbG9naW4nIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+fVxyXG5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -1,5 +1,5 @@
1
- import { Component, Output, Input, EventEmitter } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
1
+ import { Component, Output, Input, EventEmitter, inject, PLATFORM_ID } from '@angular/core';
2
+ import { CommonModule, isPlatformBrowser } from '@angular/common';
3
3
  import { FormsModule } from '@angular/forms';
4
4
  import { ComponentHelper } from "../../../classes/component-helper";
5
5
  import { LoadingFullEcComponent } from '../loading';
@@ -39,6 +39,12 @@ export class DecidirEcComponent extends ComponentHelper {
39
39
  params;
40
40
  showModal = false;
41
41
  dataRedirect = () => this.apiConsts.getUrlBase() + 'shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cartToken + '/process-payment';
42
+ platformId = inject(PLATFORM_ID);
43
+ isBrowser = isPlatformBrowser(this.platformId);
44
+ windowRef = this.isBrowser ? window : null;
45
+ localStorageRef = this.windowRef?.localStorage ?? null;
46
+ sessionStorageRef = this.windowRef?.sessionStorage ?? null;
47
+ messageListener = (event) => this.handleIframeMessage(event);
42
48
  constructor(renderer, connection, toastrService, consts, apiConsts, cartService, activedRoute, sanitizer, paramsService) {
43
49
  super();
44
50
  this.renderer = renderer;
@@ -63,32 +69,38 @@ export class DecidirEcComponent extends ComponentHelper {
63
69
  }
64
70
  ngOnDestroy() {
65
71
  // Remover el listener de mensajes
66
- window.removeEventListener('message', this.handleIframeMessage, false);
72
+ if (this.isBrowser && this.windowRef) {
73
+ this.windowRef.removeEventListener('message', this.messageListener, false);
74
+ }
67
75
  // console.log("SE DESTROZA");
68
76
  }
69
77
  ngOnChanges() {
70
78
  // console.log("SE CAMBIO");
71
79
  }
72
80
  openModal() {
81
+ if (!this.isBrowser || !this.localStorageRef)
82
+ return;
73
83
  this.clearStorageState();
74
- localStorage.setItem('dataRedirect', this.dataRedirect());
75
- localStorage.setItem('dataDecidir', JSON.stringify({
84
+ this.localStorageRef.setItem('dataRedirect', this.dataRedirect());
85
+ this.localStorageRef.setItem('dataDecidir', JSON.stringify({
76
86
  ...this.method,
77
87
  total_amount: this.total_amount
78
88
  }));
79
- localStorage.setItem('subtotal', this.total_amount.toString());
89
+ this.localStorageRef.setItem('subtotal', this.total_amount.toString());
80
90
  this.showModal = true;
81
91
  this.closeModal = '';
82
92
  this.callState();
83
93
  }
84
94
  clearStorageState = () => {
85
- sessionStorage.removeItem('state');
86
- localStorage.removeItem('state');
87
- localStorage.removeItem('dataRedirect');
88
- localStorage.removeItem('dataDecidir');
89
- localStorage.removeItem('message');
90
- localStorage.removeItem('subMessage');
91
- localStorage.removeItem('subtotal');
95
+ if (!this.isBrowser)
96
+ return;
97
+ this.sessionStorageRef?.removeItem('state');
98
+ this.localStorageRef?.removeItem('state');
99
+ this.localStorageRef?.removeItem('dataRedirect');
100
+ this.localStorageRef?.removeItem('dataDecidir');
101
+ this.localStorageRef?.removeItem('message');
102
+ this.localStorageRef?.removeItem('subMessage');
103
+ this.localStorageRef?.removeItem('subtotal');
92
104
  };
93
105
  clickClose = () => {
94
106
  this.closeModal = 'cancel';
@@ -96,14 +108,18 @@ export class DecidirEcComponent extends ComponentHelper {
96
108
  this.processError('Se cancelo el pago con Decidir');
97
109
  };
98
110
  showMessage = () => {
99
- let message = localStorage.getItem('message') || undefined;
100
- let subMessage = localStorage.getItem('subMessage') || undefined;
111
+ if (!this.isBrowser || !this.localStorageRef)
112
+ return;
113
+ let message = this.localStorageRef.getItem('message') || undefined;
114
+ let subMessage = this.localStorageRef.getItem('subMessage') || undefined;
101
115
  message && this.toastrService.show(message, {}, '', { closeButton: true, timeOut: 6000 });
102
116
  subMessage && this.toastrService.show(subMessage, {}, '', { closeButton: true, timeOut: 6000 });
103
117
  };
104
118
  callState = () => {
119
+ if (!this.isBrowser || !this.localStorageRef)
120
+ return;
105
121
  try {
106
- let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state');
122
+ let state = this.closeModal != '' ? this.closeModal : this.localStorageRef.getItem('state');
107
123
  this.loading = true;
108
124
  state && this.showMessage();
109
125
  if (state) {
@@ -138,16 +154,20 @@ export class DecidirEcComponent extends ComponentHelper {
138
154
  // console.log("ERROR ENVIO BACK ", err);
139
155
  };
140
156
  getCheckoutDecidir = () => {
157
+ if (!this.isBrowser)
158
+ return;
141
159
  this.loading = true;
142
160
  this.dataDecidir = this.method;
143
161
  this.url = this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html');
144
162
  this.loading = false;
145
163
  // Escuchar mensajes del iframe para manejar la comunicación
146
- window.addEventListener('message', this.handleIframeMessage.bind(this), false);
164
+ this.windowRef?.addEventListener('message', this.messageListener, false);
147
165
  };
148
166
  handleIframeMessage = (event) => {
149
167
  // Verificar el origen por seguridad
150
- if (event.origin !== window.location.origin) {
168
+ if (!this.isBrowser || !this.windowRef)
169
+ return;
170
+ if (event.origin !== this.windowRef.location.origin) {
151
171
  return;
152
172
  }
153
173
  if (event.data && event.data.type === 'DECIDIR_PAYMENT') {
@@ -156,6 +176,8 @@ export class DecidirEcComponent extends ComponentHelper {
156
176
  }
157
177
  };
158
178
  processPayment = (paymentData) => {
179
+ if (!this.isBrowser)
180
+ return;
159
181
  this.loading = true;
160
182
  this.connection.post('shop-api/' + this.consts.getChannel() + '/decidir/' + this.cartService.cartToken + '/process-payment')
161
183
  .subscribe({
@@ -163,33 +185,33 @@ export class DecidirEcComponent extends ComponentHelper {
163
185
  this.loading = false;
164
186
  // console.log('Respuesta del backend:', response);
165
187
  if (response.status === 'approved' || response.status === 'partially_authorized') {
166
- localStorage.setItem('state', response.status === 'approved' ? 'success' : 'partially_authorized');
188
+ this.localStorageRef?.setItem('state', response.status === 'approved' ? 'success' : 'partially_authorized');
167
189
  if (response.message)
168
- localStorage.setItem('message', response.message);
190
+ this.localStorageRef?.setItem('message', response.message);
169
191
  if (response.subMessage)
170
- localStorage.setItem('subMessage', response.subMessage);
192
+ this.localStorageRef?.setItem('subMessage', response.subMessage);
171
193
  this.callState();
172
194
  }
173
195
  else {
174
- localStorage.setItem('state', 'failure');
196
+ this.localStorageRef?.setItem('state', 'failure');
175
197
  if (response.message)
176
- localStorage.setItem('message', response.message);
198
+ this.localStorageRef?.setItem('message', response.message);
177
199
  if (response.subMessage)
178
- localStorage.setItem('subMessage', response.subMessage);
200
+ this.localStorageRef?.setItem('subMessage', response.subMessage);
179
201
  this.callState();
180
202
  }
181
203
  },
182
204
  error: (error) => {
183
205
  this.loading = false;
184
206
  console.error('Error processing payment:', error);
185
- localStorage.setItem('state', 'failure');
207
+ this.localStorageRef?.setItem('state', 'failure');
186
208
  this.processError('Error al procesar el pago');
187
209
  this.callState();
188
210
  }
189
211
  });
190
212
  };
191
213
  resizeIframe = (obj) => {
192
- if (typeof document === 'undefined' || !obj.contentWindow || !obj.contentWindow.document)
214
+ if (!this.isBrowser || typeof document === 'undefined' || !obj.contentWindow || !obj.contentWindow.document)
193
215
  return;
194
216
  obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
195
217
  obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';
@@ -213,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
213
235
  }], ready: [{
214
236
  type: Output
215
237
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRpci1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBc0IsS0FBSyxFQUF3QixZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFPcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7QUFVcEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGVBQWU7SUFzQmhDO0lBQ1I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQTVCRixrQkFBa0IsQ0FBTTtJQUN4QixNQUFNLEdBQTBFLElBQUksQ0FBQztJQUNyRixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBTTtJQUNiLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDaEIsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDM0IsUUFBUSxHQUFlLElBQUksQ0FBQztJQUM1QixXQUFXLENBQU07SUFFcEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixXQUFXLEdB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S0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBPbkNoYW5nZXMsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NsYXNzZXMvY29tcG9uZW50LWhlbHBlclwiO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29yZUNvbnN0YW50c1NlcnZpY2UsIEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsLCBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMvcGFyYW1ldGVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRpbmcnO1xyXG5kZWNsYXJlIHZhciAkOiBhbnlcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtZGVjaWRpci1lYycsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdkZWNpZGlyLWVjLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydkZWNpZGlyLWVjLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTG9hZGluZ0Z1bGxFY0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERlY2lkaXJFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpIHBheW1lbnRTZXJ2aWNlSW5zdDogYW55O1xyXG4gICAgQElucHV0KCkgbWV0aG9kOiB7IGRlc2NyaXB0aW9uPzogc3RyaW5nOyBpbnN0cnVjdGlvbnM/OiBzdHJpbmc7IGNvZGU/OiBzdHJpbmcgfSB8IG51bGwgPSBudWxsO1xyXG4gICAgQElucHV0KCkgdG90YWxfYW1vdW50ID0gMDtcclxuICAgIEBJbnB1dCgpIGFsbERhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIHVzZXJfZGF0YSA9IG51bGw7XHJcbiAgICBAT3V0cHV0KCkgcmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBwcm90ZWN0ZWQgbW9kYWxSZWY6IGFueSB8IG51bGwgPSBudWxsO1xyXG4gICAgcHJvdGVjdGVkIGRhdGFEZWNpZGlyOiBhbnk7XHJcblxyXG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBpc0RvYmxlQXV0aCA9IGZhbHNlO1xyXG4gICAgcHVibGljIHVybHM6IGFueVtdID0gW107XHJcbiAgICBwdWJsaWMgdXJsOiBTYWZlUmVzb3VyY2VVcmwgfCB1bmRlZmluZWQ7XHJcbiAgICBwdWJsaWMgY2xvc2VNb2RhbCA9ICcnXHJcbiAgICBwdWJsaWMgcGFyYW1zTWVuc2FqZSA9ICcnXHJcbiAgICBwdWJsaWMgdmVudGFuYTogYW55XHJcbiAgICBwdWJsaWMgcGFyYW1zOiBhbnlcclxuICAgIHB1YmxpYyBzaG93TW9kYWwgPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBkYXRhUmVkaXJlY3QgPSAoKSA9PiB0aGlzLmFwaUNvbnN0cy5nZXRVcmxCYXNlKCkgKyAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvZGVjaWRpci8nICsgdGhpcy5jYXJ0U2VydmljZS5jYXJ0VG9rZW4gKyAnL3Byb2Nlc3MtcGF5bWVudCc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHVibGljIGNvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGFwaUNvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgICAgICBwdWJsaWMgcGFyYW1zU2VydmljZTogUGFyYW1ldGVyc1NlcnZpY2VcclxuICAgICAgICApIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5nZXRDaGVja291dERlY2lkaXIoKVxyXG4gICAgICAgIHRoaXMucGFyYW1zU2VydmljZS5nZXRQYXJhbWV0ZXJzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHJlc1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbVZhbHVlID0gdGhpcy5oYXNQYXJhbXMocmVzLCdwYXJ0aWFsbHlfYXV0aG9yaXplZF9kZWNpZGlyJyk7XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1zTWVuc2FqZSA9ICh0eXBlb2YgcGFyYW1WYWx1ZSA9PT0gJ3N0cmluZycgPyBwYXJhbVZhbHVlIDogbnVsbCkgfHwgJ1NlIGVzdMOhIHByb2Nlc2FuZG8gZWwgcGFnbyBjb24gdGFyamV0YS4nXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5lY09uSW5pdCgpXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy8gUmVtb3ZlciBlbCBsaXN0ZW5lciBkZSBtZW5zYWplc1xyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5oYW5kbGVJZnJhbWVNZXNzYWdlLCBmYWxzZSk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRSBERVNUUk9aQVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIlNFIENBTUJJT1wiKTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuTW9kYWwoKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhclN0b3JhZ2VTdGF0ZSgpXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2RhdGFSZWRpcmVjdCcsIHRoaXMuZGF0YVJlZGlyZWN0KCkpXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2RhdGFEZWNpZGlyJywgSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICAuLi50aGlzLm1ldGhvZCxcclxuICAgICAgICAgICAgdG90YWxfYW1vdW50OiB0aGlzLnRvdGFsX2Ftb3VudFxyXG4gICAgICAgIH0pKVxyXG4gICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3VidG90YWwnLCB0aGlzLnRvdGFsX2Ftb3VudC50b1N0cmluZygpKVxyXG4gICAgICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNsb3NlTW9kYWwgPSAnJ1xyXG4gICAgICAgIHRoaXMuY2FsbFN0YXRlKClcclxuICAgIH1cclxuXHJcbiAgICBjbGVhclN0b3JhZ2VTdGF0ZSA9ICgpID0+IHtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdzdGF0ZScpXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N0YXRlJylcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZGF0YVJlZGlyZWN0JylcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnZGF0YURlY2lkaXInKVxyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdtZXNzYWdlJylcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgnc3ViTWVzc2FnZScpXHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N1YnRvdGFsJylcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0Nsb3NlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCA9ICdjYW5jZWwnXHJcbiAgICAgICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignU2UgY2FuY2VsbyBlbCBwYWdvIGNvbiBEZWNpZGlyJylcclxuICAgIH1cclxuXHJcbiAgICBzaG93TWVzc2FnZSA9ICgpID0+IHtcclxuICAgICAgICBsZXQgbWVzc2FnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZXNzYWdlJykgfHwgdW5kZWZpbmVkXHJcbiAgICAgICAgbGV0IHN1Yk1lc3NhZ2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc3ViTWVzc2FnZScpIHx8IHVuZGVmaW5lZFxyXG4gICAgICAgIG1lc3NhZ2UgJiYgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3cobWVzc2FnZSx7fSwnJywge2Nsb3NlQnV0dG9uOnRydWUsdGltZU91dDo2MDAwfSk7XHJcbiAgICAgICAgc3ViTWVzc2FnZSAmJiB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdyhzdWJNZXNzYWdlLHt9LCcnLCB7Y2xvc2VCdXR0b246dHJ1ZSx0aW1lT3V0OjYwMDB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2FsbFN0YXRlID0gKCkgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCBzdGF0ZSA9IHRoaXMuY2xvc2VNb2RhbCAhPSAnJyA/IHRoaXMuY2xvc2VNb2RhbCA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdGF0ZScpXHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcclxuICAgICAgICAgICAgc3RhdGUgJiYgdGhpcy5zaG93TWVzc2FnZSgpO1xyXG4gICAgICAgICAgICBpZiAoc3RhdGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU3RvcmFnZVN0YXRlKClcclxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnc3VjY2VzcycpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAncGFydGlhbGx5X2F1dGhvcml6ZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWFkeS5lbWl0KHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IodGhpcy5wYXJhbXNNZW5zYWplKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09ICdjYW5jZWwnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ2ZhaWx1cmUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzRXJyb3IoJycpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpXHJcbiAgICAgICAgICAgIH0sIDUwMDApO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc0Vycm9yID0gKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coZXJyICE9ICcnID8gZXJyIDogJ3BheW1lbnQtZXJyb3InKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIkVSUk9SIEVOVklPIEJBQ0sgIFwiLCBlcnIpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldENoZWNrb3V0RGVjaWRpciA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5kYXRhRGVjaWRpciA9IHRoaXMubWV0aG9kO1xyXG4gICAgICAgIHRoaXMudXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKCdhc3NldHMvZGVjaWRpckZvcm1FYy5odG1sJylcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIEVzY3VjaGFyIG1lbnNhamVzIGRlbCBpZnJhbWUgcGFyYSBtYW5lamFyIGxhIGNvbXVuaWNhY2nDs25cclxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMuaGFuZGxlSWZyYW1lTWVzc2FnZS5iaW5kKHRoaXMpLCBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSWZyYW1lTWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgLy8gVmVyaWZpY2FyIGVsIG9yaWdlbiBwb3Igc2VndXJpZGFkXHJcbiAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiAhPT0gd2luZG93LmxvY2F0aW9uLm9yaWdpbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLnR5cGUgPT09ICdERUNJRElSX1BBWU1FTlQnKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdEZWNpZGlyQ29tcG9uZW50IC0gUHJvY2VzYW5kbyBwYWdvIGNvbiBwYXlsb2FkOicsIGV2ZW50LmRhdGEucGF5bG9hZCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1BheW1lbnQoZXZlbnQuZGF0YS5wYXlsb2FkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc1BheW1lbnQgPSAocGF5bWVudERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24ucG9zdCgnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RzLmdldENoYW5uZWwoKSArICcvZGVjaWRpci8nICsgdGhpcy5jYXJ0U2VydmljZS5jYXJ0VG9rZW4gKyAnL3Byb2Nlc3MtcGF5bWVudCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnUmVzcHVlc3RhIGRlbCBiYWNrZW5kOicsIHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAnYXBwcm92ZWQnIHx8IHJlc3BvbnNlLnN0YXR1cyA9PT0gJ3BhcnRpYWxseV9hdXRob3JpemVkJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCByZXNwb25zZS5zdGF0dXMgPT09ICdhcHByb3ZlZCcgPyAnc3VjY2VzcycgOiAncGFydGlhbGx5X2F1dGhvcml6ZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLm1lc3NhZ2UpIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtZXNzYWdlJywgcmVzcG9uc2UubWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWJNZXNzYWdlKSBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3ViTWVzc2FnZScsIHJlc3BvbnNlLnN1Yk1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzdGF0ZScsICdmYWlsdXJlJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlKSBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbWVzc2FnZScsIHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3ViTWVzc2FnZSkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Yk1lc3NhZ2UnLCByZXNwb25zZS5zdWJNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxsU3RhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBwYXltZW50OicsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3RhdGUnLCAnZmFpbHVyZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0Vycm9yKCdFcnJvciBhbCBwcm9jZXNhciBlbCBwYWdvJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxsU3RhdGUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzaXplSWZyYW1lID0gKG9iajogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIW9iai5jb250ZW50V2luZG93IHx8ICFvYmouY29udGVudFdpbmRvdy5kb2N1bWVudCkgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIG9iai5zdHlsZS5oZWlnaHQgPSBvYmouY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodCArICdweCc7XHJcbiAgICAgICAgb2JqLnN0eWxlLndpZHRoID0gb2JqLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuYm9keS5zY3JvbGxXaWR0aCArICdweCc7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cclxuICAgIDxoMz5Db250aW51YXIgY29uIGVsIHBhZ28gZW4gRGVjaWRpcjwvaDM+XHJcbiAgICBAaWYgKG1ldGhvZCkge1xyXG4gICAgPHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmRlc2NyaXB0aW9uIH19PC9wPlxyXG4gICAgPHAgY2xhc3M9XCJweC01XCI+e3sgbWV0aG9kLmluc3RydWN0aW9ucyB9fTwvcD5cclxuICAgIH1cclxuICAgIEBpZiAoIWxvYWRpbmcpIHtcclxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeSBjb21wcmFyXCIgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCI+UGFnYXI8L2J1dHRvbj5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBqdXNpdGZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yXCI+XHJcbiAgICAgICAgPGFwcC1sb2FkaW5nLWZ1bGwtZWM+PC9hcHAtbG9hZGluZy1mdWxsLWVjPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbkBpZiAoc2hvd01vZGFsKSB7XHJcbjxkaXYgY2xhc3M9XCJtb2RhbC1iYWNrZHJvcFwiIChjbGljayk9XCJjbGlja0Nsb3NlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1kaWFsb2cgbW9kYWwtbGdcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGF5bWVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gSWZyYW1lIGRlbCBmb3JtdWxhcmlvIGRlIGRlY2lkaXIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlmcmFtZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBbc3JjXT1cInVybFwiIGZyYW1lYm9yZGVyPVwiMFwiIGNsYXNzPVwicGF5bWVudC1pZnJhbWVcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRpci1lYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtY29tcG9uZW50cy93aWRnZXRzLWVjL2RlY2lkaXItZWMvZGVjaWRpci1lYy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBc0IsS0FBSyxFQUF3QixZQUFZLEVBQWEsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFdBQVcsRUFBVSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU9wRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7OztBQVVwRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsZUFBZTtJQTRCaEM7SUFDUjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBbENGLGtCQUFrQixDQUFNO0lBQ3hCLE1BQU0sR0FBMEUsSUFBSSxDQUFDO0lBQ3JGLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFNO0lBQ2IsU0FBUyxHQUFHLElBQUksQ0FBQztJQUNoQixLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMzQixRQUFRLEdBQWUsSUFBSSxDQUFDO0lBQzVCLFdBQVcsQ0FBTTtJQUVwQixP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RkFBbEIsa0JBQWtCLHFTQ3JCL0IsdXNDQWlDQSwrbEhEZGMsWUFBWSw4QkFBRSxXQUFXLCtCQUFFLHNCQUFzQjs7NEZBRWxELGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFdBR1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixDQUFDO2dVQUluRCxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIE9uSW5pdCwgRWxlbWVudFJlZiwgSW5wdXQsIFJlbmRlcmVyMiwgT25DaGFuZ2VzLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgaW5qZWN0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tIFwiLi4vLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyXCI7XHJcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2Nvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VjLXNlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQ29uc3RhbnRzU2VydmljZSwgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZWMtc2VydmljZXMvY2FydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwsIFNhZmVVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9lYy1zZXJ2aWNlcy9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2FkaW5nRnVsbEVjQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGluZyc7XHJcbmRlY2xhcmUgdmFyICQ6IGFueVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1kZWNpZGlyLWVjJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ2RlY2lkaXItZWMuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ2RlY2lkaXItZWMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBMb2FkaW5nRnVsbEVjQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVjaWRpckVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgQElucHV0KCkgcGF5bWVudFNlcnZpY2VJbnN0OiBhbnk7XHJcbiAgICBASW5wdXQoKSBtZXRob2Q6IHsgZGVzY3JpcHRpb24/OiBzdHJpbmc7IGluc3RydWN0aW9ucz86IHN0cmluZzsgY29kZT86IHN0cmluZyB9IHwgbnVsbCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSB0b3RhbF9hbW91bnQgPSAwO1xyXG4gICAgQElucHV0KCkgYWxsRGF0YTogYW55O1xyXG4gICAgQElucHV0KCkgdXNlcl9kYXRhID0gbnVsbDtcclxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIHByb3RlY3RlZCBtb2RhbFJlZjogYW55IHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcm90ZWN0ZWQgZGF0YURlY2lkaXI6IGFueTtcclxuXHJcbiAgICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHVibGljIGlzRG9ibGVBdXRoID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgdXJsczogYW55W10gPSBbXTtcclxuICAgIHB1YmxpYyB1cmw6IFNhZmVSZXNvdXJjZVVybCB8IHVuZGVmaW5lZDtcclxuICAgIHB1YmxpYyBjbG9zZU1vZGFsID0gJydcclxuICAgIHB1YmxpYyBwYXJhbXNNZW5zYWplID0gJydcclxuICAgIHB1YmxpYyB2ZW50YW5hOiBhbnlcclxuICAgIHB1YmxpYyBwYXJhbXM6IGFueVxyXG4gICAgcHVibGljIHNob3dNb2RhbCA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIGRhdGFSZWRpcmVjdCA9ICgpID0+IHRoaXMuYXBpQ29uc3RzLmdldFVybEJhc2UoKSArICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdHMuZ2V0Q2hhbm5lbCgpICsgJy9kZWNpZGlyLycgKyB0aGlzLmNhcnRTZXJ2aWNlLmNhcnRUb2tlbiArICcvcHJvY2Vzcy1wYXltZW50JztcclxuICAgIHByaXZhdGUgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XHJcbiAgICBwcml2YXRlIGlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XHJcbiAgICBwcml2YXRlIHdpbmRvd1JlZiA9IHRoaXMuaXNCcm93c2VyID8gd2luZG93IDogbnVsbDtcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlUmVmID0gdGhpcy53aW5kb3dSZWY/LmxvY2FsU3RvcmFnZSA/PyBudWxsO1xyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RvcmFnZVJlZiA9IHRoaXMud2luZG93UmVmPy5zZXNzaW9uU3RvcmFnZSA/PyBudWxsO1xyXG4gICAgcHJpdmF0ZSBtZXNzYWdlTGlzdGVuZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4gdGhpcy5oYW5kbGVJZnJhbWVNZXNzYWdlKGV2ZW50KTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwdWJsaWMgY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHRvYXN0clNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBjYXJ0U2VydmljZTogQ2FydFNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGFjdGl2ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICAgICAgcHVibGljIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHB1YmxpYyBwYXJhbXNTZXJ2aWNlOiBQYXJhbWV0ZXJzU2VydmljZVxyXG4gICAgICAgICkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmdldENoZWNrb3V0RGVjaWRpcigpXHJcbiAgICAgICAgdGhpcy5wYXJhbXNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyYW1zID0gcmVzXHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtVmFsdWUgPSB0aGlzLmhhc1BhcmFtcyhyZXMsJ3BhcnRpYWxseV9hdXRob3JpemVkX2RlY2lkaXInKTtcclxuICAgICAgICAgICAgdGhpcy5wYXJhbXNNZW5zYWplID0gKHR5cGVvZiBwYXJhbVZhbHVlID09PSAnc3RyaW5nJyA/IHBhcmFtVmFsdWUgOiBudWxsKSB8fCAnU2UgZXN0w6EgcHJvY2VzYW5kbyBlbCBwYWdvIGNvbiB0YXJqZXRhLidcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmVjT25Jbml0KClcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICAvLyBSZW1vdmVyIGVsIGxpc3RlbmVyIGRlIG1lbnNhamVzXHJcbiAgICAgICAgaWYgKHRoaXMuaXNCcm93c2VyICYmIHRoaXMud2luZG93UmVmKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93UmVmLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCB0aGlzLm1lc3NhZ2VMaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiU0UgREVTVFJPWkFcIik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJTRSBDQU1CSU9cIik7XHJcbiAgICB9XHJcblxyXG4gICAgb3Blbk1vZGFsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMubG9jYWxTdG9yYWdlUmVmKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuY2xlYXJTdG9yYWdlU3RhdGUoKVxyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlUmVmLnNldEl0ZW0oJ2RhdGFSZWRpcmVjdCcsIHRoaXMuZGF0YVJlZGlyZWN0KCkpXHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VSZWYuc2V0SXRlbSgnZGF0YURlY2lkaXInLCBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgIC4uLnRoaXMubWV0aG9kLFxyXG4gICAgICAgICAgICB0b3RhbF9hbW91bnQ6IHRoaXMudG90YWxfYW1vdW50XHJcbiAgICAgICAgfSkpXHJcbiAgICAgICAgIHRoaXMubG9jYWxTdG9yYWdlUmVmLnNldEl0ZW0oJ3N1YnRvdGFsJywgdGhpcy50b3RhbF9hbW91bnQudG9TdHJpbmcoKSlcclxuICAgICAgICB0aGlzLnNob3dNb2RhbCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jbG9zZU1vZGFsID0gJydcclxuICAgICAgICB0aGlzLmNhbGxTdGF0ZSgpXHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJTdG9yYWdlU3RhdGUgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlUmVmPy5yZW1vdmVJdGVtKCdzdGF0ZScpXHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnJlbW92ZUl0ZW0oJ3N0YXRlJylcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVJlZj8ucmVtb3ZlSXRlbSgnZGF0YVJlZGlyZWN0JylcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVJlZj8ucmVtb3ZlSXRlbSgnZGF0YURlY2lkaXInKVxyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlUmVmPy5yZW1vdmVJdGVtKCdtZXNzYWdlJylcclxuICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVJlZj8ucmVtb3ZlSXRlbSgnc3ViTWVzc2FnZScpXHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnJlbW92ZUl0ZW0oJ3N1YnRvdGFsJylcclxuICAgIH1cclxuXHJcbiAgICBjbGlja0Nsb3NlID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2xvc2VNb2RhbCA9ICdjYW5jZWwnXHJcbiAgICAgICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignU2UgY2FuY2VsbyBlbCBwYWdvIGNvbiBEZWNpZGlyJylcclxuICAgIH1cclxuXHJcbiAgICBzaG93TWVzc2FnZSA9ICgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICF0aGlzLmxvY2FsU3RvcmFnZVJlZikgcmV0dXJuO1xyXG5cclxuICAgICAgICBsZXQgbWVzc2FnZSA9IHRoaXMubG9jYWxTdG9yYWdlUmVmLmdldEl0ZW0oJ21lc3NhZ2UnKSB8fCB1bmRlZmluZWRcclxuICAgICAgICBsZXQgc3ViTWVzc2FnZSA9IHRoaXMubG9jYWxTdG9yYWdlUmVmLmdldEl0ZW0oJ3N1Yk1lc3NhZ2UnKSB8fCB1bmRlZmluZWRcclxuICAgICAgICBtZXNzYWdlICYmIHRoaXMudG9hc3RyU2VydmljZS5zaG93KG1lc3NhZ2Use30sJycsIHtjbG9zZUJ1dHRvbjp0cnVlLHRpbWVPdXQ6NjAwMH0pO1xyXG4gICAgICAgIHN1Yk1lc3NhZ2UgJiYgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coc3ViTWVzc2FnZSx7fSwnJywge2Nsb3NlQnV0dG9uOnRydWUsdGltZU91dDo2MDAwfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNhbGxTdGF0ZSA9ICgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNCcm93c2VyIHx8ICF0aGlzLmxvY2FsU3RvcmFnZVJlZikgcmV0dXJuO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxldCBzdGF0ZSA9IHRoaXMuY2xvc2VNb2RhbCAhPSAnJyA/IHRoaXMuY2xvc2VNb2RhbCA6IHRoaXMubG9jYWxTdG9yYWdlUmVmLmdldEl0ZW0oJ3N0YXRlJylcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxyXG4gICAgICAgICAgICBzdGF0ZSAmJiB0aGlzLnNob3dNZXNzYWdlKCk7XHJcbiAgICAgICAgICAgIGlmIChzdGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJTdG9yYWdlU3RhdGUoKVxyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09ICdzdWNjZXNzJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVhZHkuZW1pdCh0cnVlKVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlID09ICdwYXJ0aWFsbHlfYXV0aG9yaXplZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlYWR5LmVtaXQodHJ1ZSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcih0aGlzLnBhcmFtc01lbnNhamUpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT0gJ2NhbmNlbCcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PSAnZmFpbHVyZScpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignJylcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FsbFN0YXRlKClcclxuICAgICAgICAgICAgfSwgNTAwMCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9jZXNzRXJyb3IgPSAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdyhlcnIgIT0gJycgPyBlcnIgOiAncGF5bWVudC1lcnJvcicpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiRVJST1IgRU5WSU8gQkFDSyAgXCIsIGVycik7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hlY2tvdXREZWNpZGlyID0gKCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICAgICAgdGhpcy5kYXRhRGVjaWRpciA9IHRoaXMubWV0aG9kO1xyXG4gICAgICAgIHRoaXMudXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKCdhc3NldHMvZGVjaWRpckZvcm1FYy5odG1sJylcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgICAgIFxyXG4gICAgICAgIC8vIEVzY3VjaGFyIG1lbnNhamVzIGRlbCBpZnJhbWUgcGFyYSBtYW5lamFyIGxhIGNvbXVuaWNhY2nDs25cclxuICAgIHRoaXMud2luZG93UmVmPy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgdGhpcy5tZXNzYWdlTGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUlmcmFtZU1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xyXG4gICAgICAgIC8vIFZlcmlmaWNhciBlbCBvcmlnZW4gcG9yIHNlZ3VyaWRhZFxyXG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgIXRoaXMud2luZG93UmVmKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChldmVudC5vcmlnaW4gIT09IHRoaXMud2luZG93UmVmLmxvY2F0aW9uLm9yaWdpbikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLnR5cGUgPT09ICdERUNJRElSX1BBWU1FTlQnKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdEZWNpZGlyQ29tcG9uZW50IC0gUHJvY2VzYW5kbyBwYWdvIGNvbiBwYXlsb2FkOicsIGV2ZW50LmRhdGEucGF5bG9hZCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc1BheW1lbnQoZXZlbnQuZGF0YS5wYXlsb2FkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvY2Vzc1BheW1lbnQgPSAocGF5bWVudERhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgXHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLnBvc3QoJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0cy5nZXRDaGFubmVsKCkgKyAnL2RlY2lkaXIvJyArIHRoaXMuY2FydFNlcnZpY2UuY2FydFRva2VuICsgJy9wcm9jZXNzLXBheW1lbnQnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1Jlc3B1ZXN0YSBkZWwgYmFja2VuZDonLCByZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gJ2FwcHJvdmVkJyB8fCByZXNwb25zZS5zdGF0dXMgPT09ICdwYXJ0aWFsbHlfYXV0aG9yaXplZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnNldEl0ZW0oJ3N0YXRlJywgcmVzcG9uc2Uuc3RhdHVzID09PSAnYXBwcm92ZWQnID8gJ3N1Y2Nlc3MnIDogJ3BhcnRpYWxseV9hdXRob3JpemVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5tZXNzYWdlKSB0aGlzLmxvY2FsU3RvcmFnZVJlZj8uc2V0SXRlbSgnbWVzc2FnZScsIHJlc3BvbnNlLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3ViTWVzc2FnZSkgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnNldEl0ZW0oJ3N1Yk1lc3NhZ2UnLCByZXNwb25zZS5zdWJNZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxsU3RhdGUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvY2FsU3RvcmFnZVJlZj8uc2V0SXRlbSgnc3RhdGUnLCAnZmFpbHVyZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UubWVzc2FnZSkgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnNldEl0ZW0oJ21lc3NhZ2UnLCByZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Yk1lc3NhZ2UpIHRoaXMubG9jYWxTdG9yYWdlUmVmPy5zZXRJdGVtKCdzdWJNZXNzYWdlJywgcmVzcG9uc2Uuc3ViTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbFN0YXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgcGF5bWVudDonLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VSZWY/LnNldEl0ZW0oJ3N0YXRlJywgJ2ZhaWx1cmUnKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NFcnJvcignRXJyb3IgYWwgcHJvY2VzYXIgZWwgcGFnbycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsbFN0YXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2l6ZUlmcmFtZSA9IChvYmo6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhb2JqLmNvbnRlbnRXaW5kb3cgfHwgIW9iai5jb250ZW50V2luZG93LmRvY3VtZW50KSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgb2JqLnN0eWxlLmhlaWdodCA9IG9iai5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0ICsgJ3B4JztcclxuICAgICAgICBvYmouc3R5bGUud2lkdGggPSBvYmouY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoICsgJ3B4JztcclxuICAgIH1cclxuXHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgPGgzPkNvbnRpbnVhciBjb24gZWwgcGFnbyBlbiBEZWNpZGlyPC9oMz5cclxuICAgIEBpZiAobWV0aG9kKSB7XHJcbiAgICA8cCBjbGFzcz1cInB4LTVcIj57eyBtZXRob2QuZGVzY3JpcHRpb24gfX08L3A+XHJcbiAgICA8cCBjbGFzcz1cInB4LTVcIj57eyBtZXRob2QuaW5zdHJ1Y3Rpb25zIH19PC9wPlxyXG4gICAgfVxyXG4gICAgQGlmICghbG9hZGluZykge1xyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNvbXByYXJcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIj5QYWdhcjwvYnV0dG9uPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c2l0ZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIG10LTJcIj5cclxuICAgICAgICA8YXBwLWxvYWRpbmctZnVsbC1lYz48L2FwcC1sb2FkaW5nLWZ1bGwtZWM+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDwvZGl2PlxyXG5cclxuQGlmIChzaG93TW9kYWwpIHtcclxuPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tkcm9wXCIgKGNsaWNrKT1cImNsaWNrQ2xvc2UoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1sZ1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudFwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXltZW50LWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBJZnJhbWUgZGVsIGZvcm11bGFyaW8gZGUgZGVjaWRpciAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWZyYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIFtzcmNdPVwidXJsXCIgZnJhbWVib3JkZXI9XCIwXCIgY2xhc3M9XCJwYXltZW50LWlmcmFtZVwiPjwvaWZyYW1lPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==