@senior-gestao-pessoas/payroll-core 9.2.0 → 9.3.0-06156ffc-852c-4f04-8482-5c4f9317ecff

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/bundles/senior-gestao-pessoas-payroll-core.umd.js +419 -25
  2. package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
  3. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -1
  4. package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
  5. package/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.d.ts +3 -1
  6. package/components/historical-pix-account/historical-pix-account.component.d.ts +8 -1
  7. package/components/historical-pix-account-list/historical-pix-account-list.component.d.ts +51 -0
  8. package/components/historical-pix-account-list/historical-pix-account-list.module.d.ts +2 -0
  9. package/components/historical-pix-account-list/historical-pix-account-list.service.d.ts +9 -0
  10. package/components/historical-pix-account-list/index.d.ts +3 -0
  11. package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +39 -18
  12. package/esm2015/components/historical-pix-account/historical-pix-account.component.js +46 -9
  13. package/esm2015/components/historical-pix-account-list/historical-pix-account-list.component.js +252 -0
  14. package/esm2015/components/historical-pix-account-list/historical-pix-account-list.module.js +39 -0
  15. package/esm2015/components/historical-pix-account-list/historical-pix-account-list.service.js +35 -0
  16. package/esm2015/components/historical-pix-account-list/index.js +4 -0
  17. package/esm2015/public_api.js +2 -1
  18. package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +40 -18
  19. package/esm5/components/historical-pix-account/historical-pix-account.component.js +58 -9
  20. package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js +276 -0
  21. package/esm5/components/historical-pix-account-list/historical-pix-account-list.module.js +42 -0
  22. package/esm5/components/historical-pix-account-list/historical-pix-account-list.service.js +37 -0
  23. package/esm5/components/historical-pix-account-list/index.js +4 -0
  24. package/esm5/public_api.js +2 -1
  25. package/fesm2015/senior-gestao-pessoas-payroll-core.js +375 -26
  26. package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
  27. package/fesm5/senior-gestao-pessoas-payroll-core.js +417 -26
  28. package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
  29. package/locale/en-US.json +8 -1
  30. package/locale/es-ES.json +8 -1
  31. package/locale/pt-BR.json +8 -1
  32. package/package.json +1 -1
  33. package/public_api.d.ts +1 -0
  34. package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
@@ -0,0 +1,39 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { CommonModule } from "@angular/common";
3
+ import { HttpClientModule } from "@angular/common/http";
4
+ import { NgModule } from "@angular/core";
5
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
6
+ import { ButtonModule, LoadingStateModule } from "@seniorsistemas/angular-components";
7
+ import { AutoCompleteModule } from "primeng/autocomplete";
8
+ import { ConfirmDialogModule } from "primeng/confirmdialog";
9
+ import { TableModule } from "primeng/table";
10
+ import { TooltipModule } from "primeng/tooltip";
11
+ import { DataListRestModule } from "../data-list-rest/index";
12
+ import { SharedModule } from "../shared/shared.module";
13
+ import { HistoricalPixAccountListComponent } from "./historical-pix-account-list.component";
14
+ import { HistoricalPixAccountListService } from "./historical-pix-account-list.service";
15
+ let HistoricalPixAccountListModule = class HistoricalPixAccountListModule {
16
+ };
17
+ HistoricalPixAccountListModule = tslib_1.__decorate([
18
+ NgModule({
19
+ imports: [
20
+ CommonModule,
21
+ FormsModule,
22
+ HttpClientModule,
23
+ AutoCompleteModule,
24
+ SharedModule,
25
+ ReactiveFormsModule,
26
+ TableModule,
27
+ ButtonModule,
28
+ TooltipModule,
29
+ LoadingStateModule,
30
+ DataListRestModule,
31
+ ConfirmDialogModule,
32
+ ],
33
+ declarations: [HistoricalPixAccountListComponent],
34
+ providers: [HistoricalPixAccountListService],
35
+ exports: [HistoricalPixAccountListComponent],
36
+ })
37
+ ], HistoricalPixAccountListModule);
38
+ export { HistoricalPixAccountListModule };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QvaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFxQnhGLElBQWEsOEJBQThCLEdBQTNDLE1BQWEsOEJBQThCO0NBQzFDLENBQUE7QUFEWSw4QkFBOEI7SUFuQjFDLFFBQVEsQ0FBQztRQUNOLE9BQU8sRUFBRTtZQUNMLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxZQUFZO1lBQ1osYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsbUJBQW1CO1NBQ3RCO1FBQ0QsWUFBWSxFQUFFLENBQUMsaUNBQWlDLENBQUM7UUFDakQsU0FBUyxFQUFFLENBQUMsK0JBQStCLENBQUM7UUFDNUMsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7S0FDL0MsQ0FBQztHQUNXLDhCQUE4QixDQUMxQztTQURZLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIExvYWRpbmdTdGF0ZU1vZHVsZSB9IGZyb20gXCJAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9hdXRvY29tcGxldGVcIjtcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tIFwicHJpbWVuZy9jb25maXJtZGlhbG9nXCI7XG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdG9vbHRpcFwiO1xuaW1wb3J0IHsgRGF0YUxpc3RSZXN0TW9kdWxlIH0gZnJvbSBcIi4uL2RhdGEtbGlzdC1yZXN0L2luZGV4XCI7XG5cbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gXCIuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZVwiO1xuaW1wb3J0IHsgSGlzdG9yaWNhbFBpeEFjY291bnRMaXN0Q29tcG9uZW50IH0gZnJvbSBcIi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgSGlzdG9yaWNhbFBpeEFjY291bnRMaXN0U2VydmljZSB9IGZyb20gXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdC5zZXJ2aWNlXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBBdXRvQ29tcGxldGVNb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVGFibGVNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgTG9hZGluZ1N0YXRlTW9kdWxlLFxuICAgICAgICBEYXRhTGlzdFJlc3RNb2R1bGUsXG4gICAgICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtIaXN0b3JpY2FsUGl4QWNjb3VudExpc3RDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW0hpc3RvcmljYWxQaXhBY2NvdW50TGlzdFNlcnZpY2VdLFxuICAgIGV4cG9ydHM6IFtIaXN0b3JpY2FsUGl4QWNjb3VudExpc3RDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsUGl4QWNjb3VudExpc3RNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,35 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { HttpClient } from "@angular/common/http";
3
+ import { Injectable } from "@angular/core";
4
+ import { ServiceType } from '../../core/enums/serviceType';
5
+ import { HttpClientService } from "../shared/http-client.service";
6
+ let HistoricalPixAccountListService = class HistoricalPixAccountListService {
7
+ constructor(http, httpClient) {
8
+ this.http = http;
9
+ this.httpClient = httpClient;
10
+ }
11
+ remove(id, dateWhen, service = ServiceType.PAYROLL, dependentId) {
12
+ if (service === ServiceType.DEPENDENT) {
13
+ return this.httpClient
14
+ .post("hcm/dependent/queries/historicalDependentJudicialPensionPixDelete", {
15
+ dependentId: dependentId,
16
+ dateWhen: dateWhen,
17
+ });
18
+ }
19
+ else {
20
+ return this.http.post("actions/historicalEmployeePixDelete", {
21
+ employeeId: id,
22
+ dateWhen: dateWhen
23
+ });
24
+ }
25
+ }
26
+ };
27
+ HistoricalPixAccountListService.ctorParameters = () => [
28
+ { type: HttpClientService },
29
+ { type: HttpClient }
30
+ ];
31
+ HistoricalPixAccountListService = tslib_1.__decorate([
32
+ Injectable()
33
+ ], HistoricalPixAccountListService);
34
+ export { HistoricalPixAccountListService };
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0L2hpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHbEUsSUFBYSwrQkFBK0IsR0FBNUMsTUFBYSwrQkFBK0I7SUFDeEMsWUFBb0IsSUFBdUIsRUFBVSxVQUFzQjtRQUF2RCxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDM0UsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFPLEVBQUUsUUFBZ0IsRUFBRSxVQUF1QixXQUFXLENBQUMsT0FBTyxFQUFFLFdBQW9CO1FBQ3JHLElBQUksT0FBTyxLQUFLLFdBQVcsQ0FBQyxTQUFTLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVTtpQkFDakIsSUFBSSxDQUFDLG1FQUFtRSxFQUFFO2dCQUN2RSxXQUFXLEVBQUUsV0FBVztnQkFDeEIsUUFBUSxFQUFFLFFBQVE7YUFDckIsQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUNBQXFDLEVBQUU7Z0JBQ3pELFVBQVUsRUFBRSxFQUFFO2dCQUNkLFFBQVEsRUFBRSxRQUFRO2FBQ3JCLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztDQUVKLENBQUE7O1lBbEI2QixpQkFBaUI7WUFBc0IsVUFBVTs7QUFEbEUsK0JBQStCO0lBRDNDLFVBQVUsRUFBRTtHQUNBLCtCQUErQixDQW1CM0M7U0FuQlksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTZXJ2aWNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvZW51bXMvc2VydmljZVR5cGUnO1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50U2VydmljZSB9IGZyb20gXCIuLi9zaGFyZWQvaHR0cC1jbGllbnQuc2VydmljZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGlzdG9yaWNhbFBpeEFjY291bnRMaXN0U2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50U2VydmljZSwgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSB7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZShpZDogYW55LCBkYXRlV2hlbjogc3RyaW5nLCBzZXJ2aWNlOiBTZXJ2aWNlVHlwZSA9IFNlcnZpY2VUeXBlLlBBWVJPTEwsIGRlcGVuZGVudElkPzogc3RyaW5nKSB7XG4gICAgICAgIGlmIChzZXJ2aWNlID09PSBTZXJ2aWNlVHlwZS5ERVBFTkRFTlQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgICAgICAucG9zdChcImhjbS9kZXBlbmRlbnQvcXVlcmllcy9oaXN0b3JpY2FsRGVwZW5kZW50SnVkaWNpYWxQZW5zaW9uUGl4RGVsZXRlXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50SWQ6IGRlcGVuZGVudElkLFxuICAgICAgICAgICAgICAgICAgICBkYXRlV2hlbjogZGF0ZVdoZW4sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXCJhY3Rpb25zL2hpc3RvcmljYWxFbXBsb3llZVBpeERlbGV0ZVwiLCB7XG4gICAgICAgICAgICAgICAgZW1wbG95ZWVJZDogaWQsXG4gICAgICAgICAgICAgICAgZGF0ZVdoZW46IGRhdGVXaGVuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from './historical-pix-account-list.component';
2
+ export * from './historical-pix-account-list.module';
3
+ export * from './historical-pix-account-list.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWdlc3Rhby1wZXNzb2FzL3BheXJvbGwtY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1saXN0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtbGlzdC5zZXJ2aWNlJztcbiJdfQ==
@@ -53,4 +53,5 @@ export * from './components/employee-selector/index';
53
53
  export * from './services/form-comparator.service';
