@ng-doc/app 16.3.6 → 16.4.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 (54) hide show
  1. package/components/page/index.d.ts +0 -1
  2. package/components/playground/base-playground.d.ts +3 -2
  3. package/components/playground/playground-demo/playground-demo.component.d.ts +2 -1
  4. package/components/playground/playground.component.d.ts +1 -0
  5. package/constants/themes.d.ts +2 -2
  6. package/esm2022/components/page/index.mjs +1 -2
  7. package/esm2022/components/page/page.component.mjs +14 -2
  8. package/esm2022/components/playground/base-playground.mjs +11 -4
  9. package/esm2022/components/playground/playground-demo/playground-demo.component.mjs +15 -11
  10. package/esm2022/components/playground/playground-properties/playground-properties.component.mjs +5 -5
  11. package/esm2022/components/playground/playground-property/playground-property.component.mjs +4 -3
  12. package/esm2022/components/playground/playground.component.mjs +4 -3
  13. package/esm2022/constants/themes.mjs +3 -3
  14. package/esm2022/processors/playground-processor/playground-processor.directive.mjs +6 -3
  15. package/esm2022/type-controls/boolean-control/boolean-control.component.mjs +4 -3
  16. package/esm2022/type-controls/boolean-control/index.mjs +1 -2
  17. package/esm2022/type-controls/number-control/index.mjs +1 -2
  18. package/esm2022/type-controls/string-control/index.mjs +1 -2
  19. package/esm2022/type-controls/string-control/string-control.component.mjs +8 -5
  20. package/esm2022/type-controls/type-alias-control/index.mjs +1 -2
  21. package/fesm2022/ng-doc-app-components-page.mjs +16 -42
  22. package/fesm2022/ng-doc-app-components-page.mjs.map +1 -1
  23. package/fesm2022/ng-doc-app-components-playground.mjs +33 -20
  24. package/fesm2022/ng-doc-app-components-playground.mjs.map +1 -1
  25. package/fesm2022/ng-doc-app-constants.mjs +2 -2
  26. package/fesm2022/ng-doc-app-constants.mjs.map +1 -1
  27. package/fesm2022/ng-doc-app-processors-playground-processor.mjs +5 -2
  28. package/fesm2022/ng-doc-app-processors-playground-processor.mjs.map +1 -1
  29. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs +5 -21
  30. package/fesm2022/ng-doc-app-type-controls-boolean-control.mjs.map +1 -1
  31. package/fesm2022/ng-doc-app-type-controls-number-control.mjs +3 -19
  32. package/fesm2022/ng-doc-app-type-controls-number-control.mjs.map +1 -1
  33. package/fesm2022/ng-doc-app-type-controls-string-control.mjs +10 -23
  34. package/fesm2022/ng-doc-app-type-controls-string-control.mjs.map +1 -1
  35. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs +4 -20
  36. package/fesm2022/ng-doc-app-type-controls-type-alias-control.mjs.map +1 -1
  37. package/package.json +3 -3
  38. package/styles/global.css +3 -0
  39. package/styles/main.css +3 -0
  40. package/type-controls/boolean-control/index.d.ts +0 -1
  41. package/type-controls/number-control/index.d.ts +0 -1
  42. package/type-controls/string-control/index.d.ts +0 -1
  43. package/type-controls/string-control/string-control.component.d.ts +1 -0
  44. package/type-controls/type-alias-control/index.d.ts +0 -1
  45. package/components/page/page.module.d.ts +0 -10
  46. package/esm2022/components/page/page.module.mjs +0 -44
  47. package/esm2022/type-controls/boolean-control/boolean-control.module.mjs +0 -21
  48. package/esm2022/type-controls/number-control/number-control.module.mjs +0 -23
  49. package/esm2022/type-controls/string-control/string-control.module.mjs +0 -23
  50. package/esm2022/type-controls/type-alias-control/type-alias-control.module.mjs +0 -23
  51. package/type-controls/boolean-control/boolean-control.module.d.ts +0 -8
  52. package/type-controls/number-control/number-control.module.d.ts +0 -10
  53. package/type-controls/string-control/string-control.module.d.ts +0 -10
  54. package/type-controls/type-alias-control/type-alias-control.module.d.ts +0 -10
@@ -1,2 +1 @@
1
1
  export * from './page.component';
2
- export * from './page.module';
@@ -8,8 +8,9 @@ export declare abstract class NgDocBasePlayground implements Pick<NgDocPlaygroun
8
8
  static readonly selector: string;
9
9
  abstract readonly playground?: Type<unknown>;
10
10
  abstract readonly viewContainerRef?: ViewContainerRef;
11
- data: Record<string, unknown>;
11
+ properties: Record<string, any>;
12
+ data: Record<string, any>;
12
13
  content: any;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocBasePlayground, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocBasePlayground, never, never, {}, {}, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgDocBasePlayground, never, never, { "properties": { "alias": "properties"; "required": false; }; "data": { "alias": "data"; "required": false; }; "content": { "alias": "content"; "required": false; }; }, {}, never, never, false, never>;
15
16
  }
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  export declare class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundProperties = NgDocPlaygroundProperties> implements OnChanges, OnDestroy {
9
9
  private readonly injector;
10
10
  id: string;
11
+ pipeName: string;
11
12
  selector: string;
12
13
  configuration?: NgDocPlaygroundConfig;
13
14
  properties?: T;
@@ -27,5 +28,5 @@ export declare class NgDocPlaygroundDemoComponent<T extends NgDocPlaygroundPrope
27
28
  private getActiveInputs;
28
29
  ngOnDestroy(): void;
29
30
  static ɵfac: i0.ɵɵFactoryDeclaration<NgDocPlaygroundDemoComponent<any>, never>;
30
- static ɵcmp: i0.ɵɵComponentDeclaration<NgDocPlaygroundDemoComponent<any>, "ng-doc-playground-demo", never, { "id": { "alias": "id"; "required": false; }; "selector": { "alias": "selector"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "recreateDemo": { "alias": "recreateDemo"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, true, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgDocPlaygroundDemoComponent<any>, "ng-doc-playground-demo", never, { "id": { "alias": "id"; "required": false; }; "pipeName": { "alias": "pipeName"; "required": false; }; "selector": { "alias": "selector"; "required": false; }; "configuration": { "alias": "configuration"; "required": false; }; "properties": { "alias": "properties"; "required": false; }; "recreateDemo": { "alias": "recreateDemo"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, true, never>;
31
32
  }
@@ -8,6 +8,7 @@ export declare class NgDocPlaygroundComponent<T extends NgDocPlaygroundPropertie
8
8
  private readonly rootPage;
9
9
  private readonly formBuilder;
10
10
  id: string;
11
+ pipeName: string;
11
12
  selectors: string[];
12
13
  properties?: T;
13
14
  formGroup: FormGroup<NgDocPlaygroundForm>;
@@ -1,6 +1,6 @@
1
1
  import { NgDocTheme } from '@ng-doc/app/interfaces';
2
2
  /**
3
- * Dark theme. You can set it manually by calling `NgDocThemeService.setTheme` method.
3
+ * Dark theme. You can set it manually by calling `NgDocThemeService.set` method.
4
4
  *
5
5
  * ```typescript
6
6
  * import {Component} from '@angular/core';
@@ -32,7 +32,7 @@ import { NgDocTheme } from '@ng-doc/app/interfaces';
32
32
  */
33
33
  export declare const NG_DOC_NIGHT_THEME: NgDocTheme;
34
34
  /**
35
- * Dark purple theme. You can set it manually by calling `NgDocThemeService.setTheme` method.
35
+ * Dark purple theme. You can set it manually by calling `NgDocThemeService.set` method.
36
36
  *
37
37
  * ```typescript
38
38
  * import {Component} from '@angular/core';
@@ -1,3 +1,2 @@
1
1
  export * from './page.component';
2
- export * from './page.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdlLm1vZHVsZSc7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFnZS5jb21wb25lbnQnO1xuIl19
@@ -4,9 +4,11 @@ import { Router, RouterLink } from '@angular/router';
4
4
  import { NgDocRootPage } from '@ng-doc/app/classes/root-page';
5
5
  import { NgDocBreadcrumbComponent } from '@ng-doc/app/components/breadcrumb';
6
6
  import { NgDocTocComponent } from '@ng-doc/app/components/toc';
7
+ import { provideTypeControl } from '@ng-doc/app/helpers';
7
8
  import { NgDocSanitizeHtmlPipe } from '@ng-doc/app/pipes/sanitize-html';
8
9
  import { NgDocBlockquoteProcessorDirective, NgDocCodeProcessorDirective, NgDocDemoPaneProcessorDirective, NgDocDemoProcessorDirective, NgDocIconProcessorDirective, NgDocLinkProcessorDirective, NgDocPlaygroundProcessorDirective, NgDocTooltipProcessorDirective, } from '@ng-doc/app/processors';
9
10
  import { NG_DOC_CONTEXT } from '@ng-doc/app/tokens';
11
+ import { NgDocBooleanControlComponent, NgDocNumberControlComponent, NgDocStringControlComponent, NgDocTypeAliasControlComponent } from '@ng-doc/app/type-controls';
10
12
  import { NgDocButtonIconComponent, NgDocIconComponent, NgDocMediaQueryDirective, NgDocTextComponent, NgDocTextLeftDirective, NgDocTextRightDirective, NgDocTooltipDirective, } from '@ng-doc/ui-kit';
11
13
  import * as i0 from "@angular/core";
12
14
  import * as i1 from "@angular/router";
@@ -30,7 +32,12 @@ class NgDocPageComponent {
30
32
  return urlTree.toString();
31
33
  }
32
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageComponent, deps: [{ token: NG_DOC_CONTEXT }, { token: i1.Router }, { token: i2.NgDocRootPage }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPageComponent, isStandalone: true, selector: "ng-doc-page", ngImport: i0, template: "<article>\n\t<ng-doc-breadcrumb *ngIf=\"rootPage.pageType === 'guide'\"></ng-doc-breadcrumb>\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocBlockquoteProcessor\n\t\tngDocLinkProcessor\n\t\tngDocCodeProcessor\n\t\tngDocIconProcessor\n\t\tngDocTooltipProcessor\n\t\tngDocDemoProcessor\n\t\tngDocDemoPaneProcessor\n\t\tngDocPlaygroundProcessor\n\t\t#pageContainer\n\t></div>\n\n\t<div class=\"ng-doc-navigation-controls\" *ngIf=\"rootPage.pageType === 'guide'\">\n\t\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\t\tPrevious\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t\t</a>\n\t\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\tNext\n\t\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t\t</a>\n\t</div>\n</article>\n\n<ng-template\n\t[ngDocMediaQuery]=\"[mediaQuery.breakpoints.Large, mediaQuery.breakpoints.XLarge]\"\n\t#mediaQuery=\"ngDocMediaQuery\"\n>\n\t<ng-doc-toc [pageContainer]=\"pageContainer\"></ng-doc-toc>\n</ng-template>\n", styles: [":host{display:flex}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}:host ng-doc-toc{--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 3);flex-shrink:0}@media screen and (max-width: 1200px){:host ng-doc-toc{display:none}}:host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-10);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-font-weight: 600;--ng-doc-text: var(--ng-doc-link-color)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocBreadcrumbComponent, selector: "ng-doc-breadcrumb" }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocBlockquoteProcessorDirective, selector: "[ngDocBlockquoteProcessor]" }, { kind: "directive", type: NgDocIconProcessorDirective, selector: "[ngDocIconProcessor]" }, { kind: "directive", type: NgDocLinkProcessorDirective, selector: "[ngDocLinkProcessor]" }, { kind: "directive", type: NgDocCodeProcessorDirective, selector: "[ngDocCodeProcessor]" }, { kind: "directive", type: NgDocTooltipProcessorDirective, selector: "[ngDocTooltipProcessor]" }, { kind: "directive", type: NgDocDemoProcessorDirective, selector: "[ngDocDemoProcessor]" }, { kind: "directive", type: NgDocDemoPaneProcessorDirective, selector: "[ngDocDemoPaneProcessor]" }, { kind: "directive", type: NgDocPlaygroundProcessorDirective, selector: "[ngDocPlaygroundProcessor]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: NgDocTextLeftDirective, selector: "[ngDocTextLeft]" }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgDocMediaQueryDirective, selector: "[ngDocMediaQuery]", inputs: ["ngDocMediaQuery"], exportAs: ["ngDocMediaQuery"] }, { kind: "component", type: NgDocTocComponent, selector: "ng-doc-toc", inputs: ["pageContainer"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPageComponent, isStandalone: true, selector: "ng-doc-page", providers: [
36
+ provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
37
+ provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
38
+ provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
39
+ provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
40
+ ], ngImport: i0, template: "<article>\n\t<ng-doc-breadcrumb *ngIf=\"rootPage.pageType === 'guide'\"></ng-doc-breadcrumb>\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocBlockquoteProcessor\n\t\tngDocLinkProcessor\n\t\tngDocCodeProcessor\n\t\tngDocIconProcessor\n\t\tngDocTooltipProcessor\n\t\tngDocDemoProcessor\n\t\tngDocDemoPaneProcessor\n\t\tngDocPlaygroundProcessor\n\t\t#pageContainer\n\t></div>\n\n\t<div class=\"ng-doc-navigation-controls\" *ngIf=\"rootPage.pageType === 'guide'\">\n\t\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\t\tPrevious\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t\t</a>\n\t\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\tNext\n\t\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t\t</a>\n\t</div>\n</article>\n\n<ng-template\n\t[ngDocMediaQuery]=\"[mediaQuery.breakpoints.Large, mediaQuery.breakpoints.XLarge]\"\n\t#mediaQuery=\"ngDocMediaQuery\"\n>\n\t<ng-doc-toc [pageContainer]=\"pageContainer\"></ng-doc-toc>\n</ng-template>\n", styles: [":host{display:flex}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}:host ng-doc-toc{--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 3);flex-shrink:0}@media screen and (max-width: 1200px){:host ng-doc-toc{display:none}}:host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-10);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-font-weight: 600;--ng-doc-text: var(--ng-doc-link-color)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgDocBreadcrumbComponent, selector: "ng-doc-breadcrumb" }, { kind: "component", type: NgDocButtonIconComponent, selector: "button[ng-doc-button-icon], a[ng-doc-button-icon]", inputs: ["size", "rounded"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocBlockquoteProcessorDirective, selector: "[ngDocBlockquoteProcessor]" }, { kind: "directive", type: NgDocIconProcessorDirective, selector: "[ngDocIconProcessor]" }, { kind: "directive", type: NgDocLinkProcessorDirective, selector: "[ngDocLinkProcessor]" }, { kind: "directive", type: NgDocCodeProcessorDirective, selector: "[ngDocCodeProcessor]" }, { kind: "directive", type: NgDocTooltipProcessorDirective, selector: "[ngDocTooltipProcessor]" }, { kind: "directive", type: NgDocDemoProcessorDirective, selector: "[ngDocDemoProcessor]" }, { kind: "directive", type: NgDocDemoPaneProcessorDirective, selector: "[ngDocDemoPaneProcessor]" }, { kind: "directive", type: NgDocPlaygroundProcessorDirective, selector: "[ngDocPlaygroundProcessor]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "directive", type: NgDocTextLeftDirective, selector: "[ngDocTextLeft]" }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgDocMediaQueryDirective, selector: "[ngDocMediaQuery]", inputs: ["ngDocMediaQuery"], exportAs: ["ngDocMediaQuery"] }, { kind: "component", type: NgDocTocComponent, selector: "ng-doc-toc", inputs: ["pageContainer"] }, { kind: "pipe", type: NgDocSanitizeHtmlPipe, name: "ngDocSanitizeHtml" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
41
  }
35
42
  export { NgDocPageComponent };
36
43
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPageComponent, decorators: [{
@@ -56,9 +63,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
56
63
  NgDocMediaQueryDirective,
57
64
  NgDocTocComponent,
58
65
  NgDocSanitizeHtmlPipe,
66
+ ], providers: [
67
+ provideTypeControl('NgDocTypeAlias', NgDocTypeAliasControlComponent, { order: 10 }),
68
+ provideTypeControl('string', NgDocStringControlComponent, { order: 20 }),
69
+ provideTypeControl('number', NgDocNumberControlComponent, { order: 30 }),
70
+ provideTypeControl('boolean', NgDocBooleanControlComponent, { hideLabel: true, order: 40 }),
59
71
  ], template: "<article>\n\t<ng-doc-breadcrumb *ngIf=\"rootPage.pageType === 'guide'\"></ng-doc-breadcrumb>\n\t<div class=\"ng-doc-page-controls\">\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.editSourceFileUrl\"\n\t\t\t[href]=\"rootPage.editSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"Suggest Edits\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"edit-2\"></ng-doc-icon>\n\t\t</a>\n\t\t<a\n\t\t\tng-doc-button-icon\n\t\t\t*ngIf=\"rootPage.viewSourceFileUrl\"\n\t\t\t[href]=\"rootPage.viewSourceFileUrl\"\n\t\t\ttarget=\"_blank\"\n\t\t\tngDocTooltip=\"View Source\"\n\t\t>\n\t\t\t<ng-doc-icon icon=\"code\"></ng-doc-icon>\n\t\t</a>\n\t</div>\n\n\t<div\n\t\tclass=\"ng-doc-page-wrapper\"\n\t\t[innerHTML]=\"rootPage.pageContent | ngDocSanitizeHtml\"\n\t\tngDocBlockquoteProcessor\n\t\tngDocLinkProcessor\n\t\tngDocCodeProcessor\n\t\tngDocIconProcessor\n\t\tngDocTooltipProcessor\n\t\tngDocDemoProcessor\n\t\tngDocDemoPaneProcessor\n\t\tngDocPlaygroundProcessor\n\t\t#pageContainer\n\t></div>\n\n\t<div class=\"ng-doc-navigation-controls\" *ngIf=\"rootPage.pageType === 'guide'\">\n\t\t<a class=\"ng-doc-prev-page\" *ngIf=\"prevPage\" [routerLink]=\"prevPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\t<ng-doc-icon icon=\"arrow-left\" ngDocTextLeft></ng-doc-icon>\n\t\t\t\tPrevious\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ prevPage.title }}</div>\n\t\t</a>\n\t\t<a class=\"ng-doc-next-page\" *ngIf=\"nextPage\" [routerLink]=\"nextPage.route\">\n\t\t\t<div class=\"ng-doc-navigation-page-label\" ng-doc-text size=\"small\">\n\t\t\t\tNext\n\t\t\t\t<ng-doc-icon icon=\"arrow-right\" ngDocTextRight></ng-doc-icon>\n\t\t\t</div>\n\t\t\t<div class=\"ng-doc-navigation-page-title\" ng-doc-text>{{ nextPage.title }}</div>\n\t\t</a>\n\t</div>\n</article>\n\n<ng-template\n\t[ngDocMediaQuery]=\"[mediaQuery.breakpoints.Large, mediaQuery.breakpoints.XLarge]\"\n\t#mediaQuery=\"ngDocMediaQuery\"\n>\n\t<ng-doc-toc [pageContainer]=\"pageContainer\"></ng-doc-toc>\n</ng-template>\n", styles: [":host{display:flex}:host article{position:relative;width:var(--ng-doc-article-width, 100%);margin-left:auto;margin-right:auto;overflow:hidden}:host article .ng-doc-page-controls{position:absolute;display:flex;grid-gap:var(--ng-doc-base-gutter);top:0;right:0}:host ng-doc-toc{--ng-doc-toc-margin: calc(var(--ng-doc-base-gutter) * 3);flex-shrink:0}@media screen and (max-width: 1200px){:host ng-doc-toc{display:none}}:host .ng-doc-navigation-controls{display:flex;margin-top:calc(var(--ng-doc-base-gutter) * 12);border-top:1px solid var(--ng-doc-base-2);padding-top:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-navigation-controls a{display:flex;flex-direction:column;text-decoration:unset;transition:var(--ng-doc-transition);--ng-doc-button-hover-background: var(--ng-doc-base-1);--ng-doc-button-active-background: var(--ng-doc-base-2);--ng-doc-text: var(--ng-doc-base-10);--ng-doc-icon-color: var(--ng-doc-text)}:host .ng-doc-navigation-controls a:hover{opacity:.6}:host .ng-doc-navigation-controls a.ng-doc-next-page{margin-left:auto}:host .ng-doc-navigation-controls a.ng-doc-prev-page{align-items:flex-start}:host .ng-doc-navigation-controls a.ng-doc-next-page{align-items:flex-end}:host .ng-doc-navigation-controls a .ng-doc-navigation-page-title{--ng-doc-font-weight: 600;--ng-doc-text: var(--ng-doc-link-color)}\n"] }]
60
72
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
61
73
  type: Inject,
62
74
  args: [NG_DOC_CONTEXT]
63
75
  }] }, { type: i1.Router }, { type: i2.NgDocRootPage }]; } });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNOLGlDQUFpQyxFQUNqQywyQkFBMkIsRUFDM0IsK0JBQStCLEVBQy9CLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLGlDQUFpQyxFQUNqQyw4QkFBOEIsR0FDOUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUNOLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLE1BNkJhLGtCQUFrQjtJQUk5QixZQUVrQixPQUFxQixFQUNyQixNQUFjLEVBQ3RCLFFBQXVCO1FBRmYsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWU7UUFFaEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBcUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUF3QjtRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQztJQUVELElBQVksR0FBRztRQUNkLE1BQU0sT0FBTyxHQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0QsT0FBTyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFFeEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0EzQlcsa0JBQWtCLGtCQUtyQixjQUFjO2tHQUxYLGtCQUFrQix1RUMxRC9CLGloRUE2REEsczJDRHpCRSxJQUFJLDZGQUNKLHdCQUF3Qiw4REFDeEIsd0JBQXdCLDJIQUN4QixxQkFBcUIsMFVBQ3JCLGtCQUFrQixrRkFDbEIsaUNBQWlDLHVFQUNqQywyQkFBMkIsaUVBQzNCLDJCQUEyQixpRUFDM0IsMkJBQTJCLGlFQUMzQiw4QkFBOEIsb0VBQzlCLDJCQUEyQixpRUFDM0IsK0JBQStCLHFFQUMvQixpQ0FBaUMsdUVBQ2pDLFVBQVUsNE5BQ1Ysa0JBQWtCLGlIQUNsQixzQkFBc0IsNERBQ3RCLHVCQUF1Qiw2REFDdkIsd0JBQXdCLDBIQUN4QixpQkFBaUIsNkVBQ2pCLHFCQUFxQjs7U0FHVixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkE3QjlCLFNBQVM7K0JBQ0MsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUixJQUFJO3dCQUNKLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLGtCQUFrQjt3QkFDbEIsaUNBQWlDO3dCQUNqQywyQkFBMkI7d0JBQzNCLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLDJCQUEyQjt3QkFDM0IsK0JBQStCO3dCQUMvQixpQ0FBaUM7d0JBQ2pDLFVBQVU7d0JBQ1Ysa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixpQkFBaUI7d0JBQ2pCLHFCQUFxQjtxQkFDckI7OzBCQU9DLE1BQU07MkJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyLCBSb3V0ZXJMaW5rLCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtOZ0RvY1Jvb3RQYWdlfSBmcm9tICdAbmctZG9jL2FwcC9jbGFzc2VzL3Jvb3QtcGFnZSc7XG5pbXBvcnQge05nRG9jQnJlYWRjcnVtYkNvbXBvbmVudH0gZnJvbSAnQG5nLWRvYy9hcHAvY29tcG9uZW50cy9icmVhZGNydW1iJztcbmltcG9ydCB7TmdEb2NUb2NDb21wb25lbnR9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvdG9jJztcbmltcG9ydCB7TmdEb2NDb250ZXh0LCBOZ0RvY05hdmlnYXRpb259IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOZ0RvY1Nhbml0aXplSHRtbFBpcGV9IGZyb20gJ0BuZy1kb2MvYXBwL3BpcGVzL3Nhbml0aXplLWh0bWwnO1xuaW1wb3J0IHtcblx0TmdEb2NCbG9ja3F1b3RlUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHROZ0RvY0NvZGVQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdE5nRG9jRGVtb1BhbmVQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdE5nRG9jRGVtb1Byb2Nlc3NvckRpcmVjdGl2ZSxcblx0TmdEb2NJY29uUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHROZ0RvY0xpbmtQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdE5nRG9jUGxheWdyb3VuZFByb2Nlc3NvckRpcmVjdGl2ZSxcblx0TmdEb2NUb29sdGlwUHJvY2Vzc29yRGlyZWN0aXZlLFxufSBmcm9tICdAbmctZG9jL2FwcC9wcm9jZXNzb3JzJztcbmltcG9ydCB7TkdfRE9DX0NPTlRFWFR9IGZyb20gJ0BuZy1kb2MvYXBwL3Rva2Vucyc7XG5pbXBvcnQge1xuXHROZ0RvY0J1dHRvbkljb25Db21wb25lbnQsXG5cdE5nRG9jSWNvbkNvbXBvbmVudCxcblx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHROZ0RvY1RleHRDb21wb25lbnQsXG5cdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG59IGZyb20gJ0BuZy1kb2MvdWkta2l0JztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBhZ2UnLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGFnZS5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3BhZ2UuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHROZ0lmLFxuXHRcdE5nRG9jQnJlYWRjcnVtYkNvbXBvbmVudCxcblx0XHROZ0RvY0J1dHRvbkljb25Db21wb25lbnQsXG5cdFx0TmdEb2NUb29sdGlwRGlyZWN0aXZlLFxuXHRcdE5nRG9jSWNvbkNvbXBvbmVudCxcblx0XHROZ0RvY0Jsb2NrcXVvdGVQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdE5nRG9jTGlua1Byb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0RvY0NvZGVQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdEb2NUb29sdGlwUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdE5nRG9jRGVtb1Byb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0RvY0RlbW9QYW5lUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdE5nRG9jUGxheWdyb3VuZFByb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHRSb3V0ZXJMaW5rLFxuXHRcdE5nRG9jVGV4dENvbXBvbmVudCxcblx0XHROZ0RvY1RleHRMZWZ0RGlyZWN0aXZlLFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nRG9jTWVkaWFRdWVyeURpcmVjdGl2ZSxcblx0XHROZ0RvY1RvY0NvbXBvbmVudCxcblx0XHROZ0RvY1Nhbml0aXplSHRtbFBpcGUsXG5cdF0sXG59KVxuZXhwb3J0IGNsYXNzIE5nRG9jUGFnZUNvbXBvbmVudCB7XG5cdHJlYWRvbmx5IHByZXZQYWdlPzogTmdEb2NOYXZpZ2F0aW9uO1xuXHRyZWFkb25seSBuZXh0UGFnZT86IE5nRG9jTmF2aWdhdGlvbjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KE5HX0RPQ19DT05URVhUKVxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY29udGV4dDogTmdEb2NDb250ZXh0LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG5cdFx0cmVhZG9ubHkgcm9vdFBhZ2U6IE5nRG9jUm9vdFBhZ2UsXG5cdCkge1xuXHRcdGNvbnN0IGZsYXRQYWdlcyA9IHRoaXMuZmxhdFBhZ2VzKHRoaXMuY29udGV4dC5uYXZpZ2F0aW9uKTtcblxuXHRcdHRoaXMucHJldlBhZ2UgPSBmbGF0UGFnZXNbZmxhdFBhZ2VzLmZpbmRJbmRleCgoaXRlbTogTmdEb2NOYXZpZ2F0aW9uKSA9PiB0aGlzLnVybCA9PT0gaXRlbS5yb3V0ZSkgLSAxXTtcblx0XHR0aGlzLm5leHRQYWdlID0gZmxhdFBhZ2VzW2ZsYXRQYWdlcy5maW5kSW5kZXgoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gdGhpcy51cmwgPT09IGl0ZW0ucm91dGUpICsgMV07XG5cdH1cblxuXHRwcml2YXRlIGZsYXRQYWdlcyhpdGVtczogTmdEb2NOYXZpZ2F0aW9uW10pOiBOZ0RvY05hdmlnYXRpb25bXSB7XG5cdFx0cmV0dXJuIGl0ZW1zLm1hcCgoaXRlbTogTmdEb2NOYXZpZ2F0aW9uKSA9PiBbaXRlbS5jaGlsZHJlbj8ubGVuZ3RoID8gdGhpcy5mbGF0UGFnZXMoaXRlbS5jaGlsZHJlbikgOiBpdGVtXSkuZmxhdCgyKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0IHVybCgpOiBzdHJpbmcge1xuXHRcdGNvbnN0IHVybFRyZWU6IFVybFRyZWUgPSB0aGlzLnJvdXRlci5wYXJzZVVybCh0aGlzLnJvdXRlci51cmwpO1xuXG5cdFx0dXJsVHJlZS5xdWVyeVBhcmFtcyA9IHt9O1xuXHRcdHVybFRyZWUuZnJhZ21lbnQgPSBudWxsO1xuXG5cdFx0cmV0dXJuIHVybFRyZWUudG9TdHJpbmcoKTtcblx0fVxufVxuIiwiPGFydGljbGU+XG5cdDxuZy1kb2MtYnJlYWRjcnVtYiAqbmdJZj1cInJvb3RQYWdlLnBhZ2VUeXBlID09PSAnZ3VpZGUnXCI+PC9uZy1kb2MtYnJlYWRjcnVtYj5cblx0PGRpdiBjbGFzcz1cIm5nLWRvYy1wYWdlLWNvbnRyb2xzXCI+XG5cdFx0PGFcblx0XHRcdG5nLWRvYy1idXR0b24taWNvblxuXHRcdFx0Km5nSWY9XCJyb290UGFnZS5lZGl0U291cmNlRmlsZVVybFwiXG5cdFx0XHRbaHJlZl09XCJyb290UGFnZS5lZGl0U291cmNlRmlsZVVybFwiXG5cdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0bmdEb2NUb29sdGlwPVwiU3VnZ2VzdCBFZGl0c1wiXG5cdFx0PlxuXHRcdFx0PG5nLWRvYy1pY29uIGljb249XCJlZGl0LTJcIj48L25nLWRvYy1pY29uPlxuXHRcdDwvYT5cblx0XHQ8YVxuXHRcdFx0bmctZG9jLWJ1dHRvbi1pY29uXG5cdFx0XHQqbmdJZj1cInJvb3RQYWdlLnZpZXdTb3VyY2VGaWxlVXJsXCJcblx0XHRcdFtocmVmXT1cInJvb3RQYWdlLnZpZXdTb3VyY2VGaWxlVXJsXCJcblx0XHRcdHRhcmdldD1cIl9ibGFua1wiXG5cdFx0XHRuZ0RvY1Rvb2x0aXA9XCJWaWV3IFNvdXJjZVwiXG5cdFx0PlxuXHRcdFx0PG5nLWRvYy1pY29uIGljb249XCJjb2RlXCI+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2E+XG5cdDwvZGl2PlxuXG5cdDxkaXZcblx0XHRjbGFzcz1cIm5nLWRvYy1wYWdlLXdyYXBwZXJcIlxuXHRcdFtpbm5lckhUTUxdPVwicm9vdFBhZ2UucGFnZUNvbnRlbnQgfCBuZ0RvY1Nhbml0aXplSHRtbFwiXG5cdFx0bmdEb2NCbG9ja3F1b3RlUHJvY2Vzc29yXG5cdFx0bmdEb2NMaW5rUHJvY2Vzc29yXG5cdFx0bmdEb2NDb2RlUHJvY2Vzc29yXG5cdFx0bmdEb2NJY29uUHJvY2Vzc29yXG5cdFx0bmdEb2NUb29sdGlwUHJvY2Vzc29yXG5cdFx0bmdEb2NEZW1vUHJvY2Vzc29yXG5cdFx0bmdEb2NEZW1vUGFuZVByb2Nlc3NvclxuXHRcdG5nRG9jUGxheWdyb3VuZFByb2Nlc3NvclxuXHRcdCNwYWdlQ29udGFpbmVyXG5cdD48L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tY29udHJvbHNcIiAqbmdJZj1cInJvb3RQYWdlLnBhZ2VUeXBlID09PSAnZ3VpZGUnXCI+XG5cdFx0PGEgY2xhc3M9XCJuZy1kb2MtcHJldi1wYWdlXCIgKm5nSWY9XCJwcmV2UGFnZVwiIFtyb3V0ZXJMaW5rXT1cInByZXZQYWdlLnJvdXRlXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS1sYWJlbFwiIG5nLWRvYy10ZXh0IHNpemU9XCJzbWFsbFwiPlxuXHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImFycm93LWxlZnRcIiBuZ0RvY1RleHRMZWZ0PjwvbmctZG9jLWljb24+XG5cdFx0XHRcdFByZXZpb3VzXG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtbmF2aWdhdGlvbi1wYWdlLXRpdGxlXCIgbmctZG9jLXRleHQ+e3sgcHJldlBhZ2UudGl0bGUgfX08L2Rpdj5cblx0XHQ8L2E+XG5cdFx0PGEgY2xhc3M9XCJuZy1kb2MtbmV4dC1wYWdlXCIgKm5nSWY9XCJuZXh0UGFnZVwiIFtyb3V0ZXJMaW5rXT1cIm5leHRQYWdlLnJvdXRlXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS1sYWJlbFwiIG5nLWRvYy10ZXh0IHNpemU9XCJzbWFsbFwiPlxuXHRcdFx0XHROZXh0XG5cdFx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiYXJyb3ctcmlnaHRcIiBuZ0RvY1RleHRSaWdodD48L25nLWRvYy1pY29uPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS10aXRsZVwiIG5nLWRvYy10ZXh0Pnt7IG5leHRQYWdlLnRpdGxlIH19PC9kaXY+XG5cdFx0PC9hPlxuXHQ8L2Rpdj5cbjwvYXJ0aWNsZT5cblxuPG5nLXRlbXBsYXRlXG5cdFtuZ0RvY01lZGlhUXVlcnldPVwiW21lZGlhUXVlcnkuYnJlYWtwb2ludHMuTGFyZ2UsIG1lZGlhUXVlcnkuYnJlYWtwb2ludHMuWExhcmdlXVwiXG5cdCNtZWRpYVF1ZXJ5PVwibmdEb2NNZWRpYVF1ZXJ5XCJcbj5cblx0PG5nLWRvYy10b2MgW3BhZ2VDb250YWluZXJdPVwicGFnZUNvbnRhaW5lclwiPjwvbmctZG9jLXRvYz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcC9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckMsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNOLGlDQUFpQyxFQUNqQywyQkFBMkIsRUFDM0IsK0JBQStCLEVBQy9CLDJCQUEyQixFQUMzQiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLGlDQUFpQyxFQUNqQyw4QkFBOEIsR0FDOUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUNOLDRCQUE0QixFQUM1QiwyQkFBMkIsRUFDM0IsMkJBQTJCLEVBQzNCLDhCQUE4QixFQUM5QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFDTix3QkFBd0IsRUFDeEIsa0JBQWtC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Q0osd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixpQ0FBaUM7d0JBQ2pDLDJCQUEyQjt3QkFDM0IsMkJBQTJCO3dCQUMzQiwyQkFBMkI7d0JBQzNCLDhCQUE4Qjt3QkFDOUIsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLGlDQUFpQzt3QkFDakMsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLGlCQUFpQjt3QkFDakIscUJBQXFCO3FCQUNyQixhQUNVO3dCQUNWLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLDhCQUE4QixFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBQyxDQUFDO3dCQUNqRixrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7d0JBQ3RFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQzt3QkFDdEUsa0JBQWtCLENBQUMsU0FBUyxFQUFFLDRCQUE0QixFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUM7cUJBQ3pGOzswQkFPQyxNQUFNOzJCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlciwgUm91dGVyTGluaywgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TmdEb2NSb290UGFnZX0gZnJvbSAnQG5nLWRvYy9hcHAvY2xhc3Nlcy9yb290LXBhZ2UnO1xuaW1wb3J0IHtOZ0RvY0JyZWFkY3J1bWJDb21wb25lbnR9IGZyb20gJ0BuZy1kb2MvYXBwL2NvbXBvbmVudHMvYnJlYWRjcnVtYic7XG5pbXBvcnQge05nRG9jVG9jQ29tcG9uZW50fSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL3RvYyc7XG5pbXBvcnQge3Byb3ZpZGVUeXBlQ29udHJvbH0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jQ29udGV4dCwgTmdEb2NOYXZpZ2F0aW9ufSBmcm9tICdAbmctZG9jL2FwcC9pbnRlcmZhY2VzJztcbmltcG9ydCB7TmdEb2NTYW5pdGl6ZUh0bWxQaXBlfSBmcm9tICdAbmctZG9jL2FwcC9waXBlcy9zYW5pdGl6ZS1odG1sJztcbmltcG9ydCB7XG5cdE5nRG9jQmxvY2txdW90ZVByb2Nlc3NvckRpcmVjdGl2ZSxcblx0TmdEb2NDb2RlUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHROZ0RvY0RlbW9QYW5lUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHROZ0RvY0RlbW9Qcm9jZXNzb3JEaXJlY3RpdmUsXG5cdE5nRG9jSWNvblByb2Nlc3NvckRpcmVjdGl2ZSxcblx0TmdEb2NMaW5rUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHROZ0RvY1BsYXlncm91bmRQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcFByb2Nlc3NvckRpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy9hcHAvcHJvY2Vzc29ycyc7XG5pbXBvcnQge05HX0RPQ19DT05URVhUfSBmcm9tICdAbmctZG9jL2FwcC90b2tlbnMnO1xuaW1wb3J0IHtcblx0TmdEb2NCb29sZWFuQ29udHJvbENvbXBvbmVudCxcblx0TmdEb2NOdW1iZXJDb250cm9sQ29tcG9uZW50LFxuXHROZ0RvY1N0cmluZ0NvbnRyb2xDb21wb25lbnQsXG5cdE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudFxufSBmcm9tICdAbmctZG9jL2FwcC90eXBlLWNvbnRyb2xzJztcbmltcG9ydCB7XG5cdE5nRG9jQnV0dG9uSWNvbkNvbXBvbmVudCxcblx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHROZ0RvY01lZGlhUXVlcnlEaXJlY3RpdmUsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0TGVmdERpcmVjdGl2ZSxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZy1kb2MtcGFnZScsXG5cdHRlbXBsYXRlVXJsOiAnLi9wYWdlLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGFnZS5jb21wb25lbnQuc2NzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0aW1wb3J0czogW1xuXHRcdE5nSWYsXG5cdFx0TmdEb2NCcmVhZGNydW1iQ29tcG9uZW50LFxuXHRcdE5nRG9jQnV0dG9uSWNvbkNvbXBvbmVudCxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jQmxvY2txdW90ZVByb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0RvY0ljb25Qcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdEb2NMaW5rUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdE5nRG9jQ29kZVByb2Nlc3NvckRpcmVjdGl2ZSxcblx0XHROZ0RvY1Rvb2x0aXBQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdEb2NEZW1vUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdE5nRG9jRGVtb1BhbmVQcm9jZXNzb3JEaXJlY3RpdmUsXG5cdFx0TmdEb2NQbGF5Z3JvdW5kUHJvY2Vzc29yRGlyZWN0aXZlLFxuXHRcdFJvdXRlckxpbmssXG5cdFx0TmdEb2NUZXh0Q29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dExlZnREaXJlY3RpdmUsXG5cdFx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdFx0TmdEb2NNZWRpYVF1ZXJ5RGlyZWN0aXZlLFxuXHRcdE5nRG9jVG9jQ29tcG9uZW50LFxuXHRcdE5nRG9jU2FuaXRpemVIdG1sUGlwZSxcblx0XSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdOZ0RvY1R5cGVBbGlhcycsIE5nRG9jVHlwZUFsaWFzQ29udHJvbENvbXBvbmVudCwge29yZGVyOiAxMH0pLFxuXHRcdHByb3ZpZGVUeXBlQ29udHJvbCgnc3RyaW5nJywgTmdEb2NTdHJpbmdDb250cm9sQ29tcG9uZW50LCB7b3JkZXI6IDIwfSksXG5cdFx0cHJvdmlkZVR5cGVDb250cm9sKCdudW1iZXInLCBOZ0RvY051bWJlckNvbnRyb2xDb21wb25lbnQsIHtvcmRlcjogMzB9KSxcblx0XHRwcm92aWRlVHlwZUNvbnRyb2woJ2Jvb2xlYW4nLCBOZ0RvY0Jvb2xlYW5Db250cm9sQ29tcG9uZW50LCB7aGlkZUxhYmVsOiB0cnVlLCBvcmRlcjogNDB9KSxcblx0XVxufSlcbmV4cG9ydCBjbGFzcyBOZ0RvY1BhZ2VDb21wb25lbnQge1xuXHRyZWFkb25seSBwcmV2UGFnZT86IE5nRG9jTmF2aWdhdGlvbjtcblx0cmVhZG9ubHkgbmV4dFBhZ2U/OiBOZ0RvY05hdmlnYXRpb247XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0QEluamVjdChOR19ET0NfQ09OVEVYVClcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ6IE5nRG9jQ29udGV4dCxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuXHRcdHJlYWRvbmx5IHJvb3RQYWdlOiBOZ0RvY1Jvb3RQYWdlLFxuXHQpIHtcblx0XHRjb25zdCBmbGF0UGFnZXMgPSB0aGlzLmZsYXRQYWdlcyh0aGlzLmNvbnRleHQubmF2aWdhdGlvbik7XG5cblx0XHR0aGlzLnByZXZQYWdlID0gZmxhdFBhZ2VzW2ZsYXRQYWdlcy5maW5kSW5kZXgoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gdGhpcy51cmwgPT09IGl0ZW0ucm91dGUpIC0gMV07XG5cdFx0dGhpcy5uZXh0UGFnZSA9IGZsYXRQYWdlc1tmbGF0UGFnZXMuZmluZEluZGV4KChpdGVtOiBOZ0RvY05hdmlnYXRpb24pID0+IHRoaXMudXJsID09PSBpdGVtLnJvdXRlKSArIDFdO1xuXHR9XG5cblx0cHJpdmF0ZSBmbGF0UGFnZXMoaXRlbXM6IE5nRG9jTmF2aWdhdGlvbltdKTogTmdEb2NOYXZpZ2F0aW9uW10ge1xuXHRcdHJldHVybiBpdGVtcy5tYXAoKGl0ZW06IE5nRG9jTmF2aWdhdGlvbikgPT4gW2l0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IHRoaXMuZmxhdFBhZ2VzKGl0ZW0uY2hpbGRyZW4pIDogaXRlbV0pLmZsYXQoMik7XG5cdH1cblxuXHRwcml2YXRlIGdldCB1cmwoKTogc3RyaW5nIHtcblx0XHRjb25zdCB1cmxUcmVlOiBVcmxUcmVlID0gdGhpcy5yb3V0ZXIucGFyc2VVcmwodGhpcy5yb3V0ZXIudXJsKTtcblxuXHRcdHVybFRyZWUucXVlcnlQYXJhbXMgPSB7fTtcblx0XHR1cmxUcmVlLmZyYWdtZW50ID0gbnVsbDtcblxuXHRcdHJldHVybiB1cmxUcmVlLnRvU3RyaW5nKCk7XG5cdH1cbn1cbiIsIjxhcnRpY2xlPlxuXHQ8bmctZG9jLWJyZWFkY3J1bWIgKm5nSWY9XCJyb290UGFnZS5wYWdlVHlwZSA9PT0gJ2d1aWRlJ1wiPjwvbmctZG9jLWJyZWFkY3J1bWI+XG5cdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGFnZS1jb250cm9sc1wiPlxuXHRcdDxhXG5cdFx0XHRuZy1kb2MtYnV0dG9uLWljb25cblx0XHRcdCpuZ0lmPVwicm9vdFBhZ2UuZWRpdFNvdXJjZUZpbGVVcmxcIlxuXHRcdFx0W2hyZWZdPVwicm9vdFBhZ2UuZWRpdFNvdXJjZUZpbGVVcmxcIlxuXHRcdFx0dGFyZ2V0PVwiX2JsYW5rXCJcblx0XHRcdG5nRG9jVG9vbHRpcD1cIlN1Z2dlc3QgRWRpdHNcIlxuXHRcdD5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiZWRpdC0yXCI+PC9uZy1kb2MtaWNvbj5cblx0XHQ8L2E+XG5cdFx0PGFcblx0XHRcdG5nLWRvYy1idXR0b24taWNvblxuXHRcdFx0Km5nSWY9XCJyb290UGFnZS52aWV3U291cmNlRmlsZVVybFwiXG5cdFx0XHRbaHJlZl09XCJyb290UGFnZS52aWV3U291cmNlRmlsZVVybFwiXG5cdFx0XHR0YXJnZXQ9XCJfYmxhbmtcIlxuXHRcdFx0bmdEb2NUb29sdGlwPVwiVmlldyBTb3VyY2VcIlxuXHRcdD5cblx0XHRcdDxuZy1kb2MtaWNvbiBpY29uPVwiY29kZVwiPjwvbmctZG9jLWljb24+XG5cdFx0PC9hPlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJuZy1kb2MtcGFnZS13cmFwcGVyXCJcblx0XHRbaW5uZXJIVE1MXT1cInJvb3RQYWdlLnBhZ2VDb250ZW50IHwgbmdEb2NTYW5pdGl6ZUh0bWxcIlxuXHRcdG5nRG9jQmxvY2txdW90ZVByb2Nlc3NvclxuXHRcdG5nRG9jTGlua1Byb2Nlc3NvclxuXHRcdG5nRG9jQ29kZVByb2Nlc3NvclxuXHRcdG5nRG9jSWNvblByb2Nlc3NvclxuXHRcdG5nRG9jVG9vbHRpcFByb2Nlc3NvclxuXHRcdG5nRG9jRGVtb1Byb2Nlc3NvclxuXHRcdG5nRG9jRGVtb1BhbmVQcm9jZXNzb3Jcblx0XHRuZ0RvY1BsYXlncm91bmRQcm9jZXNzb3Jcblx0XHQjcGFnZUNvbnRhaW5lclxuXHQ+PC9kaXY+XG5cblx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLWNvbnRyb2xzXCIgKm5nSWY9XCJyb290UGFnZS5wYWdlVHlwZSA9PT0gJ2d1aWRlJ1wiPlxuXHRcdDxhIGNsYXNzPVwibmctZG9jLXByZXYtcGFnZVwiICpuZ0lmPVwicHJldlBhZ2VcIiBbcm91dGVyTGlua109XCJwcmV2UGFnZS5yb3V0ZVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtbGFiZWxcIiBuZy1kb2MtdGV4dCBzaXplPVwic21hbGxcIj5cblx0XHRcdFx0PG5nLWRvYy1pY29uIGljb249XCJhcnJvdy1sZWZ0XCIgbmdEb2NUZXh0TGVmdD48L25nLWRvYy1pY29uPlxuXHRcdFx0XHRQcmV2aW91c1xuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLW5hdmlnYXRpb24tcGFnZS10aXRsZVwiIG5nLWRvYy10ZXh0Pnt7IHByZXZQYWdlLnRpdGxlIH19PC9kaXY+XG5cdFx0PC9hPlxuXHRcdDxhIGNsYXNzPVwibmctZG9jLW5leHQtcGFnZVwiICpuZ0lmPVwibmV4dFBhZ2VcIiBbcm91dGVyTGlua109XCJuZXh0UGFnZS5yb3V0ZVwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtbGFiZWxcIiBuZy1kb2MtdGV4dCBzaXplPVwic21hbGxcIj5cblx0XHRcdFx0TmV4dFxuXHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImFycm93LXJpZ2h0XCIgbmdEb2NUZXh0UmlnaHQ+PC9uZy1kb2MtaWNvbj5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cIm5nLWRvYy1uYXZpZ2F0aW9uLXBhZ2UtdGl0bGVcIiBuZy1kb2MtdGV4dD57eyBuZXh0UGFnZS50aXRsZSB9fTwvZGl2PlxuXHRcdDwvYT5cblx0PC9kaXY+XG48L2FydGljbGU+XG5cbjxuZy10ZW1wbGF0ZVxuXHRbbmdEb2NNZWRpYVF1ZXJ5XT1cIlttZWRpYVF1ZXJ5LmJyZWFrcG9pbnRzLkxhcmdlLCBtZWRpYVF1ZXJ5LmJyZWFrcG9pbnRzLlhMYXJnZV1cIlxuXHQjbWVkaWFRdWVyeT1cIm5nRG9jTWVkaWFRdWVyeVwiXG4+XG5cdDxuZy1kb2MtdG9jIFtwYWdlQ29udGFpbmVyXT1cInBhZ2VDb250YWluZXJcIj48L25nLWRvYy10b2M+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,19 +1,26 @@
1
- import { Directive } from '@angular/core';
1
+ import { Directive, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Base class for playgrounds components.
5
5
  */
6
6
  class NgDocBasePlayground {
7
7
  constructor() {
8
+ this.properties = {};
8
9
  this.data = {};
9
10
  this.content = {};
10
11
  }
11
12
  static { this.selector = 'unknown'; }
12
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocBasePlayground, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgDocBasePlayground, ngImport: i0 }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgDocBasePlayground, inputs: { properties: "properties", data: "data", content: "content" }, ngImport: i0 }); }
14
15
  }
15
16
  export { NgDocBasePlayground };
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocBasePlayground, decorators: [{
17
18
  type: Directive
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wbGF5Z3JvdW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wbGF5Z3JvdW5kL2Jhc2UtcGxheWdyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUF5QixNQUFNLGVBQWUsQ0FBQzs7QUFHaEU7O0dBRUc7QUFDSCxNQUNzQixtQkFBbUI7SUFEekM7UUFNQyxTQUFJLEdBQTRCLEVBQUUsQ0FBQztRQUNuQyxZQUFPLEdBQVEsRUFBRSxDQUFDO0tBQ2xCO2FBTmdCLGFBQVEsR0FBVyxTQUFTLEFBQXBCLENBQXFCOzhHQUR4QixtQkFBbUI7a0dBQW5CLG1CQUFtQjs7U0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRHhDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgVHlwZSwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbmZpZ30gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHBsYXlncm91bmRzIGNvbXBvbmVudHMuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nRG9jQmFzZVBsYXlncm91bmQgaW1wbGVtZW50cyBQaWNrPE5nRG9jUGxheWdyb3VuZENvbmZpZywgJ2RhdGEnPiB7XG5cdHN0YXRpYyByZWFkb25seSBzZWxlY3Rvcjogc3RyaW5nID0gJ3Vua25vd24nO1xuXHRhYnN0cmFjdCByZWFkb25seSBwbGF5Z3JvdW5kPzogVHlwZTx1bmtub3duPjtcblx0YWJzdHJhY3QgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWY7XG5cblx0ZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0Y29udGVudDogYW55ID0ge307XG59XG4iXX0=
19
+ }], propDecorators: { properties: [{
20
+ type: Input
21
+ }], data: [{
22
+ type: Input
23
+ }], content: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wbGF5Z3JvdW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHAvY29tcG9uZW50cy9wbGF5Z3JvdW5kL2Jhc2UtcGxheWdyb3VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBeUIsTUFBTSxlQUFlLENBQUM7O0FBR3ZFOztHQUVHO0FBQ0gsTUFDc0IsbUJBQW1CO0lBRHpDO1FBT0MsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFHckMsU0FBSSxHQUF3QixFQUFFLENBQUM7UUFHL0IsWUFBTyxHQUFRLEVBQUUsQ0FBQztLQUNsQjthQVpnQixhQUFRLEdBQVcsU0FBUyxBQUFwQixDQUFxQjs4R0FEeEIsbUJBQW1CO2tHQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUR4QyxTQUFTOzhCQU9ULFVBQVU7c0JBRFQsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBUeXBlLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kQ29uZmlnfSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgcGxheWdyb3VuZHMgY29tcG9uZW50cy5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdEb2NCYXNlUGxheWdyb3VuZCBpbXBsZW1lbnRzIFBpY2s8TmdEb2NQbGF5Z3JvdW5kQ29uZmlnLCAnZGF0YSc+IHtcblx0c3RhdGljIHJlYWRvbmx5IHNlbGVjdG9yOiBzdHJpbmcgPSAndW5rbm93bic7XG5cdGFic3RyYWN0IHJlYWRvbmx5IHBsYXlncm91bmQ/OiBUeXBlPHVua25vd24+O1xuXHRhYnN0cmFjdCByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cblx0QElucHV0KClcblx0ZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG5cdEBJbnB1dCgpXG5cdGNvbnRlbnQ6IGFueSA9IHt9O1xufVxuIl19
@@ -1,10 +1,10 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { AsyncPipe } from '@angular/common';
3
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Injector, Input, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { ChangeDetectionStrategy, Component, Injector, Input, ViewChild, ViewContainerRef, } from '@angular/core';
4
4
  import { FormGroup } from '@angular/forms';
5
5
  import { NgDocDemoDisplayerComponent } from '@ng-doc/app/components/demo-displayer';
6
6
  import { getPlaygroundDemoToken } from '@ng-doc/app/helpers';
7
- import { buildPlaygroundDemoTemplate } from '@ng-doc/core/helpers/build-playground-demo-template';
7
+ import { buildPlaygroundDemoPipeTemplate, buildPlaygroundDemoTemplate, } from '@ng-doc/core/helpers/build-playground-demo-template';
8
8
  import { formatHtml } from '@ng-doc/core/helpers/format-html';
9
9
  import { objectKeys } from '@ng-doc/core/helpers/object-keys';
10
10
  import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
@@ -15,6 +15,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
15
15
  constructor(injector) {
16
16
  this.injector = injector;
17
17
  this.id = '';
18
+ this.pipeName = '';
18
19
  this.selector = '';
19
20
  this.recreateDemo = false;
20
21
  this.code = of('');
@@ -26,7 +27,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
26
27
  const demoInjector = getPlaygroundDemoToken(this.id);
27
28
  if (demoInjector) {
28
29
  const demos = this.injector.get(demoInjector, []);
29
- this.playgroundDemo = demos.find((demo) => demo.selector === this.selector);
30
+ this.playgroundDemo = demos.find((demo) => demo.selector === this.selector || demo.selector === this.pipeName);
30
31
  }
31
32
  this.updateDemo();
32
33
  this.form?.valueChanges
@@ -39,9 +40,8 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
39
40
  this.renderDemo();
40
41
  }
41
42
  if (data) {
42
- Object.assign(this.demoRef?.instance.playground ?? {}, data.properties);
43
- Object.assign(this.demoRef?.instance.content ?? {}, data.content);
44
- this.demoRef?.instance?.viewContainerRef?.injector.get(ChangeDetectorRef)?.markForCheck();
43
+ this.demoRef?.setInput('properties', data.properties ?? {});
44
+ this.demoRef?.setInput('content', data.content ?? {});
45
45
  }
46
46
  this.updateCodeView();
47
47
  }
@@ -51,11 +51,13 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
51
51
  if (this.playgroundDemo) {
52
52
  this.demoRef = this.demoOutlet?.createComponent(this.playgroundDemo);
53
53
  }
54
- this.demoRef?.changeDetectorRef.markForCheck();
54
+ this.demoRef?.changeDetectorRef.detectChanges();
55
55
  }
