@senior-gestao-pessoas/hcm-contract-employee-history 5.5.1 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js +651 -251
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js +2 -2
- package/bundles/senior-gestao-pessoas-hcm-contract-employee-history.umd.min.js.map +1 -1
- package/core/dtos/employee-dependent-save-dto.d.ts +2 -1
- package/core/entities/dependent-draft/dependent-draft.d.ts +11 -0
- package/core/entities/dependent-draft/dependent-draft.dto.d.ts +13 -0
- package/core/entities/dependent-draft/dependent-draft.service.d.ts +13 -0
- package/esm2015/core/dtos/employee-dependent-save-dto.js +1 -1
- package/esm2015/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
- package/esm2015/core/entities/dependent-draft/dependent-draft.js +56 -0
- package/esm2015/core/entities/dependent-draft/dependent-draft.service.js +26 -0
- package/esm2015/lib/employee-dependent/employee-dependent.module.js +14 -2
- package/esm2015/lib/employee-dependent/form/employee-dependent-form.component.js +179 -75
- package/esm2015/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
- package/esm2015/lib/employee-dependent/list/draft/dependent-list-draft.component.js +216 -0
- package/esm2015/lib/employee-dependent/list/employee-dependent-list.component.js +13 -2
- package/esm2015/lib/utils/helpers.js +24 -1
- package/esm2015/public-api.js +1 -2
- package/esm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
- package/esm5/core/dtos/employee-dependent-save-dto.js +1 -1
- package/esm5/core/entities/dependent-draft/dependent-draft.dto.js +1 -0
- package/esm5/core/entities/dependent-draft/dependent-draft.js +61 -0
- package/esm5/core/entities/dependent-draft/dependent-draft.service.js +29 -0
- package/esm5/lib/employee-dependent/employee-dependent.module.js +14 -2
- package/esm5/lib/employee-dependent/form/employee-dependent-form.component.js +183 -75
- package/esm5/lib/employee-dependent/form/employee-dependent-personal-step/employee-dependent-personal-step.component.js +1 -1
- package/esm5/lib/employee-dependent/list/draft/dependent-list-draft.component.js +230 -0
- package/esm5/lib/employee-dependent/list/employee-dependent-list.component.js +17 -2
- package/esm5/lib/utils/helpers.js +24 -1
- package/esm5/public-api.js +1 -2
- package/esm5/senior-gestao-pessoas-hcm-contract-employee-history.js +10 -8
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js +612 -244
- package/fesm2015/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js +641 -244
- package/fesm5/senior-gestao-pessoas-hcm-contract-employee-history.js.map +1 -1
- package/lib/employee-dependent/form/employee-dependent-form.component.d.ts +16 -7
- package/lib/employee-dependent/list/draft/dependent-list-draft.component.d.ts +49 -0
- package/lib/employee-dependent/list/employee-dependent-list.component.d.ts +3 -0
- package/lib/utils/helpers.d.ts +11 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/senior-gestao-pessoas-hcm-contract-employee-history.d.ts +9 -7
- package/senior-gestao-pessoas-hcm-contract-employee-history.metadata.json +1 -1
- package/esm2015/locale/fallback.js +0 -54
- package/esm5/locale/fallback.js +0 -54
- package/locale/fallback.d.ts +0 -1
|
@@ -4,27 +4,33 @@ import { FormControl, FormGroup } from "@angular/forms";
|
|
|
4
4
|
import { ActivatedRoute } from "@angular/router";
|
|
5
5
|
import { TranslateService } from "@ngx-translate/core";
|
|
6
6
|
import { SUrlService } from "@senior-gestao-pessoas/angular-components";
|
|
7
|
+
import { validateSpecificControls } from "../../utils/helpers";
|
|
7
8
|
import { StepState } from "@seniorsistemas/angular-components";
|
|
8
9
|
import { ConfirmationService, MessageService } from "primeng/api";
|
|
9
10
|
import { Subject } from "rxjs";
|
|
10
11
|
import { finalize, takeUntil } from "rxjs/operators";
|
|
12
|
+
import { DependentDraft } from "../../../core/entities/dependent-draft/dependent-draft";
|
|
13
|
+
import { DependentDraftService } from "../../../core/entities/dependent-draft/dependent-draft.service";
|
|
11
14
|
import { EmployeeDependentService } from "../../../core/entities/employee-dependent-core/employee-dependent-core.service";
|
|
12
15
|
import { FocusService } from "../../../shared/focus/focus.service";
|
|
13
16
|
import { DateValidator } from "../../utils/date-validator/date-validator";
|
|
14
17
|
import { mapFormToDependentSave, mapPersonRetrieveToEmployeeDependentForm } from "./employee-dependent-form-converter";
|
|
15
18
|
var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
16
|
-
function EmployeeDependentFormComponent(translateService, employeeDependentService, sUrlService, focusService, route, confirmationService, messageService) {
|
|
19
|
+
function EmployeeDependentFormComponent(translateService, employeeDependentService, sUrlService, focusService, dependentDraftService, route, confirmationService, messageService) {
|
|
17
20
|
this.translateService = translateService;
|
|
18
21
|
this.employeeDependentService = employeeDependentService;
|
|
19
22
|
this.sUrlService = sUrlService;
|
|
20
23
|
this.focusService = focusService;
|
|
24
|
+
this.dependentDraftService = dependentDraftService;
|
|
21
25
|
this.route = route;
|
|
22
26
|
this.confirmationService = confirmationService;
|
|
23
27
|
this.messageService = messageService;
|
|
24
28
|
this.loading = false;
|
|
25
29
|
this.showSideBar = false;
|
|
26
30
|
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
27
|
-
this.formGroup = new FormGroup({
|
|
31
|
+
this.formGroup = new FormGroup({
|
|
32
|
+
draftId: new FormControl(null),
|
|
33
|
+
});
|
|
28
34
|
this.ngUnsubscribe = new Subject();
|
|
29
35
|
this.createSteps();
|
|
30
36
|
}
|
|
@@ -42,29 +48,135 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
42
48
|
this.localeConfig = data.localeConfig;
|
|
43
49
|
this.dateFormat = DateValidator.getDateFormatFromCalendar(data.localeConfig.calendar);
|
|
44
50
|
};
|
|
51
|
+
EmployeeDependentFormComponent.prototype.undoStep = function () {
|
|
52
|
+
if (this.activeIndex === 1) {
|
|
53
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
54
|
+
}
|
|
55
|
+
else if (this.activeIndex === 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.activeIndex--;
|
|
59
|
+
};
|
|
60
|
+
EmployeeDependentFormComponent.prototype.nextStep = function () {
|
|
61
|
+
if (this.activeIndex === 0) {
|
|
62
|
+
var formBasicStep = this.formGroup.get("basicDependentPersonData");
|
|
63
|
+
this.validateAllFormFields(formBasicStep);
|
|
64
|
+
if (!formBasicStep.valid && !this.dependentId) {
|
|
65
|
+
this.steps[1].disabled = true;
|
|
66
|
+
return this.messageService.add({
|
|
67
|
+
severity: "error",
|
|
68
|
+
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
69
|
+
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
this.steps[1].disabled = false;
|
|
73
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
|
|
74
|
+
this.activeIndex++;
|
|
75
|
+
}
|
|
76
|
+
else if (this.activeIndex === 1) {
|
|
77
|
+
this.validateAllFormFields(this.formGroup);
|
|
78
|
+
if (!this.formGroup.valid) {
|
|
79
|
+
var msg = this.requiredFieldsStep1 ? this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group_step_1")
|
|
80
|
+
: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group");
|
|
81
|
+
return this.messageService.add({
|
|
82
|
+
severity: "error",
|
|
83
|
+
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
84
|
+
detail: msg,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (this.dependentId) {
|
|
88
|
+
this.onBeforeSave();
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.onSaveDependent();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
EmployeeDependentFormComponent.prototype.isNew = function () {
|
|
96
|
+
return !this.dependentId;
|
|
97
|
+
};
|
|
98
|
+
EmployeeDependentFormComponent.prototype.isNewToLabel = function () {
|
|
99
|
+
return this.isNew() ? "create" : "edit";
|
|
100
|
+
};
|
|
101
|
+
EmployeeDependentFormComponent.prototype.onStepSelected = function (event) {
|
|
102
|
+
if (event.index === 0) {
|
|
103
|
+
var complementForm = this.formGroup.get("complementDependentPersonData");
|
|
104
|
+
if (!complementForm.valid && (!this.dependentId)) {
|
|
105
|
+
this.validateAllFormFields(complementForm);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
109
|
+
}
|
|
110
|
+
if (event.index === 1) {
|
|
111
|
+
var basicForm = this.formGroup.get("basicDependentPersonData");
|
|
112
|
+
if (!basicForm.valid && (!this.dependentId)) {
|
|
113
|
+
this.validateAllFormFields(basicForm);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
this.activeIndex = event.index;
|
|
118
|
+
};
|
|
119
|
+
EmployeeDependentFormComponent.prototype.onCancel = function () {
|
|
120
|
+
this.showSideBar = false;
|
|
121
|
+
};
|
|
122
|
+
EmployeeDependentFormComponent.prototype.saveDependentDraft = function () {
|
|
123
|
+
var _this = this;
|
|
124
|
+
validateSpecificControls(this.formGroup, [
|
|
125
|
+
"basicDependentPersonData.fullName",
|
|
126
|
+
"complementDependentPersonData.kinshipDependentDegreeType",
|
|
127
|
+
]);
|
|
128
|
+
var fullName = this.formGroup.get("basicDependentPersonData.fullName");
|
|
129
|
+
var kinshipDependentDegreeType = this.formGroup.get("complementDependentPersonData.kinshipDependentDegreeType");
|
|
130
|
+
if ((this.activeIndex === 0 && !fullName.valid)
|
|
131
|
+
|| (this.activeIndex === 1 && !kinshipDependentDegreeType.valid)) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
else if (fullName.valid && this.activeIndex === 0) {
|
|
135
|
+
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.admission_employee_form_btn_step_last");
|
|
136
|
+
return this.activeIndex++;
|
|
137
|
+
}
|
|
138
|
+
this.loading = true;
|
|
139
|
+
this.getSaveObservable()
|
|
140
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(function () { return _this.loading = false; }))
|
|
141
|
+
.subscribe(function (res) {
|
|
142
|
+
_this.formGroup.get("draftId").setValue(res === null || res === void 0 ? void 0 : res.id);
|
|
143
|
+
_this.messageService.add({
|
|
144
|
+
severity: "success",
|
|
145
|
+
summary: _this.translateService.instant("hcm_contract.employment_contract.admission_generic_toast_success"),
|
|
146
|
+
detail: _this.translateService.instant("hcm_contract.employment_contract.admission_draft_employee_form_save_sucess"),
|
|
147
|
+
});
|
|
148
|
+
_this.showSideBar = false;
|
|
149
|
+
_this.closeSideBar.emit(true);
|
|
150
|
+
});
|
|
151
|
+
};
|
|
45
152
|
EmployeeDependentFormComponent.prototype.subscribeEvents = function () {
|
|
46
153
|
var _this = this;
|
|
47
154
|
this.employeeDependentService.getOpenSideBarAndStartForm()
|
|
155
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
48
156
|
.subscribe(function (data) {
|
|
49
157
|
_this.activeIndex = 0;
|
|
50
158
|
_this.buttonLabel = _this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
51
159
|
_this.dependentId = data === null || data === void 0 ? void 0 : data.dependentId;
|
|
52
160
|
_this.personId = data === null || data === void 0 ? void 0 : data.personId;
|
|
53
161
|
_this.formGroup.reset();
|
|
54
|
-
if (!(data === null || data === void 0 ? void 0 : data.dependentId)) {
|
|
162
|
+
if (!(data === null || data === void 0 ? void 0 : data.dependentId) && !data.dependentDraftId) {
|
|
55
163
|
_this.steps[1].disabled = true;
|
|
56
164
|
_this.formGroup.enable();
|
|
57
165
|
if (data.personId) {
|
|
58
166
|
_this.personRetrieveInformation();
|
|
59
167
|
}
|
|
60
168
|
}
|
|
61
|
-
else {
|
|
169
|
+
else if ((data === null || data === void 0 ? void 0 : data.personId) && !data.dependentDraftId) {
|
|
62
170
|
_this.personRetrieveInformation();
|
|
63
171
|
_this.steps[0].disabled = false;
|
|
64
172
|
_this.steps[1].disabled = false;
|
|
65
173
|
}
|
|
174
|
+
else if (data === null || data === void 0 ? void 0 : data.dependentDraftId) {
|
|
175
|
+
_this.loadDraft(data.dependentDraftId);
|
|
176
|
+
}
|
|
66
177
|
_this.showSideBar = true;
|
|
67
178
|
});
|
|
179
|
+
this.onSaveByListDraft();
|
|
68
180
|
};
|
|
69
181
|
EmployeeDependentFormComponent.prototype.createSteps = function () {
|
|
70
182
|
var personalData = {
|
|
@@ -106,13 +218,29 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
106
218
|
.pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
|
|
107
219
|
_this.loading = false;
|
|
108
220
|
})).subscribe(function (data) {
|
|
221
|
+
var _a;
|
|
222
|
+
var draftId = (_a = _this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
|
|
109
223
|
if (data === null || data === void 0 ? void 0 : data.id) {
|
|
110
224
|
_this.addMessageSucess();
|
|
111
225
|
_this.showSideBar = false;
|
|
112
226
|
_this.closeSideBar.emit(true);
|
|
227
|
+
if (draftId) {
|
|
228
|
+
_this.deleteDraft(draftId);
|
|
229
|
+
}
|
|
113
230
|
}
|
|
114
231
|
});
|
|
115
232
|
};
|
|
233
|
+
EmployeeDependentFormComponent.prototype.deleteDraft = function (draftId) {
|
|
234
|
+
var _this = this;
|
|
235
|
+
this.loading = true;
|
|
236
|
+
this.dependentDraftService.delete(draftId)
|
|
237
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
|
|
238
|
+
_this.loading = false;
|
|
239
|
+
}))
|
|
240
|
+
.subscribe(function () {
|
|
241
|
+
_this.closeSideBar.emit(true);
|
|
242
|
+
});
|
|
243
|
+
};
|
|
116
244
|
EmployeeDependentFormComponent.prototype.addMessageSucess = function () {
|
|
117
245
|
this.messageService.add({
|
|
118
246
|
severity: "success",
|
|
@@ -133,47 +261,9 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
133
261
|
});
|
|
134
262
|
this.focusService.focusFirstInvalidInput();
|
|
135
263
|
};
|
|
136
|
-
EmployeeDependentFormComponent.prototype.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
else if (this.activeIndex === 0) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
this.activeIndex--;
|
|
144
|
-
};
|
|
145
|
-
EmployeeDependentFormComponent.prototype.nextStep = function () {
|
|
146
|
-
if (this.activeIndex === 0) {
|
|
147
|
-
var formBasicStep = this.formGroup.get("basicDependentPersonData");
|
|
148
|
-
this.validateAllFormFields(formBasicStep);
|
|
149
|
-
if (!formBasicStep.valid && !this.dependentId) {
|
|
150
|
-
this.steps[1].disabled = true;
|
|
151
|
-
return this.messageService.add({
|
|
152
|
-
severity: "error",
|
|
153
|
-
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
154
|
-
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
this.steps[1].disabled = false;
|
|
158
|
-
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.save");
|
|
159
|
-
this.activeIndex++;
|
|
160
|
-
}
|
|
161
|
-
else if (this.activeIndex === 1) {
|
|
162
|
-
this.validateAllFormFields(this.formGroup);
|
|
163
|
-
if (!this.formGroup.valid) {
|
|
164
|
-
return this.messageService.add({
|
|
165
|
-
severity: "error",
|
|
166
|
-
summary: this.translateService.instant("hcm_contract.employment_contract.error"),
|
|
167
|
-
detail: this.translateService.instant("hcm_contract.employment_contract.admission_generic_invalid_form_group"),
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (this.dependentId) {
|
|
171
|
-
this.onBeforeSave();
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
this.onSaveDependent();
|
|
175
|
-
}
|
|
176
|
-
}
|
|
264
|
+
EmployeeDependentFormComponent.prototype.requiredFieldsStep1 = function () {
|
|
265
|
+
var _a, _b, _c, _d;
|
|
266
|
+
return ((_a = this.formGroup.get("basicDependentPersonData.fullName")) === null || _a === void 0 ? void 0 : _a.value) && ((_b = this.formGroup.get("basicDependentPersonData.birthDate")) === null || _b === void 0 ? void 0 : _b.value) && ((_c = this.formGroup.get("basicDependentPersonData.genderType")) === null || _c === void 0 ? void 0 : _c.value) && ((_d = this.formGroup.get("basicDependentPersonData.cpf")) === null || _d === void 0 ? void 0 : _d.value);
|
|
177
267
|
};
|
|
178
268
|
EmployeeDependentFormComponent.prototype.isFormChanged = function (beforeData, afterData) {
|
|
179
269
|
if (!(beforeData === null || beforeData === void 0 ? void 0 : beforeData.personDependentData) || !afterData) {
|
|
@@ -182,7 +272,7 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
182
272
|
var keysToCheck = [
|
|
183
273
|
"basicDependentPersonData",
|
|
184
274
|
"complementDependentPersonData",
|
|
185
|
-
"documentDependentPersonData"
|
|
275
|
+
"documentDependentPersonData",
|
|
186
276
|
];
|
|
187
277
|
return keysToCheck.some(function (formGroup) {
|
|
188
278
|
return Object.keys(beforeData.personDependentData[formGroup] || {}).some(function (key) {
|
|
@@ -193,33 +283,6 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
193
283
|
});
|
|
194
284
|
});
|
|
195
285
|
};
|
|
196
|
-
EmployeeDependentFormComponent.prototype.isNew = function () {
|
|
197
|
-
return !this.dependentId;
|
|
198
|
-
};
|
|
199
|
-
EmployeeDependentFormComponent.prototype.isNewToLabel = function () {
|
|
200
|
-
return this.isNew() ? "create" : "edit";
|
|
201
|
-
};
|
|
202
|
-
EmployeeDependentFormComponent.prototype.onStepSelected = function (event) {
|
|
203
|
-
if (event.index === 0) {
|
|
204
|
-
var complementForm = this.formGroup.get("complementDependentPersonData");
|
|
205
|
-
if (!complementForm.valid && (!this.dependentId)) {
|
|
206
|
-
this.validateAllFormFields(complementForm);
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
this.buttonLabel = this.translateService.instant("hcm_contract.employment_contract.employee_dependent_button_next");
|
|
210
|
-
}
|
|
211
|
-
if (event.index === 1) {
|
|
212
|
-
var basicForm = this.formGroup.get("basicDependentPersonData");
|
|
213
|
-
if (!basicForm.valid && (!this.dependentId)) {
|
|
214
|
-
this.validateAllFormFields(basicForm);
|
|
215
|
-
return;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
this.activeIndex = event.index;
|
|
219
|
-
};
|
|
220
|
-
EmployeeDependentFormComponent.prototype.onCancel = function () {
|
|
221
|
-
this.showSideBar = false;
|
|
222
|
-
};
|
|
223
286
|
EmployeeDependentFormComponent.prototype.onBeforeSave = function () {
|
|
224
287
|
var _this = this;
|
|
225
288
|
if (!this.formGroup.dirty || !this.isFormChanged(this.loadedDependent, this.formGroup.getRawValue())) {
|
|
@@ -240,11 +303,53 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
240
303
|
this.closeSideBar.emit(true);
|
|
241
304
|
this.addMessageSucess();
|
|
242
305
|
};
|
|
306
|
+
EmployeeDependentFormComponent.prototype.loadDraft = function (draftId) {
|
|
307
|
+
var _this = this;
|
|
308
|
+
this.loading = true;
|
|
309
|
+
this.dependentDraftService.get(draftId)
|
|
310
|
+
.pipe(takeUntil(this.ngUnsubscribe), finalize(function () {
|
|
311
|
+
_this.loading = false;
|
|
312
|
+
}))
|
|
313
|
+
.subscribe(function (draft) {
|
|
314
|
+
var _a;
|
|
315
|
+
(_a = _this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.setValue(draftId);
|
|
316
|
+
var data = DependentDraft.fromDto(draft);
|
|
317
|
+
_this.formGroup.patchValue(data);
|
|
318
|
+
});
|
|
319
|
+
};
|
|
320
|
+
EmployeeDependentFormComponent.prototype.getSaveObservable = function () {
|
|
321
|
+
var _a;
|
|
322
|
+
var form = this.formGroup.getRawValue();
|
|
323
|
+
var dto = DependentDraft.toDto(form, this.employeeId, this.admissionDraft);
|
|
324
|
+
var observable;
|
|
325
|
+
var id = (_a = this.formGroup.get("draftId")) === null || _a === void 0 ? void 0 : _a.value;
|
|
326
|
+
if (id) {
|
|
327
|
+
observable = this.dependentDraftService.update(id, dto);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
observable = this.dependentDraftService.insert(dto);
|
|
331
|
+
}
|
|
332
|
+
return observable;
|
|
333
|
+
};
|
|
334
|
+
EmployeeDependentFormComponent.prototype.onSaveByListDraft = function () {
|
|
335
|
+
var _this = this;
|
|
336
|
+
this.dependentDraftService.saveDraftEvent
|
|
337
|
+
.pipe(takeUntil(this.ngUnsubscribe))
|
|
338
|
+
.subscribe(function (formData) {
|
|
339
|
+
_this.loading = true;
|
|
340
|
+
if (formData) {
|
|
341
|
+
var data = DependentDraft.fromDto(formData);
|
|
342
|
+
_this.formGroup.patchValue(data);
|
|
343
|
+
_this.onSaveDependent();
|
|
344
|
+
}
|
|
345
|
+
});
|
|
346
|
+
};
|
|
243
347
|
EmployeeDependentFormComponent.ctorParameters = function () { return [
|
|
244
348
|
{ type: TranslateService },
|
|
245
349
|
{ type: EmployeeDependentService },
|
|
246
350
|
{ type: SUrlService },
|
|
247
351
|
{ type: FocusService },
|
|
352
|
+
{ type: DependentDraftService },
|
|
248
353
|
{ type: ActivatedRoute },
|
|
249
354
|
{ type: ConfirmationService },
|
|
250
355
|
{ type: MessageService }
|
|
@@ -252,6 +357,9 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
252
357
|
__decorate([
|
|
253
358
|
Input()
|
|
254
359
|
], EmployeeDependentFormComponent.prototype, "employeeId", void 0);
|
|
360
|
+
__decorate([
|
|
361
|
+
Input()
|
|
362
|
+
], EmployeeDependentFormComponent.prototype, "admissionDraft", void 0);
|
|
255
363
|
__decorate([
|
|
256
364
|
Input()
|
|
257
365
|
], EmployeeDependentFormComponent.prototype, "closeSideBar", void 0);
|
|
@@ -259,11 +367,11 @@ var EmployeeDependentFormComponent = /** @class */ (function () {
|
|
|
259
367
|
Component({
|
|
260
368
|
// tslint:disable-next-line:component-selector
|
|
261
369
|
selector: "fnd-employee-dependent-form",
|
|
262
|
-
template: "<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\"
|
|
370
|
+
template: "<s-loading-state [loading]=\"loading\" blockWindow=\"true\"></s-loading-state>\n<s-sidebar [visible]=\"showSideBar\"\n (visibleChange)=\"showSideBar = !showSideBar\"\n [header]=\"'hcm_contract.employment_contract.employee_dependent_sidebar_title_' + isNewToLabel() | translate\">\n\n <s-steps [steps]=\"steps\" [activeIndex]=\"activeIndex\" (stepSelected)=\"onStepSelected($event)\"></s-steps>\n <form [formGroup]=\"formGroup\" >\n <div class=\"ui-fluid\">\n <!-- Dados pessoais -->\n <fnd-employee-dependent-personal-step [hidden]=\"activeIndex !== 0\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-personal-step>\n <!-- Dados complementaris -->\n <fnd-employee-dependent-complement-step [hidden]=\"activeIndex !== 1\"\n [parentFormGroup]=\"formGroup\"></fnd-employee-dependent-complement-step>\n\n </div>\n </form>\n <s-footer class=\"footer-sidebar-form-dependent\">\n <s-button (click)=\"onCancel()\" priority=\"link\" style=\"margin-right: auto\"\n [label]=\"'hcm_contract.employment_contract.cancel' | translate\"\n ></s-button>\n <div class=\"footer-end\">\n <s-button priority=\"secondary\"\n *ngIf=\"activeIndex !== 0\"\n iconClass=\"fa fa-arrow-left\"\n (onClick)=\"undoStep()\"\n [disabled]=\"activeIndex === 0\"\n [label]=\"'hcm_contract.employment_contract.employee_dependent_button_back' | translate\">\n </s-button>\n <s-button id=\"btn-draft\"\n label=\"{{ 'hcm_contract.employment_contract.btn_dependent_save_draft' | translate }}\"\n priority=\"secondary\"(click)=\"saveDependentDraft()\" [auxiliary]=\"false\"\n [disabled]=\"loading\"></s-button>\n <s-button\n class=\"btn-next\"\n [rightIconClass]=\"!activeIndex ? 'fa fa-arrow-right' : ''\"\n (onClick)=\"nextStep()\"\n [disabled]=\"loading\"\n [label]=\"this.buttonLabel\">\n </s-button>\n </div>\n </s-footer>\n</s-sidebar>\n<p-confirmDialog key=\"edit-dependent\"></p-confirmDialog>\n",
|
|
263
371
|
styles: [".tab-view-full{width:100%}.toggle-header-fieldset{display:flex!important;justify-content:space-between!important;align-items:center!important}.toggle-header-fieldset .ui-inputgroup span{margin-right:8px!important;font-size:14px;font-weight:400;line-height:21px;text-align:left;text-underline-position:from-font;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.footer-sidebar-form-dependent{display:flex;justify-content:space-between}.message-warn-admisison{padding-left:65px;font-size:14px}.message-warn-admisison p:first-of-type{font-weight:700}.btn-next>button{display:flex!important;flex-direction:row-reverse!important}.btn-next>button span{margin-left:5px!important}"]
|
|
264
372
|
})
|
|
265
373
|
], EmployeeDependentFormComponent);
|
|
266
374
|
return EmployeeDependentFormComponent;
|
|
267
375
|
}());
|
|
268
376
|
export { EmployeeDependentFormComponent };
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7QUFDMUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVF2SDtJQW9CSSx3Q0FDcUIsZ0JBQWtDLEVBQzNDLHdCQUFrRCxFQUN6QyxXQUF3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QThCO1FBTjFDLFNBQVMsQ0FBQztZQUNQLDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLHE2REFBdUQ7O1NBRTFELENBQUM7T0FDVyw4QkFBOEIsQ0FpUjFDO0lBQUQscUNBQUM7Q0FBQSxBQWpSRCxJQWlSQztTQWpSWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTVXJsU2VydmljZSB9IGZyb20gXCJAc2VuaW9yLWdlc3Rhby1wZXNzb2FzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgTG9jYWxlT3B0aW9ucywgU3RlcCwgU3RlcFNlbGVjdGlvbkV2ZW50LCBTdGVwU3RhdGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwicHJpbWVuZy9hcGlcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmluYWxpemUsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgT3BlblNpZGViYXJEdG8gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgUGVyc29uUmV0cmlldmVPdXRwdXQgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9kdG9zL3BlcnNvbi1yZXRyaWV2ZS5kdG9cIjtcbmltcG9ydCB7IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlL2VtcGxveWVlLWRlcGVuZGVudC1jb3JlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEZvY3VzU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvZm9jdXMvZm9jdXMuc2VydmljZVwiO1xuaW1wb3J0IHsgRGF0ZVZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlscy9kYXRlLXZhbGlkYXRvci9kYXRlLXZhbGlkYXRvclwiO1xuaW1wb3J0IHsgbWFwRm9ybVRvRGVwZW5kZW50U2F2ZSwgbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybSB9IGZyb20gXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLWNvbnZlcnRlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1mb3JtXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZW1wbG95ZWVJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VTaWRlQmFyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgcHVibGljIHBlcnNvbklkO1xuICAgIHB1YmxpYyBkZXBlbmRlbnRJZDtcbiAgICBwdWJsaWMgbG9hZGVkRGVwZW5kZW50OiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICBwdWJsaWMgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgICBwdWJsaWMgc3RlcHM6IFN0ZXBbXTtcbiAgICBwdWJsaWMgYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9idXR0b25fbmV4dFwiKTtcbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBsb2NhbGVDb25maWc6IExvY2FsZU9wdGlvbnM7XG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNVcmxTZXJ2aWNlOiBTVXJsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RlcHMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERhdGVWYWxpZGF0b3IuZ2V0RGF0ZUZvcm1hdEZyb21DYWxlbmRhcihkYXRhLmxvY2FsZUNvbmZpZy5jYWxlbmRhcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLmdldE9wZW5TaWRlQmFyQW5kU3RhcnRGb3JtKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9wZW5TaWRlYmFyRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50SWQgPSBkYXRhPy5kZXBlbmRlbnRJZDtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcnNvbklkID0gZGF0YT8ucGVyc29uSWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGE/LmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5lbmFibGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEucGVyc29uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyc29uUmV0cmlldmVJbmZvcm1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVTdGVwcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVyc29uYWxEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX3BlcnNvbmFsX2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNvbXBsZW1lbnREYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX2NvbXBsZW1lbnRfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAhdGhpcy5wZXJzb25JZCxcbiAgICAgICAgICAgIHN0YXRlOiBTdGVwU3RhdGUuRGVmYXVsdCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcGF5cm9sbERhdGEgPSB7XG4gICAgICAgICAgICBpZDogXCJwZXJzb25hbC1kYXRhLXN0ZXBcIixcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zaWRlYmFyX3N0ZXBfcGF5cm9sbF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc3RlcHMgPSBbcGVyc29uYWxEYXRhLCBjb21wbGVtZW50RGF0YSAvKnBheXJvbGxEYXRhKi9dO1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBlcnNvblJldHJpZXZlSW5mb3JtYXRpb24oKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnBlcnNvblJldHJpZXZlKHsgaWQ6IHRoaXMucGVyc29uSWQgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKSxcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChyZXNwb25zZTogUGVyc29uUmV0cmlldmVPdXRwdXQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYXBQZXJzb25SZXRyaWV2ZVRvRW1wbG95ZWVEZXBlbmRlbnRGb3JtKHJlc3BvbnNlLCB0aGlzLmVtcGxveWVlSWQsIHRoaXMuZGF0ZUZvcm1hdCk7XG4gICAgICAgICAgICB0aGlzLmxvYWRlZERlcGVuZGVudCA9IHsuLi5kYXRhfTtcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldERlcGVuZGVudEZvcm1EYXRhKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgb25TYXZlRGVwZW5kZW50KCkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCBkYXRhQ29udmVydGVkID0gbWFwRm9ybVRvRGVwZW5kZW50U2F2ZShcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCksXG4gICAgICAgICAgICB0aGlzLmVtcGxveWVlSWQsXG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudElkLFxuICAgICAgICAgICAgdGhpcy5wZXJzb25JZCxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5lbXBsb3llZURwZW5kZW50U2F2ZShkYXRhQ29udmVydGVkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKGRhdGE/LmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRNZXNzYWdlU3VjZXNzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VTaWRlQmFyLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGFkZE1lc3NhZ2VTdWNlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgIHNldmVyaXR5OiBcInN1Y2Nlc3NcIixcbiAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3Quc3VjY2Vzc190b29sdGlwXCIpLFxuICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmVtcGxveWVlX2RlcGVuZGVudF9zYXZlX3N1Y2Nlc3NcIiksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IEZvcm1Hcm91cCkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbnRyb2wpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvY3VzU2VydmljZS5mb2N1c0ZpcnN0SW52YWxpZElucHV0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIHVuZG9TdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUJhc2ljU3RlcCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtQmFzaWNTdGVwKTtcblxuICAgICAgICAgICAgaWYgKCFmb3JtQmFzaWNTdGVwLnZhbGlkICYmICF0aGlzLmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cFwiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LnNhdmVcIik7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19pbnZhbGlkX2Zvcm1fZ3JvdXBcIiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kZXBlbmRlbnRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMub25CZWZvcmVTYXZlKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25TYXZlRGVwZW5kZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRm9ybUNoYW5nZWQoYmVmb3JlRGF0YTogYW55LCBhZnRlckRhdGE6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWJlZm9yZURhdGE/LnBlcnNvbkRlcGVuZGVudERhdGEgfHwgIWFmdGVyRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGtleXNUb0NoZWNrID0gW1xuICAgICAgICAgICAgXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIixcbiAgICAgICAgICAgIFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGFcIixcbiAgICAgICAgICAgIFwiZG9jdW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCJcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIGtleXNUb0NoZWNrLnNvbWUoZm9ybUdyb3VwID0+XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhiZWZvcmVEYXRhLnBlcnNvbkRlcGVuZGVudERhdGFbZm9ybUdyb3VwXSB8fCB7fSkuc29tZShrZXkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVZhbHVlID0gYmVmb3JlRGF0YS5wZXJzb25EZXBlbmRlbnREYXRhW2Zvcm1Hcm91cF1ba2V5XSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFmdGVyVmFsdWUgPSBhZnRlckRhdGFbZm9ybUdyb3VwXT8uW2tleV0gPz8gXCJcIjtcbiAgICAgICAgICAgICAgICByZXR1cm4gYmVmb3JlVmFsdWUgIT09IGFmdGVyVmFsdWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ldygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlcGVuZGVudElkO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc05ld1RvTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNOZXcoKSA/IFwiY3JlYXRlXCIgOiBcImVkaXRcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TdGVwU2VsZWN0ZWQoZXZlbnQ6IFN0ZXBTZWxlY3Rpb25FdmVudCkge1xuICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXBsZW1lbnRGb3JtID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWNvbXBsZW1lbnRGb3JtLnZhbGlkICYmICghdGhpcy5kZXBlbmRlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb21wbGVtZW50Rm9ybSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV2ZW50LmluZGV4ID09PSAxKSB7XG4gICAgICAgICAgICBjb25zdCBiYXNpY0Zvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGFcIikgYXMgRm9ybUdyb3VwO1xuXG4gICAgICAgICAgICBpZiAoIWJhc2ljRm9ybS52YWxpZCAmJiAoIXRoaXMuZGVwZW5kZW50SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoYmFzaWNGb3JtKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gZXZlbnQuaW5kZXg7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJlZm9yZVNhdmUoKSB7XG4gICAgICAgIGlmICghdGhpcy5mb3JtR3JvdXAuZGlydHkgfHwgIXRoaXMuaXNGb3JtQ2hhbmdlZCh0aGlzLmxvYWRlZERlcGVuZGVudCwgdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb3NlU2lkZWJhcldpdGhTdWNjZXNzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtZXNzYWdlID0gYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICBcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ190ZXh0X3BlcnNvblwiXG4gICAgICAgICl9XFxuJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ19jb25maXJtYXRpb25cIil9YDtcblxuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybSh7XG4gICAgICAgICAgICBtZXNzYWdlLFxuICAgICAgICAgICAga2V5OiBcImVkaXQtZGVwZW5kZW50XCIsXG4gICAgICAgICAgICByZWplY3RMYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZ2VuZXJpY19ub1wiKSxcbiAgICAgICAgICAgIGFjY2VwdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3llc1wiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHRoaXMub25TYXZlRGVwZW5kZW50KCksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VTaWRlYmFyV2l0aFN1Y2Nlc3MoKSB7XG4gICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgdGhpcy5hZGRNZXNzYWdlU3VjZXNzKCk7XG4gICAgfVxuXG59XG4iXX0=
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdCLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sRUFBMkMsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzFILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUs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LENBQUM7WUFDcEIsSUFBSSxRQUFRLEVBQUU7Z0JBQ1YsSUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDOUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLEtBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0JBM1dzQyxnQkFBZ0I7Z0JBQ2pCLHdCQUF3QjtnQkFDNUIsV0FBVztnQkFDbkIsWUFBWTtnQkFDTSxxQkFBcUI7Z0JBQzlDLGNBQWM7Z0JBQ0EsbUJBQW1CO2dCQUN4QixjQUFjOztJQTdCMUM7UUFEQyxLQUFLLEVBQUU7c0VBQ2tCO0lBRTFCO1FBREMsS0FBSyxFQUFFOzBFQUNzQjtJQUU5QjtRQURDLEtBQUssRUFBRTt3RUFDNEI7SUFQM0IsOEJBQThCO1FBTjFDLFNBQVMsQ0FBQztZQUNQLDhDQUE4QztZQUM5QyxRQUFRLEVBQUUsNkJBQTZCO1lBQ3ZDLDZ5RUFBdUQ7O1NBRTFELENBQUM7T0FDVyw4QkFBOEIsQ0FzWTFDO0lBQUQscUNBQUM7Q0FBQSxBQXRZRCxJQXNZQztTQXRZWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBTVXJsU2VydmljZSB9IGZyb20gXCJAc2VuaW9yLWdlc3Rhby1wZXNzb2FzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVTcGVjaWZpY0NvbnRyb2xzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IExvY2FsZU9wdGlvbnMsIFN0ZXAsIFN0ZXBTZWxlY3Rpb25FdmVudCwgU3RlcFN0YXRlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpbmFsaXplLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE9wZW5TaWRlYmFyRHRvIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9lbXBsb3llZS1kZXBlbmRlbnQtc2F2ZS1kdG9cIjtcbmltcG9ydCB7IFBlcnNvblJldHJpZXZlT3V0cHV0IH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZHRvcy9wZXJzb24tcmV0cmlldmUuZHRvXCI7XG5pbXBvcnQgeyBEZXBlbmRlbnREcmFmdCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2RlcGVuZGVudC1kcmFmdC9kZXBlbmRlbnQtZHJhZnRcIjtcbmltcG9ydCB7IERlcGVuZGVudERyYWZ0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2VudGl0aWVzL2RlcGVuZGVudC1kcmFmdC9kZXBlbmRlbnQtZHJhZnQuc2VydmljZVwiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRm9jdXNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9mb2N1cy9mb2N1cy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBEYXRlVmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2RhdGUtdmFsaWRhdG9yL2RhdGUtdmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBtYXBGb3JtVG9EZXBlbmRlbnRTYXZlLCBtYXBQZXJzb25SZXRyaWV2ZVRvRW1wbG95ZWVEZXBlbmRlbnRGb3JtIH0gZnJvbSBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LWZvcm0tY29udmVydGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogXCJmbmQtZW1wbG95ZWUtZGVwZW5kZW50LWZvcm1cIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2VtcGxveWVlLWRlcGVuZGVudC1mb3JtLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZURlcGVuZGVudEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBlbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgYWRtaXNzaW9uRHJhZnQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIGNsb3NlU2lkZUJhcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBwZXJzb25JZDtcbiAgICBwdWJsaWMgZGVwZW5kZW50SWQ7XG4gICAgcHVibGljIGxvYWRlZERlcGVuZGVudDogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgcHVibGljIGFjdGl2ZUluZGV4OiBudW1iZXI7XG4gICAgcHVibGljIHN0ZXBzOiBTdGVwW107XG4gICAgcHVibGljIGJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfYnV0dG9uX25leHRcIik7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGRyYWZ0SWQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcbiAgICB9KTtcblxuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBsb2NhbGVDb25maWc6IExvY2FsZU9wdGlvbnM7XG4gICAgcHJpdmF0ZSBkYXRlRm9ybWF0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVtcGxveWVlRGVwZW5kZW50U2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNVcmxTZXJ2aWNlOiBTVXJsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmb2N1c1NlcnZpY2U6IEZvY3VzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZXBlbmRlbnREcmFmdFNlcnZpY2U6IERlcGVuZGVudERyYWZ0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgY29uZmlybWF0aW9uU2VydmljZTogQ29uZmlybWF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlU3RlcHMoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3V0ZURhdGFDaGFuZ2UoZGF0YTogYW55KSB7XG4gICAgICAgIHRoaXMubG9jYWxlQ29uZmlnID0gZGF0YS5sb2NhbGVDb25maWc7XG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCA9IERhdGVWYWxpZGF0b3IuZ2V0RGF0ZUZvcm1hdEZyb21DYWxlbmRhcihkYXRhLmxvY2FsZUNvbmZpZy5jYWxlbmRhcik7XG4gICAgfVxuXG4gICAgcHVibGljIHVuZG9TdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4LS07XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRTdGVwKCkge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUJhc2ljU3RlcCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtQmFzaWNTdGVwKTtcblxuICAgICAgICAgICAgaWYgKCFmb3JtQmFzaWNTdGVwLnZhbGlkICYmICF0aGlzLmRlcGVuZGVudElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lcnJvclwiKSxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX2ludmFsaWRfZm9ybV9ncm91cFwiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RlcHNbMV0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2J0bl9zdGVwX2xhc3RcIik7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4Kys7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtR3JvdXApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1zZyA9IHRoaXMucmVxdWlyZWRGaWVsZHNTdGVwMSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfaW52YWxpZF9mb3JtX2dyb3VwX3N0ZXBfMVwiKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfaW52YWxpZF9mb3JtX2dyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgICAgIHN1bW1hcnk6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZXJyb3JcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogbXNnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGVwZW5kZW50SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQmVmb3JlU2F2ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZURlcGVuZGVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGlzTmV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuZGVwZW5kZW50SWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGlzTmV3VG9MYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pc05ldygpID8gXCJjcmVhdGVcIiA6IFwiZWRpdFwiO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN0ZXBTZWxlY3RlZChldmVudDogU3RlcFNlbGVjdGlvbkV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5pbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgY29uc3QgY29tcGxlbWVudEZvcm0gPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJjb21wbGVtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgICAgIGlmICghY29tcGxlbWVudEZvcm0udmFsaWQgJiYgKCF0aGlzLmRlcGVuZGVudElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVBbGxGb3JtRmllbGRzKGNvbXBsZW1lbnRGb3JtKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmJ1dHRvbkxhYmVsID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfYnV0dG9uX25leHRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZXZlbnQuaW5kZXggPT09IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGJhc2ljRm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiKSBhcyBGb3JtR3JvdXA7XG5cbiAgICAgICAgICAgIGlmICghYmFzaWNGb3JtLnZhbGlkICYmICghdGhpcy5kZXBlbmRlbnRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhiYXNpY0Zvcm0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBldmVudC5pbmRleDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2F2ZURlcGVuZGVudERyYWZ0KCk6IGFueSB7XG4gICAgICAgIHZhbGlkYXRlU3BlY2lmaWNDb250cm9scyh0aGlzLmZvcm1Hcm91cCwgW1xuICAgICAgICAgICAgXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZnVsbE5hbWVcIixcbiAgICAgICAgICAgIFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGEua2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGVcIixcbiAgICAgICAgXSk7XG5cbiAgICAgICAgY29uc3QgZnVsbE5hbWUgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZnVsbE5hbWVcIik7XG4gICAgICAgIGNvbnN0IGtpbnNoaXBEZXBlbmRlbnREZWdyZWVUeXBlID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwiY29tcGxlbWVudERlcGVuZGVudFBlcnNvbkRhdGEua2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGVcIik7XG4gICAgICAgIGlmICgodGhpcy5hY3RpdmVJbmRleCA9PT0gMCAmJiAhZnVsbE5hbWUudmFsaWQpXG4gICAgICAgICAgICB8fCAodGhpcy5hY3RpdmVJbmRleCA9PT0gMSAmJiAha2luc2hpcERlcGVuZGVudERlZ3JlZVR5cGUudmFsaWQpXG4gICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKGZ1bGxOYW1lLnZhbGlkICYmIHRoaXMuYWN0aXZlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2J0bl9zdGVwX2xhc3RcIik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmVJbmRleCsrO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgIHRoaXMuZ2V0U2F2ZU9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpLnNldFZhbHVlKHJlcz8uaWQpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX3RvYXN0X3N1Y2Nlc3NcIiksXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZHJhZnRfZW1wbG95ZWVfZm9ybV9zYXZlX3N1Y2Vzc1wiKSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3Vic2NyaWJlRXZlbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5nZXRPcGVuU2lkZUJhckFuZFN0YXJ0Rm9ybSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IE9wZW5TaWRlYmFyRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy5idXR0b25MYWJlbCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2J1dHRvbl9uZXh0XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50SWQgPSBkYXRhPy5kZXBlbmRlbnRJZDtcbiAgICAgICAgICAgICAgICB0aGlzLnBlcnNvbklkID0gZGF0YT8ucGVyc29uSWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGE/LmRlcGVuZGVudElkICYmICFkYXRhLmRlcGVuZGVudERyYWZ0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmVuYWJsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5wZXJzb25JZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGE/LnBlcnNvbklkICYmICFkYXRhLmRlcGVuZGVudERyYWZ0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RlcHNbMF0uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwc1sxXS5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YT8uZGVwZW5kZW50RHJhZnRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWREcmFmdChkYXRhLmRlcGVuZGVudERyYWZ0SWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNob3dTaWRlQmFyID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMub25TYXZlQnlMaXN0RHJhZnQoKTtcblxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU3RlcHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcnNvbmFsRGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9wZXJzb25hbF9kYXRhXCIpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBjb21wbGVtZW50RGF0YSA9IHtcbiAgICAgICAgICAgIGlkOiBcInBlcnNvbmFsLWRhdGEtc3RlcFwiLFxuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NpZGViYXJfc3RlcF9jb21wbGVtZW50X2RhdGFcIiksXG4gICAgICAgICAgICBkaXNhYmxlZDogIXRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICBzdGF0ZTogU3RlcFN0YXRlLkRlZmF1bHQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHBheXJvbGxEYXRhID0ge1xuICAgICAgICAgICAgaWQ6IFwicGVyc29uYWwtZGF0YS1zdGVwXCIsXG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfc2lkZWJhcl9zdGVwX3BheXJvbGxfZGF0YVwiKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgc3RhdGU6IFN0ZXBTdGF0ZS5EZWZhdWx0LFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnN0ZXBzID0gW3BlcnNvbmFsRGF0YSwgY29tcGxlbWVudERhdGEgLypwYXlyb2xsRGF0YSovXTtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwZXJzb25SZXRyaWV2ZUluZm9ybWF0aW9uKCkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmVtcGxveWVlRGVwZW5kZW50U2VydmljZS5wZXJzb25SZXRyaWV2ZSh7IGlkOiB0aGlzLnBlcnNvbklkIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSksXG4gICAgICAgICAgICApLnN1YnNjcmliZSgocmVzcG9uc2U6IFBlcnNvblJldHJpZXZlT3V0cHV0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFwUGVyc29uUmV0cmlldmVUb0VtcGxveWVlRGVwZW5kZW50Rm9ybShyZXNwb25zZSwgdGhpcy5lbXBsb3llZUlkLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgdGhpcy5sb2FkZWREZXBlbmRlbnQgPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgICAgIHRoaXMuZW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLnNldERlcGVuZGVudEZvcm1EYXRhKGRhdGEpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uU2F2ZURlcGVuZGVudCgpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZGF0YUNvbnZlcnRlZCA9IG1hcEZvcm1Ub0RlcGVuZGVudFNhdmUoXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpLFxuICAgICAgICAgICAgdGhpcy5lbXBsb3llZUlkLFxuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbnRJZCxcbiAgICAgICAgICAgIHRoaXMucGVyc29uSWQsXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQsXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbXBsb3llZURlcGVuZGVudFNlcnZpY2UuZW1wbG95ZWVEcGVuZGVudFNhdmUoZGF0YUNvbnZlcnRlZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRyYWZ0SWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJkcmFmdElkXCIpPy52YWx1ZTtcbiAgICAgICAgICAgIGlmIChkYXRhPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVzc2FnZVN1Y2VzcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1NpZGVCYXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlU2lkZUJhci5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChkcmFmdElkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlRHJhZnQoZHJhZnRJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlbGV0ZURyYWZ0KGRyYWZ0SWQpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuZGVsZXRlKGRyYWZ0SWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVNpZGVCYXIuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTWVzc2FnZVN1Y2VzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xuICAgICAgICAgICAgc2V2ZXJpdHk6IFwic3VjY2Vzc1wiLFxuICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5zdWNjZXNzX3Rvb2x0aXBcIiksXG4gICAgICAgICAgICBkZXRhaWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X3NhdmVfc3VjY2Vzc1wiKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUFsbEZvcm1GaWVsZHMoZm9ybUdyb3VwOiBGb3JtR3JvdXApIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGZpZWxkKTtcbiAgICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb2N1c1NlcnZpY2UuZm9jdXNGaXJzdEludmFsaWRJbnB1dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVxdWlyZWRGaWVsZHNTdGVwMSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5mdWxsTmFtZVwiKT8udmFsdWUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5iaXJ0aERhdGVcIik/LnZhbHVlICYmXG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoXCJiYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEuZ2VuZGVyVHlwZVwiKT8udmFsdWUgJiZcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YS5jcGZcIik/LnZhbHVlO1xuXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Zvcm1DaGFuZ2VkKGJlZm9yZURhdGE6IGFueSwgYWZ0ZXJEYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCFiZWZvcmVEYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhIHx8ICFhZnRlckRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzVG9DaGVjayA9IFtcbiAgICAgICAgICAgIFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImNvbXBsZW1lbnREZXBlbmRlbnRQZXJzb25EYXRhXCIsXG4gICAgICAgICAgICBcImRvY3VtZW50RGVwZW5kZW50UGVyc29uRGF0YVwiLFxuICAgICAgICBdO1xuICAgICAgICByZXR1cm4ga2V5c1RvQ2hlY2suc29tZShmb3JtR3JvdXAgPT5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGJlZm9yZURhdGEucGVyc29uRGVwZW5kZW50RGF0YVtmb3JtR3JvdXBdIHx8IHt9KS5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlVmFsdWUgPSBiZWZvcmVEYXRhLnBlcnNvbkRlcGVuZGVudERhdGFbZm9ybUdyb3VwXVtrZXldID8/IFwiXCI7XG4gICAgICAgICAgICAgICAgY29uc3QgYWZ0ZXJWYWx1ZSA9IGFmdGVyRGF0YVtmb3JtR3JvdXBdPy5ba2V5XSA/PyBcIlwiO1xuICAgICAgICAgICAgICAgIHJldHVybiBiZWZvcmVWYWx1ZSAhPT0gYWZ0ZXJWYWx1ZTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CZWZvcmVTYXZlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmRpcnR5IHx8ICF0aGlzLmlzRm9ybUNoYW5nZWQodGhpcy5sb2FkZWREZXBlbmRlbnQsIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9zZVNpZGViYXJXaXRoU3VjY2VzcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5hZG1pc3Npb25fZW1wbG95ZWVfZm9ybV9kaWFsb2dfdGV4dF9wZXJzb25cIixcbiAgICAgICAgKX1cXG4ke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2VtcGxveWVlX2Zvcm1fZGlhbG9nX2NvbmZpcm1hdGlvblwiKX1gO1xuXG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgICBrZXk6IFwiZWRpdC1kZXBlbmRlbnRcIixcbiAgICAgICAgICAgIHJlamVjdExhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9nZW5lcmljX25vXCIpLFxuICAgICAgICAgICAgYWNjZXB0TGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuYWRtaXNzaW9uX2dlbmVyaWNfeWVzXCIpLFxuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcImhjbV9jb250cmFjdC5lbXBsb3ltZW50X2NvbnRyYWN0LmFkbWlzc2lvbl9lbXBsb3llZV9mb3JtX2RpYWxvZ190aXRsZVwiKSxcbiAgICAgICAgICAgIGFjY2VwdDogKCkgPT4gdGhpcy5vblNhdmVEZXBlbmRlbnQoKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbG9zZVNpZGViYXJXaXRoU3VjY2VzcygpIHtcbiAgICAgICAgdGhpcy5zaG93U2lkZUJhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNsb3NlU2lkZUJhci5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmFkZE1lc3NhZ2VTdWNlc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWREcmFmdChkcmFmdElkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuZ2V0KGRyYWZ0SWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJhZnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldChcImRyYWZ0SWRcIik/LnNldFZhbHVlKGRyYWZ0SWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBEZXBlbmRlbnREcmFmdC5mcm9tRHRvKGRyYWZ0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTYXZlT2JzZXJ2YWJsZSgpIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGR0byA9IERlcGVuZGVudERyYWZ0LnRvRHRvKGZvcm0sIHRoaXMuZW1wbG95ZWVJZCwgdGhpcy5hZG1pc3Npb25EcmFmdCk7XG4gICAgICAgIGxldCBvYnNlcnZhYmxlO1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImRyYWZ0SWRcIik/LnZhbHVlO1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIG9ic2VydmFibGUgPSB0aGlzLmRlcGVuZGVudERyYWZ0U2VydmljZS51cGRhdGUoaWQsIGR0byk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYnNlcnZhYmxlID0gdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2UuaW5zZXJ0KGR0byk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvblNhdmVCeUxpc3REcmFmdCgpIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnREcmFmdFNlcnZpY2Uuc2F2ZURyYWZ0RXZlbnRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmb3JtRGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoZm9ybURhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IERlcGVuZGVudERyYWZ0LmZyb21EdG8oZm9ybURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uU2F2ZURlcGVuZGVudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxufVxuIl19
|
|
@@ -98,4 +98,4 @@ var EmployeeDependentPersonalStepComponent = /** @class */ (function () {
|
|
|
98
98
|
return EmployeeDependentPersonalStepComponent;
|
|
99
99
|
}());
|
|
100
100
|
export { EmployeeDependentPersonalStepComponent };
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRztJQWlCSSxnREFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUp0RCxpQkFNQztRQUxVLHFCQUFnQixHQUFoQixnQkFB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Z0JBakU0QixnQkFBZ0I7Z0JBQ2pCLGNBQWM7Z0JBQ2pCLFdBQVc7Z0JBQ04sd0JBQXdCOztJQWhCdEQ7UUFEQyxLQUFLLEVBQUU7bUZBQzBCO0lBTHpCLHNDQUFzQztRQUpsRCxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELHExTUFBZ0U7U0FDbkUsQ0FBQztPQUNXLHNDQUFzQyxDQXFGbEQ7SUFBRCw2Q0FBQztDQUFBLEFBckZELElBcUZDO1NBckZZLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zL1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudEZvcm1EdG8gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUvZW1wbG95ZWUtZGVwZW5kZW50LWNvcmUuc2VydmljZVwiO1xuaW1wb3J0IHsgRW51bVRpcFNleCB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb3JlL2VudW1zL2VudW0tdGlwLXNleFwiO1xuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvdmFsaWRhdG9ycy9nZW5lcmljLXZhbGlkYXRvclwiO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tIFwibW9tZW50XCI7XG5jb25zdCBtb21lbnQgPSBtb21lbnRfOyAvLyBASEFDSyBOZWNlc3NhcnkgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vcm9sbHVwL3JvbGx1cC9pc3N1ZXMvNjcwXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImZuZC1lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50Lmh0bWxcIixcbn0pXG5leHBvcnQgY2xhc3MgRW1wbG95ZWVEZXBlbmRlbnRQZXJzb25hbFN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IG1heGxlbmd0aCA9IDgwO1xuICAgIHJlYWRvbmx5IGVtYWlsTWF4ID0gNTAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFyZW50Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gICAgcHVibGljIGxvY2FsZUNvbmZpZzogYW55ID0ge307XG4gICAgcHVibGljIG5nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgIHB1YmxpYyBnZW5kZXJUeXBlOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBFbnVtVGlwU2V4IH1bXSA9IE9iamVjdC5rZXlzKEVudW1UaXBTZXgpLm1hcCgoaXRlbTogRW51bVRpcFNleCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFwiaGNtX2NvbnRyYWN0LmVtcGxveW1lbnRfY29udHJhY3QuZW1wbG95ZWVfZGVwZW5kZW50X2dlbmRlcl90eXBlX1wiICsgaXRlbSksXG4gICAgICAgICAgICB2YWx1ZTogaXRlbSxcbiAgICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2U6IEVtcGxveWVlRGVwZW5kZW50U2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcmVhdGVGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5wYXJlbnRGb3JtR3JvdXAuYWRkQ29udHJvbChcImJhc2ljRGVwZW5kZW50UGVyc29uRGF0YVwiLCB0aGlzLmZvcm1Hcm91cCk7XG4gICAgICAgIHRoaXMucm91dGUuZGF0YVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHRoaXMub25Sb3V0ZURhdGFDaGFuZ2UoZGF0YSkpO1xuXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVGb3JtR3JvdXAoKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBiaXJ0aERhdGU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy52YWxpZGF0ZUJpcnRoRGF0ZUlzQWZ0ZXJOb3coKV0pLFxuICAgICAgICAgICAgY3BmOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBHZW5lcmljVmFsaWRhdG9yLmlzVmFsaWRDcGYoKV0pLFxuICAgICAgICAgICAgZnVsbE5hbWU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKV0pKSxcbiAgICAgICAgICAgIGVtYWlsOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IG51bGwgfSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuZW1haWxNYXgpLCB0aGlzLnZhbGlkYXRvckVtYWlsc0xpc3QoKV0pKSxcbiAgICAgICAgICAgIGdlbmRlclR5cGU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBuaWNrbmFtZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlQmlydGhEYXRlSXNBZnRlck5vdygpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiaXJ0aERhdGUgPSBtb21lbnQoY29udHJvbC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKGJpcnRoRGF0ZS5pc0FmdGVyKG1vbWVudCgpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBiaXJ0aERhdGVJc0FmdGVyOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWJzY3JpYmVFdmVudHMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5nZXREZXBlbmRlbnRGb3JtRGF0YSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBlcnNvbkRhdGE6IEVtcGxveWVlRGVwZW5kZW50Rm9ybUR0bykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLnBhdGNoVmFsdWUocGVyc29uRGF0YT8ucGVyc29uRGVwZW5kZW50RGF0YT8uYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblJvdXRlRGF0YUNoYW5nZShkYXRhOiBhbnkpIHtcbiAgICAgICAgdGhpcy5sb2NhbGVDb25maWcgPSBkYXRhLmxvY2FsZUNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdG9yRW1haWxzTGlzdCgpOiBWYWxpZGF0b3JGbiB7XG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIS9eW1xcdy1cXC5dK0AoW1xcdy1dK1xcLikrW1xcdy1dezIsNH0kLy50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGVtYWlsOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG4gICAgfVxuXG59XG4iXX0=
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wbG95ZWUtZGVwZW5kZW50LXBlcnNvbmFsLXN0ZXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1nZXN0YW8tcGVzc29hcy9oY20tY29udHJhY3QtZW1wbG95ZWUtaGlzdG9yeS8iLCJzb3VyY2VzIjpbImxpYi9lbXBsb3llZS1kZXBlbmRlbnQvZm9ybS9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUZBQW1GLENBQUM7QUFDN0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLElBQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDLHlFQUF5RTtBQU1qRztJQWlCSSxnREFDVyxnQkFBa0MsRUFDeEIsS0FBcUIsRUFDOUIsV0FBd0IsRUFDZixPQUFpQztRQUp0RCxpQkFNQztRQUxVLHFCQUFnQixHQUFoQixnQkFB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Z0JBakU0QixnQkFBZ0I7Z0JBQ2pCLGNBQWM7Z0JBQ2pCLFdBQVc7Z0JBQ04sd0JBQXdCOztJQWhCdEQ7UUFEQyxLQUFLLEVBQUU7bUZBQzBCO0lBTHpCLHNDQUFzQztRQUpsRCxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsc0NBQXNDO1lBQ2hELHExTUFBZ0U7U0FDbkUsQ0FBQztPQUNXLHNDQUFzQyxDQW9GbEQ7SUFBRCw2Q0FBQztDQUFBLEFBcEZELElBb0ZDO1NBcEZZLHNDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zL1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudEZvcm1EdG8gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9kdG9zL2VtcGxveWVlLWRlcGVuZGVudC1zYXZlLWR0b1wiO1xuaW1wb3J0IHsgRGVwZW5kZW50RHJhZnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW50aXRpZXMvZGVwZW5kZW50LWRyYWZ0L2RlcGVuZGVudC1kcmFmdC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFbXBsb3llZURlcGVuZGVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29yZS9lbnRpdGllcy9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS9lbXBsb3llZS1kZXBlbmRlbnQtY29yZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBFbnVtVGlwU2V4IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvcmUvZW51bXMvZW51bS10aXAtc2V4XCI7XG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC92YWxpZGF0b3JzL2dlbmVyaWMtdmFsaWRhdG9yXCI7XG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gXCJtb21lbnRcIjtcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87IC8vIEBIQUNLIE5lY2Vzc2FyeSBiZWNhdXNlIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9yb2xsdXAvcm9sbHVwL2lzc3Vlcy82NzBcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZm5kLWVtcGxveWVlLWRlcGVuZGVudC1wZXJzb25hbC1zdGVwXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9lbXBsb3llZS1kZXBlbmRlbnQtcGVyc29uYWwtc3RlcC5jb21wb25lbnQuaHRtbFwiLFxufSlcbmV4cG9ydCBjbGFzcyBFbXBsb3llZURlcGVuZGVudFBlcnNvbmFsU3RlcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgbWF4bGVuZ3RoID0gODA7XG4gICAgcmVhZG9ubHkgZW1haWxNYXggPSA1MDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICAgIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgICBwdWJsaWMgbG9jYWxlQ29uZmlnOiBhbnkgPSB7fTtcbiAgICBwdWJsaWMgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHVibGljIGdlbmRlclR5cGU6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEVudW1UaXBTZXggfVtdID0gT2JqZWN0LmtleXMoRW51bVRpcFNleCkubWFwKChpdGVtOiBFbnVtVGlwU2V4KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJoY21fY29udHJhY3QuZW1wbG95bWVudF9jb250cmFjdC5lbXBsb3llZV9kZXBlbmRlbnRfZ2VuZGVyX3R5cGVfXCIgKyBpdGVtKSxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLFxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZTogRW1wbG95ZWVEZXBlbmRlbnRTZXJ2aWNlLFxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xuICAgICAgICB0aGlzLnBhcmVudEZvcm1Hcm91cC5hZGRDb250cm9sKFwiYmFzaWNEZXBlbmRlbnRQZXJzb25EYXRhXCIsIHRoaXMuZm9ybUdyb3VwKTtcbiAgICAgICAgdGhpcy5yb3V0ZS5kYXRhXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4gdGhpcy5vblJvdXRlRGF0YUNoYW5nZShkYXRhKSk7XG5cbiAgICAgICAgdGhpcy5zdWJzY3JpYmVFdmVudHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUZvcm1Hcm91cCgpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGJpcnRoRGF0ZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB0aGlzLnZhbGlkYXRlQmlydGhEYXRlSXNBZnRlck5vdygpXSksXG4gICAgICAgICAgICBjcGY6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogZmFsc2UgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENwZigpXSksXG4gICAgICAgICAgICBmdWxsTmFtZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhsZW5ndGgpXSkpLFxuICAgICAgICAgICAgZW1haWw6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiBudWxsLCBkaXNhYmxlZDogbnVsbCB9LFxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5lbWFpbE1heCksIHRoaXMudmFsaWRhdG9yRW1haWxzTGlzdCgpXSkpLFxuICAgICAgICAgICAgZ2VuZGVyVHlwZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHsgdmFsdWU6IG51bGwsIGRpc2FibGVkOiBmYWxzZSB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIG5pY2tuYW1lOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woeyB2YWx1ZTogbnVsbCwgZGlzYWJsZWQ6IGZhbHNlIH0sIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdmFsaWRhdGVCaXJ0aERhdGVJc0FmdGVyTm93KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJpcnRoRGF0ZSA9IG1vbWVudChjb250cm9sLnZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoYmlydGhEYXRlLmlzQWZ0ZXIobW9tZW50KCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGJpcnRoRGF0ZUlzQWZ0ZXI6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmliZUV2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmdldERlcGVuZGVudEZvcm1EYXRhKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGVyc29uRGF0YTogRW1wbG95ZWVEZXBlbmRlbnRGb3JtRHRvKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucGF0Y2hWYWx1ZShwZXJzb25EYXRhPy5wZXJzb25EZXBlbmRlbnREYXRhPy5iYXNpY0RlcGVuZGVudFBlcnNvbkRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUm91dGVEYXRhQ2hhbmdlKGRhdGE6IGFueSkge1xuICAgICAgICB0aGlzLmxvY2FsZUNvbmZpZyA9IGRhdGEubG9jYWxlQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0b3JFbWFpbHNMaXN0KCk6IFZhbGlkYXRvckZuIHtcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICAgICAgICBpZiAoY29udHJvbC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmICghL15bXFx3LVxcLl0rQChbXFx3LV0rXFwuKStbXFx3LV17Miw0fSQvLnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgZW1haWw6IHRydWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|