@csmart/ngc-smart-victim 1.14.43 → 1.18.1
Sign up to get free protection for your applications and to get access to all the features.
- package/{esm2020 → esm2022}/csmart-ngc-smart-victim.mjs +4 -4
- package/esm2022/lib/caseNote/caseNote.component.mjs +194 -0
- package/esm2022/lib/common-dialog/common-dialog.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/common-dialog/common-dialog.module.mjs +34 -34
- package/{esm2020 → esm2022}/lib/common-dialog/common-dialog.service.mjs +33 -33
- package/esm2022/lib/contact/contact.component.mjs +140 -0
- package/{esm2020 → esm2022}/lib/email.services.mjs +29 -29
- package/esm2022/lib/intake.service.mjs +57 -0
- package/{esm2020 → esm2022}/lib/safetyPlan/serviceProvider.component.mjs +62 -62
- package/esm2022/lib/safetyPlan/victimSafetyPlan.component.mjs +116 -0
- package/esm2022/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +340 -0
- package/{esm2020 → esm2022}/lib/shared/app.shared.module.mjs +215 -215
- package/esm2022/lib/shared/validators/date.validator.mjs +59 -0
- package/{esm2020 → esm2022}/lib/shared/validators/index.mjs +1 -1
- package/esm2022/lib/smart-victim-delete-confirm.component.mjs +44 -0
- package/esm2022/lib/smart-victim-detail/smart-victim-detail.component.mjs +1104 -0
- package/esm2022/lib/smart-victim.component.mjs +314 -0
- package/{esm2020 → esm2022}/lib/smart-victim.model.mjs +132 -132
- package/{esm2020 → esm2022}/lib/smart-victim.module.mjs +128 -128
- package/esm2022/lib/smart-victim.service.mjs +352 -0
- package/{esm2020 → esm2022}/lib/victim-routing.module.mjs +41 -41
- package/{esm2020 → esm2022}/lib/victimSearch/VictimSearchFilter.mjs +2 -2
- package/esm2022/lib/victimSearch/victimSearchForm.component.mjs +38 -0
- package/{esm2020 → esm2022}/public-api.mjs +10 -10
- package/fesm2022/csmart-ngc-smart-victim.mjs +3261 -0
- package/fesm2022/csmart-ngc-smart-victim.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/caseNote/caseNote.component.d.ts +51 -51
- package/lib/common-dialog/common-dialog.component.d.ts +14 -14
- package/lib/common-dialog/common-dialog.module.d.ts +8 -8
- package/lib/common-dialog/common-dialog.service.d.ts +11 -11
- package/lib/contact/contact.component.d.ts +40 -40
- package/lib/email.services.d.ts +11 -11
- package/lib/intake.service.d.ts +57 -57
- package/lib/safetyPlan/serviceProvider.component.d.ts +19 -19
- package/lib/safetyPlan/victimSafetyPlan.component.d.ts +54 -54
- package/lib/safetyPlan/victimSafetyPlanDetail.component.d.ts +62 -62
- package/lib/shared/app.shared.module.d.ts +33 -33
- package/lib/shared/validators/date.validator.d.ts +9 -9
- package/lib/shared/validators/index.d.ts +1 -1
- package/lib/smart-victim-delete-confirm.component.d.ts +12 -12
- package/lib/smart-victim-detail/smart-victim-detail.component.d.ts +129 -129
- package/lib/smart-victim.component.d.ts +68 -68
- package/lib/smart-victim.model.d.ts +205 -205
- package/lib/smart-victim.module.d.ts +49 -49
- package/lib/smart-victim.service.d.ts +71 -71
- package/lib/victim-routing.module.d.ts +7 -7
- package/lib/victimSearch/VictimSearchFilter.d.ts +7 -7
- package/lib/victimSearch/victimSearchForm.component.d.ts +14 -14
- package/package.json +5 -11
- package/public-api.d.ts +7 -7
- package/esm2020/lib/caseNote/caseNote.component.mjs +0 -194
- package/esm2020/lib/common-dialog/common-dialog.component.mjs +0 -23
- package/esm2020/lib/contact/contact.component.mjs +0 -140
- package/esm2020/lib/intake.service.mjs +0 -57
- package/esm2020/lib/safetyPlan/victimSafetyPlan.component.mjs +0 -116
- package/esm2020/lib/safetyPlan/victimSafetyPlanDetail.component.mjs +0 -340
- package/esm2020/lib/shared/validators/date.validator.mjs +0 -59
- package/esm2020/lib/smart-victim-delete-confirm.component.mjs +0 -44
- package/esm2020/lib/smart-victim-detail/smart-victim-detail.component.mjs +0 -1104
- package/esm2020/lib/smart-victim.component.mjs +0 -314
- package/esm2020/lib/smart-victim.service.mjs +0 -352
- package/esm2020/lib/victimSearch/victimSearchForm.component.mjs +0 -38
- package/fesm2015/csmart-ngc-smart-victim.mjs +0 -3273
- package/fesm2015/csmart-ngc-smart-victim.mjs.map +0 -1
- package/fesm2020/csmart-ngc-smart-victim.mjs +0 -3261
- package/fesm2020/csmart-ngc-smart-victim.mjs.map +0 -1
@@ -1,314 +0,0 @@
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
2
|
-
import { Component, ViewChild, Input, Inject } from '@angular/core';
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
4
|
-
import { MatTableDataSource } from '@angular/material/table';
|
5
|
-
import { MatSort } from '@angular/material/sort';
|
6
|
-
import { MatDialog } from '@angular/material/dialog';
|
7
|
-
import { AccessType, } from "@csmart/ngc-smart-core";
|
8
|
-
import { NgcSmartVictimService } from './smart-victim.service';
|
9
|
-
import { VictimListFilter, SMART_WARRANT_URL } from './smart-victim.model';
|
10
|
-
//import { SmartVictimDetailComponent } from './smart-victim-detail/smart-victim-detail.component';
|
11
|
-
import { IntakeStep, IntakeServicesComponent, } from './intake.service';
|
12
|
-
import { MatPaginator } from '@angular/material/paginator';
|
13
|
-
import { MatSnackBar } from '@angular/material/snack-bar';
|
14
|
-
import * as i0 from "@angular/core";
|
15
|
-
import * as i1 from "@angular/material/dialog";
|
16
|
-
import * as i2 from "./smart-victim.service";
|
17
|
-
import * as i3 from "@angular/router";
|
18
|
-
import * as i4 from "@angular/material/snack-bar";
|
19
|
-
import * as i5 from "./intake.service";
|
20
|
-
import * as i6 from "@angular/common";
|
21
|
-
import * as i7 from "@angular/material/button";
|
22
|
-
import * as i8 from "@angular/material/card";
|
23
|
-
import * as i9 from "@angular/material/icon";
|
24
|
-
import * as i10 from "@angular/material/paginator";
|
25
|
-
import * as i11 from "@angular/material/table";
|
26
|
-
import * as i12 from "@csmart/ngc-smart-core";
|
27
|
-
import * as i13 from "./smart-victim-detail/smart-victim-detail.component";
|
28
|
-
import * as i14 from "./victimSearch/victimSearchForm.component";
|
29
|
-
export class NgcSmartVictimComponent {
|
30
|
-
constructor(dialog, victimService, router, route, snackBar, intakeService, smartWarrantUrl, document) {
|
31
|
-
this.dialog = dialog;
|
32
|
-
this.victimService = victimService;
|
33
|
-
this.router = router;
|
34
|
-
this.route = route;
|
35
|
-
this.snackBar = snackBar;
|
36
|
-
this.intakeService = intakeService;
|
37
|
-
this.smartWarrantUrl = smartWarrantUrl;
|
38
|
-
this.document = document;
|
39
|
-
this.appModuleId = '';
|
40
|
-
this.activatedRoute = null;
|
41
|
-
this.victims = [];
|
42
|
-
this.victimDetail = {};
|
43
|
-
this.showDetail = false;
|
44
|
-
this.victimListFilter = new VictimListFilter();
|
45
|
-
this.victimListDataSource = new MatTableDataSource();
|
46
|
-
this.doSpin = false;
|
47
|
-
this.showListFlag = false;
|
48
|
-
this.msg = "";
|
49
|
-
this.isIntake = false;
|
50
|
-
}
|
51
|
-
// private onChange(filter: VictimListFilter) {
|
52
|
-
// console.log('filter in onchange');
|
53
|
-
// console.log(filter);
|
54
|
-
// this.getVictimList(filter);
|
55
|
-
// }
|
56
|
-
applyFilter(filterValue) {
|
57
|
-
this.victimListDataSource.filter = filterValue.trim().toLowerCase();
|
58
|
-
}
|
59
|
-
addRecord() {
|
60
|
-
this.showDetail = true;
|
61
|
-
this.showAdd = false;
|
62
|
-
this.victimDetail = null;
|
63
|
-
this.showListFlag = false;
|
64
|
-
}
|
65
|
-
editVictimDetail(record) {
|
66
|
-
console.log("victim edit record");
|
67
|
-
console.log(record);
|
68
|
-
console.log(record.victimId);
|
69
|
-
this.victimDetail = record;
|
70
|
-
this.showDetail = true;
|
71
|
-
this.showAdd = false;
|
72
|
-
this.showListFlag = false;
|
73
|
-
}
|
74
|
-
save(detail) {
|
75
|
-
this.showDetail = false;
|
76
|
-
this.showAdd = true;
|
77
|
-
this.showListFlag = true;
|
78
|
-
}
|
79
|
-
cancel() {
|
80
|
-
this.showDetail = false;
|
81
|
-
this.victimDetail = {};
|
82
|
-
}
|
83
|
-
ngAfterViewInit() {
|
84
|
-
this.victimListDataSource.paginator = this.paginator;
|
85
|
-
this.victimListDataSource.sort = this.sort;
|
86
|
-
}
|
87
|
-
ngOnChanges() {
|
88
|
-
this.updateAccessControlConfig = {
|
89
|
-
accessType: AccessType.UPDATE,
|
90
|
-
appModuleId: this.appModuleId,
|
91
|
-
roleId: null,
|
92
|
-
route: this.activatedRoute.snapshot,
|
93
|
-
};
|
94
|
-
this.createAccessControlConfig = {
|
95
|
-
accessType: AccessType.CREATE,
|
96
|
-
appModuleId: this.appModuleId,
|
97
|
-
roleId: null,
|
98
|
-
route: this.activatedRoute.snapshot,
|
99
|
-
};
|
100
|
-
this.deleteAccessControlConfig = {
|
101
|
-
accessType: AccessType.DELETE,
|
102
|
-
appModuleId: this.appModuleId,
|
103
|
-
roleId: null,
|
104
|
-
route: this.activatedRoute.snapshot,
|
105
|
-
};
|
106
|
-
}
|
107
|
-
ngOnInit() {
|
108
|
-
const queryParams = this.route.snapshot.queryParams;
|
109
|
-
if (queryParams['routeTo']) {
|
110
|
-
this.router.navigate([queryParams['routeTo']]);
|
111
|
-
}
|
112
|
-
var data = this.route.snapshot.data;
|
113
|
-
var myPath = this.router.url.slice(-10);
|
114
|
-
console.log("offender id at smart-victim");
|
115
|
-
console.log(this.offenderId);
|
116
|
-
console.log("staff id at smart-victim");
|
117
|
-
console.log(this.staffId);
|
118
|
-
console.log("insakeFlag at smart-victim");
|
119
|
-
console.log(this.intakeFlag);
|
120
|
-
console.log("smart-victim ngOnInit");
|
121
|
-
console.log(this.intakeFlag);
|
122
|
-
console.log(myPath);
|
123
|
-
if (this.intakeFlag == "true") {
|
124
|
-
this.isIntake = true;
|
125
|
-
}
|
126
|
-
this.displayedColumns = ["lastName", "firstName"];
|
127
|
-
if (this.showRelationshipColumn == true ||
|
128
|
-
myPath == "victimList" ||
|
129
|
-
myPath == "victimHome") {
|
130
|
-
this.displayedColumns.push("relationship");
|
131
|
-
}
|
132
|
-
if (this.showOffenderNameColumn == true) {
|
133
|
-
this.displayedColumns.push("offenderName");
|
134
|
-
}
|
135
|
-
if (this.showOffenderPhoneColumn == true ||
|
136
|
-
myPath == "victimList" ||
|
137
|
-
myPath == "victimHome") {
|
138
|
-
this.displayedColumns.push("homePhone");
|
139
|
-
}
|
140
|
-
this.displayedColumns.push("victimId");
|
141
|
-
if (this.showSearchForm == true) {
|
142
|
-
this.showListFlag = false;
|
143
|
-
}
|
144
|
-
console.log("this.showSearchForm");
|
145
|
-
console.log(this.showSearchForm);
|
146
|
-
console.log("myPath");
|
147
|
-
console.log(myPath);
|
148
|
-
if (this.showSearchForm == false ||
|
149
|
-
myPath == "victimList" ||
|
150
|
-
myPath == "victimHome") {
|
151
|
-
var myOffenderId;
|
152
|
-
if (this.offenderId) {
|
153
|
-
myOffenderId = this.offenderId;
|
154
|
-
}
|
155
|
-
else {
|
156
|
-
console.log("back from previous page");
|
157
|
-
this.showAdd = true;
|
158
|
-
this.showRelationshipColumn = true;
|
159
|
-
//this.displayedColumns.push("relationship");
|
160
|
-
this.showOffenderPhoneColumn = true;
|
161
|
-
// this.displayedColumns.push("homePhone");
|
162
|
-
this.accessByModule = "true";
|
163
|
-
this.showEdit = "true";
|
164
|
-
this.showCaseNote = "true";
|
165
|
-
this.showSafetyPlan = "true";
|
166
|
-
myOffenderId = data.selectedOffender.offenderId;
|
167
|
-
}
|
168
|
-
const victimListFilter = {
|
169
|
-
offenderId: myOffenderId,
|
170
|
-
lastName: null,
|
171
|
-
firstName: null,
|
172
|
-
pdid: null,
|
173
|
-
birthDate: null,
|
174
|
-
};
|
175
|
-
console.log("victimListFilter in smar-victim componenet");
|
176
|
-
console.log(victimListFilter);
|
177
|
-
this.victimService
|
178
|
-
.getVictimListByFilter(victimListFilter)
|
179
|
-
.subscribe((data) => {
|
180
|
-
this.victims = data;
|
181
|
-
this.victimListDataSource.data = data;
|
182
|
-
console.log("victim data at line 245");
|
183
|
-
console.log(this.victims);
|
184
|
-
console.log("showListFlag");
|
185
|
-
console.log(this.showListFlag);
|
186
|
-
this.showListFlag = true;
|
187
|
-
if (data.length == 0) {
|
188
|
-
this.msg = "No Record Found!";
|
189
|
-
}
|
190
|
-
});
|
191
|
-
}
|
192
|
-
else {
|
193
|
-
console.log("find filter");
|
194
|
-
console.log(this.victimListFilter);
|
195
|
-
if (this.showListFlag === true) {
|
196
|
-
if (this.victimListFilter != null) {
|
197
|
-
this.victimService
|
198
|
-
.getVictimListByFilter(this.victimListFilter)
|
199
|
-
.subscribe((data) => {
|
200
|
-
this.victims = data;
|
201
|
-
this.victimListDataSource.data = data;
|
202
|
-
console.log("victim data at line 279");
|
203
|
-
console.log(data);
|
204
|
-
});
|
205
|
-
}
|
206
|
-
}
|
207
|
-
}
|
208
|
-
}
|
209
|
-
// phone number format on the victim list
|
210
|
-
formatPhoneNumber(phoneNumberString) {
|
211
|
-
if (!phoneNumberString)
|
212
|
-
return "";
|
213
|
-
var cleaned = ("" + phoneNumberString).replace(/\D/g, "");
|
214
|
-
var match = cleaned.match(/^(\d{3})(\d{3})(\d{4})$/);
|
215
|
-
if (match) {
|
216
|
-
return "(" + match[1] + ") " + match[2] + "-" + match[3];
|
217
|
-
}
|
218
|
-
return "";
|
219
|
-
}
|
220
|
-
saveIntake() {
|
221
|
-
if (!this.isIntake) {
|
222
|
-
return;
|
223
|
-
}
|
224
|
-
const intakeStep = {
|
225
|
-
intakeStepId: IntakeStep.VictimInformation,
|
226
|
-
offenderId: this.offenderId,
|
227
|
-
modifiedBy: this.staffId,
|
228
|
-
};
|
229
|
-
this.intakeService
|
230
|
-
.updateIntakeSteps(this.offenderId, intakeStep)
|
231
|
-
.subscribe((res) => {
|
232
|
-
console.log("save intake step.");
|
233
|
-
this.snackBar.open("Status Saved.", "", {
|
234
|
-
duration: 3000,
|
235
|
-
});
|
236
|
-
//this.router.navigate(['/warrant '], { queryParams: { intake: 1 } });
|
237
|
-
this.document.location.href =
|
238
|
-
`${this.smartWarrantUrl}/?offenderId=${this.offenderId}&intakeFlag=${this.isIntake}&routeTo=warrant`;
|
239
|
-
});
|
240
|
-
}
|
241
|
-
goToCaseNote(victimId) {
|
242
|
-
this.router.navigate(["casenote", victimId, this.offenderId]);
|
243
|
-
}
|
244
|
-
goToSaftyPlan(victimId) {
|
245
|
-
this.router.navigate(["saftyPlan", victimId]);
|
246
|
-
}
|
247
|
-
getVictimList(filter) {
|
248
|
-
this.victimListFilter = filter;
|
249
|
-
console.log("this.victimListFilter inside getVictimList");
|
250
|
-
console.log(this.victimListFilter);
|
251
|
-
this.doSpin = true;
|
252
|
-
this.victimService.getVictimListByFilter(filter).subscribe((data) => {
|
253
|
-
this.doSpin = !this.doSpin;
|
254
|
-
if (data.length > 0) {
|
255
|
-
this.showListFlag = true;
|
256
|
-
this.victimListDataSource.data = data;
|
257
|
-
}
|
258
|
-
else {
|
259
|
-
this.msg = "No record found!";
|
260
|
-
}
|
261
|
-
}, (err) => {
|
262
|
-
this.doSpin = !this.doSpin;
|
263
|
-
});
|
264
|
-
}
|
265
|
-
}
|
266
|
-
/** @nocollapse */ NgcSmartVictimComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.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 });
|
267
|
-
/** @nocollapse */ NgcSmartVictimComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.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 \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n \r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \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\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\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.relationship}} </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-raised-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-raised-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\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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}.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;-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;-webkit-hyphens:auto;hyphens:auto}\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-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { 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: ["disabled"], 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: ["sticky", "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"] }] });
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgcSmartVictimComponent, decorators: [{
|
269
|
-
type: Component,
|
270
|
-
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 \r\n <div class=\"add-action\" *ngIf=\"showAdd\">\r\n <button mat-raised-button color=\"primary\" \r\n accessControl\r\n [accessControlConfig]=\"createAccessControlConfig\" \r\n (click)=\"addRecord()\">\r\n <mat-icon>add</mat-icon>\r\n Add Victim\r\n </button>\r\n \r\n\r\n <div *ngIf=\"isIntake\">\r\n <button \r\n mat-raised-button \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\r\n </div>\r\n <div *ngIf=\"showListFlag\">\r\n <mat-card id=\"divVictim\" >\r\n <mat-card-content >\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.relationship}} </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-raised-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-raised-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\r\n <mat-paginator #paginator [pageSize]=\"10\" [pageSizeOptions]=\"[5, 10, 25, 100]\"></mat-paginator> \r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <div>\r\n <b>{{msg}}</b>\r\n </div>\r\n</div>", 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}.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;-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;-webkit-hyphens:auto;hyphens:auto}\n"] }]
|
271
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.NgcSmartVictimService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.MatSnackBar }, { type: i5.IntakeServicesComponent }, { type: undefined, decorators: [{
|
272
|
-
type: Inject,
|
273
|
-
args: [SMART_WARRANT_URL]
|
274
|
-
}] }, { type: undefined, decorators: [{
|
275
|
-
type: Inject,
|
276
|
-
args: [DOCUMENT]
|
277
|
-
}] }]; }, propDecorators: { offenderId: [{
|
278
|
-
type: Input
|
279
|
-
}], staffId: [{
|
280
|
-
type: Input
|
281
|
-
}], staffRole: [{
|
282
|
-
type: Input
|
283
|
-
}], showCaseNote: [{
|
284
|
-
type: Input
|
285
|
-
}], showSafetyPlan: [{
|
286
|
-
type: Input
|
287
|
-
}], showAdd: [{
|
288
|
-
type: Input
|
289
|
-
}], showEdit: [{
|
290
|
-
type: Input
|
291
|
-
}], showRelationshipColumn: [{
|
292
|
-
type: Input
|
293
|
-
}], showOffenderNameColumn: [{
|
294
|
-
type: Input
|
295
|
-
}], showOffenderPhoneColumn: [{
|
296
|
-
type: Input
|
297
|
-
}], showSearchForm: [{
|
298
|
-
type: Input
|
299
|
-
}], accessByModule: [{
|
300
|
-
type: Input
|
301
|
-
}], intakeFlag: [{
|
302
|
-
type: Input
|
303
|
-
}], appModuleId: [{
|
304
|
-
type: Input
|
305
|
-
}], activatedRoute: [{
|
306
|
-
type: Input
|
307
|
-
}], paginator: [{
|
308
|
-
type: ViewChild,
|
309
|
-
args: [MatPaginator]
|
310
|
-
}], sort: [{
|
311
|
-
type: ViewChild,
|
312
|
-
args: [MatSort]
|
313
|
-
}] } });
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtdmljdGltLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nYy1zbWFydC12aWN0aW0vc3JjL2xpYi9zbWFydC12aWN0aW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdjLXNtYXJ0LXZpY3RpbS9zcmMvbGliL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUlMLFVBQVUsR0FDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFBa0IsZ0JBQWdCLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRyxtR0FBbUc7QUFFbkcsT0FBTyxFQUVMLFVBQVUsRUFDVix1QkFBdUIsR0FDeEIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFELE1BQU0sT0FBTyx1QkFBdUI7SUFvQ2xDLFlBQ1Us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R0FBRyxJQUFJLENBQUM7YUFFdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQzthQUMvQjtRQUNILENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDOzt1SUExU1UsdUJBQXVCLHNNQTJDeEIsaUJBQWlCLGFBQ2pCLFFBQVE7MkhBNUNQLHVCQUF1QixnbEJBa0J2QixZQUFZLHVFQUNaLE9BQU8scUVDaERwQix1dk1BeUlNOzJGRDVHTyx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UsZUFBZTs7MEJBK0N0QixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsUUFBUTs0Q0EzQ1QsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVtQixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0gsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBJbnB1dCwgT3V0cHV0LCBBZnRlclZpZXdJbml0LCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSxSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2V9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3RlZE9mZmVuZGVyLFxyXG4gIExvZ2luU3RhZmYsXHJcbiAgU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnLFxyXG4gIEFjY2Vzc1R5cGUsXHJcbn0gZnJvbSBcIkBjc21hcnQvbmdjLXNtYXJ0LWNvcmVcIjtcclxuaW1wb3J0IHsgTmdjU21hcnRWaWN0aW1TZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC12aWN0aW0uc2VydmljZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRzVmljdGltLCBWaWN0aW1MaXN0RmlsdGVyLCBWaWN0aW0sIFNNQVJUX1dBUlJBTlRfVVJMIH0gZnJvbSAnLi9zbWFydC12aWN0aW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFZpY3RpbURlbGV0ZUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LXZpY3RpbS1kZWxldGUtY29uZmlybS5jb21wb25lbnQnO1xyXG4vL2ltcG9ydCB7IFNtYXJ0VmljdGltRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC12aWN0aW0tZGV0YWlsL3NtYXJ0LXZpY3RpbS1kZXRhaWwuY29tcG9uZW50JztcclxuXHJcbmltcG9ydCB7XHJcbiAgSW50YWtlU3RlcFN0YXR1c01vZGVsLFxyXG4gIEludGFrZVN0ZXAsXHJcbiAgSW50YWtlU2VydmljZXNDb21wb25lbnQsXHJcbn0gZnJvbSAnLi9pbnRha2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY3NtYXJ0LXZpY3RpbVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc21hcnQtdmljdGltLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL3NtYXJ0LXZpY3RpbS5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdjU21hcnRWaWN0aW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb2ZmZW5kZXJJZDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHN0YWZmSWQ6IG51bWJlcjtcclxuICBASW5wdXQoKSBzdGFmZlJvbGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93Q2FzZU5vdGU6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93U2FmZXR5UGxhbjogc3RyaW5nO1xyXG4gIC8vQElucHV0KCkgc2hvd0FkZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dBZGQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0VkaXQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93UmVsYXRpb25zaGlwQ29sdW1uOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPZmZlbmRlck5hbWVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd09mZmVuZGVyUGhvbmVDb2x1bW46IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaEZvcm06IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWNjZXNzQnlNb2R1bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBpbnRha2VGbGFnOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXBwTW9kdWxlSWQgPSAnJztcclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUgPSBudWxsO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcikgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChNYXRTb3J0KSBzb3J0OiBNYXRTb3J0O1xyXG4gIC8vIEBWaWV3Q2hpbGQoU21hcnRWaWN0aW1EZXRhaWxDb21wb25lbnQpIGNoaWxkO1xyXG5cclxuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXTtcclxuICB2aWN0aW1zOiBWaWN0aW1bXSA9IFtdO1xyXG4gIHZpY3RpbURldGFpbCA9IDxWaWN0aW0+e307XHJcbiAgc2hvd0RldGFpbCA9IGZhbHNlO1xyXG4gIHZpY3RpbUxpc3RGaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIgPSBuZXcgVmljdGltTGlzdEZpbHRlcigpO1xyXG4gIHZpY3RpbUxpc3REYXRhU291cmNlID0gbmV3IE1hdFRhYmxlRGF0YVNvdXJjZSgpO1xyXG4gIGRvU3BpbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNob3dMaXN0RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1zZzogc3RyaW5nID0gXCJcIjtcclxuICBpc0ludGFrZSA9IGZhbHNlO1xyXG5cclxuICB1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnOiBTbWFydEFjY2Vzc0NvbnRyb2xDb25maWc7XHJcbiAgY3JlYXRlQWNjZXNzQ29udHJvbENvbmZpZzogU21hcnRBY2Nlc3NDb250cm9sQ29uZmlnO1xyXG4gIGRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWc6IFNtYXJ0QWNjZXNzQ29udHJvbENvbmZpZztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIHZpY3RpbVNlcnZpY2U6IE5nY1NtYXJ0VmljdGltU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBpbnRha2VTZXJ2aWNlOiBJbnRha2VTZXJ2aWNlc0NvbXBvbmVudCxcclxuICAgIEBJbmplY3QoU01BUlRfV0FSUkFOVF9VUkwpIHByaXZhdGUgc21hcnRXYXJyYW50VXJsOiBzdHJpbmcsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcclxuICApIHt9XHJcblxyXG4gIC8vIHByaXZhdGUgb25DaGFuZ2UoZmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnZmlsdGVyIGluIG9uY2hhbmdlJyk7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhmaWx0ZXIpO1xyXG4gIC8vICAgdGhpcy5nZXRWaWN0aW1MaXN0KGZpbHRlcik7XHJcbiAgLy8gfVxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmZpbHRlciA9IGZpbHRlclZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICBhZGRSZWNvcmQoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93QWRkID0gZmFsc2U7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IG51bGw7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZWRpdFZpY3RpbURldGFpbChyZWNvcmQpIHtcclxuICAgIGNvbnNvbGUubG9nKFwidmljdGltIGVkaXQgcmVjb3JkXCIpO1xyXG4gICAgY29uc29sZS5sb2cocmVjb3JkKTtcclxuICAgIGNvbnNvbGUubG9nKHJlY29yZC52aWN0aW1JZCk7XHJcbiAgICB0aGlzLnZpY3RpbURldGFpbCA9IHJlY29yZDtcclxuICAgIHRoaXMuc2hvd0RldGFpbCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dBZGQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzYXZlKGRldGFpbDogVmljdGltKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKSB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWwgPSBmYWxzZTtcclxuICAgIHRoaXMudmljdGltRGV0YWlsID0gPFZpY3RpbT57fTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5wYWdpbmF0b3I7XHJcbiAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLnNvcnQgPSB0aGlzLnNvcnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgICB0aGlzLnVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLlVQREFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmNyZWF0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkNSRUFURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICAgICB0aGlzLmRlbGV0ZUFjY2Vzc0NvbnRyb2xDb25maWcgPSB7XHJcbiAgICAgICBhY2Nlc3NUeXBlOiBBY2Nlc3NUeXBlLkRFTEVURSxcclxuICAgICAgIGFwcE1vZHVsZUlkOiB0aGlzLmFwcE1vZHVsZUlkLFxyXG4gICAgICAgcm9sZUlkOiBudWxsLFxyXG4gICAgICAgcm91dGU6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QsXHJcbiAgICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xyXG4gICAgaWYocXVlcnlQYXJhbXNbJ3JvdXRlVG8nXSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcXVlcnlQYXJhbXNbJ3JvdXRlVG8nXV0pO1xyXG4gICAgfVxyXG4gICAgdmFyIGRhdGEgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGE7XHJcbiAgICB2YXIgbXlQYXRoID0gdGhpcy5yb3V0ZXIudXJsLnNsaWNlKC0xMCk7XHJcblxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwib2ZmZW5kZXIgaWQgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5vZmZlbmRlcklkKTtcclxuICAgIGNvbnNvbGUubG9nKFwic3RhZmYgaWQgYXQgc21hcnQtdmljdGltXCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy5zdGFmZklkKTtcclxuICAgIGNvbnNvbGUubG9nKFwiaW5zYWtlRmxhZyBhdCBzbWFydC12aWN0aW1cIik7XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmludGFrZUZsYWcpO1xyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInNtYXJ0LXZpY3RpbSBuZ09uSW5pdFwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuaW50YWtlRmxhZyk7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmICh0aGlzLmludGFrZUZsYWcgPT0gXCJ0cnVlXCIpIHtcclxuICAgICAgdGhpcy5pc0ludGFrZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1wibGFzdE5hbWVcIiwgXCJmaXJzdE5hbWVcIl07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dSZWxhdGlvbnNoaXBDb2x1bW4gPT0gdHJ1ZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJyZWxhdGlvbnNoaXBcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG93T2ZmZW5kZXJOYW1lQ29sdW1uID09IHRydWUpIHtcclxuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goXCJvZmZlbmRlck5hbWVcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNob3dPZmZlbmRlclBob25lQ29sdW1uID09IHRydWUgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltTGlzdFwiIHx8XHJcbiAgICAgIG15UGF0aCA9PSBcInZpY3RpbUhvbWVcIlxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwidmljdGltSWRcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvd1NlYXJjaEZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5zaG93U2VhcmNoRm9ybVwiKTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2hvd1NlYXJjaEZvcm0pO1xyXG4gICAgY29uc29sZS5sb2coXCJteVBhdGhcIik7XHJcbiAgICBjb25zb2xlLmxvZyhteVBhdGgpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zaG93U2VhcmNoRm9ybSA9PSBmYWxzZSB8fFxyXG4gICAgICBteVBhdGggPT0gXCJ2aWN0aW1MaXN0XCIgfHxcclxuICAgICAgbXlQYXRoID09IFwidmljdGltSG9tZVwiXHJcbiAgICApIHtcclxuICAgICAgdmFyIG15T2ZmZW5kZXJJZDtcclxuICAgICAgaWYgKHRoaXMub2ZmZW5kZXJJZCkge1xyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IHRoaXMub2ZmZW5kZXJJZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImJhY2sgZnJvbSBwcmV2aW91cyBwYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd0FkZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5zaG93UmVsYXRpb25zaGlwQ29sdW1uID0gdHJ1ZTtcclxuICAgICAgICAvL3RoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwicmVsYXRpb25zaGlwXCIpO1xyXG4gICAgICAgIHRoaXMuc2hvd09mZmVuZGVyUGhvbmVDb2x1bW4gPSB0cnVlO1xyXG4gICAgICAgIC8vIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKFwiaG9tZVBob25lXCIpO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzQnlNb2R1bGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dFZGl0ID0gXCJ0cnVlXCI7XHJcbiAgICAgICAgdGhpcy5zaG93Q2FzZU5vdGUgPSBcInRydWVcIjtcclxuICAgICAgICB0aGlzLnNob3dTYWZldHlQbGFuID0gXCJ0cnVlXCI7XHJcblxyXG4gICAgICAgIG15T2ZmZW5kZXJJZCA9IGRhdGEuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB2aWN0aW1MaXN0RmlsdGVyOiBWaWN0aW1MaXN0RmlsdGVyID0ge1xyXG4gICAgICAgIG9mZmVuZGVySWQ6IG15T2ZmZW5kZXJJZCxcclxuICAgICAgICBsYXN0TmFtZTogbnVsbCxcclxuICAgICAgICBmaXJzdE5hbWU6IG51bGwsXHJcbiAgICAgICAgcGRpZDogbnVsbCxcclxuICAgICAgICBiaXJ0aERhdGU6IG51bGwsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcInZpY3RpbUxpc3RGaWx0ZXIgaW4gc21hci12aWN0aW0gY29tcG9uZW5ldFwiKTtcclxuICAgICAgY29uc29sZS5sb2codmljdGltTGlzdEZpbHRlcik7XHJcblxyXG4gICAgICB0aGlzLnZpY3RpbVNlcnZpY2VcclxuICAgICAgICAuZ2V0VmljdGltTGlzdEJ5RmlsdGVyKHZpY3RpbUxpc3RGaWx0ZXIpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoZGF0YTogVmljdGltW10pID0+IHtcclxuICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnZpY3RpbUxpc3REYXRhU291cmNlLmRhdGEgPSBkYXRhO1xyXG5cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwidmljdGltIGRhdGEgYXQgbGluZSAyNDVcIik7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnZpY3RpbXMpO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJzaG93TGlzdEZsYWdcIik7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnNob3dMaXN0RmxhZyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dMaXN0RmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoZGF0YS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm1zZyA9IFwiTm8gUmVjb3JkIEZvdW5kIVwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5sb2coXCJmaW5kIGZpbHRlclwiKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnNob3dMaXN0RmxhZyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnZpY3RpbUxpc3RGaWx0ZXIgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy52aWN0aW1TZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIodGhpcy52aWN0aW1MaXN0RmlsdGVyKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudmljdGltcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgdGhpcy52aWN0aW1MaXN0RGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ2aWN0aW0gZGF0YSBhdCBsaW5lIDI3OVwiKTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4vLyBwaG9uZSBudW1iZXIgZm9ybWF0IG9uIHRoZSB2aWN0aW0gbGlzdFxyXG4gIGZvcm1hdFBob25lTnVtYmVyKHBob25lTnVtYmVyU3RyaW5nKSB7XHJcbiAgICBpZiAoIXBob25lTnVtYmVyU3RyaW5nKSByZXR1cm4gXCJcIjtcclxuICAgIHZhciBjbGVhbmVkID0gKFwiXCIgKyBwaG9uZU51bWJlclN0cmluZykucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xyXG4gICAgdmFyIG1hdGNoID0gY2xlYW5lZC5tYXRjaCgvXihcXGR7M30pKFxcZHszfSkoXFxkezR9KSQvKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4gXCIoXCIgKyBtYXRjaFsxXSArIFwiKSBcIiArIG1hdGNoWzJdICsgXCItXCIgKyBtYXRjaFszXTtcclxuICAgIH1cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUludGFrZSgpIHtcclxuICAgIGlmICghdGhpcy5pc0ludGFrZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnRha2VTdGVwID0gPEludGFrZVN0ZXBTdGF0dXNNb2RlbD57XHJcbiAgICAgIGludGFrZVN0ZXBJZDogSW50YWtlU3RlcC5WaWN0aW1JbmZvcm1hdGlvbixcclxuICAgICAgb2ZmZW5kZXJJZDogdGhpcy5vZmZlbmRlcklkLFxyXG4gICAgICBtb2RpZmllZEJ5OiB0aGlzLnN0YWZmSWQsXHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnRha2VTZXJ2aWNlXHJcbiAgICAgIC51cGRhdGVJbnRha2VTdGVwcyh0aGlzLm9mZmVuZGVySWQsIGludGFrZVN0ZXApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwic2F2ZSBpbnRha2Ugc3RlcC5cIik7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5vcGVuKFwiU3RhdHVzIFNhdmVkLlwiLCBcIlwiLCB7XHJcbiAgICAgICAgICBkdXJhdGlvbjogMzAwMCxcclxuICAgICAgICB9KTtcclxuICAgICAgICAvL3RoaXMucm91dGVyLm5hdmlnYXRlKFsnL3dhcnJhbnQgJ10sIHsgcXVlcnlQYXJhbXM6IHsgaW50YWtlOiAxIH0gfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9XHJcbiAgICAgICAgICBgJHt0aGlzLnNtYXJ0V2FycmFudFVybH0vP29mZmVuZGVySWQ9JHt0aGlzLm9mZmVuZGVySWR9JmludGFrZUZsYWc9JHt0aGlzLmlzSW50YWtlfSZyb3V0ZVRvPXdhcnJhbnRgO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdvVG9DYXNlTm90ZSh2aWN0aW1JZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJjYXNlbm90ZVwiLCB2aWN0aW1JZCwgdGhpcy5vZmZlbmRlcklkXSk7XHJcbiAgfVxyXG5cclxuICBnb1RvU2FmdHlQbGFuKHZpY3RpbUlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNhZnR5UGxhblwiLCB2aWN0aW1JZF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmljdGltTGlzdChmaWx0ZXI6IFZpY3RpbUxpc3RGaWx0ZXIpIHtcclxuICAgIHRoaXMudmljdGltTGlzdEZpbHRlciA9IGZpbHRlcjtcclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy52aWN0aW1MaXN0RmlsdGVyIGluc2lkZSBnZXRWaWN0aW1MaXN0XCIpO1xyXG4gICAgY29uc29sZS5sb2codGhpcy52aWN0aW1MaXN0RmlsdGVyKTtcclxuICAgIHRoaXMuZG9TcGluID0gdHJ1ZTtcclxuICAgIHRoaXMudmljdGltU2VydmljZS5nZXRWaWN0aW1MaXN0QnlGaWx0ZXIoZmlsdGVyKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBWaWN0aW1bXSkgPT4ge1xyXG4gICAgICAgdGhpcy5kb1NwaW4gPSAhdGhpcy5kb1NwaW47XHJcblxyXG4gICAgICAgIGlmIChkYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0xpc3RGbGFnID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudmljdGltTGlzdERhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcblxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1zZyA9IFwiTm8gcmVjb3JkIGZvdW5kIVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuZG9TcGluID0gIXRoaXMuZG9TcGluO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvd1NlYXJjaEZvcm1cIj5cclxuICAgIDxhcHAtdmljdGltLXNlYXJjaC1mb3JtXHJcbiAgICAob25TZWFyY2gpPVwiZ2V0VmljdGltTGlzdCgkZXZlbnQpXCI+XHJcbiAgICA8L2FwcC12aWN0aW0tc2VhcmNoLWZvcm0+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInNob3dEZXRhaWxcIj5cclxuICA8Y3NtYXJ0LXZpY3RpbS1kZXRhaWwgW3ZpY3RpbURldGFpbF09XCJ2aWN0aW1EZXRhaWxcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YWZmSWRdPVwic3RhZmZJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtvZmZlbmRlcklkXSA9XCJvZmZlbmRlcklkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW50YWtlXT1cImlzSW50YWtlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uU2F2ZSk9XCJzYXZlKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCIgPlxyXG48L2NzbWFydC12aWN0aW0tZGV0YWlsPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgICBcclxuICAgIDxkaXYgY2xhc3M9XCJhZGQtYWN0aW9uXCIgKm5nSWY9XCJzaG93QWRkXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJjcmVhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCIgIFxyXG4gICAgICAgICAgKGNsaWNrKT1cImFkZFJlY29yZCgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIEFkZCBWaWN0aW1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAmbmJzcDsmbmJzcDtcclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNJbnRha2VcIj5cclxuICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uIFxyXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiIFxyXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICBbYWNjZXNzQ29udHJvbENvbmZpZ109XCJ1cGRhdGVBY2Nlc3NDb250cm9sQ29uZmlnXCIgICAgICAgICAgXHJcbiAgICAgICAgKGNsaWNrKT1cInNhdmVJbnRha2UoKVwiPlxyXG4gICAgICAgIENvbnRpbnVlXHJcbiAgICAgICAgPC9idXR0b24+IFxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgIDxkaXYgKm5nSWY9XCJzaG93TGlzdEZsYWdcIj5cclxuICAgIDxtYXQtY2FyZCBpZD1cImRpdlZpY3RpbVwiID5cclxuICAgICAgICAgIDxtYXQtY2FyZC1jb250ZW50ID5cclxuICAgICAgICAgICAgPG1hdC10YWJsZSAjdGFibGUgW2RhdGFTb3VyY2VdPVwidmljdGltTGlzdERhdGFTb3VyY2VcIiA+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYXN0TmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+VmljdGltIExhc3QgTmFtZTwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+IHt7cm93Lmxhc3ROYW1lfX0gIDwvbWF0LWNlbGw+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJmaXJzdE5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiA+VmljdGltIEZpcnN0IE5hbWU8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiID4ge3tyb3cuZmlyc3ROYW1lfX0gPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd1JlbGF0aW9uc2hpcENvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicmVsYXRpb25zaGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlJlbGF0aW9uc2hpcCB0byBPZmZlbmRlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5yZWxhdGlvbnNoaXB9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93T2ZmZW5kZXJQaG9uZUNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaG9tZVBob25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPlBob25lIE51bWJlcjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgSG9tZSBwaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cuaG9tZVBob25lKX19PGJyPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIENlbGwgUGhvbmU6IHt7Zm9ybWF0UGhvbmVOdW1iZXIocm93LmNlbGxQaG9uZSl9fTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgV29yayBQaG9uZToge3tmb3JtYXRQaG9uZU51bWJlcihyb3cud29ya1Bob25lKX19IFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cInNob3dPZmZlbmRlck5hbWVDb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm9mZmVuZGVyTmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5PZmZlbmRlciBOYW1lPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCIgPiB7e3Jvdy5vZmZlbmRlck5hbWV9fSA8L21hdC1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInZpY3RpbUlkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgPjwvbWF0LWhlYWRlci1jZWxsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgICpuZ0lmPVwiYWNjZXNzQnlNb2R1bGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3g+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwic2hvd0VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0LWJ0blwiICBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgIG1hdFRvb2x0aXA9XCJWaWV3L0VkaXQgVmljdGltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NDb250cm9sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjY2Vzc0NvbnRyb2xDb25maWddPVwidXBkYXRlQWNjZXNzQ29udHJvbENvbmZpZ1wiICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdFZpY3RpbURldGFpbChyb3cpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPm1vZGVfZWRpdDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7IFxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93Q2FzZU5vdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdFRvb2x0aXA9XCJDYXNlTm90ZVwiICBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub0Nhc2VOb3RlKHJvdy52aWN0aW1JZClcIj4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2x5cGhpY29uIGdseXBoaWNvbi1wZW5jaWxcIiA+PC9zcGFuPiZuYnNwO0Nhc2UgTm90ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICZuYnNwOyZuYnNwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJzaG93U2FmZXR5UGxhblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAgbWF0VG9vbHRpcD1cInNhZmV0eSBwbGFuXCIgbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc0NvbnRyb2xcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFthY2Nlc3NDb250cm9sQ29uZmlnXT1cInVwZGF0ZUFjY2Vzc0NvbnRyb2xDb25maWdcIiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1NhZnR5UGxhbihyb3cudmljdGltSWQpXCI+ICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLXBlbmNpbFwiID48L3NwYW4+Jm5ic3A7U2FmZXR5IFBsYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAmbmJzcDsmbmJzcDtcclxuICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2VsbD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc1wiIGNsYXNzPVwiZXhhbXBsZS1oZWFkZXItcm93XCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICAgICAgICAgICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zXCIgY2xhc3M9XCJleGFtcGxlLXJvd1wiPjwvbWF0LXJvdz5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXRhYmxlPlxyXG5cclxuICAgICAgICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtwYWdlU2l6ZV09XCIxMFwiIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUsIDEwLCAyNSwgMTAwXVwiPjwvbWF0LXBhZ2luYXRvcj4gXHJcbiAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdj5cclxuICAgICAgICA8Yj57e21zZ319PC9iPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|