ng-miam 3.2.1 → 3.3.2

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 (58) hide show
  1. package/bundles/ng-miam.umd.js +6364 -5557
  2. package/bundles/ng-miam.umd.js.map +1 -1
  3. package/bundles/ng-miam.umd.min.js +2 -2
  4. package/bundles/ng-miam.umd.min.js.map +1 -1
  5. package/esm2015/lib/_components/icon/icon.component.js +47 -5
  6. package/esm2015/lib/_models/groceries-entry.js +23 -2
  7. package/esm2015/lib/_models/groceries-list.js +5 -2
  8. package/esm2015/lib/_services/analytics.service.js +7 -1
  9. package/esm2015/lib/_services/baskets.service.js +6 -2
  10. package/esm2015/lib/_services/groceries-lists.service.js +23 -6
  11. package/esm2015/lib/_types/icon.enum.js +21 -18
  12. package/esm2015/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.js +15 -15
  13. package/esm2015/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.js +3 -3
  14. package/esm2015/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.js +22 -19
  15. package/esm2015/lib/_web-components/basket-preview/basket-preview.module.js +78 -0
  16. package/esm2015/lib/_web-components/basket-preview/index.js +7 -0
  17. package/esm2015/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.js +8 -8
  18. package/esm2015/lib/_web-components/drawer/drawer.component.js +1 -1
  19. package/esm2015/lib/_web-components/index.js +4 -6
  20. package/esm2015/lib/_web-components/list-scan/basket-preview/basket-preview.component.js +145 -0
  21. package/esm2015/lib/_web-components/list-scan/index.js +3 -0
  22. package/esm2015/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.js +150 -0
  23. package/esm2015/lib/_web-components/list-scan/list-scan.component.js +87 -0
  24. package/esm2015/lib/_web-components/list-scan/list-scan.module.js +60 -0
  25. package/esm2015/lib/_web-components/list-scan/overlay-button/overlay-button.component.js +104 -0
  26. package/esm2015/lib/_web-components/loader/index.js +3 -0
  27. package/esm2015/lib/_web-components/loader/loader.module.js +39 -0
  28. package/esm2015/lib/_web-components/recipe-card/recipe-card.component.js +1 -1
  29. package/esm2015/lib/_web-components/recipe-catalog/recipe-catalog.component.js +1 -1
  30. package/esm2015/lib/_web-components/recipe-modal/recipe-modal.component.js +1 -1
  31. package/esm2015/lib/_web-components/recipes-history/recipes-history.component.js +1 -1
  32. package/esm2015/lib/_web-components/web-components.module.js +24 -62
  33. package/esm2015/lib/environment.js +15 -5
  34. package/fesm2015/ng-miam.js +5545 -4851
  35. package/fesm2015/ng-miam.js.map +1 -1
  36. package/lib/_models/groceries-entry.d.ts +8 -1
  37. package/lib/_models/groceries-list.d.ts +4 -3
  38. package/lib/_services/groceries-lists.service.d.ts +4 -1
  39. package/lib/_types/icon.enum.d.ts +20 -17
  40. package/lib/_web-components/{basket-preview-block → basket-preview/basket-preview-block}/basket-preview-block.component.d.ts +6 -6
  41. package/lib/_web-components/{basket-preview-disabled → basket-preview/basket-preview-disabled}/basket-preview-disabled.component.d.ts +2 -2
  42. package/lib/_web-components/{basket-preview-line → basket-preview/basket-preview-line}/basket-preview-line.component.d.ts +7 -7
  43. package/lib/_web-components/basket-preview/basket-preview.module.d.ts +16 -0
  44. package/lib/_web-components/basket-preview/index.d.ts +5 -0
  45. package/lib/_web-components/{replace-item → basket-preview/replace-item}/replace-item.component.d.ts +5 -5
  46. package/lib/_web-components/index.d.ts +3 -5
  47. package/lib/_web-components/list-scan/basket-preview/basket-preview.component.d.ts +25 -0
  48. package/lib/_web-components/list-scan/index.d.ts +2 -0
  49. package/lib/_web-components/list-scan/ingredients-list/ingredients-list.component.d.ts +22 -0
  50. package/lib/_web-components/list-scan/list-scan.component.d.ts +17 -0
  51. package/lib/_web-components/list-scan/list-scan.module.d.ts +16 -0
  52. package/lib/_web-components/list-scan/overlay-button/overlay-button.component.d.ts +19 -0
  53. package/lib/_web-components/loader/index.d.ts +2 -0
  54. package/lib/_web-components/loader/loader.module.d.ts +10 -0
  55. package/lib/_web-components/web-components.module.d.ts +36 -65
  56. package/lib/environment.d.ts +3 -3
  57. package/miam-style.css +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,60 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Injector, NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { createCustomElement } from '@angular/elements';
