@fundamental-ngx/core 0.43.31 → 0.43.33

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 (25) hide show
  1. package/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.d.ts +6 -2
  2. package/esm2020/dynamic-page/dynamic-page-header/actions/dynamic-page-layout-actions.component.mjs +4 -3
  3. package/esm2020/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +12 -3
  4. package/esm2020/pagination/pagination.component.mjs +7 -3
  5. package/esm2020/table/directives/table-cell.directive.mjs +22 -3
  6. package/esm2020/table/table.component.mjs +6 -5
  7. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs +14 -4
  8. package/fesm2015/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  9. package/fesm2015/fundamental-ngx-core-pagination.mjs +7 -2
  10. package/fesm2015/fundamental-ngx-core-pagination.mjs.map +1 -1
  11. package/fesm2015/fundamental-ngx-core-table.mjs +25 -5
  12. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  13. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs +14 -4
  14. package/fesm2020/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  15. package/fesm2020/fundamental-ngx-core-pagination.mjs +6 -2
  16. package/fesm2020/fundamental-ngx-core-pagination.mjs.map +1 -1
  17. package/fesm2020/fundamental-ngx-core-table.mjs +25 -5
  18. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  19. package/fundamental-ngx-core-v0.43.33.tgz +0 -0
  20. package/package.json +3 -3
  21. package/pagination/pagination.component.d.ts +4 -2
  22. package/schematics/add-dependencies/index.js +4 -4
  23. package/table/directives/table-cell.directive.d.ts +6 -0
  24. package/table/table.component.d.ts +3 -2
  25. package/fundamental-ngx-core-v0.43.31.tgz +0 -0
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ChangeDetectorRef, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
1
+ import { AfterViewInit, AfterViewChecked, ChangeDetectorRef, ElementRef, OnDestroy, OnInit, Renderer2 } from '@angular/core';
2
2
  import { DynamicPageHeader } from '@fundamental-ngx/core/shared';
3
3
  import { BreadcrumbComponent } from '@fundamental-ngx/core/breadcrumb';
4
4
  import { DynamicPageResponsiveSize } from '../../constants';
@@ -10,7 +10,7 @@ import { DynamicPageHeaderSubtitleDirective } from '../../directives/dynamic-pag
10
10
  import { Nullable } from '@fundamental-ngx/cdk/utils';
11
11
  import * as i0 from "@angular/core";
12
12
  export declare const ActionSquashBreakpointPx = 1280;
13
- export declare class DynamicPageHeaderComponent implements OnInit, AfterViewInit, OnDestroy, DynamicPageHeader {
13
+ export declare class DynamicPageHeaderComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy, DynamicPageHeader {
14
14
  private _elementRef;
15
15
  private _renderer;
16
16
  private _dynamicPageService;
@@ -46,6 +46,8 @@ export declare class DynamicPageHeaderComponent implements OnInit, AfterViewInit
46
46
  /** @hidden */
47
47
  _actionsSquashed: boolean;
48
48
  /** @hidden */
49
+ _breadcrumbComponentVisible: boolean;
50
+ /** @hidden */
49
51
  _size: DynamicPageResponsiveSize;
50
52
  /** @hidden **/
51
53
  private readonly _onDestroy$;
@@ -56,6 +58,8 @@ export declare class DynamicPageHeaderComponent implements OnInit, AfterViewInit
56
58
  /** @hidden */
57
59
  ngAfterViewInit(): void;
58
60
  /** @hidden */
61
+ ngAfterViewChecked(): void;
62
+ /** @hidden */
59
63
  ngOnDestroy(): void;
60
64
  /**
61
65
  * sets size which in turn adds corresponding padding for the size type.
@@ -21,7 +21,7 @@ export class DynamicPageLayoutActionsComponent extends DynamicPageBaseActions {
21
21
  }
22
22
  }
23
23
  DynamicPageLayoutActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageLayoutActionsComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
24
- DynamicPageLayoutActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions", host: { attributes: { "role": "toolbar" } }, queries: [{ propertyName: "toolbarComponent", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
+ DynamicPageLayoutActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DynamicPageLayoutActionsComponent, selector: "fd-dynamic-page-layout-actions", host: { attributes: { "role": "toolbar" }, properties: { "style.margin-inline-start": "\"auto\"" } }, queries: [{ propertyName: "toolbarComponent", first: true, predicate: ToolbarComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
25
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageLayoutActionsComponent, decorators: [{
26
26
  type: Component,
27
27
  args: [{
@@ -30,11 +30,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
30
30
  changeDetection: ChangeDetectionStrategy.OnPush,
31
31
  encapsulation: ViewEncapsulation.None,
32
32
  host: {
33
- role: 'toolbar'
33
+ role: 'toolbar',
34
+ '[style.margin-inline-start]': '"auto"'
34
35
  }
35
36
  }]
36
37
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { toolbarComponent: [{
37
38
  type: ContentChild,
38
39
  args: [ToolbarComponent]
39
40
  }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2R5bmFtaWMtcGFnZS9keW5hbWljLXBhZ2UtaGVhZGVyL2FjdGlvbnMvZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVy9CLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxzQkFBc0I7SUFRekUsY0FBYztJQUNkLFlBQ29CLFVBQXNCLEVBQzlCLFNBQW9CLEVBQ3BCLGFBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBSlEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVA1QyxjQUFjO1FBQ0csZ0JBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVNsRSxDQUFDO0lBRUQsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQywrQkFBK0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDOzs4SEFyQlEsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsaUtBRTVCLGdCQUFnQix1RUFUcEIsMkJBQTJCOzJGQU81QixpQ0FBaUM7a0JBVDdDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFNBQVM7cUJBQ2xCO2lCQUNKO3lKQUlHLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29udGVudENoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VCYXNlQWN0aW9ucyB9IGZyb20gJy4vZHluYW1pYy1wYWdlLWJhc2UtYWN0aW9ucyc7XG5pbXBvcnQgeyBEWU5BTUlDX1BBR0VfQ0xBU1NfTkFNRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Rvb2xiYXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucycsXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3Rvb2xiYXInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljUGFnZUxheW91dEFjdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljUGFnZUJhc2VBY3Rpb25zIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRvb2xiYXJDb21wb25lbnQpXG4gICAgdG9vbGJhckNvbXBvbmVudDogVG9vbGJhckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZENsYXNzVG9Ub29sYmFyKERZTkFNSUNfUEFHRV9DTEFTU19OQU1FLmR5bmFtaWNQYWdlTGF5b3V0QWN0aW9uc1Rvb2xiYXIsIHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMuYWRkQ2xhc3NUb1Rvb2xiYXIoRFlOQU1JQ19QQUdFX0NMQVNTX05BTUUuZHluYW1pY1BhZ2VUb29sYmFyLCB0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cbn1cbiJdfQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2R5bmFtaWMtcGFnZS9keW5hbWljLXBhZ2UtaGVhZGVyL2FjdGlvbnMvZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsVUFBVSxFQUNWLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBWS9CLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxzQkFBc0I7SUFRekUsY0FBYztJQUNkLFlBQ29CLFVBQXNCLEVBQzlCLFNBQW9CLEVBQ3BCLGFBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBSlEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUM5QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVA1QyxjQUFjO1FBQ0csZ0JBQVcsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVNsRSxDQUFDO0lBRUQsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQywrQkFBK0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RixDQUFDOzs4SEFyQlEsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsME5BRTVCLGdCQUFnQix1RUFWcEIsMkJBQTJCOzJGQVE1QixpQ0FBaUM7a0JBVjdDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsNkJBQTZCLEVBQUUsUUFBUTtxQkFDMUM7aUJBQ0o7eUpBSUcsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb250ZW50Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUJhc2VBY3Rpb25zIH0gZnJvbSAnLi9keW5hbWljLXBhZ2UtYmFzZS1hY3Rpb25zJztcbmltcG9ydCB7IERZTkFNSUNfUEFHRV9DTEFTU19OQU1FIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvdG9vbGJhcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtZHluYW1pYy1wYWdlLWxheW91dC1hY3Rpb25zJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAndG9vbGJhcicsXG4gICAgICAgICdbc3R5bGUubWFyZ2luLWlubGluZS1zdGFydF0nOiAnXCJhdXRvXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljUGFnZUxheW91dEFjdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljUGFnZUJhc2VBY3Rpb25zIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFRvb2xiYXJDb21wb25lbnQpXG4gICAgdG9vbGJhckNvbXBvbmVudDogVG9vbGJhckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFkZENsYXNzVG9Ub29sYmFyKERZTkFNSUNfUEFHRV9DTEFTU19OQU1FLmR5bmFtaWNQYWdlTGF5b3V0QWN0aW9uc1Rvb2xiYXIsIHRoaXMuZWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMuYWRkQ2xhc3NUb1Rvb2xiYXIoRFlOQU1JQ19QQUdFX0NMQVNTX05BTUUuZHluYW1pY1BhZ2VUb29sYmFyLCB0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cbn1cbiJdfQ==
@@ -31,6 +31,8 @@ export class DynamicPageHeaderComponent {
31
31
  this.subtitleWrap = false;
32
32
  /** @hidden */
33
33
  this._actionsSquashed = false;
34
+ /** @hidden */
35
+ this._breadcrumbComponentVisible = false;
34
36
  /** @hidden **/
35
37
  this._onDestroy$ = new Subject();
36
38
  }
@@ -46,6 +48,13 @@ export class DynamicPageHeaderComponent {
46
48
  this._collapsed = collapsed;
47
49
  this._changeDetRef.markForCheck();
48
50
  });
51
+ if (this._breadcrumbComponent) {
52
+ this._breadcrumbComponentVisible = true;
53
+ }
54
+ }
55
+ /** @hidden */
56
+ ngAfterViewChecked() {
57
+ this._changeDetRef.detectChanges();
49
58
  }
50
59
  /** @hidden */
51
60
  ngOnDestroy() {
@@ -108,7 +117,7 @@ DynamicPageHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
108
117
  provide: DYNAMIC_PAGE_HEADER_TOKEN,
109
118
  useExisting: DynamicPageHeaderComponent
110
119
  }
