@dereekb/dbx-web 9.15.8 → 9.16.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 (34) hide show
  1. package/esm2020/lib/interaction/filter/filter.module.mjs +23 -5
  2. package/esm2020/lib/interaction/filter/filter.popover.button.component.mjs +1 -1
  3. package/esm2020/lib/interaction/filter/filter.popover.button.directive.mjs +1 -1
  4. package/esm2020/lib/interaction/filter/filter.popover.component.mjs +12 -5
  5. package/esm2020/lib/interaction/filter/filter.preset.list.component.mjs +21 -0
  6. package/esm2020/lib/interaction/filter/filter.preset.menu.component.mjs +61 -0
  7. package/esm2020/lib/interaction/filter/filter.preset.mjs +64 -0
  8. package/esm2020/lib/interaction/filter/filter.wrapper.component.mjs +37 -22
  9. package/esm2020/lib/interaction/filter/index.mjs +3 -1
  10. package/esm2020/lib/layout/column/two/index.mjs +2 -1
  11. package/esm2020/lib/layout/column/two/two.column.module.mjs +5 -4
  12. package/esm2020/lib/layout/column/two/two.column.sref.showright.directive.mjs +34 -0
  13. package/esm2020/lib/router/layout/anchor/anchor.component.mjs +4 -3
  14. package/fesm2015/dereekb-dbx-web.mjs +210 -36
  15. package/fesm2015/dereekb-dbx-web.mjs.map +1 -1
  16. package/fesm2020/dereekb-dbx-web.mjs +215 -36
  17. package/fesm2020/dereekb-dbx-web.mjs.map +1 -1
  18. package/lib/interaction/filter/filter.module.d.ts +13 -7
  19. package/lib/interaction/filter/filter.popover.button.component.d.ts +1 -1
  20. package/lib/interaction/filter/filter.popover.button.directive.d.ts +2 -2
  21. package/lib/interaction/filter/filter.popover.component.d.ts +12 -5
  22. package/lib/interaction/filter/filter.preset.d.ts +24 -0
  23. package/lib/interaction/filter/filter.preset.list.component.d.ts +7 -0
  24. package/lib/interaction/filter/filter.preset.menu.component.d.ts +28 -0
  25. package/lib/interaction/filter/filter.wrapper.component.d.ts +14 -10
  26. package/lib/interaction/filter/index.d.ts +2 -0
  27. package/lib/layout/column/two/index.d.ts +1 -0
  28. package/lib/layout/column/two/two.column.module.d.ts +8 -7
  29. package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +16 -0
  30. package/lib/router/layout/anchor/_anchor.scss +11 -1
  31. package/lib/router/layout/anchor/anchor.component.d.ts +1 -0
  32. package/lib/router/layout/anchorlist/_anchorlist.scss +13 -0
  33. package/mapbox/package.json +3 -3
  34. package/package.json +3 -3