54
54
  export * from './components/from-to/index';
55
55
  export * from './components/historical-pix-account/index';
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3V0aWxzL2NwZi12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3V0aWxzL2NucGotdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy92YW5pbGxhL3N0cmluZy1tZXRob2RzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9ibG9jay11aS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY29udHJvbC1tZXNzYWdlcy1lcnJvci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWZpZWxkcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGlyZWN0aXZlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0LXJlc3QvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2VtcGxveWVlLXN1bW1hcnkvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2FkbWlzc2lvbi1kcmFmdC1zdW1tYXJ5L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lcnJvci1wYWdlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9maWVsZC12YWxpZGF0b3IvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbWFnZS1jcm9wcGVyL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1kYXRlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1kYXRlLW1vZGVsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZS1lbXBsb3llZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLWVtcGxveWVlLW1vZGVsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUtZW51bS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLW1vZGVsL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUtbW9kZWwtZW51bS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLWpvYnBvc2l0aW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9saXN0LXJlc3QvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3NwaW5uZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3R5cGUtYWRtaXNzaW9uL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91dGlscy9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91dGlscy92YWxpZGF0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmVkL2h0dHAtY2xpZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zZXJ2aWNlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wZXJtaXNzaW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90b2FzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ludGVncmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RhdGEtbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbXBhbnktaW5kaWNhdGlvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2xvb2t1cC1wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hdXRvY29tcGxldGUtcGFyYW1ldGVycy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9sb29rdXAvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3dvcmtzdGF0aW9uZ3JvdXAtbG9va3VwL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9oaXN0b3JpY2FsLWJhbmstYWNjb3VudC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaGlzdG9yaWNhbC1iYW5rLWFjY291bnQtbGlzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvZW51bXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2VudGl0aWVzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy91dGlscy9kYXRlLXZhbGlkYXRvci9kYXRlLXZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JlL2ludGVyZmFjZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dvcmtmbG93LWludGVncmF0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dvcmtmbG93LWRhdGEuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZW1wbG95ZWUtc2VsZWN0b3IvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9mb3JtLWNvbXBhcmF0b3Iuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZnJvbS10by9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaGlzdG9yaWNhbC1waXgtYWNjb3VudC9pbmRleCc7XG4iXX0=
56
+ export * from './components/historical-pix-account-list/index';
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1EQUFtRCxDQUFDO0FBRWxFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxnREFBZ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY29yZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXRpbHMvY3BmLXZhbGlkYXRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdXRpbHMvY25wai12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ZhbmlsbGEvc3RyaW5nLW1ldGhvZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jsb2NrLXVpL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jb250cm9sLW1lc3NhZ2VzLWVycm9yL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tZmllbGRzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kaXJlY3RpdmVzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9kYXRhLWxpc3QtcmVzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZW1wbG95ZWUtc3VtbWFyeS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYWRtaXNzaW9uLWRyYWZ0LXN1bW1hcnkvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Vycm9yLXBhZ2UvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ZpZWxkLXZhbGlkYXRvci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2ltYWdlLWNyb3BwZXIvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LWRhdGUvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LWRhdGUtbW9kZWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvaW5wdXQtcmVzdC1hdXRvLWNvbXBsZXRlLWVtcGxveWVlL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUtZW1wbG95ZWUtbW9kZWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZS1lbnVtL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUtbW9kZWwvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2lucHV0LXJlc3QtYXV0by1jb21wbGV0ZS1tb2RlbC1lbnVtL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbnB1dC1yZXN0LWF1dG8tY29tcGxldGUtam9icG9zaXRpb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xpc3QtcmVzdC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc3Bpbm5lci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvdHlwZS1hZG1pc3Npb24vaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3V0aWxzL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3V0aWxzL3ZhbGlkYXRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9zaGFyZWQvaHR0cC1jbGllbnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NlcnZpY2VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Blcm1pc3Npb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RvYXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW50ZWdyYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGF0YS1saXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29tcGFueS1pbmRpY2F0aW9ucy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvbG9va3VwLXBhcmFtZXRlcnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2F1dG9jb21wbGV0ZS1wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2xvb2t1cC9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvd29ya3N0YXRpb25ncm91cC1sb29rdXAvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2hpc3RvcmljYWwtYmFuay1hY2NvdW50L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9oaXN0b3JpY2FsLWJhbmstYWNjb3VudC1saXN0L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9lbnVtcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvZW50aXRpZXMvaW5kZXgnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3V0aWxzL2RhdGUtdmFsaWRhdG9yL2RhdGUtdmFsaWRhdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvaW50ZXJmYWNlcy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3JlcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvd29ya2Zsb3ctaW50ZWdyYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvd29ya2Zsb3ctZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lbXBsb3llZS1zZWxlY3Rvci9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Zvcm0tY29tcGFyYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9mcm9tLXRvL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50L2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWxpc3QvaW5kZXgnO1xuIl19
@@ -13,6 +13,7 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
13
13
  this.withSideBar = true;
14
14
  this.isEditMode = false;
15
15
  this.paramsForm = new FormGroup({});
16
+ this.defaultCpfNumber = null;
16
17
  this.visibleChange = new EventEmitter();
17
18
  this.pixAccountItemToList = new EventEmitter();
18
19
  this.ngUnsubscribe = new Subject();
@@ -47,6 +48,7 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
47
48
  percentage: this.formBuilder.control(null, Validators.compose(tslib_1.__spread(this.initialValidatorOfPercentage, [
48
49
  Validators.max(this.maxValuePercentage),
49
50
  ]))),
51
+ externalId: this.formBuilder.control(null),
50
52
  customFields: this.formBuilder.control(null),
51
53
  });
52
54
  };
@@ -55,7 +57,7 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
55
57
  this.pixKeyType = item.key;
56
58
  this.isShowPixKeyFieldValidatorMessage = true;
57
59
  this.pixAccountFormGroup.get("pixKey").reset();
58
- this.setPixKeyValidators();
60
+ this.setPixKeyValidators(true);
59
61
  if (item.key === "CPF") {
60
62
  this.setDefaultCpfPixKey();
61
63
  }