56
56
  }
57
57
  updateCodeView() {
58
- const template = buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());
58
+ const template = this.pipeName
59
+ ? buildPlaygroundDemoPipeTemplate(this.configuration?.template ?? '', this.pipeName, this.getActiveContent(), this.getActiveInputs())
60
+ : buildPlaygroundDemoTemplate(this.configuration?.template ?? '', this.selector, this.getActiveContent(), this.getActiveInputs());
59
61
  this.code = formatHtml(template);
60
62
  }
61
63
  getActiveContent() {
@@ -74,7 +76,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
74
76
  const isString = typeof value === 'string';
75
77
  const inputValue = isString ? `'${value}'` : `${JSON.stringify(value)}`;
76
78
  if ((property.default ?? '') !== inputValue) {
77
- result[property.name] = inputValue;
79
+ result[property.inputName] = inputValue;
78
80
  }
79
81
  }
80
82
  return result;
@@ -85,7 +87,7 @@ let NgDocPlaygroundDemoComponent = class NgDocPlaygroundDemoComponent {
85
87
  this.unsubscribe$.complete();
86
88
  }
87
89
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundDemoComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
88
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundDemoComponent, isStandalone: true, selector: "ng-doc-playground-demo", inputs: { id: "id", selector: "selector", configuration: "configuration", properties: "properties", recreateDemo: "recreateDemo", form: "form" }, viewQueries: [{ propertyName: "demoOutlet", first: true, predicate: ["demoOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"], dependencies: [{ kind: "component", type: NgDocDemoDisplayerComponent, selector: "ng-doc-demo-displayer", inputs: ["codeContent", "code", "language", "container", "border", "expanded"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
90
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundDemoComponent, isStandalone: true, selector: "ng-doc-playground-demo", inputs: { id: "id", pipeName: "pipeName", selector: "selector", configuration: "configuration", properties: "properties", recreateDemo: "recreateDemo", form: "form" }, viewQueries: [{ propertyName: "demoOutlet", first: true, predicate: ["demoOutlet"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"], dependencies: [{ kind: "component", type: NgDocDemoDisplayerComponent, selector: "ng-doc-demo-displayer", inputs: ["codeContent", "code", "language", "container", "border", "expanded"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
89
91
  };
90
92
  NgDocPlaygroundDemoComponent = __decorate([
91
93
  UntilDestroy(),
@@ -97,6 +99,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
97
99
  args: [{ selector: 'ng-doc-playground-demo', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgDocDemoDisplayerComponent, AsyncPipe], template: "<ng-doc-demo-displayer [code]=\"(code | async) ?? ''\" [border]=\"false\" language=\"html\">\n\t<ng-container #demoOutlet></ng-container>\n</ng-doc-demo-displayer>\n", styles: [":host{display:block;border:var(--ng-doc-demo-displayer-border);border-radius:var(--ng-doc-demo-displayer-border-radius);overflow:hidden}:host:not(:last-child){border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}:host:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}\n"] }]
98
100
  }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { id: [{
99
101
  type: Input
102
+ }], pipeName: [{
103
+ type: Input
100
104
  }], selector: [{
101
105
  type: Input
102
106
  }], configuration: [{
@@ -111,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
111
115
  type: ViewChild,
112
116
  args: ['demoOutlet', { static: true, read: ViewContainerRef }]
113
117
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUdULFFBQVEsRUFDUixLQUFLLEVBS0wsU0FBUyxFQUNULGdCQUFnQixHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUc1RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ25FLE9BQU8sRUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLekMsSUFTYSw0QkFBNEIsR0FUekMsTUFTYSw0QkFB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USxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxVQUFVLEVBQUU7b0JBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUNuQzthQUNEO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQTdIVyw0QkFBNEI7a0dBQTVCLDRCQUE0Qix5VEFxQk0sZ0JBQWdCLGdFQzlEL0QsdUtBR0EsK1dEbUNXLDJCQUEyQiw2SUFBRSxTQUFTOztBQUdwQyw0QkFBNEI7SUFEeEMsWUFBWSxFQUFFO3FDQWdDeUIsUUFBUTtHQS9CbkMsNEJBQTRCLENBOEh4QztTQTlIWSw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDQyx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDOytGQU9qRCxFQUFFO3NCQURELEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUeXBlLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50fSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL2RlbW8tZGlzcGxheWVyJztcbmltcG9ydCB7Z2V0UGxheWdyb3VuZERlbW9Ub2tlbn0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jRm9ybVBhcnRpYWxWYWx1ZX0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZXMnO1xuaW1wb3J0IHtidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGV9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2J1aWxkLXBsYXlncm91bmQtZGVtby10ZW1wbGF0ZSc7XG5pbXBvcnQge2Zvcm1hdEh0bWx9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL2Zvcm1hdC1odG1sJztcbmltcG9ydCB7b2JqZWN0S2V5c30gZnJvbSAnQG5nLWRvYy9jb3JlL2hlbHBlcnMvb2JqZWN0LWtleXMnO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRDb25maWcsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge05nRG9jRXh0cmFjdGVkVmFsdWV9IGZyb20gJ0BuZy1kb2MvY29yZS90eXBlcyc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7TmdEb2NCYXNlUGxheWdyb3VuZH0gZnJvbSAnLi4vYmFzZS1wbGF5Z3JvdW5kJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kRm9ybX0gZnJvbSAnLi4vcGxheWdyb3VuZC1mb3JtJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtZGVtbycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLWRlbW8uY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtOZ0RvY0RlbW9EaXNwbGF5ZXJDb21wb25lbnQsIEFzeW5jUGlwZV0sXG59KVxuQFVudGlsRGVzdHJveSgpXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kRGVtb0NvbXBvbmVudDxUIGV4dGVuZHMgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllcyA9IE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXM+XG5cdGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcblx0QElucHV0KClcblx0aWQ6IHN0cmluZyA9ICcnO1xuXG5cdEBJbnB1dCgpXG5cdHNlbGVjdG9yOiBzdHJpbmcgPSAnJztcblxuXHRASW5wdXQoKVxuXHRjb25maWd1cmF0aW9uPzogTmdEb2NQbGF5Z3JvdW5kQ29uZmlnO1xuXG5cdEBJbnB1dCgpXG5cdHByb3BlcnRpZXM/OiBUO1xuXG5cdEBJbnB1dCgpXG5cdHJlY3JlYXRlRGVtbzogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdEBJbnB1dCgpXG5cdGZvcm0hOiBGb3JtR3JvdXA8TmdEb2NQbGF5Z3JvdW5kRm9ybT47XG5cblx0QFZpZXdDaGlsZCgnZGVtb091dGxldCcsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWZ9KVxuXHRkZW1vT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcblxuXHRwbGF5Z3JvdW5kRGVtbz86IHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kO1xuXG5cdGNvZGU6IE9ic2VydmFibGU8c3RyaW5nPiA9IG9mKCcnKTtcblxuXHRwcml2YXRlIGRlbW9SZWY/OiBDb21wb25lbnRSZWY8TmdEb2NCYXNlUGxheWdyb3VuZD47XG5cdHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge31cblxuXHRuZ09uQ2hhbmdlcyh7Zm9ybSwgaWR9OiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cdFx0aWYgKGZvcm0gJiYgaWQpIHtcblx0XHRcdHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcblxuXHRcdFx0Y29uc3QgZGVtb0luamVjdG9yOiBJbmplY3Rpb25Ub2tlbjxBcnJheTx0eXBlb2YgTmdEb2NCYXNlUGxheWdyb3VuZD4+IHwgdW5kZWZpbmVkID0gZ2V0UGxheWdyb3VuZERlbW9Ub2tlbihcblx0XHRcdFx0dGhpcy5pZCxcblx0XHRcdCk7XG5cblx0XHRcdGlmIChkZW1vSW5qZWN0b3IpIHtcblx0XHRcdFx0Y29uc3QgZGVtb3M6IEFycmF5PHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kPiA9IHRoaXMuaW5qZWN0b3IuZ2V0KGRlbW9JbmplY3RvciwgW10pO1xuXHRcdFx0XHR0aGlzLnBsYXlncm91bmREZW1vID0gZGVtb3MuZmluZCgoZGVtbzogdHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQpID0+IGRlbW8uc2VsZWN0b3IgPT09IHRoaXMuc2VsZWN0b3IpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVwZGF0ZURlbW8oKTtcblxuXHRcdFx0dGhpcy5mb3JtPy52YWx1ZUNoYW5nZXNcblx0XHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKGRhdGE6IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPikgPT4gdGhpcy51cGRhdGVEZW1vKGRhdGEpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZURlbW8oZGF0YT86IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPik6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJlY3JlYXRlRGVtbyB8fCAhdGhpcy5kZW1vUmVmKSB7XG5cdFx0XHR0aGlzLnJlbmRlckRlbW8oKTtcblx0XHR9XG5cblx0XHRpZiAoZGF0YSkge1xuXHRcdFx0T2JqZWN0LmFzc2lnbih0aGlzLmRlbW9SZWY/Lmluc3RhbmNlLnBsYXlncm91bmQgPz8ge30sIGRhdGEucHJvcGVydGllcyk7XG5cdFx0XHRPYmplY3QuYXNzaWduKHRoaXMuZGVtb1JlZj8uaW5zdGFuY2UuY29udGVudCA/PyB7fSwgZGF0YS5jb250ZW50KTtcblx0XHRcdHRoaXMuZGVtb1JlZj8uaW5zdGFuY2U/LnZpZXdDb250YWluZXJSZWY/LmluamVjdG9yLmdldChDaGFuZ2VEZXRlY3RvclJlZik/Lm1hcmtGb3JDaGVjaygpO1xuXHRcdH1cblxuXHRcdHRoaXMudXBkYXRlQ29kZVZpZXcoKTtcblx0fVxuXG5cdHByaXZhdGUgcmVuZGVyRGVtbygpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5wbGF5Z3JvdW5kRGVtbykge1xuXHRcdFx0dGhpcy5kZW1vUmVmPy5kZXN0cm95KCk7XG5cblx0XHRcdGlmICh0aGlzLnBsYXlncm91bmREZW1vKSB7XG5cdFx0XHRcdHRoaXMuZGVtb1JlZiA9IHRoaXMuZGVtb091dGxldD8uY3JlYXRlQ29tcG9uZW50KHRoaXMucGxheWdyb3VuZERlbW8gYXMgdW5rbm93biBhcyBUeXBlPE5nRG9jQmFzZVBsYXlncm91bmQ+KTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5kZW1vUmVmPy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZUNvZGVWaWV3KCk6IHZvaWQge1xuXHRcdGNvbnN0IHRlbXBsYXRlOiBzdHJpbmcgPSBidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGUoXG5cdFx0XHR0aGlzLmNvbmZpZ3VyYXRpb24/LnRlbXBsYXRlID8/ICcnLFxuXHRcdFx0dGhpcy5zZWxlY3Rvcixcblx0XHRcdHRoaXMuZ2V0QWN0aXZlQ29udGVudCgpLFxuXHRcdFx0dGhpcy5nZXRBY3RpdmVJbnB1dHMoKSxcblx0XHQpO1xuXG5cdFx0dGhpcy5jb2RlID0gZm9ybWF0SHRtbCh0ZW1wbGF0ZSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGl2ZUNvbnRlbnQoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0Y29uc3QgZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0gKHRoaXMuZm9ybT8uY29udHJvbHMuY29udGVudC52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikgPz8ge307XG5cblx0XHRyZXR1cm4gb2JqZWN0S2V5cyhmb3JtRGF0YSkucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRyZXN1bHRba2V5XSA9IGZvcm1EYXRhW2tleV0gPyB0aGlzLmNvbmZpZ3VyYXRpb24/LmNvbnRlbnQ/LltrZXldLnRlbXBsYXRlID8/ICcnIDogJyc7XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSwge30pO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRBY3RpdmVJbnB1dHMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG5cdFx0Y29uc3QgZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIE5nRG9jRXh0cmFjdGVkVmFsdWU+ID1cblx0XHRcdCh0aGlzLmZvcm0/LmNvbnRyb2xzLnByb3BlcnRpZXMudmFsdWUgYXMgUmVjb3JkPHN0cmluZywgTmdEb2NFeHRyYWN0ZWRWYWx1ZT4pID8/IHt9O1xuXG5cdFx0cmV0dXJuIG9iamVjdEtleXMoZm9ybURhdGEpLnJlZHVjZSgocmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LCBrZXk6IHN0cmluZykgPT4ge1xuXHRcdFx0Y29uc3QgcHJvcGVydHk6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5IHwgdW5kZWZpbmVkID0gdGhpcy5wcm9wZXJ0aWVzPy5ba2V5XTtcblxuXHRcdFx0aWYgKHByb3BlcnR5KSB7XG5cdFx0XHRcdGNvbnN0IHZhbHVlOiBOZ0RvY0V4dHJhY3RlZFZhbHVlID0gZm9ybURhdGFba2V5XTtcblx0XHRcdFx0Y29uc3QgaXNTdHJpbmc6IGJvb2xlYW4gPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnO1xuXHRcdFx0XHRjb25zdCBpbnB1dFZhbHVlOiBzdHJpbmcgPSBpc1N0cmluZyA/IGAnJHt2YWx1ZX0nYCA6IGAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gO1xuXG5cdFx0XHRcdGlmICgocHJvcGVydHkuZGVmYXVsdCA/PyAnJykgIT09IGlucHV0VmFsdWUpIHtcblx0XHRcdFx0XHRyZXN1bHRbcHJvcGVydHkubmFtZV0gPSBpbnB1dFZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fSwge30pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuXHRcdHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG5cdH1cbn1cbiIsIjxuZy1kb2MtZGVtby1kaXNwbGF5ZXIgW2NvZGVdPVwiKGNvZGUgfCBhc3luYykgPz8gJydcIiBbYm9yZGVyXT1cImZhbHNlXCIgbGFuZ3VhZ2U9XCJodG1sXCI+XG5cdDxuZy1jb250YWluZXIgI2RlbW9PdXRsZXQ+PC9uZy1jb250YWluZXI+XG48L25nLWRvYy1kZW1vLWRpc3BsYXllcj5cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLWRlbW8vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsUUFBUSxFQUNSLEtBQUssRUFLTCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNsRixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQ04sK0JBQStCLEVBQy9CLDJCQUEyQixHQUMzQixNQUFNLHFEQUFxRCxDQUFDO0FBQzdELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHNUQsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQWEsRUFBRSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3pDLElBU2EsNEJBQTRCLEdBVHpDLE1BU2EsNEJBQTRCO0lBa0N4QyxZQUE2QixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBOUIvQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBR2hCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFHdEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQVN0QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQVU5QixTQUFJLEdBQXVCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUdqQixpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWpCLENBQUM7SUFFbkQsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBZ0I7UUFDcEMsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV6QixNQUFNLFlBQVksR0FBa0Usc0JBQXNCLENBQ3pHLElBQUksQ0FBQyxFQUFFLENBQ1AsQ0FBQztZQUVGLElBQUksWUFBWSxFQUFFO2dCQUNqQixNQUFNLEtBQUssR0FBc0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQy9CLENBQUMsSUFBZ0MsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FDeEcsQ0FBQzthQUNGO1lBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBRWxCLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWTtpQkFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4RCxTQUFTLENBQUMsQ0FBQyxJQUE2QyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdEY7SUFDRixDQUFDO0lBRU8sVUFBVSxDQUFDLElBQThDO1FBQ2hFLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxJQUFJLEVBQUU7WUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sVUFBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUV4QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQXNELENBQUMsQ0FBQzthQUM3RztZQUVELElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDaEQ7SUFDRixDQUFDO0lBRU8sY0FBYztRQUNyQixNQUFNLFFBQVEsR0FBVyxJQUFJLENBQUMsUUFBUTtZQUNyQyxDQUFDLENBQUMsK0JBQStCLENBQy9CLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFDbEMsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDdkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUNyQjtZQUNILENBQUMsQ0FBQywyQkFBMkIsQ0FDM0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLElBQUksRUFBRSxFQUNsQyxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQ3JCLENBQUM7UUFFTCxJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3ZCLE1BQU0sUUFBUSxHQUE2QixJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBaUMsSUFBSSxFQUFFLENBQUM7UUFFL0csT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBOEIsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUNsRixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVyRixPQUFPLE1BQU0sQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFTyxlQUFlO1FBQ3RCLE1BQU0sUUFBUSxHQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUE2QyxJQUFJLEVBQUUsQ0FBQztRQUVyRixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUE4QixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQ2xGLE1BQU0sUUFBUSxHQUF3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFN0UsSUFBSSxRQUFRLEVBQUU7Z0JBQ2IsTUFBTSxLQUFLLEdBQXdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakQsTUFBTSxRQUFRLEdBQVksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDO2dCQUNwRCxNQUFNLFVBQVUsR0FBVyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUVoRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxVQUFVLEVBQUU7b0JBQzVDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN4QzthQUNEO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXhJVyw0QkFBNEI7a0dBQTVCLDRCQUE0QiwrVUF3Qk0sZ0JBQWdCLGdFQ25FL0QsdUtBR0EsK1dEcUNXLDJCQUEyQiw2SUFBRSxTQUFTOztBQUdwQyw0QkFBNEI7SUFEeEMsWUFBWSxFQUFFO3FDQW1DeUIsUUFBUTtHQWxDbkMsNEJBQTRCLENBeUl4QztTQXpJWSw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFUeEMsU0FBUzsrQkFDQyx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsMkJBQTJCLEVBQUUsU0FBUyxDQUFDOytGQU9qRCxFQUFFO3NCQURELEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDb21wb25lbnRSZWYsXG5cdEluamVjdGlvblRva2VuLFxuXHRJbmplY3Rvcixcblx0SW5wdXQsXG5cdE9uQ2hhbmdlcyxcblx0T25EZXN0cm95LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUeXBlLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50fSBmcm9tICdAbmctZG9jL2FwcC9jb21wb25lbnRzL2RlbW8tZGlzcGxheWVyJztcbmltcG9ydCB7Z2V0UGxheWdyb3VuZERlbW9Ub2tlbn0gZnJvbSAnQG5nLWRvYy9hcHAvaGVscGVycyc7XG5pbXBvcnQge05nRG9jRm9ybVBhcnRpYWxWYWx1ZX0gZnJvbSAnQG5nLWRvYy9hcHAvdHlwZXMnO1xuaW1wb3J0IHtcblx0YnVpbGRQbGF5Z3JvdW5kRGVtb1BpcGVUZW1wbGF0ZSxcblx0YnVpbGRQbGF5Z3JvdW5kRGVtb1RlbXBsYXRlLFxufSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9idWlsZC1wbGF5Z3JvdW5kLWRlbW8tdGVtcGxhdGUnO1xuaW1wb3J0IHtmb3JtYXRIdG1sfSBmcm9tICdAbmctZG9jL2NvcmUvaGVscGVycy9mb3JtYXQtaHRtbCc7XG5pbXBvcnQge29iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZS9oZWxwZXJzL29iamVjdC1rZXlzJztcbmltcG9ydCB7TmdEb2NQbGF5Z3JvdW5kQ29uZmlnLCBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzLCBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eX0gZnJvbSAnQG5nLWRvYy9jb3JlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOZ0RvY0V4dHJhY3RlZFZhbHVlfSBmcm9tICdAbmctZG9jL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge05nRG9jQmFzZVBsYXlncm91bmR9IGZyb20gJy4uL2Jhc2UtcGxheWdyb3VuZCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZEZvcm19IGZyb20gJy4uL3BsYXlncm91bmQtZm9ybSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25nLWRvYy1wbGF5Z3JvdW5kLWRlbW8nLFxuXHR0ZW1wbGF0ZVVybDogJy4vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5odG1sJyxcblx0c3R5bGVVcmxzOiBbJy4vcGxheWdyb3VuZC1kZW1vLmNvbXBvbmVudC5zY3NzJ10sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRpbXBvcnRzOiBbTmdEb2NEZW1vRGlzcGxheWVyQ29tcG9uZW50LCBBc3luY1BpcGVdLFxufSlcbkBVbnRpbERlc3Ryb3koKVxuZXhwb3J0IGNsYXNzIE5nRG9jUGxheWdyb3VuZERlbW9Db21wb25lbnQ8VCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMgPSBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0aWVzPlxuXHRpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG5cdEBJbnB1dCgpXG5cdGlkOiBzdHJpbmcgPSAnJztcblxuXHRASW5wdXQoKVxuXHRwaXBlTmFtZTogc3RyaW5nID0gJyc7XG5cblx0QElucHV0KClcblx0c2VsZWN0b3I6IHN0cmluZyA9ICcnO1xuXG5cdEBJbnB1dCgpXG5cdGNvbmZpZ3VyYXRpb24/OiBOZ0RvY1BsYXlncm91bmRDb25maWc7XG5cblx0QElucHV0KClcblx0cHJvcGVydGllcz86IFQ7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRAVmlld0NoaWxkKCdkZW1vT3V0bGV0Jywge3N0YXRpYzogdHJ1ZSwgcmVhZDogVmlld0NvbnRhaW5lclJlZn0pXG5cdGRlbW9PdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuXG5cdHBsYXlncm91bmREZW1vPzogdHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQ7XG5cblx0Y29kZTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gb2YoJycpO1xuXG5cdHByaXZhdGUgZGVtb1JlZj86IENvbXBvbmVudFJlZjxOZ0RvY0Jhc2VQbGF5Z3JvdW5kPjtcblx0cHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yKSB7fVxuXG5cdG5nT25DaGFuZ2VzKHtmb3JtLCBpZH06IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAoZm9ybSAmJiBpZCkge1xuXHRcdFx0dGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuXG5cdFx0XHRjb25zdCBkZW1vSW5qZWN0b3I6IEluamVjdGlvblRva2VuPEFycmF5PHR5cGVvZiBOZ0RvY0Jhc2VQbGF5Z3JvdW5kPj4gfCB1bmRlZmluZWQgPSBnZXRQbGF5Z3JvdW5kRGVtb1Rva2VuKFxuXHRcdFx0XHR0aGlzLmlkLFxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKGRlbW9JbmplY3Rvcikge1xuXHRcdFx0XHRjb25zdCBkZW1vczogQXJyYXk8dHlwZW9mIE5nRG9jQmFzZVBsYXlncm91bmQ+ID0gdGhpcy5pbmplY3Rvci5nZXQoZGVtb0luamVjdG9yLCBbXSk7XG5cdFx0XHRcdHRoaXMucGxheWdyb3VuZERlbW8gPSBkZW1vcy5maW5kKFxuXHRcdFx0XHRcdChkZW1vOiB0eXBlb2YgTmdEb2NCYXNlUGxheWdyb3VuZCkgPT4gZGVtby5zZWxlY3RvciA9PT0gdGhpcy5zZWxlY3RvciB8fCBkZW1vLnNlbGVjdG9yID09PSB0aGlzLnBpcGVOYW1lLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnVwZGF0ZURlbW8oKTtcblxuXHRcdFx0dGhpcy5mb3JtPy52YWx1ZUNoYW5nZXNcblx0XHRcdFx0LnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgdW50aWxEZXN0cm95ZWQodGhpcykpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKGRhdGE6IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPikgPT4gdGhpcy51cGRhdGVEZW1vKGRhdGEpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZURlbW8oZGF0YT86IE5nRG9jRm9ybVBhcnRpYWxWYWx1ZTx0eXBlb2YgdGhpcy5mb3JtPik6IHZvaWQge1xuXHRcdGlmICh0aGlzLnJlY3JlYXRlRGVtbyB8fCAhdGhpcy5kZW1vUmVmKSB7XG5cdFx0XHR0aGlzLnJlbmRlckRlbW8oKTtcblx0XHR9XG5cblx0XHRpZiAoZGF0YSkge1xuXHRcdFx0dGhpcy5kZW1vUmVmPy5zZXRJbnB1dCgncHJvcGVydGllcycsIGRhdGEucHJvcGVydGllcyA/PyB7fSk7XG5cdFx0XHR0aGlzLmRlbW9SZWY/LnNldElucHV0KCdjb250ZW50JywgZGF0YS5jb250ZW50ID8/IHt9KTtcblx0XHR9XG5cblx0XHR0aGlzLnVwZGF0ZUNvZGVWaWV3KCk7XG5cdH1cblxuXHRwcml2YXRlIHJlbmRlckRlbW8oKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMucGxheWdyb3VuZERlbW8pIHtcblx0XHRcdHRoaXMuZGVtb1JlZj8uZGVzdHJveSgpO1xuXG5cdFx0XHRpZiAodGhpcy5wbGF5Z3JvdW5kRGVtbykge1xuXHRcdFx0XHR0aGlzLmRlbW9SZWYgPSB0aGlzLmRlbW9PdXRsZXQ/LmNyZWF0ZUNvbXBvbmVudCh0aGlzLnBsYXlncm91bmREZW1vIGFzIHVua25vd24gYXMgVHlwZTxOZ0RvY0Jhc2VQbGF5Z3JvdW5kPik7XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGVtb1JlZj8uY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgdXBkYXRlQ29kZVZpZXcoKTogdm9pZCB7XG5cdFx0Y29uc3QgdGVtcGxhdGU6IHN0cmluZyA9IHRoaXMucGlwZU5hbWVcblx0XHRcdD8gYnVpbGRQbGF5Z3JvdW5kRGVtb1BpcGVUZW1wbGF0ZShcblx0XHRcdFx0XHR0aGlzLmNvbmZpZ3VyYXRpb24/LnRlbXBsYXRlID8/ICcnLFxuXHRcdFx0XHRcdHRoaXMucGlwZU5hbWUsXG5cdFx0XHRcdFx0dGhpcy5nZXRBY3RpdmVDb250ZW50KCksXG5cdFx0XHRcdFx0dGhpcy5nZXRBY3RpdmVJbnB1dHMoKSxcblx0XHRcdCAgKVxuXHRcdFx0OiBidWlsZFBsYXlncm91bmREZW1vVGVtcGxhdGUoXG5cdFx0XHRcdFx0dGhpcy5jb25maWd1cmF0aW9uPy50ZW1wbGF0ZSA/PyAnJyxcblx0XHRcdFx0XHR0aGlzLnNlbGVjdG9yLFxuXHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlQ29udGVudCgpLFxuXHRcdFx0XHRcdHRoaXMuZ2V0QWN0aXZlSW5wdXRzKCksXG5cdFx0XHQgICk7XG5cblx0XHR0aGlzLmNvZGUgPSBmb3JtYXRIdG1sKHRlbXBsYXRlKTtcblx0fVxuXG5cdHByaXZhdGUgZ2V0QWN0aXZlQ29udGVudCgpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcblx0XHRjb25zdCBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSAodGhpcy5mb3JtPy5jb250cm9scy5jb250ZW50LnZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSA/PyB7fTtcblxuXHRcdHJldHVybiBvYmplY3RLZXlzKGZvcm1EYXRhKS5yZWR1Y2UoKHJlc3VsdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwga2V5OiBzdHJpbmcpID0+IHtcblx0XHRcdHJlc3VsdFtrZXldID0gZm9ybURhdGFba2V5XSA/IHRoaXMuY29uZmlndXJhdGlvbj8uY29udGVudD8uW2tleV0udGVtcGxhdGUgPz8gJycgOiAnJztcblxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9LCB7fSk7XG5cdH1cblxuXHRwcml2YXRlIGdldEFjdGl2ZUlucHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcblx0XHRjb25zdCBmb3JtRGF0YTogUmVjb3JkPHN0cmluZywgTmdEb2NFeHRyYWN0ZWRWYWx1ZT4gPVxuXHRcdFx0KHRoaXMuZm9ybT8uY29udHJvbHMucHJvcGVydGllcy52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY0V4dHJhY3RlZFZhbHVlPikgPz8ge307XG5cblx0XHRyZXR1cm4gb2JqZWN0S2V5cyhmb3JtRGF0YSkucmVkdWNlKChyZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIGtleTogc3RyaW5nKSA9PiB7XG5cdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgfCB1bmRlZmluZWQgPSB0aGlzLnByb3BlcnRpZXM/LltrZXldO1xuXG5cdFx0XHRpZiAocHJvcGVydHkpIHtcblx0XHRcdFx0Y29uc3QgdmFsdWU6IE5nRG9jRXh0cmFjdGVkVmFsdWUgPSBmb3JtRGF0YVtrZXldO1xuXHRcdFx0XHRjb25zdCBpc1N0cmluZzogYm9vbGVhbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG5cdFx0XHRcdGNvbnN0IGlucHV0VmFsdWU6IHN0cmluZyA9IGlzU3RyaW5nID8gYCcke3ZhbHVlfSdgIDogYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWA7XG5cblx0XHRcdFx0aWYgKChwcm9wZXJ0eS5kZWZhdWx0ID8/ICcnKSAhPT0gaW5wdXRWYWx1ZSkge1xuXHRcdFx0XHRcdHJlc3VsdFtwcm9wZXJ0eS5pbnB1dE5hbWVdID0gaW5wdXRWYWx1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0sIHt9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcblx0XHR0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuXHR9XG59XG4iLCI8bmctZG9jLWRlbW8tZGlzcGxheWVyIFtjb2RlXT1cIihjb2RlIHwgYXN5bmMpID8/ICcnXCIgW2JvcmRlcl09XCJmYWxzZVwiIGxhbmd1YWdlPVwiaHRtbFwiPlxuXHQ8bmctY29udGFpbmVyICNkZW1vT3V0bGV0PjwvbmctY29udGFpbmVyPlxuPC9uZy1kb2MtZGVtby1kaXNwbGF5ZXI+XG4iXX0=
@@ -52,7 +52,7 @@ class NgDocPlaygroundPropertiesComponent {
52
52
  if (isPresent(bOrder)) {
53
53
  return 1;
54
54
  }
55
- return a.property.name.localeCompare(b.property.name);
55
+ return a.property.inputName.localeCompare(b.property.inputName);
56
56
  });
57
57
  }
58
58
  }
@@ -64,7 +64,7 @@ class NgDocPlaygroundPropertiesComponent {
64
64
  const typeControl = this.getControlForType(type) ??
65
65
  this.getControlForTypeAlias(isPlaygroundProperty(property) ? property.options : undefined);
66
66
  if (!typeControl && isDevMode()) {
67
- console.warn(`NgDocPlayground didn't find the control for the @Input "${property.name}", the type "${type}" was not recognized'`);
67
+ console.warn(`NgDocPlayground didn't find the control for the @Input "${property.inputName}", the type "${type}" was not recognized'`);
68
68
  }
69
69
  return typeControl;
70
70
  }
@@ -90,7 +90,7 @@ class NgDocPlaygroundPropertiesComponent {
90
90
  return undefined;
91
91
  }
92
92
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, deps: [{ token: i1.BreakpointObserver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
93
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertiesComponent, isStandalone: true, selector: "ng-doc-playground-properties", inputs: { form: "form", properties: "properties", dynamicContent: "dynamicContent", recreateDemo: "recreateDemo" }, outputs: { recreateDemoChange: "recreateDemoChange", resetForm: "resetForm" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.name\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"], dependencies: [{ kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonComponent, selector: "button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]", inputs: ["size", "color", "rounded"] }, { kind: "component", type: NgDocCheckboxComponent, selector: "ng-doc-checkbox", inputs: ["color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocPlaygroundPropertyComponent, selector: "ng-doc-playground-property", inputs: ["name", "property", "typeControl", "control"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: NgDocBindPipe, name: "ngDocBind" }, { kind: "pipe", type: NgDocRunPipe, name: "ngDocRun" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgDocPlaygroundPropertiesComponent, isStandalone: true, selector: "ng-doc-playground-properties", inputs: { form: "form", properties: "properties", dynamicContent: "dynamicContent", recreateDemo: "recreateDemo" }, outputs: { recreateDemoChange: "recreateDemoChange", resetForm: "resetForm" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"], dependencies: [{ kind: "component", type: NgDocTextComponent, selector: "[ng-doc-text]", inputs: ["size", "color", "align", "absoluteContent"] }, { kind: "component", type: NgDocButtonComponent, selector: "button[ng-doc-button], a[ng-doc-button], button[ng-doc-button-flat], a[ng-doc-button-flat], button[ng-doc-button-text], a[ng-doc-button-text]", inputs: ["size", "color", "rounded"] }, { kind: "component", type: NgDocCheckboxComponent, selector: "ng-doc-checkbox", inputs: ["color"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgDocTooltipDirective, selector: "[ngDocTooltip]", inputs: ["ngDocTooltip", "delay", "displayOrigin", "pointerOrigin", "positions", "canOpen", "panelClass", "minHeight", "maxHeight", "height", "minWidth", "maxWidth", "width"], outputs: ["beforeOpen", "afterOpen", "beforeClose", "afterClose"], exportAs: ["ngDocTooltip"] }, { kind: "component", type: NgDocIconComponent, selector: "ng-doc-icon", inputs: ["icon", "size"] }, { kind: "directive", type: NgDocTextRightDirective, selector: "[ngDocTextRight]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: NgDocPlaygroundPropertyComponent, selector: "ng-doc-playground-property", inputs: ["name", "property", "typeControl", "control"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: NgDocBindPipe, name: "ngDocBind" }, { kind: "pipe", type: NgDocRunPipe, name: "ngDocRun" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
94
  }
95
95
  export { NgDocPlaygroundPropertiesComponent };
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgDocPlaygroundPropertiesComponent, decorators: [{
@@ -110,7 +110,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
110
110
  KeyValuePipe,
111
111
  NgDocBindPipe,
112
112
  NgDocRunPipe,
113
- ], template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.name\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"] }]
113
+ ], template: "<div class=\"ng-doc-playground-properties-wrapper\" [class.vertical]=\"observer | async\">\n\t<div class=\"ng-doc-playground-demos\">\n\t\t<ng-content></ng-content>\n\t</div>\n\t<div class=\"ng-doc-playground-properties\">\n\t\t<div class=\"ng-doc-playground-header\">\n\t\t\t<h4 ng-doc-text>Playground</h4>\n\t\t\t<button ng-doc-button color=\"red\" (click)=\"resetForm.emit()\">Reset</button>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-setting\">\n\t\t\t<ng-doc-checkbox [(ngModel)]=\"recreateDemo\" (ngModelChange)=\"recreateDemoChange.emit($event)\">\n\t\t\t\t<span\n\t\t\t\t\tng-doc-text\n\t\t\t\t\t[ngDocTooltip]=\"'Recreates demo everytime\\none of the input has changed'\"\n\t\t\t\t\t[positions]=\"['bottom-right', 'left-center']\"\n\t\t\t\t>\n\t\t\t\t\tRecreate\n\t\t\t\t\t<ng-doc-icon icon=\"info\" ngDocTextRight></ng-doc-icon>\n\t\t\t\t</span>\n\t\t\t</ng-doc-checkbox>\n\t\t</div>\n\t\t<div class=\"ng-doc-playground-divider\"></div>\n\t\t<ng-container *ngIf=\"propertyControls.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Settings</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let propertyControl of propertyControls\"\n\t\t\t\t[name]=\"propertyControl.property.inputName\"\n\t\t\t\t[property]=\"propertyControl.property\"\n\t\t\t\t[typeControl]=\"propertyControl.typeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'properties': propertyControl.propertyName\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\n\t\t<ng-container *ngIf=\"(dynamicContent | keyvalue)?.length\">\n\t\t\t<h5 class=\"ng-doc-title\" ng-doc-text>Content</h5>\n\t\t\t<ng-doc-playground-property\n\t\t\t\t*ngFor=\"let content of dynamicContent | keyvalue\"\n\t\t\t\t[name]=\"content.value.label\"\n\t\t\t\t[property]=\"content.value\"\n\t\t\t\t[typeControl]=\"contentTypeControl\"\n\t\t\t\t[control]=\"getFormControl | ngDocBind: this | ngDocRun: 'content': content.key\"\n\t\t\t>\n\t\t\t</ng-doc-playground-property>\n\t\t</ng-container>\n\t</div>\n</div>\n", styles: [":host .ng-doc-playground-properties-wrapper{position:relative;display:flex}:host .ng-doc-playground-properties-wrapper.vertical{flex-direction:column}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-demos{margin-right:0;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper.vertical .ng-doc-playground-properties{width:100%}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-demos{display:flex;flex-direction:column;width:100%;overflow:hidden;margin-right:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties{flex-shrink:0;width:300px;padding:calc(var(--ng-doc-base-gutter) * 2) calc(var(--ng-doc-base-gutter) * 3);background-color:var(--ng-doc-base-1);border-radius:var(--ng-doc-base-gutter)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties ng-doc-playground-property:not(:last-child){margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-controls{display:flex;justify-content:flex-end}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header{display:flex;align-items:center;justify-content:space-between;height:40px;margin-bottom:calc(var(--ng-doc-base-gutter) * 2)}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-header h4{margin:0}:host .ng-doc-playground-properties-wrapper .ng-doc-playground-properties .ng-doc-playground-setting{display:flex;flex-direction:column}:host .ng-doc-playground-properties-wrapper .ng-doc-title{margin-top:0;margin-bottom:calc(var(--ng-doc-base-gutter) + var(--ng-doc-base-gutter) / 2)}:host .ng-doc-playground-divider{margin:calc(var(--ng-doc-base-gutter) * 2) 0;height:1px;background-color:var(--ng-doc-base-2)}\n"] }]
114
114
  }], ctorParameters: function () { return [{ type: i1.BreakpointObserver }, { type: i0.Injector }]; }, propDecorators: { form: [{
115
115
  type: Input
116
116
  }], properties: [{
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
124
124
  }], resetForm: [{
125
125
  type: Output
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV4RSxPQUFPLEVBQ04sYUFBYSxFQUNiLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFB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bkhXLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdUQzNEL0MsbStEQStDQSxxNURESkUsa0JBQWtCLGlIQUNsQixvQkFBb0IsZ09BQ3BCLHNCQUFzQiw4RUFDdEIsV0FBVywrVkFDWCxxQkFBcUIsMFVBQ3JCLGtCQUFrQixrRkFDbEIsdUJBQXVCLDZEQUN2QixJQUFJLDZGQUNKLEtBQUssbUhBQ0wsZ0NBQWdDLDBIQUNoQyxTQUFTLHlDQUNULFlBQVksNENBQ1osYUFBYSw2Q0FDYixZQUFZOztTQUdELGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQXZCOUMsU0FBUzsrQkFDQyw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNSLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixLQUFLO3dCQUNMLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDWjtnSUFRRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge0FzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0aW9uVG9rZW4sXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0aXNEZXZNb2RlLFxuXHRPbkNoYW5nZXMsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge2dldFRva2VuRm9yVHlwZSwgaXNQbGF5Z3JvdW5kUHJvcGVydHl9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2x9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtleHRyYWN0VmFsdWVPclRocm93LCBpc1ByZXNlbnQsIG9iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbnRlbnQsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0JpbmRQaXBlLFxuXHROZ0RvY0J1dHRvbkNvbXBvbmVudCxcblx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHROZ0RvY1J1blBpcGUsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2t9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRGb3JtfSBmcm9tICcuLi9wbGF5Z3JvdW5kLWZvcm0nO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbXBvbmVudH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS1jb250cm9sJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllcycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHROZ0RvY1RleHRDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25Db21wb25lbnQsXG5cdFx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nSWYsXG5cdFx0TmdGb3IsXG5cdFx0TmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb21wb25lbnQsXG5cdFx0QXN5bmNQaXBlLFxuXHRcdEtleVZhbHVlUGlwZSxcblx0XHROZ0RvY0JpbmRQaXBlLFxuXHRcdE5nRG9jUnVuUGlwZSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllc0NvbXBvbmVudDxcblx0UCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsXG5cdEMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY1BsYXlncm91bmRDb250ZW50Pixcbj4gaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzPzogUDtcblxuXHRASW5wdXQoKVxuXHRkeW5hbWljQ29udGVudD86IEM7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QE91dHB1dCgpXG5cdHJlY3JlYXRlRGVtb0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBPdXRwdXQoKVxuXHRyZXNldEZvcm06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHRyZWFkb25seSBicmVha3BvaW50czogc3RyaW5nW10gPSBbQnJlYWtwb2ludHMuWFNtYWxsXTtcblx0cmVhZG9ubHkgb2JzZXJ2ZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0cHJvdGVjdGVkIHByb3BlcnR5Q29udHJvbHM6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbFtdID0gW107XG5cdHByb3RlY3RlZCBjb250ZW50VHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2xGb3JUeXBlKCdib29sZWFuJyk7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuXHRcdHRoaXMub2JzZXJ2ZXIgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuYnJlYWtwb2ludHMpLnBpcGUocGx1Y2soJ21hdGNoZXMnKSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyh7cHJvcGVydGllc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAocHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMpIHtcblx0XHRcdHRoaXMucHJvcGVydHlDb250cm9scyA9IG9iamVjdEtleXModGhpcy5wcm9wZXJ0aWVzKVxuXHRcdFx0XHQubWFwKChrZXk6IGtleW9mIFApID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnN0IHR5cGVDb250cm9sOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQgPSB0aGlzLmdldFR5cGVDb250cm9sKHByb3BlcnR5KTtcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBTdHJpbmcoa2V5KSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlQ29udHJvbCxcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcihpc1ByZXNlbnQpXG5cdFx0XHRcdC5zb3J0KChhOiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2wsIGI6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGFPcmRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gYS50eXBlQ29udHJvbC5vcHRpb25zPy5vcmRlcjtcblx0XHRcdFx0XHRjb25zdCBiT3JkZXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IGIudHlwZUNvbnRyb2wub3B0aW9ucz8ub3JkZXI7XG5cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGFPcmRlcikgJiYgaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBhT3JkZXIgLSBiT3JkZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChpc1ByZXNlbnQoYU9yZGVyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gYS5wcm9wZXJ0eS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5wcm9wZXJ0eS5uYW1lKTtcblx0XHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0Rm9ybUNvbnRyb2woY29udHJvbFR5cGU6IGtleW9mIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHMsIGtleTogc3RyaW5nKTogRm9ybUNvbnRyb2wge1xuXHRcdHJldHVybiB0aGlzLmZvcm0uZ2V0KGNvbnRyb2xUeXBlKT8uZ2V0KGtleSkgYXMgRm9ybUNvbnRyb2w7XG5cdH1cblxuXHRwcml2YXRlIGdldFR5cGVDb250cm9sKHByb3BlcnR5OiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eSk6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgdHlwZTogc3RyaW5nID0gcHJvcGVydHkudHlwZTtcblx0XHRjb25zdCB0eXBlQ29udHJvbDogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkID1cblx0XHRcdHRoaXMuZ2V0Q29udHJvbEZvclR5cGUodHlwZSkgPz9cblx0XHRcdHRoaXMuZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhpc1BsYXlncm91bmRQcm9wZXJ0eShwcm9wZXJ0eSkgPyBwcm9wZXJ0eS5vcHRpb25zIDogdW5kZWZpbmVkKTtcblxuXHRcdGlmICghdHlwZUNvbnRyb2wgJiYgaXNEZXZNb2RlKCkpIHtcblx0XHRcdGNvbnNvbGUud2Fybihcblx0XHRcdFx0YE5nRG9jUGxheWdyb3VuZCBkaWRuJ3QgZmluZCB0aGUgY29udHJvbCBmb3IgdGhlIEBJbnB1dCBcIiR7cHJvcGVydHkubmFtZX1cIiwgdGhlIHR5cGUgXCIke3R5cGV9XCIgd2FzIG5vdCByZWNvZ25pemVkJ2AsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlQ29udHJvbDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGUodHlwZTogc3RyaW5nKTogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB0b2tlbjogSW5qZWN0aW9uVG9rZW48TmdEb2NQcm92aWRlZFR5cGVDb250cm9sPiB8IHVuZGVmaW5lZCA9IGdldFRva2VuRm9yVHlwZSh0eXBlKTtcblxuXHRcdHJldHVybiB0b2tlbiA/IHRoaXMuaW5qZWN0b3IuZ2V0KHRva2VuKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhvcHRpb25zPzogc3RyaW5nW10pOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRsZXQgb3B0aW9uc0lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyBjaGVja2luZyB0aGF0IGFsbCB2YWx1ZXMgYXJlIGV4dHJhY3RhYmxlXG5cdFx0XHRcdG9wdGlvbnMuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiBleHRyYWN0VmFsdWVPclRocm93KGl0ZW0pKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRvcHRpb25zSXNWYWxpZCA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0aW9uc0lzVmFsaWQpIHtcblx0XHRcdFx0Y29uc3QgdG9rZW46IEluamVjdGlvblRva2VuPE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbD4gfCB1bmRlZmluZWQgPSBnZXRUb2tlbkZvclR5cGUoJ05nRG9jVHlwZUFsaWFzJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRva2VuID8gdGhpcy5pbmplY3Rvci5nZXQodG9rZW4pIDogdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBbY2xhc3MudmVydGljYWxdPVwib2JzZXJ2ZXIgfCBhc3luY1wiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGVtb3NcIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1oZWFkZXJcIj5cblx0XHRcdDxoNCBuZy1kb2MtdGV4dD5QbGF5Z3JvdW5kPC9oND5cblx0XHRcdDxidXR0b24gbmctZG9jLWJ1dHRvbiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0uZW1pdCgpXCI+UmVzZXQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtc2V0dGluZ1wiPlxuXHRcdFx0PG5nLWRvYy1jaGVja2JveCBbKG5nTW9kZWwpXT1cInJlY3JlYXRlRGVtb1wiIChuZ01vZGVsQ2hhbmdlKT1cInJlY3JlYXRlRGVtb0NoYW5nZS5lbWl0KCRldmVudClcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRuZy1kb2MtdGV4dFxuXHRcdFx0XHRcdFtuZ0RvY1Rvb2x0aXBdPVwiJ1JlY3JlYXRlcyBkZW1vIGV2ZXJ5dGltZVxcbm9uZSBvZiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQnXCJcblx0XHRcdFx0XHRbcG9zaXRpb25zXT1cIlsnYm90dG9tLXJpZ2h0JywgJ2xlZnQtY2VudGVyJ11cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0UmVjcmVhdGVcblx0XHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImluZm9cIiBuZ0RvY1RleHRSaWdodD48L25nLWRvYy1pY29uPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L25nLWRvYy1jaGVja2JveD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGl2aWRlclwiPjwvZGl2PlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eUNvbnRyb2xzLmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+U2V0dGluZ3M8L2g1PlxuXHRcdFx0PG5nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBwcm9wZXJ0eUNvbnRyb2wgb2YgcHJvcGVydHlDb250cm9sc1wiXG5cdFx0XHRcdFtuYW1lXT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eS5uYW1lXCJcblx0XHRcdFx0W3Byb3BlcnR5XT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eVwiXG5cdFx0XHRcdFt0eXBlQ29udHJvbF09XCJwcm9wZXJ0eUNvbnRyb2wudHlwZUNvbnRyb2xcIlxuXHRcdFx0XHRbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCB8IG5nRG9jQmluZDogdGhpcyB8IG5nRG9jUnVuOiAncHJvcGVydGllcyc6IHByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eU5hbWVcIlxuXHRcdFx0PlxuXHRcdFx0PC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIoZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZSk/Lmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+Q29udGVudDwvaDU+XG5cdFx0XHQ8bmctZG9jLXBsYXlncm91bmQtcHJvcGVydHlcblx0XHRcdFx0Km5nRm9yPVwibGV0IGNvbnRlbnQgb2YgZHluYW1pY0NvbnRlbnQgfCBrZXl2YWx1ZVwiXG5cdFx0XHRcdFtuYW1lXT1cImNvbnRlbnQudmFsdWUubGFiZWxcIlxuXHRcdFx0XHRbcHJvcGVydHldPVwiY29udGVudC52YWx1ZVwiXG5cdFx0XHRcdFt0eXBlQ29udHJvbF09XCJjb250ZW50VHlwZUNvbnRyb2xcIlxuXHRcdFx0XHRbY29udHJvbF09XCJnZXRGb3JtQ29udHJvbCB8IG5nRG9jQmluZDogdGhpcyB8IG5nRG9jUnVuOiAnY29udGVudCc6IGNvbnRlbnQua2V5XCJcblx0XHRcdD5cblx0XHRcdDwvbmctZG9jLXBsYXlncm91bmQtcHJvcGVydHk+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvZGl2PlxuPC9kaXY+XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBwL2NvbXBvbmVudHMvcGxheWdyb3VuZC9wbGF5Z3JvdW5kLXByb3BlcnRpZXMvcGxheWdyb3VuZC1wcm9wZXJ0aWVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUVaLFFBQVEsRUFDUixLQUFLLEVBQ0wsU0FBUyxFQUVULE1BQU0sR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWMsU0FBUyxFQUFFLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUV4RSxPQUFPLEVBQ04sYUFBYSxFQUNiLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUNyQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxzREFBc0QsQ0FBQzs7OztBQUd0RyxNQXVCYSxrQ0FBa0M7SUE2QjlDLFlBQStCLGtCQUFzQyxFQUFVLFFBQWtCO1FBQWxFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBZGpHLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLHVCQUFrQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBR3hFLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUVoRCxnQkFBVyxHQUFhLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRzVDLHFCQUFnQixHQUFxQyxFQUFFLENBQUM7UUFDeEQsdUJBQWtCLEdBQThCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUczRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQUMsVUFBVSxFQUFnQjtRQUN0QyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDakQsR0FBRyxDQUFDLENBQUMsR0FBWSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDcEIsTUFBTSxRQUFRLEdBQTRCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQy9ELE1BQU0sV0FBVyxHQUF5QyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUV4RixJQUFJLFdBQVcsRUFBRTt3QkFDaEIsT0FBTzs0QkFDTixZQUFZLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDekIsUUFBUTs0QkFDUixXQUFXO3lCQUNYLENBQUM7cUJBQ0Y7aUJBQ0Q7Z0JBRUQsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDLENBQUM7aUJBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQztpQkFDakIsSUFBSSxDQUFDLENBQUMsQ0FBaUMsRUFBRSxDQUFpQyxFQUFFLEVBQUU7Z0JBQzlFLE1BQU0sTUFBTSxHQUF1QixDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7Z0JBQ2hFLE1BQU0sTUFBTSxHQUF1QixDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUM7Z0JBRWhFLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDM0MsT0FBTyxNQUFNLEdBQUcsTUFBTSxDQUFDO2lCQUN2QjtnQkFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDdEIsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDVjtnQkFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDdEIsT0FBTyxDQUFDLENBQUM7aUJBQ1Q7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRSxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0YsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUE0QyxFQUFFLEdBQVc7UUFDdkUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFnQixDQUFDO0lBQzVELENBQUM7SUFFTyxjQUFjLENBQUMsUUFBaUM7UUFDdkQsTUFBTSxJQUFJLEdBQVcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFLEVBQUU7WUFDaEMsT0FBTyxDQUFDLElBQUksQ0FDWCwyREFBMkQsUUFBUSxDQUFDLFNBQVMsZ0JBQWdCLElBQUksdUJBQXVCLENBQ3hILENBQUM7U0FDRjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ3JDLE1BQU0sS0FBSyxHQUF5RCxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUYsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDckQsQ0FBQztJQUVPLHNCQUFzQixDQUFDLE9BQWtCO1FBQ2hELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDOUIsSUFBSSxjQUFjLEdBQVksSUFBSSxDQUFDO1lBRW5DLElBQUk7Z0JBQ0gsMkNBQTJDO2dCQUMzQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQUMsTUFBTTtnQkFDUCxjQUFjLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1lBRUQsSUFBSSxjQUFjLEVBQUU7Z0JBQ25CLE1BQU0sS0FBSyxHQUF5RCxlQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFFdEcsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDcEQ7U0FDRDtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7OEdBbkhXLGtDQUFrQztrR0FBbEMsa0NBQWtDLGdUQzNEL0MsdytEQStDQSxxNURESkUsa0JBQWtCLGlIQUNsQixvQkFBb0IsZ09BQ3BCLHNCQUFzQiw4RUFDdEIsV0FBVywrVkFDWCxxQkFBcUIsMFVBQ3JCLGtCQUFrQixrRkFDbEIsdUJBQXVCLDZEQUN2QixJQUFJLDZGQUNKLEtBQUssbUhBQ0wsZ0NBQWdDLDBIQUNoQyxTQUFTLHlDQUNULFlBQVksNENBQ1osYUFBYSw2Q0FDYixZQUFZOztTQUdELGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQXZCOUMsU0FBUzsrQkFDQyw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNSLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLHVCQUF1Qjt3QkFDdkIsSUFBSTt3QkFDSixLQUFLO3dCQUNMLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDWjtnSUFRRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge0FzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBOZ0ZvciwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SW5qZWN0aW9uVG9rZW4sXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0aXNEZXZNb2RlLFxuXHRPbkNoYW5nZXMsXG5cdE91dHB1dCxcblx0U2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge2dldFRva2VuRm9yVHlwZSwgaXNQbGF5Z3JvdW5kUHJvcGVydHl9IGZyb20gJ0BuZy1kb2MvYXBwL2hlbHBlcnMnO1xuaW1wb3J0IHtOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2x9IGZyb20gJ0BuZy1kb2MvYXBwL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtleHRyYWN0VmFsdWVPclRocm93LCBpc1ByZXNlbnQsIG9iamVjdEtleXN9IGZyb20gJ0BuZy1kb2MvY29yZSc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZENvbnRlbnQsIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsIE5nRG9jUGxheWdyb3VuZFByb3BlcnR5fSBmcm9tICdAbmctZG9jL2NvcmUvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuXHROZ0RvY0JpbmRQaXBlLFxuXHROZ0RvY0J1dHRvbkNvbXBvbmVudCxcblx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHROZ0RvY1J1blBpcGUsXG5cdE5nRG9jVGV4dENvbXBvbmVudCxcblx0TmdEb2NUZXh0UmlnaHREaXJlY3RpdmUsXG5cdE5nRG9jVG9vbHRpcERpcmVjdGl2ZSxcbn0gZnJvbSAnQG5nLWRvYy91aS1raXQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7cGx1Y2t9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRGb3JtfSBmcm9tICcuLi9wbGF5Z3JvdW5kLWZvcm0nO1xuaW1wb3J0IHtOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbXBvbmVudH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS9wbGF5Z3JvdW5kLXByb3BlcnR5LmNvbXBvbmVudCc7XG5pbXBvcnQge05nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbH0gZnJvbSAnLi4vcGxheWdyb3VuZC1wcm9wZXJ0eS1jb250cm9sJztcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllcycsXG5cdHRlbXBsYXRlVXJsOiAnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwnLFxuXHRzdHlsZVVybHM6IFsnLi9wbGF5Z3JvdW5kLXByb3BlcnRpZXMuY29tcG9uZW50LnNjc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdGltcG9ydHM6IFtcblx0XHROZ0RvY1RleHRDb21wb25lbnQsXG5cdFx0TmdEb2NCdXR0b25Db21wb25lbnQsXG5cdFx0TmdEb2NDaGVja2JveENvbXBvbmVudCxcblx0XHRGb3Jtc01vZHVsZSxcblx0XHROZ0RvY1Rvb2x0aXBEaXJlY3RpdmUsXG5cdFx0TmdEb2NJY29uQ29tcG9uZW50LFxuXHRcdE5nRG9jVGV4dFJpZ2h0RGlyZWN0aXZlLFxuXHRcdE5nSWYsXG5cdFx0TmdGb3IsXG5cdFx0TmdEb2NQbGF5Z3JvdW5kUHJvcGVydHlDb21wb25lbnQsXG5cdFx0QXN5bmNQaXBlLFxuXHRcdEtleVZhbHVlUGlwZSxcblx0XHROZ0RvY0JpbmRQaXBlLFxuXHRcdE5nRG9jUnVuUGlwZSxcblx0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdEb2NQbGF5Z3JvdW5kUHJvcGVydGllc0NvbXBvbmVudDxcblx0UCBleHRlbmRzIE5nRG9jUGxheWdyb3VuZFByb3BlcnRpZXMsXG5cdEMgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBOZ0RvY1BsYXlncm91bmRDb250ZW50Pixcbj4gaW1wbGVtZW50cyBPbkNoYW5nZXNcbntcblx0QElucHV0KClcblx0Zm9ybSE6IEZvcm1Hcm91cDxOZ0RvY1BsYXlncm91bmRGb3JtPjtcblxuXHRASW5wdXQoKVxuXHRwcm9wZXJ0aWVzPzogUDtcblxuXHRASW5wdXQoKVxuXHRkeW5hbWljQ29udGVudD86IEM7XG5cblx0QElucHV0KClcblx0cmVjcmVhdGVEZW1vOiBib29sZWFuID0gZmFsc2U7XG5cblx0QE91dHB1dCgpXG5cdHJlY3JlYXRlRGVtb0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG5cdEBPdXRwdXQoKVxuXHRyZXNldEZvcm06IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHRyZWFkb25seSBicmVha3BvaW50czogc3RyaW5nW10gPSBbQnJlYWtwb2ludHMuWFNtYWxsXTtcblx0cmVhZG9ubHkgb2JzZXJ2ZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0cHJvdGVjdGVkIHByb3BlcnR5Q29udHJvbHM6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbFtdID0gW107XG5cdHByb3RlY3RlZCBjb250ZW50VHlwZUNvbnRyb2w/OiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgPSB0aGlzLmdldENvbnRyb2xGb3JUeXBlKCdib29sZWFuJyk7XG5cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuXHRcdHRoaXMub2JzZXJ2ZXIgPSB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKHRoaXMuYnJlYWtwb2ludHMpLnBpcGUocGx1Y2soJ21hdGNoZXMnKSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyh7cHJvcGVydGllc306IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblx0XHRpZiAocHJvcGVydGllcyAmJiB0aGlzLnByb3BlcnRpZXMpIHtcblx0XHRcdHRoaXMucHJvcGVydHlDb250cm9scyA9IG9iamVjdEtleXModGhpcy5wcm9wZXJ0aWVzKVxuXHRcdFx0XHQubWFwKChrZXk6IGtleW9mIFApID0+IHtcblx0XHRcdFx0XHRpZiAodGhpcy5wcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNba2V5XTtcblx0XHRcdFx0XHRcdGNvbnN0IHR5cGVDb250cm9sOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQgPSB0aGlzLmdldFR5cGVDb250cm9sKHByb3BlcnR5KTtcblxuXHRcdFx0XHRcdFx0aWYgKHR5cGVDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0cHJvcGVydHlOYW1lOiBTdHJpbmcoa2V5KSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eSxcblx0XHRcdFx0XHRcdFx0XHR0eXBlQ29udHJvbCxcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcihpc1ByZXNlbnQpXG5cdFx0XHRcdC5zb3J0KChhOiBOZ0RvY1BsYXlncm91bmRQcm9wZXJ0eUNvbnRyb2wsIGI6IE5nRG9jUGxheWdyb3VuZFByb3BlcnR5Q29udHJvbCkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IGFPcmRlcjogbnVtYmVyIHwgdW5kZWZpbmVkID0gYS50eXBlQ29udHJvbC5vcHRpb25zPy5vcmRlcjtcblx0XHRcdFx0XHRjb25zdCBiT3JkZXI6IG51bWJlciB8IHVuZGVmaW5lZCA9IGIudHlwZUNvbnRyb2wub3B0aW9ucz8ub3JkZXI7XG5cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGFPcmRlcikgJiYgaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiBhT3JkZXIgLSBiT3JkZXI7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmIChpc1ByZXNlbnQoYU9yZGVyKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIC0xO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoaXNQcmVzZW50KGJPcmRlcikpIHtcblx0XHRcdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gYS5wcm9wZXJ0eS5pbnB1dE5hbWUubG9jYWxlQ29tcGFyZShiLnByb3BlcnR5LmlucHV0TmFtZSk7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdGdldEZvcm1Db250cm9sKGNvbnRyb2xUeXBlOiBrZXlvZiB0eXBlb2YgdGhpcy5mb3JtLmNvbnRyb2xzLCBrZXk6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcblx0XHRyZXR1cm4gdGhpcy5mb3JtLmdldChjb250cm9sVHlwZSk/LmdldChrZXkpIGFzIEZvcm1Db250cm9sO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRUeXBlQ29udHJvbChwcm9wZXJ0eTogTmdEb2NQbGF5Z3JvdW5kUHJvcGVydHkpOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHR5cGU6IHN0cmluZyA9IHByb3BlcnR5LnR5cGU7XG5cdFx0Y29uc3QgdHlwZUNvbnRyb2w6IE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbCB8IHVuZGVmaW5lZCA9XG5cdFx0XHR0aGlzLmdldENvbnRyb2xGb3JUeXBlKHR5cGUpID8/XG5cdFx0XHR0aGlzLmdldENvbnRyb2xGb3JUeXBlQWxpYXMoaXNQbGF5Z3JvdW5kUHJvcGVydHkocHJvcGVydHkpID8gcHJvcGVydHkub3B0aW9ucyA6IHVuZGVmaW5lZCk7XG5cblx0XHRpZiAoIXR5cGVDb250cm9sICYmIGlzRGV2TW9kZSgpKSB7XG5cdFx0XHRjb25zb2xlLndhcm4oXG5cdFx0XHRcdGBOZ0RvY1BsYXlncm91bmQgZGlkbid0IGZpbmQgdGhlIGNvbnRyb2wgZm9yIHRoZSBASW5wdXQgXCIke3Byb3BlcnR5LmlucHV0TmFtZX1cIiwgdGhlIHR5cGUgXCIke3R5cGV9XCIgd2FzIG5vdCByZWNvZ25pemVkJ2AsXG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdHJldHVybiB0eXBlQ29udHJvbDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGUodHlwZTogc3RyaW5nKTogTmdEb2NQcm92aWRlZFR5cGVDb250cm9sIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCB0b2tlbjogSW5qZWN0aW9uVG9rZW48TmdEb2NQcm92aWRlZFR5cGVDb250cm9sPiB8IHVuZGVmaW5lZCA9IGdldFRva2VuRm9yVHlwZSh0eXBlKTtcblxuXHRcdHJldHVybiB0b2tlbiA/IHRoaXMuaW5qZWN0b3IuZ2V0KHRva2VuKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdHByaXZhdGUgZ2V0Q29udHJvbEZvclR5cGVBbGlhcyhvcHRpb25zPzogc3RyaW5nW10pOiBOZ0RvY1Byb3ZpZGVkVHlwZUNvbnRyb2wgfCB1bmRlZmluZWQge1xuXHRcdGlmIChvcHRpb25zICYmIG9wdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRsZXQgb3B0aW9uc0lzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdFx0XHR0cnkge1xuXHRcdFx0XHQvLyBjaGVja2luZyB0aGF0IGFsbCB2YWx1ZXMgYXJlIGV4dHJhY3RhYmxlXG5cdFx0XHRcdG9wdGlvbnMuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiBleHRyYWN0VmFsdWVPclRocm93KGl0ZW0pKTtcblx0XHRcdH0gY2F0Y2gge1xuXHRcdFx0XHRvcHRpb25zSXNWYWxpZCA9IGZhbHNlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob3B0aW9uc0lzVmFsaWQpIHtcblx0XHRcdFx0Y29uc3QgdG9rZW46IEluamVjdGlvblRva2VuPE5nRG9jUHJvdmlkZWRUeXBlQ29udHJvbD4gfCB1bmRlZmluZWQgPSBnZXRUb2tlbkZvclR5cGUoJ05nRG9jVHlwZUFsaWFzJyk7XG5cblx0XHRcdFx0cmV0dXJuIHRva2VuID8gdGhpcy5pbmplY3Rvci5nZXQodG9rZW4pIDogdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0aWVzLXdyYXBwZXJcIiBbY2xhc3MudmVydGljYWxdPVwib2JzZXJ2ZXIgfCBhc3luY1wiPlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGVtb3NcIj5cblx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtcHJvcGVydGllc1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJuZy1kb2MtcGxheWdyb3VuZC1oZWFkZXJcIj5cblx0XHRcdDxoNCBuZy1kb2MtdGV4dD5QbGF5Z3JvdW5kPC9oND5cblx0XHRcdDxidXR0b24gbmctZG9jLWJ1dHRvbiBjb2xvcj1cInJlZFwiIChjbGljayk9XCJyZXNldEZvcm0uZW1pdCgpXCI+UmVzZXQ8L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtc2V0dGluZ1wiPlxuXHRcdFx0PG5nLWRvYy1jaGVja2JveCBbKG5nTW9kZWwpXT1cInJlY3JlYXRlRGVtb1wiIChuZ01vZGVsQ2hhbmdlKT1cInJlY3JlYXRlRGVtb0NoYW5nZS5lbWl0KCRldmVudClcIj5cblx0XHRcdFx0PHNwYW5cblx0XHRcdFx0XHRuZy1kb2MtdGV4dFxuXHRcdFx0XHRcdFtuZ0RvY1Rvb2x0aXBdPVwiJ1JlY3JlYXRlcyBkZW1vIGV2ZXJ5dGltZVxcbm9uZSBvZiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQnXCJcblx0XHRcdFx0XHRbcG9zaXRpb25zXT1cIlsnYm90dG9tLXJpZ2h0JywgJ2xlZnQtY2VudGVyJ11cIlxuXHRcdFx0XHQ+XG5cdFx0XHRcdFx0UmVjcmVhdGVcblx0XHRcdFx0XHQ8bmctZG9jLWljb24gaWNvbj1cImluZm9cIiBuZ0RvY1RleHRSaWdodD48L25nLWRvYy1pY29uPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L25nLWRvYy1jaGVja2JveD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwibmctZG9jLXBsYXlncm91bmQtZGl2aWRlclwiPjwvZGl2PlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eUNvbnRyb2xzLmxlbmd0aFwiPlxuXHRcdFx0PGg1IGNsYXNzPVwibmctZG9jLXRpdGxlXCIgbmctZG9jLXRleHQ+U2V0dGluZ3M8L2g1PlxuXHRcdFx0PG5nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCBwcm9wZXJ0eUNvbnRyb2wgb2YgcHJvcGVydHlDb250cm9sc1wiXG5cdFx0XHRcdFtuYW1lXT1cInByb3BlcnR5Q29udHJvbC5wcm9wZXJ0eS5pbnB1dE5hbWVcIlxuXHRcdFx0XHRbcHJvcGVydHldPVwicHJvcGVydHlDb250cm9sLnByb3BlcnR5XCJcblx0XHRcdFx0W3R5cGVDb250cm9sXT1cInByb3BlcnR5Q29udHJvbC50eXBlQ29udHJvbFwiXG5cdFx0XHRcdFtjb250cm9sXT1cImdldEZvcm1Db250cm9sIHwgbmdEb2NCaW5kOiB0aGlzIHwgbmdEb2NSdW46ICdwcm9wZXJ0aWVzJzogcHJvcGVydHlDb250cm9sLnByb3BlcnR5TmFtZVwiXG5cdFx0XHQ+XG5cdFx0XHQ8L25nLWRvYy1wbGF5Z3JvdW5kLXByb3BlcnR5PlxuXHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIihkeW5hbWljQ29udGVudCB8IGtleXZhbHVlKT8ubGVuZ3RoXCI+XG5cdFx0XHQ8aDUgY2xhc3M9XCJuZy1kb2MtdGl0bGVcIiBuZy1kb2MtdGV4dD5Db250ZW50PC9oNT5cblx0XHRcdDxuZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eVxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgY29udGVudCBvZiBkeW5hbWljQ29udGVudCB8IGtleXZhbHVlXCJcblx0XHRcdFx0W25hbWVdPVwiY29udGVudC52YWx1ZS5sYWJlbFwiXG5cdFx0XHRcdFtwcm9wZXJ0eV09XCJjb250ZW50LnZhbHVlXCJcblx0XHRcdFx0W3R5cGVDb250cm9sXT1cImNvbnRlbnRUeXBlQ29udHJvbFwiXG5cdFx0XHRcdFtjb250cm9sXT1cImdldEZvcm1Db250cm9sIHwgbmdEb2NCaW5kOiB0aGlzIHwgbmdEb2NSdW46ICdjb250ZW50JzogY29udGVudC5rZXlcIlxuXHRcdFx0PlxuXHRcdFx0PC9uZy1kb2MtcGxheWdyb3VuZC1wcm9wZXJ0eT5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0PC9kaXY+XG48L2Rpdj5cbiJdfQ==