@@ -0,0 +1,34 @@
1
+ import { shareReplay } from 'rxjs/operators';
2
+ import { Directive } from '@angular/core';
3
+ import { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';
4
+ import { TwoColumnsContextStore } from './two.column.store';
5
+ import { distinctUntilChanged } from 'rxjs';
6
+ import { isNot } from '@dereekb/rxjs';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./two.column.store";
9
+ import * as i2 from "@dereekb/dbx-core";
10
+ /**
11
+ * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.
12
+ */
13
+ export class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective {
14
+ constructor(_twoColumnsContextStore, _dbxRouterService) {
15
+ super();
16
+ this._twoColumnsContextStore = _twoColumnsContextStore;
17
+ this._dbxRouterService = _dbxRouterService;
18
+ this.showRight$ = this._twoColumnsContextStore.backRef$.pipe(
19
+ // Only show right when the backRef is not exactly active
20
+ isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }), isNot(), distinctUntilChanged(), shareReplay(1));
21
+ }
22
+ ngOnInit() {
23
+ this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$);
24
+ }
25
+ }
26
+ DbxTwoColumnSrefShowRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxTwoColumnSrefShowRightDirective, deps: [{ token: i1.TwoColumnsContextStore }, { token: i2.DbxRouterService }], target: i0.ɵɵFactoryTarget.Directive });
27
+ DbxTwoColumnSrefShowRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: DbxTwoColumnSrefShowRightDirective, selector: "[dbxTwoColumnSrefShowRight]", usesInheritance: true, ngImport: i0 });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxTwoColumnSrefShowRightDirective, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: '[dbxTwoColumnSrefShowRight]'
32
+ }]
33
+ }], ctorParameters: function () { return [{ type: i1.TwoColumnsContextStore }, { type: i2.DbxRouterService }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLmNvbHVtbi5zcmVmLnNob3dyaWdodC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL3NyYy9saWIvbGF5b3V0L2NvbHVtbi90d28vdHdvLmNvbHVtbi5zcmVmLnNob3dyaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUV0Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSw2QkFBNkI7SUFTbkYsWUFBNkIsdUJBQStDLEVBQW1CLGlCQUFtQztRQUNoSSxLQUFLLEVBQUUsQ0FBQztRQURtQiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQW1CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFSekgsZUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsSUFBSTtRQUM5RCx5REFBeUQ7UUFDekQsZ0JBQWdCLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ25GLEtBQUssRUFBRSxFQUNQLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBaUIsQ0FBQztJQUN4RixDQUFDOzsrSEFmVSxrQ0FBa0M7bUhBQWxDLGtDQUFrQzsyRkFBbEMsa0NBQWtDO2tCQUg5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7aUJBQ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdFN1YnNjcmlwdGlvbkRpcmVjdGl2ZSwgRGJ4Um91dGVyU2VydmljZSwgaXNTZWd1ZVJlZkFjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IFR3b0NvbHVtbnNDb250ZXh0U3RvcmUgfSBmcm9tICcuL3R3by5jb2x1bW4uc3RvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOb3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcblxuLyoqXG4gKiBVc2VkIHdpdGggYSBEYnhUd29Db2x1bW5Db21wb25lbnQgdG8gY29udHJvbCBzaG93aW5nIHJpZ2h0IHdoZW4gdGhlIGN1cnJlbnQgcm91dGUgaXMgYSBjaGlsZCBvZiB0aGUgYmFja1JlZi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RieFR3b0NvbHVtblNyZWZTaG93UmlnaHRdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYnhUd29Db2x1bW5TcmVmU2hvd1JpZ2h0RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLl90d29Db2x1bW5zQ29udGV4dFN0b3JlLmJhY2tSZWYkLnBpcGUoXG4gICAgLy8gT25seSBzaG93IHJpZ2h0IHdoZW4gdGhlIGJhY2tSZWYgaXMgbm90IGV4YWN0bHkgYWN0aXZlXG4gICAgaXNTZWd1ZVJlZkFjdGl2ZSh7IGRieFJvdXRlclNlcnZpY2U6IHRoaXMuX2RieFJvdXRlclNlcnZpY2UsIGFjdGl2ZUV4YWN0bHk6IHRydWUgfSksXG4gICAgaXNOb3QoKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfdHdvQ29sdW1uc0NvbnRleHRTdG9yZTogVHdvQ29sdW1uc0NvbnRleHRTdG9yZSwgcHJpdmF0ZSByZWFkb25seSBfZGJ4Um91dGVyU2VydmljZTogRGJ4Um91dGVyU2VydmljZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuX3R3b0NvbHVtbnNDb250ZXh0U3RvcmUuc2V0U2hvd1JpZ2h0KHRoaXMuc2hvd1JpZ2h0JCkgYXMgU3Vic2NyaXB0aW9uO1xuICB9XG59XG4iXX0=
@@ -18,6 +18,7 @@ export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
18
18
  this.templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));
19
19
  this.url$ = this.anchor$.pipe(map((x) => x?.url), distinctUntilChanged(), shareReplay(1));
20
20
  this.target$ = this.anchor$.pipe(map((x) => x?.target), distinctUntilChanged(), shareReplay(1));
21
+ this.selectedClass$ = this.selected$.pipe(map((selected) => (selected ? 'dbx-anchor-selected' : '')), shareReplay(1));
21
22
  }
