ngx-histaff-alpha 0.3.7 → 0.3.8

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.
@@ -112,7 +112,6 @@ export class AppInitializationService {
112
112
  this.organizationService.status$.next(savedObject);
113
113
  }
114
114
  }
115
- //this.initializing$.next(false);
116
115
  }, 200);
117
116
  }));
118
117
  }
@@ -190,6 +189,7 @@ export class AppInitializationService {
190
189
  this.authService.data$.next(this.pendingAuthData$.value);
191
190
  this.pendingAuthData$.next(null);
192
191
  this.authService.authenticated$.next(true);
192
+ this.initializing$.next(false);
193
193
  }
194
194
  else {
195
195
  this.authService.tryRestoreSession()
@@ -221,7 +221,7 @@ export class AppInitializationService {
221
221
  this.organizationService.status$.next(savedObject);
222
222
  }
223
223
  }
224
- //this.initializing$.next(false);
224
+ this.initializing$.next(false);
225
225
  }, 200);
226
226
  });
227
227
  }
@@ -234,7 +234,7 @@ export class AppInitializationService {
234
234
  console.log("appInitialize() zip() error: ", e);
235
235
  }
236
236
  finally {
237
- this.initializing$.next(false);
237
+ console.log("finally");
238
238
  }
239
239
  }
240
240
  ngOnDestroy() {
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
249
249
  providedIn: 'root'
250
250
  }]