@@ -83,10 +85,16 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
83
85
  if (value && value.currentItem && Object.keys(value.currentItem).length) {
84
86
  this.pixAccountFormGroup.patchValue(this.convertDTOToShowWithCustomFields(tslib_1.__assign({}, value.currentItem)));
85
87
  this.labelBtnAdd = "hcm.payroll.employees_update";
86
- this.setValidatorsAccordingList(value.listData, value.currentItem["index"]);
88
+ this.setValidatorsAccordingList(value.listData, value.currentItem["index"], value && value["isEditMode"]);
87
89
  if (!this.isView) {
88
90
  this.configEnableFields(value && value["isEditMode"]);
89
91
  }
92
+ else {
93
+ if (this.pixAccountFormGroup.get("pixKeyType").value) {
94
+ this.pixKeyType = this.pixAccountFormGroup.get("pixKeyType").value.key;
95
+ this.formatPixKeyTelephoneNumber();
96
+ }
97
+ }
90
98
  }
91
99
  else {
92
100
  this.labelBtnAdd = "hcm.payroll.employees_add";
@@ -95,6 +103,11 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
95
103
  enumerable: true,
96
104
  configurable: true
97
105
  });
106
+ HistoricalPixAccountFormComponent.prototype.formatPixKeyTelephoneNumber = function () {
107
+ if (this.pixKeyType === "TELEPHONE") {
108
+ this.pixAccountFormGroup.get("pixKey").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get("pixKey").value));
109
+ }
110
+ };
98
111
  HistoricalPixAccountFormComponent.prototype.convertDTOToShowWithCustomFields = function (data) {
99
112
  var obj = tslib_1.__assign({}, data);
100
113
  obj["customFields"] = mountCustomToShow(obj["customFields"]);
@@ -104,10 +117,8 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
104
117
  this.visibleBtnSave = isEditMode;
105
118
  if (this.pixAccountFormGroup.get("pixKeyType").value) {
106
119
  this.pixKeyType = this.pixAccountFormGroup.get("pixKeyType").value.key;
107
- this.setPixKeyValidators();
108
- if (this.pixKeyType === "TELEPHONE") {
109
- this.pixAccountFormGroup.get("pixKey").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get("pixKey").value));
110
- }
120
+ this.setPixKeyValidators(isEditMode);
121
+ this.formatPixKeyTelephoneNumber();
111
122
  }