22
23
  get templateRef() {
23
24
  return this._templateRef.value;
@@ -37,17 +38,17 @@ export class DbxAnchorComponent extends AbstractDbxAnchorDirective {
37
38
  }
38
39
  }
39
40
  DbxAnchorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxAnchorComponent, deps: [{ token: i1.DbxRouterWebProviderConfig }], target: i0.ɵɵFactoryTarget.Component });
40
- DbxAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: "block" }, host: { attributes: { "dbx-anchor-block": "block" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
41
+ DbxAnchorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: { block: "block" }, host: { attributes: { "dbx-anchor-block": "block" }, classAttribute: "d-inline dbx-anchor" }, viewQueries: [{ propertyName: "templateRef", first: true, predicate: ["content"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
41
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DbxAnchorComponent, decorators: [{
42
43
  type: Component,
43
44
  args: [{ selector: 'dbx-anchor, [dbx-anchor]', host: {
44
45
  class: 'd-inline dbx-anchor',
45
46
  'dbx-anchor-block': 'block'
46
- }, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
47
+ }, template: "<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n" }]
47
48
  }], ctorParameters: function () { return [{ type: i1.DbxRouterWebProviderConfig }]; }, propDecorators: { block: [{
48
49
  type: Input
49
50
  }], templateRef: [{
50
51
  type: ViewChild,
51
52
  args: ['content', { read: TemplateRef }]
52
53
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L2FuY2hvci9hbmNob3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3JvdXRlci9sYXlvdXQvYW5jaG9yL2FuY2hvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUErQixNQUFNLG1CQUFtQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFFbkY7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBMkJoRSxZQUE2Qiw0QkFBd0Q7UUFDbkYsS0FBSyxFQUFFLENBQUM7UUFEbUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE0QjtRQTFCN0UsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBOEIsU0FBUyxDQUFDLENBQUM7UUFDMUUsaUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQWN4RSxTQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUNsQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUNPLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQ3JCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQXRCRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUF3QztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBaUJRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLHVCQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzsrR0ExQ1Usa0JBQWtCO21HQUFsQixrQkFBa0IsNlFBT0MsV0FBVyxvREN6QjNDLGcvQkEwQkE7MkZEUmEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixrQkFBa0IsRUFBRSxPQUFPO3FCQUM1QjtpSEFPTSxLQUFLO3NCQURYLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBza2lwRmlyc3RNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieEFuY2hvckRpcmVjdGl2ZSwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHNoYXJlUmVwbGF5LCBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXIvcm91dGVyLnByb3ZpZGVyLmNvbmZpZyc7XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgcmVuZGVycyBhbiBhbmNob3IgZWxlbWVudCBkZXBlbmRpbmcgb24gdGhlIGlucHV0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtYW5jaG9yLCBbZGJ4LWFuY2hvcl0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5jaG9yLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZC1pbmxpbmUgZGJ4LWFuY2hvcicsXG4gICAgJ2RieC1hbmNob3ItYmxvY2snOiAnYmxvY2snXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRGJ4QW5jaG9yQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhBbmNob3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF90ZW1wbGF0ZVJlZiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8VGVtcGxhdGVSZWY8dW5rbm93bj4+Pih1bmRlZmluZWQpO1xuICByZWFkb25seSB0ZW1wbGF0ZVJlZiQgPSB0aGlzLl90ZW1wbGF0ZVJlZi5waXBlKHNraXBGaXJzdE1heWJlKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYmxvY2s/OiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGdldCB0ZW1wbGF0ZVJlZigpOiBNYXliZTxUZW1wbGF0ZVJlZjx1bmtub3duPj4ge1xuICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZVJlZi52YWx1ZTtcbiAgfVxuXG4gIHNldCB0ZW1wbGF0ZVJlZih0ZW1wbGF0ZVJlZjogTWF5YmU8VGVtcGxhdGVSZWY8dW5rbm93bj4+KSB7XG4gICAgdGhpcy5fdGVtcGxhdGVSZWYubmV4dCh0ZW1wbGF0ZVJlZik7XG4gIH1cblxuICByZWFkb25seSB1cmwkID0gdGhpcy5hbmNob3IkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py51cmwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgdGFyZ2V0JCA9IHRoaXMuYW5jaG9yJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8udGFyZ2V0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYk5neFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnOiBEYnhSb3V0ZXJXZWJQcm92aWRlckNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3RlbXBsYXRlUmVmLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgc3JlZkFuY2hvckNvbmZpZygpOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRiTmd4Um91dGVyV2ViUHJvdmlkZXJDb25maWcuYW5jaG9yU2VndWVSZWZDb21wb25lbnQ7XG4gIH1cblxuICBjbGlja0FuY2hvcihldmVudD86IE1heWJlPE1vdXNlRXZlbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5hbmNob3I/Lm9uQ2xpY2s/LihldmVudCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGUkIHwgYXN5bmNcIj5cbiAgPCEtLSBQbGFpbiAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIENsaWNrIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWNsaWNrXCIgKGNsaWNrKT1cImNsaWNrQW5jaG9yKClcIiAqbmdTd2l0Y2hDYXNlPVwiMVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cbiAgPCEtLSBSb3V0ZXIgLS0+XG4gIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwic3JlZkFuY2hvckNvbmZpZ1wiICpuZ1N3aXRjaENhc2U9XCIyXCI+XG4gICAgPCEtLSBJbmplY3RlZCBpbiBjaGlsZC4gLS0+XG4gIDwvZGJ4LWluamVjdGlvbj5cbiAgPCEtLSBIcmVmIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWhyZWZcIiBbaHJlZl09XCJ1cmwkIHwgYXN5bmNcIiBbYXR0ci50YXJnZXRdPVwidGFyZ2V0JCB8IGFzeW5jXCIgKm5nU3dpdGNoQ2FzZT1cIjNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2E+XG4gIDwhLS0gRGlzYWJsZWQgb3IgTm9uZSAtLT5cbiAgPGEgY2xhc3M9XCJkYngtYW5jaG9yLWEgZGJ4LWFuY2hvci1kaXNhYmxlZFwiICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9hPlxuPC9uZy1jb250YWluZXI+XG48IS0tIFRlbXBsYXRlIGNvbnRlbnQgLS0+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5jaG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9yb3V0ZXIvbGF5b3V0L2FuY2hvci9hbmNob3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL3JvdXRlci9sYXlvdXQvYW5jaG9yL2FuY2hvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUErQixNQUFNLG1CQUFtQixDQUFDO0FBRTVGLE9BQU8sRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7QUFFbkY7O0dBRUc7QUFTSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBaUNoRSxZQUE2Qiw0QkFBd0Q7UUFDbkYsS0FBSyxFQUFFLENBQUM7UUFEbUIsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE0QjtRQWhDN0UsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBOEIsU0FBUyxDQUFDLENBQUM7UUFDMUUsaUJBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQWN4RSxTQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUNsQixvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLFlBQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQ3JCLG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDM0MsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQzFELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBSUYsQ0FBQztJQTVCRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUF3QztRQUN0RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBdUJRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLHVCQUF1QixDQUFDO0lBQ25FLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBeUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDOzsrR0FoRFUsa0JBQWtCO21HQUFsQixrQkFBa0IsNlFBT0MsV0FBVyxvREN6QjNDLDZoQ0EwQkE7MkZEUmEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUscUJBQXFCO3dCQUM1QixrQkFBa0IsRUFBRSxPQUFPO3FCQUM1QjtpSEFPTSxLQUFLO3NCQURYLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBza2lwRmlyc3RNYXliZSwgdGFwTG9nIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBJbnB1dCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4QW5jaG9yRGlyZWN0aXZlLCBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc2hhcmVSZXBsYXksIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4Um91dGVyV2ViUHJvdmlkZXJDb25maWcgfSBmcm9tICcuLi8uLi9wcm92aWRlci9yb3V0ZXIucHJvdmlkZXIuY29uZmlnJztcblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCByZW5kZXJzIGFuIGFuY2hvciBlbGVtZW50IGRlcGVuZGluZyBvbiB0aGUgaW5wdXQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1hbmNob3IsIFtkYngtYW5jaG9yXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbmNob3IuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWlubGluZSBkYngtYW5jaG9yJyxcbiAgICAnZGJ4LWFuY2hvci1ibG9jayc6ICdibG9jaydcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBbmNob3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdERieEFuY2hvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3RlbXBsYXRlUmVmID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxUZW1wbGF0ZVJlZjx1bmtub3duPj4+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmVmJCA9IHRoaXMuX3RlbXBsYXRlUmVmLnBpcGUoc2tpcEZpcnN0TWF5YmUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBibG9jaz86IGJvb2xlYW47XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgZ2V0IHRlbXBsYXRlUmVmKCk6IE1heWJlPFRlbXBsYXRlUmVmPHVua25vd24+PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RlbXBsYXRlUmVmLnZhbHVlO1xuICB9XG5cbiAgc2V0IHRlbXBsYXRlUmVmKHRlbXBsYXRlUmVmOiBNYXliZTxUZW1wbGF0ZVJlZjx1bmtub3duPj4pIHtcbiAgICB0aGlzLl90ZW1wbGF0ZVJlZi5uZXh0KHRlbXBsYXRlUmVmKTtcbiAgfVxuXG4gIHJlYWRvbmx5IHVybCQgPSB0aGlzLmFuY2hvciQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnVybCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHRhcmdldCQgPSB0aGlzLmFuY2hvciQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnRhcmdldCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkQ2xhc3MkID0gdGhpcy5zZWxlY3RlZCQucGlwZShcbiAgICBtYXAoKHNlbGVjdGVkKSA9PiAoc2VsZWN0ZWQgPyAnZGJ4LWFuY2hvci1zZWxlY3RlZCcgOiAnJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkYk5neFJvdXRlcldlYlByb3ZpZGVyQ29uZmlnOiBEYnhSb3V0ZXJXZWJQcm92aWRlckNvbmZpZykge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX3RlbXBsYXRlUmVmLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgc3JlZkFuY2hvckNvbmZpZygpOiBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRiTmd4Um91dGVyV2ViUHJvdmlkZXJDb25maWcuYW5jaG9yU2VndWVSZWZDb21wb25lbnQ7XG4gIH1cblxuICBjbGlja0FuY2hvcihldmVudD86IE1heWJlPE1vdXNlRXZlbnQ+KTogdm9pZCB7XG4gICAgdGhpcy5hbmNob3I/Lm9uQ2xpY2s/LihldmVudCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGUkIHwgYXN5bmNcIj5cbiAgPCEtLSBQbGFpbiAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiMFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8IS0tIENsaWNrIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWNsaWNrXCIgW25nQ2xhc3NdPVwiKHNlbGVjdGVkQ2xhc3MkIHwgYXN5bmMpIHx8ICcnXCIgKGNsaWNrKT1cImNsaWNrQW5jaG9yKClcIiAqbmdTd2l0Y2hDYXNlPVwiMVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvYT5cbiAgPCEtLSBSb3V0ZXIgLS0+XG4gIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwic3JlZkFuY2hvckNvbmZpZ1wiICpuZ1N3aXRjaENhc2U9XCIyXCI+XG4gICAgPCEtLSBJbmplY3RlZCBpbiBjaGlsZC4gLS0+XG4gIDwvZGJ4LWluamVjdGlvbj5cbiAgPCEtLSBIcmVmIC0tPlxuICA8YSBjbGFzcz1cImRieC1hbmNob3ItYSBkYngtYW5jaG9yLWhyZWZcIiBbaHJlZl09XCJ1cmwkIHwgYXN5bmNcIiBbYXR0ci50YXJnZXRdPVwidGFyZ2V0JCB8IGFzeW5jXCIgKm5nU3dpdGNoQ2FzZT1cIjNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L2E+XG4gIDwhLS0gRGlzYWJsZWQgb3IgTm9uZSAtLT5cbiAgPGEgY2xhc3M9XCJkYngtYW5jaG9yLWEgZGJ4LWFuY2hvci1kaXNhYmxlZFwiICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9hPlxuPC9uZy1jb250YWluZXI+XG48IS0tIFRlbXBsYXRlIGNvbnRlbnQgLS0+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=