@fundamental-ngx/btp 0.47.4 → 0.48.0-rc.1

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.
Files changed (51) hide show
  1. package/esm2022/button/button-type-guard.mjs +3 -3
  2. package/esm2022/button/nested-button.directive.mjs +3 -3
  3. package/esm2022/button/tool-header-button.directive.mjs +3 -3
  4. package/esm2022/navigation/directives/navigation-home.directive.mjs +4 -4
  5. package/esm2022/navigation/directives/navigation-list-spacer.directive.mjs +3 -3
  6. package/esm2022/navigation/navigation-content-end.component.mjs +3 -3
  7. package/esm2022/navigation/navigation-content-start.component.mjs +7 -9
  8. package/esm2022/navigation/navigation-link.component.mjs +56 -52
  9. package/esm2022/navigation/navigation-list/navigation-list-item.component.mjs +8 -9
  10. package/esm2022/navigation/navigation-list/navigation-list-overflow-item.component.mjs +9 -9
  11. package/esm2022/navigation/navigation-list/navigation-list.component.mjs +6 -7
  12. package/esm2022/navigation/navigation-list-item-component.token.mjs +4 -4
  13. package/esm2022/navigation/navigation.component.mjs +6 -6
  14. package/esm2022/navigation/navigation.service.mjs +3 -3
  15. package/esm2022/navigation-menu/lib/navigation-menu-item.component.mjs +22 -27
  16. package/esm2022/navigation-menu/lib/navigation-menu-popover-control.directive.mjs +4 -4
  17. package/esm2022/navigation-menu/lib/navigation-menu-popover.component.mjs +3 -3
  18. package/esm2022/navigation-menu/lib/navigation-menu.component.mjs +4 -4
  19. package/esm2022/navigation-menu/lib/navigation-menu.module.mjs +4 -4
  20. package/esm2022/search-field/search-field.component.mjs +5 -6
  21. package/esm2022/tool-header/components/tool-header/tool-header.component.mjs +7 -13
  22. package/esm2022/tool-header/components/tool-header-action-separator.component.mjs +3 -3
  23. package/esm2022/tool-header/components/tool-header-product-switch.component.mjs +3 -3
  24. package/esm2022/tool-header/directives/tool-header-action-button.directive.mjs +3 -3
  25. package/esm2022/tool-header/directives/tool-header-action.directive.mjs +3 -3
  26. package/esm2022/tool-header/directives/tool-header-auto-mode.directive.mjs +5 -5
  27. package/esm2022/tool-header/directives/tool-header-element.directive.mjs +3 -3
  28. package/esm2022/tool-header/directives/tool-header-group.directive.mjs +3 -3
  29. package/esm2022/tool-header/directives/tool-header-logo.directive.mjs +3 -3
  30. package/esm2022/tool-header/directives/tool-header-user.directive.mjs +3 -3
  31. package/esm2022/tool-header/tool-header-action.class.mjs +3 -3
  32. package/esm2022/tool-layout/directives/tool-layout-container.directive.mjs +3 -3
  33. package/esm2022/tool-layout/directives/tool-layout-content-container.directive.mjs +3 -3
  34. package/esm2022/tool-layout/directives/tool-layout-header-container.directive.mjs +3 -3
  35. package/esm2022/tool-layout/directives/tool-layout-navigation-container.directive.mjs +3 -3
  36. package/esm2022/tool-layout/tool-layout.component.mjs +3 -3
  37. package/esm2022/tool-layout/tool-layout.module.mjs +4 -4
  38. package/fesm2022/fundamental-ngx-btp-button.mjs +9 -9
  39. package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs +38 -42
  40. package/fesm2022/fundamental-ngx-btp-navigation-menu.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-btp-navigation.mjs +102 -100
  42. package/fesm2022/fundamental-ngx-btp-navigation.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-btp-search-field.mjs +6 -7
  44. package/fesm2022/fundamental-ngx-btp-search-field.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-btp-tool-header.mjs +39 -45
  46. package/fesm2022/fundamental-ngx-btp-tool-header.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-btp-tool-layout.mjs +21 -21
  48. package/fundamental-ngx-btp-v0.48.0-rc.1.tgz +0 -0
  49. package/package.json +5 -5
  50. package/tool-header/components/tool-header/tool-header.component.d.ts +0 -2
  51. package/fundamental-ngx-btp-v0.47.4.tgz +0 -0
@@ -16,10 +16,10 @@ export class ButtonTypeGuard {
16
16
  this._buttonComponent.fdType = this.fdType;
17
17
  this._buttonComponent.buildComponentCssClass();
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ButtonTypeGuard, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ButtonTypeGuard, usesOnChanges: true, ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ButtonTypeGuard, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: ButtonTypeGuard, usesOnChanges: true, ngImport: i0 }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ButtonTypeGuard, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ButtonTypeGuard, decorators: [{
23
23
  type: Directive
24
24
  }] });
25
25
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXR5cGUtZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2J0cC9idXR0b24vYnV0dG9uLXR5cGUtZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBbUIsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHcEYsTUFBTSxPQUFnQixlQUFlO0lBRHJDO1FBS0ksY0FBYztRQUNKLHFCQUFnQixHQUFHLE1BQU0sQ0FBa0IsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQWE3RjtJQVhHLGNBQWM7SUFDZCxRQUFRO1FBQ0osSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBYSxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQWEsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNuRCxDQUFDOzhHQWpCaUIsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIE9uQ2hhbmdlcywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQsIEZEX0JVVFRPTl9DT01QT05FTlQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQnV0dG9uVHlwZUd1YXJkIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKiBUeXBlIG9mIHRoZSBidXR0b24uICovXG4gICAgYWJzdHJhY3QgZmRUeXBlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfYnV0dG9uQ29tcG9uZW50ID0gaW5qZWN0PEJ1dHRvbkNvbXBvbmVudD4oRkRfQlVUVE9OX0NPTVBPTkVOVCwgeyBob3N0OiB0cnVlIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uQ29tcG9uZW50LmZkVHlwZSA9IHRoaXMuZmRUeXBlIGFzIGFueTtcbiAgICAgICAgdGhpcy5fYnV0dG9uQ29tcG9uZW50LmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9idXR0b25Db21wb25lbnQuZmRUeXBlID0gdGhpcy5mZFR5cGUgYXMgYW55O1xuICAgICAgICB0aGlzLl9idXR0b25Db21wb25lbnQuYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -13,10 +13,10 @@ export class NestedButtonDirective extends ButtonTypeGuard {
13
13
  this.fdType = this.square ? 'nested-square' : 'nested';
14
14
  super.ngOnChanges();
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NestedButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.7", type: NestedButtonDirective, isStandalone: true, selector: "[fd-button][fdbNestedButton]", inputs: { fdType: "fdType", square: ["square", "square", coerceBooleanProperty] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NestedButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.4", type: NestedButtonDirective, isStandalone: true, selector: "[fd-button][fdbNestedButton]", inputs: { fdType: "fdType", square: ["square", "square", coerceBooleanProperty] }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NestedButtonDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NestedButtonDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  selector: '[fd-button][fdbNestedButton]',
@@ -7,10 +7,10 @@ export class ToolHeaderButtonDirective extends ButtonTypeGuard {
7
7
  /** Type of the button. In case of fdbToolHeaderButton it is always a `tool-header` */
8
8
  this.fdType = 'tool-header';
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ToolHeaderButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: ToolHeaderButtonDirective, isStandalone: true, selector: "[fd-button][fdbToolHeaderButton]", inputs: { fdType: "fdType" }, usesInheritance: true, ngImport: i0 }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolHeaderButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: ToolHeaderButtonDirective, isStandalone: true, selector: "[fd-button][fdbToolHeaderButton]", inputs: { fdType: "fdType" }, usesInheritance: true, ngImport: i0 }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ToolHeaderButtonDirective, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: ToolHeaderButtonDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  selector: '[fd-button][fdbToolHeaderButton]',
@@ -6,14 +6,14 @@ export class NavigationHomeDirective {
6
6
  this.templateRef = templateRef;
7
7
  this._viewContainerRef = _viewContainerRef;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationHomeDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: NavigationHomeDirective, isStandalone: true, selector: "[fdbNavigationHome]", ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationHomeDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: NavigationHomeDirective, isStandalone: true, selector: "[fdbNavigationHome]", ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationHomeDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationHomeDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[fdbNavigationHome]',
16
16
  standalone: true
17
17
  }]
