ids-enterprise-ng 13.4.3 → 13.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/accordion/soho-accordion.component.mjs +2 -1
- package/esm2020/lib/actionsheet/soho-actionsheet.component.mjs +2 -1
- package/esm2020/lib/application-menu/soho-application-menu.component.mjs +2 -1
- package/esm2020/lib/bar/soho-bar.component.mjs +2 -1
- package/esm2020/lib/blockgrid/soho-blockgrid.component.mjs +2 -1
- package/esm2020/lib/breadcrumb/soho-breadcrumb.component.mjs +2 -1
- package/esm2020/lib/bullet/soho-bullet.component.mjs +2 -1
- package/esm2020/lib/busyindicator/soho-busyindicator.directive.mjs +2 -1
- package/esm2020/lib/button/soho-button.component.mjs +2 -1
- package/esm2020/lib/buttonset/soho-buttonset.component.mjs +2 -1
- package/esm2020/lib/calendar/soho-calendar.component.mjs +2 -1
- package/esm2020/lib/circlepager/soho-circlepager.component.mjs +2 -1
- package/esm2020/lib/column/soho-column.component.mjs +2 -1
- package/esm2020/lib/context-menu/soho-context-menu.directive.mjs +2 -1
- package/esm2020/lib/datagrid/soho-datagrid.component.mjs +11 -2
- package/esm2020/lib/datepicker/soho-datepicker.component.mjs +2 -1
- package/esm2020/lib/dropdown/soho-dropdown.component.mjs +2 -1
- package/esm2020/lib/editor/soho-editor.component.mjs +2 -1
- package/esm2020/lib/expandablearea/soho-expandablearea.component.mjs +2 -1
- package/esm2020/lib/fileupload/soho-fileupload.component.mjs +2 -1
- package/esm2020/lib/form-compact/soho-form-compact.component.mjs +2 -1
- package/esm2020/lib/header/soho-header.component.mjs +11 -1
- package/esm2020/lib/hierarchy/soho-hierarchy.component.mjs +2 -1
- package/esm2020/lib/homepage/soho-homepage.component.mjs +2 -1
- package/esm2020/lib/icon/soho-icons-empty-new.component.mjs +3 -3
- package/esm2020/lib/icon/soho-icons-new.component.mjs +3 -3
- package/esm2020/lib/icon/soho-icons-uplift.component.mjs +3 -3
- package/esm2020/lib/icon/soho-icons.component.mjs +3 -3
- package/esm2020/lib/input-validate/soho-input-validate.directive.mjs +3 -1
- package/esm2020/lib/line/soho-line.component.mjs +2 -1
- package/esm2020/lib/listview/soho-listview.component.mjs +2 -1
- package/esm2020/lib/lookup/soho-lookup.component.mjs +2 -1
- package/esm2020/lib/mask/soho-mask.directive.mjs +5 -1
- package/esm2020/lib/menu-button/soho-menu-button.component.mjs +2 -1
- package/esm2020/lib/modal-dialog/soho-modal-dialog.ref.mjs +2 -1
- package/esm2020/lib/monthview/soho-monthview.component.mjs +2 -1
- package/esm2020/lib/pager/soho-standalone-pager.component.mjs +2 -1
- package/esm2020/lib/personalize/soho-personalize.directive.mjs +2 -1
- package/esm2020/lib/pie/soho-pie.component.mjs +2 -1
- package/esm2020/lib/popupmenu/soho-popupmenu.component.mjs +3 -1
- package/esm2020/lib/radar/soho-radar.component.mjs +2 -1
- package/esm2020/lib/searchfield/soho-searchfield.component.mjs +2 -1
- package/esm2020/lib/sparkline/soho-sparkline.component.mjs +2 -1
- package/esm2020/lib/spinbox/soho-spinbox.component.mjs +2 -1
- package/esm2020/lib/stepchart/soho-stepchart.component.mjs +2 -1
- package/esm2020/lib/swipe-action/soho-swipe-action.component.mjs +2 -1
- package/esm2020/lib/tabs/soho-tabs.component.mjs +2 -1
- package/esm2020/lib/tag/soho-tag.component.mjs +3 -1
- package/esm2020/lib/textarea/soho-textarea.component.mjs +50 -4
- package/esm2020/lib/timepicker/soho-timepicker.component.mjs +2 -1
- package/esm2020/lib/toolbar/soho-toolbar.component.mjs +2 -1
- package/esm2020/lib/toolbar-flex/soho-toolbar-flex.component.mjs +3 -1
- package/esm2020/lib/tooltip/soho-tooltip.directive.mjs +6 -1
- package/esm2020/lib/tree/soho-tree.component.mjs +8 -8
- package/esm2020/lib/treemap/soho-treemap.component.mjs +2 -1
- package/esm2020/lib/week-view/soho-week-view.component.mjs +2 -1
- package/esm2020/version.json +1 -1
- package/fesm2015/ids-enterprise-ng.mjs +146 -20
- package/fesm2015/ids-enterprise-ng.mjs.map +1 -1
- package/fesm2020/ids-enterprise-ng.mjs +144 -20
- package/fesm2020/ids-enterprise-ng.mjs.map +1 -1
- package/lib/datagrid/soho-datagrid.component.d.ts +5 -0
- package/lib/header/soho-header.component.d.ts +3 -2
- package/lib/textarea/soho-textarea.component.d.ts +11 -3
- package/lib/tree/soho-tree.component.d.ts +3 -3
- package/package.json +5 -5
|
@@ -375,6 +375,7 @@ export class SohoAccordionComponent {
|
|
|
375
375
|
this.ngZone.runOutsideAngular(() => {
|
|
376
376
|
if (this.jQueryElement) {
|
|
377
377
|
this.jQueryElement.off();
|
|
378
|
+
this.jQueryElement = undefined;
|
|
378
379
|
}
|
|
379
380
|
if (this.accordion) {
|
|
380
381
|
this.accordion?.destroy();
|
|
@@ -446,4 +447,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
446
447
|
}], hasSubheaderSeparators: [{
|
|
447
448
|
type: Input
|
|
448
449
|
}] } });
|
|
449
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hY2NvcmRpb24vc29oby1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hY2NvcmRpb24vc29oby1hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBQzlDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUU3RTs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7SUFpTmpDOzs7OztPQUtHO0lBQ0gsWUFBb0IsT0FBbUIsRUFBVSxNQUFjO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM00vRCw4Q0FBOEM7UUFDOUMsZ0JBQWdCO1FBQ2hCLDhDQUE4QztRQUV2QyxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQW1CMUMsOENBQThDO1FBQzlDLG1CQUFtQjtRQUNuQiw4Q0FBOEM7UUFDOUMscURBQXFEO1FBQzdCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztR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O3VCQUFDLGNBQWM7Z0JBQ0ksbUJBQW1CO3NCQUE1QyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFDQSxpQkFBaUI7c0JBQXhDLE1BQU07dUJBQUMsY0FBYztnQkFDRixhQUFhO3NCQUFoQyxNQUFNO3VCQUFDLFVBQVU7Z0JBQ0ksZUFBZTtzQkFBcEMsTUFBTTt1QkFBQyxZQUFZO2dCQUNGLFdBQVc7c0JBQTVCLE1BQU07dUJBQUMsUUFBUTtnQkFDTyxnQkFBZ0I7c0JBQXRDLE1BQU07dUJBQUMsYUFBYTtnQkFDRCxhQUFhO3NCQUFoQyxNQUFNO3VCQUFDLFVBQVU7Z0JBQ08sa0JBQWtCO3NCQUExQyxNQUFNO3VCQUFDLGVBQWU7Z0JBY0gsWUFBWTtzQkFBL0IsS0FBSztnQkFpQmMsY0FBYztzQkFBakMsS0FBSztnQkFjYyxlQUFlO3NCQUFsQyxLQUFLO2dCQWlCYyxrQkFBa0I7c0JBQXJDLEtBQUs7Z0JBY2MsaUJBQWlCO3NCQUFwQyxLQUFLO2dCQWVjLE1BQU07c0JBQXpCLEtBQUs7Z0JBY2MsU0FBUztzQkFBNUIsS0FBSztnQkFlYyxPQUFPO3NCQUExQixLQUFLO2dCQWNjLFNBQVM7c0JBQTVCLEtBQUs7Z0JBZWMsY0FBYztzQkFBakMsS0FBSztnQkFXVSxzQkFBc0I7c0JBQXJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdW51c2VkLXZhcmlhYmxlXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgZm9yd2FyZFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NvaG8tYWNjb3JkaW9uLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU29ob0FjY29yZGlvblBhbmVDb21wb25lbnQgfSBmcm9tICcuL3NvaG8tYWNjb3JkaW9uLXBhbmUuY29tcG9uZW50JztcblxuLyoqXG4gKiBBbmd1bGFyIFdyYXBwZXIgZm9yIHRoZSBTb2hvIEFjY29yZGlvbiBjb250cm9sLlxuICpcbiAqIFRoaXMgY29tcG9uZW50IHNlYXJjaGVzIGZvciBhbiBlbGVtZW50LCBhbm5vdGF0ZWQgd2l0aCB0aGUgYHNvaG8tYWNjb3JkaW9uYCBhdHRyaWJ1dGUsXG4gKiBhbmQgdGhlbiBtYXRjaGVzIHRoaXMgY29tcG9uZW50IHRvIGl0LlxuICogPGJyPlxuICogVGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgY29tcG9uZW50IGNhbiBiZSBjb250cm9sbGVkIHVzaW5nIHRoZSBzZXQgb2YgaW5wdXRzLlxuICpcbiAqIFRoZSBBY2NvcmRpb24gaXMgYSBncm91cGVkIHNldCBvZiBjb2xsYXBzaWJsZSBwYW5lbHMgdXNlZCB0byBuYXZpZ2F0ZSBzZWN0aW9ucyBvZlxuICogcmVsYXRlZCBjb250ZW50LiBFYWNoIHBhbmVsIGNvbnNpc3RzIG9mIHR3byBsZXZlbHM6IHRoZSB0b3AgbGV2ZWwgaWRlbnRpZmllcyB0aGVcbiAqIGNhdGVnb3J5IG9yIHNlY3Rpb24gaGVhZGVyLCBhbmQgdGhlIHNlY29uZCBsZXZlbCBwcm92aWRlcyB0aGUgYXNzb2NpYXRlZCBvcHRpb25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzb2hvLWFjY29yZGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnc29oby1hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTb2hvQWNjb3JkaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcblxuICAvLyBBbGwgaGVhZGVycy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1mb3J3YXJkLXJlZlxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCkpXG4gIGhlYWRlcnMhOiBRdWVyeUxpc3Q8U29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudD47XG5cbiAgLy8gQWxsIHBhbmVzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWZvcndhcmQtcmVmXG4gIEBDb250ZW50Q2hpbGRyZW4oZm9yd2FyZFJlZigoKSA9PiBTb2hvQWNjb3JkaW9uUGFuZUNvbXBvbmVudCkpXG4gIHBhbmVzITogUXVlcnlMaXN0PFNvaG9BY2NvcmRpb25QYW5lQ29tcG9uZW50PjtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE9wdGlvbnMgQmxvY2tcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHB1YmxpYyBvcHRpb25zOiBTb2hvQWNjb3JkaW9uT3B0aW9ucyA9IHt9O1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUHJpdmF0ZSBNZW1iZXIgRGF0YVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgalF1ZXJ5IHNlbGVjdG9yLiAqL1xuICBwcml2YXRlIGpRdWVyeUVsZW1lbnQhOiBKUXVlcnk7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZXMgdG8gdGhlIFNvaG8gY29udHJvbCBhcGkuXG4gICAqL1xuICBwcml2YXRlIGFjY29yZGlvbiE6IFNvaG9BY2NvcmRpb25TdGF0aWM7XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY2FsbCB1cGRhdGVkIGZyb20gdGhlIGFmdGVyVmlld0NoZWNrZWQgbGlmZWN5Y2xlIGV2ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVSZXF1aXJlZD86IGJvb2xlYW47XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDb21wb25lbnQgT3V0cHV0XG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWUgKi9cbiAgQE91dHB1dCgnYmVmb3JlZXhwYW5kJykgYmVmb3JlZXhwYW5kRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnYmVmb3JlY29sbGFwc2UnKSBiZWZvcmVjb2xsYXBzZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2JlZm9yZXNlbGVjdCcpIGJlZm9yZXNlbGVjdEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3NlbGVjdGVkJykgc2VsZWN0ZWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdmb2xsb3dsaW5rJykgZm9sbG93bGlua0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2V4cGFuZCcpIGV4cGFuZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2FmdGVyZXhwYW5kJykgYWZ0ZXJleHBhbmRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdjb2xsYXBzZScpIGNvbGxhcHNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnYWZ0ZXJjb2xsYXBzZScpIGFmdGVyY29sbGFwc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ29tcG9uZW50IElucHV0c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIElmIGFuIEFjY29yZGlvbiBwYW5lIGlzIG9wZW4sIGFuZCB0aGF0IHBhbmUgY29udGFpbnMgc3ViLWhlYWRlcnMsIG9ubHkgb25lXG4gICAqIG9mIHRoZSBwYW5lJ3Mgc3ViLWhlYWRlcnMgY2FuIGJlIG9wZW4gYXQgYSB0aW1lLlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKlxuICAgKiBJZiBzZXQgdG8gdHJ1ZSwgYWxsb3dzIG9ubHkgb25lIHBhbmUgb2YgdGhlIGFjY29yZGlvbiB0byBiZSBvcGVuIGF0IGEgdGltZS5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYWxsb3dPbmVQYW5lKGFsbG93T25lUGFuZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5hbGxvd09uZVBhbmUgPSB0eXBlb2YgKGFsbG93T25lUGFuZSkgPT09ICdib29sZWFuJyAmJiBhbGxvd09uZVBhbmU7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5hbGxvd09uZVBhbmUgPSB0aGlzLm9wdGlvbnMuYWxsb3dPbmVQYW5lO1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgYWxsb3dPbmVQYW5lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxsb3dPbmVQYW5lO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXlzIGEgXCJDaGV2cm9uXCIgaWNvbiB0aGF0IHNpdHMgb2ZmIHRvIHRoZSByaWdodC1tb3N0IHNpZGUgb2YgYSB0b3AtbGV2ZWwgYWNjb3JkaW9uIGhlYWRlci5cbiAgICogVXNlZCBpbiBwbGFjZSBvZiBhbiBFeHBhbmRlciAoKy8tKSBpZiBlbmFibGVkLlxuICAgKlxuICAgKlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBkaXNwbGF5Q2hldnJvbihkaXNwbGF5Q2hldnJvbjogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5kaXNwbGF5Q2hldnJvbiA9IHR5cGVvZiAoZGlzcGxheUNoZXZyb24pID09PSAnYm9vbGVhbicgJiYgZGlzcGxheUNoZXZyb247XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5kaXNwbGF5Q2hldnJvbiA9IHRoaXMub3B0aW9ucy5kaXNwbGF5Q2hldnJvbjtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGRpc3BsYXlDaGV2cm9uKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZGlzcGxheUNoZXZyb247XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgaWNvbm9ncmFwaHkgdXNlZCBpbiBhY2NvcmRpb24gaGVhZGVyIGV4cGFuZGVyIGJ1dHRvbnMuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGV4cGFuZGVyRGlzcGxheShleHBhbmRlckRpc3BsYXk6IFNvaG9BY2NvcmRpb25FeHBhbmRlclR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuZXhwYW5kZXJEaXNwbGF5ID0gZXhwYW5kZXJEaXNwbGF5O1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuZXhwYW5kZXJEaXNwbGF5ID0gdGhpcy5vcHRpb25zLmV4cGFuZGVyRGlzcGxheTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGV4cGFuZGVyRGlzcGxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmV4cGFuZGVyRGlzcGxheTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYW4gYmUgc2V0IHRvIGZhbHNlIGlmIHJvdXRpbmcgaXMgZXh0ZXJuYWxseSBoYW5kbGVkLCBvdGhlcndpc2VcbiAgICogbGlua3MgYXJlIGhhbmRsZWQgbm9ybWFsbHkuXG4gICAqXG4gICAqXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlcm91dGVPbkxpbmtDbGljayhyZXJvdXRlT25MaW5rQ2xpY2s6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMucmVyb3V0ZU9uTGlua0NsaWNrID0gdHlwZW9mIChyZXJvdXRlT25MaW5rQ2xpY2spID09PSAnYm9vbGVhbicgJiYgcmVyb3V0ZU9uTGlua0NsaWNrO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkucmVyb3V0ZU9uTGlua0NsaWNrID0gdGhpcy5vcHRpb25zLnJlcm91dGVPbkxpbmtDbGljaztcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHJlcm91dGVPbkxpbmtDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnJlcm91dGVPbkxpbmtDbGljaztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBhbGVydCBiYWRnZSB0byB0aGUgYWNjb3JkaW9uIGhlYWRlciAodXNlZCBmb3IgQXBwIG1lbnUpXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IG5vdGlmaWNhdGlvbkJhZGdlKG5vdGlmaWNhdGlvbkJhZGdlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcHRpb25zLm5vdGlmaWNhdGlvbkJhZGdlID0gdHlwZW9mIChub3RpZmljYXRpb25CYWRnZSkgPT09ICdib29sZWFuJyAmJiBub3RpZmljYXRpb25CYWRnZTtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLm5vdGlmaWNhdGlvbkJhZGdlID0gdGhpcy5vcHRpb25zLm5vdGlmaWNhdGlvbkJhZGdlO1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgbm90aWZpY2F0aW9uQmFkZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5ub3RpZmljYXRpb25CYWRnZTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCB3aGVuIGltcGxlbWVudGVkIHByb3ZpZGVkIGEgY2FsbCBiYWNrIGZvciBcImFqYXggbG9hZGluZ1wiIG9mIHRhYiBjb250ZW50cyBvbiBvcGVuLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBzb3VyY2Uoc291cmNlOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5zb3VyY2UgPSB0aGlzLm9wdGlvbnMuc291cmNlO1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgc291cmNlKCk6IEZ1bmN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGFjY29yZGlvbiB3aXRoIHBhbmVsc1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBoYXNQYW5lbHMoaGFzUGFuZWxzOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcHRpb25zLmhhc1BhbmVscyA9IGhhc1BhbmVscztcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLmhhc1BhbmVscyA9IHRoaXMub3B0aW9ucy5oYXNQYW5lbHM7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc1BhbmVscygpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmhhc1BhbmVscztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbG9yIHNjaGVtZSB0byBpbnZlcnNlXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGludmVyc2UoaW52ZXJzZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5pbnZlcnNlID0gaW52ZXJzZTtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLmludmVyc2UgPSB0aGlzLm9wdGlvbnMuaW52ZXJzZTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGludmVyc2UoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pbnZlcnNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgY29sb3Igc2NoZW1lIHRvIGFsdGVybmF0ZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBhbHRlcm5hdGUoYm9vbDogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5hbHRlcm5hdGUgPSBib29sO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuYWx0ZXJuYXRlID0gdGhpcy5vcHRpb25zLmFsdGVybmF0ZTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWx0ZXJuYXRlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWx0ZXJuYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMgdG9vbHRpcHMgZm9yIGxvbmdlciB0ZXh0IHRoYXQgaXMgaGFuZGxlZCB3aXRoIGVsbGlwc2lzXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGVuYWJsZVRvb2x0aXBzKGVuYWJsZVRvb2x0aXBzOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcHRpb25zLmVuYWJsZVRvb2x0aXBzID0gZW5hYmxlVG9vbHRpcHM7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5lbmFibGVUb29sdGlwcyA9IHRoaXMub3B0aW9ucy5lbmFibGVUb29sdGlwcztcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGVuYWJsZVRvb2x0aXBzKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZW5hYmxlVG9vbHRpcHM7XG4gIH1cblxuICBASW5wdXQoKSBwdWJsaWMgaGFzU3ViaGVhZGVyU2VwYXJhdG9ycz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiAtIHRoZSBlbGVtZW50IG1hdGNoaW5nIHRoZSBjb21wb25lbnQncyBzZWxlY3Rvci5cbiAgICogQHBhcmFtIG5nWm9uZSAtIHpvbmUgYWNjZXNzLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7IH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFB1YmxpYyBBUElcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBHZXQncyB0aGUgbnRoIGhlYWRlciBmcm9tIHRoZSBhY2NvcmRpb24uXG4gICAqXG4gICAqIEB0b2RvIC0gaG93IGJlc3QgdG8gYWNjZXNzIHRoZSBoZWFkZXJzP1xuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggLSB0aGUgaW5kZXggb2YgdGhlIGFjY29yZGlvbiBoZWFkZXIuXG4gICAqIEByZXR1cm4gdGhlIGhlYWRlciBhdCB0aGUgZ2l2ZW4gaW5kZXguXG4gICAqL1xuICBwdWJsaWMgZ2V0SGVhZGVyKGluZGV4OiBudW1iZXIpOiBTb2hvQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuaGVhZGVycykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaGVhZGVycy50b0FycmF5KClbaW5kZXhdO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgZ2l2ZW4gUGFuZWwgb24gdGhlIEFjY29yZGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciAmbmJzcDstJm5ic3A7IHRoZSBoZWFkZXIgY29tcG9uZW50XG4gICAqL1xuICBwdWJsaWMgZXhwYW5kKGhlYWRlcjogU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCB8IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uZXhwYW5kKHR5cGVvZiBoZWFkZXIgPT09ICdzdHJpbmcnID8gaGVhZGVyIDogaGVhZGVyWydqUXVlcnlFbGVtZW50J10pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlIHRoZSBnaXZlbiBQYW5lbCBvbiB0aGUgQWNjb3JkaW9uLlxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyICZuYnNwOy0mbmJzcDsgdGhlIGpxdWVyeSBoZWFkZXIgZWxlbWVudFxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlKGhlYWRlcjogU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCB8IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY2NvcmRpb24uY29sbGFwc2UodHlwZW9mIGhlYWRlciA9PT0gJ3N0cmluZycgPyBoZWFkZXIgOiBoZWFkZXJbJ2pRdWVyeUVsZW1lbnQnXSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhwYW5kcyBhbGwgYWNjb3JkaW9uIGhlYWRlcnMsIGlmIHBvc3NpYmxlLlxuICAgKi9cbiAgcHVibGljIGV4cGFuZEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYWNjb3JkaW9uLmV4cGFuZEFsbCgpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29sbGFwc2VzIGFsbCB0aGUgZXhwYW5kZWQgcGFuZWxzLlxuICAgKlxuICAgKlxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlQWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24uY29sbGFwc2VBbGwoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSBjb250cm9sLlxuICAgKi9cbiAgcHVibGljIGRpc2FibGUoKSB7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi5kaXNhYmxlKCkpO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyBlbmFibGUoKSB7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi5lbmFibGUoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gaGVhZGVyIGlzIGN1cnJlbnRseSBkaXNhYmxlZCBvciB0aGUgd2hvbGUgYWNjb3JkaW9uXG4gICAqIGlzIGRpc2FibGVkOyBvdGhlcndpc2UgZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgdGhlIGFjY29yZGlvbiBoZWFkZXIgcGFuZWwgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgaXNEaXNhYmxlZChoZWFkZXI6IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi5pc0Rpc2FibGVkKGhlYWRlci5qUXVlcnlFbGVtZW50KSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGhlYWRlciBpcyBjdXJyZW50bHkgZXhwYW5kZWQ7IG90aGVyd2lzZVxuICAgKiBmYWxzZS5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciB0aGUgYWNjb3JkaW9uIGhlYWRlciBwYW5lbCB0byBjaGVjay5cbiAgICovXG4gIHB1YmxpYyBpc0V4cGFuZGVkKGhlYWRlcjogU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYWNjb3JkaW9uLmlzRXhwYW5kZWQoaGVhZGVyLmpRdWVyeUVsZW1lbnQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgZ2l2ZW4gUGFuZWwgb24gdGhlIEFjY29yZGlvbiBiZXR3ZWVuIGV4cGFuZGVkIGFuZCBjb2xsYXBzZWRcbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciAmbmJzcDstJm5ic3A7IHRoZSBqcXVlcnkgaGVhZGVyIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyB0b2dnbGUoaGVhZGVyOiBTb2hvQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi50b2dnbGUoaGVhZGVyLmpRdWVyeUVsZW1lbnQpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCB0byBub3RpZnkgdGhlIGFjY29yZGlvbiBhYm91dCBhbnkgZG9tIGNoYW5nZXNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVkKGhlYWRlcnM/OiBKUXVlcnlbXSwgc2V0dGluZ3M/OiBTb2hvQWNjb3JkaW9uT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChzZXR0aW5ncykge1xuICAgICAgdGhpcy5vcHRpb25zID0gU29oby51dGlscy5tZXJnZVNldHRpbmdzKCh0aGlzLmVsZW1lbnQgYXMgYW55KVswXSwgc2V0dGluZ3MsIHRoaXMub3B0aW9ucyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi51cGRhdGVkKGhlYWRlcnMsIHRoaXMub3B0aW9ucykpO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBMaWZlY3ljbGUgRXZlbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gV3JhcCB0aGUgZWxlbWVudCBpbiBhIGpRdWVyeSBzZWxlY3Rvci5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IGpRdWVyeSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzWzBdKTtcblxuICAgICAgLy8gSW5pdGlhbGlzZSB0aGUgZXZlbnQgaGFuZGxlcnMuXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnRcbiAgICAgICAgLm9uKCdiZWZvcmVleHBhbmQnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuYmVmb3JlZXhwYW5kRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignYmVmb3JlY29sbGFwc2UnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuYmVmb3JlY29sbGFwc2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSlcbiAgICAgICAgLm9uKCdiZWZvcmVzZWxlY3QnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuYmVmb3Jlc2VsZWN0RXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignc2VsZWN0ZWQnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuc2VsZWN0ZWRFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSlcbiAgICAgICAgLm9uKCdmb2xsb3dsaW5rJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmZvbGxvd2xpbmtFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSlcbiAgICAgICAgLm9uKCdleHBhbmQnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuZXhwYW5kRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignYWZ0ZXJleHBhbmQnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuYWZ0ZXJleHBhbmRFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSlcbiAgICAgICAgLm9uKCdjb2xsYXBzZScsIChldmVudDogU29ob0FjY29yZGlvbkV2ZW50LCBhbmNob3IpID0+XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LmFuY2hvciA9IGFuY2hvcjsgdGhpcy5jb2xsYXBzZUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pKVxuICAgICAgICAub24oJ2FmdGVyY29sbGFwc2UnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuYWZ0ZXJjb2xsYXBzZUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pKTtcblxuICAgICAgLy8gSW5pdGlhbGlzZSB0aGUgU29ob1hpIENvbnRyb2xcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5hY2NvcmRpb24odGhpcy5vcHRpb25zKTtcblxuICAgICAgLy8gT25jZSB0aGUgY29udHJvbCBpcyBpbml0aWFsaXNlZCwgZXh0cmFjdCB0aGUgY29udHJvbFxuICAgICAgLy8gcGx1Zy1pbiBmcm9tIHRoZSBlbGVtZW50LiAgVGhlIGVsZW1lbnQgbmFtZSBpc1xuICAgICAgLy8gZGVmaW5lZCBieSB0aGUgcGx1Zy1pbiwgYnV0IGluIHRoaXMgY2FzZSBpdCBpcyAnYWNjb3JkaW9uJy5cbiAgICAgIHRoaXMuYWNjb3JkaW9uID0gdGhpcy5qUXVlcnlFbGVtZW50LmRhdGEoJ2FjY29yZGlvbicpO1xuICAgIH0pO1xuICB9XG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy51cGRhdGVSZXF1aXJlZCkge1xuICAgICAgdGhpcy51cGRhdGVkKCk7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3RydWN0b3IuXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvLyBjYWxsIG91dHNpZGUgdGhlIGFuZ3VsYXIgem9uZSBzbyBjaGFuZ2UgZGV0ZWN0aW9uIGlzbid0IHRyaWdnZXJlZCBieSB0aGUgc29obyBjb21wb25lbnQuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMualF1ZXJ5RWxlbWVudCkge1xuICAgICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub2ZmKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICAgdGhpcy5hY2NvcmRpb24/LmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya0ZvclVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJ7J2FjY29yZGlvbic6IHRydWUsICdwYW5lbCc6IGhhc1BhbmVscywgJ2FsdGVybmF0ZSc6IGFsdGVybmF0ZSwgJ2ludmVyc2UnOiBpbnZlcnNlLCAnaGFzLXN1YmhlYWRlci1zZXBhcmF0b3JzJzogaGFzU3ViaGVhZGVyU2VwYXJhdG9yc31cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hY2NvcmRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hY2NvcmRpb24vc29oby1hY2NvcmRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hY2NvcmRpb24vc29oby1hY2NvcmRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBQzlDLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUU3RTs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxzQkFBc0I7SUFpTmpDOzs7OztPQUtHO0lBQ0gsWUFBb0IsT0FBbUIsRUFBVSxNQUFjO1FBQTNDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM00vRCw4Q0FBOEM7UUFDOUMsZ0JBQWdCO1FBQ2hCLDhDQUE4QztRQUV2QyxZQUFPLEdBQXlCLEVBQUUsQ0FBQztRQW1CMUMsOENBQThDO1FBQzlDLG1CQUFtQjtRQUNuQiw4Q0FBOEM7UUFDOUMscURBQXFEO1FBQzdCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNoRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUF3S0gsQ0FBQztJQXRLcEUsOENBQThDO0lBQzlDLG1CQUFtQjtJQUNuQiw4Q0FBOEM7SUFFOUM7Ozs7Ozs7T0FPRztJQUNILElBQW9CLFlBQVksQ0FBQyxZQUFpQztRQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssU0FBUyxJQUFJLFlBQVksQ0FBQztRQUNoRixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQztZQUMxRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsSUFBb0IsY0FBYyxDQUFDLGNBQW1DO1FBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxTQUFTLElBQUksY0FBYyxDQUFDO1FBQ3RGLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQWdCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQzlFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFvQixlQUFlLENBQUMsZUFBc0Q7UUFDeEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQWdCLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1lBQ2hGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUFvQixrQkFBa0IsQ0FBQyxrQkFBdUM7UUFDNUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsS0FBSyxTQUFTLElBQUksa0JBQWtCLENBQUM7UUFDbEcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBZ0IsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBQ3RGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7SUFDRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBb0IsaUJBQWlCLENBQUMsaUJBQXNDO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssU0FBUyxJQUFJLGlCQUFpQixDQUFDO1FBQy9GLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQWdCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBVyxpQkFBaUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFHRDs7T0FFRztJQUNILElBQW9CLE1BQU0sQ0FBQyxNQUE0QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBZ0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDOUQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUNELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBb0IsU0FBUyxDQUFDLFNBQThCO1FBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNwRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBb0IsT0FBTyxDQUFDLE9BQTRCO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNoRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBb0IsU0FBUyxDQUFDLElBQXlCO1FBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNwRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBb0IsY0FBYyxDQUFDLGNBQW1DO1FBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFnQixDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUM5RSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0QsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQVlELDhDQUE4QztJQUM5QyxhQUFhO0lBQ2IsOENBQThDO0lBRTlDOzs7Ozs7O09BT0c7SUFDSSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxNQUE2QztRQUN6RCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzlGLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFFBQVEsQ0FBQyxNQUE2QztRQUMzRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBQ0Q7O09BRUc7SUFDSSxNQUFNO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksVUFBVSxDQUFDLE1BQW9DO1FBQ3BELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDN0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLFVBQVUsQ0FBQyxNQUFvQztRQUNwRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQzdGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxNQUFvQztRQUNoRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNsRjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFrQixFQUFFLFFBQStCO1FBQ2hFLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDcEY7SUFDSCxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLG1CQUFtQjtJQUNuQiw2Q0FBNkM7SUFDN0MsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLHlDQUF5QztZQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0RSxpQ0FBaUM7WUFDakMsSUFBSSxDQUFDLGFBQWE7aUJBQ2YsRUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO2lCQUNKLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO2lCQUNKLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUF5QixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztpQkFDSixFQUFFLENBQUMsVUFBVSxFQUFFLENBQUMsS0FBeUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO2lCQUNKLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxLQUF5QixFQUFFLE1BQU0sRUFBRSxFQUFFLENBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDLENBQUM7aUJBQ0osRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztpQkFDSixFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBeUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLENBQUM7aUJBQ0osRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEtBQXlCLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztnQkFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztpQkFDSixFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBeUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ25CLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVSLGdDQUFnQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFM0MsdURBQXVEO1lBQ3ZELGlEQUFpRDtZQUNqRCw4REFBOEQ7WUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULDJGQUEyRjtRQUMzRixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOzttSEE5YVUsc0JBQXNCO3VHQUF0QixzQkFBc0IseXdCQUlDLDRCQUE0QiwrRUFLNUIsMEJBQTBCLGlDQzdDOUQsb01BR0E7MkZEaUNhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTTtzSEFPL0MsT0FBTztzQkFETixlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztnQkFNL0QsS0FBSztzQkFESixlQUFlO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkE4QnJDLGlCQUFpQjtzQkFBeEMsTUFBTTt1QkFBQyxjQUFjO2dCQUNJLG1CQUFtQjtzQkFBNUMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBQ0EsaUJBQWlCO3NCQUF4QyxNQUFNO3VCQUFDLGNBQWM7Z0JBQ0YsYUFBYTtzQkFBaEMsTUFBTTt1QkFBQyxVQUFVO2dCQUNJLGVBQWU7c0JBQXBDLE1BQU07dUJBQUMsWUFBWTtnQkFDRixXQUFXO3NCQUE1QixNQUFNO3VCQUFDLFFBQVE7Z0JBQ08sZ0JBQWdCO3NCQUF0QyxNQUFNO3VCQUFDLGFBQWE7Z0JBQ0QsYUFBYTtzQkFBaEMsTUFBTTt1QkFBQyxVQUFVO2dCQUNPLGtCQUFrQjtzQkFBMUMsTUFBTTt1QkFBQyxlQUFlO2dCQWNILFlBQVk7c0JBQS9CLEtBQUs7Z0JBaUJjLGNBQWM7c0JBQWpDLEtBQUs7Z0JBY2MsZUFBZTtzQkFBbEMsS0FBSztnQkFpQmMsa0JBQWtCO3NCQUFyQyxLQUFLO2dCQWNjLGlCQUFpQjtzQkFBcEMsS0FBSztnQkFlYyxNQUFNO3NCQUF6QixLQUFLO2dCQWNjLFNBQVM7c0JBQTVCLEtBQUs7Z0JBZWMsT0FBTztzQkFBMUIsS0FBSztnQkFjYyxTQUFTO3NCQUE1QixLQUFLO2dCQWVjLGNBQWM7c0JBQWpDLEtBQUs7Z0JBV1Usc0JBQXNCO3NCQUFyQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC12YXJpYWJsZVxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LCBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTb2hvQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zb2hvLWFjY29yZGlvbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNvaG9BY2NvcmRpb25QYW5lQ29tcG9uZW50IH0gZnJvbSAnLi9zb2hvLWFjY29yZGlvbi1wYW5lLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQW5ndWxhciBXcmFwcGVyIGZvciB0aGUgU29obyBBY2NvcmRpb24gY29udHJvbC5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBzZWFyY2hlcyBmb3IgYW4gZWxlbWVudCwgYW5ub3RhdGVkIHdpdGggdGhlIGBzb2hvLWFjY29yZGlvbmAgYXR0cmlidXRlLFxuICogYW5kIHRoZW4gbWF0Y2hlcyB0aGlzIGNvbXBvbmVudCB0byBpdC5cbiAqIDxicj5cbiAqIFRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlIGNvbXBvbmVudCBjYW4gYmUgY29udHJvbGxlZCB1c2luZyB0aGUgc2V0IG9mIGlucHV0cy5cbiAqXG4gKiBUaGUgQWNjb3JkaW9uIGlzIGEgZ3JvdXBlZCBzZXQgb2YgY29sbGFwc2libGUgcGFuZWxzIHVzZWQgdG8gbmF2aWdhdGUgc2VjdGlvbnMgb2ZcbiAqIHJlbGF0ZWQgY29udGVudC4gRWFjaCBwYW5lbCBjb25zaXN0cyBvZiB0d28gbGV2ZWxzOiB0aGUgdG9wIGxldmVsIGlkZW50aWZpZXMgdGhlXG4gKiBjYXRlZ29yeSBvciBzZWN0aW9uIGhlYWRlciwgYW5kIHRoZSBzZWNvbmQgbGV2ZWwgcHJvdmlkZXMgdGhlIGFzc29jaWF0ZWQgb3B0aW9ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc29oby1hY2NvcmRpb24nLFxuICB0ZW1wbGF0ZVVybDogJ3NvaG8tYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ob0FjY29yZGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG5cbiAgLy8gQWxsIGhlYWRlcnMuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tZm9yd2FyZC1yZWZcbiAgQENvbnRlbnRDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQpKVxuICBoZWFkZXJzITogUXVlcnlMaXN0PFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQ+O1xuXG4gIC8vIEFsbCBwYW5lcy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1mb3J3YXJkLXJlZlxuICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gU29ob0FjY29yZGlvblBhbmVDb21wb25lbnQpKVxuICBwYW5lcyE6IFF1ZXJ5TGlzdDxTb2hvQWNjb3JkaW9uUGFuZUNvbXBvbmVudD47XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBPcHRpb25zIEJsb2NrXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwdWJsaWMgb3B0aW9uczogU29ob0FjY29yZGlvbk9wdGlvbnMgPSB7fTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFByaXZhdGUgTWVtYmVyIERhdGFcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGpRdWVyeSBzZWxlY3Rvci4gKi9cbiAgcHJpdmF0ZSBqUXVlcnlFbGVtZW50ITogSlF1ZXJ5IHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2VzIHRvIHRoZSBTb2hvIGNvbnRyb2wgYXBpLlxuICAgKi9cbiAgcHJpdmF0ZSBhY2NvcmRpb24hOiBTb2hvQWNjb3JkaW9uU3RhdGljO1xuXG4gIC8qKlxuICAgKiBVc2VkIHRvIGNhbGwgdXBkYXRlZCBmcm9tIHRoZSBhZnRlclZpZXdDaGVja2VkIGxpZmVjeWNsZSBldmVudC5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlUmVxdWlyZWQ/OiBib29sZWFuO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gQ29tcG9uZW50IE91dHB1dFxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lICovXG4gIEBPdXRwdXQoJ2JlZm9yZWV4cGFuZCcpIGJlZm9yZWV4cGFuZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2JlZm9yZWNvbGxhcHNlJykgYmVmb3JlY29sbGFwc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdiZWZvcmVzZWxlY3QnKSBiZWZvcmVzZWxlY3RFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdzZWxlY3RlZCcpIHNlbGVjdGVkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnZm9sbG93bGluaycpIGZvbGxvd2xpbmtFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdleHBhbmQnKSBleHBhbmRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCdhZnRlcmV4cGFuZCcpIGFmdGVyZXhwYW5kRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgnY29sbGFwc2UnKSBjb2xsYXBzZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ2FmdGVyY29sbGFwc2UnKSBhZnRlcmNvbGxhcHNlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENvbXBvbmVudCBJbnB1dHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBJZiBhbiBBY2NvcmRpb24gcGFuZSBpcyBvcGVuLCBhbmQgdGhhdCBwYW5lIGNvbnRhaW5zIHN1Yi1oZWFkZXJzLCBvbmx5IG9uZVxuICAgKiBvZiB0aGUgcGFuZSdzIHN1Yi1oZWFkZXJzIGNhbiBiZSBvcGVuIGF0IGEgdGltZS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICpcbiAgICogSWYgc2V0IHRvIHRydWUsIGFsbG93cyBvbmx5IG9uZSBwYW5lIG9mIHRoZSBhY2NvcmRpb24gdG8gYmUgb3BlbiBhdCBhIHRpbWUuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGFsbG93T25lUGFuZShhbGxvd09uZVBhbmU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuYWxsb3dPbmVQYW5lID0gdHlwZW9mIChhbGxvd09uZVBhbmUpID09PSAnYm9vbGVhbicgJiYgYWxsb3dPbmVQYW5lO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuYWxsb3dPbmVQYW5lID0gdGhpcy5vcHRpb25zLmFsbG93T25lUGFuZTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGFsbG93T25lUGFuZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmFsbG93T25lUGFuZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5cyBhIFwiQ2hldnJvblwiIGljb24gdGhhdCBzaXRzIG9mZiB0byB0aGUgcmlnaHQtbW9zdCBzaWRlIG9mIGEgdG9wLWxldmVsIGFjY29yZGlvbiBoZWFkZXIuXG4gICAqIFVzZWQgaW4gcGxhY2Ugb2YgYW4gRXhwYW5kZXIgKCsvLSkgaWYgZW5hYmxlZC5cbiAgICpcbiAgICpcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZGlzcGxheUNoZXZyb24oZGlzcGxheUNoZXZyb246IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuZGlzcGxheUNoZXZyb24gPSB0eXBlb2YgKGRpc3BsYXlDaGV2cm9uKSA9PT0gJ2Jvb2xlYW4nICYmIGRpc3BsYXlDaGV2cm9uO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuZGlzcGxheUNoZXZyb24gPSB0aGlzLm9wdGlvbnMuZGlzcGxheUNoZXZyb247XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBkaXNwbGF5Q2hldnJvbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmRpc3BsYXlDaGV2cm9uO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIGljb25vZ3JhcGh5IHVzZWQgaW4gYWNjb3JkaW9uIGhlYWRlciBleHBhbmRlciBidXR0b25zLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBleHBhbmRlckRpc3BsYXkoZXhwYW5kZXJEaXNwbGF5OiBTb2hvQWNjb3JkaW9uRXhwYW5kZXJUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcHRpb25zLmV4cGFuZGVyRGlzcGxheSA9IGV4cGFuZGVyRGlzcGxheTtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLmV4cGFuZGVyRGlzcGxheSA9IHRoaXMub3B0aW9ucy5leHBhbmRlckRpc3BsYXk7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBleHBhbmRlckRpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5leHBhbmRlckRpc3BsYXk7XG4gIH1cblxuICAvKipcbiAgICogQ2FuIGJlIHNldCB0byBmYWxzZSBpZiByb3V0aW5nIGlzIGV4dGVybmFsbHkgaGFuZGxlZCwgb3RoZXJ3aXNlXG4gICAqIGxpbmtzIGFyZSBoYW5kbGVkIG5vcm1hbGx5LlxuICAgKlxuICAgKlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCByZXJvdXRlT25MaW5rQ2xpY2socmVyb3V0ZU9uTGlua0NsaWNrOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5vcHRpb25zLnJlcm91dGVPbkxpbmtDbGljayA9IHR5cGVvZiAocmVyb3V0ZU9uTGlua0NsaWNrKSA9PT0gJ2Jvb2xlYW4nICYmIHJlcm91dGVPbkxpbmtDbGljaztcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLnJlcm91dGVPbkxpbmtDbGljayA9IHRoaXMub3B0aW9ucy5yZXJvdXRlT25MaW5rQ2xpY2s7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCByZXJvdXRlT25MaW5rQ2xpY2soKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5yZXJvdXRlT25MaW5rQ2xpY2s7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgYWxlcnQgYmFkZ2UgdG8gdGhlIGFjY29yZGlvbiBoZWFkZXIgKHVzZWQgZm9yIEFwcCBtZW51KVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBub3RpZmljYXRpb25CYWRnZShub3RpZmljYXRpb25CYWRnZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5ub3RpZmljYXRpb25CYWRnZSA9IHR5cGVvZiAobm90aWZpY2F0aW9uQmFkZ2UpID09PSAnYm9vbGVhbicgJiYgbm90aWZpY2F0aW9uQmFkZ2U7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5ub3RpZmljYXRpb25CYWRnZSA9IHRoaXMub3B0aW9ucy5ub3RpZmljYXRpb25CYWRnZTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IG5vdGlmaWNhdGlvbkJhZGdlKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubm90aWZpY2F0aW9uQmFkZ2U7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgd2hlbiBpbXBsZW1lbnRlZCBwcm92aWRlZCBhIGNhbGwgYmFjayBmb3IgXCJhamF4IGxvYWRpbmdcIiBvZiB0YWIgY29udGVudHMgb24gb3Blbi5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgc291cmNlKHNvdXJjZTogRnVuY3Rpb24gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuc291cmNlID0gc291cmNlO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuc291cmNlID0gdGhpcy5vcHRpb25zLnNvdXJjZTtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNvdXJjZSgpOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheSBhY2NvcmRpb24gd2l0aCBwYW5lbHNcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgaGFzUGFuZWxzKGhhc1BhbmVsczogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5oYXNQYW5lbHMgPSBoYXNQYW5lbHM7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5oYXNQYW5lbHMgPSB0aGlzLm9wdGlvbnMuaGFzUGFuZWxzO1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNQYW5lbHMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5oYXNQYW5lbHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb2xvciBzY2hlbWUgdG8gaW52ZXJzZVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBpbnZlcnNlKGludmVyc2U6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuaW52ZXJzZSA9IGludmVyc2U7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICAodGhpcy5hY2NvcmRpb24uc2V0dGluZ3MgYXMgYW55KS5pbnZlcnNlID0gdGhpcy5vcHRpb25zLmludmVyc2U7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBpbnZlcnNlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaW52ZXJzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbG9yIHNjaGVtZSB0byBhbHRlcm5hdGVcbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgYWx0ZXJuYXRlKGJvb2w6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLm9wdGlvbnMuYWx0ZXJuYXRlID0gYm9vbDtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICh0aGlzLmFjY29yZGlvbi5zZXR0aW5ncyBhcyBhbnkpLmFsdGVybmF0ZSA9IHRoaXMub3B0aW9ucy5hbHRlcm5hdGU7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFsdGVybmF0ZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmFsdGVybmF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRvb2x0aXBzIGZvciBsb25nZXIgdGV4dCB0aGF0IGlzIGhhbmRsZWQgd2l0aCBlbGxpcHNpc1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBlbmFibGVUb29sdGlwcyhlbmFibGVUb29sdGlwczogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMub3B0aW9ucy5lbmFibGVUb29sdGlwcyA9IGVuYWJsZVRvb2x0aXBzO1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgKHRoaXMuYWNjb3JkaW9uLnNldHRpbmdzIGFzIGFueSkuZW5hYmxlVG9vbHRpcHMgPSB0aGlzLm9wdGlvbnMuZW5hYmxlVG9vbHRpcHM7XG4gICAgICB0aGlzLm1hcmtGb3JVcGRhdGUoKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBlbmFibGVUb29sdGlwcygpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmVuYWJsZVRvb2x0aXBzO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIGhhc1N1YmhlYWRlclNlcGFyYXRvcnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSB0aGUgZWxlbWVudCBtYXRjaGluZyB0aGUgY29tcG9uZW50J3Mgc2VsZWN0b3IuXG4gICAqIEBwYXJhbSBuZ1pvbmUgLSB6b25lIGFjY2Vzcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkgeyB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQdWJsaWMgQVBJXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKipcbiAgICogR2V0J3MgdGhlIG50aCBoZWFkZXIgZnJvbSB0aGUgYWNjb3JkaW9uLlxuICAgKlxuICAgKiBAdG9kbyAtIGhvdyBiZXN0IHRvIGFjY2VzcyB0aGUgaGVhZGVycz9cbiAgICpcbiAgICogQHBhcmFtIGluZGV4IC0gdGhlIGluZGV4IG9mIHRoZSBhY2NvcmRpb24gaGVhZGVyLlxuICAgKiBAcmV0dXJuIHRoZSBoZWFkZXIgYXQgdGhlIGdpdmVuIGluZGV4LlxuICAgKi9cbiAgcHVibGljIGdldEhlYWRlcihpbmRleDogbnVtYmVyKTogU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmhlYWRlcnMpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmhlYWRlcnMudG9BcnJheSgpW2luZGV4XTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmQgdGhlIGdpdmVuIFBhbmVsIG9uIHRoZSBBY2NvcmRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgJm5ic3A7LSZuYnNwOyB0aGUgaGVhZGVyIGNvbXBvbmVudFxuICAgKi9cbiAgcHVibGljIGV4cGFuZChoZWFkZXI6IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmV4cGFuZCh0eXBlb2YgaGVhZGVyID09PSAnc3RyaW5nJyA/IGhlYWRlciA6IGhlYWRlclsnalF1ZXJ5RWxlbWVudCddKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsYXBzZSB0aGUgZ2l2ZW4gUGFuZWwgb24gdGhlIEFjY29yZGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhlYWRlciAmbmJzcDstJm5ic3A7IHRoZSBqcXVlcnkgaGVhZGVyIGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyBjb2xsYXBzZShoZWFkZXI6IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLmNvbGxhcHNlKHR5cGVvZiBoZWFkZXIgPT09ICdzdHJpbmcnID8gaGVhZGVyIDogaGVhZGVyWydqUXVlcnlFbGVtZW50J10pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgYWxsIGFjY29yZGlvbiBoZWFkZXJzLCBpZiBwb3NzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBleHBhbmRBbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi5leHBhbmRBbGwoKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbGxhcHNlcyBhbGwgdGhlIGV4cGFuZGVkIHBhbmVscy5cbiAgICpcbiAgICpcbiAgICovXG4gIHB1YmxpYyBjb2xsYXBzZUFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYWNjb3JkaW9uLmNvbGxhcHNlQWxsKCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNhYmxlcyB0aGUgY29udHJvbC5cbiAgICovXG4gIHB1YmxpYyBkaXNhYmxlKCkge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24uZGlzYWJsZSgpKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEVuYWJsZXMgdGhlIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgZW5hYmxlKCkge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24uZW5hYmxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGhlYWRlciBpcyBjdXJyZW50bHkgZGlzYWJsZWQgb3IgdGhlIHdob2xlIGFjY29yZGlvblxuICAgKiBpcyBkaXNhYmxlZDsgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKlxuICAgKiBAcGFyYW0gaGVhZGVyIHRoZSBhY2NvcmRpb24gaGVhZGVyIHBhbmVsIHRvIGNoZWNrLlxuICAgKi9cbiAgcHVibGljIGlzRGlzYWJsZWQoaGVhZGVyOiBTb2hvQWNjb3JkaW9uSGVhZGVyQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWNjb3JkaW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24uaXNEaXNhYmxlZChoZWFkZXIualF1ZXJ5RWxlbWVudCkpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBoZWFkZXIgaXMgY3VycmVudGx5IGV4cGFuZGVkOyBvdGhlcndpc2VcbiAgICogZmFsc2UuXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgdGhlIGFjY29yZGlvbiBoZWFkZXIgcGFuZWwgdG8gY2hlY2suXG4gICAqL1xuICBwdWJsaWMgaXNFeHBhbmRlZChoZWFkZXI6IFNvaG9BY2NvcmRpb25IZWFkZXJDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFjY29yZGlvbi5pc0V4cGFuZGVkKGhlYWRlci5qUXVlcnlFbGVtZW50KSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIGdpdmVuIFBhbmVsIG9uIHRoZSBBY2NvcmRpb24gYmV0d2VlbiBleHBhbmRlZCBhbmQgY29sbGFwc2VkXG4gICAqXG4gICAqIEBwYXJhbSBoZWFkZXIgJm5ic3A7LSZuYnNwOyB0aGUganF1ZXJ5IGhlYWRlciBlbGVtZW50XG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlKGhlYWRlcjogU29ob0FjY29yZGlvbkhlYWRlckNvbXBvbmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24udG9nZ2xlKGhlYWRlci5qUXVlcnlFbGVtZW50KSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgdG8gbm90aWZ5IHRoZSBhY2NvcmRpb24gYWJvdXQgYW55IGRvbSBjaGFuZ2VzXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlZChoZWFkZXJzPzogSlF1ZXJ5W10sIHNldHRpbmdzPzogU29ob0FjY29yZGlvbk9wdGlvbnMpOiB2b2lkIHtcbiAgICBpZiAoc2V0dGluZ3MpIHtcbiAgICAgIHRoaXMub3B0aW9ucyA9IFNvaG8udXRpbHMubWVyZ2VTZXR0aW5ncygodGhpcy5lbGVtZW50IGFzIGFueSlbMF0sIHNldHRpbmdzLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjY29yZGlvbikge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hY2NvcmRpb24udXBkYXRlZChoZWFkZXJzLCB0aGlzLm9wdGlvbnMpKTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTGlmZWN5Y2xlIEV2ZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIC8vIFdyYXAgdGhlIGVsZW1lbnQgaW4gYSBqUXVlcnkgc2VsZWN0b3IuXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQgPSBqUXVlcnkodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlc1swXSk7XG5cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIGV2ZW50IGhhbmRsZXJzLlxuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50XG4gICAgICAgIC5vbignYmVmb3JlZXhwYW5kJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmJlZm9yZWV4cGFuZEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pKVxuICAgICAgICAub24oJ2JlZm9yZWNvbGxhcHNlJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmJlZm9yZWNvbGxhcHNlRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignYmVmb3Jlc2VsZWN0JywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmJlZm9yZXNlbGVjdEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pKVxuICAgICAgICAub24oJ3NlbGVjdGVkJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLnNlbGVjdGVkRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignZm9sbG93bGluaycsIChldmVudDogU29ob0FjY29yZGlvbkV2ZW50LCBhbmNob3IpID0+XG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGV2ZW50LmFuY2hvciA9IGFuY2hvcjsgdGhpcy5mb2xsb3dsaW5rRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignZXhwYW5kJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmV4cGFuZEV2ZW50LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0pKVxuICAgICAgICAub24oJ2FmdGVyZXhwYW5kJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmFmdGVyZXhwYW5kRXZlbnQuZW1pdChldmVudCk7XG4gICAgICAgICAgfSkpXG4gICAgICAgIC5vbignY29sbGFwc2UnLCAoZXZlbnQ6IFNvaG9BY2NvcmRpb25FdmVudCwgYW5jaG9yKSA9PlxuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICBldmVudC5hbmNob3IgPSBhbmNob3I7IHRoaXMuY29sbGFwc2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSlcbiAgICAgICAgLm9uKCdhZnRlcmNvbGxhcHNlJywgKGV2ZW50OiBTb2hvQWNjb3JkaW9uRXZlbnQsIGFuY2hvcikgPT5cbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgZXZlbnQuYW5jaG9yID0gYW5jaG9yOyB0aGlzLmFmdGVyY29sbGFwc2VFdmVudC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICB9KSk7XG5cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIFNvaG9YaSBDb250cm9sXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQuYWNjb3JkaW9uKHRoaXMub3B0aW9ucyk7XG5cbiAgICAgIC8vIE9uY2UgdGhlIGNvbnRyb2wgaXMgaW5pdGlhbGlzZWQsIGV4dHJhY3QgdGhlIGNvbnRyb2xcbiAgICAgIC8vIHBsdWctaW4gZnJvbSB0aGUgZWxlbWVudC4gIFRoZSBlbGVtZW50IG5hbWUgaXNcbiAgICAgIC8vIGRlZmluZWQgYnkgdGhlIHBsdWctaW4sIGJ1dCBpbiB0aGlzIGNhc2UgaXQgaXMgJ2FjY29yZGlvbicuXG4gICAgICB0aGlzLmFjY29yZGlvbiA9IHRoaXMualF1ZXJ5RWxlbWVudC5kYXRhKCdhY2NvcmRpb24nKTtcbiAgICB9KTtcbiAgfVxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMudXBkYXRlUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudXBkYXRlZCgpO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cnVjdG9yLlxuICAgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gY2FsbCBvdXRzaWRlIHRoZSBhbmd1bGFyIHpvbmUgc28gY2hhbmdlIGRldGVjdGlvbiBpc24ndCB0cmlnZ2VyZWQgYnkgdGhlIHNvaG8gY29tcG9uZW50LlxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmpRdWVyeUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9mZigpO1xuICAgICAgICB0aGlzLmpRdWVyeUVsZW1lbnQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hY2NvcmRpb24pIHtcbiAgICAgICAgdGhpcy5hY2NvcmRpb24/LmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya0ZvclVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJ7J2FjY29yZGlvbic6IHRydWUsICdwYW5lbCc6IGhhc1BhbmVscywgJ2FsdGVybmF0ZSc6IGFsdGVybmF0ZSwgJ2ludmVyc2UnOiBpbnZlcnNlLCAnaGFzLXN1YmhlYWRlci1zZXBhcmF0b3JzJzogaGFzU3ViaGVhZGVyU2VwYXJhdG9yc31cIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
@@ -181,6 +181,7 @@ export class SohoActionsheetComponent {
|
|
|
181
181
|
this.ngZone.runOutsideAngular(() => {
|
|
182
182
|
if (this.jQueryElement) {
|
|
183
183
|
this.jQueryElement.off();
|
|
184
|
+
this.jQueryElement = undefined;
|
|
184
185
|
}
|
|
185
186
|
if (this.actionsheet) {
|
|
186
187
|
this.actionsheet.destroy();
|
|
@@ -249,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
249
250
|
}], attributes: [{
|
|
250
251
|
type: Input
|
|
251
252
|
}] } });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hY3Rpb25zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZHMtZW50ZXJwcmlzZS1uZy9zcmMvbGliL2FjdGlvbnNoZWV0L3NvaG8tYWN0aW9uc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7Ozs7O09BS0c7SUFDSCxZQUNVLE9BQW1CLEVBQ25CLE1BQWM7UUFEZCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWTSxZQUFPLEdBQUcsY0FBYyxDQUFDO1FBYS9DLGFBQVEsR0FBMkI7WUFDekMsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLEdBQUc7WUFDbkIsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLE9BQU87YUFDekI7WUFDRCxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUM7SUFaQyxDQUFDO0lBZ0JKLElBQWEsT0FBTyxDQUFDLE9BQTJDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM3QztJQUNILENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsSUFBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMs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LElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztxSEF2UFUsd0JBQXdCO3lHQUF4Qix3QkFBd0IsMGFBSHpCLDJCQUEyQjsyRkFHMUIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtzSEFFK0IsT0FBTztzQkFBcEMsV0FBVzt1QkFBQyxlQUFlO2dCQTJCZixPQUFPO3NCQUFuQixLQUFLO2dCQWVPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFlTyxTQUFTO3NCQUFyQixLQUFLO2dCQWVPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBZU8sb0JBQW9CO3NCQUFoQyxLQUFLO2dCQWVPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBZU8sUUFBUTtzQkFBcEIsS0FBSztnQkFlTyxRQUFRO3NCQUFwQixLQUFLO2dCQWVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBZU8sUUFBUTtzQkFBcEIsS0FBSztnQkFlTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rpdltzb2hvLWFjdGlvbnNoZWV0XScsIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ob0FjdGlvbnNoZWV0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5kaXNwbGF5JykgZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvclxuICAgKiBcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgLSB0aGUgZWxlbWVudCBtYXRjaGluZyB0aGUgY29tcG9uZW50J3Mgc2VsZWN0b3IuXG4gICAqIEBwYXJhbSBuZ1pvbmUgLSB0aGUgYW5ndWxhciB6b25lIGZvciB0aGlzIGNvbXBvbmVudC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHt9XG5cbiAgcHJpdmF0ZSBfb3B0aW9uczogU29ob0FjdGlvbnNoZWV0T3B0aW9ucyA9IHtcbiAgICBicmVha3BvaW50OiAncGhvbmUtdG8tdGFibGV0JyxcbiAgICBkaXNwbGF5QXNBY3Rpb25TaGVldDogJ3Jlc3BvbnNpdmUnLFxuICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgICBvdmVybGF5T3BhY2l0eTogMC43LFxuICAgIHRyYXk6IGZhbHNlLFxuICAgIHRyYXlPcHRzOiB7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdzbGF0ZSdcbiAgICB9LFxuICAgIHNob3dDYW5jZWxCdXR0b246IHRydWVcbiAgfTtcbiAgcHJpdmF0ZSBhY3Rpb25zaGVldD86IFNvaG9BY3Rpb25zaGVldFN0YXRpYyB8IG51bGw7XG4gIHByaXZhdGUgalF1ZXJ5RWxlbWVudCE6IEpRdWVyeTtcblxuICBASW5wdXQoKSBzZXQgYWN0aW9ucyhhY3Rpb25zOiBTb2hvQWN0aW9uc2hlZXRBY3Rpb25zIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5hY3Rpb25zID0gYWN0aW9ucztcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmFjdGlvbnMgPSBhY3Rpb25zO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGFjdGlvbnMoKTogU29ob0FjdGlvbnNoZWV0QWN0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgaWYoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmFjdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmFjdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2hvd0NhbmNlbEJ1dHRvbihzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5zaG93Q2FuY2VsQnV0dG9uID0gc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLnNob3dDYW5jZWxCdXR0b24gPSBzaG93Q2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dDYW5jZWxCdXR0b24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5zaG93Q2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5zaG93Q2FuY2VsQnV0dG9uO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGF1dG9Gb2N1cyhhdXRvRm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLmF1dG9Gb2N1cyA9IGF1dG9Gb2N1cztcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF1dG9Gb2N1cyA9IGF1dG9Gb2N1cztcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBhdXRvRm9jdXMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5hdXRvRm9jdXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF1dG9Gb2N1cztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBicmVha3BvaW50KGJyZWFrcG9pbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMuYnJlYWtwb2ludCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5icmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBicmVha3BvaW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5icmVha3BvaW50O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5icmVha3BvaW50O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRpc3BsYXlBc0FjdGlvblNoZWV0KGRpc3BsYXlBc0FjdGlvblNoZWV0OiBTb2hvQWN0aW9uc2hlZXREaXNwbGF5IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5kaXNwbGF5QXNBY3Rpb25TaGVldCA9IGRpc3BsYXlBc0FjdGlvblNoZWV0O1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3MuZGlzcGxheUFzQWN0aW9uU2hlZXQgPSBkaXNwbGF5QXNBY3Rpb25TaGVldDtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBkaXNwbGF5QXNBY3Rpb25TaGVldCgpOiBTb2hvQWN0aW9uc2hlZXREaXNwbGF5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmRpc3BsYXlBc0FjdGlvblNoZWV0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5kaXNwbGF5QXNBY3Rpb25TaGVldDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvdmVybGF5T3BhY2l0eShvdmVybGF5T3BhY2l0eTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5vdmVybGF5T3BhY2l0eSA9IG92ZXJsYXlPcGFjaXR5O1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3Mub3ZlcmxheU9wYWNpdHkgPSBvdmVybGF5T3BhY2l0eTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBvdmVybGF5T3BhY2l0eSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub3ZlcmxheU9wYWNpdHk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm92ZXJsYXlPcGFjaXR5O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG9uU2VsZWN0KG9uU2VsZWN0OiBGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMub25TZWxlY3QgPSBvblNlbGVjdDtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uU2VsZWN0ID0gb25TZWxlY3Q7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgb25TZWxlY3QoKTogRnVuY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub25TZWxlY3Q7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uU2VsZWN0O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG9uQ2FuY2VsKG9uQ2FuY2VsOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMub25DYW5jZWwgPSBvbkNhbmNlbDtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uQ2FuY2VsID0gb25DYW5jZWw7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgb25DYW5jZWwoKTogRnVuY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub25DYW5jZWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uQ2FuY2VsO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRyYXkodHJheTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMudHJheSA9IHRyYXk7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5ID0gdHJheTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0cmF5KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMudHJheTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3MudHJheTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0cmF5T3B0cyh0cmF5T3B0czogU29ob0FjdGlvbnNoZWV0VHJheU9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLnRyYXlPcHRzID0gdHJheU9wdHM7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5T3B0cyA9IHRyYXlPcHRzO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHRyYXlPcHRzKCk6IFNvaG9BY3Rpb25zaGVldFRyYXlPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnRyYXlPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5T3B0cztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEFycmF5PE9iamVjdD4gfCBPYmplY3QgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgICh0aGlzLmFjdGlvbnNoZWV0IGFzIGFueSkuc2V0dGluZ3MuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgYXR0cmlidXRlcygpOiBBcnJheTxPYmplY3Q+IHwgT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmF0dHJpYnV0ZXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF0dHJpYnV0ZXM7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gV3JhcCB0aGUgZWxlbWVudCBpbiBhIGpRdWVyeSBzZWxlY3Rvci5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IGpRdWVyeSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlIFNvaG8gQ29udHJvbC5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5hY3Rpb25zaGVldCh0aGlzLl9vcHRpb25zKTtcblxuICAgICAgLy8gQWRkIGNsYXNzZXMgZm9yIHN0eWxpbmcgb2YgdGhlIGFjdGlvbnNoZWV0IHRyaWdnZXJcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5maW5kKCdidXR0b24nKS5hZGRDbGFzcygnYnRuLWFjdGlvbnMgdmVydGljYWwnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBUZWFycyBkb3duIGFuZCByZW1vdmVzIGFueSBhZGRlZCBtYXJrdXAgYW5kIGV2ZW50cy4gKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMualF1ZXJ5RWxlbWVudCkge1xuICAgICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub2ZmKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgICB0aGlzLmFjdGlvbnNoZWV0LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zaGVldCA9IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgYSBVSSBSZXN5bmMuXG4gICAqL1xuICB1cGRhdGVkKHNldHRpbmdzPzogU29ob0FjdGlvbnNoZWV0T3B0aW9ucykge1xuICAgIGlmIChzZXR0aW5ncykge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHNldHRpbmdzO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQ/LnVwZGF0ZWQodGhpcy5fb3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGVhcnMgZG93biBhbmQgcmVtb3ZlcyBhbnkgYWRkZWQgbWFya3VwIGFuZCBldmVudHMuXG4gICAqL1xuICBkZXN0cm95KCkge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQ/LmRlc3Ryb3koKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hY3Rpb25zaGVldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZHMtZW50ZXJwcmlzZS1uZy9zcmMvbGliL2FjdGlvbnNoZWV0L3NvaG8tYWN0aW9uc2hlZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUM7O0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFHbkM7Ozs7O09BS0c7SUFDSCxZQUNVLE9BQW1CLEVBQ25CLE1BQWM7UUFEZCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFWTSxZQUFPLEdBQUcsY0FBYyxDQUFDO1FBYS9DLGFBQVEsR0FBMkI7WUFDekMsVUFBVSxFQUFFLGlCQUFpQjtZQUM3QixvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLFNBQVMsRUFBRSxJQUFJO1lBQ2YsY0FBYyxFQUFFLEdBQUc7WUFDbkIsSUFBSSxFQUFFLEtBQUs7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsZUFBZSxFQUFFLE9BQU87YUFDekI7WUFDRCxnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCLENBQUM7SUFaRSxDQUFDO0lBZ0JMLElBQWEsT0FBTyxDQUFDLE9BQTJDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFZixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUM3QztJQUNILENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMs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d0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkaXZbc29oby1hY3Rpb25zaGVldF0nLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNvaG9BY3Rpb25zaGVldENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnc3R5bGUuZGlzcGxheScpIGRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcblxuICAvKipcbiAgICogQ29uc3RydWN0b3JcbiAgICogXG4gICAqIEBwYXJhbSBlbGVtZW50UmVmIC0gdGhlIGVsZW1lbnQgbWF0Y2hpbmcgdGhlIGNvbXBvbmVudCdzIHNlbGVjdG9yLlxuICAgKiBAcGFyYW0gbmdab25lIC0gdGhlIGFuZ3VsYXIgem9uZSBmb3IgdGhpcyBjb21wb25lbnQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7IH1cblxuICBwcml2YXRlIF9vcHRpb25zOiBTb2hvQWN0aW9uc2hlZXRPcHRpb25zID0ge1xuICAgIGJyZWFrcG9pbnQ6ICdwaG9uZS10by10YWJsZXQnLFxuICAgIGRpc3BsYXlBc0FjdGlvblNoZWV0OiAncmVzcG9uc2l2ZScsXG4gICAgYXV0b0ZvY3VzOiB0cnVlLFxuICAgIG92ZXJsYXlPcGFjaXR5OiAwLjcsXG4gICAgdHJheTogZmFsc2UsXG4gICAgdHJheU9wdHM6IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ3NsYXRlJ1xuICAgIH0sXG4gICAgc2hvd0NhbmNlbEJ1dHRvbjogdHJ1ZVxuICB9O1xuICBwcml2YXRlIGFjdGlvbnNoZWV0PzogU29ob0FjdGlvbnNoZWV0U3RhdGljIHwgbnVsbDtcbiAgcHJpdmF0ZSBqUXVlcnlFbGVtZW50ITogSlF1ZXJ5IHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zKGFjdGlvbnM6IFNvaG9BY3Rpb25zaGVldEFjdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLmFjdGlvbnMgPSBhY3Rpb25zO1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3MuYWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBTb2hvQWN0aW9uc2hlZXRBY3Rpb25zIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmFjdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmFjdGlvbnM7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2hvd0NhbmNlbEJ1dHRvbihzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5zaG93Q2FuY2VsQnV0dG9uID0gc2hvd0NhbmNlbEJ1dHRvbjtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLnNob3dDYW5jZWxCdXR0b24gPSBzaG93Q2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHNob3dDYW5jZWxCdXR0b24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5zaG93Q2FuY2VsQnV0dG9uO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5zaG93Q2FuY2VsQnV0dG9uO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGF1dG9Gb2N1cyhhdXRvRm9jdXM6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLmF1dG9Gb2N1cyA9IGF1dG9Gb2N1cztcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF1dG9Gb2N1cyA9IGF1dG9Gb2N1cztcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBhdXRvRm9jdXMoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5hdXRvRm9jdXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF1dG9Gb2N1cztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBicmVha3BvaW50KGJyZWFrcG9pbnQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMuYnJlYWtwb2ludCA9IGJyZWFrcG9pbnQ7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5icmVha3BvaW50ID0gYnJlYWtwb2ludDtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBicmVha3BvaW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5icmVha3BvaW50O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5icmVha3BvaW50O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRpc3BsYXlBc0FjdGlvblNoZWV0KGRpc3BsYXlBc0FjdGlvblNoZWV0OiBTb2hvQWN0aW9uc2hlZXREaXNwbGF5IHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5kaXNwbGF5QXNBY3Rpb25TaGVldCA9IGRpc3BsYXlBc0FjdGlvblNoZWV0O1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3MuZGlzcGxheUFzQWN0aW9uU2hlZXQgPSBkaXNwbGF5QXNBY3Rpb25TaGVldDtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBkaXNwbGF5QXNBY3Rpb25TaGVldCgpOiBTb2hvQWN0aW9uc2hlZXREaXNwbGF5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmRpc3BsYXlBc0FjdGlvblNoZWV0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy5kaXNwbGF5QXNBY3Rpb25TaGVldDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBvdmVybGF5T3BhY2l0eShvdmVybGF5T3BhY2l0eTogbnVtYmVyIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3B0aW9ucy5vdmVybGF5T3BhY2l0eSA9IG92ZXJsYXlPcGFjaXR5O1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3Mub3ZlcmxheU9wYWNpdHkgPSBvdmVybGF5T3BhY2l0eTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBvdmVybGF5T3BhY2l0eSgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub3ZlcmxheU9wYWNpdHk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm92ZXJsYXlPcGFjaXR5O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG9uU2VsZWN0KG9uU2VsZWN0OiBGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMub25TZWxlY3QgPSBvblNlbGVjdDtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uU2VsZWN0ID0gb25TZWxlY3Q7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgb25TZWxlY3QoKTogRnVuY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub25TZWxlY3Q7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uU2VsZWN0O1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG9uQ2FuY2VsKG9uQ2FuY2VsOiBGdW5jdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMub25DYW5jZWwgPSBvbkNhbmNlbDtcbiAgICB0aGlzLnVwZGF0ZWQoKTtcblxuICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uQ2FuY2VsID0gb25DYW5jZWw7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgb25DYW5jZWwoKTogRnVuY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMub25DYW5jZWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLm9uQ2FuY2VsO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHRyYXkodHJheTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX29wdGlvbnMudHJheSA9IHRyYXk7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5ID0gdHJheTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB0cmF5KCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICghdGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnMudHJheTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc2hlZXQuc2V0dGluZ3MudHJheTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCB0cmF5T3B0cyh0cmF5T3B0czogU29ob0FjdGlvbnNoZWV0VHJheU9wdGlvbnMgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLnRyYXlPcHRzID0gdHJheU9wdHM7XG4gICAgdGhpcy51cGRhdGVkKCk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25zaGVldCkge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5T3B0cyA9IHRyYXlPcHRzO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHRyYXlPcHRzKCk6IFNvaG9BY3Rpb25zaGVldFRyYXlPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnRyYXlPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zaGVldC5zZXR0aW5ncy50cmF5T3B0cztcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEFycmF5PE9iamVjdD4gfCBPYmplY3QgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcHRpb25zLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgIHRoaXMudXBkYXRlZCgpO1xuXG4gICAgaWYgKHRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgICh0aGlzLmFjdGlvbnNoZWV0IGFzIGFueSkuc2V0dGluZ3MuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgYXR0cmlidXRlcygpOiBBcnJheTxPYmplY3Q+IHwgT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuYWN0aW9uc2hlZXQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmF0dHJpYnV0ZXM7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFjdGlvbnNoZWV0LnNldHRpbmdzLmF0dHJpYnV0ZXM7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gV3JhcCB0aGUgZWxlbWVudCBpbiBhIGpRdWVyeSBzZWxlY3Rvci5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IGpRdWVyeSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIC8vIEluaXRpYWxpemUgdGhlIFNvaG8gQ29udHJvbC5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5hY3Rpb25zaGVldCh0aGlzLl9vcHRpb25zKTtcblxuICAgICAgLy8gQWRkIGNsYXNzZXMgZm9yIHN0eWxpbmcgb2YgdGhlIGFjdGlvbnNoZWV0IHRyaWdnZXJcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5maW5kKCdidXR0b24nKS5hZGRDbGFzcygnYnRuLWFjdGlvbnMgdmVydGljYWwnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBUZWFycyBkb3duIGFuZCByZW1vdmVzIGFueSBhZGRlZCBtYXJrdXAgYW5kIGV2ZW50cy4gKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMualF1ZXJ5RWxlbWVudCkge1xuICAgICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub2ZmKCk7XG4gICAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICAgIHRoaXMuYWN0aW9uc2hlZXQuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLmFjdGlvbnNoZWV0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyBhIFVJIFJlc3luYy5cbiAgICovXG4gIHVwZGF0ZWQoc2V0dGluZ3M/OiBTb2hvQWN0aW9uc2hlZXRPcHRpb25zKSB7XG4gICAgaWYgKHNldHRpbmdzKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gc2V0dGluZ3M7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldD8udXBkYXRlZCh0aGlzLl9vcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZWFycyBkb3duIGFuZCByZW1vdmVzIGFueSBhZGRlZCBtYXJrdXAgYW5kIGV2ZW50cy5cbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKCF0aGlzLmFjdGlvbnNoZWV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5hY3Rpb25zaGVldD8uZGVzdHJveSgpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -260,6 +260,7 @@ export class SohoApplicationMenuComponent {
|
|
|
260
260
|
this.ngZone.runOutsideAngular(() => {
|
|
261
261
|
if (this.jQueryElement) {
|
|
262
262
|
this.jQueryElement.off();
|
|
263
|
+
this.jQueryElement = undefined;
|
|
263
264
|
}
|
|
264
265
|
if (this.applicationmenu) {
|
|
265
266
|
this.applicationmenu.destroy();
|
|
@@ -313,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
313
314
|
}], filtered: [{
|
|
314
315
|
type: Output
|
|
315
316
|
}] } });
|
|
316
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hcHBsaWNhdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lkcy1lbnRlcnByaXNlLW5nL3NyYy9saWIvYXBwbGljYXRpb24tbWVudS9zb2hvLWFwcGxpY2F0aW9uLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hcHBsaWNhdGlvbi1tZW51L3NvaG8tYXBwbGljYXRpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBRXZCOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFnTnZDLGVBQWU7SUFDZixZQUNVLFVBQXNCLEVBQ3RCLE1BQWM7UUFEZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzRXhCLDhDQUE4QztRQUM5QyxnQkFBZ0I7UUFDaEIsOENBQThDO1FBRVAsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVMLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQW1CMUUsK0JBQStCO1FBQ3ZCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFrQm5DOzs7OztXQUtHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0M7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXBEOztXQUVHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRCxpRkFBaUY7UUFDdkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXZELGlFQUFpRTtRQUN2RCxhQUFRLEdBQUcs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Q0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDMUI7WUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt5SEE3VlUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsc3NCQzFCekMsNkJBQ0E7MkZEeUJhLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSw0QkFBNEIsbUJBRXJCLHVCQUF1QixDQUFDLE1BQU07c0hBUy9CLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR2MsV0FBVztzQkFBOUIsS0FBSztnQkFxQmMsb0JBQW9CO3NCQUF2QyxLQUFLO2dCQXFCYyxRQUFRO3NCQUEzQixLQUFLO2dCQWtCVSxVQUFVO3NCQUF6QixLQUFLO2dCQUtjLFNBQVM7c0JBQTVCLEtBQUs7Z0JBa0JjLFlBQVk7c0JBQS9CLEtBQUs7Z0JBcUJLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFlSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBYWlDLE9BQU87c0JBQTdDLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUVZLGdCQUFnQjtzQkFBaEUsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUFHLEtBQUs7Z0JBS3ZCLE1BQU07c0JBQTVCLFdBQVc7dUJBQUMsSUFBSTtnQkF1Q1AsVUFBVTtzQkFBbkIsTUFBTTtnQkFNRyxlQUFlO3NCQUF4QixNQUFNO2dCQUtHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFHRyxjQUFjO3NCQUF2QixNQUFNO2dCQUdHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIE5nWm9uZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQW5ndWxhciBXcmFwcGVyIGZvciB0aGUgU29obyBBcHBsaWNhdGlvbiBNZW51IENvbXBvbmVudC5cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBzZWFyY2hlcyBmb3IgYSBuYXYgZWxlbWVudCB3aXRoIHRoZSBhdHRyaWJ1dGVcbiAqICdzb2hvLWFwcGxjYXRpb24tbWVudScgaW4gdGhlIHBhcmVudCdzIERPTSB0cmVlLCBpbml0aWFsaXNpbmcgdGhvc2UgZm91bmQgd2l0aFxuICogdGhlIFNvaG8gYXBwbGljYXRpb24gbWVudSBjb250cm9sLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduYXZbc29oby1hcHBsaWNhdGlvbi1tZW51XScsIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgdGVtcGxhdGVVcmw6ICdzb2hvLWFwcGxpY2F0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTb2hvQXBwbGljYXRpb25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENvbXBvbmVudCBJbnB1dHNcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBCcmVha3BvaW50LiAqL1xuICBASW5wdXQoKSBwdWJsaWMgYnJlYWtwb2ludD86IFNvaG9BcHBsaWNhdGlvbk1lbnVCcmVha1BvaW50O1xuXG4gIC8qKiBTZXRzIE9wZW4gb24gcmVzaXplICovXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgb3Blbk9uTGFyZ2Uob3Blbk9uTGFyZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9vcGVuT25MYXJnZSA9IG9wZW5PbkxhcmdlO1xuXG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5vcGVuT25MYXJnZSA9IHRoaXMuX29wZW5PbkxhcmdlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBvcGVuT25MYXJnZSgpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbm1lbnUpIHtcbiAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5vcGVuT25MYXJnZTtcbiAgICB9XG5cbiAgICAvLyBJZiBjYWxsZWQgYmVmb3JlIHRoZSBjb21wb25lbnQgaGFzIGNvbXBsZXRlZFxuICAgIC8vIGluaXRpYWxpc2F0aW9uLCByZXR1cm4gdGhlIGN1cnJlbnQgdmFsdWUgZnJvbSB0aGVcbiAgICAvLyBvcHRpb25zLlxuICAgIHJldHVybiB0aGlzLl9vcGVuT25MYXJnZTtcbiAgfVxuXG4gIC8qKiBBbGxvd3MgdGhlIG1lbnUgdG8gYmVjb21lIGNsb3NlZCBhZnRlciBhbiBhY3Rpb25hYmxlIGhlYWRlciBoYXMgYmVlbiBzZWxlY3RlZCAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRpc21pc3NPbkNsaWNrTW9iaWxlKGRpc21pc3NPbkNsaWNrTW9iaWxlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fZGlzbWlzc09uQ2xpY2tNb2JpbGUgPSBkaXNtaXNzT25DbGlja01vYmlsZTtcblxuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3MuZGlzbWlzc09uQ2xpY2tNb2JpbGUgPSB0aGlzLl9kaXNtaXNzT25DbGlja01vYmlsZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzbWlzc09uQ2xpY2tNb2JpbGUoKSB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3MuZGlzbWlzc09uQ2xpY2tNb2JpbGU7XG4gICAgfVxuXG4gICAgLy8gSWYgY2FsbGVkIGJlZm9yZSB0aGUgY29tcG9uZW50IGhhcyBjb21wbGV0ZWRcbiAgICAvLyBpbml0aWFsaXNhdGlvbiwgcmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlIGZyb20gdGhlXG4gICAgLy8gb3B0aW9ucy5cbiAgICByZXR1cm4gdGhpcy5fZGlzbWlzc09uQ2xpY2tNb2JpbGU7XG4gIH1cblxuICAvKiogQSBsaXN0IG9mIGpRdWVyeSBlbGVtZW50cyB3aGljaCB0cmlnZ2VyIHRoZSBvcGVubmluZyBhbmQgY2xvc2luZyBhcHBsaWNhdGlvbiBtZW51LiAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHRyaWdnZXJzKHRyaWdnZXJzOiBzdHJpbmdbXSkge1xuXG4gICAgaWYgKHRyaWdnZXJzKSB7XG4gICAgICBsZXQgaSA9IHRyaWdnZXJzLmxlbmd0aDtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlcnMucHVzaChqUXVlcnkodHJpZ2dlcnNbaV0pKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLnRyaWdnZXJzID0gdGhpcy5fdHJpZ2dlcnM7XG4gICAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJcyB0aGUgYXBwbGljYXRpb24gbWVudSBmaWx0ZXJhYmxlP1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGZpbHRlcmFibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJcyB0aGUgYXBwbGljYXRpb24gbWVudSByZXNpemFibGU/XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHJlc2l6YWJsZShyZXNpemFibGU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9yZXNpemFibGUgPSByZXNpemFibGU7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5yZXNpemFibGUgPSB0aGlzLl9yZXNpemFibGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCByZXNpemFibGUoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3MucmVzaXphYmxlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9yZXNpemFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmVzaXplYWJsZSBTYXZlIFBvc2l0aW9uIFNldHRpbmdzXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHNhdmVQb3NpdGlvbihzYXZlUG9zaXRpb246IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9zYXZlUG9zaXRpb24gPSBzYXZlUG9zaXRpb247XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5yZXNpemFibGUgPSB0aGlzLl9zYXZlUG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBzYXZlUG9zaXRpb24oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3Muc2F2ZVBvc2l0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zYXZlUG9zaXRpb247XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV4cGFuZFN3aXRjaGVyXG4gICAqIE1lbnUgc3dpdGNoZXIgZXhwYW5kIHNldHRpbmcgdG8gcHJvdmlkZSBjYWxsYmFja1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvbkV4cGFuZFN3aXRjaGVyKGV4cGFuZFN3aXRjaGVyOiBTb2hvQXBwbGljYXRpb25NZW51RXhwYW5kU3dpdGNoZXJGdW5jdGlvbikge1xuICAgIHRoaXMuX29uRXhwYW5kU3dpdGNoZXIgPSBleHBhbmRTd2l0Y2hlcjtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbm1lbnUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLm9uRXhwYW5kU3dpdGNoZXIgPSB0aGlzLl9vbkV4cGFuZFN3aXRjaGVyO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjb2xsYXBzZVN3aXRjaGVyXG4gICAqIE1lbnUgc3dpdGNoZXIgY29sbGFwc2Ugc2V0dGluZyB0byBwcm92aWRlIGNhbGxiYWNrXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG9uQ29sbGFwc2VTd2l0Y2hlcihjb2xsYXBzZVN3aXRjaGVyOiBTb2hvQXBwbGljYXRpb25NZW51Q29sbGFwc2VTd2l0Y2hlckZ1bmN0aW9uKSB7XG4gICAgdGhpcy5fb25Db2xsYXBzZVN3aXRjaGVyID0gY29sbGFwc2VTd2l0Y2hlcjtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbm1lbnUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLm9uQ29sbGFwc2VTd2l0Y2hlciA9IHRoaXMuX29uQ29sbGFwc2VTd2l0Y2hlcjtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSG9zdCBCaW5kaW5nc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hcHBsaWNhdGlvbi1tZW51JykgYXBwTWVudSA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1wZXJzb25hbGl6YWJsZScpIEBJbnB1dCgpIGlzUGVyc29uYWxpemFibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhpcyB3aWxsIGxldCB0aGUgU29obyBjb250cm9scyBiaW5kIHRoZSBhcHBsaWNhdGlvbiBtZW51IHRyaWdnZXIgbmF0dXJhbGx5XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2lkJykgZ2V0IG1lbnVJZCgpIHtcbiAgICByZXR1cm4gJ2FwcGxpY2F0aW9uLW1lbnUnO1xuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YXRlIE1lbWJlciBEYXRhXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBqUXVlcnkgZWxlbWVudC4gKi9cbiAgcHJpdmF0ZSBqUXVlcnlFbGVtZW50PzogSlF1ZXJ5O1xuXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGFubm90YXRlZCBTb0hvWGkgY29udHJvbCAqL1xuICBwcml2YXRlIGFwcGxpY2F0aW9ubWVudT86IFNvaG9BcHBsaWNhdGlvbk1lbnVTdGF0aWMgfCBudWxsO1xuXG4gIC8qKiBMaXN0IG9mIGpRdWVyeSB0cmlnZ2Vycy4gKi9cbiAgcHJpdmF0ZSBfdHJpZ2dlcnM6IEFycmF5PGFueT4gPSBbXTtcblxuICAvKiogT3BlbiBvbiByZXNpemUgKi9cbiAgcHJpdmF0ZSBfb3Blbk9uTGFyZ2U/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIC8qKiBEaXNtaXNzIHRoZSBtZW51IHdoZW4gYW4gaXRlbSBpcyBjbGlja2VkIGluIHRoZSBtb2JpbGUgYnJlYWtwb2ludHMgKi9cbiAgcHJpdmF0ZSBfZGlzbWlzc09uQ2xpY2tNb2JpbGU/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3Jlc2l6YWJsZT86IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBfc2F2ZVBvc2l0aW9uPzogYm9vbGVhbjtcblxuICAvKiogTWVudSBzd2l0Y2hlciBleHBhbmQgY2FsbGJhY2sgICovXG4gIHByaXZhdGUgX29uRXhwYW5kU3dpdGNoZXI/OiBTb2hvQXBwbGljYXRpb25NZW51RXhwYW5kU3dpdGNoZXJGdW5jdGlvbjtcblxuICAvKiogTWVudSBzd2l0Y2hlciBjb2xsYXBzZSBjYWxsYmFjayAgKi9cbiAgcHJpdmF0ZSBfb25Db2xsYXBzZVN3aXRjaGVyPzogU29ob0FwcGxpY2F0aW9uTWVudUNvbGxhcHNlU3dpdGNoZXJGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBhcHBsaWNhdGlvbiBtZW51IGlzIGNoYW5nZWQsXG4gICAqIGlzIGl0IGFsc28gY2FsbGVkIHdoZW4gdGhlIGl0ZW0gaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgYWNjb3JkaW9uRXhwYW5kIGFuZCBhY2NvcmRpb25Db2xsYXBzZSBldmVudHMgaW5zdGVhZFxuICAgKi9cbiAgQE91dHB1dCgpIHZpc2liaWxpdHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIGEgbWVudSBhY2NvcmRpb24gaXMgZXhwYW1kZWRcbiAgICogVGhlIGV2ZW50IGluY2x1ZGUgdGhlIGFuY2hvciBlbGVtZW50LlxuICAgKi9cbiAgQE91dHB1dCgpIGFjY29yZGlvbkV4cGFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gYSBtZW51IGFjY29yZGlvbiBpcyBjb2xsYXBzZWRcbiAgICovXG4gIEBPdXRwdXQoKSBhY2NvcmRpb25Db2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKiogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBhcHBsaWNhdGlvbiBtZW51IGlzIGNoYW5nZWQgKi9cbiAgQE91dHB1dCgpIG1lbnVWaXNpYmlsaXR5ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIG1lbnUgaXMgZmlsdGVyZWQuICovXG4gIEBPdXRwdXQoKSBmaWx0ZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XG5cbiAgLyoqIGZsYWcgdGhlIG5lZWQgdG8gdXBkYXRlIHRoZSBzb2hvL2VwIGNvbnRyb2wgaW4gbmdBZnRlclZpZXdDaGVja2VkLiAqL1xuICBwcml2YXRlIHVwZGF0ZVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLy8gQ29uc3RydWN0b3IuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHsgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUHVibGljIEFQSVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqXG4gICAqIENsb3NlIHRoZSBtZW51LlxuICAgKi9cbiAgcHVibGljIGNsb3NlTWVudSgpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFwcGxpY2F0aW9ubWVudT8uY2xvc2VNZW51KCkpO1xuICB9XG5cbiAgLyoqIE9wZW4gdGhlIG1lbnUuICovXG4gIHB1YmxpYyBvcGVuTWVudShub0ZvY3VzPzogYm9vbGVhbiwgdXNlck9wZW5lZD86IGJvb2xlYW4sIG9wZW5lZEJ5Q2xhc3M/OiBib29sZWFuKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/Lm9wZW5NZW51KG5vRm9jdXMsIHVzZXJPcGVuZWQsIG9wZW5lZEJ5Q2xhc3MpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIG1lbnUgaXMgb3Blbiwgb3RoZXJ3aXNlIGZhbHNlLlxuICAgKi9cbiAgcHVibGljIGlzT3BlbigpOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/LmlzT3BlbigpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RpZmllcyBhcHBsaWNhdGlvbiBtZW51IHRoYXQgaXQgaGFzIGJlZW4gdXBkYXRlZFxuICAgKi9cbiAgcHVibGljIHVwZGF0ZWQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/LnVwZGF0ZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBwYW5lbCBhcmVhIGNvbnRyb2xsZWQgYnkgc3dpdGNoZXJcbiAgICovXG4gIHB1YmxpYyBjbG9zZVN3aXRjaGVyUGFuZWwoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/LmNsb3NlU3dpdGNoZXJQYW5lbCgpKTtcbiAgfVxuXG4gIC8qXG4gICAqIFVwZGF0ZXMgQWNjb3JkaW9uIHdoZW4gbWVudXMgaGF2ZSBiZWVuIGxhemlseSBsb2FkZWRcbiAgICogVE9ETzogRWQgb3IgVGltLCB0aGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHB1YmxpYyBmdW5jdGlvbiBmb3Igc29tZXRoaW5nIGxpa2UgdGhpc1xuICAgKiBmcm9tIGFwcGxpY2F0aW9ubWVudS5qcy4gVGhpcyBpcyBteSBjdXJyZW50IHdvcmsgYXJyb3VuZCAoS3JpcyBIb2xsZW5lY2spXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlTGF6eShhcHBsaWNhdGlvbk1lbnU6IFNvaG9BcHBsaWNhdGlvbk1lbnVDb21wb25lbnQsIHRhcmdldDogYW55KSB7XG4gICAgY29uc3QgJGFwcGxpY2F0aW9uTWVudSA9IGpRdWVyeShhcHBsaWNhdGlvbk1lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5kYXRhKCdhcHBsaWNhdGlvbm1lbnUnKTtcbiAgICBjb25zdCAkYWNjb3JkaW9uID0gJGFwcGxpY2F0aW9uTWVudS5hY2NvcmRpb247XG4gICAgY29uc3QgYWNjb3JkaW9uID0gJGFjY29yZGlvbi5kYXRhKCdhY2NvcmRpb24nKTtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBhY2NvcmRpb24udXBkYXRlZCgpO1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBqUXVlcnkodGFyZ2V0KS5jbG9zZXN0KCcuYWNjb3JkaW9uLWhlYWRlcicpO1xuICAgICAgICBhY2NvcmRpb24uZXhwYW5kKGhlYWRlcik7XG4gICAgICB9LCAxKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qXG4gICAqIFRvZ2dsZSBhbmQgc2VsZWN0IGEgc3BlY2lmaWMgaGVhZGVyXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlQW5kU2VsZWN0SGVhZGVyKGFwcGxpY2F0aW9uTWVudTogU29ob0FwcGxpY2F0aW9uTWVudUNvbXBvbmVudCwgaGVhZGVyOiBhbnkpIHtcbiAgICBjb25zdCAkYXBwbGljYXRpb25NZW51ID0galF1ZXJ5KGFwcGxpY2F0aW9uTWVudS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmRhdGEoJ2FwcGxpY2F0aW9ubWVudScpO1xuICAgIGNvbnN0ICRhY2NvcmRpb24gPSAkYXBwbGljYXRpb25NZW51LmFjY29yZGlvbjtcbiAgICBjb25zdCBhY2NvcmRpb24gPSAkYWNjb3JkaW9uLmRhdGEoJ2FjY29yZGlvbicpO1xuXG4gICAgYWNjb3JkaW9uLmhlYWRlcnMgPSAkYWNjb3JkaW9uLmZpbmQoJy5hY2NvcmRpb24taGVhZGVyJyk7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBhY2NvcmRpb24udXBkYXRlZCgpO1xuICAgICAgYWNjb3JkaW9uLnRvZ2dsZShqUXVlcnkoaGVhZGVyKSk7XG4gICAgICBhY2NvcmRpb24uc2VsZWN0KGpRdWVyeShoZWFkZXIpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBMaWZlY3ljbGUgRXZlbnRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAvLyBXcmFwIGZvciBsYXRlci5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IGpRdWVyeSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIGNvbnN0IG9wdGlvbnM6IFNvaG9BcHBsaWNhdGlvbk1lbnVPcHRpb25zID0ge1xuICAgICAgICBicmVha3BvaW50OiB0aGlzLmJyZWFrcG9pbnQsXG4gICAgICAgIGRpc21pc3NPbkNsaWNrTW9iaWxlOiB0aGlzLl9kaXNtaXNzT25DbGlja01vYmlsZSxcbiAgICAgICAgb3Blbk9uTGFyZ2U6IHRoaXMuX29wZW5PbkxhcmdlLFxuICAgICAgICB0cmlnZ2VyczogdGhpcy5fdHJpZ2dlcnMsXG4gICAgICAgIGZpbHRlcmFibGU6IHRoaXMuZmlsdGVyYWJsZSxcbiAgICAgICAgcmVzaXphYmxlOiB0aGlzLl9yZXNpemFibGUsXG4gICAgICAgIHNhdmVQb3NpdGlvbjogdGhpcy5fc2F2ZVBvc2l0aW9uLFxuICAgICAgICBvbkV4cGFuZFN3aXRjaGVyOiB0aGlzLl9vbkV4cGFuZFN3aXRjaGVyLFxuICAgICAgICBvbkNvbGxhcHNlU3dpdGNoZXI6IHRoaXMuX29uQ29sbGFwc2VTd2l0Y2hlclxuICAgICAgfTtcblxuICAgICAgLy8gSW5pdGlhbGlzZSB0aGUgU29Ib1hpIGNvbnRyb2wuXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQuYXBwbGljYXRpb25tZW51KG9wdGlvbnMpO1xuXG4gICAgICAvLyBPbmNlIHRoZSBjb250cm9sIGlzIGluaXRpYWxpc2VkLCBleHRyYWN0IHRoZSBjb250cm9sXG4gICAgICAvLyBwbHVnLWluIGZyb20gdGhlIGVsZW1lbnQuICBUaGUgZWxlbWVudCBuYW1lIGlzXG4gICAgICAvLyBkZWZpbmVkIGJ5IHRoZSBwbHVnLWluLCBidXQgaW4gdGhpcyBjYXNlIGlzICdleHBhbmRhYmxlYXJlYScuXG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudSA9IHRoaXMualF1ZXJ5RWxlbWVudC5kYXRhKCdhcHBsaWNhdGlvbm1lbnUnKTtcblxuICAgICAgLy8gSW5pdGlhbGlzZSBhbnkgZXZlbnQgaGFuZGxlcnMuXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnRcbiAgICAgICAgLm9uKCdleHBhbmQnLCAoX2UsIHJlc3VsdHM6IGFueVtdKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5hY2NvcmRpb25FeHBhbmQubmV4dChyZXN1bHRzKSkpXG4gICAgICAgIC5vbignY29sbGFwc2UnLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5hY2NvcmRpb25Db2xsYXBzZS5uZXh0KHRydWUpKSlcbiAgICAgICAgLm9uKCdleHBhbmQnLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy52aXNpYmlsaXR5Lm5leHQodHJ1ZSkpKVxuICAgICAgICAub24oJ2NvbGxhcHNlJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMudmlzaWJpbGl0eS5uZXh0KGZhbHNlKSkpXG4gICAgICAgIC5vbignZmlsdGVyZWQnLCAoX2UsIHJlc3VsdHM6IGFueVtdKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5maWx0ZXJlZC5uZXh0KHJlc3VsdHMpKSlcbiAgICAgICAgLm9uKCdhcHBsaWNhdGlvbm1lbnVvcGVuJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubWVudVZpc2liaWxpdHkubmV4dCh0cnVlKSkpXG4gICAgICAgIC5vbignYXBwbGljYXRpb25tZW51Y2xvc2UnLCAoKSA9PiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5tZW51VmlzaWJpbGl0eS5uZXh0KGZhbHNlKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSAmJiB0aGlzLnVwZGF0ZVJlcXVpcmVkKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmFwcGxpY2F0aW9ubWVudT8udXBkYXRlZCgpKTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJ1Y3Rvci5cbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGNhbGwgb3V0c2lkZSB0aGUgYW5ndWxhciB6b25lIHNvIGNoYW5nZSBkZXRlY3Rpb24gaXNuJ3QgdHJpZ2dlcmVkIGJ5IHRoZSBzb2hvIGNvbXBvbmVudC5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5qUXVlcnlFbGVtZW50KSB7XG4gICAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5vZmYoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1hcHBsaWNhdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lkcy1lbnRlcnByaXNlLW5nL3NyYy9saWIvYXBwbGljYXRpb24tbWVudS9zb2hvLWFwcGxpY2F0aW9uLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9hcHBsaWNhdGlvbi1tZW51L3NvaG8tYXBwbGljYXRpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7O0FBRXZCOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyw0QkFBNEI7SUFnTnZDLGVBQWU7SUFDZixZQUNVLFVBQXNCLEVBQ3RCLE1BQWM7UUFEZCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzRXhCLDhDQUE4QztRQUM5QyxnQkFBZ0I7UUFDaEIsOENBQThDO1FBRVAsWUFBTyxHQUFHLElBQUksQ0FBQztRQUVMLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQW1CMUUsK0JBQStCO1FBQ3ZCLGNBQVMsR0FBZSxFQUFFLENBQUM7UUFrQm5DOzs7OztXQUtHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFL0M7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXBEOztXQUVHO1FBQ08sc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRCxpRkFBaUY7UUFDdkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXZELGlFQUFpRTtRQUN2RCxhQUFRLEdBQUcs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Q0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2FBQ2hDO1lBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUhBOVZVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLHNzQkMxQnpDLDZCQUNBOzJGRHlCYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsNEJBQTRCLG1CQUVyQix1QkFBdUIsQ0FBQyxNQUFNO3NIQVMvQixVQUFVO3NCQUF6QixLQUFLO2dCQUdjLFdBQVc7c0JBQTlCLEtBQUs7Z0JBcUJjLG9CQUFvQjtzQkFBdkMsS0FBSztnQkFxQmMsUUFBUTtzQkFBM0IsS0FBSztnQkFrQlUsVUFBVTtzQkFBekIsS0FBSztnQkFLYyxTQUFTO3NCQUE1QixLQUFLO2dCQWtCYyxZQUFZO3NCQUEvQixLQUFLO2dCQXFCSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBZUssa0JBQWtCO3NCQUQ1QixLQUFLO2dCQWFpQyxPQUFPO3NCQUE3QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFFWSxnQkFBZ0I7c0JBQWhFLFdBQVc7dUJBQUMseUJBQXlCOztzQkFBRyxLQUFLO2dCQUt2QixNQUFNO3NCQUE1QixXQUFXO3VCQUFDLElBQUk7Z0JBdUNQLFVBQVU7c0JBQW5CLE1BQU07Z0JBTUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFLRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0csY0FBYztzQkFBdkIsTUFBTTtnQkFHRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBOZ1pvbmUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEFuZ3VsYXIgV3JhcHBlciBmb3IgdGhlIFNvaG8gQXBwbGljYXRpb24gTWVudSBDb21wb25lbnQuXG4gKlxuICogVGhpcyBjb21wb25lbnQgc2VhcmNoZXMgZm9yIGEgbmF2IGVsZW1lbnQgd2l0aCB0aGUgYXR0cmlidXRlXG4gKiAnc29oby1hcHBsY2F0aW9uLW1lbnUnIGluIHRoZSBwYXJlbnQncyBET00gdHJlZSwgaW5pdGlhbGlzaW5nIHRob3NlIGZvdW5kIHdpdGhcbiAqIHRoZSBTb2hvIGFwcGxpY2F0aW9uIG1lbnUgY29udHJvbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmF2W3NvaG8tYXBwbGljYXRpb24tbWVudV0nLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIHRlbXBsYXRlVXJsOiAnc29oby1hcHBsaWNhdGlvbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ob0FwcGxpY2F0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDb21wb25lbnQgSW5wdXRzXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogQnJlYWtwb2ludC4gKi9cbiAgQElucHV0KCkgcHVibGljIGJyZWFrcG9pbnQ/OiBTb2hvQXBwbGljYXRpb25NZW51QnJlYWtQb2ludDtcblxuICAvKiogU2V0cyBPcGVuIG9uIHJlc2l6ZSAqL1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IG9wZW5PbkxhcmdlKG9wZW5PbkxhcmdlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fb3Blbk9uTGFyZ2UgPSBvcGVuT25MYXJnZTtcblxuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3Mub3Blbk9uTGFyZ2UgPSB0aGlzLl9vcGVuT25MYXJnZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgb3Blbk9uTGFyZ2UoKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3Mub3Blbk9uTGFyZ2U7XG4gICAgfVxuXG4gICAgLy8gSWYgY2FsbGVkIGJlZm9yZSB0aGUgY29tcG9uZW50IGhhcyBjb21wbGV0ZWRcbiAgICAvLyBpbml0aWFsaXNhdGlvbiwgcmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlIGZyb20gdGhlXG4gICAgLy8gb3B0aW9ucy5cbiAgICByZXR1cm4gdGhpcy5fb3Blbk9uTGFyZ2U7XG4gIH1cblxuICAvKiogQWxsb3dzIHRoZSBtZW51IHRvIGJlY29tZSBjbG9zZWQgYWZ0ZXIgYW4gYWN0aW9uYWJsZSBoZWFkZXIgaGFzIGJlZW4gc2VsZWN0ZWQgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBkaXNtaXNzT25DbGlja01vYmlsZShkaXNtaXNzT25DbGlja01vYmlsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2Rpc21pc3NPbkNsaWNrTW9iaWxlID0gZGlzbWlzc09uQ2xpY2tNb2JpbGU7XG5cbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbm1lbnUpIHtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLmRpc21pc3NPbkNsaWNrTW9iaWxlID0gdGhpcy5fZGlzbWlzc09uQ2xpY2tNb2JpbGU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc21pc3NPbkNsaWNrTW9iaWxlKCkge1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLmRpc21pc3NPbkNsaWNrTW9iaWxlO1xuICAgIH1cblxuICAgIC8vIElmIGNhbGxlZCBiZWZvcmUgdGhlIGNvbXBvbmVudCBoYXMgY29tcGxldGVkXG4gICAgLy8gaW5pdGlhbGlzYXRpb24sIHJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBmcm9tIHRoZVxuICAgIC8vIG9wdGlvbnMuXG4gICAgcmV0dXJuIHRoaXMuX2Rpc21pc3NPbkNsaWNrTW9iaWxlO1xuICB9XG5cbiAgLyoqIEEgbGlzdCBvZiBqUXVlcnkgZWxlbWVudHMgd2hpY2ggdHJpZ2dlciB0aGUgb3Blbm5pbmcgYW5kIGNsb3NpbmcgYXBwbGljYXRpb24gbWVudS4gKi9cbiAgQElucHV0KCkgcHVibGljIHNldCB0cmlnZ2Vycyh0cmlnZ2Vyczogc3RyaW5nW10pIHtcblxuICAgIGlmICh0cmlnZ2Vycykge1xuICAgICAgbGV0IGkgPSB0cmlnZ2Vycy5sZW5ndGg7XG4gICAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJzLnB1c2goalF1ZXJ5KHRyaWdnZXJzW2ldKSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy50cmlnZ2VycyA9IHRoaXMuX3RyaWdnZXJzO1xuICAgICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhlIGFwcGxpY2F0aW9uIG1lbnUgZmlsdGVyYWJsZT9cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWx0ZXJhYmxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSXMgdGhlIGFwcGxpY2F0aW9uIG1lbnUgcmVzaXphYmxlP1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCByZXNpemFibGUocmVzaXphYmxlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fcmVzaXphYmxlID0gcmVzaXphYmxlO1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3MucmVzaXphYmxlID0gdGhpcy5fcmVzaXphYmxlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVzaXphYmxlKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLnJlc2l6YWJsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcmVzaXphYmxlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2l6ZWFibGUgU2F2ZSBQb3NpdGlvbiBTZXR0aW5nc1xuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHNldCBzYXZlUG9zaXRpb24oc2F2ZVBvc2l0aW9uOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fc2F2ZVBvc2l0aW9uID0gc2F2ZVBvc2l0aW9uO1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvbm1lbnUuc2V0dGluZ3MucmVzaXphYmxlID0gdGhpcy5fc2F2ZVBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2F2ZVBvc2l0aW9uKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBwbGljYXRpb25tZW51LnNldHRpbmdzLnNhdmVQb3NpdGlvbjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2F2ZVBvc2l0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBleHBhbmRTd2l0Y2hlclxuICAgKiBNZW51IHN3aXRjaGVyIGV4cGFuZCBzZXR0aW5nIHRvIHByb3ZpZGUgY2FsbGJhY2tcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgb25FeHBhbmRTd2l0Y2hlcihleHBhbmRTd2l0Y2hlcjogU29ob0FwcGxpY2F0aW9uTWVudUV4cGFuZFN3aXRjaGVyRnVuY3Rpb24pIHtcbiAgICB0aGlzLl9vbkV4cGFuZFN3aXRjaGVyID0gZXhwYW5kU3dpdGNoZXI7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5vbkV4cGFuZFN3aXRjaGVyID0gdGhpcy5fb25FeHBhbmRTd2l0Y2hlcjtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGFwc2VTd2l0Y2hlclxuICAgKiBNZW51IHN3aXRjaGVyIGNvbGxhcHNlIHNldHRpbmcgdG8gcHJvdmlkZSBjYWxsYmFja1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBvbkNvbGxhcHNlU3dpdGNoZXIoY29sbGFwc2VTd2l0Y2hlcjogU29ob0FwcGxpY2F0aW9uTWVudUNvbGxhcHNlU3dpdGNoZXJGdW5jdGlvbikge1xuICAgIHRoaXMuX29uQ29sbGFwc2VTd2l0Y2hlciA9IGNvbGxhcHNlU3dpdGNoZXI7XG4gICAgaWYgKHRoaXMuYXBwbGljYXRpb25tZW51KSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5zZXR0aW5ncy5vbkNvbGxhcHNlU3dpdGNoZXIgPSB0aGlzLl9vbkNvbGxhcHNlU3dpdGNoZXI7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEhvc3QgQmluZGluZ3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYXBwbGljYXRpb24tbWVudScpIGFwcE1lbnUgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtcGVyc29uYWxpemFibGUnKSBASW5wdXQoKSBpc1BlcnNvbmFsaXphYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoaXMgd2lsbCBsZXQgdGhlIFNvaG8gY29udHJvbHMgYmluZCB0aGUgYXBwbGljYXRpb24gbWVudSB0cmlnZ2VyIG5hdHVyYWxseVxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdpZCcpIGdldCBtZW51SWQoKSB7XG4gICAgcmV0dXJuICdhcHBsaWNhdGlvbi1tZW51JztcbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gUHJpdmF0ZSBNZW1iZXIgRGF0YVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0aGUgalF1ZXJ5IGVsZW1lbnQuICovXG4gIHByaXZhdGUgalF1ZXJ5RWxlbWVudD86IEpRdWVyeTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBhbm5vdGF0ZWQgU29Ib1hpIGNvbnRyb2wgKi9cbiAgcHJpdmF0ZSBhcHBsaWNhdGlvbm1lbnU/OiBTb2hvQXBwbGljYXRpb25NZW51U3RhdGljIHwgbnVsbDtcblxuICAvKiogTGlzdCBvZiBqUXVlcnkgdHJpZ2dlcnMuICovXG4gIHByaXZhdGUgX3RyaWdnZXJzOiBBcnJheTxhbnk+ID0gW107XG5cbiAgLyoqIE9wZW4gb24gcmVzaXplICovXG4gIHByaXZhdGUgX29wZW5PbkxhcmdlPzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvKiogRGlzbWlzcyB0aGUgbWVudSB3aGVuIGFuIGl0ZW0gaXMgY2xpY2tlZCBpbiB0aGUgbW9iaWxlIGJyZWFrcG9pbnRzICovXG4gIHByaXZhdGUgX2Rpc21pc3NPbkNsaWNrTW9iaWxlPzogYm9vbGVhbjtcblxuICBwcml2YXRlIF9yZXNpemFibGU/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgX3NhdmVQb3NpdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqIE1lbnUgc3dpdGNoZXIgZXhwYW5kIGNhbGxiYWNrICAqL1xuICBwcml2YXRlIF9vbkV4cGFuZFN3aXRjaGVyPzogU29ob0FwcGxpY2F0aW9uTWVudUV4cGFuZFN3aXRjaGVyRnVuY3Rpb247XG5cbiAgLyoqIE1lbnUgc3dpdGNoZXIgY29sbGFwc2UgY2FsbGJhY2sgICovXG4gIHByaXZhdGUgX29uQ29sbGFwc2VTd2l0Y2hlcj86IFNvaG9BcHBsaWNhdGlvbk1lbnVDb2xsYXBzZVN3aXRjaGVyRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwbGljYXRpb24gbWVudSBpcyBjaGFuZ2VkLFxuICAgKiBpcyBpdCBhbHNvIGNhbGxlZCB3aGVuIHRoZSBpdGVtIGlzIGNoYW5nZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGFjY29yZGlvbkV4cGFuZCBhbmQgYWNjb3JkaW9uQ29sbGFwc2UgZXZlbnRzIGluc3RlYWRcbiAgICovXG4gIEBPdXRwdXQoKSB2aXNpYmlsaXR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBhIG1lbnUgYWNjb3JkaW9uIGlzIGV4cGFtZGVkXG4gICAqIFRoZSBldmVudCBpbmNsdWRlIHRoZSBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIEBPdXRwdXQoKSBhY2NvcmRpb25FeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIGEgbWVudSBhY2NvcmRpb24gaXMgY29sbGFwc2VkXG4gICAqL1xuICBAT3V0cHV0KCkgYWNjb3JkaW9uQ29sbGFwc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLyoqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwbGljYXRpb24gbWVudSBpcyBjaGFuZ2VkICovXG4gIEBPdXRwdXQoKSBtZW51VmlzaWJpbGl0eSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAvKiogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBtZW51IGlzIGZpbHRlcmVkLiAqL1xuICBAT3V0cHV0KCkgZmlsdGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuXG4gIC8qKiBmbGFnIHRoZSBuZWVkIHRvIHVwZGF0ZSB0aGUgc29oby9lcCBjb250cm9sIGluIG5nQWZ0ZXJWaWV3Q2hlY2tlZC4gKi9cbiAgcHJpdmF0ZSB1cGRhdGVSZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8vIENvbnN0cnVjdG9yLlxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7IH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFB1YmxpYyBBUElcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKlxuICAgKiBDbG9zZSB0aGUgbWVudS5cbiAgICovXG4gIHB1YmxpYyBjbG9zZU1lbnUoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/LmNsb3NlTWVudSgpKTtcbiAgfVxuXG4gIC8qKiBPcGVuIHRoZSBtZW51LiAqL1xuICBwdWJsaWMgb3Blbk1lbnUobm9Gb2N1cz86IGJvb2xlYW4sIHVzZXJPcGVuZWQ/OiBib29sZWFuLCBvcGVuZWRCeUNsYXNzPzogYm9vbGVhbikge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYXBwbGljYXRpb25tZW51Py5vcGVuTWVudShub0ZvY3VzLCB1c2VyT3BlbmVkLCBvcGVuZWRCeUNsYXNzKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBtZW51IGlzIG9wZW4sIG90aGVyd2lzZSBmYWxzZS5cbiAgICovXG4gIHB1YmxpYyBpc09wZW4oKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYXBwbGljYXRpb25tZW51Py5pc09wZW4oKSk7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpZXMgYXBwbGljYXRpb24gbWVudSB0aGF0IGl0IGhhcyBiZWVuIHVwZGF0ZWRcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVkKCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYXBwbGljYXRpb25tZW51Py51cGRhdGVkKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgcGFuZWwgYXJlYSBjb250cm9sbGVkIGJ5IHN3aXRjaGVyXG4gICAqL1xuICBwdWJsaWMgY2xvc2VTd2l0Y2hlclBhbmVsKCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuYXBwbGljYXRpb25tZW51Py5jbG9zZVN3aXRjaGVyUGFuZWwoKSk7XG4gIH1cblxuICAvKlxuICAgKiBVcGRhdGVzIEFjY29yZGlvbiB3aGVuIG1lbnVzIGhhdmUgYmVlbiBsYXppbHkgbG9hZGVkXG4gICAqIFRPRE86IEVkIG9yIFRpbSwgdGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSBwdWJsaWMgZnVuY3Rpb24gZm9yIHNvbWV0aGluZyBsaWtlIHRoaXNcbiAgICogZnJvbSBhcHBsaWNhdGlvbm1lbnUuanMuIFRoaXMgaXMgbXkgY3VycmVudCB3b3JrIGFycm91bmQgKEtyaXMgSG9sbGVuZWNrKVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUxhenkoYXBwbGljYXRpb25NZW51OiBTb2hvQXBwbGljYXRpb25NZW51Q29tcG9uZW50LCB0YXJnZXQ6IGFueSkge1xuICAgIGNvbnN0ICRhcHBsaWNhdGlvbk1lbnUgPSBqUXVlcnkoYXBwbGljYXRpb25NZW51LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZGF0YSgnYXBwbGljYXRpb25tZW51Jyk7XG4gICAgY29uc3QgJGFjY29yZGlvbiA9ICRhcHBsaWNhdGlvbk1lbnUuYWNjb3JkaW9uO1xuICAgIGNvbnN0IGFjY29yZGlvbiA9ICRhY2NvcmRpb24uZGF0YSgnYWNjb3JkaW9uJyk7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgYWNjb3JkaW9uLnVwZGF0ZWQoKTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0galF1ZXJ5KHRhcmdldCkuY2xvc2VzdCgnLmFjY29yZGlvbi1oZWFkZXInKTtcbiAgICAgICAgYWNjb3JkaW9uLmV4cGFuZChoZWFkZXIpO1xuICAgICAgfSwgMSk7XG4gICAgfSk7XG4gIH1cblxuICAvKlxuICAgKiBUb2dnbGUgYW5kIHNlbGVjdCBhIHNwZWNpZmljIGhlYWRlclxuICAgKi9cbiAgcHVibGljIHRvZ2dsZUFuZFNlbGVjdEhlYWRlcihhcHBsaWNhdGlvbk1lbnU6IFNvaG9BcHBsaWNhdGlvbk1lbnVDb21wb25lbnQsIGhlYWRlcjogYW55KSB7XG4gICAgY29uc3QgJGFwcGxpY2F0aW9uTWVudSA9IGpRdWVyeShhcHBsaWNhdGlvbk1lbnUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5kYXRhKCdhcHBsaWNhdGlvbm1lbnUnKTtcbiAgICBjb25zdCAkYWNjb3JkaW9uID0gJGFwcGxpY2F0aW9uTWVudS5hY2NvcmRpb247XG4gICAgY29uc3QgYWNjb3JkaW9uID0gJGFjY29yZGlvbi5kYXRhKCdhY2NvcmRpb24nKTtcblxuICAgIGFjY29yZGlvbi5oZWFkZXJzID0gJGFjY29yZGlvbi5maW5kKCcuYWNjb3JkaW9uLWhlYWRlcicpO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgYWNjb3JkaW9uLnVwZGF0ZWQoKTtcbiAgICAgIGFjY29yZGlvbi50b2dnbGUoalF1ZXJ5KGhlYWRlcikpO1xuICAgICAgYWNjb3JkaW9uLnNlbGVjdChqUXVlcnkoaGVhZGVyKSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gTGlmZWN5Y2xlIEV2ZW50c1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgLy8gV3JhcCBmb3IgbGF0ZXIuXG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQgPSBqUXVlcnkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICBjb25zdCBvcHRpb25zOiBTb2hvQXBwbGljYXRpb25NZW51T3B0aW9ucyA9IHtcbiAgICAgICAgYnJlYWtwb2ludDogdGhpcy5icmVha3BvaW50LFxuICAgICAgICBkaXNtaXNzT25DbGlja01vYmlsZTogdGhpcy5fZGlzbWlzc09uQ2xpY2tNb2JpbGUsXG4gICAgICAgIG9wZW5PbkxhcmdlOiB0aGlzLl9vcGVuT25MYXJnZSxcbiAgICAgICAgdHJpZ2dlcnM6IHRoaXMuX3RyaWdnZXJzLFxuICAgICAgICBmaWx0ZXJhYmxlOiB0aGlzLmZpbHRlcmFibGUsXG4gICAgICAgIHJlc2l6YWJsZTogdGhpcy5fcmVzaXphYmxlLFxuICAgICAgICBzYXZlUG9zaXRpb246IHRoaXMuX3NhdmVQb3NpdGlvbixcbiAgICAgICAgb25FeHBhbmRTd2l0Y2hlcjogdGhpcy5fb25FeHBhbmRTd2l0Y2hlcixcbiAgICAgICAgb25Db2xsYXBzZVN3aXRjaGVyOiB0aGlzLl9vbkNvbGxhcHNlU3dpdGNoZXJcbiAgICAgIH07XG5cbiAgICAgIC8vIEluaXRpYWxpc2UgdGhlIFNvSG9YaSBjb250cm9sLlxuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50LmFwcGxpY2F0aW9ubWVudShvcHRpb25zKTtcblxuICAgICAgLy8gT25jZSB0aGUgY29udHJvbCBpcyBpbml0aWFsaXNlZCwgZXh0cmFjdCB0aGUgY29udHJvbFxuICAgICAgLy8gcGx1Zy1pbiBmcm9tIHRoZSBlbGVtZW50LiAgVGhlIGVsZW1lbnQgbmFtZSBpc1xuICAgICAgLy8gZGVmaW5lZCBieSB0aGUgcGx1Zy1pbiwgYnV0IGluIHRoaXMgY2FzZSBpcyAnZXhwYW5kYWJsZWFyZWEnLlxuICAgICAgdGhpcy5hcHBsaWNhdGlvbm1lbnUgPSB0aGlzLmpRdWVyeUVsZW1lbnQuZGF0YSgnYXBwbGljYXRpb25tZW51Jyk7XG5cbiAgICAgIC8vIEluaXRpYWxpc2UgYW55IGV2ZW50IGhhbmRsZXJzLlxuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50XG4gICAgICAgIC5vbignZXhwYW5kJywgKF9lLCByZXN1bHRzOiBhbnlbXSkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuYWNjb3JkaW9uRXhwYW5kLm5leHQocmVzdWx0cykpKVxuICAgICAgICAub24oJ2NvbGxhcHNlJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuYWNjb3JkaW9uQ29sbGFwc2UubmV4dCh0cnVlKSkpXG4gICAgICAgIC5vbignZXhwYW5kJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMudmlzaWJpbGl0eS5uZXh0KHRydWUpKSlcbiAgICAgICAgLm9uKCdjb2xsYXBzZScsICgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnZpc2liaWxpdHkubmV4dChmYWxzZSkpKVxuICAgICAgICAub24oJ2ZpbHRlcmVkJywgKF9lLCByZXN1bHRzOiBhbnlbXSkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuZmlsdGVyZWQubmV4dChyZXN1bHRzKSkpXG4gICAgICAgIC5vbignYXBwbGljYXRpb25tZW51b3BlbicsICgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLm1lbnVWaXNpYmlsaXR5Lm5leHQodHJ1ZSkpKVxuICAgICAgICAub24oJ2FwcGxpY2F0aW9ubWVudWNsb3NlJywgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMubWVudVZpc2liaWxpdHkubmV4dChmYWxzZSkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbm1lbnUgJiYgdGhpcy51cGRhdGVSZXF1aXJlZCkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5hcHBsaWNhdGlvbm1lbnU/LnVwZGF0ZWQoKSk7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc3RydWN0b3IuXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBjYWxsIG91dHNpZGUgdGhlIGFuZ3VsYXIgem9uZSBzbyBjaGFuZ2UgZGV0ZWN0aW9uIGlzbid0IHRyaWdnZXJlZCBieSB0aGUgc29obyBjb21wb25lbnQuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMualF1ZXJ5RWxlbWVudCkge1xuICAgICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub2ZmKCk7XG4gICAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9ubWVudSkge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9ubWVudS5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYXBwbGljYXRpb25tZW51ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -213,6 +213,7 @@ export class SohoBarComponent {
|
|
|
213
213
|
this.ngZone.runOutsideAngular(() => {
|
|
214
214
|
if (this.jQueryElement) {
|
|
215
215
|
this.jQueryElement.off();
|
|
216
|
+
this.jQueryElement = undefined;
|
|
216
217
|
}
|
|
217
218
|
if (this.bar) {
|
|
218
219
|
this.bar.destroy();
|
|
@@ -291,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImpor
|
|
|
291
292
|
}], contextmenu: [{
|
|
292
293
|
type: Output
|
|
293
294
|
}] } });
|
|
294
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9iYXIvc29oby1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFRdkIsTUFBTSxPQUFPLGdCQUFnQjtJQTROM0IsWUFDVSxPQUFtQixFQUNuQixNQUFjO1FBRGQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBN054QixlQUFlO1FBQ1AsWUFBTyxHQUFtQixFQUFFLENBQUM7UUEwTXJDLGFBQWE7UUFDSCxhQUFRLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ3BGLGVBQVUsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDdEYsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RFLDhGQUE4RjtRQUNwRixhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEU7O1dBRUc7UUFDSCw0REFBNEQ7UUFDbEQsZ0JBQVcsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlyRSxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUszQixDQUFDO0lBM05MLElBQW9ELEtBQUs7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLElBQWEsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFhLElBQUksQ0FBQyxLQUFrQjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFFMUIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBYSxTQUFTLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsSUFBYSxZQUFZLENBQUMsS0FBYztRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsSUFBYSxTQUFTLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsSUFBYSxVQUFVLENBQUMsS0FBYztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxxR0FBcUc7SUFDckcsSUFBYSxPQUFPLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxxRUFBcUU7SUFDckUsSUFBYSxjQUFjLENBQUMsS0FBYztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztZQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCx3RUFBd0U7SUFDeEUsSUFBYSxlQUFlLENBQUMsS0FBYTtRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFFckMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFBYSxNQUFNLENBQUMsS0FBYTtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsSUFBYSxPQUFPLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsSUFBYSxXQUFXLENBQUMsS0FBYztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxpRkFBaUY7SUFDakYsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBYSxTQUFTLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDtrREFDOEM7SUFDOUMsSUFBYSxXQUFXLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDswREFDc0Q7SUFDdEQsSUFBYSxTQUFTLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsSUFBYSxTQUFTLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsSUFBYSxZQUFZLENBQUMsS0FBOEI7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQWEsVUFBVSxDQUFDLFVBQWtDO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUVyQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQXVCRCxZQUFZO0lBQ1osZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFeEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsbUJBQW1CO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQU8sRUFBRSxJQUF3QixFQUFFLEVBQUUsQ0FDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQU8sRUFBRSxJQUF3QixFQUFFLEVBQUUsQ0FDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQU8sRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFdBQVc7UUFDVCwyRkFBMkY7UUFDM0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQzFCO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQXlCO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQXlCO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLEdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7OzZHQTlSVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQixndUJBSmpCLDJCQUEyQjsyRkFJMUIsZ0JBQWdCO2tCQU41QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7c0hBTXFELEtBQUs7c0JBQXhELFdBQVc7dUJBQUMsaUNBQWlDO2dCQUtqQyxPQUFPO3NCQUFuQixLQUFLO2dCQVVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBVU8sU0FBUztzQkFBckIsS0FBSztnQkFVTyxZQUFZO3NCQUF4QixLQUFLO2dCQVVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVU8sVUFBVTtzQkFBdEIsS0FBSztnQkFVTyxPQUFPO3NCQUFuQixLQUFLO2dCQVVPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBVU8sZUFBZTtzQkFBM0IsS0FBSztnQkFVTyxNQUFNO3NCQUFsQixLQUFLO2dCQVVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBVU8sV0FBVztzQkFBdkIsS0FBSztnQkFVTyxLQUFLO3NCQUFqQixLQUFLO2dCQVVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBV08sV0FBVztzQkFBdkIsS0FBSztnQkFXTyxTQUFTO3NCQUFyQixLQUFLO2dCQVVPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBVU8sWUFBWTtzQkFBeEIsS0FBSztnQkFjTyxVQUFVO3NCQUF0QixLQUFLO2dCQVVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3NvaG8tYmFyXScsIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5cbmV4cG9ydCBjbGFzcyBTb2hvQmFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgLyoqIE9wdGlvbnMuICovXG4gIHByaXZhdGUgb3B0aW9uczogU29ob0Jhck9wdGlvbnMgPSB7fTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNoYXJ0LWNvbnRhaW5lci5iYXItY2hhcnQnKSBnZXQgaXNCYXIoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogRGVmaW5lcyB0aGUgZGF0YSB0byB1c2UsIG11c3QgYmUgc3BlY2lmaWVkIGZvciB0aGlzIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KCkgc2V0IGRhdGFzZXQoZGF0YXNldDogQXJyYXk8YW55Pikge1xuICAgIHRoaXMub3B0aW9ucy5kYXRhc2V0ID0gZGF0YXNldDtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuZGF0YXNldCA9IGRhdGFzZXQ7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogQ2hhcnQgVHlwZSAqL1xuICBASW5wdXQoKSBzZXQgdHlwZSh2YWx1ZTogU29ob0JhclR5cGUpIHtcbiAgICB0aGlzLm9wdGlvbnMudHlwZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy50eXBlID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogRGVmYXVsdCBpcyBhIHNpbmdsZSBvciBzdGFja2VkIGNoYXJ0LiAqL1xuICBASW5wdXQoKSBzZXQgaXNTdGFja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmlzU3RhY2tlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5pc1N0YWNrZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0cnVlIGl0cyBhIDEwMCUgYmFyIGNoYXJ0LiAqL1xuICBASW5wdXQoKSBzZXQgaXNOb3JtYWxpemVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmlzTm9ybWFsaXplZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5pc05vcm1hbGl6ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0cnVlIGl0cyBhIGdyb3VwZWQgYmFyIGNoYXJ0LiAqL1xuICBASW5wdXQoKSBzZXQgaXNHcm91cGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmlzR3JvdXBlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5pc0dyb3VwZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiBmYWxzZSB0aGUgbGVnZW5kIHdpbGwgbm90IGJlIHNob3duLiAqL1xuICBASW5wdXQoKSBzZXQgc2hvd0xlZ2VuZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5zaG93TGVnZW5kID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLnNob3dMZWdlbmQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiB0cnVlfGZhbHNlIC0gd2lsbCBkbyBvciBub3QgZG8gdGhlIGFuaW1hdGlvbiwgJ2luaXRpYWwnIHdpbGwgZG8gb25seSBmaXJzdCB0aW1lIHRoZSBhbmltYXRpb24uICovXG4gIEBJbnB1dCgpIHNldCBhbmltYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmFuaW1hdGUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuYW5pbWF0ZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIElmIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBub3QgcmVzaXplIHdoZW4gcmVzaXppbmcgdGhlIHBhZ2UuICovXG4gIEBJbnB1dCgpIHNldCByZWRyYXdPblJlc2l6ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5yZWRyYXdPblJlc2l6ZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5yZWRyYXdPblJlc2l6ZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIFVzZSBkMyBmb3JtYXQgc29tZSBleGFtcGxlcyBjYW4gYmUgZm91bmQgb24gaHR0cDovL2JpdC5seS8xSUtWaEhoICovXG4gIEBJbnB1dCgpIHNldCBmb3JtYXR0ZXJTdHJpbmcodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub3B0aW9ucy5mb3JtYXR0ZXJTdHJpbmcgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuZm9ybWF0dGVyU3RyaW5nID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIGQzIGF4aXMgZm9ybWF0LiAqL1xuICBASW5wdXQoKSBzZXQgZm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wdGlvbnMuZm9ybWF0ID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmZvcm1hdCA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEEgdG9vbHRpcCBmb3IgdGhlIHdob2xlIGNoYXJ0LiAqL1xuICBASW5wdXQoKSBzZXQgdG9vbHRpcCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vcHRpb25zLnRvb2x0aXAgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MudG9vbHRpcCA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIElmIHRydWUgbG9nIHNjYWxlIGlzIGVuYWJsZWQuICovXG4gIEBJbnB1dCgpIHNldCB1c2VMb2dTY2FsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy51c2VMb2dTY2FsZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy51c2VMb2dTY2FsZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNldHRpbmdzIGZvciB0aGUgY2hhcnQgdGlja3MuIENhbiBzZXQgdGlja3M6IHtmb3JtYXQ6IGQzRm9ybWF0LCBudW1iZXI6IG59ICovXG4gIEBJbnB1dCgpIHNldCB0aWNrcyh2YWx1ZTogb2JqZWN0KSB7XG4gICAgdGhpcy5vcHRpb25zLnRpY2tzID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLnRpY2tzID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogU2hvdyB0aGUgaW4gdGhlIGF4aXMgbGluZXMgb3Igbm90LiAqL1xuICBASW5wdXQoKSBzZXQgc2hvd0xpbmVzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLnNob3dMaW5lcyA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5zaG93TGluZXMgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIb3cgZmFyIG91dCB0aGFuIHRoZSBvdXRlciBjaXJjbGUgc2hvdWxkIHRoZSBsYWJlbHMgYmUgcGxhY2VkLCB0aGlzXG4gICAqIG1heSBiZSB1c2VmdWwgdG8gYWRqdXN0IGZvciBzb21lIGxhYmVscy4gKi9cbiAgQElucHV0KCkgc2V0IGxhYmVsRmFjdG9yKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMubGFiZWxGYWN0b3IgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MubGFiZWxGYWN0b3IgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBUaGUgbnVtYmVyIG9mIHBpeGVscyBhZnRlciB3aGljaCBhIGxhYmVsIG5lZWRzIHRvIGJlIGdpdmVuIGEgbmV3IGxpbmUuXG4gICAqIFlvdSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpcyBiYXNlZCBvbiBsYWJlbCBkYXRhLiAqL1xuICBASW5wdXQoKSBzZXQgd3JhcFdpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLm9wdGlvbnMud3JhcFdpZHRoID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLndyYXBXaWR0aCA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIElmIHRydWUgY2hhcnQgaGVpZ2h0IHdpbGwgZml0IGluIHBhcmVudCBhdmFpbGFibGUgaGVpZ2h0LiAqL1xuICBASW5wdXQoKSBzZXQgZml0SGVpZ2h0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmZpdEhlaWdodCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5maXRIZWlnaHQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBbiBlbXB0eSBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gY2hhcnQgZGF0YS4gKi9cbiAgQElucHV0KCkgc2V0IGVtcHR5TWVzc2FnZSh2YWx1ZTogU29ob0VtcHR5TWVzc2FnZU9wdGlvbnMpIHtcbiAgICB0aGlzLm9wdGlvbnMuZW1wdHlNZXNzYWdlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmVtcHR5TWVzc2FnZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBleHRyYSBhdHRyaWJ1dGVzIGxpa2UgaWQncyB0byB0aGUgY29tcG9uZW50XG4gICAqXG4gICAqIEBwYXJhbSBhdHRyaWJ1dGVzIC0gdGhlIGFycmF5IG9yIG9iamVjdCBvZiBhdHRyaWJ1dGVzIHRvIGFkZFxuICAgKi9cbiAgQElucHV0KCkgc2V0IGF0dHJpYnV0ZXMoYXR0cmlidXRlczogQXJyYXk8T2JqZWN0PiB8IE9iamVjdCkge1xuICAgIHRoaXMub3B0aW9ucy5hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogRXZlbnRzICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPFNvaG9CYXJTZWxlY3RFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNvaG9CYXJTZWxlY3RFdmVudD4oKTtcbiAgQE91dHB1dCgpIHVuc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxTb2hvQmFyU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb2hvQmFyU2VsZWN0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSByZW5kZXJlZDogRXZlbnRFbWl0dGVyPE9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLCBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICBAT3V0cHV0KCkgZGJsY2xpY2s6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG4gIC8qKlxuICAgKiBAdG9kbyByZXBsYWNlIG92ZXJyaWRlIG9mIG5hdGl2ZSBhdHRyaWJ1dGVcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgY29udGV4dG1lbnU6IEV2ZW50RW1pdHRlcjxPYmplY3RbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdFtdPigpO1xuXG4gIHByaXZhdGUgalF1ZXJ5RWxlbWVudD86IEpRdWVyeTtcbiAgcHJpdmF0ZSBiYXI/OiBTb2hvQmFyIHwgbnVsbDtcbiAgcHJpdmF0ZSB1cGRhdGVSZXF1aXJlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICApIHsgfVxuXG4gIC8qKiBTZXR1cCAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50ID0galF1ZXJ5KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50LmNoYXJ0KHRoaXMub3B0aW9ucyk7XG4gICAgICB0aGlzLmJhciA9IHRoaXMualF1ZXJ5RWxlbWVudC5kYXRhKCdiYXInKTtcblxuICAgICAgLy8gU2V0dXAgdGhlIGV2ZW50c1xuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9uKCdzZWxlY3RlZCcsIChfZTogYW55LCBhcmdzOiBTb2hvQmFyU2VsZWN0RXZlbnQpID0+XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnNlbGVjdGVkLmVtaXQoYXJncykpKTtcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5vbigndW5zZWxlY3RlZCcsIChfZTogYW55LCBhcmdzOiBTb2hvQmFyU2VsZWN0RXZlbnQpID0+XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLnVuc2VsZWN0ZWQuZW1pdChhcmdzKSkpO1xuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9uKCdyZW5kZXJlZCcsICguLi5hcmdzKSA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5yZW5kZXJlZC5lbWl0KGFyZ3MpKSk7XG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub24oJ2NvbnRleHRtZW51JywgKC4uLmFyZ3MpID0+XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmNvbnRleHRtZW51Py5lbWl0KGFyZ3MpKSk7XG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub24oJ2RibGNsaWNrJywgKF9lOiBhbnksIGFyZ3M6IE9iamVjdCkgPT5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuZGJsY2xpY2suZW1pdChhcmdzKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIGlmICh0aGlzLmJhciAmJiB0aGlzLnVwZGF0ZVJlcXVpcmVkKSB7XG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmJhcj8udXBkYXRlZCh0aGlzLmJhci5zZXR0aW5ncykpO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZWQoKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zLnR5cGUgPSAnYmFyJztcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudD8uY2hhcnQodGhpcy5vcHRpb25zKTtcbiAgICAgIHRoaXMuYmFyID0gdGhpcy5qUXVlcnlFbGVtZW50Py5kYXRhKCdiYXInKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBUZWFyIERvd24gKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gY2FsbCBvdXRzaWRlIHRoZSBhbmd1bGFyIHpvbmUgc28gY2hhbmdlIGRldGVjdGlvbiBpc24ndCB0cmlnZ2VyZWQgYnkgdGhlIHNvaG8gY29tcG9uZW50LlxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLmpRdWVyeUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9mZigpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICAgIHRoaXMuYmFyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5iYXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkKHNlbGVjdGVkOiBTb2hvQmFyU2VsZWN0ZWQpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmJhcj8uc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWxlY3RlZChzZWxlY3RlZDogU29ob0JhclNlbGVjdGVkKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5iYXI/LnRvZ2dsZVNlbGVjdGVkKHNlbGVjdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWQoKTogU29ob0JhclNlbGVjdGVkIHtcbiAgICByZXR1cm4gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKHRoaXMuYmFyIGFzIGFueSkuZ2V0U2VsZWN0ZWQoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29oby1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWRzLWVudGVycHJpc2Utbmcvc3JjL2xpYi9iYXIvc29oby1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFRdkIsTUFBTSxPQUFPLGdCQUFnQjtJQTROM0IsWUFDVSxPQUFtQixFQUNuQixNQUFjO1FBRGQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBN054QixlQUFlO1FBQ1AsWUFBTyxHQUFtQixFQUFFLENBQUM7UUEwTXJDLGFBQWE7UUFDSCxhQUFRLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ3BGLGVBQVUsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDdEYsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RFLDhGQUE4RjtRQUNwRixhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdEU7O1dBRUc7UUFDSCw0REFBNEQ7UUFDbEQsZ0JBQVcsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUlyRSxtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUszQixDQUFDO0lBM05MLElBQW9ELEtBQUs7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQscUVBQXFFO0lBQ3JFLElBQWEsT0FBTyxDQUFDLE9BQW1CO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFD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QkFBakIsTUFBTTtnQkFFRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tzb2hvLWJhcl0nLCAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgU29ob0JhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG4gIC8qKiBPcHRpb25zLiAqL1xuICBwcml2YXRlIG9wdGlvbnM6IFNvaG9CYXJPcHRpb25zID0ge307XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jaGFydC1jb250YWluZXIuYmFyLWNoYXJ0JykgZ2V0IGlzQmFyKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIERlZmluZXMgdGhlIGRhdGEgdG8gdXNlLCBtdXN0IGJlIHNwZWNpZmllZCBmb3IgdGhpcyBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCBkYXRhc2V0KGRhdGFzZXQ6IEFycmF5PGFueT4pIHtcbiAgICB0aGlzLm9wdGlvbnMuZGF0YXNldCA9IGRhdGFzZXQ7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmRhdGFzZXQgPSBkYXRhc2V0O1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIENoYXJ0IFR5cGUgKi9cbiAgQElucHV0KCkgc2V0IHR5cGUodmFsdWU6IFNvaG9CYXJUeXBlKSB7XG4gICAgdGhpcy5vcHRpb25zLnR5cGUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MudHlwZSA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIERlZmF1bHQgaXMgYSBzaW5nbGUgb3Igc3RhY2tlZCBjaGFydC4gKi9cbiAgQElucHV0KCkgc2V0IGlzU3RhY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5pc1N0YWNrZWQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuaXNTdGFja2VkID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogSWYgdHJ1ZSBpdHMgYSAxMDAlIGJhciBjaGFydC4gKi9cbiAgQElucHV0KCkgc2V0IGlzTm9ybWFsaXplZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5pc05vcm1hbGl6ZWQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuaXNOb3JtYWxpemVkID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogSWYgdHJ1ZSBpdHMgYSBncm91cGVkIGJhciBjaGFydC4gKi9cbiAgQElucHV0KCkgc2V0IGlzR3JvdXBlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5pc0dyb3VwZWQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuaXNHcm91cGVkID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogSWYgZmFsc2UgdGhlIGxlZ2VuZCB3aWxsIG5vdCBiZSBzaG93bi4gKi9cbiAgQElucHV0KCkgc2V0IHNob3dMZWdlbmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnMuc2hvd0xlZ2VuZCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5zaG93TGVnZW5kID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogdHJ1ZXxmYWxzZSAtIHdpbGwgZG8gb3Igbm90IGRvIHRoZSBhbmltYXRpb24sICdpbml0aWFsJyB3aWxsIGRvIG9ubHkgZmlyc3QgdGltZSB0aGUgYW5pbWF0aW9uLiAqL1xuICBASW5wdXQoKSBzZXQgYW5pbWF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5hbmltYXRlID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmFuaW1hdGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0cnVlLCB0aGUgY29tcG9uZW50IHdpbGwgbm90IHJlc2l6ZSB3aGVuIHJlc2l6aW5nIHRoZSBwYWdlLiAqL1xuICBASW5wdXQoKSBzZXQgcmVkcmF3T25SZXNpemUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnMucmVkcmF3T25SZXNpemUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MucmVkcmF3T25SZXNpemUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBVc2UgZDMgZm9ybWF0IHNvbWUgZXhhbXBsZXMgY2FuIGJlIGZvdW5kIG9uIGh0dHA6Ly9iaXQubHkvMUlLVmhIaCAqL1xuICBASW5wdXQoKSBzZXQgZm9ybWF0dGVyU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wdGlvbnMuZm9ybWF0dGVyU3RyaW5nID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmZvcm1hdHRlclN0cmluZyA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRoZSBkMyBheGlzIGZvcm1hdC4gKi9cbiAgQElucHV0KCkgc2V0IGZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vcHRpb25zLmZvcm1hdCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5mb3JtYXQgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBIHRvb2x0aXAgZm9yIHRoZSB3aG9sZSBjaGFydC4gKi9cbiAgQElucHV0KCkgc2V0IHRvb2x0aXAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMub3B0aW9ucy50b29sdGlwID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLnRvb2x0aXAgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0cnVlIGxvZyBzY2FsZSBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKSBzZXQgdXNlTG9nU2NhbGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wdGlvbnMudXNlTG9nU2NhbGUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MudXNlTG9nU2NhbGUgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBTZXR0aW5ncyBmb3IgdGhlIGNoYXJ0IHRpY2tzLiBDYW4gc2V0IHRpY2tzOiB7Zm9ybWF0OiBkM0Zvcm1hdCwgbnVtYmVyOiBufSAqL1xuICBASW5wdXQoKSBzZXQgdGlja3ModmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMub3B0aW9ucy50aWNrcyA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy50aWNrcyA9IHZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNob3cgdGhlIGluIHRoZSBheGlzIGxpbmVzIG9yIG5vdC4gKi9cbiAgQElucHV0KCkgc2V0IHNob3dMaW5lcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5zaG93TGluZXMgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3Muc2hvd0xpbmVzID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogSG93IGZhciBvdXQgdGhhbiB0aGUgb3V0ZXIgY2lyY2xlIHNob3VsZCB0aGUgbGFiZWxzIGJlIHBsYWNlZCwgdGhpc1xuICAgKiBtYXkgYmUgdXNlZnVsIHRvIGFkanVzdCBmb3Igc29tZSBsYWJlbHMuICovXG4gIEBJbnB1dCgpIHNldCBsYWJlbEZhY3Rvcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5vcHRpb25zLmxhYmVsRmFjdG9yID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmxhYmVsRmFjdG9yID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIG51bWJlciBvZiBwaXhlbHMgYWZ0ZXIgd2hpY2ggYSBsYWJlbCBuZWVkcyB0byBiZSBnaXZlbiBhIG5ldyBsaW5lLlxuICAgKiBZb3UgbWF5IHdhbnQgdG8gY2hhbmdlIHRoaXMgYmFzZWQgb24gbGFiZWwgZGF0YS4gKi9cbiAgQElucHV0KCkgc2V0IHdyYXBXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5vcHRpb25zLndyYXBXaWR0aCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy53cmFwV2lkdGggPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0cnVlIGNoYXJ0IGhlaWdodCB3aWxsIGZpdCBpbiBwYXJlbnQgYXZhaWxhYmxlIGhlaWdodC4gKi9cbiAgQElucHV0KCkgc2V0IGZpdEhlaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3B0aW9ucy5maXRIZWlnaHQgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLmJhcikge1xuICAgICAgdGhpcy5iYXIuc2V0dGluZ3MuZml0SGVpZ2h0ID0gdmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKiogQW4gZW1wdHkgbWVzc2FnZSB3aWxsIGJlIGRpc3BsYXllZCB3aGVuIHRoZXJlIGlzIG5vIGNoYXJ0IGRhdGEuICovXG4gIEBJbnB1dCgpIHNldCBlbXB0eU1lc3NhZ2UodmFsdWU6IFNvaG9FbXB0eU1lc3NhZ2VPcHRpb25zKSB7XG4gICAgdGhpcy5vcHRpb25zLmVtcHR5TWVzc2FnZSA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICB0aGlzLmJhci5zZXR0aW5ncy5lbXB0eU1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgZXh0cmEgYXR0cmlidXRlcyBsaWtlIGlkJ3MgdG8gdGhlIGNvbXBvbmVudFxuICAgKlxuICAgKiBAcGFyYW0gYXR0cmlidXRlcyAtIHRoZSBhcnJheSBvciBvYmplY3Qgb2YgYXR0cmlidXRlcyB0byBhZGRcbiAgICovXG4gIEBJbnB1dCgpIHNldCBhdHRyaWJ1dGVzKGF0dHJpYnV0ZXM6IEFycmF5PE9iamVjdD4gfCBPYmplY3QpIHtcbiAgICB0aGlzLm9wdGlvbnMuYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG5cbiAgICBpZiAodGhpcy5iYXIpIHtcbiAgICAgIHRoaXMuYmFyLnNldHRpbmdzLmF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzO1xuICAgICAgdGhpcy51cGRhdGVSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEV2ZW50cyAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxTb2hvQmFyU2VsZWN0RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxTb2hvQmFyU2VsZWN0RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSB1bnNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8U29ob0JhclNlbGVjdEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U29ob0JhclNlbGVjdEV2ZW50PigpO1xuICBAT3V0cHV0KCkgcmVuZGVyZWQ6IEV2ZW50RW1pdHRlcjxPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSwgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgpIGRibGNsaWNrOiBFdmVudEVtaXR0ZXI8T2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8T2JqZWN0PigpO1xuICAvKipcbiAgICogQHRvZG8gcmVwbGFjZSBvdmVycmlkZSBvZiBuYXRpdmUgYXR0cmlidXRlXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGNvbnRleHRtZW51OiBFdmVudEVtaXR0ZXI8T2JqZWN0W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3RbXT4oKTtcblxuICBwcml2YXRlIGpRdWVyeUVsZW1lbnQ/OiBKUXVlcnk7XG4gIHByaXZhdGUgYmFyPzogU29ob0JhciB8IG51bGw7XG4gIHByaXZhdGUgdXBkYXRlUmVxdWlyZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7IH1cblxuICAvKiogU2V0dXAgKi9cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudCA9IGpRdWVyeSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5jaGFydCh0aGlzLm9wdGlvbnMpO1xuICAgICAgdGhpcy5iYXIgPSB0aGlzLmpRdWVyeUVsZW1lbnQuZGF0YSgnYmFyJyk7XG5cbiAgICAgIC8vIFNldHVwIHRoZSBldmVudHNcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5vbignc2VsZWN0ZWQnLCAoX2U6IGFueSwgYXJnczogU29ob0JhclNlbGVjdEV2ZW50KSA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5zZWxlY3RlZC5lbWl0KGFyZ3MpKSk7XG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQub24oJ3Vuc2VsZWN0ZWQnLCAoX2U6IGFueSwgYXJnczogU29ob0JhclNlbGVjdEV2ZW50KSA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy51bnNlbGVjdGVkLmVtaXQoYXJncykpKTtcbiAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5vbigncmVuZGVyZWQnLCAoLi4uYXJncykgPT5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMucmVuZGVyZWQuZW1pdChhcmdzKSkpO1xuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9uKCdjb250ZXh0bWVudScsICguLi5hcmdzKSA9PlxuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jb250ZXh0bWVudT8uZW1pdChhcmdzKSkpO1xuICAgICAgdGhpcy5qUXVlcnlFbGVtZW50Lm9uKCdkYmxjbGljaycsIChfZTogYW55LCBhcmdzOiBPYmplY3QpID0+XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmRibGNsaWNrLmVtaXQoYXJncykpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5iYXIgJiYgdGhpcy51cGRhdGVSZXF1aXJlZCkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5iYXI/LnVwZGF0ZWQodGhpcy5iYXIuc2V0dGluZ3MpKTtcbiAgICAgIHRoaXMudXBkYXRlUmVxdWlyZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVkKCkge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMub3B0aW9ucy50eXBlID0gJ2Jhcic7XG4gICAgICB0aGlzLmpRdWVyeUVsZW1lbnQ/LmNoYXJ0KHRoaXMub3B0aW9ucyk7XG4gICAgICB0aGlzLmJhciA9IHRoaXMualF1ZXJ5RWxlbWVudD8uZGF0YSgnYmFyJyk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogVGVhciBEb3duICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIGNhbGwgb3V0c2lkZSB0aGUgYW5ndWxhciB6b25lIHNvIGNoYW5nZSBkZXRlY3Rpb24gaXNuJ3QgdHJpZ2dlcmVkIGJ5IHRoZSBzb2hvIGNvbXBvbmVudC5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5qUXVlcnlFbGVtZW50KSB7XG4gICAgICAgIHRoaXMualF1ZXJ5RWxlbWVudC5vZmYoKTtcbiAgICAgICAgdGhpcy5qUXVlcnlFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuYmFyKSB7XG4gICAgICAgIHRoaXMuYmFyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5iYXIgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldFNlbGVjdGVkKHNlbGVjdGVkOiBTb2hvQmFyU2VsZWN0ZWQpIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLmJhcj8uc2V0U2VsZWN0ZWQoc2VsZWN0ZWQpKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWxlY3RlZChzZWxlY3RlZDogU29ob0JhclNlbGVjdGVkKSB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5iYXI/LnRvZ2dsZVNlbGVjdGVkKHNlbGVjdGVkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0ZWQoKTogU29ob0JhclNlbGVjdGVkIHtcbiAgICByZXR1cm4gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gKHRoaXMuYmFyIGFzIGFueSkuZ2V0U2VsZWN0ZWQoKSk7XG4gIH1cbn1cbiJdfQ==
|