@xxmachina/components 19.21.8 → 19.25.0

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 (79) hide show
  1. package/extras/flow/index.d.ts +13 -3
  2. package/extras/flow/index.d.ts.map +1 -1
  3. package/features/query/index.d.ts.map +1 -1
  4. package/fesm2022/xxmachina-components-extras-flow.mjs +110 -11
  5. package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
  6. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
  7. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +117 -0
  8. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +1 -0
  9. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
  10. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs.map +1 -1
  11. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
  12. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
  13. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +19 -4
  14. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
  15. package/fesm2022/xxmachina-components-organisms-xterm.mjs +849 -49
  16. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
  17. package/fesm2022/xxmachina-components-pages-command-harness.mjs +28 -0
  18. package/fesm2022/xxmachina-components-pages-command-harness.mjs.map +1 -0
  19. package/fesm2022/xxmachina-components-pages-command.mjs +10 -6
  20. package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
  21. package/fesm2022/xxmachina-components-pages-query.mjs +2 -2
  22. package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
  23. package/fesm2022/xxmachina-components-pages-thread.mjs +2 -2
  24. package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
  25. package/fesm2022/xxmachina-components-services-message.mjs.map +1 -1
  26. package/fesm2022/xxmachina-components-templates-agent.mjs +151 -123
  27. package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
  28. package/fesm2022/xxmachina-components-templates-background.mjs +376 -242
  29. package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
  30. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs +164 -0
  31. package/fesm2022/xxmachina-components-templates-flow-nodes-group.mjs.map +1 -0
  32. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs +157 -0
  33. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +1 -0
  34. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs +154 -0
  35. package/fesm2022/xxmachina-components-templates-flow-nodes-task.mjs.map +1 -0
  36. package/fesm2022/xxmachina-components-templates-flow.mjs +337 -0
  37. package/fesm2022/xxmachina-components-templates-flow.mjs.map +1 -0
  38. package/fesm2022/xxmachina-components.mjs +2 -2
  39. package/fesm2022/xxmachina-components.mjs.map +1 -1
  40. package/groups/query-form/index.d.ts +3 -4
  41. package/groups/query-form/index.d.ts.map +1 -1
  42. package/index.d.ts.map +1 -1
  43. package/molecules/inline-edit-field/index.d.ts +32 -0
  44. package/molecules/inline-edit-field/index.d.ts.map +1 -0
  45. package/organisms/terminal-input-section/index.d.ts +2 -1
  46. package/organisms/terminal-input-section/index.d.ts.map +1 -1
  47. package/organisms/xterm/index.d.ts +176 -4
  48. package/organisms/xterm/index.d.ts.map +1 -1
  49. package/package.json +25 -9
  50. package/pages/command/harness/index.d.ts +14 -0
  51. package/pages/command/harness/index.d.ts.map +1 -0
  52. package/pages/command/index.d.ts +12 -4
  53. package/pages/command/index.d.ts.map +1 -1
  54. package/pages/query/index.d.ts +2 -2
  55. package/pages/query/index.d.ts.map +1 -1
  56. package/pages/query-v2/index.d.ts.map +1 -1
  57. package/services/command/index.d.ts.map +1 -1
  58. package/services/message/index.d.ts +3 -3
  59. package/services/message/index.d.ts.map +1 -1
  60. package/templates/agent/index.d.ts +11 -2
  61. package/templates/agent/index.d.ts.map +1 -1
  62. package/templates/background/index.d.ts +14 -20
  63. package/templates/background/index.d.ts.map +1 -1
  64. package/templates/flow/index.d.ts +61 -0
  65. package/templates/flow/index.d.ts.map +1 -0
  66. package/templates/flow/nodes/group/index.d.ts +44 -0
  67. package/templates/flow/nodes/group/index.d.ts.map +1 -0
  68. package/templates/flow/nodes/issue/index.d.ts +46 -0
  69. package/templates/flow/nodes/issue/index.d.ts.map +1 -0
  70. package/templates/flow/nodes/task/index.d.ts +37 -0
  71. package/templates/flow/nodes/task/index.d.ts.map +1 -0
  72. package/fesm2022/xxmachina-components-services-calendar.mjs +0 -25
  73. package/fesm2022/xxmachina-components-services-calendar.mjs.map +0 -1
  74. package/fesm2022/xxmachina-components-services-schedule.mjs +0 -51
  75. package/fesm2022/xxmachina-components-services-schedule.mjs.map +0 -1
  76. package/services/calendar/index.d.ts +0 -14
  77. package/services/calendar/index.d.ts.map +0 -1
  78. package/services/schedule/index.d.ts +0 -27
  79. package/services/schedule/index.d.ts.map +0 -1
@@ -23,6 +23,7 @@ import { CommandFormGroup } from '@xxmachina/components/groups/command-form';
23
23
  import { QueryFeature, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';
24
24
  import { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';
25
25
  import { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';
26
+ export * from '@xxmachina/components/pages/command/harness';
26
27
 
27
28
  var CommandPageStore_1;
28
29
  var ActionId;
@@ -67,6 +68,7 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
67
68
  static DI = makeDI(CommandPageStore_1, () => {
68
69
  const dev = inject(MachinaDevService);
69
70
  return () => ({
71
+ title: '',
70
72
  style: {
71
73
  width: 'var(--page-width-lv1)',
72
74
  },
@@ -347,15 +349,16 @@ let CommandPageStore = class CommandPageStore extends InjectableComponent {
347
349
  _data = injectUnflattenRouteParam('data');
348
350
  data = input(_computed(() => this._data()));
349
351
  formInvalid = derivedAsync(() => getInvalid$(this.form()));
350
- title = input(_computed(() => this.feature.title()));
351
- actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));
352
+ title = input(_computed(() => this.config().title || this.feature.title()));
353
+ #actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));
354
+ actions = input(_computed(() => this.#actions()));
352
355
  skip = injectRouteSkip();
353
356
  constructor() {
354
357
  super();
355
358
  CommandPageStore_1.Initializer.initializeStore(this);
356
359
  }
357
360
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive });
358
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: "formFieldKeys", publicName: "formFieldKeys", isSignal: true, isRequired: false, transformFunction: null }, formFlatExcludes: { classPropertyName: "formFlatExcludes", publicName: "formFlatExcludes", isSignal: true, isRequired: false, transformFunction: null }, initializeQuery: { classPropertyName: "initializeQuery", publicName: "initializeQuery", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
361
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: "style", publicName: "style", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: "navStartActions", publicName: "navStartActions", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: "navEndActions", publicName: "navEndActions", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: "command", publicName: "command", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: "extractedFormFieldMap", publicName: "extractedFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: "additionalFormFieldMap", publicName: "additionalFormFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: "formFieldMap", publicName: "formFieldMap", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: "formFieldKeys", publicName: "formFieldKeys", isSignal: true, isRequired: false, transformFunction: null }, formFlatExcludes: { classPropertyName: "formFlatExcludes", publicName: "formFlatExcludes", isSignal: true, isRequired: false, transformFunction: null }, initializeQuery: { classPropertyName: "initializeQuery", publicName: "initializeQuery", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
359
362
  };
360
363
  CommandPageStore = CommandPageStore_1 = __decorate([
361
364
  TokenizedType(),
@@ -378,7 +381,7 @@ class CommandPage extends NgAtomicComponent {
378
381
  CommandFeature,
379
382
  QueryFeature,
380
383
  QueryGraphqlSchemaFeature
381
- ], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: ["style", "style", "navEndActions", "navEndActions", "command", "command", "form", "form", "additionalFormFieldMap", "additionalFormFieldMap", "formFieldMap", "formFieldMap", "formFlatExcludes", "formFlatExcludes", "initializeQuery", "initializeQuery", "data", "data"] }], ngImport: i0, template: `
384
+ ], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: ["style", "style", "navEndActions", "navEndActions", "command", "command", "form", "form", "additionalFormFieldMap", "additionalFormFieldMap", "formFieldMap", "formFieldMap", "formFlatExcludes", "formFlatExcludes", "initializeQuery", "initializeQuery", "data", "data", "actions", "actions"] }], ngImport: i0, template: `
382
385
  <frames-router-outlet [skip]="store.skip()" (action)="dispatch($event)">
383
386
  <templates-form
384
387
  [form]="store.form()"
@@ -405,7 +408,7 @@ class CommandPage extends NgAtomicComponent {
405
408
  </frames-tabs>
406
409
  </templates-form>
407
410
  </frames-router-outlet>
408
- `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-vIpJ: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-vIpJ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
411
+ `, isInline: true, styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-cSL5: var(--page-width-lv1);--primary-color-SCOPED-IN-command-cSL5: var(--primary-color);--on-primary-color-SCOPED-IN-command-cSL5: var(--on-primary-color);--background-color-SCOPED-IN-command-cSL5: var(--background-color);--on-background-color-SCOPED-IN-command-cSL5: var(--on-background-color)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-cSL5)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-cSL5);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-cSL5);--background-color: var(--background-color-SCOPED-IN-command-cSL5);--on-background-color: var(--on-background-color-SCOPED-IN-command-cSL5)}\n"], dependencies: [{ kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: FormTemplate, selector: "templates-form" }, { kind: "component", type: TabsFrame, selector: "frames-tabs", inputs: ["labels"], outputs: ["selectedTabIndexChange"] }, { kind: "component", type: CommandFormGroup, selector: "groups-command-form", inputs: ["apiJsonUrls"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }] });
409
412
  }
410
413
  __decorate([
411
414
  Effect(FormTemplateStore.ActionId.FILE_SELECTED),
@@ -465,9 +468,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
465
468
  'formFlatExcludes',
466
469
  'initializeQuery',
467
470
  'data',
471
+ 'actions',
468
472
  ]
469
473
  },
470
- ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-vIpJ: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-vIpJ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\n"] }]
474
+ ], styles: [":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-cSL5: var(--page-width-lv1);--primary-color-SCOPED-IN-command-cSL5: var(--primary-color);--on-primary-color-SCOPED-IN-command-cSL5: var(--on-primary-color);--background-color-SCOPED-IN-command-cSL5: var(--background-color);--on-background-color-SCOPED-IN-command-cSL5: var(--on-background-color)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-cSL5)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-cSL5);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-cSL5);--background-color: var(--background-color-SCOPED-IN-command-cSL5);--on-background-color: var(--on-background-color-SCOPED-IN-command-cSL5)}\n"] }]
471
475
  }], propDecorators: { onFileSelected: [] } });
472
476
 