112
123
  configEnabledFields(this.pixAccountFormGroup, isEditMode, [
113
124
  "pixKeyType",
@@ -169,7 +180,7 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
169
180
  */
170
181
  set: function (pixAccountList) {
171
182
  if (pixAccountList) {
172
- this.setValidatorsAccordingList(pixAccountList);
183
+ this.setValidatorsAccordingList(pixAccountList, null, false);
173
184
  }
174
185
  else {
175
186
  this.resetForm();
@@ -186,8 +197,9 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
186
197
  * @param pixAccountList
187
198
  * @param index
188
199
  */
189
- HistoricalPixAccountFormComponent.prototype.setValidatorsAccordingList = function (pixAccountList, index) {
200
+ HistoricalPixAccountFormComponent.prototype.setValidatorsAccordingList = function (pixAccountList, index, isEditMode) {
190
201
  if (index === void 0) { index = null; }
202
+ if (isEditMode === void 0) { isEditMode = true; }
191
203
  this.pixAccountList = pixAccountList && pixAccountList.length ? tslib_1.__spread(pixAccountList) : [];
192
204
  var percentageIncluded = [];
193
205
  if (this.pixAccountList && this.pixAccountList.length) {
@@ -198,13 +210,13 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
198
210
  });
199
211
  }
200
212
  this.beforeSetPixKeyTypeValidator();
201
- this.setPixKeyValidators();
213
+ this.setPixKeyValidators(isEditMode);
202
214
  this.validatePercentageValid(percentageIncluded);
203
215
  };
204
216
  /**
205
217
  * Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.
206
218
  */
207
- HistoricalPixAccountFormComponent.prototype.setPixKeyValidators = function () {
219
+ HistoricalPixAccountFormComponent.prototype.setPixKeyValidators = function (isEditMode) {
208
220
  var genericPixKey = this.pixAccountFormGroup.get("pixKey");
209
221
  if (this.pixKeyType) {
210
222
  switch (this.pixKeyType) {
@@ -235,7 +247,9 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
235
247
  genericPixKey.setValidators(null);
236
248
  break;
237
249
  }
238
- genericPixKey.enable();
250
+ if (isEditMode) {
251
+ genericPixKey.enable();
252
+ }
239
253
  genericPixKey.updateValueAndValidity();
240
254
  }
241
255
  };
@@ -268,11 +282,16 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
268
282
  FormatUtilsService.formatTelephoneInputEvent(event);
269
283
  };
270
284
  HistoricalPixAccountFormComponent.prototype.setDefaultCpfPixKey = function () {
271
- var sheetDocument = this.paramsForm.get("sheetDocument");
272
- if (sheetDocument) {
273
- var cpf = sheetDocument.get("cpfNumber").value;
274
- if (cpf) {
275
- this.pixAccountFormGroup.get("pixKey").setValue(cpf);
285
+ if (this.defaultCpfNumber) {
286
+ this.pixAccountFormGroup.get("pixKey").setValue(this.defaultCpfNumber);
287
+ }
288
+ else {
289
+ var sheetDocument = this.paramsForm.get("sheetDocument");
290
+ if (sheetDocument) {
291
+ var cpf = sheetDocument.get("cpfNumber").value;
292
+ if (cpf) {
293
+ this.pixAccountFormGroup.get("pixKey").setValue(cpf);
294
+ }
276
295
  }
277
296
  }
278
297
  };
@@ -333,6 +352,9 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
333
352
  tslib_1.__decorate([
334
353
  Input()
335
354
  ], HistoricalPixAccountFormComponent.prototype, "paramsForm", void 0);
355
+ tslib_1.__decorate([
356
+ Input()
357
+ ], HistoricalPixAccountFormComponent.prototype, "defaultCpfNumber", void 0);
336
358
  tslib_1.__decorate([
337
359
  Output()
338
360
  ], HistoricalPixAccountFormComponent.prototype, "visibleChange", void 0);
@@ -354,11 +376,11 @@ var HistoricalPixAccountFormComponent = /** @class */ (function () {
354
376
  HistoricalPixAccountFormComponent = tslib_1.__decorate([
355
377
  Component({
356
378
  selector: "pix-account",
357
- template: "<div id=\"main\">\n <form [formGroup]=\"pixAccountFormGroup\" autocomplete=\"off\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <!-- Tipo de chave -->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label>{{'hcm.payroll.employees_addition_pix_key_type'|translate}}</label>\n <input-rest-auto-complete-enum [dropdown]=\"true\" server=\"payroll\"\n enumeration=\"PixKeyType\"\n placeholder=\"{{'hcm.payroll.select' | translate}}\"\n name=\"pixKeyType\" [form]=\"pixAccountFormGroup\"\n (onSelect)=\"onChangePixKeyType($event)\"\n (onClear)=\"onClearPixKeyType()\"\n id=\"ta-pixKeyType\"></input-rest-auto-complete-enum>\n <s-control-errors [control]=\"pixAccountFormGroup.get('pixKeyType')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n pixKeyTypeBankAccountDuplicate: 'hcm.payroll.historical_pix_key_type_bank_account_duplicate' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Chave Pix-->\n <div class=\"ui-md-6 ui-sm-12\" [ngClass]=\"{'required': pixKeyType !== 'BANK_ACCOUNT'}\">\n <label>{{'hcm.payroll.employees_addition_pix_key' | translate}}</label>\n <ng-container [ngSwitch]=\"pixKeyType\">\n <input *ngSwitchCase=\"'TELEPHONE'\" only-number\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n (keyup)=\"phoneMask($event)\" maxlength=\"15\"\n placeholder=\"(__) ____-____\">\n <p-inputMask *ngSwitchCase=\"'CPF'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"___.___.___-__\"\n mask=\"999.999.999-99\" [unmask]=\"true\"></p-inputMask>\n <p-inputMask *ngSwitchCase=\"'CNPJ'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"__.___.___/____-__\"\n mask=\"99.999.999/9999-99\" [unmask]=\"true\"></p-inputMask>\n <input *ngSwitchCase=\"'EMAIL'\"\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"{{'hcm.payroll.employees_addition_email'|translate}}\"/>\n <input *ngSwitchCase=\"'BANK_ACCOUNT'\" disabled\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n <input *ngSwitchDefault\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n </ng-container>\n <s-control-errors *ngIf=\"isShowPixKeyFieldValidatorMessage\" id=\"er-pix-key\"\n [control]=\"pixAccountFormGroup.get('pixKey')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n invalidPhoneNumber: 'hcm.payroll.employees_addition_invalid_phone_number' | translate: { value: pixAccountFormGroup.get('pixKey').value },\n invalidEmail: 'hcm.payroll.employees_addition_email_invalid' | translate,\n cpfNotValid: 'hcm.payroll.employees_addition_cpf_error' | translate,\n cnpjNotValid: 'hcm.payroll.employees_addition_cnpj_error' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Percentual-->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label id=\"lb-percentage\"\n for=\"ff-percentage\">{{ 'hcm.payroll.historical_bank_account_label_percentage' | translate }}</label>\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\">%</span>\n <input pInputText id=\"ff-percentage\" name=\"percentage\"\n formControlName=\"percentage\"\n currencyMask\n [options]=\"optionsPercentage\"\n [placeholder]=\"percentagePlaceholder\"/>\n </div>\n <s-control-errors [control]=\"pixAccountFormGroup.get('percentage')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n maxlength: 'hcm.payroll.error_max_length' | translate: { value: '6' },\n max: 'hcm.payroll.error_max_value_number' | translate: { value: maxValuePercentage },\n min: 'hcm.payroll.error_min_value_number' | translate: { value: '0,01' }\n }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12\">\n <p-fieldset\n legend=\"{{ 'hcm.payroll.custom_fields' | translate }}\"\n [attr.data-hidden]=\"!customFields || !customFields.fields.length\"\n >\n <s-custom-fields\n domain=\"hcm\"\n service=\"{{customService}}\"\n entity=\"{{customEntity}}\"\n formControlName=\"customFields\"\n [invalidErrorLabel]=\"'hcm.payroll.employees_invalid_field' | translate\"\n >\n </s-custom-fields>\n </p-fieldset>\n </div>\n </div>\n </div>\n </form>\n\n <div [ngClass]=\"withSideBar ? 'footer' : 'footer-s-border'\">\n <div class=\"form-group\">\n <s-button id=\"btn-save\" label=\"{{ labelBtnAdd | translate}}\" priority=\"primary\"\n (onClick)=\"addItem()\" *ngIf=\"visibleBtnSave && !this.isView\"></s-button>\n <s-button *ngIf=\"withSideBar\" id=\"btn-close\" label=\"{{'hcm.payroll.cancel'|translate}}\" priority=\"secondary\"\n priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n </div>\n</div>\n",
379
+ template: "<div id=\"main\">\n <form [formGroup]=\"pixAccountFormGroup\" autocomplete=\"off\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <!-- Tipo de chave -->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label>{{'hcm.payroll.employees_addition_pix_key_type'|translate}}</label>\n <input-rest-auto-complete-enum [dropdown]=\"true\" server=\"payroll\"\n enumeration=\"PixKeyType\"\n placeholder=\"{{'hcm.payroll.select' | translate}}\"\n name=\"pixKeyType\" [form]=\"pixAccountFormGroup\"\n (onSelect)=\"onChangePixKeyType($event)\"\n (onClear)=\"onClearPixKeyType()\"\n id=\"ta-pixKeyType\"></input-rest-auto-complete-enum>\n <s-control-errors [control]=\"pixAccountFormGroup.get('pixKeyType')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n pixKeyTypeBankAccountDuplicate: 'hcm.payroll.historical_pix_key_type_bank_account_duplicate' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Chave Pix-->\n <div class=\"ui-md-6 ui-sm-12\" [ngClass]=\"{'required': pixKeyType !== 'BANK_ACCOUNT'}\">\n <label>{{'hcm.payroll.employees_addition_pix_key' | translate}}</label>\n <ng-container [ngSwitch]=\"pixKeyType\">\n <input *ngSwitchCase=\"'TELEPHONE'\" only-number\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n (keyup)=\"phoneMask($event)\" maxlength=\"15\"\n placeholder=\"(__) ____-____\">\n <p-inputMask *ngSwitchCase=\"'CPF'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"___.___.___-__\"\n mask=\"999.999.999-99\" [unmask]=\"true\"></p-inputMask>\n <p-inputMask *ngSwitchCase=\"'CNPJ'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"__.___.___/____-__\"\n mask=\"99.999.999/9999-99\" [unmask]=\"true\"></p-inputMask>\n <input *ngSwitchCase=\"'EMAIL'\"\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"{{'hcm.payroll.employees_addition_email'|translate}}\"/>\n <input *ngSwitchCase=\"'BANK_ACCOUNT'\" disabled\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n <input *ngSwitchDefault\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\" maxlength=\"100\" />\n </ng-container>\n <s-control-errors *ngIf=\"isShowPixKeyFieldValidatorMessage\" id=\"er-pix-key\"\n [control]=\"pixAccountFormGroup.get('pixKey')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n invalidPhoneNumber: 'hcm.payroll.employees_addition_invalid_phone_number' | translate: { value: pixAccountFormGroup.get('pixKey').value },\n invalidEmail: 'hcm.payroll.employees_addition_email_invalid' | translate,\n cpfNotValid: 'hcm.payroll.employees_addition_cpf_error' | translate,\n cnpjNotValid: 'hcm.payroll.employees_addition_cnpj_error' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Percentual-->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label id=\"lb-percentage\"\n for=\"ff-percentage\">{{ 'hcm.payroll.historical_bank_account_label_percentage' | translate }}</label>\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\">%</span>\n <input pInputText id=\"ff-percentage\" name=\"percentage\"\n formControlName=\"percentage\"\n currencyMask\n [options]=\"optionsPercentage\"\n [placeholder]=\"percentagePlaceholder\"/>\n </div>\n <s-control-errors [control]=\"pixAccountFormGroup.get('percentage')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n maxlength: 'hcm.payroll.error_max_length' | translate: { value: '6' },\n max: 'hcm.payroll.error_max_value_number' | translate: { value: maxValuePercentage },\n min: 'hcm.payroll.error_min_value_number' | translate: { value: '0,01' }\n }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12\">\n <p-fieldset\n legend=\"{{ 'hcm.payroll.custom_fields' | translate }}\"\n [attr.data-hidden]=\"!customFields || !customFields.fields.length\"\n >\n <s-custom-fields\n domain=\"hcm\"\n service=\"{{customService}}\"\n entity=\"{{customEntity}}\"\n formControlName=\"customFields\"\n [invalidErrorLabel]=\"'hcm.payroll.employees_invalid_field' | translate\"\n >\n </s-custom-fields>\n </p-fieldset>\n </div>\n </div>\n </div>\n </form>\n\n <div [ngClass]=\"withSideBar ? 'footer' : 'footer-s-border'\">\n <div class=\"form-group\">\n <s-button id=\"btn-save\" label=\"{{ labelBtnAdd | translate}}\" priority=\"primary\"\n (onClick)=\"addItem()\" *ngIf=\"visibleBtnSave && !this.isView\"></s-button>\n <s-button *ngIf=\"withSideBar\" id=\"btn-close\" label=\"{{'hcm.payroll.cancel'|translate}}\" priority=\"secondary\"\n priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n </div>\n</div>\n",
358
380
  styles: [".refresh{width:100%!important}#table-annuity .col-default-s{width:10%}#table-annuity .col-default-m{width:12%}#table-annuity .col-default-l{width:16%}#table-annuity .col-action{width:10%}#table-annuity .icon-warning{text-align:center!important;color:#ff6d00c7!important}@media screen and (max-width:612px){#table-annuity .col-default-1,#table-annuity .col-default-2{width:16%}#table-annuity .col-default-3{width:26%}#table-annuity .col-icon{width:10%}#table-annuity .col-action{width:27%}}#main{display:-webkit-box;display:flex;height:100%;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}#main form{height:100%}#main .footer{border-top:1px solid #ccc;padding-top:15px;margin-top:15px;flex-shrink:0;margin-bottom:-18px}#main .footer-s-border{padding-left:7px;flex-shrink:0;margin-bottom:-18px}"]
359
381
  })
360
382
  ], HistoricalPixAccountFormComponent);
361
383
  return HistoricalPixAccountFormComponent;
362
384
  }());
363
385
  export { HistoricalPixAccountFormComponent };
364
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50L2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU9uRjtJQXFDSSwyQ0FDWSxXQUF3QixFQUN4QixFQUFxQjtRQURyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTVCMUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1QixlQUFVLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFD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QUFFLDhCQUE4QixFQUFFLElBQUksRUFBRSxDQUFDO2FBQ25EO2lCQUFNO2dCQUNILE9BQU8sSUFBSSxDQUFDO2FBQ2Y7UUFDTCxDQUFDLENBQUM7SUFDTixDQUFDOztnQkFuVHdCLFdBQVc7Z0JBQ3BCLGlCQUFpQjs7SUFyQ2pDO1FBREMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDOzJFQUNmO0lBR3BDO1FBREMsS0FBSyxFQUFFO3VFQUM2QjtJQUVyQztRQURDLEtBQUssRUFBRTsyRUFDb0I7SUFFNUI7UUFEQyxLQUFLLEVBQUU7NEVBQ3FCO0lBRTdCO1FBREMsS0FBSyxFQUFFOzBFQUMyQjtJQUVuQztRQURDLEtBQUssRUFBRTt5RUFDMkI7SUFFbkM7UUFEQyxLQUFLLEVBQUU7eUVBQ3lDO0lBR2pEO1FBREMsTUFBTSxFQUFFOzRFQUNpRTtJQUUxRTtRQURDLE1BQU0sRUFBRTttRkFDZ0U7SUEyRXpFO1FBREMsS0FBSyxFQUFFO29FQUdQO0lBUUQ7UUFEQyxLQUFLLEVBQUU7K0VBZVA7SUE2RUQ7UUFEQyxLQUFLLEVBQUU7OEVBT1A7SUEwRkQ7UUFEQyxLQUFLLEVBQUU7dUVBS1A7SUF4U1EsaUNBQWlDO1FBTDdDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLGk0TkFBMkQ7O1NBRTlELENBQUM7T0FDVyxpQ0FBaUMsQ0EwVjdDO0lBQUQsd0NBQUM7Q0FBQSxBQTFWRCxJQTBWQztTQTFWWSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOdW1iZXJMb2NhbGVPcHRpb25zLCBDdXN0b21GaWVsZHNDb21wb25lbnQgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIHZlcmlmeVZhbGlkYXRpb25zRm9ybSxcbiAgICBjb25maWdFbmFibGVkRmllbGRzLFxuICAgIG1vdW50Q3VzdG9tVG9TaG93LFxufSBmcm9tIFwiLi4vLi4vdXRpbHMvaGVscGVyc1wiO1xuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlscy9nZW5lcmljLXZhbGlkYXRvcnNcIjtcbmltcG9ydCB7IEZvcm1hdFV0aWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtYXQtdXRpbHMvZm9ybWF0LXV0aWxzLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicGl4LWFjY291bnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsUGl4QWNjb3VudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChDdXN0b21GaWVsZHNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXJyZW5jeTogTnVtYmVyTG9jYWxlT3B0aW9ucztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21FbnRpdHk6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21TZXJ2aWNlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd2l0aFNpZGVCYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJhbXNGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHBpeEFjY291bnRJdGVtVG9MaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcHJpdmF0ZSBfdmlzaWJsZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgZW1wbG95ZWVJZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcGl4QWNjb3VudExpc3Q6IG9iamVjdFtdO1xuICAgIHByaXZhdGUgaW5pdGlhbFZhbGlkYXRvck9mUGVyY2VudGFnZTogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbigwLjAxKV07XG5cblxuICAgIHB1YmxpYyBsYWJlbEJ0bkFkZDogc3RyaW5nID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgcHVibGljIHBpeEFjY291bnRGb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbWF4VmFsdWVQZXJjZW50YWdlOiBudW1iZXIgPSAxMDAuMDA7XG4gICAgcHVibGljIHZpc2libGVCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIHBpeEtleVR5cGU6IHN0cmluZztcbiAgICBwdWJsaWMgaXNTaG93UGl4S2V5RmllbGRWYWxpZGF0b3JNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICkge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyU3ViamVjdHMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJqZWN0cygpOiB2b2lkIHtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBpZDogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgaW5kZXg6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgIGVtcGxveWVlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogeyB0YWJsZUlkOiBudWxsIH0sIGRpc2FibGVkOiB0cnVlIH0pLFxuICAgICAgICAgICAgZGF0ZUNoYW5nZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgcGl4S2V5VHlwZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgcGl4S2V5OiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBwZXJjZW50YWdlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmluaXRpYWxWYWxpZGF0b3JPZlBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZVBlcmNlbnRhZ2UpLFxuICAgICAgICAgICAgXSkpLFxuICAgICAgICAgICAgY3VzdG9tRmllbGRzOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZVBpeEtleVR5cGUoaXRlbTogYW55KSB7XG4gICAgICAgIGlmIChpdGVtLmtleSkge1xuICAgICAgICAgICAgdGhpcy5waXhLZXlUeXBlID0gaXRlbS5rZXk7XG4gICAgICAgICAgICB0aGlzLmlzU2hvd1BpeEtleUZpZWxkVmFsaWRhdG9yTWVzc2FnZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5XCIpLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnNldFBpeEtleVZhbGlkYXRvcnMoKTtcblxuICAgICAgICAgICAgaWYoaXRlbS5rZXkgPT09IFwiQ1BGXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRDcGZQaXhLZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsZWFyUGl4S2V5VHlwZSgpIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQaXhLZXlGaWVsZFZhbGlkYXRvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5yZXNldCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0VkaXRBbmRWaWV3VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGVCdG5TYXZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmN1cnJlbnRJdGVtICYmIE9iamVjdC5rZXlzKHZhbHVlLmN1cnJlbnRJdGVtKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuY29udmVydERUT1RvU2hvd1dpdGhDdXN0b21GaWVsZHMoey4uLnZhbHVlLmN1cnJlbnRJdGVtfSkpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbEJ0bkFkZCA9IFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX3VwZGF0ZVwiO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdCh2YWx1ZS5saXN0RGF0YSwgdmFsdWUuY3VycmVudEl0ZW1bXCJpbmRleFwiXSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWdFbmFibGVGaWVsZHModmFsdWUgJiYgdmFsdWVbXCJpc0VkaXRNb2RlXCJdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxCdG5BZGQgPSBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRcIjtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnREVE9Ub1Nob3dXaXRoQ3VzdG9tRmllbGRzKGRhdGE6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IG9iajogYW55ID0gey4uLiBkYXRhfTtcbiAgICAgICAgb2JqW1wiY3VzdG9tRmllbGRzXCJdID0gbW91bnRDdXN0b21Ub1Nob3cob2JqW1wiY3VzdG9tRmllbGRzXCJdKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ0VuYWJsZUZpZWxkcyhpc0VkaXRNb2RlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUJ0blNhdmUgPSBpc0VkaXRNb2RlO1xuXG4gICAgICAgIGlmKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlUeXBlXCIpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZS5rZXk7XG4gICAgICAgICAgICB0aGlzLnNldFBpeEtleVZhbGlkYXRvcnMoKTtcblxuICAgICAgICAgICAgaWYodGhpcy5waXhLZXlUeXBlID09PSBcIlRFTEVQSE9ORVwiKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5zZXRWYWx1ZShGb3JtYXRVdGlsc1NlcnZpY2UuZ2V0Rm9ybWF0dGVkVGVsZXBob25lTnVtYmVyKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikudmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0VuYWJsZWRGaWVsZHModGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLCBpc0VkaXRNb2RlLCBbXG4gICAgICAgICAgICBcInBpeEtleVR5cGVcIixcbiAgICAgICAgICAgIFwicGl4S2V5XCIsXG4gICAgICAgICAgICBcInBlcmNlbnRhZ2VcIixcbiAgICAgICAgICAgIFwiY3VzdG9tRmllbGRzXCIsXG4gICAgICAgIF0sIFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB2ZXJpZnlWYWxpZGF0aW9uc0Zvcm0uY2FsbCh0aGlzLnBpeEFjY291bnRGb3JtR3JvdXApO1xuXG4gICAgICAgIGlmICh0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAudmFsaWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmVtcGxveWVlSWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwiZW1wbG95ZWVcIikuc2V0VmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICB0YWJsZUlkOiB0aGlzLmVtcGxveWVlSWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnBpeEFjY291bnRJdGVtVG9MaXN0LmVtaXQodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpO1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgICAgIHRoaXMubGFiZWxCdG5BZGQgPSBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRcIjtcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tRmllbGRzICYmIHRoaXMuY3VzdG9tRmllbGRzLmZvcm1Hcm91cCkgdGhpcy5jdXN0b21GaWVsZHMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwZXJjZW50YWdlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAwJHsgdGhpcy5jdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmN5LmRlY2ltYWxTZXBhcmF0b3IgfTAwYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9wdGlvbnNQZXJjZW50YWdlKCk6IG9iamVjdCB7XG4gICAgICAgIHJldHVybiB7IC4uLnRoaXMuZ2V0T3B0aW9ucygpLCBwcmVjaXNpb246IDIgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE9wdGlvbnMoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogXCJcIixcbiAgICAgICAgICAgIHRob3VzYW5kczogdGhpcy5jdXJyZW5jeS50aG91c2FuZHNTZXBhcmF0b3IsXG4gICAgICAgICAgICBkZWNpbWFsOiB0aGlzLmN1cnJlbmN5LmRlY2ltYWxTZXBhcmF0b3IsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTyBJbnB1dCBxdWUgcmVjZWJlIGEgbGlzdGEgZG8gY29tcG9uZW50IHBhaSBlIGNoYW1hIG8gbcOpdG9kbyBkZSB2YWxpZGHDp8OjbyBwYXNzYW5kbyBhIGxpc3RhIHJlY2ViaWRhLlxuICAgICAqIEBwYXJhbSBwaXhBY2NvdW50TGlzdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBnZXRMaXN0UGl4QWNjb3VudChwaXhBY2NvdW50TGlzdDogb2JqZWN0W10pIHtcbiAgICAgICAgaWYgKHBpeEFjY291bnRMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRvcnNBY2NvcmRpbmdMaXN0KHBpeEFjY291bnRMaXN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWNlYmUgYSBsaXN0YSBkZSByZWdpc3Ryb3MgasOhIGluc2VyaWRvcyBuYSB0YWJlbGEgYWRpY2lvbmEgZW0gdW1hIHZhcmnDoXZlbCBvcyB2YWxvcmVzIHF1ZSBzZXLDo28gdXNhZG9zIHBhcmFcbiAgICAgKiBhIHZhbGlkYcOnw6NvIGRvcyBjYW1wb3MgXCJwZXJjZW50YWdlXCIgZSBcInBpeEFjY291bnRcIi5cbiAgICAgKiBRdWFuZG8gdGVtIGluZGV4IHNpZ25pZmljYSBxdWUgZXN0w6EgZW0gdW1hIGVkacOnw6NvLCBvcyB2YWxvcmVzIG5hIHBvc2nDp8OjbyBkbyByZWdpc3RybyBkYSBlZGnDp8OjbyAoaW5kZXgpIG7Do28gc2Vyw6NvIGFkaWNpb25hZG9zXG4gICAgICogbm8gYXJyYXkgZGUgY29tcGFyYcOnw6NvIGRvcyB2YWxpZGF0b3JzLlxuICAgICAqIEBwYXJhbSBwaXhBY2NvdW50TGlzdFxuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0VmFsaWRhdG9yc0FjY29yZGluZ0xpc3QocGl4QWNjb3VudExpc3Q6IG9iamVjdFtdLCBpbmRleDogbnVtYmVyID0gbnVsbCkge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRMaXN0ID0gcGl4QWNjb3VudExpc3QgJiYgcGl4QWNjb3VudExpc3QubGVuZ3RoID8gWy4uLnBpeEFjY291bnRMaXN0XSA6IFtdO1xuXG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2VJbmNsdWRlZDogYW55ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudExpc3QuZmlsdGVyKChmaWVsZDogYW55LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwZXJjZW50YWdlXCJdICYmIGtleSAhPSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlSW5jbHVkZWQucHVzaChmaWVsZFtcInBlcmNlbnRhZ2VcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCk7XG4gICAgICAgIHRoaXMuc2V0UGl4S2V5VmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLnZhbGlkYXRlUGVyY2VudGFnZVZhbGlkKHBlcmNlbnRhZ2VJbmNsdWRlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQW50ZXMgZGUgc2V0YXIgbyB2YWxpZGF0b3IgcHJlcGFyYSBhcyB2YXJpw6F2ZWlzIG5lY2Vzc8OhcmlhIHBhcmEgcXVlIHNlamEgZmVpdGEgYSB2YWxpZGHDp8OjbyBkbyBjYW1wby5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGl4S2V5VmFsaWRhdG9ycygpIHtcbiAgICAgICAgY29uc3QgZ2VuZXJpY1BpeEtleSA9IHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIik7XG4gICAgICAgIGlmICh0aGlzLnBpeEtleVR5cGUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5waXhLZXlUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlRFTEVQSE9ORVwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZFBob25lTnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICBdKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJFTUFJTFwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZEVtYWlsLFxuICAgICAgICAgICAgICAgICAgICBdKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJDUEZcIjpcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLCBHZW5lcmljVmFsaWRhdG9yLmlzVmFsaWRDcGYsXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkNOUEpcIjpcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLCBHZW5lcmljVmFsaWRhdG9yLmlzVmFsaWRDbnBqLFxuICAgICAgICAgICAgICAgICAgICBdKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJSQU5ET01fS0VZXCI6XG4gICAgICAgICAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5zZXRWYWxpZGF0b3JzKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5lbmFibGUoKTtcbiAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFc3RlIG3DqXRvZG8gY2FsY3VsYSBhcyBwYXJjZW50YWdlbnMgcXVlIGrDoSBmb3JhbSBpbnNlcmlkYXMsIGUgc2V0YSBhIGRpZmVyZW7Dp2EgcGFyYSBjaGVnYXIgZW1cbiAgICAgKiAxMDAlIG5hIHZhbGlkYcOnw6NvIGRvIGNhbXBvIFwicGVyY2VudGFnZVwiIGNvbW8gdW0gbm92byBtYXhWYWx1ZTtcbiAgICAgKiBAcGFyYW0gbGlzdFZhbHVlXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZVBlcmNlbnRhZ2VWYWxpZChsaXN0VmFsdWU6IG51bWJlcltdKSB7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGVyY2VudGFnZVwiKTtcbiAgICAgICAgdGhpcy5tYXhWYWx1ZVBlcmNlbnRhZ2UgPSBsaXN0VmFsdWVcbiAgICAgICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRWYWx1ZSwgdG90YWwpID0+IGN1cnJlbnRWYWx1ZSAtIHRvdGFsLFxuICAgICAgICAgICAgICAgIDEwMC4wMCxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgcGVyY2VudGFnZVxuICAgICAgICAgICAgLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmluaXRpYWxWYWxpZGF0b3JPZlBlcmNlbnRhZ2UsXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5tYXgodGhpcy5tYXhWYWx1ZVBlcmNlbnRhZ2UpLFxuICAgICAgICAgICAgXSkpO1xuICAgICAgICBwZXJjZW50YWdlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaXNWaWV3TW9kZShjb25kaXRpb246IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc1ZpZXcgPSAhIShjb25kaXRpb24gJiYgIXRoaXMud2l0aFNpZGVCYXIpO1xuICAgICAgICB0aGlzLmNvbmZpZ0VuYWJsZUZpZWxkcyghdGhpcy5pc1ZpZXcpO1xuICAgICAgICBpZiAoIXRoaXMuaXNWaWV3KSB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwaG9uZU1hc2soZXZlbnQ6IGFueSkge1xuICAgICAgICBGb3JtYXRVdGlsc1NlcnZpY2UuZm9ybWF0VGVsZXBob25lSW5wdXRFdmVudChldmVudCk7XG4gICAgfVxuXG4gICAgc2V0RGVmYXVsdENwZlBpeEtleSgpIHtcbiAgICAgICAgY29uc3Qgc2hlZXREb2N1bWVudCA9IHRoaXMucGFyYW1zRm9ybS5nZXQoXCJzaGVldERvY3VtZW50XCIpO1xuICAgICAgICBpZihzaGVldERvY3VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjcGYgPSBzaGVldERvY3VtZW50LmdldChcImNwZk51bWJlclwiKS52YWx1ZTtcbiAgICAgICAgICAgIGlmKGNwZikge1xuICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikuc2V0VmFsdWUoY3BmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBiZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCkge1xuICAgICAgICBjb25zdCBwaXhLZXlUeXBlID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIik7XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGggJiYgcGl4S2V5VHlwZSkge1xuICAgICAgICAgICAgcGl4S2V5VHlwZVxuICAgICAgICAgICAgICAgIC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEdXBsaWNhdGVQaXhLZXlUeXBlQmFua0FjY291bnQodGhpcy5waXhBY2NvdW50TGlzdCksXG4gICAgICAgICAgICAgICAgXSkpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaXhLZXlUeXBlLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRHVwbGljYXRlUGl4S2V5VHlwZUJhbmtBY2NvdW50KGxpc3RDb21wYXJlOiBvYmplY3RbXSkge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sICYmIGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBsZXQgY29uZGl0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICBsaXN0Q29tcGFyZS5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZih2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwaXhLZXlUeXBlXCJdLmtleSA9PT0gJ0JBTktfQUNDT1VOVCcgJiYgdmFsdWUua2V5ID09PSBmaWVsZFtcInBpeEtleVR5cGVcIl0ua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcGl4S2V5VHlwZUJhbmtBY2NvdW50RHVwbGljYXRlOiB0cnVlIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50L2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDcEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQU9uRjtJQXVDSSwyQ0FDWSxXQUF3QixFQUN4QixFQUFxQjtRQURyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQTlCMUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUU1QixlQUFVLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFD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MkVBQ29CO0lBRTVCO1FBREMsS0FBSyxFQUFFOzRFQUNxQjtJQUU3QjtRQURDLEtBQUssRUFBRTswRUFDMkI7SUFFbkM7UUFEQyxLQUFLLEVBQUU7eUVBQzJCO0lBRW5DO1FBREMsS0FBSyxFQUFFO3lFQUN5QztJQUVqRDtRQURDLEtBQUssRUFBRTsrRUFDK0I7SUFHdkM7UUFEQyxNQUFNLEVBQUU7NEVBQ2lFO0lBRTFFO1FBREMsTUFBTSxFQUFFO21GQUNnRTtJQTRFekU7UUFEQyxLQUFLLEVBQUU7b0VBR1A7SUFRRDtRQURDLEtBQUssRUFBRTsrRUFxQlA7SUFpRkQ7UUFEQyxLQUFLLEVBQUU7OEVBT1A7SUE2RkQ7UUFEQyxLQUFLLEVBQUU7dUVBS1A7SUF4VFEsaUNBQWlDO1FBTDdDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLG81TkFBMkQ7O1NBRTlELENBQUM7T0FDVyxpQ0FBaUMsQ0ErVzdDO0lBQUQsd0NBQUM7Q0FBQSxBQS9XRCxJQStXQztTQS9XWSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOdW1iZXJMb2NhbGVPcHRpb25zLCBDdXN0b21GaWVsZHNDb21wb25lbnQgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge1xuICAgIHZlcmlmeVZhbGlkYXRpb25zRm9ybSxcbiAgICBjb25maWdFbmFibGVkRmllbGRzLFxuICAgIG1vdW50Q3VzdG9tVG9TaG93LFxufSBmcm9tIFwiLi4vLi4vdXRpbHMvaGVscGVyc1wiO1xuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlscy9nZW5lcmljLXZhbGlkYXRvcnNcIjtcbmltcG9ydCB7IEZvcm1hdFV0aWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi91dGlscy9mb3JtYXQtdXRpbHMvZm9ybWF0LXV0aWxzLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicGl4LWFjY291bnRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBIaXN0b3JpY2FsUGl4QWNjb3VudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQFZpZXdDaGlsZChDdXN0b21GaWVsZHNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZHNDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXJyZW5jeTogTnVtYmVyTG9jYWxlT3B0aW9ucztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21FbnRpdHk6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjdXN0b21TZXJ2aWNlOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgd2l0aFNpZGVCYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzRWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJhbXNGb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkZWZhdWx0Q3BmTnVtYmVyOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGl4QWNjb3VudEl0ZW1Ub0xpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBlbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwaXhBY2NvdW50TGlzdDogb2JqZWN0W107XG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsaWRhdG9yT2ZQZXJjZW50YWdlOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDAuMDEpXTtcblxuXG4gICAgcHVibGljIGxhYmVsQnRuQWRkOiBzdHJpbmcgPSBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRcIjtcbiAgICBwdWJsaWMgcGl4QWNjb3VudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBtYXhWYWx1ZVBlcmNlbnRhZ2U6IG51bWJlciA9IDEwMC4wMDtcbiAgICBwdWJsaWMgdmlzaWJsZUJ0blNhdmU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBpc1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcGl4S2V5VHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpc1Nob3dQaXhLZXlGaWVsZFZhbGlkYXRvck1lc3NhZ2UgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0cygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlclN1YmplY3RzKCk6IHZvaWQge1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBpbmRleDogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgZW1wbG95ZWU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiB7IHRhYmxlSWQ6IG51bGwgfSwgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgICAgICAgICBkYXRlQ2hhbmdlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBwaXhLZXlUeXBlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBwaXhLZXk6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5pdGlhbFZhbGlkYXRvck9mUGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlUGVyY2VudGFnZSksXG4gICAgICAgICAgICBdKSksXG4gICAgICAgICAgICBleHRlcm5hbElkOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlUGl4S2V5VHlwZShpdGVtOiBhbnkpIHtcbiAgICAgICAgaWYgKGl0ZW0ua2V5KSB7XG4gICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSBpdGVtLmtleTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93UGl4S2V5RmllbGRWYWxpZGF0b3JNZXNzYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGl4S2V5VmFsaWRhdG9ycyh0cnVlKTtcblxuICAgICAgICAgICAgaWYoaXRlbS5rZXkgPT09IFwiQ1BGXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRDcGZQaXhLZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsZWFyUGl4S2V5VHlwZSgpIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQaXhLZXlGaWVsZFZhbGlkYXRvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5yZXNldCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0VkaXRBbmRWaWV3VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGVCdG5TYXZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmN1cnJlbnRJdGVtICYmIE9iamVjdC5rZXlzKHZhbHVlLmN1cnJlbnRJdGVtKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuY29udmVydERUT1RvU2hvd1dpdGhDdXN0b21GaWVsZHMoey4uLnZhbHVlLmN1cnJlbnRJdGVtfSkpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbEJ0bkFkZCA9IFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX3VwZGF0ZVwiO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdCh2YWx1ZS5saXN0RGF0YSwgdmFsdWUuY3VycmVudEl0ZW1bXCJpbmRleFwiXSwgdmFsdWUgJiYgdmFsdWVbXCJpc0VkaXRNb2RlXCJdKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0VuYWJsZUZpZWxkcyh2YWx1ZSAmJiB2YWx1ZVtcImlzRWRpdE1vZGVcIl0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZS5rZXk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRQaXhLZXlUZWxlcGhvbmVOdW1iZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsQnRuQWRkID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0UGl4S2V5VGVsZXBob25lTnVtYmVyKCkge1xuICAgICAgICBpZiAodGhpcy5waXhLZXlUeXBlID09PSBcIlRFTEVQSE9ORVwiKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5XCIpLnNldFZhbHVlKEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRUZWxlcGhvbmVOdW1iZXIodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnREVE9Ub1Nob3dXaXRoQ3VzdG9tRmllbGRzKGRhdGE6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IG9iajogYW55ID0gey4uLiBkYXRhfTtcbiAgICAgICAgb2JqW1wiY3VzdG9tRmllbGRzXCJdID0gbW91bnRDdXN0b21Ub1Nob3cob2JqW1wiY3VzdG9tRmllbGRzXCJdKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ0VuYWJsZUZpZWxkcyhpc0VkaXRNb2RlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUJ0blNhdmUgPSBpc0VkaXRNb2RlO1xuXG4gICAgICAgIGlmKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlUeXBlXCIpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZS5rZXk7XG4gICAgICAgICAgICB0aGlzLnNldFBpeEtleVZhbGlkYXRvcnMoaXNFZGl0TW9kZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGl4S2V5VGVsZXBob25lTnVtYmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdFbmFibGVkRmllbGRzKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cCwgaXNFZGl0TW9kZSwgW1xuICAgICAgICAgICAgXCJwaXhLZXlUeXBlXCIsXG4gICAgICAgICAgICBcInBpeEtleVwiLFxuICAgICAgICAgICAgXCJwZXJjZW50YWdlXCIsXG4gICAgICAgICAgICBcImN1c3RvbUZpZWxkc1wiLFxuICAgICAgICBdLCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdmVyaWZ5VmFsaWRhdGlvbnNGb3JtLmNhbGwodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwKTtcblxuICAgICAgICBpZiAodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5lbXBsb3llZUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcImVtcGxveWVlXCIpLnNldFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVJZDogdGhpcy5lbXBsb3llZUlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50SXRlbVRvTGlzdC5lbWl0KHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLmxhYmVsQnRuQWRkID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcyAmJiB0aGlzLmN1c3RvbUZpZWxkcy5mb3JtR3JvdXApIHRoaXMuY3VzdG9tRmllbGRzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVyY2VudGFnZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgMCR7IHRoaXMuY3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jeS5kZWNpbWFsU2VwYXJhdG9yIH0wMGA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvcHRpb25zUGVyY2VudGFnZSgpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4geyAuLi50aGlzLmdldE9wdGlvbnMoKSwgcHJlY2lzaW9uOiAyIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25zKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgICAgICB0aG91c2FuZHM6IHRoaXMuY3VycmVuY3kudGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgZGVjaW1hbDogdGhpcy5jdXJyZW5jeS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE8gSW5wdXQgcXVlIHJlY2ViZSBhIGxpc3RhIGRvIGNvbXBvbmVudCBwYWkgZSBjaGFtYSBvIG3DqXRvZG8gZGUgdmFsaWRhw6fDo28gcGFzc2FuZG8gYSBsaXN0YSByZWNlYmlkYS5cbiAgICAgKiBAcGFyYW0gcGl4QWNjb3VudExpc3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZ2V0TGlzdFBpeEFjY291bnQocGl4QWNjb3VudExpc3Q6IG9iamVjdFtdKSB7XG4gICAgICAgIGlmIChwaXhBY2NvdW50TGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdChwaXhBY2NvdW50TGlzdCwgbnVsbCwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY2ViZSBhIGxpc3RhIGRlIHJlZ2lzdHJvcyBqw6EgaW5zZXJpZG9zIG5hIHRhYmVsYSBhZGljaW9uYSBlbSB1bWEgdmFyacOhdmVsIG9zIHZhbG9yZXMgcXVlIHNlcsOjbyB1c2Fkb3MgcGFyYVxuICAgICAqIGEgdmFsaWRhw6fDo28gZG9zIGNhbXBvcyBcInBlcmNlbnRhZ2VcIiBlIFwicGl4QWNjb3VudFwiLlxuICAgICAqIFF1YW5kbyB0ZW0gaW5kZXggc2lnbmlmaWNhIHF1ZSBlc3TDoSBlbSB1bWEgZWRpw6fDo28sIG9zIHZhbG9yZXMgbmEgcG9zacOnw6NvIGRvIHJlZ2lzdHJvIGRhIGVkacOnw6NvIChpbmRleCkgbsOjbyBzZXLDo28gYWRpY2lvbmFkb3NcbiAgICAgKiBubyBhcnJheSBkZSBjb21wYXJhw6fDo28gZG9zIHZhbGlkYXRvcnMuXG4gICAgICogQHBhcmFtIHBpeEFjY291bnRMaXN0XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdChwaXhBY2NvdW50TGlzdDogb2JqZWN0W10sIGluZGV4OiBudW1iZXIgPSBudWxsLCBpc0VkaXRNb2RlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRMaXN0ID0gcGl4QWNjb3VudExpc3QgJiYgcGl4QWNjb3VudExpc3QubGVuZ3RoID8gWy4uLnBpeEFjY291bnRMaXN0XSA6IFtdO1xuXG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2VJbmNsdWRlZDogYW55ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudExpc3QuZmlsdGVyKChmaWVsZDogYW55LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwZXJjZW50YWdlXCJdICYmIGtleSAhPSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlSW5jbHVkZWQucHVzaChmaWVsZFtcInBlcmNlbnRhZ2VcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCk7XG4gICAgICAgIHRoaXMuc2V0UGl4S2V5VmFsaWRhdG9ycyhpc0VkaXRNb2RlKTtcbiAgICAgICAgdGhpcy52YWxpZGF0ZVBlcmNlbnRhZ2VWYWxpZChwZXJjZW50YWdlSW5jbHVkZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFudGVzIGRlIHNldGFyIG8gdmFsaWRhdG9yIHByZXBhcmEgYXMgdmFyacOhdmVpcyBuZWNlc3PDoXJpYSBwYXJhIHF1ZSBzZWphIGZlaXRhIGEgdmFsaWRhw6fDo28gZG8gY2FtcG8uXG4gICAgICovXG4gICAgcHVibGljIHNldFBpeEtleVZhbGlkYXRvcnMoaXNFZGl0TW9kZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBnZW5lcmljUGl4S2V5ID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKTtcbiAgICAgICAgaWYgKHRoaXMucGl4S2V5VHlwZSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBpeEtleVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiVEVMRVBIT05FXCI6XG4gICAgICAgICAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgR2VuZXJpY1ZhbGlkYXRvci5pc1ZhbGlkUGhvbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkVNQUlMXCI6XG4gICAgICAgICAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgR2VuZXJpY1ZhbGlkYXRvci5pc1ZhbGlkRW1haWwsXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkNQRlwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENwZixcbiAgICAgICAgICAgICAgICAgICAgXSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ05QSlwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENucGosXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlJBTkRPTV9LRVlcIjpcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZihpc0VkaXRNb2RlKSB7XG4gICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVzdGUgbcOpdG9kbyBjYWxjdWxhIGFzIHBhcmNlbnRhZ2VucyBxdWUgasOhIGZvcmFtIGluc2VyaWRhcywgZSBzZXRhIGEgZGlmZXJlbsOnYSBwYXJhIGNoZWdhciBlbVxuICAgICAqIDEwMCUgbmEgdmFsaWRhw6fDo28gZG8gY2FtcG8gXCJwZXJjZW50YWdlXCIgY29tbyB1bSBub3ZvIG1heFZhbHVlO1xuICAgICAqIEBwYXJhbSBsaXN0VmFsdWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHZhbGlkYXRlUGVyY2VudGFnZVZhbGlkKGxpc3RWYWx1ZTogbnVtYmVyW10pIHtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9IHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwZXJjZW50YWdlXCIpO1xuICAgICAgICB0aGlzLm1heFZhbHVlUGVyY2VudGFnZSA9IGxpc3RWYWx1ZVxuICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudFZhbHVlLCB0b3RhbCkgPT4gY3VycmVudFZhbHVlIC0gdG90YWwsXG4gICAgICAgICAgICAgICAgMTAwLjAwLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICBwZXJjZW50YWdlXG4gICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5pdGlhbFZhbGlkYXRvck9mUGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlUGVyY2VudGFnZSksXG4gICAgICAgICAgICBdKSk7XG4gICAgICAgIHBlcmNlbnRhZ2UudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc1ZpZXdNb2RlKGNvbmRpdGlvbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlldyA9ICEhKGNvbmRpdGlvbiAmJiAhdGhpcy53aXRoU2lkZUJhcik7XG4gICAgICAgIHRoaXMuY29uZmlnRW5hYmxlRmllbGRzKCF0aGlzLmlzVmlldyk7XG4gICAgICAgIGlmICghdGhpcy5pc1ZpZXcpIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBob25lTWFzayhldmVudDogYW55KSB7XG4gICAgICAgIEZvcm1hdFV0aWxzU2VydmljZS5mb3JtYXRUZWxlcGhvbmVJbnB1dEV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0Q3BmUGl4S2V5KCkge1xuICAgICAgICBpZih0aGlzLmRlZmF1bHRDcGZOdW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikuc2V0VmFsdWUodGhpcy5kZWZhdWx0Q3BmTnVtYmVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0RG9jdW1lbnQgPSB0aGlzLnBhcmFtc0Zvcm0uZ2V0KFwic2hlZXREb2N1bWVudFwiKTtcbiAgICAgICAgICAgIGlmKHNoZWV0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcGYgPSBzaGVldERvY3VtZW50LmdldChcImNwZk51bWJlclwiKS52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZihjcGYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5zZXRWYWx1ZShjcGYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBiZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCkge1xuICAgICAgICBjb25zdCBwaXhLZXlUeXBlID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIik7XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGggJiYgcGl4S2V5VHlwZSkge1xuICAgICAgICAgICAgcGl4S2V5VHlwZVxuICAgICAgICAgICAgICAgIC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEdXBsaWNhdGVQaXhLZXlUeXBlQmFua0FjY291bnQodGhpcy5waXhBY2NvdW50TGlzdCksXG4gICAgICAgICAgICAgICAgXSkpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaXhLZXlUeXBlLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRHVwbGljYXRlUGl4S2V5VHlwZUJhbmtBY2NvdW50KGxpc3RDb21wYXJlOiBvYmplY3RbXSkge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sICYmIGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBsZXQgY29uZGl0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICBsaXN0Q29tcGFyZS5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZih2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwaXhLZXlUeXBlXCJdLmtleSA9PT0gJ0JBTktfQUNDT1VOVCcgJiYgdmFsdWUua2V5ID09PSBmaWVsZFtcInBpeEtleVR5cGVcIl0ua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcGl4S2V5VHlwZUJhbmtBY2NvdW50RHVwbGljYXRlOiB0cnVlIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==