@propmix/profet-common-header 3.2.1-beta → 3.2.2-beta
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/esm2020/lib/header/header.component.mjs +2 -2
- package/fesm2015/propmix-profet-common-header.mjs +1 -1
- package/fesm2015/propmix-profet-common-header.mjs.map +1 -1
- package/fesm2020/propmix-profet-common-header.mjs +1 -1
- package/fesm2020/propmix-profet-common-header.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ export class HeaderComponent {
|
|
|
32
32
|
this._snackbar = inject(MatSnackBar);
|
|
33
33
|
this._headerSer = inject(CommonHeaderService);
|
|
34
34
|
this._domSanitizer = inject(DomSanitizer);
|
|
35
|
-
this.INACTIVITY_LIMIT =
|
|
35
|
+
this.INACTIVITY_LIMIT = 120000; // 2 minutes
|
|
36
36
|
this.logoutEvent = new EventEmitter();
|
|
37
37
|
this.companyControl = new FormControl();
|
|
38
38
|
this.appConfig = AppConfig.appConfig;
|
|
@@ -409,4 +409,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
409
409
|
type: HostListener,
|
|
410
410
|
args: ['window:focus']
|
|
411
411
|
}] } });
|
|
412
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGVBQWU7SUF3QjFCO1FBdEJBLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFDMUIsb0JBQWUsR0FBUSxFQUFFLENBQUM7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LHlCQUF5QjtvQkFDekIsT0FBTztvQkFDUCxJQUFJO2lCQUNMO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7NkdBcFpVLGVBQWU7aUdBQWYsZUFBZSxzZ0JDN0I1QixnaE1BNkdjOzRGRGhGRCxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7MEVBaUJiLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtlLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFnR3BCLFVBQVU7c0JBUFQsWUFBWTt1QkFBQyxvQkFBb0I7O3NCQUNqQyxZQUFZO3VCQUFDLGtCQUFrQjs7c0JBQy9CLFlBQVk7dUJBQUMsZ0JBQWdCOztzQkFDN0IsWUFBWTt1QkFBQyxxQkFBcUI7O3NCQUNsQyxZQUFZO3VCQUFDLG9CQUFvQjs7c0JBQ2pDLFlBQVk7dUJBQUMsaUJBQWlCOztzQkFDOUIsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBzaWduT3V0IH0gZnJvbSAnYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBBcHBNZW51LCBDb21wYW55IH0gZnJvbSAnLi4vY29tbW9uLWhlYWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYW55U3dpdGNoV2FybmluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcvY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUFJPRkVUX0FQUFMgfSBmcm9tICcuLi91dGlscy9hcHBzLmVudW0nO1xuaW1wb3J0IHsgaW1hZ2VEYXRhVXJsIH0gZnJvbSAnLi4vdXRpbHMvaW1hZ2UuZGF0YXVybCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29tcGFueVByb2ZpbGU6IGFueTtcbiAgcG9ydGFsVXJsOiBzdHJpbmcgPSAnJztcbiAgdXNlckF1dGhEYXRhOiBhbnk7XG4gIHVzZXJJbWFnZUxpbms6IGFueSA9IG51bGw7XG4gIHVzZXJDb21wYW55TG9nbzogYW55ID0gJyc7XG4gIGltYWdlRGF0YVVybHMgPSBpbWFnZURhdGFVcmw7XG4gIHB1YmxpYyBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgX3NuYWNrYmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcHVibGljIF9oZWFkZXJTZXIgPSBpbmplY3QoQ29tbW9uSGVhZGVyU2VydmljZSk7XG4gIHB1YmxpYyBfZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHByaXZhdGUgaW5hY3Rpdml0eVRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBsb2dvdXRDaGVja0ludGVydmFsOiBhbnk7XG4gIEBJbnB1dCgpIElOQUNUSVZJVFlfTElNSVQgPSAxNTAwMDsgLy8gMiBtaW51dGVzXG5cbiAgQE91dHB1dCgpIGxvZ291dEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbXBhbnlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGFwcENvbmZpZzogYW55ID0gQXBwQ29uZmlnLmFwcENvbmZpZztcbiAgY29tcGFueUxpc3Q6IENvbXBhbnlbXSA9IFtdO1xuICBAVmlld0NoaWxkKCdzaWRlbmF2Jykgc2lkZW5hdiE6IE1hdFNpZGVuYXY7XG4gIG1lbnVMaXN0OiB7IGtleTogc3RyaW5nLCB2YWx1ZTogQXBwTWVudVtdIH1bXSA9IFtdO1xuICBhY3RpdmVDb21wYW55OiBDb21wYW55IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy51cGRhdGVMYXN0QWNjZXNzZWRBcHBJbmZvKCk7XG4gICAgdGhpcy5nZXRDb21wYW55TGlzdCgpO1xuXG4gICAgdGhpcy5faGVhZGVyU2VyLmdldFVzZXJEZXRhaWxzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgIHRoaXMudXNlckF1dGhEYXRhID0gcmVzO1xuICAgICAgICAgIHRoaXMuZ2V0TWVudUxpc3QoKTtcbiAgICAgICAgICBpZiAocmVzLnByb2ZpbGVJbWFnZSkge1xuICAgICAgICAgICAgdGhpcy51c2VySW1hZ2VMaW5rID0gcmVzLnByb2ZpbGVJbWFnZS5sb2NhdGlvblVybFxuICAgICAgICAgICAgICA/IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKHJlcy5wcm9maWxlSW1hZ2UubG9jYXRpb25VcmwpXG4gICAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgIC8vIGlmICh1c2VySW5mbz8udXNlcm5hbWUpIHtcbiAgICAvLyAgIGxldCB1c2VyRGV0YWlscyA9IHRoaXMuX2hlYWRlclNlci5nZXRVc2VyRGV0YWlscygpO1xuICAgIC8vICAgZm9ya0pvaW4oW3VzZXJEZXRhaWxzXSkuc3Vic2NyaWJlKHtcbiAgICAvLyAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgIC8vICAgICAgIGlmIChyZXMgJiYgcmVzWzBdKSB7XG4gICAgLy8gICAgICAgICB0aGlzLnVzZXJBdXRoRGF0YSA9IHJlc1swXTtcbiAgICAvLyAgICAgICAgIHRoaXMudXNlcm5hbWUgPSB0aGlzLnVzZXJBdXRoRGF0YS5maXJzdE5hbWU7XG4gICAgLy8gICAgICAgICB0aGlzLmdldE1lbnVMaXN0KCk7XG4gICAgLy8gICAgICAgICBpZiAodGhpcy51c2VyQXV0aERhdGE/Ll9saW5rcz8ucHJvZmlsZUltYWdlPy5ocmVmKSB7XG4gICAgLy8gICAgICAgICAgIHRoaXMuZ2V0VXNlclByb2ZpbGUoKTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG5cbiAgICAvLyBDbGVhciBhbnkgc3RhbGUgbG9nb3V0IHNpZ25hbCBvbiBpbml0XG4gICAgdGhpcy5zZXRDb29raWUoJ3Nlc3Npb25fZXhwaXJlZCcsICcnLCAtMSk7XG5cbiAgICB0aGlzLnN0YXJ0TG9nb3V0Q2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gZ2V0IHRoZSByb290IGRvbWFpbiAoZS5nLiAubXljb20uYWkpIHRvIHNoYXJlIGNvb2tpZXMgYWNyb3NzIHN1YmRvbWFpbnMvcG9ydHMuXG4gICAqIElmIG9uIGxvY2FsaG9zdCBvciBhbiBJUCwgaXQgZmFsbHMgYmFjayB0byB0aGUgaG9zdG5hbWUuXG4gICAqL1xuICBwcml2YXRlIGdldFJvb3REb21haW4oKTogc3RyaW5nIHtcbiAgICBjb25zdCBob3N0bmFtZSA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbiAgICBjb25zdCBwYXJ0cyA9IGhvc3RuYW1lLnNwbGl0KCcuJyk7XG5cbiAgICBpZiAocGFydHMubGVuZ3RoID4gMiAmJiAhL15cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM31cXC5cXGR7MSwzfSQvLnRlc3QoaG9zdG5hbWUpKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIDQrIHBhcnRzIChlLmcuIGFwcDEubG9jYWwucHJvZmV0LmFpKSwgd2Ugd2FudCB0byBpbmNsdWRlIHRoZSBlbnZpcm9ubWVudCAobG9jYWwucHJvZmV0LmFpKVxuICAgICAgLy8gdG8gYXZvaWQgc2hhcmluZyBjb29raWVzIHdpdGggYXBwMS5kZXYucHJvZmV0LmFpIG9yIGFwcDEucHJvZmV0LmFpLlxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDMpIHtcbiAgICAgICAgcmV0dXJuICcuJyArIHBhcnRzLnNsaWNlKC0zKS5qb2luKCcuJyk7XG4gICAgICB9XG4gICAgICAvLyBGb3Igc3RhbmRhcmQgMyBwYXJ0cyAoYXBwMS5wcm9mZXQuYWkpLCBzaGFyZSBvbiAucHJvZmV0LmFpXG4gICAgICByZXR1cm4gJy4nICsgcGFydHMuc2xpY2UoLTIpLmpvaW4oJy4nKTtcbiAgICB9XG4gICAgcmV0dXJuIGhvc3RuYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb29raWUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBkYXlzOiBudW1iZXIpIHtcbiAgICBsZXQgZXhwaXJlcyA9IFwiXCI7XG4gICAgaWYgKGRheXMpIHtcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGRheXMgKiAyNCAqIDYwICogNjAgKiAxMDAwKSk7XG4gICAgICBleHBpcmVzID0gXCI7IGV4cGlyZXM9XCIgKyBkYXRlLnRvVVRDU3RyaW5nKCk7XG4gICAgfVxuICAgIC8vIEltcG9ydGFudDogc2V0IGRvbWFpbiB0byBhbGxvdyBzaGFyaW5nIGFjcm9zcyBzdWJkb21haW5zXG4gICAgY29uc3QgZG9tYWluID0gXCI7IGRvbWFpbj1cIiArIHRoaXMuZ2V0Um9vdERvbWFpbigpO1xuICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyBcIj1cIiArICh2YWx1ZSB8fCBcIlwiKSArIGV4cGlyZXMgKyBkb21haW4gKyBcIjsgcGF0aD0vXCI7XG4gIH1cblxuICBwcml2YXRlIGdldENvb2tpZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBuYW1lRVEgPSBuYW1lICsgXCI9XCI7XG4gICAgY29uc3QgY2EgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhLmxlbmd0aDsgaSsrKSB7XG4gICAgICBsZXQgYyA9IGNhW2ldO1xuICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09ICcgJykgYyA9IGMuc3Vic3RyaW5nKDEsIGMubGVuZ3RoKTtcbiAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PSAwKSByZXR1cm4gYy5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCwgYy5sZW5ndGgpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScpXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycpXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnRvdWNoc3RhcnQnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaG1vdmUnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpzY3JvbGwnKVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6Zm9jdXMnKVxuICByZXNldFRpbWVyKGlzVXNlckFjdGl2aXR5OiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KTtcblxuICAgIC8vIFVwZGF0ZSBnbG9iYWwgYWN0aXZpdHkgdGltZXN0YW1wIGluIGNvb2tpZSBPTkxZIGlmIHRyaWdnZXJlZCBieSB1c2VyIGFjdGl2aXR5XG4gICAgaWYgKGlzVXNlckFjdGl2aXR5KSB7XG4gICAgICAvLyBVc2UgYSBzaG9ydCBleHBpcnkgKGUuZy4gMSBkYXkpIG9yIHN5bmMgd2l0aCBzZXNzaW9uIGxlbmd0aFxuICAgICAgdGhpcy5zZXRDb29raWUoJ2xhc3RBY3RpdmVTZXNzaW9uVGltZScsIERhdGUubm93KCkudG9TdHJpbmcoKSwgMSk7XG4gICAgfVxuXG4gICAgLy8gaWYgKCF0aGlzLl9oZWFkZXJTZXIuaXNTZXNzaW9uRXhwaXJ5RGlhbG9nT3Blbikge1xuICAgIHRoaXMuaW5hY3Rpdml0eVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIENoZWNrIGdsb2JhbCBhY3Rpdml0eSBiZWZvcmUgbG9nZ2luZyBvdXRcbiAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSB0aGlzLmdldENvb2tpZSgnbGFzdEFjdGl2ZVNlc3Npb25UaW1lJyk7XG4gICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgY29uc3QgbGFzdEFjdGl2ZVRpbWUgPSBsYXN0QWN0aXZlID8gcGFyc2VJbnQobGFzdEFjdGl2ZSwgMTApIDogMDtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBub3cgLSBsYXN0QWN0aXZlVGltZTtcblxuICAgICAgaWYgKGxhc3RBY3RpdmUgJiYgZWxhcHNlZCA8IHRoaXMuSU5BQ1RJVklUWV9MSU1JVCkge1xuICAgICAgICAvLyBVc2VyIHdhcyBhY3RpdmUgaW4gYW5vdGhlciB0YWIvYXBwIHJlY2VudGx5XG4gICAgICAgIC8vIFJlc2NoZWR1bGUgdGhlIGNoZWNrLCBidXQgRE8gTk9UIHVwZGF0ZSB0aGUgYWN0aXZpdHkgdGltZXN0YW1wXG4gICAgICAgIHRoaXMucmVzZXRUaW1lcihmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZWFsbHkgaW5hY3RpdmUgYWNyb3NzIGFsbCBrbm93biB0YWJzXG4gICAgICAgIHRoaXMuaGFuZGxlTG9nb3V0KCk7XG4gICAgICB9XG4gICAgfSwgdGhpcy5JTkFDVElWSVRZX0xJTUlUKTtcbiAgICAvLyB9XG4gIH1cblxuXG5cbiAgLyoqXG4gICAgICogSGVscGVyIHRvIGlkZW50aWZ5IHRoZSBzZXNzaW9uIGV4cGlyeSBpbiBpbi1hY3RpdmUgdGFicy5cbiAgKi9cbiAgcHJpdmF0ZSBzdGFydExvZ291dENoZWNrKCkge1xuICAgIC8vIFBvbGwgZm9yIHRoZSBsb2dvdXQgc2lnbmFsIGNvb2tpZSAod29ya3MgYWNyb3NzIHBvcnRzL3N1YmRvbWFpbnMpXG4gICAgdGhpcy5sb2dvdXRDaGVja0ludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZ2V0Q29va2llKCdzZXNzaW9uX2V4cGlyZWQnKSkge1xuICAgICAgICAvLyBDaGVjayBpZiB0YWIgc3RpbGwgXCJhY3RpdmVcIiBhY2NvcmRpbmcgdG8gdGhlIHNoYXJlZCB0aW1lXG4gICAgICAgIC8vIElmIHRhYiBpcyBhY3RpdmUgYnV0IHJlY2VpdmluZyBhIGxvZ291dCBzaWduYWwsIGl0IGltcGxpZXMgYSBNQU5VQUwgbG9nb3V0IGZyb20gYW5vdGhlciB0YWIuXG4gICAgICAgIC8vIElmIHRhYiBpcyBpbmFjdGl2ZSBhbmQgcmVjZWl2aW5nIGEgbG9nb3V0IHNpZ25hbCwgaXQgaW1wbGllcyBhIFRJTUVPVVQuXG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmUgPSB0aGlzLmdldENvb2tpZSgnbGFzdEFjdGl2ZVNlc3Npb25UaW1lJyk7XG4gICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgIGNvbnN0IGxhc3RBY3RpdmVUaW1lID0gbGFzdEFjdGl2ZSA/IHBhcnNlSW50KGxhc3RBY3RpdmUsIDEwKSA6IDA7XG4gICAgICAgIGNvbnN0IGVsYXBzZWQgPSBub3cgLSBsYXN0QWN0aXZlVGltZTtcblxuICAgICAgICBjb25zdCBpc01hbnVhbCA9IGVsYXBzZWQgPCB0aGlzLklOQUNUSVZJVFlfTElNSVQ7XG4gICAgICAgIHRoaXMuaGFuZGxlTG9nb3V0KGZhbHNlLCBmYWxzZSwgaXNNYW51YWwpO1xuICAgICAgfVxuICAgIH0sIDIwMDApOyAvLyBDaGVjayBldmVyeSAyIHNlY29uZHNcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTG9nb3V0KGJyb2FkY2FzdDogYm9vbGVhbiA9IHRydWUsIHNob3dQb3B1cDogYm9vbGVhbiA9IHRydWUsIGlzTWFudWFsOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAvLyBQcmV2ZW50IG11bHRpcGxlIHBvcHVwcyBpZiBhbHJlYWR5IG9wZW5cbiAgICAvLyBpZiAodGhpcy5faGVhZGVyU2VyLmlzU2Vzc2lvbkV4cGlyeURpYWxvZ09wZW4gJiYgc2hvd1BvcHVwKSB7XG4gICAgLy8gICByZXR1cm47XG4gICAgLy8gfVxuXG4gICAgaWYgKGJyb2FkY2FzdCkge1xuICAgICAgLy8gU2V0IGEgY29va2llIHRvIHNpZ25hbCBvdGhlciB0YWJzL3BvcnRzXG4gICAgICB0aGlzLnNldENvb2tpZSgnc2Vzc2lvbl9leHBpcmVkJywgJ3RydWUnLCAxKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ291dEV2ZW50LmVtaXQoKTtcblxuICAgIGxldCBzZXNzaW9uVXJsID0gdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsO1xuICAgIC8vIE9ubHkgYWRkIHNlc3Npb25FeHBpcmVkIHBhcmFtcyBpZiBpdCBpcyBOT1QgYSBtYW51YWwgbG9nb3V0XG4gICAgaWYgKCFpc01hbnVhbCkge1xuICAgICAgbGV0IGFwcFVybCA9IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybDtcbiAgICAgIGxldCBzZXBhcmF0b3IgPSBhcHBVcmwuaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/JztcbiAgICAgIHNlc3Npb25VcmwgPSBhcHBVcmwgKyBzZXBhcmF0b3IgKyAnc2Vzc2lvbkV4cGlyZWQ9dHJ1ZSZ0aW1lb3V0PScgKyB0aGlzLklOQUNUSVZJVFlfTElNSVQ7XG4gICAgfVxuICAgIHNpZ25PdXQoeyBnbG9iYWw6IHRydWUsIG9hdXRoOiB7IHJlZGlyZWN0VXJsOiBzZXNzaW9uVXJsIH0gfSlcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgd2luZG93Lm9wZW4oc2Vzc2lvblVybCwgJ19zZWxmJyk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdMb2dvdXQgZmFpbGVkOicsIGVycm9yKTtcbiAgICAgICAgd2luZG93Lm9wZW4oc2Vzc2lvblVybCwgJ19zZWxmJyk7XG4gICAgICB9KTtcblxuICAgIC8vIGlmIChzaG93UG9wdXApIHtcbiAgICAvLyAgIHRoaXMuX2hlYWRlclNlci5vcGVuU2Vzc2lvbkV4cGlyZUluZm8oeyBzZXNzaW9uT3V0VGltZUluTWluczogdGhpcy5JTkFDVElWSVRZX0xJTUlUIH0pO1xuICAgIC8vIH1cblxuICAgIGlmICh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7XG4gICAgfVxuICAgIC8vIFN0b3AgcG9sbGluZyBvbmNlIHdlIGFyZSBsb2dnaW5nIG91dFxuICAgIGlmICh0aGlzLmxvZ291dENoZWNrSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDdXJyZW50Q29tcGFueSgpIHtcbiAgICBsZXQgY29tID0gdGhpcy5jb21wYW55TGlzdC5maW5kKHggPT4geC5pc0FjdGl2ZSk7XG4gICAgdGhpcy5hY3RpdmVDb21wYW55ID0gY29tO1xuICB9XG5cbiAgcGF0Y2hDdXJyZW50Q29tcGFueUluZm8oKSB7XG4gICAgbGV0IGNvbSA9IHRoaXMuY29tcGFueUxpc3QuZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIHRoaXMuY29tcGFueUNvbnRyb2wucGF0Y2hWYWx1ZShjb20pO1xuICB9XG5cbiAgc2lkZU1lbnVUb2dnbGUoKSB7XG4gICAgdGhpcy5zaWRlbmF2LnRvZ2dsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBncm91cEJ5QXBwVHlwZShtZW51TGlzdDogQXBwTWVudVtdKTogeyBrZXk6IHN0cmluZywgdmFsdWU6IEFwcE1lbnVbXSB9W10ge1xuICAgIGxldCBncm91cGVkID0gbWVudUxpc3QucmVkdWNlKChyLCBhKSA9PiB7XG4gICAgICByW2EuYXBwVHlwZV0gPSByW2EuYXBwVHlwZV0gfHwgW107XG5cbiAgICAgIC8vIFRPRE86IFBhdGggcmVmZXJlbmNlcyBhcmUgdG8gYmUgcmVwbGFjZWQgd2l0aCB2YWx1ZXMgZnJvbSBiYWNrZW5kIEFQSSByZXNwb25zZS4gUmVtb3ZlIHRoaXMgYmxvY2sgd2hlbiBiYWNrZW5kIGlzIHJlYWR5XG4gICAgICBpZiAoYS5hcHBUeXBlID09IFBST0ZFVF9BUFBTLnByb2ZldF9wb3J0YWwpIHtcbiAgICAgICAgbGV0IGlzQ29tcGFueU1lbnUgPSBhLnBhdGggPT09ICdhcHAvY29tcGFuaWVzJztcbiAgICAgICAgbGV0IGlzQ29tcGFueUFkbWluID0gdGhpcy51c2VyQXV0aERhdGE/LnJvbGVzRm9yQ3VycmVudENvbXBhbnkuaW5jbHVkZXMoXCJDT01QQU5ZX0FETUlOXCIpO1xuXG4gICAgICAgIGlmIChpc0NvbXBhbnlNZW51ICYmIGlzQ29tcGFueUFkbWluKSB7XG4gICAgICAgICAgYSA9IHsgLi4uYSwgcGF0aDogJ2FwcC9hZGRDb21wYW55L2NvbXBhbnlEZXRhaWxzJyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBFTkQgb2YgVE9ETyBibG9ja1xuXG4gICAgICByW2EuYXBwVHlwZV0ucHVzaChhKTtcbiAgICAgIHJldHVybiByO1xuICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpO1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhncm91cGVkKS5tYXAoKFtrZXksIHZhbHVlXSkgPT4gKHsga2V5LCB2YWx1ZTogdmFsdWUgYXMgQXBwTWVudVtdIH0pKTtcbiAgfVxuXG4gIG1lbnVTZWxlY3Rpb24obWVudTogQXBwTWVudSkge1xuICAgIHRoaXMuc2lkZU1lbnVUb2dnbGUoKTtcbiAgICBsZXQgYWN0aXZlQ29tID0gdGhpcy5jb21wYW55TGlzdC5maW5kKHggPT4geC5pc0FjdGl2ZSk7XG4gICAgbGV0IGlzQ29tcGFueU1lbnUgPSBtZW51LnBhdGggPT09ICdhcHAvYWRkQ29tcGFueS9jb21wYW55RGV0YWlscyc7XG4gICAgbGV0IGlzQ29tcGFueUFkbWluID0gdGhpcy51c2VyQXV0aERhdGE/LnJvbGVzRm9yQ3VycmVudENvbXBhbnkuaW5jbHVkZXMoXCJDT01QQU5ZX0FETUlOXCIpO1xuXG4gICAgaWYgKG1lbnUuYXBwVHlwZSA9PSB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLmFwcFR5cGUpIHtcbiAgICAgIC8vIFRPRE86IFBhdGggcmVmZXJlbmNlcyBhcmUgdG8gYmUgcmVwbGFjZWQgd2l0aCB2YWx1ZXMgZnJvbSBiYWNrZW5kIEFQSSByZXNwb25zZVxuICAgICAgaWYgKGlzQ29tcGFueU1lbnUgJiYgaXNDb21wYW55QWRtaW4pIHtcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFttZW51LnBhdGgsIGFjdGl2ZUNvbT8uaWRdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbbWVudS5wYXRoXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKGFjdGl2ZUNvbSkge1xuICAgICAgICBpZiAoYWN0aXZlQ29tLmJhc2VVcmxzW21lbnUuYXBwVHlwZV0pIHtcbiAgICAgICAgICAvLyBUT0RPOiBQYXRoIHJlZmVyZW5jZXMgYXJlIHRvIGJlIHJlcGxhY2VkIHdpdGggdmFsdWVzIGZyb20gYmFja2VuZCBBUEkgcmVzcG9uc2VcbiAgICAgICAgICBpZiAoaXNDb21wYW55TWVudSAmJiBpc0NvbXBhbnlBZG1pbikge1xuICAgICAgICAgICAgbGV0IHVybCA9IGAke2FjdGl2ZUNvbS5iYXNlVXJsc1ttZW51LmFwcFR5cGVdfS8ke21lbnUucGF0aH0vJHthY3RpdmVDb20uaWR9YDtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSBgJHthY3RpdmVDb20uYmFzZVVybHNbbWVudS5hcHBUeXBlXX0vJHttZW51LnBhdGh9YDtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29tcGFueUxpc3QoKSB7XG4gICAgdGhpcy5faGVhZGVyU2VyLmdldENvbXBhbnlMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5faGVhZGVyU2VyLnNldENvbXBhbnlMaXN0KHYpO1xuICAgICAgICB0aGlzLmNvbXBhbnlMaXN0ID0gdjtcbiAgICAgICAgdGhpcy5zZWxlY3RDdXJyZW50Q29tcGFueSgpO1xuICAgICAgICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBnZXRNZW51TGlzdCgpIHtcbiAgICB0aGlzLl9oZWFkZXJTZXIuZ2V0TWVudUxpc3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHY6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLl9oZWFkZXJTZXIuc2V0TWVudVN0YXRlKHYpO1xuICAgICAgICB0aGlzLm1lbnVMaXN0ID0gdGhpcy5ncm91cEJ5QXBwVHlwZSh2KTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHJvZmlsZSgpIHtcbiAgICBpZiAodGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlID09IFBST0ZFVF9BUFBTLnByb2ZldF9wb3J0YWwpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwL3Byb2ZpbGUnKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBsZXQgdXJsID0gdGhpcy5hY3RpdmVDb21wYW55Py5iYXNlVXJscy5wcm9mZXRfcG9ydGFsICsgJy9hcHAvcHJvZmlsZSc7XG4gICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgfVxuICBvbkxvZ291dENsaWNrKCkge1xuICAgIC8vIFN5bmMgd2l0aCBvdGhlciB0YWJzXG4gICAgdGhpcy5zZXRDb29raWUoJ3Nlc3Npb25fZXhwaXJlZCcsICd0cnVlJywgMSk7XG5cbiAgICAvLyBDbGVhciB0aW1lcnNcbiAgICBpZiAodGhpcy5pbmFjdGl2aXR5VGltZW91dCkgY2xlYXJUaW1lb3V0KHRoaXMuaW5hY3Rpdml0eVRpbWVvdXQpO1xuICAgIGlmICh0aGlzLmxvZ291dENoZWNrSW50ZXJ2YWwpIGNsZWFySW50ZXJ2YWwodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKTtcblxuICAgIHRoaXMubG9nb3V0RXZlbnQuZW1pdCgpO1xuICAgIHNpZ25PdXQoeyBnbG9iYWw6IHRydWUsIG9hdXRoOiB7IHJlZGlyZWN0VXJsOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLnNpZ25PdXRVcmwgfSB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgd2luZG93Lm9wZW4odGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsLCAnX3NlbGYnKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsIH0gfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLnNpZ25PdXRVcmwsICdfc2VsZicpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4gY29uc29sZS5sb2coZXJyb3IpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlTGFzdEFjY2Vzc2VkQXBwSW5mbygpIHtcbiAgICBsZXQgcmVxID0ge1xuICAgICAgbGFzdEFjY2Vzc2VkQXBwbGljYXRpb246IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZVxuICAgIH07XG5cbiAgICB0aGlzLl9oZWFkZXJTZXIudXBkYXRlTGFzdEFjY2Vzc2VkQXBwbGljYXRpb24ocmVxKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzd2l0Y2hDb21wYW55KGluZm86IGFueSkge1xuICAgIGxldCBjb21wYW55ID0gaW5mby52YWx1ZTtcbiAgICBsZXQgY29tSW5mbyA9IHtcbiAgICAgIGFjdGl2ZUNvbXBhbnk6IHRoaXMuYWN0aXZlQ29tcGFueT8ubmFtZSxcbiAgICAgIHN3aXRjaGluZ0NvbXBhbnk6IGNvbXBhbnkubmFtZVxuICAgIH07XG4gICAgdGhpcy5faGVhZGVyU2VyLl9kaWFsb2cub3BlbihDb21wYW55U3dpdGNoV2FybmluZ0NvbXBvbmVudCwgeyBkYXRhOiBjb21JbmZvIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIC8vIEZpbmQgdGhlIGRvbWFpbiBpbmZvcm1hdGlvblxuICAgICAgICBpZiAoIWNvbXBhbnkuaXNBY3RpdmUpIHtcbiAgICAgICAgICAvLyBsZXQgZG9tYWluSW5mbyA9IHRoaXMuX2hlYWRlclNlci5nZXREb21haW5JbmZvKCk7XG4gICAgICAgICAgLy8gaWYgKGRvbWFpbkluZm8pIHtcbiAgICAgICAgICBsZXQgcmVxOiBhbnkgPSB7XG4gICAgICAgICAgICBjb21wYW55S2V5OiBjb21wYW55LmNvbXBhbnlLZXksXG4gICAgICAgICAgICBhcHBOYW1lOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLmFwcFR5cGUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLl9oZWFkZXJTZXIudXBkYXRlVXNlckNvbXBhbnkocmVxKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnR5cGUgJiYgcmVzcG9uc2UudHlwZSA9PSAnT0snKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEuYXBwbGljYXRpb25VUkwpIHtcbiAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSByZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMO1xuICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlcGxhY2UodXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcmVmcmVzaCB0aGUgY3VycmVudCBwYWdlIHRvIHJlbG9hZCB0aGUgY29udGVudHMgYmFzZWQgb24gdGhlIGN1cnJlbnQgY29tcGFueVxuICAgICAgICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBkaXNwbGF5IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBjb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC5cbiAgICAgICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKFxuICAgICAgICAgICAgICAgICAgJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLFxuICAgICAgICAgICAgICAgICAgJ09LJyxcbiAgICAgICAgICAgICAgICAgIHsgZHVyYXRpb246IDUwMDAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgICAgICAgICAvLyBkaXNwbGF5IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBjb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC5cbiAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbihcbiAgICAgICAgICAgICAgICAnQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsXG4gICAgICAgICAgICAgICAgJ09LJyxcbiAgICAgICAgICAgICAgICB7IGR1cmF0aW9uOiA1MDAwIH1cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gfSBcbiAgICAgICAgICAvLyBlbHNlIHtcbiAgICAgICAgICAvLyAgIHRoaXMucGF0Y2hDdXJyZW50Q29tcGFueUluZm8oKTtcbiAgICAgICAgICAvLyAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oXG4gICAgICAgICAgLy8gICAgICdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJyxcbiAgICAgICAgICAvLyAgICAgJ09LJyxcbiAgICAgICAgICAvLyAgICAgeyBkdXJhdGlvbjogNTAwMCB9XG4gICAgICAgICAgLy8gICApO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMucGF0Y2hDdXJyZW50Q29tcGFueUluZm8oKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxvZ291dENoZWNrSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtc2lkZW5hdi1jb250YWluZXIgY2xhc3M9XCJhcHAtbWVudS1zaWRlbmF2LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtc2lkZW5hdiBjZGtNZW51QmFyICNzaWRlbmF2IG1vZGU9XCJvdmVyXCIgY2xhc3M9XCJzaWRlbmF2RHJhd2VyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXJIZWFkTG9nb1wiPjxpbWcgW3NyY109XCJfZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoaW1hZ2VEYXRhVXJscy5wcm9mZXRMb2dvKVwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwLW1lbnUtY29udGVudC1zZWN0aW9uXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhcHBUeXBlIG9mIG1lbnVMaXN0XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcExpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZ1thcHBUeXBlLmtleV0/LmFwcExvZ29VcmlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJfZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RVcmwoYXBwQ29uZmlnW2FwcFR5cGUua2V5XT8uYXBwTG9nb1VyaSlcIj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViSGVhZExpc3RJdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFwcFR5cGUudmFsdWVcIiBjbGFzcz1cIm1lbnUtaXRlbVwiIChjbGljayk9XCJtZW51U2VsZWN0aW9uKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYWN0aXZlLW1lbnUnOiBpdGVtIHwgYWN0aXZlUm91dGUgOiBfcm91dGVyLnVybDpfaGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWVudUljb25MaXN0XCIgKm5nSWY9XCJpdGVtLmljb25cIj57eyBpdGVtLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5tZW51TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtc2lkZW5hdj5cblxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XG48bWF0LXRvb2xiYXIgY2RrTWVudUJhciBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImhlYWRlci13cmFwcGVyIGNvbW1vbl9oZWFkZXIgc2hhZG93LXNtXCI+XG4gICAgPCEtLSBNYWluIG5hdiBidXR0b24gYW5kIG5hdmlnYXRpb24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ0aGVtZS13aGl0ZVwiIChjbGljayk9XCJzaWRlbmF2LnRvZ2dsZSgpXCJcbiAgICAgICAgY2xhc3M9XCJwbXgtYnV0dG9uIHBteC1tZW51LWJ1dHRvbiBvcmRlcnMtbWVudSBpY29uLWJ0biBtcy0wIG1lLTNcIiBhcmlhLWxhYmVsPVwibWFpbiBtZW51XCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIk1haW4gbWVudVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwicG9jLWhlYWRlci10b29sdGlwXCI+PG1hdC1pY29uPm1lbnU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxhIGNsYXNzPVwibmF2YmFyLWJyYW5kIG1lLWF1dG9cIiBocmVmPVwiI1wiPlxuICAgICAgICA8aW1nIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGFwcENvbmZpZ1tfaGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlXT8uYXBwTG9nb1VyaSlcIlxuICAgICAgICAgICAgYWx0PVwiQXBwIExvZ29cIiBjbGFzcz1cImFwcC1sb2dvXCI+XG4gICAgPC9hPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJzd2l0Y2hDb21wYW55RmllbGRcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5Db21wYW55PC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbF09XCJjb21wYW55Q29udHJvbFwiIChzZWxlY3Rpb25DaGFuZ2UpPVwic3dpdGNoQ29tcGFueSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIGNvbXBhbnlMaXN0XCIgW3ZhbHVlXT1cIm9wdFwiPlxuICAgICAgICAgICAgICAgIHt7b3B0Lm5hbWV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuXG4gICAgPCEtLSBQcm9maWxlIGJ1dHRvbiBhbmQgcHJvZmlsZSBkcm9wZG93biBsaW5rcyAtLT5cbiAgICA8YnV0dG9uIGNsYXNzPVwicG14LWJ1dHRvbiBwbXgtbWVudS1idXR0b24gcHJvZmlsZS1idXR0b25cIiBtYXQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInByb2ZpbGUtaW5uZXJcIj5cbiAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImJyYW5kLWxvZ28gYWxpZ24tc2VsZi1jZW50ZXJcIiAqbmdJZj1cImFjdGl2ZUNvbXBhbnk/LmxvZ29cIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImFjdGl2ZUNvbXBhbnk/LmxvZ28gPyAnYnJhbmRlZC1sb2dvLXRydWUnIDogJ2JyYW5kZWQtbG9nby1mYWxzZSdcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGFjdGl2ZUNvbXBhbnk/LmxvZ28gKyAnKSd9XCI+PC9kaXY+IC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiPlxuICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdEF2YXRhclwiIFtzcmNdPVwidXNlckltYWdlTGlua1wiIGNsYXNzPVwiYXZhdGFyLWltYWdlXCIgYWx0PVwiQXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0QXZhdGFyPjxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItZGVmYXVsdFwiIGFsdD1cInByb2ZpbGUgcGljXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJhY2NvdW50c19kcnBtZW51IHBteC1tZW51LWdyb3VwIGhlYWRlci1kcm9wZG93bi1wcm9maWxlXCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQgc2hvdy1tZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci11c2VyLXRvcFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdExhcmdlQXZhdGFyXCIgW3NyY109XCJ1c2VySW1hZ2VMaW5rXCIgY2xhc3M9XCJhdmF0YXItaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiQXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYXJnZUF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSArICcpJ31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF2YXRhci1pY29uIGRlZmF1bHQtYXZhdGFyXCIgYWx0PVwiQXZhdGFyIGljb25cIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwcm9maWxlLW5hbWVcIj48c3BhbiAqbmdJZj1cInVzZXJBdXRoRGF0YVwiPnt7IHVzZXJBdXRoRGF0YT8uZmlyc3ROYW1lIH19IHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8ubGFzdE5hbWUgfX08L3NwYW4+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwicG14LWJ1dHRvbiBidG4gYnRuLXNtYWxsIHZpZXctcHJvZmlsZSBtcy0wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJvZmlsZSgpXCI+VmlldyBQcm9maWxlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwPk92ZXJ2aWV3PC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cblxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VyQXV0aERhdGE/LmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJsaXN0LXRleHQgbGlzdC10ZXh0LWVtYWlsIG10LTMgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+bWFpbDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJwbXgtbG93ZXItY2FzZSBwbXgtdGV4dC13cmFwIG1lLWF1dG9cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImxpc3QtdGV4dCBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJsaXN0LWljb25cIj5jYWxsPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cInRpdGxlLWNhc2UgbWUtYXV0b1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgIDx1bCBjZGtNZW51IGNsYXNzPVwibGlzdC1ncm91cCBsYXN0LWdyb3VwIG15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIHB5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b24gYnRuLWxvZ291dFwiIChjbGljayk9XCJvbkxvZ291dENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cG93ZXJfc2V0dGluZ3NfbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtdGV4dFwiPkxvZ291dDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LXRvb2xiYXI+Il19
|
|
412
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFPdEQsTUFBTSxPQUFPLGVBQWU7SUF3QjFCO1FBdEJBLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsa0JBQWEsR0FBUSxJQUFJLENBQUM7UUFDMUIsb0JBQWUsR0FBUSxFQUFFLENBQUM7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LHlCQUF5QjtvQkFDekIsT0FBTztvQkFDUCxJQUFJO2lCQUNMO2FBQ0Y7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7YUFDaEM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RDO1FBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsYUFBYSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQzs7NkdBcFpVLGVBQWU7aUdBQWYsZUFBZSxzZ0JDN0I1QixnaE1BNkdjOzRGRGhGRCxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFlBQVk7MEVBaUJiLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtlLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFnR3BCLFVBQVU7c0JBUFQsWUFBWTt1QkFBQyxvQkFBb0I7O3NCQUNqQyxZQUFZO3VCQUFDLGtCQUFrQjs7c0JBQy9CLFlBQVk7dUJBQUMsZ0JBQWdCOztzQkFDN0IsWUFBWTt1QkFBQyxxQkFBcUI7O3NCQUNsQyxZQUFZO3VCQUFDLG9CQUFvQjs7c0JBQ2pDLFlBQVk7dUJBQUMsaUJBQWlCOztzQkFDOUIsWUFBWTt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTaWRlbmF2IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBzaWduT3V0IH0gZnJvbSAnYXdzLWFtcGxpZnkvYXV0aCc7XG5pbXBvcnQgeyBBcHBNZW51LCBDb21wYW55IH0gZnJvbSAnLi4vY29tbW9uLWhlYWRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDb21wYW55U3dpdGNoV2FybmluZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBhbnktc3dpdGNoLXdhcm5pbmcvY29tcGFueS1zd2l0Y2gtd2FybmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUFJPRkVUX0FQUFMgfSBmcm9tICcuLi91dGlscy9hcHBzLmVudW0nO1xuaW1wb3J0IHsgaW1hZ2VEYXRhVXJsIH0gZnJvbSAnLi4vdXRpbHMvaW1hZ2UuZGF0YXVybCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29tcGFueVByb2ZpbGU6IGFueTtcbiAgcG9ydGFsVXJsOiBzdHJpbmcgPSAnJztcbiAgdXNlckF1dGhEYXRhOiBhbnk7XG4gIHVzZXJJbWFnZUxpbms6IGFueSA9IG51bGw7XG4gIHVzZXJDb21wYW55TG9nbzogYW55ID0gJyc7XG4gIGltYWdlRGF0YVVybHMgPSBpbWFnZURhdGFVcmw7XG4gIHB1YmxpYyBfcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgX3NuYWNrYmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcHVibGljIF9oZWFkZXJTZXIgPSBpbmplY3QoQ29tbW9uSGVhZGVyU2VydmljZSk7XG4gIHB1YmxpYyBfZG9tU2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG4gIHByaXZhdGUgaW5hY3Rpdml0eVRpbWVvdXQ6IGFueTtcbiAgcHJpdmF0ZSBsb2dvdXRDaGVja0ludGVydmFsOiBhbnk7XG4gIEBJbnB1dCgpIElOQUNUSVZJVFlfTElNSVQgPSAxMjAwMDA7IC8vIDIgbWludXRlc1xuXG4gIEBPdXRwdXQoKSBsb2dvdXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb21wYW55Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBhcHBDb25maWc6IGFueSA9IEFwcENvbmZpZy5hcHBDb25maWc7XG4gIGNvbXBhbnlMaXN0OiBDb21wYW55W10gPSBbXTtcbiAgQFZpZXdDaGlsZCgnc2lkZW5hdicpIHNpZGVuYXYhOiBNYXRTaWRlbmF2O1xuICBtZW51TGlzdDogeyBrZXk6IHN0cmluZywgdmFsdWU6IEFwcE1lbnVbXSB9W10gPSBbXTtcbiAgYWN0aXZlQ29tcGFueTogQ29tcGFueSB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMudXBkYXRlTGFzdEFjY2Vzc2VkQXBwSW5mbygpO1xuICAgIHRoaXMuZ2V0Q29tcGFueUxpc3QoKTtcblxuICAgIHRoaXMuX2hlYWRlclNlci5nZXRVc2VyRGV0YWlscygpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICB0aGlzLnVzZXJBdXRoRGF0YSA9IHJlcztcbiAgICAgICAgICB0aGlzLmdldE1lbnVMaXN0KCk7XG4gICAgICAgICAgaWYgKHJlcy5wcm9maWxlSW1hZ2UpIHtcbiAgICAgICAgICAgIHRoaXMudXNlckltYWdlTGluayA9IHJlcy5wcm9maWxlSW1hZ2UubG9jYXRpb25VcmxcbiAgICAgICAgICAgICAgPyB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChyZXMucHJvZmlsZUltYWdlLmxvY2F0aW9uVXJsKVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICAvLyBpZiAodXNlckluZm8/LnVzZXJuYW1lKSB7XG4gICAgLy8gICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLl9oZWFkZXJTZXIuZ2V0VXNlckRldGFpbHMoKTtcbiAgICAvLyAgIGZvcmtKb2luKFt1c2VyRGV0YWlsc10pLnN1YnNjcmliZSh7XG4gICAgLy8gICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAvLyAgICAgICBpZiAocmVzICYmIHJlc1swXSkge1xuICAgIC8vICAgICAgICAgdGhpcy51c2VyQXV0aERhdGEgPSByZXNbMF07XG4gICAgLy8gICAgICAgICB0aGlzLnVzZXJuYW1lID0gdGhpcy51c2VyQXV0aERhdGEuZmlyc3ROYW1lO1xuICAgIC8vICAgICAgICAgdGhpcy5nZXRNZW51TGlzdCgpO1xuICAgIC8vICAgICAgICAgaWYgKHRoaXMudXNlckF1dGhEYXRhPy5fbGlua3M/LnByb2ZpbGVJbWFnZT8uaHJlZikge1xuICAgIC8vICAgICAgICAgICB0aGlzLmdldFVzZXJQcm9maWxlKCk7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9LFxuICAgIC8vICAgfSk7XG4gICAgLy8gfVxuICAgIHRoaXMucmVzZXRUaW1lcigpO1xuXG4gICAgLy8gQ2xlYXIgYW55IHN0YWxlIGxvZ291dCBzaWduYWwgb24gaW5pdFxuICAgIHRoaXMuc2V0Q29va2llKCdzZXNzaW9uX2V4cGlyZWQnLCAnJywgLTEpO1xuXG4gICAgdGhpcy5zdGFydExvZ291dENoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIHRvIGdldCB0aGUgcm9vdCBkb21haW4gKGUuZy4gLm15Y29tLmFpKSB0byBzaGFyZSBjb29raWVzIGFjcm9zcyBzdWJkb21haW5zL3BvcnRzLlxuICAgKiBJZiBvbiBsb2NhbGhvc3Qgb3IgYW4gSVAsIGl0IGZhbGxzIGJhY2sgdG8gdGhlIGhvc3RuYW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRSb290RG9tYWluKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG4gICAgY29uc3QgcGFydHMgPSBob3N0bmFtZS5zcGxpdCgnLicpO1xuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA+IDIgJiYgIS9eXFxkezEsM31cXC5cXGR7MSwzfVxcLlxcZHsxLDN9XFwuXFxkezEsM30kLy50ZXN0KGhvc3RuYW1lKSkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSA0KyBwYXJ0cyAoZS5nLiBhcHAxLmxvY2FsLnByb2ZldC5haSksIHdlIHdhbnQgdG8gaW5jbHVkZSB0aGUgZW52aXJvbm1lbnQgKGxvY2FsLnByb2ZldC5haSlcbiAgICAgIC8vIHRvIGF2b2lkIHNoYXJpbmcgY29va2llcyB3aXRoIGFwcDEuZGV2LnByb2ZldC5haSBvciBhcHAxLnByb2ZldC5haS5cbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAzKSB7XG4gICAgICAgIHJldHVybiAnLicgKyBwYXJ0cy5zbGljZSgtMykuam9pbignLicpO1xuICAgICAgfVxuICAgICAgLy8gRm9yIHN0YW5kYXJkIDMgcGFydHMgKGFwcDEucHJvZmV0LmFpKSwgc2hhcmUgb24gLnByb2ZldC5haVxuICAgICAgcmV0dXJuICcuJyArIHBhcnRzLnNsaWNlKC0yKS5qb2luKCcuJyk7XG4gICAgfVxuICAgIHJldHVybiBob3N0bmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q29va2llKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZGF5czogbnVtYmVyKSB7XG4gICAgbGV0IGV4cGlyZXMgPSBcIlwiO1xuICAgIGlmIChkYXlzKSB7XG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgIGRhdGUuc2V0VGltZShkYXRlLmdldFRpbWUoKSArIChkYXlzICogMjQgKiA2MCAqIDYwICogMTAwMCkpO1xuICAgICAgZXhwaXJlcyA9IFwiOyBleHBpcmVzPVwiICsgZGF0ZS50b1VUQ1N0cmluZygpO1xuICAgIH1cbiAgICAvLyBJbXBvcnRhbnQ6IHNldCBkb21haW4gdG8gYWxsb3cgc2hhcmluZyBhY3Jvc3Mgc3ViZG9tYWluc1xuICAgIGNvbnN0IGRvbWFpbiA9IFwiOyBkb21haW49XCIgKyB0aGlzLmdldFJvb3REb21haW4oKTtcbiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgXCI9XCIgKyAodmFsdWUgfHwgXCJcIikgKyBleHBpcmVzICsgZG9tYWluICsgXCI7IHBhdGg9L1wiO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb29raWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgbmFtZUVRID0gbmFtZSArIFwiPVwiO1xuICAgIGNvbnN0IGNhID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7Jyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IGMgPSBjYVtpXTtcbiAgICAgIHdoaWxlIChjLmNoYXJBdCgwKSA9PSAnICcpIGMgPSBjLnN1YnN0cmluZygxLCBjLmxlbmd0aCk7XG4gICAgICBpZiAoYy5pbmRleE9mKG5hbWVFUSkgPT0gMCkgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWVFUS5sZW5ndGgsIGMubGVuZ3RoKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJylcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snKVxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDp0b3VjaHN0YXJ0JylcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6dG91Y2htb3ZlJylcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6c2Nyb2xsJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmZvY3VzJylcbiAgcmVzZXRUaW1lcihpc1VzZXJBY3Rpdml0eTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5pbmFjdGl2aXR5VGltZW91dCk7XG5cbiAgICAvLyBVcGRhdGUgZ2xvYmFsIGFjdGl2aXR5IHRpbWVzdGFtcCBpbiBjb29raWUgT05MWSBpZiB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rpdml0eVxuICAgIGlmIChpc1VzZXJBY3Rpdml0eSkge1xuICAgICAgLy8gVXNlIGEgc2hvcnQgZXhwaXJ5IChlLmcuIDEgZGF5KSBvciBzeW5jIHdpdGggc2Vzc2lvbiBsZW5ndGhcbiAgICAgIHRoaXMuc2V0Q29va2llKCdsYXN0QWN0aXZlU2Vzc2lvblRpbWUnLCBEYXRlLm5vdygpLnRvU3RyaW5nKCksIDEpO1xuICAgIH1cblxuICAgIC8vIGlmICghdGhpcy5faGVhZGVyU2VyLmlzU2Vzc2lvbkV4cGlyeURpYWxvZ09wZW4pIHtcbiAgICB0aGlzLmluYWN0aXZpdHlUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBDaGVjayBnbG9iYWwgYWN0aXZpdHkgYmVmb3JlIGxvZ2dpbmcgb3V0XG4gICAgICBjb25zdCBsYXN0QWN0aXZlID0gdGhpcy5nZXRDb29raWUoJ2xhc3RBY3RpdmVTZXNzaW9uVGltZScpO1xuICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgIGNvbnN0IGxhc3RBY3RpdmVUaW1lID0gbGFzdEFjdGl2ZSA/IHBhcnNlSW50KGxhc3RBY3RpdmUsIDEwKSA6IDA7XG4gICAgICBjb25zdCBlbGFwc2VkID0gbm93IC0gbGFzdEFjdGl2ZVRpbWU7XG5cbiAgICAgIGlmIChsYXN0QWN0aXZlICYmIGVsYXBzZWQgPCB0aGlzLklOQUNUSVZJVFlfTElNSVQpIHtcbiAgICAgICAgLy8gVXNlciB3YXMgYWN0aXZlIGluIGFub3RoZXIgdGFiL2FwcCByZWNlbnRseVxuICAgICAgICAvLyBSZXNjaGVkdWxlIHRoZSBjaGVjaywgYnV0IERPIE5PVCB1cGRhdGUgdGhlIGFjdGl2aXR5IHRpbWVzdGFtcFxuICAgICAgICB0aGlzLnJlc2V0VGltZXIoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gUmVhbGx5IGluYWN0aXZlIGFjcm9zcyBhbGwga25vd24gdGFic1xuICAgICAgICB0aGlzLmhhbmRsZUxvZ291dCgpO1xuICAgICAgfVxuICAgIH0sIHRoaXMuSU5BQ1RJVklUWV9MSU1JVCk7XG4gICAgLy8gfVxuICB9XG5cblxuXG4gIC8qKlxuICAgICAqIEhlbHBlciB0byBpZGVudGlmeSB0aGUgc2Vzc2lvbiBleHBpcnkgaW4gaW4tYWN0aXZlIHRhYnMuXG4gICovXG4gIHByaXZhdGUgc3RhcnRMb2dvdXRDaGVjaygpIHtcbiAgICAvLyBQb2xsIGZvciB0aGUgbG9nb3V0IHNpZ25hbCBjb29raWUgKHdvcmtzIGFjcm9zcyBwb3J0cy9zdWJkb21haW5zKVxuICAgIHRoaXMubG9nb3V0Q2hlY2tJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmdldENvb2tpZSgnc2Vzc2lvbl9leHBpcmVkJykpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgdGFiIHN0aWxsIFwiYWN0aXZlXCIgYWNjb3JkaW5nIHRvIHRoZSBzaGFyZWQgdGltZVxuICAgICAgICAvLyBJZiB0YWIgaXMgYWN0aXZlIGJ1dCByZWNlaXZpbmcgYSBsb2dvdXQgc2lnbmFsLCBpdCBpbXBsaWVzIGEgTUFOVUFMIGxvZ291dCBmcm9tIGFub3RoZXIgdGFiLlxuICAgICAgICAvLyBJZiB0YWIgaXMgaW5hY3RpdmUgYW5kIHJlY2VpdmluZyBhIGxvZ291dCBzaWduYWwsIGl0IGltcGxpZXMgYSBUSU1FT1VULlxuICAgICAgICBjb25zdCBsYXN0QWN0aXZlID0gdGhpcy5nZXRDb29raWUoJ2xhc3RBY3RpdmVTZXNzaW9uVGltZScpO1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBsYXN0QWN0aXZlVGltZSA9IGxhc3RBY3RpdmUgPyBwYXJzZUludChsYXN0QWN0aXZlLCAxMCkgOiAwO1xuICAgICAgICBjb25zdCBlbGFwc2VkID0gbm93IC0gbGFzdEFjdGl2ZVRpbWU7XG5cbiAgICAgICAgY29uc3QgaXNNYW51YWwgPSBlbGFwc2VkIDwgdGhpcy5JTkFDVElWSVRZX0xJTUlUO1xuICAgICAgICB0aGlzLmhhbmRsZUxvZ291dChmYWxzZSwgZmFsc2UsIGlzTWFudWFsKTtcbiAgICAgIH1cbiAgICB9LCAyMDAwKTsgLy8gQ2hlY2sgZXZlcnkgMiBzZWNvbmRzXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUxvZ291dChicm9hZGNhc3Q6IGJvb2xlYW4gPSB0cnVlLCBzaG93UG9wdXA6IGJvb2xlYW4gPSB0cnVlLCBpc01hbnVhbDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgLy8gUHJldmVudCBtdWx0aXBsZSBwb3B1cHMgaWYgYWxyZWFkeSBvcGVuXG4gICAgLy8gaWYgKHRoaXMuX2hlYWRlclNlci5pc1Nlc3Npb25FeHBpcnlEaWFsb2dPcGVuICYmIHNob3dQb3B1cCkge1xuICAgIC8vICAgcmV0dXJuO1xuICAgIC8vIH1cblxuICAgIGlmIChicm9hZGNhc3QpIHtcbiAgICAgIC8vIFNldCBhIGNvb2tpZSB0byBzaWduYWwgb3RoZXIgdGFicy9wb3J0c1xuICAgICAgdGhpcy5zZXRDb29raWUoJ3Nlc3Npb25fZXhwaXJlZCcsICd0cnVlJywgMSk7XG4gICAgfVxuXG4gICAgdGhpcy5sb2dvdXRFdmVudC5lbWl0KCk7XG5cbiAgICBsZXQgc2Vzc2lvblVybCA9IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybDtcbiAgICAvLyBPbmx5IGFkZCBzZXNzaW9uRXhwaXJlZCBwYXJhbXMgaWYgaXQgaXMgTk9UIGEgbWFudWFsIGxvZ291dFxuICAgIGlmICghaXNNYW51YWwpIHtcbiAgICAgIGxldCBhcHBVcmwgPSB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLnNpZ25PdXRVcmw7XG4gICAgICBsZXQgc2VwYXJhdG9yID0gYXBwVXJsLmluY2x1ZGVzKCc/JykgPyAnJicgOiAnPyc7XG4gICAgICBzZXNzaW9uVXJsID0gYXBwVXJsICsgc2VwYXJhdG9yICsgJ3Nlc3Npb25FeHBpcmVkPXRydWUmdGltZW91dD0nICsgdGhpcy5JTkFDVElWSVRZX0xJTUlUO1xuICAgIH1cbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogc2Vzc2lvblVybCB9IH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHNlc3Npb25VcmwsICdfc2VsZicpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignTG9nb3V0IGZhaWxlZDonLCBlcnJvcik7XG4gICAgICAgIHdpbmRvdy5vcGVuKHNlc3Npb25VcmwsICdfc2VsZicpO1xuICAgICAgfSk7XG5cbiAgICAvLyBpZiAoc2hvd1BvcHVwKSB7XG4gICAgLy8gICB0aGlzLl9oZWFkZXJTZXIub3BlblNlc3Npb25FeHBpcmVJbmZvKHsgc2Vzc2lvbk91dFRpbWVJbk1pbnM6IHRoaXMuSU5BQ1RJVklUWV9MSU1JVCB9KTtcbiAgICAvLyB9XG5cbiAgICBpZiAodGhpcy5pbmFjdGl2aXR5VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5hY3Rpdml0eVRpbWVvdXQpO1xuICAgIH1cbiAgICAvLyBTdG9wIHBvbGxpbmcgb25jZSB3ZSBhcmUgbG9nZ2luZyBvdXRcbiAgICBpZiAodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMubG9nb3V0Q2hlY2tJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Q3VycmVudENvbXBhbnkoKSB7XG4gICAgbGV0IGNvbSA9IHRoaXMuY29tcGFueUxpc3QuZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIHRoaXMuYWN0aXZlQ29tcGFueSA9IGNvbTtcbiAgfVxuXG4gIHBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCkge1xuICAgIGxldCBjb20gPSB0aGlzLmNvbXBhbnlMaXN0LmZpbmQoeCA9PiB4LmlzQWN0aXZlKTtcbiAgICB0aGlzLmNvbXBhbnlDb250cm9sLnBhdGNoVmFsdWUoY29tKTtcbiAgfVxuXG4gIHNpZGVNZW51VG9nZ2xlKCkge1xuICAgIHRoaXMuc2lkZW5hdi50b2dnbGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBCeUFwcFR5cGUobWVudUxpc3Q6IEFwcE1lbnVbXSk6IHsga2V5OiBzdHJpbmcsIHZhbHVlOiBBcHBNZW51W10gfVtdIHtcbiAgICBsZXQgZ3JvdXBlZCA9IG1lbnVMaXN0LnJlZHVjZSgociwgYSkgPT4ge1xuICAgICAgclthLmFwcFR5cGVdID0gclthLmFwcFR5cGVdIHx8IFtdO1xuXG4gICAgICAvLyBUT0RPOiBQYXRoIHJlZmVyZW5jZXMgYXJlIHRvIGJlIHJlcGxhY2VkIHdpdGggdmFsdWVzIGZyb20gYmFja2VuZCBBUEkgcmVzcG9uc2UuIFJlbW92ZSB0aGlzIGJsb2NrIHdoZW4gYmFja2VuZCBpcyByZWFkeVxuICAgICAgaWYgKGEuYXBwVHlwZSA9PSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsKSB7XG4gICAgICAgIGxldCBpc0NvbXBhbnlNZW51ID0gYS5wYXRoID09PSAnYXBwL2NvbXBhbmllcyc7XG4gICAgICAgIGxldCBpc0NvbXBhbnlBZG1pbiA9IHRoaXMudXNlckF1dGhEYXRhPy5yb2xlc0ZvckN1cnJlbnRDb21wYW55LmluY2x1ZGVzKFwiQ09NUEFOWV9BRE1JTlwiKTtcblxuICAgICAgICBpZiAoaXNDb21wYW55TWVudSAmJiBpc0NvbXBhbnlBZG1pbikge1xuICAgICAgICAgIGEgPSB7IC4uLmEsIHBhdGg6ICdhcHAvYWRkQ29tcGFueS9jb21wYW55RGV0YWlscycgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRU5EIG9mIFRPRE8gYmxvY2tcblxuICAgICAgclthLmFwcFR5cGVdLnB1c2goYSk7XG4gICAgICByZXR1cm4gcjtcbiAgICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZ3JvdXBlZCkubWFwKChba2V5LCB2YWx1ZV0pID0+ICh7IGtleSwgdmFsdWU6IHZhbHVlIGFzIEFwcE1lbnVbXSB9KSk7XG4gIH1cblxuICBtZW51U2VsZWN0aW9uKG1lbnU6IEFwcE1lbnUpIHtcbiAgICB0aGlzLnNpZGVNZW51VG9nZ2xlKCk7XG4gICAgbGV0IGFjdGl2ZUNvbSA9IHRoaXMuY29tcGFueUxpc3QuZmluZCh4ID0+IHguaXNBY3RpdmUpO1xuICAgIGxldCBpc0NvbXBhbnlNZW51ID0gbWVudS5wYXRoID09PSAnYXBwL2FkZENvbXBhbnkvY29tcGFueURldGFpbHMnO1xuICAgIGxldCBpc0NvbXBhbnlBZG1pbiA9IHRoaXMudXNlckF1dGhEYXRhPy5yb2xlc0ZvckN1cnJlbnRDb21wYW55LmluY2x1ZGVzKFwiQ09NUEFOWV9BRE1JTlwiKTtcblxuICAgIGlmIChtZW51LmFwcFR5cGUgPT0gdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlKSB7XG4gICAgICAvLyBUT0RPOiBQYXRoIHJlZmVyZW5jZXMgYXJlIHRvIGJlIHJlcGxhY2VkIHdpdGggdmFsdWVzIGZyb20gYmFja2VuZCBBUEkgcmVzcG9uc2VcbiAgICAgIGlmIChpc0NvbXBhbnlNZW51ICYmIGlzQ29tcGFueUFkbWluKSB7XG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbbWVudS5wYXRoLCBhY3RpdmVDb20/LmlkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW21lbnUucGF0aF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChhY3RpdmVDb20pIHtcbiAgICAgICAgaWYgKGFjdGl2ZUNvbS5iYXNlVXJsc1ttZW51LmFwcFR5cGVdKSB7XG4gICAgICAgICAgLy8gVE9ETzogUGF0aCByZWZlcmVuY2VzIGFyZSB0byBiZSByZXBsYWNlZCB3aXRoIHZhbHVlcyBmcm9tIGJhY2tlbmQgQVBJIHJlc3BvbnNlXG4gICAgICAgICAgaWYgKGlzQ29tcGFueU1lbnUgJiYgaXNDb21wYW55QWRtaW4pIHtcbiAgICAgICAgICAgIGxldCB1cmwgPSBgJHthY3RpdmVDb20uYmFzZVVybHNbbWVudS5hcHBUeXBlXX0vJHttZW51LnBhdGh9LyR7YWN0aXZlQ29tLmlkfWA7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gYCR7YWN0aXZlQ29tLmJhc2VVcmxzW21lbnUuYXBwVHlwZV19LyR7bWVudS5wYXRofWA7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldENvbXBhbnlMaXN0KCkge1xuICAgIHRoaXMuX2hlYWRlclNlci5nZXRDb21wYW55TGlzdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAodjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuX2hlYWRlclNlci5zZXRDb21wYW55TGlzdCh2KTtcbiAgICAgICAgdGhpcy5jb21wYW55TGlzdCA9IHY7XG4gICAgICAgIHRoaXMuc2VsZWN0Q3VycmVudENvbXBhbnkoKTtcbiAgICAgICAgdGhpcy5wYXRjaEN1cnJlbnRDb21wYW55SW5mbygpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cbiAgZ2V0TWVudUxpc3QoKSB7XG4gICAgdGhpcy5faGVhZGVyU2VyLmdldE1lbnVMaXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5faGVhZGVyU2VyLnNldE1lbnVTdGF0ZSh2KTtcbiAgICAgICAgdGhpcy5tZW51TGlzdCA9IHRoaXMuZ3JvdXBCeUFwcFR5cGUodik7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByb2ZpbGUoKSB7XG4gICAgaWYgKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZSA9PSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsKSB7XG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2FwcC9wcm9maWxlJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgbGV0IHVybCA9IHRoaXMuYWN0aXZlQ29tcGFueT8uYmFzZVVybHMucHJvZmV0X3BvcnRhbCArICcvYXBwL3Byb2ZpbGUnO1xuICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICAvLyBTeW5jIHdpdGggb3RoZXIgdGFic1xuICAgIHRoaXMuc2V0Q29va2llKCdzZXNzaW9uX2V4cGlyZWQnLCAndHJ1ZScsIDEpO1xuXG4gICAgLy8gQ2xlYXIgdGltZXJzXG4gICAgaWYgKHRoaXMuaW5hY3Rpdml0eVRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLmluYWN0aXZpdHlUaW1lb3V0KTtcbiAgICBpZiAodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKSBjbGVhckludGVydmFsKHRoaXMubG9nb3V0Q2hlY2tJbnRlcnZhbCk7XG5cbiAgICB0aGlzLmxvZ291dEV2ZW50LmVtaXQoKTtcbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsIH0gfSlcbiAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgIHdpbmRvdy5vcGVuKHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCwgJ19zZWxmJyk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgc2lnbk91dCh7IGdsb2JhbDogdHJ1ZSwgb2F1dGg6IHsgcmVkaXJlY3RVcmw6IHRoaXMuX2hlYWRlclNlci5oZWFkZXJDb25maWcuc2lnbk91dFVybCB9IH0pXG4gICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5zaWduT3V0VXJsLCAnX3NlbGYnKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IGNvbnNvbGUubG9nKGVycm9yKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZUxhc3RBY2Nlc3NlZEFwcEluZm8oKSB7XG4gICAgbGV0IHJlcSA9IHtcbiAgICAgIGxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uOiB0aGlzLl9oZWFkZXJTZXIuaGVhZGVyQ29uZmlnLmFwcFR5cGVcbiAgICB9O1xuXG4gICAgdGhpcy5faGVhZGVyU2VyLnVwZGF0ZUxhc3RBY2Nlc3NlZEFwcGxpY2F0aW9uKHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc3dpdGNoQ29tcGFueShpbmZvOiBhbnkpIHtcbiAgICBsZXQgY29tcGFueSA9IGluZm8udmFsdWU7XG4gICAgbGV0IGNvbUluZm8gPSB7XG4gICAgICBhY3RpdmVDb21wYW55OiB0aGlzLmFjdGl2ZUNvbXBhbnk/Lm5hbWUsXG4gICAgICBzd2l0Y2hpbmdDb21wYW55OiBjb21wYW55Lm5hbWVcbiAgICB9O1xuICAgIHRoaXMuX2hlYWRlclNlci5fZGlhbG9nLm9wZW4oQ29tcGFueVN3aXRjaFdhcm5pbmdDb21wb25lbnQsIHsgZGF0YTogY29tSW5mbyB9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICAvLyBGaW5kIHRoZSBkb21haW4gaW5mb3JtYXRpb25cbiAgICAgICAgaWYgKCFjb21wYW55LmlzQWN0aXZlKSB7XG4gICAgICAgICAgLy8gbGV0IGRvbWFpbkluZm8gPSB0aGlzLl9oZWFkZXJTZXIuZ2V0RG9tYWluSW5mbygpO1xuICAgICAgICAgIC8vIGlmIChkb21haW5JbmZvKSB7XG4gICAgICAgICAgbGV0IHJlcTogYW55ID0ge1xuICAgICAgICAgICAgY29tcGFueUtleTogY29tcGFueS5jb21wYW55S2V5LFxuICAgICAgICAgICAgYXBwTmFtZTogdGhpcy5faGVhZGVyU2VyLmhlYWRlckNvbmZpZy5hcHBUeXBlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5faGVhZGVyU2VyLnVwZGF0ZVVzZXJDb21wYW55KHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS50eXBlICYmIHJlc3BvbnNlLnR5cGUgPT0gJ09LJykge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgdXJsID0gcmVzcG9uc2UuZGF0YS5hcHBsaWNhdGlvblVSTDtcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIGN1cnJlbnQgcGFnZSB0byByZWxvYWQgdGhlIGNvbnRlbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbXBhbnlcbiAgICAgICAgICAgICAgICAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbihcbiAgICAgICAgICAgICAgICAgICdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJyxcbiAgICAgICAgICAgICAgICAgICdPSycsXG4gICAgICAgICAgICAgICAgICB7IGR1cmF0aW9uOiA1MDAwIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucGF0Y2hDdXJyZW50Q29tcGFueUluZm8oKTtcbiAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oXG4gICAgICAgICAgICAgICAgJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLFxuICAgICAgICAgICAgICAgICdPSycsXG4gICAgICAgICAgICAgICAgeyBkdXJhdGlvbjogNTAwMCB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIC8vIH0gXG4gICAgICAgICAgLy8gZWxzZSB7XG4gICAgICAgICAgLy8gICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICAgICAgLy8gICB0aGlzLl9zbmFja2Jhci5vcGVuKFxuICAgICAgICAgIC8vICAgICAnQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsXG4gICAgICAgICAgLy8gICAgICdPSycsXG4gICAgICAgICAgLy8gICAgIHsgZHVyYXRpb246IDUwMDAgfVxuICAgICAgICAgIC8vICAgKTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnBhdGNoQ3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbmFjdGl2aXR5VGltZW91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5hY3Rpdml0eVRpbWVvdXQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5sb2dvdXRDaGVja0ludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMubG9nb3V0Q2hlY2tJbnRlcnZhbCk7XG4gICAgfVxuICB9XG59XG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyIGNsYXNzPVwiYXBwLW1lbnUtc2lkZW5hdi1jb250YWluZXJcIj5cbiAgICA8bWF0LXNpZGVuYXYgY2RrTWVudUJhciAjc2lkZW5hdiBtb2RlPVwib3ZlclwiIGNsYXNzPVwic2lkZW5hdkRyYXdlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhd2VySGVhZExvZ29cIj48aW1nIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGltYWdlRGF0YVVybHMucHJvZmV0TG9nbylcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1tZW51LWNvbnRlbnQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXBwVHlwZSBvZiBtZW51TGlzdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHBMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJhcHBDb25maWdbYXBwVHlwZS5rZXldPy5hcHBMb2dvVXJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGFwcENvbmZpZ1thcHBUeXBlLmtleV0/LmFwcExvZ29VcmkpXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1YkhlYWRMaXN0SXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBhcHBUeXBlLnZhbHVlXCIgY2xhc3M9XCJtZW51LWl0ZW1cIiAoY2xpY2spPVwibWVudVNlbGVjdGlvbihpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZS1tZW51JzogaXRlbSB8IGFjdGl2ZVJvdXRlIDogX3JvdXRlci51cmw6X2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1lbnVJY29uTGlzdFwiICpuZ0lmPVwiaXRlbS5pY29uXCI+e3sgaXRlbS5pY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubWVudU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LXNpZGVuYXY+XG5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuPG1hdC10b29sYmFyIGNka01lbnVCYXIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJoZWFkZXItd3JhcHBlciBjb21tb25faGVhZGVyIHNoYWRvdy1zbVwiPlxuICAgIDwhLS0gTWFpbiBuYXYgYnV0dG9uIGFuZCBuYXZpZ2F0aW9uIGxpbmtzIC0tPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwidGhlbWUtd2hpdGVcIiAoY2xpY2spPVwic2lkZW5hdi50b2dnbGUoKVwiXG4gICAgICAgIGNsYXNzPVwicG14LWJ1dHRvbiBwbXgtbWVudS1idXR0b24gb3JkZXJzLW1lbnUgaWNvbi1idG4gbXMtMCBtZS0zXCIgYXJpYS1sYWJlbD1cIm1haW4gbWVudVwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIG1hdFRvb2x0aXA9XCJNYWluIG1lbnVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInBvYy1oZWFkZXItdG9vbHRpcFwiPjxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICA8YSBjbGFzcz1cIm5hdmJhci1icmFuZCBtZS1hdXRvXCIgaHJlZj1cIiNcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cIl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChhcHBDb25maWdbX2hlYWRlclNlci5oZWFkZXJDb25maWcuYXBwVHlwZV0/LmFwcExvZ29VcmkpXCJcbiAgICAgICAgICAgIGFsdD1cIkFwcCBMb2dvXCIgY2xhc3M9XCJhcHAtbG9nb1wiPlxuICAgIDwvYT5cblxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGNsYXNzPVwic3dpdGNoQ29tcGFueUZpZWxkXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+Q29tcGFueTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xdPVwiY29tcGFueUNvbnRyb2xcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cInN3aXRjaENvbXBhbnkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiBjb21wYW55TGlzdFwiIFt2YWx1ZV09XCJvcHRcIj5cbiAgICAgICAgICAgICAgICB7e29wdC5uYW1lfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cblxuICAgIDwhLS0gUHJvZmlsZSBidXR0b24gYW5kIHByb2ZpbGUgZHJvcGRvd24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIHByb2ZpbGUtYnV0dG9uXCIgbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWlubmVyXCI+XG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJicmFuZC1sb2dvIGFsaWduLXNlbGYtY2VudGVyXCIgKm5nSWY9XCJhY3RpdmVDb21wYW55Py5sb2dvXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJhY3RpdmVDb21wYW55Py5sb2dvID8gJ2JyYW5kZWQtbG9nby10cnVlJyA6ICdicmFuZGVkLWxvZ28tZmFsc2UnXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBhY3RpdmVDb21wYW55Py5sb2dvICsgJyknfVwiPjwvZGl2PiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXJcIj5cbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwidXNlckltYWdlTGluaztlbHNlIGRlZmF1bHRBdmF0YXJcIiBbc3JjXT1cInVzZXJJbWFnZUxpbmtcIiBjbGFzcz1cImF2YXRhci1pbWFnZVwiIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEF2YXRhcj48aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChpbWFnZURhdGFVcmxzLmRlZmF1bHRVc2VySW1hZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXZhdGFyLWRlZmF1bHRcIiBhbHQ9XCJwcm9maWxlIHBpY1wiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiYWNjb3VudHNfZHJwbWVudSBwbXgtbWVudS1ncm91cCBoZWFkZXItZHJvcGRvd24tcHJvZmlsZVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50IHNob3ctbWVudVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItdXNlci10b3BcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwidXNlckltYWdlTGluaztlbHNlIGRlZmF1bHRMYXJnZUF2YXRhclwiIFtzcmNdPVwidXNlckltYWdlTGlua1wiIGNsYXNzPVwiYXZhdGFyLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TGFyZ2VBdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBpbWFnZURhdGFVcmxzLmRlZmF1bHRVc2VySW1hZ2UgKyAnKSd9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItaWNvbiBkZWZhdWx0LWF2YXRhclwiIGFsdD1cIkF2YXRhciBpY29uXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZGF0YVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwicHJvZmlsZS1uYW1lXCI+PHNwYW4gKm5nSWY9XCJ1c2VyQXV0aERhdGFcIj57eyB1c2VyQXV0aERhdGE/LmZpcnN0TmFtZSB9fSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQXV0aERhdGE/Lmxhc3ROYW1lIH19PC9zcGFuPjwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiBjbGFzcz1cInBteC1idXR0b24gYnRuIGJ0bi1zbWFsbCB2aWV3LXByb2ZpbGUgbXMtMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByb2ZpbGUoKVwiPlZpZXcgUHJvZmlsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cD5PdmVydmlldzwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlckF1dGhEYXRhPy5lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGNsYXNzPVwibGlzdC10ZXh0IGxpc3QtdGV4dC1lbWFpbCBtdC0zIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxpc3QtaWNvblwiPm1haWw8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwicG14LWxvd2VyLWNhc2UgcG14LXRleHQtd3JhcCBtZS1hdXRvXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQXV0aERhdGE/LmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJBdXRoRGF0YT8uY29udGFjdFBob25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJsaXN0LXRleHQgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+Y2FsbDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJ0aXRsZS1jYXNlIG1lLWF1dG9cIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJBdXRoRGF0YT8uY29udGFjdFBob25lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGFzdC1ncm91cCBteS0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbSBweS0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJwbXgtYnV0dG9uIGxpc3QtYnV0dG9uIGJ0bi1sb2dvdXRcIiAoY2xpY2spPVwib25Mb2dvdXRDbGljaygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnBvd2VyX3NldHRpbmdzX25ldzwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LXRleHRcIj5Mb2dvdXQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG48L21hdC10b29sYmFyPiJdfQ==
|
|
@@ -414,7 +414,7 @@ class HeaderComponent {
|
|
|
414
414
|
this._snackbar = inject(MatSnackBar);
|
|
415
415
|
this._headerSer = inject(CommonHeaderService);
|
|
416
416
|
this._domSanitizer = inject(DomSanitizer);
|
|
417
|
-
this.INACTIVITY_LIMIT =
|
|
417
|
+
this.INACTIVITY_LIMIT = 120000; // 2 minutes
|
|
418
418
|
this.logoutEvent = new EventEmitter();
|
|
419
419
|
this.companyControl = new FormControl();
|
|
420
420
|
this.appConfig = AppConfig.appConfig;
|