251
251
  }], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.MultiLanguageService }, { type: i3.LayoutService }, { type: i4.OrganizationService }, { type: i5.RoutingService }, { type: i6.AppConfigService }, { type: i7.AppService }] });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQUs3QyxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBd0IsRUFDeEIsR0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxVQUFzQjtRQU50QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFsQmhDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNwRCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFbkMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFtQixJQUFJLENBQUMsQ0FBQztRQUUvRCxjQUFTLEdBQVksS0FBSyxDQUFDO0lBWTNCLENBQUM7SUFFRCxhQUFhO1FBRVgsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFNLEVBQU8sRUFBRTtZQUM5QixJQUFJLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQTtZQUNoQyxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEtBQUs7b0JBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO3dCQUM3QixLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO3FCQUN2QjtvQkFDRCxPQUFPLEtBQUssQ0FBQTtnQkFDZCxDQUFDLENBQUMsQ0FBQTthQUNIO2lCQUFNO2dCQUNMLElBQUksR0FBRyxFQUFFLENBQUE7Z0JBQ1QsS0FBSyxPQUFPLElBQUksQ0FBQyxFQUFFO29CQUNqQixJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQzdCLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTt3QkFDbkYsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTt3QkFDbEIsSUFBSSxLQUFLLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxFQUFFOzRCQUM5RSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO3lCQUN2Qjt3QkFDQSxJQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFBO3FCQUM5QjtpQkFDRjthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDLENBQUE7UUFFRCxJQUFJO1lBRUYsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFFbEUsUUFBUSxFQUNSLFFBQVEsRUFDUixVQUFVLEVBQ1YsYUFBYSxFQUViLFVBQVUsRUFDVixXQUFXLEVBQ1gscUJBQXFCLEVBRXJCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFFakIsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFFaEIsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBRWQsRUFBRSxFQUFFO2dCQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO2dCQUVwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztnQkFFcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO2dCQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixHQUFHLHdCQUF3QixDQUFDO2dCQUMxRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7Z0JBRTVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO2dCQUNoRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztnQkFFMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztnQkFFcEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUM1RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLGlCQUFpQixJQUFJLENBQUMsS0FBSyxFQUFFO29CQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDbkIsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFFZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDOzRCQUNsQyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0NBRWxCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUVyQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQ0FDckYsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxLQUFLLEdBQUcsRUFBRTt3Q0FDMUQsTUFBTSxJQUFJLEdBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUE7d0NBQ3RDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7NENBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0RBQ3pCLEdBQUcsSUFBSSxDQUFDLFNBQVM7Z0RBQ2pCLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRTs2Q0FDaEMsQ0FBQyxDQUFBO3lDQUNIO3FDQUNGO3lDQUFNO3dDQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO3FDQUN2QjtvQ0FDRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQ0FFaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTt3Q0FDZCxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7NENBQ2xCLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzRDQUNwRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFxQixDQUFDLENBQUE7NENBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7NENBRTFELE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzRDQUNwRSxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsRUFBRTtnREFDMUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dEQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7NkNBQzFEOzRDQUVELE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDOzRDQUMxRSxJQUFJLHVCQUF1QixFQUFFO2dEQUMzQixNQUFNLFdBQVcsR0FBcUIsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dEQUMxRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzs2Q0FDcEQ7eUNBQ0Y7d0NBQ0QsaUNBQWlDO29DQUNuQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0NBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FBQTs2QkFHRjtpQ0FBTTtnQ0FFTCx1RkFBdUY7Z0NBQ3ZGLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixVQUFVLENBQUM7Z0NBRS9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQW1CRTs2QkFHSDt3QkFFSCxDQUFDLENBQUMsQ0FBQTtxQkFFSDtpQkFFRjtnQkFFRCxJQUFJLEtBQXdCLENBQUM7Z0JBQzdCLElBQUksS0FBd0IsQ0FBQztnQkFDN0IsSUFBSSxLQUF3QixDQUFDO2dCQUM3QixJQUFJLEtBQXdCLENBQUM7Z0JBRTdCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDdEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDaEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBRWQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLEdBQUcsQ0FBQzt3QkFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyw2QkFBNkIsRUFBRTt3QkFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQztxQkFDcEQsQ0FBQyxDQUFDLElBQUksQ0FDTCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FDaEQsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBRXRCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQTt3QkFFekMsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN4QixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7NEJBQzlCLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzRCQUNmLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7Z0NBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7NkJBQ3RDO3lCQUNGO3dCQUVELE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDakMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFOzRCQUM5QixLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQTs0QkFDZixJQUFJLEtBQUssQ0FBQyxVQUFVLEtBQUssR0FBRyxFQUFFO2dDQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDOzZCQUMxRDt5QkFDRjt3QkFFRCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3hCLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTs0QkFDOUIsS0FBSyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7NEJBQ2YsSUFBSSxLQUFLLENBQUMsVUFBVSxLQUFLLEdBQUcsRUFBRTtnQ0FDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQzs2QkFDekQ7eUJBQ0Y7d0JBRUQsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN4QixJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7NEJBQzlCLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFBOzRCQUNmLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7Z0NBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7NkJBQ3pEO3lCQUNGO3dCQUVELElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLFVBQVUsS0FBSyxHQUFHLEVBQUU7NEJBRXZGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7NEJBRS9CLElBQUksQ0FBQyxDQUFDLG1CQUFtQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO2dDQUMxRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQ0FDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDekQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQ0FDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDOzZCQUM1QztpQ0FBTTtnQ0FDTCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFO3FDQUNqQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0NBRWIsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxLQUFLLEdBQUcsRUFBRTt3Q0FDMUQsTUFBTSxJQUFJLEdBQXNCLENBQUMsQ0FBQyxJQUFJLENBQUE7d0NBQ3RDLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxHQUFHLEVBQUU7NENBQzNCLE1BQU0sV0FBVyxHQUFjO2dEQUM3QixHQUFHLElBQUksQ0FBQyxTQUFTO2dEQUNqQixTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7NkNBQ2hDLENBQUE7NENBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7NENBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzt5Q0FDMUM7cUNBQ0Y7b0NBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRTt3Q0FDZCxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUU7NENBQ2xCLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzRDQUNwRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFxQixDQUFDLENBQUE7NENBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7NENBRTFELE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDOzRDQUNwRSxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsRUFBRTtnREFDMUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dEQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7NkNBQzFEOzRDQUVELE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDOzRDQUMxRSxJQUFJLHVCQUF1QixFQUFFO2dEQUMzQixNQUFNLFdBQVcsR0FBcUIsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2dEQUMxRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzs2Q0FDcEQ7eUNBQ0Y7d0NBQ0QsaUNBQWlDO29DQUNuQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7Z0NBRVQsQ0FBQyxDQUFDLENBQUE7NkJBQ0w7eUJBQ0Y7b0JBRUgsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtnQkFHSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1lBRUgsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQzdEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ2hEO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFFSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDL0MsQ0FBQzs4R0E3VFUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHppcCwgY2F0Y2hFcnJvciwgb2YsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgSUF1dGhEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JQXV0aERhdGEnO1xyXG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4vcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4vb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRXZlcnlUcmVlU3RhdHVzIH0gZnJvbSAnLi4vbGlicmFyaWVzL3NlcnZpY2VzL3JlY3Vyc2l2ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4vYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tICdhbHBoYS1nbG9iYWwtY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiBcclxuICBpbml0aWFsaXppbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzc29Qcm9jZXNzaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpbWFyeUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVTZXNzaW9uT2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVuZGluZ0F1dGhEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF1dGhEYXRhIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHNzb0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBhcHBJbml0aWFsaXplKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IHRvQ2FtZWwgPSAobzogYW55KTogYW55ID0+IHtcclxuICAgICAgdmFyIG5ld08sIG9yaWdLZXksIG5ld0tleSwgdmFsdWVcclxuICAgICAgaWYgKG8gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgIHJldHVybiBvLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB0b0NhbWVsKHZhbHVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdPID0ge31cclxuICAgICAgICBmb3IgKG9yaWdLZXkgaW4gbykge1xyXG4gICAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkob3JpZ0tleSkpIHtcclxuICAgICAgICAgICAgbmV3S2V5ID0gKG9yaWdLZXkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBvcmlnS2V5LnNsaWNlKDEpIHx8IG9yaWdLZXkpLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgdmFsdWUgPSBvW29yaWdLZXldXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5IHx8ICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSkge1xyXG4gICAgICAgICAgICAgIHZhbHVlID0gdG9DYW1lbCh2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAobmV3TyBhcyBhbnkpW25ld0tleV0gPSB2YWx1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3T1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBmZXRjaCgnLi4vLi4vYXNzZXRzL2FwcC5jb25maWcuanNvbicpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpLnRoZW4oKHtcclxuXHJcbiAgICAgICAgQVBQX1RZUEUsXHJcbiAgICAgICAgQkFTRV9VUkwsICAgICBcclxuICAgICAgICBHT0xJVkVfVVJMLFxyXG4gICAgICAgIERFQlVHX0VOQUJMRUQsXHJcblxyXG4gICAgICAgIExPR09fTE9HSU4sXHJcbiAgICAgICAgTE9HT19IRUFERVIsXHJcbiAgICAgICAgSE9NRV9CQUNLR1JPVU5EX0lNQUdFLCBcclxuXHJcbiAgICAgICAgT0FVVEgyX09JRENfRU5BQkxFRCxcclxuICAgICAgICBPQVVUSDJfT0lEQ19DTElFTlRfSUQsXHJcbiAgICAgICAgT0FVVEgyX09JRENfTE9HSU5fVVJJLFxyXG4gICAgICAgIE9BVVRIMl9PSURDX1JFRElSRUNUX1VSSSxcclxuICAgICAgICBPQVVUSDJfT0lEQ19TQ09QRSxcclxuXHJcbiAgICAgICAgU0FNTDJBREZTX0VOQUJMRUQsIFxyXG4gICAgICAgIFNBTUwyQURGU19JRFAsIFxyXG4gICAgICAgIFNBTUwyQURGU19JREVOVElGSUVSLFxyXG4gICAgICAgIFNBTUwyQURGU19XQV9TSUdOSU4sXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05PVVQsXHJcbiAgICAgICAgU0FNTDJBREZTX1dSRVBMWSxcclxuXHJcbiAgICAgICAgSEFOR0ZJUkVfUEFUSCxcclxuICAgICAgICBTVEFUSUNfRk9MREVSLFxyXG4gICAgICAgIEFWQVRBUl9GT0xERVIsXHJcblxyXG4gICAgICB9KSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9IEFQUF9UWVBFO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCA9IEJBU0VfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5HT0xJVkVfVVJMID0gR09MSVZFX1VSTDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuREVCVUdfRU5BQkxFRCA9IERFQlVHX0VOQUJMRUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0xPR0lOID0gTE9HT19MT0dJTjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19IRUFERVIgPSBMT0dPX0hFQURFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSE9NRV9CQUNLR1JPVU5EX0lNQUdFID0gSE9NRV9CQUNLR1JPVU5EX0lNQUdFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfRU5BQkxFRCA9IE9BVVRIMl9PSURDX0VOQUJMRUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0NMSUVOVF9JRCA9IE9BVVRIMl9PSURDX0NMSUVOVF9JRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfTE9HSU5fVVJJID0gT0FVVEgyX09JRENfTE9HSU5fVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19SRURJUkVDVF9VUkkgPSBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkk7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX1NDT1BFID0gT0FVVEgyX09JRENfU0NPUEU7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfRU5BQkxFRCA9IFNBTUwyQURGU19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQID0gU0FNTDJBREZTX0lEUDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVIgPSBTQU1MMkFERlNfSURFTlRJRklFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiA9IFNBTUwyQURGU19XQV9TSUdOSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOT1VUID0gU0FNTDJBREZTX1dBX1NJR05PVVQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFkgPSBTQU1MMkFERlNfV1JFUExZO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSEFOR0ZJUkVfUEFUSCA9IEhBTkdGSVJFX1BBVEg7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgPSBTVEFUSUNfRk9MREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVkFUQVJfRk9MREVSID0gQVZBVEFSX0ZPTERFUjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy90aGlzLmluaXRpYWxpemluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwKVxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIEFMV0FZUyBSRURJUkVDVCBUTyBUSEUgQU5HVUxBUiBBUFBMSUNBVElPTiBMT0dJTiBQQUdFIElGIE5PIFNFU1NJT04gRk9VTkQgKD9sb2NhbD0xKVxyXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9P2xvY2FsPTFgO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qXHJcblxyXG4gICAgICAgICAgICAgICAgLy9JRiBUSEUgQU5HVUxBUiBBUFBMSUNBVElPTiBMT0dJTiBQQUdFIElTIE5PVCBNQU5EQVRPUlkgPT4gQ0FMTCBTQU1MMi4wIElkUFxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVWZXJpZmllciA9IHRoaXMuYXV0aFNlcnZpY2UuZ2VuZXJhdGVSYW5kb21Db2RlVmVyaWZpZXIoNDMpO1xyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJjb2RlVmVyaWZpZXJcIiwgY29kZVZlcmlmaWVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2VuZXJhdGVDb2RlQ2hhbGxlbmdlRnJvbVZlcmlmaWVyKGNvZGVWZXJpZmllcikudGhlbihjb2RlQ2hhbGxlbmdlID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgYXV0aG9yaXphdGlvblVybCA9IGAke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQfT9gICtcclxuICAgICAgICAgICAgICAgICAgICBgd3RyZWFsbT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURFTlRJRklFUn1gICtcclxuICAgICAgICAgICAgICAgICAgICBgJndhPSR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOSU4gfHwgJ3dzaWduaW4xLjAnfWAgKyBcclxuICAgICAgICAgICAgICAgICAgICBgJndyZXBseT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTH0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV1JFUExZfWAgKyBcclxuICAgICAgICAgICAgICAgICAgICBgJndjdHg9JHtjb2RlQ2hhbGxlbmdlfWBcclxuICAgICAgICAgICAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYWxlcnQoYXV0aG9yaXphdGlvblVybCk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXV0aG9yaXphdGlvblVybDtcclxuXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICovXHJcblxyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGJvZHkxOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTI6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5MzogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHk0OiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcih4ID0+ICF4KVxyXG4gICAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB6aXAoW1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tbHMucmVhZEFsbE1pbmkoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucmVhZEFsbEZ1bmN0aW9uV2l0aEFsbEFjdGlvbnMoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuZ2V0SWdub3JlUGF0aHMoKSxcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwU2VydmljZS5nZXQoYXBpLlBPUlRBTF9ST1VURV9SRUFEX0FMTF9NSU5JKVxyXG4gICAgICAgICAgICAgIF0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKHZhbCA9PiBvZihgVGhlIGFwcCBjYXVnaHQ6ICR7dmFsfWApKVxyXG4gICAgICAgICAgICAgICkuc3Vic2NyaWJlKHJlc3BvbnNlcyA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhcHBJbml0aWFsaXplKCkgemlwKCkgZG9uZVwiKVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgxID0gcmVzcG9uc2VzWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgxLm9rICYmIHgxLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkxID0geDEuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTEuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tbHMuZGF0YSQubmV4dChib2R5MS5pbm5lckJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgeDIgPSB0b0NhbWVsKHJlc3BvbnNlc1sxXSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoeDIub2sgJiYgeDIuc3RhdHVzID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgYm9keTIgPSB4Mi5ib2R5XHJcbiAgICAgICAgICAgICAgICAgIGlmIChib2R5Mi5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmZ1bGxGdW5jdGlvbnMkLm5leHQoYm9keTIuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgzID0gcmVzcG9uc2VzWzJdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgzLm9rICYmIHgzLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkzID0geDMuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTMuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5pZ25vcmVkUGF0aHMkLm5leHQoYm9keTMuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHg0ID0gcmVzcG9uc2VzWzNdO1xyXG4gICAgICAgICAgICAgICAgaWYgKHg0Lm9rICYmIHg0LnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHk0ID0geDQuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTQuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5wb3J0YWxSb3V0ZXMkLm5leHQoYm9keTQuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChib2R5MT8uc3RhdHVzQ29kZSA9PT0gMjAwICYmIGJvZHkyPy5zdGF0dXNDb2RlID09PSAyMDAgJiYgYm9keTM/LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmltYXJ5SW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgaWYgKCEhT0FVVEgyX09JRENfRU5BQkxFRCAmJiAhIXRoaXMucGVuZGluZ0F1dGhEYXRhJC52YWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXNzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dCh0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dGhEYXRhJC5uZXh0KG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRyeVJlc3RvcmVTZXNzaW9uKClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keTogSUZvcm1hdGVkUmVzcG9uc2UgPSB4LmJvZHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0F1dGhEYXRhOiBJQXV0aERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblRpbWU6IG5ldyBEYXRlKCkuZ2V0VGltZSgpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZGF0YSQubmV4dChuZXdBdXRoRGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xlZnRiYXJSZWR1Y2VkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZWZ0YmFyUmVkdWNlZCA9IEpTT04ucGFyc2UobGVmdGJhclJlZHVjZWRTdHJpbmchKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFyb3V0aW5nSGlzdG9yeVN0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByb3V0aW5nSGlzdG9yeSA9IEpTT04ucGFyc2Uocm91dGluZ0hpc3RvcnlTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JlT3JnVHJlZVN0YXR1c1N0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29yZU9yZ1RyZWVTdGF0dXNcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25TZXJ2aWNlLnN0YXR1cyQubmV4dChzYXZlZE9iamVjdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcblxyXG5cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgfSkuY2F0Y2goZSA9PiBjb25zb2xlLmxvZyhcImZldGNoIGFwcC5jb25maWcuanNvbiBlcnJvclwiLCBlKSlcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJhcHBJbml0aWFsaXplKCkgemlwKCkgZXJyb3I6IFwiLCBlKVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWluaXRpYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9zZXJ2aWNlcy9hcHAtaW5pdGlhbGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQWdCLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVdsRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7OztBQUs3QyxNQUFNLE9BQU8sd0JBQXdCO0lBYW5DLFlBQ1UsV0FBd0IsRUFDeEIsR0FBeUIsRUFDekIsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGNBQThCLEVBQzlCLGdCQUFrQyxFQUNsQyxVQUFzQjtRQU50QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFsQmhDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNwRCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFFbkMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFtQixJ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L0MsQ0FBQzs4R0E3VFUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHppcCwgY2F0Y2hFcnJvciwgb2YsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4vbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgSUF1dGhEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JQXV0aERhdGEnO1xyXG5pbXBvcnQgeyBSb3V0aW5nU2VydmljZSB9IGZyb20gJy4vcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3JnYW5pemF0aW9uU2VydmljZSB9IGZyb20gJy4vb3JnYW5pemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRXZlcnlUcmVlU3RhdHVzIH0gZnJvbSAnLi4vbGlicmFyaWVzL3NlcnZpY2VzL3JlY3Vyc2l2ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4vYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhcGkgfSBmcm9tICdhbHBoYS1nbG9iYWwtY29uc3RhbnRzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemF0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiBcclxuICBpbml0aWFsaXppbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcclxuICBzc29Qcm9jZXNzaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpbWFyeUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RvcmVTZXNzaW9uT2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVuZGluZ0F1dGhEYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUF1dGhEYXRhIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIHNzb0ZhaWxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBvcmdhbml6YXRpb25TZXJ2aWNlOiBPcmdhbml6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0aW5nU2VydmljZTogUm91dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2VcclxuICApIHtcclxuXHJcbiAgfVxyXG5cclxuICBhcHBJbml0aWFsaXplKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnN0IHRvQ2FtZWwgPSAobzogYW55KTogYW55ID0+IHtcclxuICAgICAgdmFyIG5ld08sIG9yaWdLZXksIG5ld0tleSwgdmFsdWVcclxuICAgICAgaWYgKG8gaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgIHJldHVybiBvLm1hcChmdW5jdGlvbiAodmFsdWUpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB0b0NhbWVsKHZhbHVlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdPID0ge31cclxuICAgICAgICBmb3IgKG9yaWdLZXkgaW4gbykge1xyXG4gICAgICAgICAgaWYgKG8uaGFzT3duUHJvcGVydHkob3JpZ0tleSkpIHtcclxuICAgICAgICAgICAgbmV3S2V5ID0gKG9yaWdLZXkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBvcmlnS2V5LnNsaWNlKDEpIHx8IG9yaWdLZXkpLnRvU3RyaW5nKClcclxuICAgICAgICAgICAgdmFsdWUgPSBvW29yaWdLZXldXHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5IHx8ICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSkge1xyXG4gICAgICAgICAgICAgIHZhbHVlID0gdG9DYW1lbCh2YWx1ZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAobmV3TyBhcyBhbnkpW25ld0tleV0gPSB2YWx1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbmV3T1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcblxyXG4gICAgICBmZXRjaCgnLi4vLi4vYXNzZXRzL2FwcC5jb25maWcuanNvbicpLnRoZW4ocmVzID0+IHJlcy5qc29uKCkpLnRoZW4oKHtcclxuXHJcbiAgICAgICAgQVBQX1RZUEUsXHJcbiAgICAgICAgQkFTRV9VUkwsICAgICBcclxuICAgICAgICBHT0xJVkVfVVJMLFxyXG4gICAgICAgIERFQlVHX0VOQUJMRUQsXHJcblxyXG4gICAgICAgIExPR09fTE9HSU4sXHJcbiAgICAgICAgTE9HT19IRUFERVIsXHJcbiAgICAgICAgSE9NRV9CQUNLR1JPVU5EX0lNQUdFLCBcclxuXHJcbiAgICAgICAgT0FVVEgyX09JRENfRU5BQkxFRCxcclxuICAgICAgICBPQVVUSDJfT0lEQ19DTElFTlRfSUQsXHJcbiAgICAgICAgT0FVVEgyX09JRENfTE9HSU5fVVJJLFxyXG4gICAgICAgIE9BVVRIMl9PSURDX1JFRElSRUNUX1VSSSxcclxuICAgICAgICBPQVVUSDJfT0lEQ19TQ09QRSxcclxuXHJcbiAgICAgICAgU0FNTDJBREZTX0VOQUJMRUQsIFxyXG4gICAgICAgIFNBTUwyQURGU19JRFAsIFxyXG4gICAgICAgIFNBTUwyQURGU19JREVOVElGSUVSLFxyXG4gICAgICAgIFNBTUwyQURGU19XQV9TSUdOSU4sXHJcbiAgICAgICAgU0FNTDJBREZTX1dBX1NJR05PVVQsXHJcbiAgICAgICAgU0FNTDJBREZTX1dSRVBMWSxcclxuXHJcbiAgICAgICAgSEFOR0ZJUkVfUEFUSCxcclxuICAgICAgICBTVEFUSUNfRk9MREVSLFxyXG4gICAgICAgIEFWQVRBUl9GT0xERVIsXHJcblxyXG4gICAgICB9KSA9PiB7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BUFBfVFlQRSA9IEFQUF9UWVBFO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5CQVNFX1VSTCA9IEJBU0VfVVJMO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5HT0xJVkVfVVJMID0gR09MSVZFX1VSTDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuREVCVUdfRU5BQkxFRCA9IERFQlVHX0VOQUJMRUQ7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5MT0dPX0xPR0lOID0gTE9HT19MT0dJTjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuTE9HT19IRUFERVIgPSBMT0dPX0hFQURFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSE9NRV9CQUNLR1JPVU5EX0lNQUdFID0gSE9NRV9CQUNLR1JPVU5EX0lNQUdFO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfRU5BQkxFRCA9IE9BVVRIMl9PSURDX0VOQUJMRUQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX0NMSUVOVF9JRCA9IE9BVVRIMl9PSURDX0NMSUVOVF9JRDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuT0FVVEgyX09JRENfTE9HSU5fVVJJID0gT0FVVEgyX09JRENfTE9HSU5fVVJJO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5PQVVUSDJfT0lEQ19SRURJUkVDVF9VUkkgPSBPQVVUSDJfT0lEQ19SRURJUkVDVF9VUkk7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLk9BVVRIMl9PSURDX1NDT1BFID0gT0FVVEgyX09JRENfU0NPUEU7XHJcblxyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfRU5BQkxFRCA9IFNBTUwyQURGU19FTkFCTEVEO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfSURQID0gU0FNTDJBREZTX0lEUDtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVIgPSBTQU1MMkFERlNfSURFTlRJRklFUjtcclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dBX1NJR05JTiA9IFNBTUwyQURGU19XQV9TSUdOSU47XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XQV9TSUdOT1VUID0gU0FNTDJBREZTX1dBX1NJR05PVVQ7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19XUkVQTFkgPSBTQU1MMkFERlNfV1JFUExZO1xyXG5cclxuICAgICAgICB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuSEFOR0ZJUkVfUEFUSCA9IEhBTkdGSVJFX1BBVEg7XHJcbiAgICAgICAgdGhpcy5hcHBDb25maWdTZXJ2aWNlLlNUQVRJQ19GT0xERVIgPSBTVEFUSUNfRk9MREVSO1xyXG4gICAgICAgIHRoaXMuYXBwQ29uZmlnU2VydmljZS5BVkFUQVJfRk9MREVSID0gQVZBVEFSX0ZPTERFUjtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gKG5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpKS5zZWFyY2hQYXJhbXM7XHJcbiAgICAgICAgY29uc3QgbG9jYWwgPSBwYXJhbXMuZ2V0KFwibG9jYWxcIik7XHJcblxyXG4gICAgICAgIGlmIChTQU1MMkFERlNfRU5BQkxFRCAmJiAhbG9jYWwpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5zc29GYWlsZWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgY29uc3QgdG9rZW4gPSBwYXJhbXMuZ2V0KFwidG9rZW5cIik7XHJcbiAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBudWxsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldChhcGkuU1lTX1NIT1JUX0xJVkVEX1RPS0VOX0xPR0lOICsgXCI/dG9rZW49XCIgKyB0b2tlbikuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvZHk6IElGb3JtYXRlZFJlc3BvbnNlID0geC5ib2R5XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoYm9keS5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0aERhdGEkLm5leHQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHkuaW5uZXJCb2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zc29GYWlsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNzb1Byb2Nlc3NpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISFsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWQgPSBKU09OLnBhcnNlKGxlZnRiYXJSZWR1Y2VkU3RyaW5nISlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLmxlZnRiYXJSZWR1Y2VkJC5uZXh0KCEhbGVmdGJhclJlZHVjZWQpO1xyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5U3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvdXRpbmdIaXN0b3J5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnkgPSBKU09OLnBhcnNlKHJvdXRpbmdIaXN0b3J5U3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJvdXRpbmdIaXN0b3J5JC5uZXh0KHJvdXRpbmdIaXN0b3J5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2F2ZWRPYmplY3Q6IElFdmVyeVRyZWVTdGF0dXMgPSBKU09OLnBhcnNlKGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMClcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuXHJcbiAgICAgICAgICAgICAgICAvLyBBTFdBWVMgUkVESVJFQ1QgVE8gVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJRiBOTyBTRVNTSU9OIEZPVU5EICg/bG9jYWw9MSlcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dGhpcy5hcHBDb25maWdTZXJ2aWNlLlNBTUwyQURGU19JREVOVElGSUVSfT9sb2NhbD0xYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKlxyXG5cclxuICAgICAgICAgICAgICAgIC8vSUYgVEhFIEFOR1VMQVIgQVBQTElDQVRJT04gTE9HSU4gUEFHRSBJUyBOT1QgTUFOREFUT1JZID0+IENBTEwgU0FNTDIuMCBJZFBcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb2RlVmVyaWZpZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlUmFuZG9tQ29kZVZlcmlmaWVyKDQzKTtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiY29kZVZlcmlmaWVyXCIsIGNvZGVWZXJpZmllcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdlbmVyYXRlQ29kZUNoYWxsZW5nZUZyb21WZXJpZmllcihjb2RlVmVyaWZpZXIpLnRoZW4oY29kZUNoYWxsZW5nZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25VcmwgPSBgJHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lEUH0/YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYHd0cmVhbG09JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX0lERU5USUZJRVJ9YCArXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3YT0ke3RoaXMuYXBwQ29uZmlnU2VydmljZS5TQU1MMkFERlNfV0FfU0lHTklOIHx8ICd3c2lnbmluMS4wJ31gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3cmVwbHk9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuQkFTRV9VUkx9JHt0aGlzLmFwcENvbmZpZ1NlcnZpY2UuU0FNTDJBREZTX1dSRVBMWX1gICsgXHJcbiAgICAgICAgICAgICAgICAgICAgYCZ3Y3R4PSR7Y29kZUNoYWxsZW5nZX1gXHJcbiAgICAgICAgICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KGF1dGhvcml6YXRpb25VcmwpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGF1dGhvcml6YXRpb25Vcmw7XHJcblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAqL1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBib2R5MTogSUZvcm1hdGVkUmVzcG9uc2U7XHJcbiAgICAgICAgbGV0IGJvZHkyOiBJRm9ybWF0ZWRSZXNwb25zZTtcclxuICAgICAgICBsZXQgYm9keTM6IElGb3JtYXRlZFJlc3BvbnNlO1xyXG4gICAgICAgIGxldCBib2R5NDogSUZvcm1hdGVkUmVzcG9uc2U7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5zc29Qcm9jZXNzaW5nJC5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIoeCA9PiAheClcclxuICAgICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgemlwKFtcclxuICAgICAgICAgICAgICAgIHRoaXMubWxzLnJlYWRBbGxNaW5pKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLnJlYWRBbGxGdW5jdGlvbldpdGhBbGxBY3Rpb25zKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLmdldElnbm9yZVBhdGhzKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcFNlcnZpY2UuZ2V0KGFwaS5QT1JUQUxfUk9VVEVfUkVBRF9BTExfTUlOSSlcclxuICAgICAgICAgICAgICBdKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcih2YWwgPT4gb2YoYFRoZSBhcHAgY2F1Z2h0OiAke3ZhbH1gKSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZShyZXNwb25zZXMgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYXBwSW5pdGlhbGl6ZSgpIHppcCgpIGRvbmVcIilcclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MSA9IHJlc3BvbnNlc1swXTtcclxuICAgICAgICAgICAgICAgIGlmICh4MS5vayAmJiB4MS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MSA9IHgxLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkxLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWxzLmRhdGEkLm5leHQoYm9keTEuaW5uZXJCb2R5KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHgyID0gdG9DYW1lbChyZXNwb25zZXNbMV0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHgyLm9rICYmIHgyLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGJvZHkyID0geDIuYm9keVxyXG4gICAgICAgICAgICAgICAgICBpZiAoYm9keTIuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0aW5nU2VydmljZS5mdWxsRnVuY3Rpb25zJC5uZXh0KGJvZHkyLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4MyA9IHJlc3BvbnNlc1syXTtcclxuICAgICAgICAgICAgICAgIGlmICh4My5vayAmJiB4My5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5MyA9IHgzLmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkzLnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UuaWdub3JlZFBhdGhzJC5uZXh0KGJvZHkzLmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCB4NCA9IHJlc3BvbnNlc1szXTtcclxuICAgICAgICAgICAgICAgIGlmICh4NC5vayAmJiB4NC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBib2R5NCA9IHg0LmJvZHlcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHk0LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UucG9ydGFsUm91dGVzJC5uZXh0KGJvZHk0LmlubmVyQm9keSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoYm9keTE/LnN0YXR1c0NvZGUgPT09IDIwMCAmJiBib2R5Mj8uc3RhdHVzQ29kZSA9PT0gMjAwICYmIGJvZHkzPy5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmICghIU9BVVRIMl9PSURDX0VOQUJMRUQgJiYgISF0aGlzLnBlbmRpbmdBdXRoRGF0YSQudmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlU2Vzc2lvbk9rID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmRhdGEkLm5leHQodGhpcy5wZW5kaW5nQXV0aERhdGEkLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBdXRoRGF0YSQubmV4dChudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0aFNlcnZpY2UudHJ5UmVzdG9yZVNlc3Npb24oKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSh4ID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib2R5LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3QXV0aERhdGE6IElBdXRoRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keS5pbm5lckJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luVGltZTogbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmVTZXNzaW9uT2sgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5kYXRhJC5uZXh0KG5ld0F1dGhEYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIWxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVmdGJhclJlZHVjZWRTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGVmdGJhclJlZHVjZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxlZnRiYXJSZWR1Y2VkID0gSlNPTi5wYXJzZShsZWZ0YmFyUmVkdWNlZFN0cmluZyEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxheW91dFNlcnZpY2UubGVmdGJhclJlZHVjZWQkLm5leHQoISFsZWZ0YmFyUmVkdWNlZCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm91dGluZ0hpc3RvcnlTdHJpbmcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncm91dGluZ0hpc3RvcnknKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXJvdXRpbmdIaXN0b3J5U3RyaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRpbmdIaXN0b3J5ID0gSlNPTi5wYXJzZShyb3V0aW5nSGlzdG9yeVN0cmluZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2Uucm91dGluZ0hpc3RvcnkkLm5leHQocm91dGluZ0hpc3RvcnkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvcmVPcmdUcmVlU3RhdHVzU3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJjb3JlT3JnVHJlZVN0YXR1c1wiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3JlT3JnVHJlZVN0YXR1c1N0cmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzYXZlZE9iamVjdDogSUV2ZXJ5VHJlZVN0YXR1cyA9IEpTT04ucGFyc2UoY29yZU9yZ1RyZWVTdGF0dXNTdHJpbmcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9yZ2FuaXphdGlvblNlcnZpY2Uuc3RhdHVzJC5uZXh0KHNhdmVkT2JqZWN0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXppbmckLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAyMDApXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcblxyXG5cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG5cclxuICAgICAgfSkuY2F0Y2goZSA9PiBjb25zb2xlLmxvZyhcImZldGNoIGFwcC5jb25maWcuanNvbiBlcnJvclwiLCBlKSlcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJhcHBJbml0aWFsaXplKCkgemlwKCkgZXJyb3I6IFwiLCBlKVxyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgY29uc29sZS5sb2coXCJmaW5hbGx5XCIpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -2451,7 +2451,6 @@ class AppInitializationService {
2451
2451
  this.organizationService.status$.next(savedObject);
2452
2452
  }
2453
2453
  }
2454
- //this.initializing$.next(false);
2455
2454
  }, 200);
2456
2455
  }));
2457
2456
  }
@@ -2529,6 +2528,7 @@ class AppInitializationService {
2529
2528
  this.authService.data$.next(this.pendingAuthData$.value);
2530
2529
  this.pendingAuthData$.next(null);
2531
2530
  this.authService.authenticated$.next(true);
2531
+ this.initializing$.next(false);
2532
2532
  }
2533
2533
  else {
2534
2534
  this.authService.tryRestoreSession()
@@ -2560,7 +2560,7 @@ class AppInitializationService {
2560
2560
  this.organizationService.status$.next(savedObject);
2561
2561
  }
2562
2562
  }
2563
- //this.initializing$.next(false);
2563
+ this.initializing$.next(false);
2564
2564
  }, 200);
2565
2565
  });
2566
2566
  }
@@ -2573,7 +2573,7 @@ class AppInitializationService {
2573
2573
  console.log("appInitialize() zip() error: ", e);
2574
2574
  }
2575
2575
  finally {
2576
- this.initializing$.next(false);
2576
+ console.log("finally");
2577
2577
  }
2578
2578
  }
2579
2579
  ngOnDestroy() {