5
+ import { ComponentsModule } from '../../_components';
6
+ import { ListScanComponent } from './list-scan.component';
7
+ import { ListScanBasketPreviewComponent } from './basket-preview/basket-preview.component';
8
+ import { ListScanIngredientsListComponent } from './ingredients-list/ingredients-list.component';
9
+ import { ListScanOverlayButtonComponent } from './overlay-button/overlay-button.component';
10
+ import { BasketPreviewModule } from '../basket-preview/basket-preview.module';
11
+ import { LoaderModule } from '../../_web-components/loader/loader.module';
12
+ import * as i0 from "@angular/core";
13
+ export class ListScanModule {
14
+ // Create custom elements so the WebComponents can be interpreted by the browser regardless of the js framework used
15
+ constructor(injector) {
16
+ // Avoid duplicate error
17
+ if (!customElements.get('webc-miam-list-scan')) {
18
+ const ngElement = createCustomElement(ListScanComponent, { injector });
19
+ customElements.define('webc-miam-list-scan', ngElement);
20
+ }
21
+ }
22
+ }
23
+ ListScanModule.ɵmod = i0.ɵɵdefineNgModule({ type: ListScanModule });
24
+ ListScanModule.ɵinj = i0.ɵɵdefineInjector({ factory: function ListScanModule_Factory(t) { return new (t || ListScanModule)(i0.ɵɵinject(i0.Injector)); }, imports: [[
25
+ CommonModule,
26
+ FormsModule,
27
+ ComponentsModule,
28
+ BasketPreviewModule,
29
+ LoaderModule
30
+ ]] });
31
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ListScanModule, { declarations: [ListScanComponent,
32
+ ListScanOverlayButtonComponent,
33
+ ListScanIngredientsListComponent,
34
+ ListScanBasketPreviewComponent], imports: [CommonModule,
35
+ FormsModule,
36
+ ComponentsModule,
37
+ BasketPreviewModule,
38
+ LoaderModule], exports: [ListScanComponent] }); })();
39
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanModule, [{
40
+ type: NgModule,
41
+ args: [{
42
+ imports: [
43
+ CommonModule,
44
+ FormsModule,
45
+ ComponentsModule,
46
+ BasketPreviewModule,
47
+ LoaderModule
48
+ ],
49
+ declarations: [
50
+ ListScanComponent,
51
+ ListScanOverlayButtonComponent,
52
+ ListScanIngredientsListComponent,
53
+ ListScanBasketPreviewComponent
54
+ ],
55
+ exports: [
56
+ ListScanComponent
57
+ ]
58
+ }]
59
+ }], function () { return [{ type: i0.Injector }]; }, null); })();
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1zY2FuLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3dlYi1jb21wb25lbnRzL2xpc3Qtc2Nhbi9saXN0LXNjYW4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQW9CMUUsTUFBTSxPQUFPLGNBQWM7SUFDekIsb0hBQW9IO0lBQ3BILFlBQ0UsUUFBa0I7UUFFbEIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDOUMsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLGNBQWMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDOztrREFWVSxjQUFjOzJHQUFkLGNBQWMsMENBakJoQjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixZQUFZO1NBQ2I7d0ZBV1UsY0FBYyxtQkFUdkIsaUJBQWlCO1FBQ2pCLDhCQUE4QjtRQUM5QixnQ0FBZ0M7UUFDaEMsOEJBQThCLGFBVjlCLFlBQVk7UUFDWixXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixZQUFZLGFBU1osaUJBQWlCO2tEQUdSLGNBQWM7Y0FsQjFCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIsbUJBQW1CO29CQUNuQixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixpQkFBaUI7b0JBQ2pCLDhCQUE4QjtvQkFDOUIsZ0NBQWdDO29CQUNoQyw4QkFBOEI7aUJBQy9CO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxpQkFBaUI7aUJBQ2xCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgTGlzdFNjYW5Db21wb25lbnQgfSBmcm9tICcuL2xpc3Qtc2Nhbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5CYXNrZXRQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9iYXNrZXQtcHJldmlldy9iYXNrZXQtcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5JbmdyZWRpZW50c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2luZ3JlZGllbnRzLWxpc3QvaW5ncmVkaWVudHMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9vdmVybGF5LWJ1dHRvbi9vdmVybGF5LWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFza2V0UHJldmlld01vZHVsZSB9IGZyb20gJy4uL2Jhc2tldC1wcmV2aWV3L2Jhc2tldC1wcmV2aWV3Lm1vZHVsZSc7XG5pbXBvcnQgeyBMb2FkZXJNb2R1bGUgfSBmcm9tICcuLi8uLi9fd2ViLWNvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbXBvbmVudHNNb2R1bGUsXG4gICAgQmFza2V0UHJldmlld01vZHVsZSxcbiAgICBMb2FkZXJNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTGlzdFNjYW5Db21wb25lbnQsXG4gICAgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50LFxuICAgIExpc3RTY2FuSW5ncmVkaWVudHNMaXN0Q29tcG9uZW50LFxuICAgIExpc3RTY2FuQmFza2V0UHJldmlld0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTGlzdFNjYW5Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0U2Nhbk1vZHVsZSB7XG4gIC8vIENyZWF0ZSBjdXN0b20gZWxlbWVudHMgc28gdGhlIFdlYkNvbXBvbmVudHMgY2FuIGJlIGludGVycHJldGVkIGJ5IHRoZSBicm93c2VyIHJlZ2FyZGxlc3Mgb2YgdGhlIGpzIGZyYW1ld29yayB1c2VkXG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgLy8gQXZvaWQgZHVwbGljYXRlIGVycm9yXG4gICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoJ3dlYmMtbWlhbS1saXN0LXNjYW4nKSkge1xuICAgICAgY29uc3QgbmdFbGVtZW50ID0gY3JlYXRlQ3VzdG9tRWxlbWVudChMaXN0U2NhbkNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnd2ViYy1taWFtLWxpc3Qtc2NhbicsIG5nRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { GroceriesListsService } from '../../../_services';
3
+ import { Icon } from '../../../_types/icon.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../../_services";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../../../_components/icon/icon.component";
8
+ import * as i4 from "../../loader/loader.component";
9
+ function ListScanOverlayButtonComponent_ng_miam_icon_3_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelement(0, "ng-miam-icon", 9);
11
+ } if (rf & 2) {
12
+ const ctx_r0 = i0.ɵɵnextContext();
13
+ i0.ɵɵproperty("iconName", ctx_r0.icon.ListScanner);
14
+ } }
15
+ const _c0 = function (a0) { return { reduced: a0 }; };
16
+ function ListScanOverlayButtonComponent_div_4_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "div", 10);
18
+ i0.ɵɵtext(1, "Scanner ma liste de courses");
19
+ i0.ɵɵelementEnd();
20
+ } if (rf & 2) {
21
+ const ctx_r1 = i0.ɵɵnextContext();
22
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c0, ctx_r1.reduced == "true"));
23
+ } }
24
+ function ListScanOverlayButtonComponent_ng_miam_loader_5_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelement(0, "ng-miam-loader");
26
+ } }
27
+ const _c1 = function (a0) { return { overlay: a0 }; };
28
+ export class ListScanOverlayButtonComponent {
29
+ constructor(cdr, listsService) {
30
+ this.cdr = cdr;
31
+ this.listsService = listsService;
32
+ this.entriesAdded = new EventEmitter();
33
+ this.icon = Icon;
34
+ this.reduced = localStorage.getItem('_miam/listScanner/button-reduced') || 'false';
35
+ this.loading = false;
36
+ }
37
+ toggleReduce(value) {
38
+ this.reduced = value;
39
+ localStorage.setItem('_miam/listScanner/button-reduced', this.reduced);
40
+ this.cdr.detectChanges();
41
+ }
42
+ // Pushes a picture file and refreshes list
43
+ // Finally, triggers entries added event, returning all entries not related to any recipe
44
+ sendFile(event) {
45
+ const file = event.target.files.item(0);
46
+ if (!file) {
47
+ return;
48
+ }
49
+ this.loading = true;
50
+ this.cdr.detectChanges();
51
+ this.listsService.addEntriesFromPicture(file, ['groceries-entries']).subscribe(list => {
52
+ const addedEntries = list.entries.data.filter(entry => !entry.recipesIds || entry.recipesIds.length === 0);
53
+ this.loading = false;
54
+ this.entriesAdded.emit(addedEntries);
55
+ });
56
+ }
57
+ }
58
+ ListScanOverlayButtonComponent.ɵfac = function ListScanOverlayButtonComponent_Factory(t) { return new (t || ListScanOverlayButtonComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.GroceriesListsService)); };
59
+ ListScanOverlayButtonComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ListScanOverlayButtonComponent, selectors: [["ng-miam-list-scan-overlay-button"]], inputs: { overlay: "overlay" }, outputs: { entriesAdded: "entriesAdded" }, decls: 9, vars: 10, consts: [[1, "miam-list-scan__overlay-button", 3, "ngClass"], ["type", "file", "name", "file", "id", "file", "accept", "image/*", "capture", "environment", 1, "inputfile", 3, "disabled", "change"], ["for", "file", 1, "m-button", "m-button-primary", "miam-list-scan__overlay-button__label", 3, "click"], ["width", "24", 3, "iconName", 4, "ngIf"], ["class", "button-label", 3, "ngClass", 4, "ngIf"], [4, "ngIf"], [1, "miam-list-scan__overlay-button__reduce", 3, "ngClass", "click"], ["width", "24", "height", "24", "viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg"], ["d", "M9.91957 12L5.95977 8.0402L7.93967 6.0603L11.8995 10.0201L15.8593 6.0603L17.8392 8.0402L13.8794 12L17.8392 15.9598L15.8593 17.9397L11.8995 13.9799L7.93967 17.9397L5.95977 15.9598L9.91957 12Z", "fill", "#676767"], ["width", "24", 3, "iconName"], [1, "button-label", 3, "ngClass"]], template: function ListScanOverlayButtonComponent_Template(rf, ctx) { if (rf & 1) {
60
+ i0.ɵɵelementStart(0, "div", 0);
61
+ i0.ɵɵelementStart(1, "input", 1);
62
+ i0.ɵɵlistener("change", function ListScanOverlayButtonComponent_Template_input_change_1_listener($event) { return ctx.sendFile($event); });
63
+ i0.ɵɵelementEnd();
64
+ i0.ɵɵelementStart(2, "label", 2);
65
+ i0.ɵɵlistener("click", function ListScanOverlayButtonComponent_Template_label_click_2_listener() { return ctx.toggleReduce("false"); });
66
+ i0.ɵɵtemplate(3, ListScanOverlayButtonComponent_ng_miam_icon_3_Template, 1, 1, "ng-miam-icon", 3);
67
+ i0.ɵɵtemplate(4, ListScanOverlayButtonComponent_div_4_Template, 2, 3, "div", 4);
68
+ i0.ɵɵtemplate(5, ListScanOverlayButtonComponent_ng_miam_loader_5_Template, 1, 0, "ng-miam-loader", 5);
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(6, "div", 6);
71
+ i0.ɵɵlistener("click", function ListScanOverlayButtonComponent_Template_div_click_6_listener() { return ctx.toggleReduce("true"); });
72
+ i0.ɵɵnamespaceSVG();
73
+ i0.ɵɵelementStart(7, "svg", 7);
74
+ i0.ɵɵelement(8, "path", 8);
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementEnd();
77
+ i0.ɵɵelementEnd();
78
+ } if (rf & 2) {
79
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(6, _c1, ctx.overlay));
80
+ i0.ɵɵadvance(1);
81
+ i0.ɵɵproperty("disabled", ctx.loading);
82
+ i0.ɵɵadvance(2);
83
+ i0.ɵɵproperty("ngIf", !ctx.loading);
84
+ i0.ɵɵadvance(1);
85
+ i0.ɵɵproperty("ngIf", !ctx.loading);
86
+ i0.ɵɵadvance(1);
87
+ i0.ɵɵproperty("ngIf", ctx.loading);
88
+ i0.ɵɵadvance(1);
89
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c0, ctx.reduced == "true"));
90
+ } }, directives: [i2.NgClass, i2.NgIf, i3.IconComponent, i4.LoaderComponent], styles: [".miam-list-scan__overlay-button[_ngcontent-%COMP%]{display:inline-block;position:relative}.miam-list-scan__overlay-button.overlay[_ngcontent-%COMP%]{bottom:20px;position:fixed;right:20px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .inputfile[_ngcontent-%COMP%]{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px;z-index:-1}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%]{max-height:50px;min-width:0}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] ng-miam-icon[_ngcontent-%COMP%]{margin:0}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] .button-label[_ngcontent-%COMP%]{margin-left:10px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__label[_ngcontent-%COMP%] .button-label.reduced[_ngcontent-%COMP%]{display:none}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__reduce[_ngcontent-%COMP%]{align-items:center;background-color:#fff;border-radius:12px;box-shadow:0 2px 5px rgba(0,0,0,.25);cursor:pointer;display:flex;font-size:16px;font-weight:700;height:24px;justify-content:center;position:absolute;right:-8px;top:-9px;width:24px}.miam-list-scan__overlay-button[_ngcontent-%COMP%] .miam-list-scan__overlay-button__reduce.reduced[_ngcontent-%COMP%]{display:none}"], changeDetection: 0 });
91
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ListScanOverlayButtonComponent, [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'ng-miam-list-scan-overlay-button',
95
+ templateUrl: './overlay-button.component.html',
96
+ styleUrls: ['./overlay-button.component.scss'],
97
+ changeDetection: ChangeDetectionStrategy.OnPush
98
+ }]
99
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.GroceriesListsService }]; }, { overlay: [{
100
+ type: Input
101
+ }], entriesAdded: [{
102
+ type: Output
103
+ }] }); })();
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL292ZXJsYXktYnV0dG9uL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC50cyIsImxpYi9fd2ViLWNvbXBvbmVudHMvbGlzdC1zY2FuL292ZXJsYXktYnV0dG9uL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0lDQzdDLGtDQUF1Rjs7O0lBQXhELGtEQUE2Qjs7OztJQUM1RCwrQkFBc0Y7SUFBQSwyQ0FBMkI7SUFBQSxpQkFBTTs7O0lBQTVFLDhFQUEwQzs7O0lBRXJGLGlDQUFpRDs7O0FESXJELE1BQU0sT0FBTyw4QkFBOEI7SUFPekMsWUFDVSxHQUFzQixFQUN0QixZQUFtQztRQURuQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUFQbkMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5RCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osWUFBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDOUUsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUtiLENBQUM7SUFFSixZQUFZLENBQUMsS0FBSztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixZQUFZLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MseUZBQXlGO0lBQ3pGLFFBQVEsQ0FBQyxLQUFLO1FBQ1osTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzVFLElBQUksQ0FBQyxFQUFFO1lBQ0wsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7NEdBbENVLDhCQUE4QjttRUFBOUIsOEJBQThCO1FDWDNDLDhCQUNFO1FBQUEsZ0NBRUE7UUFGa0csa0hBQVUsb0JBQWdCLElBQUM7UUFBN0gsaUJBRUE7UUFBQSxnQ0FDRTtRQURnQiwwR0FBUyxpQkFBYSxPQUFPLENBQUMsSUFBQztRQUMvQyxpR0FBd0U7UUFDeEUsK0VBQXNGO1FBRXRGLHFHQUFnQztRQUNsQyxpQkFBUTtRQUVSLDhCQUNFO1FBRGtELHdHQUFTLGlCQUFhLE1BQU0sQ0FBQyxJQUFDO1FBQ2hGLG1CQUNFO1FBREYsOEJBQ0U7UUFBQSwwQkFDRjtRQUFBLGlCQUFNO1FBQ1IsaUJBQU07UUFDUixpQkFBTTs7UUFmc0MsaUVBQWdDO1FBQ29ELGVBQW9CO1FBQXBCLHNDQUFvQjtRQUdsSSxlQUFnQjtRQUFoQixtQ0FBZ0I7UUFDekIsZUFBZ0I7UUFBaEIsbUNBQWdCO1FBRUwsZUFBZTtRQUFmLGtDQUFlO1FBR2tELGVBQTBDO1FBQTFDLDJFQUEwQzs7a0REQ2xILDhCQUE4QjtjQU4xQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztnQkFDNUMsV0FBVyxFQUFFLGlDQUFpQztnQkFDOUMsU0FBUyxFQUFFLENBQUMsaUNBQWlDLENBQUM7Z0JBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3dHQUVVLE9BQU87a0JBQWYsS0FBSztZQUNJLFlBQVk7a0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcm9jZXJpZXNFbnRyeSB9IGZyb20gJy4uLy4uLy4uL19tb2RlbHMvZ3JvY2VyaWVzLWVudHJ5JztcbmltcG9ydCB7IEdyb2Nlcmllc0xpc3RzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL19zZXJ2aWNlcyc7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSAnLi4vLi4vLi4vX3R5cGVzL2ljb24uZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nLW1pYW0tbGlzdC1zY2FuLW92ZXJsYXktYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL292ZXJsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb3ZlcmxheS1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTGlzdFNjYW5PdmVybGF5QnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3ZlcmxheTogYm9vbGVhbjtcbiAgQE91dHB1dCgpIGVudHJpZXNBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8R3JvY2VyaWVzRW50cnlbXT4oKTtcbiAgaWNvbiA9IEljb247XG4gIHJlZHVjZWQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnX21pYW0vbGlzdFNjYW5uZXIvYnV0dG9uLXJlZHVjZWQnKSB8fCAnZmFsc2UnO1xuICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2VcbiAgKSB7fVxuXG4gIHRvZ2dsZVJlZHVjZSh2YWx1ZSkge1xuICAgIHRoaXMucmVkdWNlZCA9IHZhbHVlO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfbWlhbS9saXN0U2Nhbm5lci9idXR0b24tcmVkdWNlZCcsIHRoaXMucmVkdWNlZCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gUHVzaGVzIGEgcGljdHVyZSBmaWxlIGFuZCByZWZyZXNoZXMgbGlzdFxuICAvLyBGaW5hbGx5LCB0cmlnZ2VycyBlbnRyaWVzIGFkZGVkIGV2ZW50LCByZXR1cm5pbmcgYWxsIGVudHJpZXMgbm90IHJlbGF0ZWQgdG8gYW55IHJlY2lwZVxuICBzZW5kRmlsZShldmVudCkge1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC50YXJnZXQuZmlsZXMuaXRlbSgwKTtcbiAgICBpZiAoIWZpbGUpIHsgcmV0dXJuOyB9XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMubGlzdHNTZXJ2aWNlLmFkZEVudHJpZXNGcm9tUGljdHVyZShmaWxlLCBbJ2dyb2Nlcmllcy1lbnRyaWVzJ10pLnN1YnNjcmliZShcbiAgICAgIGxpc3QgPT4ge1xuICAgICAgICBjb25zdCBhZGRlZEVudHJpZXMgPSBsaXN0LmVudHJpZXMuZGF0YS5maWx0ZXIoZW50cnkgPT4gIWVudHJ5LnJlY2lwZXNJZHMgfHwgZW50cnkucmVjaXBlc0lkcy5sZW5ndGggPT09IDApO1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lbnRyaWVzQWRkZWQuZW1pdChhZGRlZEVudHJpZXMpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaWFtLWxpc3Qtc2Nhbl9fb3ZlcmxheS1idXR0b25cIiBbbmdDbGFzc109XCJ7IG92ZXJsYXk6IG92ZXJsYXkgfVwiPlxuICA8aW5wdXQgdHlwZT1cImZpbGVcIiBuYW1lPVwiZmlsZVwiIGlkPVwiZmlsZVwiIGNsYXNzPVwiaW5wdXRmaWxlXCIgYWNjZXB0PVwiaW1hZ2UvKlwiIGNhcHR1cmU9XCJlbnZpcm9ubWVudFwiIChjaGFuZ2UpPVwic2VuZEZpbGUoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJsb2FkaW5nXCIgLz5cblxuICA8bGFiZWwgZm9yPVwiZmlsZVwiIChjbGljayk9XCJ0b2dnbGVSZWR1Y2UoJ2ZhbHNlJylcIiBjbGFzcz1cIm0tYnV0dG9uIG0tYnV0dG9uLXByaW1hcnkgbWlhbS1saXN0LXNjYW5fX292ZXJsYXktYnV0dG9uX19sYWJlbFwiPlxuICAgIDxuZy1taWFtLWljb24gKm5nSWY9XCIhbG9hZGluZ1wiIFtpY29uTmFtZV09XCJpY29uLkxpc3RTY2FubmVyXCIgd2lkdGg9XCIyNFwiPjwvbmctbWlhbS1pY29uPlxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiIGNsYXNzPVwiYnV0dG9uLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZWR1Y2VkOiByZWR1Y2VkID09ICd0cnVlJyB9XCI+U2Nhbm5lciBtYSBsaXN0ZSBkZSBjb3Vyc2VzPC9kaXY+XG5cbiAgICA8bmctbWlhbS1sb2FkZXIgKm5nSWY9XCJsb2FkaW5nXCI+PC9uZy1taWFtLWxvYWRlcj5cbiAgPC9sYWJlbD5cblxuICA8ZGl2IGNsYXNzPVwibWlhbS1saXN0LXNjYW5fX292ZXJsYXktYnV0dG9uX19yZWR1Y2VcIiAoY2xpY2spPVwidG9nZ2xlUmVkdWNlKCd0cnVlJylcIiBbbmdDbGFzc109XCJ7IHJlZHVjZWQ6IHJlZHVjZWQgPT0gJ3RydWUnIH1cIj5cbiAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgIDxwYXRoIGQ9XCJNOS45MTk1NyAxMkw1Ljk1OTc3IDguMDQwMkw3LjkzOTY3IDYuMDYwM0wxMS44OTk1IDEwLjAyMDFMMTUuODU5MyA2LjA2MDNMMTcuODM5MiA4LjA0MDJMMTMuODc5NCAxMkwxNy44MzkyIDE1Ljk1OThMMTUuODU5MyAxNy45Mzk3TDExLjg5OTUgMTMuOTc5OUw3LjkzOTY3IDE3LjkzOTdMNS45NTk3NyAxNS45NTk4TDkuOTE5NTcgMTJaXCIgZmlsbD1cIiM2NzY3NjdcIi8+XG4gICAgPC9zdmc+ICAgICAgXG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,3 @@
1
+ export * from './loader.module';
2
+ export * from './loader.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2J1aWxkcy9taWFtL25nLW1pYW0tc2RrL3Byb2plY3RzL25nLW1pYW0vc3JjLyIsInNvdXJjZXMiOlsibGliL193ZWItY29tcG9uZW50cy9sb2FkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2FkZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVyLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { Injector, NgModule } from '@angular/core';
3
+ import { createCustomElement } from '@angular/elements';
4
+ import { UtilsModule } from '../../_utils/utils.module';
5
+ import { LoaderComponent } from './loader.component';
6
+ import * as i0 from "@angular/core";
7
+ export class LoaderModule {
8
+ // Create custom elements so the WebComponents can be interpreted by the browser regardless of the js framework used
9
+ constructor(injector) {
10
+ // Avoid duplicate error
11
+ if (!customElements.get('webc-miam-loader')) {
12
+ const ngElement = createCustomElement(LoaderComponent, { injector });
13
+ customElements.define('webc-miam-loader', ngElement);
14
+ }
15
+ }
16
+ }
17
+ LoaderModule.ɵmod = i0.ɵɵdefineNgModule({ type: LoaderModule });
18
+ LoaderModule.ɵinj = i0.ɵɵdefineInjector({ factory: function LoaderModule_Factory(t) { return new (t || LoaderModule)(i0.ɵɵinject(i0.Injector)); }, imports: [[
19
+ UtilsModule,
20
+ CommonModule
21
+ ]] });
22
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(LoaderModule, { declarations: [LoaderComponent], imports: [UtilsModule,
23
+ CommonModule], exports: [LoaderComponent] }); })();
24
+ /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoaderModule, [{
25
+ type: NgModule,
26
+ args: [{
27
+ imports: [
28
+ UtilsModule,
29
+ CommonModule
30
+ ],
31
+ declarations: [
32
+ LoaderComponent
33
+ ],
34
+ exports: [
35
+ LoaderComponent
36
+ ]
37
+ }]
38
+ }], function () { return [{ type: i0.Injector }]; }, null); })();
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIvYnVpbGRzL21pYW0vbmctbWlhbS1zZGsvcHJvamVjdHMvbmctbWlhbS9zcmMvIiwic291cmNlcyI6WyJsaWIvX3dlYi1jb21wb25lbnRzL2xvYWRlci9sb2FkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWNyRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixvSEFBb0g7SUFDcEgsWUFDRSxRQUFrQjtRQUVsQix3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUMzQyxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLGNBQWMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDOztnREFWVSxZQUFZO3VHQUFaLFlBQVksMENBWGQ7WUFDUCxXQUFXO1lBQ1gsWUFBWTtTQUNiO3dGQVFVLFlBQVksbUJBTnJCLGVBQWUsYUFKZixXQUFXO1FBQ1gsWUFBWSxhQU1aLGVBQWU7a0RBR04sWUFBWTtjQVp4QixRQUFRO2VBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFdBQVc7b0JBQ1gsWUFBWTtpQkFDYjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZUFBZTtpQkFDaEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGVBQWU7aUJBQ2hCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVDdXN0b21FbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvZWxlbWVudHMnO1xuaW1wb3J0IHsgVXRpbHNNb2R1bGUgfSBmcm9tICcuLi8uLi9fdXRpbHMvdXRpbHMubW9kdWxlJztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbG9hZGVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBVdGlsc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTG9hZGVyQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBMb2FkZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkZXJNb2R1bGUge1xuICAvLyBDcmVhdGUgY3VzdG9tIGVsZW1lbnRzIHNvIHRoZSBXZWJDb21wb25lbnRzIGNhbiBiZSBpbnRlcnByZXRlZCBieSB0aGUgYnJvd3NlciByZWdhcmRsZXNzIG9mIHRoZSBqcyBmcmFtZXdvcmsgdXNlZFxuICBjb25zdHJ1Y3RvcihcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIC8vIEF2b2lkIGR1cGxpY2F0ZSBlcnJvclxuICAgIGlmICghY3VzdG9tRWxlbWVudHMuZ2V0KCd3ZWJjLW1pYW0tbG9hZGVyJykpIHtcbiAgICAgIGNvbnN0IG5nRWxlbWVudCA9IGNyZWF0ZUN1c3RvbUVsZW1lbnQoTG9hZGVyQ29tcG9uZW50LCB7IGluamVjdG9yIH0pO1xuICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd3ZWJjLW1pYW0tbG9hZGVyJywgbmdFbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -388,4 +388,4 @@ RecipeCardComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCardComponent,
388
388
  }], guestsChanged: [{
389
389
  type: Output
390
390
  }] }); })();
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDL0gsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7O0lDRHRCLCtCQUFpSDtJQUFBLDJDQUFhO0lBQUEsaUJBQU07OztJQUVsSSwwQ0FBMEo7OztJQUF4Qyx1Q0FBaUI7OztJQU1ySSwwQkFDRjs7O0lBRGtGLHVFQUE2Qjs7OztJQVgvRywrQkFDRTtJQURzRSw4TEFBc0I7SUFDNUYsMEJBQ0E7SUFB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O2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFdBQVcsRUFBRSw4QkFBOEI7Z0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2dCQUMzQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7O3NCQVlJLE1BQU07dUJBQUMsaUJBQWlCOztzQkFDeEIsTUFBTTt1QkFBQyxjQUFjOztzQkFDckIsTUFBTTt1QkFBQyxtQkFBbUI7O3NCQUMxQixNQUFNO3VCQUFDLHFCQUFxQjs7c0JBQzVCLE1BQU07dUJBQUMsV0FBVzs7c0JBQ2xCLE1BQU07dUJBQUMsbUJBQW1COztzQkFDMUIsTUFBTTt1QkFBQyxjQUFjO2dGQWZmLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDSSxtQkFBbUI7a0JBQTVCLE1BQU07WUFDRyxTQUFTO2tCQUFsQixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIENoYW5nZURldGVjdG9yUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIE9uQ2hhbmdlcywgSW5qZWN0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2Fic3RyYWN0LXJlY2lwZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlRXZlbnRzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UmVjaXBlQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBndWVzdHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgaXNsb2FkZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoUmVjaXBlc1NlcnZpY2UpIHJlY2lwZVNlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoUmVjaXBlRXZlbnRzU2VydmljZSkgcmVjaXBlRXZlbnRzU2VydmljZTogUmVjaXBlRXZlbnRzU2VydmljZSxcbiAgICBASW5qZWN0KEdyb2Nlcmllc0xpc3RzU2VydmljZSkgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgQEluamVjdChVc2VyU2VydmljZSkgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUG9pbnRPZlNhbGVzU2VydmljZSkgcG9pbnRPZlNhbGVzU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBASW5qZWN0KENvbnRleHRTZXJ2aWNlKSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICBzdXBlcihjZHIsIHJlY2lwZVNlcnZpY2UsIHJlY2lwZUV2ZW50c1NlcnZpY2UsIGdyb2Nlcmllc0xpc3RzU2VydmljZSwgdXNlclNlcnZpY2UsIHBvaW50T2ZTYWxlc1NlcnZpY2UsIGNvbnRleHRTZXJ2aWNlLFxuICAgICAgYW5hbHl0aWNzU2VydmljZSwgZWxlbWVudCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlY2lwZVdhc0xvYWRlZCgpIHtcbiAgICB0aGlzLmluaXRJbmdyZWRpZW50c1N0cmluZygpO1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8PSArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgIHRoaXMuaXNsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21GYXZvcml0ZSgpIHtcbiAgICB0aGlzLnJlbW92ZWRGcm9tRmF2b3JpdGUuZW1pdCh0aGlzLnJlY2lwZSk7XG4gIH1cblxuICBvcGVuUmVjaXBlKCkge1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KHRoaXMucmVjaXBlLCB7IGd1ZXN0cyA6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIH0pO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhjb3VudCkge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gY291bnQ7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgdGhpcy5fdXBkYXRlQmFza2V0KCk7IH0gLy8gSWYgcmVjaXBlIHdhcyBsb2FkZWQgaGVyZSwgd2UgbmVlZCB0byBwcm9jZXNzIGJhc2tldCB1cGRhdGVzIGhlcmVcbiAgICB0aGlzLmd1ZXN0c0NoYW5nZWQuZW1pdChjb3VudCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX3VwZGF0ZUJhc2tldCgpIHtcbiAgICAvLyBJZiByZWNpcGUgYWxyZWFkeSBpbiBiYXNrZXQsIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBzbyB0aGF0IHRoZSBwcmljaW5nIGdldHMgdXBkYXRlZCBhcyB3ZWxsXG4gICAgLy8gKGRpc3BsYXkgPSBmYWxzZSBzbyB0aGF0IHRoZSByZWNpcGUgZGV0YWlscyBkb24ndCBzaG93IHVwKVxuICAgIGlmICh0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5saXN0JC52YWx1ZS5oYXNSZWNpcGUodGhpcy5yZWNpcGVJZCkpe1xuICAgICAgdGhpcy5hZGRSZWNpcGUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlY2lwZSgpIHtcbiAgICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLFxuICAgICAgICAgIHsgaW5jbHVkZTogWydpbmdyZWRpZW50cycsICdyZWNpcGUtc3RlcHMnLCAncmVjaXBlLXN0YXR1cycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycgXSB9XG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvciggZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICAgIH0pLFxuICAgICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9J2lzbG9hZGVkJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlYWRlclwiPlxuICAgIDxzcGFuPiB7e2hlYWRlclRleHR9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJyZWNpcGUgZWxzZSBwaWN0U2tlbGV0b25cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVcIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgPGltZyBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIiBsb2FkaW5nPVwibGF6eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX19ncmFkaWVudFwiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmxpc3QkIHwgYXN5bmMpPy5oYXNSZWNpcGUocmVjaXBlPy5pZClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3RhZ1wiPkTDqWrDoCAgYWpvdXTDqWU8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fYWN0aW9uc1wiPlxuICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b24gKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvbiBtaWFtLW5vUGFkZGluZ1wiIFtyZWNpcGVdPSdyZWNpcGUnPjwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nb3BlbkNhbGVuZGFyKCRldmVudCknXG4gICAgICAgIFtpY29uTmFtZV09XCJpY29uLkNhbGVuZGFyXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nc2hhcmVSZWNpcGUoJGV2ZW50KSdcbiAgICAgICAgW2ljb25OYW1lXT1cImljb24uU2hhcmVcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxpbWcgKm5nSWY9XCJyZWNpcGUuZmlsaWdyYW5lTG9nb1VybFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fc3BvbnNvclwiIFtzcmNdPXJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNwaWN0U2tlbGV0b24+XG4gICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbi5QaWN0dXJlJz48L25nLW1pYW0tc2tlbGV0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZSBlbHNlIHRleHRTa2VsZXRvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX3RpdGxlXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgICAgICB7e3JlY2lwZT8uYXR0cmlidXRlc1sndGl0bGUnXX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmdyZWRpZW50c1wiPnt7aW5ncmVkaWVudHNDb25jYXROYW1lIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTa2VsZXRvbj5cbiAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24uVGV4dCc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm9zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbkluZm8nIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mbyAgXCI+XG4gICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uVGltZVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsXCI+e3sgcmVjaXBlPy50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eUxhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZhY2lsZSdcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjMyXCIgW2hlaWdodF09XCIxNlwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1zZWNvbmRhcnkpJ1xuICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5TG93XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21veWVuJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlNZWRpdW1cIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlmZmljaWxlJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlIaWdodFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj57e3JlY2lwZT8uZGlmZmljdWx0eUxhYmVsfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25JbmZvPlxuICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2NvbnRyb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19sZWZ0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY3VzdG9tXCI+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlSGVscGVyKClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlbHBcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KSdcbiAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhlbHBcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uY291bnRlcicgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19sZWZ0X19jb2xfX2NvdW50ZXJcIj5cbiAgICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0IFtjb3VudGVyXT1cInJlY2lwZS5tb2RpZmllZEd1ZXN0c1wiIChjb3VudGVyQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+PC9uZy1taWFtLWNvdW50ZXItaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uY291bnRlcj5cbiAgICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRyb2xfX3JpZ2h0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3JpZ2h0X19jb2xfX3ByaWNlXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByaWNpbmcgW3JlY2lwZV09XCJyZWNpcGVcIiBbc2VydmVzXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIj48L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT0nIXJlY2lwZScgKGNsaWNrKT1cImFkZFJlY2lwZSgpXCIgIGNsYXNzPVwibS1idXR0b24tZmFiLXByaW1hcnlcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZicgW2ljb25OYW1lXT1cIihncm9jZXJpZXNMaXN0c1NlcnZpY2UubGlzdCQgfCBhc3luYyk/Lmhhc1JlY2lwZShyZWNpcGU/LmlkKSA/IGljb24uQ2hlY2tMaXN0ICA6aWNvbi5DYXJ0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2NvcnM+XG4gIDxuZy1taWFtLWNvcnMtb3ZlcmxheT48L25nLW1pYW0tY29ycy1vdmVybGF5PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
391
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhcmQvcmVjaXBlLWNhcmQuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2FyZC9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksRUFDWixVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDekcsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUNYdEIsK0JBQWlIO0lBQUEsMkNBQWE7SUFBQSxpQkFBTTs7O0lBRWxJLDBDQUEwSjs7O0lBQXhDLHVDQUFpQjs7O0lBTXJJLDBCQUNGOzs7SUFEa0YsdUVBQTZCOzs7O0lBWC9HLCtCQUNFO0lBRHNFLDhMQUFzQjtJQUM1RiwwQkFDQTtJ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QUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsV0FBVyxFQUFFLDhCQUE4QjtnQkFDM0MsU0FBUyxFQUFFLENBQUMsOEJBQThCLENBQUM7Z0JBQzNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7c0JBWUksTUFBTTt1QkFBQyxpQkFBaUI7O3NCQUN4QixNQUFNO3VCQUFDLGNBQWM7O3NCQUNyQixNQUFNO3VCQUFDLG1CQUFtQjs7c0JBQzFCLE1BQU07dUJBQUMscUJBQXFCOztzQkFDNUIsTUFBTTt1QkFBQyxXQUFXOztzQkFDbEIsTUFBTTt1QkFBQyxtQkFBbUI7O3NCQUMxQixNQUFNO3VCQUFDLGNBQWM7Z0ZBZmYsUUFBUTtrQkFBaEIsS0FBSztZQUNHLE1BQU07a0JBQWQsS0FBSztZQUNJLG1CQUFtQjtrQkFBNUIsTUFBTTtZQUNHLFNBQVM7a0JBQWxCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RSZWNpcGVDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vX2NvbXBvbmVudHMvYWJzdHJhY3RzL2Fic3RyYWN0LXJlY2lwZS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGVzU2VydmljZSwgR3JvY2VyaWVzTGlzdHNTZXJ2aWNlLCBDb250ZXh0U2VydmljZSwgUmVjaXBlRXZlbnRzU2VydmljZSwgVXNlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMnO1xuaW1wb3J0IHsgUG9pbnRPZlNhbGVzU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9wb2ludC1vZi1zYWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFJlY2lwZSB9IGZyb20gJy4uLy4uL19tb2RlbHMvcmVjaXBlJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGlzIGFuIGFuZ3VsYXIgY29tcG9uZW50IGRlc2lnbiB0byBiZSBhIHdlYiBjb21wb25lbnRcbiAqIHRoYXQncyB3aHkgd2UgdXNlIG9uUHVzaFN0cmF0ZWdpZSB3aXRoIHRoZSBjaGFuZ2VEZXRldGVjdG9yUmVmXG4gKiB0byBhdm9pZCBjb21tb24gaXNzdWVcbiAqIGd1aWRlIC0+IGh0dHBzOi8vbmV0YmFzYWwuY29tL2EtY29tcHJlaGVuc2l2ZS1ndWlkZS10by1hbmd1bGFyLW9ucHVzaC1jaGFuZ2UtZGV0ZWN0aW9uLXN0cmF0ZWd5LTViYWM0OTMwNzRhNFxuICogYW5kIGFsc293IHdlIHVzZSBTaGFkb3dEb20gdG8gcHJvdGVjdCBzdHlsZSBvZiBvdXIgY29tcG9uZW50XG4gKiBhbmQgYWxzb3cgc3R5bGUgb2YgdGhlIHBhcmVudCBhcGxpY2F0aW9uIHRoYXQgd2lsbCB1c2UgaXRcbiAqIGRvYyAtPiBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0VuY2Fwc3VsYXRpb25cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmctbWlhbS1yZWNpcGUtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWNpcGUtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY2lwZS1jYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2FyZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0UmVjaXBlQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHJlY2lwZUlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlY2lwZTogUmVjaXBlO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEZyb21GYXZvcml0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkaXNwbGF5ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBndWVzdHNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgaXNsb2FkZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoUmVjaXBlc1NlcnZpY2UpIHJlY2lwZVNlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIEBJbmplY3QoUmVjaXBlRXZlbnRzU2VydmljZSkgcmVjaXBlRXZlbnRzU2VydmljZTogUmVjaXBlRXZlbnRzU2VydmljZSxcbiAgICBASW5qZWN0KEdyb2Nlcmllc0xpc3RzU2VydmljZSkgZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlOiBHcm9jZXJpZXNMaXN0c1NlcnZpY2UsXG4gICAgQEluamVjdChVc2VyU2VydmljZSkgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoUG9pbnRPZlNhbGVzU2VydmljZSkgcG9pbnRPZlNhbGVzU2VydmljZTogUG9pbnRPZlNhbGVzU2VydmljZSxcbiAgICBASW5qZWN0KENvbnRleHRTZXJ2aWNlKSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFuYWx5dGljc1NlcnZpY2U6IEFuYWx5dGljc1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICBzdXBlcihjZHIsIHJlY2lwZVNlcnZpY2UsIHJlY2lwZUV2ZW50c1NlcnZpY2UsIGdyb2Nlcmllc0xpc3RzU2VydmljZSwgdXNlclNlcnZpY2UsIHBvaW50T2ZTYWxlc1NlcnZpY2UsIGNvbnRleHRTZXJ2aWNlLFxuICAgICAgYW5hbHl0aWNzU2VydmljZSwgZWxlbWVudCk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJlY2lwZVNlcnZpY2UuZGlzcGxheWVkUmVjaXBlQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5yZWNpcGUpIHtcbiAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMucmVjaXBlSWQpIHtcbiAgICAgIHRoaXMubG9hZFJlY2lwZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlY2lwZVdhc0xvYWRlZCgpIHtcbiAgICB0aGlzLmluaXRJbmdyZWRpZW50c1N0cmluZygpO1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIHx8PSArdGhpcy5yZWNpcGUuZ3Vlc3RzO1xuICAgIHRoaXMuaXNsb2FkZWQgPSB0cnVlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21GYXZvcml0ZSgpIHtcbiAgICB0aGlzLnJlbW92ZWRGcm9tRmF2b3JpdGUuZW1pdCh0aGlzLnJlY2lwZSk7XG4gIH1cblxuICBvcGVuUmVjaXBlKCkge1xuICAgIHRoaXMucmVjaXBlU2VydmljZS5kaXNwbGF5T2JqZWN0KHRoaXMucmVjaXBlLCB7IGd1ZXN0cyA6IHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzIH0pO1xuICAgIHRoaXMuZGlzcGxheWVkLmVtaXQoKTtcbiAgfVxuXG4gIHVwZGF0ZUd1ZXN0cyhjb3VudCkge1xuICAgIHRoaXMucmVjaXBlLm1vZGlmaWVkR3Vlc3RzID0gY291bnQ7XG4gICAgaWYgKHRoaXMucmVjaXBlSWQpIHsgdGhpcy5fdXBkYXRlQmFza2V0KCk7IH0gLy8gSWYgcmVjaXBlIHdhcyBsb2FkZWQgaGVyZSwgd2UgbmVlZCB0byBwcm9jZXNzIGJhc2tldCB1cGRhdGVzIGhlcmVcbiAgICB0aGlzLmd1ZXN0c0NoYW5nZWQuZW1pdChjb3VudCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgX3VwZGF0ZUJhc2tldCgpIHtcbiAgICAvLyBJZiByZWNpcGUgYWxyZWFkeSBpbiBiYXNrZXQsIHVwZGF0ZSB0aGUgbnVtYmVyIG9mIGd1ZXN0cyBzbyB0aGF0IHRoZSBwcmljaW5nIGdldHMgdXBkYXRlZCBhcyB3ZWxsXG4gICAgLy8gKGRpc3BsYXkgPSBmYWxzZSBzbyB0aGF0IHRoZSByZWNpcGUgZGV0YWlscyBkb24ndCBzaG93IHVwKVxuICAgIGlmICh0aGlzLmdyb2Nlcmllc0xpc3RzU2VydmljZS5saXN0JC52YWx1ZS5oYXNSZWNpcGUodGhpcy5yZWNpcGVJZCkpe1xuICAgICAgdGhpcy5hZGRSZWNpcGUoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFJlY2lwZSgpIHtcbiAgICAgICAgdGhpcy5yZWNpcGVTZXJ2aWNlLmdldCh0aGlzLnJlY2lwZUlkLFxuICAgICAgICAgIHsgaW5jbHVkZTogWydpbmdyZWRpZW50cycsICdyZWNpcGUtc3RlcHMnLCAncmVjaXBlLXN0YXR1cycsICdyZWNpcGUtdHlwZScsICdzcG9uc29ycycgXSB9XG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocmVzdWx0ID0+IHJlc3VsdC5pc19sb2FkaW5nKSxcbiAgICAgICAgY2F0Y2hFcnJvciggZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGUuZW1pdCgpO1xuICAgICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgICAgIH0pLFxuICAgICAgKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgdGhpcy5yZWNpcGUgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLnJlY2lwZSkge1xuICAgICAgICAgIHRoaXMucmVjaXBlV2FzTG9hZGVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9J2lzbG9hZGVkJyBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlYWRlclwiPlxuICAgIDxzcGFuPiB7e2hlYWRlclRleHR9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJyZWNpcGUgZWxzZSBwaWN0U2tlbGV0b25cIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVcIiAoY2xpY2spPVwib3BlblJlY2lwZSgpXCI+XG4gICAgPGltZyBbc3JjXT1cInJlY2lwZT8uYXR0cmlidXRlc1snbWVkaWEtdXJsJ11cIiBsb2FkaW5nPVwibGF6eVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19waWN0dXJlX19ncmFkaWVudFwiPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoZ3JvY2VyaWVzTGlzdHNTZXJ2aWNlLmxpc3QkIHwgYXN5bmMpPy5oYXNSZWNpcGUocmVjaXBlPy5pZClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3BpY3R1cmVfX3RhZ1wiPkTDqWrDoCAgYWpvdXTDqWU8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fYWN0aW9uc1wiPlxuICAgICAgPG5nLW1pYW0tbGlrZS1idXR0b24gKm5nSWY9XCJ1c2VyU2VydmljZS5pc0xvZ2dlZCQgfCBhc3luY1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYWN0aW9uc19faWNvbiBtaWFtLW5vUGFkZGluZ1wiIFtyZWNpcGVdPSdyZWNpcGUnPjwvbmctbWlhbS1saWtlLWJ1dHRvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nb3BlbkNhbGVuZGFyKCRldmVudCknXG4gICAgICAgIFtpY29uTmFtZV09XCJpY29uLkNhbGVuZGFyXCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXByaW1hcnkpJz48L25nLW1pYW0taWNvbj5cbiAgICAgIDxuZy1taWFtLWljb24gY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hY3Rpb25zX19pY29uXCIgKGNsaWNrKT0nc2hhcmVSZWNpcGUoJGV2ZW50KSdcbiAgICAgICAgW2ljb25OYW1lXT1cImljb24uU2hhcmVcIiBwcmltYXJ5Q29sb3I9J3ZhcigtLW0tY29sb3ItcHJpbWFyeSknPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxpbWcgKm5nSWY9XCJyZWNpcGUuZmlsaWdyYW5lTG9nb1VybFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fcGljdHVyZV9fc3BvbnNvclwiIFtzcmNdPXJlY2lwZS5maWxpZ3JhbmVMb2dvVXJsPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlICNwaWN0U2tlbGV0b24+XG4gICAgPG5nLW1pYW0tc2tlbGV0b24gW3R5cGVdPSdza2VsZXRvbi5QaWN0dXJlJz48L25nLW1pYW0tc2tlbGV0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzXCI+XG4gICAgPGRpdiAqbmdJZj1cInJlY2lwZSBlbHNlIHRleHRTa2VsZXRvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX3RpdGxlXCIgKGNsaWNrKT1cIm9wZW5SZWNpcGUoKVwiPlxuICAgICAgICB7e3JlY2lwZT8uYXR0cmlidXRlc1sndGl0bGUnXX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmdyZWRpZW50c1wiPnt7aW5ncmVkaWVudHNDb25jYXROYW1lIHwgY2FwaXRhbGl6ZUZpcnN0TGV0dGVyfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RleHRTa2VsZXRvbj5cbiAgICAgIDxuZy1taWFtLXNrZWxldG9uIFt0eXBlXT0nc2tlbGV0b24uVGV4dCc+PC9uZy1taWFtLXNrZWxldG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2luZm9zXCI+XG4gICAgICA8ZGl2ICpuZ0lmPSdyZWNpcGUgZWxzZSBza2VsZXRvbkluZm8nIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9fYXR0cmlidXRlc19faW5mbyAgXCI+XG4gICAgICAgIDxuZy1taWFtLWljb24gW2ljb25OYW1lXT1cImljb24uVGltZVwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2luZm9fX2xhYmVsXCI+e3sgcmVjaXBlPy50b3RhbFRpbWUgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uSW5mbycgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19hdHRyaWJ1dGVzX19pbmZvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInJlY2lwZT8uZGlmZmljdWx0eUxhYmVsXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2ZhY2lsZSdcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjMyXCIgW2hlaWdodF09XCIxNlwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1zZWNvbmRhcnkpJ1xuICAgICAgICAgICAgICBbaWNvbk5hbWVdPVwiaWNvbi5EaWZmaWN1bHR5TG93XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21veWVuJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlNZWRpdW1cIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlmZmljaWxlJ1wiPlxuICAgICAgICAgICAgPG5nLW1pYW0taWNvbiBbd2lkdGhdPVwiMzJcIiBbaGVpZ2h0XT1cIjE2XCIgcHJpbWFyeUNvbG9yPSd2YXIoLS1tLWNvbG9yLXNlY29uZGFyeSknXG4gICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkRpZmZpY3VsdHlIaWdodFwiPjwvbmctbWlhbS1pY29uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWlhbS1yZWNpcGUtY2FyZF9faW5mb19fbGFiZWxcIj57e3JlY2lwZT8uZGlmZmljdWx0eUxhYmVsfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25JbmZvPlxuICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2F0dHJpYnV0ZXNfX2NvbnRyb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19jb250cm9sX19sZWZ0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2xlZnRfX2NvbF9fY3VzdG9tXCI+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwidG9nZ2xlSGVscGVyKClcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2hlbHBcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0ndmFyKC0tbS1jb2xvci1wcmltYXJ5KSdcbiAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uLkhlbHBcIj48L25nLW1pYW0taWNvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9J3JlY2lwZSBlbHNlIHNrZWxldG9uY291bnRlcicgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXJkX19sZWZ0X19jb2xfX2NvdW50ZXJcIj5cbiAgICAgICAgICA8bmctbWlhbS1jb3VudGVyLWlucHV0IFtjb3VudGVyXT1cInJlY2lwZS5tb2RpZmllZEd1ZXN0c1wiIChjb3VudGVyQ2hhbmdlKT1cInVwZGF0ZUd1ZXN0cygkZXZlbnQpXCI+PC9uZy1taWFtLWNvdW50ZXItaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3NrZWxldG9uY291bnRlcj5cbiAgICAgICAgICA8bmctbWlhbS1za2VsZXRvbiBbdHlwZV09J3NrZWxldG9uPy5JY29uV2l0aEluZm8nPjwvbmctbWlhbS1za2VsZXRvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX2NvbnRyb2xfX3JpZ2h0X19jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhcmRfX3JpZ2h0X19jb2xfX3ByaWNlXCI+XG4gICAgICAgICAgPG5nLW1pYW0tcmVjaXBlLXByaWNpbmcgW3JlY2lwZV09XCJyZWNpcGVcIiBbc2VydmVzXT1cInJlY2lwZT8ubW9kaWZpZWRHdWVzdHNcIj48L25nLW1pYW0tcmVjaXBlLXByaWNpbmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT0nIXJlY2lwZScgKGNsaWNrKT1cImFkZFJlY2lwZSgpXCIgIGNsYXNzPVwibS1idXR0b24tZmFiLXByaW1hcnlcIj5cbiAgICAgICAgICAgIDxuZy1taWFtLWljb24gW3dpZHRoXT1cIjI0XCIgW2hlaWdodF09XCIyNFwiIHByaW1hcnlDb2xvcj0nI2ZmZicgW2ljb25OYW1lXT1cIihncm9jZXJpZXNMaXN0c1NlcnZpY2UubGlzdCQgfCBhc3luYyk/Lmhhc1JlY2lwZShyZWNpcGU/LmlkKSA/IGljb24uQ2hlY2tMaXN0ICA6aWNvbi5DYXJ0XCI+PC9uZy1taWFtLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2NvcnM+XG4gIDxuZy1taWFtLWNvcnMtb3ZlcmxheT48L25nLW1pYW0tY29ycy1vdmVybGF5PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
@@ -376,4 +376,4 @@ RecipeCatalogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: RecipeCatalogCompo
376
376
  type: ViewChildren,