18
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
18
+ }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
19
19
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1ob21lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLWhvbWUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLGNBQWM7SUFDZCxZQUFxQixXQUE2QixFQUFVLGlCQUFtQztRQUExRSxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFBVSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQUcsQ0FBQzs4R0FGMUYsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGJOYXZpZ2F0aW9uSG9tZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkhvbWVEaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocmVhZG9ubHkgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHt9XG59XG4iXX0=
@@ -6,10 +6,10 @@ export class NavigationItemSpacerDirective {
6
6
  /** @hidden */
7
7
  this._navigationComponent = inject(NavigationComponent);
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationItemSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.7", type: NavigationItemSpacerDirective, isStandalone: true, selector: "li[fdb-navigation-list-spacer]", host: { properties: { "class.fd-navigation__list-item--spacer--hidden": "_navigationComponent.isSnapped()" }, classAttribute: "fd-navigation__list-item fd-navigation__list-item--spacer" }, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationItemSpacerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: NavigationItemSpacerDirective, isStandalone: true, selector: "li[fdb-navigation-list-spacer]", host: { properties: { "class.fd-navigation__list-item--spacer--hidden": "_navigationComponent.isSnapped()" }, classAttribute: "fd-navigation__list-item fd-navigation__list-item--spacer" }, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationItemSpacerDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationItemSpacerDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  // eslint-disable-next-line @angular-eslint/directive-selector
@@ -28,15 +28,15 @@ export class NavigationContentEndComponent extends NavigationContentComponent {
28
28
  showMoreOpened() {
29
29
  return false;
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationContentEndComponent, isStandalone: true, selector: "fdb-navigation-content-end", host: { classAttribute: "fd-navigation__container fd-navigation__container--bottom" }, providers: [
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationContentEndComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: NavigationContentEndComponent, isStandalone: true, selector: "fdb-navigation-content-end", host: { classAttribute: "fd-navigation__container fd-navigation__container--bottom" }, providers: [
33
33
  {
34
34
  provide: NavigationContentComponent,
35
35
  useExisting: NavigationContentEndComponent
36
36
  }
37
37
  ], queries: [{ propertyName: "_listItems", predicate: FdbNavigationListItemComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentEndComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationContentEndComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{
42
42
  selector: 'fdb-navigation-content-end',
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable no-unused-vars */
2
- import { NgIf } from '@angular/common';
3
2
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, QueryList, ViewChild, ViewEncapsulation, effect, inject, signal } from '@angular/core';
4
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
4
  import { resizeObservable } from '@fundamental-ngx/cdk/utils';
@@ -165,20 +164,19 @@ export class NavigationContentStartComponent extends NavigationContentComponent
165
164
  this._hiddenItems = items;
166
165
  this._cdr.detectChanges();
167
166
  }
168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentStartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
169
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationContentStartComponent, isStandalone: true, selector: "fdb-navigation-content-start", host: { properties: { "style.flex-grow": "1" }, classAttribute: "fd-navigation__container fd-navigation__container--top" }, providers: [
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationContentStartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
168
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: NavigationContentStartComponent, isStandalone: true, selector: "fdb-navigation-content-start", host: { properties: { "style.flex-grow": "1" }, classAttribute: "fd-navigation__container fd-navigation__container--top" }, providers: [
170
169
  {
171
170
  provide: NavigationContentComponent,
172
171
  useExisting: NavigationContentStartComponent
173
172
  }
174
- ], queries: [{ propertyName: "_navigationItems", predicate: FdbNavigationListItemComponent, descendants: true }, { propertyName: "_navigationLists", predicate: FdbNavigationListComponent }], viewQueries: [{ propertyName: "_showMoreOverflow", first: true, predicate: ["showMoreOverflowMenu"], descendants: true, read: ElementRef }, { propertyName: "_showMoreOverflowItemCmp", first: true, predicate: ["showMoreOverflowItem"], descendants: true, read: FdbNavigationListItemComponent }], usesInheritance: true, hostDirectives: [{ directive: i1.ScrollbarDirective }], ngImport: i0, template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n\n<ng-container *ngIf=\"showOverflowButton()\">\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n</ng-container>\n", dependencies: [{ kind: "component", type: NavigationListComponent, selector: "ul[fdb-navigation-list]", inputs: ["class", "showHome"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NavigationLinkComponent, selector: "a[fdb-navigation-link]", inputs: ["class", "glyph", "label", "external"] }, { kind: "component", type: NavigationListOverflowItemComponent, selector: "li[fdb-navigation-list-overflow-item]", inputs: ["hiddenItems"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
173
+ ], queries: [{ propertyName: "_navigationItems", predicate: FdbNavigationListItemComponent, descendants: true }, { propertyName: "_navigationLists", predicate: FdbNavigationListComponent }], viewQueries: [{ propertyName: "_showMoreOverflow", first: true, predicate: ["showMoreOverflowMenu"], descendants: true, read: ElementRef }, { propertyName: "_showMoreOverflowItemCmp", first: true, predicate: ["showMoreOverflowItem"], descendants: true, read: FdbNavigationListItemComponent }], usesInheritance: true, hostDirectives: [{ directive: i1.ScrollbarDirective }], ngImport: i0, template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n@if (showOverflowButton()) {\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n}\n", dependencies: [{ kind: "component", type: NavigationListComponent, selector: "ul[fdb-navigation-list]", inputs: ["class", "showHome"] }, { kind: "component", type: NavigationLinkComponent, selector: "a[fdb-navigation-link]", inputs: ["class", "glyph", "label", "external"] }, { kind: "component", type: NavigationListOverflowItemComponent, selector: "li[fdb-navigation-list-overflow-item]", inputs: ["hiddenItems"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
174
  }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationContentStartComponent, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationContentStartComponent, decorators: [{
177
176
  type: Component,
178
177
  args: [{ selector: 'fdb-navigation-content-start', standalone: true, imports: [
179
178
  NavigationListComponent,
180
179
  NavigationListItemComponent,
181
- NgIf,
182
180
  NavigationLinkComponent,
183
181
  NavigationListOverflowItemComponent
184
182
  ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
@@ -189,8 +187,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
189
187
  ], host: {
190
188
  class: 'fd-navigation__container fd-navigation__container--top',
191
189
  '[style.flex-grow]': '1'
192
- }, hostDirectives: [ScrollbarDirective], template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n\n<ng-container *ngIf=\"showOverflowButton()\">\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n</ng-container>\n" }]
193
- }], ctorParameters: function () { return []; }, propDecorators: { _navigationItems: [{
190
+ }, hostDirectives: [ScrollbarDirective], template: "<ng-content select=\"ul[fdb-navigation-list]\"></ng-content>\n@if (showOverflowButton()) {\n <ul fdb-navigation-list class=\"fd-navigation__list--no-grow\" [showHome]=\"false\" #showMoreOverflowMenu>\n <li\n fdb-navigation-list-overflow-item\n [alwaysFocusable]=\"true\"\n #showMoreOverflowItem\n [hiddenItems]=\"_hiddenItems\"\n >\n <a fdb-navigation-link glyph=\"overflow\" label=\"More Items\"></a>\n </li>\n </ul>\n}\n" }]
191
+ }], ctorParameters: () => [], propDecorators: { _navigationItems: [{
194
192
  type: ContentChildren,
195
193
  args: [FdbNavigationListItemComponent, { descendants: true }]
196
194
  }], _navigationLists: [{
@@ -203,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
203
201
  type: ViewChild,
204
202
  args: ['showMoreOverflowItem', { static: false, read: FdbNavigationListItemComponent }]
205
203
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUNuQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBWSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1D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QUFJLDZGQUNKLHVCQUF1QixvSEFDdkIsbUNBQW1DOzsyRkFpQjlCLCtCQUErQjtrQkExQjNDLFNBQVM7K0JBQ0ksOEJBQThCLGNBRTVCLElBQUksV0FDUDt3QkFDTCx1QkFBdUI7d0JBQ3ZCLDJCQUEyQjt3QkFDM0IsSUFBSTt3QkFDSix1QkFBdUI7d0JBQ3ZCLG1DQUFtQztxQkFDdEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxpQ0FBaUM7eUJBQy9DO3FCQUNKLFFBRUs7d0JBQ0YsS0FBSyxFQUFFLHdEQUF3RDt3QkFDL0QsbUJBQW1CLEVBQUUsR0FBRztxQkFDM0Isa0JBQ2UsQ0FBQyxrQkFBa0IsQ0FBQzswRUFLbkIsZ0JBQWdCO3NCQURoQyxlQUFlO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLckQsZ0JBQWdCO3NCQURoQyxlQUFlO3VCQUFDLDBCQUEwQjtnQkFLMUIsaUJBQWlCO3NCQURqQyxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUsxRCx3QkFBd0I7c0JBRG5DLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTnVsbGFibGUsIHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFN1YmplY3QsIGFzeW5jU2NoZWR1bGVyLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG9ic2VydmVPbiwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tY29tcG9uZW50LnRva2VuJztcbmltcG9ydCB7IE5hdmlnYXRpb25Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbnRlbnQudG9rZW4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0T3ZlcmZsb3dJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LW92ZXJmbG93LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5cbmNvbnN0IEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyA9ICdmZC1uYXZpZ2F0aW9uX19jb250YWluZXItLWhpZGRlbi1vdmVyZmxvdyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRiLW5hdmlnYXRpb24tY29udGVudC1zdGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5hdmlnYXRpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5hdmlnYXRpb25MaW5rQ29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdE92ZXJmbG93SXRlbUNvbXBvbmVudFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTmF2aWdhdGlvbkNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyIGZkLW5hdmlnYXRpb25fX2NvbnRhaW5lci0tdG9wJyxcbiAgICAgICAgJ1tzdHlsZS5mbGV4LWdyb3ddJzogJzEnXG4gICAgfSxcbiAgICBob3N0RGlyZWN0aXZlczogW1Njcm9sbGJhckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudCBleHRlbmRzIE5hdmlnYXRpb25Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZkYk5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25JdGVtczogUXVlcnlMaXN0PEZkYk5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkxpc3RzOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzaG93TW9yZU92ZXJmbG93TWVudScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dNb3JlT3ZlcmZsb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzaG93TW9yZU92ZXJmbG93SXRlbScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0pXG4gICAgcHJpdmF0ZSBzZXQgX3Nob3dNb3JlT3ZlcmZsb3dJdGVtQ21wKHZhbHVlOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQ+KSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPdmVyZmxvd0l0ZW0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsaW5rVGVtcGxhdGUgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkNvbXBvbmVudCkuaG9tZUxpbmtUZW1wbGF0ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dIb21lID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2hvd092ZXJmbG93QnV0dG9uID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpZGRlbkl0ZW1zOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvdmVycmlkZSByZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYW5UcmFja0l0ZW1zID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkNvbXBvbmVudCA9IGluamVjdChGZGJOYXZpZ2F0aW9uQ29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbGJhciA9IGluamVjdChTY3JvbGxiYXJEaXJlY3RpdmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW5UcmFja0l0ZW1zKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFsc28gbGlzdGVuIHRvIHNuYXBwZWQgc3RhdGUuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNuYXBwZWQgPSB0aGlzLl9uYXZpZ2F0aW9uQ29tcG9uZW50LmlzU25hcHBlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWxsb3dTaWduYWxXcml0ZXM6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FuVHJhY2tJdGVtcy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgobnVsbCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fbmF2aWdhdGlvbkl0ZW1zPy5sZW5ndGggPiAwKSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMCksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnJlbnQpID0+IHByZXZbMF0uY29udGVudFJlY3QuaGVpZ2h0ID09PSBjdXJyZW50WzBdLmNvbnRlbnRSZWN0LmhlaWdodCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE5hdmlnYXRhYmxlSXRlbXMoKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuX25hdmlnYXRpb25JdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGlmICh0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHRoaXMuc2hvd01vcmVPdmVyZmxvd0l0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dNb3JlT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtPy5pc09wZW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25Db21wb25lbnQuaXNTbmFwcGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zaG93KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJmbG93QnV0dG9uLnNldChmYWxzZSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyk7XG4gICAgICAgIHRoaXMuc2hvd092ZXJmbG93QnV0dG9uLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgbGV0IGNhbkRpc3BsYXlJdGVtcyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNob3dNb3JlSGVpZ2h0ID1cbiAgICAgICAgICAgICh0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IDApICogMjtcbiAgICAgICAgY29uc3QgaG9tZUVsZW1lbnRTaXplID0gdGhpcy5fbmF2aWdhdGlvbkxpc3RzLnRvQXJyYXkoKS5yZWR1Y2UoKGhlaWdodCwgbGlzdCkgPT4ge1xuICAgICAgICAgICAgaGVpZ2h0ICs9IGxpc3QuZ2V0SG9tZUVsZW1lbnRTaXplKCkuaGVpZ2h0O1xuICAgICAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIGxldCB0b3RhbEF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIHNob3dNb3JlSGVpZ2h0IC0gaG9tZUVsZW1lbnRTaXplO1xuXG4gICAgICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25JdGVtR3JvdXBzID0gdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLnJlZHVjZShcbiAgICAgICAgICAgIChhY2M6IHsgcm9vdDogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W107IGNoaWxkcmVuOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSB9LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUxldmVsID0gaXRlbS5ub3JtYWxpemVkTGV2ZWwoKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUxldmVsID4gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhY2NbaXRlbUxldmVsID09PSAxID8gJ3Jvb3QnIDogJ2NoaWxkcmVuJ10ucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgcm9vdDogW10sIGNoaWxkcmVuOiBbXSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uc2hvdygpO1xuICAgICAgICB9KTtcblxuICAgICAgICBuYXZpZ2F0aW9uSXRlbUdyb3Vwcy5jaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNhbGN1bGF0ZUV4cGFuZGVkKCk7XG4gICAgICAgICAgICBpZiAoIWNhbkRpc3BsYXlJdGVtcykge1xuICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGhpZGRlbkVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpdGVtLnNob3coKTtcblxuICAgICAgICAgICAgdG90YWxBdmFpbGFibGVIZWlnaHQgLT0gaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAodG90YWxBdmFpbGFibGVIZWlnaHQgPD0gMCkge1xuICAgICAgICAgICAgICAgIGNhbkRpc3BsYXlJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGhpZGRlbkVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuYXZpZ2F0aW9uSXRlbUdyb3Vwcy5yb290LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tTZWxmSGlkZGVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyk7XG5cbiAgICAgICAgdGhpcy5faGFuZGxlT3ZlcmZsb3dJdGVtcyhoaWRkZW5FbGVtZW50cyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH0sIDUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlT3ZlcmZsb3dJdGVtcyhpdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3dCdXR0b24uc2V0KGl0ZW1zLmxlbmd0aCA+IDApO1xuICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cInVsW2ZkYi1uYXZpZ2F0aW9uLWxpc3RdXCI+PC9uZy1jb250ZW50PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd092ZXJmbG93QnV0dG9uKClcIj5cbiAgICA8dWwgZmRiLW5hdmlnYXRpb24tbGlzdCBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2xpc3QtLW5vLWdyb3dcIiBbc2hvd0hvbWVdPVwiZmFsc2VcIiAjc2hvd01vcmVPdmVyZmxvd01lbnU+XG4gICAgICAgIDxsaVxuICAgICAgICAgICAgZmRiLW5hdmlnYXRpb24tbGlzdC1vdmVyZmxvdy1pdGVtXG4gICAgICAgICAgICBbYWx3YXlzRm9jdXNhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgI3Nob3dNb3JlT3ZlcmZsb3dJdGVtXG4gICAgICAgICAgICBbaGlkZGVuSXRlbXNdPVwiX2hpZGRlbkl0ZW1zXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGEgZmRiLW5hdmlnYXRpb24tbGluayBnbHlwaD1cIm92ZXJmbG93XCIgbGFiZWw9XCJNb3JlIEl0ZW1zXCI+PC9hPlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1jb250ZW50LXN0YXJ0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1DQUFtQztBQUVuQyxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFZLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3Q0FB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U0FBUzsrQkFDSSw4QkFBOEIsY0FFNUIsSUFBSSxXQUNQO3dCQUNMLHVCQUF1Qjt3QkFDdkIsMkJBQTJCO3dCQUMzQix1QkFBdUI7d0JBQ3ZCLG1DQUFtQztxQkFDdEMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLDBCQUEwQjs0QkFDbkMsV0FBVyxpQ0FBaUM7eUJBQy9DO3FCQUNKLFFBRUs7d0JBQ0YsS0FBSyxFQUFFLHdEQUF3RDt3QkFDL0QsbUJBQW1CLEVBQUUsR0FBRztxQkFDM0Isa0JBQ2UsQ0FBQyxrQkFBa0IsQ0FBQzt3REFLbkIsZ0JBQWdCO3NCQURoQyxlQUFlO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFLckQsZ0JBQWdCO3NCQURoQyxlQUFlO3VCQUFDLDBCQUEwQjtnQkFLMUIsaUJBQWlCO3NCQURqQyxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUsxRCx3QkFBd0I7c0JBRG5DLFNBQVM7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSw4QkFBOEIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5cbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTnVsbGFibGUsIHJlc2l6ZU9ic2VydmFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFN1YmplY3QsIGFzeW5jU2NoZWR1bGVyLCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG9ic2VydmVPbiwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZkYk5hdmlnYXRpb25Db21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tY29tcG9uZW50LnRva2VuJztcbmltcG9ydCB7IE5hdmlnYXRpb25Db250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbnRlbnQudG9rZW4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tbGlzdC1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0T3ZlcmZsb3dJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LW92ZXJmbG93LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE5hdmlnYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QvbmF2aWdhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5cbmNvbnN0IEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyA9ICdmZC1uYXZpZ2F0aW9uX19jb250YWluZXItLWhpZGRlbi1vdmVyZmxvdyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRiLW5hdmlnYXRpb24tY29udGVudC1zdGFydCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmlnYXRpb24tY29udGVudC1zdGFydC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5hdmlnYXRpb25MaXN0Q29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgICAgIE5hdmlnYXRpb25MaW5rQ29tcG9uZW50LFxuICAgICAgICBOYXZpZ2F0aW9uTGlzdE92ZXJmbG93SXRlbUNvbXBvbmVudFxuICAgIF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTmF2aWdhdGlvbkNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudFxuICAgICAgICB9XG4gICAgXSxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZmQtbmF2aWdhdGlvbl9fY29udGFpbmVyIGZkLW5hdmlnYXRpb25fX2NvbnRhaW5lci0tdG9wJyxcbiAgICAgICAgJ1tzdHlsZS5mbGV4LWdyb3ddJzogJzEnXG4gICAgfSxcbiAgICBob3N0RGlyZWN0aXZlczogW1Njcm9sbGJhckRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkNvbnRlbnRTdGFydENvbXBvbmVudCBleHRlbmRzIE5hdmlnYXRpb25Db250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZkYk5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX25hdmlnYXRpb25JdGVtczogUXVlcnlMaXN0PEZkYk5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGRyZW4oRmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkxpc3RzOiBRdWVyeUxpc3Q8RmRiTmF2aWdhdGlvbkxpc3RDb21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzaG93TW9yZU92ZXJmbG93TWVudScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dNb3JlT3ZlcmZsb3c6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdzaG93TW9yZU92ZXJmbG93SXRlbScsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0pXG4gICAgcHJpdmF0ZSBzZXQgX3Nob3dNb3JlT3ZlcmZsb3dJdGVtQ21wKHZhbHVlOiBOdWxsYWJsZTxGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQ+KSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPdmVyZmxvd0l0ZW0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5yZWZyZXNoJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBsaW5rVGVtcGxhdGUgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkNvbXBvbmVudCkuaG9tZUxpbmtUZW1wbGF0ZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dIb21lID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2hvd092ZXJmbG93QnV0dG9uID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hpZGRlbkl0ZW1zOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvdmVycmlkZSByZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NhbGN1bGF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYW5UcmFja0l0ZW1zID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkNvbXBvbmVudCA9IGluamVjdChGZGJOYXZpZ2F0aW9uQ29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Njcm9sbGJhciA9IGluamVjdChTY3JvbGxiYXJEaXJlY3RpdmUpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9jYW5UcmFja0l0ZW1zKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFsc28gbGlzdGVuIHRvIHNuYXBwZWQgc3RhdGUuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIGNvbnN0IHNuYXBwZWQgPSB0aGlzLl9uYXZpZ2F0aW9uQ29tcG9uZW50LmlzU25hcHBlZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYWxsb3dTaWduYWxXcml0ZXM6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FuVHJhY2tJdGVtcy5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5jaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShzdGFydFdpdGgobnVsbCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5fbmF2aWdhdGlvbkl0ZW1zPy5sZW5ndGggPiAwKSxcbiAgICAgICAgICAgICAgICBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgzMCksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnJlbnQpID0+IHByZXZbMF0uY29udGVudFJlY3QuaGVpZ2h0ID09PSBjdXJyZW50WzBdLmNvbnRlbnRSZWN0LmhlaWdodCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRlVmlzaWJsZUl0ZW1zKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE5hdmlnYXRhYmxlSXRlbXMoKTogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W10ge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuX25hdmlnYXRpb25JdGVtcy50b0FycmF5KCk7XG4gICAgICAgIGlmICh0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtKSB7XG4gICAgICAgICAgICBpdGVtcy5wdXNoKHRoaXMuc2hvd01vcmVPdmVyZmxvd0l0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNob3dNb3JlT3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtPy5pc09wZW47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVWaXNpYmxlSXRlbXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAoIXRoaXMuX25hdmlnYXRpb25Db21wb25lbnQuaXNTbmFwcGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25JdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5zaG93KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJmbG93QnV0dG9uLnNldChmYWxzZSk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxjdWxhdGlvbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyk7XG4gICAgICAgIHRoaXMuc2hvd092ZXJmbG93QnV0dG9uLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgbGV0IGNhbkRpc3BsYXlJdGVtcyA9IHRydWU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IHNob3dNb3JlSGVpZ2h0ID1cbiAgICAgICAgICAgICh0aGlzLnNob3dNb3JlT3ZlcmZsb3dJdGVtPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IDApICogMjtcbiAgICAgICAgY29uc3QgaG9tZUVsZW1lbnRTaXplID0gdGhpcy5fbmF2aWdhdGlvbkxpc3RzLnRvQXJyYXkoKS5yZWR1Y2UoKGhlaWdodCwgbGlzdCkgPT4ge1xuICAgICAgICAgICAgaGVpZ2h0ICs9IGxpc3QuZ2V0SG9tZUVsZW1lbnRTaXplKCkuaGVpZ2h0O1xuICAgICAgICAgICAgcmV0dXJuIGhlaWdodDtcbiAgICAgICAgfSwgMCk7XG4gICAgICAgIGxldCB0b3RhbEF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIHNob3dNb3JlSGVpZ2h0IC0gaG9tZUVsZW1lbnRTaXplO1xuXG4gICAgICAgIGNvbnN0IGhpZGRlbkVsZW1lbnRzOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IG5hdmlnYXRpb25JdGVtR3JvdXBzID0gdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLnJlZHVjZShcbiAgICAgICAgICAgIChhY2M6IHsgcm9vdDogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W107IGNoaWxkcmVuOiBGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnRbXSB9LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbUxldmVsID0gaXRlbS5ub3JtYWxpemVkTGV2ZWwoKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbUxldmVsID4gMikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhY2NbaXRlbUxldmVsID09PSAxID8gJ3Jvb3QnIDogJ2NoaWxkcmVuJ10ucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgcm9vdDogW10sIGNoaWxkcmVuOiBbXSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uc2hvdygpO1xuICAgICAgICB9KTtcblxuICAgICAgICBuYXZpZ2F0aW9uSXRlbUdyb3Vwcy5jaGlsZHJlbi5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpdGVtLmNhbGN1bGF0ZUV4cGFuZGVkKCk7XG4gICAgICAgICAgICBpZiAoIWNhbkRpc3BsYXlJdGVtcykge1xuICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGhpZGRlbkVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpdGVtLnNob3coKTtcblxuICAgICAgICAgICAgdG90YWxBdmFpbGFibGVIZWlnaHQgLT0gaXRlbS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAodG90YWxBdmFpbGFibGVIZWlnaHQgPD0gMCkge1xuICAgICAgICAgICAgICAgIGNhbkRpc3BsYXlJdGVtcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGl0ZW0uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGhpZGRlbkVsZW1lbnRzLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuYXZpZ2F0aW9uSXRlbUdyb3Vwcy5yb290LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uY2hlY2tTZWxmSGlkZGVuKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKEZEX05BVklHQVRJT05fT1ZFUkZMT1dfSVRFTV9DTEFTUyk7XG5cbiAgICAgICAgdGhpcy5faGFuZGxlT3ZlcmZsb3dJdGVtcyhoaWRkZW5FbGVtZW50cyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRpb25JblByb2dyZXNzID0gZmFsc2U7XG4gICAgICAgIH0sIDUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlT3ZlcmZsb3dJdGVtcyhpdGVtczogRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50W10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93T3ZlcmZsb3dCdXR0b24uc2V0KGl0ZW1zLmxlbmd0aCA+IDApO1xuICAgICAgICB0aGlzLl9oaWRkZW5JdGVtcyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cInVsW2ZkYi1uYXZpZ2F0aW9uLWxpc3RdXCI+PC9uZy1jb250ZW50PlxuQGlmIChzaG93T3ZlcmZsb3dCdXR0b24oKSkge1xuICAgIDx1bCBmZGItbmF2aWdhdGlvbi1saXN0IGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fbGlzdC0tbm8tZ3Jvd1wiIFtzaG93SG9tZV09XCJmYWxzZVwiICNzaG93TW9yZU92ZXJmbG93TWVudT5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICBmZGItbmF2aWdhdGlvbi1saXN0LW92ZXJmbG93LWl0ZW1cbiAgICAgICAgICAgIFthbHdheXNGb2N1c2FibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAjc2hvd01vcmVPdmVyZmxvd0l0ZW1cbiAgICAgICAgICAgIFtoaWRkZW5JdGVtc109XCJfaGlkZGVuSXRlbXNcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8YSBmZGItbmF2aWdhdGlvbi1saW5rIGdseXBoPVwib3ZlcmZsb3dcIiBsYWJlbD1cIk1vcmUgSXRlbXNcIj48L2E+XG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  /* eslint-disable @angular-eslint/no-host-metadata-property */
3
- import { AsyncPipe, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
4
4
  import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
5
5
  import { toSignal } from '@angular/core/rxjs-interop';
6
6
  import { RouterLink, RouterLinkActive } from '@angular/router';
@@ -61,27 +61,28 @@ export class NavigationLinkComponent {
61
61
  ngOnInit() {
62
62
  this.buildComponentCssClass();
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavigationLinkComponent, isStandalone: true, selector: "a[fdb-navigation-link]", inputs: { class: "class", glyph: "glyph", label: "label", external: "external" }, host: { attributes: { "role": "link" }, listeners: { "click": "_onClick()", "focus": "_focusHandler()" }, properties: { "attr.tabindex": "this._tabindex" } }, viewQueries: [{ propertyName: "textRenderer", first: true, predicate: ["textRenderer"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: `
66
- <ng-container *ngIf="glyph">
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
65
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: NavigationLinkComponent, isStandalone: true, selector: "a[fdb-navigation-link]", inputs: { class: "class", glyph: "glyph", label: "label", external: "external" }, host: { attributes: { "role": "link" }, listeners: { "click": "_onClick()", "focus": "_focusHandler()" }, properties: { "attr.tabindex": "this._tabindex" } }, viewQueries: [{ propertyName: "textRenderer", first: true, predicate: ["textRenderer"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.RouterLinkActive }], ngImport: i0, template: `
66
+ @if (glyph) {
67
67
  <fd-icon
68
68
  [glyph]="glyph"
69
69
  class="fd-navigation__icon"
70
70
  [attr.role]="'presentation'"
71
71
  [ariaHidden]="true"
72
72
  ></fd-icon>
73
- </ng-container>
73
+ }
74
74
  <ng-template #textRenderer>
75
75
  <span class="fd-navigation__text">{{ label }}</span>
76
- <span
77
- class="fd-navigation__external-link-indicator"
78
- role="presentation"
79
- aria-hidden="true"
80
- aria-label="external link indicator"
81
- *ngIf="external"
82
- ></span>
76
+ @if (external) {
77
+ <span
78
+ class="fd-navigation__external-link-indicator"
79
+ role="presentation"
80
+ aria-hidden="true"
81
+ aria-label="external link indicator"
82
+ ></span>
83
+ }
83
84
  </ng-template>
84
- <ng-container *ngTemplateOutlet="textRenderer" />
85
+ <ng-template [ngTemplateOutlet]="textRenderer" />
85
86
  <span
86
87
  class="fd-navigation__selection-indicator"
87
88
  role="presentation"
@@ -89,19 +90,20 @@ export class NavigationLinkComponent {
89
90
  aria-label="selection indicator"
90
91
  >
91
92
  </span>
92
- <span
93
- *ngIf="
94
- navigationListItemComponent?.childNavigationListComponent() &&
95
- navigationListItemComponent?.normalizedLevel() !== 3 &&
96
- !_routerLink
97
- "
98
- class="fd-navigation__has-children-indicator"
99
- role="presentation"
100
- aria-hidden="true"
101
- aria-label="has children indicator, expanded"
102
- >
103
- </span>
104
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
93
+ @if (
94
+ navigationListItemComponent?.childNavigationListComponent() &&
95
+ navigationListItemComponent?.normalizedLevel() !== 3 &&
96
+ !_routerLink
97
+ ) {
98
+ <span
99
+ class="fd-navigation__has-children-indicator"
100
+ role="presentation"
101
+ aria-hidden="true"
102
+ aria-label="has children indicator, expanded"
103
+ >
104
+ </span>
105
+ }
106
+ `, isInline: true, dependencies: [{ kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
107
  }
106
108
  __decorate([
107
109
  applyCssClass,
@@ -109,31 +111,32 @@ __decorate([
109
111
  __metadata("design:paramtypes", []),
110
112
  __metadata("design:returntype", Array)
111
113
  ], NavigationLinkComponent.prototype, "buildComponentCssClass", null);
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavigationLinkComponent, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: NavigationLinkComponent, decorators: [{
113
115
  type: Component,
114
116
  args: [{
115
117
  // eslint-disable-next-line @angular-eslint/component-selector
116
118
  selector: 'a[fdb-navigation-link]',
117
119
  template: `
118
- <ng-container *ngIf="glyph">
120
+ @if (glyph) {
119
121
  <fd-icon
120
122
  [glyph]="glyph"
121
123
  class="fd-navigation__icon"
122
124
  [attr.role]="'presentation'"
123
125
  [ariaHidden]="true"
124
126
  ></fd-icon>
125
- </ng-container>
127
+ }
126
128
  <ng-template #textRenderer>
127
129
  <span class="fd-navigation__text">{{ label }}</span>
128
- <span
129
- class="fd-navigation__external-link-indicator"
130
- role="presentation"
131
- aria-hidden="true"
132
- aria-label="external link indicator"
133
- *ngIf="external"
134
- ></span>
130
+ @if (external) {
131
+ <span
132
+ class="fd-navigation__external-link-indicator"
133
+ role="presentation"
134
+ aria-hidden="true"
135
+ aria-label="external link indicator"
136
+ ></span>
137
+ }
135
138
  </ng-template>
136
- <ng-container *ngTemplateOutlet="textRenderer" />
139
+ <ng-template [ngTemplateOutlet]="textRenderer" />
137
140
  <span
138
141
  class="fd-navigation__selection-indicator"
139
142
  role="presentation"
@@ -141,20 +144,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
141
144
  aria-label="selection indicator"
142
145
  >
143
146
  </span>
144
- <span
145
- *ngIf="
146
- navigationListItemComponent?.childNavigationListComponent() &&
147
- navigationListItemComponent?.normalizedLevel() !== 3 &&
148
- !_routerLink
149
- "
150
- class="fd-navigation__has-children-indicator"
151
- role="presentation"
152
- aria-hidden="true"
153
- aria-label="has children indicator, expanded"
154
- >
155
- </span>
147
+ @if (
148
+ navigationListItemComponent?.childNavigationListComponent() &&
149
+ navigationListItemComponent?.normalizedLevel() !== 3 &&
150
+ !_routerLink
151
+ ) {
152
+ <span
153
+ class="fd-navigation__has-children-indicator"
154
+ role="presentation"
155
+ aria-hidden="true"
156
+ aria-label="has children indicator, expanded"
157
+ >
158
+ </span>
159
+ }
156
160
  `,
157
- imports: [NgIf, IconComponent, AsyncPipe, NgTemplateOutlet],
161
+ imports: [IconComponent, AsyncPipe, NgTemplateOutlet],
158
162
  hostDirectives: [RouterLinkActive],
159
163
  standalone: true,
160
164
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -163,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
163
167
  role: 'link'
164
168
  }
165
169
  }]
166
- }], ctorParameters: function () { return []; }, propDecorators: { class: [{
170
+ }], ctorParameters: () => [], propDecorators: { class: [{
167
171
  type: Input
168
172
  }], glyph: [{
169
173
  type: Input
@@ -185,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
185
189
  type: HostListener,
186
190
  args: ['focus']
187
191
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOERBQThEO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBa0MsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFzRHhGLE1BQU0sT0FBTyx1QkFBdUI7SUFpRGhDLGNBQWM7SUFDZDtRQXJDQSxxREFBcUQ7UUFFckQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQU1qQixjQUFjO1FBRWQsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVkLGNBQWM7UUFDTCxlQUFVLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRSxjQUFjO1FBQ0wsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxJQUFJO1lBQ2Qs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ZXRhZGF0YS1wcm9wZXJ0eSAqL1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDc3NDbGFzc0J1aWxkZXIsIEhhc0VsZW1lbnRSZWYsIGFwcGx5Q3NzQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1jb21wb25lbnQudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYVtmZGItbmF2aWdhdGlvbi1saW5rXScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdseXBoXCI+XG4gICAgICAgICAgICA8ZmQtaWNvblxuICAgICAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19pY29uXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidwcmVzZW50YXRpb24nXCJcbiAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZkLWljb24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRSZW5kZXJlcj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2V4dGVybmFsLWxpbmstaW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJleHRlcm5hbCBsaW5rIGluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJleHRlcm5hbFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dFJlbmRlcmVyXCIgLz5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9fc2VsZWN0aW9uLWluZGljYXRvclwiXG4gICAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwic2VsZWN0aW9uIGluZGljYXRvclwiXG4gICAgICAgID5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQ/LmNoaWxkTmF2aWdhdGlvbkxpc3RDb21wb25lbnQoKSAmJlxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudD8ubm9ybWFsaXplZExldmVsKCkgIT09IDMgJiZcbiAgICAgICAgICAgICAgICAhX3JvdXRlckxpbmtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2hhcy1jaGlsZHJlbi1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cImhhcyBjaGlsZHJlbiBpbmRpY2F0b3IsIGV4cGFuZGVkXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudCwgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBob3N0RGlyZWN0aXZlczogW1JvdXRlckxpbmtBY3RpdmVdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdsaW5rJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvbkxpbmtDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ3NzQ2xhc3NCdWlsZGVyLCBIYXNFbGVtZW50UmVmIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xhc3M6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBnbHlwaDogc3RyaW5nO1xuXG4gICAgLyoqIExhYmVsIHRvIGJlIGRpc3BsYXllZCBhcyBhIGxpbmsgdGV4dC4gKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogV2hldGhlciB0aGUgbGluayBpcyBmb3IgdGhlIGV4dGVybmFsIHJlc291cmNlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZXJuYWwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgndGV4dFJlbmRlcmVyJylcbiAgICB0ZXh0UmVuZGVyZXI6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgX3RhYmluZGV4ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9yb3V0ZXJMaW5rID0gaW5qZWN0KFJvdXRlckxpbmssIHtcbiAgICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgICAgIHNlbGY6IHRydWVcbiAgICB9KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX3JvdXRlckxpbmtBY3RpdmUgPSBpbmplY3QoUm91dGVyTGlua0FjdGl2ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIC8qKlxuICAgICAqIElmIHVzZXIgYXBwbGllcyBSb3V0ZXJMaW5rLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBsaW5rIGlzIGFjdGl2ZVxuICAgICAqIEBoaWRkZW5cbiAgICAgKiovXG4gICAgcHJvdGVjdGVkIGlzQWN0aXZlID0gdG9TaWduYWwoaW5qZWN0KFJvdXRlckxpbmtBY3RpdmUpLmlzQWN0aXZlQ2hhbmdlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIG5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCA9IGluamVjdChGZGJOYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uYXZpZ2F0aW9uQ29tcG9uZW50ID0gaW5qZWN0KEZkYk5hdmlnYXRpb25Db21wb25lbnQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQubGlua0NvbXBvbmVudCA9IHRoaXM7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LnJvdXRlckxpbmsuc2V0KHRoaXMuX3JvdXRlckxpbmspO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudC5yb3V0ZXJMaW5rQWN0aXZlLnNldCh0aGlzLl9yb3V0ZXJMaW5rQWN0aXZlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBhcHBseUNzc0NsYXNzXG4gICAgYnVpbGRDb21wb25lbnRDc3NDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBbdGhpcy5jbGFzcyB8fCAnJywgJ2ZkLW5hdmlnYXRpb25fX2xpbmsnXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgICBwcml2YXRlIF9vbkNsaWNrKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQuY2hpbGROYXZpZ2F0aW9uTGlzdENvbXBvbmVudCgpKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudC50b2dnbGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxuICAgIHByaXZhdGUgX2ZvY3VzSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbmF2aWdhdGlvbkNvbXBvbmVudC5zZXRBY3RpdmVJdGVtKHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTtcbiAgICB9XG59XG4iXX0=
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYnRwL25hdmlnYXRpb24vbmF2aWdhdGlvbi1saW5rLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsOERBQThEO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFrQyxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQXdEeEYsTUFBTSxPQUFPLHVCQUF1QjtJQWlEaEMsY0FBYztJQUNkO1FBckNBLHFEQUFxRDtRQUVyRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTWpCLGNBQWM7UUFFZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWQsY0FBYztRQUNMLGVBQVUsR0FBNEIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWxFLGNBQWM7UUFDTCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDdEMsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDTCxzQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUxRTs7O1lBR0k7UUFDTSxhQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZFLGNBQWM7UUFDSixnQ0FBMkIsR0FBRyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUUvRSxjQUFjO1FBQ0cseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFJbkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELGNBQWM7SUFFZCxzQkFBc0I7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELGNBQWM7SUFFTixRQUFRO1FBQ1osSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsNEJBQTRCLEVBQUUsRUFBRTtZQUNqRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDN0M7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUVOLGFBQWE7UUFDakIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVE7UUFDSixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzhHQXBGUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw0ZkFuRHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXlDVCw0REFDUyxhQUFhLDBJQUFhLGdCQUFnQjs7QUFtRXBEO0lBREMsYUFBYTs7OztxRUFHYjsyRkE1RFEsdUJBQXVCO2tCQXREbkMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F5Q1Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDckQsY0FBYyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsTUFBTTtxQkFDZjtpQkFDSjt3REFJRyxLQUFLO3NCQURKLEtBQUs7Z0JBS04sS0FBSztzQkFESixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBS3pCLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFLekIsU0FBUztzQkFEUixXQUFXO3VCQUFDLGVBQWU7Z0JBb0M1QixzQkFBc0IsTUFNZCxRQUFRO3NCQURmLFlBQVk7dUJBQUMsT0FBTztnQkFTYixhQUFhO3NCQURwQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDc3NDbGFzc0J1aWxkZXIsIEhhc0VsZW1lbnRSZWYsIGFwcGx5Q3NzQ2xhc3MgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1jb21wb25lbnQudG9rZW4nO1xuaW1wb3J0IHsgRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWxpc3QtaXRlbS1jb21wb25lbnQudG9rZW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYVtmZGItbmF2aWdhdGlvbi1saW5rXScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChnbHlwaCkge1xuICAgICAgICAgICAgPGZkLWljb25cbiAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiZ2x5cGhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtbmF2aWdhdGlvbl9faWNvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCIncHJlc2VudGF0aW9uJ1wiXG4gICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9mZC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dFJlbmRlcmVyPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX190ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICBAaWYgKGV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19leHRlcm5hbC1saW5rLWluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiZXh0ZXJuYWwgbGluayBpbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZXh0UmVuZGVyZXJcIiAvPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJmZC1uYXZpZ2F0aW9uX19zZWxlY3Rpb24taW5kaWNhdG9yXCJcbiAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJzZWxlY3Rpb24gaW5kaWNhdG9yXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIEBpZiAoXG4gICAgICAgICAgICBuYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQ/LmNoaWxkTmF2aWdhdGlvbkxpc3RDb21wb25lbnQoKSAmJlxuICAgICAgICAgICAgbmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50Py5ub3JtYWxpemVkTGV2ZWwoKSAhPT0gMyAmJlxuICAgICAgICAgICAgIV9yb3V0ZXJMaW5rXG4gICAgICAgICkge1xuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkLW5hdmlnYXRpb25fX2hhcy1jaGlsZHJlbi1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cImhhcyBjaGlsZHJlbiBpbmRpY2F0b3IsIGV4cGFuZGVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgIGAsXG4gICAgaW1wb3J0czogW0ljb25Db21wb25lbnQsIEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSb3V0ZXJMaW5rQWN0aXZlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnbGluaydcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIE5hdmlnYXRpb25MaW5rQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENzc0NsYXNzQnVpbGRlciwgSGFzRWxlbWVudFJlZiB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNsYXNzOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2x5cGg6IHN0cmluZztcblxuICAgIC8qKiBMYWJlbCB0byBiZSBkaXNwbGF5ZWQgYXMgYSBsaW5rIHRleHQuICovXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGxpbmsgaXMgZm9yIHRoZSBleHRlcm5hbCByZXNvdXJjZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4dGVybmFsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ3RleHRSZW5kZXJlcicpXG4gICAgdGV4dFJlbmRlcmVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIF90YWJpbmRleCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfcm91dGVyTGluayA9IGluamVjdChSb3V0ZXJMaW5rLCB7XG4gICAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgICBzZWxmOiB0cnVlXG4gICAgfSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9yb3V0ZXJMaW5rQWN0aXZlID0gaW5qZWN0KFJvdXRlckxpbmtBY3RpdmUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgICAvKipcbiAgICAgKiBJZiB1c2VyIGFwcGxpZXMgUm91dGVyTGluaywgd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgbGluayBpcyBhY3RpdmVcbiAgICAgKiBAaGlkZGVuXG4gICAgICoqL1xuICAgIHByb3RlY3RlZCBpc0FjdGl2ZSA9IHRvU2lnbmFsKGluamVjdChSb3V0ZXJMaW5rQWN0aXZlKS5pc0FjdGl2ZUNoYW5nZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBuYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQgPSBpbmplY3QoRmRiTmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmF2aWdhdGlvbkNvbXBvbmVudCA9IGluamVjdChGZGJOYXZpZ2F0aW9uQ29tcG9uZW50KTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LmxpbmtDb21wb25lbnQgPSB0aGlzO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudC5yb3V0ZXJMaW5rLnNldCh0aGlzLl9yb3V0ZXJMaW5rKTtcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQucm91dGVyTGlua0FjdGl2ZS5zZXQodGhpcy5fcm91dGVyTGlua0FjdGl2ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAYXBwbHlDc3NDbGFzc1xuICAgIGJ1aWxkQ29tcG9uZW50Q3NzQ2xhc3MoKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gW3RoaXMuY2xhc3MgfHwgJycsICdmZC1uYXZpZ2F0aW9uX19saW5rJ107XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgcHJpdmF0ZSBfb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubmF2aWdhdGlvbkxpc3RJdGVtQ29tcG9uZW50LmNoaWxkTmF2aWdhdGlvbkxpc3RDb21wb25lbnQoKSkge1xuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uTGlzdEl0ZW1Db21wb25lbnQudG9nZ2xlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBwcml2YXRlIF9mb2N1c0hhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25hdmlnYXRpb25Db21wb25lbnQuc2V0QWN0aXZlSXRlbSh0aGlzLm5hdmlnYXRpb25MaXN0SXRlbUNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgfVxufVxuIl19