@natec/mef-dev-ui-kit 16.2.5 → 16.3.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/markup-kit/card/card/card.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card-long/card-long.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card-simple/card-simple.component.mjs +6 -6
- package/esm2022/lib/markup-kit/card/card.module.mjs +9 -9
- package/esm2022/lib/markup-kit/collapse/collapse/collapse.component.mjs +6 -6
- package/esm2022/lib/markup-kit/collapse/collapse-set/collapse-set.component.mjs +4 -4
- package/esm2022/lib/markup-kit/collapse/collapse.module.mjs +5 -5
- package/esm2022/lib/markup-kit/executors/mefdev-executor-page/mefdev-executor-page.component.mjs +4 -4
- package/esm2022/lib/markup-kit/executors/stage/stage.component.mjs +4 -4
- package/esm2022/lib/markup-kit/executors/step-executor/step-executor.component.mjs +74 -10
- package/esm2022/lib/markup-kit/executors/step-executor.module.mjs +10 -6
- package/esm2022/lib/markup-kit/modals/fill/fill.component.mjs +6 -6
- package/esm2022/lib/markup-kit/modals/markup-kit.module.mjs +5 -5
- package/esm2022/lib/markup-kit/modals/right-filter/right-filter.component.mjs +4 -4
- package/esm2022/lib/markup-kit/modals/slide-right/slide-right.component.mjs +5 -5
- package/esm2022/lib/markup-kit/modals/slide-up/slide-up.component.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/central-page/central-page.component.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/central-page-row/central-page-row.component.mjs +4 -4
- package/esm2022/lib/markup-kit/page-layouts/manage-page/manage-page.component.mjs +6 -6
- package/esm2022/lib/markup-kit/page-layouts/page-layouts.module.mjs +5 -5
- package/esm2022/lib/markup-kit/page-layouts/profile/profile.component.mjs +6 -6
- package/esm2022/lib/markup-kit/page-layouts/table-page/table-page.component.mjs +5 -5
- package/esm2022/lib/markup-kit/slider/slider/slider.component.mjs +6 -6
- package/esm2022/lib/markup-kit/slider/slider.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.mjs +140 -135
- package/esm2022/lib/markup-kit/utils/datepicker/datepicker.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field-item/filtered-field-item.component.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.module.mjs +5 -5
- package/esm2022/lib/markup-kit/utils/filtered-field/filtered-field.service.mjs +4 -4
- package/esm2022/lib/markup-kit/utils/help-block/help-block.component.mjs +6 -6
- package/esm2022/lib/markup-kit/utils/help-block/hepl-block.module.mjs +5 -5
- package/esm2022/lib/pg-components/card/card.components.mjs +11 -8
- package/esm2022/lib/pg-components/card/card.module.mjs +10 -10
- package/esm2022/lib/pg-components/progress/progress.component.mjs +4 -4
- package/esm2022/lib/pg-components/progress/progress.config.mjs +4 -4
- package/esm2022/lib/pg-components/progress/progress.module.mjs +5 -5
- package/esm2022/lib/pg-components/select/option.component.mjs +4 -4
- package/esm2022/lib/pg-components/select/option.pipe.mjs +4 -4
- package/esm2022/lib/pg-components/select/select.component.mjs +5 -5
- package/esm2022/lib/pg-components/select/select.module.mjs +5 -5
- package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test/spec-flow-test.component.mjs +4 -4
- package/esm2022/lib/pg-components/spec-flow-test/spec-flow-test.module.mjs +5 -5
- package/esm2022/lib/pg-components/switch/switch.component.mjs +5 -5
- package/esm2022/lib/pg-components/switch/switch.module.mjs +5 -5
- package/esm2022/lib/pg-components/tabs/tab-body.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tab-label.directive.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tab.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs-ink-bar.directive.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs-nav.component.mjs +4 -4
- package/esm2022/lib/pg-components/tabs/tabs.module.mjs +5 -5
- package/esm2022/lib/pg-components/tabs/tabset.component.mjs +5 -5
- package/fesm2022/natec-mef-dev-ui-kit.mjs +418 -345
- package/fesm2022/natec-mef-dev-ui-kit.mjs.map +1 -1
- package/lib/markup-kit/card/card/card.component.d.ts +1 -1
- package/lib/markup-kit/card/card-long/card-long.component.d.ts +1 -1
- package/lib/markup-kit/card/card-simple/card-simple.component.d.ts +1 -1
- package/lib/markup-kit/card/card.module.d.ts +1 -1
- package/lib/markup-kit/collapse/collapse/collapse.component.d.ts +1 -1
- package/lib/markup-kit/executors/step-executor/step-executor.component.d.ts +45 -3
- package/lib/markup-kit/executors/step-executor.module.d.ts +4 -3
- package/lib/markup-kit/modals/fill/fill.component.d.ts +1 -1
- package/lib/markup-kit/modals/slide-right/slide-right.component.d.ts +1 -1
- package/lib/markup-kit/modals/slide-up/slide-up.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/central-page/central-page.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/manage-page/manage-page.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/profile/profile.component.d.ts +1 -1
- package/lib/markup-kit/page-layouts/table-page/table-page.component.d.ts +1 -1
- package/lib/markup-kit/slider/slider/slider.component.d.ts +1 -1
- package/lib/markup-kit/utils/datepicker/datepicker/datepicker.component.d.ts +104 -104
- package/lib/markup-kit/utils/filtered-field/filtered-field-container/filtered-field-container.component.d.ts +1 -1
- package/lib/markup-kit/utils/help-block/help-block.component.d.ts +1 -1
- package/lib/pg-components/card/card.components.d.ts +5 -5
- package/lib/pg-components/card/card.module.d.ts +5 -5
- package/lib/pg-components/select/select.component.d.ts +1 -1
- package/lib/pg-components/switch/switch.component.d.ts +1 -1
- package/lib/pg-components/tabs/tabset.component.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/styles/designe-colors.scss +16 -1
|
@@ -19,7 +19,7 @@ export class TabChangeEvent {
|
|
|
19
19
|
* </mefdev-tabset>
|
|
20
20
|
*
|
|
21
21
|
* Example of usage:
|
|
22
|
-
* <example-url>https://mef.dev/ui_kit_demo/view/tabset</example-url>
|
|
22
|
+
* <example-url>https://mef.dev/ui_kit_demo/view/page_components/tabset</example-url>
|
|
23
23
|
*/
|
|
24
24
|
export class MefDevTabSetComponent {
|
|
25
25
|
_renderer;
|
|
@@ -204,10 +204,10 @@ export class MefDevTabSetComponent {
|
|
|
204
204
|
constructor(_renderer) {
|
|
205
205
|
this._renderer = _renderer;
|
|
206
206
|
}
|
|
207
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
208
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
207
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevTabSetComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
208
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MefDevTabSetComponent, selector: "mefdev-tabset", inputs: { TabBarExtraTemplate: "TabBarExtraTemplate", Animated: "Animated", ShowPagination: "ShowPagination", Hide: "Hide", SelectedIndex: "SelectedIndex", Size: "Size", TabPosition: "TabPosition", extraTabClass: "extraTabClass", extraTabContentClass: "extraTabContentClass", Type: "Type", tabAnimation: "tabAnimation" }, outputs: { SelectedIndexChange: "SelectedIndexChange", SelectChange: "SelectChange" }, queries: [{ propertyName: "TabBarExtraContent", first: true, predicate: ["TabBarExtraContent"], descendants: true, static: true }], viewQueries: [{ propertyName: "_tabNav", first: true, predicate: ["tabNav"], descendants: true, static: true }, { propertyName: "_tabContent", first: true, predicate: ["tabContent"], descendants: true, static: true }, { propertyName: "_hostContent", first: true, predicate: ["hostContent"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li mefdev-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MefDevTabsNavComponent, selector: "mefdev-tabs-nav", inputs: ["Size", "Animated", "Position", "HideBar", "Type", "ShowPagination", "PositionMode", "selectedIndex"] }, { kind: "directive", type: i3.MefDevTabLabelDirective, selector: "[mefdev-tab-label]", inputs: ["disabled"] }, { kind: "component", type: i4.MefDevTabBodyComponent, selector: "mefdev-tab-body", inputs: ["content"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
209
209
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MefDevTabSetComponent, decorators: [{
|
|
211
211
|
type: Component,
|
|
212
212
|
args: [{ selector: 'mefdev-tabset', encapsulation: ViewEncapsulation.None, template: "<div class=\"tab-wrapper tab-{{ _tabPositionMode }} {{ _tabPosition }} {{ _type }} {{ _extra_tab_class }}\" #hostContent>\r\n <mefdev-tabs-nav\r\n #tabNav\r\n [Size]=\"Size\"\r\n [Type]=\"Type\"\r\n [ShowPagination]=\"ShowPagination\"\r\n [PositionMode]=\"_tabPositionMode\"\r\n [Position]=\"_tabPosition\"\r\n [Animated]=\"inkBarAnimated\"\r\n [HideBar]=\"Hide\"\r\n [selectedIndex]=\"SelectedIndex\"\r\n >\r\n <ng-template #tabBarExtraContent>\r\n <ng-template [ngTemplateOutlet]=\"TabBarExtraTemplate || TabBarExtraContent\"></ng-template>\r\n </ng-template>\r\n <li mefdev-tab-label [disabled]=\"tab.disabled\" (click)=\"clickLabel(i)\" *ngFor=\"let tab of _tabs; let i = index\">\r\n <a href=\"javascript:void(0);\" class=\"\" [class.active]=\"SelectedIndex == i && !Hide\">\r\n <ng-template [ngTemplateOutlet]=\"tab._tabHeading\"></ng-template>\r\n </a>\r\n </mefdev-tabs-nav>\r\n <div class=\"tab-content-wrapper {{ _extra_tabcontent_class }}\">\r\n <div\r\n class=\"tab-content {{ _tabAnimation }}\"\r\n #tabContent\r\n [class.animated]=\"tabPaneAnimated\"\r\n [class.not-animated]=\"!tabPaneAnimated\"\r\n [style.margin-left.%]=\"tabPaneAnimated && -(SelectedIndex ?? -1) * 100\"\r\n >\r\n <mefdev-tab-body\r\n class=\"tab-pane\"\r\n [class.active]=\"SelectedIndex == i && !Hide\"\r\n [class.inactive]=\"SelectedIndex != i || Hide\"\r\n [content]=\"tab.content\"\r\n *ngFor=\"let tab of _tabs; let i = index\"\r\n >\r\n </mefdev-tab-body>\r\n </div>\r\n </div>\r\n </div>" }]
|
|
213
213
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { TabBarExtraTemplate: [{
|
|
@@ -249,4 +249,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
|
249
249
|
}], tabAnimation: [{
|
|
250
250
|
type: Input
|
|
251
251
|
}] } });
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUVyRCxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssQ0FBUztJQUNkLEdBQUcsQ0FBcUI7Q0FDekI7QUFPRDs7Ozs7Ozs7OztJQVVJO0FBTUosTUFBTSxPQUFPLHFCQUFxQjtJQXNOWjtJQXJOcEIsR0FBRyxDQUFLO0lBQ1IsU0FBUyxDQUFLO0lBQ2QsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUN4QixNQUFNLENBQUs7SUFDWCxZQUFZLEdBQWdCLEtBQUssQ0FBQztJQUNsQyxnQkFBZ0IsR0FBb0IsWUFBWSxDQUFDO0lBQ2pELGNBQWMsR0FBa0IsQ0FBQyxDQUFDO0lBQ2xDLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsS0FBSyxHQUF5QixFQUFFLENBQUM7SUFDakMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdEIsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0lBRTdCOztPQUVHO0lBQ00sbUJBQW1CLENBQW9CO0lBQ00sa0JBQWtCLENB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RUFBRSxJQUFJLEVBQUU7Z0JBQ0csWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVVqQyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU1GLGFBQWE7c0JBRGhCLEtBQUs7Z0JBY0YsbUJBQW1CO3NCQUR0QixNQUFNO2dCQVdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBT0UsSUFBSTtzQkFBWixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFhRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFTRixJQUFJO3NCQURQLEtBQUs7Z0JBYUYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIGNvZGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIgKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJzTmF2Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzLW5hdi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbmltYXRlZEludGVyZmFjZSB7XHJcbiAgaW5rQmFyOiBib29sZWFuO1xyXG4gIHRhYlBhbmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJDaGFuZ2VFdmVudCB7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICB0YWI6IE1lZkRldlRhYkNvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcclxuZXhwb3J0IHR5cGUgVGFiVHlwZSA9ICdsaW5lJyB8ICdmaWxsdXAnIHwgJ2xpbmV0cmlhbmdsZSc7XHJcblxyXG5cclxuLyoqXHJcbiAgKiBSZXByZXNlbnRzIGEgdGFiIHNldCBvciB0YWIgZ3JvdXAgY29tcG9uZW50LlxyXG4gICogQGV4YW1wbGVcclxuICAqIDxtZWZkZXYtdGFic2V0IFRhYlBvc2l0aW9uPVwidG9wXCIgQW5pbWF0ZWQ9XCJ0cnVlXCIgU2hvd1BhZ2luYXRpb249XCJ0cnVlXCI+XHJcbiAgKiAgIDxtZWZkZXYtdGFiIGxhYmVsPVwiVGFiIDFcIj5UYWIgMSBjb250ZW50PC9tZWZkZXYtdGFiPlxyXG4gICogICA8bWVmZGV2LXRhYiBsYWJlbD1cIlRhYiAyXCI+VGFiIDIgY29udGVudDwvbWVmZGV2LXRhYj5cclxuICAqIDwvbWVmZGV2LXRhYnNldD5cclxuICAqXHJcbiAgKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gICogPGV4YW1wbGUtdXJsPmh0dHBzOi8vbWVmLmRldi91aV9raXRfZGVtby92aWV3L3RhYnNldDwvZXhhbXBsZS11cmw+XHJcbiAgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtZWZkZXYtdGFic2V0JyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFic2V0LmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZWZEZXZUYWJTZXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIF9lbDphbnk7XHJcbiAgX2NsYXNzTWFwOmFueTtcclxuICBfcHJlZml4Q2xzID0gJ25hdi10YWJzJztcclxuICBfd2lkdGg6YW55O1xyXG4gIF90YWJQb3NpdGlvbjogVGFiUG9zaXRpb24gPSAndG9wJztcclxuICBfdGFiUG9zaXRpb25Nb2RlOiBUYWJQb3NpdGlvbk1vZGUgPSAnaG9yaXpvbnRhbCc7XHJcbiAgX2luZGV4VG9TZWxlY3Q6IG51bWJlciB8IG51bGwgPSAwO1xyXG4gIF9zZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBfaXNWaWV3SW5pdCA9IGZhbHNlO1xyXG4gIF90YWJzOiBNZWZEZXZUYWJDb21wb25lbnRbXSA9IFtdO1xyXG4gIF90YWJBbmltYXRpb24gPSAnJztcclxuICBfZXh0cmFfdGFiX2NsYXNzID0gJyc7XHJcbiAgX2V4dHJhX3RhYmNvbnRlbnRfY2xhc3MgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGVtcGxhdGUgcmVmZXJlbmNlIGZvciBhZGRpdGlvbmFsIGNvbnRlbnQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0YWIgYmFyLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFRhYkJhckV4dHJhVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ1RhYkJhckV4dHJhQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIFRhYkJhckV4dHJhQ29udGVudDogVGVtcGxhdGVSZWY8dm9pZD47XHJcbiAgQFZpZXdDaGlsZCgndGFiTmF2JywgeyBzdGF0aWM6IHRydWUgfSkgX3RhYk5hdjogTWVmRGV2VGFic05hdkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCd0YWJDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgX3RhYkNvbnRlbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaG9zdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaG9zdENvbnRlbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdGhlIHRhYiBzZXQgaXMgYW5pbWF0ZWQuIENhbiBiZSBhIGJvb2xlYW4gb3IgYW4gb2JqZWN0IG9mIHR5cGUgQW5pbWF0ZWRJbnRlcmZhY2UuXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiAtIHRydWUgKGVuYWJsZXMgYW5pbWF0aW9uIGZvciBib3RoIGluayBiYXIgYW5kIHRhYiBwYW5lKVxyXG4gICAqIC0geyBpbmtCYXI6IHRydWUsIHRhYlBhbmU6IGZhbHNlIH0gKGVuYWJsZXMgYW5pbWF0aW9uIGZvciBpbmsgYmFyIG9ubHkpXHJcbiAgICogRGVmYXVsdDogdHJ1ZVxyXG4gICAqL1xyXG5cclxuICBASW5wdXQoKSBBbmltYXRlZDogQW5pbWF0ZWRJbnRlcmZhY2UgfCBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0byBzaG93IHBhZ2luYXRpb24gY29udHJvbHMgZm9yIHNjcm9sbGluZyB0YWJzLlxyXG4gICAqIEBleGFtcGxlIHRydWVcclxuICAgKiBEZWZhdWx0OiB0cnVlXHJcbiAgICovXHJcbiAgQElucHV0KCkgU2hvd1BhZ2luYXRpb24gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSB0YWIgc2V0IGlzIGhpZGRlbi5cclxuICAgKiBAZXhhbXBsZSB0cnVlXHJcbiAgICogRGVmYXVsdDogZmFsc2VcclxuICAgKi9cclxuICBASW5wdXQoKSBIaWRlID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFNlbGVjdGVkSW5kZXgodmFsdWU6IG51bWJlciB8IG51bGwpIHtcclxuICAgIHRoaXMuX2luZGV4VG9TZWxlY3QgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBTZWxlY3RlZEluZGV4KCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSW5kZXg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHRhYiBpbmRleCBjaGFuZ2VzLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGluZGV4IG9mIHRoZSBzZWxlY3RlZCB0YWIuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgZ2V0IFNlbGVjdGVkSW5kZXhDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgcmV0dXJuIHRoaXMuU2VsZWN0Q2hhbmdlLnBpcGUobWFwKChldmVudDphbnkpID0+IGV2ZW50LmluZGV4KSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgc2VsZWN0ZWQuXHJcbiAgICogQGV4YW1wbGVcclxuICAgKiA8bWVmZGV2LXRhYnNldCAoU2VsZWN0Q2hhbmdlKT1cIm9uVGFiU2VsZWN0KCRldmVudClcIj48L21lZmRldi10YWJzZXQ+XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIFNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiQ2hhbmdlRXZlbnQ+KHRydWUpO1xyXG5cclxuICAvKipcclxuICAgKiBTaXplIG9mIHRoZSB0YWIgc2V0LiBDYW4gYmUgJ2RlZmF1bHQnLCAnc21hbGwnLCBvciAnbGFyZ2UnLlxyXG4gICAqIEBleGFtcGxlICdsYXJnZSdcclxuICAgKiBEZWZhdWx0OiAnZGVmYXVsdCdcclxuICAgKi9cclxuICBASW5wdXQoKSBTaXplID0gJ2RlZmF1bHQnO1xyXG4gIF90eXBlOiBUYWJUeXBlID0gJ2xpbmUnO1xyXG4gIHRhYnM6IE1lZkRldlRhYkNvbXBvbmVudFtdID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFBvc2l0aW9uIG9mIHRoZSB0YWIgc2V0LiBDYW4gYmUgJ3RvcCcsICdib3R0b20nLCAnbGVmdCcsIG9yICdyaWdodCcuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgVGFiUG9zaXRpb24odmFsdWU6IFRhYlBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLl90YWJQb3NpdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fdGFiUG9zaXRpb25Nb2RlID0gKHZhbHVlID09PSAndG9wJyB8fCB2YWx1ZSA9PT0gJ2JvdHRvbScpID8gJ2hvcml6b250YWwnIDogJ3ZlcnRpY2FsJztcclxuICB9XHJcbiAgZ2V0IFRhYlBvc2l0aW9uKCk6IFRhYlBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzIGZvciB0aGUgdGFicy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHRyYVRhYkNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2V4dHJhX3RhYl9jbGFzcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkaXRpb25hbCBDU1MgY2xhc3MgZm9yIHRoZSB0YWIgY29udGVudC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHRyYVRhYkNvbnRlbnRDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9leHRyYV90YWJjb250ZW50X2NsYXNzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUeXBlIG9mIHRoZSB0YWIgc2V0LiBDYW4gYmUgJ2xpbmUnLCAnZmlsbHVwJywgb3IgJ2xpbmV0cmlhbmdsZScuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgVHlwZSh2YWx1ZTogVGFiVHlwZSkge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3NldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmltYXRpb24gdG8gYXBwbHkgdG8gdGhlIHRhYnMuIEFjY2VwdHMgQ1NTIGFuaW1hdGlvbiBuYW1lLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHRhYkFuaW1hdGlvbih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90YWJBbmltYXRpb24gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBUeXBlKCk6IFRhYlR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBfc2V0UG9zaXRpb24odmFsdWU6IFRhYlBvc2l0aW9uKTogdm9pZCB7fVxyXG5cclxuICBfc2V0Q2xhc3NNYXAoKTogdm9pZCB7fVxyXG5cclxuICAvLyBPdGhlciBwcm9wZXJ0aWVzLCBtZXRob2RzLCBhbmQgbGlmZWN5Y2xlIGhvb2tzLi4uXHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdHMgdGhlIHRhYiBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LlxyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIHRhYiB0byBzZWxlY3QuXHJcbiAgICogYGBgXHJcbiAgICogPGJ1dHRvbiAoY2xpY2spPVwiY2xpY2tMYWJlbCgwKVwiPlNlbGVjdCBUYWIgMTwvYnV0dG9uPlxyXG4gICAqYGBgXHJcbiAgICovXHJcbiAgY2xpY2tMYWJlbChpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fdGFic1tpbmRleF0uRGlzYWJsZWQpIHtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuU2VsZWN0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgICB0aGlzLl90YWJzW2luZGV4XS5wZ0NsaWNrLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIC8vIENsYW1wIHRoZSBuZXh0IHNlbGVjdGVkIGluZGV4IHRvIHRoZSBib3VuZHMgb2YgMCBhbmQgdGhlIHRhYnMgbGVuZ3RoLiBOb3RlIHRoZSBgfHwgMGAsIHdoaWNoXHJcbiAgICAvLyBlbnN1cmVzIHRoYXQgdmFsdWVzIGxpa2UgTmFOIGNhbid0IGdldCB0aHJvdWdoIGFuZCB3aGljaCB3b3VsZCBvdGhlcndpc2UgdGhyb3cgdGhlXHJcbiAgICAvLyBjb21wb25lbnQgaW50byBhbiBpbmZpbml0ZSBsb29wIChzaW5jZSBNYXRoLm1heChOYU4sIDApID09PSBOYU4pLlxyXG4gICAgY29uc3QgaW5kZXhUb1NlbGVjdCA9ICh0aGlzLl9pbmRleFRvU2VsZWN0ID0gTWF0aC5taW4odGhpcy5fdGFicy5sZW5ndGggLSAxLCBNYXRoLm1heCh0aGlzLl9pbmRleFRvU2VsZWN0IHx8IDAsIDApKSk7XHJcblxyXG4gICAgLy8gSWYgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gc2VsZWN0ZWQgaW5kZXgsIGVtaXQgYSBjaGFuZ2UgZXZlbnQuIFNob3VsZCBub3QgdHJpZ2dlciBpZlxyXG4gICAgLy8gdGhlIHNlbGVjdGVkIGluZGV4IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPT0gaW5kZXhUb1NlbGVjdCAmJiB0aGlzLl9zZWxlY3RlZEluZGV4ICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5TZWxlY3RDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleFRvU2VsZWN0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2V0dXAgdGhlIHBvc2l0aW9uIGZvciBlYWNoIHRhYiBhbmQgb3B0aW9uYWxseSBzZXR1cCBhbiBvcmlnaW4gb24gdGhlIG5leHQgc2VsZWN0ZWQgdGFiLlxyXG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWI6IE1lZkRldlRhYkNvbXBvbmVudCwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICB0YWIucG9zaXRpb24gPSBpbmRleCAtIGluZGV4VG9TZWxlY3Q7XHJcbiAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBzZWxlY3RlZCB0YWIsIHRoZW4gc2V0IHVwIGFuIG9yaWdpbiBmb3IgdGhlIG5leHQgc2VsZWN0ZWQgdGFiXHJcbiAgICAgIC8vIGlmIGl0IGRvZXNuJ3QgaGF2ZSBvbmUgYWxyZWFkeS5cclxuICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gbnVsbCAmJiB0YWIucG9zaXRpb24gPT09IDAgJiYgIXRhYi5vcmlnaW4pIHtcclxuICAgICAgICB0YWIub3JpZ2luID0gaW5kZXhUb1NlbGVjdCAtIHRoaXMuX3NlbGVjdGVkSW5kZXg7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGluZGV4VG9TZWxlY3Q7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pc1ZpZXdJbml0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4OiBudW1iZXIpOiBUYWJDaGFuZ2VFdmVudCB7XHJcbiAgICBjb25zdCBldmVudCA9IG5ldyBUYWJDaGFuZ2VFdmVudCgpO1xyXG4gICAgZXZlbnQuaW5kZXggPSBpbmRleDtcclxuICAgIGlmICh0aGlzLl90YWJzICYmIHRoaXMuX3RhYnMubGVuZ3RoKSB7XHJcbiAgICAgIGV2ZW50LnRhYiA9IHRoaXMuX3RhYnNbaW5kZXhdO1xyXG4gICAgICB0aGlzLl90YWJzLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcclxuICAgICAgICBpZiAoaSAhPT0gaW5kZXgpIHtcclxuICAgICAgICAgIGl0ZW0ucGdEZXNlbGVjdC5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgZXZlbnQudGFiLnBnU2VsZWN0LmVtaXQoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBldmVudDtcclxuICB9XHJcblxyXG4gIGdldCBpbmtCYXJBbmltYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkFuaW1hdGVkID09PSB0cnVlIHx8ICh0aGlzLkFuaW1hdGVkIGFzIEFuaW1hdGVkSW50ZXJmYWNlKS5pbmtCYXIgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdGFiUGFuZUFuaW1hdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuQW5pbWF0ZWQgPT09IHRydWUgfHwgKHRoaXMuQW5pbWF0ZWQgYXMgQW5pbWF0ZWRJbnRlcmZhY2UpLnRhYlBhbmUgPT09IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0YWItd3JhcHBlciB0YWIte3sgX3RhYlBvc2l0aW9uTW9kZSB9fSB7eyBfdGFiUG9zaXRpb24gfX0ge3sgX3R5cGUgfX0ge3sgX2V4dHJhX3RhYl9jbGFzcyB9fVwiICNob3N0Q29udGVudD5cclxuICAgIDxtZWZkZXYtdGFicy1uYXZcclxuICAgICAgI3RhYk5hdlxyXG4gICAgICBbU2l6ZV09XCJTaXplXCJcclxuICAgICAgW1R5cGVdPVwiVHlwZVwiXHJcbiAgICAgIFtTaG93UGFnaW5hdGlvbl09XCJTaG93UGFnaW5hdGlvblwiXHJcbiAgICAgIFtQb3NpdGlvbk1vZGVdPVwiX3RhYlBvc2l0aW9uTW9kZVwiXHJcbiAgICAgIFtQb3NpdGlvbl09XCJfdGFiUG9zaXRpb25cIlxyXG4gICAgICBbQW5pbWF0ZWRdPVwiaW5rQmFyQW5pbWF0ZWRcIlxyXG4gICAgICBbSGlkZUJhcl09XCJIaWRlXCJcclxuICAgICAgW3NlbGVjdGVkSW5kZXhdPVwiU2VsZWN0ZWRJbmRleFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGFiQmFyRXh0cmFDb250ZW50PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJUYWJCYXJFeHRyYVRlbXBsYXRlIHx8IFRhYkJhckV4dHJhQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxsaSBtZWZkZXYtdGFiLWxhYmVsIFtkaXNhYmxlZF09XCJ0YWIuZGlzYWJsZWRcIiAoY2xpY2spPVwiY2xpY2tMYWJlbChpKVwiICpuZ0Zvcj1cImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIGNsYXNzPVwiXCIgW2NsYXNzLmFjdGl2ZV09XCJTZWxlY3RlZEluZGV4ID09IGkgJiYgIUhpZGVcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0YWIuX3RhYkhlYWRpbmdcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgPC9tZWZkZXYtdGFicy1uYXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQtd3JhcHBlciB7eyBfZXh0cmFfdGFiY29udGVudF9jbGFzcyB9fVwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0YWItY29udGVudCB7eyBfdGFiQW5pbWF0aW9uIH19XCJcclxuICAgICAgICAjdGFiQ29udGVudFxyXG4gICAgICAgIFtjbGFzcy5hbmltYXRlZF09XCJ0YWJQYW5lQW5pbWF0ZWRcIlxyXG4gICAgICAgIFtjbGFzcy5ub3QtYW5pbWF0ZWRdPVwiIXRhYlBhbmVBbmltYXRlZFwiXHJcbiAgICAgICAgW3N0eWxlLm1hcmdpbi1sZWZ0LiVdPVwidGFiUGFuZUFuaW1hdGVkICYmIC0oU2VsZWN0ZWRJbmRleCA/PyAtMSkgKiAxMDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1lZmRldi10YWItYm9keVxyXG4gICAgICAgICAgY2xhc3M9XCJ0YWItcGFuZVwiXHJcbiAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlNlbGVjdGVkSW5kZXggPT0gaSAmJiAhSGlkZVwiXHJcbiAgICAgICAgICBbY2xhc3MuaW5hY3RpdmVdPVwiU2VsZWN0ZWRJbmRleCAhPSBpIHx8IEhpZGVcIlxyXG4gICAgICAgICAgW2NvbnRlbnRdPVwidGFiLmNvbnRlbnRcIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiBfdGFiczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvbWVmZGV2LXRhYi1ib2R5PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PiJdfQ==
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWtpdC1saWIvc3JjL2xpYi9wZy1jb21wb25lbnRzL3RhYnMvdGFic2V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUVyRCxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBU3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssQ0FBUztJQUNkLEdBQUcsQ0FBcUI7Q0FDekI7QUFPRDs7Ozs7Ozs7OztJQVVJO0FBTUosTUFBTSxPQUFPLHFCQUFxQjtJQXNOWjtJQXJOcEIsR0FBRyxDQUFLO0lBQ1IsU0FBUyxDQUFLO0lBQ2QsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUN4QixNQUFNLENBQUs7SUFDWCxZQUFZLEdBQWdCLEtBQUssQ0FBQztJQUNsQyxnQkFBZ0IsR0FBb0IsWUFBWSxDQUFDO0lBQ2pELGNBQWMsR0FBa0IsQ0FBQyxDQUFDO0lBQ2xDLGNBQWMsR0FBa0IsSUFBSSxDQUFDO0lBQ3JDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDcEIsS0FBSyxHQUF5QixFQUFFLENBQUM7SUFDakMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNuQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdEIsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO0lBRTdCOztPQUVHO0lBQ00sbUJBQW1CLENBQW9CO0lBQ00sa0JBQWtCLENB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RUFBRSxJQUFJLEVBQUU7Z0JBQ0csWUFBWTtzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVVqQyxRQUFRO3NCQUFoQixLQUFLO2dCQU9HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU1GLGFBQWE7c0JBRGhCLEtBQUs7Z0JBY0YsbUJBQW1CO3NCQUR0QixNQUFNO2dCQVdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBT0UsSUFBSTtzQkFBWixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsS0FBSztnQkFhRixhQUFhO3NCQURoQixLQUFLO2dCQVNGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFTRixJQUFJO3NCQURQLEtBQUs7Z0JBYUYsWUFBWTtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIGNvZGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIgKi9cclxuXHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNZWZEZXZUYWJzTmF2Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzLW5hdi5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBbmltYXRlZEludGVyZmFjZSB7XHJcbiAgaW5rQmFyOiBib29sZWFuO1xyXG4gIHRhYlBhbmU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJDaGFuZ2VFdmVudCB7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICB0YWI6IE1lZkRldlRhYkNvbXBvbmVudDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JztcclxuZXhwb3J0IHR5cGUgVGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJztcclxuZXhwb3J0IHR5cGUgVGFiVHlwZSA9ICdsaW5lJyB8ICdmaWxsdXAnIHwgJ2xpbmV0cmlhbmdsZSc7XHJcblxyXG5cclxuLyoqXHJcbiAgKiBSZXByZXNlbnRzIGEgdGFiIHNldCBvciB0YWIgZ3JvdXAgY29tcG9uZW50LlxyXG4gICogQGV4YW1wbGVcclxuICAqIDxtZWZkZXYtdGFic2V0IFRhYlBvc2l0aW9uPVwidG9wXCIgQW5pbWF0ZWQ9XCJ0cnVlXCIgU2hvd1BhZ2luYXRpb249XCJ0cnVlXCI+XHJcbiAgKiAgIDxtZWZkZXYtdGFiIGxhYmVsPVwiVGFiIDFcIj5UYWIgMSBjb250ZW50PC9tZWZkZXYtdGFiPlxyXG4gICogICA8bWVmZGV2LXRhYiBsYWJlbD1cIlRhYiAyXCI+VGFiIDIgY29udGVudDwvbWVmZGV2LXRhYj5cclxuICAqIDwvbWVmZGV2LXRhYnNldD5cclxuICAqXHJcbiAgKiBFeGFtcGxlIG9mIHVzYWdlOlxyXG4gICogPGV4YW1wbGUtdXJsPmh0dHBzOi8vbWVmLmRldi91aV9raXRfZGVtby92aWV3L3BhZ2VfY29tcG9uZW50cy90YWJzZXQ8L2V4YW1wbGUtdXJsPlxyXG4gICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWVmZGV2LXRhYnNldCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYnNldC5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVmRGV2VGFiU2V0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBfZWw6YW55O1xyXG4gIF9jbGFzc01hcDphbnk7XHJcbiAgX3ByZWZpeENscyA9ICduYXYtdGFicyc7XHJcbiAgX3dpZHRoOmFueTtcclxuICBfdGFiUG9zaXRpb246IFRhYlBvc2l0aW9uID0gJ3RvcCc7XHJcbiAgX3RhYlBvc2l0aW9uTW9kZTogVGFiUG9zaXRpb25Nb2RlID0gJ2hvcml6b250YWwnO1xyXG4gIF9pbmRleFRvU2VsZWN0OiBudW1iZXIgfCBudWxsID0gMDtcclxuICBfc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgX2lzVmlld0luaXQgPSBmYWxzZTtcclxuICBfdGFiczogTWVmRGV2VGFiQ29tcG9uZW50W10gPSBbXTtcclxuICBfdGFiQW5pbWF0aW9uID0gJyc7XHJcbiAgX2V4dHJhX3RhYl9jbGFzcyA9ICcnO1xyXG4gIF9leHRyYV90YWJjb250ZW50X2NsYXNzID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRlbXBsYXRlIHJlZmVyZW5jZSBmb3IgYWRkaXRpb25hbCBjb250ZW50IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgdGFiIGJhci5cclxuICAgKi9cclxuICBASW5wdXQoKSBUYWJCYXJFeHRyYVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx2b2lkPjtcclxuICBAQ29udGVudENoaWxkKCdUYWJCYXJFeHRyYUNvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBUYWJCYXJFeHRyYUNvbnRlbnQ6IFRlbXBsYXRlUmVmPHZvaWQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYk5hdicsIHsgc3RhdGljOiB0cnVlIH0pIF90YWJOYXY6IE1lZkRldlRhYnNOYXZDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgndGFiQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIF90YWJDb250ZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2hvc3RDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgX2hvc3RDb250ZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSB0YWIgc2V0IGlzIGFuaW1hdGVkLiBDYW4gYmUgYSBib29sZWFuIG9yIGFuIG9iamVjdCBvZiB0eXBlIEFuaW1hdGVkSW50ZXJmYWNlLlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogLSB0cnVlIChlbmFibGVzIGFuaW1hdGlvbiBmb3IgYm90aCBpbmsgYmFyIGFuZCB0YWIgcGFuZSlcclxuICAgKiAtIHsgaW5rQmFyOiB0cnVlLCB0YWJQYW5lOiBmYWxzZSB9IChlbmFibGVzIGFuaW1hdGlvbiBmb3IgaW5rIGJhciBvbmx5KVxyXG4gICAqIERlZmF1bHQ6IHRydWVcclxuICAgKi9cclxuXHJcbiAgQElucHV0KCkgQW5pbWF0ZWQ6IEFuaW1hdGVkSW50ZXJmYWNlIHwgYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gc2hvdyBwYWdpbmF0aW9uIGNvbnRyb2xzIGZvciBzY3JvbGxpbmcgdGFicy5cclxuICAgKiBAZXhhbXBsZSB0cnVlXHJcbiAgICogRGVmYXVsdDogdHJ1ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIFNob3dQYWdpbmF0aW9uID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGhlciB0aGUgdGFiIHNldCBpcyBoaWRkZW4uXHJcbiAgICogQGV4YW1wbGUgdHJ1ZVxyXG4gICAqIERlZmF1bHQ6IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgSGlkZSA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgaW5kZXggb2YgdGhlIHNlbGVjdGVkIHRhYi5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBTZWxlY3RlZEluZGV4KHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9pbmRleFRvU2VsZWN0ID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgU2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCB0YWIgaW5kZXggY2hhbmdlcy5cclxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgdGFiLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIGdldCBTZWxlY3RlZEluZGV4Q2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAvL0B0cy1pZ25vcmVcclxuICAgIHJldHVybiB0aGlzLlNlbGVjdENoYW5nZS5waXBlKG1hcCgoZXZlbnQ6YW55KSA9PiBldmVudC5pbmRleCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgdGFiIGlzIHNlbGVjdGVkLlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogPG1lZmRldi10YWJzZXQgKFNlbGVjdENoYW5nZSk9XCJvblRhYlNlbGVjdCgkZXZlbnQpXCI+PC9tZWZkZXYtdGFic2V0PlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBTZWxlY3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUYWJDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYkNoYW5nZUV2ZW50Pih0cnVlKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2l6ZSBvZiB0aGUgdGFiIHNldC4gQ2FuIGJlICdkZWZhdWx0JywgJ3NtYWxsJywgb3IgJ2xhcmdlJy5cclxuICAgKiBAZXhhbXBsZSAnbGFyZ2UnXHJcbiAgICogRGVmYXVsdDogJ2RlZmF1bHQnXHJcbiAgICovXHJcbiAgQElucHV0KCkgU2l6ZSA9ICdkZWZhdWx0JztcclxuICBfdHlwZTogVGFiVHlwZSA9ICdsaW5lJztcclxuICB0YWJzOiBNZWZEZXZUYWJDb21wb25lbnRbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBQb3NpdGlvbiBvZiB0aGUgdGFiIHNldC4gQ2FuIGJlICd0b3AnLCAnYm90dG9tJywgJ2xlZnQnLCBvciAncmlnaHQnLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFRhYlBvc2l0aW9uKHZhbHVlOiBUYWJQb3NpdGlvbikge1xyXG4gICAgdGhpcy5fdGFiUG9zaXRpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuX3RhYlBvc2l0aW9uTW9kZSA9ICh2YWx1ZSA9PT0gJ3RvcCcgfHwgdmFsdWUgPT09ICdib3R0b20nKSA/ICdob3Jpem9udGFsJyA6ICd2ZXJ0aWNhbCc7XHJcbiAgfVxyXG4gIGdldCBUYWJQb3NpdGlvbigpOiBUYWJQb3NpdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFiUG9zaXRpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRpdGlvbmFsIENTUyBjbGFzcyBmb3IgdGhlIHRhYnMuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZXh0cmFUYWJDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9leHRyYV90YWJfY2xhc3MgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzIGZvciB0aGUgdGFiIGNvbnRlbnQuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZXh0cmFUYWJDb250ZW50Q2xhc3ModmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZXh0cmFfdGFiY29udGVudF9jbGFzcyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHlwZSBvZiB0aGUgdGFiIHNldC4gQ2FuIGJlICdsaW5lJywgJ2ZpbGx1cCcsIG9yICdsaW5ldHJpYW5nbGUnLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IFR5cGUodmFsdWU6IFRhYlR5cGUpIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQW5pbWF0aW9uIHRvIGFwcGx5IHRvIHRoZSB0YWJzLiBBY2NlcHRzIENTUyBhbmltYXRpb24gbmFtZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB0YWJBbmltYXRpb24odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGFiQW5pbWF0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgVHlwZSgpOiBUYWJUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgX3NldFBvc2l0aW9uKHZhbHVlOiBUYWJQb3NpdGlvbik6IHZvaWQge31cclxuXHJcbiAgX3NldENsYXNzTWFwKCk6IHZvaWQge31cclxuXHJcbiAgLy8gT3RoZXIgcHJvcGVydGllcywgbWV0aG9kcywgYW5kIGxpZmVjeWNsZSBob29rcy4uLlxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIHRoZSB0YWIgYXQgdGhlIHNwZWNpZmllZCBpbmRleC5cclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSB0YWIgdG8gc2VsZWN0LlxyXG4gICAqIGBgYFxyXG4gICAqIDxidXR0b24gKGNsaWNrKT1cImNsaWNrTGFiZWwoMClcIj5TZWxlY3QgVGFiIDE8L2J1dHRvbj5cclxuICAgKmBgYFxyXG4gICAqL1xyXG4gIGNsaWNrTGFiZWwoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RhYnNbaW5kZXhdLkRpc2FibGVkKSB7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLlNlbGVjdGVkSW5kZXggPSBpbmRleDtcclxuICAgICAgdGhpcy5fdGFic1tpbmRleF0ucGdDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICAvLyBDbGFtcCB0aGUgbmV4dCBzZWxlY3RlZCBpbmRleCB0byB0aGUgYm91bmRzIG9mIDAgYW5kIHRoZSB0YWJzIGxlbmd0aC4gTm90ZSB0aGUgYHx8IDBgLCB3aGljaFxyXG4gICAgLy8gZW5zdXJlcyB0aGF0IHZhbHVlcyBsaWtlIE5hTiBjYW4ndCBnZXQgdGhyb3VnaCBhbmQgd2hpY2ggd291bGQgb3RoZXJ3aXNlIHRocm93IHRoZVxyXG4gICAgLy8gY29tcG9uZW50IGludG8gYW4gaW5maW5pdGUgbG9vcCAoc2luY2UgTWF0aC5tYXgoTmFOLCAwKSA9PT0gTmFOKS5cclxuICAgIGNvbnN0IGluZGV4VG9TZWxlY3QgPSAodGhpcy5faW5kZXhUb1NlbGVjdCA9IE1hdGgubWluKHRoaXMuX3RhYnMubGVuZ3RoIC0gMSwgTWF0aC5tYXgodGhpcy5faW5kZXhUb1NlbGVjdCB8fCAwLCAwKSkpO1xyXG5cclxuICAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIGluIHNlbGVjdGVkIGluZGV4LCBlbWl0IGEgY2hhbmdlIGV2ZW50LiBTaG91bGQgbm90IHRyaWdnZXIgaWZcclxuICAgIC8vIHRoZSBzZWxlY3RlZCBpbmRleCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLlxyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT09IGluZGV4VG9TZWxlY3QgJiYgdGhpcy5fc2VsZWN0ZWRJbmRleCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuU2VsZWN0Q2hhbmdlLmVtaXQodGhpcy5fY3JlYXRlQ2hhbmdlRXZlbnQoaW5kZXhUb1NlbGVjdCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldHVwIHRoZSBwb3NpdGlvbiBmb3IgZWFjaCB0YWIgYW5kIG9wdGlvbmFsbHkgc2V0dXAgYW4gb3JpZ2luIG9uIHRoZSBuZXh0IHNlbGVjdGVkIHRhYi5cclxuICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgodGFiOiBNZWZEZXZUYWJDb21wb25lbnQsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGFiLnBvc2l0aW9uID0gaW5kZXggLSBpbmRleFRvU2VsZWN0O1xyXG4gICAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc2VsZWN0ZWQgdGFiLCB0aGVuIHNldCB1cCBhbiBvcmlnaW4gZm9yIHRoZSBuZXh0IHNlbGVjdGVkIHRhYlxyXG4gICAgICAvLyBpZiBpdCBkb2Vzbid0IGhhdmUgb25lIGFscmVhZHkuXHJcbiAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEluZGV4ICE9IG51bGwgJiYgdGFiLnBvc2l0aW9uID09PSAwICYmICF0YWIub3JpZ2luKSB7XHJcbiAgICAgICAgdGFiLm9yaWdpbiA9IGluZGV4VG9TZWxlY3QgLSB0aGlzLl9zZWxlY3RlZEluZGV4O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSBpbmRleFRvU2VsZWN0O1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faXNWaWV3SW5pdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVDaGFuZ2VFdmVudChpbmRleDogbnVtYmVyKTogVGFiQ2hhbmdlRXZlbnQge1xyXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgVGFiQ2hhbmdlRXZlbnQoKTtcclxuICAgIGV2ZW50LmluZGV4ID0gaW5kZXg7XHJcbiAgICBpZiAodGhpcy5fdGFicyAmJiB0aGlzLl90YWJzLmxlbmd0aCkge1xyXG4gICAgICBldmVudC50YWIgPSB0aGlzLl90YWJzW2luZGV4XTtcclxuICAgICAgdGhpcy5fdGFicy5mb3JFYWNoKChpdGVtLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGkgIT09IGluZGV4KSB7XHJcbiAgICAgICAgICBpdGVtLnBnRGVzZWxlY3QuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGV2ZW50LnRhYi5wZ1NlbGVjdC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaW5rQmFyQW5pbWF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5BbmltYXRlZCA9PT0gdHJ1ZSB8fCAodGhpcy5BbmltYXRlZCBhcyBBbmltYXRlZEludGVyZmFjZSkuaW5rQmFyID09PSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRhYlBhbmVBbmltYXRlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLkFuaW1hdGVkID09PSB0cnVlIHx8ICh0aGlzLkFuaW1hdGVkIGFzIEFuaW1hdGVkSW50ZXJmYWNlKS50YWJQYW5lID09PSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGFiLXdyYXBwZXIgdGFiLXt7IF90YWJQb3NpdGlvbk1vZGUgfX0ge3sgX3RhYlBvc2l0aW9uIH19IHt7IF90eXBlIH19IHt7IF9leHRyYV90YWJfY2xhc3MgfX1cIiAjaG9zdENvbnRlbnQ+XHJcbiAgICA8bWVmZGV2LXRhYnMtbmF2XHJcbiAgICAgICN0YWJOYXZcclxuICAgICAgW1NpemVdPVwiU2l6ZVwiXHJcbiAgICAgIFtUeXBlXT1cIlR5cGVcIlxyXG4gICAgICBbU2hvd1BhZ2luYXRpb25dPVwiU2hvd1BhZ2luYXRpb25cIlxyXG4gICAgICBbUG9zaXRpb25Nb2RlXT1cIl90YWJQb3NpdGlvbk1vZGVcIlxyXG4gICAgICBbUG9zaXRpb25dPVwiX3RhYlBvc2l0aW9uXCJcclxuICAgICAgW0FuaW1hdGVkXT1cImlua0JhckFuaW1hdGVkXCJcclxuICAgICAgW0hpZGVCYXJdPVwiSGlkZVwiXHJcbiAgICAgIFtzZWxlY3RlZEluZGV4XT1cIlNlbGVjdGVkSW5kZXhcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3RhYkJhckV4dHJhQ29udGVudD5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiVGFiQmFyRXh0cmFUZW1wbGF0ZSB8fCBUYWJCYXJFeHRyYUNvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bGkgbWVmZGV2LXRhYi1sYWJlbCBbZGlzYWJsZWRdPVwidGFiLmRpc2FibGVkXCIgKGNsaWNrKT1cImNsaWNrTGFiZWwoaSlcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBjbGFzcz1cIlwiIFtjbGFzcy5hY3RpdmVdPVwiU2VsZWN0ZWRJbmRleCA9PSBpICYmICFIaWRlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFiLl90YWJIZWFkaW5nXCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvbWVmZGV2LXRhYnMtbmF2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYi1jb250ZW50LXdyYXBwZXIge3sgX2V4dHJhX3RhYmNvbnRlbnRfY2xhc3MgfX1cIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwidGFiLWNvbnRlbnQge3sgX3RhYkFuaW1hdGlvbiB9fVwiXHJcbiAgICAgICAgI3RhYkNvbnRlbnRcclxuICAgICAgICBbY2xhc3MuYW5pbWF0ZWRdPVwidGFiUGFuZUFuaW1hdGVkXCJcclxuICAgICAgICBbY2xhc3Mubm90LWFuaW1hdGVkXT1cIiF0YWJQYW5lQW5pbWF0ZWRcIlxyXG4gICAgICAgIFtzdHlsZS5tYXJnaW4tbGVmdC4lXT1cInRhYlBhbmVBbmltYXRlZCAmJiAtKFNlbGVjdGVkSW5kZXggPz8gLTEpICogMTAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtZWZkZXYtdGFiLWJvZHlcclxuICAgICAgICAgIGNsYXNzPVwidGFiLXBhbmVcIlxyXG4gICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJTZWxlY3RlZEluZGV4ID09IGkgJiYgIUhpZGVcIlxyXG4gICAgICAgICAgW2NsYXNzLmluYWN0aXZlXT1cIlNlbGVjdGVkSW5kZXggIT0gaSB8fCBIaWRlXCJcclxuICAgICAgICAgIFtjb250ZW50XT1cInRhYi5jb250ZW50XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L21lZmRldi10YWItYm9keT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4iXX0=
|