377
377
  args: [CatalogCategoryComponent]
378
378
  }] }); })();
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1cvQywrQkFDRTtJQUFBLGdEQU11QjtJQUhyQix3UEFBOEMsa09BQUEsd1BBQUE7SUFHaEQsaUJBQXVCO0lBQ3pCLGlCQUFNOzs7SUFORixlQUFtQjtJQUFuQix3Q0FBbUIsb0JBQUE7Ozs7SUFVbkIsb0RBSzJCO0lBRHpCLGlTQUE0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RUFBRSxDQUFDO0lBQzNCLENBQUM7OzRGQXpRVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjt1QkFDdEIsc0JBQXNCOzt1QkFHbkIsd0JBQXdCOzs7Ozs7O1FDeEJ4Qyw0QkFBNkQ7UUFDN0Qsd0VBQ0U7UUE2Q0Ysd0hBQ0U7OztRQS9DRyxlQUF5QztRQUF6QywwQ0FBeUMsaUJBQUE7O2tERG1CakMsc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3FQQUVvQyxhQUFhO2tCQUEvQyxTQUFTO21CQUFDLHNCQUFzQjtZQUNFLFNBQVM7a0JBQTNDLFNBQVM7bUJBQUMsc0JBQXNCO1lBRVEsY0FBYztrQkFBdEQsWUFBWTttQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2F0YWxvZ0NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vY2F0YWxvZy1jYXRlZ29yeS9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVR5cGVTZXJ2aWNlLCBTcG9uc29yU2VydmljZSwgUGFja2FnZVNlcnZpY2UsIFN1cHBsaWVyc1NlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENhdGFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWhlYWRlci9jYXRhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2F0YWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoQ2F0YWxvZ0hlYWRlckNvbXBvbmVudCkgY2F0YWxvZ0hlYWRlcjogQ2F0YWxvZ0hlYWRlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbWlhbUNhdGFsb2dUb3BBbmNob3InKSB0b3BBbmNob3I6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbihDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQpICBjYXRlZ29yaWVzQ29tcCE6IFF1ZXJ5TGlzdDxDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQ+O1xuXG5cbiAgZmlsdGVyczogUmVjaXBlRmlsdGVycztcbiAgaG9tZVBhZ2VUaXRsZSA9ICdRdVxcJ2VzdC1jZSBxdWkgdm91cyBmZXJhaXQgcGxhaXNpciA/JztcbiAgdGl0bGVJblJlc2VhcmNoTW9kZSA9ICdSw6lzdWx0YXRzIGRlIHJlY2hlcmNoZSc7XG4gIGRpc3BsYXlIb21lUGFnZSA9IHRydWU7XG4gIGlzRmlsdGVyQ29sbGFwc2VkID0gZmFsc2U7XG4gIHJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkID0gZmFsc2U7XG4gIGljb24gPSBJY29uO1xuICBjYXRlZ29yaWVzID0gW107XG4gIHJlY2lwZUluSGVhZGVyOiBSZWNpcGU7XG4gIGNyZWF0aW5nUmVjaXBlID0gZmFsc2U7XG4gIHJlY2lwZVRvVXBkYXRlOiBSZWNpcGU7XG4gIGZpbHRlclRvUmVtb3ZlOiBzdHJpbmc7XG4gIGlzTW9iaWxlID0gZmFsc2U7XG4gIGxpc3RJc0VtcHR5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIHJlY2lwZVR5cGVzU2VydmljZTogUmVjaXBlVHlwZVNlcnZpY2UsXG4gICAgcHVibGljIHNwb25zb3JTZXJ2aWNlOiBTcG9uc29yU2VydmljZSxcbiAgICBwdWJsaWMgc3VwcGxpZXJTZXJ2aWNlOiBTdXBwbGllcnNTZXJ2aWNlLFxuICAgIHB1YmxpYyBwYWNrYWdlU2VydmljZTogUGFja2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWNpcGVzU2VydmljZTogUmVjaXBlc1NlcnZpY2UsXG4gICAgcHVibGljIG1lZGlhTWF0Y2hlcjogTWVkaWFNYXRjaGVyKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IG1lZGlhTWF0Y2hlci5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiAxMDIycHgpJykubWF0Y2hlcztcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gdGhpcy5pc01vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG5cbiAgICBmb3JrSm9pbihbXG4gICAgICB0aGlzLnJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlcygpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZSh0eXBlcyA9PiB0eXBlcy5sZW5ndGggPT09IDApLFxuICAgICAgICAvLyByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZXMoKSBjb21lcyBmcm9tIGEgYmVoYXZpb3Igc3ViamVjdCwgaXQgZG9lcyBub3QgZW1pdCB0aGUgY29tcGxldGUoKSBmdW5jdGlvblxuICAgICAgICAvLyB5b3UgYWJzb2x1dGx5IG5lZWQgYSB0YWtlKDEpIG9yIGNhbGwgY29tcGxldGUgeW91cnNlbGYgdG8gdHJpZ2dlciB0aGUgZm9ya2pvaW4gc3Vic2NyaWJlXG4gICAgICAgIHRha2UoMSlcbiAgICAgICksXG4gICAgICB0aGlzLnN1cHBsaWVyU2VydmljZS5zdXBwbGllciQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKHN1cHAgPT4gc3VwcCA9PT0gdW5kZWZpbmVkIHx8IHN1cHAgPT0gbnVsbCksXG4gICAgICAgIHRha2UoMSlcbiAgICAgIClcbiAgICBdKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgY29uc3Qgc3VwcGxpZXIgPSByZXNbMV07XG4gICAgICB0aGlzLnBhY2thZ2VTZXJ2aWNlLmNhdGVnb3JpZXNfZm9yKFtzdXBwbGllci5pZF0pLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShwYWNrYWdlcyA9PiBwYWNrYWdlcy5pc19sb2FkaW5nKVxuICAgICAgKS5zdWJzY3JpYmUoKHBhY2thZ2VzKSA9PiB7XG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3JpZXMocGFja2FnZXMpO1xuICAgICAgICB0aGlzLnNlbGVjdENhdGVnb3J5RnJvbVVybCgpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGluaXRDYXRlZ29yaWVzKHBhY2thZ2VzKSB7XG4gICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAga2V5OiAnc3VnZ2VzdGlvbnMnLFxuICAgICAgdGl0bGU6ICdTdWdnZXN0aW9ucyBkZSBsYSBzZW1haW5lJyxcbiAgICAgIGZpbHRlcnM6IHsgc3VnZ2VzdGVkOiB0cnVlIH1cbiAgICB9KTtcbiAgICBwYWNrYWdlcy5kYXRhLmZvckVhY2goY2F0ZWdvcnlQYWNrYWdlID0+IHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgICAga2V5OiBjYXRlZ29yeVBhY2thZ2UudGl0bGUsXG4gICAgICAgIHRpdGxlOiBjYXRlZ29yeVBhY2thZ2UudGl0bGUsXG4gICAgICAgIGZpbHRlcnM6IHsgcGFja2FnZXM6IGNhdGVnb3J5UGFja2FnZS5pZCB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICBrZXk6ICdlbnRyZWVzJyxcbiAgICAgIHRpdGxlOiAnRW50csOpZXMnLFxuICAgICAgZmlsdGVyczogeyByZWNpcGVfdHlwZV9pZDogdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZUJ5TmFtZSgnZW50csOpZScpLmlkIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICBrZXk6ICdwbGF0cycsXG4gICAgICB0aXRsZTogJ1BsYXRzJyxcbiAgICAgIGZpbHRlcnM6IHsgcmVjaXBlX3R5cGVfaWQ6IHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVCeU5hbWUoJ3BsYXQgcHJpbmNpcGFsJykuaWQgfVxuICAgIH0pO1xuICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgIGtleTogJ2Rlc3NlcnRzJyxcbiAgICAgIHRpdGxlOiAnRGVzc2VydHMnLFxuICAgICAgZmlsdGVyczogeyByZWNpcGVfdHlwZV9pZDogdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZUJ5TmFtZSgnZGVzc2VydCcpLmlkIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNlbGVjdENhdGVnb3J5RnJvbVVybCgpIHtcbiAgICBjb25zdCBwYXJhbXNTdHJpbmcgPSB3aW5kb3cubG9jYXRpb24uc2VhcmNoO1xuICAgIGNvbnN0IHBhcmFtc0FycmF5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJhbXNTdHJpbmcpO1xuICAgIGNvbnN0IHNlbGVjdGVkX2NhdGVnb3J5X2tleSA9IHBhcmFtc0FycmF5LmdldCgnY2F0YWxvZ0NhdGVnb3J5Jyk7XG4gICAgaWYgKCFzZWxlY3RlZF9jYXRlZ29yeV9rZXkpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZF9jYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcy5maW5kKChjYXQpID0+IGNhdC5rZXkgPT09IHNlbGVjdGVkX2NhdGVnb3J5X2tleSk7XG4gICAgaWYgKCFzZWxlY3RlZF9jYXRlZ29yeSl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2F0ZWdvcnlUaXRsZUNsaWNrZWQoc2VsZWN0ZWRfY2F0ZWdvcnkpO1xuICB9XG5cbiAgLy8gVXNlZCBvbiBsb2FkIHRvIGJ1aWxkIHRoZSBmaWx0ZXJzIGF0dHJpYnV0ZSwgYW5kIG9uIGNsaWNrIG9uIHRoZSBsaW5rIHRvIHJlc2V0IHRoZSBmaWx0ZXJzXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7XG4gICAgICAvLyB0eXBlOiBbXG4gICAgICAvLyAgIHtuYW1lOiByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZSgxKS5pZCwgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnRW50csOpZXMnfSxcbiAgICAgIC8vICAge25hbWU6IHJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlKDIpLmlkLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdQbGF0cyd9LFxuICAgICAgLy8gICB7bmFtZTogcmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGUoMykuaWQsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0Rlc3NlcnRzJ31cbiAgICAgIC8vIF0sXG4gICAgICBkaWZmaWN1bHR5OiBbXG4gICAgICAgIHtuYW1lOiAnMScsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0ZhY2lsZSd9LFxuICAgICAgICB7bmFtZTogJzInLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb3llbm5lJ30sXG4gICAgICAgIHtuYW1lOiAnMycsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0RpZmZpY2lsZSd9XG4gICAgICBdLFxuICAgICAgY29zdDogW1xuICAgICAgICB7bmFtZTogJzAtNScsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0JhcyAo4omIIOKJpCA14oKsKSd9LFxuICAgICAgICB7bmFtZTogJzUtMTAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdNb3llbiAo4omIIDUtMTDigqwpICd9LFxuICAgICAgICB7bmFtZTogJzEwLTEwMDAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICfDiWxldsOpICjiiYgg4omlIDEw4oKsKSAnfVxuICAgICAgICAvLyB3ZSBzZXQgYSBsaW1pdCBhdCAxMDAw4oKsIG1heCwgaWYgYSByZWNpcGUgY29zdCBtb3JlIHNob3VsZCBiZSBub24gc2Vuc2UgYW55d2F5XG4gICAgICBdLFxuICAgICAgdGltZTogW1xuICAgICAgICB7bmFtZTogJzE1JywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMTVtJ30sXG4gICAgICAgIHtuYW1lOiAnMzAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICczMG0nfSxcbiAgICAgICAge25hbWU6ICc2MCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJzFoJ30sXG4gICAgICAgIHtuYW1lOiAnMTIwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMmgnfVxuICAgICAgXSxcbiAgICB9O1xuICAgIGlmICh0aGlzLmNhdGFsb2dIZWFkZXIpIHsgdGhpcy5jYXRhbG9nSGVhZGVyLnJlc2V0U2VhcmNoU3RyaW5nKCk7IH1cbiAgICB0aGlzLmZpbHRlcnMuc2VhcmNoID0gJyc7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IGZhbHNlO1xuICAgIGlmICghdGhpcy5kaXNwbGF5SG9tZVBhZ2UpeyB0aGlzLnJldHVyblRvSG9tZVBhZ2UoKTsgfVxuICB9XG5cbiAgdXBkYXRlU2VhcmNoKHNlYXJjaDogc3RyaW5nKSB7XG4gICAgaWYgKHNlYXJjaCAhPT0gdGhpcy5maWx0ZXJzLnNlYXJjaCkge1xuICAgICAgdGhpcy5maWx0ZXJzLnNlYXJjaCA9IHNlYXJjaDtcbiAgICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogUmVjaXBlRmlsdGVycykge1xuICAgIHRoaXMuZmlsdGVycyA9IHsgLi4uZmlsdGVycyB9OyAvLyBOZWNlc3NhcnkgdG8gdHJpZ2dlciB0aGUgbmdPbkNoYW5nZXNcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubGlzdElzRW1wdHkgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgfVxuXG4gIHJlbG9hZExpc3QoKSB7XG4gICAgLy8gSWYgdGhlcmUgYXJlIG5vIGZpbHRlcnMgbm9yIHNlYXJjaCwgcmV0dXJuIHRvIGhvbWUgcGFnZVxuICAgIGlmICh0aGlzLmFyZUZpbHRlcnNFbXB0eSgpKSB7IHRoaXMucmV0dXJuVG9Ib21lUGFnZSgpOyB9XG4gICAgZWxzZSB7IC8vIFJlbG9hZCB0aGUgbGlzdFxuICAgICAgdGhpcy5maWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMgfTsgLy8gTmVjZXNzYXJ5IHRvIHRyaWdnZXIgdGhlIG5nT25DaGFuZ2VzXG4gICAgICB0aGlzLmRpc3BsYXlIb21lUGFnZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNhdGVnb3J5VGl0bGVDbGlja2VkKGV2ZW50OiB7dGl0bGU6IHN0cmluZywgZmlsdGVyczogYW55fSkge1xuICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgICB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgPSB7IGZpbHRlcnM6IGV2ZW50LmZpbHRlcnMsIHRpdGxlOiBldmVudC50aXRsZSB9O1xuICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICB9XG5cbiAgYXJlRmlsdGVyc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMuZGlmZmljdWx0eSkgJiYgdGhpcy5pc0ZpZWxkRW1wdHkodGhpcy5maWx0ZXJzLmNvc3QpICYmIHRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy50aW1lKVxuICAgICAgJiYgdGhpcy5maWx0ZXJzLnNlYXJjaCA9PT0gJycgJiYgIXRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycztcbiAgfVxuXG4gIGlzRmllbGRFbXB0eShmaWx0ZXI6IFJlY2lwZUZpbHRlcltdKSB7XG4gICAgZm9yIChjb25zdCBmIG9mIGZpbHRlcikge1xuICAgICAgaWYgKGYudmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJlbW92ZUZpbHRlcihmaWx0ZXJUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlclRvUmVtb3ZlID0gZmlsdGVyVGV4dDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZXR1cm5Ub1RvcCgpIHtcbiAgICBpZiAodGhpcy50b3BBbmNob3IpIHtcbiAgICAgIHRoaXMudG9wQW5jaG9yLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICB9XG4gIH1cblxuICBkaXNwbGF5UmV0dXJuVG9wQnV0dG9uKCkge1xuICAgIHRoaXMucmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWQgPSB0aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSA8IC00MDA7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgY2hhbmdlSGVhZGVySW1hZ2UocmVjaXBlczogUmVjaXBlW10pIHtcbiAgICBpZiAocmVjaXBlcy5sZW5ndGggPiAwICYmIHRoaXMuZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycz8uZmlsdGVycyAmJiAhdGhpcy5yZWNpcGVJbkhlYWRlcikge1xuICAgICAgdGhpcy5yZWNpcGVJbkhlYWRlciA9IHJlY2lwZXNbMF07XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuVG9Ib21lUGFnZSgpIHtcbiAgICB0aGlzLmRpc3BsYXlIb21lUGFnZSA9IHRydWU7XG4gICAgdGhpcy5yZWNpcGVJbkhlYWRlciA9IHVuZGVmaW5lZDsgLy8gRG9uJ3QgZm9yY2UgYSByZWNpcGUgaW4gaGVhZGVyIG9uIGhvbWVQYWdlXG4gICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkZpbHRlckNvbGxhcHNlZCgpIHtcbiAgICB0aGlzLmlzRmlsdGVyQ29sbGFwc2VkID0gIXRoaXMuaXNGaWx0ZXJDb2xsYXBzZWQ7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIHRvIHRyaWdnZXIgYWZ0ZXIgdGhlIGRldGVjdENoYW5nZXMgYmVjYXVzZSB3ZSBuZWVkIHRvIGFscmVhZCBoYXZlIHRoZSBkaXNwbGF5IGNoYW5nZSB0byB1cGRhdGUgY2FyZHNcbiAgICB0aGlzLmNhdGVnb3JpZXNDb21wLmZvckVhY2goIGNhdCA9PiB7XG4gICAgICBjYXQudXBkYXRlV2lkdGgoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdvVG9DcmVhdGVQYWdlKHJlY2lwZSA9IG51bGwpIHtcbiAgICB0aGlzLmNyZWF0aW5nUmVjaXBlID0gdHJ1ZTtcbiAgICB0aGlzLnJlY2lwZVRvVXBkYXRlID0gcmVjaXBlO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gIH1cblxuICBsZWF2ZUNyZWF0ZVBhZ2UoKSB7XG4gICAgdGhpcy5jcmVhdGluZ1JlY2lwZSA9IGZhbHNlO1xuICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgfVxuXG4gIG1hbmFnZVJlY2lwZUFjdGlvbihldmVudDoge2FjdGlvbjogc3RyaW5nLCByZWNpcGU6IFJlY2lwZX0pIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmFjdGlvbikge1xuICAgICAgY2FzZSAnQ1JFQVRFJzoge1xuICAgICAgICB0aGlzLmdvVG9DcmVhdGVQYWdlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdFRElUJzoge1xuICAgICAgICB0aGlzLmdvVG9DcmVhdGVQYWdlKGV2ZW50LnJlY2lwZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlICdERUxFVEUnOiB7XG4gICAgICAgIGlmIChldmVudC5yZWNpcGU/LmlkICYmIGV2ZW50LnJlY2lwZS5yZWxhdGlvbnNoaXBzWydyZWNpcGUtcHJvdmlkZXInXT8uZGF0YS5pZCA9PT0gJ3BlcnNvbmFsJykge1xuICAgICAgICAgIHRoaXMucmVjaXBlc1NlcnZpY2UuZGVsZXRlKGV2ZW50LnJlY2lwZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkTGlzdCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzTGlzdEVtcHR5KHJlY2lwZXM6IFJlY2lwZVtdKSB7XG4gICAgdGhpcy5saXN0SXNFbXB0eSA9IHJlY2lwZXMubGVuZ3RoID09PSAwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiAjbWlhbUNhdGFsb2dUb3BBbmNob3IgY2xhc3M9XCJtaWFtLWNhdGFsb2ctYW5jaG9yXCI+PC9kaXY+XG48ZGl2ICpuZ0lmPVwiIWNyZWF0aW5nUmVjaXBlIGVsc2UgY3JlYXRpb25QYWdlXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nXCIgKHdpbmRvdzpzY3JvbGwpPVwiZGlzcGxheVJldHVyblRvcEJ1dHRvbigpXCI+XG4gIDxuZy1taWFtLXJlY2lwZS1maWx0ZXJzXG4gICAgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiXG4gICAgW21vYmlsZUZpeGVkXT1cInJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkXCJcbiAgICBbZmlsdGVyVG9SZW1vdmVdPVwiZmlsdGVyVG9SZW1vdmVcIlxuICAgIChmaWx0ZXJSZXNldCk9XCJyZXNldEZpbHRlcnMoKVwiXG4gICAgKGZpbHRlckNoYW5nZWQpPVwidXBkYXRlRmlsdGVycygkZXZlbnQpXCJcbiAgICAoZmlsdGVyQ29sbGFwc2VkKT1cIm9uRmlsdGVyQ29sbGFwc2VkKClcIj5cbiAgPC9uZy1taWFtLXJlY2lwZS1maWx0ZXJzPlxuXG4gIDxkaXYgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jb250ZW50XCIgW25nQ2xhc3NdPVwieydmaWx0ZXItY29sbGFwc2VkJzogaXNGaWx0ZXJDb2xsYXBzZWR9XCI+XG4gICAgPG5nLW1pYW0tY2F0YWxvZy1oZWFkZXIgXG4gICAgICBbZGlzcGxheVJldHVybkJ1dHRvbl09XCIhZGlzcGxheUhvbWVQYWdlXCJcbiAgICAgIFtmb3JjZWRSZWNpcGVdPVwicmVjaXBlSW5IZWFkZXJcIlxuICAgICAgW3RpdGxlXT1cImRpc3BsYXlIb21lUGFnZSA/IGhvbWVQYWdlVGl0bGUgOiBcbiAgICAgICAgKGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMgJiYgZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSAhPT0gJycgPyBmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzLnRpdGxlIDogdGl0bGVJblJlc2VhcmNoTW9kZSlcIlxuICAgICAgKHJldHVybkJ1dHRvblByZXNzZWQpPVwicmV0dXJuVG9Ib21lUGFnZSgpXCJcbiAgICAgIChzZWFyY2hTdHJpbmdDaGFuZ2VkKT1cInVwZGF0ZVNlYXJjaCgkZXZlbnQpXCI+XG4gICAgPC9uZy1taWFtLWNhdGFsb2ctaGVhZGVyPlxuXG4gICAgPGRpdiAqbmdJZj1cIiFkaXNwbGF5SG9tZVBhZ2UgZWxzZSBjYXRlZ29yaWVzQ29tcG9uZW50c1wiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPG5nLW1pYW0tY2F0YWxvZy1saXN0XG4gICAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgICBbcmFuZG9tTW9kZV09XCJ0cnVlXCJcbiAgICAgICAgKHJldHJpZXZlZFJlY2lwZXMpPVwiY2hhbmdlSGVhZGVySW1hZ2UoJGV2ZW50KVwiXG4gICAgICAgIChmaWx0ZXJSZW1vdmVkKT1cInJlbW92ZUZpbHRlcigkZXZlbnQpXCJcbiAgICAgICAgKHJlY2lwZUFjdGlvblRyaWdnZXJlZCk9XCJtYW5hZ2VSZWNpcGVBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgPC9uZy1taWFtLWNhdGFsb2ctbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2F0ZWdvcmllc0NvbXBvbmVudHM+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY2F0ZWdvcmllcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19jYXRlZ29yaWVzXCI+XG4gICAgICAgIDxuZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnkgXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIiBcbiAgICAgICAgICBbdGl0bGVdPVwiY2F0ZWdvcnkudGl0bGVcIlxuICAgICAgICAgIFtmaWx0ZXJzXT1cImNhdGVnb3J5LmZpbHRlcnNcIiBcbiAgICAgICAgICAoZGlzcGxheUxpc3QpPVwiY2F0ZWdvcnlUaXRsZUNsaWNrZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L25nLW1pYW0tY2F0YWxvZy1jYXRlZ29yeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicmV0dXJuVG9wQnV0dG9uU2hvdWxkQmVEaXNwbGF5ZWRcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX3JldHVyblRvcFwiIChjbGljayk9XCJyZXR1cm5Ub1RvcCgpXCI+XG4gICAgICA8bmctbWlhbS1pY29uIGhlaWdodD0nMzInIHdpZHRoPSczMicgcHJpbWFyeUNvbG9yPVwidmFyKC0tbS1jb2xvci13aGl0ZSlcIiBbaWNvbk5hbWVdPVwiaWNvbi5DaGV2cm9uRG93blwiPjwvbmctbWlhbS1pY29uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNjcmVhdGlvblBhZ2U+XG4gIDxuZy1taWFtLXJlY2lwZS1zdGVwcGVyIFtyZWNpcGVdPVwicmVjaXBlVG9VcGRhdGVcIiAocmVjaXBlQ2hhbmdlKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCIgKGNhbmNlbGVkKT1cImxlYXZlQ3JlYXRlUGFnZSgpXCI+PC9uZy1taWFtLXJlY2lwZS1zdGVwcGVyPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
379
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9idWlsZHMvbWlhbS9uZy1taWFtLXNkay9wcm9qZWN0cy9uZy1taWFtL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9fd2ViLWNvbXBvbmVudHMvcmVjaXBlLWNhdGFsb2cvcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnRzIiwibGliL193ZWItY29tcG9uZW50cy9yZWNpcGUtY2F0YWxvZy9yZWNpcGUtY2F0YWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBaUIsaUJBQWlCLEVBQVUsVUFBVSxFQUM3SCxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFMUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEgsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1cvQywrQkFDRTtJQUFBLGdEQU11QjtJQUhyQix3UEFBOEMsa09BQUEsd1BBQUE7SUFHaEQsaUJBQXVCO0lBQ3pCLGlCQUFNOzs7SUFORixlQUFtQjtJQUFuQix3Q0FBbUIsb0JBQUE7Ozs7SUFVbkIsb0RBSzJCO0lBRHpCLGlTQUE0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RUFBRSxDQUFDO0lBQzNCLENBQUM7OzRGQXhRVSxzQkFBc0I7MkRBQXRCLHNCQUFzQjt1QkFDdEIsc0JBQXNCOzt1QkFHbkIsd0JBQXdCOzs7Ozs7O1FDeEJ4Qyw0QkFBNkQ7UUFDN0Qsd0VBQ0U7UUE2Q0Ysd0hBQ0U7OztRQS9DRyxlQUF5QztRQUF6QywwQ0FBeUMsaUJBQUE7O2tERG1CakMsc0JBQXNCO2NBUGxDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxXQUFXLEVBQUUsaUNBQWlDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztnQkFDOUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2FBQ2hEO3FQQUVvQyxhQUFhO2tCQUEvQyxTQUFTO21CQUFDLHNCQUFzQjtZQUNFLFNBQVM7a0JBQTNDLFNBQVM7bUJBQUMsc0JBQXNCO1lBRVEsY0FBYztrQkFBdEQsWUFBWTttQkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVmlld0NoaWxkLCBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2tpcFdoaWxlLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2F0YWxvZ0NhdGVnb3J5Q29tcG9uZW50IH0gZnJvbSAnLi4vY2F0YWxvZy1jYXRlZ29yeS9jYXRhbG9nLWNhdGVnb3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWNpcGUgfSBmcm9tICcuLi8uLi9fbW9kZWxzJztcbmltcG9ydCB7IFJlY2lwZVR5cGVTZXJ2aWNlLCBTcG9uc29yU2VydmljZSwgUGFja2FnZVNlcnZpY2UsIFN1cHBsaWVyc1NlcnZpY2UsIFJlY2lwZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vX3NlcnZpY2VzJztcbmltcG9ydCB7IEljb24gfSBmcm9tICcuLi8uLi9fdHlwZXMvaWNvbi5lbnVtJztcbmltcG9ydCB7IENhdGFsb2dIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9jYXRhbG9nLWhlYWRlci9jYXRhbG9nLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVjaXBlRmlsdGVyLCBSZWNpcGVGaWx0ZXJzIH0gZnJvbSAnLi4vLi4vX3R5cGVzL3JlY2lwZS1maWx0ZXJzJztcbmltcG9ydCB7IGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZWRpYU1hdGNoZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZy1taWFtLXJlY2lwZS1jYXRhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY2lwZS1jYXRhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjaXBlLWNhdGFsb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVjaXBlQ2F0YWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoQ2F0YWxvZ0hlYWRlckNvbXBvbmVudCkgY2F0YWxvZ0hlYWRlcjogQ2F0YWxvZ0hlYWRlckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbWlhbUNhdGFsb2dUb3BBbmNob3InKSB0b3BBbmNob3I6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbihDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQpICBjYXRlZ29yaWVzQ29tcCE6IFF1ZXJ5TGlzdDxDYXRhbG9nQ2F0ZWdvcnlDb21wb25lbnQ+O1xuXG4gIGZpbHRlcnM6IFJlY2lwZUZpbHRlcnM7XG4gIGhvbWVQYWdlVGl0bGUgPSAnUXVcXCdlc3QtY2UgcXVpIHZvdXMgZmVyYWl0IHBsYWlzaXIgPyc7XG4gIHRpdGxlSW5SZXNlYXJjaE1vZGUgPSAnUsOpc3VsdGF0cyBkZSByZWNoZXJjaGUnO1xuICBkaXNwbGF5SG9tZVBhZ2UgPSB0cnVlO1xuICBpc0ZpbHRlckNvbGxhcHNlZCA9IGZhbHNlO1xuICByZXR1cm5Ub3BCdXR0b25TaG91bGRCZURpc3BsYXllZCA9IGZhbHNlO1xuICBpY29uID0gSWNvbjtcbiAgY2F0ZWdvcmllcyA9IFtdO1xuICByZWNpcGVJbkhlYWRlcjogUmVjaXBlO1xuICBjcmVhdGluZ1JlY2lwZSA9IGZhbHNlO1xuICByZWNpcGVUb1VwZGF0ZTogUmVjaXBlO1xuICBmaWx0ZXJUb1JlbW92ZTogc3RyaW5nO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuICBsaXN0SXNFbXB0eSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyByZWNpcGVUeXBlc1NlcnZpY2U6IFJlY2lwZVR5cGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzcG9uc29yU2VydmljZTogU3BvbnNvclNlcnZpY2UsXG4gICAgcHVibGljIHN1cHBsaWVyU2VydmljZTogU3VwcGxpZXJzU2VydmljZSxcbiAgICBwdWJsaWMgcGFja2FnZVNlcnZpY2U6IFBhY2thZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVjaXBlc1NlcnZpY2U6IFJlY2lwZXNTZXJ2aWNlLFxuICAgIHB1YmxpYyBtZWRpYU1hdGNoZXI6IE1lZGlhTWF0Y2hlcikge1xuICAgIHRoaXMuaXNNb2JpbGUgPSBtZWRpYU1hdGNoZXIubWF0Y2hNZWRpYSgnKG1heC13aWR0aDogMTAyMnB4KScpLm1hdGNoZXM7XG4gICAgdGhpcy5pc0ZpbHRlckNvbGxhcHNlZCA9IHRoaXMuaXNNb2JpbGU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlc2V0RmlsdGVycygpO1xuXG4gICAgZm9ya0pvaW4oW1xuICAgICAgdGhpcy5yZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZXMoKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUodHlwZXMgPT4gdHlwZXMubGVuZ3RoID09PSAwKSxcbiAgICAgICAgLy8gcmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVzKCkgY29tZXMgZnJvbSBhIGJlaGF2aW9yIHN1YmplY3QsIGl0IGRvZXMgbm90IGVtaXQgdGhlIGNvbXBsZXRlKCkgZnVuY3Rpb25cbiAgICAgICAgLy8geW91IGFic29sdXRseSBuZWVkIGEgdGFrZSgxKSBvciBjYWxsIGNvbXBsZXRlIHlvdXJzZWxmIHRvIHRyaWdnZXIgdGhlIGZvcmtqb2luIHN1YnNjcmliZVxuICAgICAgICB0YWtlKDEpXG4gICAgICApLFxuICAgICAgdGhpcy5zdXBwbGllclNlcnZpY2Uuc3VwcGxpZXIkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgIHNraXBXaGlsZShzdXBwID0+IHN1cHAgPT09IHVuZGVmaW5lZCB8fCBzdXBwID09IG51bGwpLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgXSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHN1cHBsaWVyID0gcmVzWzFdO1xuICAgICAgdGhpcy5wYWNrYWdlU2VydmljZS5jYXRlZ29yaWVzX2Zvcihbc3VwcGxpZXIuaWRdKS5waXBlKFxuICAgICAgICBza2lwV2hpbGUocGFja2FnZXMgPT4gcGFja2FnZXMuaXNfbG9hZGluZylcbiAgICAgICkuc3Vic2NyaWJlKChwYWNrYWdlcykgPT4ge1xuICAgICAgICB0aGlzLmluaXRDYXRlZ29yaWVzKHBhY2thZ2VzKTtcbiAgICAgICAgdGhpcy5zZWxlY3RDYXRlZ29yeUZyb21VcmwoKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBpbml0Q2F0ZWdvcmllcyhwYWNrYWdlcykge1xuICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHtcbiAgICAgIGtleTogJ3N1Z2dlc3Rpb25zJyxcbiAgICAgIHRpdGxlOiAnU3VnZ2VzdGlvbnMgZGUgbGEgc2VtYWluZScsXG4gICAgICBmaWx0ZXJzOiB7IHN1Z2dlc3RlZDogdHJ1ZSB9XG4gICAgfSk7XG4gICAgcGFja2FnZXMuZGF0YS5mb3JFYWNoKGNhdGVnb3J5UGFja2FnZSA9PiB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICAgIGtleTogY2F0ZWdvcnlQYWNrYWdlLnRpdGxlLFxuICAgICAgICB0aXRsZTogY2F0ZWdvcnlQYWNrYWdlLnRpdGxlLFxuICAgICAgICBmaWx0ZXJzOiB7IHBhY2thZ2VzOiBjYXRlZ29yeVBhY2thZ2UuaWQgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAga2V5OiAnZW50cmVlcycsXG4gICAgICB0aXRsZTogJ0VudHLDqWVzJyxcbiAgICAgIGZpbHRlcnM6IHsgcmVjaXBlX3R5cGVfaWQ6IHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVCeU5hbWUoJ2VudHLDqWUnKS5pZCB9XG4gICAgfSk7XG4gICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goe1xuICAgICAga2V5OiAncGxhdHMnLFxuICAgICAgdGl0bGU6ICdQbGF0cycsXG4gICAgICBmaWx0ZXJzOiB7IHJlY2lwZV90eXBlX2lkOiB0aGlzLnJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlQnlOYW1lKCdwbGF0IHByaW5jaXBhbCcpLmlkIH1cbiAgICB9KTtcbiAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh7XG4gICAgICBrZXk6ICdkZXNzZXJ0cycsXG4gICAgICB0aXRsZTogJ0Rlc3NlcnRzJyxcbiAgICAgIGZpbHRlcnM6IHsgcmVjaXBlX3R5cGVfaWQ6IHRoaXMucmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGVCeU5hbWUoJ2Rlc3NlcnQnKS5pZCB9XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RDYXRlZ29yeUZyb21VcmwoKSB7XG4gICAgY29uc3QgcGFyYW1zU3RyaW5nID0gd2luZG93LmxvY2F0aW9uLnNlYXJjaDtcbiAgICBjb25zdCBwYXJhbXNBcnJheSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFyYW1zU3RyaW5nKTtcbiAgICBjb25zdCBzZWxlY3RlZF9jYXRlZ29yeV9rZXkgPSBwYXJhbXNBcnJheS5nZXQoJ2NhdGFsb2dDYXRlZ29yeScpO1xuICAgIGlmICghc2VsZWN0ZWRfY2F0ZWdvcnlfa2V5KXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRfY2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3JpZXMuZmluZCgoY2F0KSA9PiBjYXQua2V5ID09PSBzZWxlY3RlZF9jYXRlZ29yeV9rZXkpO1xuICAgIGlmICghc2VsZWN0ZWRfY2F0ZWdvcnkpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNhdGVnb3J5VGl0bGVDbGlja2VkKHNlbGVjdGVkX2NhdGVnb3J5KTtcbiAgfVxuXG4gIC8vIFVzZWQgb24gbG9hZCB0byBidWlsZCB0aGUgZmlsdGVycyBhdHRyaWJ1dGUsIGFuZCBvbiBjbGljayBvbiB0aGUgbGluayB0byByZXNldCB0aGUgZmlsdGVyc1xuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5maWx0ZXJzID0ge1xuICAgICAgLy8gdHlwZTogW1xuICAgICAgLy8gICB7bmFtZTogcmVjaXBlVHlwZXNTZXJ2aWNlLmdldFR5cGUoMSkuaWQsIHZhbHVlOiBmYWxzZSwgdGV4dDogJ0VudHLDqWVzJ30sXG4gICAgICAvLyAgIHtuYW1lOiByZWNpcGVUeXBlc1NlcnZpY2UuZ2V0VHlwZSgyKS5pZCwgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnUGxhdHMnfSxcbiAgICAgIC8vICAge25hbWU6IHJlY2lwZVR5cGVzU2VydmljZS5nZXRUeXBlKDMpLmlkLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdEZXNzZXJ0cyd9XG4gICAgICAvLyBdLFxuICAgICAgZGlmZmljdWx0eTogW1xuICAgICAgICB7bmFtZTogJzEnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdGYWNpbGUnfSxcbiAgICAgICAge25hbWU6ICcyJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW95ZW5uZSd9LFxuICAgICAgICB7bmFtZTogJzMnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdEaWZmaWNpbGUnfVxuICAgICAgXSxcbiAgICAgIGNvc3Q6IFtcbiAgICAgICAge25hbWU6ICcwLTUnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICdCYXMgKOKJiCDiiaQgNeKCrCknfSxcbiAgICAgICAge25hbWU6ICc1LTEwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnTW95ZW4gKOKJiCA1LTEw4oKsKSAnfSxcbiAgICAgICAge25hbWU6ICcxMC0xMDAwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnw4lsZXbDqSAo4omIIOKJpSAxMOKCrCkgJ31cbiAgICAgICAgLy8gd2Ugc2V0IGEgbGltaXQgYXQgMTAwMOKCrCBtYXgsIGlmIGEgcmVjaXBlIGNvc3QgbW9yZSBzaG91bGQgYmUgbm9uIHNlbnNlIGFueXdheVxuICAgICAgXSxcbiAgICAgIHRpbWU6IFtcbiAgICAgICAge25hbWU6ICcxNScsIHZhbHVlOiBmYWxzZSwgdGV4dDogJzE1bSd9LFxuICAgICAgICB7bmFtZTogJzMwJywgdmFsdWU6IGZhbHNlLCB0ZXh0OiAnMzBtJ30sXG4gICAgICAgIHtuYW1lOiAnNjAnLCB2YWx1ZTogZmFsc2UsIHRleHQ6ICcxaCd9LFxuICAgICAgICB7bmFtZTogJzEyMCcsIHZhbHVlOiBmYWxzZSwgdGV4dDogJzJoJ31cbiAgICAgIF0sXG4gICAgfTtcbiAgICBpZiAodGhpcy5jYXRhbG9nSGVhZGVyKSB7IHRoaXMuY2F0YWxvZ0hlYWRlci5yZXNldFNlYXJjaFN0cmluZygpOyB9XG4gICAgdGhpcy5maWx0ZXJzLnNlYXJjaCA9ICcnO1xuICAgIHRoaXMubGlzdElzRW1wdHkgPSBmYWxzZTtcbiAgICBpZiAoIXRoaXMuZGlzcGxheUhvbWVQYWdlKXsgdGhpcy5yZXR1cm5Ub0hvbWVQYWdlKCk7IH1cbiAgfVxuXG4gIHVwZGF0ZVNlYXJjaChzZWFyY2g6IHN0cmluZykge1xuICAgIGlmIChzZWFyY2ggIT09IHRoaXMuZmlsdGVycy5zZWFyY2gpIHtcbiAgICAgIHRoaXMuZmlsdGVycy5zZWFyY2ggPSBzZWFyY2g7XG4gICAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGaWx0ZXJzKGZpbHRlcnM6IFJlY2lwZUZpbHRlcnMpIHtcbiAgICB0aGlzLmZpbHRlcnMgPSB7IC4uLmZpbHRlcnMgfTsgLy8gTmVjZXNzYXJ5IHRvIHRyaWdnZXIgdGhlIG5nT25DaGFuZ2VzXG4gICAgdGhpcy5maWx0ZXJUb1JlbW92ZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmxpc3RJc0VtcHR5ID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgIHRoaXMucmV0dXJuVG9Ub3AoKTtcbiAgICB9XG4gICAgdGhpcy5yZWxvYWRMaXN0KCk7XG4gIH1cblxuICByZWxvYWRMaXN0KCkge1xuICAgIC8vIElmIHRoZXJlIGFyZSBubyBmaWx0ZXJzIG5vciBzZWFyY2gsIHJldHVybiB0byBob21lIHBhZ2VcbiAgICBpZiAodGhpcy5hcmVGaWx0ZXJzRW1wdHkoKSkgeyB0aGlzLnJldHVyblRvSG9tZVBhZ2UoKTsgfVxuICAgIGVsc2UgeyAvLyBSZWxvYWQgdGhlIGxpc3RcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzIH07IC8vIE5lY2Vzc2FyeSB0byB0cmlnZ2VyIHRoZSBuZ09uQ2hhbmdlc1xuICAgICAgdGhpcy5kaXNwbGF5SG9tZVBhZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBjYXRlZ29yeVRpdGxlQ2xpY2tlZChldmVudDoge3RpdGxlOiBzdHJpbmcsIGZpbHRlcnM6IGFueX0pIHtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gICAgdGhpcy5maWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzID0geyBmaWx0ZXJzOiBldmVudC5maWx0ZXJzLCB0aXRsZTogZXZlbnQudGl0bGUgfTtcbiAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgfVxuXG4gIGFyZUZpbHRlcnNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0ZpZWxkRW1wdHkodGhpcy5maWx0ZXJzLmRpZmZpY3VsdHkpICYmIHRoaXMuaXNGaWVsZEVtcHR5KHRoaXMuZmlsdGVycy5jb3N0KSAmJiB0aGlzLmlzRmllbGRFbXB0eSh0aGlzLmZpbHRlcnMudGltZSlcbiAgICAgICYmIHRoaXMuZmlsdGVycy5zZWFyY2ggPT09ICcnICYmICF0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnM7XG4gIH1cblxuICBpc0ZpZWxkRW1wdHkoZmlsdGVyOiBSZWNpcGVGaWx0ZXJbXSkge1xuICAgIGZvciAoY29uc3QgZiBvZiBmaWx0ZXIpIHtcbiAgICAgIGlmIChmLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICByZW1vdmVGaWx0ZXIoZmlsdGVyVGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJUb1JlbW92ZSA9IGZpbHRlclRleHQ7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmV0dXJuVG9Ub3AoKSB7XG4gICAgaWYgKHRoaXMudG9wQW5jaG9yKSB7XG4gICAgICB0aGlzLnRvcEFuY2hvci5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgZGlzcGxheVJldHVyblRvcEJ1dHRvbigpIHtcbiAgICB0aGlzLnJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkID0gdGhpcy50b3BBbmNob3IubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20gPCAtNDAwO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNoYW5nZUhlYWRlckltYWdlKHJlY2lwZXM6IFJlY2lwZVtdKSB7XG4gICAgaWYgKHJlY2lwZXMubGVuZ3RoID4gMCAmJiB0aGlzLmZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnM/LmZpbHRlcnMgJiYgIXRoaXMucmVjaXBlSW5IZWFkZXIpIHtcbiAgICAgIHRoaXMucmVjaXBlSW5IZWFkZXIgPSByZWNpcGVzWzBdO1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVyblRvSG9tZVBhZ2UoKSB7XG4gICAgdGhpcy5kaXNwbGF5SG9tZVBhZ2UgPSB0cnVlO1xuICAgIHRoaXMucmVjaXBlSW5IZWFkZXIgPSB1bmRlZmluZWQ7IC8vIERvbid0IGZvcmNlIGEgcmVjaXBlIGluIGhlYWRlciBvbiBob21lUGFnZVxuICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb25GaWx0ZXJDb2xsYXBzZWQoKSB7XG4gICAgdGhpcy5pc0ZpbHRlckNvbGxhcHNlZCA9ICF0aGlzLmlzRmlsdGVyQ29sbGFwc2VkO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB0byB0cmlnZ2VyIGFmdGVyIHRoZSBkZXRlY3RDaGFuZ2VzIGJlY2F1c2Ugd2UgbmVlZCB0byBhbHJlYWQgaGF2ZSB0aGUgZGlzcGxheSBjaGFuZ2UgdG8gdXBkYXRlIGNhcmRzXG4gICAgdGhpcy5jYXRlZ29yaWVzQ29tcC5mb3JFYWNoKCBjYXQgPT4ge1xuICAgICAgY2F0LnVwZGF0ZVdpZHRoKCk7XG4gICAgfSk7XG4gIH1cblxuICBnb1RvQ3JlYXRlUGFnZShyZWNpcGUgPSBudWxsKSB7XG4gICAgdGhpcy5jcmVhdGluZ1JlY2lwZSA9IHRydWU7XG4gICAgdGhpcy5yZWNpcGVUb1VwZGF0ZSA9IHJlY2lwZTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5yZXR1cm5Ub1RvcCgpO1xuICB9XG5cbiAgbGVhdmVDcmVhdGVQYWdlKCkge1xuICAgIHRoaXMuY3JlYXRpbmdSZWNpcGUgPSBmYWxzZTtcbiAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgICB0aGlzLnJldHVyblRvVG9wKCk7XG4gIH1cblxuICBtYW5hZ2VSZWNpcGVBY3Rpb24oZXZlbnQ6IHthY3Rpb246IHN0cmluZywgcmVjaXBlOiBSZWNpcGV9KSB7XG4gICAgc3dpdGNoIChldmVudC5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ0NSRUFURSc6IHtcbiAgICAgICAgdGhpcy5nb1RvQ3JlYXRlUGFnZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnRURJVCc6IHtcbiAgICAgICAgdGhpcy5nb1RvQ3JlYXRlUGFnZShldmVudC5yZWNpcGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSAnREVMRVRFJzoge1xuICAgICAgICBpZiAoZXZlbnQucmVjaXBlPy5pZCAmJiBldmVudC5yZWNpcGUucmVsYXRpb25zaGlwc1sncmVjaXBlLXByb3ZpZGVyJ10/LmRhdGEuaWQgPT09ICdwZXJzb25hbCcpIHtcbiAgICAgICAgICB0aGlzLnJlY2lwZXNTZXJ2aWNlLmRlbGV0ZShldmVudC5yZWNpcGUuaWQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZExpc3QoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc0xpc3RFbXB0eShyZWNpcGVzOiBSZWNpcGVbXSkge1xuICAgIHRoaXMubGlzdElzRW1wdHkgPSByZWNpcGVzLmxlbmd0aCA9PT0gMDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgI21pYW1DYXRhbG9nVG9wQW5jaG9yIGNsYXNzPVwibWlhbS1jYXRhbG9nLWFuY2hvclwiPjwvZGl2PlxuPGRpdiAqbmdJZj1cIiFjcmVhdGluZ1JlY2lwZSBlbHNlIGNyZWF0aW9uUGFnZVwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ1wiICh3aW5kb3c6c2Nyb2xsKT1cImRpc3BsYXlSZXR1cm5Ub3BCdXR0b24oKVwiPlxuICA8bmctbWlhbS1yZWNpcGUtZmlsdGVyc1xuICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgIFttb2JpbGVGaXhlZF09XCJyZXR1cm5Ub3BCdXR0b25TaG91bGRCZURpc3BsYXllZFwiXG4gICAgW2ZpbHRlclRvUmVtb3ZlXT1cImZpbHRlclRvUmVtb3ZlXCJcbiAgICAoZmlsdGVyUmVzZXQpPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgIChmaWx0ZXJDaGFuZ2VkKT1cInVwZGF0ZUZpbHRlcnMoJGV2ZW50KVwiXG4gICAgKGZpbHRlckNvbGxhcHNlZCk9XCJvbkZpbHRlckNvbGxhcHNlZCgpXCI+XG4gIDwvbmctbWlhbS1yZWNpcGUtZmlsdGVycz5cblxuICA8ZGl2IGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY29udGVudFwiIFtuZ0NsYXNzXT1cInsnZmlsdGVyLWNvbGxhcHNlZCc6IGlzRmlsdGVyQ29sbGFwc2VkfVwiPlxuICAgIDxuZy1taWFtLWNhdGFsb2ctaGVhZGVyIFxuICAgICAgW2Rpc3BsYXlSZXR1cm5CdXR0b25dPVwiIWRpc3BsYXlIb21lUGFnZVwiXG4gICAgICBbZm9yY2VkUmVjaXBlXT1cInJlY2lwZUluSGVhZGVyXCJcbiAgICAgIFt0aXRsZV09XCJkaXNwbGF5SG9tZVBhZ2UgPyBob21lUGFnZVRpdGxlIDogXG4gICAgICAgIChmaWx0ZXJzLmFkZGl0aW9uYWxGaWx0ZXJzICYmIGZpbHRlcnMuYWRkaXRpb25hbEZpbHRlcnMudGl0bGUgIT09ICcnID8gZmlsdGVycy5hZGRpdGlvbmFsRmlsdGVycy50aXRsZSA6IHRpdGxlSW5SZXNlYXJjaE1vZGUpXCJcbiAgICAgIChyZXR1cm5CdXR0b25QcmVzc2VkKT1cInJldHVyblRvSG9tZVBhZ2UoKVwiXG4gICAgICAoc2VhcmNoU3RyaW5nQ2hhbmdlZCk9XCJ1cGRhdGVTZWFyY2goJGV2ZW50KVwiPlxuICAgIDwvbmctbWlhbS1jYXRhbG9nLWhlYWRlcj5cblxuICAgIDxkaXYgKm5nSWY9XCIhZGlzcGxheUhvbWVQYWdlIGVsc2UgY2F0ZWdvcmllc0NvbXBvbmVudHNcIiBjbGFzcz1cIm1pYW0tcmVjaXBlLWNhdGFsb2dfX2xpc3RcIj5cbiAgICAgIDxuZy1taWFtLWNhdGFsb2ctbGlzdFxuICAgICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICAgICAgW3JhbmRvbU1vZGVdPVwidHJ1ZVwiXG4gICAgICAgIChyZXRyaWV2ZWRSZWNpcGVzKT1cImNoYW5nZUhlYWRlckltYWdlKCRldmVudClcIlxuICAgICAgICAoZmlsdGVyUmVtb3ZlZCk9XCJyZW1vdmVGaWx0ZXIoJGV2ZW50KVwiXG4gICAgICAgIChyZWNpcGVBY3Rpb25UcmlnZ2VyZWQpPVwibWFuYWdlUmVjaXBlQWN0aW9uKCRldmVudClcIj5cbiAgICAgIDwvbmctbWlhbS1jYXRhbG9nLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI2NhdGVnb3JpZXNDb21wb25lbnRzPlxuICAgICAgPGRpdiAqbmdJZj1cImNhdGVnb3JpZXMubGVuZ3RoID4gMFwiIGNsYXNzPVwibWlhbS1yZWNpcGUtY2F0YWxvZ19fY2F0ZWdvcmllc1wiPlxuICAgICAgICA8bmctbWlhbS1jYXRhbG9nLWNhdGVnb3J5IFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgXG4gICAgICAgICAgW3RpdGxlXT1cImNhdGVnb3J5LnRpdGxlXCJcbiAgICAgICAgICBbZmlsdGVyc109XCJjYXRlZ29yeS5maWx0ZXJzXCIgXG4gICAgICAgICAgKGRpc3BsYXlMaXN0KT1cImNhdGVnb3J5VGl0bGVDbGlja2VkKCRldmVudClcIj5cbiAgICAgICAgPC9uZy1taWFtLWNhdGFsb2ctY2F0ZWdvcnk+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiAqbmdJZj1cInJldHVyblRvcEJ1dHRvblNob3VsZEJlRGlzcGxheWVkXCIgY2xhc3M9XCJtaWFtLXJlY2lwZS1jYXRhbG9nX19yZXR1cm5Ub3BcIiAoY2xpY2spPVwicmV0dXJuVG9Ub3AoKVwiPlxuICAgICAgPG5nLW1pYW0taWNvbiBoZWlnaHQ9JzMyJyB3aWR0aD0nMzInIHByaW1hcnlDb2xvcj1cInZhcigtLW0tY29sb3Itd2hpdGUpXCIgW2ljb25OYW1lXT1cImljb24uQ2hldnJvbkRvd25cIj48L25nLW1pYW0taWNvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRpb25QYWdlPlxuICA8bmctbWlhbS1yZWNpcGUtc3RlcHBlciBbcmVjaXBlXT1cInJlY2lwZVRvVXBkYXRlXCIgKHJlY2lwZUNoYW5nZSk9XCJsZWF2ZUNyZWF0ZVBhZ2UoKVwiIChjYW5jZWxlZCk9XCJsZWF2ZUNyZWF0ZVBhZ2UoKVwiPjwvbmctbWlhbS1yZWNpcGUtc3RlcHBlcj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -9,7 +9,7 @@ import * as i2 from "../../_services/print.service";
9
9
  import * as i3 from "../modal/modal.component";
10
10
  import * as i4 from "@angular/common";
11
11
  import * as i5 from "../recipe-details/recipe-details.component";
12
- import * as i6 from "../basket-preview-block/basket-preview-block.component";
12
+ import * as i6 from "../basket-preview/basket-preview-block/basket-preview-block.component";
13
13
  const _c0 = ["details"];
14
14
  function RecipeModalComponent_ng_miam_recipe_details_1_Template(rf, ctx) { if (rf & 1) {
15
15
  const _r4 = i0.ɵɵgetCurrentView();
@@ -10,7 +10,7 @@ import * as i1 from "../../_services";
10
10
  import * as i2 from "../../_services/recipe-selection-logs.service";
11
11
  import * as i3 from "@angular/common";
12
12
  import * as i4 from "../../_components/icon/icon.component";
13
- import * as i5 from "../basket-preview-line/basket-preview-line.component";
13
+ import * as i5 from "../basket-preview/basket-preview-line/basket-preview-line.component";
14
14
  import * as i6 from "../../_utils/pipes/extended-date/extended-date.pipe";
15
15
  function RecipesHistoryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
16
16
  const _r4 = i0.ɵɵgetCurrentView();