raise-common-lib 0.0.198 → 0.0.200
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/README.md +57 -57
- package/bundles/raise-common-lib.umd.js +4 -2
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/form/drawer-form/drawer-form.component.js +5 -3
- package/esm5/lib/form/drawer-form/drawer-form.component.js +5 -3
- package/fesm2015/raise-common-lib.js +4 -2
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +4 -2
- package/fesm5/raise-common-lib.js.map +1 -1
- package/package.json +1 -1
- package/raise-common-lib.metadata.json +1 -1
- package/src/assets/img/arrow_right.svg +4 -4
- package/src/assets/img/calendar-disabled.svg +6 -6
- package/src/assets/img/calendar.svg +6 -6
- package/src/assets/img/calendar_arrow_down.svg +3 -0
- package/src/assets/img/calendar_arrow_left.svg +3 -3
- package/src/assets/img/calendar_arrow_right.svg +3 -3
- package/src/assets/img/calendar_arrow_up.svg +3 -0
- package/src/assets/img/checked-vector.svg +3 -3
- package/src/assets/img/dialog-close.svg +4 -4
- package/src/assets/img/dialog-grow.svg +6 -6
- package/src/assets/img/dialog-shrink.svg +6 -6
- package/src/assets/img/plus.svg +4 -4
- package/src/assets/img/search.svg +4 -4
- package/src/assets/img/shrink-icon.svg +6 -6
- package/src/assets/img/time-disabled.svg +4 -4
- package/src/assets/img/time.svg +4 -4
- package/src/assets/img/toolbar-action-addFolder.svg +17 -17
- package/src/assets/img/toolbar-action-calculator.svg +11 -11
- package/src/assets/img/toolbar-action-collapse.svg +7 -7
- package/src/assets/img/toolbar-action-combine.svg +4 -4
- package/src/assets/img/toolbar-action-edit.svg +4 -4
- package/src/assets/img/toolbar-action-expand.svg +7 -7
- package/src/assets/img/toolbar-action-folderMove.svg +8 -8
- package/src/assets/img/toolbar-action-lock.svg +6 -6
- package/src/assets/img/toolbar-action-preview.svg +7 -7
- package/src/assets/img/toolbar-action-publish.svg +5 -5
- package/src/assets/img/toolbar-action-reminders.svg +10 -10
- package/src/assets/img/toolbar-action-rename.svg +7 -7
- package/src/assets/img/toolbar-action-saveSequence.svg +5 -5
- package/src/assets/img/toolbar-action-send-file.svg +5 -5
- package/src/assets/img/toolbar-action-settle.svg +7 -7
- package/src/assets/img/toolbar-action-share.svg +5 -5
- package/src/assets/img/toolbar-action-submitForApproval.svg +4 -4
- package/src/assets/img/toolbar-action-sync.svg +4 -4
- package/src/assets/img/toolbar-action-template.svg +6 -6
- package/src/assets/img/toolbar-action-workflow.svg +9 -9
- package/src/assets/style/reset/dropdown.scss +58 -11
- package/src/assets/style/variables.scss +2 -0
|
@@ -527,8 +527,10 @@ export class DrawerFormComponent {
|
|
|
527
527
|
onDropdownDataBound(event, field) {
|
|
528
528
|
/** @type {?} */
|
|
529
529
|
const index = this.fieldTypeMap[field.fieldFormType].indexOf(field);
|
|
530
|
-
|
|
531
|
-
|
|
530
|
+
/** @type {?} */
|
|
531
|
+
const component = this.dropdowns.toArray()[index];
|
|
532
|
+
if (event.items.length > 0 && index !== -1 && component) {
|
|
533
|
+
component.value = this.form[field.formKey];
|
|
532
534
|
}
|
|
533
535
|
}
|
|
534
536
|
/**
|
|
@@ -739,4 +741,4 @@ if (false) {
|
|
|
739
741
|
*/
|
|
740
742
|
DrawerFormComponent.prototype.ref;
|
|
741
743
|
}
|
|
742
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUNMLFlBQVksRUFFWixpQkFBaUIsR0FFbEIsTUFBTSxhQUFhLENBQUM7O01BRWYsY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0FBTy9DLE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFrRDlCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakQzQixVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQWtCLEVBQUUsQ0FBQztRQUM1QixlQUFVLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVuQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBS2hCLGlCQUFZLEdBQUc7WUFDcEMsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUN5QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLFlBQVksQ0FBQztRQUV6QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7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MkNBQTRFOztJQUM1RSwyQ0FBNkM7O0lBRTdDLG1DQUErQjs7SUFDL0IsNENBQTRDOztJQUc1Qyx1Q0FBb0M7O0lBQ3BDLDJDQUEyQzs7SUFtVzNDLHlDQUNrRDs7SUFDbEQsMENBQWdCOztJQUNoQiw0Q0FBc0I7Ozs7O0lBcFdWLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgRHJvcERvd25MaXN0Q29tcG9uZW50LFxyXG4gIEZpbHRlcmluZ0V2ZW50QXJncyxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1kYXRhXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge1xyXG4gIEVtYWlsUGF0dGVybixcclxuICBGaWVsZEl0ZW0sXHJcbiAgZmlsdGVyU2hvd1NlY3Rpb24sXHJcbiAgU2VjdGlvbkl0ZW0sXHJcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5jb25zdCBGT1JNX1BST1hZX1RBRyA9IFN5bWJvbC5mb3IoXCJmb3JtLXByb3h5XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtZHJhd2VyLWZvcm1cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RyYXdlci1mb3JtLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2RyYXdlci1mb3JtLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoXCJmb3JtXCIpIF9mb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgQElucHV0KFwic2VjdGlvbnNcIikgX3NlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgQElucHV0KFwib3B0aW9uc01hcFwiKSBvcHRpb25zTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuICBASW5wdXQoXCJkaXNhYmxlZFwiKSBmb3JtRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KFwic2hvd0FuY2hvclwiKSBzaG93QW5jaG9yID0gdHJ1ZTtcclxuICBASW5wdXQoXCJjdXN0b21UZW1wbGF0ZVwiKSBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoXCJjdXN0b21TZWN0aW9uVGVtcGxhdGVcIilcclxuICBjdXN0b21TZWN0aW9uVGVtcGxhdGU6IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4+O1xyXG5cclxuICBASW5wdXQoXCJvcHRpb25GaWVsZHNcIikgb3B0aW9uRmllbGRzID0ge1xyXG4gICAgdGV4dDogXCJ0ZXh0XCIsXHJcbiAgICB2YWx1ZTogXCJjb2RlXCIsXHJcbiAgICBkaXNhYmxlZDogXCJkaXNhYmxlZFwiLFxyXG4gICAgZ3JvdXBCeTogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dChcInNob3dGaWx0ZXJOdW1iZXJcIikgc2hvd0ZpbHRlck51bWJlciA9IDEwO1xyXG4gIEBJbnB1dChcIm51bWJlckZvcm1hdFwiKSBudW1iZXJGb3JtYXQ6IHN0cmluZztcclxuICBASW5wdXQoXCJkYXRlRm9ybWF0XCIpIGRhdGVGb3JtYXQgPSBcInl5eXktTU0tZGRcIjtcclxuXHJcbiAgQE91dHB1dChcImZvcm1DaGFuZ2VcIikgZm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuICBAT3V0cHV0KFwiZmllbGRDaGFuZ2VcIikgZmllbGRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGZpZWxkOiBGaWVsZEl0ZW07XHJcbiAgICB2YWx1ZTogYW55O1xyXG4gIH0+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcmF3ZXJGb3JtRWxcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcm9vdEVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgLy8g6Ieq5a6a5LmJIGZpZWxkIOaooeadv+WSjOiHquWumuS5iSBzZWN0aW9uIOaooeadv+eahOWuueWZqFxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjdXN0b21UZW1wbGF0ZUNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuICBAVmlld0NoaWxkcmVuKFwiY3VzdG9tU2VjdGlvbkNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIHNlY3Rpb25Db250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJkcm9wZG93blwiKVxyXG4gIGRyb3Bkb3duczogUXVlcnlMaXN0PERyb3BEb3duTGlzdENvbXBvbmVudD47XHJcblxyXG4gIHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgZmllbGRUeXBlTWFwOiBQYXJ0aWFsPFJlY29yZDxGaWVsZEl0ZW1bXCJmaWVsZEZvcm1UeXBlXCJdLCBGaWVsZEl0ZW1bXT4+ID0ge307XHJcbiAgZm9ybUZpZWxkTWFwOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZEl0ZW0+ID0ge307XHJcblxyXG4gIGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBmaWVsZFZhbGlkTWFwOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICAvLyDlrZjlgqggZGF0ZXBpY2tlciDnmoTlgLxcclxuICBkYXRlRm9ybTogUmVjb3JkPHN0cmluZywgRGF0ZT4gPSB7fTtcclxuICBkYXRlVmFsaWRNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5fc2VjdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IGZpbHRlclNob3dTZWN0aW9uKGNoYW5nZXMuX3NlY3Rpb25zLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIHRoaXMuZm9ybWF0RmllbGRNYXAoKTtcclxuICAgICAgdGhpcy5zZXRGb3JtKHsgLi4udGhpcy5mb3JtLCAuLi50aGlzLl9mb3JtIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuX2Zvcm0pIHtcclxuICAgICAgaWYgKCFjaGFuZ2VzLl9mb3JtLmN1cnJlbnRWYWx1ZVtGT1JNX1BST1hZX1RBR10pIHtcclxuICAgICAgICB0aGlzLnNldEZvcm0oY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IGNoYW5nZXMuX2Zvcm0uY3VycmVudFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY2hhbmdlcy5fZm9ybS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tGb3JtQ2hhbmdlKFxyXG4gICAgICAgICAgY2hhbmdlcy5fZm9ybS5wcmV2aW91c1ZhbHVlLFxyXG4gICAgICAgICAgY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmN1c3RvbVRlbXBsYXRlUmVuZGVyKHRoaXMuY29udGFpbmVycyk7XHJcbiAgICB0aGlzLmN1c3RvbVNlY3Rpb25SZW5kZXIodGhpcy5zZWN0aW9uQ29udGFpbmVycyk7XHJcbiAgICB0aGlzLmNvbnRhaW5lcnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lcnMgPSBjb250YWluZXJzO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVSZW5kZXIoY29udGFpbmVycyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnNlY3Rpb25Db250YWluZXJzLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uQ29udGFpbmVycyA9IGNvbnRhaW5lcnM7XHJcbiAgICAgICAgdGhpcy5jdXN0b21TZWN0aW9uUmVuZGVyKGNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5kcm9wZG93bnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChkcm9wZG93bnM6IFF1ZXJ5TGlzdDxEcm9wRG93bkxpc3RDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bnMgPSBkcm9wZG93bnM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93QW5jaG9yKSB7XHJcbiAgICAgIHRoaXMuaW5pdEFuY2hvclNjcm9sbEhhbmRsZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbVRlbXBsYXRlUmVuZGVyKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGUgJiYgY29udGFpbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbUZpZWxkcyA9IHRoaXMuZmllbGRUeXBlTWFwLkN1c3RvbSB8fCBbXTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmN1c3RvbVRlbXBsYXRlLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IGN1c3RvbUZpZWxkc1tpbmRleF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tU2VjdGlvblJlbmRlcihjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNlY3Rpb25UZW1wbGF0ZSAmJiBjb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgY3VzdG9tU2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zLmZpbHRlcihcclxuICAgICAgICAoc2VjdGlvbikgPT4gc2VjdGlvbi5jdXN0b21LZXlcclxuICAgICAgKTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tS2V5ID0gY3VzdG9tU2VjdGlvbnNbaW5kZXhdLmN1c3RvbUtleTtcclxuICAgICAgICBjb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY3VzdG9tU2VjdGlvblRlbXBsYXRlW2N1c3RvbUtleV0sIHtcclxuICAgICAgICAgICRpbXBsaWNpdDogY3VzdG9tU2VjdGlvbnNbaW5kZXhdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdEZpZWxkTWFwKCkge1xyXG4gICAgdGhpcy5maWVsZFR5cGVNYXAgPSB7fTtcclxuICAgIHRoaXMuZm9ybUZpZWxkTWFwID0ge307XHJcbiAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdKSB7XHJcbiAgICAgICAgICB0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXS5wdXNoKGZpZWxkKTtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGZpZWxkO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybShmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmdldEZvcm1Qcm94eSh0aGlzLmZvcm1hdEZvcm0odGhpcy5zZWN0aW9ucywgZm9ybSkpO1xyXG4gICAgdGhpcy5zeW5jRm9ybUZpZWxkKCk7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm0pO1xyXG4gIH1cclxuXHJcbiAgZXF1YWwodmFsdWU6IGFueSwgY29tcGFyZVZhbHVlOiBhbnkpIHtcclxuICAgIC8vIOWPquWvueaVsOe7hOi/m+ihjOeJueauiuWIpOaWrVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIEFycmF5LmlzQXJyYXkoY29tcGFyZVZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHZhbHVlLmxlbmd0aCA9PT0gY29tcGFyZVZhbHVlLmxlbmd0aCAmJlxyXG4gICAgICAgIHZhbHVlLmV2ZXJ5KChpLCBpbmRleCkgPT4gaSA9PT0gY29tcGFyZVZhbHVlW2luZGV4XSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBPYmplY3QuaXModmFsdWUsIGNvbXBhcmVWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0Zvcm1DaGFuZ2UocHJldmlvdXM6IFJlY29yZDxzdHJpbmcsIGFueT4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGN1cnJlbnQpLmZvckVhY2goKFtrZXksIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmVxdWFsKHByZXZpb3VzW2tleV0sIGN1cnJlbnRWYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KTtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzeW5jRm9ybVRvRGF0ZUZvcm0oZmllbGQ6IEZpZWxkSXRlbSwgdmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodmFsdWUpO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtW2ZpZWxkLmZvcm1LZXldID0gZGF0ZS5pc1ZhbGlkKCkgPyBkYXRlLnRvRGF0ZSgpIDogbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3luY0Zvcm1GaWVsZCgpIHtcclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbjogU2VjdGlvbkl0ZW0pID0+IHtcclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkRm9ybVR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgXCJEYXRlcGlja2VyXCI6XHJcbiAgICAgICAgICAgIHRoaXMuc3luY0Zvcm1Ub0RhdGVGb3JtKGZpZWxkLCB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV0pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRGb3JtKHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdLCBmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uOiBTZWN0aW9uSXRlbSkgPT4ge1xyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmllbGQuZmllbGRGb3JtVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcIlRleHRcIjpcclxuICAgICAgICAgIGNhc2UgXCJFbWFpbFwiOlxyXG4gICAgICAgICAgY2FzZSBcIlRleHRhcmVhXCI6XHJcbiAgICAgICAgICAgIGlmIChmb3JtW2ZpZWxkLmZvcm1LZXldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICBmb3JtW2ZpZWxkLmZvcm1LZXldID0gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFwiVGFnc1wiOlxyXG4gICAgICAgICAgY2FzZSBcIkNoZWNrYm94XCI6XHJcbiAgICAgICAgICBjYXNlIFwiTXVsdGlTZWxlY3RcIjpcclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZvcm1bZmllbGQuZm9ybUtleV0pKSB7XHJcbiAgICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgXCJTd2l0Y2hcIjpcclxuICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9ICEhZm9ybVtmaWVsZC5mb3JtS2V5XTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGZvcm1bZmllbGQuZm9ybUtleV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGZvcm1bZmllbGQuZm9ybUtleV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtUHJveHkoZm9ybTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgLy8g546w5Zyo5LiN5pSv5oyB5bWM5aWXIGZvcm0g5bGe5oCn77yM5Y+q5a+55rWF5bGC6L+b6KGM5aSE55CGXHJcbiAgICBjb25zdCBwcm94eUZvcm0gPSBuZXcgUHJveHkoZm9ybSwge1xyXG4gICAgICBzZXQ6ICh0YXJnZXQsIHByb3A6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHRhcmdldFtwcm9wXSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQocHJvcCk7XHJcbiAgICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgICBpZiAoZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJEYXRlcGlja2VyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zeW5jRm9ybVRvRGF0ZUZvcm0oZmllbGQsIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHlGb3JtLCBGT1JNX1BST1hZX1RBRywge1xyXG4gICAgICB2YWx1ZTogdHJ1ZSxcclxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb3h5Rm9ybTtcclxuICB9XHJcblxyXG4gIC8vIOihqOWNleaPkOS6pOWJjeS8muinpuWPkei/meS4quWHveaVsFxyXG4gIHVwZGF0ZUZvcm0odmFsdWU6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm0pO1xyXG4gICAgdGhpcy5maWVsZENoYW5nZS5lbWl0KHsgZmllbGQsIHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQ6IEZpZWxkSXRlbSwgaXNBdXRvID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICAgID8gdmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAgICAgOiAhW251bGwsIHVuZGVmaW5lZCwgXCJcIl0uaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJFbWFpbFwiICYmIHZhbHVlKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBFbWFpbFBhdHRlcm4udGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5tYXhsZW5ndGgpIHtcclxuICAgICAgaXNWYWxpZCA9IFN0cmluZyh2YWx1ZSkubGVuZ3RoIDw9IGZpZWxkLm1heGxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1pbmxlbmd0aCkge1xyXG4gICAgICBpc1ZhbGlkID0gU3RyaW5nKHZhbHVlKS5sZW5ndGggPj0gZmllbGQubWlubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWF4KSB7XHJcbiAgICAgIGlzVmFsaWQgPSB2YWx1ZSA8PSBmaWVsZC5tYXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5taW4pIHtcclxuICAgICAgaXNWYWxpZCA9IHZhbHVlID49IGZpZWxkLm1pbjtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBpc1ZhbGlkID0gZmllbGQudmFsaWRhdG9yLmNhbGwobnVsbCwgdmFsdWUsIGZpZWxkKTtcclxuICAgIH1cclxuICAgIGlmICghaXNBdXRvKSB7XHJcbiAgICAgIHRoaXMuZmllbGRWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGlzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIHByZUNoZWNrRm9ybUlzVmFsaWQoKSB7XHJcbiAgICBsZXQgZm9ybUlzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PlxyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZvcm1Jc1ZhbGlkID0gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCkgJiYgZm9ybUlzVmFsaWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcm1Jc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1Jc1ZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbnMuZXZlcnkoKHNlY3Rpb24pID0+XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCwgdHJ1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGQoZm9ybUtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRNYXBbZm9ybUtleV0gfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsbEZ1bmN0aW9uKGZuOiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pIHtcclxuICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoYXJnc1sxXSB8fCBhcmdzWzBdKTtcclxuICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQodmFsdWU6IHN0cmluZywgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25JbnB1dCwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQ29tcG9uZW50Q2hhbmdlKGV2ZW50OiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmICghZXZlbnQuaXNJbnRlcmFjdGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlICE9PSBcIkRhdGVwaWNrZXJcIikge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKGV2ZW50LnZhbHVlLCBmaWVsZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlXCIsIGV2ZW50KTtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWUgPyBtb21lbnQoZXZlbnQudmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERcIikgOiBudWxsO1xyXG4gICAgdGhpcy5kYXRlRm9ybVtmaWVsZC5mb3JtS2V5XSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UodmFsdWU6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy51cGRhdGVGb3JtKHZhbHVlLCBmaWVsZCk7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkNoYW5nZSwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uRGF0ZVBpY2tlckJsdXIoZXZlbnQ6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5vbkJsdXIoZmllbGQpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCAkaW5wdXQgPSBldmVudC5tb2RlbC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcclxuICAgICAgaWYgKCRpbnB1dCAmJiAkaW5wdXQudmFsdWUgJiYgIXRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0pIHtcclxuICAgICAgICB0aGlzLmRhdGVWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmRhdGVWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XTtcclxuICAgICAgfVxyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkZvY3VzLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25CbHVyLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcmluZyhldmVudDogRmlsdGVyaW5nRXZlbnRBcmdzLCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBxdWVyeSA9IG5ldyBRdWVyeSgpO1xyXG4gICAgaWYgKGV2ZW50LnRleHQpIHtcclxuICAgICAgcXVlcnkud2hlcmUodGhpcy5vcHRpb25GaWVsZHMudGV4dCwgXCJjb250YWluc1wiLCBldmVudC50ZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnVwZGF0ZURhdGEodGhpcy5nZXRPcHRpb25zKGZpZWxkKSwgcXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgb25Ecm9wZG93bkRhdGFCb3VuZChldmVudDogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdLmluZGV4T2YoZmllbGQpO1xyXG4gICAgaWYgKGV2ZW50Lml0ZW1zLmxlbmd0aCA+IDAgJiYgaW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25zLnRvQXJyYXkoKVtpbmRleF0udmFsdWUgPSB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25zKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMub3B0aW9uc01hcFtmaWVsZC5vcHRpb25LZXldKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWFwW2ZpZWxkLm9wdGlvbktleV07XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnNNYXBbZmllbGQuZm9ybUtleV0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNNYXBbZmllbGQuZm9ybUtleV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBnZXREaXNhYmxlZChmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtRGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGZpZWxkLmRpc2FibGVkID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgcmV0dXJuIGZpZWxkLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGQuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25GaWVsZHMoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgaWYgKFtcIkRyb3Bkb3duXCIsIFwiQXV0b0NvbXBsZXRlXCJdLmluY2x1ZGVzKGZpZWxkLmZpZWxkRm9ybVR5cGUpKSB7XHJcbiAgICAgIHJldHVybiB7IC4uLnRoaXMub3B0aW9uRmllbGRzLCBncm91cEJ5OiBmaWVsZC5ncm91cEtleSB8fCBudWxsIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25GaWVsZHM7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKFwic2VjdGlvbkVsXCIpXHJcbiAgc2VjdGlvbkVsczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcclxuICBzY3JvbGxJbmRleCA9IDA7XHJcbiAgaXNDbGlja0FuY2hvciA9IGZhbHNlO1xyXG5cclxuICBvbkNsaWNrQW5jaG9yKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNlY3Rpb25JdGVtcyA9IHRoaXMuc2VjdGlvbkVscy50b0FycmF5KCk7XHJcbiAgICBzZWN0aW9uSXRlbXNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7XHJcbiAgICB0aGlzLnNjcm9sbEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmlzQ2xpY2tBbmNob3IgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZmluZFNjcm9sbFZpZXdFbChlbDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBpZiAoZWwgPT09IGRvY3VtZW50LmJvZHkpIHtcclxuICAgICAgcmV0dXJuIGVsO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsLnNjcm9sbEhlaWdodCAmJiBlbC5zY3JvbGxIZWlnaHQgIT09IGVsLm9mZnNldEhlaWdodCkge1xyXG4gICAgICByZXR1cm4gZWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maW5kU2Nyb2xsVmlld0VsKGVsLnBhcmVudEVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEFuY2hvclNjcm9sbEhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCBzY3JvbGxWaWV3RWwgPSB0aGlzLmZpbmRTY3JvbGxWaWV3RWwodGhpcy5yb290RWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBzY3JvbGxWaWV3RWwuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVmlld0VsLm9mZnNldEhlaWdodDtcclxuICAgIGNvbnN0IHNlY3Rpb25WaWV3UmF0aW8gPSB0aGlzLnNlY3Rpb25FbHMudG9BcnJheSgpLm1hcCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCByYXRpbyA9XHJcbiAgICAgICAgc2VjdGlvbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAvIHNjcm9sbFZpZXdFbC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgIHJldHVybiBzY3JvbGxIZWlnaHQgKiByYXRpbztcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc0NsaWNrQW5jaG9yKSB7XHJcbiAgICAgICAgdGhpcy5pc0NsaWNrQW5jaG9yID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9XHJcbiAgICAgICAgc2Nyb2xsVmlld0VsLnNjcm9sbFRvcCA+IHNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgPyBzY3JvbGxIZWlnaHRcclxuICAgICAgICAgIDogc2Nyb2xsVmlld0VsLnNjcm9sbFRvcDtcclxuICAgICAgbGV0IHJhZGlvU2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNlY3Rpb25WaWV3UmF0aW8ubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgcmFkaW9TY3JvbGxIZWlnaHQgKz0gc2VjdGlvblZpZXdSYXRpb1tpbmRleF07XHJcbiAgICAgICAgaWYgKHJhZGlvU2Nyb2xsSGVpZ2h0ID49IHNjcm9sbFRvcCkge1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlIChcclxuICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2Nyb2xsSW5kZXhdICYmXHJcbiAgICAgICAgIXRoaXMuc2VjdGlvbnNbdGhpcy5zY3JvbGxJbmRleF0udGl0bGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxJbmRleCsrO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvblNjcm9sbCgpO1xyXG4gICAgc2Nyb2xsVmlld0VsLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
744
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUNMLFlBQVksRUFFWixpQkFBaUIsR0FFbEIsTUFBTSxhQUFhLENBQUM7O01BRWYsY0FBYyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0FBTy9DLE1BQU0sT0FBTyxtQkFBbUI7Ozs7SUFrRDlCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakQzQixVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQWtCLEVBQUUsQ0FBQztRQUM1QixlQUFVLEdBQTBCLEVBQUUsQ0FBQztRQUN6QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVuQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBS2hCLGlCQUFZLEdBQUc7WUFDcEMsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsTUFBTTtZQUNiLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUN5QixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFNUIsZUFBVSxHQUFHLFlBQVksQ0FBQztRQUV6QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7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RXZELHdDQUM0Qzs7SUFFNUMsdUNBQTZCOztJQUM3QiwyQ0FBNEU7O0lBQzVFLDJDQUE2Qzs7SUFFN0MsbUNBQStCOztJQUMvQiw0Q0FBNEM7O0lBRzVDLHVDQUFvQzs7SUFDcEMsMkNBQTJDOztJQW9XM0MseUNBQ2tEOztJQUNsRCwwQ0FBZ0I7O0lBQ2hCLDRDQUFzQjs7Ozs7SUFyV1Ysa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBEcm9wRG93bkxpc3RDb21wb25lbnQsXHJcbiAgRmlsdGVyaW5nRXZlbnRBcmdzLFxyXG59IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1kcm9wZG93bnNcIjtcclxuaW1wb3J0IHsgUXVlcnkgfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWRhdGFcIjtcclxuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgRW1haWxQYXR0ZXJuLFxyXG4gIEZpZWxkSXRlbSxcclxuICBmaWx0ZXJTaG93U2VjdGlvbixcclxuICBTZWN0aW9uSXRlbSxcclxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcclxuXHJcbmNvbnN0IEZPUk1fUFJPWFlfVEFHID0gU3ltYm9sLmZvcihcImZvcm0tcHJveHlcIik7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1kcmF3ZXItZm9ybVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZHJhd2VyLWZvcm0uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZHJhd2VyLWZvcm0uY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcmF3ZXJGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dChcImZvcm1cIikgX2Zvcm06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBASW5wdXQoXCJzZWN0aW9uc1wiKSBfc2VjdGlvbnM6IFNlY3Rpb25JdGVtW10gPSBbXTtcclxuICBASW5wdXQoXCJvcHRpb25zTWFwXCIpIG9wdGlvbnNNYXA6IFJlY29yZDxzdHJpbmcsIGFueVtdPiA9IHt9O1xyXG4gIEBJbnB1dChcImRpc2FibGVkXCIpIGZvcm1EaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoXCJzaG93QW5jaG9yXCIpIHNob3dBbmNob3IgPSB0cnVlO1xyXG4gIEBJbnB1dChcImN1c3RvbVRlbXBsYXRlXCIpIGN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBJbnB1dChcImN1c3RvbVNlY3Rpb25UZW1wbGF0ZVwiKVxyXG4gIGN1c3RvbVNlY3Rpb25UZW1wbGF0ZTogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj47XHJcblxyXG4gIEBJbnB1dChcIm9wdGlvbkZpZWxkc1wiKSBvcHRpb25GaWVsZHMgPSB7XHJcbiAgICB0ZXh0OiBcInRleHRcIixcclxuICAgIHZhbHVlOiBcImNvZGVcIixcclxuICAgIGRpc2FibGVkOiBcImRpc2FibGVkXCIsXHJcbiAgICBncm91cEJ5OiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KFwic2hvd0ZpbHRlck51bWJlclwiKSBzaG93RmlsdGVyTnVtYmVyID0gMTA7XHJcbiAgQElucHV0KFwibnVtYmVyRm9ybWF0XCIpIG51bWJlckZvcm1hdDogc3RyaW5nO1xyXG4gIEBJbnB1dChcImRhdGVGb3JtYXRcIikgZGF0ZUZvcm1hdCA9IFwieXl5eS1NTS1kZFwiO1xyXG5cclxuICBAT3V0cHV0KFwiZm9ybUNoYW5nZVwiKSBmb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xyXG4gIEBPdXRwdXQoXCJmaWVsZENoYW5nZVwiKSBmaWVsZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZmllbGQ6IEZpZWxkSXRlbTtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgfT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChcImRyYXdlckZvcm1FbFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICByb290RWw6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICAvLyDoh6rlrprkuYkgZmllbGQg5qih5p2/5ZKM6Ieq5a6a5LmJIHNlY3Rpb24g5qih5p2/55qE5a655ZmoXHJcbiAgQFZpZXdDaGlsZHJlbihcImN1c3RvbVRlbXBsYXRlQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxyXG4gIHByaXZhdGUgY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjdXN0b21TZWN0aW9uQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxyXG4gIHByaXZhdGUgc2VjdGlvbkNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcImRyb3Bkb3duXCIpXHJcbiAgZHJvcGRvd25zOiBRdWVyeUxpc3Q8RHJvcERvd25MaXN0Q29tcG9uZW50PjtcclxuXHJcbiAgc2VjdGlvbnM6IFNlY3Rpb25JdGVtW10gPSBbXTtcclxuICBmaWVsZFR5cGVNYXA6IFBhcnRpYWw8UmVjb3JkPEZpZWxkSXRlbVtcImZpZWxkRm9ybVR5cGVcIl0sIEZpZWxkSXRlbVtdPj4gPSB7fTtcclxuICBmb3JtRmllbGRNYXA6IFJlY29yZDxzdHJpbmcsIEZpZWxkSXRlbT4gPSB7fTtcclxuXHJcbiAgZm9ybTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gIGZpZWxkVmFsaWRNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIC8vIOWtmOWCqCBkYXRlcGlja2VyIOeahOWAvFxyXG4gIGRhdGVGb3JtOiBSZWNvcmQ8c3RyaW5nLCBEYXRlPiA9IHt9O1xyXG4gIGRhdGVWYWxpZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLl9zZWN0aW9ucykge1xyXG4gICAgICB0aGlzLnNlY3Rpb25zID0gZmlsdGVyU2hvd1NlY3Rpb24oY2hhbmdlcy5fc2VjdGlvbnMuY3VycmVudFZhbHVlKTtcclxuICAgICAgdGhpcy5mb3JtYXRGaWVsZE1hcCgpO1xyXG4gICAgICB0aGlzLnNldEZvcm0oeyAuLi50aGlzLmZvcm0sIC4uLnRoaXMuX2Zvcm0gfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlcy5fZm9ybSkge1xyXG4gICAgICBpZiAoIWNoYW5nZXMuX2Zvcm0uY3VycmVudFZhbHVlW0ZPUk1fUFJPWFlfVEFHXSkge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9ybShjaGFuZ2VzLl9mb3JtLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JtID0gY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFjaGFuZ2VzLl9mb3JtLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0Zvcm1DaGFuZ2UoXHJcbiAgICAgICAgICBjaGFuZ2VzLl9mb3JtLnByZXZpb3VzVmFsdWUsXHJcbiAgICAgICAgICBjaGFuZ2VzLl9mb3JtLmN1cnJlbnRWYWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVSZW5kZXIodGhpcy5jb250YWluZXJzKTtcclxuICAgIHRoaXMuY3VzdG9tU2VjdGlvblJlbmRlcih0aGlzLnNlY3Rpb25Db250YWluZXJzKTtcclxuICAgIHRoaXMuY29udGFpbmVycy5jaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikgPT4ge1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVycyA9IGNvbnRhaW5lcnM7XHJcbiAgICAgICAgdGhpcy5jdXN0b21UZW1wbGF0ZVJlbmRlcihjb250YWluZXJzKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VjdGlvbkNvbnRhaW5lcnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pID0+IHtcclxuICAgICAgICB0aGlzLnNlY3Rpb25Db250YWluZXJzID0gY29udGFpbmVycztcclxuICAgICAgICB0aGlzLmN1c3RvbVNlY3Rpb25SZW5kZXIoY29udGFpbmVycyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmRyb3Bkb3ducy5jaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKGRyb3Bkb3duczogUXVlcnlMaXN0PERyb3BEb3duTGlzdENvbXBvbmVudD4pID0+IHtcclxuICAgICAgICB0aGlzLmRyb3Bkb3ducyA9IGRyb3Bkb3ducztcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNob3dBbmNob3IpIHtcclxuICAgICAgdGhpcy5pbml0QW5jaG9yU2Nyb2xsSGFuZGxlcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tVGVtcGxhdGVSZW5kZXIoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSB7XHJcbiAgICBpZiAodGhpcy5jdXN0b21UZW1wbGF0ZSAmJiBjb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgY3VzdG9tRmllbGRzID0gdGhpcy5maWVsZFR5cGVNYXAuQ3VzdG9tIHx8IFtdO1xyXG4gICAgICBjb250YWluZXJzLmZvckVhY2goKGNvbnRhaW5lciwgaW5kZXgpID0+IHtcclxuICAgICAgICBjb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgICBjb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY3VzdG9tVGVtcGxhdGUsIHtcclxuICAgICAgICAgICRpbXBsaWNpdDogY3VzdG9tRmllbGRzW2luZGV4XSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXN0b21TZWN0aW9uUmVuZGVyKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU2VjdGlvblRlbXBsYXRlICYmIGNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBjdXN0b21TZWN0aW9ucyA9IHRoaXMuc2VjdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgIChzZWN0aW9uKSA9PiBzZWN0aW9uLmN1c3RvbUtleVxyXG4gICAgICApO1xyXG4gICAgICBjb250YWluZXJzLmZvckVhY2goKGNvbnRhaW5lciwgaW5kZXgpID0+IHtcclxuICAgICAgICBjb250YWluZXIuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBjdXN0b21LZXkgPSBjdXN0b21TZWN0aW9uc1tpbmRleF0uY3VzdG9tS2V5O1xyXG4gICAgICAgIGNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jdXN0b21TZWN0aW9uVGVtcGxhdGVbY3VzdG9tS2V5XSwge1xyXG4gICAgICAgICAgJGltcGxpY2l0OiBjdXN0b21TZWN0aW9uc1tpbmRleF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0RmllbGRNYXAoKSB7XHJcbiAgICB0aGlzLmZpZWxkVHlwZU1hcCA9IHt9O1xyXG4gICAgdGhpcy5mb3JtRmllbGRNYXAgPSB7fTtcclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5maWVsZFR5cGVNYXBbZmllbGQuZmllbGRGb3JtVHlwZV0pIHtcclxuICAgICAgICAgIHRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdLnB1c2goZmllbGQpO1xyXG4gICAgICAgIHRoaXMuZm9ybUZpZWxkTWFwW2ZpZWxkLmZvcm1LZXldID0gZmllbGQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtKGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZ2V0Rm9ybVByb3h5KHRoaXMuZm9ybWF0Rm9ybSh0aGlzLnNlY3Rpb25zLCBmb3JtKSk7XHJcbiAgICB0aGlzLnN5bmNGb3JtRmllbGQoKTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KHRoaXMuZm9ybSk7XHJcbiAgfVxyXG5cclxuICBlcXVhbCh2YWx1ZTogYW55LCBjb21wYXJlVmFsdWU6IGFueSkge1xyXG4gICAgLy8g5Y+q5a+55pWw57uE6L+b6KGM54m55q6K5Yik5patXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgQXJyYXkuaXNBcnJheShjb21wYXJlVmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdmFsdWUubGVuZ3RoID09PSBjb21wYXJlVmFsdWUubGVuZ3RoICYmXHJcbiAgICAgICAgdmFsdWUuZXZlcnkoKGksIGluZGV4KSA9PiBpID09PSBjb21wYXJlVmFsdWVbaW5kZXhdKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIE9iamVjdC5pcyh2YWx1ZSwgY29tcGFyZVZhbHVlKTtcclxuICB9XHJcblxyXG4gIGNoZWNrRm9ybUNoYW5nZShwcmV2aW91czogUmVjb3JkPHN0cmluZywgYW55PiwgY3VycmVudDogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgT2JqZWN0LmVudHJpZXMoY3VycmVudCkuZm9yRWFjaCgoW2tleSwgY3VycmVudFZhbHVlXSkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZXF1YWwocHJldmlvdXNba2V5XSwgY3VycmVudFZhbHVlKSkge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZChrZXkpO1xyXG4gICAgICAgIGlmIChmaWVsZCkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN5bmNGb3JtVG9EYXRlRm9ybShmaWVsZDogRmllbGRJdGVtLCB2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0gPSBkYXRlLmlzVmFsaWQoKSA/IGRhdGUudG9EYXRlKCkgOiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlRm9ybVtmaWVsZC5mb3JtS2V5XSA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzeW5jRm9ybUZpZWxkKCkge1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uOiBTZWN0aW9uSXRlbSkgPT4ge1xyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmllbGQuZmllbGRGb3JtVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcIkRhdGVwaWNrZXJcIjpcclxuICAgICAgICAgICAgdGhpcy5zeW5jRm9ybVRvRGF0ZUZvcm0oZmllbGQsIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1hdEZvcm0oc2VjdGlvbnM6IFNlY3Rpb25JdGVtW10sIGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb246IFNlY3Rpb25JdGVtKSA9PiB7XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChmaWVsZC5maWVsZEZvcm1UeXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiVGV4dFwiOlxyXG4gICAgICAgICAgY2FzZSBcIkVtYWlsXCI6XHJcbiAgICAgICAgICBjYXNlIFwiVGV4dGFyZWFcIjpcclxuICAgICAgICAgICAgaWYgKGZvcm1bZmllbGQuZm9ybUtleV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGZvcm1bZmllbGQuZm9ybUtleV0gPSBcIlwiO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgXCJUYWdzXCI6XHJcbiAgICAgICAgICBjYXNlIFwiQ2hlY2tib3hcIjpcclxuICAgICAgICAgIGNhc2UgXCJNdWx0aVNlbGVjdFwiOlxyXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZm9ybVtmaWVsZC5mb3JtS2V5XSkpIHtcclxuICAgICAgICAgICAgICBmb3JtW2ZpZWxkLmZvcm1LZXldID0gW107XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBcIlN3aXRjaFwiOlxyXG4gICAgICAgICAgICBmb3JtW2ZpZWxkLmZvcm1LZXldID0gISFmb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBpZiAoZm9ybVtmaWVsZC5mb3JtS2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcblxyXG4gIGdldEZvcm1Qcm94eShmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICAvLyDnjrDlnKjkuI3mlK/mjIHltYzlpZcgZm9ybSDlsZ7mgKfvvIzlj6rlr7nmtYXlsYLov5vooYzlpITnkIZcclxuICAgIGNvbnN0IHByb3h5Rm9ybSA9IG5ldyBQcm94eShmb3JtLCB7XHJcbiAgICAgIHNldDogKHRhcmdldCwgcHJvcDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGFyZ2V0W3Byb3BdID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IGZpZWxkID0gdGhpcy5nZXRGaWVsZChwcm9wKTtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlID09PSBcIkRhdGVwaWNrZXJcIikge1xyXG4gICAgICAgICAgICB0aGlzLnN5bmNGb3JtVG9EYXRlRm9ybShmaWVsZCwgdmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm94eUZvcm0sIEZPUk1fUFJPWFlfVEFHLCB7XHJcbiAgICAgIHZhbHVlOiB0cnVlLFxyXG4gICAgICB3cml0YWJsZTogZmFsc2UsXHJcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gcHJveHlGb3JtO1xyXG4gIH1cclxuXHJcbiAgLy8g6KGo5Y2V5o+Q5Lqk5YmN5Lya6Kem5Y+R6L+Z5Liq5Ye95pWwXHJcbiAgdXBkYXRlRm9ybSh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV0gPSB2YWx1ZTtcclxuICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KHRoaXMuZm9ybSk7XHJcbiAgICB0aGlzLmZpZWxkQ2hhbmdlLmVtaXQoeyBmaWVsZCwgdmFsdWUgfSk7XHJcbiAgfVxyXG5cclxuICBmb3JtSXRlbVZhbGlkYXRvcihmaWVsZDogRmllbGRJdGVtLCBpc0F1dG8gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV07XHJcbiAgICBsZXQgaXNWYWxpZCA9IHRydWU7XHJcbiAgICBpZiAoZmllbGQucmVxdWlyZWQpIHtcclxuICAgICAgaXNWYWxpZCA9IEFycmF5LmlzQXJyYXkodmFsdWUpXHJcbiAgICAgICAgPyB2YWx1ZS5sZW5ndGggIT09IDBcclxuICAgICAgICA6ICFbbnVsbCwgdW5kZWZpbmVkLCBcIlwiXS5pbmNsdWRlcyh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5maWVsZEZvcm1UeXBlID09PSBcIkVtYWlsXCIgJiYgdmFsdWUpIHtcclxuICAgICAgaXNWYWxpZCA9IEVtYWlsUGF0dGVybi50ZXN0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1heGxlbmd0aCkge1xyXG4gICAgICBpc1ZhbGlkID0gU3RyaW5nKHZhbHVlKS5sZW5ndGggPD0gZmllbGQubWF4bGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWlubGVuZ3RoKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBTdHJpbmcodmFsdWUpLmxlbmd0aCA+PSBmaWVsZC5taW5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5tYXgpIHtcclxuICAgICAgaXNWYWxpZCA9IHZhbHVlIDw9IGZpZWxkLm1heDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1pbikge1xyXG4gICAgICBpc1ZhbGlkID0gdmFsdWUgPj0gZmllbGQubWluO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgdHlwZW9mIGZpZWxkLnZhbGlkYXRvciA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBmaWVsZC52YWxpZGF0b3IuY2FsbChudWxsLCB2YWx1ZSwgZmllbGQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0F1dG8pIHtcclxuICAgICAgdGhpcy5maWVsZFZhbGlkTWFwW2ZpZWxkLmZvcm1LZXldID0gaXNWYWxpZDtcclxuICAgIH1cclxuICAgIHJldHVybiBpc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHJlQ2hlY2tGb3JtSXNWYWxpZCgpIHtcclxuICAgIGxldCBmb3JtSXNWYWxpZCA9IHRydWU7XHJcbiAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgZm9ybUlzVmFsaWQgPSB0aGlzLmZvcm1JdGVtVmFsaWRhdG9yKGZpZWxkKSAmJiBmb3JtSXNWYWxpZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ybUlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgZm9ybUlzVmFsaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9ucy5ldmVyeSgoc2VjdGlvbikgPT5cclxuICAgICAgc2VjdGlvbi5maWVsZHMuZXZlcnkoKGZpZWxkKSA9PiB0aGlzLmZvcm1JdGVtVmFsaWRhdG9yKGZpZWxkLCB0cnVlKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZChmb3JtS2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZE1hcFtmb3JtS2V5XSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxsRnVuY3Rpb24oZm46IEZ1bmN0aW9uLCAuLi5hcmdzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihhcmdzWzFdIHx8IGFyZ3NbMF0pO1xyXG4gICAgaWYgKHR5cGVvZiBmbiA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgIGZuLmFwcGx5KG51bGwsIGFyZ3MpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCh2YWx1ZTogc3RyaW5nLCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbklucHV0LCB2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25Db21wb25lbnRDaGFuZ2UoZXZlbnQ6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgaWYgKCFldmVudC5pc0ludGVyYWN0ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGZpZWxkLmZpZWxkRm9ybVR5cGUgIT09IFwiRGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoZXZlbnQudmFsdWUsIGZpZWxkKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXCJjaGFuZ2VcIiwgZXZlbnQpO1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZSA/IG1vbWVudChldmVudC52YWx1ZSkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSA6IG51bGw7XHJcbiAgICB0aGlzLmRhdGVGb3JtW2ZpZWxkLmZvcm1LZXldID0gZXZlbnQudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSh2YWx1ZTogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUZvcm0odmFsdWUsIGZpZWxkKTtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uQ2hhbmdlLCB2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25EYXRlUGlja2VyQmx1cihldmVudDogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLm9uQmx1cihmaWVsZCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0ICRpbnB1dCA9IGV2ZW50Lm1vZGVsLmVsZW1lbnQucXVlcnlTZWxlY3RvcihcImlucHV0XCIpO1xyXG4gICAgICBpZiAoJGlucHV0ICYmICRpbnB1dC52YWx1ZSAmJiAhdGhpcy5kYXRlRm9ybVtmaWVsZC5mb3JtS2V5XSkge1xyXG4gICAgICAgIHRoaXMuZGF0ZVZhbGlkTWFwW2ZpZWxkLmZvcm1LZXldID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGVsZXRlIHRoaXMuZGF0ZVZhbGlkTWFwW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgICB9XHJcbiAgICB9LCA1MCk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uRm9jdXMsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkJsdXIsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uRmlsdGVyaW5nKGV2ZW50OiBGaWx0ZXJpbmdFdmVudEFyZ3MsIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFF1ZXJ5KCk7XHJcbiAgICBpZiAoZXZlbnQudGV4dCkge1xyXG4gICAgICBxdWVyeS53aGVyZSh0aGlzLm9wdGlvbkZpZWxkcy50ZXh0LCBcImNvbnRhaW5zXCIsIGV2ZW50LnRleHQsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQudXBkYXRlRGF0YSh0aGlzLmdldE9wdGlvbnMoZmllbGQpLCBxdWVyeSk7XHJcbiAgfVxyXG5cclxuICBvbkRyb3Bkb3duRGF0YUJvdW5kKGV2ZW50OiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWVsZFR5cGVNYXBbZmllbGQuZmllbGRGb3JtVHlwZV0uaW5kZXhPZihmaWVsZCk7XHJcbiAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmRyb3Bkb3ducy50b0FycmF5KClbaW5kZXhdO1xyXG4gICAgaWYgKGV2ZW50Lml0ZW1zLmxlbmd0aCA+IDAgJiYgaW5kZXggIT09IC0xICYmIGNvbXBvbmVudCkge1xyXG4gICAgICBjb21wb25lbnQudmFsdWUgPSB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25zKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMub3B0aW9uc01hcFtmaWVsZC5vcHRpb25LZXldKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWFwW2ZpZWxkLm9wdGlvbktleV07XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnNNYXBbZmllbGQuZm9ybUtleV0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNNYXBbZmllbGQuZm9ybUtleV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBnZXREaXNhYmxlZChmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtRGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodHlwZW9mIGZpZWxkLmRpc2FibGVkID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgcmV0dXJuIGZpZWxkLmRpc2FibGVkKCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGQuZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb25GaWVsZHMoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgaWYgKFtcIkRyb3Bkb3duXCIsIFwiQXV0b0NvbXBsZXRlXCJdLmluY2x1ZGVzKGZpZWxkLmZpZWxkRm9ybVR5cGUpKSB7XHJcbiAgICAgIHJldHVybiB7IC4uLnRoaXMub3B0aW9uRmllbGRzLCBncm91cEJ5OiBmaWVsZC5ncm91cEtleSB8fCBudWxsIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25GaWVsZHM7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKFwic2VjdGlvbkVsXCIpXHJcbiAgc2VjdGlvbkVsczogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PjtcclxuICBzY3JvbGxJbmRleCA9IDA7XHJcbiAgaXNDbGlja0FuY2hvciA9IGZhbHNlO1xyXG5cclxuICBvbkNsaWNrQW5jaG9yKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNlY3Rpb25JdGVtcyA9IHRoaXMuc2VjdGlvbkVscy50b0FycmF5KCk7XHJcbiAgICBzZWN0aW9uSXRlbXNbaW5kZXhdLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7XHJcbiAgICB0aGlzLnNjcm9sbEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmlzQ2xpY2tBbmNob3IgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZmluZFNjcm9sbFZpZXdFbChlbDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XHJcbiAgICBpZiAoZWwgPT09IGRvY3VtZW50LmJvZHkpIHtcclxuICAgICAgcmV0dXJuIGVsO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsLnNjcm9sbEhlaWdodCAmJiBlbC5zY3JvbGxIZWlnaHQgIT09IGVsLm9mZnNldEhlaWdodCkge1xyXG4gICAgICByZXR1cm4gZWw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5maW5kU2Nyb2xsVmlld0VsKGVsLnBhcmVudEVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgaW5pdEFuY2hvclNjcm9sbEhhbmRsZXIoKSB7XHJcbiAgICBjb25zdCBzY3JvbGxWaWV3RWwgPSB0aGlzLmZpbmRTY3JvbGxWaWV3RWwodGhpcy5yb290RWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSBzY3JvbGxWaWV3RWwuc2Nyb2xsSGVpZ2h0IC0gc2Nyb2xsVmlld0VsLm9mZnNldEhlaWdodDtcclxuICAgIGNvbnN0IHNlY3Rpb25WaWV3UmF0aW8gPSB0aGlzLnNlY3Rpb25FbHMudG9BcnJheSgpLm1hcCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCByYXRpbyA9XHJcbiAgICAgICAgc2VjdGlvbi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAvIHNjcm9sbFZpZXdFbC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgIHJldHVybiBzY3JvbGxIZWlnaHQgKiByYXRpbztcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc0NsaWNrQW5jaG9yKSB7XHJcbiAgICAgICAgdGhpcy5pc0NsaWNrQW5jaG9yID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNjcm9sbFRvcCA9XHJcbiAgICAgICAgc2Nyb2xsVmlld0VsLnNjcm9sbFRvcCA+IHNjcm9sbEhlaWdodFxyXG4gICAgICAgICAgPyBzY3JvbGxIZWlnaHRcclxuICAgICAgICAgIDogc2Nyb2xsVmlld0VsLnNjcm9sbFRvcDtcclxuICAgICAgbGV0IHJhZGlvU2Nyb2xsSGVpZ2h0ID0gMDtcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNlY3Rpb25WaWV3UmF0aW8ubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgcmFkaW9TY3JvbGxIZWlnaHQgKz0gc2VjdGlvblZpZXdSYXRpb1tpbmRleF07XHJcbiAgICAgICAgaWYgKHJhZGlvU2Nyb2xsSGVpZ2h0ID49IHNjcm9sbFRvcCkge1xyXG4gICAgICAgICAgdGhpcy5zY3JvbGxJbmRleCA9IGluZGV4O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHdoaWxlIChcclxuICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2Nyb2xsSW5kZXhdICYmXHJcbiAgICAgICAgIXRoaXMuc2VjdGlvbnNbdGhpcy5zY3JvbGxJbmRleF0udGl0bGVcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxJbmRleCsrO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfTtcclxuXHJcbiAgICBvblNjcm9sbCgpO1xyXG4gICAgc2Nyb2xsVmlld0VsLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgb25TY3JvbGwpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -665,8 +665,10 @@ var DrawerFormComponent = /** @class */ (function () {
|
|
|
665
665
|
function (event, field) {
|
|
666
666
|
/** @type {?} */
|
|
667
667
|
var index = this.fieldTypeMap[field.fieldFormType].indexOf(field);
|
|
668
|
-
|
|
669
|
-
|
|
668
|
+
/** @type {?} */
|
|
669
|
+
var component = this.dropdowns.toArray()[index];
|
|
670
|
+
if (event.items.length > 0 && index !== -1 && component) {
|
|
671
|
+
component.value = this.form[field.formKey];
|
|
670
672
|
}
|
|
671
673
|
};
|
|
672
674
|
/**
|
|
@@ -903,4 +905,4 @@ if (false) {
|
|
|
903
905
|
*/
|
|
904
906
|
DrawerFormComponent.prototype.ref;
|
|
905
907
|
}
|
|
906
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFDTCxZQUFZLEVBRVosaUJBQWlCLEdBRWxCLE1BQU0sYUFBYSxDQUFDOztJQUVmLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUUvQztJQXVERSw2QkFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRDNCLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBa0IsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBMEIsRUFBRSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFLaEIsaUJBQVksR0FBRztZQUNwQyxJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLFVBQVU7WUFDcEIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ3lCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUU1QixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRXpCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElB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LElBQUksRUFBRSxnQkFBZ0IsRUFBRTtvQ0FFbEUsWUFBWSxTQUFDLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzRCQUdqRSxZQUFZLFNBQUMsVUFBVTs2QkErV3ZCLFlBQVksU0FBQyxXQUFXOztJQTREM0IsMEJBQUM7Q0FBQSxBQXBkRCxJQW9kQztTQS9jWSxtQkFBbUI7OztJQUM5QixvQ0FBK0M7O0lBQy9DLHdDQUFpRDs7SUFDakQseUNBQTREOztJQUM1RCwyQ0FBd0M7O0lBRXhDLHlDQUF1Qzs7SUFDdkMsNkNBQTBEOztJQUMxRCxvREFDd0Q7O0lBRXhELDJDQUtFOztJQUNGLCtDQUFpRDs7SUFDakQsMkNBQTRDOztJQUM1Qyx5Q0FBK0M7O0lBRS9DLHlDQUEyRTs7SUFDM0UsMENBR0s7O0lBRUwscUNBQ21DOzs7OztJQUduQyx5Q0FDZ0Q7Ozs7O0lBQ2hELGdEQUN1RDs7SUFFdkQsd0NBQzRDOztJQUU1Qyx1Q0FBNkI7O0lBQzdCLDJDQUE0RTs7SUFDNUUsMkNBQTZDOztJQUU3QyxtQ0FBK0I7O0lBQy9CLDRDQUE0Qzs7SUFHNUMsdUNBQW9DOztJQUNwQywyQ0FBMkM7O0lBbVczQyx5Q0FDa0Q7O0lBQ2xELDBDQUFnQjs7SUFDaEIsNENBQXNCOzs7OztJQXBXVixrQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIERyb3BEb3duTGlzdENvbXBvbmVudCxcclxuICBGaWx0ZXJpbmdFdmVudEFyZ3MsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWRyb3Bkb3duc1wiO1xyXG5pbXBvcnQgeyBRdWVyeSB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItZGF0YVwiO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcclxuaW1wb3J0IHtcclxuICBFbWFpbFBhdHRlcm4sXHJcbiAgRmllbGRJdGVtLFxyXG4gIGZpbHRlclNob3dTZWN0aW9uLFxyXG4gIFNlY3Rpb25JdGVtLFxyXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xyXG5cclxuY29uc3QgRk9STV9QUk9YWV9UQUcgPSBTeW1ib2wuZm9yKFwiZm9ybS1wcm94eVwiKTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLWRyYXdlci1mb3JtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kcmF3ZXItZm9ybS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyYXdlckZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KFwiZm9ybVwiKSBfZm9ybTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gIEBJbnB1dChcInNlY3Rpb25zXCIpIF9zZWN0aW9uczogU2VjdGlvbkl0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dChcIm9wdGlvbnNNYXBcIikgb3B0aW9uc01hcDogUmVjb3JkPHN0cmluZywgYW55W10+ID0ge307XHJcbiAgQElucHV0KFwiZGlzYWJsZWRcIikgZm9ybURpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dChcInNob3dBbmNob3JcIikgc2hvd0FuY2hvciA9IHRydWU7XHJcbiAgQElucHV0KFwiY3VzdG9tVGVtcGxhdGVcIikgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KFwiY3VzdG9tU2VjdGlvblRlbXBsYXRlXCIpXHJcbiAgY3VzdG9tU2VjdGlvblRlbXBsYXRlOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PjtcclxuXHJcbiAgQElucHV0KFwib3B0aW9uRmllbGRzXCIpIG9wdGlvbkZpZWxkcyA9IHtcclxuICAgIHRleHQ6IFwidGV4dFwiLFxyXG4gICAgdmFsdWU6IFwiY29kZVwiLFxyXG4gICAgZGlzYWJsZWQ6IFwiZGlzYWJsZWRcIixcclxuICAgIGdyb3VwQnk6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoXCJzaG93RmlsdGVyTnVtYmVyXCIpIHNob3dGaWx0ZXJOdW1iZXIgPSAxMDtcclxuICBASW5wdXQoXCJudW1iZXJGb3JtYXRcIikgbnVtYmVyRm9ybWF0OiBzdHJpbmc7XHJcbiAgQElucHV0KFwiZGF0ZUZvcm1hdFwiKSBkYXRlRm9ybWF0ID0gXCJ5eXl5LU1NLWRkXCI7XHJcblxyXG4gIEBPdXRwdXQoXCJmb3JtQ2hhbmdlXCIpIGZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XHJcbiAgQE91dHB1dChcImZpZWxkQ2hhbmdlXCIpIGZpZWxkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmaWVsZDogRmllbGRJdGVtO1xyXG4gICAgdmFsdWU6IGFueTtcclxuICB9PigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZHJhd2VyRm9ybUVsXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHJvb3RFbDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIC8vIOiHquWumuS5iSBmaWVsZCDmqKHmnb/lkozoh6rlrprkuYkgc2VjdGlvbiDmqKHmnb/nmoTlrrnlmahcclxuICBAVmlld0NoaWxkcmVuKFwiY3VzdG9tVGVtcGxhdGVDb250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgcHJpdmF0ZSBjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcbiAgQFZpZXdDaGlsZHJlbihcImN1c3RvbVNlY3Rpb25Db250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcbiAgcHJpdmF0ZSBzZWN0aW9uQ29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xyXG5cclxuICBAVmlld0NoaWxkcmVuKFwiZHJvcGRvd25cIilcclxuICBkcm9wZG93bnM6IFF1ZXJ5TGlzdDxEcm9wRG93bkxpc3RDb21wb25lbnQ+O1xyXG5cclxuICBzZWN0aW9uczogU2VjdGlvbkl0ZW1bXSA9IFtdO1xyXG4gIGZpZWxkVHlwZU1hcDogUGFydGlhbDxSZWNvcmQ8RmllbGRJdGVtW1wiZmllbGRGb3JtVHlwZVwiXSwgRmllbGRJdGVtW10+PiA9IHt9O1xyXG4gIGZvcm1GaWVsZE1hcDogUmVjb3JkPHN0cmluZywgRmllbGRJdGVtPiA9IHt9O1xyXG5cclxuICBmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgZmllbGRWYWxpZE1hcDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuXHJcbiAgLy8g5a2Y5YKoIGRhdGVwaWNrZXIg55qE5YC8XHJcbiAgZGF0ZUZvcm06IFJlY29yZDxzdHJpbmcsIERhdGU+ID0ge307XHJcbiAgZGF0ZVZhbGlkTWFwOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuX3NlY3Rpb25zKSB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSBmaWx0ZXJTaG93U2VjdGlvbihjaGFuZ2VzLl9zZWN0aW9ucy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICB0aGlzLmZvcm1hdEZpZWxkTWFwKCk7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybSh7IC4uLnRoaXMuZm9ybSwgLi4udGhpcy5fZm9ybSB9KTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLl9mb3JtKSB7XHJcbiAgICAgIGlmICghY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWVbRk9STV9QUk9YWV9UQUddKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtKGNoYW5nZXMuX2Zvcm0uY3VycmVudFZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm0gPSBjaGFuZ2VzLl9mb3JtLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIWNoYW5nZXMuX2Zvcm0uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICB0aGlzLmNoZWNrRm9ybUNoYW5nZShcclxuICAgICAgICAgIGNoYW5nZXMuX2Zvcm0ucHJldmlvdXNWYWx1ZSxcclxuICAgICAgICAgIGNoYW5nZXMuX2Zvcm0uY3VycmVudFZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jdXN0b21UZW1wbGF0ZVJlbmRlcih0aGlzLmNvbnRhaW5lcnMpO1xyXG4gICAgdGhpcy5jdXN0b21TZWN0aW9uUmVuZGVyKHRoaXMuc2VjdGlvbkNvbnRhaW5lcnMpO1xyXG4gICAgdGhpcy5jb250YWluZXJzLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXJzID0gY29udGFpbmVycztcclxuICAgICAgICB0aGlzLmN1c3RvbVRlbXBsYXRlUmVuZGVyKGNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWN0aW9uQ29udGFpbmVycy5jaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvbkNvbnRhaW5lcnMgPSBjb250YWluZXJzO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tU2VjdGlvblJlbmRlcihjb250YWluZXJzKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuZHJvcGRvd25zLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoZHJvcGRvd25zOiBRdWVyeUxpc3Q8RHJvcERvd25MaXN0Q29tcG9uZW50PikgPT4ge1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd25zID0gZHJvcGRvd25zO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuc2hvd0FuY2hvcikge1xyXG4gICAgICB0aGlzLmluaXRBbmNob3JTY3JvbGxIYW5kbGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjdXN0b21UZW1wbGF0ZVJlbmRlcihjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVRlbXBsYXRlICYmIGNvbnRhaW5lcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBjdXN0b21GaWVsZHMgPSB0aGlzLmZpZWxkVHlwZU1hcC5DdXN0b20gfHwgW107XHJcbiAgICAgIGNvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5jdXN0b21UZW1wbGF0ZSwge1xyXG4gICAgICAgICAgJGltcGxpY2l0OiBjdXN0b21GaWVsZHNbaW5kZXhdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbVNlY3Rpb25SZW5kZXIoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSB7XHJcbiAgICBpZiAodGhpcy5jdXN0b21TZWN0aW9uVGVtcGxhdGUgJiYgY29udGFpbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbVNlY3Rpb25zID0gdGhpcy5zZWN0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgKHNlY3Rpb24pID0+IHNlY3Rpb24uY3VzdG9tS2V5XHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnRhaW5lcnMuZm9yRWFjaCgoY29udGFpbmVyLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGNvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGNvbnN0IGN1c3RvbUtleSA9IGN1c3RvbVNlY3Rpb25zW2luZGV4XS5jdXN0b21LZXk7XHJcbiAgICAgICAgY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmN1c3RvbVNlY3Rpb25UZW1wbGF0ZVtjdXN0b21LZXldLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IGN1c3RvbVNlY3Rpb25zW2luZGV4XSxcclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtYXRGaWVsZE1hcCgpIHtcclxuICAgIHRoaXMuZmllbGRUeXBlTWFwID0ge307XHJcbiAgICB0aGlzLmZvcm1GaWVsZE1hcCA9IHt9O1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXSkge1xyXG4gICAgICAgICAgdGhpcy5maWVsZFR5cGVNYXBbZmllbGQuZmllbGRGb3JtVHlwZV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWVsZFR5cGVNYXBbZmllbGQuZmllbGRGb3JtVHlwZV0ucHVzaChmaWVsZCk7XHJcbiAgICAgICAgdGhpcy5mb3JtRmllbGRNYXBbZmllbGQuZm9ybUtleV0gPSBmaWVsZDtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZvcm0oZm9ybTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5nZXRGb3JtUHJveHkodGhpcy5mb3JtYXRGb3JtKHRoaXMuc2VjdGlvbnMsIGZvcm0pKTtcclxuICAgIHRoaXMuc3luY0Zvcm1GaWVsZCgpO1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtKTtcclxuICB9XHJcblxyXG4gIGVxdWFsKHZhbHVlOiBhbnksIGNvbXBhcmVWYWx1ZTogYW55KSB7XHJcbiAgICAvLyDlj6rlr7nmlbDnu4Tov5vooYznibnmrorliKTmlq1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBBcnJheS5pc0FycmF5KGNvbXBhcmVWYWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB2YWx1ZS5sZW5ndGggPT09IGNvbXBhcmVWYWx1ZS5sZW5ndGggJiZcclxuICAgICAgICB2YWx1ZS5ldmVyeSgoaSwgaW5kZXgpID0+IGkgPT09IGNvbXBhcmVWYWx1ZVtpbmRleF0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gT2JqZWN0LmlzKHZhbHVlLCBjb21wYXJlVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtQ2hhbmdlKHByZXZpb3VzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBjdXJyZW50OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBPYmplY3QuZW50cmllcyhjdXJyZW50KS5mb3JFYWNoKChba2V5LCBjdXJyZW50VmFsdWVdKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5lcXVhbChwcmV2aW91c1trZXldLCBjdXJyZW50VmFsdWUpKSB7XHJcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkKGtleSk7XHJcbiAgICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1JdGVtVmFsaWRhdG9yKGZpZWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc3luY0Zvcm1Ub0RhdGVGb3JtKGZpZWxkOiBGaWVsZEl0ZW0sIHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbW9tZW50KHZhbHVlKTtcclxuICAgICAgdGhpcy5kYXRlRm9ybVtmaWVsZC5mb3JtS2V5XSA9IGRhdGUuaXNWYWxpZCgpID8gZGF0ZS50b0RhdGUoKSA6IG51bGw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVGb3JtW2ZpZWxkLmZvcm1LZXldID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN5bmNGb3JtRmllbGQoKSB7XHJcbiAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb246IFNlY3Rpb25JdGVtKSA9PiB7XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChmaWVsZC5maWVsZEZvcm1UeXBlKSB7XHJcbiAgICAgICAgICBjYXNlIFwiRGF0ZXBpY2tlclwiOlxyXG4gICAgICAgICAgICB0aGlzLnN5bmNGb3JtVG9EYXRlRm9ybShmaWVsZCwgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0Rm9ybShzZWN0aW9uczogU2VjdGlvbkl0ZW1bXSwgZm9ybTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbjogU2VjdGlvbkl0ZW0pID0+IHtcclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkRm9ybVR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgXCJUZXh0XCI6XHJcbiAgICAgICAgICBjYXNlIFwiRW1haWxcIjpcclxuICAgICAgICAgIGNhc2UgXCJUZXh0YXJlYVwiOlxyXG4gICAgICAgICAgICBpZiAoZm9ybVtmaWVsZC5mb3JtS2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9IFwiXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBcIlRhZ3NcIjpcclxuICAgICAgICAgIGNhc2UgXCJDaGVja2JveFwiOlxyXG4gICAgICAgICAgY2FzZSBcIk11bHRpU2VsZWN0XCI6XHJcbiAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShmb3JtW2ZpZWxkLmZvcm1LZXldKSkge1xyXG4gICAgICAgICAgICAgIGZvcm1bZmllbGQuZm9ybUtleV0gPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFwiU3dpdGNoXCI6XHJcbiAgICAgICAgICAgIGZvcm1bZmllbGQuZm9ybUtleV0gPSAhIWZvcm1bZmllbGQuZm9ybUtleV07XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGlmIChmb3JtW2ZpZWxkLmZvcm1LZXldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICBmb3JtW2ZpZWxkLmZvcm1LZXldID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVByb3h5KGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIC8vIOeOsOWcqOS4jeaUr+aMgeW1jOWllyBmb3JtIOWxnuaAp++8jOWPquWvuea1heWxgui/m+ihjOWkhOeQhlxyXG4gICAgY29uc3QgcHJveHlGb3JtID0gbmV3IFByb3h5KGZvcm0sIHtcclxuICAgICAgc2V0OiAodGFyZ2V0LCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpID0+IHtcclxuICAgICAgICB0YXJnZXRbcHJvcF0gPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkKHByb3ApO1xyXG4gICAgICAgIGlmIChmaWVsZCkge1xyXG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkRm9ybVR5cGUgPT09IFwiRGF0ZXBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3luY0Zvcm1Ub0RhdGVGb3JtKGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmZvcm1JdGVtVmFsaWRhdG9yKGZpZWxkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3h5Rm9ybSwgRk9STV9QUk9YWV9UQUcsIHtcclxuICAgICAgdmFsdWU6IHRydWUsXHJcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcclxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXHJcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm94eUZvcm07XHJcbiAgfVxyXG5cclxuICAvLyDooajljZXmj5DkuqTliY3kvJrop6blj5Hov5nkuKrlh73mlbBcclxuICB1cGRhdGVGb3JtKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XSA9IHZhbHVlO1xyXG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtKTtcclxuICAgIHRoaXMuZmllbGRDaGFuZ2UuZW1pdCh7IGZpZWxkLCB2YWx1ZSB9KTtcclxuICB9XHJcblxyXG4gIGZvcm1JdGVtVmFsaWRhdG9yKGZpZWxkOiBGaWVsZEl0ZW0sIGlzQXV0byA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybVtmaWVsZC5mb3JtS2V5XTtcclxuICAgIGxldCBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgIGlmIChmaWVsZC5yZXF1aXJlZCkge1xyXG4gICAgICBpc1ZhbGlkID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcclxuICAgICAgICA/IHZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgICAgIDogIVtudWxsLCB1bmRlZmluZWQsIFwiXCJdLmluY2x1ZGVzKHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLmZpZWxkRm9ybVR5cGUgPT09IFwiRW1haWxcIiAmJiB2YWx1ZSkge1xyXG4gICAgICBpc1ZhbGlkID0gRW1haWxQYXR0ZXJuLnRlc3QodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWF4bGVuZ3RoKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBTdHJpbmcodmFsdWUpLmxlbmd0aCA8PSBmaWVsZC5tYXhsZW5ndGg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5taW5sZW5ndGgpIHtcclxuICAgICAgaXNWYWxpZCA9IFN0cmluZyh2YWx1ZSkubGVuZ3RoID49IGZpZWxkLm1pbmxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1heCkge1xyXG4gICAgICBpc1ZhbGlkID0gdmFsdWUgPD0gZmllbGQubWF4O1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWluKSB7XHJcbiAgICAgIGlzVmFsaWQgPSB2YWx1ZSA+PSBmaWVsZC5taW47XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiB0eXBlb2YgZmllbGQudmFsaWRhdG9yID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgaXNWYWxpZCA9IGZpZWxkLnZhbGlkYXRvci5jYWxsKG51bGwsIHZhbHVlLCBmaWVsZCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzQXV0bykge1xyXG4gICAgICB0aGlzLmZpZWxkVmFsaWRNYXBbZmllbGQuZm9ybUtleV0gPSBpc1ZhbGlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcmVDaGVja0Zvcm1Jc1ZhbGlkKCkge1xyXG4gICAgbGV0IGZvcm1Jc1ZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbikgPT5cclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBmb3JtSXNWYWxpZCA9IHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpICYmIGZvcm1Jc1ZhbGlkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHJldHVybiBmb3JtSXNWYWxpZDtcclxuICB9XHJcblxyXG4gIGdldCBmb3JtSXNWYWxpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNlY3Rpb25zLmV2ZXJ5KChzZWN0aW9uKSA9PlxyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5ldmVyeSgoZmllbGQpID0+IHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQsIHRydWUpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpZWxkKGZvcm1LZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybUZpZWxkTWFwW2Zvcm1LZXldIHx8IG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGxGdW5jdGlvbihmbjogRnVuY3Rpb24sIC4uLmFyZ3M6IGFueVtdKSB7XHJcbiAgICB0aGlzLmZvcm1JdGVtVmFsaWRhdG9yKGFyZ3NbMV0gfHwgYXJnc1swXSk7XHJcbiAgICBpZiAodHlwZW9mIGZuID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgZm4uYXBwbHkobnVsbCwgYXJncyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KHZhbHVlOiBzdHJpbmcsIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uSW5wdXQsIHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkNvbXBvbmVudENoYW5nZShldmVudDogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAoIWV2ZW50LmlzSW50ZXJhY3RlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoZmllbGQuZmllbGRGb3JtVHlwZSAhPT0gXCJEYXRlcGlja2VyXCIpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZShldmVudC52YWx1ZSwgZmllbGQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZVwiLCBldmVudCk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlID8gbW9tZW50KGV2ZW50LnZhbHVlKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpIDogbnVsbDtcclxuICAgIHRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0gPSBldmVudC52YWx1ZTtcclxuICAgIHRoaXMub25DaGFuZ2UodmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKHZhbHVlOiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMudXBkYXRlRm9ybSh2YWx1ZSwgZmllbGQpO1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25DaGFuZ2UsIHZhbHVlLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkRhdGVQaWNrZXJCbHVyKGV2ZW50OiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMub25CbHVyKGZpZWxkKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgJGlucHV0ID0gZXZlbnQubW9kZWwuZWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRcIik7XHJcbiAgICAgIGlmICgkaW5wdXQgJiYgJGlucHV0LnZhbHVlICYmICF0aGlzLmRhdGVGb3JtW2ZpZWxkLmZvcm1LZXldKSB7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsaWRNYXBbZmllbGQuZm9ybUtleV0gPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkZWxldGUgdGhpcy5kYXRlVmFsaWRNYXBbZmllbGQuZm9ybUtleV07XHJcbiAgICAgIH1cclxuICAgIH0sIDUwKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25Gb2N1cywgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIHRoaXMuY2FsbEZ1bmN0aW9uKGZpZWxkLm9uQmx1ciwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXJpbmcoZXZlbnQ6IEZpbHRlcmluZ0V2ZW50QXJncywgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnkoKTtcclxuICAgIGlmIChldmVudC50ZXh0KSB7XHJcbiAgICAgIHF1ZXJ5LndoZXJlKHRoaXMub3B0aW9uRmllbGRzLnRleHQsIFwiY29udGFpbnNcIiwgZXZlbnQudGV4dCwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBldmVudC51cGRhdGVEYXRhKHRoaXMuZ2V0T3B0aW9ucyhmaWVsZCksIHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIG9uRHJvcGRvd25EYXRhQm91bmQoZXZlbnQ6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXS5pbmRleE9mKGZpZWxkKTtcclxuICAgIGlmIChldmVudC5pdGVtcy5sZW5ndGggPiAwICYmIGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3ducy50b0FycmF5KClbaW5kZXhdLnZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9ucyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnNNYXBbZmllbGQub3B0aW9uS2V5XSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc01hcFtmaWVsZC5vcHRpb25LZXldO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zTWFwW2ZpZWxkLmZvcm1LZXldKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWFwW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlzYWJsZWQoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgaWYgKHRoaXMuZm9ybURpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBmaWVsZC5kaXNhYmxlZCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZC5kaXNhYmxlZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9uRmllbGRzKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChbXCJEcm9wZG93blwiLCBcIkF1dG9Db21wbGV0ZVwiXS5pbmNsdWRlcyhmaWVsZC5maWVsZEZvcm1UeXBlKSkge1xyXG4gICAgICByZXR1cm4geyAuLi50aGlzLm9wdGlvbkZpZWxkcywgZ3JvdXBCeTogZmllbGQuZ3JvdXBLZXkgfHwgbnVsbCB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcInNlY3Rpb25FbFwiKVxyXG4gIHNlY3Rpb25FbHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj47XHJcbiAgc2Nyb2xsSW5kZXggPSAwO1xyXG4gIGlzQ2xpY2tBbmNob3IgPSBmYWxzZTtcclxuXHJcbiAgb25DbGlja0FuY2hvcihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBzZWN0aW9uSXRlbXMgPSB0aGlzLnNlY3Rpb25FbHMudG9BcnJheSgpO1xyXG4gICAgc2VjdGlvbkl0ZW1zW2luZGV4XS5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHRydWUpO1xyXG4gICAgdGhpcy5zY3JvbGxJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5pc0NsaWNrQW5jaG9yID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZpbmRTY3JvbGxWaWV3RWwoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xyXG4gICAgaWYgKGVsID09PSBkb2N1bWVudC5ib2R5KSB7XHJcbiAgICAgIHJldHVybiBlbDtcclxuICAgIH1cclxuICAgIGlmIChlbC5zY3JvbGxIZWlnaHQgJiYgZWwuc2Nyb2xsSGVpZ2h0ICE9PSBlbC5vZmZzZXRIZWlnaHQpIHtcclxuICAgICAgcmV0dXJuIGVsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmluZFNjcm9sbFZpZXdFbChlbC5wYXJlbnRFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGluaXRBbmNob3JTY3JvbGxIYW5kbGVyKCkge1xyXG4gICAgY29uc3Qgc2Nyb2xsVmlld0VsID0gdGhpcy5maW5kU2Nyb2xsVmlld0VsKHRoaXMucm9vdEVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gc2Nyb2xsVmlld0VsLnNjcm9sbEhlaWdodCAtIHNjcm9sbFZpZXdFbC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBjb25zdCBzZWN0aW9uVmlld1JhdGlvID0gdGhpcy5zZWN0aW9uRWxzLnRvQXJyYXkoKS5tYXAoKHNlY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgcmF0aW8gPVxyXG4gICAgICAgIHNlY3Rpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLyBzY3JvbGxWaWV3RWwuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICByZXR1cm4gc2Nyb2xsSGVpZ2h0ICogcmF0aW87XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNDbGlja0FuY2hvcikge1xyXG4gICAgICAgIHRoaXMuaXNDbGlja0FuY2hvciA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzY3JvbGxUb3AgPVxyXG4gICAgICAgIHNjcm9sbFZpZXdFbC5zY3JvbGxUb3AgPiBzY3JvbGxIZWlnaHRcclxuICAgICAgICAgID8gc2Nyb2xsSGVpZ2h0XHJcbiAgICAgICAgICA6IHNjcm9sbFZpZXdFbC5zY3JvbGxUb3A7XHJcbiAgICAgIGxldCByYWRpb1Njcm9sbEhlaWdodCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzZWN0aW9uVmlld1JhdGlvLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHJhZGlvU2Nyb2xsSGVpZ2h0ICs9IHNlY3Rpb25WaWV3UmF0aW9baW5kZXhdO1xyXG4gICAgICAgIGlmIChyYWRpb1Njcm9sbEhlaWdodCA+PSBzY3JvbGxUb3ApIHtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsSW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uc1t0aGlzLnNjcm9sbEluZGV4XSAmJlxyXG4gICAgICAgICF0aGlzLnNlY3Rpb25zW3RoaXMuc2Nyb2xsSW5kZXhdLnRpdGxlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsSW5kZXgrKztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH07XHJcblxyXG4gICAgb25TY3JvbGwoKTtcclxuICAgIHNjcm9sbFZpZXdFbC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsKTtcclxuICB9XHJcbn1cclxuIl19
|
|
908
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vcmFpc2UtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9mb3JtL2RyYXdlci1mb3JtL2RyYXdlci1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUVULFdBQVcsRUFDWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFDTCxZQUFZLEVBRVosaUJBQWlCLEdBRWxCLE1BQU0sYUFBYSxDQUFDOztJQUVmLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztBQUUvQztJQXVERSw2QkFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRDNCLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBQzVCLGNBQVMsR0FBa0IsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBMEIsRUFBRSxDQUFDO1FBQ3pDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFLaEIsaUJBQVksR0FBRztZQUNwQyxJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxNQUFNO1lBQ2IsUUFBUSxFQUFFLFVBQVU7WUFDcEIsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ3lCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUU1QixlQUFVLEdBQUcsWUFBWSxDQUFDO1FBRXpCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNwRCxnQkFBVyxHQUFHLElB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QkFJM0MsWUFBWSxTQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO29DQUVsRSxZQUFZLFNBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7NEJBR2pFLFlBQVksU0FBQyxVQUFVOzZCQWdYdkIsWUFBWSxTQUFDLFdBQVc7O0lBNEQzQiwwQkFBQztDQUFBLEFBcmRELElBcWRDO1NBaGRZLG1CQUFtQjs7O0lBQzlCLG9DQUErQzs7SUFDL0Msd0NBQWlEOztJQUNqRCx5Q0FBNEQ7O0lBQzVELDJDQUF3Qzs7SUFFeEMseUNBQXVDOztJQUN2Qyw2Q0FBMEQ7O0lBQzFELG9EQUN3RDs7SUFFeEQsMkNBS0U7O0lBQ0YsK0NBQWlEOztJQUNqRCwyQ0FBNEM7O0lBQzVDLHlDQUErQzs7SUFFL0MseUNBQTJFOztJQUMzRSwwQ0FHSzs7SUFFTCxxQ0FDbUM7Ozs7O0lBR25DLHlDQUNnRDs7Ozs7SUFDaEQsZ0RBQ3VEOztJQUV2RCx3Q0FDNEM7O0lBRTVDLHVDQUE2Qjs7SUFDN0IsMkNBQTRFOztJQUM1RSwyQ0FBNkM7O0lBRTdDLG1DQUErQjs7SUFDL0IsNENBQTRDOztJQUc1Qyx1Q0FBb0M7O0lBQ3BDLDJDQUEyQzs7SUFvVzNDLHlDQUNrRDs7SUFDbEQsMENBQWdCOztJQUNoQiw0Q0FBc0I7Ozs7O0lBcldWLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7XHJcbiAgRHJvcERvd25MaXN0Q29tcG9uZW50LFxyXG4gIEZpbHRlcmluZ0V2ZW50QXJncyxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZHJvcGRvd25zXCI7XHJcbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1kYXRhXCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge1xyXG4gIEVtYWlsUGF0dGVybixcclxuICBGaWVsZEl0ZW0sXHJcbiAgZmlsdGVyU2hvd1NlY3Rpb24sXHJcbiAgU2VjdGlvbkl0ZW0sXHJcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XHJcblxyXG5jb25zdCBGT1JNX1BST1hZX1RBRyA9IFN5bWJvbC5mb3IoXCJmb3JtLXByb3h5XCIpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtZHJhd2VyLWZvcm1cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RyYXdlci1mb3JtLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2RyYXdlci1mb3JtLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoXCJmb3JtXCIpIF9mb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgQElucHV0KFwic2VjdGlvbnNcIikgX3NlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgQElucHV0KFwib3B0aW9uc01hcFwiKSBvcHRpb25zTWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuICBASW5wdXQoXCJkaXNhYmxlZFwiKSBmb3JtRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KFwic2hvd0FuY2hvclwiKSBzaG93QW5jaG9yID0gdHJ1ZTtcclxuICBASW5wdXQoXCJjdXN0b21UZW1wbGF0ZVwiKSBjdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoXCJjdXN0b21TZWN0aW9uVGVtcGxhdGVcIilcclxuICBjdXN0b21TZWN0aW9uVGVtcGxhdGU6IFJlY29yZDxzdHJpbmcsIFRlbXBsYXRlUmVmPGFueT4+O1xyXG5cclxuICBASW5wdXQoXCJvcHRpb25GaWVsZHNcIikgb3B0aW9uRmllbGRzID0ge1xyXG4gICAgdGV4dDogXCJ0ZXh0XCIsXHJcbiAgICB2YWx1ZTogXCJjb2RlXCIsXHJcbiAgICBkaXNhYmxlZDogXCJkaXNhYmxlZFwiLFxyXG4gICAgZ3JvdXBCeTogbnVsbCxcclxuICB9O1xyXG4gIEBJbnB1dChcInNob3dGaWx0ZXJOdW1iZXJcIikgc2hvd0ZpbHRlck51bWJlciA9IDEwO1xyXG4gIEBJbnB1dChcIm51bWJlckZvcm1hdFwiKSBudW1iZXJGb3JtYXQ6IHN0cmluZztcclxuICBASW5wdXQoXCJkYXRlRm9ybWF0XCIpIGRhdGVGb3JtYXQgPSBcInl5eXktTU0tZGRcIjtcclxuXHJcbiAgQE91dHB1dChcImZvcm1DaGFuZ2VcIikgZm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj4oKTtcclxuICBAT3V0cHV0KFwiZmllbGRDaGFuZ2VcIikgZmllbGRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGZpZWxkOiBGaWVsZEl0ZW07XHJcbiAgICB2YWx1ZTogYW55O1xyXG4gIH0+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcmF3ZXJGb3JtRWxcIiwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcm9vdEVsOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgLy8g6Ieq5a6a5LmJIGZpZWxkIOaooeadv+WSjOiHquWumuS5iSBzZWN0aW9uIOaooeadv+eahOWuueWZqFxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjdXN0b21UZW1wbGF0ZUNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPjtcclxuICBAVmlld0NoaWxkcmVuKFwiY3VzdG9tU2VjdGlvbkNvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcclxuICBwcml2YXRlIHNlY3Rpb25Db250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJkcm9wZG93blwiKVxyXG4gIGRyb3Bkb3duczogUXVlcnlMaXN0PERyb3BEb3duTGlzdENvbXBvbmVudD47XHJcblxyXG4gIHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdID0gW107XHJcbiAgZmllbGRUeXBlTWFwOiBQYXJ0aWFsPFJlY29yZDxGaWVsZEl0ZW1bXCJmaWVsZEZvcm1UeXBlXCJdLCBGaWVsZEl0ZW1bXT4+ID0ge307XHJcbiAgZm9ybUZpZWxkTWFwOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZEl0ZW0+ID0ge307XHJcblxyXG4gIGZvcm06IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICBmaWVsZFZhbGlkTWFwOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICAvLyDlrZjlgqggZGF0ZXBpY2tlciDnmoTlgLxcclxuICBkYXRlRm9ybTogUmVjb3JkPHN0cmluZywgRGF0ZT4gPSB7fTtcclxuICBkYXRlVmFsaWRNYXA6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkluaXQoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5fc2VjdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IGZpbHRlclNob3dTZWN0aW9uKGNoYW5nZXMuX3NlY3Rpb25zLmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgIHRoaXMuZm9ybWF0RmllbGRNYXAoKTtcclxuICAgICAgdGhpcy5zZXRGb3JtKHsgLi4udGhpcy5mb3JtLCAuLi50aGlzLl9mb3JtIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuX2Zvcm0pIHtcclxuICAgICAgaWYgKCFjaGFuZ2VzLl9mb3JtLmN1cnJlbnRWYWx1ZVtGT1JNX1BST1hZX1RBR10pIHtcclxuICAgICAgICB0aGlzLnNldEZvcm0oY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IGNoYW5nZXMuX2Zvcm0uY3VycmVudFZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghY2hhbmdlcy5fZm9ybS5maXJzdENoYW5nZSkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tGb3JtQ2hhbmdlKFxyXG4gICAgICAgICAgY2hhbmdlcy5fZm9ybS5wcmV2aW91c1ZhbHVlLFxyXG4gICAgICAgICAgY2hhbmdlcy5fZm9ybS5jdXJyZW50VmFsdWVcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmN1c3RvbVRlbXBsYXRlUmVuZGVyKHRoaXMuY29udGFpbmVycyk7XHJcbiAgICB0aGlzLmN1c3RvbVNlY3Rpb25SZW5kZXIodGhpcy5zZWN0aW9uQ29udGFpbmVycyk7XHJcbiAgICB0aGlzLmNvbnRhaW5lcnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lcnMgPSBjb250YWluZXJzO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tVGVtcGxhdGVSZW5kZXIoY29udGFpbmVycyk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnNlY3Rpb25Db250YWluZXJzLmNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAoY29udGFpbmVyczogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWN0aW9uQ29udGFpbmVycyA9IGNvbnRhaW5lcnM7XHJcbiAgICAgICAgdGhpcy5jdXN0b21TZWN0aW9uUmVuZGVyKGNvbnRhaW5lcnMpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5kcm9wZG93bnMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChkcm9wZG93bnM6IFF1ZXJ5TGlzdDxEcm9wRG93bkxpc3RDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kcm9wZG93bnMgPSBkcm9wZG93bnM7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5zaG93QW5jaG9yKSB7XHJcbiAgICAgIHRoaXMuaW5pdEFuY2hvclNjcm9sbEhhbmRsZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGN1c3RvbVRlbXBsYXRlUmVuZGVyKGNvbnRhaW5lcnM6IFF1ZXJ5TGlzdDxWaWV3Q29udGFpbmVyUmVmPikge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tVGVtcGxhdGUgJiYgY29udGFpbmVycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbUZpZWxkcyA9IHRoaXMuZmllbGRUeXBlTWFwLkN1c3RvbSB8fCBbXTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmN1c3RvbVRlbXBsYXRlLCB7XHJcbiAgICAgICAgICAkaW1wbGljaXQ6IGN1c3RvbUZpZWxkc1tpbmRleF0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3VzdG9tU2VjdGlvblJlbmRlcihjb250YWluZXJzOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj4pIHtcclxuICAgIGlmICh0aGlzLmN1c3RvbVNlY3Rpb25UZW1wbGF0ZSAmJiBjb250YWluZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgY3VzdG9tU2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zLmZpbHRlcihcclxuICAgICAgICAoc2VjdGlvbikgPT4gc2VjdGlvbi5jdXN0b21LZXlcclxuICAgICAgKTtcclxuICAgICAgY29udGFpbmVycy5mb3JFYWNoKChjb250YWluZXIsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgY29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tS2V5ID0gY3VzdG9tU2VjdGlvbnNbaW5kZXhdLmN1c3RvbUtleTtcclxuICAgICAgICBjb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuY3VzdG9tU2VjdGlvblRlbXBsYXRlW2N1c3RvbUtleV0sIHtcclxuICAgICAgICAgICRpbXBsaWNpdDogY3VzdG9tU2VjdGlvbnNbaW5kZXhdLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdEZpZWxkTWFwKCkge1xyXG4gICAgdGhpcy5maWVsZFR5cGVNYXAgPSB7fTtcclxuICAgIHRoaXMuZm9ybUZpZWxkTWFwID0ge307XHJcbiAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2goKHNlY3Rpb24pID0+IHtcclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdKSB7XHJcbiAgICAgICAgICB0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkVHlwZU1hcFtmaWVsZC5maWVsZEZvcm1UeXBlXS5wdXNoKGZpZWxkKTtcclxuICAgICAgICB0aGlzLmZvcm1GaWVsZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGZpZWxkO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybShmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmdldEZvcm1Qcm94eSh0aGlzLmZvcm1hdEZvcm0odGhpcy5zZWN0aW9ucywgZm9ybSkpO1xyXG4gICAgdGhpcy5zeW5jRm9ybUZpZWxkKCk7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm0pO1xyXG4gIH1cclxuXHJcbiAgZXF1YWwodmFsdWU6IGFueSwgY29tcGFyZVZhbHVlOiBhbnkpIHtcclxuICAgIC8vIOWPquWvueaVsOe7hOi/m+ihjOeJueauiuWIpOaWrVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIEFycmF5LmlzQXJyYXkoY29tcGFyZVZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHZhbHVlLmxlbmd0aCA9PT0gY29tcGFyZVZhbHVlLmxlbmd0aCAmJlxyXG4gICAgICAgIHZhbHVlLmV2ZXJ5KChpLCBpbmRleCkgPT4gaSA9PT0gY29tcGFyZVZhbHVlW2luZGV4XSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBPYmplY3QuaXModmFsdWUsIGNvbXBhcmVWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0Zvcm1DaGFuZ2UocHJldmlvdXM6IFJlY29yZDxzdHJpbmcsIGFueT4sIGN1cnJlbnQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIE9iamVjdC5lbnRyaWVzKGN1cnJlbnQpLmZvckVhY2goKFtrZXksIGN1cnJlbnRWYWx1ZV0pID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmVxdWFsKHByZXZpb3VzW2tleV0sIGN1cnJlbnRWYWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQoa2V5KTtcclxuICAgICAgICBpZiAoZmllbGQpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzeW5jRm9ybVRvRGF0ZUZvcm0oZmllbGQ6IEZpZWxkSXRlbSwgdmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQodmFsdWUpO1xyXG4gICAgICB0aGlzLmRhdGVGb3JtW2ZpZWxkLmZvcm1LZXldID0gZGF0ZS5pc1ZhbGlkKCkgPyBkYXRlLnRvRGF0ZSgpIDogbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3luY0Zvcm1GaWVsZCgpIHtcclxuICAgIHRoaXMuc2VjdGlvbnMuZm9yRWFjaCgoc2VjdGlvbjogU2VjdGlvbkl0ZW0pID0+IHtcclxuICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGZpZWxkLmZpZWxkRm9ybVR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgXCJEYXRlcGlja2VyXCI6XHJcbiAgICAgICAgICAgIHRoaXMuc3luY0Zvcm1Ub0RhdGVGb3JtKGZpZWxkLCB0aGlzLmZvcm1bZmllbGQuZm9ybUtleV0pO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb3JtYXRGb3JtKHNlY3Rpb25zOiBTZWN0aW9uSXRlbVtdLCBmb3JtOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBzZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uOiBTZWN0aW9uSXRlbSkgPT4ge1xyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmllbGQuZmllbGRGb3JtVHlwZSkge1xyXG4gICAgICAgICAgY2FzZSBcIlRleHRcIjpcclxuICAgICAgICAgIGNhc2UgXCJFbWFpbFwiOlxyXG4gICAgICAgICAgY2FzZSBcIlRleHRhcmVhXCI6XHJcbiAgICAgICAgICAgIGlmIChmb3JtW2ZpZWxkLmZvcm1LZXldID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICBmb3JtW2ZpZWxkLmZvcm1LZXldID0gXCJcIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICBjYXNlIFwiVGFnc1wiOlxyXG4gICAgICAgICAgY2FzZSBcIkNoZWNrYm94XCI6XHJcbiAgICAgICAgICBjYXNlIFwiTXVsdGlTZWxlY3RcIjpcclxuICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZvcm1bZmllbGQuZm9ybUtleV0pKSB7XHJcbiAgICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgXCJTd2l0Y2hcIjpcclxuICAgICAgICAgICAgZm9ybVtmaWVsZC5mb3JtS2V5XSA9ICEhZm9ybVtmaWVsZC5mb3JtS2V5XTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgaWYgKGZvcm1bZmllbGQuZm9ybUtleV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGZvcm1bZmllbGQuZm9ybUtleV0gPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtUHJveHkoZm9ybTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG4gICAgLy8g546w5Zyo5LiN5pSv5oyB5bWM5aWXIGZvcm0g5bGe5oCn77yM5Y+q5a+55rWF5bGC6L+b6KGM5aSE55CGXHJcbiAgICBjb25zdCBwcm94eUZvcm0gPSBuZXcgUHJveHkoZm9ybSwge1xyXG4gICAgICBzZXQ6ICh0YXJnZXQsIHByb3A6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgIHRhcmdldFtwcm9wXSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGQocHJvcCk7XHJcbiAgICAgICAgaWYgKGZpZWxkKSB7XHJcbiAgICAgICAgICBpZiAoZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJEYXRlcGlja2VyXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5zeW5jRm9ybVRvRGF0ZUZvcm0oZmllbGQsIHZhbHVlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJveHlGb3JtLCBGT1JNX1BST1hZX1RBRywge1xyXG4gICAgICB2YWx1ZTogdHJ1ZSxcclxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxyXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHByb3h5Rm9ybTtcclxuICB9XHJcblxyXG4gIC8vIOihqOWNleaPkOS6pOWJjeS8muinpuWPkei/meS4quWHveaVsFxyXG4gIHVwZGF0ZUZvcm0odmFsdWU6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldID0gdmFsdWU7XHJcbiAgICB0aGlzLmZvcm1DaGFuZ2UuZW1pdCh0aGlzLmZvcm0pO1xyXG4gICAgdGhpcy5maWVsZENoYW5nZS5lbWl0KHsgZmllbGQsIHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZm9ybUl0ZW1WYWxpZGF0b3IoZmllbGQ6IEZpZWxkSXRlbSwgaXNBdXRvID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgaWYgKGZpZWxkLnJlcXVpcmVkKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxyXG4gICAgICAgID8gdmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAgICAgOiAhW251bGwsIHVuZGVmaW5lZCwgXCJcIl0uaW5jbHVkZXModmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQuZmllbGRGb3JtVHlwZSA9PT0gXCJFbWFpbFwiICYmIHZhbHVlKSB7XHJcbiAgICAgIGlzVmFsaWQgPSBFbWFpbFBhdHRlcm4udGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5tYXhsZW5ndGgpIHtcclxuICAgICAgaXNWYWxpZCA9IFN0cmluZyh2YWx1ZSkubGVuZ3RoIDw9IGZpZWxkLm1heGxlbmd0aDtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIGZpZWxkLm1pbmxlbmd0aCkge1xyXG4gICAgICBpc1ZhbGlkID0gU3RyaW5nKHZhbHVlKS5sZW5ndGggPj0gZmllbGQubWlubGVuZ3RoO1xyXG4gICAgfVxyXG4gICAgaWYgKGlzVmFsaWQgJiYgZmllbGQubWF4KSB7XHJcbiAgICAgIGlzVmFsaWQgPSB2YWx1ZSA8PSBmaWVsZC5tYXg7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNWYWxpZCAmJiBmaWVsZC5taW4pIHtcclxuICAgICAgaXNWYWxpZCA9IHZhbHVlID49IGZpZWxkLm1pbjtcclxuICAgIH1cclxuICAgIGlmIChpc1ZhbGlkICYmIHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBpc1ZhbGlkID0gZmllbGQudmFsaWRhdG9yLmNhbGwobnVsbCwgdmFsdWUsIGZpZWxkKTtcclxuICAgIH1cclxuICAgIGlmICghaXNBdXRvKSB7XHJcbiAgICAgIHRoaXMuZmllbGRWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGlzVmFsaWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIHByZUNoZWNrRm9ybUlzVmFsaWQoKSB7XHJcbiAgICBsZXQgZm9ybUlzVmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKChzZWN0aW9uKSA9PlxyXG4gICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGZvcm1Jc1ZhbGlkID0gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCkgJiYgZm9ybUlzVmFsaWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcm1Jc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZvcm1Jc1ZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbnMuZXZlcnkoKHNlY3Rpb24pID0+XHJcbiAgICAgIHNlY3Rpb24uZmllbGRzLmV2ZXJ5KChmaWVsZCkgPT4gdGhpcy5mb3JtSXRlbVZhbGlkYXRvcihmaWVsZCwgdHJ1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGQoZm9ybUtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGRNYXBbZm9ybUtleV0gfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FsbEZ1bmN0aW9uKGZuOiBGdW5jdGlvbiwgLi4uYXJnczogYW55W10pIHtcclxuICAgIHRoaXMuZm9ybUl0ZW1WYWxpZGF0b3IoYXJnc1sxXSB8fCBhcmdzWzBdKTtcclxuICAgIGlmICh0eXBlb2YgZm4gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmbi5hcHBseShudWxsLCBhcmdzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQodmFsdWU6IHN0cmluZywgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25JbnB1dCwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uQ29tcG9uZW50Q2hhbmdlKGV2ZW50OiBhbnksIGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmICghZXZlbnQuaXNJbnRlcmFjdGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChmaWVsZC5maWVsZEZvcm1UeXBlICE9PSBcIkRhdGVwaWNrZXJcIikge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKGV2ZW50LnZhbHVlLCBmaWVsZCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFwiY2hhbmdlXCIsIGV2ZW50KTtcclxuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWUgPyBtb21lbnQoZXZlbnQudmFsdWUpLmZvcm1hdChcIllZWVktTU0tRERcIikgOiBudWxsO1xyXG4gICAgdGhpcy5kYXRlRm9ybVtmaWVsZC5mb3JtS2V5XSA9IGV2ZW50LnZhbHVlO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSwgZmllbGQpO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2UodmFsdWU6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy51cGRhdGVGb3JtKHZhbHVlLCBmaWVsZCk7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkNoYW5nZSwgdmFsdWUsIGZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uRGF0ZVBpY2tlckJsdXIoZXZlbnQ6IGFueSwgZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5vbkJsdXIoZmllbGQpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCAkaW5wdXQgPSBldmVudC5tb2RlbC5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKTtcclxuICAgICAgaWYgKCRpbnB1dCAmJiAkaW5wdXQudmFsdWUgJiYgIXRoaXMuZGF0ZUZvcm1bZmllbGQuZm9ybUtleV0pIHtcclxuICAgICAgICB0aGlzLmRhdGVWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XSA9IGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmRhdGVWYWxpZE1hcFtmaWVsZC5mb3JtS2V5XTtcclxuICAgICAgfVxyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICB0aGlzLmNhbGxGdW5jdGlvbihmaWVsZC5vbkZvY3VzLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgdGhpcy5jYWxsRnVuY3Rpb24oZmllbGQub25CbHVyLCBmaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcmluZyhldmVudDogRmlsdGVyaW5nRXZlbnRBcmdzLCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBxdWVyeSA9IG5ldyBRdWVyeSgpO1xyXG4gICAgaWYgKGV2ZW50LnRleHQpIHtcclxuICAgICAgcXVlcnkud2hlcmUodGhpcy5vcHRpb25GaWVsZHMudGV4dCwgXCJjb250YWluc1wiLCBldmVudC50ZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnVwZGF0ZURhdGEodGhpcy5nZXRPcHRpb25zKGZpZWxkKSwgcXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgb25Ecm9wZG93bkRhdGFCb3VuZChldmVudDogYW55LCBmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRUeXBlTWFwW2ZpZWxkLmZpZWxkRm9ybVR5cGVdLmluZGV4T2YoZmllbGQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5kcm9wZG93bnMudG9BcnJheSgpW2luZGV4XTtcclxuICAgIGlmIChldmVudC5pdGVtcy5sZW5ndGggPiAwICYmIGluZGV4ICE9PSAtMSAmJiBjb21wb25lbnQpIHtcclxuICAgICAgY29tcG9uZW50LnZhbHVlID0gdGhpcy5mb3JtW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9ucyhmaWVsZDogRmllbGRJdGVtKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnNNYXBbZmllbGQub3B0aW9uS2V5XSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc01hcFtmaWVsZC5vcHRpb25LZXldO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5vcHRpb25zTWFwW2ZpZWxkLmZvcm1LZXldKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zTWFwW2ZpZWxkLmZvcm1LZXldO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGlzYWJsZWQoZmllbGQ6IEZpZWxkSXRlbSkge1xyXG4gICAgaWYgKHRoaXMuZm9ybURpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiBmaWVsZC5kaXNhYmxlZCA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgIHJldHVybiBmaWVsZC5kaXNhYmxlZCgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3B0aW9uRmllbGRzKGZpZWxkOiBGaWVsZEl0ZW0pIHtcclxuICAgIGlmIChbXCJEcm9wZG93blwiLCBcIkF1dG9Db21wbGV0ZVwiXS5pbmNsdWRlcyhmaWVsZC5maWVsZEZvcm1UeXBlKSkge1xyXG4gICAgICByZXR1cm4geyAuLi50aGlzLm9wdGlvbkZpZWxkcywgZ3JvdXBCeTogZmllbGQuZ3JvdXBLZXkgfHwgbnVsbCB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcInNlY3Rpb25FbFwiKVxyXG4gIHNlY3Rpb25FbHM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj47XHJcbiAgc2Nyb2xsSW5kZXggPSAwO1xyXG4gIGlzQ2xpY2tBbmNob3IgPSBmYWxzZTtcclxuXHJcbiAgb25DbGlja0FuY2hvcihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBzZWN0aW9uSXRlbXMgPSB0aGlzLnNlY3Rpb25FbHMudG9BcnJheSgpO1xyXG4gICAgc2VjdGlvbkl0ZW1zW2luZGV4XS5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHRydWUpO1xyXG4gICAgdGhpcy5zY3JvbGxJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5pc0NsaWNrQW5jaG9yID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGZpbmRTY3JvbGxWaWV3RWwoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xyXG4gICAgaWYgKGVsID09PSBkb2N1bWVudC5ib2R5KSB7XHJcbiAgICAgIHJldHVybiBlbDtcclxuICAgIH1cclxuICAgIGlmIChlbC5zY3JvbGxIZWlnaHQgJiYgZWwuc2Nyb2xsSGVpZ2h0ICE9PSBlbC5vZmZzZXRIZWlnaHQpIHtcclxuICAgICAgcmV0dXJuIGVsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmluZFNjcm9sbFZpZXdFbChlbC5wYXJlbnRFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGluaXRBbmNob3JTY3JvbGxIYW5kbGVyKCkge1xyXG4gICAgY29uc3Qgc2Nyb2xsVmlld0VsID0gdGhpcy5maW5kU2Nyb2xsVmlld0VsKHRoaXMucm9vdEVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gc2Nyb2xsVmlld0VsLnNjcm9sbEhlaWdodCAtIHNjcm9sbFZpZXdFbC5vZmZzZXRIZWlnaHQ7XHJcbiAgICBjb25zdCBzZWN0aW9uVmlld1JhdGlvID0gdGhpcy5zZWN0aW9uRWxzLnRvQXJyYXkoKS5tYXAoKHNlY3Rpb24pID0+IHtcclxuICAgICAgY29uc3QgcmF0aW8gPVxyXG4gICAgICAgIHNlY3Rpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLyBzY3JvbGxWaWV3RWwuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICByZXR1cm4gc2Nyb2xsSGVpZ2h0ICogcmF0aW87XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBvblNjcm9sbCA9ICgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNDbGlja0FuY2hvcikge1xyXG4gICAgICAgIHRoaXMuaXNDbGlja0FuY2hvciA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBzY3JvbGxUb3AgPVxyXG4gICAgICAgIHNjcm9sbFZpZXdFbC5zY3JvbGxUb3AgPiBzY3JvbGxIZWlnaHRcclxuICAgICAgICAgID8gc2Nyb2xsSGVpZ2h0XHJcbiAgICAgICAgICA6IHNjcm9sbFZpZXdFbC5zY3JvbGxUb3A7XHJcbiAgICAgIGxldCByYWRpb1Njcm9sbEhlaWdodCA9IDA7XHJcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBzZWN0aW9uVmlld1JhdGlvLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIHJhZGlvU2Nyb2xsSGVpZ2h0ICs9IHNlY3Rpb25WaWV3UmF0aW9baW5kZXhdO1xyXG4gICAgICAgIGlmIChyYWRpb1Njcm9sbEhlaWdodCA+PSBzY3JvbGxUb3ApIHtcclxuICAgICAgICAgIHRoaXMuc2Nyb2xsSW5kZXggPSBpbmRleDtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB3aGlsZSAoXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uc1t0aGlzLnNjcm9sbEluZGV4XSAmJlxyXG4gICAgICAgICF0aGlzLnNlY3Rpb25zW3RoaXMuc2Nyb2xsSW5kZXhdLnRpdGxlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsSW5kZXgrKztcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH07XHJcblxyXG4gICAgb25TY3JvbGwoKTtcclxuICAgIHNjcm9sbFZpZXdFbC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIG9uU2Nyb2xsKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -21979,8 +21979,10 @@ class DrawerFormComponent {
|
|
|
21979
21979
|
onDropdownDataBound(event, field) {
|
|
21980
21980
|
/** @type {?} */
|
|
21981
21981
|
const index = this.fieldTypeMap[field.fieldFormType].indexOf(field);
|
|
21982
|
-
|
|
21983
|
-
|
|
21982
|
+
/** @type {?} */
|
|
21983
|
+
const component = this.dropdowns.toArray()[index];
|
|
21984
|
+
if (event.items.length > 0 && index !== -1 && component) {
|
|
21985
|
+
component.value = this.form[field.formKey];
|
|
21984
21986
|
}
|
|
21985
21987
|
}
|
|
21986
21988
|
/**
|