@smartbit4all/ng-client 3.1.82 → 3.1.83
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/esm2020/lib/smart-client/smart-component-api-client.mjs +2 -9
- package/esm2020/lib/smart-form/smartform.component.mjs +1 -2
- package/fesm2015/smartbit4all-ng-client.mjs +1 -9
- package/fesm2015/smartbit4all-ng-client.mjs.map +1 -1
- package/fesm2020/smartbit4all-ng-client.mjs +1 -9
- package/fesm2020/smartbit4all-ng-client.mjs.map +1 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-3.1.83.tgz +0 -0
- package/smartbit4all-ng-client-3.1.82.tgz +0 -0
|
@@ -114,14 +114,7 @@ let SmartComponentApiClient = class SmartComponentApiClient {
|
|
|
114
114
|
this.getAllFormComponents()?.forEach((form) => {
|
|
115
115
|
if (form.smartForm) {
|
|
116
116
|
form.smartForm.componentModel = this.model;
|
|
117
|
-
|
|
118
|
-
// FormGroup already created -> refresh
|
|
119
|
-
form.refresh();
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
// FormGroup not created yet -> construct
|
|
123
|
-
form.constructForm();
|
|
124
|
-
}
|
|
117
|
+
form.constructForm();
|
|
125
118
|
}
|
|
126
119
|
});
|
|
127
120
|
}
|
|
@@ -464,4 +457,4 @@ export class WidgetMap {
|
|
|
464
457
|
return this.widgets.get(key);
|
|
465
458
|
}
|
|
466
459
|
}
|
|
467
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jbGllbnQvc21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBS0wsa0JBQWtCLEVBQ2xCLFlBQVksR0FHYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxjQUFjLEVBR2QsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6QixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsSUFBc0IsdUJBQXVCLEdBQTdDLE1BQXNCLHVCQUF1QjtJQXFHM0MsWUFDWSxNQUFnQixFQUNoQixJQUF5QyxFQUNyQixRQUFnQjtRQUZwQyxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQXFDO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVE7UUF2R3RDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUE2RHJGLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUVyQyxnQkFBVyxHQUFrQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUE0QnJFLG9CQUFvQjtRQUNwQixZQUFPLEdBQXdFLElBQUksU0FBUyxFQUFFLENBQUM7UUFFL0YsZ0JBQVcsR0FBOEMsSUFBSSxTQUFTLEVBQUUsQ0FB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QUcsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBVyxFQUFFLFNBQVksRUFBRSxNQUFnQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsR0FBRyxDQUFDLEdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0b3IsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgR3JpZE9wdGlvbnMsXHJcbiAgU21hcnRGb3JtLFxyXG4gIFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMsXHJcbiAgU21hcnRHcmlkLFxyXG4gIFNtYXJ0R3JpZENvbXBvbmVudCxcclxuICBTbWFydFN1YmplY3QsXHJcbiAgU21hcnRmb3JtQ29tcG9uZW50LFxyXG4gIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSxcclxufSBmcm9tICcuLi8uLi9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdHJlZS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50TW9kZWwsXHJcbiAgQ29tcG9uZW50TW9kZWxDaGFuZ2UsXHJcbiAgRGF0YUNoYW5nZSxcclxuICBEYXRhQ2hhbmdlS2luZCxcclxuICBFeGVjdXRlVWlBY3Rpb25PcHRpb25zLFxyXG4gIFNtYXJ0VHJhbnNsYXRlU2VydmljZSxcclxuICBTbWFydFZpZXdDb250ZXh0U2VydmljZSxcclxuICBVaUFjdGlvbixcclxuICBVaUFjdGlvbkFkZGl0aW9uYWxQYXJhbXMsXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSxcclxuICBVaUFjdGlvbk1vZGVsLFxyXG4gIFVpQWN0aW9uUmVxdWVzdCxcclxuICBVaUFjdGlvblNlcnZpY2UsXHJcbiAgVWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlLFxyXG4gIFVzZVVpQWN0aW9uMixcclxufSBmcm9tICcuLi92aWV3LWNvbnRleHQvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhlbnRpY2F0aW9uU2VydmljZUludGVyZmFjZSB9IGZyb20gJy4vc21hcnQtYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU21hcnRDb21wb25lbnRBcGlDbGllbnQ8VD4gaW1wbGVtZW50cyBVc2VVaUFjdGlvbjIge1xyXG4gIHByb3RlY3RlZCBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGRldGVjdENoYW5nZTogU21hcnRTdWJqZWN0PENvbXBvbmVudE1vZGVsQ2hhbmdlPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICBwcml2YXRlIF91dWlkPzogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIHV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZ2V0IHV1aWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl91dWlkO1xyXG4gIH1cclxuICBzZXQgdXVpZCh1dWlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLl91dWlkID09PSB1dWlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBmaXJzdFV1aWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudXVpZCkge1xyXG4gICAgICB0aGlzLnZpZXdDb250ZXh0LnVuZm9sbG93KHRoaXMudXVpZCk7XHJcbiAgICAgIGZpcnN0VXVpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdXVpZCA9IHV1aWQ7XHJcbiAgICBpZiAodXVpZCkge1xyXG4gICAgICB0aGlzLmdldFdpZGdldHMoKS53aWRnZXRzLmZvckVhY2goKHJlZiwga2V5KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlZiBpbnN0YW5jZW9mIFNtYXJ0R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgICAgcmVmLnV1aWQgPSB1dWlkO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlZiAmJiAhZmlyc3RVdWlkKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBQcm92aWRlZCByZWZlcmVuY2UgZm9yICR7a2V5fSBpcyB1bmRlZmluZWQgb24gdXVpZCBjaGFuZ2UuYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCF0aGlzLnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgIHRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy52aWV3Q29udGV4dC51dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlTmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAocGFnZU5hbWUgPT09IHRoaXMucGFnZU5hbWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLnJ1bigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5mb2xsb3codGhpcy5fdXVpZCEsIHRoaXMuZGV0ZWN0Q2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21vZGVsOiBDb21wb25lbnRNb2RlbCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgZ2V0IG1vZGVsKCk6IENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcbiAgc2V0IG1vZGVsKG1vZGVsOiBDb21wb25lbnRNb2RlbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBtb2RlbDtcclxuXHJcbiAgICB0aGlzLmluaXRDb21wb25lbnRCeU1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhPzogVDtcclxuXHJcbiAgZ2V0IGRhdGEoKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcclxuICB9XHJcbiAgc2V0IGRhdGEobW9kZWw6IFQgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBtb2RlbDtcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10gPSBbXTtcclxuXHJcbiAgcHVibGljIGRhdGFDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIC8vIFVzZVVpQWN0aW9uXHJcbiAgLy8gc3VibWl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgLy8gcmVTdWJzY3JpYmVUb0NoYW5nZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG5cclxuICAvLyBHcmlkXHJcbiAgc21hcnRHcmlkPzogU21hcnRHcmlkO1xyXG5cclxuICAvLyBTZXJ2aWNlc1xyXG4gIHByb3RlY3RlZCB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHVpQWN0aW9uU2VydmljZTogVWlBY3Rpb25TZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB1aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIHByb3RlY3RlZCB0cmFuc2xhdGU/OiBTbWFydFRyYW5zbGF0ZVNlcnZpY2U7XHJcblxyXG4gIC8vIFRyZWVcclxuICBwcml2YXRlIF9zbWFydFRyZWVTZXJ2aWNlPzogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2U7XHJcblxyXG4gIHB1YmxpYyBnZXQgc21hcnRUcmVlU2VydmljZSgpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc21hcnRUcmVlU2VydmljZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzbWFydFRyZWVTZXJ2aWNlKHNtYXJ0VHJlZVNlcnZpY2U6IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAodGhpcy5fc21hcnRUcmVlU2VydmljZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IEVycm9yKCdUaGUgZGVmYXVsdCB0cmVlIGhhcyBhbHJlYWR5IHNldCB1cCEnKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NtYXJ0VHJlZVNlcnZpY2UgPSBzbWFydFRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgLy8gQ29udGFpbmVkIFdpZGdldHNcclxuICB3aWRnZXRzOiBXaWRnZXRNYXA8U21hcnRHcmlkQ29tcG9uZW50IHwgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCB1bmRlZmluZWQ+ID0gbmV3IFdpZGdldE1hcCgpO1xyXG5cclxuICBmb3JtV2lkZ2V0czogV2lkZ2V0TWFwPFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZD4gPSBuZXcgV2lkZ2V0TWFwKCk7XHJcblxyXG4gIHVzZVF1ZXJ5TGlzdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaW5qZWN0OiBJbmplY3RvcixcclxuICAgIHByb3RlY3RlZCBhdXRoOiBTbWFydEF1dGhlbnRpY2F0aW9uU2VydmljZUludGVyZmFjZSxcclxuICAgIEBJbmplY3QoJ3BhZ2VOYW1lJykgcHJvdGVjdGVkIHBhZ2VOYW1lOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlLnN1YnNjcmliZSgoY2hhbmdlOiBDb21wb25lbnRNb2RlbENoYW5nZSkgPT4ge1xyXG4gICAgICB0aGlzLmhhbmRsZUNoYW5nZXMoY2hhbmdlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudmlld0NvbnRleHQgPSBpbmplY3QuZ2V0KFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLnVpQWN0aW9uU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25TZXJ2aWNlKTtcclxuICAgIHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSA9IGluamVjdC5nZXQoVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBfbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJ1bigpO1xyXG4gIH1cclxuICBfbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LnVuZm9sbG93KHRoaXMudXVpZCEpO1xyXG4gICAgdGhpcy53aWRnZXRzLmNsZWFyV2lkZ2V0cygpO1xyXG5cclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QWxsRm9ybUNvbXBvbmVudHMoKTogUXVlcnlMaXN0PFNtYXJ0Zm9ybUNvbXBvbmVudD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRBbGxHcmlkQ29tcG9uZW50cygpOiBRdWVyeUxpc3Q8U21hcnRHcmlkQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEFsbFRyZWVDb21wb25lbnRzKCk6IFF1ZXJ5TGlzdDxTbWFydHRyZWVHZW5lcmljU2VydmljZT4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIHByb3RlY3RlZCBnZXRXaWRnZXRzKCk6IFdpZGdldE1hcDxTbWFydEdyaWRDb21wb25lbnQgfCBTbWFydHRyZWVHZW5lcmljU2VydmljZSB8IHVuZGVmaW5lZD4ge1xyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICBsZXQgd2lkZ2V0czogV2lkZ2V0TWFwPFNtYXJ0R3JpZENvbXBvbmVudCB8IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkPiA9XHJcbiAgICAgICAgbmV3IFdpZGdldE1hcCgpO1xyXG4gICAgICBpZiAodGhpcy5nZXRBbGxHcmlkQ29tcG9uZW50cygpKSB7XHJcbiAgICAgICAgdGhpcy5nZXRBbGxHcmlkQ29tcG9uZW50cygpIVxyXG4gICAgICAgICAgLmZpbHRlcigoZ3JpZCkgPT4gKGdyaWQ/LnNtYXJ0R3JpZD8uZ3JpZElkZW50aWZpZXIgPyB0cnVlIDogZmFsc2UpKVxyXG4gICAgICAgICAgLmZvckVhY2goKGdyaWQpID0+IHdpZGdldHMuYWRkV2lkZ2V0KGdyaWQuc21hcnRHcmlkIS5ncmlkSWRlbnRpZmllciwgZ3JpZCkpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmdldEFsbFRyZWVDb21wb25lbnRzKCkpIHtcclxuICAgICAgICB0aGlzLmdldEFsbFRyZWVDb21wb25lbnRzKCkhXHJcbiAgICAgICAgICAuZmlsdGVyKCh0cmVlKSA9PiAodHJlZT8uc21hcnRUcmVlTW9kZWw/LmlkZW50aWZpZXIgPyB0cnVlIDogZmFsc2UpKVxyXG4gICAgICAgICAgLmZvckVhY2goKHRyZWUpID0+IHdpZGdldHMuYWRkV2lkZ2V0KHRyZWUhLnNtYXJ0VHJlZU1vZGVsIS5pZGVudGlmaWVyISwgdHJlZSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB3aWRnZXRzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMud2lkZ2V0cztcclxuICB9XHJcblxyXG4gIGluaXRDb21wb25lbnRCeU1vZGVsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0RGF0YSgpO1xyXG4gICAgdGhpcy5pbml0QWN0aW9ucygpO1xyXG5cclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxGb3JtQ29tcG9uZW50cygpPy5mb3JFYWNoKChmb3JtKSA9PiB7XHJcbiAgICAgICAgaWYgKGZvcm0uc21hcnRGb3JtKSB7XHJcbiAgICAgICAgICBmb3JtLnNtYXJ0Rm9ybS5jb21wb25lbnRNb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgICBpZiAoZm9ybS5nZXRGb3JtKCkpIHtcclxuICAgICAgICAgICAgLy8gRm9ybUdyb3VwIGFscmVhZHkgY3JlYXRlZCAtPiByZWZyZXNoXHJcbiAgICAgICAgICAgIGZvcm0ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gRm9ybUdyb3VwIG5vdCBjcmVhdGVkIHlldCAtPiBjb25zdHJ1Y3RcclxuICAgICAgICAgICAgZm9ybS5jb25zdHJ1Y3RGb3JtKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vIFRPRE86IGxheW91dCwgdmFsdWVTZXQsIHdpZGdldHNcclxuICB9XHJcblxyXG4gIGluaXREYXRhKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9kZWw/LmRhdGEpIHtcclxuICAgICAgdGhpcy5kYXRhID0gdGhpcy5tb2RlbD8uZGF0YSBhcyBhbnk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0QWN0aW9ucygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGVsPy5hY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMgPSB0aGlzLm1vZGVsPy5hY3Rpb25zLm1hcCgodWlBY3Rpb246IFVpQWN0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgICAgIHVpQWN0aW9uLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcnVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aC5iZmZBcGlzSGF2ZUJlZW5TZXRVcCkge1xyXG4gICAgICB0aGlzLmxvYWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aC5oZWFkZXJzVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnV1aWQgPSB0aGlzLnZpZXdDb250ZXh0LmdldFV1aWRPZlBhZ2UodGhpcy5wYWdlTmFtZSk7XHJcbiAgICAvLyB0aGlzLm1vZGVsID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC5sb2FkKHRoaXMudXVpZCk7XHJcbiAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmxvYWQyKHRoaXMudXVpZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBleGVjdXRlVWlBY3Rpb24odWlBY3Rpb246IFVpQWN0aW9uLCBvcHRpb25zPzogRXhlY3V0ZVVpQWN0aW9uT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy51aUFjdGlvblNlcnZpY2UudWlBY3Rpb25Nb2RlbCA9IHtcclxuICAgICAgc2VydmljZVRvVXNlOiB0aGlzLFxyXG4gICAgICB1aUFjdGlvbjogdWlBY3Rpb24sXHJcbiAgICB9O1xyXG4gICAgdGhpcy51aUFjdGlvblNlcnZpY2UuZXhlY3V0ZSh1aUFjdGlvbiwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRJbnZhbGlkRmllbGRzKCk6IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMge1xyXG4gICAgbGV0IGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzID0ge1xyXG4gICAgICBpbnZhbGlkRmllbGRLZXlzOiBbXSxcclxuICAgICAgaW52YWxpZEZpZWxkTmFtZXM6IFtdLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWxsRm9ybUNvbXBvbmVudHMoKT8uZm9yRWFjaCgoZm9ybSkgPT5cclxuICAgICAgICB0aGlzLnZhbGlkYXRlRm9ybShmb3JtLCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkcylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybVdpZGdldHM/LndpZGdldHM/LmZvckVhY2goKGZvcm0pID0+XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oZm9ybSwgYWdncmVnYXRlZEludmFsaWRGaWVsZHMpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlRm9ybShcclxuICAgIGZvcm06IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCxcclxuICAgIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzXHJcbiAgKSB7XHJcbiAgICBsZXQgaW52YWxpZEZpZWxkc09mRm9ybSA9IGZvcm0/LmdldEludmFsaWRGaWVsZHMoKTtcclxuICAgIGlmIChpbnZhbGlkRmllbGRzT2ZGb3JtKSB7XHJcbiAgICAgIGludmFsaWRGaWVsZHNPZkZvcm0uaW52YWxpZEZpZWxkS2V5cy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkS2V5cy5wdXNoKGtleSlcclxuICAgICAgKTtcclxuICAgICAgaW52YWxpZEZpZWxkc09mRm9ybS5pbnZhbGlkRmllbGROYW1lcy5mb3JFYWNoKChrZXkpID0+XHJcbiAgICAgICAgYWdncmVnYXRlZEludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkTmFtZXMucHVzaChrZXkpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gVXNlVWlBY3Rpb25cclxuICBnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmb3JUZXh0QXJlYTogJycsXHJcbiAgICAgIGZvclRleHRGaWVsZDogJycsXHJcbiAgICB9O1xyXG4gIH1cclxuICBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKHZhbGlkYXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1Ym1pdEZvcm1zKHZhbGlkYXRlKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHBlcmZvcm1VaUFjdGlvblJlcXVlc3QoXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIHdpZGdldElkPzogc3RyaW5nLFxyXG4gICAgbm9kZUlkPzogc3RyaW5nXHJcbiAgKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIGlmICh1aUFjdGlvblJlcXVlc3QucGFyYW1zWydfZmlsZXMnXSkge1xyXG4gICAgICBjb25zdCBwYXJhbSA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ3BhcmFtJ107XHJcbiAgICAgIGNvbnN0IGZpbGVzID0gdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGNvbnN0IGlzTXVsdGlwbGUgPSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydwYXJhbSddO1xyXG4gICAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ107XHJcbiAgICAgIGRlbGV0ZSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydpc011bHRpcGxlJ107XHJcblxyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIGlmICghaXNNdWx0aXBsZSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVVwbG9hZEFjdGlvbih0aGlzLnV1aWQhLCB1aUFjdGlvblJlcXVlc3QsIHBhcmFtLCBmaWxlc1swXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtVXBsb2FkTXVsdGlwbGVBY3Rpb24oXHJcbiAgICAgICAgICB0aGlzLnV1aWQhLFxyXG4gICAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICAgICAgcGFyYW0sXHJcbiAgICAgICAgICBmaWxlc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAod2lkZ2V0SWQgJiYgbm9kZUlkKSB7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuc2VuZE1vZGVsVG9TZXJ2ZXIoKTtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtV2lkZ2V0QWN0aW9uKHRoaXMudXVpZCEsIHdpZGdldElkLCBub2RlSWQsIHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKHdpZGdldElkKSB7XHJcbiAgICAgIC8vIGF3YWl0IHRoaXMuc2VuZE1vZGVsVG9TZXJ2ZXIoKTtcclxuICAgICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5wZXJmb3JtV2lkZ2V0TWFpbkFjdGlvbih0aGlzLnV1aWQhLCB3aWRnZXRJZCwgdWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybUFjdGlvbih0aGlzLnV1aWQhLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBzZW5kTW9kZWxUb1NlcnZlcigpIHtcclxuICAvLyAgIHRoaXMuc3VibWl0Rm9ybXMoZmFsc2UpO1xyXG4gIC8vICAgbGV0IGRhdGFDaGFuZ2UgPSB7XHJcbiAgLy8gICAgIGtpbmQ6IERhdGFDaGFuZ2VLaW5kLldpZGdldCxcclxuICAvLyAgICAgc291cmNlOiAnJyxcclxuICAvLyAgICAgdmFsdWVzOiBbWycnLCB0aGlzLmdldE1vZGVsKCldXSxcclxuICAvLyAgIH07XHJcbiAgLy8gICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LmRhdGFDaGFuZ2VkKHRoaXMudXVpZCEsIGRhdGFDaGFuZ2UpO1xyXG4gIC8vIH1cclxuXHJcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2hhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5IG1ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXRzIGFsbCB0aGUgcmVnaXN0ZXJlZCBmb3JtcyBpbiB0aGUgU21hcnRDb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgc3VibWl0Rm9ybXModmFsaWRhdGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5nZXRBbGxGb3JtQ29tcG9uZW50cygpPy5mb3JFYWNoKChmb3JtKSA9PiBmb3JtPy5zdWJtaXRGb3JtKHZhbGlkYXRlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzPy53aWRnZXRzPy5mb3JFYWNoKChmb3JtKSA9PiBmb3JtPy5zdWJtaXRGb3JtKHZhbGlkYXRlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkR3JpZChcclxuICAgIHNtYXJ0R3JpZDogU21hcnRHcmlkLFxyXG4gICAgb3B0aW9uczogR3JpZE9wdGlvbnMsXHJcbiAgICB1c2VBc0RlZmF1bHRHcmlkPzogYm9vbGVhbixcclxuICAgIGNvbXBvbmVudFJlZmVyZW5jZT86IFNtYXJ0R3JpZENvbXBvbmVudFxyXG4gICk6IFNtYXJ0R3JpZCB7XHJcbiAgICBzbWFydEdyaWQub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICBzbWFydEdyaWQudWlBY3Rpb25TZXJ2aWNlID0gdGhpcy51aUFjdGlvblNlcnZpY2U7XHJcbiAgICBzbWFydEdyaWQudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSA9IHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZTtcclxuICAgIHNtYXJ0R3JpZC5zZXJ2aWNlVG9Vc2UgPSB0aGlzO1xyXG4gICAgc21hcnRHcmlkLnZpZXdDb250ZXh0U2VydmljZSA9IHRoaXMudmlld0NvbnRleHQ7XHJcblxyXG4gICAgaWYgKCF0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy53aWRnZXRzLmFkZFdpZGdldChzbWFydEdyaWQuZ3JpZElkZW50aWZpZXIsIGNvbXBvbmVudFJlZmVyZW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHVzZUFzRGVmYXVsdEdyaWQpIHtcclxuICAgICAgdGhpcy5zbWFydEdyaWQgPSBzbWFydEdyaWQ7XHJcbiAgICAgIHJldHVybiB0aGlzLnNtYXJ0R3JpZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc21hcnRHcmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZvcm0oXHJcbiAgICBzbWFydEZvcm1JZDogc3RyaW5nLFxyXG4gICAgc21hcnRGb3JtOiBTbWFydEZvcm0sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydGZvcm1Db21wb25lbnRcclxuICApOiBTbWFydEZvcm0ge1xyXG4gICAgaWYgKCF0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy5mb3JtV2lkZ2V0cy5hZGRXaWRnZXQoc21hcnRGb3JtSWQsIGNvbXBvbmVudFJlZmVyZW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gaWYgKHRoaXMuc2VuZERhdGFDaGFuZ2VzICYmIGNvbXBvbmVudFJlZmVyZW5jZSkge1xyXG4gICAgLy8gICBzbWFydEZvcm0udXNlT25WYWx1ZUNoYW5nZUV2ZW50ID0gdHJ1ZTtcclxuXHJcbiAgICAvLyAgIGNvbXBvbmVudFJlZmVyZW5jZS5zb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcclxuICAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHZhbHVlQ2hhbmdlOiBTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2UpID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuaGFuZGxlVmFsdWVDaGFuZ2VzKHZhbHVlQ2hhbmdlKTtcclxuICAgIC8vICAgICB9KTtcclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4gc21hcnRGb3JtO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFVwRGVmYXVsdFRyZWUodHJlZUlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRUcmVlU2VydmljZSA9IHRoaXMuY3JlYXRlVHJlZVNlcnZpY2UodHJlZUlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjcmVhdGVUcmVlU2VydmljZSh0cmVlSWQ6IHN0cmluZyk6IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHtcclxuICAgIGNvbnN0IHRyZWVTZXJ2aWNlID0gbmV3IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlKHRoaXMuaW5qZWN0LCB0aGlzLnBhZ2VOYW1lLCB0cmVlSWQpO1xyXG4gICAgaWYgKCF0aGlzLnVzZVF1ZXJ5TGlzdHMpIHtcclxuICAgICAgdGhpcy53aWRnZXRzLmFkZFdpZGdldCh0cmVlSWQsIHRyZWVTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJlZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkRmlsZVVwbG9hZGVyKFxyXG4gICAgdWlBY3Rpb25Db2RlOiBzdHJpbmcsXHJcbiAgICBmaWxlRm9ybWF0cz86IHN0cmluZ1tdLFxyXG4gICAgbWF4U2l6ZU1iPzogbnVtYmVyLFxyXG4gICAgaXNNdWx0aXBsZT86IGJvb2xlYW5cclxuICApOiBTbWFydENvbXBvbmVudEZpbGVVcGxvYWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB1aUFjdGlvbkNvZGUsXHJcbiAgICAgIHNtYXJ0Q29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBmaWxlRm9ybWF0cyxcclxuICAgICAgaXNNdWx0aXBsZSxcclxuICAgICAgbWF4U2l6ZU1iLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gaGFuZGxlIGNoYW5nZXNcclxuICBwcml2YXRlIGhhbmRsZVZhbHVlQ2hhbmdlcyh2YWx1ZUNoYW5nZTogU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlKTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YUNoYW5nZTogRGF0YUNoYW5nZTtcclxuICAgIGlmICh2YWx1ZUNoYW5nZS5rZXkuaW5jbHVkZXMoJy4nKSkge1xyXG4gICAgICBjb25zdCBzb3VyY2UgPSB2YWx1ZUNoYW5nZS5rZXkuc3BsaXQoJy4nKVswXTtcclxuICAgICAgY29uc3QgdmFsdWVLZXkgPSB2YWx1ZUNoYW5nZS5rZXkuc3BsaXQoJy4nKVsxXTtcclxuICAgICAgZGF0YUNoYW5nZSA9IHtcclxuICAgICAgICBraW5kOiB2YWx1ZUNoYW5nZS5raW5kID09PSAnYmFzaWMnID8gRGF0YUNoYW5nZUtpbmQuV2lkZ2V0IDogRGF0YUNoYW5nZUtpbmQuU2VsZWN0aW9uLFxyXG4gICAgICAgIHNvdXJjZSxcclxuICAgICAgICB2YWx1ZXM6IFtbdmFsdWVLZXksIHZhbHVlQ2hhbmdlLnZhbHVlXV0sXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkYXRhQ2hhbmdlID0ge1xyXG4gICAgICAgIGtpbmQ6IHZhbHVlQ2hhbmdlLmtpbmQgPT09ICdiYXNpYycgPyBEYXRhQ2hhbmdlS2luZC5XaWRnZXQgOiBEYXRhQ2hhbmdlS2luZC5TZWxlY3Rpb24sXHJcbiAgICAgICAgc291cmNlOiB2YWx1ZUNoYW5nZS5rZXksXHJcbiAgICAgICAgdmFsdWVzOiBbW3ZhbHVlQ2hhbmdlLmtleSwgdmFsdWVDaGFuZ2UudmFsdWVdXSxcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LmRhdGFDaGFuZ2VkKHRoaXMudXVpZCEsIGRhdGFDaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDaGFuZ2VzKGNoYW5nZTogQ29tcG9uZW50TW9kZWxDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlZFdpZGdldHMpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlLmNoYW5nZWRXaWRnZXRzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gZmFsc2U7XHJcbiAgICAgIGlmIChjaGFuZ2UuY2hhbmdlcykge1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZXMgPSBjaGFuZ2UuY2hhbmdlcztcclxuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5tYXAoKGNoYW5nZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2RhdGEuJykpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleS5zdGFydHNXaXRoKCdsYXlvdXRzLicpICYmIHRoaXMubW9kZWw/LmxheW91dHMpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMYXlvdXRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ2NvbXBvbmVudExheW91dHMuJykgJiYgdGhpcy5tb2RlbD8ubGF5b3V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbXBvbmVudExheW91dENoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkuc3RhcnRzV2l0aCgndmFsdWVTZXRzLicpICYmIHRoaXMubW9kZWw/LnZhbHVlU2V0cykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZVZhbHVlU2V0Q2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2FjdGlvbnMnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQWN0aW9uQ2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJ2NvbnN0cmFpbnRzJykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5ID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gY2hhbmdlc1snJ10gYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICAgICAgICAgIGRhdGFDaGFuZ2VIYXNCZWVuTmV4dGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCFkYXRhQ2hhbmdlSGFzQmVlbk5leHRlZCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlZC5uZXh0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgdGhpcy5tb2RlbCA9IGNoYW5nZS52YWx1ZSBhcyBDb21wb25lbnRNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWNoYW5nZS5jaGFuZ2VkV2lkZ2V0cyAmJiAhY2hhbmdlLmNoYW5nZXMgJiYgY2hhbmdlLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjaGFuZ2UudmFsdWUgYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZVdpZGdldHMoY2hhbmdlZFdpZGdldHM6IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICBsZXQgd2lkZ2V0cyA9IHRoaXMuZ2V0V2lkZ2V0cygpO1xyXG4gICAgY2hhbmdlZFdpZGdldHMuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcmVmZXJlbmNlID0gd2lkZ2V0cy5nZXQoa2V5KTtcclxuXHJcbiAgICAgIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgICByZWZlcmVuY2UucmVmcmVzaCgpO1xyXG4gICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZSBpbnN0YW5jZW9mIFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlKSB7XHJcbiAgICAgICAgcmVmZXJlbmNlLmluaXRpYWxpemUoKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZC5gKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFZhbHVlRGVlcGx5KG1vZGVsOiBhbnksIGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICBsZXQgc3BsaXR0ZWRLZXlzID0ga2V5LnNwbGl0KCcuJyk7XHJcblxyXG4gICAgbGV0IGRlZXBNb2RlbDogYW55W10gPSBbbW9kZWxdO1xyXG4gICAgbGV0IHRlbXBNb2RlbDogYW55O1xyXG5cclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzcGxpdHRlZEtleXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIHRlbXBNb2RlbCA9IGRlZXBNb2RlbFtpbmRleF07XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdHlwZW9mIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gJ3N0cmluZycgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnYm9vbGVhbicgJiZcclxuICAgICAgICB0eXBlb2YgdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dICE9PSAnbnVtYmVyJyAmJlxyXG4gICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICkge1xyXG4gICAgICAgIGRlZXBNb2RlbC5wdXNoKHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbmRleCA9PT0gc3BsaXR0ZWRLZXlzLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICBsZXQgb2xkVmFsdWUgPSB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV07XHJcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSAnJyAmJiAob2xkVmFsdWUgPT09IG51bGwgfHwgb2xkVmFsdWUgPT09IHVuZGVmaW5lZCkgdGhlbiBkb24ndCBjaGFuZ2UgdmFsdWUuXHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSAnJyB8fCAob2xkVmFsdWUgIT09IG51bGwgJiYgb2xkVmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVEYXRhQ2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFZhbHVlRGVlcGx5KHRoaXMubW9kZWwsIGNoYW5nZUtleSwgY2hhbmdlc1tjaGFuZ2VLZXldKTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWxsRm9ybUNvbXBvbmVudHMoKT8uZm9yRWFjaCgoZm9ybSkgPT4gZm9ybS5yZWZyZXNoKCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtV2lkZ2V0cy53aWRnZXRzLmZvckVhY2goXHJcbiAgICAgICAgKGZvcm1Db21wb25lbnQ6IFNtYXJ0Zm9ybUNvbXBvbmVudCB8IHVuZGVmaW5lZCwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGlmIChmb3JtQ29tcG9uZW50ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgUHJvdmlkZWQgZm9ybSByZWZlcmVuY2UgZm9yICR7a2V5fSBpcyB1bmRlZmluZWQuYCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3JtQ29tcG9uZW50LnJlZnJlc2goKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUxheW91dENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IGxheW91dEtleSA9IGNoYW5nZUtleS5zcGxpdCgnLicpWzFdO1xyXG4gICAgdGhpcy5tb2RlbCEubGF5b3V0c1tsYXlvdXRLZXldID0gY2hhbmdlc1tjaGFuZ2VLZXldO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb21wb25lbnRMYXlvdXRDaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBsYXlvdXRLZXkgPSBjaGFuZ2VLZXkuc3BsaXQoJy4nKVsxXTtcclxuICAgIGxldCBjb21wb25lbnRMYXlvdXRzOiB7IFtrZXk6IHN0cmluZ106IE9iamVjdCB9ID0gdGhpcy5tb2RlbCEuY29tcG9uZW50TGF5b3V0cyBhcyB7XHJcbiAgICAgIFtrZXk6IHN0cmluZ106IE9iamVjdDtcclxuICAgIH07XHJcbiAgICBjb21wb25lbnRMYXlvdXRzW2xheW91dEtleV0gPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVZhbHVlU2V0Q2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgdmFsdWVTZXRLZXkgPSBjaGFuZ2VLZXkuc3BsaXQoJy4nKVsxXTtcclxuICAgIHRoaXMubW9kZWwhLnZhbHVlU2V0cyFbdmFsdWVTZXRLZXldID0gY2hhbmdlc1tjaGFuZ2VLZXldO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVBY3Rpb25DaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwhLmFjdGlvbnMgPSBjaGFuZ2VzW2NoYW5nZUtleV07XHJcbiAgICB0aGlzLmluaXRBY3Rpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnN0cmFpbnRDaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwhLmNvbnN0cmFpbnRzID0gY2hhbmdlc1tjaGFuZ2VLZXldO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgV2lkZ2V0TWFwPFQ+IHtcclxuICBwcml2YXRlIF93aWRnZXRzOiBNYXA8c3RyaW5nLCBUPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgZ2V0IHdpZGdldHMoKTogTWFwPHN0cmluZywgVD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldHM7XHJcbiAgfVxyXG4gIHNldCB3aWRnZXRzKHdpZGdldHM6IE1hcDxzdHJpbmcsIFQ+KSB7XHJcbiAgICB0aGlzLl93aWRnZXRzID0gd2lkZ2V0cztcclxuICB9XHJcbiAgYWRkV2lkZ2V0KGtleTogc3RyaW5nLCByZWZlcmVuY2U6IFQsIGlzRm9ybT86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX3dpZGdldHMuc2V0KGtleSwgcmVmZXJlbmNlKTtcclxuICB9XHJcbiAgcmVtb3ZlV2lkZ2V0KGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl93aWRnZXRzLmRlbGV0ZShrZXkpO1xyXG4gIH1cclxuICBjbGVhcldpZGdldHMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl93aWRnZXRzLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQoa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLndpZGdldHMuZ2V0KGtleSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q29tcG9uZW50RmlsZVVwbG9hZGVyIHtcclxuICB1aUFjdGlvbkNvZGU6IHN0cmluZztcclxuICBtYXhTaXplTWI/OiBudW1iZXI7XHJcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBzbWFydENvbXBvbmVudDogU21hcnRDb21wb25lbnRBcGlDbGllbnQ8YW55PjtcclxufVxyXG4iXX0=
|
|
460
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1jbGllbnQvc21hcnQtY29tcG9uZW50LWFwaS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBS0wsa0JBQWtCLEVBQ2xCLFlBQVksR0FHYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFJTCxjQUFjLEVBR2QsdUJBQXVCLEVBR3ZCLHlCQUF5QixFQUd6QixlQUFlLEdBR2hCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsSUFBc0IsdUJBQXVCLEdBQTdDLE1BQXNCLHVCQUF1QjtJQXFHM0MsWUFDWSxNQUFnQixFQUNoQixJQUF5QyxFQUNyQixRQUFnQjtRQUZwQyxXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQXFDO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVE7UUF2R3RDLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUUzQyxpQkFBWSxHQUF1QyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUE2RHJGLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUVyQyxnQkFBVyxHQUFrQixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUE0QnJFLG9CQUFvQjtRQUNwQixZQUFPLEdBQXdFLElBQUksU0FBUyxFQUFFLENBQUM7UUFFL0YsZ0JBQVcsR0FBOEMsSUFBSSxTQUFTLEVBQUUsQ0FB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LENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsWUFBWSxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RvciwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBHcmlkT3B0aW9ucyxcclxuICBTbWFydEZvcm0sXHJcbiAgU21hcnRGb3JtSW52YWxpZEZpZWxkcyxcclxuICBTbWFydEdyaWQsXHJcbiAgU21hcnRHcmlkQ29tcG9uZW50LFxyXG4gIFNtYXJ0U3ViamVjdCxcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbiAgU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlLFxyXG59IGZyb20gJy4uLy4uL3Byb2plY3RzJztcclxuaW1wb3J0IHsgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi9zbWFydC10cmVlL3Byb2plY3RzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnRNb2RlbCxcclxuICBDb21wb25lbnRNb2RlbENoYW5nZSxcclxuICBEYXRhQ2hhbmdlLFxyXG4gIERhdGFDaGFuZ2VLaW5kLFxyXG4gIEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMsXHJcbiAgU21hcnRUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uLFxyXG4gIFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyxcclxuICBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlLFxyXG4gIFVpQWN0aW9uTW9kZWwsXHJcbiAgVWlBY3Rpb25SZXF1ZXN0LFxyXG4gIFVpQWN0aW9uU2VydmljZSxcclxuICBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2UsXHJcbiAgVXNlVWlBY3Rpb24yLFxyXG59IGZyb20gJy4uL3ZpZXctY29udGV4dC9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aGVudGljYXRpb25TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTbWFydENvbXBvbmVudEFwaUNsaWVudDxUPiBpbXBsZW1lbnRzIFVzZVVpQWN0aW9uMiB7XHJcbiAgcHJvdGVjdGVkIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIHByaXZhdGUgZGV0ZWN0Q2hhbmdlOiBTbWFydFN1YmplY3Q8Q29tcG9uZW50TW9kZWxDaGFuZ2U+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIHByaXZhdGUgX3V1aWQ/OiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgdXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBnZXQgdXVpZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3V1aWQ7XHJcbiAgfVxyXG4gIHNldCB1dWlkKHV1aWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRoaXMuX3V1aWQgPT09IHV1aWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZpcnN0VXVpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51dWlkKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRleHQudW5mb2xsb3codGhpcy51dWlkKTtcclxuICAgICAgZmlyc3RVdWlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91dWlkID0gdXVpZDtcclxuICAgIGlmICh1dWlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0V2lkZ2V0cygpLndpZGdldHMuZm9yRWFjaCgocmVmLCBrZXkpID0+IHtcclxuICAgICAgICBpZiAocmVmIGluc3RhbmNlb2YgU21hcnRHcmlkQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICByZWYudXVpZCA9IHV1aWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICghcmVmICYmICFmaXJzdFV1aWQpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIHJlZmVyZW5jZSBmb3IgJHtrZXl9IGlzIHVuZGVmaW5lZCBvbiB1dWlkIGNoYW5nZS5gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIXRoaXMudXVpZE9mUGFnZUhhc0JlZW5DaGFuZ2VkU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgdGhpcy51dWlkT2ZQYWdlSGFzQmVlbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnZpZXdDb250ZXh0LnV1aWRPZlBhZ2VIYXNCZWVuQ2hhbmdlZFxyXG4gICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2VOYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChwYWdlTmFtZSA9PT0gdGhpcy5wYWdlTmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMucnVuKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZpZXdDb250ZXh0LmZvbGxvdyh0aGlzLl91dWlkISwgdGhpcy5kZXRlY3RDaGFuZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbW9kZWw6IENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkO1xyXG5cclxuICBnZXQgbW9kZWwoKTogQ29tcG9uZW50TW9kZWwgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuICBzZXQgbW9kZWwobW9kZWw6IENvbXBvbmVudE1vZGVsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgIHRoaXMuaW5pdENvbXBvbmVudEJ5TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGE/OiBUO1xyXG5cclxuICBnZXQgZGF0YSgpOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuICBzZXQgZGF0YShtb2RlbDogVCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fZGF0YSA9IG1vZGVsO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdWlBY3Rpb25Nb2RlbHM6IFVpQWN0aW9uTW9kZWxbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgZGF0YUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgLy8gVXNlVWlBY3Rpb25cclxuICAvLyBzdWJtaXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICAvLyByZVN1YnNjcmliZVRvQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIC8vIEdyaWRcclxuICBzbWFydEdyaWQ/OiBTbWFydEdyaWQ7XHJcblxyXG4gIC8vIFNlcnZpY2VzXHJcbiAgcHJvdGVjdGVkIHZpZXdDb250ZXh0OiBTbWFydFZpZXdDb250ZXh0U2VydmljZTtcclxuICBwcm90ZWN0ZWQgdWlBY3Rpb25TZXJ2aWNlOiBVaUFjdGlvblNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U6IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZT86IFNtYXJ0VHJhbnNsYXRlU2VydmljZTtcclxuXHJcbiAgLy8gVHJlZVxyXG4gIHByaXZhdGUgX3NtYXJ0VHJlZVNlcnZpY2U/OiBTbWFydHRyZWVHZW5lcmljU2VydmljZTtcclxuXHJcbiAgcHVibGljIGdldCBzbWFydFRyZWVTZXJ2aWNlKCk6IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9zbWFydFRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHNtYXJ0VHJlZVNlcnZpY2Uoc21hcnRUcmVlU2VydmljZTogU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aGlzLl9zbWFydFRyZWVTZXJ2aWNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgRXJyb3IoJ1RoZSBkZWZhdWx0IHRyZWUgaGFzIGFscmVhZHkgc2V0IHVwIScpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc21hcnRUcmVlU2VydmljZSA9IHNtYXJ0VHJlZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICAvLyBDb250YWluZWQgV2lkZ2V0c1xyXG4gIHdpZGdldHM6IFdpZGdldE1hcDxTbWFydEdyaWRDb21wb25lbnQgfCBTbWFydHRyZWVHZW5lcmljU2VydmljZSB8IHVuZGVmaW5lZD4gPSBuZXcgV2lkZ2V0TWFwKCk7XHJcblxyXG4gIGZvcm1XaWRnZXRzOiBXaWRnZXRNYXA8U21hcnRmb3JtQ29tcG9uZW50IHwgdW5kZWZpbmVkPiA9IG5ldyBXaWRnZXRNYXAoKTtcclxuXHJcbiAgdXNlUXVlcnlMaXN0czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBpbmplY3Q6IEluamVjdG9yLFxyXG4gICAgcHJvdGVjdGVkIGF1dGg6IFNtYXJ0QXV0aGVudGljYXRpb25TZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgQEluamVjdCgncGFnZU5hbWUnKSBwcm90ZWN0ZWQgcGFnZU5hbWU6IHN0cmluZ1xyXG4gICkge1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2Uuc3Vic2NyaWJlKChjaGFuZ2U6IENvbXBvbmVudE1vZGVsQ2hhbmdlKSA9PiB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlcyhjaGFuZ2UpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dCA9IGluamVjdC5nZXQoU21hcnRWaWV3Q29udGV4dFNlcnZpY2UpO1xyXG5cclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlID0gaW5qZWN0LmdldChVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIF9uZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucnVuKCk7XHJcbiAgfVxyXG4gIF9uZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRleHQudW5mb2xsb3codGhpcy51dWlkISk7XHJcbiAgICB0aGlzLndpZGdldHMuY2xlYXJXaWRnZXRzKCk7XHJcblxyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRBbGxGb3JtQ29tcG9uZW50cygpOiBRdWVyeUxpc3Q8U21hcnRmb3JtQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldEFsbEdyaWRDb21wb25lbnRzKCk6IFF1ZXJ5TGlzdDxTbWFydEdyaWRDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0QWxsVHJlZUNvbXBvbmVudHMoKTogUXVlcnlMaXN0PFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJvdGVjdGVkIGdldFdpZGdldHMoKTogV2lkZ2V0TWFwPFNtYXJ0R3JpZENvbXBvbmVudCB8IFNtYXJ0dHJlZUdlbmVyaWNTZXJ2aWNlIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIGxldCB3aWRnZXRzOiBXaWRnZXRNYXA8U21hcnRHcmlkQ29tcG9uZW50IHwgU21hcnR0cmVlR2VuZXJpY1NlcnZpY2UgfCB1bmRlZmluZWQ+ID1cclxuICAgICAgICBuZXcgV2lkZ2V0TWFwKCk7XHJcbiAgICAgIGlmICh0aGlzLmdldEFsbEdyaWRDb21wb25lbnRzKCkpIHtcclxuICAgICAgICB0aGlzLmdldEFsbEdyaWRDb21wb25lbnRzKCkhXHJcbiAgICAgICAgICAuZmlsdGVyKChncmlkKSA9PiAoZ3JpZD8uc21hcnRHcmlkPy5ncmlkSWRlbnRpZmllciA/IHRydWUgOiBmYWxzZSkpXHJcbiAgICAgICAgICAuZm9yRWFjaCgoZ3JpZCkgPT4gd2lkZ2V0cy5hZGRXaWRnZXQoZ3JpZC5zbWFydEdyaWQhLmdyaWRJZGVudGlmaWVyLCBncmlkKSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZ2V0QWxsVHJlZUNvbXBvbmVudHMoKSkge1xyXG4gICAgICAgIHRoaXMuZ2V0QWxsVHJlZUNvbXBvbmVudHMoKSFcclxuICAgICAgICAgIC5maWx0ZXIoKHRyZWUpID0+ICh0cmVlPy5zbWFydFRyZWVNb2RlbD8uaWRlbnRpZmllciA/IHRydWUgOiBmYWxzZSkpXHJcbiAgICAgICAgICAuZm9yRWFjaCgodHJlZSkgPT4gd2lkZ2V0cy5hZGRXaWRnZXQodHJlZSEuc21hcnRUcmVlTW9kZWwhLmlkZW50aWZpZXIhLCB0cmVlKSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHdpZGdldHM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzO1xyXG4gIH1cclxuXHJcbiAgaW5pdENvbXBvbmVudEJ5TW9kZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXREYXRhKCk7XHJcbiAgICB0aGlzLmluaXRBY3Rpb25zKCk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLmdldEFsbEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IHtcclxuICAgICAgICBpZiAoZm9ybS5zbWFydEZvcm0pIHtcclxuICAgICAgICAgIGZvcm0uc21hcnRGb3JtLmNvbXBvbmVudE1vZGVsID0gdGhpcy5tb2RlbDtcclxuICAgICAgICAgIGZvcm0uY29uc3RydWN0Rm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAvLyBUT0RPOiBsYXlvdXQsIHZhbHVlU2V0LCB3aWRnZXRzXHJcbiAgfVxyXG5cclxuICBpbml0RGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm1vZGVsPy5kYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IHRoaXMubW9kZWw/LmRhdGEgYXMgYW55O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdEFjdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlbD8uYWN0aW9ucykge1xyXG4gICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdGhpcy5tb2RlbD8uYWN0aW9ucy5tYXAoKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBzZXJ2aWNlVG9Vc2U6IHRoaXMsXHJcbiAgICAgICAgICB1aUFjdGlvbixcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJ1bigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dGguYmZmQXBpc0hhdmVCZWVuU2V0VXApIHtcclxuICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmF1dGguaGVhZGVyc1VwZGF0ZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWQoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy51dWlkID0gdGhpcy52aWV3Q29udGV4dC5nZXRVdWlkT2ZQYWdlKHRoaXMucGFnZU5hbWUpO1xyXG4gICAgLy8gdGhpcy5tb2RlbCA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQubG9hZCh0aGlzLnV1aWQpO1xyXG4gICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5sb2FkMih0aGlzLnV1aWQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZVVpQWN0aW9uKHVpQWN0aW9uOiBVaUFjdGlvbiwgb3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLnVpQWN0aW9uTW9kZWwgPSB7XHJcbiAgICAgIHNlcnZpY2VUb1VzZTogdGhpcyxcclxuICAgICAgdWlBY3Rpb246IHVpQWN0aW9uLFxyXG4gICAgfTtcclxuICAgIHRoaXMudWlBY3Rpb25TZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb24sIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW52YWxpZEZpZWxkcygpOiBTbWFydEZvcm1JbnZhbGlkRmllbGRzIHtcclxuICAgIGxldCBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyA9IHtcclxuICAgICAgaW52YWxpZEZpZWxkS2V5czogW10sXHJcbiAgICAgIGludmFsaWRGaWVsZE5hbWVzOiBbXSxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLmdldEFsbEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oZm9ybSwgYWdncmVnYXRlZEludmFsaWRGaWVsZHMpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1XaWRnZXRzPy53aWRnZXRzPy5mb3JFYWNoKChmb3JtKSA9PlxyXG4gICAgICAgIHRoaXMudmFsaWRhdGVGb3JtKGZvcm0sIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWxpZGF0ZUZvcm0oXHJcbiAgICBmb3JtOiBTbWFydGZvcm1Db21wb25lbnQgfCB1bmRlZmluZWQsXHJcbiAgICBhZ2dyZWdhdGVkSW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkc1xyXG4gICkge1xyXG4gICAgbGV0IGludmFsaWRGaWVsZHNPZkZvcm0gPSBmb3JtPy5nZXRJbnZhbGlkRmllbGRzKCk7XHJcbiAgICBpZiAoaW52YWxpZEZpZWxkc09mRm9ybSkge1xyXG4gICAgICBpbnZhbGlkRmllbGRzT2ZGb3JtLmludmFsaWRGaWVsZEtleXMuZm9yRWFjaCgoa2V5KSA9PlxyXG4gICAgICAgIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzLmludmFsaWRGaWVsZEtleXMucHVzaChrZXkpXHJcbiAgICAgICk7XHJcbiAgICAgIGludmFsaWRGaWVsZHNPZkZvcm0uaW52YWxpZEZpZWxkTmFtZXMuZm9yRWFjaCgoa2V5KSA9PlxyXG4gICAgICAgIGFnZ3JlZ2F0ZWRJbnZhbGlkRmllbGRzLmludmFsaWRGaWVsZE5hbWVzLnB1c2goa2V5KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFVzZVVpQWN0aW9uXHJcbiAgZ2V0QWRkaXRpb25hbFBhcmFtcyh1aUFjdGlvbjogVWlBY3Rpb24pOiBVaUFjdGlvbkFkZGl0aW9uYWxQYXJhbXMge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZm9yVGV4dEFyZWE6ICcnLFxyXG4gICAgICBmb3JUZXh0RmllbGQ6ICcnLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSh2YWxpZGF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJtaXRGb3Jtcyh2YWxpZGF0ZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBwZXJmb3JtVWlBY3Rpb25SZXF1ZXN0KFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXHJcbiAgICB3aWRnZXRJZD86IHN0cmluZyxcclxuICAgIG5vZGVJZD86IHN0cmluZ1xyXG4gICk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAodWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snX2ZpbGVzJ10pIHtcclxuICAgICAgY29uc3QgcGFyYW0gPSB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydwYXJhbSddO1xyXG4gICAgICBjb25zdCBmaWxlcyA9IHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ19maWxlcyddO1xyXG4gICAgICBjb25zdCBpc011bHRpcGxlID0gdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snaXNNdWx0aXBsZSddO1xyXG4gICAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1sncGFyYW0nXTtcclxuICAgICAgZGVsZXRlIHVpQWN0aW9uUmVxdWVzdC5wYXJhbXNbJ19maWxlcyddO1xyXG4gICAgICBkZWxldGUgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtc1snaXNNdWx0aXBsZSddO1xyXG5cclxuICAgICAgLy8gYXdhaXQgdGhpcy5zZW5kTW9kZWxUb1NlcnZlcigpO1xyXG4gICAgICBpZiAoIWlzTXVsdGlwbGUpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnBlcmZvcm1VcGxvYWRBY3Rpb24odGhpcy51dWlkISwgdWlBY3Rpb25SZXF1ZXN0LCBwYXJhbSwgZmlsZXNbMF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVVwbG9hZE11bHRpcGxlQWN0aW9uKFxyXG4gICAgICAgICAgdGhpcy51dWlkISxcclxuICAgICAgICAgIHVpQWN0aW9uUmVxdWVzdCxcclxuICAgICAgICAgIHBhcmFtLFxyXG4gICAgICAgICAgZmlsZXNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHdpZGdldElkICYmIG5vZGVJZCkge1xyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVdpZGdldEFjdGlvbih0aGlzLnV1aWQhLCB3aWRnZXRJZCwgbm9kZUlkLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmICh3aWRnZXRJZCkge1xyXG4gICAgICAvLyBhd2FpdCB0aGlzLnNlbmRNb2RlbFRvU2VydmVyKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMudmlld0NvbnRleHQucGVyZm9ybVdpZGdldE1haW5BY3Rpb24odGhpcy51dWlkISwgd2lkZ2V0SWQsIHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnZpZXdDb250ZXh0LnBlcmZvcm1BY3Rpb24odGhpcy51dWlkISwgdWlBY3Rpb25SZXF1ZXN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByaXZhdGUgYXN5bmMgc2VuZE1vZGVsVG9TZXJ2ZXIoKSB7XHJcbiAgLy8gICB0aGlzLnN1Ym1pdEZvcm1zKGZhbHNlKTtcclxuICAvLyAgIGxldCBkYXRhQ2hhbmdlID0ge1xyXG4gIC8vICAgICBraW5kOiBEYXRhQ2hhbmdlS2luZC5XaWRnZXQsXHJcbiAgLy8gICAgIHNvdXJjZTogJycsXHJcbiAgLy8gICAgIHZhbHVlczogW1snJywgdGhpcy5nZXRNb2RlbCgpXV0sXHJcbiAgLy8gICB9O1xyXG4gIC8vICAgYXdhaXQgdGhpcy52aWV3Q29udGV4dC5kYXRhQ2hhbmdlZCh0aGlzLnV1aWQhLCBkYXRhQ2hhbmdlKTtcclxuICAvLyB9XHJcblxyXG4gIGhhbmRsZVNwZWNpZmljRGVtYW5kc0FzeW5jaHJvbm91c2x5KFxyXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcclxuICApOiBQcm9taXNlPFVpQWN0aW9uU3BlY2lmaWNEZW1hbmRSZXNwb25zZT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdoYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseSBtZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLyoqXHJcbiAgICogU3VibWl0cyBhbGwgdGhlIHJlZ2lzdGVyZWQgZm9ybXMgaW4gdGhlIFNtYXJ0Q29tcG9uZW50XHJcbiAgICovXHJcbiAgcHVibGljIHN1Ym1pdEZvcm1zKHZhbGlkYXRlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZ2V0QWxsRm9ybUNvbXBvbmVudHMoKT8uZm9yRWFjaCgoZm9ybSkgPT4gZm9ybT8uc3VibWl0Rm9ybSh2YWxpZGF0ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtV2lkZ2V0cz8ud2lkZ2V0cz8uZm9yRWFjaCgoZm9ybSkgPT4gZm9ybT8uc3VibWl0Rm9ybSh2YWxpZGF0ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEdyaWQoXHJcbiAgICBzbWFydEdyaWQ6IFNtYXJ0R3JpZCxcclxuICAgIG9wdGlvbnM6IEdyaWRPcHRpb25zLFxyXG4gICAgdXNlQXNEZWZhdWx0R3JpZD86IGJvb2xlYW4sXHJcbiAgICBjb21wb25lbnRSZWZlcmVuY2U/OiBTbWFydEdyaWRDb21wb25lbnRcclxuICApOiBTbWFydEdyaWQge1xyXG4gICAgc21hcnRHcmlkLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uU2VydmljZSA9IHRoaXMudWlBY3Rpb25TZXJ2aWNlO1xyXG4gICAgc21hcnRHcmlkLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgPSB0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XHJcbiAgICBzbWFydEdyaWQuc2VydmljZVRvVXNlID0gdGhpcztcclxuICAgIHNtYXJ0R3JpZC52aWV3Q29udGV4dFNlcnZpY2UgPSB0aGlzLnZpZXdDb250ZXh0O1xyXG5cclxuICAgIGlmICghdGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0cy5hZGRXaWRnZXQoc21hcnRHcmlkLmdyaWRJZGVudGlmaWVyLCBjb21wb25lbnRSZWZlcmVuY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh1c2VBc0RlZmF1bHRHcmlkKSB7XHJcbiAgICAgIHRoaXMuc21hcnRHcmlkID0gc21hcnRHcmlkO1xyXG4gICAgICByZXR1cm4gdGhpcy5zbWFydEdyaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHNtYXJ0R3JpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRGb3JtKFxyXG4gICAgc21hcnRGb3JtSWQ6IHN0cmluZyxcclxuICAgIHNtYXJ0Rm9ybTogU21hcnRGb3JtLFxyXG4gICAgY29tcG9uZW50UmVmZXJlbmNlPzogU21hcnRmb3JtQ29tcG9uZW50XHJcbiAgKTogU21hcnRGb3JtIHtcclxuICAgIGlmICghdGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMuZm9ybVdpZGdldHMuYWRkV2lkZ2V0KHNtYXJ0Rm9ybUlkLCBjb21wb25lbnRSZWZlcmVuY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICh0aGlzLnNlbmREYXRhQ2hhbmdlcyAmJiBjb21wb25lbnRSZWZlcmVuY2UpIHtcclxuICAgIC8vICAgc21hcnRGb3JtLnVzZU9uVmFsdWVDaGFuZ2VFdmVudCA9IHRydWU7XHJcblxyXG4gICAgLy8gICBjb21wb25lbnRSZWZlcmVuY2Uuc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXHJcbiAgICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgIC8vICAgICAuc3Vic2NyaWJlKCh2YWx1ZUNoYW5nZTogU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlKSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmhhbmRsZVZhbHVlQ2hhbmdlcyh2YWx1ZUNoYW5nZSk7XHJcbiAgICAvLyAgICAgfSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuIHNtYXJ0Rm9ybTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRVcERlZmF1bHRUcmVlKHRyZWVJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNtYXJ0VHJlZVNlcnZpY2UgPSB0aGlzLmNyZWF0ZVRyZWVTZXJ2aWNlKHRyZWVJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVHJlZVNlcnZpY2UodHJlZUlkOiBzdHJpbmcpOiBTbWFydHRyZWVHZW5lcmljU2VydmljZSB7XHJcbiAgICBjb25zdCB0cmVlU2VydmljZSA9IG5ldyBTbWFydHRyZWVHZW5lcmljU2VydmljZSh0aGlzLmluamVjdCwgdGhpcy5wYWdlTmFtZSwgdHJlZUlkKTtcclxuICAgIGlmICghdGhpcy51c2VRdWVyeUxpc3RzKSB7XHJcbiAgICAgIHRoaXMud2lkZ2V0cy5hZGRXaWRnZXQodHJlZUlkLCB0cmVlU2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyZWVTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEZpbGVVcGxvYWRlcihcclxuICAgIHVpQWN0aW9uQ29kZTogc3RyaW5nLFxyXG4gICAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXSxcclxuICAgIG1heFNpemVNYj86IG51bWJlcixcclxuICAgIGlzTXVsdGlwbGU/OiBib29sZWFuXHJcbiAgKTogU21hcnRDb21wb25lbnRGaWxlVXBsb2FkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdWlBY3Rpb25Db2RlLFxyXG4gICAgICBzbWFydENvbXBvbmVudDogdGhpcyxcclxuICAgICAgZmlsZUZvcm1hdHMsXHJcbiAgICAgIGlzTXVsdGlwbGUsXHJcbiAgICAgIG1heFNpemVNYixcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uIGhhbmRsZSBjaGFuZ2VzXHJcbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZUNoYW5nZXModmFsdWVDaGFuZ2U6IFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSk6IHZvaWQge1xyXG4gICAgbGV0IGRhdGFDaGFuZ2U6IERhdGFDaGFuZ2U7XHJcbiAgICBpZiAodmFsdWVDaGFuZ2Uua2V5LmluY2x1ZGVzKCcuJykpIHtcclxuICAgICAgY29uc3Qgc291cmNlID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMF07XHJcbiAgICAgIGNvbnN0IHZhbHVlS2V5ID0gdmFsdWVDaGFuZ2Uua2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICAgIGRhdGFDaGFuZ2UgPSB7XHJcbiAgICAgICAga2luZDogdmFsdWVDaGFuZ2Uua2luZCA9PT0gJ2Jhc2ljJyA/IERhdGFDaGFuZ2VLaW5kLldpZGdldCA6IERhdGFDaGFuZ2VLaW5kLlNlbGVjdGlvbixcclxuICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgdmFsdWVzOiBbW3ZhbHVlS2V5LCB2YWx1ZUNoYW5nZS52YWx1ZV1dLFxyXG4gICAgICB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGF0YUNoYW5nZSA9IHtcclxuICAgICAgICBraW5kOiB2YWx1ZUNoYW5nZS5raW5kID09PSAnYmFzaWMnID8gRGF0YUNoYW5nZUtpbmQuV2lkZ2V0IDogRGF0YUNoYW5nZUtpbmQuU2VsZWN0aW9uLFxyXG4gICAgICAgIHNvdXJjZTogdmFsdWVDaGFuZ2Uua2V5LFxyXG4gICAgICAgIHZhbHVlczogW1t2YWx1ZUNoYW5nZS5rZXksIHZhbHVlQ2hhbmdlLnZhbHVlXV0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3Q29udGV4dC5kYXRhQ2hhbmdlZCh0aGlzLnV1aWQhLCBkYXRhQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ2hhbmdlcyhjaGFuZ2U6IENvbXBvbmVudE1vZGVsQ2hhbmdlKTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoY2hhbmdlLmNoYW5nZWRXaWRnZXRzKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2VXaWRnZXRzKGNoYW5nZS5jaGFuZ2VkV2lkZ2V0cyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBkYXRhQ2hhbmdlSGFzQmVlbk5leHRlZCA9IGZhbHNlO1xyXG4gICAgICBpZiAoY2hhbmdlLmNoYW5nZXMpIHtcclxuICAgICAgICBjb25zdCBjaGFuZ2VzID0gY2hhbmdlLmNoYW5nZXM7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoY2hhbmdlcykubWFwKChjaGFuZ2VLZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUtleS5zdGFydHNXaXRoKCdkYXRhLicpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRGF0YUNoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkuc3RhcnRzV2l0aCgnbGF5b3V0cy4nKSAmJiB0aGlzLm1vZGVsPy5sYXlvdXRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlTGF5b3V0Q2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleS5zdGFydHNXaXRoKCdjb21wb25lbnRMYXlvdXRzLicpICYmIHRoaXMubW9kZWw/LmxheW91dHMpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDb21wb25lbnRMYXlvdXRDaGFuZ2UoY2hhbmdlcywgY2hhbmdlS2V5KTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlS2V5LnN0YXJ0c1dpdGgoJ3ZhbHVlU2V0cy4nKSAmJiB0aGlzLm1vZGVsPy52YWx1ZVNldHMpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVWYWx1ZVNldENoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkgPT09ICdhY3Rpb25zJykge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFjdGlvbkNoYW5nZShjaGFuZ2VzLCBjaGFuZ2VLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VLZXkgPT09ICdjb25zdHJhaW50cycpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDb25zdHJhaW50Q2hhbmdlKGNoYW5nZXMsIGNoYW5nZUtleSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNoYW5nZUtleSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IGNoYW5nZXNbJyddIGFzIENvbXBvbmVudE1vZGVsO1xyXG4gICAgICAgICAgICBkYXRhQ2hhbmdlSGFzQmVlbk5leHRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICghZGF0YUNoYW5nZUhhc0JlZW5OZXh0ZWQpIHtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZWQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBjaGFuZ2UudmFsdWUgYXMgQ29tcG9uZW50TW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFjaGFuZ2UuY2hhbmdlZFdpZGdldHMgJiYgIWNoYW5nZS5jaGFuZ2VzICYmIGNoYW5nZS52YWx1ZSkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gY2hhbmdlLnZhbHVlIGFzIENvbXBvbmVudE1vZGVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDaGFuZ2VXaWRnZXRzKGNoYW5nZWRXaWRnZXRzOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgbGV0IHdpZGdldHMgPSB0aGlzLmdldFdpZGdldHMoKTtcclxuICAgIGNoYW5nZWRXaWRnZXRzLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHdpZGdldHMuZ2V0KGtleSk7XHJcblxyXG4gICAgICBpZiAocmVmZXJlbmNlIGluc3RhbmNlb2YgU21hcnRHcmlkQ29tcG9uZW50KSB7XHJcbiAgICAgICAgcmVmZXJlbmNlLnJlZnJlc2goKTtcclxuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UgaW5zdGFuY2VvZiBTbWFydHRyZWVHZW5lcmljU2VydmljZSkge1xyXG4gICAgICAgIHJlZmVyZW5jZS5pbml0aWFsaXplKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVmZXJlbmNlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGBQcm92aWRlZCByZWZlcmVuY2UgZm9yICR7a2V5fSBpcyB1bmRlZmluZWQuYCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZURlZXBseShtb2RlbDogYW55LCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgbGV0IHNwbGl0dGVkS2V5cyA9IGtleS5zcGxpdCgnLicpO1xyXG5cclxuICAgIGxldCBkZWVwTW9kZWw6IGFueVtdID0gW21vZGVsXTtcclxuICAgIGxldCB0ZW1wTW9kZWw6IGFueTtcclxuXHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc3BsaXR0ZWRLZXlzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB0ZW1wTW9kZWwgPSBkZWVwTW9kZWxbaW5kZXhdO1xyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHR5cGVvZiB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV0gIT09ICdzdHJpbmcnICYmXHJcbiAgICAgICAgdHlwZW9mIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gJ2Jvb2xlYW4nICYmXHJcbiAgICAgICAgdHlwZW9mIHRlbXBNb2RlbFtzcGxpdHRlZEtleXNbaW5kZXhdXSAhPT0gJ251bWJlcicgJiZcclxuICAgICAgICB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV0gIT09IHVuZGVmaW5lZFxyXG4gICAgICApIHtcclxuICAgICAgICBkZWVwTW9kZWwucHVzaCh0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaW5kZXggPT09IHNwbGl0dGVkS2V5cy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgbGV0IG9sZFZhbHVlID0gdGVtcE1vZGVsW3NwbGl0dGVkS2V5c1tpbmRleF1dO1xyXG4gICAgICAgIC8vIGlmICh2YWx1ZSA9PT0gJycgJiYgKG9sZFZhbHVlID09PSBudWxsIHx8IG9sZFZhbHVlID09PSB1bmRlZmluZWQpIHRoZW4gZG9uJ3QgY2hhbmdlIHZhbHVlLlxyXG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgfHwgKG9sZFZhbHVlICE9PSBudWxsICYmIG9sZFZhbHVlICE9PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgICAgICB0ZW1wTW9kZWxbc3BsaXR0ZWRLZXlzW2luZGV4XV0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRGF0YUNoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRWYWx1ZURlZXBseSh0aGlzLm1vZGVsLCBjaGFuZ2VLZXksIGNoYW5nZXNbY2hhbmdlS2V5XSk7XHJcblxyXG4gICAgaWYgKHRoaXMudXNlUXVlcnlMaXN0cykge1xyXG4gICAgICB0aGlzLmdldEFsbEZvcm1Db21wb25lbnRzKCk/LmZvckVhY2goKGZvcm0pID0+IGZvcm0ucmVmcmVzaCgpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybVdpZGdldHMud2lkZ2V0cy5mb3JFYWNoKFxyXG4gICAgICAgIChmb3JtQ29tcG9uZW50OiBTbWFydGZvcm1Db21wb25lbnQgfCB1bmRlZmluZWQsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybUNvbXBvbmVudCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFByb3ZpZGVkIGZvcm0gcmVmZXJlbmNlIGZvciAke2tleX0gaXMgdW5kZWZpbmVkLmApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9ybUNvbXBvbmVudC5yZWZyZXNoKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVMYXlvdXRDaGFuZ2UoY2hhbmdlczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY2hhbmdlS2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBsYXlvdXRLZXkgPSBjaGFuZ2VLZXkuc3BsaXQoJy4nKVsxXTtcclxuICAgIHRoaXMubW9kZWwhLmxheW91dHNbbGF5b3V0S2V5XSA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ29tcG9uZW50TGF5b3V0Q2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBsZXQgbGF5b3V0S2V5ID0gY2hhbmdlS2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICBsZXQgY29tcG9uZW50TGF5b3V0czogeyBba2V5OiBzdHJpbmddOiBPYmplY3QgfSA9IHRoaXMubW9kZWwhLmNvbXBvbmVudExheW91dHMgYXMge1xyXG4gICAgICBba2V5OiBzdHJpbmddOiBPYmplY3Q7XHJcbiAgICB9O1xyXG4gICAgY29tcG9uZW50TGF5b3V0c1tsYXlvdXRLZXldID0gY2hhbmdlc1tjaGFuZ2VLZXldO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVWYWx1ZVNldENoYW5nZShjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBjaGFuZ2VLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgbGV0IHZhbHVlU2V0S2V5ID0gY2hhbmdlS2V5LnNwbGl0KCcuJylbMV07XHJcbiAgICB0aGlzLm1vZGVsIS52YWx1ZVNldHMhW3ZhbHVlU2V0S2V5XSA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQWN0aW9uQ2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGVsIS5hY3Rpb25zID0gY2hhbmdlc1tjaGFuZ2VLZXldO1xyXG4gICAgdGhpcy5pbml0QWN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb25zdHJhaW50Q2hhbmdlKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGNoYW5nZUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLm1vZGVsIS5jb25zdHJhaW50cyA9IGNoYW5nZXNbY2hhbmdlS2V5XTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb25cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFdpZGdldE1hcDxUPiB7XHJcbiAgcHJpdmF0ZSBfd2lkZ2V0czogTWFwPHN0cmluZywgVD4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIGdldCB3aWRnZXRzKCk6IE1hcDxzdHJpbmcsIFQ+IHtcclxuICAgIHJldHVybiB0aGlzLl93aWRnZXRzO1xyXG4gIH1cclxuICBzZXQgd2lkZ2V0cyh3aWRnZXRzOiBNYXA8c3RyaW5nLCBUPikge1xyXG4gICAgdGhpcy5fd2lkZ2V0cyA9IHdpZGdldHM7XHJcbiAgfVxyXG4gIGFkZFdpZGdldChrZXk6IHN0cmluZywgcmVmZXJlbmNlOiBULCBpc0Zvcm0/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl93aWRnZXRzLnNldChrZXksIHJlZmVyZW5jZSk7XHJcbiAgfVxyXG4gIHJlbW92ZVdpZGdldChrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2lkZ2V0cy5kZWxldGUoa2V5KTtcclxuICB9XHJcbiAgY2xlYXJXaWRnZXRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd2lkZ2V0cy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy53aWRnZXRzLmdldChrZXkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENvbXBvbmVudEZpbGVVcGxvYWRlciB7XHJcbiAgdWlBY3Rpb25Db2RlOiBzdHJpbmc7XHJcbiAgbWF4U2l6ZU1iPzogbnVtYmVyO1xyXG4gIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgc21hcnRDb21wb25lbnQ6IFNtYXJ0Q29tcG9uZW50QXBpQ2xpZW50PGFueT47XHJcbn1cclxuIl19
|
|
@@ -29,7 +29,6 @@ export class SmartformComponent {
|
|
|
29
29
|
}
|
|
30
30
|
refresh() {
|
|
31
31
|
this.service.setValuesFromModel();
|
|
32
|
-
this.service.applyConstraints();
|
|
33
32
|
}
|
|
34
33
|
constructForm() {
|
|
35
34
|
if (!this.smartForm) {
|
|
@@ -115,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
115
114
|
}], ctorParameters: function () { return [{ type: i1.SmartFormService }]; }, propDecorators: { smartForm: [{
|
|
116
115
|
type: Input
|
|
117
116
|
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFRekQsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUFvQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQVpyQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNakQsNkJBQXdCLEdBQXNDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUkvRixjQUFTLEdBQUcsd0JBQXdCLENBQUM7SUFFVyxDQUFDO0lBQ2pELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJ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SSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVTtRQUN4QixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFVLENBQUMsYUFBYSxFQUFFO1lBQ3pELElBQUksQ0FBQyxTQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7OytHQXZIVSxrQkFBa0I7bUdBQWxCLGtCQUFrQix3RUFGbEIsQ0FBQyxnQkFBZ0IsQ0FBQywrQ0NaL0IsODBCQW9CQTsyRkROYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLENBQUMsZ0JBQWdCLENBQUM7dUdBS3BCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiwgU21hcnRGb3JtV2lkZ2V0VHlwZSB9IGZyb20gJy4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRGb3JtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc21hcnRmb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm0sIFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMsIFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZSB9IGZyb20gJy4vc21hcnRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NtYXJ0Zm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0Zm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnRmb3JtLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtTbWFydEZvcm1TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0Zm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgQElucHV0KCkgc21hcnRGb3JtPzogU21hcnRGb3JtO1xyXG4gIG9uQmx1clN1YmplY3Q/OiBTdWJqZWN0PGFueT47XHJcbiAgb25WYWx1ZUNoYW5nZVN1YmplY3Q/OiBTdWJqZWN0PGFueT47XHJcblxyXG4gIHNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZTogU3ViamVjdDxTb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2U+ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcblxyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gIGRpcmVjdGlvbiA9IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBTbWFydEZvcm1TZXJ2aWNlKSB7fVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuc21hcnRGb3JtID0gY2hhbmdlc1snc21hcnRGb3JtJ10uY3VycmVudFZhbHVlO1xyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNtYXJ0Rm9ybSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdEZvcm0oKTtcclxuICAgIH1cclxuICAgIHRoaXMub25CbHVyU3ViamVjdCA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5zZXRWYWx1ZXNGcm9tTW9kZWwoKTtcclxuICAgIHRoaXMuc2VydmljZS5hcHBseUNvbnN0cmFpbnRzKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNtYXJ0Rm9ybSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NtYXJ0Zm9ybSBoYXMgbm90IGJlZW4gZGVmaW5lZCEnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zbWFydEZvcm0udXNlT25WYWx1ZUNoYW5nZUV2ZW50ICYmICF0aGlzLm9uVmFsdWVDaGFuZ2VTdWJqZWN0KSB7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZVN1YmplY3QgPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlcnZpY2Uuc21hcnRGb3JtID0gdGhpcy5zbWFydEZvcm07XHJcbiAgICB0aGlzLnNlcnZpY2Uuc2V0VmFsdWVzRnJvbU1vZGVsKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuYXBwbHlDb25zdHJhaW50cygpO1xyXG4gICAgdGhpcy5zbWFydEZvcm0ud2lkZ2V0cyA9IHRoaXMuc2VydmljZS5maWx0ZXJXaWRnZXRzQnlWaXNpYmlsaXR5KHRoaXMuc21hcnRGb3JtLndpZGdldHMpO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5zZXJ2aWNlLnRvRm9ybUdyb3VwKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtLnRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5zbWFydEZvcm0udHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS50cmFuc2xhdGVXaWRnZXRzKHRoaXMuc21hcnRGb3JtIS53aWRnZXRzKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2xhdGVXaWRnZXRzKHRoaXMuc21hcnRGb3JtLndpZGdldHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybSgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybTtcclxuICB9XHJcblxyXG4gIGdldEludmFsaWRGaWVsZHMoKTogU21hcnRGb3JtSW52YWxpZEZpZWxkcyB7XHJcbiAgICBsZXQgaW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyA9IHtcclxuICAgICAgaW52YWxpZEZpZWxkS2V5czogW10sXHJcbiAgICAgIGludmFsaWRGaWVsZE5hbWVzOiBbXSxcclxuICAgIH07XHJcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKSkge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sXS52YWxpZCkge1xyXG4gICAgICAgIGxldCB3aWRnZXQgPSB0aGlzLnNlcnZpY2UuZ2V0U21hcnRGb3JtV2lkZ2V0QnlLZXkoY29udHJvbCk7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgd2lkZ2V0ICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVIgJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLklORElDQVRPUiAmJlxyXG4gICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUwgJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVIgJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT04gJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTVBPTkVOVCAmJlxyXG4gICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuWU9VVFVCRV9QTEFZRVIgJiZcclxuICAgICAgICAgICF3aWRnZXQuaXNEaXNhYmxlZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaW52YWxpZEZpZWxkcy5pbnZhbGlkRmllbGROYW1lcy5wdXNoKHdpZGdldC5sYWJlbCk7XHJcbiAgICAgICAgICBpbnZhbGlkRmllbGRzLmludmFsaWRGaWVsZEtleXMucHVzaCh3aWRnZXQua2V5KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpbnZhbGlkRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSh2YWxpZGF0ZSA9IHRydWUpOiBTbWFydEZvcm0ge1xyXG4gICAgaWYgKHZhbGlkYXRlKSB7XHJcbiAgICAgIHRoaXMuc21hcnRGb3JtIS5pbnZhbGlkRmllbGRzID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgIC8vIHRoaXMuZm9ybS5jb250cm9sc1tjb250cm9sXS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNtYXJ0Rm9ybSEuaW52YWxpZEZpZWxkcyA9IHRoaXMuZ2V0SW52YWxpZEZpZWxkcygpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNtYXJ0Rm9ybSE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2UudG9TbWFydEZvcm0odGhpcy5mb3JtKTtcclxuICB9XHJcblxyXG4gIGtleURvd25GdW5jdGlvbihldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gMTMgJiYgdGhpcy5zbWFydEZvcm0hLnN1Ym1pdE9uRW50ZXIpIHtcclxuICAgICAgdGhpcy5zbWFydEZvcm0hLnN1Ym1pdE9uRW50ZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldE1vZGVsKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmdldE1vZGVsKHRoaXMuZm9ybSk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtICpuZ0lmPVwic21hcnRGb3JtXCIgKGtleWRvd24pPVwia2V5RG93bkZ1bmN0aW9uKCRldmVudClcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cImZsZXggZm9ybVwiPlxyXG4gIDxoMiAqbmdJZj1cInNtYXJ0Rm9ybS5uYW1lXCI+XHJcbiAgICB7eyBzbWFydEZvcm0ubmFtZSB9fVxyXG4gIDwvaDI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJzbWFydEZvcm0uZGlyZWN0aW9uID09PSBkaXJlY3Rpb24uUk9XID8gJ3JvdycgOiAnY29sJ1wiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgd2lkZ2V0IG9mIHNtYXJ0Rm9ybS53aWRnZXRzXCIgY2xhc3M9XCJpdGVtXCI+XHJcbiAgICAgIDxzbWFydGZvcm13aWRnZXRcclxuICAgICAgICAqbmdJZj1cIndpZGdldC5pc1Zpc2libGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiB3aWRnZXQuaXNWaXNpYmxlXCJcclxuICAgICAgICBbd2lkZ2V0SW5zdGFuY2VdPVwid2lkZ2V0XCJcclxuICAgICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICBjbGFzcz1cImdyaWQtaXRlbVwiXHJcbiAgICAgICAgW29uQmx1cl09XCJvbkJsdXJTdWJqZWN0XCJcclxuICAgICAgICBbb25WYWx1ZUNoYW5nZV09XCJvblZhbHVlQ2hhbmdlU3ViamVjdFwiXHJcbiAgICAgICAgW3NvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZV09XCJzb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VcIlxyXG4gICAgICAgIGNsYXNzPVwie3sgd2lkZ2V0LmtleSB9fVwiXHJcbiAgICAgICAgW2xhYmVsQ29sb3JdPVwic21hcnRGb3JtLmxhYmVsVGhlbWVcIlxyXG4gICAgICA+PC9zbWFydGZvcm13aWRnZXQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWZvcm0vc21hcnRmb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUErQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7QUFRekQsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QixZQUFvQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQVpyQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNakQsNkJBQXdCLEdBQXNDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUkvRixjQUFTLEdBQUcsd0JBQXdCLENBQUM7SUFFVyxDQUFDO0lBQ2pELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJ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QUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3hCLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVUsQ0FBQyxhQUFhLEVBQUU7WUFDekQsSUFBSSxDQUFDLFNBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7K0dBdEhVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHdFQUZsQixDQUFDLGdCQUFnQixDQUFDLCtDQ1ovQiw4MEJBb0JBOzJGRE5hLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDRSxXQUFXLGFBR1YsQ0FBQyxnQkFBZ0IsQ0FBQzt1R0FLcEIsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLCBTbWFydEZvcm1XaWRnZXRUeXBlIH0gZnJvbSAnLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zbWFydGZvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybSwgU21hcnRGb3JtSW52YWxpZEZpZWxkcywgU29waGlzdGljYXRlZFZhbHVlQ2hhbmdlIH0gZnJvbSAnLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydFN1YmplY3QgfSBmcm9tICcuLi9zbWFydC1zdWJqZWN0L3Byb2plY3RzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnRmb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnRmb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbWFydGZvcm0uY29tcG9uZW50LmNzcyddLFxyXG4gIHByb3ZpZGVyczogW1NtYXJ0Rm9ybVNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRmb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBASW5wdXQoKSBzbWFydEZvcm0/OiBTbWFydEZvcm07XHJcbiAgb25CbHVyU3ViamVjdD86IFN1YmplY3Q8YW55PjtcclxuICBvblZhbHVlQ2hhbmdlU3ViamVjdD86IFN1YmplY3Q8YW55PjtcclxuXHJcbiAgc29waGlzdGljYXRlZFZhbHVlQ2hhbmdlOiBTdWJqZWN0PFNvcGhpc3RpY2F0ZWRWYWx1ZUNoYW5nZT4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcclxuXHJcbiAgZm9ybSE6IEZvcm1Hcm91cDtcclxuXHJcbiAgZGlyZWN0aW9uID0gU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IFNtYXJ0Rm9ybVNlcnZpY2UpIHt9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5zbWFydEZvcm0gPSBjaGFuZ2VzWydzbWFydEZvcm0nXS5jdXJyZW50VmFsdWU7XHJcbiAgICBpZiAodGhpcy5zbWFydEZvcm0pIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0Rm9ybSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkJsdXJTdWJqZWN0ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnNldFZhbHVlc0Zyb21Nb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0Rm9ybSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zbWFydEZvcm0pIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTbWFydGZvcm0gaGFzIG5vdCBiZWVuIGRlZmluZWQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc21hcnRGb3JtLnVzZU9uVmFsdWVDaGFuZ2VFdmVudCAmJiAhdGhpcy5vblZhbHVlQ2hhbmdlU3ViamVjdCkge1xyXG4gICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VTdWJqZWN0ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXJ2aWNlLnNtYXJ0Rm9ybSA9IHRoaXMuc21hcnRGb3JtO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnNldFZhbHVlc0Zyb21Nb2RlbCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmFwcGx5Q29uc3RyYWludHMoKTtcclxuICAgIHRoaXMuc21hcnRGb3JtLndpZGdldHMgPSB0aGlzLnNlcnZpY2UuZmlsdGVyV2lkZ2V0c0J5VmlzaWJpbGl0eSh0aGlzLnNtYXJ0Rm9ybS53aWRnZXRzKTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuc2VydmljZS50b0Zvcm1Hcm91cCgpO1xyXG5cclxuICAgIGlmICh0aGlzLnNtYXJ0Rm9ybS50cmFuc2xhdGVTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuc21hcnRGb3JtLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNlcnZpY2UudHJhbnNsYXRlV2lkZ2V0cyh0aGlzLnNtYXJ0Rm9ybSEud2lkZ2V0cyk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNsYXRlV2lkZ2V0cyh0aGlzLnNtYXJ0Rm9ybS53aWRnZXRzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldEZvcm0oKTogRm9ybUdyb3VwIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm07XHJcbiAgfVxyXG5cclxuICBnZXRJbnZhbGlkRmllbGRzKCk6IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMge1xyXG4gICAgbGV0IGludmFsaWRGaWVsZHM6IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMgPSB7XHJcbiAgICAgIGludmFsaWRGaWVsZEtleXM6IFtdLFxyXG4gICAgICBpbnZhbGlkRmllbGROYW1lczogW10sXHJcbiAgICB9O1xyXG4gICAgZm9yIChjb25zdCBjb250cm9sIG9mIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0udmFsaWQpIHtcclxuICAgICAgICBsZXQgd2lkZ2V0ID0gdGhpcy5zZXJ2aWNlLmdldFNtYXJ0Rm9ybVdpZGdldEJ5S2V5KGNvbnRyb2wpO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHdpZGdldCAmJlxyXG4gICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5JTkRJQ0FUT1IgJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRSAmJlxyXG4gICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUiAmJlxyXG4gICAgICAgICAgd2lkZ2V0LnR5cGUgIT09IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQlVUVE9OICYmXHJcbiAgICAgICAgICB3aWRnZXQudHlwZSAhPT0gU21hcnRGb3JtV2lkZ2V0VHlwZS5DT01QT05FTlQgJiZcclxuICAgICAgICAgIHdpZGdldC50eXBlICE9PSBTbWFydEZvcm1XaWRnZXRUeXBlLllPVVRVQkVfUExBWUVSICYmXHJcbiAgICAgICAgICAhd2lkZ2V0LmlzRGlzYWJsZWRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkTmFtZXMucHVzaCh3aWRnZXQubGFiZWwpO1xyXG4gICAgICAgICAgaW52YWxpZEZpZWxkcy5pbnZhbGlkRmllbGRLZXlzLnB1c2god2lkZ2V0LmtleSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaW52YWxpZEZpZWxkcztcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0odmFsaWRhdGUgPSB0cnVlKTogU21hcnRGb3JtIHtcclxuICAgIGlmICh2YWxpZGF0ZSkge1xyXG4gICAgICB0aGlzLnNtYXJ0Rm9ybSEuaW52YWxpZEZpZWxkcyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0ubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2NvbnRyb2xdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAvLyB0aGlzLmZvcm0uY29udHJvbHNbY29udHJvbF0uc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zbWFydEZvcm0hLmludmFsaWRGaWVsZHMgPSB0aGlzLmdldEludmFsaWRGaWVsZHMoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zbWFydEZvcm0hO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnRvU21hcnRGb3JtKHRoaXMuZm9ybSk7XHJcbiAgfVxyXG5cclxuICBrZXlEb3duRnVuY3Rpb24oZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDEzICYmIHRoaXMuc21hcnRGb3JtIS5zdWJtaXRPbkVudGVyKSB7XHJcbiAgICAgIHRoaXMuc21hcnRGb3JtIS5zdWJtaXRPbkVudGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRNb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXRNb2RlbCh0aGlzLmZvcm0pO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSAqbmdJZj1cInNtYXJ0Rm9ybVwiIChrZXlkb3duKT1cImtleURvd25GdW5jdGlvbigkZXZlbnQpXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJmbGV4IGZvcm1cIj5cclxuICA8aDIgKm5nSWY9XCJzbWFydEZvcm0ubmFtZVwiPlxyXG4gICAge3sgc21hcnRGb3JtLm5hbWUgfX1cclxuICA8L2gyPlxyXG4gIDxkaXYgW25nQ2xhc3NdPVwic21hcnRGb3JtLmRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uLlJPVyA/ICdyb3cnIDogJ2NvbCdcIj5cclxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHdpZGdldCBvZiBzbWFydEZvcm0ud2lkZ2V0c1wiIGNsYXNzPVwiaXRlbVwiPlxyXG4gICAgICA8c21hcnRmb3Jtd2lkZ2V0XHJcbiAgICAgICAgKm5nSWY9XCJ3aWRnZXQuaXNWaXNpYmxlID09PSB1bmRlZmluZWQgPyB0cnVlIDogd2lkZ2V0LmlzVmlzaWJsZVwiXHJcbiAgICAgICAgW3dpZGdldEluc3RhbmNlXT1cIndpZGdldFwiXHJcbiAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgICAgY2xhc3M9XCJncmlkLWl0ZW1cIlxyXG4gICAgICAgIFtvbkJsdXJdPVwib25CbHVyU3ViamVjdFwiXHJcbiAgICAgICAgW29uVmFsdWVDaGFuZ2VdPVwib25WYWx1ZUNoYW5nZVN1YmplY3RcIlxyXG4gICAgICAgIFtzb3BoaXN0aWNhdGVkVmFsdWVDaGFuZ2VdPVwic29waGlzdGljYXRlZFZhbHVlQ2hhbmdlXCJcclxuICAgICAgICBjbGFzcz1cInt7IHdpZGdldC5rZXkgfX1cIlxyXG4gICAgICAgIFtsYWJlbENvbG9yXT1cInNtYXJ0Rm9ybS5sYWJlbFRoZW1lXCJcclxuICAgICAgPjwvc21hcnRmb3Jtd2lkZ2V0PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -5121,7 +5121,6 @@ class SmartformComponent {
|
|
|
5121
5121
|
}
|
|
5122
5122
|
refresh() {
|
|
5123
5123
|
this.service.setValuesFromModel();
|
|
5124
|
-
this.service.applyConstraints();
|
|
5125
5124
|
}
|
|
5126
5125
|
constructForm() {
|
|
5127
5126
|
if (!this.smartForm) {
|
|
@@ -13615,14 +13614,7 @@ let SmartComponentApiClient = class SmartComponentApiClient {
|
|
|
13615
13614
|
(_a = this.getAllFormComponents()) === null || _a === void 0 ? void 0 : _a.forEach((form) => {
|
|
13616
13615
|
if (form.smartForm) {
|
|
13617
13616
|
form.smartForm.componentModel = this.model;
|
|
13618
|
-
|
|
13619
|
-
// FormGroup already created -> refresh
|
|
13620
|
-
form.refresh();
|
|
13621
|
-
}
|
|
13622
|
-
else {
|
|
13623
|
-
// FormGroup not created yet -> construct
|
|
13624
|
-
form.constructForm();
|
|
13625
|
-
}
|
|
13617
|
+
form.constructForm();
|
|
13626
13618
|
}
|
|
13627
13619
|
});
|
|
13628
13620
|
}
|