@vendure/admin-ui 2.1.0-next.4 → 2.1.0-next.5

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 (112) hide show
  1. package/catalog/components/product-list/product-list.component.d.ts +1 -1
  2. package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +1 -2
  3. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
  4. package/catalog/components/stock-location-list/stock-location-list.component.d.ts +1 -1
  5. package/catalog/providers/product-detail/product-detail.service.d.ts +1 -1
  6. package/core/common/base-detail.component.d.ts +2 -2
  7. package/core/common/base-entity-resolver.d.ts +1 -1
  8. package/core/common/version.d.ts +1 -1
  9. package/core/components/base-nav/base-nav.component.d.ts +4 -2
  10. package/core/data/providers/data.service.d.ts +3 -3
  11. package/core/data/query-result.d.ts +1 -1
  12. package/core/extension/add-action-bar-item.d.ts +8 -15
  13. package/core/extension/add-nav-menu-item.d.ts +15 -23
  14. package/core/extension/register-bulk-action.d.ts +24 -28
  15. package/core/extension/register-custom-detail-component.d.ts +45 -0
  16. package/core/extension/register-data-table-component.d.ts +3 -2
  17. package/core/extension/register-form-input-component.d.ts +14 -13
  18. package/core/extension/register-history-entry-component.d.ts +55 -0
  19. package/core/extension/register-page-tab.d.ts +23 -0
  20. package/core/extension/register-route-component.d.ts +49 -3
  21. package/core/providers/bulk-action-registry/bulk-action-types.d.ts +2 -2
  22. package/core/providers/modal/modal.service.d.ts +1 -1
  23. package/core/providers/modal/modal.types.d.ts +3 -3
  24. package/core/providers/nav-builder/nav-builder-types.d.ts +29 -4
  25. package/core/providers/nav-builder/nav-builder.service.d.ts +3 -2
  26. package/core/providers/notification/notification.service.d.ts +4 -4
  27. package/core/providers/page/page.service.d.ts +1 -23
  28. package/core/public_api.d.ts +1 -0
  29. package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +8 -3
  30. package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +1 -1
  31. package/core/shared/components/asset-preview/asset-preview.component.d.ts +9 -1
  32. package/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +2 -0
  33. package/core/shared/components/data-table-2/data-table2.component.d.ts +1 -1
  34. package/core/shared/components/extension-host/host-external-frame.d.ts +1 -1
  35. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +1 -1
  36. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  37. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  38. package/core/shared/pipes/duration.pipe.d.ts +1 -1
  39. package/core/shared/pipes/file-size.pipe.d.ts +1 -1
  40. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +1 -1
  41. package/esm2022/catalog/components/assets/assets.component.mjs +2 -2
  42. package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +1 -1
  43. package/esm2022/core/common/base-detail.component.mjs +3 -3
  44. package/esm2022/core/common/base-entity-resolver.mjs +3 -3
  45. package/esm2022/core/common/utilities/custom-field-default-value.mjs +3 -3
  46. package/esm2022/core/common/version.mjs +2 -2
  47. package/esm2022/core/components/base-nav/base-nav.component.mjs +17 -5
  48. package/esm2022/core/data/providers/data.service.mjs +4 -4
  49. package/esm2022/core/data/query-result.mjs +2 -2
  50. package/esm2022/core/extension/add-action-bar-item.mjs +9 -16
  51. package/esm2022/core/extension/add-nav-menu-item.mjs +16 -24
  52. package/esm2022/core/extension/register-bulk-action.mjs +25 -29
  53. package/esm2022/core/extension/register-custom-detail-component.mjs +46 -1
  54. package/esm2022/core/extension/register-data-table-component.mjs +4 -3
  55. package/esm2022/core/extension/register-form-input-component.mjs +15 -14
  56. package/esm2022/core/extension/register-history-entry-component.mjs +56 -1
  57. package/esm2022/core/extension/register-page-tab.mjs +36 -0
  58. package/esm2022/core/extension/register-route-component.mjs +44 -3
  59. package/esm2022/core/providers/bulk-action-registry/bulk-action-types.mjs +1 -1
  60. package/esm2022/core/providers/modal/modal.service.mjs +2 -2
  61. package/esm2022/core/providers/modal/modal.types.mjs +1 -1
  62. package/esm2022/core/providers/nav-builder/nav-builder-types.mjs +1 -1
  63. package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +3 -3
  64. package/esm2022/core/providers/notification/notification.service.mjs +3 -3
  65. package/esm2022/core/providers/page/page.service.mjs +2 -36
  66. package/esm2022/core/public_api.mjs +2 -1
  67. package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +2 -2
  68. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +32 -15
  69. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +2 -2
  70. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +2 -2
  71. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +36 -3
  72. package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +4 -3
  73. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +2 -2
  74. package/esm2022/core/shared/components/extension-host/host-external-frame.mjs +2 -2
  75. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +2 -2
  76. package/esm2022/core/shared/components/form-field/form-field.component.mjs +2 -2
  77. package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +2 -2
  78. package/esm2022/core/shared/pipes/duration.pipe.mjs +2 -2
  79. package/esm2022/core/shared/pipes/file-size.pipe.mjs +2 -2
  80. package/esm2022/react/components/react-custom-column.component.mjs +3 -3
  81. package/esm2022/react/components/react-custom-detail.component.mjs +3 -3
  82. package/esm2022/react/components/react-form-input.component.mjs +3 -3
  83. package/esm2022/react/components/react-route.component.mjs +3 -3
  84. package/esm2022/react/public_api.mjs +7 -1
  85. package/esm2022/react/react-components/ActionBar.mjs +26 -0
  86. package/esm2022/react/react-components/CdsIcon.mjs +30 -0
  87. package/esm2022/react/react-components/FormField.mjs +28 -0
  88. package/esm2022/react/react-components/PageBlock.mjs +24 -0
  89. package/esm2022/react/react-components/PageDetailLayout.mjs +26 -0
  90. package/esm2022/react/react-hooks/use-detail-component-data.mjs +1 -1
  91. package/esm2022/react/react-hooks/use-route-params.mjs +39 -0
  92. package/esm2022/react/register-react-data-table-component.mjs +3 -1
  93. package/esm2022/react/register-react-route-component.mjs +1 -1
  94. package/esm2022/settings/components/tax-category-list/tax-category-list-bulk-actions.mjs +1 -1
  95. package/fesm2022/vendure-admin-ui-catalog.mjs +2 -2
  96. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  97. package/fesm2022/vendure-admin-ui-core.mjs +350 -164
  98. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  99. package/fesm2022/vendure-admin-ui-react.mjs +178 -11
  100. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  101. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  102. package/package.json +14 -14
  103. package/react/public_api.d.ts +6 -0
  104. package/react/react-components/ActionBar.d.ts +23 -0
  105. package/react/react-components/CdsIcon.d.ts +45 -0
  106. package/react/react-components/FormField.d.ts +27 -0
  107. package/react/react-components/PageBlock.d.ts +21 -0
  108. package/react/react-components/PageDetailLayout.d.ts +23 -0
  109. package/react/react-hooks/use-detail-component-data.d.ts +2 -2
  110. package/react/react-hooks/use-route-params.d.ts +22 -0
  111. package/react/register-react-data-table-component.d.ts +2 -0
  112. package/react/register-react-route-component.d.ts +6 -0
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, HostBinding, Input, } from '@angular/core';
2
2
  import { assertNever } from '@vendure/common/lib/shared-utils';
3
- import { BehaviorSubject, combineLatest } from 'rxjs';
4
- import { map } from 'rxjs/operators';
3
+ import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
+ import { map, tap } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../providers/nav-builder/nav-builder.service";
7
7
  import * as i2 from "@angular/router";
@@ -13,15 +13,28 @@ import * as i7 from "../../directives/if-permissions.directive";
13
13
  import * as i8 from "../ui-extension-point/ui-extension-point.component";
14
14
  import * as i9 from "@ngx-translate/core";