473
477
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"xxmachina-components-pages-command.mjs","sources":["../tmp-esm2022/pages/command/command.page.js","../tmp-esm2022/pages/command/xxmachina-components-pages-command.js"],"sourcesContent":["var CommandPageStore_1;\nimport { __decorate, __metadata } from \"tslib\";\nimport { Component, computed, Directive, effect, inject, input, untracked } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, applyToInput, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, getValue$, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteSkip, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay, of } from 'rxjs';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeDI } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { merge, pick } from 'lodash-es';\nimport { injectOne$ } from '@ng-atomic/common/stores/entities';\nimport { MachinaDevService } from '@xxmachina/components/services/debug';\nimport { EndpointHelper } from '@xxmachina/common/domain/models';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CommandFeature } from '@xxmachina/components/features/command';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\nimport { CommandFormGroup } from '@xxmachina/components/groups/command-form';\nimport { QueryFeature, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';\nimport { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';\nimport { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';\nimport * as i0 from \"@angular/core\";\nvar ActionId;\n(function (ActionId) {\n ActionId[\"EXECUTE_COMMAND\"] = \"execute-command\";\n ActionId[\"FILE_SELECTED\"] = \"file-selected\";\n})(ActionId || (ActionId = {}));\nfunction buildFormData(form, formData = new FormData(), parentKey = '') {\n Object.keys(form.controls).forEach(key => {\n const control = form.get(key);\n const formKey = parentKey ? `${parentKey}.${key}` : key;\n if (control instanceof FormGroup || control instanceof FormArray) {\n // 子のFormGroupやFormArrayを再帰的に処理\n buildFormData(control, formData, formKey);\n }\n else if (control instanceof FormControl) {\n // フォームの値を追加\n const value = control.value;\n if (value !== null && value !== undefined) {\n formData.append(formKey, value);\n }\n }\n });\n return formData;\n}\nfunction buildData(form, contentType) {\n if (contentType === 'multipart/form-data') {\n return buildFormData(form);\n }\n else {\n return form.getRawValue();\n }\n}\nexport function buildActions(hasPermission, invalid) {\n return hasPermission\n ? [{ id: ActionId.EXECUTE_COMMAND, name: '実行', disabled: invalid }]\n : [{ id: ActionId.EXECUTE_COMMAND, name: '実行権限がありません', disabled: true }];\n}\nlet CommandPageStore = class CommandPageStore extends InjectableComponent {\n static { CommandPageStore_1 = this; }\n static ActionId = ActionId;\n static DI = makeDI(CommandPageStore_1, () => {\n const dev = inject(MachinaDevService);\n return () => ({\n style: {\n width: 'var(--page-width-lv1)',\n },\n baseUrls: [],\n command: {\n id: '1',\n webApiRequest: {\n serverUrl: null,\n apiJsonUrl: null,\n path: '/users',\n method: 'GET',\n bodySchema: null,\n },\n },\n navEndActions: [],\n additionalFormFieldMap: (dev.isDevMode() ? {} : {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }),\n });\n }, ['@xxmachina/components', 'pages', 'command']);\n static Config = CommandPageStore_1.DI.Config;\n static Initializer = CommandPageStore_1.DI.Initializer;\n static provideDefault() {\n return [\n CommandPageStore_1.DI.provideConfig(),\n CommandPageStore_1.provideDefaultInitializer(),\n CommandPageStore_1.provideDefaultEffects(),\n ];\n }\n static provideCustom() {\n return [\n CommandPageStore_1.provideDefault(),\n CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore_1.provideSetupInitializeQueryInitializer(),\n ];\n }\n static provideDefaultV2() {\n return [\n CommandPageStore_1.Config.provide(),\n CommandPageStore_1.provideDefaultInitializer(),\n CommandPageStore_1.provideDefaultEffects(),\n CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore_1.provideSetupInitializeQueryInitializer(),\n CommandPageStore_1.provideInitialFormValueFromQueryResult(),\n CommandPageStore_1.provideQueryFromRouteData(),\n ];\n }\n static provideDefaultInitializer() {\n return [\n CommandPageStore_1.providePatchFormFromRouteParamInitializer(),\n CommandPageStore_1.providePatchCommandFormValueFromCommandInitializer(),\n CommandPageStore_1.provideInitialFormValueFromQueryResult()\n ];\n }\n static provideDefaultEffects() {\n return [\n CommandPageStore_1.provideExecuteCommandEffect(),\n CommandPageStore_1.provideBackEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n static provideCommandFromRouteParamInitializer(paramName = 'commandId') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const commandId = injectRouteParam(paramName);\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId())));\n });\n }\n static provideCommandIdFromRouteDataInitializer() {\n return CommandPageStore_1.Initializer.provide((store) => {\n const commandId = injectRouteData('commandId');\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId())));\n });\n }\n static providePatchFormFromRouteParamInitializer() {\n return [\n CommandPageStore_1.Initializer.provide(store => {\n effect(() => store.form().patchValue(store.data()));\n }),\n ];\n }\n static providePatchCommandFormValueFromCommandInitializer() {\n return [\n CommandPageStore_1.Initializer.provide(store => {\n effect(() => {\n if (!store.command())\n return;\n store.feature.commandForm().patchValue({ ...store.command() });\n });\n })\n ];\n }\n static provideQueryIdFromRouteParam(key = 'queryId') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const queryId$ = injectRouteParam$(key);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectOne$(Query, { id: queryId$ });\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(filter(({ query, params }) => !!query && !!params), map(({ query, params }) => QueryHelper.setup(query, params)), tap((query) => console.debug('[CommandPage] query:', query)), shareReplay(1)));\n effect(() => {\n console.debug('[CommandPage] setupQuery:', setupQuery());\n store.queryFeature.form.patchValue(setupQuery());\n });\n });\n }\n static provideQueryFromRouteData(key = 'query') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectRouteData$(key);\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(filter(({ query, params }) => !!query), map(({ query, params }) => QueryHelper.setup(query, params)), shareReplay(1)));\n effect(() => { store.queryFeature.form.patchValue(setupQuery()); });\n });\n }\n static provideRouteParamsToDataInitializer(projector) {\n return CommandPageStore_1.Initializer.provide((store) => {\n const route = inject(ActivatedRoute);\n const data = derivedAsync(() => route.params.pipe(map(params => projector(params))));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n static provideRouteParamMapToDataInitializer(projector) {\n return CommandPageStore_1.Initializer.provide((store) => {\n const paramMap = injectRouteParamMap({ merge: true });\n const data = computed(() => projector(paramMap()));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n static provideSetupInitializeQueryInitializer() {\n return CommandPageStore_1.Initializer.provide((store) => {\n const initializeQuery = derivedAsync(() => combineLatest({\n initializeQuery: of(store.initializeQuery()),\n data: of(store.data())\n }).pipe(filter(({ initializeQuery, data }) => !!initializeQuery && !!data), map(({ initializeQuery, data }) => QueryHelper.setup(initializeQuery, data)), filter((initializeQuery) => !!initializeQuery), shareReplay(1)));\n effect(() => store.queryFeature.form.patchValue(initializeQuery()));\n });\n }\n static provideInitialFormValueFromQueryResult() {\n return CommandPageStore_1.Initializer.provide((store) => {\n effect(() => store.form().patchValue(store.queryFeature.result()));\n store.queryFeature.refresh();\n });\n }\n static provideExecuteCommandEffect() {\n return provideEffect(ActionId.EXECUTE_COMMAND, () => {\n const store = inject(CommandPageStore_1);\n const app = inject(AppService);\n const paramKeys = computed(() => EndpointHelper.extract(store.feature.path()));\n const resolvedParams = computed(() => pick(store.data(), paramKeys()));\n return () => {\n const resolvedEndpoint = EndpointHelper.resolve(store.feature.path(), resolvedParams());\n const data = buildData(store.form(), store.command()?.webApiRequest?.contentType);\n const command = merge(store.command(), store.feature.commandForm().getRawValue(), { webApiRequest: { path: resolvedEndpoint } });\n app.loading.await(() => {\n return store.feature.execute(command, data).then(() => {\n app.snackBar.open('成功しました。');\n // history.back();\n }).catch((error) => {\n console.error(error);\n app.snackBar.openError(error);\n });\n });\n };\n });\n }\n static provideBackEffect() {\n return provideEffect(FormTemplateStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n static provideFileSelectedEffect() {\n return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {\n const store = inject(CommandPageStore_1);\n return (payload) => {\n store.form().patchValue({ file: payload.files?.[0] });\n };\n });\n }\n static provideDebugFormInitializer() {\n return CommandPageStore_1.Initializer.provide(() => {\n const store = inject(CommandPageStore_1);\n // FormGroupを再帰的に調べる関数(invalidなコントロールのみ)\n const getInvalidControls = (formGroup, path = '') => {\n let invalidControls = [];\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.controls[key];\n const currentPath = path ? `${path}.${key}` : key;\n // invalidなコントロールを記録\n if (control.invalid) {\n invalidControls.push({\n path: currentPath,\n errors: control.errors,\n value: control.value,\n status: control.status,\n valid: control.valid,\n invalid: control.invalid,\n dirty: control.dirty,\n touched: control.touched\n });\n }\n // FormGroupの場合は再帰的に調べる\n if (control.controls) {\n invalidControls = invalidControls.concat(getInvalidControls(control, currentPath));\n }\n });\n return invalidControls;\n };\n const formValue_ = derivedAsync(() => getValue$(store.form()));\n effect(() => {\n const formValue = formValue_();\n const form = untracked(() => store.form());\n console.log('[CommandPage] Form value changed:', formValue);\n console.log('[CommandPage] CommandForm valid:', form?.valid);\n console.log('[CommandPage] CommandForm status:', form?.status);\n if (form) {\n const invalidControls = getInvalidControls(form);\n const invalidPaths = invalidControls.map(control => control.path);\n console.log(`[CommandPage] Found ${invalidControls.length} INVALID controls:`);\n console.log('[CommandPage] INVALID PATHS:', invalidPaths);\n }\n });\n });\n }\n static provideSelectedFileUploadEffect(callbackFactory, { validator = () => null, getPath, }) {\n return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {\n const storage = inject(CloudStorageService);\n const app = inject(AppService);\n const callback = callbackFactory();\n const errorMessageResolver = injectErrorMessageResolver();\n return (payload) => {\n const file = payload.files?.[0];\n const errors = validator(file);\n if (errors && Object.keys(errors).length > 0) {\n app.snackBar.open(errorMessageResolver(errors));\n return;\n }\n return app.loading.await(() => {\n const path = getPath();\n return storage.upload(path, file).then(() => {\n app.snackBar.open('ファイルをアップロードしました');\n return storage.getDownloadUrl(path).then((imageUrl) => {\n return callback({ file, path, url: imageUrl });\n });\n }).catch((error) => {\n console.error(error);\n app.snackBar.open('ファイルのアップロードに失敗しました');\n });\n });\n };\n });\n }\n feature = inject(CommandFeature);\n config = CommandPageStore_1.Config.inject();\n queryFeature = inject(QueryFeature);\n style = input(_computed(() => this.config().style));\n #navStartActions = injectNavStartActionsV2();\n navStartActions = input(_computed(() => this.#navStartActions()));\n navEndActions = input(_computed(() => this.config().navEndActions));\n command = input(_computed(() => this.config().command));\n form = input(_computed(() => this.feature.form()));\n extractedFormFieldMap = input(_computed(() => this.feature.extractedFormFieldMap()));\n additionalFormFieldMap = input(_computed(() => this.config().additionalFormFieldMap));\n formFieldMap = input(_computed(() => ({\n ...this.extractedFormFieldMap(),\n ...this.additionalFormFieldMap()\n })));\n formFieldKeys = input(_computed(() => []));\n formFlatExcludes = input(_computed(() => []));\n _initializeQuery = injectRouteData('query');\n initializeQuery = input(_computed(() => this._initializeQuery()));\n _data = injectUnflattenRouteParam('data');\n data = input(_computed(() => this._data()));\n formInvalid = derivedAsync(() => getInvalid$(this.form()));\n title = input(_computed(() => this.feature.title()));\n actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));\n skip = injectRouteSkip();\n constructor() {\n super();\n CommandPageStore_1.Initializer.initializeStore(this);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: \"style\", publicName: \"style\", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: \"navStartActions\", publicName: \"navStartActions\", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: \"navEndActions\", publicName: \"navEndActions\", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: \"command\", publicName: \"command\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: \"extractedFormFieldMap\", publicName: \"extractedFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: \"additionalFormFieldMap\", publicName: \"additionalFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: \"formFieldMap\", publicName: \"formFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: \"formFieldKeys\", publicName: \"formFieldKeys\", isSignal: true, isRequired: false, transformFunction: null }, formFlatExcludes: { classPropertyName: \"formFlatExcludes\", publicName: \"formFlatExcludes\", isSignal: true, isRequired: false, transformFunction: null }, initializeQuery: { classPropertyName: \"initializeQuery\", publicName: \"initializeQuery\", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: \"data\", publicName: \"data\", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n};\nCommandPageStore = CommandPageStore_1 = __decorate([\n TokenizedType(),\n __metadata(\"design:paramtypes\", [])\n], CommandPageStore);\nexport { CommandPageStore };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPageStore, decorators: [{\n type: Directive,\n args: [{ standalone: true }]\n }], ctorParameters: () => [] });\nexport class CommandPage extends NgAtomicComponent {\n store = inject(CommandPageStore);\n route = inject(ActivatedRoute);\n app = inject(AppService);\n parentRouterOutletFrame = inject(RouterOutletFrame, { optional: true });\n onFileSelected(payload) {\n this.dispatch({ id: ActionId.FILE_SELECTED, payload });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPage, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: CommandPage, isStandalone: true, selector: \"pages-command\", providers: [\n CommandFeature,\n QueryFeature,\n QueryGraphqlSchemaFeature\n ], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: [\"style\", \"style\", \"navEndActions\", \"navEndActions\", \"command\", \"command\", \"form\", \"form\", \"additionalFormFieldMap\", \"additionalFormFieldMap\", \"formFieldMap\", \"formFieldMap\", \"formFlatExcludes\", \"formFlatExcludes\", \"initializeQuery\", \"initializeQuery\", \"data\", \"data\"] }], ngImport: i0, template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [title]=\"store.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab>\n <groups-command-form (action)=\"dispatch($event)\"/>\n </ng-template>\n <ng-template #tab>\n <groups-query-form\n [form]=\"store.queryFeature.form\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `, isInline: true, styles: [\":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-vIpJ: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-vIpJ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\\n\"], dependencies: [{ kind: \"component\", type: RouterOutletFrame, selector: \"frames-router-outlet\", outputs: [\"events\"] }, { kind: \"component\", type: FormTemplate, selector: \"templates-form\" }, { kind: \"component\", type: TabsFrame, selector: \"frames-tabs\", inputs: [\"labels\"], outputs: [\"selectedTabIndexChange\"] }, { kind: \"component\", type: CommandFormGroup, selector: \"groups-command-form\", inputs: [\"apiJsonUrls\"] }, { kind: \"component\", type: QueryFormGroup, selector: \"groups-query-form\", inputs: [\"form\", \"keyActions\"] }] });\n}\n__decorate([\n Effect(FormTemplateStore.ActionId.FILE_SELECTED),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], CommandPage.prototype, \"onFileSelected\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPage, decorators: [{\n type: Component,\n args: [{ selector: 'pages-command', imports: [\n RouterOutletFrame,\n FormTemplate,\n TabsFrame,\n CommandFormGroup,\n QueryFormGroup\n ], providers: [\n CommandFeature,\n QueryFeature,\n QueryGraphqlSchemaFeature\n ], template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [title]=\"store.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab>\n <groups-command-form (action)=\"dispatch($event)\"/>\n </ng-template>\n <ng-template #tab>\n <groups-query-form\n [form]=\"store.queryFeature.form\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `, hostDirectives: [\n {\n directive: CommandPageStore,\n inputs: [\n 'style',\n 'navEndActions',\n 'command',\n 'form',\n 'additionalFormFieldMap',\n 'formFieldMap',\n 'formFlatExcludes',\n 'initializeQuery',\n 'data',\n ]\n },\n ], styles: [\":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-vIpJ: var(--page-width-lv1)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-vIpJ)}:host .template div[dashboard]{padding:0;box-sizing:border-box}\\n\"] }]\n }], propDecorators: { onFileSelected: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21wb25lbnRzL3NyYy9saWIvcGFnZXMvY29tbWFuZC9jb21tYW5kLnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVksU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoSixPQUFPLEVBQUUsY0FBYyxFQUFvQixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM00sT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEYsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDNUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRTNFLElBQUssUUFHSjtBQUhELFdBQUssUUFBUTtJQUNYLCtDQUFtQyxDQUFBO0lBQ25DLDJDQUErQixDQUFBO0FBQ2pDLENBQUMsRUFISSxRQUFRLEtBQVIsUUFBUSxRQUdaO0FBRUQsU0FBUyxhQUFhLENBQUMsSUFBMkIsRUFBRSxXQUFxQixJQUFJLFFBQVEsRUFBRSxFQUFFLFNBQVMsR0FBRyxFQUFFO0lBQ3JHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUV4RCxJQUFJLE9BQU8sWUFBWSxTQUFTLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRSxDQUFDO1lBQ2pFLCtCQUErQjtZQUMvQixhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxDQUFDO2FBQU0sSUFBSSxPQUFPLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDMUMsWUFBWTtZQUNaLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDNUIsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDMUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFxQixFQUFFLFdBQW1CO0lBQzNELElBQUksV0FBVyxLQUFLLHFCQUFxQixFQUFFLENBQUM7UUFDMUMsT0FBTyxhQUFhLENBQUMsSUFBaUIsQ0FBQyxDQUFDO0lBQzFDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLGFBQXNCLEVBQUUsT0FBZ0I7SUFDbkUsT0FBTyxhQUFhO1FBQ2xCLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzVFLENBQUM7QUFJTSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLG1CQUFtQjs7SUFDdkQsTUFBTSxDQUFVLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDcEMsTUFBTSxDQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsa0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQ2pELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNaLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsdUJBQXVCO2FBQy9CO1lBQ0QsUUFBUSxFQUFFLEVBQWM7WUFDeEIsT0FBTyxFQUFXO2dCQUNoQixFQUFFLEVBQUUsR0FBRztnQkFDUCxhQUFhLEVBQUU7b0JBQ2IsU0FBUyxFQUFFLElBQUk7b0JBQ2YsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRSxRQUFRO29CQUNkLE1BQU0sRUFBRSxLQUFLO29CQUNiLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjthQUNGO1lBQ0QsYUFBYSxFQUFZLEVBQUU7WUFDM0Isc0JBQXNCLEVBQWdCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUN4QixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNoQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2FBQzNCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLENBQVUsTUFBTSxHQUFHLGtCQUFnQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDcEQsTUFBTSxDQUFVLFdBQVcsR0FBRyxrQkFBZ0IsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBRTlELE1BQU0sQ0FBQyxjQUFjO1FBQ25CLE9BQU87WUFDTCxrQkFBZ0IsQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFO1lBQ25DLGtCQUFnQixDQUFDLHlCQUF5QixFQUFFO1lBQzVDLGtCQUFnQixDQUFDLHFCQUFxQixFQUFFO1NBQ3pDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWE7UUFDbEIsT0FBTztZQUNMLGtCQUFnQixDQUFDLGNBQWMsRUFBRTtZQUNqQyxrQkFBZ0IsQ0FBQyx3Q0FBd0MsRUFBRTtZQUMzRCxrQkFBZ0IsQ0FBQyxzQ0FBc0MsRUFBRTtTQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0I7UUFDckIsT0FBTztZQUNMLGtCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDakMsa0JBQWdCLENBQUMseUJBQXlCLEVBQUU7WUFDNUMsa0JBQWdCLENBQUMscUJBQXFCLEVBQUU7WUFDeEMsa0JBQWdCLENBQUMsd0NBQXdDLEVBQUU7WUFDM0Qsa0JBQWdCLENBQUMsc0NBQXNDLEVBQUU7WUFDekQsa0JBQWdCLENBQUMsc0NBQXNDLEVBQUU7WUFDekQsa0JBQWdCLENBQUMseUJBQXlCLEVBQUU7U0FDN0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMseUJBQXlCO1FBQzlCLE9BQU87WUFDTCxrQkFBZ0IsQ0FBQyx5Q0FBeUMsRUFBRTtZQUM1RCxrQkFBZ0IsQ0FBQyxrREFBa0QsRUFBRTtZQUNyRSxrQkFBZ0IsQ0FBQyxzQ0FBc0MsRUFBRTtTQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxxQkFBcUI7UUFDMUIsT0FBTztZQUNMLGtCQUFnQixDQUFDLDJCQUEyQixFQUFFO1lBQzlDLGtCQUFnQixDQUFDLGlCQUFpQixFQUFFO1lBQ3BDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRTtTQUNyQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxTQUFTLEdBQUcsV0FBVztRQUNwRSxPQUFPLGtCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwRCxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLHdDQUF3QztRQUM3QyxPQUFPLGtCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNwRCxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQVMsV0FBVyxDQUFDLENBQUM7WUFDdkQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyx5Q0FBeUM7UUFDOUMsT0FBTztZQUNMLGtCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEQsQ0FBQyxDQUFDO1NBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsa0RBQWtEO1FBQ3ZELE9BQU87WUFDTCxrQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO3dCQUFFLE9BQU87b0JBQzdCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztTQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsR0FBRyxTQUFTO1FBQ2pELE9BQU8sa0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BELE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsT0FBTzthQUNoQixDQUFDLENBQUMsSUFBSSxDQUNMLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDbEQsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQzVELEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUM1RCxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsR0FBRyxPQUFPO1FBQzVDLE9BQU8sa0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BELE1BQU0sT0FBTyxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25ELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFRLEdBQUcsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxNQUFNO2dCQUNiLE1BQU0sRUFBRSxPQUFPO2FBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDdEMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQzVELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsbUNBQW1DLENBQUMsU0FBa0Q7UUFDM0YsT0FBTyxrQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckYsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMscUNBQXFDLENBQUMsU0FBb0Q7UUFDL0YsT0FBTyxrQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNwRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQ0FBc0M7UUFDM0MsT0FBTyxrQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDcEQsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDdkQsZUFBZSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzVDLElBQUksRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUNsRSxHQUFHLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDNUUsTUFBTSxDQUFDLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQzlDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsc0NBQXNDO1FBQzNDLE9BQU8sa0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ25FLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLDJCQUEyQjtRQUNoQyxPQUFPLGFBQWEsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtZQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsa0JBQWdCLENBQUMsQ0FBQztZQUN2QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0UsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXZFLE9BQU8sR0FBRyxFQUFFO2dCQUNWLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hGLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDbEYsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUNuQixLQUFLLENBQUMsT0FBTyxFQUFFLEVBQ2YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFDekMsRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUM5QyxDQUFDO2dCQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtvQkFDckIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDcEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQzdCLGtCQUFrQjtvQkFDcEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNoQyxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsT0FBTyxhQUFhLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7WUFDekQsT0FBTyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLHlCQUF5QjtRQUM5QixPQUFPLGFBQWEsQ0FBQyxrQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtZQUNqRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsa0JBQWdCLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pCLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN2RCxDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsMkJBQTJCO1FBQ2hDLE9BQU8sa0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGtCQUFnQixDQUFDLENBQUM7WUFFdkMsd0NBQXdDO1lBQ3hDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxTQUFjLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLGVBQWUsR0FBVSxFQUFFLENBQUM7Z0JBRWhDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO29CQUVsRCxvQkFBb0I7b0JBQ3BCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNwQixlQUFlLENBQUMsSUFBSSxDQUFDOzRCQUNuQixJQUFJLEVBQUUsV0FBVzs0QkFDakIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNOzRCQUN0QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7NEJBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTs0QkFDdEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLOzRCQUNwQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87NEJBQ3hCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzs0QkFDcEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO3lCQUN6QixDQUFDLENBQUM7b0JBQ0wsQ0FBQztvQkFFRCx1QkFBdUI7b0JBQ3ZCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNyQixlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDckYsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxPQUFPLGVBQWUsQ0FBQztZQUN6QixDQUFDLENBQUM7WUFFRixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFL0QsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDVixNQUFNLFNBQVMsR0FBRyxVQUFVLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQy9ELElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1QsTUFBTSxlQUFlLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2pELE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLGVBQWUsQ0FBQyxNQUFNLG9CQUFvQixDQUFDLENBQUM7b0JBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzVELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQywrQkFBK0IsQ0FDcEMsZUFBZ0csRUFDaEcsRUFDRSxTQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUN0QixPQUFPLEdBSVI7UUFFRCxPQUFPLGFBQWEsQ0FBQyxrQkFBZ0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtZQUNqRSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsZUFBZSxFQUFFLENBQUM7WUFDbkMsTUFBTSxvQkFBb0IsR0FBRywwQkFBMEIsRUFBRSxDQUFDO1lBRTFELE9BQU8sQ0FBQyxPQUF3QyxFQUFFLEVBQUU7Z0JBQ2xELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDaEQsT0FBTztnQkFDVCxDQUFDO2dCQUNELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO29CQUM1QixNQUFNLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztvQkFDdkIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUMxQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3dCQUNyQyxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7NEJBQ3BELE9BQU8sUUFBUSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQzt3QkFDL0MsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ3JCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRVEsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqQyxNQUFNLEdBQUcsa0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEQsZ0JBQWdCLEdBQUcsdUJBQXVCLEVBQUUsQ0FBQztJQUM3QyxlQUFlLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsYUFBYSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDcEUsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDeEQsSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQscUJBQXFCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLHNCQUFzQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUN0RixZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBZSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzNELEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1FBQy9CLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFO0tBQ2pDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDSSxhQUFhLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELGdCQUFnQixHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxnQkFBZ0IsR0FBRyxlQUFlLENBQVEsT0FBTyxDQUFDLENBQUM7SUFDN0QsZUFBZSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3hELEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckUsS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRyxJQUFJLEdBQUcsZUFBZSxFQUFFLENBQUM7SUFFbEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLGtCQUFnQixDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQzt1R0E3VlUsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7O0FBQWhCLGdCQUFnQjtJQUY1QixhQUFhLEVBQUU7O0dBRUgsZ0JBQWdCLENBOFY1Qjs7MkZBOVZZLGdCQUFnQjtrQkFENUIsU0FBUzttQkFBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBNlovQixNQUFNLE9BQU8sV0FBWSxTQUFRLGlCQUFpQjtJQUM3QixLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDM0MsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pCLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBR3JFLGNBQWMsQ0FBQyxPQUFPO1FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7dUdBVFUsV0FBVzsyRkFBWCxXQUFXLDREQW5EWDtZQUNULGNBQWM7WUFDZCxZQUFZO1lBQ1oseUJBQXlCO1NBQzFCLHVEQTdXVSxnQkFBZ0IsbVRBOFdqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULG9WQXRDQyxpQkFBaUIsc0ZBQ2pCLFlBQVksMkRBQ1osU0FBUyxpSEFDVCxnQkFBZ0IseUZBQ2hCLGNBQWM7O0FBNEROO0lBRFQsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7Ozs7aURBR2hEOzJGQVRVLFdBQVc7a0JBNUR2QixTQUFTOytCQUNFLGVBQWUsV0FDaEI7d0JBQ1AsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixjQUFjO3FCQUNmLGFBQ1U7d0JBQ1QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLHlCQUF5QjtxQkFDMUIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULGtCQUVlO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSxnQkFBZ0I7NEJBQzNCLE1BQU0sRUFBRTtnQ0FDTixPQUFPO2dDQUNQLGVBQWU7Z0NBQ2YsU0FBUztnQ0FDVCxNQUFNO2dDQUNOLHdCQUF3QjtnQ0FDeEIsY0FBYztnQ0FDZCxrQkFBa0I7Z0NBQ2xCLGlCQUFpQjtnQ0FDakIsTUFBTTs2QkFDUDt5QkFDRjtxQkFDRjs4QkFTUyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIFByb3ZpZGVyLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyT3V0bGV0RnJhbWUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvZnJhbWVzL3JvdXRlci1vdXRsZXQnO1xuaW1wb3J0IHsgQ29tbWFuZFNlcnZpY2UgfSBmcm9tICdAeHhtYWNoaW5hL2NvbXBvbmVudHMvc2VydmljZXMvY29tbWFuZCc7XG5pbXBvcnQgeyBfY29tcHV0ZWQsIEFjdGlvbiwgYXBwbHlUb0lucHV0LCBFZmZlY3QsIEluamVjdGFibGVDb21wb25lbnQsIE5nQXRvbWljQ29tcG9uZW50LCBwcm92aWRlRWZmZWN0LCBUb2tlbml6ZWRUeXBlIH0gZnJvbSAnQG5nLWF0b21pYy9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbU1hcCwgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEZvcm1UZW1wbGF0ZSwgRm9ybVRlbXBsYXRlU3RvcmUgfSBmcm9tICdAbmctYXRvbWljL2NvbXBvbmVudHMvdGVtcGxhdGVzL2Zvcm0nO1xuaW1wb3J0IHsgZ2V0SW52YWxpZCQsIGdldFZhbHVlJCwgaW5qZWN0Um91dGVEYXRhLCBpbmplY3RSb3V0ZURhdGEkLCBpbmplY3RSb3V0ZVBhcmFtLCBpbmplY3RSb3V0ZVBhcmFtJCwgaW5qZWN0Um91dGVQYXJhbU1hcCwgaW5qZWN0Um91dGVTa2lwLCBpbmplY3RVbmZsYXR0ZW5Sb3V0ZVBhcmFtJCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IG1hcCwgdGFwLCBmaWx0ZXIsIGNvbWJpbmVMYXRlc3QsIHNoYXJlUmVwbGF5LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkTWFwIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvc21hcnQtZmllbGQnO1xuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL2FwcCc7XG5pbXBvcnQgeyBpbmplY3ROYXZTdGFydEFjdGlvbnNWMiwgbWFrZURJIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vc2VydmljZXMvdWknO1xuaW1wb3J0IHsgUXVlcnksIFF1ZXJ5SGVscGVyIH0gZnJvbSAnQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnQHh4bWFjaGluYS9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBpbmplY3RVbmZsYXR0ZW5Sb3V0ZVBhcmFtIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgbWVyZ2UsIHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgaW5qZWN0T25lJCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3N0b3Jlcy9lbnRpdGllcyc7XG5pbXBvcnQgeyBNYWNoaW5hRGV2U2VydmljZSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tcG9uZW50cy9zZXJ2aWNlcy9kZWJ1Zyc7XG5pbXBvcnQgeyBFbmRwb2ludEhlbHBlciB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2RvbWFpbi9tb2RlbHMnO1xuaW1wb3J0IHsgZGVyaXZlZEFzeW5jIH0gZnJvbSAnbmd4dGVuc2lvbi9kZXJpdmVkLWFzeW5jJztcbmltcG9ydCB7IENvbW1hbmRGZWF0dXJlIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2ZlYXR1cmVzL2NvbW1hbmQnO1xuaW1wb3J0IHsgVGFic0ZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy90YWJzJztcbmltcG9ydCB7IFF1ZXJ5Rm9ybUdyb3VwIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2dyb3Vwcy9xdWVyeS1mb3JtJztcbmltcG9ydCB7IENvbW1hbmRGb3JtR3JvdXAgfSBmcm9tICdAeHhtYWNoaW5hL2NvbXBvbmVudHMvZ3JvdXBzL2NvbW1hbmQtZm9ybSc7XG5pbXBvcnQgeyBRdWVyeUZlYXR1cmUsIFF1ZXJ5R3JhcGhxbFNjaGVtYUZlYXR1cmUgfSBmcm9tICdAeHhtYWNoaW5hL2NvbXBvbmVudHMvZmVhdHVyZXMvcXVlcnknO1xuaW1wb3J0IHsgQ2xvdWRTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9jbG91ZC1zdG9yYWdlJztcbmltcG9ydCB7IGluamVjdEVycm9yTWVzc2FnZVJlc29sdmVyIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vcGlwZXMvZXJyb3InO1xuXG5lbnVtIEFjdGlvbklkIHtcbiAgRVhFQ1VURV9DT01NQU5EID0gJ2V4ZWN1dGUtY29tbWFuZCcsXG4gIEZJTEVfU0VMRUNURUQgPSAnZmlsZS1zZWxlY3RlZCcsXG59XG5cbmZ1bmN0aW9uIGJ1aWxkRm9ybURhdGEoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUFycmF5LCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKSwgcGFyZW50S2V5ID0gJycpOiBGb3JtRGF0YSB7XG4gIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBjb250cm9sID0gZm9ybS5nZXQoa2V5KTtcbiAgICBjb25zdCBmb3JtS2V5ID0gcGFyZW50S2V5ID8gYCR7cGFyZW50S2V5fS4ke2tleX1gIDoga2V5O1xuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgLy8g5a2Q44GuRm9ybUdyb3Vw44KERm9ybUFycmF544KS5YaN5biw55qE44Gr5Yem55CGXG4gICAgICBidWlsZEZvcm1EYXRhKGNvbnRyb2wsIGZvcm1EYXRhLCBmb3JtS2V5KTtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgLy8g44OV44Kp44O844Og44Gu5YCk44KS6L+95YqgXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoZm9ybUtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGZvcm1EYXRhO1xufVxuXG5mdW5jdGlvbiBidWlsZERhdGEoZm9ybTogQWJzdHJhY3RDb250cm9sLCBjb250ZW50VHlwZTogc3RyaW5nKSB7XG4gIGlmIChjb250ZW50VHlwZSA9PT0gJ211bHRpcGFydC9mb3JtLWRhdGEnKSB7XG4gICAgcmV0dXJuIGJ1aWxkRm9ybURhdGEoZm9ybSBhcyBGb3JtR3JvdXApO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmb3JtLmdldFJhd1ZhbHVlKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQWN0aW9ucyhoYXNQZXJtaXNzaW9uOiBib29sZWFuLCBpbnZhbGlkOiBib29sZWFuKTogQWN0aW9uW10ge1xuICByZXR1cm4gaGFzUGVybWlzc2lvblxuICAgID8gW3sgaWQ6IEFjdGlvbklkLkVYRUNVVEVfQ09NTUFORCwgbmFtZTogJ+Wun+ihjCcsIGRpc2FibGVkOiBpbnZhbGlkIH1dXG4gICAgOiBbeyBpZDogQWN0aW9uSWQuRVhFQ1VURV9DT01NQU5ELCBuYW1lOiAn5a6f6KGM5qip6ZmQ44GM44GC44KK44G+44Gb44KTJywgZGlzYWJsZWQ6IHRydWUgfV1cbn1cblxuQFRva2VuaXplZFR5cGUoKVxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBDb21tYW5kUGFnZVN0b3JlIGV4dGVuZHMgSW5qZWN0YWJsZUNvbXBvbmVudCB7XG4gIHN0YXRpYyByZWFkb25seSBBY3Rpb25JZCA9IEFjdGlvbklkO1xuICBzdGF0aWMgcmVhZG9ubHkgREkgPSBtYWtlREkoQ29tbWFuZFBhZ2VTdG9yZSwgKCkgPT4ge1xuICAgIGNvbnN0IGRldiA9IGluamVjdChNYWNoaW5hRGV2U2VydmljZSk7XG4gICAgcmV0dXJuICgpID0+ICh7XG4gICAgICBzdHlsZToge1xuICAgICAgICB3aWR0aDogJ3ZhcigtLXBhZ2Utd2lkdGgtbHYxKScsXG4gICAgICB9LFxuICAgICAgYmFzZVVybHM6IFtdIGFzIHN0cmluZ1tdLFxuICAgICAgY29tbWFuZDogPENvbW1hbmQ+e1xuICAgICAgICBpZDogJzEnLFxuICAgICAgICB3ZWJBcGlSZXF1ZXN0OiB7XG4gICAgICAgICAgc2VydmVyVXJsOiBudWxsLFxuICAgICAgICAgIGFwaUpzb25Vcmw6IG51bGwsXG4gICAgICAgICAgcGF0aDogJy91c2VycycsXG4gICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICBib2R5U2NoZW1hOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG5hdkVuZEFjdGlvbnM6IDxBY3Rpb25bXT5bXSxcbiAgICAgIGFkZGl0aW9uYWxGb3JtRmllbGRNYXA6IDxGb3JtRmllbGRNYXA+KGRldi5pc0Rldk1vZGUoKSA/IHt9IDoge1xuICAgICAgICAnaWQnOiB7IHR5cGU6ICdoaWRkZW4nIH0sXG4gICAgICAgICdfX3R5cGVuYW1lJzogeyB0eXBlOiAnaGlkZGVuJyB9LFxuICAgICAgICAna2luZCc6IHsgdHlwZTogJ2hpZGRlbicgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9LCBbJ0B4eG1hY2hpbmEvY29tcG9uZW50cycsICdwYWdlcycsICdjb21tYW5kJ10pO1xuICBzdGF0aWMgcmVhZG9ubHkgQ29uZmlnID0gQ29tbWFuZFBhZ2VTdG9yZS5ESS5Db25maWc7XG4gIHN0YXRpYyByZWFkb25seSBJbml0aWFsaXplciA9IENvbW1hbmRQYWdlU3RvcmUuREkuSW5pdGlhbGl6ZXI7XG5cbiAgc3RhdGljIHByb3ZpZGVEZWZhdWx0KCk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLkRJLnByb3ZpZGVDb25maWcoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZURlZmF1bHRJbml0aWFsaXplcigpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlRGVmYXVsdEVmZmVjdHMoKSxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVDdXN0b20oKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZURlZmF1bHQoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZUNvbW1hbmRJZEZyb21Sb3V0ZURhdGFJbml0aWFsaXplcigpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlU2V0dXBJbml0aWFsaXplUXVlcnlJbml0aWFsaXplcigpLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZURlZmF1bHRWMigpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5Db25maWcucHJvdmlkZSgpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlRGVmYXVsdEluaXRpYWxpemVyKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVEZWZhdWx0RWZmZWN0cygpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlQ29tbWFuZElkRnJvbVJvdXRlRGF0YUluaXRpYWxpemVyKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVTZXR1cEluaXRpYWxpemVRdWVyeUluaXRpYWxpemVyKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVJbml0aWFsRm9ybVZhbHVlRnJvbVF1ZXJ5UmVzdWx0KCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVRdWVyeUZyb21Sb3V0ZURhdGEoKSxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVEZWZhdWx0SW5pdGlhbGl6ZXIoKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZVBhdGNoRm9ybUZyb21Sb3V0ZVBhcmFtSW5pdGlhbGl6ZXIoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZVBhdGNoQ29tbWFuZEZvcm1WYWx1ZUZyb21Db21tYW5kSW5pdGlhbGl6ZXIoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZUluaXRpYWxGb3JtVmFsdWVGcm9tUXVlcnlSZXN1bHQoKVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZURlZmF1bHRFZmZlY3RzKCk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVFeGVjdXRlQ29tbWFuZEVmZmVjdCgpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlQmFja0VmZmVjdCgpLFxuICAgICAgUXVlcnlGZWF0dXJlLnByb3ZpZGVEZWZhdWx0RWZmZWN0cygpLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUNvbW1hbmRGcm9tUm91dGVQYXJhbUluaXRpYWxpemVyKHBhcmFtTmFtZSA9ICdjb21tYW5kSWQnKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBjb21tYW5kSWQgPSBpbmplY3RSb3V0ZVBhcmFtKHBhcmFtTmFtZSk7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0KENvbW1hbmRTZXJ2aWNlKTtcbiAgICAgIGVmZmVjdCgoKSA9PiBhcHBseVRvSW5wdXQoc3RvcmUsICdjb21tYW5kJywgc2VydmljZS5nZXRDb21tYW5kKGNvbW1hbmRJZCgpKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVDb21tYW5kSWRGcm9tUm91dGVEYXRhSW5pdGlhbGl6ZXIoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBjb21tYW5kSWQgPSBpbmplY3RSb3V0ZURhdGE8c3RyaW5nPignY29tbWFuZElkJyk7XG4gICAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0KENvbW1hbmRTZXJ2aWNlKTtcbiAgICAgIGVmZmVjdCgoKSA9PiBhcHBseVRvSW5wdXQoc3RvcmUsICdjb21tYW5kJywgc2VydmljZS5nZXRDb21tYW5kKGNvbW1hbmRJZCgpKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVQYXRjaEZvcm1Gcm9tUm91dGVQYXJhbUluaXRpYWxpemVyKCkge1xuICAgIHJldHVybiBbXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoc3RvcmUgPT4ge1xuICAgICAgICBlZmZlY3QoKCkgPT4gc3RvcmUuZm9ybSgpLnBhdGNoVmFsdWUoc3RvcmUuZGF0YSgpKSk7XG4gICAgICB9KSxcbiAgICBdXG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVBhdGNoQ29tbWFuZEZvcm1WYWx1ZUZyb21Db21tYW5kSW5pdGlhbGl6ZXIoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZShzdG9yZSA9PiB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCFzdG9yZS5jb21tYW5kKCkpIHJldHVybjtcbiAgICAgICAgICBzdG9yZS5mZWF0dXJlLmNvbW1hbmRGb3JtKCkucGF0Y2hWYWx1ZSh7IC4uLnN0b3JlLmNvbW1hbmQoKSB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVF1ZXJ5SWRGcm9tUm91dGVQYXJhbShrZXkgPSAncXVlcnlJZCcpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5SWQkID0gaW5qZWN0Um91dGVQYXJhbSQoa2V5KTtcbiAgICAgIGNvbnN0IHBhcmFtcyQgPSBpbmplY3RVbmZsYXR0ZW5Sb3V0ZVBhcmFtJCgnZGF0YScpO1xuICAgICAgY29uc3QgcXVlcnkkID0gaW5qZWN0T25lJChRdWVyeSwgeyBpZDogcXVlcnlJZCQgfSk7XG4gICAgICBjb25zdCBzZXR1cFF1ZXJ5ID0gZGVyaXZlZEFzeW5jKCgpID0+IGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICBxdWVyeTogcXVlcnkkLFxuICAgICAgICBwYXJhbXM6IHBhcmFtcyQsXG4gICAgICB9KS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHsgcXVlcnksIHBhcmFtcyB9KSA9PiAhIXF1ZXJ5ICYmICEhcGFyYW1zKSxcbiAgICAgICAgbWFwKCh7IHF1ZXJ5LCBwYXJhbXMgfSkgPT4gUXVlcnlIZWxwZXIuc2V0dXAocXVlcnksIHBhcmFtcykpLFxuICAgICAgICB0YXAoKHF1ZXJ5KSA9PiBjb25zb2xlLmRlYnVnKCdbQ29tbWFuZFBhZ2VdIHF1ZXJ5OicsIHF1ZXJ5KSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgKSk7XG4gICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmRlYnVnKCdbQ29tbWFuZFBhZ2VdIHNldHVwUXVlcnk6Jywgc2V0dXBRdWVyeSgpKTtcbiAgICAgICAgc3RvcmUucXVlcnlGZWF0dXJlLmZvcm0ucGF0Y2hWYWx1ZShzZXR1cFF1ZXJ5KCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVF1ZXJ5RnJvbVJvdXRlRGF0YShrZXkgPSAncXVlcnknKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbXMkID0gaW5qZWN0VW5mbGF0dGVuUm91dGVQYXJhbSQoJ2RhdGEnKTtcbiAgICAgIGNvbnN0IHF1ZXJ5JCA9IGluamVjdFJvdXRlRGF0YSQ8UXVlcnk+KGtleSk7XG4gICAgICBjb25zdCBzZXR1cFF1ZXJ5ID0gZGVyaXZlZEFzeW5jKCgpID0+IGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICBxdWVyeTogcXVlcnkkLFxuICAgICAgICBwYXJhbXM6IHBhcmFtcyQsXG4gICAgICB9KS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHsgcXVlcnksIHBhcmFtcyB9KSA9PiAhIXF1ZXJ5KSxcbiAgICAgICAgbWFwKCh7IHF1ZXJ5LCBwYXJhbXMgfSkgPT4gUXVlcnlIZWxwZXIuc2V0dXAocXVlcnksIHBhcmFtcykpLFxuICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICAgICkpO1xuICAgICAgZWZmZWN0KCgpID0+IHsgc3RvcmUucXVlcnlGZWF0dXJlLmZvcm0ucGF0Y2hWYWx1ZShzZXR1cFF1ZXJ5KCkpOyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlUm91dGVQYXJhbXNUb0RhdGFJbml0aWFsaXplcihwcm9qZWN0b3I6IChwYXJhbXM6IFBhcmFtcykgPT4gUmVjb3JkPHN0cmluZywgYW55Pik6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICBjb25zdCBkYXRhID0gZGVyaXZlZEFzeW5jKCgpID0+IHJvdXRlLnBhcmFtcy5waXBlKG1hcChwYXJhbXMgPT4gcHJvamVjdG9yKHBhcmFtcykpKSk7XG4gICAgICBlZmZlY3QoKCkgPT4gYXBwbHlUb0lucHV0KHN0b3JlLCAnZGF0YScsIGRhdGEoKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVSb3V0ZVBhcmFtTWFwVG9EYXRhSW5pdGlhbGl6ZXIocHJvamVjdG9yOiAocGFyYW1zOiBQYXJhbU1hcCkgPT4gUmVjb3JkPHN0cmluZywgYW55Pik6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBwYXJhbU1hcCA9IGluamVjdFJvdXRlUGFyYW1NYXAoe21lcmdlOiB0cnVlfSk7XG4gICAgICBjb25zdCBkYXRhID0gY29tcHV0ZWQoKCkgPT4gcHJvamVjdG9yKHBhcmFtTWFwKCkpKTtcbiAgICAgIGVmZmVjdCgoKSA9PiBhcHBseVRvSW5wdXQoc3RvcmUsICdkYXRhJywgZGF0YSgpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVNldHVwSW5pdGlhbGl6ZVF1ZXJ5SW5pdGlhbGl6ZXIoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBjb25zdCBpbml0aWFsaXplUXVlcnkgPSBkZXJpdmVkQXN5bmMoKCkgPT4gY29tYmluZUxhdGVzdCh7XG4gICAgICAgIGluaXRpYWxpemVRdWVyeTogb2Yoc3RvcmUuaW5pdGlhbGl6ZVF1ZXJ5KCkpLFxuICAgICAgICBkYXRhOiBvZihzdG9yZS5kYXRhKCkpXG4gICAgICB9KS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHsgaW5pdGlhbGl6ZVF1ZXJ5LCBkYXRhIH0pID0+ICEhaW5pdGlhbGl6ZVF1ZXJ5ICYmICEhZGF0YSksXG4gICAgICAgIG1hcCgoeyBpbml0aWFsaXplUXVlcnksIGRhdGEgfSkgPT4gUXVlcnlIZWxwZXIuc2V0dXAoaW5pdGlhbGl6ZVF1ZXJ5LCBkYXRhKSksXG4gICAgICAgIGZpbHRlcigoaW5pdGlhbGl6ZVF1ZXJ5KSA9PiAhIWluaXRpYWxpemVRdWVyeSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgKSk7XG4gICAgICBcbiAgICAgIGVmZmVjdCgoKSA9PiBzdG9yZS5xdWVyeUZlYXR1cmUuZm9ybS5wYXRjaFZhbHVlKGluaXRpYWxpemVRdWVyeSgpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUluaXRpYWxGb3JtVmFsdWVGcm9tUXVlcnlSZXN1bHQoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLnByb3ZpZGUoKHN0b3JlKSA9PiB7XG4gICAgICBlZmZlY3QoKCkgPT4gc3RvcmUuZm9ybSgpLnBhdGNoVmFsdWUoc3RvcmUucXVlcnlGZWF0dXJlLnJlc3VsdCgpKSk7XG4gICAgICBzdG9yZS5xdWVyeUZlYXR1cmUucmVmcmVzaCgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVFeGVjdXRlQ29tbWFuZEVmZmVjdCgpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHByb3ZpZGVFZmZlY3QoQWN0aW9uSWQuRVhFQ1VURV9DT01NQU5ELCAoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yZSA9IGluamVjdChDb21tYW5kUGFnZVN0b3JlKTtcbiAgICAgIGNvbnN0IGFwcCA9IGluamVjdChBcHBTZXJ2aWNlKTtcbiAgICAgIGNvbnN0IHBhcmFtS2V5cyA9IGNvbXB1dGVkKCgpID0+IEVuZHBvaW50SGVscGVyLmV4dHJhY3Qoc3RvcmUuZmVhdHVyZS5wYXRoKCkpKTtcbiAgICAgIGNvbnN0IHJlc29sdmVkUGFyYW1zID0gY29tcHV0ZWQoKCkgPT4gcGljayhzdG9yZS5kYXRhKCksIHBhcmFtS2V5cygpKSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRW5kcG9pbnQgPSBFbmRwb2ludEhlbHBlci5yZXNvbHZlKHN0b3JlLmZlYXR1cmUucGF0aCgpLCByZXNvbHZlZFBhcmFtcygpKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IGJ1aWxkRGF0YShzdG9yZS5mb3JtKCksIHN0b3JlLmNvbW1hbmQoKT8ud2ViQXBpUmVxdWVzdD8uY29udGVudFR5cGUpO1xuICAgICAgICBjb25zdCBjb21tYW5kID0gbWVyZ2UoXG4gICAgICAgICAgc3RvcmUuY29tbWFuZCgpLFxuICAgICAgICAgIHN0b3JlLmZlYXR1cmUuY29tbWFuZEZvcm0oKS5nZXRSYXdWYWx1ZSgpLFxuICAgICAgICAgIHsgd2ViQXBpUmVxdWVzdDogeyBwYXRoOiByZXNvbHZlZEVuZHBvaW50IH0gfSxcbiAgICAgICAgKTtcbiAgICAgICAgYXBwLmxvYWRpbmcuYXdhaXQoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBzdG9yZS5mZWF0dXJlLmV4ZWN1dGUoY29tbWFuZCwgZGF0YSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBhcHAuc25hY2tCYXIub3Blbign5oiQ5Yqf44GX44G+44GX44Gf44CCJyk7XG4gICAgICAgICAgICAvLyBoaXN0b3J5LmJhY2soKTtcbiAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgYXBwLnNuYWNrQmFyLm9wZW5FcnJvcihlcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVCYWNrRWZmZWN0KCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gcHJvdmlkZUVmZmVjdChGb3JtVGVtcGxhdGVTdG9yZS5BY3Rpb25JZC5CQUNLLCAoKSA9PiB7XG4gICAgICByZXR1cm4gKCkgPT4gaGlzdG9yeS5iYWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUZpbGVTZWxlY3RlZEVmZmVjdCgpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHByb3ZpZGVFZmZlY3QoQ29tbWFuZFBhZ2VTdG9yZS5BY3Rpb25JZC5GSUxFX1NFTEVDVEVELCAoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yZSA9IGluamVjdChDb21tYW5kUGFnZVN0b3JlKTtcbiAgICAgIHJldHVybiAocGF5bG9hZCkgPT4ge1xuICAgICAgICBzdG9yZS5mb3JtKCkucGF0Y2hWYWx1ZSh7IGZpbGU6IHBheWxvYWQuZmlsZXM/LlswXSB9KVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVEZWJ1Z0Zvcm1Jbml0aWFsaXplcigpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yZSA9IGluamVjdChDb21tYW5kUGFnZVN0b3JlKTtcbiAgICAgIFxuICAgICAgLy8gRm9ybUdyb3Vw44KS5YaN5biw55qE44Gr6Kq/44G544KL6Zai5pWw77yIaW52YWxpZOOBquOCs+ODs+ODiOODreODvOODq+OBruOBv++8iVxuICAgICAgY29uc3QgZ2V0SW52YWxpZENvbnRyb2xzID0gKGZvcm1Hcm91cDogYW55LCBwYXRoID0gJycpID0+IHtcbiAgICAgICAgbGV0IGludmFsaWRDb250cm9sczogYW55W10gPSBbXTtcbiAgICAgICAgXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuY29udHJvbHNba2V5XTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke2tleX1gIDoga2V5O1xuICAgICAgICAgIFxuICAgICAgICAgIC8vIGludmFsaWTjgarjgrPjg7Pjg4jjg63jg7zjg6vjgpLoqJjpjLJcbiAgICAgICAgICBpZiAoY29udHJvbC5pbnZhbGlkKSB7XG4gICAgICAgICAgICBpbnZhbGlkQ29udHJvbHMucHVzaCh7XG4gICAgICAgICAgICAgIHBhdGg6IGN1cnJlbnRQYXRoLFxuICAgICAgICAgICAgICBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzLFxuICAgICAgICAgICAgICB2YWx1ZTogY29udHJvbC52YWx1ZSxcbiAgICAgICAgICAgICAgc3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICAgICAgICAgICAgdmFsaWQ6IGNvbnRyb2wudmFsaWQsXG4gICAgICAgICAgICAgIGludmFsaWQ6IGNvbnRyb2wuaW52YWxpZCxcbiAgICAgICAgICAgICAgZGlydHk6IGNvbnRyb2wuZGlydHksXG4gICAgICAgICAgICAgIHRvdWNoZWQ6IGNvbnRyb2wudG91Y2hlZFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEZvcm1Hcm91cOOBruWgtOWQiOOBr+WGjeW4sOeahOOBq+iqv+OBueOCi1xuICAgICAgICAgIGlmIChjb250cm9sLmNvbnRyb2xzKSB7XG4gICAgICAgICAgICBpbnZhbGlkQ29udHJvbHMgPSBpbnZhbGlkQ29udHJvbHMuY29uY2F0KGdldEludmFsaWRDb250cm9scyhjb250cm9sLCBjdXJyZW50UGF0aCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gaW52YWxpZENvbnRyb2xzO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgZm9ybVZhbHVlXyA9IGRlcml2ZWRBc3luYygoKSA9PiBnZXRWYWx1ZSQoc3RvcmUuZm9ybSgpKSk7XG4gICAgICBcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGZvcm1WYWx1ZV8oKTtcbiAgICAgICAgY29uc3QgZm9ybSA9IHVudHJhY2tlZCgoKSA9PiBzdG9yZS5mb3JtKCkpO1xuICAgICAgICBjb25zb2xlLmxvZygnW0NvbW1hbmRQYWdlXSBGb3JtIHZhbHVlIGNoYW5nZWQ6JywgZm9ybVZhbHVlKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tDb21tYW5kUGFnZV0gQ29tbWFuZEZvcm0gdmFsaWQ6JywgZm9ybT8udmFsaWQpO1xuICAgICAgICBjb25zb2xlLmxvZygnW0NvbW1hbmRQYWdlXSBDb21tYW5kRm9ybSBzdGF0dXM6JywgZm9ybT8uc3RhdHVzKTtcbiAgICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgICBjb25zdCBpbnZhbGlkQ29udHJvbHMgPSBnZXRJbnZhbGlkQ29udHJvbHMoZm9ybSk7XG4gICAgICAgICAgY29uc3QgaW52YWxpZFBhdGhzID0gaW52YWxpZENvbnRyb2xzLm1hcChjb250cm9sID0+IGNvbnRyb2wucGF0aCk7XG4gICAgICAgICAgY29uc29sZS5sb2coYFtDb21tYW5kUGFnZV0gRm91bmQgJHtpbnZhbGlkQ29udHJvbHMubGVuZ3RofSBJTlZBTElEIGNvbnRyb2xzOmApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbQ29tbWFuZFBhZ2VdIElOVkFMSUQgUEFUSFM6JywgaW52YWxpZFBhdGhzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVNlbGVjdGVkRmlsZVVwbG9hZEVmZmVjdChcbiAgICBjYWxsYmFja0ZhY3Rvcnk6ICgpID0+IChyZXN1bHQ6IHtmaWxlOiBGaWxlLCBwYXRoOiBzdHJpbmcsIHVybDogc3RyaW5nfSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4sXG4gICAge1xuICAgICAgdmFsaWRhdG9yID0gKCkgPT4gbnVsbCxcbiAgICAgIGdldFBhdGgsXG4gICAgfToge1xuICAgICAgdmFsaWRhdG9yPzogKGZpbGU6IEZpbGUpID0+IHt0eXBlOiBib29sZWFuLCBzaXplOiBib29sZWFufSB8IG51bGwsXG4gICAgICBnZXRQYXRoOiAoKSA9PiBzdHJpbmcsXG4gICAgfVxuICApOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHByb3ZpZGVFZmZlY3QoQ29tbWFuZFBhZ2VTdG9yZS5BY3Rpb25JZC5GSUxFX1NFTEVDVEVELCAoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlID0gaW5qZWN0KENsb3VkU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgY29uc3QgYXBwID0gaW5qZWN0KEFwcFNlcnZpY2UpO1xuICAgICAgY29uc3QgY2FsbGJhY2sgPSBjYWxsYmFja0ZhY3RvcnkoKTtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZVJlc29sdmVyID0gaW5qZWN0RXJyb3JNZXNzYWdlUmVzb2x2ZXIoKTtcbiAgXG4gICAgICByZXR1cm4gKHBheWxvYWQ6IHsgc2NvcGU6IHN0cmluZywgZmlsZXM6IEZpbGVbXX0pID0+IHtcbiAgICAgICAgY29uc3QgZmlsZSA9IHBheWxvYWQuZmlsZXM/LlswXTtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdG9yKGZpbGUpO1xuICAgICAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFwcC5zbmFja0Jhci5vcGVuKGVycm9yTWVzc2FnZVJlc29sdmVyKGVycm9ycykpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBwLmxvYWRpbmcuYXdhaXQoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhdGggPSBnZXRQYXRoKCk7XG4gICAgICAgICAgcmV0dXJuIHN0b3JhZ2UudXBsb2FkKHBhdGgsIGZpbGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgYXBwLnNuYWNrQmFyLm9wZW4oJ+ODleOCoeOCpOODq+OCkuOCouODg+ODl+ODreODvOODieOBl+OBvuOBl+OBnycpO1xuICAgICAgICAgICAgcmV0dXJuIHN0b3JhZ2UuZ2V0RG93bmxvYWRVcmwocGF0aCkudGhlbigoaW1hZ2VVcmwpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHtmaWxlLCBwYXRoLCB1cmw6IGltYWdlVXJsfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgYXBwLnNuYWNrQmFyLm9wZW4oJ+ODleOCoeOCpOODq+OBruOCouODg+ODl+ODreODvOODieOBq+WkseaVl+OBl+OBvuOBl+OBnycpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGZlYXR1cmUgPSBpbmplY3QoQ29tbWFuZEZlYXR1cmUpO1xuICByZWFkb25seSBjb25maWcgPSBDb21tYW5kUGFnZVN0b3JlLkNvbmZpZy5pbmplY3QoKTtcbiAgcmVhZG9ubHkgcXVlcnlGZWF0dXJlID0gaW5qZWN0KFF1ZXJ5RmVhdHVyZSk7XG4gIHJlYWRvbmx5IHN0eWxlID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuc3R5bGUpKTtcbiAgcmVhZG9ubHkgI25hdlN0YXJ0QWN0aW9ucyA9IGluamVjdE5hdlN0YXJ0QWN0aW9uc1YyKCk7XG4gIHJlYWRvbmx5IG5hdlN0YXJ0QWN0aW9ucyA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLiNuYXZTdGFydEFjdGlvbnMoKSkpO1xuICByZWFkb25seSBuYXZFbmRBY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkubmF2RW5kQWN0aW9ucykpO1xuICByZWFkb25seSBjb21tYW5kID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuY29tbWFuZCkpO1xuICByZWFkb25seSBmb3JtID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuZmVhdHVyZS5mb3JtKCkpKTtcbiAgcmVhZG9ubHkgZXh0cmFjdGVkRm9ybUZpZWxkTWFwID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuZmVhdHVyZS5leHRyYWN0ZWRGb3JtRmllbGRNYXAoKSkpO1xuICByZWFkb25seSBhZGRpdGlvbmFsRm9ybUZpZWxkTWFwID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuY29uZmlnKCkuYWRkaXRpb25hbEZvcm1GaWVsZE1hcCkpO1xuICByZWFkb25seSBmb3JtRmllbGRNYXAgPSBpbnB1dChfY29tcHV0ZWQ8Rm9ybUZpZWxkTWFwPigoKSA9PiAoe1xuICAgIC4uLnRoaXMuZXh0cmFjdGVkRm9ybUZpZWxkTWFwKCksXG4gICAgLi4udGhpcy5hZGRpdGlvbmFsRm9ybUZpZWxkTWFwKClcbiAgfSkpKTtcbiAgcmVhZG9ubHkgZm9ybUZpZWxkS2V5cyA9IGlucHV0PHN0cmluZ1tdPihfY29tcHV0ZWQoKCkgPT4gW10pKTtcbiAgcmVhZG9ubHkgZm9ybUZsYXRFeGNsdWRlcyA9IGlucHV0PHN0cmluZ1tdPihfY29tcHV0ZWQoKCkgPT4gW10pKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9pbml0aWFsaXplUXVlcnkgPSBpbmplY3RSb3V0ZURhdGE8UXVlcnk+KCdxdWVyeScpO1xuICByZWFkb25seSBpbml0aWFsaXplUXVlcnkgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5faW5pdGlhbGl6ZVF1ZXJ5KCkpKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kYXRhID0gaW5qZWN0VW5mbGF0dGVuUm91dGVQYXJhbSgnZGF0YScpO1xuICByZWFkb25seSBkYXRhID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuX2RhdGEoKSkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybUludmFsaWQgPSBkZXJpdmVkQXN5bmMoKCkgPT4gZ2V0SW52YWxpZCQodGhpcy5mb3JtKCkpKTtcbiAgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5mZWF0dXJlLnRpdGxlKCkpKTtcbiAgcmVhZG9ubHkgYWN0aW9ucyA9IGRlcml2ZWRBc3luYygoKSA9PiBidWlsZEFjdGlvbnModGhpcy5mZWF0dXJlLmhhc1Blcm1pc3Npb24odGhpcy5jb21tYW5kKCkpLCB0aGlzLmZvcm1JbnZhbGlkKCkpKTtcbiAgcmVhZG9ubHkgc2tpcCA9IGluamVjdFJvdXRlU2tpcCgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgQ29tbWFuZFBhZ2VTdG9yZS5Jbml0aWFsaXplci5pbml0aWFsaXplU3RvcmUodGhpcyk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGFnZXMtY29tbWFuZCcsXG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJPdXRsZXRGcmFtZSxcbiAgICBGb3JtVGVtcGxhdGUsXG4gICAgVGFic0ZyYW1lLFxuICAgIENvbW1hbmRGb3JtR3JvdXAsXG4gICAgUXVlcnlGb3JtR3JvdXBcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ29tbWFuZEZlYXR1cmUsXG4gICAgUXVlcnlGZWF0dXJlLFxuICAgIFF1ZXJ5R3JhcGhxbFNjaGVtYUZlYXR1cmVcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgPGZyYW1lcy1yb3V0ZXItb3V0bGV0IFtza2lwXT1cInN0b3JlLnNraXAoKVwiIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiPlxuICAgIDx0ZW1wbGF0ZXMtZm9ybVxuICAgICAgW2Zvcm1dPVwic3RvcmUuZm9ybSgpXCJcbiAgICAgIFtzdHlsZV09XCJzdG9yZS5zdHlsZSgpXCJcbiAgICAgIFtmaWVsZE1hcF09XCJzdG9yZS5mb3JtRmllbGRNYXAoKVwiXG4gICAgICBbZmllbGRLZXlzXT1cInN0b3JlLmZvcm1GaWVsZEtleXMoKVwiXG4gICAgICBbZm9ybUZsYXRFeGNsdWRlc109XCJzdG9yZS5mb3JtRmxhdEV4Y2x1ZGVzKClcIlxuICAgICAgW3RpdGxlXT1cInN0b3JlLnRpdGxlKClcIlxuICAgICAgW25hdlN0YXJ0QWN0aW9uc109XCJzdG9yZS5uYXZTdGFydEFjdGlvbnMoKVwiXG4gICAgICBbbmF2RW5kQWN0aW9uc109XCJzdG9yZS5uYXZFbmRBY3Rpb25zKClcIlxuICAgICAgW2FjdGlvbnNdPVwic3RvcmUuYWN0aW9ucygpXCJcbiAgICAgIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGZyYW1lcy10YWJzIFtsYWJlbHNdPVwiWydDb21tYW5kJywgJ0luaXRpYWxpemVRdWVyeSddXCIgZGFzaGJvYXJkPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RhYj5cbiAgICAgICAgICA8Z3JvdXBzLWNvbW1hbmQtZm9ybSAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIi8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFiPlxuICAgICAgICAgIDxncm91cHMtcXVlcnktZm9ybVxuICAgICAgICAgICAgW2Zvcm1dPVwic3RvcmUucXVlcnlGZWF0dXJlLmZvcm1cIlxuICAgICAgICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9mcmFtZXMtdGFicz4gXG4gICAgPC90ZW1wbGF0ZXMtZm9ybT5cbiAgPC9mcmFtZXMtcm91dGVyLW91dGxldD5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWFuZC5wYWdlLnNjc3MnXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICB7XG4gICAgICBkaXJlY3RpdmU6IENvbW1hbmRQYWdlU3RvcmUsXG4gICAgICBpbnB1dHM6IFtcbiAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgJ25hdkVuZEFjdGlvbnMnLFxuICAgICAgICAnY29tbWFuZCcsXG4gICAgICAgICdmb3JtJyxcbiAgICAgICAgJ2FkZGl0aW9uYWxGb3JtRmllbGRNYXAnLFxuICAgICAgICAnZm9ybUZpZWxkTWFwJyxcbiAgICAgICAgJ2Zvcm1GbGF0RXhjbHVkZXMnLFxuICAgICAgICAnaW5pdGlhbGl6ZVF1ZXJ5JyxcbiAgICAgICAgJ2RhdGEnLFxuICAgICAgXVxuICAgIH0sXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ29tbWFuZFBhZ2UgZXh0ZW5kcyBOZ0F0b21pY0NvbXBvbmVudCB7XG4gIHByb3RlY3RlZCByZWFkb25seSBzdG9yZSA9IGluamVjdChDb21tYW5kUGFnZVN0b3JlKTtcbiAgcmVhZG9ubHkgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZWFkb25seSBhcHAgPSBpbmplY3QoQXBwU2VydmljZSk7XG4gIHJlYWRvbmx5IHBhcmVudFJvdXRlck91dGxldEZyYW1lID0gaW5qZWN0KFJvdXRlck91dGxldEZyYW1lLCB7b3B0aW9uYWw6IHRydWV9KTtcblxuICBARWZmZWN0KEZvcm1UZW1wbGF0ZVN0b3JlLkFjdGlvbklkLkZJTEVfU0VMRUNURUQpXG4gIHByb3RlY3RlZCBvbkZpbGVTZWxlY3RlZChwYXlsb2FkKSB7XG4gICAgdGhpcy5kaXNwYXRjaCh7IGlkOiBBY3Rpb25JZC5GSUxFX1NFTEVDVEVELCBwYXlsb2FkIH0pO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtcGFnZXMtY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL2NvbW1hbmQveHhtYWNoaW5hLWNvbXBvbmVudHMtcGFnZXMtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xxmachina-components-pages-command.mjs","sources":["../tmp-esm2022/pages/command/command.page.js","../tmp-esm2022/pages/command/xxmachina-components-pages-command.js"],"sourcesContent":["var CommandPageStore_1;\nimport { __decorate, __metadata } from \"tslib\";\nimport { Component, computed, Directive, effect, inject, input, untracked } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { RouterOutletFrame } from '@ng-atomic/components/frames/router-outlet';\nimport { CommandService } from '@xxmachina/components/services/command';\nimport { _computed, applyToInput, Effect, InjectableComponent, NgAtomicComponent, provideEffect, TokenizedType } from '@ng-atomic/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormTemplate, FormTemplateStore } from '@ng-atomic/components/templates/form';\nimport { getInvalid$, getValue$, injectRouteData, injectRouteData$, injectRouteParam, injectRouteParam$, injectRouteParamMap, injectRouteSkip, injectUnflattenRouteParam$ } from '@ng-atomic/common/utils';\nimport { map, tap, filter, combineLatest, shareReplay, of } from 'rxjs';\nimport { AppService } from '@ng-atomic/common/services/app';\nimport { injectNavStartActionsV2, makeDI } from '@ng-atomic/common/services/ui';\nimport { Query, QueryHelper } from '@xxmachina/common/domain/models';\nimport { injectUnflattenRouteParam } from '@ng-atomic/common/utils';\nimport { merge, pick } from 'lodash-es';\nimport { injectOne$ } from '@ng-atomic/common/stores/entities';\nimport { MachinaDevService } from '@xxmachina/components/services/debug';\nimport { EndpointHelper } from '@xxmachina/common/domain/models';\nimport { derivedAsync } from 'ngxtension/derived-async';\nimport { CommandFeature } from '@xxmachina/components/features/command';\nimport { TabsFrame } from '@ng-atomic/components/frames/tabs';\nimport { QueryFormGroup } from '@xxmachina/components/groups/query-form';\nimport { CommandFormGroup } from '@xxmachina/components/groups/command-form';\nimport { QueryFeature, QueryGraphqlSchemaFeature } from '@xxmachina/components/features/query';\nimport { CloudStorageService } from '@nx-ddd/common/infrastructure/externals/cloud-storage';\nimport { injectErrorMessageResolver } from '@ng-atomic/common/pipes/error';\nimport * as i0 from \"@angular/core\";\nvar ActionId;\n(function (ActionId) {\n ActionId[\"EXECUTE_COMMAND\"] = \"execute-command\";\n ActionId[\"FILE_SELECTED\"] = \"file-selected\";\n})(ActionId || (ActionId = {}));\nfunction buildFormData(form, formData = new FormData(), parentKey = '') {\n Object.keys(form.controls).forEach(key => {\n const control = form.get(key);\n const formKey = parentKey ? `${parentKey}.${key}` : key;\n if (control instanceof FormGroup || control instanceof FormArray) {\n // 子のFormGroupやFormArrayを再帰的に処理\n buildFormData(control, formData, formKey);\n }\n else if (control instanceof FormControl) {\n // フォームの値を追加\n const value = control.value;\n if (value !== null && value !== undefined) {\n formData.append(formKey, value);\n }\n }\n });\n return formData;\n}\nfunction buildData(form, contentType) {\n if (contentType === 'multipart/form-data') {\n return buildFormData(form);\n }\n else {\n return form.getRawValue();\n }\n}\nexport function buildActions(hasPermission, invalid) {\n return hasPermission\n ? [{ id: ActionId.EXECUTE_COMMAND, name: '実行', disabled: invalid }]\n : [{ id: ActionId.EXECUTE_COMMAND, name: '実行権限がありません', disabled: true }];\n}\nlet CommandPageStore = class CommandPageStore extends InjectableComponent {\n static { CommandPageStore_1 = this; }\n static ActionId = ActionId;\n static DI = makeDI(CommandPageStore_1, () => {\n const dev = inject(MachinaDevService);\n return () => ({\n title: '',\n style: {\n width: 'var(--page-width-lv1)',\n },\n baseUrls: [],\n command: {\n id: '1',\n webApiRequest: {\n serverUrl: null,\n apiJsonUrl: null,\n path: '/users',\n method: 'GET',\n bodySchema: null,\n },\n },\n navEndActions: [],\n additionalFormFieldMap: (dev.isDevMode() ? {} : {\n 'id': { type: 'hidden' },\n '__typename': { type: 'hidden' },\n 'kind': { type: 'hidden' },\n }),\n });\n }, ['@xxmachina/components', 'pages', 'command']);\n static Config = CommandPageStore_1.DI.Config;\n static Initializer = CommandPageStore_1.DI.Initializer;\n static provideDefault() {\n return [\n CommandPageStore_1.DI.provideConfig(),\n CommandPageStore_1.provideDefaultInitializer(),\n CommandPageStore_1.provideDefaultEffects(),\n ];\n }\n static provideCustom() {\n return [\n CommandPageStore_1.provideDefault(),\n CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore_1.provideSetupInitializeQueryInitializer(),\n ];\n }\n static provideDefaultV2() {\n return [\n CommandPageStore_1.Config.provide(),\n CommandPageStore_1.provideDefaultInitializer(),\n CommandPageStore_1.provideDefaultEffects(),\n CommandPageStore_1.provideCommandIdFromRouteDataInitializer(),\n CommandPageStore_1.provideSetupInitializeQueryInitializer(),\n CommandPageStore_1.provideInitialFormValueFromQueryResult(),\n CommandPageStore_1.provideQueryFromRouteData(),\n ];\n }\n static provideDefaultInitializer() {\n return [\n CommandPageStore_1.providePatchFormFromRouteParamInitializer(),\n CommandPageStore_1.providePatchCommandFormValueFromCommandInitializer(),\n CommandPageStore_1.provideInitialFormValueFromQueryResult()\n ];\n }\n static provideDefaultEffects() {\n return [\n CommandPageStore_1.provideExecuteCommandEffect(),\n CommandPageStore_1.provideBackEffect(),\n QueryFeature.provideDefaultEffects(),\n ];\n }\n static provideCommandFromRouteParamInitializer(paramName = 'commandId') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const commandId = injectRouteParam(paramName);\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId())));\n });\n }\n static provideCommandIdFromRouteDataInitializer() {\n return CommandPageStore_1.Initializer.provide((store) => {\n const commandId = injectRouteData('commandId');\n const service = inject(CommandService);\n effect(() => applyToInput(store, 'command', service.getCommand(commandId())));\n });\n }\n static providePatchFormFromRouteParamInitializer() {\n return [\n CommandPageStore_1.Initializer.provide(store => {\n effect(() => store.form().patchValue(store.data()));\n }),\n ];\n }\n static providePatchCommandFormValueFromCommandInitializer() {\n return [\n CommandPageStore_1.Initializer.provide(store => {\n effect(() => {\n if (!store.command())\n return;\n store.feature.commandForm().patchValue({ ...store.command() });\n });\n })\n ];\n }\n static provideQueryIdFromRouteParam(key = 'queryId') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const queryId$ = injectRouteParam$(key);\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectOne$(Query, { id: queryId$ });\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(filter(({ query, params }) => !!query && !!params), map(({ query, params }) => QueryHelper.setup(query, params)), tap((query) => console.debug('[CommandPage] query:', query)), shareReplay(1)));\n effect(() => {\n console.debug('[CommandPage] setupQuery:', setupQuery());\n store.queryFeature.form.patchValue(setupQuery());\n });\n });\n }\n static provideQueryFromRouteData(key = 'query') {\n return CommandPageStore_1.Initializer.provide((store) => {\n const params$ = injectUnflattenRouteParam$('data');\n const query$ = injectRouteData$(key);\n const setupQuery = derivedAsync(() => combineLatest({\n query: query$,\n params: params$,\n }).pipe(filter(({ query, params }) => !!query), map(({ query, params }) => QueryHelper.setup(query, params)), shareReplay(1)));\n effect(() => { store.queryFeature.form.patchValue(setupQuery()); });\n });\n }\n static provideRouteParamsToDataInitializer(projector) {\n return CommandPageStore_1.Initializer.provide((store) => {\n const route = inject(ActivatedRoute);\n const data = derivedAsync(() => route.params.pipe(map(params => projector(params))));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n static provideRouteParamMapToDataInitializer(projector) {\n return CommandPageStore_1.Initializer.provide((store) => {\n const paramMap = injectRouteParamMap({ merge: true });\n const data = computed(() => projector(paramMap()));\n effect(() => applyToInput(store, 'data', data()));\n });\n }\n static provideSetupInitializeQueryInitializer() {\n return CommandPageStore_1.Initializer.provide((store) => {\n const initializeQuery = derivedAsync(() => combineLatest({\n initializeQuery: of(store.initializeQuery()),\n data: of(store.data())\n }).pipe(filter(({ initializeQuery, data }) => !!initializeQuery && !!data), map(({ initializeQuery, data }) => QueryHelper.setup(initializeQuery, data)), filter((initializeQuery) => !!initializeQuery), shareReplay(1)));\n effect(() => store.queryFeature.form.patchValue(initializeQuery()));\n });\n }\n static provideInitialFormValueFromQueryResult() {\n return CommandPageStore_1.Initializer.provide((store) => {\n effect(() => store.form().patchValue(store.queryFeature.result()));\n store.queryFeature.refresh();\n });\n }\n static provideExecuteCommandEffect() {\n return provideEffect(ActionId.EXECUTE_COMMAND, () => {\n const store = inject(CommandPageStore_1);\n const app = inject(AppService);\n const paramKeys = computed(() => EndpointHelper.extract(store.feature.path()));\n const resolvedParams = computed(() => pick(store.data(), paramKeys()));\n return () => {\n const resolvedEndpoint = EndpointHelper.resolve(store.feature.path(), resolvedParams());\n const data = buildData(store.form(), store.command()?.webApiRequest?.contentType);\n const command = merge(store.command(), store.feature.commandForm().getRawValue(), { webApiRequest: { path: resolvedEndpoint } });\n app.loading.await(() => {\n return store.feature.execute(command, data).then(() => {\n app.snackBar.open('成功しました。');\n // history.back();\n }).catch((error) => {\n console.error(error);\n app.snackBar.openError(error);\n });\n });\n };\n });\n }\n static provideBackEffect() {\n return provideEffect(FormTemplateStore.ActionId.BACK, () => {\n return () => history.back();\n });\n }\n static provideFileSelectedEffect() {\n return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {\n const store = inject(CommandPageStore_1);\n return (payload) => {\n store.form().patchValue({ file: payload.files?.[0] });\n };\n });\n }\n static provideDebugFormInitializer() {\n return CommandPageStore_1.Initializer.provide(() => {\n const store = inject(CommandPageStore_1);\n // FormGroupを再帰的に調べる関数(invalidなコントロールのみ)\n const getInvalidControls = (formGroup, path = '') => {\n let invalidControls = [];\n Object.keys(formGroup.controls).forEach(key => {\n const control = formGroup.controls[key];\n const currentPath = path ? `${path}.${key}` : key;\n // invalidなコントロールを記録\n if (control.invalid) {\n invalidControls.push({\n path: currentPath,\n errors: control.errors,\n value: control.value,\n status: control.status,\n valid: control.valid,\n invalid: control.invalid,\n dirty: control.dirty,\n touched: control.touched\n });\n }\n // FormGroupの場合は再帰的に調べる\n if (control.controls) {\n invalidControls = invalidControls.concat(getInvalidControls(control, currentPath));\n }\n });\n return invalidControls;\n };\n const formValue_ = derivedAsync(() => getValue$(store.form()));\n effect(() => {\n const formValue = formValue_();\n const form = untracked(() => store.form());\n console.log('[CommandPage] Form value changed:', formValue);\n console.log('[CommandPage] CommandForm valid:', form?.valid);\n console.log('[CommandPage] CommandForm status:', form?.status);\n if (form) {\n const invalidControls = getInvalidControls(form);\n const invalidPaths = invalidControls.map(control => control.path);\n console.log(`[CommandPage] Found ${invalidControls.length} INVALID controls:`);\n console.log('[CommandPage] INVALID PATHS:', invalidPaths);\n }\n });\n });\n }\n static provideSelectedFileUploadEffect(callbackFactory, { validator = () => null, getPath, }) {\n return provideEffect(CommandPageStore_1.ActionId.FILE_SELECTED, () => {\n const storage = inject(CloudStorageService);\n const app = inject(AppService);\n const callback = callbackFactory();\n const errorMessageResolver = injectErrorMessageResolver();\n return (payload) => {\n const file = payload.files?.[0];\n const errors = validator(file);\n if (errors && Object.keys(errors).length > 0) {\n app.snackBar.open(errorMessageResolver(errors));\n return;\n }\n return app.loading.await(() => {\n const path = getPath();\n return storage.upload(path, file).then(() => {\n app.snackBar.open('ファイルをアップロードしました');\n return storage.getDownloadUrl(path).then((imageUrl) => {\n return callback({ file, path, url: imageUrl });\n });\n }).catch((error) => {\n console.error(error);\n app.snackBar.open('ファイルのアップロードに失敗しました');\n });\n });\n };\n });\n }\n feature = inject(CommandFeature);\n config = CommandPageStore_1.Config.inject();\n queryFeature = inject(QueryFeature);\n style = input(_computed(() => this.config().style));\n #navStartActions = injectNavStartActionsV2();\n navStartActions = input(_computed(() => this.#navStartActions()));\n navEndActions = input(_computed(() => this.config().navEndActions));\n command = input(_computed(() => this.config().command));\n form = input(_computed(() => this.feature.form()));\n extractedFormFieldMap = input(_computed(() => this.feature.extractedFormFieldMap()));\n additionalFormFieldMap = input(_computed(() => this.config().additionalFormFieldMap));\n formFieldMap = input(_computed(() => ({\n ...this.extractedFormFieldMap(),\n ...this.additionalFormFieldMap()\n })));\n formFieldKeys = input(_computed(() => []));\n formFlatExcludes = input(_computed(() => []));\n _initializeQuery = injectRouteData('query');\n initializeQuery = input(_computed(() => this._initializeQuery()));\n _data = injectUnflattenRouteParam('data');\n data = input(_computed(() => this._data()));\n formInvalid = derivedAsync(() => getInvalid$(this.form()));\n title = input(_computed(() => this.config().title || this.feature.title()));\n #actions = derivedAsync(() => buildActions(this.feature.hasPermission(this.command()), this.formInvalid()));\n actions = input(_computed(() => this.#actions()));\n skip = injectRouteSkip();\n constructor() {\n super();\n CommandPageStore_1.Initializer.initializeStore(this);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPageStore, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: CommandPageStore, isStandalone: true, inputs: { style: { classPropertyName: \"style\", publicName: \"style\", isSignal: true, isRequired: false, transformFunction: null }, navStartActions: { classPropertyName: \"navStartActions\", publicName: \"navStartActions\", isSignal: true, isRequired: false, transformFunction: null }, navEndActions: { classPropertyName: \"navEndActions\", publicName: \"navEndActions\", isSignal: true, isRequired: false, transformFunction: null }, command: { classPropertyName: \"command\", publicName: \"command\", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, extractedFormFieldMap: { classPropertyName: \"extractedFormFieldMap\", publicName: \"extractedFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, additionalFormFieldMap: { classPropertyName: \"additionalFormFieldMap\", publicName: \"additionalFormFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, formFieldMap: { classPropertyName: \"formFieldMap\", publicName: \"formFieldMap\", isSignal: true, isRequired: false, transformFunction: null }, formFieldKeys: { classPropertyName: \"formFieldKeys\", publicName: \"formFieldKeys\", isSignal: true, isRequired: false, transformFunction: null }, formFlatExcludes: { classPropertyName: \"formFlatExcludes\", publicName: \"formFlatExcludes\", isSignal: true, isRequired: false, transformFunction: null }, initializeQuery: { classPropertyName: \"initializeQuery\", publicName: \"initializeQuery\", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: \"data\", publicName: \"data\", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });\n};\nCommandPageStore = CommandPageStore_1 = __decorate([\n TokenizedType(),\n __metadata(\"design:paramtypes\", [])\n], CommandPageStore);\nexport { CommandPageStore };\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPageStore, decorators: [{\n type: Directive,\n args: [{ standalone: true }]\n }], ctorParameters: () => [] });\nexport class CommandPage extends NgAtomicComponent {\n store = inject(CommandPageStore);\n route = inject(ActivatedRoute);\n app = inject(AppService);\n parentRouterOutletFrame = inject(RouterOutletFrame, { optional: true });\n onFileSelected(payload) {\n this.dispatch({ id: ActionId.FILE_SELECTED, payload });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPage, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.5\", type: CommandPage, isStandalone: true, selector: \"pages-command\", providers: [\n CommandFeature,\n QueryFeature,\n QueryGraphqlSchemaFeature\n ], usesInheritance: true, hostDirectives: [{ directive: CommandPageStore, inputs: [\"style\", \"style\", \"navEndActions\", \"navEndActions\", \"command\", \"command\", \"form\", \"form\", \"additionalFormFieldMap\", \"additionalFormFieldMap\", \"formFieldMap\", \"formFieldMap\", \"formFlatExcludes\", \"formFlatExcludes\", \"initializeQuery\", \"initializeQuery\", \"data\", \"data\", \"actions\", \"actions\"] }], ngImport: i0, template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [title]=\"store.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab>\n <groups-command-form (action)=\"dispatch($event)\"/>\n </ng-template>\n <ng-template #tab>\n <groups-query-form\n [form]=\"store.queryFeature.form\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `, isInline: true, styles: [\":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-cSL5: var(--page-width-lv1);--primary-color-SCOPED-IN-command-cSL5: var(--primary-color);--on-primary-color-SCOPED-IN-command-cSL5: var(--on-primary-color);--background-color-SCOPED-IN-command-cSL5: var(--background-color);--on-background-color-SCOPED-IN-command-cSL5: var(--on-background-color)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-cSL5)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-cSL5);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-cSL5);--background-color: var(--background-color-SCOPED-IN-command-cSL5);--on-background-color: var(--on-background-color-SCOPED-IN-command-cSL5)}\\n\"], dependencies: [{ kind: \"component\", type: RouterOutletFrame, selector: \"frames-router-outlet\", outputs: [\"events\"] }, { kind: \"component\", type: FormTemplate, selector: \"templates-form\" }, { kind: \"component\", type: TabsFrame, selector: \"frames-tabs\", inputs: [\"labels\"], outputs: [\"selectedTabIndexChange\"] }, { kind: \"component\", type: CommandFormGroup, selector: \"groups-command-form\", inputs: [\"apiJsonUrls\"] }, { kind: \"component\", type: QueryFormGroup, selector: \"groups-query-form\", inputs: [\"form\", \"keyActions\"] }] });\n}\n__decorate([\n Effect(FormTemplateStore.ActionId.FILE_SELECTED),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object]),\n __metadata(\"design:returntype\", void 0)\n], CommandPage.prototype, \"onFileSelected\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: CommandPage, decorators: [{\n type: Component,\n args: [{ selector: 'pages-command', imports: [\n RouterOutletFrame,\n FormTemplate,\n TabsFrame,\n CommandFormGroup,\n QueryFormGroup\n ], providers: [\n CommandFeature,\n QueryFeature,\n QueryGraphqlSchemaFeature\n ], template: `\n <frames-router-outlet [skip]=\"store.skip()\" (action)=\"dispatch($event)\">\n <templates-form\n [form]=\"store.form()\"\n [style]=\"store.style()\"\n [fieldMap]=\"store.formFieldMap()\"\n [fieldKeys]=\"store.formFieldKeys()\"\n [formFlatExcludes]=\"store.formFlatExcludes()\"\n [title]=\"store.title()\"\n [navStartActions]=\"store.navStartActions()\"\n [navEndActions]=\"store.navEndActions()\"\n [actions]=\"store.actions()\"\n (action)=\"dispatch($event)\"\n >\n <frames-tabs [labels]=\"['Command', 'InitializeQuery']\" dashboard>\n <ng-template #tab>\n <groups-command-form (action)=\"dispatch($event)\"/>\n </ng-template>\n <ng-template #tab>\n <groups-query-form\n [form]=\"store.queryFeature.form\"\n (action)=\"dispatch($event)\"\n />\n </ng-template>\n </frames-tabs> \n </templates-form>\n </frames-router-outlet>\n `, hostDirectives: [\n {\n directive: CommandPageStore,\n inputs: [\n 'style',\n 'navEndActions',\n 'command',\n 'form',\n 'additionalFormFieldMap',\n 'formFieldMap',\n 'formFlatExcludes',\n 'initializeQuery',\n 'data',\n 'actions',\n ]\n },\n ], styles: [\":host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-command-cSL5: var(--page-width-lv1);--primary-color-SCOPED-IN-command-cSL5: var(--primary-color);--on-primary-color-SCOPED-IN-command-cSL5: var(--on-primary-color);--background-color-SCOPED-IN-command-cSL5: var(--background-color);--on-background-color-SCOPED-IN-command-cSL5: var(--on-background-color)}:host .template{--first-content-height: 0px;width:var(--page-width-lv1-SCOPED-IN-command-cSL5)}:host .template div[dashboard]{padding:0;box-sizing:border-box}:host *{--primary-color: var(--primary-color-SCOPED-IN-command-cSL5);--on-primary-color: var(--on-primary-color-SCOPED-IN-command-cSL5);--background-color: var(--background-color-SCOPED-IN-command-cSL5);--on-background-color: var(--on-background-color-SCOPED-IN-command-cSL5)}\\n\"] }]\n }], propDecorators: { onFileSelected: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5wYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQHh4bWFjaGluYS9jb21wb25lbnRzL3NyYy9saWIvcGFnZXMvY29tbWFuZC9jb21tYW5kLnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVksU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoSixPQUFPLEVBQUUsY0FBYyxFQUFvQixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM00sT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FB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LEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztJQUdyRSxjQUFjLENBQUMsT0FBTztRQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO3VHQVRVLFdBQVc7MkZBQVgsV0FBVyw0REFwRFg7WUFDVCxjQUFjO1lBQ2QsWUFBWTtZQUNaLHlCQUF5QjtTQUMxQix1REEvV1UsZ0JBQWdCLHlVQWdYakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxvM0JBdENDLGlCQUFpQixzRkFDakIsWUFBWSwyREFDWixTQUFTLGlIQUNULGdCQUFnQix5RkFDaEIsY0FBYzs7QUE2RE47SUFEVCxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQzs7OztpREFHaEQ7MkZBVFUsV0FBVztrQkE3RHZCLFNBQVM7K0JBQ0UsZUFBZSxXQUNoQjt3QkFDUCxpQkFBaUI7d0JBQ2pCLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2YsYUFDVTt3QkFDVCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1oseUJBQXlCO3FCQUMxQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsa0JBRWU7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGdCQUFnQjs0QkFDM0IsTUFBTSxFQUFFO2dDQUNOLE9BQU87Z0NBQ1AsZUFBZTtnQ0FDZixTQUFTO2dDQUNULE1BQU07Z0NBQ04sd0JBQXdCO2dDQUN4QixjQUFjO2dDQUNkLGtCQUFrQjtnQ0FDbEIsaUJBQWlCO2dDQUNqQixNQUFNO2dDQUNOLFNBQVM7NkJBQ1Y7eUJBQ0Y7cUJBQ0Y7OEJBU1MsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBQcm92aWRlciwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck91dGxldEZyYW1lIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL2ZyYW1lcy9yb3V0ZXItb3V0bGV0JztcbmltcG9ydCB7IENvbW1hbmRTZXJ2aWNlIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL3NlcnZpY2VzL2NvbW1hbmQnO1xuaW1wb3J0IHsgX2NvbXB1dGVkLCBBY3Rpb24sIGFwcGx5VG9JbnB1dCwgRWZmZWN0LCBJbmplY3RhYmxlQ29tcG9uZW50LCBOZ0F0b21pY0NvbXBvbmVudCwgcHJvdmlkZUVmZmVjdCwgVG9rZW5pemVkVHlwZSB9IGZyb20gJ0BuZy1hdG9taWMvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXAsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBGb3JtVGVtcGxhdGUsIEZvcm1UZW1wbGF0ZVN0b3JlIH0gZnJvbSAnQG5nLWF0b21pYy9jb21wb25lbnRzL3RlbXBsYXRlcy9mb3JtJztcbmltcG9ydCB7IGdldEludmFsaWQkLCBnZXRWYWx1ZSQsIGluamVjdFJvdXRlRGF0YSwgaW5qZWN0Um91dGVEYXRhJCwgaW5qZWN0Um91dGVQYXJhbSwgaW5qZWN0Um91dGVQYXJhbSQsIGluamVjdFJvdXRlUGFyYW1NYXAsIGluamVjdFJvdXRlU2tpcCwgaW5qZWN0VW5mbGF0dGVuUm91dGVQYXJhbSQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgeyBtYXAsIHRhcCwgZmlsdGVyLCBjb21iaW5lTGF0ZXN0LCBzaGFyZVJlcGxheSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1GaWVsZE1hcCB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL3NtYXJ0LWZpZWxkJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9hcHAnO1xuaW1wb3J0IHsgaW5qZWN0TmF2U3RhcnRBY3Rpb25zVjIsIG1ha2VESSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpJztcbmltcG9ydCB7IFF1ZXJ5LCBRdWVyeUhlbHBlciB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2RvbWFpbi9tb2RlbHMnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ0B4eG1hY2hpbmEvY29tbW9uL2RvbWFpbi9tb2RlbHMnO1xuaW1wb3J0IHsgaW5qZWN0VW5mbGF0dGVuUm91dGVQYXJhbSB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3V0aWxzJztcbmltcG9ydCB7IG1lcmdlLCBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGluamVjdE9uZSQgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zdG9yZXMvZW50aXRpZXMnO1xuaW1wb3J0IHsgTWFjaGluYURldlNlcnZpY2UgfSBmcm9tICdAeHhtYWNoaW5hL2NvbXBvbmVudHMvc2VydmljZXMvZGVidWcnO1xuaW1wb3J0IHsgRW5kcG9pbnRIZWxwZXIgfSBmcm9tICdAeHhtYWNoaW5hL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IGRlcml2ZWRBc3luYyB9IGZyb20gJ25neHRlbnNpb24vZGVyaXZlZC1hc3luYyc7XG5pbXBvcnQgeyBDb21tYW5kRmVhdHVyZSB9IGZyb20gJ0B4eG1hY2hpbmEvY29tcG9uZW50cy9mZWF0dXJlcy9jb21tYW5kJztcbmltcG9ydCB7IFRhYnNGcmFtZSB9IGZyb20gJ0BuZy1hdG9taWMvY29tcG9uZW50cy9mcmFtZXMvdGFicyc7XG5pbXBvcnQgeyBRdWVyeUZvcm1Hcm91cCB9IGZyb20gJ0B4eG1hY2hpbmEvY29tcG9uZW50cy9ncm91cHMvcXVlcnktZm9ybSc7XG5pbXBvcnQgeyBDb21tYW5kRm9ybUdyb3VwIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2dyb3Vwcy9jb21tYW5kLWZvcm0nO1xuaW1wb3J0IHsgUXVlcnlGZWF0dXJlLCBRdWVyeUdyYXBocWxTY2hlbWFGZWF0dXJlIH0gZnJvbSAnQHh4bWFjaGluYS9jb21wb25lbnRzL2ZlYXR1cmVzL3F1ZXJ5JztcbmltcG9ydCB7IENsb3VkU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvY2xvdWQtc3RvcmFnZSc7XG5pbXBvcnQgeyBpbmplY3RFcnJvck1lc3NhZ2VSZXNvbHZlciB9IGZyb20gJ0BuZy1hdG9taWMvY29tbW9uL3BpcGVzL2Vycm9yJztcblxuZW51bSBBY3Rpb25JZCB7XG4gIEVYRUNVVEVfQ09NTUFORCA9ICdleGVjdXRlLWNvbW1hbmQnLFxuICBGSUxFX1NFTEVDVEVEID0gJ2ZpbGUtc2VsZWN0ZWQnLFxufVxuXG5mdW5jdGlvbiBidWlsZEZvcm1EYXRhKGZvcm06IEZvcm1Hcm91cCB8IEZvcm1BcnJheSwgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCksIHBhcmVudEtleSA9ICcnKTogRm9ybURhdGEge1xuICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgY29uc3QgY29udHJvbCA9IGZvcm0uZ2V0KGtleSk7XG4gICAgY29uc3QgZm9ybUtleSA9IHBhcmVudEtleSA/IGAke3BhcmVudEtleX0uJHtrZXl9YCA6IGtleTtcblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwIHx8IGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIC8vIOWtkOOBrkZvcm1Hcm91cOOChEZvcm1BcnJheeOCkuWGjeW4sOeahOOBq+WHpueQhlxuICAgICAgYnVpbGRGb3JtRGF0YShjb250cm9sLCBmb3JtRGF0YSwgZm9ybUtleSk7XG4gICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcbiAgICAgIC8vIOODleOCqeODvOODoOOBruWApOOCkui/veWKoFxuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGZvcm1LZXksIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmb3JtRGF0YTtcbn1cblxuZnVuY3Rpb24gYnVpbGREYXRhKGZvcm06IEFic3RyYWN0Q29udHJvbCwgY29udGVudFR5cGU6IHN0cmluZykge1xuICBpZiAoY29udGVudFR5cGUgPT09ICdtdWx0aXBhcnQvZm9ybS1kYXRhJykge1xuICAgIHJldHVybiBidWlsZEZvcm1EYXRhKGZvcm0gYXMgRm9ybUdyb3VwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZm9ybS5nZXRSYXdWYWx1ZSgpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFjdGlvbnMoaGFzUGVybWlzc2lvbjogYm9vbGVhbiwgaW52YWxpZDogYm9vbGVhbik6IEFjdGlvbltdIHtcbiAgcmV0dXJuIGhhc1Blcm1pc3Npb25cbiAgICA/IFt7IGlkOiBBY3Rpb25JZC5FWEVDVVRFX0NPTU1BTkQsIG5hbWU6ICflrp/ooYwnLCBkaXNhYmxlZDogaW52YWxpZCB9XVxuICAgIDogW3sgaWQ6IEFjdGlvbklkLkVYRUNVVEVfQ09NTUFORCwgbmFtZTogJ+Wun+ihjOaoqemZkOOBjOOBguOCiuOBvuOBm+OCkycsIGRpc2FibGVkOiB0cnVlIH1dXG59XG5cbkBUb2tlbml6ZWRUeXBlKClcbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgQ29tbWFuZFBhZ2VTdG9yZSBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQge1xuICBzdGF0aWMgcmVhZG9ubHkgQWN0aW9uSWQgPSBBY3Rpb25JZDtcbiAgc3RhdGljIHJlYWRvbmx5IERJID0gbWFrZURJKENvbW1hbmRQYWdlU3RvcmUsICgpID0+IHtcbiAgICBjb25zdCBkZXYgPSBpbmplY3QoTWFjaGluYURldlNlcnZpY2UpO1xuICAgIHJldHVybiAoKSA9PiAoe1xuICAgICAgdGl0bGU6ICcnIGFzIHN0cmluZyxcbiAgICAgIHN0eWxlOiB7XG4gICAgICAgIHdpZHRoOiAndmFyKC0tcGFnZS13aWR0aC1sdjEpJyxcbiAgICAgIH0sXG4gICAgICBiYXNlVXJsczogW10gYXMgc3RyaW5nW10sXG4gICAgICBjb21tYW5kOiA8Q29tbWFuZD57XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIHdlYkFwaVJlcXVlc3Q6IHtcbiAgICAgICAgICBzZXJ2ZXJVcmw6IG51bGwsXG4gICAgICAgICAgYXBpSnNvblVybDogbnVsbCxcbiAgICAgICAgICBwYXRoOiAnL3VzZXJzJyxcbiAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgIGJvZHlTY2hlbWE6IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbmF2RW5kQWN0aW9uczogPEFjdGlvbltdPltdLFxuICAgICAgYWRkaXRpb25hbEZvcm1GaWVsZE1hcDogPEZvcm1GaWVsZE1hcD4oZGV2LmlzRGV2TW9kZSgpID8ge30gOiB7XG4gICAgICAgICdpZCc6IHsgdHlwZTogJ2hpZGRlbicgfSxcbiAgICAgICAgJ19fdHlwZW5hbWUnOiB7IHR5cGU6ICdoaWRkZW4nIH0sXG4gICAgICAgICdraW5kJzogeyB0eXBlOiAnaGlkZGVuJyB9LFxuICAgICAgfSksXG4gICAgfSk7XG4gIH0sIFsnQHh4bWFjaGluYS9jb21wb25lbnRzJywgJ3BhZ2VzJywgJ2NvbW1hbmQnXSk7XG4gIHN0YXRpYyByZWFkb25seSBDb25maWcgPSBDb21tYW5kUGFnZVN0b3JlLkRJLkNvbmZpZztcbiAgc3RhdGljIHJlYWRvbmx5IEluaXRpYWxpemVyID0gQ29tbWFuZFBhZ2VTdG9yZS5ESS5Jbml0aWFsaXplcjtcblxuICBzdGF0aWMgcHJvdmlkZURlZmF1bHQoKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUuREkucHJvdmlkZUNvbmZpZygpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlRGVmYXVsdEluaXRpYWxpemVyKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVEZWZhdWx0RWZmZWN0cygpLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUN1c3RvbSgpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlRGVmYXVsdCgpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlQ29tbWFuZElkRnJvbVJvdXRlRGF0YUluaXRpYWxpemVyKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVTZXR1cEluaXRpYWxpemVRdWVyeUluaXRpYWxpemVyKCksXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlRGVmYXVsdFYyKCk6IFByb3ZpZGVyW10ge1xuICAgIHJldHVybiBbXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLkNvbmZpZy5wcm92aWRlKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVEZWZhdWx0SW5pdGlhbGl6ZXIoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZURlZmF1bHRFZmZlY3RzKCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVDb21tYW5kSWRGcm9tUm91dGVEYXRhSW5pdGlhbGl6ZXIoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZVNldHVwSW5pdGlhbGl6ZVF1ZXJ5SW5pdGlhbGl6ZXIoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZUluaXRpYWxGb3JtVmFsdWVGcm9tUXVlcnlSZXN1bHQoKSxcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZVF1ZXJ5RnJvbVJvdXRlRGF0YSgpLFxuICAgIF07XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZURlZmF1bHRJbml0aWFsaXplcigpOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlUGF0Y2hGb3JtRnJvbVJvdXRlUGFyYW1Jbml0aWFsaXplcigpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlUGF0Y2hDb21tYW5kRm9ybVZhbHVlRnJvbUNvbW1hbmRJbml0aWFsaXplcigpLFxuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5wcm92aWRlSW5pdGlhbEZvcm1WYWx1ZUZyb21RdWVyeVJlc3VsdCgpXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlRGVmYXVsdEVmZmVjdHMoKTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUucHJvdmlkZUV4ZWN1dGVDb21tYW5kRWZmZWN0KCksXG4gICAgICBDb21tYW5kUGFnZVN0b3JlLnByb3ZpZGVCYWNrRWZmZWN0KCksXG4gICAgICBRdWVyeUZlYXR1cmUucHJvdmlkZURlZmF1bHRFZmZlY3RzKCksXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlQ29tbWFuZEZyb21Sb3V0ZVBhcmFtSW5pdGlhbGl6ZXIocGFyYW1OYW1lID0gJ2NvbW1hbmRJZCcpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRJZCA9IGluamVjdFJvdXRlUGFyYW0ocGFyYW1OYW1lKTtcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBpbmplY3QoQ29tbWFuZFNlcnZpY2UpO1xuICAgICAgZWZmZWN0KCgpID0+IGFwcGx5VG9JbnB1dChzdG9yZSwgJ2NvbW1hbmQnLCBzZXJ2aWNlLmdldENvbW1hbmQoY29tbWFuZElkKCkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUNvbW1hbmRJZEZyb21Sb3V0ZURhdGFJbml0aWFsaXplcigpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IGNvbW1hbmRJZCA9IGluamVjdFJvdXRlRGF0YTxzdHJpbmc+KCdjb21tYW5kSWQnKTtcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBpbmplY3QoQ29tbWFuZFNlcnZpY2UpO1xuICAgICAgZWZmZWN0KCgpID0+IGFwcGx5VG9JbnB1dChzdG9yZSwgJ2NvbW1hbmQnLCBzZXJ2aWNlLmdldENvbW1hbmQoY29tbWFuZElkKCkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVBhdGNoRm9ybUZyb21Sb3V0ZVBhcmFtSW5pdGlhbGl6ZXIoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZShzdG9yZSA9PiB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiBzdG9yZS5mb3JtKCkucGF0Y2hWYWx1ZShzdG9yZS5kYXRhKCkpKTtcbiAgICAgIH0pLFxuICAgIF1cbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlUGF0Y2hDb21tYW5kRm9ybVZhbHVlRnJvbUNvbW1hbmRJbml0aWFsaXplcigpIHtcbiAgICByZXR1cm4gW1xuICAgICAgQ29tbWFuZFBhZ2VTdG9yZS5Jbml0aWFsaXplci5wcm92aWRlKHN0b3JlID0+IHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICBpZiAoIXN0b3JlLmNvbW1hbmQoKSkgcmV0dXJuO1xuICAgICAgICAgIHN0b3JlLmZlYXR1cmUuY29tbWFuZEZvcm0oKS5wYXRjaFZhbHVlKHsgLi4uc3RvcmUuY29tbWFuZCgpIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlUXVlcnlJZEZyb21Sb3V0ZVBhcmFtKGtleSA9ICdxdWVyeUlkJyk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gQ29tbWFuZFBhZ2VTdG9yZS5Jbml0aWFsaXplci5wcm92aWRlKChzdG9yZSkgPT4ge1xuICAgICAgY29uc3QgcXVlcnlJZCQgPSBpbmplY3RSb3V0ZVBhcmFtJChrZXkpO1xuICAgICAgY29uc3QgcGFyYW1zJCA9IGluamVjdFVuZmxhdHRlblJvdXRlUGFyYW0kKCdkYXRhJyk7XG4gICAgICBjb25zdCBxdWVyeSQgPSBpbmplY3RPbmUkKFF1ZXJ5LCB7IGlkOiBxdWVyeUlkJCB9KTtcbiAgICAgIGNvbnN0IHNldHVwUXVlcnkgPSBkZXJpdmVkQXN5bmMoKCkgPT4gY29tYmluZUxhdGVzdCh7XG4gICAgICAgIHF1ZXJ5OiBxdWVyeSQsXG4gICAgICAgIHBhcmFtczogcGFyYW1zJCxcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIGZpbHRlcigoeyBxdWVyeSwgcGFyYW1zIH0pID0+ICEhcXVlcnkgJiYgISFwYXJhbXMpLFxuICAgICAgICBtYXAoKHsgcXVlcnksIHBhcmFtcyB9KSA9PiBRdWVyeUhlbHBlci5zZXR1cChxdWVyeSwgcGFyYW1zKSksXG4gICAgICAgIHRhcCgocXVlcnkpID0+IGNvbnNvbGUuZGVidWcoJ1tDb21tYW5kUGFnZV0gcXVlcnk6JywgcXVlcnkpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICApKTtcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZGVidWcoJ1tDb21tYW5kUGFnZV0gc2V0dXBRdWVyeTonLCBzZXR1cFF1ZXJ5KCkpO1xuICAgICAgICBzdG9yZS5xdWVyeUZlYXR1cmUuZm9ybS5wYXRjaFZhbHVlKHNldHVwUXVlcnkoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlUXVlcnlGcm9tUm91dGVEYXRhKGtleSA9ICdxdWVyeScpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyQgPSBpbmplY3RVbmZsYXR0ZW5Sb3V0ZVBhcmFtJCgnZGF0YScpO1xuICAgICAgY29uc3QgcXVlcnkkID0gaW5qZWN0Um91dGVEYXRhJDxRdWVyeT4oa2V5KTtcbiAgICAgIGNvbnN0IHNldHVwUXVlcnkgPSBkZXJpdmVkQXN5bmMoKCkgPT4gY29tYmluZUxhdGVzdCh7XG4gICAgICAgIHF1ZXJ5OiBxdWVyeSQsXG4gICAgICAgIHBhcmFtczogcGFyYW1zJCxcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIGZpbHRlcigoeyBxdWVyeSwgcGFyYW1zIH0pID0+ICEhcXVlcnkpLFxuICAgICAgICBtYXAoKHsgcXVlcnksIHBhcmFtcyB9KSA9PiBRdWVyeUhlbHBlci5zZXR1cChxdWVyeSwgcGFyYW1zKSksXG4gICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgKSk7XG4gICAgICBlZmZlY3QoKCkgPT4geyBzdG9yZS5xdWVyeUZlYXR1cmUuZm9ybS5wYXRjaFZhbHVlKHNldHVwUXVlcnkoKSk7IH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIHByb3ZpZGVSb3V0ZVBhcmFtc1RvRGF0YUluaXRpYWxpemVyKHByb2plY3RvcjogKHBhcmFtczogUGFyYW1zKSA9PiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBkZXJpdmVkQXN5bmMoKCkgPT4gcm91dGUucGFyYW1zLnBpcGUobWFwKHBhcmFtcyA9PiBwcm9qZWN0b3IocGFyYW1zKSkpKTtcbiAgICAgIGVmZmVjdCgoKSA9PiBhcHBseVRvSW5wdXQoc3RvcmUsICdkYXRhJywgZGF0YSgpKSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZVJvdXRlUGFyYW1NYXBUb0RhdGFJbml0aWFsaXplcihwcm9qZWN0b3I6IChwYXJhbXM6IFBhcmFtTWFwKSA9PiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtTWFwID0gaW5qZWN0Um91dGVQYXJhbU1hcCh7bWVyZ2U6IHRydWV9KTtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb21wdXRlZCgoKSA9PiBwcm9qZWN0b3IocGFyYW1NYXAoKSkpO1xuICAgICAgZWZmZWN0KCgpID0+IGFwcGx5VG9JbnB1dChzdG9yZSwgJ2RhdGEnLCBkYXRhKCkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlU2V0dXBJbml0aWFsaXplUXVlcnlJbml0aWFsaXplcigpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxpemVRdWVyeSA9IGRlcml2ZWRBc3luYygoKSA9PiBjb21iaW5lTGF0ZXN0KHtcbiAgICAgICAgaW5pdGlhbGl6ZVF1ZXJ5OiBvZihzdG9yZS5pbml0aWFsaXplUXVlcnkoKSksXG4gICAgICAgIGRhdGE6IG9mKHN0b3JlLmRhdGEoKSlcbiAgICAgIH0pLnBpcGUoXG4gICAgICAgIGZpbHRlcigoeyBpbml0aWFsaXplUXVlcnksIGRhdGEgfSkgPT4gISFpbml0aWFsaXplUXVlcnkgJiYgISFkYXRhKSxcbiAgICAgICAgbWFwKCh7IGluaXRpYWxpemVRdWVyeSwgZGF0YSB9KSA9PiBRdWVyeUhlbHBlci5zZXR1cChpbml0aWFsaXplUXVlcnksIGRhdGEpKSxcbiAgICAgICAgZmlsdGVyKChpbml0aWFsaXplUXVlcnkpID0+ICEhaW5pdGlhbGl6ZVF1ZXJ5KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICApKTtcbiAgICAgIFxuICAgICAgZWZmZWN0KCgpID0+IHN0b3JlLnF1ZXJ5RmVhdHVyZS5mb3JtLnBhdGNoVmFsdWUoaW5pdGlhbGl6ZVF1ZXJ5KCkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlSW5pdGlhbEZvcm1WYWx1ZUZyb21RdWVyeVJlc3VsdCgpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIENvbW1hbmRQYWdlU3RvcmUuSW5pdGlhbGl6ZXIucHJvdmlkZSgoc3RvcmUpID0+IHtcbiAgICAgIGVmZmVjdCgoKSA9PiBzdG9yZS5mb3JtKCkucGF0Y2hWYWx1ZShzdG9yZS5xdWVyeUZlYXR1cmUucmVzdWx0KCkpKTtcbiAgICAgIHN0b3JlLnF1ZXJ5RmVhdHVyZS5yZWZyZXNoKCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUV4ZWN1dGVDb21tYW5kRWZmZWN0KCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gcHJvdmlkZUVmZmVjdChBY3Rpb25JZC5FWEVDVVRFX0NPTU1BTkQsICgpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KENvbW1hbmRQYWdlU3RvcmUpO1xuICAgICAgY29uc3QgYXBwID0gaW5qZWN0KEFwcFNlcnZpY2UpO1xuICAgICAgY29uc3QgcGFyYW1LZXlzID0gY29tcHV0ZWQoKCkgPT4gRW5kcG9pbnRIZWxwZXIuZXh0cmFjdChzdG9yZS5mZWF0dXJlLnBhdGgoKSkpO1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXJhbXMgPSBjb21wdXRlZCgoKSA9PiBwaWNrKHN0b3JlLmRhdGEoKSwgcGFyYW1LZXlzKCkpKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRFbmRwb2ludCA9IEVuZHBvaW50SGVscGVyLnJlc29sdmUoc3RvcmUuZmVhdHVyZS5wYXRoKCksIHJlc29sdmVkUGFyYW1zKCkpO1xuICAgICAgICBjb25zdCBkYXRhID0gYnVpbGREYXRhKHN0b3JlLmZvcm0oKSwgc3RvcmUuY29tbWFuZCgpPy53ZWJBcGlSZXF1ZXN0Py5jb250ZW50VHlwZSk7XG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBtZXJnZShcbiAgICAgICAgICBzdG9yZS5jb21tYW5kKCksXG4gICAgICAgICAgc3RvcmUuZmVhdHVyZS5jb21tYW5kRm9ybSgpLmdldFJhd1ZhbHVlKCksXG4gICAgICAgICAgeyB3ZWJBcGlSZXF1ZXN0OiB7IHBhdGg6IHJlc29sdmVkRW5kcG9pbnQgfSB9LFxuICAgICAgICApO1xuICAgICAgICBhcHAubG9hZGluZy5hd2FpdCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JlLmZlYXR1cmUuZXhlY3V0ZShjb21tYW5kLCBkYXRhKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGFwcC5zbmFja0Jhci5vcGVuKCfmiJDlip/jgZfjgb7jgZfjgZ/jgIInKTtcbiAgICAgICAgICAgIC8vIGhpc3RvcnkuYmFjaygpO1xuICAgICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICBhcHAuc25hY2tCYXIub3BlbkVycm9yKGVycm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZUJhY2tFZmZlY3QoKTogUHJvdmlkZXIge1xuICAgIHJldHVybiBwcm92aWRlRWZmZWN0KEZvcm1UZW1wbGF0ZVN0b3JlLkFjdGlvbklkLkJBQ0ssICgpID0+IHtcbiAgICAgIHJldHVybiAoKSA9PiBoaXN0b3J5LmJhY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlRmlsZVNlbGVjdGVkRWZmZWN0KCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gcHJvdmlkZUVmZmVjdChDb21tYW5kUGFnZVN0b3JlLkFjdGlvbklkLkZJTEVfU0VMRUNURUQsICgpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KENvbW1hbmRQYWdlU3RvcmUpO1xuICAgICAgcmV0dXJuIChwYXlsb2FkKSA9PiB7XG4gICAgICAgIHN0b3JlLmZvcm0oKS5wYXRjaFZhbHVlKHsgZmlsZTogcGF5bG9hZC5maWxlcz8uWzBdIH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgcHJvdmlkZURlYnVnRm9ybUluaXRpYWxpemVyKCk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gQ29tbWFuZFBhZ2VTdG9yZS5Jbml0aWFsaXplci5wcm92aWRlKCgpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KENvbW1hbmRQYWdlU3RvcmUpO1xuICAgICAgXG4gICAgICAvLyBGb3JtR3JvdXDjgpLlho3luLDnmoTjgavoqr/jgbnjgovplqLmlbDvvIhpbnZhbGlk44Gq44Kz44Oz44OI44Ot44O844Or44Gu44G/77yJXG4gICAgICBjb25zdCBnZXRJbnZhbGlkQ29udHJvbHMgPSAoZm9ybUdyb3VwOiBhbnksIHBhdGggPSAnJykgPT4ge1xuICAgICAgICBsZXQgaW52YWxpZENvbnRyb2xzOiBhbnlbXSA9IFtdO1xuICAgICAgICBcbiAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1trZXldO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGF0aCA/IGAke3BhdGh9LiR7a2V5fWAgOiBrZXk7XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gaW52YWxpZOOBquOCs+ODs+ODiOODreODvOODq+OCkuiomOmMslxuICAgICAgICAgIGlmIChjb250cm9sLmludmFsaWQpIHtcbiAgICAgICAgICAgIGludmFsaWRDb250cm9scy5wdXNoKHtcbiAgICAgICAgICAgICAgcGF0aDogY3VycmVudFBhdGgsXG4gICAgICAgICAgICAgIGVycm9yczogY29udHJvbC5lcnJvcnMsXG4gICAgICAgICAgICAgIHZhbHVlOiBjb250cm9sLnZhbHVlLFxuICAgICAgICAgICAgICBzdGF0dXM6IGNvbnRyb2wuc3RhdHVzLFxuICAgICAgICAgICAgICB2YWxpZDogY29udHJvbC52YWxpZCxcbiAgICAgICAgICAgICAgaW52YWxpZDogY29udHJvbC5pbnZhbGlkLFxuICAgICAgICAgICAgICBkaXJ0eTogY29udHJvbC5kaXJ0eSxcbiAgICAgICAgICAgICAgdG91Y2hlZDogY29udHJvbC50b3VjaGVkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgXG4gICAgICAgICAgLy8gRm9ybUdyb3Vw44Gu5aC05ZCI44Gv5YaN5biw55qE44Gr6Kq/44G544KLXG4gICAgICAgICAgaWYgKGNvbnRyb2wuY29udHJvbHMpIHtcbiAgICAgICAgICAgIGludmFsaWRDb250cm9scyA9IGludmFsaWRDb250cm9scy5jb25jYXQoZ2V0SW52YWxpZENvbnRyb2xzKGNvbnRyb2wsIGN1cnJlbnRQYXRoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiBpbnZhbGlkQ29udHJvbHM7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBmb3JtVmFsdWVfID0gZGVyaXZlZEFzeW5jKCgpID0+IGdldFZhbHVlJChzdG9yZS5mb3JtKCkpKTtcbiAgICAgIFxuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gZm9ybVZhbHVlXygpO1xuICAgICAgICBjb25zdCBmb3JtID0gdW50cmFja2VkKCgpID0+IHN0b3JlLmZvcm0oKSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbQ29tbWFuZFBhZ2VdIEZvcm0gdmFsdWUgY2hhbmdlZDonLCBmb3JtVmFsdWUpO1xuICAgICAgICBjb25zb2xlLmxvZygnW0NvbW1hbmRQYWdlXSBDb21tYW5kRm9ybSB2YWxpZDonLCBmb3JtPy52YWxpZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdbQ29tbWFuZFBhZ2VdIENvbW1hbmRGb3JtIHN0YXR1czonLCBmb3JtPy5zdGF0dXMpO1xuICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgIGNvbnN0IGludmFsaWRDb250cm9scyA9IGdldEludmFsaWRDb250cm9scyhmb3JtKTtcbiAgICAgICAgICBjb25zdCBpbnZhbGlkUGF0aHMgPSBpbnZhbGlkQ29udHJvbHMubWFwKGNvbnRyb2wgPT4gY29udHJvbC5wYXRoKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW0NvbW1hbmRQYWdlXSBGb3VuZCAke2ludmFsaWRDb250cm9scy5sZW5ndGh9IElOVkFMSUQgY29udHJvbHM6YCk7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1tDb21tYW5kUGFnZV0gSU5WQUxJRCBQQVRIUzonLCBpbnZhbGlkUGF0aHMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBwcm92aWRlU2VsZWN0ZWRGaWxlVXBsb2FkRWZmZWN0KFxuICAgIGNhbGxiYWNrRmFjdG9yeTogKCkgPT4gKHJlc3VsdDoge2ZpbGU6IEZpbGUsIHBhdGg6IHN0cmluZywgdXJsOiBzdHJpbmd9KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPixcbiAgICB7XG4gICAgICB2YWxpZGF0b3IgPSAoKSA9PiBudWxsLFxuICAgICAgZ2V0UGF0aCxcbiAgICB9OiB7XG4gICAgICB2YWxpZGF0b3I/OiAoZmlsZTogRmlsZSkgPT4ge3R5cGU6IGJvb2xlYW4sIHNpemU6IGJvb2xlYW59IHwgbnVsbCxcbiAgICAgIGdldFBhdGg6ICgpID0+IHN0cmluZyxcbiAgICB9XG4gICk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gcHJvdmlkZUVmZmVjdChDb21tYW5kUGFnZVN0b3JlLkFjdGlvbklkLkZJTEVfU0VMRUNURUQsICgpID0+IHtcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBpbmplY3QoQ2xvdWRTdG9yYWdlU2VydmljZSk7XG4gICAgICBjb25zdCBhcHAgPSBpbmplY3QoQXBwU2VydmljZSk7XG4gICAgICBjb25zdCBjYWxsYmFjayA9IGNhbGxiYWNrRmFjdG9yeSgpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlUmVzb2x2ZXIgPSBpbmplY3RFcnJvck1lc3NhZ2VSZXNvbHZlcigpO1xuICBcbiAgICAgIHJldHVybiAocGF5bG9hZDogeyBzY29wZTogc3RyaW5nLCBmaWxlczogRmlsZVtdfSkgPT4ge1xuICAgICAgICBjb25zdCBmaWxlID0gcGF5bG9hZC5maWxlcz8uWzBdO1xuICAgICAgICBjb25zdCBlcnJvcnMgPSB2YWxpZGF0b3IoZmlsZSk7XG4gICAgICAgIGlmIChlcnJvcnMgJiYgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYXBwLnNuYWNrQmFyLm9wZW4oZXJyb3JNZXNzYWdlUmVzb2x2ZXIoZXJyb3JzKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcHAubG9hZGluZy5hd2FpdCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGF0aCA9IGdldFBhdGgoKTtcbiAgICAgICAgICByZXR1cm4gc3RvcmFnZS51cGxvYWQocGF0aCwgZmlsZSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBhcHAuc25hY2tCYXIub3Blbign44OV44Kh44Kk44Or44KS44Ki44OD44OX44Ot44O844OJ44GX44G+44GX44GfJyk7XG4gICAgICAgICAgICByZXR1cm4gc3RvcmFnZS5nZXREb3dubG9hZFVybChwYXRoKS50aGVuKChpbWFnZVVybCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soe2ZpbGUsIHBhdGgsIHVybDogaW1hZ2VVcmx9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICBhcHAuc25hY2tCYXIub3Blbign44OV44Kh44Kk44Or44Gu44Ki44OD44OX44Ot44O844OJ44Gr5aSx5pWX44GX44G+44GX44GfJyk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmVhZG9ubHkgZmVhdHVyZSA9IGluamVjdChDb21tYW5kRmVhdHVyZSk7XG4gIHJlYWRvbmx5IGNvbmZpZyA9IENvbW1hbmRQYWdlU3RvcmUuQ29uZmlnLmluamVjdCgpO1xuICByZWFkb25seSBxdWVyeUZlYXR1cmUgPSBpbmplY3QoUXVlcnlGZWF0dXJlKTtcbiAgcmVhZG9ubHkgc3R5bGUgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5zdHlsZSkpO1xuICByZWFkb25seSAjbmF2U3RhcnRBY3Rpb25zID0gaW5qZWN0TmF2U3RhcnRBY3Rpb25zVjIoKTtcbiAgcmVhZG9ubHkgbmF2U3RhcnRBY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuI25hdlN0YXJ0QWN0aW9ucygpKSk7XG4gIHJlYWRvbmx5IG5hdkVuZEFjdGlvbnMgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5uYXZFbmRBY3Rpb25zKSk7XG4gIHJlYWRvbmx5IGNvbW1hbmQgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5jb21tYW5kKSk7XG4gIHJlYWRvbmx5IGZvcm0gPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5mZWF0dXJlLmZvcm0oKSkpO1xuICByZWFkb25seSBleHRyYWN0ZWRGb3JtRmllbGRNYXAgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5mZWF0dXJlLmV4dHJhY3RlZEZvcm1GaWVsZE1hcCgpKSk7XG4gIHJlYWRvbmx5IGFkZGl0aW9uYWxGb3JtRmllbGRNYXAgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5jb25maWcoKS5hZGRpdGlvbmFsRm9ybUZpZWxkTWFwKSk7XG4gIHJlYWRvbmx5IGZvcm1GaWVsZE1hcCA9IGlucHV0KF9jb21wdXRlZDxGb3JtRmllbGRNYXA+KCgpID0+ICh7XG4gICAgLi4udGhpcy5leHRyYWN0ZWRGb3JtRmllbGRNYXAoKSxcbiAgICAuLi50aGlzLmFkZGl0aW9uYWxGb3JtRmllbGRNYXAoKVxuICB9KSkpO1xuICByZWFkb25seSBmb3JtRmllbGRLZXlzID0gaW5wdXQ8c3RyaW5nW10+KF9jb21wdXRlZCgoKSA9PiBbXSkpO1xuICByZWFkb25seSBmb3JtRmxhdEV4Y2x1ZGVzID0gaW5wdXQ8c3RyaW5nW10+KF9jb21wdXRlZCgoKSA9PiBbXSkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2luaXRpYWxpemVRdWVyeSA9IGluamVjdFJvdXRlRGF0YTxRdWVyeT4oJ3F1ZXJ5Jyk7XG4gIHJlYWRvbmx5IGluaXRpYWxpemVRdWVyeSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiB0aGlzLl9pbml0aWFsaXplUXVlcnkoKSkpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGEgPSBpbmplY3RVbmZsYXR0ZW5Sb3V0ZVBhcmFtKCdkYXRhJyk7XG4gIHJlYWRvbmx5IGRhdGEgPSBpbnB1dChfY29tcHV0ZWQoKCkgPT4gdGhpcy5fZGF0YSgpKSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtSW52YWxpZCA9IGRlcml2ZWRBc3luYygoKSA9PiBnZXRJbnZhbGlkJCh0aGlzLmZvcm0oKSkpO1xuICByZWFkb25seSB0aXRsZSA9IGlucHV0KF9jb21wdXRlZCgoKSA9PiAodGhpcy5jb25maWcoKSBhcyBhbnkpLnRpdGxlIHx8IHRoaXMuZmVhdHVyZS50aXRsZSgpKSk7XG4gIHJlYWRvbmx5ICNhY3Rpb25zID0gZGVyaXZlZEFzeW5jKCgpID0+IGJ1aWxkQWN0aW9ucyh0aGlzLmZlYXR1cmUuaGFzUGVybWlzc2lvbih0aGlzLmNvbW1hbmQoKSksIHRoaXMuZm9ybUludmFsaWQoKSkpO1xuICByZWFkb25seSBhY3Rpb25zID0gaW5wdXQoX2NvbXB1dGVkKCgpID0+IHRoaXMuI2FjdGlvbnMoKSkpO1xuICByZWFkb25seSBza2lwID0gaW5qZWN0Um91dGVTa2lwKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBDb21tYW5kUGFnZVN0b3JlLkluaXRpYWxpemVyLmluaXRpYWxpemVTdG9yZSh0aGlzKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwYWdlcy1jb21tYW5kJyxcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck91dGxldEZyYW1lLFxuICAgIEZvcm1UZW1wbGF0ZSxcbiAgICBUYWJzRnJhbWUsXG4gICAgQ29tbWFuZEZvcm1Hcm91cCxcbiAgICBRdWVyeUZvcm1Hcm91cFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDb21tYW5kRmVhdHVyZSxcbiAgICBRdWVyeUZlYXR1cmUsXG4gICAgUXVlcnlHcmFwaHFsU2NoZW1hRmVhdHVyZVxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICA8ZnJhbWVzLXJvdXRlci1vdXRsZXQgW3NraXBdPVwic3RvcmUuc2tpcCgpXCIgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCI+XG4gICAgPHRlbXBsYXRlcy1mb3JtXG4gICAgICBbZm9ybV09XCJzdG9yZS5mb3JtKClcIlxuICAgICAgW3N0eWxlXT1cInN0b3JlLnN0eWxlKClcIlxuICAgICAgW2ZpZWxkTWFwXT1cInN0b3JlLmZvcm1GaWVsZE1hcCgpXCJcbiAgICAgIFtmaWVsZEtleXNdPVwic3RvcmUuZm9ybUZpZWxkS2V5cygpXCJcbiAgICAgIFtmb3JtRmxhdEV4Y2x1ZGVzXT1cInN0b3JlLmZvcm1GbGF0RXhjbHVkZXMoKVwiXG4gICAgICBbdGl0bGVdPVwic3RvcmUudGl0bGUoKVwiXG4gICAgICBbbmF2U3RhcnRBY3Rpb25zXT1cInN0b3JlLm5hdlN0YXJ0QWN0aW9ucygpXCJcbiAgICAgIFtuYXZFbmRBY3Rpb25zXT1cInN0b3JlLm5hdkVuZEFjdGlvbnMoKVwiXG4gICAgICBbYWN0aW9uc109XCJzdG9yZS5hY3Rpb25zKClcIlxuICAgICAgKGFjdGlvbik9XCJkaXNwYXRjaCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8ZnJhbWVzLXRhYnMgW2xhYmVsc109XCJbJ0NvbW1hbmQnLCAnSW5pdGlhbGl6ZVF1ZXJ5J11cIiBkYXNoYm9hcmQ+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdGFiPlxuICAgICAgICAgIDxncm91cHMtY29tbWFuZC1mb3JtIChhY3Rpb24pPVwiZGlzcGF0Y2goJGV2ZW50KVwiLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0YWI+XG4gICAgICAgICAgPGdyb3Vwcy1xdWVyeS1mb3JtXG4gICAgICAgICAgICBbZm9ybV09XCJzdG9yZS5xdWVyeUZlYXR1cmUuZm9ybVwiXG4gICAgICAgICAgICAoYWN0aW9uKT1cImRpc3BhdGNoKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2ZyYW1lcy10YWJzPiBcbiAgICA8L3RlbXBsYXRlcy1mb3JtPlxuICA8L2ZyYW1lcy1yb3V0ZXItb3V0bGV0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jb21tYW5kLnBhZ2Uuc2NzcyddLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogQ29tbWFuZFBhZ2VTdG9yZSxcbiAgICAgIGlucHV0czogW1xuICAgICAgICAnc3R5bGUnLFxuICAgICAgICAnbmF2RW5kQWN0aW9ucycsXG4gICAgICAgICdjb21tYW5kJyxcbiAgICAgICAgJ2Zvcm0nLFxuICAgICAgICAnYWRkaXRpb25hbEZvcm1GaWVsZE1hcCcsXG4gICAgICAgICdmb3JtRmllbGRNYXAnLFxuICAgICAgICAnZm9ybUZsYXRFeGNsdWRlcycsXG4gICAgICAgICdpbml0aWFsaXplUXVlcnknLFxuICAgICAgICAnZGF0YScsXG4gICAgICAgICdhY3Rpb25zJyxcbiAgICAgIF1cbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRQYWdlIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoQ29tbWFuZFBhZ2VTdG9yZSk7XG4gIHJlYWRvbmx5IHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcmVhZG9ubHkgYXBwID0gaW5qZWN0KEFwcFNlcnZpY2UpO1xuICByZWFkb25seSBwYXJlbnRSb3V0ZXJPdXRsZXRGcmFtZSA9IGluamVjdChSb3V0ZXJPdXRsZXRGcmFtZSwge29wdGlvbmFsOiB0cnVlfSk7XG5cbiAgQEVmZmVjdChGb3JtVGVtcGxhdGVTdG9yZS5BY3Rpb25JZC5GSUxFX1NFTEVDVEVEKVxuICBwcm90ZWN0ZWQgb25GaWxlU2VsZWN0ZWQocGF5bG9hZCkge1xuICAgIHRoaXMuZGlzcGF0Y2goeyBpZDogQWN0aW9uSWQuRklMRV9TRUxFQ1RFRCwgcGF5bG9hZCB9KTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHhtYWNoaW5hLWNvbXBvbmVudHMtcGFnZXMtY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0B4eG1hY2hpbmEvY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL2NvbW1hbmQveHhtYWNoaW5hLWNvbXBvbmVudHMtcGFnZXMtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -740,7 +740,7 @@ class QueryPage extends NgAtomicComponent {
740
740
  <groups-query-form dashboard (action)="dispatch($event)" />
741
741
  </templates-index>
742
742
  </frames-router-outlet>
743
- `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-G0oN: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-G0oN: var(--page-width-lv3);--primary-color-SCOPED-IN-query-G0oN: var(--primary-color);--on-primary-color-SCOPED-IN-query-G0oN: var(--on-primary-color);--surface-color-SCOPED-IN-query-G0oN: var(--surface-color);--on-surface-color-SCOPED-IN-query-G0oN: var(--on-surface-color);--on-background-color-SCOPED-IN-query-G0oN: var(--on-background-color);--background-color-SCOPED-IN-query-G0oN: var(--background-color);--navigator-background-color-SCOPED-IN-query-G0oN: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-G0oN: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-G0oN: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-G0oN: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-G0oN: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-G0oN);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-G0oN);--surface-color: var(--surface-color-SCOPED-IN-query-G0oN);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-G0oN);--background-color: var(--background-color-SCOPED-IN-query-G0oN);--on-background-color: var(--on-background-color-SCOPED-IN-query-G0oN);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-G0oN);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-G0oN);--table-background-color: var(--table-background-color-SCOPED-IN-query-G0oN);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-G0oN);--is-debug: var(--is-debug-SCOPED-IN-query-G0oN)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-G0oN) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
743
+ `, isInline: true, styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-zUIP: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-zUIP: var(--page-width-lv3);--primary-color-SCOPED-IN-query-zUIP: var(--primary-color);--on-primary-color-SCOPED-IN-query-zUIP: var(--on-primary-color);--surface-color-SCOPED-IN-query-zUIP: var(--surface-color);--on-surface-color-SCOPED-IN-query-zUIP: var(--on-surface-color);--on-background-color-SCOPED-IN-query-zUIP: var(--on-background-color);--background-color-SCOPED-IN-query-zUIP: var(--background-color);--navigator-background-color-SCOPED-IN-query-zUIP: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-zUIP: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-zUIP: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-zUIP: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-zUIP: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-zUIP);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-zUIP);--surface-color: var(--surface-color-SCOPED-IN-query-zUIP);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-zUIP);--background-color: var(--background-color-SCOPED-IN-query-zUIP);--on-background-color: var(--on-background-color-SCOPED-IN-query-zUIP);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-zUIP);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-zUIP);--table-background-color: var(--table-background-color-SCOPED-IN-query-zUIP);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-zUIP);--is-debug: var(--is-debug-SCOPED-IN-query-zUIP)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-zUIP) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"], dependencies: [{ kind: "component", type: IndexTemplate, selector: "templates-index" }, { kind: "component", type: RouterOutletFrame, selector: "frames-router-outlet", outputs: ["events"] }, { kind: "component", type: NgAtomicFormSectionBuilder, selector: "ng-atomic-form-section-builder", inputs: ["form", "formFlatExcludes", "fieldMap", "fieldKeys"] }, { kind: "component", type: QueryFormGroup, selector: "groups-query-form", inputs: ["form", "keyActions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
744
744
  }