111
- ], queries: [{ propertyName: "_subtitleTemplate", first: true, predicate: DynamicPageHeaderSubtitleDirective, descendants: true }, { propertyName: "_titleTemplate", first: true, predicate: DynamicPageHeaderTitleDirective, descendants: true }, { propertyName: "_breadcrumbComponent", first: true, predicate: FD_BREADCRUMB_COMPONENT, descendants: true }, { propertyName: "_globalActions", first: true, predicate: DynamicPageGlobalActionsComponent, descendants: true }, { propertyName: "_layoutActions", first: true, predicate: DynamicPageLayoutActionsComponent, descendants: true }, { propertyName: "_contentToolbar", first: true, predicate: DynamicPageTitleContentComponent, descendants: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n <nav aria-label=\"Breadcrumbs\" class=\"fd-dynamic-page__breadcrumb-wrapper\" (click)=\"stopPropagation($event)\">\n <ng-content select=\"fd-breadcrumb\"></ng-content>\n </nav>\n <ng-container *ngIf=\"_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n <div class=\"fd-dynamic-page__title-container\">\n <ng-container *ngIf=\"_collapsed\">\n <ng-content select=\"fd-facet\"></ng-content>\n </ng-container>\n\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <h2 class=\"fd-dynamic-page__title-container\">\n <span\n class=\"fd-dynamic-page__title\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-container *ngTemplateOutlet=\"dynamicPageGlobalActionsRef\"></ng-container>\n <ng-container *ngIf=\"!_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n </h2>\n <div\n *ngIf=\"_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"!_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n>\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n</div>\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-template>\n</ng-template>\n\n<ng-template #subtitleRef>\n <ng-container\n [ngTemplateOutlet]=\"_subtitleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultSubtitle>\n {{ subtitle }}\n</ng-template>\n\n<ng-template #titleRef>\n <ng-container\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n {{ title }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.IgnoreClickOnSelectionDirective, selector: "[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
120
+ ], queries: [{ propertyName: "_subtitleTemplate", first: true, predicate: DynamicPageHeaderSubtitleDirective, descendants: true }, { propertyName: "_titleTemplate", first: true, predicate: DynamicPageHeaderTitleDirective, descendants: true }, { propertyName: "_breadcrumbComponent", first: true, predicate: FD_BREADCRUMB_COMPONENT, descendants: true }, { propertyName: "_globalActions", first: true, predicate: DynamicPageGlobalActionsComponent, descendants: true }, { propertyName: "_layoutActions", first: true, predicate: DynamicPageLayoutActionsComponent, descendants: true }, { propertyName: "_contentToolbar", first: true, predicate: DynamicPageTitleContentComponent, descendants: true }], ngImport: i0, template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n <div class=\"fd-dynamic-page__breadcrumb-container\" *ngIf=\"_breadcrumbComponentVisible || _actionsSquashed\">\n <nav\n *ngIf=\"_breadcrumbComponentVisible\"\n aria-label=\"Breadcrumbs\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-breadcrumb\"></ng-content>\n </nav>\n <ng-container *ngIf=\"_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n <div class=\"fd-dynamic-page__title-container\">\n <ng-container *ngIf=\"_collapsed\">\n <ng-content select=\"fd-facet\"></ng-content>\n </ng-container>\n\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <h2 class=\"fd-dynamic-page__title-container\">\n <span\n class=\"fd-dynamic-page__title\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-container *ngTemplateOutlet=\"dynamicPageGlobalActionsRef\"></ng-container>\n <ng-container *ngIf=\"!_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n </h2>\n <div\n *ngIf=\"_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"!_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n>\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n</div>\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-template>\n</ng-template>\n\n<ng-template #subtitleRef>\n <ng-container\n [ngTemplateOutlet]=\"_subtitleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultSubtitle>\n {{ subtitle }}\n</ng-template>\n\n<ng-template #titleRef>\n <ng-container\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n {{ title }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.IgnoreClickOnSelectionDirective, selector: "[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
112
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicPageHeaderComponent, decorators: [{
113
122
  type: Component,
114
123
  args: [{ selector: 'fd-dynamic-page-header', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
@@ -118,7 +127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
118
127
  provide: DYNAMIC_PAGE_HEADER_TOKEN,
119
128
  useExisting: DynamicPageHeaderComponent
120
129
  }
121
- ], template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n <div class=\"fd-dynamic-page__breadcrumb-container\">\n <nav aria-label=\"Breadcrumbs\" class=\"fd-dynamic-page__breadcrumb-wrapper\" (click)=\"stopPropagation($event)\">\n <ng-content select=\"fd-breadcrumb\"></ng-content>\n </nav>\n <ng-container *ngIf=\"_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n <div class=\"fd-dynamic-page__title-container\">\n <ng-container *ngIf=\"_collapsed\">\n <ng-content select=\"fd-facet\"></ng-content>\n </ng-container>\n\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <h2 class=\"fd-dynamic-page__title-container\">\n <span\n class=\"fd-dynamic-page__title\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-container *ngTemplateOutlet=\"dynamicPageGlobalActionsRef\"></ng-container>\n <ng-container *ngIf=\"!_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n </h2>\n <div\n *ngIf=\"_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"!_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n>\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n</div>\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-template>\n</ng-template>\n\n<ng-template #subtitleRef>\n <ng-container\n [ngTemplateOutlet]=\"_subtitleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultSubtitle>\n {{ subtitle }}\n</ng-template>\n\n<ng-template #titleRef>\n <ng-container\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n {{ title }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"] }]
130
+ ], template: "<div class=\"fd-dynamic-page__main-container\">\n <div class=\"fd-dynamic-page__breadcrumb-title-container\">\n <div class=\"fd-dynamic-page__breadcrumb-container\" *ngIf=\"_breadcrumbComponentVisible || _actionsSquashed\">\n <nav\n *ngIf=\"_breadcrumbComponentVisible\"\n aria-label=\"Breadcrumbs\"\n class=\"fd-dynamic-page__breadcrumb-wrapper\"\n (click)=\"stopPropagation($event)\"\n >\n <ng-content select=\"fd-breadcrumb\"></ng-content>\n </nav>\n <ng-container *ngIf=\"_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n <div class=\"fd-dynamic-page__title-container\">\n <ng-container *ngIf=\"_collapsed\">\n <ng-content select=\"fd-facet\"></ng-content>\n </ng-container>\n\n <div class=\"fd-dynamic-page__title-subtitle-container\">\n <h2 class=\"fd-dynamic-page__title-container\">\n <span\n class=\"fd-dynamic-page__title\"\n [class.fd-dynamic-page__title--wrap]=\"titleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-template [ngTemplateOutlet]=\"_titleTemplate ? titleRef : defaultTitle\"></ng-template>\n </span>\n <ng-content select=\"fd-dynamic-page-title-content\"></ng-content>\n <div class=\"fd-dynamic-page__toolbar-container\" (click)=\"stopPropagation($event)\">\n <ng-container *ngTemplateOutlet=\"dynamicPageGlobalActionsRef\"></ng-container>\n <ng-container *ngIf=\"!_actionsSquashed\">\n <ng-container *ngTemplateOutlet=\"dynamicPageLayoutActionsRef\"></ng-container>\n </ng-container>\n </div>\n </h2>\n <div\n *ngIf=\"_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n >\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</div>\n<div\n *ngIf=\"!_collapsed && (subtitle || _subtitleTemplate)\"\n class=\"fd-dynamic-page__subtitle\"\n [class.fd-dynamic-page__subtitle--wrap]=\"subtitleWrap\"\n fdkIgnoreClickOnSelection\n>\n <ng-container *ngTemplateOutlet=\"_subtitleTemplate ? subtitleRef : defaultSubtitle\"></ng-container>\n</div>\n\n<ng-template #dynamicPageGlobalActionsRef>\n <ng-content select=\"fd-dynamic-page-global-actions\"></ng-content>\n</ng-template>\n<ng-template #dynamicPageLayoutActionsRef>\n <ng-content select=\"fd-dynamic-page-layout-actions\"></ng-content>\n</ng-template>\n\n<ng-template #titleRef>\n <ng-template\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-template>\n</ng-template>\n\n<ng-template #subtitleRef>\n <ng-container\n [ngTemplateOutlet]=\"_subtitleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultSubtitle>\n {{ subtitle }}\n</ng-template>\n\n<ng-template #titleRef>\n <ng-container\n [ngTemplateOutlet]=\"_titleTemplate!.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: _collapsed }\"\n ></ng-container>\n</ng-template>\n\n<ng-template #defaultTitle>\n {{ title }}\n</ng-template>\n", styles: [".fd-dynamic-page__breadcrumb-wrapper{width:100%;max-width:60%}\n"] }]
122
131
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.DynamicPageService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { title: [{
123
132
  type: Input
124
133
  }], titleWrap: [{
@@ -146,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
146
155
  type: ContentChild,
147
156
  args: [DynamicPageTitleContentComponent]
148
157
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9oZWFkZXIvZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9oZWFkZXIvZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFaEcsT0FBTyxFQUFFLHVCQUF1QixFQUE2QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxp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TEFRRCxLQUFLO3NCQURKLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7Z0JBUU4saUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLGtDQUFrQztnQkFRaEQsY0FBYztzQkFEYixZQUFZO3VCQUFDLCtCQUErQjtnQkFLN0Msb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLHVCQUF1QjtnQkFLckMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGlDQUFpQztnQkFLL0MsY0FBYztzQkFEYixZQUFZO3VCQUFDLGlDQUFpQztnQkFLL0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRFlOQU1JQ19QQUdFX0hFQURFUl9UT0tFTiwgRHluYW1pY1BhZ2VIZWFkZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQsIEZEX0JSRUFEQ1JVTUJfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2JyZWFkY3J1bWInO1xuXG5pbXBvcnQgeyBEWU5BTUlDX1BBR0VfQ0xBU1NfTkFNRSwgRHluYW1pY1BhZ2VSZXNwb25zaXZlU2l6ZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9keW5hbWljLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBhZGRDbGFzc05hbWVUb0VsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUxheW91dEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25zL2R5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VHbG9iYWxBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNQYWdlVGl0bGVDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VIZWFkZXJTdWJ0aXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1wYWdlLWhlYWRlci1zdWJ0aXRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUhlYWRlclRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLXBhZ2UtaGVhZGVyLXRpdGxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBBY3Rpb25TcXVhc2hCcmVha3BvaW50UHggPSAxMjgwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnMCdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEWU5BTUlDX1BBR0VfSEVBREVSX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNQYWdlSGVhZGVyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNQYWdlSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIER5bmFtaWNQYWdlSGVhZGVyIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb2xsYXBzZWQgPSBmYWxzZTtcblxuICAgIC8qKiBUaXRsZSBwcm9wZXJ0eSBmb3IgZHluYW1pYyBwYWdlICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGl0bGUgc2hvdWxkIHdyYXAgaW5zdGVhZCBvZiB0cnVuY2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGVXcmFwID0gZmFsc2U7XG5cbiAgICAvKiogU3VidGl0bGUgcHJvcGVydHkgZm9yIGR5bmFtaWMgcGFnZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3VidGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHN1YnRpdGxlIHNob3VsZCB3cmFwIGluc3RlYWQgb2YgdHJ1bmNhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN1YnRpdGxlV3JhcCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRlbXBsYXRlIHVzZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBjb250ZW50IGZvciB0aGUgc3VidGl0bGUgcGFnZSBoZWFkZXIgYXJlYS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmUpXG4gICAgX3N1YnRpdGxlVGVtcGxhdGU6IE51bGxhYmxlPER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRlbXBsYXRlIHVzZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBjb250ZW50IGZvciB0aGUgdGl0bGUgcGFnZSBoZWFkZXIgYXJlYS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlSGVhZGVyVGl0bGVEaXJlY3RpdmUpXG4gICAgX3RpdGxlVGVtcGxhdGU6IE51bGxhYmxlPER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEZEX0JSRUFEQ1JVTUJfQ09NUE9ORU5UKVxuICAgIF9icmVhZGNydW1iQ29tcG9uZW50OiBCcmVhZGNydW1iQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlR2xvYmFsQWN0aW9uc0NvbXBvbmVudClcbiAgICBfZ2xvYmFsQWN0aW9uczogRHluYW1pY1BhZ2VHbG9iYWxBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlTGF5b3V0QWN0aW9uc0NvbXBvbmVudClcbiAgICBfbGF5b3V0QWN0aW9uczogRHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlVGl0bGVDb250ZW50Q29tcG9uZW50KVxuICAgIF9jb250ZW50VG9vbGJhcjogRHluYW1pY1BhZ2VUaXRsZUNvbnRlbnRDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hY3Rpb25zU3F1YXNoZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NpemU6IER5bmFtaWNQYWdlUmVzcG9uc2l2ZVNpemU7XG5cbiAgICAvKiogQGhpZGRlbiAqKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIF9keW5hbWljUGFnZVNlcnZpY2U6IER5bmFtaWNQYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0UmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvSG9zdEVsZW1lbnQoRFlOQU1JQ19QQUdFX0NMQVNTX05BTUUuZHluYW1pY1BhZ2VUaXRsZUFyZWEpO1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub1BhZ2VDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FkZEN1c3RvbUNsYXNzVG9CcmVhZGNydW1iKCk7XG5cbiAgICAgICAgdGhpcy5fZHluYW1pY1BhZ2VTZXJ2aWNlLmNvbGxhcHNlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChjb2xsYXBzZWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IGNvbGxhcHNlZDtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXRzIHNpemUgd2hpY2ggaW4gdHVybiBhZGRzIGNvcnJlc3BvbmRpbmcgcGFkZGluZyBmb3IgdGhlIHNpemUgdHlwZS5cbiAgICAgKiBzaXplIGNhbiBiZSBgc21hbGxgLCBgbWVkaXVtYCwgYGxhcmdlYCwgb3IgYGV4dHJhLWxhcmdlYC5cbiAgICAgKi9cbiAgICBzZXQgc2l6ZShzaXplVHlwZTogRHluYW1pY1BhZ2VSZXNwb25zaXZlU2l6ZSkge1xuICAgICAgICB0aGlzLl9zZXRTaXplKHNpemVUeXBlKTtcbiAgICAgICAgdGhpcy5fc2l6ZSA9IHNpemVUeXBlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBzZXRzIHRoZSBwYWRkaW5nIGNsYXNzZXNcbiAgICAgKiBAcGFyYW0gc2l6ZVR5cGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXRTaXplKHNpemVUeXBlOiBEeW5hbWljUGFnZVJlc3BvbnNpdmVTaXplKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbXBvbmVudD8ub25SZXNpemUoKTtcbiAgICAgICAgICAgIHRoaXMuX2dsb2JhbEFjdGlvbnM/Ll9zZXRTaXplKHNpemVUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRUb29sYmFyPy5fc2V0U2l6ZShzaXplVHlwZSk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzTmFtZVRvSG9zdEVsZW1lbnQoY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3NOYW1lVG9FbGVtZW50KHRoaXMuX3JlbmRlcmVyLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQoZWxlbWVudDogRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3NOYW1lVG9FbGVtZW50KHRoaXMuX3JlbmRlcmVyLCBlbGVtZW50LCBjbGFzc05hbWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkQ3VzdG9tQ2xhc3NUb0JyZWFkY3J1bWIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9icmVhZGNydW1iQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0N1c3RvbUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbXBvbmVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgRFlOQU1JQ19QQUdFX0NMQVNTX05BTUUuZHluYW1pY1BhZ2VCcmVhZGNydW1iXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1BhZ2VDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9keW5hbWljUGFnZVNlcnZpY2UucGl4ZWxzU2l6ZUNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgocGl4ZWxzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY3Rpb25zU3F1YXNoZWQ6IGJvb2xlYW4gPSBwaXhlbHMgPCBBY3Rpb25TcXVhc2hCcmVha3BvaW50UHg7XG4gICAgICAgICAgICBpZiAoYWN0aW9uc1NxdWFzaGVkICE9PSB0aGlzLl9hY3Rpb25zU3F1YXNoZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3Rpb25zU3F1YXNoZWQgPSBhY3Rpb25zU3F1YXNoZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fbWFpbi1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19icmVhZGNydW1iLXRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19icmVhZGNydW1iLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5hdiBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYnNcIiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fYnJlYWRjcnVtYi13cmFwcGVyXCIgKGNsaWNrKT1cInN0b3BQcm9wYWdhdGlvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtYnJlYWRjcnVtYlwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hY3Rpb25zU3F1YXNoZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9jb2xsYXBzZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1mYWNldFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX190aXRsZS1zdWJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1keW5hbWljLXBhZ2VfX3RpdGxlLS13cmFwXT1cInRpdGxlV3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZGtJZ25vcmVDbGlja09uU2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGl0bGVUZW1wbGF0ZSA/IHRpdGxlUmVmIDogZGVmYXVsdFRpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fdG9vbGJhci1jb250YWluZXJcIiAoY2xpY2spPVwic3RvcFByb3BhZ2F0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkeW5hbWljUGFnZUdsb2JhbEFjdGlvbnNSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2FjdGlvbnNTcXVhc2hlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkeW5hbWljUGFnZUxheW91dEFjdGlvbnNSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJfY29sbGFwc2VkICYmIChzdWJ0aXRsZSB8fCBfc3VidGl0bGVUZW1wbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtZHluYW1pYy1wYWdlX19zdWJ0aXRsZS0td3JhcF09XCJzdWJ0aXRsZVdyYXBcIlxuICAgICAgICAgICAgICAgICAgICBmZGtJZ25vcmVDbGlja09uU2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX3N1YnRpdGxlVGVtcGxhdGUgPyBzdWJ0aXRsZVJlZiA6IGRlZmF1bHRTdWJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gICAgKm5nSWY9XCIhX2NvbGxhcHNlZCAmJiAoc3VidGl0bGUgfHwgX3N1YnRpdGxlVGVtcGxhdGUpXCJcbiAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fc3VidGl0bGVcIlxuICAgIFtjbGFzcy5mZC1keW5hbWljLXBhZ2VfX3N1YnRpdGxlLS13cmFwXT1cInN1YnRpdGxlV3JhcFwiXG4gICAgZmRrSWdub3JlQ2xpY2tPblNlbGVjdGlvblxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfc3VidGl0bGVUZW1wbGF0ZSA/IHN1YnRpdGxlUmVmIDogZGVmYXVsdFN1YnRpdGxlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkeW5hbWljUGFnZUdsb2JhbEFjdGlvbnNSZWY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zUmVmPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9uc1wiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVSZWY+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90aXRsZVRlbXBsYXRlIS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogX2NvbGxhcHNlZCB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3VidGl0bGVSZWY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfc3VidGl0bGVUZW1wbGF0ZSEudGVtcGxhdGVSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9jb2xsYXBzZWQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0U3VidGl0bGU+XG4gICAge3sgc3VidGl0bGUgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVSZWY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGl0bGVUZW1wbGF0ZSEudGVtcGxhdGVSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9jb2xsYXBzZWQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGl0bGU+XG4gICAge3sgdGl0bGUgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9oZWFkZXIvZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9keW5hbWljLXBhZ2UvZHluYW1pYy1wYWdlLWhlYWRlci9oZWFkZXIvZHluYW1pYy1wYWdlLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQXFCLE1BQU0sOEJBQThCLENBQUM7QUFDNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFaEcsT0FBTyxFQUFFLHVCQUF1QixFQUE2QixNQUFNLGlCQUFpQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxp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Q2EsMEJBQTBCO2tCQWhCdEMsU0FBUzsrQkFDSSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0YsaUJBQWlCLEVBQUUsR0FBRztxQkFDekIsYUFDVTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUseUJBQXlCOzRCQUNsQyxXQUFXLDRCQUE0Qjt5QkFDMUM7cUJBQ0o7MExBVUQsS0FBSztzQkFESixLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sWUFBWTtzQkFEWCxLQUFLO2dCQVFOLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxrQ0FBa0M7Z0JBUWhELGNBQWM7c0JBRGIsWUFBWTt1QkFBQywrQkFBK0I7Z0JBSzdDLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBS3JDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBSy9DLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBSy9DLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRFlOQU1JQ19QQUdFX0hFQURFUl9UT0tFTiwgRHluYW1pY1BhZ2VIZWFkZXIgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkJztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQsIEZEX0JSRUFEQ1JVTUJfQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2JyZWFkY3J1bWInO1xuXG5pbXBvcnQgeyBEWU5BTUlDX1BBR0VfQ0xBU1NfTkFNRSwgRHluYW1pY1BhZ2VSZXNwb25zaXZlU2l6ZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9keW5hbWljLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBhZGRDbGFzc05hbWVUb0VsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUxheW91dEFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25zL2R5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VHbG9iYWxBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9keW5hbWljLXBhZ2UtZ2xvYmFsLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNQYWdlVGl0bGVDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9ucy9keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY1BhZ2VIZWFkZXJTdWJ0aXRsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZHluYW1pYy1wYWdlLWhlYWRlci1zdWJ0aXRsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZUhlYWRlclRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9keW5hbWljLXBhZ2UtaGVhZGVyLXRpdGxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBBY3Rpb25TcXVhc2hCcmVha3BvaW50UHggPSAxMjgwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWR5bmFtaWMtcGFnZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9keW5hbWljLXBhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci50YWJpbmRleF0nOiAnMCdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEWU5BTUlDX1BBR0VfSEVBREVSX1RPS0VOLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IER5bmFtaWNQYWdlSGVhZGVyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNQYWdlSGVhZGVyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSwgRHluYW1pY1BhZ2VIZWFkZXJcbntcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb2xsYXBzZWQgPSBmYWxzZTtcblxuICAgIC8qKiBUaXRsZSBwcm9wZXJ0eSBmb3IgZHluYW1pYyBwYWdlICovXG4gICAgQElucHV0KClcbiAgICB0aXRsZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdGl0bGUgc2hvdWxkIHdyYXAgaW5zdGVhZCBvZiB0cnVuY2F0aW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdGl0bGVXcmFwID0gZmFsc2U7XG5cbiAgICAvKiogU3VidGl0bGUgcHJvcGVydHkgZm9yIGR5bmFtaWMgcGFnZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3VidGl0bGU6IHN0cmluZztcblxuICAgIC8qKiBXaGV0aGVyIHN1YnRpdGxlIHNob3VsZCB3cmFwIGluc3RlYWQgb2YgdHJ1bmNhdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIHN1YnRpdGxlV3JhcCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRlbXBsYXRlIHVzZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBjb250ZW50IGZvciB0aGUgc3VidGl0bGUgcGFnZSBoZWFkZXIgYXJlYS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmUpXG4gICAgX3N1YnRpdGxlVGVtcGxhdGU6IE51bGxhYmxlPER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRlbXBsYXRlIHVzZWQgdG8gcHJvdmlkZSBhIGN1c3RvbSBjb250ZW50IGZvciB0aGUgdGl0bGUgcGFnZSBoZWFkZXIgYXJlYS5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlSGVhZGVyVGl0bGVEaXJlY3RpdmUpXG4gICAgX3RpdGxlVGVtcGxhdGU6IE51bGxhYmxlPER5bmFtaWNQYWdlSGVhZGVyU3VidGl0bGVEaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKEZEX0JSRUFEQ1JVTUJfQ09NUE9ORU5UKVxuICAgIF9icmVhZGNydW1iQ29tcG9uZW50OiBCcmVhZGNydW1iQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlR2xvYmFsQWN0aW9uc0NvbXBvbmVudClcbiAgICBfZ2xvYmFsQWN0aW9uczogRHluYW1pY1BhZ2VHbG9iYWxBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlTGF5b3V0QWN0aW9uc0NvbXBvbmVudClcbiAgICBfbGF5b3V0QWN0aW9uczogRHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKER5bmFtaWNQYWdlVGl0bGVDb250ZW50Q29tcG9uZW50KVxuICAgIF9jb250ZW50VG9vbGJhcjogRHluYW1pY1BhZ2VUaXRsZUNvbnRlbnRDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9hY3Rpb25zU3F1YXNoZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2JyZWFkY3J1bWJDb21wb25lbnRWaXNpYmxlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaXplOiBEeW5hbWljUGFnZVJlc3BvbnNpdmVTaXplO1xuXG4gICAgLyoqIEBoaWRkZW4gKiovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25EZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBfZHluYW1pY1BhZ2VTZXJ2aWNlOiBEeW5hbWljUGFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NoYW5nZURldFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZGRDbGFzc05hbWVUb0hvc3RFbGVtZW50KERZTkFNSUNfUEFHRV9DTEFTU19OQU1FLmR5bmFtaWNQYWdlVGl0bGVBcmVhKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9QYWdlQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZGRDdXN0b21DbGFzc1RvQnJlYWRjcnVtYigpO1xuXG4gICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlU2VydmljZS5jb2xsYXBzZWQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoY29sbGFwc2VkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jb2xsYXBzZWQgPSBjb2xsYXBzZWQ7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLl9icmVhZGNydW1iQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29tcG9uZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldHMgc2l6ZSB3aGljaCBpbiB0dXJuIGFkZHMgY29ycmVzcG9uZGluZyBwYWRkaW5nIGZvciB0aGUgc2l6ZSB0eXBlLlxuICAgICAqIHNpemUgY2FuIGJlIGBzbWFsbGAsIGBtZWRpdW1gLCBgbGFyZ2VgLCBvciBgZXh0cmEtbGFyZ2VgLlxuICAgICAqL1xuICAgIHNldCBzaXplKHNpemVUeXBlOiBEeW5hbWljUGFnZVJlc3BvbnNpdmVTaXplKSB7XG4gICAgICAgIHRoaXMuX3NldFNpemUoc2l6ZVR5cGUpO1xuICAgICAgICB0aGlzLl9zaXplID0gc2l6ZVR5cGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIHNldHMgdGhlIHBhZGRpbmcgY2xhc3Nlc1xuICAgICAqIEBwYXJhbSBzaXplVHlwZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3NldFNpemUoc2l6ZVR5cGU6IER5bmFtaWNQYWdlUmVzcG9uc2l2ZVNpemUpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29tcG9uZW50Py5vblJlc2l6ZSgpO1xuICAgICAgICAgICAgdGhpcy5fZ2xvYmFsQWN0aW9ucz8uX3NldFNpemUoc2l6ZVR5cGUpO1xuICAgICAgICAgICAgdGhpcy5fY29udGVudFRvb2xiYXI/Ll9zZXRTaXplKHNpemVUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRkQ2xhc3NOYW1lVG9Ib3N0RWxlbWVudChjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBhZGRDbGFzc05hbWVUb0VsZW1lbnQodGhpcy5fcmVuZGVyZXIsIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChlbGVtZW50OiBFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBhZGRDbGFzc05hbWVUb0VsZW1lbnQodGhpcy5fcmVuZGVyZXIsIGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hZGRDdXN0b21DbGFzc1RvQnJlYWRjcnVtYigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2JyZWFkY3J1bWJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FkZENsYXNzTmFtZVRvQ3VzdG9tRWxlbWVudChcbiAgICAgICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29tcG9uZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBEWU5BTUlDX1BBR0VfQ0xBU1NfTkFNRS5keW5hbWljUGFnZUJyZWFkY3J1bWJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvUGFnZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlU2VydmljZS5waXhlbHNTaXplQ2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChwaXhlbHMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbnNTcXVhc2hlZDogYm9vbGVhbiA9IHBpeGVscyA8IEFjdGlvblNxdWFzaEJyZWFrcG9pbnRQeDtcbiAgICAgICAgICAgIGlmIChhY3Rpb25zU3F1YXNoZWQgIT09IHRoaXMuX2FjdGlvbnNTcXVhc2hlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FjdGlvbnNTcXVhc2hlZCA9IGFjdGlvbnNTcXVhc2hlZDtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19tYWluLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX2JyZWFkY3J1bWItdGl0bGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX2JyZWFkY3J1bWItY29udGFpbmVyXCIgKm5nSWY9XCJfYnJlYWRjcnVtYkNvbXBvbmVudFZpc2libGUgfHwgX2FjdGlvbnNTcXVhc2hlZFwiPlxuICAgICAgICAgICAgPG5hdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2JyZWFkY3J1bWJDb21wb25lbnRWaXNpYmxlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQnJlYWRjcnVtYnNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX19icmVhZGNydW1iLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzdG9wUHJvcGFnYXRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtYnJlYWRjcnVtYlwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9hY3Rpb25zU3F1YXNoZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9jb2xsYXBzZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1mYWNldFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtZHluYW1pYy1wYWdlX190aXRsZS1zdWJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1keW5hbWljLXBhZ2VfX3RpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC1keW5hbWljLXBhZ2VfX3RpdGxlLS13cmFwXT1cInRpdGxlV3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmZGtJZ25vcmVDbGlja09uU2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGl0bGVUZW1wbGF0ZSA/IHRpdGxlUmVmIDogZGVmYXVsdFRpdGxlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmZC1keW5hbWljLXBhZ2UtdGl0bGUtY29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fdG9vbGJhci1jb250YWluZXJcIiAoY2xpY2spPVwic3RvcFByb3BhZ2F0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkeW5hbWljUGFnZUdsb2JhbEFjdGlvbnNSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhX2FjdGlvbnNTcXVhc2hlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkeW5hbWljUGFnZUxheW91dEFjdGlvbnNSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJfY29sbGFwc2VkICYmIChzdWJ0aXRsZSB8fCBfc3VidGl0bGVUZW1wbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fc3VidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtZHluYW1pYy1wYWdlX19zdWJ0aXRsZS0td3JhcF09XCJzdWJ0aXRsZVdyYXBcIlxuICAgICAgICAgICAgICAgICAgICBmZGtJZ25vcmVDbGlja09uU2VsZWN0aW9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiX3N1YnRpdGxlVGVtcGxhdGUgPyBzdWJ0aXRsZVJlZiA6IGRlZmF1bHRTdWJ0aXRsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2XG4gICAgKm5nSWY9XCIhX2NvbGxhcHNlZCAmJiAoc3VidGl0bGUgfHwgX3N1YnRpdGxlVGVtcGxhdGUpXCJcbiAgICBjbGFzcz1cImZkLWR5bmFtaWMtcGFnZV9fc3VidGl0bGVcIlxuICAgIFtjbGFzcy5mZC1keW5hbWljLXBhZ2VfX3N1YnRpdGxlLS13cmFwXT1cInN1YnRpdGxlV3JhcFwiXG4gICAgZmRrSWdub3JlQ2xpY2tPblNlbGVjdGlvblxuPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJfc3VidGl0bGVUZW1wbGF0ZSA/IHN1YnRpdGxlUmVmIDogZGVmYXVsdFN1YnRpdGxlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkeW5hbWljUGFnZUdsb2JhbEFjdGlvbnNSZWY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZmQtZHluYW1pYy1wYWdlLWdsb2JhbC1hY3Rpb25zXCI+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZHluYW1pY1BhZ2VMYXlvdXRBY3Rpb25zUmVmPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZkLWR5bmFtaWMtcGFnZS1sYXlvdXQtYWN0aW9uc1wiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVSZWY+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIl90aXRsZVRlbXBsYXRlIS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogX2NvbGxhcHNlZCB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc3VidGl0bGVSZWY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfc3VidGl0bGVUZW1wbGF0ZSEudGVtcGxhdGVSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9jb2xsYXBzZWQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0U3VidGl0bGU+XG4gICAge3sgc3VidGl0bGUgfX1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGl0bGVSZWY+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJfdGl0bGVUZW1wbGF0ZSEudGVtcGxhdGVSZWZcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IF9jb2xsYXBzZWQgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0VGl0bGU+XG4gICAge3sgdGl0bGUgfX1cbjwvbmctdGVtcGxhdGU+XG4iXX0=