15
15
  export class ActionBarItemsComponent {
16
- constructor(navBuilderService, route, dataService, notificationService) {
16
+ constructor(navBuilderService, route, dataService, notificationService, injector) {
17
17
  this.navBuilderService = navBuilderService;
18
18
  this.route = route;
19
19
  this.dataService = dataService;
20
20
  this.notificationService = notificationService;
21
+ this.injector = injector;
22
+ this.buttonStates = {};
21
23
  this.locationId$ = new BehaviorSubject('');
22
24
  }
23
25
  ngOnInit() {
24
- this.items$ = combineLatest(this.navBuilderService.actionBarConfig$, this.locationId$).pipe(map(([items, locationId]) => items.filter(config => config.locationId === locationId)));
26
+ this.items$ = combineLatest(this.navBuilderService.actionBarConfig$, this.locationId$).pipe(map(([items, locationId]) => items.filter(config => config.locationId === locationId)), tap(items => {
27
+ const context = this.createContext();
28
+ for (const item of items) {
29
+ const buttonState$ = typeof item.buttonState === 'function'
30
+ ? item.buttonState(context)
31
+ : of({
32
+ disabled: false,
33
+ visible: true,
34
+ });
35
+ this.buttonStates[item.id] = buttonState$;
36
+ }
37
+ }));
25
38
  }
26
39
  ngOnChanges(changes) {
27
40
  if ('locationId' in changes) {
@@ -30,15 +43,11 @@ export class ActionBarItemsComponent {
30
43
  }
31
44
  handleClick(event, item) {
32
45
  if (typeof item.onClick === 'function') {
33
- item.onClick(event, {
34
- route: this.route,
35
- dataService: this.dataService,
36
- notificationService: this.notificationService,
37
- });
46
+ item.onClick(event, this.createContext());
38
47
  }
39
48
  }
40
49
  getRouterLink(item) {
41
- return this.navBuilderService.getRouterLink(item, this.route);
50
+ return this.navBuilderService.getRouterLink({ routerLink: item.routerLink, context: this.createContext() }, this.route);
42
51
  }
43
52
  getButtonStyles(item) {
44
53
  const styles = ['button'];
@@ -64,16 +73,24 @@ export class ActionBarItemsComponent {
64
73
  return '';
65
74
  }
66
75
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ActionBarItemsComponent, deps: [{ token: i1.NavBuilderService }, { token: i2.ActivatedRoute }, { token: i3.DataService }, { token: i4.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: { locationId: "locationId" }, host: { properties: { "attr.data-location-id": "this.locationId" } }, usesOnChanges: true, ngImport: i0, template: "<vdr-ui-extension-point [locationId]=\"locationId\" api=\"actionBar\" [leftPx]=\"-24\">\r\n <ng-container *ngFor=\"let item of items$ | async\">\r\n <button\r\n *vdrIfPermissions=\"item.requiresPermission\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n [disabled]=\"item.disabled ? (item.disabled | async) : false\"\r\n (click)=\"handleClick($event, item)\"\r\n [ngClass]=\"getButtonStyles(item)\"\r\n class=\"mr-2\"\r\n >\r\n <clr-icon *ngIf=\"item.icon\" [attr.shape]=\"item.icon\"></clr-icon>\r\n {{ item.label | translate }}\r\n </button>\r\n </ng-container>\r\n</vdr-ui-extension-point>\r\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i5.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i8.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "metadata", "topPx", "leftPx", "display", "api"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
+ createContext() {
77
+ return {
78
+ route: this.route,
79
+ injector: this.injector,
80
+ dataService: this.dataService,
81
+ notificationService: this.notificationService,
82
+ };
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ActionBarItemsComponent, deps: [{ token: i1.NavBuilderService }, { token: i2.ActivatedRoute }, { token: i3.DataService }, { token: i4.NotificationService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: ActionBarItemsComponent, selector: "vdr-action-bar-items", inputs: { locationId: "locationId" }, host: { properties: { "attr.data-location-id": "this.locationId" } }, usesOnChanges: true, ngImport: i0, template: "<vdr-ui-extension-point [locationId]=\"locationId\" api=\"actionBar\" [leftPx]=\"-24\">\r\n <ng-container *ngFor=\"let item of items$ | async\">\r\n <ng-container *ngIf=\"buttonStates[item.id] | async as buttonState\">\r\n <button\r\n *vdrIfPermissions=\"item.requiresPermission\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n [class.hidden]=\"buttonState.visible === false\"\r\n [disabled]=\"buttonState.disabled || (item.disabled ? (item.disabled | async) : false)\"\r\n (click)=\"handleClick($event, item)\"\r\n [ngClass]=\"getButtonStyles(item)\"\r\n class=\"mr-2\"\r\n >\r\n <clr-icon *ngIf=\"item.icon\" [attr.shape]=\"item.icon\"></clr-icon>\r\n {{ item.label | translate }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n</vdr-ui-extension-point>\r\n", styles: [":host{display:inline-block}button.hidden{display:none}\n"], dependencies: [{ kind: "directive", type: i5.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i7.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { kind: "component", type: i8.UiExtensionPointComponent, selector: "vdr-ui-extension-point", inputs: ["locationId", "metadata", "topPx", "leftPx", "display", "api"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
86
  }
70
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ActionBarItemsComponent, decorators: [{
71
88
  type: Component,
72
- args: [{ selector: 'vdr-action-bar-items', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-ui-extension-point [locationId]=\"locationId\" api=\"actionBar\" [leftPx]=\"-24\">\r\n <ng-container *ngFor=\"let item of items$ | async\">\r\n <button\r\n *vdrIfPermissions=\"item.requiresPermission\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n [disabled]=\"item.disabled ? (item.disabled | async) : false\"\r\n (click)=\"handleClick($event, item)\"\r\n [ngClass]=\"getButtonStyles(item)\"\r\n class=\"mr-2\"\r\n >\r\n <clr-icon *ngIf=\"item.icon\" [attr.shape]=\"item.icon\"></clr-icon>\r\n {{ item.label | translate }}\r\n </button>\r\n </ng-container>\r\n</vdr-ui-extension-point>\r\n", styles: [":host{display:inline-block}\n"] }]
73
- }], ctorParameters: function () { return [{ type: i1.NavBuilderService }, { type: i2.ActivatedRoute }, { type: i3.DataService }, { type: i4.NotificationService }]; }, propDecorators: { locationId: [{
89
+ args: [{ selector: 'vdr-action-bar-items', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-ui-extension-point [locationId]=\"locationId\" api=\"actionBar\" [leftPx]=\"-24\">\r\n <ng-container *ngFor=\"let item of items$ | async\">\r\n <ng-container *ngIf=\"buttonStates[item.id] | async as buttonState\">\r\n <button\r\n *vdrIfPermissions=\"item.requiresPermission\"\r\n [routerLink]=\"getRouterLink(item)\"\r\n [class.hidden]=\"buttonState.visible === false\"\r\n [disabled]=\"buttonState.disabled || (item.disabled ? (item.disabled | async) : false)\"\r\n (click)=\"handleClick($event, item)\"\r\n [ngClass]=\"getButtonStyles(item)\"\r\n class=\"mr-2\"\r\n >\r\n <clr-icon *ngIf=\"item.icon\" [attr.shape]=\"item.icon\"></clr-icon>\r\n {{ item.label | translate }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n</vdr-ui-extension-point>\r\n", styles: [":host{display:inline-block}button.hidden{display:none}\n"] }]
90
+ }], ctorParameters: function () { return [{ type: i1.NavBuilderService }, { type: i2.ActivatedRoute }, { type: i3.DataService }, { type: i4.NotificationService }, { type: i0.Injector }]; }, propDecorators: { locationId: [{
74
91
  type: HostBinding,
75
92
  args: ['attr.data-location-id']
76
93
  }, {
77
94
  type: Input
78
95
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2FjdGlvbi1iYXItaXRlbXMvYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2FjdGlvbi1iYXItaXRlbXMvYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsS0FBSyxHQUlSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBa0IsTUFBTSxNQUFNLENBQUM7QUFDdEUsT0FBTyxFQUFVLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7OztBQWM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBUWhDLFlBQ1ksaUJBQW9DLEVBQ3BDLEtBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLG1CQUF3QztRQUh4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFONUMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQU9uRCxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN2RixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FDekYsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBaUIsRUFBRSxJQUFtQjtRQUM5QyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLEVBQUU7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUM3QixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2FBQ2hELENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQW1CO1FBQy9CLE1BQU0sTUFBTSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUM7U0FDakI7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFtQjtRQUMzQyxRQUFRLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEIsS0FBSyxTQUFTO2dCQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ2QsS0FBSyxTQUFTO2dCQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3RFLEtBQUssU0FBUztnQkFDVixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlFLEtBQUssU0FBUztnQkFDVixPQUFPLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlFO2dCQUNJLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO1NBQ2pCO0lBQ0wsQ0FBQzs4R0FqRVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNkxDMUJwQyx1c0JBZUE7OzJGRFdhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTTtpTUFLL0MsVUFBVTtzQkFGVCxXQUFXO3VCQUFDLHVCQUF1Qjs7c0JBQ25DLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWN0aW9uQmFyTG9jYXRpb25JZCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aW9uQmFySXRlbSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9uYXYtYnVpbGRlci9uYXYtYnVpbGRlci10eXBlcyc7XG5pbXBvcnQgeyBOYXZCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9uYXYtYnVpbGRlci9uYXYtYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd2ZHItYWN0aW9uLWJhci1pdGVtcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1iYXItaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FjdGlvbi1iYXItaXRlbXMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQWN0aW9uQmFySXRlbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbG9jYXRpb24taWQnKVxuICAgIEBJbnB1dCgpXG4gICAgbG9jYXRpb25JZDogQWN0aW9uQmFyTG9jYXRpb25JZDtcblxuICAgIGl0ZW1zJDogT2JzZXJ2YWJsZTxBY3Rpb25CYXJJdGVtW10+O1xuICAgIHByaXZhdGUgbG9jYXRpb25JZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgbmF2QnVpbGRlclNlcnZpY2U6IE5hdkJ1aWxkZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pdGVtcyQgPSBjb21iaW5lTGF0ZXN0KHRoaXMubmF2QnVpbGRlclNlcnZpY2UuYWN0aW9uQmFyQ29uZmlnJCwgdGhpcy5sb2NhdGlvbklkJCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2l0ZW1zLCBsb2NhdGlvbklkXSkgPT4gaXRlbXMuZmlsdGVyKGNvbmZpZyA9PiBjb25maWcubG9jYXRpb25JZCA9PT0gbG9jYXRpb25JZCkpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCdsb2NhdGlvbklkJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uSWQkLm5leHQoY2hhbmdlc1snbG9jYXRpb25JZCddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQWN0aW9uQmFySXRlbSkge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgaXRlbS5vbkNsaWNrKGV2ZW50LCB7XG4gICAgICAgICAgICAgICAgcm91dGU6IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgZGF0YVNlcnZpY2U6IHRoaXMuZGF0YVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZTogdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSb3V0ZXJMaW5rKGl0ZW06IEFjdGlvbkJhckl0ZW0pOiBhbnlbXSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZCdWlsZGVyU2VydmljZS5nZXRSb3V0ZXJMaW5rKGl0ZW0sIHRoaXMucm91dGUpO1xuICAgIH1cblxuICAgIGdldEJ1dHRvblN0eWxlcyhpdGVtOiBBY3Rpb25CYXJJdGVtKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBzdHlsZXMgPSBbJ2J1dHRvbiddO1xuICAgICAgICBpZiAoaXRlbS5idXR0b25TdHlsZSAmJiBpdGVtLmJ1dHRvblN0eWxlID09PSAnbGluaycpIHtcbiAgICAgICAgICAgIHN0eWxlcy5wdXNoKCdidG4tbGluaycpO1xuICAgICAgICAgICAgcmV0dXJuIHN0eWxlcztcbiAgICAgICAgfVxuICAgICAgICBzdHlsZXMucHVzaCh0aGlzLmdldEJ1dHRvbkNvbG9yQ2xhc3MoaXRlbSkpO1xuICAgICAgICByZXR1cm4gc3R5bGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QnV0dG9uQ29sb3JDbGFzcyhpdGVtOiBBY3Rpb25CYXJJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChpdGVtLmJ1dHRvbkNvbG9yKSB7XG4gICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICBjYXNlICdwcmltYXJ5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5idXR0b25TdHlsZSA9PT0gJ291dGxpbmUnID8gJ2J0bi1vdXRsaW5lJyA6ICdwcmltYXJ5JztcbiAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmJ1dHRvblN0eWxlID09PSAnb3V0bGluZScgPyAnYnRuLXN1Y2Nlc3Mtb3V0bGluZScgOiAnc3VjY2Vzcyc7XG4gICAgICAgICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5idXR0b25TdHlsZSA9PT0gJ291dGxpbmUnID8gJ2J0bi13YXJuaW5nLW91dGxpbmUnIDogJ3dhcm5pbmcnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBhc3NlcnROZXZlcihpdGVtLmJ1dHRvbkNvbG9yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dmRyLXVpLWV4dGVuc2lvbi1wb2ludCBbbG9jYXRpb25JZF09XCJsb2NhdGlvbklkXCIgYXBpPVwiYWN0aW9uQmFyXCIgW2xlZnRQeF09XCItMjRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXMkIHwgYXN5bmNcIj5cclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICp2ZHJJZlBlcm1pc3Npb25zPVwiaXRlbS5yZXF1aXJlc1Blcm1pc3Npb25cIlxyXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJnZXRSb3V0ZXJMaW5rKGl0ZW0pXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgPyAoaXRlbS5kaXNhYmxlZCB8IGFzeW5jKSA6IGZhbHNlXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJnZXRCdXR0b25TdHlsZXMoaXRlbSlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm1yLTJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGNsci1pY29uICpuZ0lmPVwiaXRlbS5pY29uXCIgW2F0dHIuc2hhcGVdPVwiaXRlbS5pY29uXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvdmRyLXVpLWV4dGVuc2lvbi1wb2ludD5cclxuIl19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2FjdGlvbi1iYXItaXRlbXMvYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2FjdGlvbi1iYXItaXRlbXMvYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBRVgsS0FBSyxHQUlSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBd0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBa0IxQyxNQUFNLE9BQU8sdUJBQXVCO0lBU2hDLFlBQ1ksaUJBQW9DLEVBQ3BDLEtBQXFCLEVBQ3JCLFdBQXdCLEVBQ3hCLG1CQUF3QyxFQUN4QyxRQUFrQjtRQUpsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVI5QixpQkFBWSxHQUF1RCxFQUFFLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztJQVFuRCxDQUFDO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFN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QyxXQUFXLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUM7U0FDakI7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNqQixPQUFPO1lBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtTQUNoRCxDQUFDO0lBQ04sQ0FBQzs4R0F4RlEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsNkxDL0JwQyw2N0JBa0JBOzsyRkRhYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU07d05BSy9DLFVBQVU7c0JBRlQsV0FBVzt1QkFBQyx1QkFBdUI7O3NCQUNuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBhc3NlcnROZXZlciB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtZXJnZUFsbCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBBY3Rpb25CYXJMb2NhdGlvbklkIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEFjdGlvbkJhckJ1dHRvblN0YXRlLFxyXG4gICAgQWN0aW9uQmFyQ29udGV4dCxcclxuICAgIEFjdGlvbkJhckl0ZW0sXHJcbn0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25hdi1idWlsZGVyL25hdi1idWlsZGVyLXR5cGVzJztcclxuaW1wb3J0IHsgTmF2QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbmF2LWJ1aWxkZXIvbmF2LWJ1aWxkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYWN0aW9uLWJhci1pdGVtcycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJhci1pdGVtcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hY3Rpb24tYmFyLWl0ZW1zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJhckl0ZW1zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtbG9jYXRpb24taWQnKVxyXG4gICAgQElucHV0KClcclxuICAgIGxvY2F0aW9uSWQ6IEFjdGlvbkJhckxvY2F0aW9uSWQ7XHJcblxyXG4gICAgaXRlbXMkOiBPYnNlcnZhYmxlPEFjdGlvbkJhckl0ZW1bXT47XHJcbiAgICBidXR0b25TdGF0ZXM6IHsgW2lkOiBzdHJpbmddOiBPYnNlcnZhYmxlPEFjdGlvbkJhckJ1dHRvblN0YXRlPiB9ID0ge307XHJcbiAgICBwcml2YXRlIGxvY2F0aW9uSWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIG5hdkJ1aWxkZXJTZXJ2aWNlOiBOYXZCdWlsZGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pdGVtcyQgPSBjb21iaW5lTGF0ZXN0KHRoaXMubmF2QnVpbGRlclNlcnZpY2UuYWN0aW9uQmFyQ29uZmlnJCwgdGhpcy5sb2NhdGlvbklkJCkucGlwZShcclxuICAgICAgICAgICAgbWFwKChbaXRlbXMsIGxvY2F0aW9uSWRdKSA9PiBpdGVtcy5maWx0ZXIoY29uZmlnID0+IGNvbmZpZy5sb2NhdGlvbklkID09PSBsb2NhdGlvbklkKSksXHJcbiAgICAgICAgICAgIHRhcChpdGVtcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jcmVhdGVDb250ZXh0KCk7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBidXR0b25TdGF0ZSQgPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgaXRlbS5idXR0b25TdGF0ZSA9PT0gJ2Z1bmN0aW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmJ1dHRvblN0YXRlKGNvbnRleHQpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG9mKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnV0dG9uU3RhdGVzW2l0ZW0uaWRdID0gYnV0dG9uU3RhdGUkO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2xvY2F0aW9uSWQnIGluIGNoYW5nZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbklkJC5uZXh0KGNoYW5nZXNbJ2xvY2F0aW9uSWQnXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbTogQWN0aW9uQmFySXRlbSkge1xyXG4gICAgICAgIGlmICh0eXBlb2YgaXRlbS5vbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIGl0ZW0ub25DbGljayhldmVudCwgdGhpcy5jcmVhdGVDb250ZXh0KCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRSb3V0ZXJMaW5rKGl0ZW06IEFjdGlvbkJhckl0ZW0pOiBhbnlbXSB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5hdkJ1aWxkZXJTZXJ2aWNlLmdldFJvdXRlckxpbmsoXHJcbiAgICAgICAgICAgIHsgcm91dGVyTGluazogaXRlbS5yb3V0ZXJMaW5rLCBjb250ZXh0OiB0aGlzLmNyZWF0ZUNvbnRleHQoKSB9LFxyXG4gICAgICAgICAgICB0aGlzLnJvdXRlLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QnV0dG9uU3R5bGVzKGl0ZW06IEFjdGlvbkJhckl0ZW0pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGVzID0gWydidXR0b24nXTtcclxuICAgICAgICBpZiAoaXRlbS5idXR0b25TdHlsZSAmJiBpdGVtLmJ1dHRvblN0eWxlID09PSAnbGluaycpIHtcclxuICAgICAgICAgICAgc3R5bGVzLnB1c2goJ2J0bi1saW5rJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHlsZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0eWxlcy5wdXNoKHRoaXMuZ2V0QnV0dG9uQ29sb3JDbGFzcyhpdGVtKSk7XHJcbiAgICAgICAgcmV0dXJuIHN0eWxlcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEJ1dHRvbkNvbG9yQ2xhc3MoaXRlbTogQWN0aW9uQmFySXRlbSk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChpdGVtLmJ1dHRvbkNvbG9yKSB7XHJcbiAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgICBjYXNlICdwcmltYXJ5JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmJ1dHRvblN0eWxlID09PSAnb3V0bGluZScgPyAnYnRuLW91dGxpbmUnIDogJ3ByaW1hcnknO1xyXG4gICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmJ1dHRvblN0eWxlID09PSAnb3V0bGluZScgPyAnYnRuLXN1Y2Nlc3Mtb3V0bGluZScgOiAnc3VjY2Vzcyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYnV0dG9uU3R5bGUgPT09ICdvdXRsaW5lJyA/ICdidG4td2FybmluZy1vdXRsaW5lJyA6ICd3YXJuaW5nJztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKGl0ZW0uYnV0dG9uQ29sb3IpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUNvbnRleHQoKTogQWN0aW9uQmFyQ29udGV4dCB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgcm91dGU6IHRoaXMucm91dGUsXHJcbiAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgICBkYXRhU2VydmljZTogdGhpcy5kYXRhU2VydmljZSxcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZTogdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci11aS1leHRlbnNpb24tcG9pbnQgW2xvY2F0aW9uSWRdPVwibG9jYXRpb25JZFwiIGFwaT1cImFjdGlvbkJhclwiIFtsZWZ0UHhdPVwiLTI0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zJCB8IGFzeW5jXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvblN0YXRlc1tpdGVtLmlkXSB8IGFzeW5jIGFzIGJ1dHRvblN0YXRlXCI+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICp2ZHJJZlBlcm1pc3Npb25zPVwiaXRlbS5yZXF1aXJlc1Blcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiZ2V0Um91dGVyTGluayhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cImJ1dHRvblN0YXRlLnZpc2libGUgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJidXR0b25TdGF0ZS5kaXNhYmxlZCB8fCAoaXRlbS5kaXNhYmxlZCA/IChpdGVtLmRpc2FibGVkIHwgYXN5bmMpIDogZmFsc2UpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQsIGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImdldEJ1dHRvblN0eWxlcyhpdGVtKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1yLTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8Y2xyLWljb24gKm5nSWY9XCJpdGVtLmljb25cIiBbYXR0ci5zaGFwZV09XCJpdGVtLmljb25cIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L3Zkci11aS1leHRlbnNpb24tcG9pbnQ+XHJcbiJdfQ==
@@ -65,7 +65,7 @@ export class AssetGalleryComponent {
65
65
  .fromComponent(AssetPreviewDialogComponent, {
66
66
  size: 'xl',
67
67
  closable: true,
68
- locals: { asset },
68
+ locals: { asset, assets: this.assets },
69
69
  })
70
70
  .subscribe();
71
71
  }
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
90
90
  }], deleteAssets: [{
91
91
  type: Output
92
92
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVVyRyxNQUFNLE9BQU8scUJBQXFCO0lBZ0I5QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWQ5Qzs7V0FFRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ2xELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFZO1lBQy9DLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLFlBQVksRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FBQztJQUU4QyxDQUFDO0lBRWxELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pELDhDQUE4QztnQkFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxLQUFLLEVBQUU7b0JBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQy9CO2FBQ0o7U0FDSjtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUQ7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdCLEVBQUUsS0FBa0I7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBbUI7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLDJCQUEyQixFQUFFO1lBQ3hDLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUU7U0FDcEIsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBaUI7UUFDN0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQW5FUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrT0NkbEMsMnVIQTZFQTs7MkZEL0RhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTttR0FHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2VsZWN0aW9uTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsaXRpZXMvc2VsZWN0aW9uLW1hbmFnZXInO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2V0UHJldmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBBc3NldExpa2UgfSBmcm9tICcuL2Fzc2V0LWdhbGxlcnkudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1nYWxsZXJ5JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Fzc2V0LWdhbGxlcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRHYWxsZXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGFzc2V0czogQXNzZXRMaWtlW107XHJcbiAgICAvKipcclxuICAgICAqIElmIHRydWUsIGFsbG93cyBtdWx0aXBsZSBhc3NldHMgdG8gYmUgc2VsZWN0ZWQgYnkgY3RybCtjbGlja2luZy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgbXVsdGlTZWxlY3QgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNhbkRlbGV0ZSA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXNzZXRMaWtlW10+KCk7XHJcbiAgICBAT3V0cHV0KCkgZGVsZXRlQXNzZXRzID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldExpa2VbXT4oKTtcclxuXHJcbiAgICBzZWxlY3Rpb25NYW5hZ2VyID0gbmV3IFNlbGVjdGlvbk1hbmFnZXI8QXNzZXRMaWtlPih7XHJcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRoaXMubXVsdGlTZWxlY3QsXHJcbiAgICAgICAgaXRlbXNBcmVFcXVhbDogKGEsIGIpID0+IGEuaWQgPT09IGIuaWQsXHJcbiAgICAgICAgYWRkaXRpdmVNb2RlOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICh0aGlzLmFzc2V0cykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0IG9mIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBhbnkgc2VsZWN0ZWQgYXNzZXRzIHdpdGggYW55IGNoYW5nZXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hc3NldHMuZmluZChhID0+IGEuaWQgPT09IGFzc2V0LmlkKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXNzZXQsIG1hdGNoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2hhbmdlc1snYXNzZXRzJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNldEN1cnJlbnRJdGVtcyh0aGlzLmFzc2V0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGFuZ2VzWydtdWx0aVNlbGVjdCddKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZXRNdWx0aVNlbGVjdCh0aGlzLm11bHRpU2VsZWN0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlU2VsZWN0aW9uKGFzc2V0OiBBc3NldExpa2UsIGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci50b2dnbGVTZWxlY3Rpb24oYXNzZXQsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE11bHRpcGxlKGFzc2V0czogQXNzZXRMaWtlW10pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0TXVsdGlwbGUoYXNzZXRzKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2VsZWN0ZWQoYXNzZXQ6IEFzc2V0TGlrZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1hbmFnZXIuaXNTZWxlY3RlZChhc3NldCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGFzdFNlbGVjdGVkKCk6IEFzc2V0TGlrZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5sYXN0U2VsZWN0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmV2aWV3QXNzZXQoYXNzZXQ6IEFzc2V0TGlrZSkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEFzc2V0UHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7IGFzc2V0IH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbnRpdHlJbmZvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnYWxsZXJ5XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjYXJkXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgYXNzZXQgb2YgYXNzZXRzXCJcclxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uKGFzc2V0LCAkZXZlbnQpXCJcclxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChhc3NldClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltZ1wiPlxyXG4gICAgICAgICAgICA8dmRyLXNlbGVjdC10b2dnbGVcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc1NlbGVjdGVkKGFzc2V0KVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbaGlkZGVuV2hlbk9mZl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvdmRyLXNlbGVjdC10b2dnbGU+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJhc3NldC10aHVtYlwiIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiAndGh1bWInXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsXCI+XHJcbiAgICAgICAgICAgIDx2ZHItZW50aXR5LWluZm9cclxuICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiYXNzZXRcIlxyXG4gICAgICAgICAgICAgICAgW3NtYWxsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVudGl0eUluZm9DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWVudGl0eS1pbmZvPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiYXNzZXQubmFtZVwiPnt7IGFzc2V0Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJpbmZvLWJhclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCJzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjEyOFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7ICdjYXRhbG9nLm5vLXNlbGVjdGlvbicgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA+PSAxXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwibGFzdFNlbGVjdGVkKCkucHJldmlldyArICc/cHJlc2V0PW1lZGl1bSdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIGRldGFpbHNcIiAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA+PSAxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgbGFzdFNlbGVjdGVkKCkubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2Pnt7ICdhc3NldC5vcmlnaW5hbC1hc3NldC1zaXplJyB8IHRyYW5zbGF0ZSB9fToge3sgbGFzdFNlbGVjdGVkKCkuZmlsZVNpemUgfCBmaWxlc2l6ZSB9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGlwICpuZ0Zvcj1cImxldCB0YWcgb2YgbGFzdFNlbGVjdGVkKCkudGFnc1wiIFtjb2xvckZyb21dPVwidGFnLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PGNsci1pY29uIHNoYXBlPVwidGFnXCIgY2xhc3M9XCJtcjJcIj48L2Nsci1pY29uPiB7eyB0YWcudmFsdWUgfX08L3Zkci1jaGlwXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy4vJywgbGFzdFNlbGVjdGVkKCkuaWRdXCIgY2xhc3M9XCJidXR0b24tZ2hvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwZW5jaWxcIj48L2Nsci1pY29uPiB7eyAnY29tbW9uLmVkaXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiYXJyb3cgcmlnaHRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldmlld0Fzc2V0KGxhc3RTZWxlY3RlZCgpKVwiIGNsYXNzPVwiYnV0dG9uLXNtYWxsIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJleWVcIj48L2Nsci1pY29uPiB7eyAnYXNzZXQucHJldmlldycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhbkRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlQXNzZXRzLmVtaXQoc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pXCIgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWFzc2V0LXByZXZpZXctbGlua3MgY2xhc3M9XCJcIiBbYXNzZXRdPVwibGFzdFNlbGVjdGVkKClcIj48L3Zkci1hc3NldC1wcmV2aWV3LWxpbmtzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgc3RhY2tcIiBbY2xhc3MudmlzaWJsZV09XCJzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggPiAxXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLWNvdW50XCIgW2NsYXNzLnZpc2libGVdPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIHt7ICdhc3NldC5hc3NldHMtc2VsZWN0ZWQtY291bnQnIHwgdHJhbnNsYXRlIDogeyBjb3VudDogc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoIH0gfX1cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYXNzZXQgb2Ygc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb25cIj57eyBhc3NldC5uYW1lIH19PC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUUxSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVVyRyxNQUFNLE9BQU8scUJBQXFCO0lBZ0I5QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWQ5Qzs7V0FFRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ2xELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFZO1lBQy9DLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLFlBQVksRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FBQztJQUU4QyxDQUFDO0lBRWxELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDYixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7Z0JBQ2pELDhDQUE4QztnQkFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxLQUFLLEVBQUU7b0JBQ1AsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQy9CO2FBQ0o7U0FDSjtRQUNELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDMUQ7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdCLEVBQUUsS0FBa0I7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxjQUFjLENBQUMsTUFBbUI7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVk7UUFDUixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWdCO1FBQ3pCLElBQUksQ0FBQyxZQUFZO2FBQ1osYUFBYSxDQUFDLDJCQUEyQixFQUFFO1lBQ3hDLElBQUksRUFBRSxJQUFJO1lBQ1YsUUFBUSxFQUFFLElBQUk7WUFDZCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUU7U0FDekMsQ0FBQzthQUNELFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBaUI7UUFDN0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUM1QixDQUFDOzhHQW5FUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwrT0NkbEMsMnVIQTZFQTs7MkZEL0RhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxtQkFBbUIsbUJBR1osdUJBQXVCLENBQUMsTUFBTTttR0FHdEMsTUFBTTtzQkFBZCxLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2VsZWN0aW9uTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlsaXRpZXMvc2VsZWN0aW9uLW1hbmFnZXInO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbW9kYWwvbW9kYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2V0UHJldmlld0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBBc3NldExpa2UgfSBmcm9tICcuL2Fzc2V0LWdhbGxlcnkudHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1nYWxsZXJ5JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1nYWxsZXJ5LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Fzc2V0LWdhbGxlcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRHYWxsZXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGFzc2V0czogQXNzZXRMaWtlW107XHJcbiAgICAvKipcclxuICAgICAqIElmIHRydWUsIGFsbG93cyBtdWx0aXBsZSBhc3NldHMgdG8gYmUgc2VsZWN0ZWQgYnkgY3RybCtjbGlja2luZy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgbXVsdGlTZWxlY3QgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGNhbkRlbGV0ZSA9IGZhbHNlO1xyXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QXNzZXRMaWtlW10+KCk7XHJcbiAgICBAT3V0cHV0KCkgZGVsZXRlQXNzZXRzID0gbmV3IEV2ZW50RW1pdHRlcjxBc3NldExpa2VbXT4oKTtcclxuXHJcbiAgICBzZWxlY3Rpb25NYW5hZ2VyID0gbmV3IFNlbGVjdGlvbk1hbmFnZXI8QXNzZXRMaWtlPih7XHJcbiAgICAgICAgbXVsdGlTZWxlY3Q6IHRoaXMubXVsdGlTZWxlY3QsXHJcbiAgICAgICAgaXRlbXNBcmVFcXVhbDogKGEsIGIpID0+IGEuaWQgPT09IGIuaWQsXHJcbiAgICAgICAgYWRkaXRpdmVNb2RlOiBmYWxzZSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmICh0aGlzLmFzc2V0cykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0IG9mIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBhbnkgc2VsZWN0ZWQgYXNzZXRzIHdpdGggYW55IGNoYW5nZXNcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gdGhpcy5hc3NldHMuZmluZChhID0+IGEuaWQgPT09IGFzc2V0LmlkKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oYXNzZXQsIG1hdGNoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2hhbmdlc1snYXNzZXRzJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25NYW5hZ2VyLnNldEN1cnJlbnRJdGVtcyh0aGlzLmFzc2V0cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChjaGFuZ2VzWydtdWx0aVNlbGVjdCddKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZXRNdWx0aVNlbGVjdCh0aGlzLm11bHRpU2VsZWN0KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlU2VsZWN0aW9uKGFzc2V0OiBBc3NldExpa2UsIGV2ZW50PzogTW91c2VFdmVudCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTWFuYWdlci50b2dnbGVTZWxlY3Rpb24oYXNzZXQsIGV2ZW50KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdE11bHRpcGxlKGFzc2V0czogQXNzZXRMaWtlW10pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0TXVsdGlwbGUoYXNzZXRzKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGlzU2VsZWN0ZWQoYXNzZXQ6IEFzc2V0TGlrZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1hbmFnZXIuaXNTZWxlY3RlZChhc3NldCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGFzdFNlbGVjdGVkKCk6IEFzc2V0TGlrZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uTWFuYWdlci5sYXN0U2VsZWN0ZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmV2aWV3QXNzZXQoYXNzZXQ6IEFzc2V0TGlrZSkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KEFzc2V0UHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3hsJyxcclxuICAgICAgICAgICAgICAgIGNsb3NhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbG9jYWxzOiB7IGFzc2V0LCBhc3NldHM6IHRoaXMuYXNzZXRzIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBlbnRpdHlJbmZvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJnYWxsZXJ5XCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjYXJkXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgYXNzZXQgb2YgYXNzZXRzXCJcclxuICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uKGFzc2V0LCAkZXZlbnQpXCJcclxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChhc3NldClcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltZ1wiPlxyXG4gICAgICAgICAgICA8dmRyLXNlbGVjdC10b2dnbGVcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpc1NlbGVjdGVkKGFzc2V0KVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbaGlkZGVuV2hlbk9mZl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvdmRyLXNlbGVjdC10b2dnbGU+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJhc3NldC10aHVtYlwiIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiAndGh1bWInXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlsXCI+XHJcbiAgICAgICAgICAgIDx2ZHItZW50aXR5LWluZm9cclxuICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiYXNzZXRcIlxyXG4gICAgICAgICAgICAgICAgW3NtYWxsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVudGl0eUluZm9DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvdmRyLWVudGl0eS1pbmZvPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGl0bGVdPVwiYXNzZXQubmFtZVwiPnt7IGFzc2V0Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJpbmZvLWJhclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pbWdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgKm5nSWY9XCJzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImltYWdlXCIgc2l6ZT1cIjEyOFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7ICdjYXRhbG9nLm5vLXNlbGVjdGlvbicgfCB0cmFuc2xhdGUgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA+PSAxXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwibGFzdFNlbGVjdGVkKCkucHJldmlldyArICc/cHJlc2V0PW1lZGl1bSdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJsb2NrIGRldGFpbHNcIiAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA+PSAxXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3sgbGFzdFNlbGVjdGVkKCkubmFtZSB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2Pnt7ICdhc3NldC5vcmlnaW5hbC1hc3NldC1zaXplJyB8IHRyYW5zbGF0ZSB9fToge3sgbGFzdFNlbGVjdGVkKCkuZmlsZVNpemUgfCBmaWxlc2l6ZSB9fTwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1jaGlwICpuZ0Zvcj1cImxldCB0YWcgb2YgbGFzdFNlbGVjdGVkKCkudGFnc1wiIFtjb2xvckZyb21dPVwidGFnLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PGNsci1pY29uIHNoYXBlPVwidGFnXCIgY2xhc3M9XCJtcjJcIj48L2Nsci1pY29uPiB7eyB0YWcudmFsdWUgfX08L3Zkci1jaGlwXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJbJy4vJywgbGFzdFNlbGVjdGVkKCkuaWRdXCIgY2xhc3M9XCJidXR0b24tZ2hvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJwZW5jaWxcIj48L2Nsci1pY29uPiB7eyAnY29tbW9uLmVkaXQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiYXJyb3cgcmlnaHRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGlvbk1hbmFnZXIuc2VsZWN0aW9uLmxlbmd0aCA9PT0gMVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwicHJldmlld0Fzc2V0KGxhc3RTZWxlY3RlZCgpKVwiIGNsYXNzPVwiYnV0dG9uLXNtYWxsIG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJleWVcIj48L2Nsci1pY29uPiB7eyAnYXNzZXQucHJldmlldycgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNhbkRlbGV0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlQXNzZXRzLmVtaXQoc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24pXCIgY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRyYXNoXCIgY2xhc3M9XCJpcy1kYW5nZXJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMVwiICpuZ0lmPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID09PSAxXCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWFzc2V0LXByZXZpZXctbGlua3MgY2xhc3M9XCJcIiBbYXNzZXRdPVwibGFzdFNlbGVjdGVkKClcIj48L3Zkci1hc3NldC1wcmV2aWV3LWxpbmtzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQgc3RhY2tcIiBbY2xhc3MudmlzaWJsZV09XCJzZWxlY3Rpb25NYW5hZ2VyLnNlbGVjdGlvbi5sZW5ndGggPiAxXCI+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uLWNvdW50XCIgW2NsYXNzLnZpc2libGVdPVwic2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgIHt7ICdhc3NldC5hc3NldHMtc2VsZWN0ZWQtY291bnQnIHwgdHJhbnNsYXRlIDogeyBjb3VudDogc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb24ubGVuZ3RoIH0gfX1cclxuICAgICAgICA8dWw+XHJcbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYXNzZXQgb2Ygc2VsZWN0aW9uTWFuYWdlci5zZWxlY3Rpb25cIj57eyBhc3NldC5uYW1lIH19PC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -21,7 +21,7 @@ import * as i12 from "@ngx-translate/core";
21
21
  * A dialog which allows the creation and selection of assets.
22
22
  *
23
23
  * @example
24
- * ```TypeScript
24
+ * ```ts
25
25
  * selectAssets() {
26
26
  * this.modalService
27
27
  * .fromComponent(AssetPickerDialogComponent, {
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
141
141
  type: ViewChild,
142
142
  args: ['assetGalleryComponent']
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRHLE9BQU8sRUFLSCxlQUFlLEVBQ2YsU0FBUyxHQUVaLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQU9ILE1BQU0sT0FBTywwQkFBMEI7SUF3Qm5DLFlBQW9CLFdBQXdCLEVBQVUsbUJBQXdDO1FBQTFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXJCOUYscUJBQWdCLEdBQXVCO1lBQ25DLFdBQVcsRUFBRSxDQUFDO1lBQ2QsWUFBWSxFQUFFLEVBQUU7WUFDaEIsVUFBVSxFQUFFLENBQUM7U0FDaEIs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eUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07b0lBV3ZDLHlCQUF5QjtzQkFEaEMsU0FBUzt1QkFBQywyQkFBMkI7Z0JBRzlCLHFCQUFxQjtzQkFENUIsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25JbnN0YW5jZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIGZpbmFsaXplLCBtYXAsIHRha2UgYXMgcnhqc1Rha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEFzc2V0LFxyXG4gICAgQ3JlYXRlQXNzZXRzTXV0YXRpb24sXHJcbiAgICBHZXRBc3NldExpc3RRdWVyeSxcclxuICAgIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgU29ydE9yZGVyLFxyXG4gICAgVGFnRnJhZ21lbnQsXHJcbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlcnlSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3F1ZXJ5LXJlc3VsdCc7XHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC50eXBlcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXRHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlrZSB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS50eXBlcyc7XHJcbmltcG9ydCB7IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hc3NldC1zZWFyY2gtaW5wdXQvYXNzZXQtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgZGlhbG9nIHdoaWNoIGFsbG93cyB0aGUgY3JlYXRpb24gYW5kIHNlbGVjdGlvbiBvZiBhc3NldHMuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogc2VsZWN0QXNzZXRzKCkge1xyXG4gKiAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAqICAgICAuZnJvbUNvbXBvbmVudChBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCwge1xyXG4gKiAgICAgICAgIHNpemU6ICd4bCcsXHJcbiAqICAgICB9KVxyXG4gKiAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gKiAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCkge1xyXG4gKiAgICAgICAgICAgICAvLyAuLi5cclxuICogICAgICAgICB9XHJcbiAqICAgICB9KTtcclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjb21wb25lbnRzXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFzc2V0LXBpY2tlci1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXBpY2tlci1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldFBpY2tlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBEaWFsb2c8QXNzZXRbXT4ge1xyXG4gICAgYXNzZXRzJDogT2JzZXJ2YWJsZTxBc3NldExpa2VbXT47XHJcbiAgICBhbGxUYWdzJDogT2JzZXJ2YWJsZTxUYWdGcmFnbWVudFtdPjtcclxuICAgIHBhZ2luYXRpb25Db25maWc6IFBhZ2luYXRpb25JbnN0YW5jZSA9IHtcclxuICAgICAgICBjdXJyZW50UGFnZTogMSxcclxuICAgICAgICBpdGVtc1BlclBhZ2U6IDI1LFxyXG4gICAgICAgIHRvdGFsSXRlbXM6IDEsXHJcbiAgICB9O1xyXG4gICAgQFZpZXdDaGlsZCgnYXNzZXRTZWFyY2hJbnB1dENvbXBvbmVudCcpXHJcbiAgICBwcml2YXRlIGFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQ6IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQ7XHJcbiAgICBAVmlld0NoaWxkKCdhc3NldEdhbGxlcnlDb21wb25lbnQnKVxyXG4gICAgcHJpdmF0ZSBhc3NldEdhbGxlcnlDb21wb25lbnQ6IEFzc2V0R2FsbGVyeUNvbXBvbmVudDtcclxuXHJcbiAgICBtdWx0aVNlbGVjdCA9IHRydWU7XHJcbiAgICBpbml0aWFsVGFnczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEFzc2V0W10pID0+IHZvaWQ7XHJcbiAgICBzZWxlY3Rpb246IEFzc2V0W10gPSBbXTtcclxuICAgIHNlYXJjaFRlcm0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBmaWx0ZXJCeVRhZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWdGcmFnbWVudFtdIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICAgdXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGxpc3RRdWVyeTogUXVlcnlSZXN1bHQ8R2V0QXNzZXRMaXN0UXVlcnksIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzPjtcclxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5saXN0UXVlcnkgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXRMaXN0KHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UsIDApO1xyXG4gICAgICAgIHRoaXMuYWxsVGFncyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0VGFnTGlzdCgpLm1hcFNpbmdsZShkYXRhID0+IGRhdGEudGFncy5pdGVtcyk7XHJcbiAgICAgICAgdGhpcy5hc3NldHMkID0gdGhpcy5saXN0UXVlcnkuc3RyZWFtJC5waXBlKFxyXG4gICAgICAgICAgICB0YXAocmVzdWx0ID0+ICh0aGlzLnBhZ2luYXRpb25Db25maWcudG90YWxJdGVtcyA9IHJlc3VsdC5hc3NldHMudG90YWxJdGVtcykpLFxyXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5hc3NldHMuaXRlbXMpLFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtJC5waXBlKGRlYm91bmNlVGltZSgyNTApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJCeVRhZ3MkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mZXRjaFBhZ2UodGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKDAgPCB0aGlzLmluaXRpYWxUYWdzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmFsbFRhZ3MkXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICByeGpzVGFrZSgxKSxcclxuICAgICAgICAgICAgICAgICAgICBtYXAoYWxsVGFncyA9PiBhbGxUYWdzLmZpbHRlcih0YWcgPT4gdGhpcy5pbml0aWFsVGFncy5pbmNsdWRlcyh0YWcudmFsdWUpKSksXHJcbiAgICAgICAgICAgICAgICAgICAgdGFwKHRhZ3MgPT4gdGhpcy5maWx0ZXJCeVRhZ3MkLm5leHQodGFncykpLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5KDEpLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSh0YWdzID0+IHRoaXMuYXNzZXRTZWFyY2hJbnB1dENvbXBvbmVudC5zZXRUYWdzKHRhZ3MpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHBhZ2VDaGFuZ2UocGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlID0gcGFnZTtcclxuICAgICAgICB0aGlzLmZldGNoUGFnZSh0aGlzLnBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2UsIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1zUGVyUGFnZUNoYW5nZShpdGVtc1BlclBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UgPSBpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgdGhpcy5mZXRjaFBhZ2UodGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHRoaXMuc2VsZWN0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBjcmVhdGVBc3NldHMoZmlsZXM6IEZpbGVbXSkge1xyXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgIC5jcmVhdGVBc3NldHMoZmlsZXMpXHJcbiAgICAgICAgICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy51cGxvYWRpbmcgPSBmYWxzZSkpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQubm90aWZ5LWNyZWF0ZS1hc3NldHMtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBmaWxlcy5sZW5ndGgsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYXNzZXRzID0gcmVzLmNyZWF0ZUFzc2V0cy5maWx0ZXIoYSA9PiBhLl9fdHlwZW5hbWUgPT09ICdBc3NldCcpIGFzIEFzc2V0TGlrZVtdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXRHYWxsZXJ5Q29tcG9uZW50LnNlbGVjdE11bHRpcGxlKGFzc2V0cyk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmZXRjaFBhZ2UoY3VycmVudFBhZ2U6IG51bWJlciwgaXRlbXNQZXJQYWdlOiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCB0YWtlID0gK2l0ZW1zUGVyUGFnZTtcclxuICAgICAgICBjb25zdCBza2lwID0gKGN1cnJlbnRQYWdlIC0gMSkgKiAraXRlbXNQZXJQYWdlO1xyXG4gICAgICAgIGNvbnN0IHNlYXJjaFRlcm0gPSB0aGlzLnNlYXJjaFRlcm0kLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmZpbHRlckJ5VGFncyQudmFsdWU/Lm1hcCh0ID0+IHQudmFsdWUpO1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5LnJlZi5yZWZldGNoKHtcclxuICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgc2tpcCxcclxuICAgICAgICAgICAgICAgIHRha2UsXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5zOiBzZWFyY2hUZXJtLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc29ydDoge1xyXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogU29ydE9yZGVyLkRFU0MsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgdGFncyxcclxuICAgICAgICAgICAgICAgIHRhZ3NPcGVyYXRvcjogTG9naWNhbE9wZXJhdG9yLkFORCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcm93XCI+XHJcbiAgICAgICAgPHNwYW4+e3sgJ2Fzc2V0LnNlbGVjdC1hc3NldHMnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNwYWNlclwiPjwvZGl2PlxyXG4gICAgICAgIDx2ZHItYXNzZXQtZmlsZS1pbnB1dFxyXG4gICAgICAgICAgICBjbGFzcz1cIm1sM1wiXHJcbiAgICAgICAgICAgIChzZWxlY3RGaWxlcyk9XCJjcmVhdGVBc3NldHMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFt1cGxvYWRpbmddPVwidXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgZHJvcFpvbmVUYXJnZXQ9XCIubW9kYWwtY29udGVudFwiXHJcbiAgICAgICAgPjwvdmRyLWFzc2V0LWZpbGUtaW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPHZkci1hc3NldC1zZWFyY2gtaW5wdXRcclxuICAgIGNsYXNzPVwibWItMlwiXHJcbiAgICBbdGFnc109XCJhbGxUYWdzJCB8IGFzeW5jXCJcclxuICAgIChzZWFyY2hUZXJtQ2hhbmdlKT1cInNlYXJjaFRlcm0kLm5leHQoJGV2ZW50KVwiXHJcbiAgICAodGFnc0NoYW5nZSk9XCJmaWx0ZXJCeVRhZ3MkLm5leHQoJGV2ZW50KVwiXHJcbiAgICAjYXNzZXRTZWFyY2hJbnB1dENvbXBvbmVudFxyXG4+PC92ZHItYXNzZXQtc2VhcmNoLWlucHV0PlxyXG48dmRyLWFzc2V0LWdhbGxlcnlcclxuICAgIFthc3NldHNdPVwiKGFzc2V0cyQgfCBhc3luYykhIHwgcGFnaW5hdGU6IHBhZ2luYXRpb25Db25maWdcIlxyXG4gICAgW211bHRpU2VsZWN0XT1cIm11bHRpU2VsZWN0XCJcclxuICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uID0gJGV2ZW50XCJcclxuICAgICNhc3NldEdhbGxlcnlDb21wb25lbnRcclxuPjwvdmRyLWFzc2V0LWdhbGxlcnk+XHJcblxyXG48ZGl2IGNsYXNzPVwicGFnaW5nLWNvbnRyb2xzXCI+XHJcbiAgICA8dmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzXHJcbiAgICAgICAgW2l0ZW1zUGVyUGFnZV09XCJwYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZVwiXHJcbiAgICAgICAgKGl0ZW1zUGVyUGFnZUNoYW5nZSk9XCJpdGVtc1BlclBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC92ZHItaXRlbXMtcGVyLXBhZ2UtY29udHJvbHM+XHJcblxyXG4gICAgPHZkci1wYWdpbmF0aW9uLWNvbnRyb2xzXHJcbiAgICAgICAgW2N1cnJlbnRQYWdlXT1cInBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2VcIlxyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwicGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgIFt0b3RhbEl0ZW1zXT1cInBhZ2luYXRpb25Db25maWcudG90YWxJdGVtc1wiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwicGFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgID48L3Zkci1wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzZWxlY3QoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgW2Rpc2FibGVkXT1cInNlbGVjdGlvbi5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICB7eyAnYXNzZXQuYWRkLWFzc2V0LXdpdGgtY291bnQnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3Rpb24ubGVuZ3RoIH0gfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXBpY2tlci1kaWFsb2cvYXNzZXQtcGlja2VyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFHVCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRHLE9BQU8sRUFLSCxlQUFlLEVBQ2YsU0FBUyxHQUVaLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQU9ILE1BQU0sT0FBTywwQkFBMEI7SUF3Qm5DLFlBQW9CLFdBQXdCLEVBQVUsbUJBQXdDO1FBQTFFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXJCOUYscUJBQWdCLEdBQXVCO1lBQ25DLFdBQVcsRUFBRSxDQUFDO1lBQ2QsWUFBWSxFQUFFLEVBQUU7WUFDaEIsVUFBVSxFQUFFLENBQUM7U0FDaEIs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eUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU07b0lBV3ZDLHlCQUF5QjtzQkFEaEMsU0FBUzt1QkFBQywyQkFBMkI7Z0JBRzlCLHFCQUFxQjtzQkFENUIsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IFBhZ2luYXRpb25JbnN0YW5jZSB9IGZyb20gJ25neC1wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIGZpbmFsaXplLCBtYXAsIHRha2UgYXMgcnhqc1Rha2UsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEFzc2V0LFxyXG4gICAgQ3JlYXRlQXNzZXRzTXV0YXRpb24sXHJcbiAgICBHZXRBc3NldExpc3RRdWVyeSxcclxuICAgIEdldEFzc2V0TGlzdFF1ZXJ5VmFyaWFibGVzLFxyXG4gICAgTG9naWNhbE9wZXJhdG9yLFxyXG4gICAgU29ydE9yZGVyLFxyXG4gICAgVGFnRnJhZ21lbnQsXHJcbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlcnlSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9kYXRhL3F1ZXJ5LXJlc3VsdCc7XHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC50eXBlcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXRHYWxsZXJ5Q29tcG9uZW50IH0gZnJvbSAnLi4vYXNzZXQtZ2FsbGVyeS9hc3NldC1nYWxsZXJ5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlrZSB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS50eXBlcyc7XHJcbmltcG9ydCB7IEFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9hc3NldC1zZWFyY2gtaW5wdXQvYXNzZXQtc2VhcmNoLWlucHV0LmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgZGlhbG9nIHdoaWNoIGFsbG93cyB0aGUgY3JlYXRpb24gYW5kIHNlbGVjdGlvbiBvZiBhc3NldHMuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYHRzXHJcbiAqIHNlbGVjdEFzc2V0cygpIHtcclxuICogICB0aGlzLm1vZGFsU2VydmljZVxyXG4gKiAgICAgLmZyb21Db21wb25lbnQoQXNzZXRQaWNrZXJEaWFsb2dDb21wb25lbnQsIHtcclxuICogICAgICAgICBzaXplOiAneGwnLFxyXG4gKiAgICAgfSlcclxuICogICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICogICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5sZW5ndGgpIHtcclxuICogICAgICAgICAgICAgLy8gLi4uXHJcbiAqICAgICAgICAgfVxyXG4gKiAgICAgfSk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1waWNrZXItZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hc3NldC1waWNrZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Fzc2V0LXBpY2tlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQaWNrZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgRGlhbG9nPEFzc2V0W10+IHtcclxuICAgIGFzc2V0cyQ6IE9ic2VydmFibGU8QXNzZXRMaWtlW10+O1xyXG4gICAgYWxsVGFncyQ6IE9ic2VydmFibGU8VGFnRnJhZ21lbnRbXT47XHJcbiAgICBwYWdpbmF0aW9uQ29uZmlnOiBQYWdpbmF0aW9uSW5zdGFuY2UgPSB7XHJcbiAgICAgICAgY3VycmVudFBhZ2U6IDEsXHJcbiAgICAgICAgaXRlbXNQZXJQYWdlOiAyNSxcclxuICAgICAgICB0b3RhbEl0ZW1zOiAxLFxyXG4gICAgfTtcclxuICAgIEBWaWV3Q2hpbGQoJ2Fzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQnKVxyXG4gICAgcHJpdmF0ZSBhc3NldFNlYXJjaElucHV0Q29tcG9uZW50OiBBc3NldFNlYXJjaElucHV0Q29tcG9uZW50O1xyXG4gICAgQFZpZXdDaGlsZCgnYXNzZXRHYWxsZXJ5Q29tcG9uZW50JylcclxuICAgIHByaXZhdGUgYXNzZXRHYWxsZXJ5Q29tcG9uZW50OiBBc3NldEdhbGxlcnlDb21wb25lbnQ7XHJcblxyXG4gICAgbXVsdGlTZWxlY3QgPSB0cnVlO1xyXG4gICAgaW5pdGlhbFRhZ3M6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBBc3NldFtdKSA9PiB2b2lkO1xyXG4gICAgc2VsZWN0aW9uOiBBc3NldFtdID0gW107XHJcbiAgICBzZWFyY2hUZXJtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gICAgZmlsdGVyQnlUYWdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFnRnJhZ21lbnRbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAgIHVwbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBsaXN0UXVlcnk6IFF1ZXJ5UmVzdWx0PEdldEFzc2V0TGlzdFF1ZXJ5LCBHZXRBc3NldExpc3RRdWVyeVZhcmlhYmxlcz47XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMubGlzdFF1ZXJ5ID0gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmdldEFzc2V0TGlzdCh0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlLCAwKTtcclxuICAgICAgICB0aGlzLmFsbFRhZ3MkID0gdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LmdldFRhZ0xpc3QoKS5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLnRhZ3MuaXRlbXMpO1xyXG4gICAgICAgIHRoaXMuYXNzZXRzJCA9IHRoaXMubGlzdFF1ZXJ5LnN0cmVhbSQucGlwZShcclxuICAgICAgICAgICAgdGFwKHJlc3VsdCA9PiAodGhpcy5wYWdpbmF0aW9uQ29uZmlnLnRvdGFsSXRlbXMgPSByZXN1bHQuYXNzZXRzLnRvdGFsSXRlbXMpKSxcclxuICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQuYXNzZXRzLml0ZW1zKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSQucGlwZShkZWJvdW5jZVRpbWUoMjUwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoUGFnZSh0aGlzLnBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2UsIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyQnlUYWdzJC5waXBlKGRlYm91bmNlVGltZSgxMDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICgwIDwgdGhpcy5pbml0aWFsVGFncy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy5hbGxUYWdzJFxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgcnhqc1Rha2UoMSksXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKGFsbFRhZ3MgPT4gYWxsVGFncy5maWx0ZXIodGFnID0+IHRoaXMuaW5pdGlhbFRhZ3MuaW5jbHVkZXModGFnLnZhbHVlKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcCh0YWdzID0+IHRoaXMuZmlsdGVyQnlUYWdzJC5uZXh0KHRhZ3MpKSxcclxuICAgICAgICAgICAgICAgICAgICBkZWxheSgxKSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUodGFncyA9PiB0aGlzLmFzc2V0U2VhcmNoSW5wdXRDb21wb25lbnQuc2V0VGFncyh0YWdzKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSA9IHBhZ2U7XHJcbiAgICAgICAgdGhpcy5mZXRjaFBhZ2UodGhpcy5wYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlLCB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBpdGVtc1BlclBhZ2VDaGFuZ2UoaXRlbXNQZXJQYWdlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlID0gaXRlbXNQZXJQYWdlO1xyXG4gICAgICAgIHRoaXMuZmV0Y2hQYWdlKHRoaXMucGFnaW5hdGlvbkNvbmZpZy5jdXJyZW50UGFnZSwgdGhpcy5wYWdpbmF0aW9uQ29uZmlnLml0ZW1zUGVyUGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3QoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh0aGlzLnNlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlQXNzZXRzKGZpbGVzOiBGaWxlW10pIHtcclxuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAuY3JlYXRlQXNzZXRzKGZpbGVzKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMudXBsb2FkaW5nID0gZmFsc2UpKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoUGFnZSh0aGlzLnBhZ2luYXRpb25Db25maWcuY3VycmVudFBhZ2UsIHRoaXMucGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2Fzc2V0Lm5vdGlmeS1jcmVhdGUtYXNzZXRzLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudDogZmlsZXMubGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFzc2V0cyA9IHJlcy5jcmVhdGVBc3NldHMuZmlsdGVyKGEgPT4gYS5fX3R5cGVuYW1lID09PSAnQXNzZXQnKSBhcyBBc3NldExpa2VbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0R2FsbGVyeUNvbXBvbmVudC5zZWxlY3RNdWx0aXBsZShhc3NldHMpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZmV0Y2hQYWdlKGN1cnJlbnRQYWdlOiBudW1iZXIsIGl0ZW1zUGVyUGFnZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3QgdGFrZSA9ICtpdGVtc1BlclBhZ2U7XHJcbiAgICAgICAgY29uc3Qgc2tpcCA9IChjdXJyZW50UGFnZSAtIDEpICogK2l0ZW1zUGVyUGFnZTtcclxuICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gdGhpcy5zZWFyY2hUZXJtJC52YWx1ZTtcclxuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5maWx0ZXJCeVRhZ3MkLnZhbHVlPy5tYXAodCA9PiB0LnZhbHVlKTtcclxuICAgICAgICB0aGlzLmxpc3RRdWVyeS5yZWYucmVmZXRjaCh7XHJcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIHNraXAsXHJcbiAgICAgICAgICAgICAgICB0YWtlLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250YWluczogc2VhcmNoVGVybSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNvcnQ6IHtcclxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHRhZ3MsXHJcbiAgICAgICAgICAgICAgICB0YWdzT3BlcmF0b3I6IExvZ2ljYWxPcGVyYXRvci5BTkQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxyXG4gICAgICAgIDxzcGFuPnt7ICdhc3NldC5zZWxlY3QtYXNzZXRzJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgICAgICA8dmRyLWFzc2V0LWZpbGUtaW5wdXRcclxuICAgICAgICAgICAgY2xhc3M9XCJtbDNcIlxyXG4gICAgICAgICAgICAoc2VsZWN0RmlsZXMpPVwiY3JlYXRlQXNzZXRzKCRldmVudClcIlxyXG4gICAgICAgICAgICBbdXBsb2FkaW5nXT1cInVwbG9hZGluZ1wiXHJcbiAgICAgICAgICAgIGRyb3Bab25lVGFyZ2V0PVwiLm1vZGFsLWNvbnRlbnRcIlxyXG4gICAgICAgID48L3Zkci1hc3NldC1maWxlLWlucHV0PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjx2ZHItYXNzZXQtc2VhcmNoLWlucHV0XHJcbiAgICBjbGFzcz1cIm1iLTJcIlxyXG4gICAgW3RhZ3NdPVwiYWxsVGFncyQgfCBhc3luY1wiXHJcbiAgICAoc2VhcmNoVGVybUNoYW5nZSk9XCJzZWFyY2hUZXJtJC5uZXh0KCRldmVudClcIlxyXG4gICAgKHRhZ3NDaGFuZ2UpPVwiZmlsdGVyQnlUYWdzJC5uZXh0KCRldmVudClcIlxyXG4gICAgI2Fzc2V0U2VhcmNoSW5wdXRDb21wb25lbnRcclxuPjwvdmRyLWFzc2V0LXNlYXJjaC1pbnB1dD5cclxuPHZkci1hc3NldC1nYWxsZXJ5XHJcbiAgICBbYXNzZXRzXT1cIihhc3NldHMkIHwgYXN5bmMpISB8IHBhZ2luYXRlOiBwYWdpbmF0aW9uQ29uZmlnXCJcclxuICAgIFttdWx0aVNlbGVjdF09XCJtdWx0aVNlbGVjdFwiXHJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbiA9ICRldmVudFwiXHJcbiAgICAjYXNzZXRHYWxsZXJ5Q29tcG9uZW50XHJcbj48L3Zkci1hc3NldC1nYWxsZXJ5PlxyXG5cclxuPGRpdiBjbGFzcz1cInBhZ2luZy1jb250cm9sc1wiPlxyXG4gICAgPHZkci1pdGVtcy1wZXItcGFnZS1jb250cm9sc1xyXG4gICAgICAgIFtpdGVtc1BlclBhZ2VdPVwicGFnaW5hdGlvbkNvbmZpZy5pdGVtc1BlclBhZ2VcIlxyXG4gICAgICAgIChpdGVtc1BlclBhZ2VDaGFuZ2UpPVwiaXRlbXNQZXJQYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvdmRyLWl0ZW1zLXBlci1wYWdlLWNvbnRyb2xzPlxyXG5cclxuICAgIDx2ZHItcGFnaW5hdGlvbi1jb250cm9sc1xyXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJwYWdpbmF0aW9uQ29uZmlnLmN1cnJlbnRQYWdlXCJcclxuICAgICAgICBbaXRlbXNQZXJQYWdlXT1cInBhZ2luYXRpb25Db25maWcuaXRlbXNQZXJQYWdlXCJcclxuICAgICAgICBbdG90YWxJdGVtc109XCJwYWdpbmF0aW9uQ29uZmlnLnRvdGFsSXRlbXNcIlxyXG4gICAgICAgIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+PC92ZHItcGFnaW5hdGlvbi1jb250cm9scz5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic2VsZWN0KClcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIFtkaXNhYmxlZF09XCJzZWxlY3Rpb24ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAge3sgJ2Fzc2V0LmFkZC1hc3NldC13aXRoLWNvdW50JyB8IHRyYW5zbGF0ZTogeyBjb3VudDogc2VsZWN0aW9uLmxlbmd0aCB9IH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19