ngx-histaff-alpha 0.9.9 → 1.0.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.
|
@@ -299,18 +299,20 @@ export class CoreFormControlSeekerComponent extends CoreFormControlBaseComponent
|
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
301
|
onEditBufferSubmit(e) {
|
|
302
|
+
var formData = this.editBufferForm.getRawValue();
|
|
302
303
|
try {
|
|
303
304
|
const filter = this.selectedData?.filter(x => x.id === this.editingId);
|
|
304
305
|
if (filter?.length === 1) {
|
|
305
306
|
this.multiModeExtendedColumns?.map(c => {
|
|
306
|
-
filter[0][c.field] =
|
|
307
|
+
filter[0][c.field] = formData[c.field];
|
|
307
308
|
});
|
|
308
309
|
}
|
|
309
310
|
this.showEditBuffer = false;
|
|
310
311
|
}
|
|
311
312
|
catch (ex) {
|
|
312
313
|
if (isDevMode()) {
|
|
313
|
-
|
|
314
|
+
console.log(ex);
|
|
315
|
+
this.alertService.error(ex.message || 'An error occured while trying to update selectedData', noneAutoClosedAlertOptions);
|
|
314
316
|
}
|
|
315
317
|
}
|
|
316
318
|
}
|
|
@@ -406,4 +408,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
406
408
|
type: ViewChild,
|
|
407
409
|
args: ['container']
|
|
408
410
|
}] } });
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUF5QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTdGLE9BQU8sRUFBYSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUEyRCxNQUFNLHVDQUF1QyxDQUFDO0FBRTdLLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3pILE9B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QUMxQix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsMkJBQTJCO3dCQUMzQixxQ0FBcUM7d0JBQ3JDLHVCQUF1Qjt3QkFDdkIsZ0JBQWdCO3FCQUNqQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsZ0NBQWdDO3lCQUM1Qzt3QkFDRCwyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDJCQUEyQjtxQkFDNUI7MFhBTW9CLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFRVixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBSXFCLGdCQUFnQjtzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgaXNEZXZNb2RlLCBWaWV3Q2hpbGQsIEluamVjdG9yLCBUZW1wbGF0ZVJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLWJhc2UvY29yZS1mb3JtLWNvbnRyb2wtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uL0VudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbCwgSUNvcmVGb3JtU2VjdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS9jb3JlLWZvcm0vZW51bS1pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgSU9yZ1RyZWVJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS1vcmctdHJlZS9jb3JlLW9yZy10cmVlL0lPcmdUcmVlSXRlbSc7XHJcbmltcG9ydCB7IENvcmVUYWJsZUNvbXBvbmVudCwgRUNvcmVUYWJsZVRvb2xDbGFzcywgRUNvcmVUYWJsZVRvb2xDb2RlLCBJQ29yZVRhYmxlVG9vbENsaWNrRXZlbnRFbWl0dGVyRGF0YSwgSUNvcmVUYWJsZVRvb2xJdGVtIH0gZnJvbSAnLi4vLi4vY29yZS10YWJsZS9jb3JlLXRhYmxlLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBDb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWVtcGxveWVlLXNlZWtlci9jb3JlLWVtcGxveWVlLXNlZWtlci9jb3JlLWVtcGxveWVlLXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci9jb3JlLWNvbnRyYWN0LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtd29ya2luZy1zZWVrZXIvY29yZS13b3JraW5nLXNlZWtlci9jb3JlLXdvcmtpbmctc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVXYWdlU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS13YWdlLXNlZWtlci9jb3JlLXdhZ2Utc2Vla2VyL2NvcmUtd2FnZS1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wb3NpdGlvbi1zZWVrZXIvY29yZS1wb3NpdGlvbi1zZWVrZXIvY29yZS1wb3NpdGlvbi1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJhbmRvbUF2YXRhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yYW5kb20tYXZhdGFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hbGVydE9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtdGFibGUvSUNvcmVUYWJsZUNvbHVtbkl0ZW0nO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29yZVBvc2l0aW9uQ29uY3VycmVudFNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcG9zaXRpb24tY29uY3VycmVudC1zZWVrZXIvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlci9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyL2NvcmUtcGFnZS1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlT3JnVW5pdFNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXVuaXQtc2Vla2VyL2NvcmUtb3JnLXVuaXQtc2Vla2VyL2NvcmUtb3JnLXVuaXQtc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcEF2YXRhclRvU2VydmVyUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9tYXAtYXZhdGFyLXRvLXNlcnZlci5waXBlJztcclxuaW1wb3J0IHsgQ29yZVBhZ2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYWdlLWVkaXQvY29yZS1wYWdlLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVBhZ2VFZGl0TGl0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1lZGl0LWxpdGUvY29yZS1wYWdlLWVkaXQtbGl0ZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWZvcm0tY29udHJvbC1zZWVrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgTWFwQXZhdGFyVG9TZXJ2ZXJQaXBlLFxyXG4gICAgQ29yZVBhZ2VFZGl0TGl0ZUNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVdhZ2VTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlT3JnVW5pdFNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVQb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnRcclxuICAgIH0sXHJcbiAgICBDb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gIF1cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgZXh0ZW5kcyBDb3JlRm9ybUNvbnRyb2xCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZCgnYXZhdGFyJykgYXZhdGFyITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgbmdDb250cm9sITogTmdDb250cm9sO1xyXG5cclxuICBpc0Rldk1vZGUgPSBpc0Rldk1vZGUoKTtcclxuXHJcbiAgbGFuZyE6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgdGl0bGUhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHNob3dQYWdlSGVhZGVyITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwcmVEZWZpbmVkT3V0ZXJQYXJhbSQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBjbGljayQhOiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBnZXRCeUlkT2JqZWN0JCE6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xyXG4gIEBJbnB1dCgpIHBhcmFtTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgbXVsdGlNb2RlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBvYmplY3RMaXN0JCE6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT47XHJcbiAgQElucHV0KCkgc2hvd25TZWVrZXJDb2x1bW5zITogc3RyaW5nW107IC8vIFJlZHVjZSB2aXNpYmxlIGNvbHVtbnMgZnJvbSBiYXNlIGNvbXBvbmVudC5cclxuXHJcbiAgLyogRXh0ZW5kZWQgc2luY2UgMjAyNC0wMy0yNCAqL1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucyE6IElDb3JlVGFibGVDb2x1bW5JdGVtW107XHJcbiAgQElucHV0KCkgbXVsdGlNb2RlRXh0ZW5kZWRTZWN0aW9ucyE6IElDb3JlRm9ybVNlY3Rpb25bXTtcclxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcblxyXG4gIC8qIFNUQVJUOiBSRVFVSVJFRCAqL1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNlZWtlclNvdXJjZVR5cGUhOiBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZTtcclxuICBASW5wdXQoKSBib3VuZEZyb20hOiBzdHJpbmc7IC8vIHRha2UgdGhpcyBmaWVsZCBmcm9tIEdldEJ5SWQgcmVzcG9uc2UgaW5uZXJCb2R5IHRvIGJpbmQgdG8gdGhlIHZhbHVlXHJcbiAgQElucHV0KCkgc2hvd25Gcm9tITogc3RyaW5nOyAvLyB0YWtlIHRoaXMgZmllbGQgZnJvbSBHZXRCeUlkIHJlc3BvbnNlIGlubmVyQm9keSB0byBiaW5kIHRvIHRoZSB0ZXh0XHJcbiAgLyogRU5EOiBSRVFVSVJFRCB3aGVuIEVNUExPWUVFX1NFRUtFUiAqL1xyXG5cclxuICBASW5wdXQoKSBhbHNvQmluZFRvITogSUNvcmVGb3JtQ29udHJvbFNlZWtlckV4dHJhQmluZGluZ01vZGVsW107XHJcbiAgQElucHV0KCkgc2Vla2VyVmVyaWZ5SWdub3JlITogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIG9uRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgc291cmNlT3BlbiE6IGJvb2xlYW47XHJcblxyXG4gIHZhbHVlVG9TaG93ITogc3RyaW5nO1xyXG4gIHBsYWNlaG9sZGVyITogc3RyaW5nO1xyXG5cclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAvKiBmb3IgbXVsdGlNb2RlICovXHJcbiAgcGVuZGluZ1NlbGVjdGVkRGF0YTogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZERhdGE6IGFueVtdID0gW107XHJcbiAgbXVsdGlNb2RlQ29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtdO1xyXG4gIHNob3dFZGl0QnVmZmVyITogYm9vbGVhbjtcclxuICBlZGl0QnVmZmVyRm9ybSE6IEZvcm1Hcm91cDtcclxuICBlZGl0aW5nSWQhOiBudW1iZXI7XHJcbiAgdG9vbHM6IElDb3JlVGFibGVUb29sSXRlbVtdID0gW3tcclxuICAgIGNvZGU6IEVDb3JlVGFibGVUb29sQ29kZS5kZWxldGUsXHJcbiAgICBjbGFzczogRUNvcmVUYWJsZVRvb2xDbGFzcy5kZWxldGUsXHJcbiAgICBjYXB0aW9uOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09OVFJPTF9UQUJMRV9UT09MX0RFTEVURVxyXG4gIH1dO1xyXG5cclxuICBzaG93Q2xlYXJJY29uITogYm9vbGVhbjtcclxuICBkZWZhdWx0QXZhdGFyITogc3RyaW5nO1xyXG4gIGhpZGVGb290ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudDogQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQ6IENvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQ6IENvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlV2FnZVNlZWtlckNvbXBvbmVudDogQ29yZVdhZ2VTZWVrZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIGNvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudDogQ29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSByYXM6IFJhbmRvbUF2YXRhclNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmRlZmF1bHRBdmF0YXIgPSByYXMuZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzaWduTXVsdGlNb2RlQ29sdW1ucygpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5zZWVrZXJTb3VyY2VUeXBlKSB7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuRU1QTE9ZRUVfU0VFSzpcclxuICAgICAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucykge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLnRoaXMuY29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LmNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gdGhpcy5jb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQuY29sdW1ucztcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5DT05UUkFDVF9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHRoaXMuY29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50LmNvbHVtbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuV09SS0lOR19TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHRoaXMuY29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQuY29sdW1ucztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5XQUdFX1NFRUs6XHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gdGhpcy5jb3JlV2FnZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLlBPU0lUSU9OX1NFRUs6XHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gdGhpcy5jb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQuY29sdW1ucztcclxuICAgICAgICBpZiAoISEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgICAgIHRoaXMuaGlkZUZvb3RlciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUs6XHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gW107XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICAvKlxyXG4gICAgSWYgd2UgdHJ5IHRvIGluamVjdCBOZ0NvbnRyb2wgZGlyZWN0bHkgd2l0aGluIHRoZSBjb25zdHJ1Y3Rvciwgd2Ugd2lsbCBnZXQgYW4gZXJyb3I6IOKAnEVycm9yOiBORzAyMDA6IENpcmN1bGFyIGRlcGVuZGVuY3kgaW4gREkgZGV0ZWN0ZWTigKbigJ0uXHJcbiAgICBUaHVzLCB3ZSBpbmplY3QgTmdDb250cm9sIGluIHRoZSBPbkluaXQgbGlmZWN5Y2xlIGhvb2sgdmlhIEluamVjdG9yIHdpdGhvdXQgYW55IGVycm9yLlxyXG4gICAgKi9cclxuICAgIHRoaXMubmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sKTtcclxuICAgIHRoaXMuYXNpZ25NdWx0aU1vZGVDb2x1bW5zKCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zPy5tYXAoYyA9PiB7XHJcbiAgICAgICAgaWYgKGMuZmllbGQgPT09ICdhdmF0YXInICYmICEhIWMudGVtcGxhdGVSZWYpIGMudGVtcGxhdGVSZWYgPSB0aGlzLmF2YXRhclxyXG4gICAgICB9KVxyXG5cclxuICAgICAgY29uc3QgZWwgPSB0aGlzLmNvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3QgaGVpZ2h0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xyXG4gICAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1oZWlnaHQnLCAoaGVpZ2h0IHx8IDUwKSArICdweCcpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5uZ0NvbnRyb2wuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGlmICghISF4KSB0aGlzLnZhbHVlVG9TaG93ID0gXCJcIlxyXG4gICAgICAgIH0pIVxyXG4gICAgICApXHJcblxyXG4gICAgICAvKiBTVEFSVDogQ0hFQ0sgSU5QVVRTICovXHJcblxyXG5cclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgIGBDb3JlRm9ybUNvbnRyb2xTZWVrZXJDb21wb25lbnQgRXJyb3I6IFJlcXVpcmVkIGlucHV0czpcclxuICAgICAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlIChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgICAgaWYgKCEhIXRoaXMucGFyYW1Nb2RlKSB7XHJcblxyXG4gICAgICAgICAgICAvL2dldEJ5SWRPYmplY3QkXHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLmdldEJ5SWRPYmplY3QkKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IEVycm9yOiBSZXF1aXJlZCBpbnB1dHM6XHJcbiAgICAgICAgICAgICAgICAgIGdldEJ5SWRPYmplY3QkOiBCZWhhdmlvclN1YmplY3QmbHQ7YW55Jmd0OyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICghISF0aGlzLmJvdW5kRnJvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICBgQWxsIF9TRUVLRVIgY29udHJvbHMgcmVxdWlyZSBpbnB1dDpcclxuICAgICAgICAgICAgICAgICAgICBib3VuZEZyb206IHN0cmluZzsgKGZvciAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYCxcclxuICAgICAgICAgICAgICBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9uc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKCEhIXRoaXMuc2hvd25Gcm9tKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgIGBBbGwgX1NFRUtFUiBjb250cm9scyByZXF1aXJlIGlucHV0OlxyXG4gICAgICAgICAgICAgICAgICAgIHNob3duRnJvbTogc3RyaW5nOyAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgLFxyXG4gICAgICAgICAgICAgIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuXHJcbiAgICAgIC8qIEVORDogQ0hFQ0sgSU5QVVRTICovXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmdldEJ5SWRPYmplY3QkPy5zdWJzY3JpYmUoeCA9PiB7XHJcblxyXG4gICAgICAgICAgaWYgKCEheCkge1xyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0geFt0aGlzLnNob3duRnJvbV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWVUb1Nob3cgPSBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgaWYgKCEhdGhpcy5vYmplY3RMaXN0JCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgdGhpcy5vYmplY3RMaXN0JC5zdWJzY3JpYmUoeCA9PiB0aGlzLnNlbGVjdGVkRGF0YSA9IHgpXHJcbiAgICAgICAgKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSlcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy52YWx1ZSA9IG9iaik7XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICBjb25zb2xlLmdyb3VwKCdXcml0ZSB2YWx1ZSBmb3IgJyArIHRoaXMubmdDb250cm9sLm5hbWUpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMubXVsdGlNb2RlQ29sdW1uc1wiLCB0aGlzLm11bHRpTW9kZUNvbHVtbnMpXHJcbiAgICAgIGNvbnNvbGUubG9nKCdUbyBkbzogQXNzaWduIGFwaSByZXMgdG8gdGhlIHNlbGVjdGVkRGF0YScpXHJcbiAgICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tTZWVrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGljayQ/Lm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSByZXR1cm47XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QoKTogdm9pZCB7XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEuZmlsdGVyKHggPT4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHkgPT4geS5pZCA9PT0geC5JZCkubGVuZ3RoID09PSAwKVxyXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZERhdGEgPSBbLi4udGhpcy5zZWxlY3RlZERhdGEsIC4uLmZpbHRlcl07XHJcbiAgICAgIGNvbnN0IG5ld1NlbGVjdGVkSWRzOiBhbnlbXSA9IFtdO1xyXG4gICAgICBuZXdTZWxlY3RlZERhdGEubWFwKHggPT4gbmV3U2VsZWN0ZWRJZHMucHVzaCh4LmlkKSlcclxuICAgICAgdGhpcy5vYmplY3RMaXN0JC5uZXh0KG5ld1NlbGVjdGVkRGF0YSk7XHJcbiAgICAgIC8vdGhpcy5zZWxlY3RlZERhdGEgPSBuZXdTZWxlY3RlZERhdGE7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdTZWxlY3RlZElkcztcclxuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3U2VsZWN0ZWRJZHMpXHJcbiAgICAgIHRoaXMucGVuZGluZ1NlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoZVt0aGlzLmJvdW5kRnJvbV0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShlW3RoaXMuYm91bmRGcm9tXSk7XHJcbiAgICB0aGlzLnZhbHVlVG9TaG93ID0gZVt0aGlzLnNob3duRnJvbV07XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuXHJcbiAgICBpZiAoISF0aGlzLmFsc29CaW5kVG8pIHtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnBhcmVudDtcclxuICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICB0aGlzLmFsc29CaW5kVG8ubWFwKCh4LCBpbmRleCkgPT4ge1xyXG5cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBzdGFydDogVmFsaWRhdGUgRGV2ZWxvcGVyIGlucHV0XHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgaWYgKGlzRGV2TW9kZSgpICYmIGluZGV4ID09PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICghISF4LnRha2VGcm9tKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJ0YWtlRnJvbSB3YXMgdW5kZWZpbmVkXCIsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICghISFlW3gudGFrZUZyb21dKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCBhIHZhbHVlIGZyb20gJyR7eC50YWtlRnJvbX0nLCBidXQgdGhlIHNlZWtlciBncmlkIGRvZXMgbm90IGhhdmUgdGhpcyBjb2x1bW5gLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCEhIXguYmluZFRvKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJiaW5kVG8gd2FzIHVuZGVmaW5lZFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoISEhZm9ybS5nZXQoeC5iaW5kVG8pKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihgWW91IGV4cGVjdCB0byBiaW5kIHZhbHVlIHRvICcke3guYmluZFRvfScsIGJ1dCB0aGUgZm9ybSBncm91cCBkb2VzIG5vdCBoYXZlIHRoaXMgY29udHJvbGAsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8qXHJcbiAgICAgICAgICBlbmQ6IFZhbGlkYXRlIERldmVsb3BlciBpbnB1dFxyXG4gICAgICAgICAgKi9cclxuXHJcbiAgICAgICAgICBmb3JtLmdldCh4LmJpbmRUbyk/LnNldFZhbHVlKGVbeC50YWtlRnJvbV0pO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNUb3VjaGVkO1xyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSXRlbURvdWJsZUNsaWNrKGU6IElPcmdUcmVlSXRlbSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKGUuaWQpO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IGUudHJlZSRUaXRsZTtcclxuICAgIHRoaXMub25DaGFuZ2UoZS5pZCk7XHJcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIHRoaXMuc291cmNlT3BlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5vbkRvdWJsZUNsaWNrLmVtaXQoZSk7XHJcbiAgfVxyXG5cclxuICBvbkNvbHVtbnNJbml0KGU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVDb2x1bW5zID0gWy4uLmUsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkRGF0YUNoYW5nZShlOiBhbnkpIHtcclxuICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFsuLi5lLmNvbHVtbnMsIC4uLnRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IGUuY29sdW1ucztcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5wZW5kaW5nU2VsZWN0ZWREYXRhID0gZS5kYXRhO1xyXG4gIH1cclxuXHJcbiAgb25Ub29sQ2xpY2soZTogSUNvcmVUYWJsZVRvb2xDbGlja0V2ZW50RW1pdHRlckRhdGEpIHtcclxuICAgIGlmIChlLmNvZGUgPT09IEVDb3JlVGFibGVUb29sQ29kZS5kZWxldGUpIHtcclxuICAgICAgY29uc3QgbmV3T2JqZWN0TGlzdCA9IHRoaXMub2JqZWN0TGlzdCQudmFsdWUuZmlsdGVyKHggPT4geC5pZCAhPT0gZS5pZClcclxuICAgICAgY29uc3QgbmV3SWRzID0gdGhpcy52YWx1ZS5maWx0ZXIoKHg6IGFueSkgPT4geCAhPT0gZS5pZClcclxuXHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdJZHM7XHJcbiAgICAgIHRoaXMub2JqZWN0TGlzdCQubmV4dChuZXdPYmplY3RMaXN0KTtcclxuXHJcbiAgICAgIHRoaXMub25DaGFuZ2UobmV3SWRzKTtcclxuICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrQ2xlYXIoKSB7XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBcIlwiO1xyXG5cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ZWREYXRhUm93RG91YmxlQ2xpY2soZTogYW55KSB7XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMubWFwKHggPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICB0aGlzLmVkaXRCdWZmZXJGb3JtPy5nZXQoeC5maWVsZCk/LnBhdGNoVmFsdWUoZVt4LmZpZWxkXSlcclxuICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeShleGNlcHRpb24pKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5lZGl0aW5nSWQgPSBlLmlkO1xyXG4gICAgICB9IGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKEpTT04uc3RyaW5naWZ5KGV4Y2VwdGlvbikpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgdGhpcy5zaG93RWRpdEJ1ZmZlciA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVkaXRCdWZmZXJTdWJtaXQoZTogYW55KSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnNlbGVjdGVkRGF0YT8uZmlsdGVyKHggPT4geC5pZCA9PT0gdGhpcy5lZGl0aW5nSWQpO1xyXG4gICAgICBpZiAoZmlsdGVyPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucz8ubWFwKGMgPT4ge1xyXG4gICAgICAgICAgZmlsdGVyWzBdW2MuZmllbGRdID0gZVtjLmZpZWxkXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93RWRpdEJ1ZmZlciA9IGZhbHNlXHJcbiAgICB9IGNhdGNoIChleCkge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeShleCwgbnVsbCwgMiksIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVkaXRCdWZmZXJDYW5jZWwoZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZChlOiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuZWRpdEJ1ZmZlckZvcm0gPSBlO1xyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWZvcm0tY29udHJvbC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFtdWx0aU1vZGVcIj5cclxuICAgICAgICA8bGFiZWwgI3Nob3duVGV4dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dCBmb3JtLWNvbnRyb2xcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFthcHBUb29sdGlwXT1cInZhbHVlVG9TaG93XCI+e3sgdmFsdWVUb1Nob3cgfX08L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXItaWNvbi13cmFwcGVyXCIgKm5nSWY9XCIhISFtdWx0aU1vZGVcIiBbY2xhc3MuZC1ub25lXT1cIiEhZGlzYWJsZWQgfHwgISEhdmFsdWVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyKClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiIFthcHBUb29sdGlwXT1cIidVSS5DT1JFX0NPTlRPTF9DT01NT05fQ0xFQVInIHwgdHJhbnNsYXRlOiBsYW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWVrZXItaWNvbi13cmFwcGVyXCIgW2NsYXNzLmZvcm0tY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5tdWx0aS1tb2RlXT1cIiEhbXVsdGlNb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3JlLXRhYmJlLXdyYXBwZXJcIiAqbmdJZj1cIm11bHRpTW9kZVwiPlxyXG4gICAgICAgIDxjb3JlLXRhYmxlIFtjb2x1bW5zXT1cIm11bHRpTW9kZUNvbHVtbnNcIiBbZGF0YV09XCJzZWxlY3RlZERhdGFcIiBbc2hvd1Rvb2xzXT1cIiEhIWRpc2FibGVkXCIgW3Rvb2xzXT1cInRvb2xzXCJcclxuICAgICAgICAgICAgW3NlYXJjaFN3aXRjaERpc2FibGVkXT1cInRydWVcIiAob25Ub29sQ2xpY2spPVwib25Ub29sQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChvblJvd0RvdWJsZUNsaWNrKT1cIm9uU2VsZWN0ZWREYXRhUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiPjwvY29yZS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIiEhc291cmNlT3BlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXItcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCJ0aXRsZVwiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiICpuZ0lmPVwic2hvd1BhZ2VIZWFkZXJcIj48L2NvcmUtcGFnZS1oZWFkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic2Vla2VyU291cmNlVHlwZT09PSdPUkdBTklaQVRJT05fVU5JVF9TRUVLJ1wiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vla2VyU291cmNlVHlwZSA9PT0gJ0VNUExPWUVFX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcGxveWVlU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlZWtlclNvdXJjZVR5cGUgPT09ICdDT05UUkFDVF9TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cmFjdFNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnV09SS0lOR19TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3b3JraW5nU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlZWtlclNvdXJjZVR5cGUgPT09ICdXQUdFX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndhZ2VTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vla2VyU291cmNlVHlwZSA9PT0gJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZ2FuaXphdGlvblVuaXRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnUE9TSVRJT05fU0VFSydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9zaXRpb25TZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnUE9TSVRJT05fQ09OQ1VSUkVOVF9TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3NpdGlvbkNvbmN1cnJlbnRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISEhaGlkZUZvb3RlclwiIGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2VsZWN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CVVRUT05fU0VMRUNUJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdVSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9DQU5DRUwnIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXBsb3llZVNlZWs+XHJcbiAgICA8Y29yZS1lbXBsb3llZS1zZWVrZXIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiPjwvY29yZS1lbXBsb3llZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRyYWN0U2Vlaz5cclxuICAgIDxjb3JlLWNvbnRyYWN0LXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLWNvbnRyYWN0LXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjd29ya2luZ1NlZWs+XHJcbiAgICA8Y29yZS13b3JraW5nLXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLXdvcmtpbmctc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN3YWdlU2Vlaz5cclxuICAgIDxjb3JlLXdhZ2Utc2Vla2VyIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwicHJlRGVmaW5lZE91dGVyUGFyYW0kXCIgW211bHRpTW9kZV09XCJtdWx0aU1vZGVcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIj48L2NvcmUtd2FnZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uU2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICBbc2Vla2VyVmVyaWZ5SWdub3JlXT1cInNlZWtlclZlcmlmeUlnbm9yZVwiIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiPjwvY29yZS1wb3NpdGlvbi1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uQ29uY3VycmVudFNlZWs+XHJcbiAgICA8Y29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcmdhbml6YXRpb25Vbml0U2Vlaz5cclxuICAgIDxjb3JlLW9yZy11bml0LXNlZWtlciAoaXRlbURvdWJsZUNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKCRldmVudClcIj48L2NvcmUtb3JnLXVuaXQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyICE9IG51bGxcIiBbc3JjXT1cImF2YXRhciB8IG1hcEF2YXRhclRvU2VydmVyXCIgY2xhc3M9XCJpbi10YWJsZS1hdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyID09IG51bGxcIiBbc3JjXT1cImRlZmF1bHRBdmF0YXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbkBpZiAoISFzaG93RWRpdEJ1ZmZlcikge1xyXG4gICAgPGNvcmUtcGFnZS1lZGl0LWxpdGUgW3NlY3Rpb25zXT1cIm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNcIiBcclxuICAgICAgICAob25Gb3JtQ3JlYXRlZCk9XCJvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZCgkZXZlbnQpXCIgKHN1Ym1pdExvZ2ljKT1cIm9uRWRpdEJ1ZmZlclN1Ym1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY2FuY2VsTG9naWMpPVwib25FZGl0QnVmZmVyQ2FuY2VsKCRldmVudClcIj48L2NvcmUtcGFnZS1lZGl0LWxpdGU+XHJcbn0iXX0=
|
|
411
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsS0FBSyxFQUFxQixTQUFTLEVBQUUsU0FBUyxFQUF5QixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxLLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTdGLE9BQU8sRUFBYSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUEyRCxNQUFNLHVDQUF1QyxDQUFDO0FBRTdLLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZFQUE2RSxDQUFDO0FBQ3pILE9B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QXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLDJCQUEyQjt3QkFDM0IscUNBQXFDO3dCQUNyQyx1QkFBdUI7d0JBQ3ZCLGdCQUFnQjtxQkFDakIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLGdDQUFnQzt5QkFDNUM7d0JBQ0QsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QiwyQkFBMkI7cUJBQzVCOzBYQU1vQixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBUVYsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUlxQixnQkFBZ0I7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFFaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIGlzRGV2TW9kZSwgVmlld0NoaWxkLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVGb3JtQ29udHJvbEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0tY29udHJvbC1iYXNlL2NvcmUtZm9ybS1jb250cm9sLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUgfSBmcm9tICcuLi9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcbmltcG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL2FsZXJ0L2FsZXJ0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJQ29yZUZvcm1Db250cm9sU2Vla2VyRXh0cmFCaW5kaW5nTW9kZWwsIElDb3JlRm9ybVNlY3Rpb24gfSBmcm9tICcuLi8uLi9jb3JlLWZvcm0vY29yZS1mb3JtL2VudW0taW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IElPcmdUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS9JT3JnVHJlZUl0ZW0nO1xyXG5pbXBvcnQgeyBDb3JlVGFibGVDb21wb25lbnQsIEVDb3JlVGFibGVUb29sQ2xhc3MsIEVDb3JlVGFibGVUb29sQ29kZSwgSUNvcmVUYWJsZVRvb2xDbGlja0V2ZW50RW1pdHRlckRhdGEsIElDb3JlVGFibGVUb29sSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUtdGFibGUvY29yZS10YWJsZS5jb21wb25lbnQnO1xyXG5cclxuaW1wb3J0IHsgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIvY29yZS1lbXBsb3llZS1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIvY29yZS1jb250cmFjdC1zZWVrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXdvcmtpbmctc2Vla2VyL2NvcmUtd29ya2luZy1zZWVrZXIvY29yZS13b3JraW5nLXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtd2FnZS1zZWVrZXIvY29yZS13YWdlLXNlZWtlci9jb3JlLXdhZ2Utc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyL2NvcmUtcG9zaXRpb24tc2Vla2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tIFwiYWxwaGEtZ2xvYmFsLWNvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSYW5kb21BdmF0YXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmFuZG9tLWF2YXRhci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYWxlcnRPcHRpb25zJztcclxuaW1wb3J0IHsgSUNvcmVUYWJsZUNvbHVtbkl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlLXRhYmxlL0lDb3JlVGFibGVDb2x1bW5JdGVtJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQb3NpdGlvbkNvbmN1cnJlbnRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyL2NvcmUtcG9zaXRpb24tY29uY3VycmVudC1zZWVrZXIvY29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29yZU9yZ1VuaXRTZWVrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci9jb3JlLW9yZy11bml0LXNlZWtlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXBBdmF0YXJUb1NlcnZlclBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvbWFwLWF2YXRhci10by1zZXJ2ZXIucGlwZSc7XHJcbmltcG9ydCB7IENvcmVQYWdlRWRpdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1lZGl0L2NvcmUtcGFnZS1lZGl0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVQYWdlRWRpdExpdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLXBhZ2UtZWRpdC1saXRlL2NvcmUtcGFnZS1lZGl0LWxpdGUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIE1hcEF2YXRhclRvU2VydmVyUGlwZSxcclxuICAgIENvcmVQYWdlRWRpdExpdGVDb21wb25lbnQsXHJcbiAgICBDb3JlVGFibGVDb21wb25lbnQsXHJcbiAgICBDb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZU9yZ1VuaXRTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlUG9zaXRpb25Db25jdXJyZW50U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2VIZWFkZXJDb21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1mb3JtLWNvbnRyb2wtc2Vla2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWZvcm0tY29udHJvbC1zZWVrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgQ29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50LFxyXG4gICAgQ29yZVdvcmtpbmdTZWVrZXJDb21wb25lbnQsXHJcbiAgICBDb3JlV2FnZVNlZWtlckNvbXBvbmVudCxcclxuICAgIENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCxcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUZvcm1Db250cm9sQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F2YXRhcicpIGF2YXRhciE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG5nQ29udHJvbCE6IE5nQ29udHJvbDtcclxuXHJcbiAgaXNEZXZNb2RlID0gaXNEZXZNb2RlKCk7XHJcblxyXG4gIGxhbmchOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHRpdGxlITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzaG93UGFnZUhlYWRlciE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHJlRGVmaW5lZE91dGVyUGFyYW0kITogQmVoYXZpb3JTdWJqZWN0PGFueT47XHJcbiAgQElucHV0KCkgY2xpY2skITogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZ2V0QnlJZE9iamVjdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55PjtcclxuICBASW5wdXQoKSBwYXJhbU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgb2JqZWN0TGlzdCQhOiBCZWhhdmlvclN1YmplY3Q8YW55W10+O1xyXG4gIEBJbnB1dCgpIHNob3duU2Vla2VyQ29sdW1ucyE6IHN0cmluZ1tdOyAvLyBSZWR1Y2UgdmlzaWJsZSBjb2x1bW5zIGZyb20gYmFzZSBjb21wb25lbnQuXHJcblxyXG4gIC8qIEV4dGVuZGVkIHNpbmNlIDIwMjQtMDMtMjQgKi9cclxuICBASW5wdXQoKSBtdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMhOiBJQ29yZVRhYmxlQ29sdW1uSXRlbVtdO1xyXG4gIEBJbnB1dCgpIG11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnMhOiBJQ29yZUZvcm1TZWN0aW9uW107XHJcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG5cclxuICAvKiBTVEFSVDogUkVRVUlSRUQgKi9cclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZWVrZXJTb3VyY2VUeXBlITogRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGU7XHJcbiAgQElucHV0KCkgYm91bmRGcm9tITogc3RyaW5nOyAvLyB0YWtlIHRoaXMgZmllbGQgZnJvbSBHZXRCeUlkIHJlc3BvbnNlIGlubmVyQm9keSB0byBiaW5kIHRvIHRoZSB2YWx1ZVxyXG4gIEBJbnB1dCgpIHNob3duRnJvbSE6IHN0cmluZzsgLy8gdGFrZSB0aGlzIGZpZWxkIGZyb20gR2V0QnlJZCByZXNwb25zZSBpbm5lckJvZHkgdG8gYmluZCB0byB0aGUgdGV4dFxyXG4gIC8qIEVORDogUkVRVUlSRUQgd2hlbiBFTVBMT1lFRV9TRUVLRVIgKi9cclxuXHJcbiAgQElucHV0KCkgYWxzb0JpbmRUbyE6IElDb3JlRm9ybUNvbnRyb2xTZWVrZXJFeHRyYUJpbmRpbmdNb2RlbFtdO1xyXG4gIEBJbnB1dCgpIHNlZWtlclZlcmlmeUlnbm9yZSE6IGJvb2xlYW47XHJcblxyXG4gIEBPdXRwdXQoKSBvbkRvdWJsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHNvdXJjZU9wZW4hOiBib29sZWFuO1xyXG5cclxuICB2YWx1ZVRvU2hvdyE6IHN0cmluZztcclxuICBwbGFjZWhvbGRlciE6IHN0cmluZztcclxuXHJcbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgLyogZm9yIG11bHRpTW9kZSAqL1xyXG4gIHBlbmRpbmdTZWxlY3RlZERhdGE6IGFueVtdID0gW107XHJcbiAgc2VsZWN0ZWREYXRhOiBhbnlbXSA9IFtdO1xyXG4gIG11bHRpTW9kZUNvbHVtbnM6IElDb3JlVGFibGVDb2x1bW5JdGVtW10gPSBbXTtcclxuICBzaG93RWRpdEJ1ZmZlciE6IGJvb2xlYW47XHJcbiAgZWRpdEJ1ZmZlckZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgZWRpdGluZ0lkITogbnVtYmVyO1xyXG4gIHRvb2xzOiBJQ29yZVRhYmxlVG9vbEl0ZW1bXSA9IFt7XHJcbiAgICBjb2RlOiBFQ29yZVRhYmxlVG9vbENvZGUuZGVsZXRlLFxyXG4gICAgY2xhc3M6IEVDb3JlVGFibGVUb29sQ2xhc3MuZGVsZXRlLFxyXG4gICAgY2FwdGlvbjogRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTlRST0xfVEFCTEVfVE9PTF9ERUxFVEVcclxuICB9XTtcclxuXHJcbiAgc2hvd0NsZWFySWNvbiE6IGJvb2xlYW47XHJcbiAgZGVmYXVsdEF2YXRhciE6IHN0cmluZztcclxuICBoaWRlRm9vdGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlRW1wbG95ZWVTZWVrZXJDb21wb25lbnQ6IENvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZUNvbnRyYWN0U2Vla2VyQ29tcG9uZW50OiBDb3JlQ29udHJhY3RTZWVrZXJDb21wb25lbnQsXHJcbiAgICBwcml2YXRlIGNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50OiBDb3JlV29ya2luZ1NlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29yZVdhZ2VTZWVrZXJDb21wb25lbnQ6IENvcmVXYWdlU2Vla2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb3JlUG9zaXRpb25TZWVrZXJDb21wb25lbnQ6IENvcmVQb3NpdGlvblNlZWtlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgcmFzOiBSYW5kb21BdmF0YXJTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5kZWZhdWx0QXZhdGFyID0gcmFzLmdldCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc2lnbk11bHRpTW9kZUNvbHVtbnMoKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2Vla2VyU291cmNlVHlwZSkge1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLkVNUExPWUVFX1NFRUs6XHJcbiAgICAgICAgaWYgKCEhdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMpIHtcclxuICAgICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFsuLi50aGlzLmNvcmVFbXBsb3llZVNlZWtlckNvbXBvbmVudC5jb2x1bW5zLCAuLi50aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1uc107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHRoaXMuY29yZUVtcGxveWVlU2Vla2VyQ29tcG9uZW50LmNvbHVtbnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuQ09OVFJBQ1RfU0VFSzpcclxuICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSB0aGlzLmNvcmVDb250cmFjdFNlZWtlckNvbXBvbmVudC5jb2x1bW5zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLldPUktJTkdfU0VFSzpcclxuICAgICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSB0aGlzLmNvcmVXb3JraW5nU2Vla2VyQ29tcG9uZW50LmNvbHVtbnM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuV0FHRV9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHRoaXMuY29yZVdhZ2VTZWVrZXJDb21wb25lbnQuY29sdW1ucztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5QT1NJVElPTl9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IHRoaXMuY29yZVBvc2l0aW9uU2Vla2VyQ29tcG9uZW50LmNvbHVtbnM7XHJcbiAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmhpZGVGb290ZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLOlxyXG4gICAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFtdO1xyXG4gICAgICAgIGlmICghISF0aGlzLm11bHRpTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5oaWRlRm9vdGVyID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgLypcclxuICAgIElmIHdlIHRyeSB0byBpbmplY3QgTmdDb250cm9sIGRpcmVjdGx5IHdpdGhpbiB0aGUgY29uc3RydWN0b3IsIHdlIHdpbGwgZ2V0IGFuIGVycm9yOiDigJxFcnJvcjogTkcwMjAwOiBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVjdGVk4oCm4oCdLlxyXG4gICAgVGh1cywgd2UgaW5qZWN0IE5nQ29udHJvbCBpbiB0aGUgT25Jbml0IGxpZmVjeWNsZSBob29rIHZpYSBJbmplY3RvciB3aXRob3V0IGFueSBlcnJvci5cclxuICAgICovXHJcbiAgICB0aGlzLm5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcbiAgICB0aGlzLmFzaWduTXVsdGlNb2RlQ29sdW1ucygpO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucz8ubWFwKGMgPT4ge1xyXG4gICAgICAgIGlmIChjLmZpZWxkID09PSAnYXZhdGFyJyAmJiAhISFjLnRlbXBsYXRlUmVmKSBjLnRlbXBsYXRlUmVmID0gdGhpcy5hdmF0YXJcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5jb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodDtcclxuICAgICAgZWwuc3R5bGUuc2V0UHJvcGVydHkoJy0taGVpZ2h0JywgKGhlaWdodCB8fCA1MCkgKyAncHgnKTtcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBpZiAoISEheCkgdGhpcy52YWx1ZVRvU2hvdyA9IFwiXCJcclxuICAgICAgICB9KSFcclxuICAgICAgKVxyXG5cclxuICAgICAgLyogU1RBUlQ6IENIRUNLIElOUFVUUyAqL1xyXG5cclxuXHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAgIGlmICghISF0aGlzLnNlZWtlclNvdXJjZVR5cGUpIHtcclxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICBgQ29yZUZvcm1Db250cm9sU2Vla2VyQ29tcG9uZW50IEVycm9yOiBSZXF1aXJlZCBpbnB1dHM6XHJcbiAgICAgICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSAoZm9yICcke3RoaXMubmdDb250cm9sLm5hbWV9JylgXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcblxyXG5cclxuICAgICAgICAgIGlmICghISF0aGlzLnBhcmFtTW9kZSkge1xyXG5cclxuICAgICAgICAgICAgLy9nZXRCeUlkT2JqZWN0JFxyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5nZXRCeUlkT2JqZWN0JCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgYENvcmVGb3JtQ29udHJvbFNlZWtlckNvbXBvbmVudCBFcnJvcjogUmVxdWlyZWQgaW5wdXRzOlxyXG4gICAgICAgICAgICAgICAgICBnZXRCeUlkT2JqZWN0JDogQmVoYXZpb3JTdWJqZWN0Jmx0O2FueSZndDsgKGZvciAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoISEhdGhpcy5ib3VuZEZyb20pIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgYEFsbCBfU0VFS0VSIGNvbnRyb2xzIHJlcXVpcmUgaW5wdXQ6XHJcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGcm9tOiBzdHJpbmc7IChmb3IgJyR7dGhpcy5uZ0NvbnRyb2wubmFtZX0nKWAsXHJcbiAgICAgICAgICAgICAgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnNcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICghISF0aGlzLnNob3duRnJvbSkge1xyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgICBgQWxsIF9TRUVLRVIgY29udHJvbHMgcmVxdWlyZSBpbnB1dDpcclxuICAgICAgICAgICAgICAgICAgICBzaG93bkZyb206IHN0cmluZzsgKGZvciAnJHt0aGlzLm5nQ29udHJvbC5uYW1lfScpYCxcclxuICAgICAgICAgICAgICBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9uc1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgICAvKiBFTkQ6IENIRUNLIElOUFVUUyAqL1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5nZXRCeUlkT2JqZWN0JD8uc3Vic2NyaWJlKHggPT4ge1xyXG5cclxuICAgICAgICAgIGlmICghIXgpIHtcclxuICAgICAgICAgICAgaWYgKCEhIXRoaXMubXVsdGlNb2RlKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy52YWx1ZVRvU2hvdyA9IHhbdGhpcy5zaG93bkZyb21dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoISEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlVG9TaG93ID0gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmICghIXRoaXMub2JqZWN0TGlzdCQpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgIHRoaXMub2JqZWN0TGlzdCQuc3Vic2NyaWJlKHggPT4gdGhpcy5zZWxlY3RlZERhdGEgPSB4KVxyXG4gICAgICAgIClcclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG5cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudmFsdWUgPSBvYmopO1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgY29uc29sZS5ncm91cCgnV3JpdGUgdmFsdWUgZm9yICcgKyB0aGlzLm5nQ29udHJvbC5uYW1lKTtcclxuICAgICAgY29uc29sZS5sb2coXCJ0aGlzLm11bHRpTW9kZUNvbHVtbnNcIiwgdGhpcy5tdWx0aU1vZGVDb2x1bW5zKVxyXG4gICAgICBjb25zb2xlLmxvZygnVG8gZG86IEFzc2lnbiBhcGkgcmVzIHRvIHRoZSBzZWxlY3RlZERhdGEnKVxyXG4gICAgICBjb25zb2xlLmdyb3VwRW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrU2VlaygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2skPy5uZXh0KHRydWUpO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSkgcmV0dXJuO1xyXG4gICAgdGhpcy5zb3VyY2VPcGVuID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGUpIHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5wZW5kaW5nU2VsZWN0ZWREYXRhLmZpbHRlcih4ID0+IHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcih5ID0+IHkuaWQgPT09IHguSWQpLmxlbmd0aCA9PT0gMClcclxuICAgICAgY29uc3QgbmV3U2VsZWN0ZWREYXRhID0gWy4uLnRoaXMuc2VsZWN0ZWREYXRhLCAuLi5maWx0ZXJdO1xyXG4gICAgICBjb25zdCBuZXdTZWxlY3RlZElkczogYW55W10gPSBbXTtcclxuICAgICAgbmV3U2VsZWN0ZWREYXRhLm1hcCh4ID0+IG5ld1NlbGVjdGVkSWRzLnB1c2goeC5pZCkpXHJcbiAgICAgIHRoaXMub2JqZWN0TGlzdCQubmV4dChuZXdTZWxlY3RlZERhdGEpO1xyXG4gICAgICAvL3RoaXMuc2VsZWN0ZWREYXRhID0gbmV3U2VsZWN0ZWREYXRhO1xyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3U2VsZWN0ZWRJZHM7XHJcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld1NlbGVjdGVkSWRzKVxyXG4gICAgICB0aGlzLnBlbmRpbmdTZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgdGhpcy5zb3VyY2VPcGVuID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zb3VyY2VPcGVuID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvblJvd0RvdWJsZUNsaWNrKGU6IGFueSkge1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKGVbdGhpcy5ib3VuZEZyb21dKTtcclxuICAgIHRoaXMub25DaGFuZ2UoZVt0aGlzLmJvdW5kRnJvbV0pO1xyXG4gICAgdGhpcy52YWx1ZVRvU2hvdyA9IGVbdGhpcy5zaG93bkZyb21dO1xyXG4gICAgdGhpcy5zb3VyY2VPcGVuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5hbHNvQmluZFRvKSB7XHJcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLm5nQ29udHJvbC5jb250cm9sPy5wYXJlbnQ7XHJcbiAgICAgIGlmIChmb3JtKSB7XHJcbiAgICAgICAgdGhpcy5hbHNvQmluZFRvLm1hcCgoeCwgaW5kZXgpID0+IHtcclxuXHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgc3RhcnQ6IFZhbGlkYXRlIERldmVsb3BlciBpbnB1dFxyXG4gICAgICAgICAgKi9cclxuICAgICAgICAgIGlmIChpc0Rldk1vZGUoKSAmJiBpbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICBpZiAoISEheC50YWtlRnJvbSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFwidGFrZUZyb20gd2FzIHVuZGVmaW5lZFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoISEhZVt4LnRha2VGcm9tXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFlvdSBleHBlY3QgYSB2YWx1ZSBmcm9tICcke3gudGFrZUZyb219JywgYnV0IHRoZSBzZWVrZXIgZ3JpZCBkb2VzIG5vdCBoYXZlIHRoaXMgY29sdW1uYCwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICghISF4LmJpbmRUbykge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmVycm9yKFwiYmluZFRvIHdhcyB1bmRlZmluZWRcIiwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgaWYgKCEhIWZvcm0uZ2V0KHguYmluZFRvKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoYFlvdSBleHBlY3QgdG8gYmluZCB2YWx1ZSB0byAnJHt4LmJpbmRUb30nLCBidXQgdGhlIGZvcm0gZ3JvdXAgZG9lcyBub3QgaGF2ZSB0aGlzIGNvbnRyb2xgLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucylcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgZW5kOiBWYWxpZGF0ZSBEZXZlbG9wZXIgaW5wdXRcclxuICAgICAgICAgICovXHJcblxyXG4gICAgICAgICAgZm9ybS5nZXQoeC5iaW5kVG8pPy5zZXRWYWx1ZShlW3gudGFrZUZyb21dKTtcclxuICAgICAgICAgIGZvcm0uZ2V0KHguYmluZFRvKT8ubWFya0FzVG91Y2hlZDtcclxuICAgICAgICAgIGZvcm0uZ2V0KHguYmluZFRvKT8ubWFya0FzRGlydHkoKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkl0ZW1Eb3VibGVDbGljayhlOiBJT3JnVHJlZUl0ZW0pIHtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShlLmlkKTtcclxuICAgIHRoaXMudmFsdWVUb1Nob3cgPSBlLnRyZWUkVGl0bGU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGUuaWQpO1xyXG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB0aGlzLnNvdXJjZU9wZW4gPSBmYWxzZTtcclxuICAgIHRoaXMub25Eb3VibGVDbGljay5lbWl0KGUpO1xyXG4gIH1cclxuXHJcbiAgb25Db2x1bW5zSW5pdChlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICghIXRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zKSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlQ29sdW1ucyA9IFsuLi5lLCAuLi50aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1uc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RlZERhdGFDaGFuZ2UoZTogYW55KSB7XHJcbiAgICBpZiAoISF0aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1ucykge1xyXG4gICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBbLi4uZS5jb2x1bW5zLCAuLi50aGlzLm11bHRpTW9kZUV4dGVuZGVkQ29sdW1uc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm11bHRpTW9kZUNvbHVtbnMgPSBlLmNvbHVtbnM7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHRoaXMucGVuZGluZ1NlbGVjdGVkRGF0YSA9IGUuZGF0YTtcclxuICB9XHJcblxyXG4gIG9uVG9vbENsaWNrKGU6IElDb3JlVGFibGVUb29sQ2xpY2tFdmVudEVtaXR0ZXJEYXRhKSB7XHJcbiAgICBpZiAoZS5jb2RlID09PSBFQ29yZVRhYmxlVG9vbENvZGUuZGVsZXRlKSB7XHJcbiAgICAgIGNvbnN0IG5ld09iamVjdExpc3QgPSB0aGlzLm9iamVjdExpc3QkLnZhbHVlLmZpbHRlcih4ID0+IHguaWQgIT09IGUuaWQpXHJcbiAgICAgIGNvbnN0IG5ld0lkcyA9IHRoaXMudmFsdWUuZmlsdGVyKCh4OiBhbnkpID0+IHggIT09IGUuaWQpXHJcblxyXG4gICAgICB0aGlzLnZhbHVlID0gbmV3SWRzO1xyXG4gICAgICB0aGlzLm9iamVjdExpc3QkLm5leHQobmV3T2JqZWN0TGlzdCk7XHJcblxyXG4gICAgICB0aGlzLm9uQ2hhbmdlKG5ld0lkcyk7XHJcbiAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja0NsZWFyKCkge1xyXG5cclxuICAgIHRoaXMud3JpdGVWYWx1ZShudWxsKTtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgICB0aGlzLnZhbHVlVG9TaG93ID0gXCJcIjtcclxuXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGVkRGF0YVJvd0RvdWJsZUNsaWNrKGU6IGFueSkge1xyXG4gICAgaWYgKCEhdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubXVsdGlNb2RlRXh0ZW5kZWRDb2x1bW5zLm1hcCh4ID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgdGhpcy5lZGl0QnVmZmVyRm9ybT8uZ2V0KHguZmllbGQpPy5wYXRjaFZhbHVlKGVbeC5maWVsZF0pXHJcbiAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoSlNPTi5zdHJpbmdpZnkoZXhjZXB0aW9uKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuZWRpdGluZ0lkID0gZS5pZDtcclxuICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihKU09OLnN0cmluZ2lmeShleGNlcHRpb24pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIHRoaXMuc2hvd0VkaXRCdWZmZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25FZGl0QnVmZmVyU3VibWl0KGU6IGFueSkge1xyXG4gICAgdmFyIGZvcm1EYXRhID0gdGhpcy5lZGl0QnVmZmVyRm9ybS5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5zZWxlY3RlZERhdGE/LmZpbHRlcih4ID0+IHguaWQgPT09IHRoaXMuZWRpdGluZ0lkKTtcclxuICAgICAgaWYgKGZpbHRlcj8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5tdWx0aU1vZGVFeHRlbmRlZENvbHVtbnM/Lm1hcChjID0+IHtcclxuICAgICAgICAgIGZpbHRlclswXVtjLmZpZWxkXSA9IGZvcm1EYXRhW2MuZmllbGRdO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zaG93RWRpdEJ1ZmZlciA9IGZhbHNlO1xyXG4gICAgfSBjYXRjaCAoZXg6IGFueSkge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICBjb25zb2xlLmxvZyhleCk7XHJcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXgubWVzc2FnZSB8fCAnQW4gZXJyb3Igb2NjdXJlZCB3aGlsZSB0cnlpbmcgdG8gdXBkYXRlIHNlbGVjdGVkRGF0YScsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVkaXRCdWZmZXJDYW5jZWwoZTogYW55KSB7XHJcbiAgICB0aGlzLnNob3dFZGl0QnVmZmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZChlOiBGb3JtR3JvdXApIHtcclxuICAgIHRoaXMuZWRpdEJ1ZmZlckZvcm0gPSBlO1xyXG4gIH1cclxuXHJcbn0iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWZvcm0tY29udHJvbC1zZWVrZXItY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiIFtjbGFzcy5kLW5vbmVdPVwiISFtdWx0aU1vZGVcIj5cclxuICAgICAgICA8bGFiZWwgI3Nob3duVGV4dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwidGV4dCBmb3JtLWNvbnRyb2xcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFthcHBUb29sdGlwXT1cInZhbHVlVG9TaG93XCI+e3sgdmFsdWVUb1Nob3cgfX08L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xlYXItaWNvbi13cmFwcGVyXCIgKm5nSWY9XCIhISFtdWx0aU1vZGVcIiBbY2xhc3MuZC1ub25lXT1cIiEhZGlzYWJsZWQgfHwgISEhdmFsdWVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25DbGlja0NsZWFyKClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtd3JhcHBlclwiIFthcHBUb29sdGlwXT1cIidVSS5DT1JFX0NPTlRPTF9DT01NT05fQ0xFQVInIHwgdHJhbnNsYXRlOiBsYW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZlYXRoZXIteFwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzZWVrZXItaWNvbi13cmFwcGVyXCIgW2NsYXNzLmZvcm0tY29udHJvbC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtjbGFzcy5tdWx0aS1tb2RlXT1cIiEhbXVsdGlNb2RlXCJcclxuICAgICAgICAoY2xpY2spPVwib25DbGlja1NlZWsoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXdyYXBwZXJcIiBbY2xhc3MuZm9ybS1jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1zZWFyY2hcIj48L2k+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb3JlLXRhYmJlLXdyYXBwZXJcIiAqbmdJZj1cIm11bHRpTW9kZVwiPlxyXG4gICAgICAgIDxjb3JlLXRhYmxlIFtjb2x1bW5zXT1cIm11bHRpTW9kZUNvbHVtbnNcIiBbZGF0YV09XCJzZWxlY3RlZERhdGFcIiBbc2hvd1Rvb2xzXT1cIiEhIWRpc2FibGVkXCIgW3Rvb2xzXT1cInRvb2xzXCJcclxuICAgICAgICAgICAgW3NlYXJjaFN3aXRjaERpc2FibGVkXT1cInRydWVcIiAob25Ub29sQ2xpY2spPVwib25Ub29sQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChvblJvd0RvdWJsZUNsaWNrKT1cIm9uU2VsZWN0ZWREYXRhUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiPjwvY29yZS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cIiEhc291cmNlT3BlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXItcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCJ0aXRsZVwiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiICpuZ0lmPVwic2hvd1BhZ2VIZWFkZXJcIj48L2NvcmUtcGFnZS1oZWFkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic291cmNlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmQtYmxvY2tdPVwic2Vla2VyU291cmNlVHlwZT09PSdPUkdBTklaQVRJT05fVU5JVF9TRUVLJ1wiPjwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vla2VyU291cmNlVHlwZSA9PT0gJ0VNUExPWUVFX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcGxveWVlU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlZWtlclNvdXJjZVR5cGUgPT09ICdDT05UUkFDVF9TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cmFjdFNlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnV09SS0lOR19TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ3b3JraW5nU2Vla1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlZWtlclNvdXJjZVR5cGUgPT09ICdXQUdFX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndhZ2VTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2Vla2VyU291cmNlVHlwZSA9PT0gJ09SR0FOSVpBVElPTl9VTklUX1NFRUsnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9yZ2FuaXphdGlvblVuaXRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnUE9TSVRJT05fU0VFSydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicG9zaXRpb25TZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWVrZXJTb3VyY2VUeXBlID09PSAnUE9TSVRJT05fQ09OQ1VSUkVOVF9TRUVLJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3NpdGlvbkNvbmN1cnJlbnRTZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiISEhaGlkZUZvb3RlclwiIGNsYXNzPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2VsZWN0KClcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CVVRUT05fU0VMRUNUJyB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdVSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9DQU5DRUwnIHwgdHJhbnNsYXRlOiBsYW5nIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXBsb3llZVNlZWs+XHJcbiAgICA8Y29yZS1lbXBsb3llZS1zZWVrZXIgW3ByZURlZmluZWRPdXRlclBhcmFtJF09XCJwcmVEZWZpbmVkT3V0ZXJQYXJhbSRcIiBbbXVsdGlNb2RlXT1cIm11bHRpTW9kZVwiXHJcbiAgICAgICAgKHJvd0RvdWJsZUNsaWNrKT1cIm9uUm93RG91YmxlQ2xpY2soJGV2ZW50KVwiIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiPjwvY29yZS1lbXBsb3llZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRyYWN0U2Vlaz5cclxuICAgIDxjb3JlLWNvbnRyYWN0LXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLWNvbnRyYWN0LXNlZWtlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjd29ya2luZ1NlZWs+XHJcbiAgICA8Y29yZS13b3JraW5nLXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLXdvcmtpbmctc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN3YWdlU2Vlaz5cclxuICAgIDxjb3JlLXdhZ2Utc2Vla2VyIFtwcmVEZWZpbmVkT3V0ZXJQYXJhbSRdPVwicHJlRGVmaW5lZE91dGVyUGFyYW0kXCIgW211bHRpTW9kZV09XCJtdWx0aU1vZGVcIlxyXG4gICAgICAgIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIiAoY29sdW1uc0luaXQpPVwib25Db2x1bW5zSW5pdCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VsZWN0ZWREYXRhQ2hhbmdlKT1cIm9uU2VsZWN0ZWREYXRhQ2hhbmdlKCRldmVudClcIj48L2NvcmUtd2FnZS1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uU2Vlaz5cclxuICAgIDxjb3JlLXBvc2l0aW9uLXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICBbc2Vla2VyVmVyaWZ5SWdub3JlXT1cInNlZWtlclZlcmlmeUlnbm9yZVwiIChyb3dEb3VibGVDbGljayk9XCJvblJvd0RvdWJsZUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChjb2x1bW5zSW5pdCk9XCJvbkNvbHVtbnNJbml0KCRldmVudClcIlxyXG4gICAgICAgIChzZWxlY3RlZERhdGFDaGFuZ2UpPVwib25TZWxlY3RlZERhdGFDaGFuZ2UoJGV2ZW50KVwiPjwvY29yZS1wb3NpdGlvbi1zZWVrZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3Bvc2l0aW9uQ29uY3VycmVudFNlZWs+XHJcbiAgICA8Y29yZS1wb3NpdGlvbi1jb25jdXJyZW50LXNlZWtlciBbcHJlRGVmaW5lZE91dGVyUGFyYW0kXT1cInByZURlZmluZWRPdXRlclBhcmFtJFwiIFttdWx0aU1vZGVdPVwibXVsdGlNb2RlXCJcclxuICAgICAgICAocm93RG91YmxlQ2xpY2spPVwib25Sb3dEb3VibGVDbGljaygkZXZlbnQpXCIgKGNvbHVtbnNJbml0KT1cIm9uQ29sdW1uc0luaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlbGVjdGVkRGF0YUNoYW5nZSk9XCJvblNlbGVjdGVkRGF0YUNoYW5nZSgkZXZlbnQpXCI+PC9jb3JlLXBvc2l0aW9uLWNvbmN1cnJlbnQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcmdhbml6YXRpb25Vbml0U2Vlaz5cclxuICAgIDxjb3JlLW9yZy11bml0LXNlZWtlciAoaXRlbURvdWJsZUNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKCRldmVudClcIj48L2NvcmUtb3JnLXVuaXQtc2Vla2VyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNhdmF0YXIgbGV0LWF2YXRhcj1cImNvbnRleHQuYXZhdGFyXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyICE9IG51bGxcIiBbc3JjXT1cImF2YXRhciB8IG1hcEF2YXRhclRvU2VydmVyXCIgY2xhc3M9XCJpbi10YWJsZS1hdmF0YXJcIiBhcHBJbWFnZUVycm9yUmVzb2x2ZXI+XHJcbiAgICA8aW1nICpuZ0lmPVwiYXZhdGFyID09IG51bGxcIiBbc3JjXT1cImRlZmF1bHRBdmF0YXJcIiBjbGFzcz1cImluLXRhYmxlLWF2YXRhclwiIGFwcEltYWdlRXJyb3JSZXNvbHZlcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbkBpZiAoISFzaG93RWRpdEJ1ZmZlcikge1xyXG4gICAgPGNvcmUtcGFnZS1lZGl0LWxpdGUgW3NlY3Rpb25zXT1cIm11bHRpTW9kZUV4dGVuZGVkU2VjdGlvbnNcIiBcclxuICAgICAgICAob25Gb3JtQ3JlYXRlZCk9XCJvbkVkaXRCdWZmZXJGb3JtQ3JlYXRlZCgkZXZlbnQpXCIgKHN1Ym1pdExvZ2ljKT1cIm9uRWRpdEJ1ZmZlclN1Ym1pdCgkZXZlbnQpXCJcclxuICAgICAgICAoY2FuY2VsTG9naWMpPVwib25FZGl0QnVmZmVyQ2FuY2VsKCRldmVudClcIj48L2NvcmUtcGFnZS1lZGl0LWxpdGU+XHJcbn0iXX0=
|
|
@@ -13114,18 +13114,20 @@ class CoreFormControlSeekerComponent extends CoreFormControlBaseComponent {
|
|
|
13114
13114
|
}
|
|
13115
13115
|
}
|
|
13116
13116
|
onEditBufferSubmit(e) {
|
|
13117
|
+
var formData = this.editBufferForm.getRawValue();
|
|
13117
13118
|
try {
|
|
13118
13119
|
const filter = this.selectedData?.filter(x => x.id === this.editingId);
|
|
13119
13120
|
if (filter?.length === 1) {
|
|
13120
13121
|
this.multiModeExtendedColumns?.map(c => {
|
|
13121
|
-
filter[0][c.field] =
|
|
13122
|
+
filter[0][c.field] = formData[c.field];
|
|
13122
13123
|
});
|
|
13123
13124
|
}
|
|
13124
13125
|
this.showEditBuffer = false;
|
|
13125
13126
|
}
|
|
13126
13127
|
catch (ex) {
|
|
13127
13128
|
if (isDevMode()) {
|
|
13128
|
-
|
|
13129
|
+
console.log(ex);
|
|
13130
|
+
this.alertService.error(ex.message || 'An error occured while trying to update selectedData', noneAutoClosedAlertOptions);
|
|
13129
13131
|
}
|
|
13130
13132
|
}
|
|
13131
13133
|
}
|