@netgrif/components-core 7.0.0-beta.1 → 7.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/assets/i18n/de.json +1 -0
- package/esm2022/assets/i18n/en.json +1 -0
- package/esm2022/assets/i18n/sk.json +1 -0
- package/esm2022/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.mjs +3 -3
- package/esm2022/lib/data-fields/file-field/file-default-field/abstract-file-default-field.component.mjs +2 -2
- package/esm2022/lib/data-fields/file-list-field/file-list-default-field/abstract-file-list-default-field.component.mjs +2 -2
- package/esm2022/lib/data-fields/models/abstract-file-field-default-component.mjs +9 -1
- package/esm2022/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.mjs +4 -4
- package/esm2022/lib/navigation/model/uri-resource.mjs +1 -1
- package/esm2022/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +11 -11
- package/esm2022/lib/navigation/service/uri.service.mjs +10 -10
- package/esm2022/lib/resources/engine-endpoint/public/public-task-resource.service.mjs +2 -2
- package/esm2022/lib/side-menu/content-components/import-net/abstract-import-net.component.mjs +2 -2
- package/esm2022/lib/task-content/services/task-content.service.mjs +14 -48
- package/esm2022/lib/user/services/user.service.mjs +11 -4
- package/esm2022/lib/view/case-view/components/case-list-paginator/abstract-case-list-paginator.component.mjs +3 -1
- package/esm2022/lib/view/case-view/service/case-view-service.mjs +23 -2
- package/fesm2022/netgrif-components-core.mjs +86 -79
- package/fesm2022/netgrif-components-core.mjs.map +1 -1
- package/lib/data-fields/enumeration-field/enumeration-caseref-field/abstract-enumeration-caseref-field.component.d.ts +1 -1
- package/lib/data-fields/models/abstract-file-field-default-component.d.ts +1 -0
- package/lib/navigation/model/uri-resource.d.ts +1 -2
- package/lib/task-content/services/task-content.service.d.ts +2 -4
- package/lib/user/services/user.service.d.ts +3 -1
- package/lib/view/case-view/service/case-view-service.d.ts +2 -0
- package/package.json +1 -1
- package/src/assets/i18n/de.json +1 -0
- package/src/assets/i18n/en.json +1 -0
- package/src/assets/i18n/sk.json +1 -0
|
@@ -177,19 +177,18 @@ export class TaskContentService {
|
|
|
177
177
|
if (!this._task || !this._task.dataGroups) {
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
// todo actions owner zbytočný?
|
|
181
180
|
const frontendActions = chFields.taskId === this.task.stringId && chFields[TaskContentService.FRONTEND_ACTIONS_KEY];
|
|
182
181
|
Object.keys(chFields).forEach(changedField => {
|
|
183
|
-
if (this.isFieldInTask(chFields.taskId, changedField)) {
|
|
182
|
+
if (chFields.taskId === this._task.stringId && this.isFieldInTask(chFields.taskId, changedField)) {
|
|
184
183
|
this.updateField(chFields, this.taskFieldsIndex[chFields.taskId].fields[changedField], frontendActions);
|
|
185
184
|
}
|
|
186
|
-
else if (!!this.getReferencedTaskId(changedField)) {
|
|
187
|
-
this.
|
|
185
|
+
else if (!!this.getReferencedTaskId(changedField, chFields)) {
|
|
186
|
+
this.updateField(chFields, this.taskFieldsIndex[this.getReferencedTaskId(changedField, chFields)].fields[changedField], frontendActions, true);
|
|
188
187
|
}
|
|
189
188
|
});
|
|
190
189
|
this.$shouldCreate.next(this._task.dataGroups);
|
|
191
190
|
}
|
|
192
|
-
updateField(chFields, field, frontendActions) {
|
|
191
|
+
updateField(chFields, field, frontendActions, referenced = false) {
|
|
193
192
|
if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF) {
|
|
194
193
|
this._taskDataReloadRequest$.next(frontendActions ? frontendActions : undefined);
|
|
195
194
|
return;
|
|
@@ -204,15 +203,15 @@ export class TaskContentService {
|
|
|
204
203
|
field.valueWithoutChange(this._fieldConverterService.formatValueFromBackend(field, updatedField[key]));
|
|
205
204
|
break;
|
|
206
205
|
case 'behavior':
|
|
207
|
-
if (updatedField.behavior[this._task.transitionId]) {
|
|
208
|
-
// TODO NGSD-489 fix behavior resolution
|
|
206
|
+
if (!referenced && updatedField.behavior[this._task.transitionId]) {
|
|
209
207
|
field.behavior = updatedField.behavior[this._task.transitionId];
|
|
210
208
|
}
|
|
211
|
-
else {
|
|
212
|
-
const
|
|
209
|
+
else if (referenced) {
|
|
210
|
+
const taskId = this.getReferencedTaskId(field.stringId, chFields);
|
|
211
|
+
const taskRef = this.findTaskRefId(taskId, this.taskFieldsIndex[this._task.stringId].fields);
|
|
212
|
+
const transitionId = this.taskFieldsIndex[taskId].transitionId;
|
|
213
213
|
if (!!transitionId && transitionId !== '' && updatedField.behavior[transitionId])
|
|
214
|
-
field.behavior = updatedField.behavior[transitionId];
|
|
215
|
-
break;
|
|
214
|
+
field.behavior = taskRef.behavior.editable ? updatedField.behavior[transitionId] : taskRef.behavior;
|
|
216
215
|
}
|
|
217
216
|
break;
|
|
218
217
|
case 'choices':
|
|
@@ -250,49 +249,16 @@ export class TaskContentService {
|
|
|
250
249
|
field.update();
|
|
251
250
|
});
|
|
252
251
|
}
|
|
253
|
-
updateReferencedField(chFields, field, frontendActions) {
|
|
254
|
-
if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF) {
|
|
255
|
-
this._taskDataReloadRequest$.next(frontendActions ? frontendActions : undefined);
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
const updatedField = chFields[field.stringId];
|
|
259
|
-
Object.keys(updatedField).forEach(key => {
|
|
260
|
-
switch (key) {
|
|
261
|
-
case 'behavior': {
|
|
262
|
-
const taskId = this.getReferencedTaskId(field.stringId);
|
|
263
|
-
const taskRef = this.findTaskRefId(taskId, this.taskFieldsIndex[this._task.stringId].fields);
|
|
264
|
-
const transitionId = this.taskFieldsIndex[taskId].transitionId;
|
|
265
|
-
if (!!transitionId && transitionId !== '' && updatedField.behavior[transitionId])
|
|
266
|
-
field.behavior = taskRef.behavior.editable ? updatedField.behavior[transitionId] : taskRef.behavior;
|
|
267
|
-
break;
|
|
268
|
-
}
|
|
269
|
-
case 'value':
|
|
270
|
-
field.valueWithoutChange(this._fieldConverterService.formatValueFromBackend(field, updatedField[key]));
|
|
271
|
-
break;
|
|
272
|
-
default:
|
|
273
|
-
field[key] = updatedField[key];
|
|
274
|
-
}
|
|
275
|
-
field.update();
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
252
|
isFieldInTask(taskId, changedField) {
|
|
279
253
|
return !!taskId
|
|
280
254
|
&& !!this.taskFieldsIndex[taskId]
|
|
281
255
|
&& !!this.taskFieldsIndex[taskId].fields
|
|
282
256
|
&& !!this.taskFieldsIndex[taskId].fields[changedField];
|
|
283
257
|
}
|
|
284
|
-
getReferencedTaskId(changedField) {
|
|
258
|
+
getReferencedTaskId(changedField, chFields) {
|
|
285
259
|
return !!this.taskFieldsIndex ?
|
|
286
|
-
Object.keys(this.taskFieldsIndex).find(taskId => taskId !== this.task.stringId && Object.keys(this.taskFieldsIndex[taskId].fields).includes(changedField))
|
|
287
|
-
|
|
288
|
-
getReferencedTransitionId(changedField) {
|
|
289
|
-
if (!!this.taskFieldsIndex) {
|
|
290
|
-
const taskFieldsIndexId = this.getReferencedTaskId(changedField);
|
|
291
|
-
if (!!this.taskFieldsIndex[taskFieldsIndexId]) {
|
|
292
|
-
return this.taskFieldsIndex[taskFieldsIndexId].transitionId;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
return undefined;
|
|
260
|
+
(Object.keys(this.taskFieldsIndex).find(taskId => taskId !== this.task.stringId && taskId === chFields.taskId && Object.keys(this.taskFieldsIndex[taskId].fields).includes(changedField))
|
|
261
|
+
|| Object.keys(this.taskFieldsIndex).find(taskId => taskId !== this.task.stringId && Object.keys(this.taskFieldsIndex[taskId].fields).includes(changedField))) : undefined;
|
|
296
262
|
}
|
|
297
263
|
findTaskRefId(taskId, fields) {
|
|
298
264
|
let taskRefId = Object.values(fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));
|
|
@@ -313,4 +279,4 @@ export class TaskContentService {
|
|
|
313
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TaskContentService, decorators: [{
|
|
314
280
|
type: Injectable
|
|
315
281
|
}], ctorParameters: () => [{ type: i1.FieldConverterService }, { type: i2.SnackBarService }, { type: i3.TranslateService }, { type: i4.LoggerService }] });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBUSxNQUFNLE1BQU0sQ0FBQztBQVNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUs3RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdURBQXVELENBQUM7Ozs7OztBQUVuRjs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFnQixrQkFBa0I7SUFlSjtJQUNBO0lBQ0E7SUFDQTtJQWhCekIsTUFBTSxDQUFVLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQzNELE1BQU0sQ0FBVSxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBRXpDLGFBQWEsQ0FBa0M7SUFDL0Msb0JBQW9CLENBQTBCO0lBQ3BDLEtBQUssQ0FBTztJQUNaLHVCQUF1QixDQUFrQjtJQUN6QyxhQUFhLENBQTJCO0lBQ3hDLGdCQUFnQixHQUV0QixFQUFFLENBQUM7SUFDRyx5QkFBeUIsR0FBd0MsRUFBRSxDQUFDO0lBRTlFLFlBQWdDLHNCQUE2QyxFQUM3QyxnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsT0FBc0I7UUFIdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFD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LGtCQUFrQjs0R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRhR3JvdXB9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvZGF0YS1ncm91cHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7U25hY2tCYXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9zbmFjay1iYXIvc2VydmljZXMvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RW51bWVyYXRpb25GaWVsZCwgRW51bWVyYXRpb25GaWVsZFZhbHVlfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9lbnVtZXJhdGlvbi1maWVsZC9tb2RlbHMvZW51bWVyYXRpb24tZmllbGQnO1xuaW1wb3J0IHtNdWx0aWNob2ljZUZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tdWx0aWNob2ljZS1maWVsZC9tb2RlbHMvbXVsdGljaG9pY2UtZmllbGQnO1xuaW1wb3J0IHtDaGFuZ2UsIENoYW5nZWRGaWVsZHN9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9jaGFuZ2VkLWZpZWxkcyc7XG5pbXBvcnQge0ZpZWxkQ29udmVydGVyU2VydmljZX0gZnJvbSAnLi9maWVsZC1jb252ZXJ0ZXIuc2VydmljZSc7XG5pbXBvcnQge0ZpZWxkVHlwZVJlc291cmNlfSBmcm9tICcuLi9tb2RlbC9maWVsZC10eXBlLXJlc291cmNlJztcbmltcG9ydCB7RHluYW1pY0VudW1lcmF0aW9uRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2VudW1lcmF0aW9uLWZpZWxkL21vZGVscy9keW5hbWljLWVudW1lcmF0aW9uLWZpZWxkJztcbmltcG9ydCB7VmFsaWRhdGlvbn0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtUYXNrRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy90YXNrLW91dGNvbWVzL3Rhc2stZXZlbnQtb3V0Y29tZSc7XG5pbXBvcnQge0RhdGFGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2Fic3RyYWN0LWRhdGEtZmllbGQnO1xuaW1wb3J0IHtUYXNrRmllbGRzfSBmcm9tICcuLi9tb2RlbC90YXNrLWZpZWxkcyc7XG5pbXBvcnQge1Rhc2tSZWZGaWVsZH0gZnJvbSBcIi4uLy4uL2RhdGEtZmllbGRzL3Rhc2stcmVmLWZpZWxkL21vZGVsL3Rhc2stcmVmLWZpZWxkXCI7XG5cbi8qKlxuICogQWN0cyBhcyBhIGNvbW11bmljYXRpb24gaW50ZXJmYWNlIGJldHdlZW4gdGhlIENvbXBvbmVudCB0aGF0IHJlbmRlcnMgVGFzayBjb250ZW50IGFuZCBpdCdzIHBhcmVudCBDb21wb25lbnQuXG4gKiBBbHNvIHByb3ZpZGVzIHNvbWUgZ2VuZXJhbCBmdW5jdGlvbmFsaXR5IHRoYXQgaXMgbmVlZGVkIHdoZW4gd29ya2luZyB3aXRoIHRhc2sgY29udGVudC5cbiAqXG4gKiBOb3RhYmxlIGV4YW1wbGUgb2YgYSBwYXJlbnQgQ29tcG9uZW50IGlzIHRoZSB7QGxpbmsgQWJzdHJhY3RUYXNrUGFuZWxDb21wb25lbnR9LlxuICpcbiAqIE5vdGFibGUgZXhhbXBsZSBvZiBhIHRhc2sgY29udGVudCByZW5kZXJlciBpcyB0aGUge0BsaW5rIEFic3RyYWN0VGFza0NvbnRlbnRDb21wb25lbnR9LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFza0NvbnRlbnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRlJPTlRFTkRfQUNUSU9OU19LRVkgPSAnX2Zyb250ZW5kX2FjdGlvbnMnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OID0gJ2FjdGlvbic7XG5cbiAgICAkc2hvdWxkQ3JlYXRlOiBSZXBsYXlTdWJqZWN0PEFycmF5PERhdGFHcm91cD4+O1xuICAgICRzaG91bGRDcmVhdGVDb3VudGVyOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgX3Rhc2s6IFRhc2s7XG4gICAgcHJvdGVjdGVkIF90YXNrRGF0YVJlbG9hZFJlcXVlc3QkOiBTdWJqZWN0PENoYW5nZT47XG4gICAgcHJvdGVjdGVkIF9pc0V4cGFuZGluZyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX3Rhc2tGaWVsZHNJbmRleDoge1xuICAgICAgICBbdGFza0lkOiBzdHJpbmddOiBUYXNrRmllbGRzXG4gICAgfSA9IHt9O1xuICAgIHByb3RlY3RlZCBfcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzOiB7IFtjYXNlSWQ6IHN0cmluZ106IEFycmF5PHN0cmluZz4gfSA9IHt9O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfZmllbGRDb252ZXJ0ZXJTZXJ2aWNlOiBGaWVsZENvbnZlcnRlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZ2dlcjogTG9nZ2VyU2VydmljZSkge1xuICAgICAgICB0aGlzLiRzaG91bGRDcmVhdGUgPSBuZXcgUmVwbGF5U3ViamVjdDxBcnJheTxEYXRhR3JvdXA+PigxKTtcbiAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlQ291bnRlciA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgICAgIHRoaXMuX3Rhc2sgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQgPSBuZXcgU3ViamVjdDxDaGFuZ2U+KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy4kc2hvdWxkQ3JlYXRlLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGFza0RhdGFSZWxvYWRSZXF1ZXN0JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9pc0V4cGFuZGluZyQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgVGFzayBvYmplY3QgaWYgc2V0IGFuZCBgdW5kZWZpbmVkYCBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHRhc2soKTogVGFzayB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFNldHRpbmcgYSBUYXNrIGFsc28gZW1pdHMgaXQgaW50byB0aGUgc3RyZWFtIGFjY2Vzc2libGUgYnkgdGhlIFt0YXNrJF17QGxpbmsgVGFza0NvbnRlbnRTZXJ2aWNlI3Rhc2skfSBnZXR0ZXIgbWV0aG9kLlxuICAgICAqIEBwYXJhbSB0YXNrIHRoZSBUYXNrIHRoYXQgb3ducyB0aGUgY29udGVudCBtYW5hZ2VkIGJ5IHRoaXMgc2VydmljZVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXQgdGFzayh0YXNrOiBUYXNrKTtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSByZXR1cm5zIGEge0BsaW5rIFRhc2t9IG9iamVjdCBldmVyeSB0aW1lIHRoaXMgb2JqZWN0IGlzIHNldC5cbiAgICAgKlxuICAgICAqIFVzZSBbdGFza117QGxpbmsgVGFza0NvbnRlbnRTZXJ2aWNlI3Rhc2t9IHNldHRlciBtZXRob2QgdG8gc2V0IHRoZSBUYXNrLlxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgdGFzayQoKTogT2JzZXJ2YWJsZTxUYXNrPjtcblxuICAgIC8qKlxuICAgICAqIFN0cmVhbSB0aGF0IGVtaXRzIGV2ZXJ5IHRpbWUgYSBkYXRhIHJlbG9hZCBpcyByZXF1ZXN0ZWQuXG4gICAgICovXG4gICAgcHVibGljIGdldCB0YXNrRGF0YVJlbG9hZFJlcXVlc3QkKCk6IE9ic2VydmFibGU8Q2hhbmdlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuXG4gICAgZ2V0IHRhc2tGaWVsZHNJbmRleCgpOiB7IFtwOiBzdHJpbmddOiBUYXNrRmllbGRzIH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0ZpZWxkc0luZGV4O1xuICAgIH1cblxuICAgIHNldCB0YXNrRmllbGRzSW5kZXgodmFsdWU6IHsgW3A6IHN0cmluZ106IFRhc2tGaWVsZHMgfSkge1xuICAgICAgICB0aGlzLl90YXNrRmllbGRzSW5kZXggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzKCk6IHsgW3A6IHN0cmluZ106IEFycmF5PHN0cmluZz4gfSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWZlcmVuY2VkVGFza0FuZENhc2VJZHM7XG4gICAgfVxuXG4gICAgc2V0IHJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcyh2YWx1ZTogeyBbcDogc3RyaW5nXTogQXJyYXk8c3RyaW5nPiB9KSB7XG4gICAgICAgIHRoaXMuX3JlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcyA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHBhbmVsIHRoYXQgdGhlIHRhc2sgY29udGVudCBpcyBjb250YWluZWQgaW4gaXMgY3VycmVudGx5IGV4cGFuZGluZy5cbiAgICAgKlxuICAgICAqIElmIHRoZSB0YXNrIGNvbnRlbnQgaXMgbm90IGNvbnRhaW5lZCBpbiBhIHBhbmVsLCBgaXNFeHBhbmRpbmdgIHdpbGwgYmUgYWx3YXlzIGBmYWxzZWAuXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc0V4cGFuZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRXhwYW5kaW5nJC52YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBzdGF0ZSBvZiB0aGUgdGFzayBjb250ZW50IHRvIGBleHBhbmRpbmdgLlxuICAgICAqL1xuICAgIHB1YmxpYyBleHBhbnNpb25TdGFydGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0V4cGFuZGluZyQubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBzdGF0ZSBvZiB0aGUgdGFzayBjb250ZW50IHRvIGBub3QgZXhwYW5kaW5nYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5zaW9uRmluaXNoZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kaW5nJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgdGhlIHZhbGlkaXR5IG9mIGFsbCBkYXRhIGZpZWxkcyBpbiB0aGUgbWFuYWdlZCB7QGxpbmsgVGFza30uXG4gICAgICpcbiAgICAgKiBJZiBzb21lIG9mIHRoZSBmaWVsZHMgYXJlIGludmFsaWQgdG91Y2hlcyB0aGVtIHNvIHRoZWlyIHZhbGlkYXRpb24gZXJyb3JzIHdpbGwgYXBwZWFyIChpZiBzZXQpLlxuICAgICAqIEEgc25hY2tiYXIgd2lsbCBhbHNvIGJlIGRpc3BsYXllZCB0byB0aGUgdXNlciwgaW5mb3JtaW5nIHRoZW0gb2YgdGhlIGZhY3QgdGhhdCB0aGUgZmllbGRzIGFyZSBpbnZhbGlkLlxuICAgICAqIEByZXR1cm5zIHdoZXRoZXIgdGhlIHRhc2sgaXMgdmFsaWQgb3Igbm90XG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlVGFza0RhdGEodGFza0lkPzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5fdGFzayB8fCAhdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsaWQgPSAhdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZpbHRlcihncm91cCA9PiAhIWdyb3VwLnBhcmVudFRhc2tJZCAmJiAhIXRhc2tJZCA/IGdyb3VwLnBhcmVudFRhc2tJZCA9PT0gdGFza0lkIDogdHJ1ZSkuc29tZShncm91cCA9PiBncm91cC5maWVsZHMuc29tZShmaWVsZCA9PiAhZmllbGQudmFsaWQgJiYgIWZpZWxkLmRpc2FibGVkKSk7XG4gICAgICAgIGNvbnN0IHZhbGlkRGlzYWJsZWQgPSAhdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZpbHRlcihncm91cCA9PiAhIWdyb3VwLnBhcmVudFRhc2tJZCAmJiAhIXRhc2tJZCA/IGdyb3VwLnBhcmVudFRhc2tJZCA9PT0gdGFza0lkIDogdHJ1ZSkuc29tZShncm91cCA9PiBncm91cC5maWVsZHMuc29tZShmaWVsZCA9PiAhZmllbGQudmFsaWRSZXF1aXJlZCAmJiBmaWVsZC5kaXNhYmxlZCkpO1xuICAgICAgICBpZiAoIXZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLmludmFsaWREYXRhJykpO1xuICAgICAgICAgICAgdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLmZvckVhY2goZmllbGQgPT4gZmllbGQudG91Y2ggPSB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZERpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLm1pc3NpbmdSZXF1aXJlZCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWQgJiYgdmFsaWREaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGaW5kcyBpbnZhbGlkIGRhdGEgb2YgdGFza1xuICAgICAqXG4gICAgICogQHJldHVybnMgYXJyYXkgb2YgaW52YWxpZCBkYXRhZmllbGRzXG4gICAgICovXG4gICAgcHVibGljIGdldEludmFsaWRUYXNrRGF0YSgpOiBBcnJheTxEYXRhRmllbGQ8YW55Pj4ge1xuICAgICAgICBjb25zdCBpbnZhbGlkRmllbGRzID0gW107XG4gICAgICAgIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IGludmFsaWRGaWVsZHMucHVzaCguLi5ncm91cC5maWVsZHMuZmlsdGVyKGZpZWxkID0+XG4gICAgICAgICAgICAoIWZpZWxkLnZhbGlkICYmICFmaWVsZC5kaXNhYmxlZCkgfHwgKCFmaWVsZC52YWxpZFJlcXVpcmVkICYmICFmaWVsZC5kaXNhYmxlZCkpKSk7XG4gICAgICAgIHJldHVybiBpbnZhbGlkRmllbGRzO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWxpZGF0ZUR5bmFtaWNFbnVtRmllbGQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5fdGFzayB8fCAhdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5fdGFzay5kYXRhR3JvdXBzLnNvbWUoZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLnNvbWUoZmllbGQgPT4gZmllbGQgaW5zdGFuY2VvZiBEeW5hbWljRW51bWVyYXRpb25GaWVsZCkpO1xuICAgICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHZhbGlkID0gdHJ1ZTtcbiAgICAgICAgZm9yIChjb25zdCBncm91cCBvZiB0aGlzLl90YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZ3JvdXAuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkIGluc3RhbmNlb2YgRHluYW1pY0VudW1lcmF0aW9uRmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNob2ljZXMgIT09IHVuZGVmaW5lZCAmJiBmaWVsZC5jaG9pY2VzLmxlbmd0aCAhPT0gMCAmJiBmaWVsZC52YWx1ZSAhPT0gJycgJiYgZmllbGQudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWVsZC5jaG9pY2VzLnNvbWUoY2hvaWNlID0+IGNob2ljZS5rZXkgPT09IGZpZWxkLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmJlaGF2aW9yLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgndGFza3Muc25hY2tiYXIubWlzc2luZ1JlcXVpcmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2VzIHRoZSBibG9ja2luZyBzdGF0ZSBvZiBhbGwgZmllbGRzIGluIHRoZSBtYW5hZ2VkIFRhc2suXG4gICAgICogQHBhcmFtIGJsb2NraW5nU3RhdGUgd2hldGhlciB0aGUgZmllbGQgc2hvdWxkIGJlIGJsb2NrZWQgb3Igbm90XG4gICAgICovXG4gICAgcHVibGljIGJsb2NrRmllbGRzKGJsb2NraW5nU3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3Rhc2sgJiYgdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICB0aGlzLl90YXNrLmRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICAgICAgICAgICAgZ3JvdXAuZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZC5ibG9jayA9IGJsb2NraW5nU3RhdGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgYXNzaWduZWUsIHN0YXJ0IGRhdGUgYW5kIGZpbmlzaCBkYXRlIGZyb20gdGhlIG1hbmFnZWQgVGFzay5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlU3RhdGVEYXRhKGV2ZW50T3V0Y29tZTogVGFza0V2ZW50T3V0Y29tZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGFzaykge1xuICAgICAgICAgICAgdGhpcy5fdGFzay51c2VyID0gZXZlbnRPdXRjb21lLnRhc2sudXNlcjtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suc3RhcnREYXRlID0gZXZlbnRPdXRjb21lLnRhc2suc3RhcnREYXRlO1xuICAgICAgICAgICAgdGhpcy5fdGFzay5maW5pc2hEYXRlID0gZXZlbnRPdXRjb21lLnRhc2suZmluaXNoRGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHByb3BlcnRpZXMgb2YgZmllbGRzIGluIHRoZSBtYW5hZ2VkIHRhc2sgYmFzZWQgb24gYSBkZWx0YSBvZiBjaGFuZ2VzIGZyb20gcHJldmlvdXMgc3RhdGUuXG4gICAgICogQHBhcmFtIGNoRmllbGRzIG9iamVjdCBjb250YWluaW5nIHRoZSBkZWx0YSBvZiB0aGUgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVGcm9tQ2hhbmdlZEZpZWxkcyhjaEZpZWxkczogQ2hhbmdlZEZpZWxkcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHRvZG8gYWN0aW9ucyBvd25lciB6Ynl0b8SNbsO9P1xuICAgICAgICBjb25zdCBmcm9udGVuZEFjdGlvbnMgPSBjaEZpZWxkcy50YXNrSWQgPT09IHRoaXMudGFzay5zdHJpbmdJZCAmJiBjaEZpZWxkc1tUYXNrQ29udGVudFNlcnZpY2UuRlJPTlRFTkRfQUNUSU9OU19LRVldO1xuICAgICAgICBPYmplY3Qua2V5cyhjaEZpZWxkcykuZm9yRWFjaChjaGFuZ2VkRmllbGQgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNGaWVsZEluVGFzayhjaEZpZWxkcy50YXNrSWQsIGNoYW5nZWRGaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKGNoRmllbGRzLCB0aGlzLnRhc2tGaWVsZHNJbmRleFtjaEZpZWxkcy50YXNrSWRdLmZpZWxkc1tjaGFuZ2VkRmllbGRdLCBmcm9udGVuZEFjdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghIXRoaXMuZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSZWZlcmVuY2VkRmllbGQoY2hGaWVsZHMsIHRoaXMudGFza0ZpZWxkc0luZGV4W3RoaXMuZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQpXS5maWVsZHNbY2hhbmdlZEZpZWxkXSwgZnJvbnRlbmRBY3Rpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlLm5leHQodGhpcy5fdGFzay5kYXRhR3JvdXBzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRmllbGQoY2hGaWVsZHM6IENoYW5nZWRGaWVsZHMsIGZpZWxkOiBEYXRhRmllbGQ8YW55PiwgZnJvbnRlbmRBY3Rpb25zOiBDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5yZXNvbHZlVHlwZShmaWVsZCkgPT09IEZpZWxkVHlwZVJlc291cmNlLlRBU0tfUkVGKSB7XG4gICAgICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkLm5leHQoZnJvbnRlbmRBY3Rpb25zID8gZnJvbnRlbmRBY3Rpb25zIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZCA9IGNoRmllbGRzW2ZpZWxkLnN0cmluZ0lkXTtcbiAgICAgICAgT2JqZWN0LmtleXModXBkYXRlZEZpZWxkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3R5cGUnOlxuICAgICAgICAgICAgICAgICAgICAvLyB0eXBlIGlzIGp1c3QgYW4gaW5mb3JtYXRpb24sIG5vdCBhbiB1cGRhdGUuIEEgZmllbGQgY2Fubm90IGNoYW5nZSBpdHMgdHlwZVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGNvbnRpbnVlIC0gdGhlIGZpZWxkIGRvZXMgbm90IG5lZWQgdXBkYXRpbmcsIHNpbmNlIG5vdGhpbmcgY2hhbmdlZFxuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWVXaXRob3V0Q2hhbmdlKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5mb3JtYXRWYWx1ZUZyb21CYWNrZW5kKGZpZWxkLCB1cGRhdGVkRmllbGRba2V5XSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdiZWhhdmlvcic6XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkRmllbGQuYmVoYXZpb3JbdGhpcy5fdGFzay50cmFuc2l0aW9uSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIE5HU0QtNDg5IGZpeCBiZWhhdmlvciByZXNvbHV0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5iZWhhdmlvciA9IHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0aGlzLl90YXNrLnRyYW5zaXRpb25JZF07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2l0aW9uSWQgPSB0aGlzLmdldFJlZmVyZW5jZWRUcmFuc2l0aW9uSWQoZmllbGQuc3RyaW5nSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhdHJhbnNpdGlvbklkICYmIHRyYW5zaXRpb25JZCAhPT0gJycgJiYgdXBkYXRlZEZpZWxkLmJlaGF2aW9yW3RyYW5zaXRpb25JZF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuYmVoYXZpb3IgPSB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdHJhbnNpdGlvbklkXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Nob2ljZXMnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdDaG9pY2VzOiBBcnJheTxFbnVtZXJhdGlvbkZpZWxkVmFsdWU+ID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkRmllbGQuY2hvaWNlcyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkRmllbGQuY2hvaWNlcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaG9pY2VzLnB1c2goe2tleTogaXQsIHZhbHVlOiBpdH0gYXMgRW51bWVyYXRpb25GaWVsZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXModXBkYXRlZEZpZWxkLmNob2ljZXMpLmZvckVhY2goY2hvaWNlS2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaG9pY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNob2ljZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVwZGF0ZWRGaWVsZC5jaG9pY2VzW2Nob2ljZUtleV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEVudW1lcmF0aW9uRmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLmNob2ljZXMgPSBuZXdDaG9pY2VzO1xuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLnVwZGF0ZUNob2ljZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVkRmllbGQub3B0aW9ucykuZm9yRWFjaChvcHRpb25LZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9ucy5wdXNoKHtrZXk6IG9wdGlvbktleSwgdmFsdWU6IHVwZGF0ZWRGaWVsZC5vcHRpb25zW29wdGlvbktleV19KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkuY2hvaWNlcyA9IG5ld09wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkudXBkYXRlQ2hvaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbGlkYXRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQucmVwbGFjZVZhbGlkYXRpb25zKHVwZGF0ZWRGaWVsZC52YWxpZGF0aW9ucy5tYXAoaXQgPT4gKGl0IGFzIFZhbGlkYXRpb24pKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkW2tleV0gPSB1cGRhdGVkRmllbGRba2V5XTtcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGQudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVSZWZlcmVuY2VkRmllbGQoY2hGaWVsZHM6IENoYW5nZWRGaWVsZHMsIGZpZWxkOiBEYXRhRmllbGQ8YW55PiwgZnJvbnRlbmRBY3Rpb25zOiBDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5yZXNvbHZlVHlwZShmaWVsZCkgPT09IEZpZWxkVHlwZVJlc291cmNlLlRBU0tfUkVGKSB7XG4gICAgICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkLm5leHQoZnJvbnRlbmRBY3Rpb25zID8gZnJvbnRlbmRBY3Rpb25zIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkRmllbGQgPSBjaEZpZWxkc1tmaWVsZC5zdHJpbmdJZF07XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRGaWVsZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdiZWhhdmlvcic6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFza0lkID0gdGhpcy5nZXRSZWZlcmVuY2VkVGFza0lkKGZpZWxkLnN0cmluZ0lkKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFza1JlZiA9IHRoaXMuZmluZFRhc2tSZWZJZCh0YXNrSWQsIHRoaXMudGFza0ZpZWxkc0luZGV4W3RoaXMuX3Rhc2suc3RyaW5nSWRdLmZpZWxkcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zaXRpb25JZCA9IHRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0udHJhbnNpdGlvbklkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoISF0cmFuc2l0aW9uSWQgJiYgdHJhbnNpdGlvbklkICE9PSAnJyAmJiB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdHJhbnNpdGlvbklkXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmJlaGF2aW9yID0gdGFza1JlZi5iZWhhdmlvci5lZGl0YWJsZSA/IHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0cmFuc2l0aW9uSWRdIDogdGFza1JlZi5iZWhhdmlvcjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWVXaXRob3V0Q2hhbmdlKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5mb3JtYXRWYWx1ZUZyb21CYWNrZW5kKGZpZWxkLCB1cGRhdGVkRmllbGRba2V5XSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWVsZFtrZXldID0gdXBkYXRlZEZpZWxkW2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC51cGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzRmllbGRJblRhc2sodGFza0lkOiBzdHJpbmcsIGNoYW5nZWRGaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRhc2tJZFxuICAgICAgICAgICAgJiYgISF0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdXG4gICAgICAgICAgICAmJiAhIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzXG4gICAgICAgICAgICAmJiAhIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzW2NoYW5nZWRGaWVsZF1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGFza0ZpZWxkc0luZGV4ID9cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMudGFza0ZpZWxkc0luZGV4KS5maW5kKHRhc2tJZCA9PiB0YXNrSWQgIT09IHRoaXMudGFzay5zdHJpbmdJZCAmJiBPYmplY3Qua2V5cyh0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLmZpZWxkcykuaW5jbHVkZXMoY2hhbmdlZEZpZWxkKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZWRUcmFuc2l0aW9uSWQoY2hhbmdlZEZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAoISF0aGlzLnRhc2tGaWVsZHNJbmRleCkge1xuICAgICAgICAgICAgY29uc3QgdGFza0ZpZWxkc0luZGV4SWQgPSB0aGlzLmdldFJlZmVyZW5jZWRUYXNrSWQoY2hhbmdlZEZpZWxkKTtcbiAgICAgICAgICAgIGlmICghIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tGaWVsZHNJbmRleElkXSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrRmllbGRzSW5kZXhJZF0udHJhbnNpdGlvbklkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpbmRUYXNrUmVmSWQodGFza0lkOiBzdHJpbmcsIGZpZWxkczogeyBbZmllbGRJZDogc3RyaW5nXTogRGF0YUZpZWxkPGFueT59KTogRGF0YUZpZWxkPGFueT4ge1xuICAgICAgICBsZXQgdGFza1JlZklkID0gT2JqZWN0LnZhbHVlcyhmaWVsZHMpLmZpbmQoZiA9PiBmIGluc3RhbmNlb2YgVGFza1JlZkZpZWxkICYmIGYudmFsdWUuaW5jbHVkZXModGFza0lkKSk7XG4gICAgICAgIGlmICghdGFza1JlZklkKSB7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VkVGFza0lkcyA9IE9iamVjdC52YWx1ZXMoZmllbGRzKS5maWx0ZXIoZiA9PiBmIGluc3RhbmNlb2YgVGFza1JlZkZpZWxkKS5tYXAodHIgPT4gdHIudmFsdWUpO1xuICAgICAgICAgICAgcmVmZXJlbmNlZFRhc2tJZHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFza1JlZklkID0gdGhpcy5maW5kVGFza1JlZklkKHRhc2tJZCwgdGhpcy50YXNrRmllbGRzSW5kZXhbaWRdLmZpZWxkcyk7XG4gICAgICAgICAgICAgICAgaWYgKCEhdGFza1JlZklkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXNrUmVmSWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhc2tSZWZJZFxuICAgIH1cbn1cbiJdfQ==
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBUSxNQUFNLE1BQU0sQ0FBQztBQVNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUs3RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdURBQXVELENBQUM7Ozs7OztBQUVuRjs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFnQixrQkFBa0I7SUFlSjtJQUNBO0lBQ0E7SUFDQTtJQWhCekIsTUFBTSxDQUFVLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDO0lBQzNELE1BQU0sQ0FBVSxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBRXpDLGFBQWEsQ0FBa0M7SUFDL0Msb0JBQW9CLENBQTBCO0lBQ3BDLEtBQUssQ0FBTztJQUNaLHVCQUF1QixDQUFrQjtJQUN6QyxhQUFhLENBQTJCO0lBQ3hDLGdCQUFnQixHQUV0QixFQUFFLENBQUM7SUFDRyx5QkFBeUIsR0FBd0MsRUFBRSxDQUFDO0lBRTlFLFlBQWdDLHNCQUE2QyxFQUM3QyxnQkFBaUMsRUFDakMsVUFBNEIsRUFDNUIsT0FBc0I7UUFIdEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFD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LE9BQU8sU0FBUyxDQUFDO2lCQUNwQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxPQUFPLFNBQVMsQ0FBQTtJQUNwQixDQUFDO3dHQXZTaUIsa0JBQWtCOzRHQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9kYXRhLWdyb3Vwcyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUYXNrfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3Rhc2snO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTbmFja0JhclNlcnZpY2V9IGZyb20gJy4uLy4uL3NuYWNrLWJhci9zZXJ2aWNlcy9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtFbnVtZXJhdGlvbkZpZWxkLCBFbnVtZXJhdGlvbkZpZWxkVmFsdWV9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL2VudW1lcmF0aW9uLWZpZWxkL21vZGVscy9lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge011bHRpY2hvaWNlRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL211bHRpY2hvaWNlLWZpZWxkL21vZGVscy9tdWx0aWNob2ljZS1maWVsZCc7XG5pbXBvcnQge0NoYW5nZSwgQ2hhbmdlZEZpZWxkc30gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbW9kZWxzL2NoYW5nZWQtZmllbGRzJztcbmltcG9ydCB7RmllbGRDb252ZXJ0ZXJTZXJ2aWNlfSBmcm9tICcuL2ZpZWxkLWNvbnZlcnRlci5zZXJ2aWNlJztcbmltcG9ydCB7RmllbGRUeXBlUmVzb3VyY2V9IGZyb20gJy4uL21vZGVsL2ZpZWxkLXR5cGUtcmVzb3VyY2UnO1xuaW1wb3J0IHtEeW5hbWljRW51bWVyYXRpb25GaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZW51bWVyYXRpb24tZmllbGQvbW9kZWxzL2R5bmFtaWMtZW51bWVyYXRpb24tZmllbGQnO1xuaW1wb3J0IHtWYWxpZGF0aW9ufSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tb2RlbHMvdmFsaWRhdGlvbic7XG5pbXBvcnQge1Rhc2tFdmVudE91dGNvbWV9IGZyb20gJy4uLy4uL2V2ZW50L21vZGVsL2V2ZW50LW91dGNvbWVzL3Rhc2stb3V0Y29tZXMvdGFzay1ldmVudC1vdXRjb21lJztcbmltcG9ydCB7RGF0YUZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tb2RlbHMvYWJzdHJhY3QtZGF0YS1maWVsZCc7XG5pbXBvcnQge1Rhc2tGaWVsZHN9IGZyb20gJy4uL21vZGVsL3Rhc2stZmllbGRzJztcbmltcG9ydCB7VGFza1JlZkZpZWxkfSBmcm9tIFwiLi4vLi4vZGF0YS1maWVsZHMvdGFzay1yZWYtZmllbGQvbW9kZWwvdGFzay1yZWYtZmllbGRcIjtcblxuLyoqXG4gKiBBY3RzIGFzIGEgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgQ29tcG9uZW50IHRoYXQgcmVuZGVycyBUYXNrIGNvbnRlbnQgYW5kIGl0J3MgcGFyZW50IENvbXBvbmVudC5cbiAqIEFsc28gcHJvdmlkZXMgc29tZSBnZW5lcmFsIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcyBuZWVkZWQgd2hlbiB3b3JraW5nIHdpdGggdGFzayBjb250ZW50LlxuICpcbiAqIE5vdGFibGUgZXhhbXBsZSBvZiBhIHBhcmVudCBDb21wb25lbnQgaXMgdGhlIHtAbGluayBBYnN0cmFjdFRhc2tQYW5lbENvbXBvbmVudH0uXG4gKlxuICogTm90YWJsZSBleGFtcGxlIG9mIGEgdGFzayBjb250ZW50IHJlbmRlcmVyIGlzIHRoZSB7QGxpbmsgQWJzdHJhY3RUYXNrQ29udGVudENvbXBvbmVudH0uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYXNrQ29udGVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBGUk9OVEVORF9BQ1RJT05TX0tFWSA9ICdfZnJvbnRlbmRfYWN0aW9ucyc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ1RJT04gPSAnYWN0aW9uJztcblxuICAgICRzaG91bGRDcmVhdGU6IFJlcGxheVN1YmplY3Q8QXJyYXk8RGF0YUdyb3VwPj47XG4gICAgJHNob3VsZENyZWF0ZUNvdW50ZXI6IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICAgIHByb3RlY3RlZCBfdGFzazogVGFzaztcbiAgICBwcm90ZWN0ZWQgX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQ6IFN1YmplY3Q8Q2hhbmdlPjtcbiAgICBwcm90ZWN0ZWQgX2lzRXhwYW5kaW5nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByb3RlY3RlZCBfdGFza0ZpZWxkc0luZGV4OiB7XG4gICAgICAgIFt0YXNrSWQ6IHN0cmluZ106IFRhc2tGaWVsZHNcbiAgICB9ID0ge307XG4gICAgcHJvdGVjdGVkIF9yZWZlcmVuY2VkVGFza0FuZENhc2VJZHM6IHsgW2Nhc2VJZDogc3RyaW5nXTogQXJyYXk8c3RyaW5nPiB9ID0ge307XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF9maWVsZENvbnZlcnRlclNlcnZpY2U6IEZpZWxkQ29udmVydGVyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zbmFja0JhclNlcnZpY2U6IFNuYWNrQmFyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZSA9IG5ldyBSZXBsYXlTdWJqZWN0PEFycmF5PERhdGFHcm91cD4+KDEpO1xuICAgICAgICB0aGlzLiRzaG91bGRDcmVhdGVDb3VudGVyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgICAgICB0aGlzLl9pc0V4cGFuZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fdGFzayA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fdGFza0RhdGFSZWxvYWRSZXF1ZXN0JCA9IG5ldyBTdWJqZWN0PENoYW5nZT4oKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLiRzaG91bGRDcmVhdGUuY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLiRzaG91bGRDcmVhdGUuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kaW5nJC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBUYXNrIG9iamVjdCBpZiBzZXQgYW5kIGB1bmRlZmluZWRgIG90aGVyd2lzZVxuICAgICAqL1xuICAgIHB1YmxpYyBhYnN0cmFjdCBnZXQgdGFzaygpOiBUYXNrIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogU2V0dGluZyBhIFRhc2sgYWxzbyBlbWl0cyBpdCBpbnRvIHRoZSBzdHJlYW0gYWNjZXNzaWJsZSBieSB0aGUgW3Rhc2skXXtAbGluayBUYXNrQ29udGVudFNlcnZpY2UjdGFzayR9IGdldHRlciBtZXRob2QuXG4gICAgICogQHBhcmFtIHRhc2sgdGhlIFRhc2sgdGhhdCBvd25zIHRoZSBjb250ZW50IG1hbmFnZWQgYnkgdGhpcyBzZXJ2aWNlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IHNldCB0YXNrKHRhc2s6IFRhc2spO1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIHJldHVybnMgYSB7QGxpbmsgVGFza30gb2JqZWN0IGV2ZXJ5IHRpbWUgdGhpcyBvYmplY3QgaXMgc2V0LlxuICAgICAqXG4gICAgICogVXNlIFt0YXNrXXtAbGluayBUYXNrQ29udGVudFNlcnZpY2UjdGFza30gc2V0dGVyIG1ldGhvZCB0byBzZXQgdGhlIFRhc2suXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCB0YXNrJCgpOiBPYnNlcnZhYmxlPFRhc2s+O1xuXG4gICAgLyoqXG4gICAgICogU3RyZWFtIHRoYXQgZW1pdHMgZXZlcnkgdGltZSBhIGRhdGEgcmVsb2FkIGlzIHJlcXVlc3RlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRhc2tEYXRhUmVsb2FkUmVxdWVzdCQoKTogT2JzZXJ2YWJsZTxDaGFuZ2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG5cbiAgICBnZXQgdGFza0ZpZWxkc0luZGV4KCk6IHsgW3A6IHN0cmluZ106IFRhc2tGaWVsZHMgfSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YXNrRmllbGRzSW5kZXg7XG4gICAgfVxuXG4gICAgc2V0IHRhc2tGaWVsZHNJbmRleCh2YWx1ZTogeyBbcDogc3RyaW5nXTogVGFza0ZpZWxkcyB9KSB7XG4gICAgICAgIHRoaXMuX3Rhc2tGaWVsZHNJbmRleCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCByZWZlcmVuY2VkVGFza0FuZENhc2VJZHMoKTogeyBbcDogc3RyaW5nXTogQXJyYXk8c3RyaW5nPiB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcztcbiAgICB9XG5cbiAgICBzZXQgcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzKHZhbHVlOiB7IFtwOiBzdHJpbmddOiBBcnJheTxzdHJpbmc+IH0pIHtcbiAgICAgICAgdGhpcy5fcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgcGFuZWwgdGhhdCB0aGUgdGFzayBjb250ZW50IGlzIGNvbnRhaW5lZCBpbiBpcyBjdXJyZW50bHkgZXhwYW5kaW5nLlxuICAgICAqXG4gICAgICogSWYgdGhlIHRhc2sgY29udGVudCBpcyBub3QgY29udGFpbmVkIGluIGEgcGFuZWwsIGBpc0V4cGFuZGluZ2Agd2lsbCBiZSBhbHdheXMgYGZhbHNlYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzRXhwYW5kaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNFeHBhbmRpbmckLnZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIHN0YXRlIG9mIHRoZSB0YXNrIGNvbnRlbnQgdG8gYGV4cGFuZGluZ2AuXG4gICAgICovXG4gICAgcHVibGljIGV4cGFuc2lvblN0YXJ0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kaW5nJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIHN0YXRlIG9mIHRoZSB0YXNrIGNvbnRlbnQgdG8gYG5vdCBleHBhbmRpbmdgLlxuICAgICAqL1xuICAgIHB1YmxpYyBleHBhbnNpb25GaW5pc2hlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckLm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB0aGUgdmFsaWRpdHkgb2YgYWxsIGRhdGEgZmllbGRzIGluIHRoZSBtYW5hZ2VkIHtAbGluayBUYXNrfS5cbiAgICAgKlxuICAgICAqIElmIHNvbWUgb2YgdGhlIGZpZWxkcyBhcmUgaW52YWxpZCB0b3VjaGVzIHRoZW0gc28gdGhlaXIgdmFsaWRhdGlvbiBlcnJvcnMgd2lsbCBhcHBlYXIgKGlmIHNldCkuXG4gICAgICogQSBzbmFja2JhciB3aWxsIGFsc28gYmUgZGlzcGxheWVkIHRvIHRoZSB1c2VyLCBpbmZvcm1pbmcgdGhlbSBvZiB0aGUgZmFjdCB0aGF0IHRoZSBmaWVsZHMgYXJlIGludmFsaWQuXG4gICAgICogQHJldHVybnMgd2hldGhlciB0aGUgdGFzayBpcyB2YWxpZCBvciBub3RcbiAgICAgKi9cbiAgICBwdWJsaWMgdmFsaWRhdGVUYXNrRGF0YSh0YXNrSWQ/OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrIHx8ICF0aGlzLl90YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZCA9ICF0aGlzLl90YXNrLmRhdGFHcm91cHMuZmlsdGVyKGdyb3VwID0+ICEhZ3JvdXAucGFyZW50VGFza0lkICYmICEhdGFza0lkID8gZ3JvdXAucGFyZW50VGFza0lkID09PSB0YXNrSWQgOiB0cnVlKS5zb21lKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5zb21lKGZpZWxkID0+ICFmaWVsZC52YWxpZCAmJiAhZmllbGQuZGlzYWJsZWQpKTtcbiAgICAgICAgY29uc3QgdmFsaWREaXNhYmxlZCA9ICF0aGlzLl90YXNrLmRhdGFHcm91cHMuZmlsdGVyKGdyb3VwID0+ICEhZ3JvdXAucGFyZW50VGFza0lkICYmICEhdGFza0lkID8gZ3JvdXAucGFyZW50VGFza0lkID09PSB0YXNrSWQgOiB0cnVlKS5zb21lKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5zb21lKGZpZWxkID0+ICFmaWVsZC52YWxpZFJlcXVpcmVkICYmIGZpZWxkLmRpc2FibGVkKSk7XG4gICAgICAgIGlmICghdmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgndGFza3Muc25hY2tiYXIuaW52YWxpZERhdGEnKSk7XG4gICAgICAgICAgICB0aGlzLl90YXNrLmRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiBncm91cC5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiBmaWVsZC50b3VjaCA9IHRydWUpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5vcGVuRXJyb3JTbmFja0Jhcih0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgndGFza3Muc25hY2tiYXIubWlzc2luZ1JlcXVpcmVkJykpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZCAmJiB2YWxpZERpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZpbmRzIGludmFsaWQgZGF0YSBvZiB0YXNrXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBhcnJheSBvZiBpbnZhbGlkIGRhdGFmaWVsZHNcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0SW52YWxpZFRhc2tEYXRhKCk6IEFycmF5PERhdGFGaWVsZDxhbnk+PiB7XG4gICAgICAgIGNvbnN0IGludmFsaWRGaWVsZHMgPSBbXTtcbiAgICAgICAgdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4gaW52YWxpZEZpZWxkcy5wdXNoKC4uLmdyb3VwLmZpZWxkcy5maWx0ZXIoZmllbGQgPT5cbiAgICAgICAgICAgICghZmllbGQudmFsaWQgJiYgIWZpZWxkLmRpc2FibGVkKSB8fCAoIWZpZWxkLnZhbGlkUmVxdWlyZWQgJiYgIWZpZWxkLmRpc2FibGVkKSkpKTtcbiAgICAgICAgcmV0dXJuIGludmFsaWRGaWVsZHM7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbGlkYXRlRHluYW1pY0VudW1GaWVsZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrIHx8ICF0aGlzLl90YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleGlzdHMgPSB0aGlzLl90YXNrLmRhdGFHcm91cHMuc29tZShncm91cCA9PiBncm91cC5maWVsZHMuc29tZShmaWVsZCA9PiBmaWVsZCBpbnN0YW5jZW9mIER5bmFtaWNFbnVtZXJhdGlvbkZpZWxkKSk7XG4gICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBncm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQgaW5zdGFuY2VvZiBEeW5hbWljRW51bWVyYXRpb25GaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY2hvaWNlcyAhPT0gdW5kZWZpbmVkICYmIGZpZWxkLmNob2ljZXMubGVuZ3RoICE9PSAwICYmIGZpZWxkLnZhbHVlICE9PSAnJyAmJiBmaWVsZC52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLmNob2ljZXMuc29tZShjaG9pY2UgPT4gY2hvaWNlLmtleSA9PT0gZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuYmVoYXZpb3IucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5taXNzaW5nUmVxdWlyZWQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoYW5nZXMgdGhlIGJsb2NraW5nIHN0YXRlIG9mIGFsbCBmaWVsZHMgaW4gdGhlIG1hbmFnZWQgVGFzay5cbiAgICAgKiBAcGFyYW0gYmxvY2tpbmdTdGF0ZSB3aGV0aGVyIHRoZSBmaWVsZCBzaG91bGQgYmUgYmxvY2tlZCBvciBub3RcbiAgICAgKi9cbiAgICBwdWJsaWMgYmxvY2tGaWVsZHMoYmxvY2tpbmdTdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGFzayAmJiB0aGlzLl90YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgICAgICAgICAgICBncm91cC5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLmJsb2NrID0gYmxvY2tpbmdTdGF0ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIHRoZSBhc3NpZ25lZSwgc3RhcnQgZGF0ZSBhbmQgZmluaXNoIGRhdGUgZnJvbSB0aGUgbWFuYWdlZCBUYXNrLlxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVTdGF0ZURhdGEoZXZlbnRPdXRjb21lOiBUYXNrRXZlbnRPdXRjb21lKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YXNrKSB7XG4gICAgICAgICAgICB0aGlzLl90YXNrLnVzZXIgPSBldmVudE91dGNvbWUudGFzay51c2VyO1xuICAgICAgICAgICAgdGhpcy5fdGFzay5zdGFydERhdGUgPSBldmVudE91dGNvbWUudGFzay5zdGFydERhdGU7XG4gICAgICAgICAgICB0aGlzLl90YXNrLmZpbmlzaERhdGUgPSBldmVudE91dGNvbWUudGFzay5maW5pc2hEYXRlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgcHJvcGVydGllcyBvZiBmaWVsZHMgaW4gdGhlIG1hbmFnZWQgdGFzayBiYXNlZCBvbiBhIGRlbHRhIG9mIGNoYW5nZXMgZnJvbSBwcmV2aW91cyBzdGF0ZS5cbiAgICAgKiBAcGFyYW0gY2hGaWVsZHMgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRlbHRhIG9mIHRoZSBjaGFuZ2VzIGZyb20gdGhlIHByZXZpb3VzIHN0YXRlXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUZyb21DaGFuZ2VkRmllbGRzKGNoRmllbGRzOiBDaGFuZ2VkRmllbGRzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdGFzayB8fCAhdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnJvbnRlbmRBY3Rpb25zID0gY2hGaWVsZHMudGFza0lkID09PSB0aGlzLnRhc2suc3RyaW5nSWQgJiYgY2hGaWVsZHNbVGFza0NvbnRlbnRTZXJ2aWNlLkZST05URU5EX0FDVElPTlNfS0VZXTtcbiAgICAgICAgT2JqZWN0LmtleXMoY2hGaWVsZHMpLmZvckVhY2goY2hhbmdlZEZpZWxkID0+IHtcbiAgICAgICAgICAgIGlmIChjaEZpZWxkcy50YXNrSWQgPT09IHRoaXMuX3Rhc2suc3RyaW5nSWQgJiYgdGhpcy5pc0ZpZWxkSW5UYXNrKGNoRmllbGRzLnRhc2tJZCwgY2hhbmdlZEZpZWxkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRmllbGQoY2hGaWVsZHMsIHRoaXMudGFza0ZpZWxkc0luZGV4W2NoRmllbGRzLnRhc2tJZF0uZmllbGRzW2NoYW5nZWRGaWVsZF0sIGZyb250ZW5kQWN0aW9ucyk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCEhdGhpcy5nZXRSZWZlcmVuY2VkVGFza0lkKGNoYW5nZWRGaWVsZCwgY2hGaWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGaWVsZChjaEZpZWxkcywgdGhpcy50YXNrRmllbGRzSW5kZXhbdGhpcy5nZXRSZWZlcmVuY2VkVGFza0lkKGNoYW5nZWRGaWVsZCwgY2hGaWVsZHMpXS5maWVsZHNbY2hhbmdlZEZpZWxkXSwgZnJvbnRlbmRBY3Rpb25zLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlLm5leHQodGhpcy5fdGFzay5kYXRhR3JvdXBzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlRmllbGQoY2hGaWVsZHM6IENoYW5nZWRGaWVsZHMsIGZpZWxkOiBEYXRhRmllbGQ8YW55PiwgZnJvbnRlbmRBY3Rpb25zOiBDaGFuZ2UsIHJlZmVyZW5jZWQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZmllbGRDb252ZXJ0ZXJTZXJ2aWNlLnJlc29sdmVUeXBlKGZpZWxkKSA9PT0gRmllbGRUeXBlUmVzb3VyY2UuVEFTS19SRUYpIHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQubmV4dChmcm9udGVuZEFjdGlvbnMgPyBmcm9udGVuZEFjdGlvbnMgOiB1bmRlZmluZWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXBkYXRlZEZpZWxkID0gY2hGaWVsZHNbZmllbGQuc3RyaW5nSWRdO1xuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVkRmllbGQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndHlwZSc6XG4gICAgICAgICAgICAgICAgICAgIC8vIHR5cGUgaXMganVzdCBhbiBpbmZvcm1hdGlvbiwgbm90IGFuIHVwZGF0ZS4gQSBmaWVsZCBjYW5ub3QgY2hhbmdlIGl0cyB0eXBlXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWUgLSB0aGUgZmllbGQgZG9lcyBub3QgbmVlZCB1cGRhdGluZywgc2luY2Ugbm90aGluZyBjaGFuZ2VkXG4gICAgICAgICAgICAgICAgY2FzZSAndmFsdWUnOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC52YWx1ZVdpdGhvdXRDaGFuZ2UodGhpcy5fZmllbGRDb252ZXJ0ZXJTZXJ2aWNlLmZvcm1hdFZhbHVlRnJvbUJhY2tlbmQoZmllbGQsIHVwZGF0ZWRGaWVsZFtrZXldKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JlaGF2aW9yJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2VkICYmIHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0aGlzLl90YXNrLnRyYW5zaXRpb25JZF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmJlaGF2aW9yID0gdXBkYXRlZEZpZWxkLmJlaGF2aW9yW3RoaXMuX3Rhc2sudHJhbnNpdGlvbklkXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXNrSWQgPSB0aGlzLmdldFJlZmVyZW5jZWRUYXNrSWQoZmllbGQuc3RyaW5nSWQsIGNoRmllbGRzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tSZWYgPSB0aGlzLmZpbmRUYXNrUmVmSWQodGFza0lkLCB0aGlzLnRhc2tGaWVsZHNJbmRleFt0aGlzLl90YXNrLnN0cmluZ0lkXS5maWVsZHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJhbnNpdGlvbklkID0gdGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXS50cmFuc2l0aW9uSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISF0cmFuc2l0aW9uSWQgJiYgdHJhbnNpdGlvbklkICE9PSAnJyAmJiB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdHJhbnNpdGlvbklkXSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5iZWhhdmlvciA9IHRhc2tSZWYuYmVoYXZpb3IuZWRpdGFibGUgPyB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdHJhbnNpdGlvbklkXSA6IHRhc2tSZWYuYmVoYXZpb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnY2hvaWNlcyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0Nob2ljZXM6IEFycmF5PEVudW1lcmF0aW9uRmllbGRWYWx1ZT4gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRGaWVsZC5jaG9pY2VzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRGaWVsZC5jaG9pY2VzLmZvckVhY2goaXQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Nob2ljZXMucHVzaCh7a2V5OiBpdCwgdmFsdWU6IGl0fSBhcyBFbnVtZXJhdGlvbkZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVkRmllbGQuY2hvaWNlcykuZm9yRWFjaChjaG9pY2VLZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0Nob2ljZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogY2hvaWNlS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdXBkYXRlZEZpZWxkLmNob2ljZXNbY2hvaWNlS2V5XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gYXMgRW51bWVyYXRpb25GaWVsZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkuY2hvaWNlcyA9IG5ld0Nob2ljZXM7XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkudXBkYXRlQ2hvaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ29wdGlvbnMnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb25zID0gW107XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRGaWVsZC5vcHRpb25zKS5mb3JFYWNoKG9wdGlvbktleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb25zLnB1c2goe2tleTogb3B0aW9uS2V5LCB2YWx1ZTogdXBkYXRlZEZpZWxkLm9wdGlvbnNbb3B0aW9uS2V5XX0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkIGFzIEVudW1lcmF0aW9uRmllbGQgfCBNdWx0aWNob2ljZUZpZWxkKS5jaG9pY2VzID0gbmV3T3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkIGFzIEVudW1lcmF0aW9uRmllbGQgfCBNdWx0aWNob2ljZUZpZWxkKS51cGRhdGVDaG9pY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAndmFsaWRhdGlvbnMnOlxuICAgICAgICAgICAgICAgICAgICBmaWVsZC5yZXBsYWNlVmFsaWRhdGlvbnModXBkYXRlZEZpZWxkLnZhbGlkYXRpb25zLm1hcChpdCA9PiAoaXQgYXMgVmFsaWRhdGlvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgZmllbGRba2V5XSA9IHVwZGF0ZWRGaWVsZFtrZXldO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZC51cGRhdGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzRmllbGRJblRhc2sodGFza0lkOiBzdHJpbmcsIGNoYW5nZWRGaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRhc2tJZFxuICAgICAgICAgICAgJiYgISF0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdXG4gICAgICAgICAgICAmJiAhIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzXG4gICAgICAgICAgICAmJiAhIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzW2NoYW5nZWRGaWVsZF1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQ6IHN0cmluZywgY2hGaWVsZHM6IENoYW5nZWRGaWVsZHMpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gISF0aGlzLnRhc2tGaWVsZHNJbmRleCA/XG4gICAgICAgICAgICAoT2JqZWN0LmtleXModGhpcy50YXNrRmllbGRzSW5kZXgpLmZpbmQodGFza0lkID0+IHRhc2tJZCAhPT0gdGhpcy50YXNrLnN0cmluZ0lkICYmIHRhc2tJZCA9PT0gY2hGaWVsZHMudGFza0lkICYmIE9iamVjdC5rZXlzKHRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzKS5pbmNsdWRlcyhjaGFuZ2VkRmllbGQpKVxuICAgICAgICAgICAgfHwgT2JqZWN0LmtleXModGhpcy50YXNrRmllbGRzSW5kZXgpLmZpbmQodGFza0lkID0+IHRhc2tJZCAhPT0gdGhpcy50YXNrLnN0cmluZ0lkICYmIE9iamVjdC5rZXlzKHRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0uZmllbGRzKS5pbmNsdWRlcyhjaGFuZ2VkRmllbGQpKSkgOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpbmRUYXNrUmVmSWQodGFza0lkOiBzdHJpbmcsIGZpZWxkczogeyBbZmllbGRJZDogc3RyaW5nXTogRGF0YUZpZWxkPGFueT59KTogRGF0YUZpZWxkPGFueT4ge1xuICAgICAgICBsZXQgdGFza1JlZklkID0gT2JqZWN0LnZhbHVlcyhmaWVsZHMpLmZpbmQoZiA9PiBmIGluc3RhbmNlb2YgVGFza1JlZkZpZWxkICYmIGYudmFsdWUuaW5jbHVkZXModGFza0lkKSk7XG4gICAgICAgIGlmICghdGFza1JlZklkKSB7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VkVGFza0lkcyA9IE9iamVjdC52YWx1ZXMoZmllbGRzKS5maWx0ZXIoZiA9PiBmIGluc3RhbmNlb2YgVGFza1JlZkZpZWxkKS5tYXAodHIgPT4gdHIudmFsdWUpO1xuICAgICAgICAgICAgcmVmZXJlbmNlZFRhc2tJZHMuZm9yRWFjaChpZCA9PiB7XG4gICAgICAgICAgICAgICAgdGFza1JlZklkID0gdGhpcy5maW5kVGFza1JlZklkKHRhc2tJZCwgdGhpcy50YXNrRmllbGRzSW5kZXhbaWRdLmZpZWxkcyk7XG4gICAgICAgICAgICAgICAgaWYgKCEhdGFza1JlZklkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0YXNrUmVmSWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRhc2tSZWZJZFxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -24,6 +24,7 @@ export class UserService {
|
|
|
24
24
|
_subAuth;
|
|
25
25
|
_subAnonym;
|
|
26
26
|
_publicLoadCalled;
|
|
27
|
+
GLOBAL_ROLE_PREFIX = 'global_';
|
|
27
28
|
constructor(_authService, _userResource, _userTransform, _log, _session, _anonymousService) {
|
|
28
29
|
this._authService = _authService;
|
|
29
30
|
this._userResource = _userResource;
|
|
@@ -111,16 +112,22 @@ export class UserService {
|
|
|
111
112
|
return user.roles.some(r => r.stringId === roleStringId);
|
|
112
113
|
}
|
|
113
114
|
/**
|
|
114
|
-
* Checks whether the user has role with the specified identifier in a process with the specified identifier (any version)
|
|
115
|
+
* Checks whether the user has a role with the specified identifier in a process with the specified identifier (any version),
|
|
116
|
+
* or if the role is global (with prefix 'global_').
|
|
115
117
|
* @param roleIdentifier identifier (import ID) of the role we want to check
|
|
116
118
|
* @param netIdentifier identifier (import ID) of the process the role is defined in
|
|
117
119
|
*/
|
|
118
120
|
hasRoleByIdentifier(roleIdentifier, netIdentifier) {
|
|
119
121
|
const user = this._user.getSelfOrImpersonated();
|
|
120
|
-
if (!roleIdentifier || !
|
|
122
|
+
if (!roleIdentifier || !user.roles) {
|
|
121
123
|
return false;
|
|
122
124
|
}
|
|
123
|
-
return user.roles.some(r =>
|
|
125
|
+
return user.roles.some(r => {
|
|
126
|
+
const matchesRole = r.importId === roleIdentifier;
|
|
127
|
+
const isGlobalRole = r.importId.startsWith(this.GLOBAL_ROLE_PREFIX);
|
|
128
|
+
const matchesNet = r.netImportId === netIdentifier;
|
|
129
|
+
return matchesRole && (isGlobalRole || matchesNet);
|
|
130
|
+
});
|
|
124
131
|
}
|
|
125
132
|
/**
|
|
126
133
|
* Checks whether the user has role with the specified name in a process with the specified identifier (any version)
|
|
@@ -207,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
207
214
|
providedIn: 'root'
|
|
208
215
|
}]
|
|
209
216
|
}], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.UserResourceService }, { type: i3.UserTransformer }, { type: i4.LoggerService }, { type: i5.SessionService }, { type: i6.AnonymousService }] });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBYSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBDLE9BQU8sRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyxXQUFXO0lBVUU7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBYlosS0FBSyxDQUFPO0lBQ1osWUFBWSxDQUFzQjtJQUNsQyxxQkFBcUIsQ0FBc0I7SUFDM0MsWUFBWSxDQUFVO0lBQ3RCLFFBQVEsQ0FBZTtJQUN2QixVQUFVLENBQWU7SUFDM0IsaUJBQWlCLENBQVU7SUFFbkMsWUFBc0IsWUFBbUMsRUFDbkMsYUFBa0MsRUFDbEMsY0FBK0IsRUFDL0IsSUFBbUIsRUFDbkIsUUFBd0IsRUFDeEIsaUJBQW1DO1FBTG5DLGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBQy9CLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNyRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFH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LElBQUksQ0FBQyxLQUFLLENBQUMsbUZBQW1GLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDNUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFVO1FBQ3pCLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLGtCQUFrQjtRQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFUyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUywwQkFBMEI7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQzt3R0EzTVEsV0FBVzs0R0FBWCxXQUFXLGNBRlIsTUFBTTs7NEZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Byb2Nlc3NSb2xlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3Byb2Nlc3Mtcm9sZSc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uL21vZGVscy91c2VyJztcbmltcG9ydCB7Q3JlZGVudGlhbHN9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL21vZGVscy9jcmVkZW50aWFscyc7XG5pbXBvcnQge3Rha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdXRoZW50aWNhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3VzZXItcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1VzZXJUcmFuc2Zvcm1lcn0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vbW9kZWxzL3VzZXIudHJhbnNmb3JtZXInO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vc2Vzc2lvbi9zZXJ2aWNlcy9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyUmVzb3VyY2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdXNlci1yZXNvdXJjZSc7XG5pbXBvcnQge0Fub255bW91c1NlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL2Fub255bW91cy9hbm9ueW1vdXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIF91c2VyOiBVc2VyO1xuICAgIHByb3RlY3RlZCBfdXNlckNoYW5nZSQ6IFJlcGxheVN1YmplY3Q8VXNlcj47XG4gICAgcHJvdGVjdGVkIF9hbm9ueW1vdXNVc2VyQ2hhbmdlJDogUmVwbGF5U3ViamVjdDxVc2VyPjtcbiAgICBwcm90ZWN0ZWQgX2xvZ2luQ2FsbGVkOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfc3ViQXV0aDogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViQW5vbnltOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfcHVibGljTG9hZENhbGxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3VzZXJSZXNvdXJjZTogVXNlclJlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3VzZXJUcmFuc2Zvcm06IFVzZXJUcmFuc2Zvcm1lcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZzogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfYW5vbnltb3VzU2VydmljZTogQW5vbnltb3VzU2VydmljZSkge1xuICAgICAgICB0aGlzLl91c2VyID0gdGhpcy5lbXB0eVVzZXIoKTtcbiAgICAgICAgdGhpcy5fbG9naW5DYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fdXNlckNoYW5nZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxVc2VyPigxKTtcbiAgICAgICAgdGhpcy5fYW5vbnltb3VzVXNlckNoYW5nZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxVc2VyPigxKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zdWJBdXRoID0gdGhpcy5fYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCQuc3Vic2NyaWJlKGF1dGggPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhdXRoICYmICF0aGlzLl9sb2dpbkNhbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRVc2VyKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghYXV0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVXNlcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hVc2VyQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9zdWJBbm9ueW0gPSB0aGlzLl9hbm9ueW1vdXNTZXJ2aWNlLnRva2VuU2V0LnN1YnNjcmliZSh0b2tlbiA9PiB7XG4gICAgICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRQdWJsaWNVc2VyKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJVc2VyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wdWJsaXNoQW5vbnltb3VzVXNlckNoYW5nZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgdXNlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXI7XG4gICAgfVxuXG4gICAgZ2V0IHVzZXIkKCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXNlckNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGFub255bW91c1VzZXIoKTogVXNlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmFub255bW91c1VzZXI7XG4gICAgfVxuXG4gICAgZ2V0IGFub255bW91c1VzZXIkKCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYW5vbnltb3VzVXNlckNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VzZXJDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2Fub255bW91c1VzZXJDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3N1YkF1dGgudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViQW5vbnltLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgdXNlciBoYXMgc3BlY2lmaWVkIGF1dGhvcml0eS5cbiAgICAgKiBAcGFyYW0gYXV0aG9yaXR5IC0gSWYgcHJvdmlkZWQgYXV0aG9yaXR5IGlzIGFycmF5IG9mIGF1dGhvcml0aWVzLlxuICAgICAqICAgICAgICAgICAgICAgICAgICBNZXRob2QgbWFrZSBpbnRlcnNlY3Rpb24gb2YgdGhlIHByb3ZpZGVkIGF1dGhvcml0aWVzIGFuZCB1c2VyJ3MgYXV0aG9yaXRpZXMuXG4gICAgICogICAgICAgICAgICAgICAgICAgIElmIGNhbGN1bGF0ZWQgaW50ZXJzZWN0aW9uIGlzbid0IGVtcHR5IHJldHVybnMgdHJ1ZSwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNBdXRob3JpdHkoYXV0aG9yaXR5OiBBcnJheTxzdHJpbmc+IHwgc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl91c2VyLmdldFNlbGZPckltcGVyc29uYXRlZCgpO1xuICAgICAgICBpZiAoIWF1dGhvcml0eSB8fCAhdXNlci5hdXRob3JpdGllcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRob3JpdHkgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgcmV0dXJuIGF1dGhvcml0eS5zb21lKGEgPT4gdXNlci5hdXRob3JpdGllcy5zb21lKHUgPT4gdSA9PT0gYSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVzZXIuYXV0aG9yaXRpZXMuc29tZShhID0+IGEgPT09IGF1dGhvcml0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFzUm9sZShyb2xlOiBQcm9jZXNzUm9sZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlci5nZXRTZWxmT3JJbXBlcnNvbmF0ZWQoKTtcbiAgICAgICAgaWYgKCFyb2xlIHx8ICF1c2VyLnJvbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXIucm9sZXMuc29tZShyID0+IHIgPT09IHJvbGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyB3aGV0aGVyIHRoZSB1c2VyIGhhcyByb2xlIHdpdGggYSBzcGVjaWZpYyBzdHJpbmdJZFxuICAgICAqIEBwYXJhbSByb2xlU3RyaW5nSWQgSUQgb2YgdGhlIHJvbGUgd2Ugd2FudCB0byBjaGVja1xuICAgICAqL1xuICAgIHB1YmxpYyBoYXNSb2xlQnlJZChyb2xlU3RyaW5nSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlci5nZXRTZWxmT3JJbXBlcnNvbmF0ZWQoKTtcbiAgICAgICAgaWYgKCFyb2xlU3RyaW5nSWQgfHwgIXVzZXIucm9sZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlci5yb2xlcy5zb21lKHIgPT4gci5zdHJpbmdJZCA9PT0gcm9sZVN0cmluZ0lkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgdXNlciBoYXMgcm9sZSB3aXRoIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllciBpbiBhIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGlkZW50aWZpZXIgKGFueSB2ZXJzaW9uKVxuICAgICAqIEBwYXJhbSByb2xlSWRlbnRpZmllciBpZGVudGlmaWVyIChpbXBvcnQgSUQpIG9mIHRoZSByb2xlIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKiBAcGFyYW0gbmV0SWRlbnRpZmllciBpZGVudGlmaWVyIChpbXBvcnQgSUQpIG9mIHRoZSBwcm9jZXNzIHRoZSByb2xlIGlzIGRlZmluZWQgaW5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzUm9sZUJ5SWRlbnRpZmllcihyb2xlSWRlbnRpZmllcjogc3RyaW5nLCBuZXRJZGVudGlmaWVyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIuZ2V0U2VsZk9ySW1wZXJzb25hdGVkKCk7XG4gICAgICAgIGlmICghcm9sZUlkZW50aWZpZXIgfHwgIW5ldElkZW50aWZpZXIgfHwgIXVzZXIucm9sZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXNlci5yb2xlcy5zb21lKHIgPT4gci5uZXRJbXBvcnRJZCA9PT0gbmV0SWRlbnRpZmllciAmJiByLmltcG9ydElkID09PSByb2xlSWRlbnRpZmllcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHJvbGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaW4gYSBwcm9jZXNzIHdpdGggdGhlIHNwZWNpZmllZCBpZGVudGlmaWVyIChhbnkgdmVyc2lvbilcbiAgICAgKiBAcGFyYW0gcm9sZU5hbWUgbmFtZSBvZiB0aGUgcm9sZSB3ZSB3YW50IHRvIGNoZWNrXG4gICAgICogQHBhcmFtIG5ldElkZW50aWZpZXIgaWRlbnRpZmllciAoaW1wb3J0IElEKSBvZiB0aGUgcHJvY2VzcyB0aGUgcm9sZSBpcyBkZWZpbmVkIGluXG4gICAgICovXG4gICAgcHVibGljIGhhc1JvbGVCeU5hbWUocm9sZU5hbWU6IHN0cmluZywgbmV0SWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl91c2VyLmdldFNlbGZPckltcGVyc29uYXRlZCgpO1xuICAgICAgICBpZiAoIXJvbGVOYW1lIHx8ICFuZXRJZGVudGlmaWVyIHx8ICF1c2VyLnJvbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXIucm9sZXMuc29tZShyID0+IHIubmV0SW1wb3J0SWQgPT09IG5ldElkZW50aWZpZXIgJiYgci5uYW1lID09PSByb2xlTmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvZ2luKGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICB0aGlzLl9sb2dpbkNhbGxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5sb2dpbihjcmVkZW50aWFscykucGlwZShcbiAgICAgICAgICAgIHRhcCgoYXV0aFVzZXI6IFVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91c2VyID0gYXV0aFVzZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9naW5DYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hVc2VyQ2hhbmdlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dvdXQoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VzZXIgPSB0aGlzLmVtcHR5VXNlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucHVibGlzaFVzZXJDaGFuZ2UoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkVXNlcigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbXB0eVVzZXIoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVXNlcignJywgJycsICcnLCAnJywgW10sIFtdLCBbXSwgW10pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkVXNlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlclJlc291cmNlLmdldExvZ2dlZFVzZXIoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodXNlcjogVXNlclJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhY2tlbmRVc2VyID0gey4uLnVzZXIsIGlkOiB1c2VyLmlkLnRvU3RyaW5nKCl9O1xuICAgICAgICAgICAgICAgIHRoaXMuX3VzZXIgPSB0aGlzLl91c2VyVHJhbnNmb3JtLnRyYW5zZm9ybShiYWNrZW5kVXNlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5wdWJsaXNoVXNlckNoYW5nZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJiBlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnQXV0aGVudGljYXRpb24gdG9rZW4gaXMgaW52YWxpZC4gQ2xlYXJpbmcgc3RyZWFtJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2Vzc2lvbi5jbGVhcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ0xvYWRpbmcgbG9nZ2VkIHVzZXIgaGFzIGZhaWxlZCEgSW5pdGlhbGlzYXRpb24gaGFzIG5vdCBiZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IScsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRQdWJsaWNVc2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyUmVzb3VyY2UuZ2V0UHVibGljTG9nZ2VkVXNlcigpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh1c2VyOiBVc2VyUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmFja2VuZFVzZXIgPSB7Li4udXNlciwgaWQ6IHVzZXIuaWQudG9TdHJpbmcoKX07XG4gICAgICAgICAgICAgICAgdGhpcy5fdXNlciA9IHRoaXMuX3VzZXJUcmFuc2Zvcm0udHJhbnNmb3JtKGJhY2tlbmRVc2VyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hBbm9ueW1vdXNVc2VyQ2hhbmdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTG9hZGluZyBsb2dnZWQgdXNlciBoYXMgZmFpbGVkISBJbml0aWFsaXNhdGlvbiBoYXMgbm90IGJlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhJywgZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5fcHVibGljTG9hZENhbGxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJVc2VyKCkge1xuICAgICAgICB0aGlzLl91c2VyID0gdGhpcy5lbXB0eVVzZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNVc2VyRW1wdHkodXNlcjogVXNlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXVzZXIgfHwgKCF1c2VyLmlkICYmIHVzZXIucm9sZXMubGVuZ3RoID09PSAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDdXJyZW50VXNlckVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJFbXB0eSh0aGlzLnVzZXIpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHB1Ymxpc2hVc2VyQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyQ2hhbmdlJC5uZXh0KHRoaXMudXNlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHB1Ymxpc2hBbm9ueW1vdXNVc2VyQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hbm9ueW1vdXNVc2VyQ2hhbmdlJC5uZXh0KHRoaXMudXNlcik7XG4gICAgfVxufVxuIl19
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi91c2VyL3NlcnZpY2VzL3VzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBYSxhQUFhLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFFN0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBDLE9BQU8sRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLekMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBUXZELE1BQU0sT0FBTyxXQUFXO0lBWUU7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBZlosS0FBSyxDQUFPO0lBQ1osWUFBWSxDQUFzQjtJQUNsQyxxQkFBcUIsQ0FBc0I7SUFDM0MsWUFBWSxDQUFVO0lBQ3RCLFFBQVEsQ0FBZTtJQUN2QixVQUFVLENBQWU7SUFDM0IsaUJBQWlCLENBQVU7SUFFbkIsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0lBRS9DLFlBQXNCLFlBQW1DLEVBQ25DLGFBQWtDLEVBQ2xDLGNBQStCLEVBQy9CLElBQW1CLEVBQ25CLFFBQXdCLEVBQ3hCLGlCQUFtQztRQUxuQyxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENB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dHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Byb2Nlc3NSb2xlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3Byb2Nlc3Mtcm9sZSc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uL21vZGVscy91c2VyJztcbmltcG9ydCB7Q3JlZGVudGlhbHN9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL21vZGVscy9jcmVkZW50aWFscyc7XG5pbXBvcnQge3Rha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBdXRoZW50aWNhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL3NlcnZpY2VzL2F1dGhlbnRpY2F0aW9uL2F1dGhlbnRpY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3VzZXItcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1VzZXJUcmFuc2Zvcm1lcn0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vbW9kZWxzL3VzZXIudHJhbnNmb3JtZXInO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtTZXNzaW9uU2VydmljZX0gZnJvbSAnLi4vLi4vYXV0aGVudGljYXRpb24vc2Vzc2lvbi9zZXJ2aWNlcy9zZXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyUmVzb3VyY2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdXNlci1yZXNvdXJjZSc7XG5pbXBvcnQge0Fub255bW91c1NlcnZpY2V9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uL2Fub255bW91cy9hbm9ueW1vdXMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIF91c2VyOiBVc2VyO1xuICAgIHByb3RlY3RlZCBfdXNlckNoYW5nZSQ6IFJlcGxheVN1YmplY3Q8VXNlcj47XG4gICAgcHJvdGVjdGVkIF9hbm9ueW1vdXNVc2VyQ2hhbmdlJDogUmVwbGF5U3ViamVjdDxVc2VyPjtcbiAgICBwcm90ZWN0ZWQgX2xvZ2luQ2FsbGVkOiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfc3ViQXV0aDogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBfc3ViQW5vbnltOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfcHVibGljTG9hZENhbGxlZDogYm9vbGVhbjtcblxuICAgIHB1YmxpYyByZWFkb25seSBHTE9CQUxfUk9MRV9QUkVGSVggPSAnZ2xvYmFsXyc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2F1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyUmVzb3VyY2U6IFVzZXJSZXNvdXJjZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF91c2VyVHJhbnNmb3JtOiBVc2VyVHJhbnNmb3JtZXIsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2c6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2Fub255bW91c1NlcnZpY2U6IEFub255bW91c1NlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fdXNlciA9IHRoaXMuZW1wdHlVc2VyKCk7XG4gICAgICAgIHRoaXMuX2xvZ2luQ2FsbGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX3VzZXJDaGFuZ2UkID0gbmV3IFJlcGxheVN1YmplY3Q8VXNlcj4oMSk7XG4gICAgICAgIHRoaXMuX2Fub255bW91c1VzZXJDaGFuZ2UkID0gbmV3IFJlcGxheVN1YmplY3Q8VXNlcj4oMSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc3ViQXV0aCA9IHRoaXMuX2F1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQkLnN1YnNjcmliZShhdXRoID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXV0aCAmJiAhdGhpcy5fbG9naW5DYWxsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkVXNlcigpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWF1dGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhclVzZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wdWJsaXNoVXNlckNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fc3ViQW5vbnltID0gdGhpcy5fYW5vbnltb3VzU2VydmljZS50b2tlblNldC5zdWJzY3JpYmUodG9rZW4gPT4ge1xuICAgICAgICAgICAgaWYgKHRva2VuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkUHVibGljVXNlcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVXNlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucHVibGlzaEFub255bW91c1VzZXJDaGFuZ2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHVzZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyO1xuICAgIH1cblxuICAgIGdldCB1c2VyJCgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBhbm9ueW1vdXNVc2VyKCk6IFVzZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNVc2VyO1xuICAgIH1cblxuICAgIGdldCBhbm9ueW1vdXNVc2VyJCgpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Fub255bW91c1VzZXJDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9hbm9ueW1vdXNVc2VyQ2hhbmdlJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9zdWJBdXRoLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YkFub255bS51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHVzZXIgaGFzIHNwZWNpZmllZCBhdXRob3JpdHkuXG4gICAgICogQHBhcmFtIGF1dGhvcml0eSAtIElmIHByb3ZpZGVkIGF1dGhvcml0eSBpcyBhcnJheSBvZiBhdXRob3JpdGllcy5cbiAgICAgKiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIG1ha2UgaW50ZXJzZWN0aW9uIG9mIHRoZSBwcm92aWRlZCBhdXRob3JpdGllcyBhbmQgdXNlcidzIGF1dGhvcml0aWVzLlxuICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBjYWxjdWxhdGVkIGludGVyc2VjdGlvbiBpc24ndCBlbXB0eSByZXR1cm5zIHRydWUsIG90aGVyd2lzZSBmYWxzZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzQXV0aG9yaXR5KGF1dGhvcml0eTogQXJyYXk8c3RyaW5nPiB8IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlci5nZXRTZWxmT3JJbXBlcnNvbmF0ZWQoKTtcbiAgICAgICAgaWYgKCFhdXRob3JpdHkgfHwgIXVzZXIuYXV0aG9yaXRpZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXV0aG9yaXR5IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIHJldHVybiBhdXRob3JpdHkuc29tZShhID0+IHVzZXIuYXV0aG9yaXRpZXMuc29tZSh1ID0+IHUgPT09IGEpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB1c2VyLmF1dGhvcml0aWVzLnNvbWUoYSA9PiBhID09PSBhdXRob3JpdHkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGhhc1JvbGUocm9sZTogUHJvY2Vzc1JvbGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIuZ2V0U2VsZk9ySW1wZXJzb25hdGVkKCk7XG4gICAgICAgIGlmICghcm9sZSB8fCAhdXNlci5yb2xlcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1c2VyLnJvbGVzLnNvbWUociA9PiByID09PSByb2xlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciB0aGUgdXNlciBoYXMgcm9sZSB3aXRoIGEgc3BlY2lmaWMgc3RyaW5nSWRcbiAgICAgKiBAcGFyYW0gcm9sZVN0cmluZ0lkIElEIG9mIHRoZSByb2xlIHdlIHdhbnQgdG8gY2hlY2tcbiAgICAgKi9cbiAgICBwdWJsaWMgaGFzUm9sZUJ5SWQocm9sZVN0cmluZ0lkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuX3VzZXIuZ2V0U2VsZk9ySW1wZXJzb25hdGVkKCk7XG4gICAgICAgIGlmICghcm9sZVN0cmluZ0lkIHx8ICF1c2VyLnJvbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXIucm9sZXMuc29tZShyID0+IHIuc3RyaW5nSWQgPT09IHJvbGVTdHJpbmdJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgcm9sZSB3aXRoIHRoZSBzcGVjaWZpZWQgaWRlbnRpZmllciBpbiBhIHByb2Nlc3Mgd2l0aCB0aGUgc3BlY2lmaWVkIGlkZW50aWZpZXIgKGFueSB2ZXJzaW9uKSxcbiAgICAgKiBvciBpZiB0aGUgcm9sZSBpcyBnbG9iYWwgKHdpdGggcHJlZml4ICdnbG9iYWxfJykuXG4gICAgICogQHBhcmFtIHJvbGVJZGVudGlmaWVyIGlkZW50aWZpZXIgKGltcG9ydCBJRCkgb2YgdGhlIHJvbGUgd2Ugd2FudCB0byBjaGVja1xuICAgICAqIEBwYXJhbSBuZXRJZGVudGlmaWVyIGlkZW50aWZpZXIgKGltcG9ydCBJRCkgb2YgdGhlIHByb2Nlc3MgdGhlIHJvbGUgaXMgZGVmaW5lZCBpblxuICAgICAqL1xuICAgIHB1YmxpYyBoYXNSb2xlQnlJZGVudGlmaWVyKHJvbGVJZGVudGlmaWVyOiBzdHJpbmcsIG5ldElkZW50aWZpZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlci5nZXRTZWxmT3JJbXBlcnNvbmF0ZWQoKTtcbiAgICAgICAgaWYgKCFyb2xlSWRlbnRpZmllciB8fCAhdXNlci5yb2xlcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVzZXIucm9sZXMuc29tZShyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXNSb2xlID0gci5pbXBvcnRJZCA9PT0gcm9sZUlkZW50aWZpZXI7XG4gICAgICAgICAgICBjb25zdCBpc0dsb2JhbFJvbGUgPSByLmltcG9ydElkLnN0YXJ0c1dpdGgodGhpcy5HTE9CQUxfUk9MRV9QUkVGSVgpO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlc05ldCA9IHIubmV0SW1wb3J0SWQgPT09IG5ldElkZW50aWZpZXI7XG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1JvbGUgJiYgKGlzR2xvYmFsUm9sZSB8fCBtYXRjaGVzTmV0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHJvbGUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgaW4gYSBwcm9jZXNzIHdpdGggdGhlIHNwZWNpZmllZCBpZGVudGlmaWVyIChhbnkgdmVyc2lvbilcbiAgICAgKiBAcGFyYW0gcm9sZU5hbWUgbmFtZSBvZiB0aGUgcm9sZSB3ZSB3YW50IHRvIGNoZWNrXG4gICAgICogQHBhcmFtIG5ldElkZW50aWZpZXIgaWRlbnRpZmllciAoaW1wb3J0IElEKSBvZiB0aGUgcHJvY2VzcyB0aGUgcm9sZSBpcyBkZWZpbmVkIGluXG4gICAgICovXG4gICAgcHVibGljIGhhc1JvbGVCeU5hbWUocm9sZU5hbWU6IHN0cmluZywgbmV0SWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLl91c2VyLmdldFNlbGZPckltcGVyc29uYXRlZCgpO1xuICAgICAgICBpZiAoIXJvbGVOYW1lIHx8ICFuZXRJZGVudGlmaWVyIHx8ICF1c2VyLnJvbGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVzZXIucm9sZXMuc29tZShyID0+IHIubmV0SW1wb3J0SWQgPT09IG5ldElkZW50aWZpZXIgJiYgci5uYW1lID09PSByb2xlTmFtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvZ2luKGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscyk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgICAgICB0aGlzLl9sb2dpbkNhbGxlZCA9IHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5sb2dpbihjcmVkZW50aWFscykucGlwZShcbiAgICAgICAgICAgIHRhcCgoYXV0aFVzZXI6IFVzZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl91c2VyID0gYXV0aFVzZXI7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9naW5DYWxsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hVc2VyQ2hhbmdlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBsb2dvdXQoKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dGhTZXJ2aWNlLmxvZ291dCgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VzZXIgPSB0aGlzLmVtcHR5VXNlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMucHVibGlzaFVzZXJDaGFuZ2UoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkVXNlcigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBlbXB0eVVzZXIoKSB7XG4gICAgICAgIHJldHVybiBuZXcgVXNlcignJywgJycsICcnLCAnJywgW10sIFtdLCBbXSwgW10pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkVXNlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXNlclJlc291cmNlLmdldExvZ2dlZFVzZXIoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodXNlcjogVXNlclJlc291cmNlKSA9PiB7XG4gICAgICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJhY2tlbmRVc2VyID0gey4uLnVzZXIsIGlkOiB1c2VyLmlkLnRvU3RyaW5nKCl9O1xuICAgICAgICAgICAgICAgIHRoaXMuX3VzZXIgPSB0aGlzLl91c2VyVHJhbnNmb3JtLnRyYW5zZm9ybShiYWNrZW5kVXNlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5wdWJsaXNoVXNlckNoYW5nZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJiBlcnJvci5zdGF0dXMgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnQXV0aGVudGljYXRpb24gdG9rZW4gaXMgaW52YWxpZC4gQ2xlYXJpbmcgc3RyZWFtJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2Vzc2lvbi5jbGVhcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ0xvYWRpbmcgbG9nZ2VkIHVzZXIgaGFzIGZhaWxlZCEgSW5pdGlhbGlzYXRpb24gaGFzIG5vdCBiZSBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IScsIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGxvYWRQdWJsaWNVc2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyUmVzb3VyY2UuZ2V0UHVibGljTG9nZ2VkVXNlcigpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh1c2VyOiBVc2VyUmVzb3VyY2UpID0+IHtcbiAgICAgICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYmFja2VuZFVzZXIgPSB7Li4udXNlciwgaWQ6IHVzZXIuaWQudG9TdHJpbmcoKX07XG4gICAgICAgICAgICAgICAgdGhpcy5fdXNlciA9IHRoaXMuX3VzZXJUcmFuc2Zvcm0udHJhbnNmb3JtKGJhY2tlbmRVc2VyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnB1Ymxpc2hBbm9ueW1vdXNVc2VyQ2hhbmdlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5lcnJvcignTG9hZGluZyBsb2dnZWQgdXNlciBoYXMgZmFpbGVkISBJbml0aWFsaXNhdGlvbiBoYXMgbm90IGJlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkhJywgZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5fcHVibGljTG9hZENhbGxlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJVc2VyKCkge1xuICAgICAgICB0aGlzLl91c2VyID0gdGhpcy5lbXB0eVVzZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNVc2VyRW1wdHkodXNlcjogVXNlcik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXVzZXIgfHwgKCF1c2VyLmlkICYmIHVzZXIucm9sZXMubGVuZ3RoID09PSAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDdXJyZW50VXNlckVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1VzZXJFbXB0eSh0aGlzLnVzZXIpXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHB1Ymxpc2hVc2VyQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91c2VyQ2hhbmdlJC5uZXh0KHRoaXMudXNlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHB1Ymxpc2hBbm9ueW1vdXNVc2VyQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hbm9ueW1vdXNVc2VyQ2hhbmdlJC5uZXh0KHRoaXMudXNlcik7XG4gICAgfVxufVxuIl19
|
|
@@ -21,6 +21,8 @@ export class AbstractCaseListPaginatorComponent extends AbstractDefaultCaseListC
|
|
|
21
21
|
this._caseViewService = _caseViewService;
|
|
22
22
|
this._log = _log;
|
|
23
23
|
this.route = route;
|
|
24
|
+
this._caseViewService.nextPagePagination(this.pageSize, this.pageIndex);
|
|
25
|
+
this._caseViewService.paginationView = true;
|
|
24
26
|
this.cases$ = this._caseViewService.cases$.pipe(tap(() => {
|
|
25
27
|
this.length = this._caseViewService.pagination.totalElements;
|
|
26
28
|
this.pageIndex = this._caseViewService.pagination.number;
|
|
@@ -54,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
54
56
|
}], disabled: [{
|
|
55
57
|
type: Input
|
|
56
58
|
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtY2FzZS1saXN0LXBhZ2luYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3ZpZXcvY2FzZS12aWV3L2NvbXBvbmVudHMvY2FzZS1saXN0LXBhZ2luYXRvci9hYnN0cmFjdC1jYXNlLWxpc3QtcGFnaW5hdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUluQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFFaEcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sMkRBQTJELENBQUM7Ozs7O0FBTTNHLE1BQU0sT0FBZ0Isa0NBQW1DLFNBQVEsZ0NBQWdDO0lBU3ZFO0lBQ0E7SUFFQTtJQVZmLE1BQU0sQ0FBUztJQUNmLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDZCxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsZUFBZSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBRWxDLFlBQXNCLGdCQUFpQyxFQUNqQyxJQUFtQixFQUNLLGVBQWdDLEVBQ3hELEtBQXNCO1FBQ3hDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSnBDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUVuQixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQUV4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxhQUFhLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQWMsRUFBRSxJQUFVO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO3dHQS9CaUIsa0NBQWtDLDhFQVdwQixZQUFZOzRGQVgxQixrQ0FBa0MsdUpBRjFDLEVBQUU7OzRGQUVNLGtDQUFrQztrQkFKdkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBWWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWTtzRUFMNUIsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge3RhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2Nhc2UnO1xuaW1wb3J0IHtDYXNlVmlld1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvY2FzZS12aWV3LXNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfVEFCX0RBVEF9IGZyb20gJy4uLy4uLy4uLy4uL3RhYnMvdGFiLWRhdGEtaW5qZWN0aW9uLXRva2VuL3RhYi1kYXRhLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge0luamVjdGVkVGFiRGF0YX0gZnJvbSAnLi4vLi4vLi4vLi4vdGFicy9pbnRlcmZhY2VzJztcbmltcG9ydCB7QWJzdHJhY3REZWZhdWx0Q2FzZUxpc3RDb21wb25lbnR9IGZyb20gJy4uL2RlZmF1bHQtY2FzZS1saXN0L2Fic3RyYWN0LWRlZmF1bHQtY2FzZS1saXN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWNhc2UtbGlzdC1wYWdpbmF0b3InLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdENhc2VMaXN0UGFnaW5hdG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REZWZhdWx0Q2FzZUxpc3RDb21wb25lbnQge1xuXG4gICAgcHVibGljIGxlbmd0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBwYWdlU2l6ZSA9IDIwO1xuICAgIHB1YmxpYyBwYWdlSW5kZXggPSAwO1xuICAgIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgNTBdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhcHByb3ZhbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2Nhc2VWaWV3U2VydmljZTogQ2FzZVZpZXdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTkFFX1RBQl9EQVRBKSBpbmplY3RlZFRhYkRhdGE6IEluamVjdGVkVGFiRGF0YSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICBzdXBlcihfY2FzZVZpZXdTZXJ2aWNlLCBfbG9nLCBpbmplY3RlZFRhYkRhdGEsIHJvdXRlKTtcbiAgICAgICAgdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLm5leHRQYWdlUGFnaW5hdGlvbih0aGlzLnBhZ2VTaXplLCB0aGlzLnBhZ2VJbmRleCk7XG4gICAgICAgIHRoaXMuX2Nhc2VWaWV3U2VydmljZS5wYWdpbmF0aW9uVmlldyA9IHRydWU7XG4gICAgICAgIHRoaXMuY2FzZXMkID0gdGhpcy5fY2FzZVZpZXdTZXJ2aWNlLmNhc2VzJC5waXBlKHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxlbmd0aCA9IHRoaXMuX2Nhc2VWaWV3U2VydmljZS5wYWdpbmF0aW9uLnRvdGFsRWxlbWVudHM7XG4gICAgICAgICAgICB0aGlzLnBhZ2VJbmRleCA9IHRoaXMuX2Nhc2VWaWV3U2VydmljZS5wYWdpbmF0aW9uLm51bWJlcjtcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm9uUmVkaXJlY3QoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25QYWdlQ2hhbmdlZChlKSB7XG4gICAgICAgIHRoaXMucGFnZUluZGV4ID0gZS5wYWdlSW5kZXg7XG4gICAgICAgIHRoaXMucGFnZVNpemUgPSBlLnBhZ2VTaXplO1xuICAgICAgICB0aGlzLl9jYXNlVmlld1NlcnZpY2UubmV4dFBhZ2VQYWdpbmF0aW9uKHRoaXMucGFnZVNpemUsIHRoaXMucGFnZUluZGV4KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhY2tCeUlkKF9pbmRleDogbnVtYmVyLCBjYXplOiBDYXNlKSB7XG4gICAgICAgIHJldHVybiBjYXplLnN0cmluZ0lkO1xuICAgIH1cbn1cbiJdfQ==
|