745
745
  __decorate([
746
746
  Effect(IndexTemplateStore.ActionId.BACK),
@@ -821,7 +821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImpor
821
821
  'pageSizeOptions'
822
822
  ]
823
823
  },
824
- ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-G0oN: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-G0oN: var(--page-width-lv3);--primary-color-SCOPED-IN-query-G0oN: var(--primary-color);--on-primary-color-SCOPED-IN-query-G0oN: var(--on-primary-color);--surface-color-SCOPED-IN-query-G0oN: var(--surface-color);--on-surface-color-SCOPED-IN-query-G0oN: var(--on-surface-color);--on-background-color-SCOPED-IN-query-G0oN: var(--on-background-color);--background-color-SCOPED-IN-query-G0oN: var(--background-color);--navigator-background-color-SCOPED-IN-query-G0oN: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-G0oN: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-G0oN: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-G0oN: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-G0oN: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-G0oN);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-G0oN);--surface-color: var(--surface-color-SCOPED-IN-query-G0oN);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-G0oN);--background-color: var(--background-color-SCOPED-IN-query-G0oN);--on-background-color: var(--on-background-color-SCOPED-IN-query-G0oN);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-G0oN);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-G0oN);--table-background-color: var(--table-background-color-SCOPED-IN-query-G0oN);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-G0oN);--is-debug: var(--is-debug-SCOPED-IN-query-G0oN)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-G0oN) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
824
+ ], styles: ["@charset \"UTF-8\";:host{width:100%;height:100%;display:block;--page-width-lv1-SCOPED-IN-query-zUIP: var(--page-width-lv1);--page-width-lv3-SCOPED-IN-query-zUIP: var(--page-width-lv3);--primary-color-SCOPED-IN-query-zUIP: var(--primary-color);--on-primary-color-SCOPED-IN-query-zUIP: var(--on-primary-color);--surface-color-SCOPED-IN-query-zUIP: var(--surface-color);--on-surface-color-SCOPED-IN-query-zUIP: var(--on-surface-color);--on-background-color-SCOPED-IN-query-zUIP: var(--on-background-color);--background-color-SCOPED-IN-query-zUIP: var(--background-color);--navigator-background-color-SCOPED-IN-query-zUIP: var(--navigator-background-color);--navigator-on-background-color-SCOPED-IN-query-zUIP: var(--navigator-on-background-color);--table-background-color-SCOPED-IN-query-zUIP: var(--table-background-color);--table-on-background-color-SCOPED-IN-query-zUIP: var(--table-on-background-color);--is-debug: 1;--is-debug-SCOPED-IN-query-zUIP: var(--is-debug)}:host *{--primary-color: var(--primary-color-SCOPED-IN-query-zUIP);--on-primary-color: var(--on-primary-color-SCOPED-IN-query-zUIP);--surface-color: var(--surface-color-SCOPED-IN-query-zUIP);--on-surface-color: var(--on-surface-color-SCOPED-IN-query-zUIP);--background-color: var(--background-color-SCOPED-IN-query-zUIP);--on-background-color: var(--on-background-color-SCOPED-IN-query-zUIP);--navigator-background-color: var(--navigator-background-color-SCOPED-IN-query-zUIP);--navigator-on-background-color: var(--navigator-on-background-color-SCOPED-IN-query-zUIP);--table-background-color: var(--table-background-color-SCOPED-IN-query-zUIP);--table-on-background-color: var(--table-on-background-color-SCOPED-IN-query-zUIP);--is-debug: var(--is-debug-SCOPED-IN-query-zUIP)}:host templates-index{padding-left:0;box-sizing:border-box;--first-content-height: calc(var(--is-debug-SCOPED-IN-query-zUIP) * 300px);transition:padding-left .3s}:host templates-index div[navDashboard]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;padding:16px;box-sizing:border-box}:host templates-index div[navDashboard] ng-atomic-form-section-builder{--horizontal-padding: 0}\n"] }]
825
825
  }], ctorParameters: () => [], propDecorators: { back: [], navigateToIframe: [], expandPage: [], itemClick: [] } });
826
826
 
827
827
  /**