@csmart/ngc-smart-victim 1.18.19 → 1.18.21
Sign up to get free protection for your applications and to get access to all the features.
@@ -36,6 +36,7 @@ export class NgcSmartVictimComponent {
|
|
36
36
|
this.intakeService = intakeService;
|
37
37
|
this.smartWarrantUrl = smartWarrantUrl;
|
38
38
|
this.document = document;
|
39
|
+
this.intakeFlag = "false";
|
39
40
|
this.appModuleId = '';
|
40
41
|
this.activatedRoute = null;
|
41
42
|
this.victims = [];
|
@@ -46,6 +47,7 @@ export class NgcSmartVictimComponent {
|
|
46
47
|
this.doSpin = false;
|
47
48
|
this.showListFlag = false;
|
48
49
|
this.msg = "";
|
50
|
+
this.selectedOffender = {};
|
49
51
|
this.isIntake = false;
|
50
52
|
}
|
51
53
|
// private onChange(filter: VictimListFilter) {
|
@@ -81,27 +83,27 @@ export class NgcSmartVictimComponent {
|
|
81
83
|
this.victimDetail = {};
|
82
84
|
}
|
83
85
|
ngAfterViewInit() {
|
84
|
-
this.victimListDataSource.paginator = this.paginator;
|
85
|
-
this.victimListDataSource.sort = this.sort;
|
86
|
+
// this.victimListDataSource.paginator = this.paginator;
|
87
|
+
// this.victimListDataSource.sort = this.sort;
|
86
88
|
}
|
87
89
|
ngOnChanges() {
|
88
90
|
this.updateAccessControlConfig = {
|
89
91
|
accessType: AccessType.UPDATE,
|
90
92
|
appModuleId: this.appModuleId,
|
91
93
|
roleId: null,
|
92
|
-
route: this.activatedRoute
|
94
|
+
route: this.activatedRoute?.snapshot,
|
93
95
|
};
|
94
96
|
this.createAccessControlConfig = {
|
95
97
|
accessType: AccessType.CREATE,
|
96
98
|
appModuleId: this.appModuleId,
|
97
99
|
roleId: null,
|
98
|
-
route: this.activatedRoute
|
100
|
+
route: this.activatedRoute?.snapshot,
|
99
101
|
};
|
100
102
|
this.deleteAccessControlConfig = {
|
101
103
|
accessType: AccessType.DELETE,
|
102
104
|
appModuleId: this.appModuleId,
|
103
105
|
roleId: null,
|
104
|
-
route: this.activatedRoute
|
106
|
+
route: this.activatedRoute?.snapshot,
|
105
107
|
};
|
106
108
|
}
|
107
109
|
ngOnInit() {
|
@@ -117,14 +119,12 @@ export class NgcSmartVictimComponent {
|
|
117
119
|
console.log("staff id at smart-victim");
|
118
120
|
console.log(this.staffId);
|
119
121
|
console.log("insakeFlag at smart-victim");
|
120
|
-
console.log(this.intakeFlag);
|
121
122
|
console.log("smart-victim ngOnInit");
|
122
|
-
console.log(this.intakeFlag);
|
123
123
|
console.log(myPath);
|
124
124
|
// if (this.intakeFlag == "true") {
|
125
125
|
// this.isIntake = true;
|
126
126
|
// }
|
127
|
-
this.isIntake = this.selectedOffender
|
127
|
+
this.isIntake = this.selectedOffender?.intakeFlag;
|
128
128
|
this.displayedColumns = ["lastName", "firstName"];
|
129
129
|
if (this.showRelationshipColumn == true ||
|
130
130
|
myPath == "victimList" ||
|
@@ -180,7 +180,9 @@ export class NgcSmartVictimComponent {
|
|
180
180
|
.getVictimListByFilter(victimListFilter)
|
181
181
|
.subscribe((data) => {
|
182
182
|
this.victims = data;
|
183
|
-
this.victimListDataSource
|
183
|
+
this.victimListDataSource = new MatTableDataSource(data);
|
184
|
+
this.victimListDataSource.paginator = this.paginator;
|
185
|
+
this.victimListDataSource.sort = this.sort;
|
184
186
|
console.log("victim data at line 241");
|
185
187
|
console.log(this.victims);
|
186
188
|
console.log("showListFlag");
|
@@ -200,7 +202,9 @@ export class NgcSmartVictimComponent {
|
|
200
202
|
.getVictimListByFilter(this.victimListFilter)
|
201
203
|
.subscribe((data) => {
|
202
204
|
this.victims = data;
|
203
|
-
this.victimListDataSource
|
205
|
+
this.victimListDataSource = new MatTableDataSource(data);
|
206
|
+
this.victimListDataSource.paginator = this.paginator;
|
207
|
+
this.victimListDataSource.sort = this.sort;
|
204
208
|
console.log("victim data at line 262");
|
205
209
|
console.log(data);
|
206
210
|
});
|
@@ -251,26 +255,30 @@ export class NgcSmartVictimComponent {
|
|
251
255
|
console.log("this.victimListFilter inside getVictimList");
|
252
256
|
console.log(this.victimListFilter);
|
253
257
|
this.doSpin = true;
|
254
|
-
this.victimService.getVictimListByFilter(filter).subscribe(
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
258
|
+
this.victimService.getVictimListByFilter(filter).subscribe({
|
259
|
+
next: (data) => {
|
260
|
+
this.doSpin = !this.doSpin;
|
261
|
+
if (data.length > 0) {
|
262
|
+
this.showListFlag = true;
|
263
|
+
this.victimListDataSource = new MatTableDataSource(data);
|
264
|
+
this.victimListDataSource.paginator = this.paginator;
|
265
|
+
this.victimListDataSource.sort = this.sort;
|
266
|
+
}
|
267
|
+
else {
|
268
|
+
this.msg = "No record found!";
|
269
|
+
}
|
270
|
+
},
|
271
|
+
error: (err) => {
|
272
|
+
this.doSpin = !this.doSpin;
|
263
273
|
}
|
264
|
-
}, (err) => {
|
265
|
-
this.doSpin = !this.doSpin;
|
266
274
|
});
|
267
275
|
}
|
268
276
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimComponent, deps: [{ token: i1.MatDialog }, { token: i2.NgcSmartVictimService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.MatSnackBar }, { token: i5.IntakeServicesComponent }, { token: SMART_WARRANT_URL }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
269
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgcSmartVictimComponent, selector: "csmart-victim", inputs: { offenderId: "offenderId", staffId: "staffId", staffRole: "staffRole", showCaseNote: "showCaseNote", showSafetyPlan: "showSafetyPlan", showAdd: "showAdd", showEdit: "showEdit", showRelationshipColumn: "showRelationshipColumn", showOffenderNameColumn: "showOffenderNameColumn", showOffenderPhoneColumn: "showOffenderPhoneColumn", showSearchForm: "showSearchForm", accessByModule: "accessByModule", intakeFlag: "intakeFlag", appModuleId: "appModuleId", activatedRoute: "activatedRoute" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\"\r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\"\r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n <mat-card id=\"divVictim\" class=\"smart-card-table\">\r\n <div class=\"smart-action-content\">\r\n <button mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\"\r\n *ngIf=\"showAdd\"\r\n class=\"smart-add-button\"\r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"smart-add-button\"\r\n *ngIf=\"isIntake\"\r\n color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button>\r\n </div>\r\n <div *ngIf=\"victimListDataSource.data.length > 0\">\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n\r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.victimOffenderRelationships[0]}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n Home phone: {{formatPhoneNumber(row.homePhone)}}<br>\r\n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\r\n Work Phone: {{formatPhoneNumber(row.workPhone)}}\r\n\r\n </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n\r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n\r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n\r\n\r\n \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToCaseNote(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Case Note\r\n </button>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToSaftyPlan(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Safety Plan\r\n </button>\r\n </div>\r\n \r\n\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator>\r\n </div>\r\n </mat-card>\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>\r\n", styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73AD21}.rTable{display:block;width:100%}.rTableHeading,.rTableBody,.rTableFoot,.rTableRow{clear:both}.rTableHead,.rTableFoot{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0px;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:grid;grid-template-columns:1fr 1fr 1fr;grid-column-gap:10px}.edit-btn{margin-right:4px}.main-container{display:flex;margin-top:8px;flex-direction:column}.add-action{display:flex;justify-content:flex-end;margin-bottom:8px}.example-headers-align .mat-expansion-panel-header-title,.example-headers-align .mat-expansion-panel-header-description{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:space-between;align-items:center}mat-form-field{margin-right:12px}.actions{display:flex;justify-content:space-around}.Row{display:table;width:100%;table-layout:fixed}.Column{display:table-cell}.sp-form textarea{float:left;margin-top:20px;margin-bottom:10px;width:462px;height:70px;overflow:auto;box-sizing:border-box}.mat-column-lastName,.mat-column-firstName,.mat-column-relationship,.mat-column-homePhone,.mat-column-offenderName{word-wrap:break-word!important;white-space:unset!important;flex:0 0 15%!important;width:15%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mat-column-victimId{word-wrap:break-word!important;white-space:unset!important;flex:0 0 25%!important;width:25%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.smart-card{background-color:var(--mdc-elevated-card-container-color);border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 8px #0000001a;padding:16px 0 16px 2px;width:100%}.smart-card-header{display:flex;flex-direction:column;align-items:start}.smart-label{font-size:16px!important}.smart-card-table{margin:16px 0}.smart-flex-container{display:flex!important;justify-content:space-between;flex-wrap:wrap}.smart-action-content{display:flex;justify-content:flex-end;margin:12px}.smart-button{margin:0 4px}.smart-add-button{margin:0 4px;font-size:14px!important}.material-icons{vertical-align:baseline!important}.smart-paginator{display:flex!important}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.SmartAccessControlDirective, selector: "[accessControl]", inputs: ["accessControlConfig"] }, { kind: "component", type: i13.SmartVictimDetailComponent, selector: "csmart-victim-detail", inputs: ["victimDetail", "staffId", "offenderId", "isIntake"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: i14.VictimSearchFormComponent, selector: "app-victim-search-form", outputs: ["onSearch"] }] }); }
|
277
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: NgcSmartVictimComponent, selector: "csmart-victim", inputs: { offenderId: "offenderId", staffId: "staffId", staffRole: "staffRole", showCaseNote: "showCaseNote", showSafetyPlan: "showSafetyPlan", showAdd: "showAdd", showEdit: "showEdit", showRelationshipColumn: "showRelationshipColumn", showOffenderNameColumn: "showOffenderNameColumn", showOffenderPhoneColumn: "showOffenderPhoneColumn", showSearchForm: "showSearchForm", accessByModule: "accessByModule", intakeFlag: "intakeFlag", appModuleId: "appModuleId", activatedRoute: "activatedRoute" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\"\r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\"\r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n <mat-card id=\"divVictim\" class=\"smart-card-table\">\r\n <div class=\"smart-action-content\">\r\n <button mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\"\r\n *ngIf=\"showAdd\"\r\n class=\"smart-add-button\"\r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"smart-add-button\"\r\n *ngIf=\"isIntake\"\r\n color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button>\r\n </div>\r\n <div [hidden]=\"victimListDataSource.data.length <= 0\">\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n\r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.victimOffenderRelationships[0]}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n Home phone: {{formatPhoneNumber(row.homePhone)}}<br>\r\n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\r\n Work Phone: {{formatPhoneNumber(row.workPhone)}}\r\n\r\n </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n\r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n\r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n\r\n\r\n \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToCaseNote(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Case Note\r\n </button>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToSaftyPlan(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Safety Plan\r\n </button>\r\n </div>\r\n \r\n\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator>\r\n </div>\r\n </mat-card>\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>\r\n", styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73AD21}.rTable{display:block;width:100%}.rTableHeading,.rTableBody,.rTableFoot,.rTableRow{clear:both}.rTableHead,.rTableFoot{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0px;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:grid;grid-template-columns:1fr 1fr 1fr;grid-column-gap:10px}.edit-btn{margin-right:4px}.main-container{display:flex;margin-top:8px;flex-direction:column}.add-action{display:flex;justify-content:flex-end;margin-bottom:8px}.example-headers-align .mat-expansion-panel-header-title,.example-headers-align .mat-expansion-panel-header-description{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:space-between;align-items:center}mat-form-field{margin-right:12px}.actions{display:flex;justify-content:space-around}.Row{display:table;width:100%;table-layout:fixed}.Column{display:table-cell}.sp-form textarea{float:left;margin-top:20px;margin-bottom:10px;width:462px;height:70px;overflow:auto;box-sizing:border-box}.mat-column-lastName,.mat-column-firstName,.mat-column-relationship,.mat-column-homePhone,.mat-column-offenderName{word-wrap:break-word!important;white-space:unset!important;flex:0 0 15%!important;width:15%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mat-column-victimId{word-wrap:break-word!important;white-space:unset!important;flex:0 0 25%!important;width:25%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.smart-card{background-color:var(--mdc-elevated-card-container-color);border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 8px #0000001a;padding:16px 0 16px 2px;width:100%}.smart-card-header{display:flex;flex-direction:column;align-items:start}.smart-label{font-size:16px!important}.smart-card-table{margin:16px 0}.smart-flex-container{display:flex!important;justify-content:space-between;flex-wrap:wrap}.smart-action-content{display:flex;justify-content:flex-end;margin:12px}.smart-button{margin:0 4px}.smart-add-button{margin:0 4px;font-size:14px!important}.material-icons{vertical-align:baseline!important}.smart-paginator{display:flex!important}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i12.SmartAccessControlDirective, selector: "[accessControl]", inputs: ["accessControlConfig"] }, { kind: "component", type: i13.SmartVictimDetailComponent, selector: "csmart-victim-detail", inputs: ["victimDetail", "staffId", "offenderId", "isIntake"], outputs: ["onSave", "onCancel"] }, { kind: "component", type: i14.VictimSearchFormComponent, selector: "app-victim-search-form", outputs: ["onSearch"] }] }); }
|
270
278
|
}
|
271
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: NgcSmartVictimComponent, decorators: [{
|
272
280
|
type: Component,
|
273
|
-
args: [{ selector: "csmart-victim", template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\"\r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\"\r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n <mat-card id=\"divVictim\" class=\"smart-card-table\">\r\n <div class=\"smart-action-content\">\r\n <button mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\"\r\n *ngIf=\"showAdd\"\r\n class=\"smart-add-button\"\r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"smart-add-button\"\r\n *ngIf=\"isIntake\"\r\n color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button>\r\n </div>\r\n <div
|
281
|
+
args: [{ selector: "csmart-victim", template: "<div *ngIf=\"showSearchForm\">\r\n <app-victim-search-form\r\n (onSearch)=\"getVictimList($event)\">\r\n </app-victim-search-form>\r\n</div>\r\n\r\n<div *ngIf=\"showDetail\">\r\n <csmart-victim-detail [victimDetail]=\"victimDetail\"\r\n [staffId]=\"staffId\"\r\n [offenderId] =\"offenderId\"\r\n [isIntake]=\"isIntake\"\r\n (onSave)=\"save($event)\"\r\n (onCancel)=\"cancel()\" >\r\n</csmart-victim-detail>\r\n</div>\r\n<div class=\"main-container\">\r\n <mat-card id=\"divVictim\" class=\"smart-card-table\">\r\n <div class=\"smart-action-content\">\r\n <button mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\"\r\n *ngIf=\"showAdd\"\r\n class=\"smart-add-button\"\r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"smart-add-button\"\r\n *ngIf=\"isIntake\"\r\n color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"saveIntake()\">\r\n Continue\r\n </button>\r\n </div>\r\n <div [hidden]=\"victimListDataSource.data.length <= 0\">\r\n <mat-table #table [dataSource]=\"victimListDataSource\" >\r\n\r\n <ng-container matColumnDef=\"lastName\">\r\n <mat-header-cell *matHeaderCellDef>Victim Last Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.lastName}} </mat-cell>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"firstName\">\r\n <mat-header-cell *matHeaderCellDef >Victim First Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.firstName}} </mat-cell>\r\n </ng-container>\r\n\r\n <div *ngIf=\"showRelationshipColumn\">\r\n <ng-container matColumnDef=\"relationship\">\r\n <mat-header-cell *matHeaderCellDef >Relationship to Offender</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.victimOffenderRelationships[0]}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderPhoneColumn\">\r\n <ng-container matColumnDef=\"homePhone\">\r\n <mat-header-cell *matHeaderCellDef >Phone Number</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n Home phone: {{formatPhoneNumber(row.homePhone)}}<br>\r\n Cell Phone: {{formatPhoneNumber(row.cellPhone)}}<br>\r\n Work Phone: {{formatPhoneNumber(row.workPhone)}}\r\n\r\n </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"showOffenderNameColumn\">\r\n <ng-container matColumnDef=\"offenderName\">\r\n <mat-header-cell *matHeaderCellDef>Offender Name</mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" > {{row.offenderName}} </mat-cell>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-container matColumnDef=\"victimId\">\r\n <mat-header-cell *matHeaderCellDef ></mat-header-cell>\r\n <mat-cell *matCellDef=\"let row\" >\r\n\r\n <!-- <div *ngIf=\"accessByModule\">\r\n <mat-checkbox></mat-checkbox>\r\n </div> -->\r\n\r\n <div *ngIf=\"showEdit\">\r\n <button class=\"edit-btn\" mat-icon-button color=\"primary\" matTooltip=\"View/Edit Victim\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"editVictimDetail(row)\">\r\n <i class=\"material-icons\">mode_edit</i>\r\n </button>\r\n </div>\r\n\r\n\r\n\r\n \r\n\r\n <div *ngIf=\"showCaseNote\">\r\n <button type=\"button\" matTooltip=\"CaseNote\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToCaseNote(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Case Note\r\n </button>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"showSafetyPlan\">\r\n <button type=\"button\" matTooltip=\"safety plan\" mat-stroked-button color=\"primary\"\r\n accessControl\r\n [accessControlConfig]=\"updateAccessControlConfig\"\r\n (click)=\"goToSaftyPlan(row.victimId)\">\r\n <span class=\"glyphicon glyphicon-pencil\" ></span> Safety Plan\r\n </button>\r\n </div>\r\n \r\n\r\n </mat-cell>\r\n </ng-container>\r\n\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns\" class=\"example-header-row\"></mat-header-row>\r\n <mat-row *matRowDef=\"let row; columns: displayedColumns\" class=\"example-row\"></mat-row>\r\n </mat-table>\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator>\r\n </div>\r\n </mat-card>\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>\r\n", styles: ["div.services{max-width:500px;margin:auto;border:3px solid #73AD21}.rTable{display:block;width:100%}.rTableHeading,.rTableBody,.rTableFoot,.rTableRow{clear:both}.rTableHead,.rTableFoot{background-color:#ddd;font-weight:700}.rTableCell,.rTableHead{border:0px;float:left;padding:1px;width:28%}.rTable:after{visibility:hidden;display:block;font-size:0;content:\" \";clear:both;height:0}.victimSearch{display:grid;grid-template-columns:1fr 1fr 1fr;grid-column-gap:10px}.edit-btn{margin-right:4px}.main-container{display:flex;margin-top:8px;flex-direction:column}.add-action{display:flex;justify-content:flex-end;margin-bottom:8px}.example-headers-align .mat-expansion-panel-header-title,.example-headers-align .mat-expansion-panel-header-description{flex-basis:0}.example-headers-align .mat-expansion-panel-header-description{justify-content:space-between;align-items:center}mat-form-field{margin-right:12px}.actions{display:flex;justify-content:space-around}.Row{display:table;width:100%;table-layout:fixed}.Column{display:table-cell}.sp-form textarea{float:left;margin-top:20px;margin-bottom:10px;width:462px;height:70px;overflow:auto;box-sizing:border-box}.mat-column-lastName,.mat-column-firstName,.mat-column-relationship,.mat-column-homePhone,.mat-column-offenderName{word-wrap:break-word!important;white-space:unset!important;flex:0 0 15%!important;width:15%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mat-column-victimId{word-wrap:break-word!important;white-space:unset!important;flex:0 0 25%!important;width:25%!important;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.smart-card{background-color:var(--mdc-elevated-card-container-color);border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 8px #0000001a;padding:16px 0 16px 2px;width:100%}.smart-card-header{display:flex;flex-direction:column;align-items:start}.smart-label{font-size:16px!important}.smart-card-table{margin:16px 0}.smart-flex-container{display:flex!important;justify-content:space-between;flex-wrap:wrap}.smart-action-content{display:flex;justify-content:flex-end;margin:12px}.smart-button{margin:0 4px}.smart-add-button{margin:0 4px;font-size:14px!important}.material-icons{vertical-align:baseline!important}.smart-paginator{display:flex!important}\n"] }]
|
274
282
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.NgcSmartVictimService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.MatSnackBar }, { type: i5.IntakeServicesComponent }, { type: undefined, decorators: [{
|
275
283
|
type: Inject,
|
276
284
|
args: [SMART_WARRANT_URL]
|
@@ -314,4 +322,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
314
322
|
type: ViewChild,
|
315
323
|
args: [MatSort]
|
316
324
|
}] } });
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFxQ2xDLFlBQ1Us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SztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIExvZ2luU3RhZmYsXHJcbiAgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnLFxyXG4gIEFjY2Vzc1R5cGUsXHJcbn0gZnJvbSBcIkBjc21hcnQvbmdjLXNtYXJ0LWNvcmVcIjtcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRzVmljdGltLCBWaWN0aW1MaXN0RmlsdGVyLCBWaWN0aW0sIFNNQVJUX1dBUlJBTlRfVVJMIH0gZnJvbSAnLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZWxldGUtY29uZmlybS5jb21wb25lbnQnO1xyXG4vL2ltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7XHJcbiAgSW50YWtlU3RlcFN0YXR1c01vZGVsLFxyXG4gIEludGFrZVN0ZXAsXHJcbiAgSW50YWtlU2VydmljZXNDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9pbnRha2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyO1xyXG4gIGlzSW50YWtlID0gZmFsc2U7XHJcblxyXG4gIHVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjcmVhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgZGVsZXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgdmljdGltU2VydmljZTogTmdjU21hcnRWaWN0aW1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIGludGFrZVNlcnZpY2U6IEludGFrZVNlcnZpY2VzQ29tcG9uZW50LFxyXG4gICAgQEluamVjdChTTUFSVF9XQVJSQU5UX1VSTCkgcHJpdmF0ZSBzbWFydFdhcnJhbnRVcmw6IHN0cmluZyxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueVxyXG4gICkge31cclxuXHJcbiAgLy8gcHJpdmF0ZSBvbkNoYW5nZShmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKCdmaWx0ZXIgaW4gb25jaGFuZ2UnKTtcclxuICAvLyAgIGNvbnNvbGUubG9nKGZpbHRlcik7XHJcbiAgLy8gICB0aGlzLmdldFZpY3RpbUxpc3QoZmlsdGVyKTtcclxuICAvLyB9XHJcblxyXG4gIGFwcGx5RmlsdGVyKGZpbHRlclZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyVmFsdWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG4gIGFkZFJlY29yZCgpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dBZGQgPSBmYWxzZTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gbnVsbDtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBlZGl0VmljdGltRGV0YWlsKHJlY29yZCkge1xyXG4gICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZWRpdCByZWNvcmRcIik7XHJcbiAgICBjb25zb2xlLmxvZyhyZWNvcmQpO1xyXG4gICAgY29uc29sZS5sb2cocmVjb3JkLnZpY3RpbUlkKTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gcmVjb3JkO1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNhdmUoZGV0YWlsOiBWaWN0aW0pIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpIHtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSA8VmljdGltPnt9O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgIHRoaXMudXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcclxuICAgICAgIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGUuVVBEQVRFLFxyXG4gICAgICAgYXBwTW9kdWxlSWQ6IHRoaXMuYXBwTW9kdWxlSWQsXHJcbiAgICAgICByb2xlSWQ6IG51bGwsXHJcbiAgICAgICByb3V0ZTogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCxcclxuICAgICB9O1xyXG4gICAgIHRoaXMuY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcclxuICAgICAgIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGUuQ1JFQVRFLFxyXG4gICAgICAgYXBwTW9kdWxlSWQ6IHRoaXMuYXBwTW9kdWxlSWQsXHJcbiAgICAgICByb2xlSWQ6IG51bGwsXHJcbiAgICAgICByb3V0ZTogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCxcclxuICAgICB9O1xyXG4gICAgIHRoaXMuZGVsZXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcclxuICAgICAgIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGUuREVMRVRFLFxyXG4gICAgICAgYXBwTW9kdWxlSWQ6IHRoaXMuYXBwTW9kdWxlSWQsXHJcbiAgICAgICByb2xlSWQ6IG51bGwsXHJcbiAgICAgICByb3V0ZTogdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdCxcclxuICAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XHJcbiAgICBpZihxdWVyeVBhcmFtc1sncm91dGVUbyddKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtxdWVyeVBhcmFtc1sncm91dGVUbyddXSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxEYXRhID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9mZmVuZGVyID0gc2VsRGF0YVsnc2VsZWN0ZWRPZmZlbmRlciddO1xyXG4gICAgdmFyIG15UGF0aCA9IHRoaXMucm91dGVyLnVybC5zbGljZSgtMTApO1xyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcIm9mZmVuZGVyIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMub2ZmZW5kZXJJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcInN0YWZmIGlkIGF0IHNtYXJ0LXZpY3RpbVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc3RhZmZJZCk7XHJcbiAgICBjb25zb2xlLmxvZyhcImluc2FrZUZsYWcgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5pbnRha2VGbGFnKTtcclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coXCJzbWFydC12aWN0aW0gbmdPbkluaXRcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xyXG4gICAgY29uc29sZS5sb2cobXlQYXRoKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5pbnRha2VGbGFnID09IFwidHJ1ZVwiKSB7XHJcbiAgICAvLyAgIHRoaXMuaXNJbnRha2UgPSB0cnVlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHRoaXMuaXNJbnRha2UgPSB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIuaW50YWtlRmxhZztcclxuXHJcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBbXCJsYXN0TmFtZVwiLCBcImZpcnN0TmFtZVwiXTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9PSB0cnVlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcInJlbGF0aW9uc2hpcFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNob3dPZmZlbmRlck5hbWVDb2x1bW4gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMucHVzaChcIm9mZmVuZGVyTmFtZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJ2aWN0aW1JZFwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5zaG93U2VhcmNoRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnNob3dTZWFyY2hGb3JtXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zaG93U2VhcmNoRm9ybSk7XHJcbiAgICBjb25zb2xlLmxvZyhcIm15UGF0aFwiKTtcclxuICAgIGNvbnNvbGUubG9nKG15UGF0aCk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dTZWFyY2hGb3JtID09IGZhbHNlIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUxpc3RcIiB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1Ib21lXCJcclxuICAgICkge1xyXG4gICAgICB2YXIgbXlPZmZlbmRlcklkO1xyXG4gICAgICBpZiAodGhpcy5vZmZlbmRlcklkKSB7XHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gdGhpcy5vZmZlbmRlcklkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwiYmFjayBmcm9tIHByZXZpb3VzIHBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zaG93QWRkID0gdHJ1ZTtcclxuICAgICAgIHRoaXMuc2hvd1JlbGF0aW9uc2hpcENvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICAgICAgdGhpcy5zaG93T2ZmZW5kZXJQaG9uZUNvbHVtbiA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJob21lUGhvbmVcIik7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NCeU1vZHVsZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd0VkaXQgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dDYXNlTm90ZSA9IFwidHJ1ZVwiO1xyXG4gICAgICAgIHRoaXMuc2hvd1NhZmV0eVBsYW4gPSBcInRydWVcIjtcclxuXHJcbiAgICAgICAgbXlPZmZlbmRlcklkID0gc2VsRGF0YS5zZWxlY3RlZE9mZmVuZGVyLm9mZmVuZGVySWQ7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSB7XHJcbiAgICAgICAgb2ZmZW5kZXJJZDogbXlPZmZlbmRlcklkLFxyXG4gICAgICAgIGxhc3ROYW1lOiBudWxsLFxyXG4gICAgICAgIGZpcnN0TmFtZTogbnVsbCxcclxuICAgICAgICBwZGlkOiBudWxsLFxyXG4gICAgICAgIGJpcnRoRGF0ZTogbnVsbCxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnNvbGUubG9nKFwidmljdGltTGlzdEZpbHRlciBpbiBzbWFyLXZpY3RpbSBjb21wb25lbmV0XCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh2aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIHRoaXMudmljdGltU2VydmljZVxyXG4gICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodmljdGltTGlzdEZpbHRlcilcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDI0MVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltcyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3dMaXN0RmxhZ1wiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd0xpc3RGbGFnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnID0gXCJObyBSZWNvcmQgRm91bmQhXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZpbmQgZmlsdGVyXCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2hvd0xpc3RGbGFnID09PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltTGlzdEZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldFZpY3RpbUxpc3RCeUZpbHRlcih0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG5cclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMjYyXCIpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbi8vIHBob25lIG51bWJlciBmb3JtYXQgb24gdGhlIHZpY3RpbSBsaXN0XHJcbiAgZm9ybWF0UGhvbmVOdW1iZXIocGhvbmVOdW1iZXJTdHJpbmcpIHtcclxuICAgIGlmICghcGhvbmVOdW1iZXJTdHJpbmcpIHJldHVybiBcIlwiO1xyXG4gICAgdmFyIGNsZWFuZWQgPSAoXCJcIiArIHBob25lTnVtYmVyU3RyaW5nKS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XHJcbiAgICB2YXIgbWF0Y2ggPSBjbGVhbmVkLm1hdGNoKC9eKFxcZHszfSkoXFxkezN9KShcXGR7NH0pJC8pO1xyXG4gICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBcIihcIiArIG1hdGNoWzFdICsgXCIpIFwiICsgbWF0Y2hbMl0gKyBcIi1cIiArIG1hdGNoWzNdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBzYXZlSW50YWtlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzSW50YWtlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGludGFrZVN0ZXAgPSA8SW50YWtlU3RlcFN0YXR1c01vZGVsPntcclxuICAgICAgaW50YWtlU3RlcElkOiBJbnRha2VTdGVwLlZpY3RpbUluZm9ybWF0aW9uLFxyXG4gICAgICBvZmZlbmRlcklkOiB0aGlzLm9mZmVuZGVySWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmludGFrZVNlcnZpY2VcclxuICAgICAgLnVwZGF0ZUludGFrZVN0ZXBzKHRoaXMub2ZmZW5kZXJJZCwgaW50YWtlU3RlcClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJzYXZlIGludGFrZSBzdGVwLlwiKTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oXCJTdGF0dXMgU2F2ZWQuXCIsIFwiXCIsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2FycmFudCAnXSwgeyBxdWVyeVBhcmFtczogeyBpbnRha2U6IDEgfSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmID1cclxuICAgICAgICAgIGAke3RoaXMuc21hcnRXYXJyYW50VXJsfS8/b2ZmZW5kZXJJZD0ke3RoaXMub2ZmZW5kZXJJZH0maW50YWtlRmxhZz0ke3RoaXMuaXNJbnRha2V9JnJvdXRlVG89d2FycmFudGA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0Nhc2VOb3RlKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkLCB0aGlzLm9mZmVuZGVySWRdKTtcclxuICB9XHJcblxyXG4gIGdvVG9TYWZ0eVBsYW4odmljdGltSWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wic2FmdHlQbGFuXCIsIHZpY3RpbUlkXSk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWN0aW1MaXN0KGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikge1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RmlsdGVyID0gZmlsdGVyO1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgaW5zaWRlIGdldFZpY3RpbUxpc3RcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpO1xyXG4gICAgdGhpcy5kb1NwaW4gPSB0cnVlO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFZpY3RpbUxpc3RCeUZpbHRlcihmaWx0ZXIpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGE6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICAgICB0aGlzLmRvU3BpbiA9ICF0aGlzLmRvU3BpbjtcclxuXHJcbiAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWN0aW0gbGlzdCAzMjMnKyBkYXRhKTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93U2VhcmNoRm9ybVwiPlxyXG4gICAgPGFwcC12aWN0aW0tc2VhcmNoLWZvcm1cclxuICAgIChvblNlYXJjaCk9XCJnZXRWaWN0aW1MaXN0KCRldmVudClcIj5cclxuICAgIDwvYXBwLXZpY3RpbS1zZWFyY2gtZm9ybT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwic2hvd0RldGFpbFwiPlxyXG4gIDxjc21hcnQtdmljdGltLWRldGFpbCBbdmljdGltRGV0YWlsXT1cInZpY3RpbURldGFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFmZklkXT1cInN0YWZmSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb2ZmZW5kZXJJZF0gPVwib2ZmZW5kZXJJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ludGFrZV09XCJpc0ludGFrZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblNhdmUpPVwic2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCIgPlxyXG48L2NzbWFydC12aWN0aW0tZGV0YWlsPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWNhcmQgaWQ9XCJkaXZWaWN0aW1cIiBjbGFzcz1cInNtYXJ0LWNhcmQtdGFibGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtYXJ0LWFjdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cImNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QWRkXCJcclxuICAgICAgICAgIGNsYXNzPVwic21hcnQtYWRkLWJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiYWRkUmVjb3JkKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgQWRkIFZpY3RpbVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJzbWFydC1hZGQtYnV0dG9uXCJcclxuICAgICAgICAgICpuZ0lmPVwiaXNJbnRha2VcIlxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNhdmVJbnRha2UoKVwiPlxyXG4gICAgICAgICAgQ29udGludWVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJ2aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09XCJ2aWN0aW1MaXN0RGF0YVNvdXJjZVwiID5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibGFzdE5hbWVcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+VmljdGltIExhc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cubGFzdE5hbWV9fSAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaXJzdE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID5WaWN0aW0gRmlyc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93LmZpcnN0TmFtZX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93UmVsYXRpb25zaGlwQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInJlbGF0aW9uc2hpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93LnZpY3RpbU9mZmVuZGVyUmVsYXRpb25zaGlwc1swXX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dPZmZlbmRlclBob25lQ29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImhvbWVQaG9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlBob25lIE51bWJlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEhvbWUgcGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmhvbWVQaG9uZSl9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQ2VsbCBQaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cuY2VsbFBob25lKX19PGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBXb3JrIFBob25lOiB7e2Zvcm1hdFBob25lTnVtYmVyKHJvdy53b3JrUGhvbmUpfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd09mZmVuZGVyTmFtZUNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvZmZlbmRlck5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5PZmZlbmRlciBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lm9mZmVuZGVyTmFtZX19IDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUlkXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgICpuZ0lmPVwiYWNjZXNzQnlNb2R1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveD48L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXQtYnRuXCIgIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAgbWF0VG9vbHRpcD1cIlZpZXcvRWRpdCBWaWN0aW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFZpY3RpbURldGFpbChyb3cpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCI+bW9kZV9lZGl0PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93Q2FzZU5vdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0VG9vbHRpcD1cIkNhc2VOb3RlXCIgIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0Nhc2VOb3RlKHJvdy52aWN0aW1JZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBlbmNpbFwiID48L3NwYW4+Jm5ic3A7Q2FzZSBOb3RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93U2FmZXR5UGxhblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICBtYXRUb29sdGlwPVwic2FmZXR5IHBsYW5cIiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9TYWZ0eVBsYW4ocm93LnZpY3RpbUlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBlbmNpbFwiID48L3NwYW4+Jm5ic3A7U2FmZXR5IFBsYW5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuXHJcbiAgICAgICAgICAgICAgICA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItcm93XCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgPG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNcIiBjbGFzcz1cImV4YW1wbGUtcm93XCI+PC9tYXQtcm93PlxyXG4gICAgICAgIDwvbWF0LXRhYmxlPlxyXG4gICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW3BhZ2VTaXplXT1cIjEwXCIgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCI+PC9tYXQtcGFnaW5hdG9yPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWNhcmQ+XHJcbiAgICA8ZGl2PlxyXG4gICAgICAgIDxiPnt7bXNnfX08L2I+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
325
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFxQ2xDLFlBQ1Us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Qjs7MEJBQ3hCLE1BQU07MkJBQUMsUUFBUTt5Q0E1Q1QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIExvZ2luU3RhZmYsXHJcbiAgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnLFxyXG4gIEFjY2Vzc1R5cGUsXHJcbn0gZnJvbSBcIkBjc21hcnQvbmdjLXNtYXJ0LWNvcmVcIjtcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRzVmljdGltLCBWaWN0aW1MaXN0RmlsdGVyLCBWaWN0aW0sIFNNQVJUX1dBUlJBTlRfVVJMIH0gZnJvbSAnLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZWxldGUtY29uZmlybS5jb21wb25lbnQnO1xyXG4vL2ltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7XHJcbiAgSW50YWtlU3RlcFN0YXR1c01vZGVsLFxyXG4gIEludGFrZVN0ZXAsXHJcbiAgSW50YWtlU2VydmljZXNDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9pbnRha2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmcgPSBcImZhbHNlXCI7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBzZWxlY3RlZE9mZmVuZGVyOiBTZWxlY3RlZE9mZmVuZGVyID0gPFNlbGVjdGVkT2ZmZW5kZXI+e31cclxuICBpc0ludGFrZSA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBpbnRha2VTZXJ2aWNlOiBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcclxuICApIHt9XHJcblxyXG4gIC8vIHByaXZhdGUgb25DaGFuZ2UoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnZmlsdGVyIGluIG9uY2hhbmdlJyk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xyXG4gIC8vICAgdGhpcy5nZXRWaWN0aW1MaXN0KGZpbHRlcik7XHJcbiAgLy8gfVxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICB9XHJcbiAgYWRkUmVjb3JkKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gdHJ1ZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IGZhbHNlO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSBudWxsO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVkaXRWaWN0aW1EZXRhaWwocmVjb3JkKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBlZGl0IHJlY29yZFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZCk7XHJcbiAgICBjb25zb2xlLmxvZyhyZWNvcmQudmljdGltSWQpO1xyXG4gICAgdGhpcy52aWN0aW1EZXRhaWwgPSByZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShkZXRhaWw6IFZpY3RpbSkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dBZGQgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93TGlzdEZsYWcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCkge1xyXG4gICAgdGhpcy5zaG93RGV0YWlsID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgLy8gdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5zb3J0O1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICAgdGhpcy51cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnID0ge1xyXG4gICAgICAgYWNjZXNzVHlwZTogQWNjZXNzVHlwZS5VUERBVEUsXHJcbiAgICAgICBhcHBNb2R1bGVJZDogdGhpcy5hcHBNb2R1bGVJZCxcclxuICAgICAgIHJvbGVJZDogbnVsbCxcclxuICAgICAgIHJvdXRlOiB0aGlzLmFjdGl2YXRlZFJvdXRlPy5zbmFwc2hvdCxcclxuICAgICB9O1xyXG4gICAgIHRoaXMuY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZyA9IHtcclxuICAgICAgIGFjY2Vzc1R5cGU6IEFjY2Vzc1R5cGUuQ1JFQVRFLFxyXG4gICAgICAgYXBwTW9kdWxlSWQ6IHRoaXMuYXBwTW9kdWxlSWQsXHJcbiAgICAgICByb2xlSWQ6IG51bGwsXHJcbiAgICAgICByb3V0ZTogdGhpcy5hY3RpdmF0ZWRSb3V0ZT8uc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGU/LnNuYXBzaG90LFxyXG4gICAgIH07XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuICAgIGlmKHF1ZXJ5UGFyYW1zWydyb3V0ZVRvJ10pIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3F1ZXJ5UGFyYW1zWydyb3V0ZVRvJ11dKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNlbERhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPSBzZWxEYXRhWydzZWxlY3RlZE9mZmVuZGVyJ107XHJcbiAgICB2YXIgbXlQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNsaWNlKC0xMCk7XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwib2ZmZW5kZXIgaWQgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vZmZlbmRlcklkKTtcclxuICAgIGNvbnNvbGUubG9nKFwic3RhZmYgaWQgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zdGFmZklkKTtcclxuICAgIGNvbnNvbGUubG9nKFwiaW5zYWtlRmxhZyBhdCBzbWFydC12aWN0aW1cIik7XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwic21hcnQtdmljdGltIG5nT25Jbml0XCIpO1xyXG4gICAgY29uc29sZS5sb2cobXlQYXRoKTtcclxuXHJcbiAgICAvLyBpZiAodGhpcy5pbnRha2VGbGFnID09IFwidHJ1ZVwiKSB7XHJcbiAgICAvLyAgIHRoaXMuaXNJbnRha2UgPSB0cnVlO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHRoaXMuaXNJbnRha2UgPSB0aGlzLnNlbGVjdGVkT2ZmZW5kZXI/LmludGFrZUZsYWc7XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1wibGFzdE5hbWVcIiwgXCJmaXJzdE5hbWVcIl07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93T2ZmZW5kZXJOYW1lQ29sdW1uID09IHRydWUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJvZmZlbmRlck5hbWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dPZmZlbmRlclBob25lQ29sdW1uID09IHRydWUgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltTGlzdFwiIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwidmljdGltSWRcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5zaG93U2VhcmNoRm9ybVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd1NlYXJjaEZvcm0pO1xyXG4gICAgY29uc29sZS5sb2coXCJteVBhdGhcIik7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zaG93U2VhcmNoRm9ybSA9PSBmYWxzZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdmFyIG15T2ZmZW5kZXJJZDtcclxuICAgICAgaWYgKHRoaXMub2ZmZW5kZXJJZCkge1xyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IHRoaXMub2ZmZW5kZXJJZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJhY2sgZnJvbSBwcmV2aW91cyBwYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwicmVsYXRpb25zaGlwXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzQnlNb2R1bGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dFZGl0ID0gXCJ0cnVlXCI7XHJcbiAgICAgICAgdGhpcy5zaG93Q2FzZU5vdGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dTYWZldHlQbGFuID0gXCJ0cnVlXCI7XHJcblxyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IHNlbERhdGEuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0ge1xyXG4gICAgICAgIG9mZmVuZGVySWQ6IG15T2ZmZW5kZXJJZCxcclxuICAgICAgICBsYXN0TmFtZTogbnVsbCxcclxuICAgICAgICBmaXJzdE5hbWU6IG51bGwsXHJcbiAgICAgICAgcGRpZDogbnVsbCxcclxuICAgICAgICBiaXJ0aERhdGU6IG51bGwsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcInZpY3RpbUxpc3RGaWx0ZXIgaW4gc21hci12aWN0aW0gY29tcG9uZW5ldFwiKTtcclxuICAgICAgY29uc29sZS5sb2codmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShkYXRhKTtcclxuICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDI0MVwiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudmljdGltcyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3dMaXN0RmxhZ1wiKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd0xpc3RGbGFnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXNnID0gXCJObyBSZWNvcmQgRm91bmQhXCI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImZpbmQgZmlsdGVyXCIpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2hvd0xpc3RGbGFnID09PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmljdGltTGlzdEZpbHRlciAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldFZpY3RpbUxpc3RCeUZpbHRlcih0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShkYXRhKTtcclxuICAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnBhZ2luYXRvciA9IHRoaXMucGFnaW5hdG9yO1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInZpY3RpbSBkYXRhIGF0IGxpbmUgMjYyXCIpO1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbi8vIHBob25lIG51bWJlciBmb3JtYXQgb24gdGhlIHZpY3RpbSBsaXN0XHJcbiAgZm9ybWF0UGhvbmVOdW1iZXIocGhvbmVOdW1iZXJTdHJpbmcpIHtcclxuICAgIGlmICghcGhvbmVOdW1iZXJTdHJpbmcpIHJldHVybiBcIlwiO1xyXG4gICAgdmFyIGNsZWFuZWQgPSAoXCJcIiArIHBob25lTnVtYmVyU3RyaW5nKS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XHJcbiAgICB2YXIgbWF0Y2ggPSBjbGVhbmVkLm1hdGNoKC9eKFxcZHszfSkoXFxkezN9KShcXGR7NH0pJC8pO1xyXG4gICAgaWYgKG1hdGNoKSB7XHJcbiAgICAgIHJldHVybiBcIihcIiArIG1hdGNoWzFdICsgXCIpIFwiICsgbWF0Y2hbMl0gKyBcIi1cIiArIG1hdGNoWzNdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBzYXZlSW50YWtlKCkge1xyXG4gICAgaWYgKCF0aGlzLmlzSW50YWtlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGludGFrZVN0ZXAgPSA8SW50YWtlU3RlcFN0YXR1c01vZGVsPntcclxuICAgICAgaW50YWtlU3RlcElkOiBJbnRha2VTdGVwLlZpY3RpbUluZm9ybWF0aW9uLFxyXG4gICAgICBvZmZlbmRlcklkOiB0aGlzLm9mZmVuZGVySWQsXHJcbiAgICAgIG1vZGlmaWVkQnk6IHRoaXMuc3RhZmZJZCxcclxuICAgIH07XHJcbiAgICB0aGlzLmludGFrZVNlcnZpY2VcclxuICAgICAgLnVwZGF0ZUludGFrZVN0ZXBzKHRoaXMub2ZmZW5kZXJJZCwgaW50YWtlU3RlcClcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJzYXZlIGludGFrZSBzdGVwLlwiKTtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLm9wZW4oXCJTdGF0dXMgU2F2ZWQuXCIsIFwiXCIsIHtcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvd2FycmFudCAnXSwgeyBxdWVyeVBhcmFtczogeyBpbnRha2U6IDEgfSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5sb2NhdGlvbi5ocmVmID1cclxuICAgICAgICAgIGAke3RoaXMuc21hcnRXYXJyYW50VXJsfS8/b2ZmZW5kZXJJZD0ke3RoaXMub2ZmZW5kZXJJZH0maW50YWtlRmxhZz0ke3RoaXMuaXNJbnRha2V9JnJvdXRlVG89d2FycmFudGA7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ29Ub0Nhc2VOb3RlKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImNhc2Vub3RlXCIsIHZpY3RpbUlkLCB0aGlzLm9mZmVuZGVySWRdKTtcclxuICB9XHJcblxyXG4gIGdvVG9TYWZ0eVBsYW4odmljdGltSWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wic2FmdHlQbGFuXCIsIHZpY3RpbUlkXSk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWN0aW1MaXN0KGZpbHRlcjogVmljdGltTGlzdEZpbHRlcikge1xyXG4gICAgdGhpcy52aWN0aW1MaXN0RmlsdGVyID0gZmlsdGVyO1xyXG4gICAgY29uc29sZS5sb2coXCJ0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgaW5zaWRlIGdldFZpY3RpbUxpc3RcIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIpO1xyXG4gICAgdGhpcy5kb1NwaW4gPSB0cnVlO1xyXG4gICAgdGhpcy52aWN0aW1TZXJ2aWNlLmdldFZpY3RpbUxpc3RCeUZpbHRlcihmaWx0ZXIpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGRhdGE6IFZpY3RpbVtdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRvU3BpbiA9ICF0aGlzLmRvU3BpbjtcclxuICAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZShkYXRhKTtcclxuICAgICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgIHRoaXMubXNnID0gXCJObyByZWNvcmQgZm91bmQhXCI7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9LFxyXG4gICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG4gICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJzaG93U2VhcmNoRm9ybVwiPlxyXG4gICAgPGFwcC12aWN0aW0tc2VhcmNoLWZvcm1cclxuICAgIChvblNlYXJjaCk9XCJnZXRWaWN0aW1MaXN0KCRldmVudClcIj5cclxuICAgIDwvYXBwLXZpY3RpbS1zZWFyY2gtZm9ybT5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwic2hvd0RldGFpbFwiPlxyXG4gIDxjc21hcnQtdmljdGltLWRldGFpbCBbdmljdGltRGV0YWlsXT1cInZpY3RpbURldGFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGFmZklkXT1cInN0YWZmSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb2ZmZW5kZXJJZF0gPVwib2ZmZW5kZXJJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0ludGFrZV09XCJpc0ludGFrZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblNhdmUpPVwic2F2ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCIgPlxyXG48L2NzbWFydC12aWN0aW0tZGV0YWlsPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWNhcmQgaWQ9XCJkaXZWaWN0aW1cIiBjbGFzcz1cInNtYXJ0LWNhcmQtdGFibGVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtYXJ0LWFjdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cImNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QWRkXCJcclxuICAgICAgICAgIGNsYXNzPVwic21hcnQtYWRkLWJ1dHRvblwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiYWRkUmVjb3JkKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgQWRkIFZpY3RpbVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxyXG4gICAgICAgICAgY2xhc3M9XCJzbWFydC1hZGQtYnV0dG9uXCJcclxuICAgICAgICAgICpuZ0lmPVwiaXNJbnRha2VcIlxyXG4gICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cInNhdmVJbnRha2UoKVwiPlxyXG4gICAgICAgICAgQ29udGludWVcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgW2hpZGRlbl09XCJ2aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA8PSAwXCI+XHJcbiAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwidmljdGltTGlzdERhdGFTb3VyY2VcIiA+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxhc3ROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlZpY3RpbSBMYXN0IE5hbWU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lmxhc3ROYW1lfX0gIDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZmlyc3ROYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+VmljdGltIEZpcnN0IE5hbWU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5maXJzdE5hbWV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd1JlbGF0aW9uc2hpcENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJyZWxhdGlvbnNoaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID5SZWxhdGlvbnNoaXAgdG8gT2ZmZW5kZXI8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy52aWN0aW1PZmZlbmRlclJlbGF0aW9uc2hpcHNbMF19fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93T2ZmZW5kZXJQaG9uZUNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJob21lUGhvbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmID5QaG9uZSBOdW1iZXI8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBIb21lIHBob25lOiB7e2Zvcm1hdFBob25lTnVtYmVyKHJvdy5ob21lUGhvbmUpfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENlbGwgUGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmNlbGxQaG9uZSl9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgV29yayBQaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cud29ya1Bob25lKX19XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dPZmZlbmRlck5hbWVDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib2ZmZW5kZXJOYW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+T2ZmZW5kZXIgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5vZmZlbmRlck5hbWV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJ2aWN0aW1JZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICAqbmdJZj1cImFjY2Vzc0J5TW9kdWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3g+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0LWJ0blwiICBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIG1hdFRvb2x0aXA9XCJWaWV3L0VkaXQgVmljdGltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRWaWN0aW1EZXRhaWwocm93KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPm1vZGVfZWRpdDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd0Nhc2VOb3RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJDYXNlTm90ZVwiICBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzQ29udHJvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJ1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9DYXNlTm90ZShyb3cudmljdGltSWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wZW5jaWxcIiA+PC9zcGFuPiZuYnNwO0Nhc2UgTm90ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd1NhZmV0eVBsYW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAgbWF0VG9vbHRpcD1cInNhZmV0eSBwbGFuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJ1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb1RvU2FmdHlQbGFuKHJvdy52aWN0aW1JZClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wZW5jaWxcIiA+PC9zcGFuPiZuYnNwO1NhZmV0eSBQbGFuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7XHJcblxyXG4gICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNcIiBjbGFzcz1cImV4YW1wbGUtaGVhZGVyLXJvd1wiPjwvbWF0LWhlYWRlci1yb3c+XHJcbiAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCIgY2xhc3M9XCJleGFtcGxlLXJvd1wiPjwvbWF0LXJvdz5cclxuICAgICAgICA8L21hdC10YWJsZT5cclxuICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtwYWdlU2l6ZV09XCIxMFwiIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPGRpdj5cclxuICAgICAgICA8Yj57e21zZ319PC9iPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { MsalGuard } from '@azure/msal-angular';
|
2
2
|
import { SmartErrorComponent } from '@csmart/ngc-smart-core';
|
3
|
-
import { SmartAuthorizationGuard, } from '@csmart/ngc-smart-core';
|
3
|
+
import { LoginStaffResolverService, SmartAuthorizationGuard, } from '@csmart/ngc-smart-core';
|
4
4
|
import { RouterModule } from '@angular/router';
|
5
5
|
import { NgModule } from '@angular/core';
|
6
6
|
import { CaseNoteComponent } from './caseNote/caseNote.component';
|
@@ -13,9 +13,9 @@ import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@angular/router";
|
14
14
|
const routes = [
|
15
15
|
//{path: 'casenote/:victimId', component: CaseNoteComponent,pathMatch: 'full',canActivate: [MsalGuard],resolve: { loginStaff: LoginStaffResolverService } },
|
16
|
-
{ path: 'casenote/:victimId/:offenderId', component: CaseNoteComponent, pathMatch: 'full', canActivate: [MsalGuard, SmartAuthorizationGuard], },
|
17
|
-
{ path: 'saftyPlan/:victimId', component: VictimSafetyPlanComponent, pathMatch: 'full', },
|
18
|
-
{ path: 'saftyPlanDetail/:victimServiceId/:victimId', component: VictimSafetyPlanDetailComponent, pathMatch: 'full', },
|
16
|
+
{ path: 'casenote/:victimId/:offenderId', component: CaseNoteComponent, pathMatch: 'full', canActivate: [MsalGuard, SmartAuthorizationGuard], resolve: { loginStaff: LoginStaffResolverService } },
|
17
|
+
{ path: 'saftyPlan/:victimId', component: VictimSafetyPlanComponent, pathMatch: 'full', resolve: { loginStaff: LoginStaffResolverService } },
|
18
|
+
{ path: 'saftyPlanDetail/:victimServiceId/:victimId', component: VictimSafetyPlanDetailComponent, pathMatch: 'full', resolve: { loginStaff: LoginStaffResolverService } },
|
19
19
|
{ path: 'victimList', component: NgcSmartVictimComponent, },
|
20
20
|
{ path: 'victimHome', component: NgcSmartVictimComponent, },
|
21
21
|
{ path: 'victimContact/:victimId', component: ContactComponent, },
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
38
38
|
]
|
39
39
|
}]
|
40
40
|
}] });
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmljdGltLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3ZpY3RpbS1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHlCQUF5QixFQUFrQyx1QkFBdUIsR0FDM0QsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQVUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQTs7O0FBRWpFLE1BQU0sTUFBTSxHQUFXO0lBRW5CLDRKQUE0SjtJQUM1SixFQUFDLElBQUksRUFBRSxnQ0FBZ0MsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLENBQUMsRUFBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUseUJBQXlCLEVBQUUsRUFBRTtJQUMvTCxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUseUJBQXlCLEVBQUUsRUFBRTtJQUMxSSxFQUFDLElBQUksRUFBRSw0Q0FBNEMsRUFBRSxTQUFTLEVBQUUsK0JBQStCLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUseUJBQXlCLEVBQUUsRUFBRTtJQUN2SyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixHQUFHO0lBQzFELEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEdBQUk7SUFDM0QsRUFBQyxJQUFJLEVBQUUseUJBQXlCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixHQUFHO0lBQ2hFLEVBQUMsSUFBSSxFQUFFLHdCQUF3QixFQUFFLFNBQVMsRUFBRSwwQkFBMEIsR0FBSTtJQUMxRSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO0NBQ3pELENBQUM7QUFVRixNQUFNLE9BQU8sbUJBQW1CO2lJQUFuQixtQkFBbUI7a0lBQW5CLG1CQUFtQix3Q0FIeEIsWUFBWTtrSUFHUCxtQkFBbUIsWUFOeEIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFHN0IsWUFBWTs7MkZBR1AsbUJBQW1CO2tCQVIvQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztxQkFDaEM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7cUJBQ2Y7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNc2FsR3VhcmQgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgU21hcnRFcnJvckNvbXBvbmVudCB9IGZyb20gJ0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUnO1xyXG5pbXBvcnQgeyBMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlLCBTZWxlY3RlZE9mZmVuZGVyUmVzb2x2ZXJTZXJ2aWNlLFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkLFxyXG4gICAgU21hcnRPZmZlbmRlclJlZGlyZWN0R3VhcmQsfSBmcm9tICdAY3NtYXJ0L25nYy1zbWFydC1jb3JlJztcclxuaW1wb3J0IHsgUm91dGVzLCBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYXNlTm90ZUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZU5vdGUvY2FzZU5vdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29udGFjdENvbXBvbmVudCB9IGZyb20gJy4vY29udGFjdC9jb250YWN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpY3RpbVNhZmV0eVBsYW5Db21wb25lbnQgfSBmcm9tICcuL3NhZmV0eVBsYW4vdmljdGltU2FmZXR5UGxhbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWN0aW1TYWZldHlQbGFuRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zYWZldHlQbGFuL3ZpY3RpbVNhZmV0eVBsYW5EZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZXRhaWwvc21hcnQtdmljdGltLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudH0gZnJvbSAnLi9zbWFydC12aWN0aW0uY29tcG9uZW50J1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAgXHJcbiAgICAvL3twYXRoOiAnY2FzZW5vdGUvOnZpY3RpbUlkJywgY29tcG9uZW50OiBDYXNlTm90ZUNvbXBvbmVudCxwYXRoTWF0Y2g6ICdmdWxsJyxjYW5BY3RpdmF0ZTogW01zYWxHdWFyZF0scmVzb2x2ZTogeyBsb2dpblN0YWZmOiBMb2dpblN0YWZmUmVzb2x2ZXJTZXJ2aWNlIH0gfSxcclxuICAgIHtwYXRoOiAnY2FzZW5vdGUvOnZpY3RpbUlkLzpvZmZlbmRlcklkJywgY29tcG9uZW50OiBDYXNlTm90ZUNvbXBvbmVudCxwYXRoTWF0Y2g6ICdmdWxsJywgY2FuQWN0aXZhdGU6IFtNc2FsR3VhcmQsIFNtYXJ0QXV0aG9yaXphdGlvbkd1YXJkXSxyZXNvbHZlOiB7IGxvZ2luU3RhZmY6IExvZ2luU3RhZmZSZXNvbHZlclNlcnZpY2UgfSB9LFxyXG4gICAge3BhdGg6ICdzYWZ0eVBsYW4vOnZpY3RpbUlkJywgY29tcG9uZW50OiBWaWN0aW1TYWZldHlQbGFuQ29tcG9uZW50LHBhdGhNYXRjaDogJ2Z1bGwnLCByZXNvbHZlOiB7IGxvZ2luU3RhZmY6IExvZ2luU3RhZmZSZXNvbHZlclNlcnZpY2UgfSB9LFxyXG4gICAge3BhdGg6ICdzYWZ0eVBsYW5EZXRhaWwvOnZpY3RpbVNlcnZpY2VJZC86dmljdGltSWQnLCBjb21wb25lbnQ6IFZpY3RpbVNhZmV0eVBsYW5EZXRhaWxDb21wb25lbnQscGF0aE1hdGNoOiAnZnVsbCcsIHJlc29sdmU6IHsgbG9naW5TdGFmZjogTG9naW5TdGFmZlJlc29sdmVyU2VydmljZSB9IH0sXHJcbiAgICB7cGF0aDogJ3ZpY3RpbUxpc3QnLCBjb21wb25lbnQ6IE5nY1NtYXJ0VmljdGltQ29tcG9uZW50LCB9LFxyXG4gICAge3BhdGg6ICd2aWN0aW1Ib21lJywgY29tcG9uZW50OiBOZ2NTbWFydFZpY3RpbUNvbXBvbmVudCwgIH0sXHJcbiAgICB7cGF0aDogJ3ZpY3RpbUNvbnRhY3QvOnZpY3RpbUlkJywgY29tcG9uZW50OiBDb250YWN0Q29tcG9uZW50LCB9LFxyXG4gICAge3BhdGg6ICd2aWN0aW1EZXRhaWwvOnZpY3RpbUlkJywgY29tcG9uZW50OiBTbWFydFZpY3RpbURldGFpbENvbXBvbmVudCwgIH0sXHJcbiAgICB7cGF0aDogJ3NtYXJ0LWVycm9yJywgY29tcG9uZW50OiBTbWFydEVycm9yQ29tcG9uZW50IH1cclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcylcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgUm91dGVyTW9kdWxlXHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWN0aW1Sb3V0aW5nTW9kdWxlIHtcclxufVxyXG4iXX0=
|