@csmart/ngc-smart-core 1.17.1 → 1.18.0
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/esm2022/lib/ngc-smart-core.module.mjs +5 -5
- package/esm2022/lib/smart-auth/smart-access-control.directive.mjs +4 -4
- package/esm2022/lib/smart-auth/smart-auth.service.mjs +4 -4
- package/esm2022/lib/smart-auth/smart-authorization-guard.service.mjs +4 -4
- package/esm2022/lib/smart-auth/smart-error.component.mjs +4 -4
- package/esm2022/lib/smart-auth/smart-login-staff-resolver.service.mjs +4 -4
- package/esm2022/lib/smart-auth/smart-selected-offender-resolver.service.mjs +4 -4
- package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +4 -4
- package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +4 -4
- package/esm2022/lib/smart-offender-header/smart-offender-header.component.mjs +4 -4
- package/esm2022/lib/smart-offender-header/smart-offender-header.service.mjs +4 -4
- package/esm2022/lib/smart-offender-header/smart-offender-redirect.guard.mjs +4 -4
- package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +4 -4
- package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +4 -4
- package/esm2022/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +4 -4
- package/esm2022/lib/smart-storage/xdm.service.mjs +4 -4
- package/fesm2022/csmart-ngc-smart-core.mjs +49 -49
- package/fesm2022/csmart-ngc-smart-core.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -22,8 +22,8 @@ import { SmartAuthorizationGuard } from './smart-auth/smart-authorization-guard.
|
|
|
22
22
|
import { SmartOffenderRedirectGuard } from './smart-offender-header/smart-offender-redirect.guard';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
export class NgcSmartCoreModule {
|
|
25
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
26
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
25
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NgcSmartCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
26
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: NgcSmartCoreModule, declarations: [SmartOffenderHeaderComponent,
|
|
27
27
|
SmartNavbarComponent,
|
|
28
28
|
SmartErrorComponent,
|
|
29
29
|
SmartStaffOffenderOptionsComponent,
|
|
@@ -40,7 +40,7 @@ export class NgcSmartCoreModule {
|
|
|
40
40
|
SmartErrorComponent,
|
|
41
41
|
SmartStaffOffenderOptionsComponent,
|
|
42
42
|
SmartAccessControlDirective] }); }
|
|
43
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
43
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NgcSmartCoreModule, providers: [
|
|
44
44
|
SmartNavbarService,
|
|
45
45
|
SmartOffenderHeaderService,
|
|
46
46
|
SmartStaffOffenderOptionsService,
|
|
@@ -57,7 +57,7 @@ export class NgcSmartCoreModule {
|
|
|
57
57
|
MatCheckboxModule,
|
|
58
58
|
ReactiveFormsModule] }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: NgcSmartCoreModule, decorators: [{
|
|
61
61
|
type: NgModule,
|
|
62
62
|
args: [{
|
|
63
63
|
declarations: [
|
|
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
95
95
|
],
|
|
96
96
|
}]
|
|
97
97
|
}] });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdjLXNtYXJ0LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvbmdjLXNtYXJ0LWNvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzNILDhIQUE4SDtBQUM5SCxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFxQ25HLE1BQU0sT0FBTyxrQkFBa0I7aUlBQWxCLGtCQUFrQjtrSUFBbEIsa0JBQWtCLGlCQWpDM0IsNEJBQTRCO1lBQzVCLG9CQUFvQjtZQUNwQixtQkFBbUI7WUFDbkIsa0NBQWtDO1lBQ2xDLDJCQUEyQixhQUczQixZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLG1CQUFtQixhQUduQiw0QkFBNEI7WUFDNUIsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQixrQ0FBa0M7WUFDbEMsMkJBQTJCO2tJQVdsQixrQkFBa0IsYUFUbEI7WUFDVCxrQkFBa0I7WUFDbEIsMEJBQTBCO1lBQzFCLGdDQUFnQztZQUNoQyx1QkFBdUI7WUFDdkIsV0FBVztZQUNYLDBCQUEwQjtTQUMzQixZQXhCQyxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLGVBQWU7WUFDZixhQUFhO1lBQ2IsaUJBQWlCO1lBQ2pCLG1CQUFtQjs7MkZBa0JWLGtCQUFrQjtrQkFuQzlCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDRCQUE0Qjt3QkFDNUIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3FCQUM1QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsa0JBQWtCO3dCQUNsQiwwQkFBMEI7d0JBQzFCLGdDQUFnQzt3QkFDaEMsdUJBQXVCO3dCQUN2QixXQUFXO3dCQUNYLDBCQUEwQjtxQkFDM0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5cclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtb2ZmZW5kZXItaGVhZGVyL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhckNvbXBvbmVudCB9IGZyb20gJy4vc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW5hdmJhci9zbWFydC1uYXZiYXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LWF1dGgvc21hcnQtZXJyb3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU21hcnRPZmZlbmRlckhlYWRlclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LW9mZmVuZGVyLWhlYWRlci9zbWFydC1vZmZlbmRlci1oZWFkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5jb21wb25lbnQnO1xyXG4vLyBpbXBvcnQgeyBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1zdGFmZi1vZmZlbmRlci1vcHRpb25zL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRTdGFmZk9mZmVuZGVyT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LXN0YWZmLW9mZmVuZGVyLW9wdGlvbnMvc21hcnQtc3RhZmYtb2ZmZW5kZXItb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWFjY2Vzcy1jb250cm9sLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkIH0gZnJvbSAnLi9zbWFydC1hdXRoL3NtYXJ0LWF1dGhvcml6YXRpb24tZ3VhcmQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0T2ZmZW5kZXJSZWRpcmVjdEd1YXJkIH0gZnJvbSAnLi9zbWFydC1vZmZlbmRlci1oZWFkZXIvc21hcnQtb2ZmZW5kZXItcmVkaXJlY3QuZ3VhcmQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFNtYXJ0T2ZmZW5kZXJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTbWFydE5hdmJhckNvbXBvbmVudCxcclxuICAgIFNtYXJ0RXJyb3JDb21wb25lbnQsXHJcbiAgICBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRUYWJzTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0Q2FyZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNtYXJ0T2ZmZW5kZXJIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTbWFydE5hdmJhckNvbXBvbmVudCxcclxuICAgIFNtYXJ0RXJyb3JDb21wb25lbnQsXHJcbiAgICBTbWFydFN0YWZmT2ZmZW5kZXJPcHRpb25zQ29tcG9uZW50LFxyXG4gICAgU21hcnRBY2Nlc3NDb250cm9sRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBTbWFydE5hdmJhclNlcnZpY2UsXHJcbiAgICBTbWFydE9mZmVuZGVySGVhZGVyU2VydmljZSxcclxuICAgIFNtYXJ0U3RhZmZPZmZlbmRlck9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgU21hcnRBdXRob3JpemF0aW9uR3VhcmQsXHJcbiAgICBNYXRTbmFja0JhcixcclxuICAgIFNtYXJ0T2ZmZW5kZXJSZWRpcmVjdEd1YXJkXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nY1NtYXJ0Q29yZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -25,10 +25,10 @@ export class SmartAccessControlDirective {
|
|
|
25
25
|
? 'block'
|
|
26
26
|
: 'none';
|
|
27
27
|
}
|
|
28
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
29
|
-
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
28
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAccessControlDirective, deps: [{ token: i0.ElementRef }, { token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: SmartAccessControlDirective, selector: "[accessControl]", inputs: { accessControlConfig: "accessControlConfig" }, ngImport: i0 }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAccessControlDirective, decorators: [{
|
|
32
32
|
type: Directive,
|
|
33
33
|
args: [{
|
|
34
34
|
selector: '[accessControl]',
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
36
36
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.SmartAuthService }], propDecorators: { accessControlConfig: [{
|
|
37
37
|
type: Input
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYWNjZXNzLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hY2Nlc3MtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFReEQsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxZQUNVLFVBQXNCLEVBQ3RCLElBQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFDN0IsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUNFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLO1lBQy9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQ3BDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUMvQyxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxxRUFBcUU7UUFDckUseUZBQXlGO1FBQ3pGLFlBQVk7UUFDWixJQUFJO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FDckUsSUFBSSxDQUFDLG1CQUFtQixDQUN6QjtZQUNDLENBQUMsQ0FBQyxPQUFPO1lBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNiLENBQUM7aUlBOUJVLDJCQUEyQjtxSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7aUJBQzVCOzhHQUVVLG1CQUFtQjtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thY2Nlc3NDb250cm9sXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEFjY2Vzc0NvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgYXV0aDogU21hcnRBdXRoU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hlY2tBY2Nlc3MoKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWNjZXNzKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5hY2Nlc3NDb250cm9sQ29uZmlnIHx8XHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUgfHxcclxuICAgICAgIXRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS5kYXRhIHx8XHJcbiAgICAgICF0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YS5sb2dpblN0YWZmXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGNvbnN0IGxvZ2luU3RhZmYgPSB0aGlzLmFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YS5sb2dpblN0YWZmO1xyXG4gICAgLy8gaWYgKCF0aGlzLmF1dGguaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZy5hcHBNb2R1bGVJZCkpIHtcclxuICAgIC8vICAgcmV0dXJuO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IHRoaXMuYXV0aC5jaGVja1Blcm1pc3Npb24oXHJcbiAgICAgIHRoaXMuYWNjZXNzQ29udHJvbENvbmZpZ1xyXG4gICAgKVxyXG4gICAgICA/ICdibG9jaydcclxuICAgICAgOiAnbm9uZSc7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -486,10 +486,10 @@ export class SmartAuthService {
|
|
|
486
486
|
return throwError(error);
|
|
487
487
|
}));
|
|
488
488
|
}
|
|
489
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
490
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
489
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthService, deps: [{ token: i1.HttpClient }, { token: i2.MsalService }, { token: i3.XdmService }, { token: SMART_DATA_SERVICE_URL }, { token: SMART_DOMAIN_FORMAT }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
490
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthService, providedIn: 'root' }); }
|
|
491
491
|
}
|
|
492
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
492
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthService, decorators: [{
|
|
493
493
|
type: Injectable,
|
|
494
494
|
args: [{
|
|
495
495
|
providedIn: 'root',
|
|
@@ -501,4 +501,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
501
501
|
type: Inject,
|
|
502
502
|
args: [SMART_DOMAIN_FORMAT]
|
|
503
503
|
}] }] });
|
|
504
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2xELE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBR3BCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQU0xRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBeUIsRUFDekIsVUFBc0IsRUFDVSxtQkFBbUIsRUFDdEIsb0JBQTRCO1FBSnpELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVE7SUFDaEUsQ0FBQztJQUVHLGFBQWE7UUFDbEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9D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SUFBSTthQUNiLElBQUksQ0FBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0QsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxpREFBaUQsRUFDakQsTUFBTSxDQUNQLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxLQUFLLENBQUM7Z0JBQ2IseUNBQXlDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM5QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztrSUF6a0JVLGdCQUFnQixpR0FRakIsc0JBQXNCLGFBQ3RCLG1CQUFtQjtzSUFUbEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgdGhyb3dFcnJvciwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgY2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTG9naW5TdGFmZixcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIFNNQVJUX0RBVEFfU0VSVklDRV9VUkwsXHJcbiAgU01BUlRfRE9NQUlOX0ZPUk1BVCxcclxuICBSb2xlLFxyXG4gIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRBdXRoU2VydmljZSB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgeGRtU2VydmljZTogWGRtU2VydmljZSxcclxuICAgIEBJbmplY3QoU01BUlRfREFUQV9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgQEluamVjdChTTUFSVF9ET01BSU5fRk9STUFUKSBwcml2YXRlIHNtYXJ0RG9tYWluRm9ybWF0VXJsOiBzdHJpbmcsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0TG9naW5TdGFmZigpOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHtcclxuICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NtYXJ0QXV0aFNlcnZpY2UgLSBnZXRMb2dpblN0YWZmKCknKTtcclxuICAgIH1cclxuICAgIGlmICghaXNEZXZNb2RlICYmIHRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICBpZiAodGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGludGVybmFsIGluc3RhbmNlIGluIHNlcnZpY2UnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2dpblN0YWZmKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIHByZXNldCB1c2VyIG5hbWUnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZih0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHN0b3JlZFJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChzdG9yZWRSZXN1bHQgJiYgc3RvcmVkUmVzdWx0LnN0YWZmSWQpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGZyb20gc2Vzc2lvbi4nLFxyXG4gICAgICAgICAgICAgIHN0b3JlZFJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IHN0b3JlZFJlc3VsdDtcclxuICAgICAgICAgIHJldHVybiBvZihzdG9yZWRSZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3RvcmVkUmVzdWx0ICYmIHN0b3JlZFJlc3VsdC51c2VyTmFtZSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgdXNpbmcgcHJlc2V0IHVzZXIgbmFtZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RvcmVkUmVzdWx0LnVzZXJOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlck5hbWUgPSB0aGlzLnVzZXJOYW1lO1xyXG4gICAgICAgICAgY29uc3Qgc3RhZmZOYW1lID0gdXNlck5hbWUuc3Vic3RyaW5nKDAsIHVzZXJOYW1lLmluZGV4T2YoJ0AnKSk7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBsb2dpbkxvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIGxvZ2luIHN0YWZmIG5hbWUgJyxcclxuICAgICAgICAgICAgICBzdGFmZk5hbWUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZihzdGFmZk5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJOYW1lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5hdXRoblNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmF1dGhuU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdO1xyXG4gICAgICByZXR1cm4gYWNjb3VudC51c2VybmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRlYW1VcmwoYXBwOiBzdHJpbmcsIGFmdGVySGFzaDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNtYXJ0RG9tYWluRm9ybWF0VXJsLnJlcGxhY2UoJyR7QVBQfScsIGFwcCkgKyBhZnRlckhhc2g7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNTYW1lSG9zdCh1cmwsIGFwcCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc21hcnREb21haW5Gb3JtYXRVcmwucmVwbGFjZSgnJHtBUFB9JywgYXBwKSA9PT0gdXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZGlyZWN0VG9UZWFtKGxvZ2luU3RhZmY6IExvZ2luU3RhZmYpIHtcclxuICAgIGlmIChsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleCgocm9sZSkgPT4gcm9sZS5yb2xlSWQgPT09ICdFVVVTUEMnKSA+IC0xKSB7XHJcbiAgICAgIGlmICghdGhpcy5pc1NhbWVIb3N0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sICdpbnZlc3RpZ2F0aW9uJykpIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2V0VGVhbVVybCgnaW52ZXN0aWdhdGlvbicsICcvYXNzaWdubWVudCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleChcclxuICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlSWQuc3Vic3RyaW5nKDAsIDMpID09PSAnUlNDJyxcclxuICAgICAgKSA+IC0xXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2FtZUhvc3Qod2luZG93LmxvY2F0aW9uLm9yaWdpbiwgJ3JzYycpKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdldFRlYW1VcmwoJ3JzYycsICcvb2ZmZW5kZXItbGlzdCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCFzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpIHtcclxuICAgICAgY29uc3QgcmVsYXRpb24gPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQsXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHJlbGF0aW9uKSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gcmVsYXRpb247XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy54ZG1TZXJ2aWNlLmNsZWFyQWxsKCk7XHJcbiAgICB0aGlzLmF1dGhuU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRQZXJtaXNzaW9uKFxyXG4gICAgYXBwTW9kdWxlSWQ6IHN0cmluZyxcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICkge1xyXG4gICAgaWYgKCF0aGlzLmxvZ2luU3RhZmYpIHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gYXdhaXQgdGhpcy54ZG1TZXJ2aWNlLmdldExvZ2luU3RhZmYoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPVxyXG4gICAgICByb3V0ZS51cmwgJiYgcm91dGUudXJsLmxlbmd0aCA+IDAgPyByb3V0ZS51cmxbMF0hLnBhdGggOiAnJztcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBhd2FpdCB0aGlzLnhkbVNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCF0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCkge1xyXG4gICAgICBjb25zdCByZWxhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgIHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9IHJlbGF0aW9uO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcih0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj1cInNhYy1cIl0nKTtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvXnNhYy0oXFxTKyktKFxcUyspJC9pO1xyXG5cclxuICAgIEFycmF5LmZyb20oZWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGV0IGhpZGU7XHJcbiAgICAgIGxldCBkaXNhYmxlO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGMubWF0Y2gocGF0dGVybik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlSWQgPSByZXN1bHRzWzFdID8gcmVzdWx0c1sxXS50b1VwcGVyQ2FzZSgpIDogbnVsbDtcclxuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmVzdWx0c1syXTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMF0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1sxXSk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzJdKTtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQgJiZcclxuICAgICAgICAgICAgICBwLnJlc291cmNlID09PSByZXNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgIHAucm9sZUlkID09PSByb2xlSWQgJiZcclxuICAgICAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcmVzb3VyY2U6ICcsIHJlc291cmNlKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXBwTW9kdWxlSWQ6ICcsIGFwcE1vZHVsZUlkKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcm9sZUlkOiAnLCByb2xlSWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXNzaWdubWVudCByZWxhdGlvbjogJyxcclxuICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIE1hdGNoZWQgcGVybWlzc2lvbjogJywgcGVybWlzc2lvbik7XHJcblxyXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgaWYgKHJpZ2h0ID09PSAncmVhZCcpIHtcclxuICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ucmVhZEZsYWcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAndXBkYXRlJyAmJiAhcGVybWlzc2lvbi51cGRhdGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnY2xvc2UnICYmICFwZXJtaXNzaW9uLmNsb3NlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmlnaHQgPT09ICdyZWFkJykge1xyXG4gICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBkaXNhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaWRlOiAnLCBoaWRlKTtcclxuICAgICAgY29uc29sZS5sb2coJ2Rpc2FibGU6ICcsIGRpc2FibGUpO1xyXG4gICAgICBpZiAoaGlkZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaGlkZUh0bWxFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGRpc2FibGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVIdG1sRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tQZXJtaXNzaW9uKGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZykge1xyXG4gICAgY29uc3Qgc2VsRGF0YSA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IHNlbERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbERhdGEuc2VsZWN0ZWRPZmZlbmRlcjtcclxuICAgIGxldCByb3V0ZVBhdGggPSAnJztcclxuICAgIGlmIChcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwgJiZcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHJvdXRlUGF0aCA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUudXJsWzBdIS5wYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPSByb3V0ZVBhdGg7XHJcbiAgICBjb25zdCByb2xlSWQgPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvbGVJZFxyXG4gICAgICA/IGFjY2Vzc0NvbnRyb2xDb25maWcucm9sZUlkLnRvVXBwZXJDYXNlKClcclxuICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYWNjZXNzVHlwZSA9IGFjY2Vzc0NvbnRyb2xDb25maWcuYWNjZXNzVHlwZTtcclxuICAgIGNvbnN0IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlciB8fCAhdGhpcy5zZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgIC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKVxyXG4gICAgICA/ICdOL0EnXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcblxyXG4gICAgY29uc3QgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQoKHApID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBwLmFwcE1vZHVsZUlkID09PSBhY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkICYmXHJcbiAgICAgICAgcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UgJiZcclxuICAgICAgICAoIXJvbGVJZCB8fCBwLnJvbGVJZCA9PT0gcm9sZUlkKSAmJlxyXG4gICAgICAgIChwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09ICdOL0EnIHx8XHJcbiAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uLnJlYWRGbGFnKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2NyZWF0ZScgJiYgIXBlcm1pc3Npb24uY3JlYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3VwZGF0ZScgJiYgIXBlcm1pc3Npb24udXBkYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Fzc2lnbicgJiYgIXBlcm1pc3Npb24uYXNzaWduRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Nsb3NlJyAmJiAhcGVybWlzc2lvbi5jbG9zZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3Jlb3BlbicgJiYgIXBlcm1pc3Npb24ucmVvcGVuRmxhZylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuQXBwRmVhdHVyZUFjdGl2YXRlKFxyXG4gICAgbG9naW5TdGFmZjogTG9naW5TdGFmZixcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkID0gbnVsbCxcclxuICApIHtcclxuICAgIC8vIGlmICghdGhpcy5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgYXBwTW9kdWxlSWQpKSB7XHJcbiAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgLy8gfVxyXG4gICAgcmV0dXJuIHRoaXMuaGFzQXBwRmVhdHVyZVBlcm1pc3Npb24oXHJcbiAgICAgIGxvZ2luU3RhZmYucGVybWlzc2lvbnMsXHJcbiAgICAgIGZlYXR1cmUsXHJcbiAgICAgIGFwcE1vZHVsZUlkLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBpc0F1dGhFbmFibGUocm9sZXM6IFJvbGVbXSwgYXBwTW9kdWxlSWQ6IHN0cmluZykge1xyXG4gIC8vICAgaWYgKHJvbGVzICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgcmV0dXJuIHJvbGVzLm1hcChyID0+IHIucm9sZUlkKS5maW5kSW5kZXgodGhpcy5pc0V4dGVybmFsUm9sZSkgPiAtMSB8fCBhcHBNb2R1bGVJZCA9PT0gJ1JSJztcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBmYWxzZTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBoYXNJbnRha2VSb2xlKHJvbGVzOiBSb2xlW10pIHtcclxuICAgIGlmIChyb2xlcyAmJiByb2xlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiByb2xlcy5maW5kSW5kZXgodGhpcy5pc0ludGFrZVJvbGUpID4gLTE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FwcEZlYXR1cmVQZXJtaXNzaW9uKFxyXG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSxcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgKSB7XHJcbiAgICBpZiAocGVybWlzc2lvbnMgJiYgcGVybWlzc2lvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoYXBwTW9kdWxlSWQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgcGVybWlzc2lvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSAmJiBwLmFwcE1vZHVsZUlkID09PSBhcHBNb2R1bGVJZCxcclxuICAgICAgICAgICkgPiAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmZpbmRJbmRleCgocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSkgPiAtMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZUlkKSB7XHJcbiAgICBzd2l0Y2ggKHJvbGVJZCkge1xyXG4gICAgICBjYXNlICdFVURUTCc6XHJcbiAgICAgIGNhc2UgJ0VVRFVTTSc6XHJcbiAgICAgIGNhc2UgJ0VVSkRHJzpcclxuICAgICAgY2FzZSAnRVVNUEQnOlxyXG4gICAgICBjYXNlICdFVVNPVFYnOlxyXG4gICAgICBjYXNlICdFVVVTQTInOlxyXG4gICAgICBjYXNlICdFVVVTQU8nOlxyXG4gICAgICBjYXNlICdFVVVTUEMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnRha2VSb2xlKHJvbGU6IFJvbGUpIHtcclxuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnT1BBJzpcclxuICAgICAgY2FzZSAnT1BTJzpcclxuICAgICAgY2FzZSAnU09QUyc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcclxuICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgJ3BvaW50ZXItZXZlbnRzOiBub25lO2N1cnNvcjogbm90LWFsbG93ZWQ7JyxcclxuICAgICAgICApO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lOycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZih1c2VyTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICByZXR1cm4gdGhpcy5xdWVyeTxhbnk+KHtcclxuICAgICAgcXVlcnk6IHRoaXMuZmluZFN0YWZmUXVlcnksXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgICB1c2VyTmFtZTogdXNlck5hbWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZUZsYWc6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgZ2V0U3RhZmYoKSBmcm9tIHNlcnZpY2UgJywgcmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZmluZHZTdGFmZnMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZmluZHZTdGFmZnMuZGF0YVswXTtcclxuICAgICAgICAgICAgdGhpcy54ZG1TZXJ2aWNlLnNldExvZ2luU3RhZmYoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IGRhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcXVlcnk8VD4ob3B0aW9uczoge1xyXG4gICAgcXVlcnk6IHN0cmluZztcclxuICAgIHZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgfSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IGRhdGE6IFQgfT4oXHJcbiAgICAgICAgdGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxyXG4gICAgICAgICAgdmFyaWFibGVzOiBvcHRpb25zLnZhcmlhYmxlcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgICdOby1BdXRoJzogJ1RydWUnLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUobWFwKChkKSA9PiBkLmRhdGEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZpbmRTdGFmZlF1ZXJ5KCl7XHJcbiAgICByZXR1cm4gYFxyXG4gICAgIHF1ZXJ5IGZpbmR2U3RhZmZzKCRpbnB1dDogdlN0YWZmTXVsdGlJbnB1dCkge1xyXG4gICAgICAgIGZpbmR2U3RhZmZzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICBzdGFmZklkXHJcbiAgICAgICAgICAgIHVzZXJOYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBwaG9uZVxyXG4gICAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgcm9sZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICByb2xlSWRcclxuICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgIHJlc291cmNlXHJcbiAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgIHJlYWRGbGFnXHJcbiAgICAgICAgICAgICAgY3JlYXRlRmxhZ1xyXG4gICAgICAgICAgICAgIHVwZGF0ZUZsYWdcclxuICAgICAgICAgICAgICBkZWxldGVGbGFnXHJcbiAgICAgICAgICAgICAgYXNzaWduRmxhZ1xyXG4gICAgICAgICAgICAgIHJlb3BlbkZsYWdcclxuICAgICAgICAgICAgICBjbG9zZUZsYWdcclxuICAgICAgICAgICAgICBleHB1bmdlRmxhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgc3RhZmZJZDogbnVtYmVyLFxyXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucyhpbnB1dDoge3doZXJlOiB7c3RhZmZJZDogJHtzdGFmZklkfSwgb2ZmZW5kZXJJZDogJHtvZmZlbmRlcklkfX19KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKCkgZnJvbSBzZXJ2aWNlICcsXHJcbiAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiB0aHJvd0Vycm9yKCdObyBhY2Nlc3MgcmlnaHQuJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvbGVQZXJtaXNzaW9ucyhcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZTogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAgICAgcXVlcnkgZmluZHZSb2xlUGVybWlzc2lvblBpdm90c3tcclxuICAgICAgICAgICAgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cyhpbnB1dDoge3doZXJlOiB7YXBwTW9kdWxlSWQ6ICR7YXBwTW9kdWxlSWR9LCByZXNvdXJjZTogJHtyZXNvdXJjZX19fSl7XHJcbiAgICAgICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cygpIGZyb20gc2VydmljZSAnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlJvbGVQZXJtaXNzaW9uUGl2b3RzLnRvdGFsQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
504
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2xELE9BQU8sRUFHTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEdBR3BCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7OztBQU0xRCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQ1UsSUFBZ0IsRUFDaEIsWUFBeUIsRUFDekIsVUFBc0IsRUFDVSxtQkFBbUIsRUFDdEIsb0JBQTRCO1FBSnpELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBQTtRQUN0Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVE7SUFDaEUsQ0FBQztJQUVHLGFBQWE7UUFDbEIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9D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SUFBSTthQUNiLElBQUksQ0FBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0QsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FDVCxpREFBaUQsRUFDakQsTUFBTSxDQUNQLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxLQUFLLENBQUM7Z0JBQ2IseUNBQXlDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM5QixPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztpSUF6a0JVLGdCQUFnQixpR0FRakIsc0JBQXNCLGFBQ3RCLG1CQUFtQjtxSUFUbEIsZ0JBQWdCLGNBRmYsTUFBTTs7MkZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBU0ksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUM3QixNQUFNOzJCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgdGhyb3dFcnJvciwgbGFzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgY2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTG9naW5TdGFmZixcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIFNNQVJUX0RBVEFfU0VSVklDRV9VUkwsXHJcbiAgU01BUlRfRE9NQUlOX0ZPUk1BVCxcclxuICBSb2xlLFxyXG4gIFBlcm1pc3Npb24sXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWcgfSBmcm9tICcuL3NtYXJ0LWFjY2Vzcy1jb250cm9sLWNvbmZpZyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRBdXRoU2VydmljZSB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgeGRtU2VydmljZTogWGRtU2VydmljZSxcclxuICAgIEBJbmplY3QoU01BUlRfREFUQV9TRVJWSUNFX1VSTCkgcHJpdmF0ZSBzbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgQEluamVjdChTTUFSVF9ET01BSU5fRk9STUFUKSBwcml2YXRlIHNtYXJ0RG9tYWluRm9ybWF0VXJsOiBzdHJpbmcsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0TG9naW5TdGFmZigpOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHtcclxuICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1NtYXJ0QXV0aFNlcnZpY2UgLSBnZXRMb2dpblN0YWZmKCknKTtcclxuICAgIH1cclxuICAgIGlmICghaXNEZXZNb2RlICYmIHRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICBpZiAodGhpcy5sb2dpblN0YWZmLnN0YWZmSWQpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGludGVybmFsIGluc3RhbmNlIGluIHNlcnZpY2UnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodGhpcy5sb2dpblN0YWZmKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIHByZXNldCB1c2VyIG5hbWUnLFxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU3RhZmYsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZih0aGlzLmxvZ2luU3RhZmYudXNlck5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnhkbVNlcnZpY2UuZ2V0TG9naW5TdGFmZigpKS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHN0b3JlZFJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChzdG9yZWRSZXN1bHQgJiYgc3RvcmVkUmVzdWx0LnN0YWZmSWQpIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICAgJyMjIyMjIGdldExvZ2luU3RhZmYoKTogZ2V0IGZyb20gc2Vzc2lvbi4nLFxyXG4gICAgICAgICAgICAgIHN0b3JlZFJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IHN0b3JlZFJlc3VsdDtcclxuICAgICAgICAgIHJldHVybiBvZihzdG9yZWRSZXN1bHQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3RvcmVkUmVzdWx0ICYmIHN0b3JlZFJlc3VsdC51c2VyTmFtZSkge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0TG9naW5TdGFmZigpOiBnZXQgdXNpbmcgcHJlc2V0IHVzZXIgbmFtZScsXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YWZmLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RhZmYoc3RvcmVkUmVzdWx0LnVzZXJOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgdXNlck5hbWUgPSB0aGlzLnVzZXJOYW1lO1xyXG4gICAgICAgICAgY29uc3Qgc3RhZmZOYW1lID0gdXNlck5hbWUuc3Vic3RyaW5nKDAsIHVzZXJOYW1lLmluZGV4T2YoJ0AnKSk7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICAgICAgICcjIyMjIyBsb2dpbkxvZ2luU3RhZmYoKTogZ2V0IHVzaW5nIGxvZ2luIHN0YWZmIG5hbWUgJyxcclxuICAgICAgICAgICAgICBzdGFmZk5hbWUsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGFmZihzdGFmZk5hbWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHVzZXJOYW1lKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5hdXRoblNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmF1dGhuU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpWzBdO1xyXG4gICAgICByZXR1cm4gYWNjb3VudC51c2VybmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFRlYW1VcmwoYXBwOiBzdHJpbmcsIGFmdGVySGFzaDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNtYXJ0RG9tYWluRm9ybWF0VXJsLnJlcGxhY2UoJyR7QVBQfScsIGFwcCkgKyBhZnRlckhhc2g7XHJcbiAgfVxyXG4gIHByaXZhdGUgaXNTYW1lSG9zdCh1cmwsIGFwcCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc21hcnREb21haW5Gb3JtYXRVcmwucmVwbGFjZSgnJHtBUFB9JywgYXBwKSA9PT0gdXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZGlyZWN0VG9UZWFtKGxvZ2luU3RhZmY6IExvZ2luU3RhZmYpIHtcclxuICAgIGlmIChsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleCgocm9sZSkgPT4gcm9sZS5yb2xlSWQgPT09ICdFVVVTUEMnKSA+IC0xKSB7XHJcbiAgICAgIGlmICghdGhpcy5pc1NhbWVIb3N0KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4sICdpbnZlc3RpZ2F0aW9uJykpIHtcclxuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuZ2V0VGVhbVVybCgnaW52ZXN0aWdhdGlvbicsICcvYXNzaWdubWVudCcpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICBsb2dpblN0YWZmLnJvbGVzLmZpbmRJbmRleChcclxuICAgICAgICAocm9sZSkgPT4gcm9sZS5yb2xlSWQuc3Vic3RyaW5nKDAsIDMpID09PSAnUlNDJyxcclxuICAgICAgKSA+IC0xXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLmlzU2FtZUhvc3Qod2luZG93LmxvY2F0aW9uLm9yaWdpbiwgJ3JzYycpKSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmdldFRlYW1VcmwoJ3JzYycsICcvb2ZmZW5kZXItbGlzdCcpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICBpZiAoIXRoaXMubG9naW5TdGFmZikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCFzZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpIHtcclxuICAgICAgY29uc3QgcmVsYXRpb24gPSBhd2FpdCBsYXN0VmFsdWVGcm9tKFxyXG4gICAgICAgIHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgICAgdGhpcy5sb2dpblN0YWZmLnN0YWZmSWQsXHJcbiAgICAgICAgICBzZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQsXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuICAgICAgaWYgKHJlbGF0aW9uKSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gcmVsYXRpb247XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy54ZG1TZXJ2aWNlLmNsZWFyQWxsKCk7XHJcbiAgICB0aGlzLmF1dGhuU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRQZXJtaXNzaW9uKFxyXG4gICAgYXBwTW9kdWxlSWQ6IHN0cmluZyxcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICkge1xyXG4gICAgaWYgKCF0aGlzLmxvZ2luU3RhZmYpIHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gYXdhaXQgdGhpcy54ZG1TZXJ2aWNlLmdldExvZ2luU3RhZmYoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPVxyXG4gICAgICByb3V0ZS51cmwgJiYgcm91dGUudXJsLmxlbmd0aCA+IDAgPyByb3V0ZS51cmxbMF0hLnBhdGggOiAnJztcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlcikge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBhd2FpdCB0aGlzLnhkbVNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpIHtcclxuICAgICAgLy8gaWYgKCF0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCkge1xyXG4gICAgICBjb25zdCByZWxhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgICAgIHRoaXMubG9naW5TdGFmZi5zdGFmZklkLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkLFxyXG4gICAgICApLnRvUHJvbWlzZSgpO1xyXG4gICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9IHJlbGF0aW9uO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkID0gJ05PQVNTSUdOJztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnhkbVNlcnZpY2Uuc2V0U2VsZWN0ZWRPZmZlbmRlcih0aGlzLnNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlci5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj1cInNhYy1cIl0nKTtcclxuICAgIGNvbnN0IHBhdHRlcm4gPSAvXnNhYy0oXFxTKyktKFxcUyspJC9pO1xyXG5cclxuICAgIEFycmF5LmZyb20oZWxlbWVudHMpLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgbGV0IGhpZGU7XHJcbiAgICAgIGxldCBkaXNhYmxlO1xyXG4gICAgICBlbGVtZW50LmNsYXNzTGlzdC5mb3JFYWNoKChjKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGMubWF0Y2gocGF0dGVybik7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0cyk7XHJcbiAgICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiAyKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlSWQgPSByZXN1bHRzWzFdID8gcmVzdWx0c1sxXS50b1VwcGVyQ2FzZSgpIDogbnVsbDtcclxuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmVzdWx0c1syXTtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlc3VsdHNbMF0pO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzdWx0c1sxXSk7XHJcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhyZXN1bHRzWzJdKTtcclxuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9ucy5maW5kKGZ1bmN0aW9uIChwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQgJiZcclxuICAgICAgICAgICAgICBwLnJlc291cmNlID09PSByZXNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgIHAucm9sZUlkID09PSByb2xlSWQgJiZcclxuICAgICAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLypcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcmVzb3VyY2U6ICcsIHJlc291cmNlKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXBwTW9kdWxlSWQ6ICcsIGFwcE1vZHVsZUlkKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgcm9sZUlkOiAnLCByb2xlSWQpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgICAgICcjIyMjIyBzZXRQZXJtaXNzaW9uKCkgYXNzaWdubWVudCByZWxhdGlvbjogJyxcclxuICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZCxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJyMjIyMjIE1hdGNoZWQgcGVybWlzc2lvbjogJywgcGVybWlzc2lvbik7XHJcblxyXG4gICAgICAgICAgaWYgKHBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgaWYgKHJpZ2h0ID09PSAncmVhZCcpIHtcclxuICAgICAgICAgICAgICBpZiAoIXBlcm1pc3Npb24ucmVhZEZsYWcpIHtcclxuICAgICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdjcmVhdGUnICYmICFwZXJtaXNzaW9uLmNyZWF0ZUZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAndXBkYXRlJyAmJiAhcGVybWlzc2lvbi51cGRhdGVGbGFnKSB8fFxyXG4gICAgICAgICAgICAgIChyaWdodCA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdhc3NpZ24nICYmICFwZXJtaXNzaW9uLmFzc2lnbkZsYWcpIHx8XHJcbiAgICAgICAgICAgICAgKHJpZ2h0ID09PSAnY2xvc2UnICYmICFwZXJtaXNzaW9uLmNsb3NlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAgICAgICAocmlnaHQgPT09ICdyZW9wZW4nICYmICFwZXJtaXNzaW9uLnJlb3BlbkZsYWcpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGhpZGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgICAgZGlzYWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnQlVUVE9OJykge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAocmlnaHQgPT09ICdyZWFkJykge1xyXG4gICAgICAgICAgICAgIGlmIChoaWRlICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgaGlkZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGhpZGUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBoaWRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlzYWJsZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBkaXNhYmxlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaWRlOiAnLCBoaWRlKTtcclxuICAgICAgY29uc29sZS5sb2coJ2Rpc2FibGU6ICcsIGRpc2FibGUpO1xyXG4gICAgICBpZiAoaGlkZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuaGlkZUh0bWxFbGVtZW50KGVsZW1lbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGRpc2FibGUgPT09IHRydWUpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVIdG1sRWxlbWVudChlbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hlY2tQZXJtaXNzaW9uKGFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZykge1xyXG4gICAgY29uc3Qgc2VsRGF0YSA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUuZGF0YTtcclxuICAgIHRoaXMubG9naW5TdGFmZiA9IHNlbERhdGEubG9naW5TdGFmZjtcclxuICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbERhdGEuc2VsZWN0ZWRPZmZlbmRlcjtcclxuICAgIGxldCByb3V0ZVBhdGggPSAnJztcclxuICAgIGlmIChcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwgJiZcclxuICAgICAgYWNjZXNzQ29udHJvbENvbmZpZy5yb3V0ZS51cmwubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHJvdXRlUGF0aCA9IGFjY2Vzc0NvbnRyb2xDb25maWcucm91dGUudXJsWzBdIS5wYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBlcm1pc3Npb25zID0gdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zO1xyXG4gICAgY29uc3QgcmVzb3VyY2UgPSByb3V0ZVBhdGg7XHJcbiAgICBjb25zdCByb2xlSWQgPSBhY2Nlc3NDb250cm9sQ29uZmlnLnJvbGVJZFxyXG4gICAgICA/IGFjY2Vzc0NvbnRyb2xDb25maWcucm9sZUlkLnRvVXBwZXJDYXNlKClcclxuICAgICAgOiBudWxsO1xyXG4gICAgY29uc3QgYWNjZXNzVHlwZSA9IGFjY2Vzc0NvbnRyb2xDb25maWcuYWNjZXNzVHlwZTtcclxuICAgIGNvbnN0IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPSAoIXRoaXMuc2VsZWN0ZWRPZmZlbmRlciB8fCAhdGhpcy5zZWxlY3RlZE9mZmVuZGVyXHJcbiAgICAgIC5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkKVxyXG4gICAgICA/ICdOL0EnXHJcbiAgICAgIDogdGhpcy5zZWxlY3RlZE9mZmVuZGVyLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQ7XHJcblxyXG4gICAgY29uc3QgcGVybWlzc2lvbiA9IHBlcm1pc3Npb25zLmZpbmQoKHApID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBwLmFwcE1vZHVsZUlkID09PSBhY2Nlc3NDb250cm9sQ29uZmlnLmFwcE1vZHVsZUlkICYmXHJcbiAgICAgICAgcC5yZXNvdXJjZSA9PT0gcmVzb3VyY2UgJiZcclxuICAgICAgICAoIXJvbGVJZCB8fCBwLnJvbGVJZCA9PT0gcm9sZUlkKSAmJlxyXG4gICAgICAgIChwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09ICdOL0EnIHx8XHJcbiAgICAgICAgICBwLmFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQgPT09IGFzc2lnbm1lbnRTdGFmZlJlbGF0aW9uSWQpXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAocGVybWlzc2lvbikge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uLnJlYWRGbGFnKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2NyZWF0ZScgJiYgIXBlcm1pc3Npb24uY3JlYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3VwZGF0ZScgJiYgIXBlcm1pc3Npb24udXBkYXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2RlbGV0ZScgJiYgIXBlcm1pc3Npb24uZGVsZXRlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Fzc2lnbicgJiYgIXBlcm1pc3Npb24uYXNzaWduRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ2Nsb3NlJyAmJiAhcGVybWlzc2lvbi5jbG9zZUZsYWcpIHx8XHJcbiAgICAgICAgKGFjY2Vzc1R5cGUgPT09ICdleHB1bmdlJyAmJiAhcGVybWlzc2lvbi5leHB1bmdlRmxhZykgfHxcclxuICAgICAgICAoYWNjZXNzVHlwZSA9PT0gJ3Jlb3BlbicgJiYgIXBlcm1pc3Npb24ucmVvcGVuRmxhZylcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoYWNjZXNzVHlwZSA9PT0gJ3JlYWQnKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuQXBwRmVhdHVyZUFjdGl2YXRlKFxyXG4gICAgbG9naW5TdGFmZjogTG9naW5TdGFmZixcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkID0gbnVsbCxcclxuICApIHtcclxuICAgIC8vIGlmICghdGhpcy5pc0F1dGhFbmFibGUobG9naW5TdGFmZi5yb2xlcywgYXBwTW9kdWxlSWQpKSB7XHJcbiAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgLy8gfVxyXG4gICAgcmV0dXJuIHRoaXMuaGFzQXBwRmVhdHVyZVBlcm1pc3Npb24oXHJcbiAgICAgIGxvZ2luU3RhZmYucGVybWlzc2lvbnMsXHJcbiAgICAgIGZlYXR1cmUsXHJcbiAgICAgIGFwcE1vZHVsZUlkLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBpc0F1dGhFbmFibGUocm9sZXM6IFJvbGVbXSwgYXBwTW9kdWxlSWQ6IHN0cmluZykge1xyXG4gIC8vICAgaWYgKHJvbGVzICYmIHJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAvLyAgICAgcmV0dXJuIHJvbGVzLm1hcChyID0+IHIucm9sZUlkKS5maW5kSW5kZXgodGhpcy5pc0V4dGVybmFsUm9sZSkgPiAtMSB8fCBhcHBNb2R1bGVJZCA9PT0gJ1JSJztcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBmYWxzZTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBoYXNJbnRha2VSb2xlKHJvbGVzOiBSb2xlW10pIHtcclxuICAgIGlmIChyb2xlcyAmJiByb2xlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiByb2xlcy5maW5kSW5kZXgodGhpcy5pc0ludGFrZVJvbGUpID4gLTE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0FwcEZlYXR1cmVQZXJtaXNzaW9uKFxyXG4gICAgcGVybWlzc2lvbnM6IFBlcm1pc3Npb25bXSxcclxuICAgIGZlYXR1cmU6IHN0cmluZyxcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgKSB7XHJcbiAgICBpZiAocGVybWlzc2lvbnMgJiYgcGVybWlzc2lvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAoYXBwTW9kdWxlSWQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgcGVybWlzc2lvbnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgICAocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSAmJiBwLmFwcE1vZHVsZUlkID09PSBhcHBNb2R1bGVJZCxcclxuICAgICAgICAgICkgPiAtMVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHBlcm1pc3Npb25zLmZpbmRJbmRleCgocCkgPT4gcC5yZXNvdXJjZSA9PT0gZmVhdHVyZSkgPiAtMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZUlkKSB7XHJcbiAgICBzd2l0Y2ggKHJvbGVJZCkge1xyXG4gICAgICBjYXNlICdFVURUTCc6XHJcbiAgICAgIGNhc2UgJ0VVRFVTTSc6XHJcbiAgICAgIGNhc2UgJ0VVSkRHJzpcclxuICAgICAgY2FzZSAnRVVNUEQnOlxyXG4gICAgICBjYXNlICdFVVNPVFYnOlxyXG4gICAgICBjYXNlICdFVVVTQTInOlxyXG4gICAgICBjYXNlICdFVVVTQU8nOlxyXG4gICAgICBjYXNlICdFVVVTUEMnOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJbnRha2VSb2xlKHJvbGU6IFJvbGUpIHtcclxuICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnT1BBJzpcclxuICAgICAgY2FzZSAnT1BTJzpcclxuICAgICAgY2FzZSAnU09QUyc6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNhYmxlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XHJcbiAgICBzd2l0Y2ggKGVsZW1lbnQubm9kZU5hbWUpIHtcclxuICAgICAgY2FzZSAnQSc6XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgICAnc3R5bGUnLFxyXG4gICAgICAgICAgJ3BvaW50ZXItZXZlbnRzOiBub25lO2N1cnNvcjogbm90LWFsbG93ZWQ7JyxcclxuICAgICAgICApO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsICctMScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlSHRtbEVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2hpZGRlbicsICdoaWRkZW4nKTtcclxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdkaXNwbGF5OiBub25lOycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTdGFmZih1c2VyTmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB7XHJcbiAgICByZXR1cm4gdGhpcy5xdWVyeTxhbnk+KHtcclxuICAgICAgcXVlcnk6IHRoaXMuZmluZFN0YWZmUXVlcnksXHJcbiAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgIGlucHV0OiB7XHJcbiAgICAgICAgICB3aGVyZToge1xyXG4gICAgICAgICAgICB1c2VyTmFtZTogdXNlck5hbWUsXHJcbiAgICAgICAgICAgIGFjdGl2ZUZsYWc6IHRydWUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnIyMjIyMgZ2V0U3RhZmYoKSBmcm9tIHNlcnZpY2UgJywgcmVzdWx0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZmluZHZTdGFmZnMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZmluZHZTdGFmZnMuZGF0YVswXTtcclxuICAgICAgICAgICAgdGhpcy54ZG1TZXJ2aWNlLnNldExvZ2luU3RhZmYoZGF0YSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5TdGFmZiA9IGRhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnZXJyb3IgJyArIGVycm9yKTtcclxuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcXVlcnk8VD4ob3B0aW9uczoge1xyXG4gICAgcXVlcnk6IHN0cmluZztcclxuICAgIHZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgfSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDx7IGRhdGE6IFQgfT4oXHJcbiAgICAgICAgdGhpcy5zbWFydERhdGFTZXJ2aWNlVXJsLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxyXG4gICAgICAgICAgdmFyaWFibGVzOiBvcHRpb25zLnZhcmlhYmxlcyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgICAgICdOby1BdXRoJzogJ1RydWUnLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgLnBpcGUobWFwKChkKSA9PiBkLmRhdGEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGZpbmRTdGFmZlF1ZXJ5KCl7XHJcbiAgICByZXR1cm4gYFxyXG4gICAgIHF1ZXJ5IGZpbmR2U3RhZmZzKCRpbnB1dDogdlN0YWZmTXVsdGlJbnB1dCkge1xyXG4gICAgICAgIGZpbmR2U3RhZmZzKGlucHV0OiAkaW5wdXQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgIGRhdGEge1xyXG4gICAgICAgICAgICBzdGFmZklkXHJcbiAgICAgICAgICAgIHVzZXJOYW1lXHJcbiAgICAgICAgICAgIGxhc3ROYW1lXHJcbiAgICAgICAgICAgIGZpcnN0TmFtZVxyXG4gICAgICAgICAgICBwaG9uZVxyXG4gICAgICAgICAgICBlbWFpbFxyXG4gICAgICAgICAgICByb2xlcyB7XHJcbiAgICAgICAgICAgICAgcm9sZUlkXHJcbiAgICAgICAgICAgICAgcm9sZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBlcm1pc3Npb25zIHtcclxuICAgICAgICAgICAgICByb2xlSWRcclxuICAgICAgICAgICAgICBhcHBNb2R1bGVJZFxyXG4gICAgICAgICAgICAgIHJlc291cmNlXHJcbiAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgIHJlYWRGbGFnXHJcbiAgICAgICAgICAgICAgY3JlYXRlRmxhZ1xyXG4gICAgICAgICAgICAgIHVwZGF0ZUZsYWdcclxuICAgICAgICAgICAgICBkZWxldGVGbGFnXHJcbiAgICAgICAgICAgICAgYXNzaWduRmxhZ1xyXG4gICAgICAgICAgICAgIHJlb3BlbkZsYWdcclxuICAgICAgICAgICAgICBjbG9zZUZsYWdcclxuICAgICAgICAgICAgICBleHB1bmdlRmxhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdGlvbnMge1xyXG4gICAgICAgICAgICAgIG9mZmVuZGVyTGlzdE9wdGlvbklkXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICAgIHNlcnZpY2VBcGlGaWVsZE5hbWVcclxuICAgICAgICAgICAgICBzZWxlY3RlZEZsYWdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgYDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKFxyXG4gICAgc3RhZmZJZDogbnVtYmVyLFxyXG4gICAgb2ZmZW5kZXJJZDogbnVtYmVyLFxyXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBxdWVyeVN0cmluZyA9IGBcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucyhpbnB1dDoge3doZXJlOiB7c3RhZmZJZDogJHtzdGFmZklkfSwgb2ZmZW5kZXJJZDogJHtvZmZlbmRlcklkfX19KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhIHtcclxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudFN0YWZmUmVsYXRpb25JZFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZ2V0U3RhZmZPZmZlbmRlclJlbGF0aW9uKCkgZnJvbSBzZXJ2aWNlICcsXHJcbiAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdC5kYXRhLmZpbmR2U3RhZmZPZmZlbmRlclJlbGF0aW9ucy5kYXRhWzBdO1xyXG4gICAgICAgICAgICByZXR1cm4gZGF0YS5hc3NpZ25tZW50U3RhZmZSZWxhdGlvbklkO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIC8vIHJldHVybiB0aHJvd0Vycm9yKCdObyBhY2Nlc3MgcmlnaHQuJyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvbGVQZXJtaXNzaW9ucyhcclxuICAgIGFwcE1vZHVsZUlkOiBzdHJpbmcsXHJcbiAgICByZXNvdXJjZTogc3RyaW5nLFxyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSBgXHJcbiAgICAgICAgICAgcXVlcnkgZmluZHZSb2xlUGVybWlzc2lvblBpdm90c3tcclxuICAgICAgICAgICAgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cyhpbnB1dDoge3doZXJlOiB7YXBwTW9kdWxlSWQ6ICR7YXBwTW9kdWxlSWR9LCByZXNvdXJjZTogJHtyZXNvdXJjZX19fSl7XHJcbiAgICAgICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdDxhbnk+KHRoaXMuc21hcnREYXRhU2VydmljZVVybCwgeyBxdWVyeTogcXVlcnlTdHJpbmcgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICAnIyMjIyMgZmluZHZSb2xlUGVybWlzc2lvblBpdm90cygpIGZyb20gc2VydmljZSAnLFxyXG4gICAgICAgICAgICAgIHJlc3VsdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXN1bHQuZGF0YS5maW5kdlJvbGVQZXJtaXNzaW9uUGl2b3RzLnRvdGFsQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAvLyByZXR1cm4gdGhyb3dFcnJvcignTm8gYWNjZXNzIHJpZ2h0LicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdlcnJvciAnICsgZXJyb3IpO1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -26,10 +26,10 @@ export class SmartAuthorizationGuard {
|
|
|
26
26
|
return of(false);
|
|
27
27
|
}));
|
|
28
28
|
}
|
|
29
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
29
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthorizationGuard, deps: [{ token: i1.SmartAuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthorizationGuard }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartAuthorizationGuard, decorators: [{
|
|
33
33
|
type: Injectable
|
|
34
34
|
}], ctorParameters: () => [{ type: i1.SmartAuthService }] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aG9yaXphdGlvbi1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1hdXRob3JpemF0aW9uLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOEJBQThCO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBR3hELE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBbUIsWUFBOEI7UUFBOUIsaUJBQVksR0FBWixZQUFZLENBQWtCO0lBQUksQ0FBQztJQUV0RCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLENBQUM7WUFDRCxpRUFBaUU7WUFDakUscUJBQXFCO1lBQ3JCLElBQUk7WUFDSixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQ3JDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FDNUQsVUFBVSxFQUNWLFFBQVEsQ0FDVCxDQUFDO1lBQ0YsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7aUlBNUJVLHVCQUF1QjtxSUFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc21hcnQtYXV0aG9yaXphdGlvbi5zZXJ2aWNlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IHRha2UsIG1lcmdlTWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBvZiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMb2dpblN0YWZmIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkICB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGF1dGhuU2VydmljZTogU21hcnRBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoblNlcnZpY2UuZ2V0TG9naW5TdGFmZigpLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIG1lcmdlTWFwKChsb2dpblN0YWZmKSA9PiB7XHJcbiAgICAgICAgaWYgKCFsb2dpblN0YWZmIHx8ICFyb3V0ZSB8fCAhcm91dGUucm91dGVDb25maWcpIHtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmICghdGhpcy5hdXRoblNlcnZpY2UuaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIG51bGwpKSB7XHJcbiAgICAgICAgLy8gICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gcm91dGUucm91dGVDb25maWcucGF0aFxyXG4gICAgICAgICAgPyByb3V0ZS5yb3V0ZUNvbmZpZy5wYXRoLnNwbGl0KCcvJylbMF1cclxuICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgY29uc3QgaXNGZWF0dXJlVmFsaWQgPSB0aGlzLmF1dGhuU2VydmljZS5jYW5BcHBGZWF0dXJlQWN0aXZhdGUoXHJcbiAgICAgICAgICBsb2dpblN0YWZmLFxyXG4gICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gb2YoaXNGZWF0dXJlVmFsaWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -24,14 +24,14 @@ export class SmartErrorComponent {
|
|
|
24
24
|
portal() {
|
|
25
25
|
window.location.href = this.smartWebPortalUrl;
|
|
26
26
|
}
|
|
27
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
28
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
27
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartErrorComponent, deps: [{ token: i1.MsalService }, { token: i2.ActivatedRoute }, { token: SMART_WEB_PORTAL_URL }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: SmartErrorComponent, selector: "app-smart-error", ngImport: i0, template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n", styles: ["div{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
29
29
|
}
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SmartErrorComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ selector: 'app-smart-error', template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n", styles: ["div{text-align:center}\n"] }]
|
|
33
33
|
}], ctorParameters: () => [{ type: i1.MsalService }, { type: i2.ActivatedRoute }, { type: undefined, decorators: [{
|
|
34
34
|
type: Inject,
|
|
35
35
|
args: [SMART_WEB_PORTAL_URL]
|
|
36
36
|
}] }] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3NtYXJ0L25nYy1zbWFydC1jb3JlL3NyYy9saWIvc21hcnQtYXV0aC9zbWFydC1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jc21hcnQvbmdjLXNtYXJ0LWNvcmUvc3JjL2xpYi9zbWFydC1hdXRoL3NtYXJ0LWVycm9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELDJEQUEyRDtBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQU81RSxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQ1UsWUFBeUIsRUFDekIsS0FBcUIsRUFDUyxpQkFBeUI7UUFGdkQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7SUFDOUQsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksT0FBTyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxPQUFPO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQztJQUN6RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsQ0FBQztpSUF0QlUsbUJBQW1CLDJFQU9wQixvQkFBb0I7cUhBUG5CLG1CQUFtQix1RENYaEMsNlNBWUE7OzJGRERhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OzBCQVd4QixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTTUFSVF9XRUJfUE9SVEFMX1VSTCB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zbWFydC1lcnJvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWVycm9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydC1lcnJvci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydEVycm9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWVzc2FnZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgQEluamVjdChTTUFSVF9XRUJfUE9SVEFMX1VSTCkgcHJpdmF0ZSBzbWFydFdlYlBvcnRhbFVybDogc3RyaW5nLFxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd0eXBlJykgfHwgJ3N0YWZmJztcclxuICAgIHRoaXMubWVzc2FnZSA9XHJcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ21lc3NhZ2UnKSB8fCAnRXJyb3Igb2NjdXJlZC4nO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0KCkge1xyXG4gICAgdGhpcy5hdXRoblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwb3J0YWwoKSB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuc21hcnRXZWJQb3J0YWxVcmw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgPGgyPlxyXG4gICAge3sgbWVzc2FnZSB9fVxyXG4gIDwvaDI+XHJcbiAgPHA+XHJcbiAgICBQbGVhc2UgY29udGFjdCBoZWxwIGRlc2sgaWYgbmVlZGVkLlxyXG4gIDwvcD5cclxuICA8ZGl2PlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0KClcIiAqbmdJZj1cInR5cGUgPT09ICdzdGFmZidcIj5PSzwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicG9ydGFsKClcIiAqbmdJZj1cInR5cGUgPT09ICdvZmZlbmRlcidcIj5PSzwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -47,13 +47,13 @@ export class LoginStaffResolverService {
|
|
|
47
47
|
return EMPTY;
|
|
48
48
|
}));
|
|
49
49
|
}
|
|
50
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
51
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
50
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoginStaffResolverService, deps: [{ token: i1.SmartAuthService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoginStaffResolverService, providedIn: 'root' }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoginStaffResolverService, decorators: [{
|
|
54
54
|
type: Injectable,
|
|
55
55
|
args: [{
|
|
56
56
|
providedIn: 'root',
|
|
57
57
|
}]
|
|
58
58
|
}], ctorParameters: () => [{ type: i1.SmartAuthService }, { type: i2.Router }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQStDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RGLE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQ1UsWUFBOEI7SUFDdEMsd0JBQXdCO0lBQ2hCLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFFOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosT0FBTyxDQUNMLEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQzNDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxRQUFRLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sVUFBVSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7Z0JBQ3JELGdCQUFnQjtnQkFDaEI7Ozs7Ozs7Ozs7a0JBVUU7WUFDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxXQUFXLEVBQUU7b0JBQ1gsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLHdCQUF3QixHQUFHLEtBQUs7aUJBQzFDO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztpSUE5Q1UseUJBQXlCO3FJQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEVNUFRZLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCwgY2F0Y2hFcnJvciwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU21hcnRBdXRoU2VydmljZSB9IGZyb20gJy4vc21hcnQtYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9naW5TdGFmZiB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2Uvc21hcnQtc3RvcmFnZS1tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5TdGFmZlJlc29sdmVyU2VydmljZSAge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoblNlcnZpY2U6IFNtYXJ0QXV0aFNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7fVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPExvZ2luU3RhZmY+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXV0aG5TZXJ2aWNlLmdldExvZ2luU3RhZmYoKS5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBtZXJnZU1hcCgobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnLCBsb2dpblN0YWZmKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxvZ2luU3RhZmYpIHtcclxuICAgICAgICAgIHJldHVybiBvZihsb2dpblN0YWZmKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nKTtcclxuICAgICAgICAgIC8vIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc21hcnQtZXJyb3InXSwge1xyXG4gICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc3RhZmYnLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ05vdCBhdXRob3JpemVkIHRvIGFjY2VzcyBTTUFSVC4nXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgKi9cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlOiAnICsgZXJyb3IpO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICAgICAgICAgIHR5cGU6ICdzdGFmZicsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdTTUFSVCBBdXRoZW50aWNhdGlvbjogJyArIGVycm9yLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -48,13 +48,13 @@ export class SelectedOffenderResolverService {
|
|
|
48
48
|
return EMPTY;
|
|
49
49
|
}));
|
|
50
50
|
}
|
|
51
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
52
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
51
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SelectedOffenderResolverService, deps: [{ token: i1.XdmService }, { token: i0.NgZone }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
52
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SelectedOffenderResolverService, providedIn: 'root' }); }
|
|
53
53
|
}
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SelectedOffenderResolverService, decorators: [{
|
|
55
55
|
type: Injectable,
|
|
56
56
|
args: [{
|
|
57
57
|
providedIn: 'root',
|
|
58
58
|
}]
|
|
59
59
|
}], ctorParameters: () => [{ type: i1.XdmService }, { type: i0.NgZone }, { type: i2.Router }] });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NzbWFydC9uZ2Mtc21hcnQtY29yZS9zcmMvbGliL3NtYXJ0LWF1dGgvc21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUErQyxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osU0FBUyxFQUNULEtBQUssR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sK0JBQStCO0lBRTFDLFlBQ1UsT0FBbUIsRUFDbkIsSUFBWSxFQUNaLE1BQWM7UUFGZCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFDSixPQUFPLENBQ0wsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsSUFBSSxVQUFVLEdBQWtCLElBQUksQ0FBQztRQUNyQyxJQUFJLFVBQVUsR0FBWSxLQUFLLENBQUM7UUFDaEMsSUFBRyxLQUFLLEVBQUUsQ0FBQztZQUNULElBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hDLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7Z0JBQ2hDLFVBQVUsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNsRCxRQUFRLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzVCLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxJQUFHLFVBQVUsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDM0UsQ0FBQztZQUNELElBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJO1FBQ1QsOERBQThEO1FBQzlELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDWCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FDSixDQUFDLEVBQ0QsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUMsQ0FDNUUsQ0FDSixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkI7Ozs7OztjQU1FO1lBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDckMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO2FBQ2xELENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7aUlBMURVLCtCQUErQjtxSUFBL0IsK0JBQStCLGNBRjlCLE1BQU07OzJGQUVQLCtCQUErQjtrQkFIM0MsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSb3V0ZXJTdGF0ZVNuYXBzaG90LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiwgRU1QVFksIHRocm93RXJyb3IsIGNvbmNhdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWVyZ2VNYXAsXHJcbiAgdGFrZSxcclxuICByZXRyeVdoZW4sXHJcbiAgZGVsYXksXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZE9mZmVuZGVyIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgWGRtU2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXN0b3JhZ2UveGRtLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkT2ZmZW5kZXJSZXNvbHZlclNlcnZpY2VcclxuICAge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBYZG1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge31cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPFNlbGVjdGVkT2ZmZW5kZXI+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgbGV0IG9mZmVuZGVySWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG4gICAgbGV0IGludGFrZUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKHJvdXRlKSB7XHJcbiAgICAgIGlmKHJvdXRlLnF1ZXJ5UGFyYW1zW1wib2ZmZW5kZXJJZFwiXSlcclxuICAgICAgICBvZmZlbmRlcklkID0gcGFyc2VJbnQocm91dGUucXVlcnlQYXJhbXNbXCJvZmZlbmRlcklkXCJdKTtcclxuICAgICAgaWYocm91dGUucXVlcnlQYXJhbXNbXCJpbnRha2VGbGFnXCJdKVxyXG4gICAgICAgIGludGFrZUZsYWcgPSByb3V0ZS5xdWVyeVBhcmFtc1tcImludGFrZUZsYWdcIl0gPT0gXCJ0cnVlXCI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnNlcnZpY2UuZ2V0U2VsZWN0ZWRPZmZlbmRlcigpKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICAgIGlmIChpc0Rldk1vZGUpIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHNlbGVjdGVkT2ZmZW5kZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihvZmZlbmRlcklkICYmIG9mZmVuZGVySWQgPiAwICYmICghc2VsZWN0ZWRPZmZlbmRlciB8fCAoc2VsZWN0ZWRPZmZlbmRlciAmJiBzZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQgIT09IG9mZmVuZGVySWQpKSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5zZXRTZWxlY3RlZE9mZmVuZGVyRnJvbVJvdXRlKG9mZmVuZGVySWQsIGludGFrZUZsYWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2Yoc2VsZWN0ZWRPZmZlbmRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcignTm8gb2ZmZW5kZXIgc2VsZWN0ZWQuJykpO1xyXG4gICAgICB9KSxcclxuICAgICAgcmV0cnlXaGVuKChlcnJvcnMpID0+XHJcbiAgICAgICAgZXJyb3JzLnBpcGUoXHJcbiAgICAgICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ1JldHJ5IGdldHRpbmcgc2VsZWN0ZWQgb2ZmZW5kZXIuJykpLFxyXG4gICAgICAgICAgZGVsYXkoMTAwMCksXHJcbiAgICAgICAgICB0YWtlKDUpLFxyXG4gICAgICAgICAgKG8pID0+XHJcbiAgICAgICAgICAgIGNvbmNhdChcclxuICAgICAgICAgICAgICBvLFxyXG4gICAgICAgICAgICAgIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBvZmZlbmRlciBzZWxlY3RlZCAoZmFpbGVkIGFmdGVyIHJldHJpZXMpLicpKSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICApLFxyXG4gICAgICApLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIC8qXHJcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zbWFydC1lcnJvciddLCB7XHJcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IHR5cGU6ICdvZmZlbmRlcicsIG1lc3NhZ2U6IGVycm9yIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgICovXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc21hcnQtZXJyb3InXSwge1xyXG4gICAgICAgICAgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ29mZmVuZGVyJywgbWVzc2FnZTogZXJyb3IgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|